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 1vzFzP-000qN6-0r for pgsql-hackers@arkaria.postgresql.org; Sun, 08 Mar 2026 15:24:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzFzN-00AvTU-1J for pgsql-hackers@arkaria.postgresql.org; Sun, 08 Mar 2026 15:24:17 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vzF4I-00AlPz-06 for pgsql-hackers@lists.postgresql.org; Sun, 08 Mar 2026 14:25:18 +0000 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzF49-00000001V3V-21JN for pgsql-hackers@postgresql.org; Sun, 08 Mar 2026 14:25:17 +0000 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-359863611faso3007747a91.3 for ; Sun, 08 Mar 2026 07:25:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1772979907; cv=none; d=google.com; s=arc-20240605; b=Fea4uUhGHpg9Vde/XMVp8/KtqBP+CrOEUBVPGO9k2ARaqimVljbGYvDjoBGy1+fgDc 0xyPgI9/fhbo21VaW9vP/fMKacIMsPMXoowk/qmvLHS7fBBMyj/8Y/4dOT/1CKT00HJT y9prU1bvLO+/saJlIisi6JyJfuSxWFzo8QVQnoye6eNeikJwUSLlA9VF7QxaMt3Kbm6T HeJjFBZ9YjAD6v24xQ1PbfEJbb5Dq83o7Su59fQKZKjHYoxWa64mNtDGtZfjQfVqeOOU qGg1Q7pA5eYsrLhGJSk8v5fEvOCYXtBja4dHOz1CyWkXqPmA0W26dAGfTDQ4JJ4V2rkF XOhA== 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=rjWT1FDGooEpI0dUtUxVciXKv0cHKXQuaXo44iVVDPU=; fh=gI7DU6S1QbPasJ2M3lPqL7kFHr6P85EW3IYlJspIDnQ=; b=RPSxpKODJBBCWNeMfnmQmYOB5wtfQKTn7WOGUeNCa7HV87LWRCgcuzAKk4Lqsa/oyf OhKSb6wfiNDBrAFheJHwHccQ16PzBUj+gvofT6ZlXWIpJX/iZFrg9Zps3dPyfK0hzIPS ZbRkeJo6+CJDRRe9fNbwl0P+CiG5K10AnMjBcw+Z4Rn2dDTphIztdzYQd+4fYW8veCcs uiMBevfz+KhYTr5jVgExrjp2FTqGRwZi35W1behsGLfErCbB+7jFgBIPBS864SAnNiF7 eb429Gdlx/x6zBhiISt98EPo/6DvOgC0tR2LFAgV2Jwd/SuuAveLgYpLZ/BfCZXdFPAy vaJA==; 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=1772979907; x=1773584707; 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=rjWT1FDGooEpI0dUtUxVciXKv0cHKXQuaXo44iVVDPU=; b=XQViOA8jDP4MQ/DU6j5wMPhgdPGEbbTXcRD4TJ+nQvza14Zv2tvw85Y5394JO8m7CZ OCEe5axWDWMQjwPM1JO8SXj4DyeOEm1a+DRUqKw38qj6BWrXHhWuIU16czkDybRF2L3d I8yjiKysjA+wccsrq8Scb9MiaJCbu8uULlQKWMfLUerVT7rK+NngEUXbKPyNnnMc2Lw0 IRa3ALO7WR0IpMHKmyxZ1J+Ox0GjFT87xpB9/ponA3uvhgm+wU20xfhy+aFkUuqIPfk7 s+eDiwPlLeU/j/NEBUq97CUTPZ33Hz65MR0UPyWX2I6MH4La7vUlhzMd7XFl/NRg1/Ot Q6Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772979907; x=1773584707; 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=rjWT1FDGooEpI0dUtUxVciXKv0cHKXQuaXo44iVVDPU=; b=TGvSDzG2uPo0uhuD+d9Jj6aGwhzfiyWn71qi4XamBaK26NB17nMwfHans6V+CLFGtF GL83HL2O9cR96tA3own8L05iTjQCN6WbJm/XwkRTX3O7frF4rQAFp8vyXXRxDKZD5IYD VKVVmh2hK1ZHs3SQJIwMBx63dRA57xzz7jfd7gnXy8W88rNyD+Cwr0Wz2eAEk8nRSGyk 2IsRsDRHHubgLFkiNSzVCYTjSZ9CDLkIIsBwNH/6MF25LYrZAZV/sPmMGLvE8+sMR/1P 8vjtO0bPgVgXTuryOA/E7jGlxk9TfAd4BaYGUq/dKdZyosWFa9uOsCc0YnbR+md4bY02 FAbQ== X-Forwarded-Encrypted: i=1; AJvYcCWs9QvbFztW9JvRzFkGeEtnvyavfBtsE+SZkrIZw2FOlu8fqpBjbuGQ1PBDhE+Yn6Em4rHJlvFIeTXlyXs+@postgresql.org X-Gm-Message-State: AOJu0YxzFTsSvY6TDKEgwmIPeqrjGB/op9mAq1/jFOQwAuovBwZifH6t YLcMwdbwD2zQu7ad/QtnAL3VeGlvbcfq7L9SG8muUWm/yA1y4mjpZ0SjcacBazg8DxwuZ4jQKB0 i/h5TwwIYawrd5B8Zc9t6lHyGNnZsfBE= X-Gm-Gg: ATEYQzzmxurcPdzogY71BcE7JAP+yyZb6y2ofnzQ25c5Q5KUxbJRLglD+5Z9ELBwSK0 CD1iJgpUl2VQb53IjdyBj7W/DQwASde+wKE4NopphIyBa3l7m8+uhv01oUiuhc5h/gAQcqk/ITa LpWW/S/N9yBgtfzf6oFlHqACJBjRvKu2i1pZBgidXPI6DH77HV5DQ1ehWzrLiz6A+iZguYhYtxP ou8f8pzwHBD/unx9bv3RQWy5fkqWfzLfTnzVSuHRvUv4Oz0Q5Z9w19gCdTxebUNDJ6i0gfiTbjP 9kAIz59BmcNRG6Y69mosAAlg5PI5P33SSPs8mcXMULBtzcxdQeY= X-Received: by 2002:a17:90b:1804:b0:359:1821:b4d4 with SMTP id 98e67ed59e1d1-359be375d80mr6664670a91.31.1772979907325; Sun, 08 Mar 2026 07:25:07 -0700 (PDT) MIME-Version: 1.0 References: <20260305.142049.1864331791480656300.ishii@postgresql.org> <20260306.153837.2137322608184587391.ishii@postgresql.org> <20260308.084722.1574081784704713701.ishii@postgresql.org> In-Reply-To: <20260308.084722.1574081784704713701.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Sun, 8 Mar 2026 23:24:55 +0900 X-Gm-Features: AaiRm52lTLbzLF_jUYRqBH7gqprU08uIfs9a_OqcXKvYXTvEWK_AZ38bMiiUk3A Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: 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="000000000000921dae064c840db1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000921dae064c840db1 Content-Type: multipart/alternative; boundary="000000000000921dac064c840daf" --000000000000921dac064c840daf Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, > Question is, should we fix optimize_window_clause as well? Yes, we should. The comment in optimize_window_clauses explicitly states "Perform the same duplicate check that is done in transformWindowFuncCall", so the two checks must remain in sync. Even if omitting the RPR fields produces no visible bug today (because the early return guard in nocfbot-0006 already skips RPR windows), the code would be misleading and fragile: a future change could remove that guard and silently reintroduce the bug. Adding the RPR fields explicitly also serves as defensive coding and makes the intent clear to anyone reading or modifying the code later. When incorporating nocfbot-0006 as patch 06/12, this fix was included: wc->rpSkipTo == existing_wc->rpSkipTo && wc->initial == existing_wc->initial && equal(wc->defineClause, existing_wc->defineClause) && equal(wc->rpPattern, existing_wc->rpPattern) Patch 06/12 now covers both the frame optimization guard and the optimize_window_clauses deduplication fix, with EXPLAIN-based regression tests added to verify the behavior. > The two window definitions are regarded as identical and produces > wrong result. Thank you for finding this. Your patch has been incorporated as patch 09/12 ("Fix window deduplication for RPR windows at parse time"), modified to add regression test cases covering the scenario. The fix adds the missing RPR check in transformWindowFuncCall: equal(refwin->rpCommonSyntax, windef->rpCommonSyntax) This prevents incorrect merging of an RPR window with a non-RPR window that has identical frame options. The previous submission (nocfbot-0001..0008) has been extended to 12 patches. Changes since the last submission: 06/12 Disable frame optimization for RPR windows [updated] optimize_window_clauses deduplication fix added, as discussed. 09/12 Fix window deduplication for RPR windows at parse time [new] Incorporates your fix with test cases added. 10/12 Walk DEFINE clause in window tree traversal [new] A newly discovered issue: nodeFuncs.c was not visiting the DEFINE clause in expression_tree_walker, query_tree_walker, and their mutator counterparts. The demonstrated case is SQL function inlining: a SQL function with a parameter used in DEFINE (e.g., DEFINE A AS v > $1) would fail to substitute the actual argument, producing wrong results. 11/12 Use SQL standard term "empty match" in RPR comments [new] Align NFA comment terminology with the SQL standard: replace implementation-specific terms "zero-length match" and "zero-consumption" with the standard term "empty match". 12/12 Extract RPR NFA engine into execRPR.c [new] Following the earlier discussion about file layout, this implements option (b): move the NFA engine to a dedicated src/backend/executor/execRPR.c, keeping it close to nodeWindowAgg.c while making the boundary explicit. Functions still take WindowAggState as an argument (no signature change). The public interface is declared in execRPR.h using the ExecRPR* naming convention, consistent with other executor headers. The NFA algorithm guide shared earlier in this thread has also been incorporated as structured comments at the top of the file, as suggested. The full updated series (12 patches on top of v44) is attached. Regards, Henson --000000000000921dac064c840daf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

> Question is, should we fix optimize= _window_clause as well?

Yes, we should. The comment in optimize_wind= ow_clauses explicitly
states "Perform the same duplicate check that= is done in
transformWindowFuncCall", so the two checks must remain= in sync.
Even if omitting the RPR fields produces no visible bug today = (because
the early return guard in nocfbot-0006 already skips RPR window= s), the
code would be misleading and fragile: a future change could remo= ve
that guard and silently reintroduce the bug.

Adding the RPR fi= elds explicitly also serves as defensive coding and
makes the intent cle= ar to anyone reading or modifying the code later.

When incorporating= nocfbot-0006 as patch 06/12, this fix was included:

=C2=A0 =C2=A0 w= c->rpSkipTo =3D=3D existing_wc->rpSkipTo &&
=C2=A0 =C2=A0 = wc->initial =3D=3D existing_wc->initial &&
=C2=A0 =C2=A0 e= qual(wc->defineClause, existing_wc->defineClause) &&
=C2= =A0 =C2=A0 equal(wc->rpPattern, existing_wc->rpPattern)

Patch = 06/12 now covers both the frame optimization guard and the
optimize_wind= ow_clauses deduplication fix, with EXPLAIN-based regression
tests added = to verify the behavior.

> The two window definitions are regarded= as identical and produces
> wrong result.

Thank you for findi= ng this. Your patch has been incorporated as patch
09/12 ("Fix wind= ow deduplication for RPR windows at parse time"),
modified to add r= egression test cases covering the scenario. The fix
adds the missing RPR= check in transformWindowFuncCall:

=C2=A0 =C2=A0 equal(refwin->rp= CommonSyntax, windef->rpCommonSyntax)

This prevents incorrect mer= ging of an RPR window with a non-RPR window
that has identical frame opt= ions.

The previous submission (nocfbot-0001..0008) has been extended= to
12 patches. Changes since the last submission:

=C2=A0 06/12 = =C2=A0Disable frame optimization for RPR windows =C2=A0[updated]
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0optimize_window_clauses deduplication fix added,= as discussed.

=C2=A0 09/12 =C2=A0Fix window deduplication for RPR w= indows at parse time =C2=A0[new]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Incor= porates your fix with test cases added.

=C2=A0 10/12 =C2=A0Walk DEFI= NE clause in window tree traversal =C2=A0[new]
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0A newly discovered issue: nodeFuncs.c was not visiting the
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DEFINE clause in expression_tree_walker, que= ry_tree_walker,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0and their mutator coun= terparts. The demonstrated case is SQL
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0function inlining: a SQL function with a parameter used in
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0DEFINE (e.g., DEFINE A AS v > $1) would fail to = substitute
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0the actual argument, produc= ing wrong results.

=C2=A0 11/12 =C2=A0Use SQL standard term "em= pty match" in RPR comments =C2=A0[new]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0Align NFA comment terminology with the SQL standard: replace
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0implementation-specific terms "zero-len= gth match" and
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"zero-consump= tion" with the standard term "empty match".

=C2=A0 12= /12 =C2=A0Extract RPR NFA engine into execRPR.c =C2=A0[new]
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0Following the earlier discussion about file layout,= this
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0implements option (b): move the = NFA engine to a dedicated
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0src/backend/= executor/execRPR.c, keeping it close to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0nodeWindowAgg.c while making the boundary explicit. Functions
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0still take WindowAggState as an argument (no sig= nature change).
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0The public interface i= s declared in execRPR.h using the ExecRPR*
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0naming convention, consistent with other executor headers.
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0The NFA algorithm guide shared earlier in this t= hread has also
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0been incorporated as st= ructured comments at the top of the file,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0as suggested.

The full updated series (12 patches on top of v4= 4) is attached.

Regards,
Henson
--000000000000921dac064c840daf-- --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0001-fix-elog-lowercase.txt" Content-Disposition: attachment; filename="0001-fix-elog-lowercase.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufd840 RnJvbSBmNGFiYjQ2NGMxODdlZjZkMTMzNGQ4NTZkYjg4MWQ0MDA2OTUzMWRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDMgTWFyIDIwMjYgMTU6NDk6NTQgKzA5MDAKU3ViamVjdDogW1BBVENIIDAxLzEyXSBG aXggZWxvZyBtZXNzYWdlIHRvIHVzZSBsb3dlcmNhc2UgcGVyIFBvc3RncmVTUUwKIGNvbnZlbnRp b24KCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDcwMWU4M2I1MTliLi40NDQxYjRkOWM1MSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtNDcxMCw3ICs0NzEwLDcgQEAgcm93X2lz X2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogCQkJYnJl YWs7CiAKIAkJZGVmYXVsdDoKLQkJCWVsb2coRVJST1IsICJVbnJlY29nbml6ZWQgc3RhdGU6ICVk IGF0OiAiIElOVDY0X0ZPUk1BVCwKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgc3RhdGU6 ICVkIGF0OiAiIElOVDY0X0ZPUk1BVCwKIAkJCQkgc3RhdGUsIHBvcyk7CiAJCQlicmVhazsKIAl9 Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0002-fix-reluctant-flag-view.txt" Content-Disposition: attachment; filename="0002-fix-reluctant-flag-view.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufeh61 RnJvbSAyYmM3ZjI5ZGNmY2VlZmM4M2ZkNzg3ZWIxMzhjOTYyNDdmNTY1MzYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDMgTWFyIDIwMjYgMTU6NTA6NDggKzA5MDAKU3ViamVjdDogW1BBVENIIDAyLzEyXSBG aXggUlBSIHJlbHVjdGFudCBxdWFudGlmaWVyIGZsYWcgbG9zdCBkdXJpbmcgVklFVwogc2VyaWFs aXphdGlvbgoKLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYyAgfCAzNiArKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAg ICAgICAgfCAxOCArKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMgfCAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgIHwgIDQgKyst LQogNCBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3Jwci5jCmluZGV4IDg3OTJkODE3NGZhLi4wMDljMGY1MDE5ZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcnByLmMKQEAgLTE5OCw3ICsxOTgsNyBAQCBmbGF0dGVuU2VxQ2hp bGRyZW4oTGlzdCAqY2hpbGRyZW4pCiAKIAkJLyogR1JPVVB7MSwxfSBzaG91bGQgaGF2ZSBiZWVu IHVud3JhcHBlZCBieSBvcHRpbWl6ZUdyb3VwUGF0dGVybiAqLwogCQlBc3NlcnQoIShvcHQtPm5v ZGVUeXBlID09IFJQUl9QQVRURVJOX0dST1VQICYmCi0JCQkJIG9wdC0+bWluID09IDEgJiYgb3B0 LT5tYXggPT0gMSAmJiBvcHQtPnJlbHVjdGFudCA8IDApKTsKKwkJCQkgb3B0LT5taW4gPT0gMSAm JiBvcHQtPm1heCA9PSAxICYmIG9wdC0+cmVsdWN0YW50ID09IGZhbHNlKSk7CiAKIAkJaWYgKG9w dC0+bm9kZVR5cGUgPT0gUlBSX1BBVFRFUk5fU0VRKQogCQl7CkBAIC0yMzQsNyArMjM0LDcgQEAg bWVyZ2VDb25zZWN1dGl2ZVZhcnMoTGlzdCAqY2hpbGRyZW4pCiAJewogCQlSUFJQYXR0ZXJuTm9k ZSAqY2hpbGQgPSAoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKTsKIAotCQlpZiAoY2hpbGQt Pm5vZGVUeXBlID09IFJQUl9QQVRURVJOX1ZBUiAmJiBjaGlsZC0+cmVsdWN0YW50IDwgMCkKKwkJ aWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9WQVIgJiYgY2hpbGQtPnJlbHVjdGFu dCA9PSBmYWxzZSkKIAkJewogCQkJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCQkJICogQ2Fu IG1lcmdlIGNvbnNlY3V0aXZlIFZBUiBub2RlcyBpZjoKQEAgLTI1Myw3ICsyNTMsNyBAQCBtZXJn ZUNvbnNlY3V0aXZlVmFycyhMaXN0ICpjaGlsZHJlbikKIAkJCQkgKiBNZXJnZTogYWNjdW11bGF0 ZSBtaW4vbWF4IGludG8gcHJldi4gcHJldiBpcyBndWFyYW50ZWVkIHRvCiAJCQkJICogYmUgYSBu b24tcmVsdWN0YW50IFZBUiBieSB0aGUgb3V0ZXIgY29uZGl0aW9uLgogCQkJCSAqLwotCQkJCUFz c2VydChwcmV2LT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9WQVIgJiYgcHJldi0+cmVsdWN0YW50 IDwgMCk7CisJCQkJQXNzZXJ0KHByZXYtPm5vZGVUeXBlID09IFJQUl9QQVRURVJOX1ZBUiAmJiBw cmV2LT5yZWx1Y3RhbnQgPT0gZmFsc2UpOwogCiAJCQkJcHJldi0+bWluICs9IGNoaWxkLT5taW47 CiAKQEAgLTMwOCw3ICszMDgsNyBAQCBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzKExpc3QgKmNoaWxk cmVuKQogCXsKIAkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxm aXJzdChsYyk7CiAKLQkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9HUk9VUCAm JiBjaGlsZC0+cmVsdWN0YW50IDwgMCkKKwkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFU VEVSTl9HUk9VUCAmJiBjaGlsZC0+cmVsdWN0YW50ID09IGZhbHNlKQogCQl7CiAJCQkvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAJCQkgKiBDYW4gbWVyZ2UgY29uc2VjdXRpdmUgR1JPVVAgbm9k ZXMgaWY6CkBAIC0zMjcsNyArMzI3LDcgQEAgbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcyhMaXN0ICpj aGlsZHJlbikKIAkJCQkgKiBNZXJnZTogYWNjdW11bGF0ZSBtaW4vbWF4IGludG8gcHJldi4gcHJl diBpcyBndWFyYW50ZWVkIHRvCiAJCQkJICogYmUgYSBub24tcmVsdWN0YW50IEdST1VQIGJ5IHRo ZSBvdXRlciBjb25kaXRpb24uCiAJCQkJICovCi0JCQkJQXNzZXJ0KHByZXYtPm5vZGVUeXBlID09 IFJQUl9QQVRURVJOX0dST1VQICYmIHByZXYtPnJlbHVjdGFudCA8IDApOworCQkJCUFzc2VydChw cmV2LT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9HUk9VUCAmJiBwcmV2LT5yZWx1Y3RhbnQgPT0g ZmFsc2UpOwogCiAJCQkJcHJldi0+bWluICs9IGNoaWxkLT5taW47CiAKQEAgLTM4NSw3ICszODUs NyBAQCBtZXJnZUNvbnNlY3V0aXZlQWx0cyhMaXN0ICpjaGlsZHJlbikKIAl7CiAJCVJQUlBhdHRl cm5Ob2RlICpjaGlsZCA9IChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpOwogCi0JCWlmIChj aGlsZC0+bm9kZVR5cGUgPT0gUlBSX1BBVFRFUk5fQUxUICYmIGNoaWxkLT5yZWx1Y3RhbnQgPCAw KQorCQlpZiAoY2hpbGQtPm5vZGVUeXBlID09IFJQUl9QQVRURVJOX0FMVCAmJiBjaGlsZC0+cmVs dWN0YW50ID09IGZhbHNlKQogCQl7CiAJCQlpZiAocHJldiAhPSBOVUxMICYmCiAJCQkJcnByUGF0 dGVybkNoaWxkcmVuRXF1YWwocHJldi0+Y2hpbGRyZW4sIGNoaWxkLT5jaGlsZHJlbikpCkBAIC00 MDYsNyArNDA2LDggQEAgbWVyZ2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hpbGRyZW4pCiAJCQkJ CQlncm91cC0+bm9kZVR5cGUgPSBSUFJfUEFUVEVSTl9HUk9VUDsKIAkJCQkJCWdyb3VwLT5taW4g PSBjb3VudDsKIAkJCQkJCWdyb3VwLT5tYXggPSBjb3VudDsKLQkJCQkJCWdyb3VwLT5yZWx1Y3Rh bnQgPSAtMTsKKwkJCQkJCWdyb3VwLT5yZWx1Y3RhbnQgPSBmYWxzZTsKKwkJCQkJCWdyb3VwLT5y ZWx1Y3RhbnRfbG9jYXRpb24gPSAtMTsKIAkJCQkJCWdyb3VwLT5sb2NhdGlvbiA9IC0xOwogCQkJ CQkJZ3JvdXAtPmNoaWxkcmVuID0gbGlzdF9tYWtlMShwcmV2KTsKIAkJCQkJCW1lcmdlZENoaWxk cmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgZ3JvdXApOwpAQCAtNDMwLDcgKzQzMSw4IEBA IG1lcmdlQ29uc2VjdXRpdmVBbHRzKExpc3QgKmNoaWxkcmVuKQogCQkJCQlncm91cC0+bm9kZVR5 cGUgPSBSUFJfUEFUVEVSTl9HUk9VUDsKIAkJCQkJZ3JvdXAtPm1pbiA9IGNvdW50OwogCQkJCQln cm91cC0+bWF4ID0gY291bnQ7Ci0JCQkJCWdyb3VwLT5yZWx1Y3RhbnQgPSAtMTsKKwkJCQkJZ3Jv dXAtPnJlbHVjdGFudCA9IGZhbHNlOworCQkJCQlncm91cC0+cmVsdWN0YW50X2xvY2F0aW9uID0g LTE7CiAJCQkJCWdyb3VwLT5sb2NhdGlvbiA9IC0xOwogCQkJCQlncm91cC0+Y2hpbGRyZW4gPSBs aXN0X21ha2UxKHByZXYpOwogCQkJCQltZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hp bGRyZW4sIGdyb3VwKTsKQEAgLTQ1NCw3ICs0NTYsOCBAQCBtZXJnZUNvbnNlY3V0aXZlQWx0cyhM aXN0ICpjaGlsZHJlbikKIAkJCWdyb3VwLT5ub2RlVHlwZSA9IFJQUl9QQVRURVJOX0dST1VQOwog CQkJZ3JvdXAtPm1pbiA9IGNvdW50OwogCQkJZ3JvdXAtPm1heCA9IGNvdW50OwotCQkJZ3JvdXAt PnJlbHVjdGFudCA9IC0xOworCQkJZ3JvdXAtPnJlbHVjdGFudCA9IGZhbHNlOworCQkJZ3JvdXAt PnJlbHVjdGFudF9sb2NhdGlvbiA9IC0xOwogCQkJZ3JvdXAtPmxvY2F0aW9uID0gLTE7CiAJCQln cm91cC0+Y2hpbGRyZW4gPSBsaXN0X21ha2UxKHByZXYpOwogCQkJbWVyZ2VkQ2hpbGRyZW4gPSBs YXBwZW5kKG1lcmdlZENoaWxkcmVuLCBncm91cCk7CkBAIC00OTgsNyArNTAxLDcgQEAgbWVyZ2VH cm91cFByZWZpeFN1ZmZpeChMaXN0ICpjaGlsZHJlbikKIAkJICogY2hpbGRyZW4uIEdST1VQJ3Mg Y29udGVudCBtYXkgYmUgd3JhcHBlZCBpbiBhIFNFUSAtIHVud3JhcCBmb3IKIAkJICogY29tcGFy aXNvbi4KIAkJICovCi0JCWlmIChjaGlsZC0+bm9kZVR5cGUgPT0gUlBSX1BBVFRFUk5fR1JPVVAg JiYgY2hpbGQtPnJlbHVjdGFudCA8IDApCisJCWlmIChjaGlsZC0+bm9kZVR5cGUgPT0gUlBSX1BB VFRFUk5fR1JPVVAgJiYgY2hpbGQtPnJlbHVjdGFudCA9PSBmYWxzZSkKIAkJewogCQkJTGlzdAkg ICAqZ3JvdXBDb250ZW50ID0gY2hpbGQtPmNoaWxkcmVuOwogCQkJaW50CQkJZ3JvdXBDaGlsZENv dW50OwpAQCAtNzczLDE0ICs3NzYsMTQgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0 ZXJuTm9kZSAqcGF0dGVybikKIAkvKiBQYXJzZXIgYWx3YXlzIGNyZWF0ZXMgR1JPVVAgd2l0aCBl eGFjdGx5IG9uZSBjaGlsZCAqLwogCUFzc2VydChsaXN0X2xlbmd0aChwYXR0ZXJuLT5jaGlsZHJl bikgPT0gMSk7CiAKLQlpZiAocGF0dGVybi0+cmVsdWN0YW50ID49IDApCisJaWYgKHBhdHRlcm4t PnJlbHVjdGFudCkKIAkJcmV0dXJuIHBhdHRlcm47CiAKIAljaGlsZCA9IChSUFJQYXR0ZXJuTm9k ZSAqKSBsaW5pdGlhbChwYXR0ZXJuLT5jaGlsZHJlbik7CiAKIAlpZiAoKGNoaWxkLT5ub2RlVHlw ZSAhPSBSUFJfUEFUVEVSTl9WQVIgJiYKIAkJIGNoaWxkLT5ub2RlVHlwZSAhPSBSUFJfUEFUVEVS Tl9HUk9VUCkgfHwKLQkJY2hpbGQtPnJlbHVjdGFudCA+PSAwKQorCQljaGlsZC0+cmVsdWN0YW50 KQogCQlyZXR1cm4gcGF0dGVybjsKIAogCS8qIENhc2UgMTogQm90aCB1bmJvdW5kZWQgLSAoQSop KiAtPiBBKiwgKEErKSsgLT4gQSsgKi8KQEAgLTg2MiwxMSArODY1LDEyIEBAIHRyeVVud3JhcEdy b3VwKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQogCSAqIHRoZSBjaGlsZCBhbmQgdW53cmFwLiAg RS5nLiwgKEEpPz8gLT4gQT8/LCAoQSkrPyAtPiBBKz8KIAkgKi8KIAlpZiAoY2hpbGQtPm5vZGVU eXBlID09IFJQUl9QQVRURVJOX1ZBUiAmJgotCQljaGlsZC0+bWluID09IDEgJiYgY2hpbGQtPm1h eCA9PSAxICYmIGNoaWxkLT5yZWx1Y3RhbnQgPCAwKQorCQljaGlsZC0+bWluID09IDEgJiYgY2hp bGQtPm1heCA9PSAxICYmIGNoaWxkLT5yZWx1Y3RhbnQgPT0gZmFsc2UpCiAJewogCQljaGlsZC0+ bWluID0gcGF0dGVybi0+bWluOwogCQljaGlsZC0+bWF4ID0gcGF0dGVybi0+bWF4OwogCQljaGls ZC0+cmVsdWN0YW50ID0gcGF0dGVybi0+cmVsdWN0YW50OworCQljaGlsZC0+cmVsdWN0YW50X2xv Y2F0aW9uID0gcGF0dGVybi0+cmVsdWN0YW50X2xvY2F0aW9uOwogCQlyZXR1cm4gY2hpbGQ7CiAJ fQogCkBAIC0xMTUwLDcgKzExNTQsNyBAQCBmaWxsUlBSUGF0dGVyblZhcihSUFJQYXR0ZXJuTm9k ZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQgKmlkeCwgUlBSRGVwdGggZGVwdAogCWVsZW0t Pm1heCA9IChub2RlLT5tYXggPT0gSU5UX01BWCkgPyBSUFJfUVVBTlRJVFlfSU5GIDogbm9kZS0+ bWF4OwogCWVsZW0tPm5leHQgPSBSUFJfRUxFTUlEWF9JTlZBTElEOwogCWVsZW0tPmp1bXAgPSBS UFJfRUxFTUlEWF9JTlZBTElEOwotCWlmIChub2RlLT5yZWx1Y3RhbnQgPj0gMCkKKwlpZiAobm9k ZS0+cmVsdWN0YW50KQogCQllbGVtLT5mbGFncyB8PSBSUFJfRUxFTV9SRUxVQ1RBTlQ7CiAJKCpp ZHgpKys7CiAKQEAgLTExODksNyArMTE5Myw3IEBAIGZpbGxSUFJQYXR0ZXJuR3JvdXAoUlBSUGF0 dGVybk5vZGUgKm5vZGUsIFJQUlBhdHRlcm4gKnBhdCwgaW50ICppZHgsIFJQUkRlcHRoIGRlCiAJ CWVsZW0tPm1heCA9IChub2RlLT5tYXggPT0gSU5UX01BWCkgPyBSUFJfUVVBTlRJVFlfSU5GIDog bm9kZS0+bWF4OwogCQllbGVtLT5uZXh0ID0gUlBSX0VMRU1JRFhfSU5WQUxJRDsJLyogc2V0IGJ5 IGZpbmFsaXplICovCiAJCWVsZW0tPmp1bXAgPSBSUFJfRUxFTUlEWF9JTlZBTElEOwkvKiBzZXQg YWZ0ZXIgRU5EICovCi0JCWlmIChub2RlLT5yZWx1Y3RhbnQgPj0gMCkKKwkJaWYgKG5vZGUtPnJl bHVjdGFudCkKIAkJCWVsZW0tPmZsYWdzIHw9IFJQUl9FTEVNX1JFTFVDVEFOVDsKIAkJKCppZHgp Kys7CiAJCWdyb3VwU3RhcnRJZHggPSAqaWR4OwkvKiBjaGlsZHJlbiBzdGFydCBhZnRlciBCRUdJ TiAqLwpAQCAtMTIxNCw3ICsxMjE4LDcgQEAgZmlsbFJQUlBhdHRlcm5Hcm91cChSUFJQYXR0ZXJu Tm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LCBpbnQgKmlkeCwgUlBSRGVwdGggZGUKIAkJZW5k RWxlbS0+bWF4ID0gKG5vZGUtPm1heCA9PSBJTlRfTUFYKSA/IFJQUl9RVUFOVElUWV9JTkYgOiBu b2RlLT5tYXg7CiAJCWVuZEVsZW0tPm5leHQgPSBSUFJfRUxFTUlEWF9JTlZBTElEOwogCQllbmRF bGVtLT5qdW1wID0gZ3JvdXBTdGFydElkeDsJLyogbG9vcCB0byBmaXJzdCBjaGlsZCAqLwotCQlp ZiAobm9kZS0+cmVsdWN0YW50ID49IDApCisJCWlmIChub2RlLT5yZWx1Y3RhbnQpCiAJCQllbmRF bGVtLT5mbGFncyB8PSBSUFJfRUxFTV9SRUxVQ1RBTlQ7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4 IGI1NWExMWNjODM3Li5mMWE3MWNkMDM2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNjk2Nyw3ICsxNjk2 Nyw4IEBAIHJvd19wYXR0ZXJuX2FsdDoKIAkJCQkJCW4tPmNoaWxkcmVuID0gbGlzdF9tYWtlMigk MSwgJDMpOwogCQkJCQkJbi0+bWluID0gMTsKIAkJCQkJCW4tPm1heCA9IDE7Ci0JCQkJCQluLT5y ZWx1Y3RhbnQgPSAtMTsKKwkJCQkJCW4tPnJlbHVjdGFudCA9IGZhbHNlOworCQkJCQkJbi0+cmVs dWN0YW50X2xvY2F0aW9uID0gLTE7CiAJCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCQl9CkBAIC0xNjk5NCw3ICsxNjk5NSw4IEBAIHJvd19wYXR0ZXJu X3NlcToKIAkJCQkJCW4tPmNoaWxkcmVuID0gbGlzdF9tYWtlMigkMSwgJDIpOwogCQkJCQkJbi0+ bWluID0gMTsKIAkJCQkJCW4tPm1heCA9IDE7Ci0JCQkJCQluLT5yZWx1Y3RhbnQgPSAtMTsKKwkJ CQkJCW4tPnJlbHVjdGFudCA9IGZhbHNlOworCQkJCQkJbi0+cmVsdWN0YW50X2xvY2F0aW9uID0g LTE7CiAJCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CQl9CkBAIC0xNzAxMCw2ICsxNzAxMiw3IEBAIHJvd19wYXR0ZXJuX3Rlcm06CiAJCQkJCW4tPm1p biA9IHEtPm1pbjsKIAkJCQkJbi0+bWF4ID0gcS0+bWF4OwogCQkJCQluLT5yZWx1Y3RhbnQgPSBx LT5yZWx1Y3RhbnQ7CisJCQkJCW4tPnJlbHVjdGFudF9sb2NhdGlvbiA9IHEtPnJlbHVjdGFudF9s b2NhdGlvbjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwpAQCAtMTcwMjIsNyAr MTcwMjUsOCBAQCByb3dfcGF0dGVybl9wcmltYXJ5OgogCQkJCQluLT52YXJOYW1lID0gJDE7CiAJ CQkJCW4tPm1pbiA9IDE7CiAJCQkJCW4tPm1heCA9IDE7Ci0JCQkJCW4tPnJlbHVjdGFudCA9IC0x OworCQkJCQluLT5yZWx1Y3RhbnQgPSBmYWxzZTsKKwkJCQkJbi0+cmVsdWN0YW50X2xvY2F0aW9u ID0gLTE7CiAJCQkJCW4tPmNoaWxkcmVuID0gTklMOwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwog CQkJCQkkJCA9IChOb2RlICopIG47CkBAIC0xNzAzNSw3ICsxNzAzOSw4IEBAIHJvd19wYXR0ZXJu X3ByaW1hcnk6CiAJCQkJCW4tPmNoaWxkcmVuID0gbGlzdF9tYWtlMShpbm5lcik7CiAJCQkJCW4t Pm1pbiA9IDE7CiAJCQkJCW4tPm1heCA9IDE7Ci0JCQkJCW4tPnJlbHVjdGFudCA9IC0xOworCQkJ CQluLT5yZWx1Y3RhbnQgPSBmYWxzZTsKKwkJCQkJbi0+cmVsdWN0YW50X2xvY2F0aW9uID0gLTE7 CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBA IC0yMDQwMCwxNCArMjA0MDUsMTUgQEAgbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpCiAgKgkJQ3JlYXRlIGFuIFJQUlBhdHRl cm5Ob2RlIHdpdGggc3BlY2lmaWVkIHF1YW50aWZpZXIgYm91bmRzLgogICovCiBzdGF0aWMgUlBS UGF0dGVybk5vZGUgKgotbWFrZVJQUlF1YW50aWZpZXIoaW50IG1pbiwgaW50IG1heCwgUGFyc2VM b2MgcmVsdWN0YW50LCBpbnQgbG9jYXRpb24sCittYWtlUlBSUXVhbnRpZmllcihpbnQgbWluLCBp bnQgbWF4LCBQYXJzZUxvYyByZWx1Y3RhbnRfbG9jYXRpb24sIGludCBsb2NhdGlvbiwKIAkJCQkg IGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogewogCVJQUlBhdHRlcm5Ob2RlICpuID0gbWFrZU5v ZGUoUlBSUGF0dGVybk5vZGUpOwogCiAJbi0+bWluID0gbWluOwogCW4tPm1heCA9IG1heDsKLQlu LT5yZWx1Y3RhbnQgPSByZWx1Y3RhbnQ7CisJbi0+cmVsdWN0YW50ID0gKHJlbHVjdGFudF9sb2Nh dGlvbiA+PSAwKTsKKwluLT5yZWx1Y3RhbnRfbG9jYXRpb24gPSByZWx1Y3RhbnRfbG9jYXRpb247 CiAJbi0+bG9jYXRpb24gPSBsb2NhdGlvbjsKIAlyZXR1cm4gbjsKIH0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYwppbmRleCBmNWJiODFlOGMwNS4uOTI4YmVkMmU5ZmIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMKQEAgLTY3NzgsNyArNjc3OCw3IEBAIGFwcGVuZF9wYXR0ZXJuX3F1YW50 aWZpZXIoU3RyaW5nSW5mbyBidWYsIFJQUlBhdHRlcm5Ob2RlICpub2RlKQogCWVsc2UKIAkJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICJ7JWQsJWR9Iiwgbm9kZS0+bWluLCBub2RlLT5tYXgpOwogCi0J aWYgKG5vZGUtPnJlbHVjdGFudCA+PSAwKQorCWlmIChub2RlLT5yZWx1Y3RhbnQpCiAJewogCQlp ZiAoIWhhc19xdWFudGlmaWVyKQogCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJ7MX0iKTsJLyog bWFrZSByZWx1Y3RhbnQgPyB1bmFtYmlndW91cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4 IDhhZjUyN2I1N2QzLi4yMmU4NTZjNjcxZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNjA4 LDggKzYwOCw4IEBAIHR5cGVkZWYgc3RydWN0IFJQUlBhdHRlcm5Ob2RlCiAJUlBSUGF0dGVybk5v ZGVUeXBlIG5vZGVUeXBlOwkvKiBWQVIsIFNFUSwgQUxULCBHUk9VUCAqLwogCWludAkJCW1pbjsJ CQkvKiBtaW5pbXVtIHJlcGV0aXRpb25zICgwIGZvciAqLCA/KSAqLwogCWludAkJCW1heDsJCQkv KiBtYXhpbXVtIHJlcGV0aXRpb25zIChJTlRfTUFYIGZvciAqLCArKSAqLwotCVBhcnNlTG9jCXJl bHVjdGFudDsJCS8qIGxvY2F0aW9uIG9mICc/JyBmb3IgcmVsdWN0YW50LCAtMSBmb3IKLQkJCQkJ CQkJICogZ3JlZWR5ICovCisJYm9vbAkJcmVsdWN0YW50OwkJLyogdHJ1ZSBmb3IgcmVsdWN0YW50 IChub24tZ3JlZWR5KSAqLworCVBhcnNlTG9jCXJlbHVjdGFudF9sb2NhdGlvbjsgLyogbG9jYXRp b24gb2YgJz8nIHRva2VuLCBvciAtMSAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4g bG9jYXRpb24sIG9yIC0xICovCiAJY2hhcgkgICAqdmFyTmFtZTsJCS8qIFZBUjogdmFyaWFibGUg bmFtZSAqLwogCUxpc3QJICAgKmNoaWxkcmVuOwkJLyogU0VRLCBBTFQsIEdST1VQOiBjaGlsZCBu b2RlcyAqLwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0003-expand-test-coverage.txt" Content-Disposition: attachment; filename="0003-expand-test-coverage.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufg1s2 RnJvbSAzNTBmMzIzNGYzMTgwNTk4MjZhMmIyYmQ5NmU5MWU0ZDdmYTIyMjUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDMgTWFyIDIwMjYgMTc6MDY6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDAzLzEyXSBF eHBhbmQgUlBSIHRlc3QgY292ZXJhZ2UgYW5kIGltcHJvdmUgdGVzdCBjb21tZW50cwoKLS0tCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAgICAgICB8IDI5MjAgKysrLS0tLS0t LS0tLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8 ICAzNTQgKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCB8ICAx NzcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQgICAgIHwgIDY3OSAr KysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCAgICAgICAgICAgICAgfCAxNzAzICsr LS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsICAgICAgICAgfCAg MTgzICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8ICAgNjkg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsICAgICAgICAgIHwgIDUxMiArKyst CiA4IGZpbGVzIGNoYW5nZWQsIDI0MTUgaW5zZXJ0aW9ucygrKSwgNDE4MiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKaW5kZXggOGFmNDQzOTI3MDAuLjM1YjkwYTA0NDky IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CkBAIC0xLDUgKzEsMTAgQEAKIC0tCi0tLSBU ZXN0IGZvciByb3cgcGF0dGVybiBkZWZpbml0aW9uIGNsYXVzZQorLS0gVGVzdCBmb3Igcm93IHBh dHRlcm4gcmVjb2duaXRpb246IFdJTkRPVyBjbGF1c2UgaW50ZWdyYXRpb24gYW5kCistLSByZWFs LXdvcmxkIHNjZW5hcmlvIHRlc3RzIHVzaW5nIHN0b2NrIHByaWNlIGRhdGEuCistLQorLS0gUGFy c2VyL3BsYW5uZXIgdGVzdHM6IHJwcl9iYXNlLnNxbAorLS0gTkZBIGVuZ2luZSB0ZXN0czogcnBy X25mYS5zcWwKKy0tIEVYUExBSU4gc3RhdGlzdGljcyB0ZXN0czogcnByX2V4cGxhaW4uc3FsCiAt LQogQ1JFQVRFIFRFTVAgVEFCTEUgc3RvY2sgKAogICAgICAgIGNvbXBhbnkgVEVYVCwKQEAgLTUx LDYgKzU2LDkgQEAgU0VMRUNUICogRlJPTSBzdG9jazsKICBjb21wYW55MiB8IDA3LTEwLTIwMjMg fCAgMTMwMAogKDIwIHJvd3MpCiAKKy0tCistLSBCYXNpYyBwYXR0ZXJuIG1hdGNoaW5nIHdpdGgg UFJFVi9ORVhUCistLQogLS0gYmFzaWMgdGVzdCB1c2luZyBQUkVWCiBTRUxFQ1QgY29tcGFueSwg dGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsCiAgbnRoX3ZhbHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZApAQCAt NDI2LDcgKzQzNCw3IEBAIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIKICBjb21wYW55MiB8IDA3LTEw LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAogKDIwIHJvd3MpCiAKLS0t IGJhc2ljIHRlc3Qgd2l0aCBub25lLWdyZWVkeSBwYXR0ZXJuCistLSBiYXNpYyB0ZXN0IHdpdGgg Zml4ZWQtbGVuZ3RoIHBhdHRlcm4gKEEgQSBBID0gZXhhY3RseSAzKQogU0VMRUNUIGNvbXBhbnks IHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3CiAgRlJPTSBzdG9jawogIFdJTkRPVyB3IEFT ICgKQEAgLTc1Miw3ICs3NjAsOSBAQCBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSCiAgY29tcGFueTIg fCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKICgyMCByb3dz KQogCi0tLSB1c2luZyBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCistLSB1c2luZyBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XIChzYW1lIHBhdHRlcm4gYXMgYWJvdmU7CistLSBtYXRj aCBsZW5ndGggaXMgYWx3YXlzIDIsIHNvIHJlc3VsdCBpcyBpZGVudGljYWwgdG8gU0tJUCBQQVNU IExBU1QgUk9XLgorLS0gU0tJUCBUTyBORVhUIFJPVydzIGRpc3RpbmN0IGVmZmVjdCBpcyB0ZXN0 ZWQgaW4gYmFja3RyYWNraW5nIHNlY3Rpb24uKQogU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmlj ZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3CiAg RlJPTSBzdG9jawogIFdJTkRPVyB3IEFTICgKQEAgLTc4OSw2ICs3OTksMTc5IEBAIFNFTEVDVCBj b21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFs dWUocHJpY2UpIE9WRVIKICBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgIAogKDIwIHJvd3MpCiAKKy0tIFBSRVYgcmV0dXJucyBOVUxMIGF0IHBh cnRpdGlvbidzIGZpcnN0IHJvdyAobnVsbF9zbG90IHBhdGgpCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyBQ QVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgUEFUVEVSTiAoQk9VTkRBUlkgUkVTVCsp CisgREVGSU5FCisgIEJPVU5EQVJZIEFTIFBSRVYocHJpY2UpIElTIE5VTEwsCisgIFJFU1QgQVMg UFJFVihwcmljZSkgSVMgTk9UIE5VTEwKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJp Y2UgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorIGNv bXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgMTAKKyBjb21wYW55MSB8IDA3LTAyLTIw MjMgfCAgIDIwMCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwg ICAxMjAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgIDEwCisgY29tcGFueTIgfCAwNy0wMi0y MDIzIHwgIDIwMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wNS0yMDIzIHwgIDE1MDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYw IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8 ICAxMjAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAwCiso MjAgcm93cykKKworLS0gTkVYVCByZXR1cm5zIE5VTEwgYXQgcGFydGl0aW9uJ3MgbGFzdCByb3cg KG51bGxfc2xvdCBwYXRoKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikg T1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkK KyBPUkRFUiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4gKEEr IEJPVU5EQVJZKQorIERFRklORQorICBBIEFTIE5FWFQocHJpY2UpIElTIE5PVCBOVUxMLAorICBC T1VOREFSWSBBUyBORVhUKHByaWNlKSBJUyBOVUxMCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAg ICB8IHByaWNlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgIDEwCisgY29tcGFueTEgfCAw Ny0wMi0yMDIzIHwgICAyMDAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUw IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAwCisgY29tcGFu eTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8 ICAgIDkwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDkt MjAyMyB8ICAgMTIwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAg ICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAxMAorIGNvbXBhbnkyIHwg MDctMDItMjAyMyB8ICAyMDAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUw MCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMg fCAgICA2MCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5 LTIwMjMgfCAgMTIwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAg ICAgMAorKDIwIHJvd3MpCisKKy0tIERFU0Mgb3JkZXI6IFBSRVYgcmVmZXJzIHRvIHRoZSByb3cg d2l0aCBsYXRlciBkYXRlCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBP VkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQor IE9SREVSIEJZIHRkYXRlIERFU0MKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJO IChTVEFSVCBET1dOKyBVUCspCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIERPV04gQVMg cHJpY2UgPCBQUkVWKHByaWNlKSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKQorKTsKKyBj b21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAg ICAgMworIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAx MTAgfCAgICAgMworIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIz IHwgICAxNDAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w MS0yMDIzIHwgICAxMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwg ICAgIDMKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAx MTAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAy MyB8ICAxNDAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDEtMjAyMyB8ICAgIDUwIHwgICAgIDAKKygyMCByb3dzKQorCistLSBNdWx0aXBsZSBwYXJ0aXRp b25zIHdpdGggdW5lcXVhbCBzaXplcworV0lUSCBtdWx0aV9wYXJ0IEFTICgKKyBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgKCdhJywgMSwgMTApLCAoJ2EnLCAyLCAyMCksICgnYScsIDMsIDE1KSwK KyAgKCdiJywgMSwgNSksCisgICgnYycsIDEsIDEwMCksICgnYycsIDIsIDIwMCksICgnYycsIDMs IDE1MCksICgnYycsIDQsIDE0MCksICgnYycsIDUsIDMwMCkKKyApIEFTIHQoZ3JwLCBpZCwgdmFs KQorKQorU0VMRUNUIGdycCwgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIG11bHRpX3Bh cnQKK1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgZ3JwCisgT1JERVIgQlkgaWQKKyBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChBIEIrKQorIERFRklORQorICBBIEFTIHZh bCA8PSBORVhUKHZhbCksCisgIEIgQVMgdmFsID4gUFJFVih2YWwpIE9SIHZhbCA8IFBSRVYodmFs KQorKTsKKyBncnAgfCBpZCB8IHZhbCB8IGNvdW50IAorLS0tLS0rLS0tLSstLS0tLSstLS0tLS0t CisgYSAgIHwgIDEgfCAgMTAgfCAgICAgMworIGEgICB8ICAyIHwgIDIwIHwgICAgIDAKKyBhICAg fCAgMyB8ICAxNSB8ICAgICAwCisgYiAgIHwgIDEgfCAgIDUgfCAgICAgMAorIGMgICB8ICAxIHwg MTAwIHwgICAgIDUKKyBjICAgfCAgMiB8IDIwMCB8ICAgICAwCisgYyAgIHwgIDMgfCAxNTAgfCAg ICAgMAorIGMgICB8ICA0IHwgMTQwIHwgICAgIDAKKyBjICAgfCAgNSB8IDMwMCB8ICAgICAwCiso OSByb3dzKQorCistLSBGTE9BVC9OVU1FUklDIERFRklORSBjb25kaXRpb25zCitXSVRIIGZsb2F0 X2RhdGEgQVMgKAorIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAoMSwgMS4wOjpmbG9hdDgpLCAo MiwgMS41KSwgKDMsIDEuNDk5OSksICg0LCAxLjUwMDAxKSwgKDUsIDAuMSkKKyApIEFTIHQoaWQs IHZhbCkKKykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZmxvYXRfZGF0 YQorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgUEFUVEVSTiAoQSBCKykKKyBERUZJTkUKKyAgQSBBUyBUUlVFLAorICBCIEFTIHZhbCA+IFBS RVYodmFsKSAqIDAuOTkKKyk7CisgaWQgfCAgIHZhbCAgIHwgY291bnQgCistLS0tKy0tLS0tLS0t LSstLS0tLS0tCisgIDEgfCAgICAgICAxIHwgICAgIDQKKyAgMiB8ICAgICAxLjUgfCAgICAgMAor ICAzIHwgIDEuNDk5OSB8ICAgICAwCisgIDQgfCAxLjUwMDAxIHwgICAgIDAKKyAgNSB8ICAgICAw LjEgfCAgICAgMAorKDUgcm93cykKKworLS0KKy0tIFNLSVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBG cmFtZSBib3VuZGFyeQorLS0KIC0tIG1hdGNoIGV2ZXJ5dGhpbmcKIFNFTEVDVCBjb21wYW55LCB0 ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2Up IE9WRVIgdwogIEZST00gc3RvY2sKQEAgLTExMjgsNiArMTMxMSw0NyBAQCBET1dOIEFTIHByaWNl IDwgUFJFVihwcmljZSkKICBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgfCAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAwCiAoMjAgcm93cykKIAorLS0gcm93X251bWJlcigpIHdpdGhpbiBSUFIgcmVk dWNlZCBmcmFtZQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgcm93X251bWJlcigpIE9W RVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgUEFSVElU SU9OIEJZIGNvbXBhbnkKKyBPUkRFUiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwK KyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJp Y2UpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgcm93X251bWJlciB8IGNv dW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgMSB8ICAgICA0Cisg Y29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAyIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgIDMgfCAgICAgMAorIGNvbXBhbnkx IHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAgNCB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICA1IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2 LTIwMjMgfCAgICA5MCB8ICAgICAgICAgIDYgfCAgICAgNAorIGNvbXBhbnkxIHwgMDctMDctMjAy MyB8ICAgMTEwIHwgICAgICAgICAgNyB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwg ICAxMzAgfCAgICAgICAgICA4IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEy MCB8ICAgICAgICAgIDkgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwg ICAgICAgICAxMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAg ICAgICAxIHwgICAgIDQKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAg IDIgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgMyB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICA0IHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgIDUgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgNiB8ICAgICA0CisgY29t cGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgICA3IHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgIDggfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgOSB8ICAgICAwCisgY29tcGFueTIgfCAwNy0x MC0yMDIzIHwgIDEzMDAgfCAgICAgICAgIDEwIHwgICAgIDAKKygyMCByb3dzKQorCistLQorLS0g U1FMIEludGVncmF0aW9uOiBKT0lOLCBDVEUsIExBVEVSQUwKKy0tCiAtLSBKT0lOIGNhc2UKIENS RUFURSBURU1QIFRBQkxFIHQxIChpIGludCwgdjEgaW50KTsKIENSRUFURSBURU1QIFRBQkxFIHQy IChqIGludCwgdjIgaW50KTsKQEAgLTEyNjIsNiArMTQ4Niw5IEBAIFNFTEVDVCBpZCwgaSwgaiwg Y291bnQoKikgT1ZFUiB3CiAgIDEgfCAxMCB8IDIwIHwgICAgIDAKICgxMCByb3dzKQogCistLQor LS0gTGFyZ2Utc2NhbGUgLyBzY2FsYWJpbGl0eSB0ZXN0cworLS0KIC0tIFNtb2tlIHRlc3QgZm9y IGxhcmdlciBwYXJ0aXRpb25zLgogV0lUSCBzIEFTICgKICBTRUxFQ1QgdiwgY291bnQoKikgT1ZF UiB3IEFTIGMKQEAgLTEzMjksNyArMTU1Niw3IEBAIFNFTEVDVCBtYXRjaF9maXJzdCwgbWF0Y2hf bGFzdCwgbWF0Y2hfbGVuIEZST00gcmVzdWx0IFdIRVJFIG1hdGNoX2xlbiA+IDA7CiAoMSByb3cp CiAKIC0tCi0tLSBVc2luZyBJR05PUkUgTlVMTFMKKy0tIElHTk9SRSBOVUxMUwogLS0KIC0tIG5v IE5VTEwgcm93cyBjYXNlLiBUaGUgcmVzdWx0IHNob3VsZCBiZSBpZGVudGljYWwgd2l0aCAiYmFz aWMgdGVzdCB1c2luZyBQUkVWIgogU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3Rf dmFsdWUocHJpY2UpIElHTk9SRSBOVUxMUyBPVkVSIHcsCkBAIC0xMzcxLDcgKzE1OTgsNyBAQCBT RUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgSUdOT1JFIE5V TExTIE9WRVIgdywKICgyMCByb3dzKQogCiAtLSBudGhfdmFsdWUgd2l0aCBJR05PUkUgTlVMTFMg b3B0aW9uIHdhbnRzIHRvIGZpbmQgdGhlIHNlY29uZCByb3cgYnV0Ci0tLSBkdWUgYSBOVUxMIGlu IHRoZSBtaWRsbGUsIGl0IHJldHVybnMgdGhlIHRoaXJkIHJvdy4KKy0tIGR1ZSB0byBhIE5VTEwg aW4gdGhlIG1pZGRsZSwgaXQgcmV0dXJucyB0aGUgdGhpcmQgcm93LgogV0lUSCBkYXRhIEFTICgK ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgKDEwLCAxKSwgKDExLCBOVUxMKSwgKDEyLCAzKSwg KDEzLCA0KQpAQCAtMTM5NSw4ICsxNjIyLDggQEAgV0lUSCBkYXRhIEFTICgKICg0IHJvd3MpCiAK IC0tIG50aF92YWx1ZSB3aXRoIElHTk9SRSBOVUxMUyBvcHRpb24gd2FudHMgdG8gZmluZCB0aGUg dGhpcmQgcm93IGJ1dAotLS0gZHVlIGEgTlVMTCBpbiB0aGUgbWlkbGxlLCBpdCByZWFjaGVzIHRo ZSBlbmQgb2YgcmVkdWNlZCBmcmFtZSBhbmQKLS0tIHJldHVybiBOVUxMCistLSBkdWUgdG8gYSBO VUxMIGluIHRoZSBtaWRkbGUsIGl0IHJlYWNoZXMgdGhlIGVuZCBvZiByZWR1Y2VkIGZyYW1lIGFu ZAorLS0gcmV0dXJucyBOVUxMCiBXSVRIIGRhdGEgQVMgKAogIFNFTEVDVCAqIEZST00gKFZBTFVF UwogICAoMTAsIDEpLCAoMTEsIE5VTEwpLCAoMTIsIDMpLCAoMTMsIDQpCkBAIC0xNDU5LDI1NTUg KzE2ODYsMTU2IEBAIFdJTkRPVyB3IEFTICgKICBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMw MCB8ICAgICAgICAgCiAoMjAgcm93cykKIAotLS0gVmlldyBhbmQgcGdfZ2V0X3ZpZXdkZWYgdGVz dHMuCi1DUkVBVEUgVEVNUCBWSUVXIHZfd2luZG93IEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUs IHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVS IHcsCi0gbnRoX3ZhbHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZAotIEZST00gc3Rv Y2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKKy0tIElHTk9SRSBOVUxM UyArIGZpcnN0X3ZhbHVlIHdoZXJlIGZpcnN0IHZhbHVlIGluIHJlZHVjZWQgZnJhbWUgaXMgTlVM TAorV0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgKDEsIE5VTEwpLCAo MiwgTlVMTCksICgzLCAzMCksICg0LCA0MCkKKyApIEFTIHQoaWQsIHZhbCkpCitTRUxFQ1QgaWQs IHZhbCwKKyBmaXJzdF92YWx1ZSh2YWwpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgZnZfaWdudWxs LAorIGNvdW50KCopIE9WRVIgdworRlJPTSBkYXRhCitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkg aWQKICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJ TklUSUFMCi0gUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQotIERFRklORQotICBTVEFSVCBBUyBU UlVFLAotICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAotICBET1dOIEFTIHByaWNlIDwgUFJF VihwcmljZSkKLSk7Ci1TRUxFQ1QgKiBGUk9NIHZfd2luZG93OwotIGNvbXBhbnkgIHwgICB0ZGF0 ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgbnRoX3NlY29uZCAKLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCi0gY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEw MCB8ICAgICAgICAxNDAgfCAwNy0wMi0yMDIzCi0gY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAy MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKLSBjb21wYW55MSB8IDA3LTAzLTIwMjMg fCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAotIGNvbXBhbnkxIHwgMDctMDQt MjAyMyB8ICAgMTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCi0gY29tcGFueTEgfCAw Ny0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKLSBjb21wYW55 MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgIDkwIHwgICAgICAgIDEyMCB8IDA3LTA3 LTIwMjMKLSBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8IAotIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgCi0gY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAKLSBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8IAotIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUw IHwgICAgICAgICAgNTAgfCAgICAgICAxNDAwIHwgMDctMDItMjAyMwotIGNvbXBhbnkyIHwgMDct MDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCi0gY29tcGFueTIg fCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKLSBjb21w YW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAot IGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgCi0gY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICA2MCB8ICAgICAg IDEyMDAgfCAwNy0wNy0yMDIzCi0gY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAKLSBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAotIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAx MjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCi0gY29tcGFueTIgfCAwNy0xMC0yMDIz IHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKLSgyMCByb3dzKQotCi1TRUxF Q1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfd2luZG93Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1QgY29tcGFueSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICAgIHRkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgcHJpY2Us ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIGZp cnN0X3ZhbHVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg IGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBsYXN0X3ZhbHVlLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgbnRoX3ZhbHVlKHRkYXRlLCAyKSBPVkVS IHcgQVMgbnRoX3NlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgIEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElU SU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICBQQVRURVJOIChzdGFydCB1cCsgZG93bispICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklO RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgc3RhcnQgQVMgdHJ1ZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g ICB1cCBBUyAocHJpY2UgPiBwcmV2KHByaWNlKSksICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGRvd24gQVMgKHByaWNlIDwgcHJldihw cmljZSkpICk7Ci0oMSByb3cpCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFU VEVSTiAoQSspCisgREVGSU5FIEEgQVMgVFJVRQorKTsKKyBpZCB8IHZhbCB8IGZ2X2lnbnVsbCB8 IGNvdW50IAorLS0tLSstLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgIDEgfCAgICAgfCAgICAg ICAgMzAgfCAgICAgNAorICAyIHwgICAgIHwgICAgICAgICAgIHwgICAgIDAKKyAgMyB8ICAzMCB8 ICAgICAgICAgICB8ICAgICAwCisgIDQgfCAgNDAgfCAgICAgICAgICAgfCAgICAgMAorKDQgcm93 cykKIAotLS0KLS0tIFBhdHRlcm4gb3B0aW1pemF0aW9uIHRlc3RzCi0tLSBWSUVXIHNob3dzIG9y aWdpbmFsIHBhdHRlcm4sIEVYUExBSU4gc2hvd3Mgb3B0aW1pemVkIHBhdHRlcm4KLS0tCi0tLSBU ZXN0OiBkdXBsaWNhdGUgYWx0ZXJuYXRpdmVzIHJlbW92YWwgKEEgfCBCIHwgQSkrIC0+IChBIHwg QikrCi1DUkVBVEUgVEVNUCBWSUVXIHZfb3B0X2R1cCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRl LCBwcmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQ QVJUSVRJT04gQlkgY29tcGFueQorLS0gSUdOT1JFIE5VTExTICsgYWxsIHZhbHVlcyBOVUxMIGlu IHJlZHVjZWQgZnJhbWUKK1dJVEggZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICgxLCBOVUxMKSwgKDIsIE5VTEwpLCAoMywgTlVMTCkKKyApIEFTIHQoaWQsIHZhbCkpCitTRUxF Q1QgaWQsIHZhbCwKKyBmaXJzdF92YWx1ZSh2YWwpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgZnZf aWdudWxsLAorIGxhc3RfdmFsdWUodmFsKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGx2X2lnbnVs bCwKKyBjb3VudCgqKSBPVkVSIHcKK0ZST00gZGF0YQorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZ IGlkCiAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0g SU5JVElBTAotIFBBVFRFUk4gKChBIHwgQiB8IEEpKykKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+ IDEwMCwKLSAgQiBBUyBwcmljZSA8PSAxMDAKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyBQQVRURVJOIChBKykKKyBERUZJTkUgQSBBUyBUUlVFCiApOwotU0VMRUNUIHBnX2dldF92 aWV3ZGVmKCd2X29wdF9kdXAnKTsgIC0tIG9yaWdpbmFsOiAoKGEgfCBiIHwgYSkrKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgY291bnQoKikgT1ZF UiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5ET1cg dyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg SU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBQQVRURVJOICgoYSB8IGIgfCBhKSspICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYSBBUyAocHJpY2UgPiAxMDAp LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICBiIEFTIChwcmljZSA8PSAxMDApICk7Ci0oMSByb3cpCisgaWQgfCB2YWwg fCBmdl9pZ251bGwgfCBsdl9pZ251bGwgfCBjb3VudCAKKy0tLS0rLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLQorICAxIHwgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwg ICAgIDMKKyAgMiB8ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAwCisgIDMgfCAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgMAorKDMgcm93cykKIAotRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X2R1cDsgIC0tIG9wdGltaXplZDogKChhIHwg YikrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24g dl9vcHRfZHVwCi0gICAtPiAgV2luZG93QWdnCi0gICAgICAgICBXaW5kb3c6IHcgQVMgKFBBUlRJ VElPTiBCWSBzdG9jay5jb21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKLSAgICAgICAgIFBhdHRlcm46IChhIHwgYikrCi0gICAgICAgICAtPiAg U29ydAotICAgICAgICAgICAgICAgU29ydCBLZXk6IHN0b2NrLmNvbXBhbnkKLSAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcgcm93cykKKy0tCistLSBsYXN0X3ZhbHVlIElH Tk9SRSBOVUxMUyB3aXRoIHJlZHVjZWQgZnJhbWUgY29udGFpbmluZyBhbGwgTlVMTHMKKy0tIEV4 ZXJjaXNlcyBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZSBTRUVLX1RBSUwgb3V0LW9mLWZy YW1lIHBhdGgKKy0tIHdoZW4gbm90bnVsbF9yZWxwb3MgPj0gbnVtX3JlZHVjZWRfZnJhbWUuCist LQorQ1JFQVRFIFRFTVAgVEFCTEUgcnByX251bGx2YWwgKGlkIElOVCwgdmFsIElOVCk7CitJTlNF UlQgSU5UTyBycHJfbnVsbHZhbCBWQUxVRVMgKDEsIDEwKSwgKDIsIE5VTEwpLCAoMywgTlVMTCks ICg0LCAyMCk7CitTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICBsYXN0X3ZhbHVlKHZhbCkgSUdOT1JF IE5VTExTIE9WRVIgdyBBUyBsdl9pZ251bGwsCisgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfbnVsbHZhbAorV0lORE9XIHcgQVMgKAorICBPUkRFUiBCWSBpZAorICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgIFBBVFRFUk4gKEEgQispCisgIERFRklORQorICAgIEEg QVMgdmFsIElTIE5PVCBOVUxMLAorICAgIEIgQVMgdmFsIElTIE5VTEwKKyk7CisgaWQgfCB2YWwg fCBsdl9pZ251bGwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tCisgIDEgfCAg MTAgfCAgICAgICAgMTAgfCAgIDMKKyAgMiB8ICAgICB8ICAgICAgICAgICB8ICAgMAorICAzIHwg ICAgIHwgICAgICAgICAgIHwgICAwCisgIDQgfCAgMjAgfCAgICAgICAgICAgfCAgIDAKKyg0IHJv d3MpCiAKLS0tIFRlc3Q6IGR1cGxpY2F0ZSBncm91cCByZW1vdmFsICgoQSB8IEIpKyB8IChBIHwg QikrKSAtPiAoQSB8IEIpKwotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9kdXBfZ3JvdXAgQVMKLVNF TEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sK LSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKEEg fCBCKSsgfCAoQSB8IEIpKykKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBw cmljZSA8PSAxMDAKKy0tCistLSBOVUxMIGhhbmRsaW5nCistLQorQ1JFQVRFIFRFTVAgVEFCTEUg c3RvY2tfbnVsbCAoY29tcGFueSBURVhULCB0ZGF0ZSBEQVRFLCBwcmljZSBJTlRFR0VSKTsKK0lO U0VSVCBJTlRPIHN0b2NrX251bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0wMScsIDEwMCk7CitJ TlNFUlQgSU5UTyBzdG9ja19udWxsIFZBTFVFUyAoJ2MxJywgJzIwMjMtMDctMDInLCBOVUxMKTsg IC0tIE5VTEwgaW4gbWlkZGxlCitJTlNFUlQgSU5UTyBzdG9ja19udWxsIFZBTFVFUyAoJ2MxJywg JzIwMjMtMDctMDMnLCAyMDApOworSU5TRVJUIElOVE8gc3RvY2tfbnVsbCBWQUxVRVMgKCdjMScs ICcyMDIzLTA3LTA0JywgMTUwKTsKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50 KCopIE9WRVIgdyBBUyBtYXRjaF9jb3VudAorRlJPTSBzdG9ja19udWxsCitXSU5ET1cgdyBBUyAo CisgIFBBUlRJVElPTiBCWSBjb21wYW55CisgIE9SREVSIEJZIHRkYXRlCisgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBQQVRURVJOIChTVEFSVCBV UCBET1dOKQorICBERUZJTkUgU1RBUlQgQVMgVFJVRSwgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNl KSwgRE9XTiBBUyBwcmljZSA8CitQUkVWKHByaWNlKQogKTsKLVNFTEVDVCBwZ19nZXRfdmlld2Rl Zigndl9vcHRfZHVwX2dyb3VwJyk7ICAtLSBvcmlnaW5hbDogKChhIHwgYikrIHwgKGEgfCBiKSsp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotICBTRUxFQ1QgY29tcGFueSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHRkYXRlLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgICAgcHJpY2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBjb3Vu dCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICAgRlJPTSBzdG9jayAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg IFdJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwotICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCi0gICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIFBBVFRFUk4gKChhIHwgYikr IHwgKGEgfCBiKSspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBhIEFTIChwcmlj ZSA+IDEwMCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgIGIgQVMgKHByaWNlIDw9IDEwMCkgKTsKLSgxIHJvdykKLQot RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X2R1cF9ncm91cDsgIC0tIG9w dGltaXplZDogKChhIHwgYikrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1 YnF1ZXJ5IFNjYW4gb24gdl9vcHRfZHVwX2dyb3VwCi0gICAtPiAgV2luZG93QWdnCi0gICAgICAg ICBXaW5kb3c6IHcgQVMgKFBBUlRJVElPTiBCWSBzdG9jay5jb21wYW55IFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKLSAgICAgICAgIFBhdHRlcm46IChh IHwgYikrCi0gICAgICAgICAtPiAgU29ydAotICAgICAgICAgICAgICAgU29ydCBLZXk6IHN0b2Nr LmNvbXBhbnkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcgcm93cykK KyBjb21wYW55IHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgbWF0Y2hfY291bnQgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGMxICAgICAgfCAwNy0wMS0yMDIz IHwgICAxMDAgfCAgICAgICAgICAgMAorIGMxICAgICAgfCAwNy0wMi0yMDIzIHwgICAgICAgfCAg ICAgICAgICAgMAorIGMxICAgICAgfCAwNy0wMy0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgMAor IGMxICAgICAgfCAwNy0wNC0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgMAorKDQgcm93cykKIAot LS0gVGVzdDogY29uc2VjdXRpdmUgdmFycyBtZXJnZSAoQSBBIEEpIC0+IEF7M30KLUNSRUFURSBU RU1QIFZJRVcgdl9vcHRfbWVyZ2UgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNv dW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZ IGNvbXBhbnkKKy0tIENvbnNlY3V0aXZlIE5VTExzOiBQUkVWIG5hdmlnYXRlcyB0aHJvdWdoIE5V TEwgdmFsdWVzCitDUkVBVEUgVEVNUCBUQUJMRSBycHJfY29uc2VjX251bGwgKGlkIElOVCwgdmFs IElOVCk7CitJTlNFUlQgSU5UTyBycHJfY29uc2VjX251bGwgVkFMVUVTCisgKDEsIDEwMCksICgy LCBOVUxMKSwgKDMsIE5VTEwpLCAoNCwgTlVMTCksICg1LCAyMDApLCAoNiwgMzAwKTsKKy0tIFBS RVYodmFsKSBJUyBOVUxMIHN1Y2NlZWRzIGZvciBib3RoIG51bGxfc2xvdCAoZmlyc3Qgcm93KSBh bmQgYWN0dWFsIE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitG Uk9NIHJwcl9jb25zZWNfbnVsbAorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCiAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBB VFRFUk4gKEEgQSBBKQotIERFRklORQotICBBIEFTIHByaWNlID49IDE0MCBBTkQgcHJpY2UgPD0g MTUwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X29wdF9tZXJnZScpOyAgLS0gb3JpZ2lu YWw6IChhIGEgYSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92 aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAg dGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr Ci0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9NIHN0b2NrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21wYW55IFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0gICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgUEFUVEVS TiAoYSBhIGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg IGEgQVMgKChwcmljZSA+PSAxNDApIEFORCAocHJpY2UgPD0gMTUwKSkgKTsKLSgxIHJvdykKLQot RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X21lcmdlOyAgLS0gb3B0aW1p emVkOiBhezN9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU3VicXVlcnkgU2Nh biBvbiB2X29wdF9tZXJnZQotICAgLT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3IEFT IChQQVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0ZXJuOiBhezN9Ci0gICAgICAgICAt PiAgU29ydAotICAgICAgICAgICAgICAgU29ydCBLZXk6IHN0b2NrLmNvbXBhbnkKLSAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcgcm93cykKKyBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChBIEIrIEMpCisgREVGSU5FCisgIEEgQVMgdmFsIElT IE5VTEwsCisgIEIgQVMgdmFsIElTIE5VTEwgQU5EIFBSRVYodmFsKSBJUyBOVUxMLAorICBDIEFT IHZhbCBJUyBOT1QgTlVMTAorKTsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0K KyAgMSB8IDEwMCB8ICAgMAorICAyIHwgICAgIHwgICA0CisgIDMgfCAgICAgfCAgIDAKKyAgNCB8 ICAgICB8ICAgMAorICA1IHwgMjAwIHwgICAwCisgIDYgfCAzMDAgfCAgIDAKKyg2IHJvd3MpCiAK LS0tIFRlc3Q6IHF1YW50aWZpZWQgdmFycyBtZXJnZSAoQSBBKyBBKSAtPiBBezMsfQotQ1JFQVRF IFRFTVAgVklFVyB2X29wdF9tZXJnZV9xdWFudCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJU SVRJT04gQlkgY29tcGFueQorLS0gTkVYVCh2YWwpIHRocm91Z2ggY29uc2VjdXRpdmUgTlVMTHMK K1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9jb25zZWNf bnVsbAorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCiAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKEEgQSsgQSkK LSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZign dl9vcHRfbWVyZ2VfcXVhbnQnKTsgIC0tIG9yaWdpbmFsOiAoYSBhKyBhKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VM RUNUIGNvbXBhbnksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr Ci0gICAgIHByaWNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFT IGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgIEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAo UEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElB TCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICBQQVRURVJOIChhIGErIGEpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg IERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYSBBUyAocHJpY2UgPiAxMDApICk7Ci0o MSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9tZXJnZV9x dWFudDsgIC0tIG9wdGltaXplZDogYXszLH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBTdWJxdWVyeSBTY2FuIG9uIHZfb3B0X21lcmdlX3F1YW50Ci0gICAtPiAgV2luZG93QWdn Ci0gICAgICAgICBXaW5kb3c6IHcgQVMgKFBBUlRJVElPTiBCWSBzdG9jay5jb21wYW55IFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKLSAgICAgICAgIFBh dHRlcm46IGF7Myx9IgotICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAgIFNvcnQgS2V5 OiBzdG9jay5jb21wYW55Ci0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gc3RvY2sKLSg3 IHJvd3MpCi0KLS0tIFRlc3Q6IG1lcmdlIHR3byB1bmJvdW5kZWQgKEErIEErKSAtPiBBezIsfQot Q1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV91bmJvdW5kZWQgQVMKLVNFTEVDVCBjb21wYW55 LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBB UyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSsgQSspCi0gREVGSU5F Ci0gIEEgQVMgcHJpY2UgPiAxMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X21l cmdlX3VuYm91bmRlZCcpOyAgLS0gb3JpZ2luYWw6IChhKyBhKykKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBj b21wYW55LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICBwcmljZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3Vu dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICBGUk9NIHN0b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJ VElPTiBCWSBjb21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORyArCi0gICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgUEFUVEVSTiAoYSsgYSspICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJ TkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSApOwotKDEgcm93 KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2VfdW5ib3Vu ZGVkOyAgLS0gb3B0aW1pemVkOiBhezIsfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9vcHRfbWVyZ2VfdW5ib3VuZGVkCi0gICAtPiAgV2luZG93 QWdnCi0gICAgICAgICBXaW5kb3c6IHcgQVMgKFBBUlRJVElPTiBCWSBzdG9jay5jb21wYW55IFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKLSAgICAgICAg IFBhdHRlcm46IGF7Mix9IgotICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAgIFNvcnQg S2V5OiBzdG9jay5jb21wYW55Ci0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gc3RvY2sK LSg3IHJvd3MpCi0KLS0tIFRlc3Q6IG1lcmdlIHdpdGggemVyby1taW4gKEEqIEErKSAtPiBBKwot Q1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV9zdGFyIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAot IFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKEEqIEErKQotIERFRklORQotICBB IEFTIHByaWNlID4gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X29wdF9tZXJnZV9z dGFyJyk7ICAtLSBvcmlnaW5hbDogKGEqIGErKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnksICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHByaWNlLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIEZS T00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZIGNv bXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsK LSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICBQQVRURVJOIChhKiBhKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgYSBBUyAocHJpY2UgPiAxMDApICk7Ci0oMSByb3cpCi0KLUVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9tZXJnZV9zdGFyOyAgLS0gb3B0aW1p emVkOiBhKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4g b24gdl9vcHRfbWVyZ2Vfc3RhcgotICAgLT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3 IEFTIChQQVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0ZXJuOiBhKyIKLSAgICAgICAg IC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtleTogc3RvY2suY29tcGFueQotICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0oNyByb3dzKQotCi0tLSBUZXN0OiBjb21w bGV4IG1lcmdlIChBIEF7Mn0gQSsgQXszfSkgLT4gQXs3LH0KLUNSRUFURSBURU1QIFZJRVcgdl9v cHRfbWVyZ2VfY29tcGxleCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQo KikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29t cGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwot IElOSVRJQUwKLSBQQVRURVJOIChBIEF7Mn0gQSsgQXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmlj ZSA+IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2VfY29tcGxleCcp OyAgLS0gb3JpZ2luYWw6IChhIGF7Mn0gYSsgYXszfSkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55 LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmlj ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg ICBGUk9NIHN0b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBC WSBjb21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RyArCi0gICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgUEFUVEVSTiAoYSBhezJ9IGErIGF7M30pICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSApOwotKDEgcm93KQotCi1F WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2VfY29tcGxleDsgIC0t IG9wdGltaXplZDogYXs3LH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJx dWVyeSBTY2FuIG9uIHZfb3B0X21lcmdlX2NvbXBsZXgKLSAgIC0+ICBXaW5kb3dBZ2cKLSAgICAg ICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0dGVybjog YXs3LH0iCi0gICAgICAgICAtPiAgU29ydAotICAgICAgICAgICAgICAgU29ydCBLZXk6IHN0b2Nr LmNvbXBhbnkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcgcm93cykK LQotLS0gVGVzdDogZ3JvdXAgbWVyZ2UgKChBIEIpIChBIEIpKykgLT4gKEEgQil7Mix9Ci1DUkVB VEUgVEVNUCBWSUVXIHZfb3B0X21lcmdlX2dyb3VwIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUs IHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBB UlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKChBIEIpIChBIEIpKykKLSBERUZJTkUK LSAgQSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA8PSAxMDAKLSk7Ci1TRUxFQ1QgcGdf Z2V0X3ZpZXdkZWYoJ3Zfb3B0X21lcmdlX2dyb3VwJyk7ICAtLSBvcmlnaW5hbDogKChhIGIpIChh IGIpKykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVm ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgdGRhdGUs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg IGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9NIHN0b2NrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21wYW55IFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0gICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgUEFUVEVSTiAoKGEg YikgKGEgYikrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGEgQVMg KHByaWNlID4gMTAwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgYiBBUyAocHJpY2UgPD0gMTAwKSApOwotKDEgcm93 KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2VfZ3JvdXA7 ICAtLSBleHBlY3RlZDogKGEgYil7Mix9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gU3VicXVlcnkgU2NhbiBvbiB2X29wdF9tZXJnZV9ncm91cAotICAgLT4gIFdpbmRvd0FnZwot ICAgICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0 ZXJuOiAoYScgYicpezIsfSIKLSAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBTb3J0 IEtleTogc3RvY2suY29tcGFueQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHN0b2Nr Ci0oNyByb3dzKQotCi0tLSBUZXN0OiBncm91cCBtZXJnZSBBIEIgKEEgQikrIC0+IChBIEIpezIs fQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV9ncm91cDIgQVMKLVNFTEVDVCBjb21wYW55 LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBB UyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSBCIChBIEIpKykKLSBE RUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA8PSAxMDAKLSk7Ci1TRUxF Q1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X21lcmdlX2dyb3VwMicpOyAgLS0gb3JpZ2luYWw6IChh IGIgKGEgYikrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3Zp ZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0 ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBQQVRURVJO IChhIGIgKGEgYikrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg YSBBUyAocHJpY2UgPiAxMDApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBiIEFTIChwcmljZSA8PSAxMDApICk7Ci0o MSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9tZXJnZV9n cm91cDI7ICAtLSBleHBlY3RlZDogKGEgYil7Mix9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gU3VicXVlcnkgU2NhbiBvbiB2X29wdF9tZXJnZV9ncm91cDIKLSAgIC0+ICBXaW5k b3dBZ2cKLSAgICAgICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAg ICAgUGF0dGVybjogKGEnIGInKXsyLH0iCi0gICAgICAgICAtPiAgU29ydAotICAgICAgICAgICAg ICAgU29ydCBLZXk6IHN0b2NrLmNvbXBhbnkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBzdG9jawotKDcgcm93cykKLQotLS0gVGVzdDogZ3JvdXAgbWVyZ2UgKEEgQikgKEEgQikrIChB IEIpIC0+IChBIEIpezMsfQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV9ncm91cDMgQVMK LVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3Rv Y2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAo KEEgQikgKEEgQikrIChBIEIpKQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBCIEFT IHByaWNlIDw9IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2VfZ3Jv dXAzJyk7ICAtLSBvcmlnaW5hbDogKChhIGIpIChhIGIpKyAoYSBiKSkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVD VCBjb21wYW55LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgICBwcmljZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBj b3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICBGUk9NIHN0b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBB UlRJVElPTiBCWSBjb21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORyArCi0gICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgUEFUVEVSTiAoKGEgYikgKGEgYikrIChhIGIpKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBE RUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgYiBBUyAocHJpY2UgPD0gMTAwKSApOwotKDEgcm93KQotCi1FWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2VfZ3JvdXAzOyAgLS0gZXhwZWN0ZWQ6IChhIGIp ezMsfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24g dl9vcHRfbWVyZ2VfZ3JvdXAzCi0gICAtPiAgV2luZG93QWdnCi0gICAgICAgICBXaW5kb3c6IHcg QVMgKFBBUlRJVElPTiBCWSBzdG9jay5jb21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKLSAgICAgICAgIFBhdHRlcm46IChhJyBiJyl7Myx9Igot ICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzdG9jay5jb21wYW55 Ci0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gc3RvY2sKLSg3IHJvd3MpCi0KLS0tIFRl c3Q6IGdyb3VwIG1lcmdlIEEgQiBBIEIgKEEgQikrIEEgQiBBIEIgLT4gKEEgQil7NSx9Ci1DUkVB VEUgVEVNUCBWSUVXIHZfb3B0X21lcmdlX2dyb3VwNCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRl LCBwcmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQ QVJUSVRJT04gQlkgY29tcGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJOIChBIEIgQSBCIChBIEIpKyBBIEIgQSBC KQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBCIEFTIHByaWNlIDw9IDEwMAotKTsK LVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2VfZ3JvdXA0Jyk7ICAtLSBvcmlnaW5h bDogKGEgYiBhIGIgKGEgYikrIGEgYiBhIGIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1QgY29tcGFueSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICAgIHRkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgcHJpY2UsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgRlJP TSBzdG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgIFdJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgY29t cGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwot ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBJTklUSUFMICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgIFBBVFRFUk4gKGEgYiBhIGIgKGEgYikrIGEgYiBhIGIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgREVGSU5FICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICBhIEFTIChwcmljZSA+IDEwMCksICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGIgQVMgKHBy aWNlIDw9IDEwMCkgKTsKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHZfb3B0X21lcmdlX2dyb3VwNDsgIC0tIGV4cGVjdGVkOiAoYSBiKXs1LH0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9uIHZfb3B0X21lcmdlX2dy b3VwNAotICAgLT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04g Qlkgc3RvY2suY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCi0gICAgICAgICBQYXR0ZXJuOiAoYScgYicpezUsfSIKLSAgICAgICAgIC0+ICBT b3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtleTogc3RvY2suY29tcGFueQotICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0oNyByb3dzKQotCi0tLSBUZXN0OiBncm91cCBtZXJn ZSBDIEEgQiAoQSBCKSsgQSBCIEMgLT4gQyAoQSBCKXszLH0gQwotQ1JFQVRFIFRFTVAgVklFVyB2 X29wdF9tZXJnZV9ncm91cDUgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50 KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNv bXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK LSBJTklUSUFMCi0gUEFUVEVSTiAoQyBBIEIgKEEgQikrIEEgQiBDKQotIERFRklORQotICBBIEFT IHByaWNlID4gMTAwLAotICBCIEFTIHByaWNlIDw9IDEwMCwKLSAgQyBBUyBwcmljZSA+IDIwMAot KTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2VfZ3JvdXA1Jyk7ICAtLSBvcmln aW5hbDogKGMgYSBiIChhIGIpKyBhIGIgYykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9N IHN0b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21w YW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0g ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgUEFUVEVSTiAoYyBhIGIgKGEgYikrIGEgYiBjKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYiBBUyAocHJp Y2UgPD0gMTAwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCi0gICBjIEFTIChwcmljZSA+IDIwMCkgKTsKLSgxIHJvdykKLQot RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X21lcmdlX2dyb3VwNTsgIC0t IGV4cGVjdGVkOiBjIChhIGIpezMsfSBjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gU3VicXVlcnkgU2NhbiBvbiB2X29wdF9tZXJnZV9ncm91cDUKLSAgIC0+ICBXaW5kb3dBZ2cK LSAgICAgICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0 dGVybjogYyAoYSBiKXszLH0gYwotICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAgIFNv cnQgS2V5OiBzdG9jay5jb21wYW55Ci0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gc3Rv Y2sKLSg3IHJvd3MpCi0KLS0tIFRlc3Q6IGNvbnNlY3V0aXZlIEdST1VQIG1lcmdlIChBIEIpKyAo QSBCKSsgLT4gKEEgQil7Mix9Ci1DUkVBVEUgVEVNUCBWSUVXIHZfb3B0X21lcmdlX2NvbnNlY19n cm91cCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3Ci0g RlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQ QVRURVJOICgoQSBCKSsgKEEgQikrKQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBC IEFTIHByaWNlIDw9IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2Vf Y29uc2VjX2dyb3VwJyk7ICAtLSBvcmlnaW5hbDogKChhIGIpKyAoYSBiKSspCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBT RUxFQ1QgY29tcGFueSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHRkYXRlLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgcHJpY2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBjb3VudCgqKSBPVkVSIHcg QVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICAgRlJPTSBzdG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIFdJTkRPVyB3IEFT IChQQVJUSVRJT04gQlkgY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcgKwotICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBJTklU SUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgIFBBVFRFUk4gKChhIGIpKyAoYSBiKSspICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBhIEFTIChwcmljZSA+IDEwMCksICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgIGIgQVMgKHByaWNlIDw9IDEwMCkgKTsKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X21lcmdlX2NvbnNlY19ncm91cDsgIC0tIGV4cGVj dGVkOiAoYSBiKXsyLH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVy eSBTY2FuIG9uIHZfb3B0X21lcmdlX2NvbnNlY19ncm91cAotICAgLT4gIFdpbmRvd0FnZwotICAg ICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0ZXJu OiAoYScgYicpezIsfSIKLSAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtl eTogc3RvY2suY29tcGFueQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0o NyByb3dzKQotCi0tLSBUZXN0OiBjb25zZWN1dGl2ZSBHUk9VUCBtZXJnZSB3aXRoIGRpZmZlcmVu dCBxdWFudGlmaWVycyAoQSBCKXsyfSAoQSBCKXszfSAtPiAoQSBCKXs1fQotQ1JFQVRFIFRFTVAg VklFVyB2X29wdF9tZXJnZV9jb25zZWNfZ3JvdXAyIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUs IHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBB UlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKChBIEIpezJ9IChBIEIpezN9KQotIERF RklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBCIEFTIHByaWNlIDw9IDEwMAotKTsKLVNFTEVD VCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2VfY29uc2VjX2dyb3VwMicpOyAgLS0gb3JpZ2lu YWw6ICgoYSBiKXsyfSAoYSBiKXszfSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9NIHN0 b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21wYW55 IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0gICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgUEFUVEVSTiAoKGEgYil7Mn0gKGEgYil7M30pICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYiBBUyAocHJpY2Ug PD0gMTAwKSApOwotKDEgcm93KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g dl9vcHRfbWVyZ2VfY29uc2VjX2dyb3VwMjsgIC0tIGV4cGVjdGVkOiAoYSBiKXs1fQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9vcHRfbWVyZ2Vf Y29uc2VjX2dyb3VwMgotICAgLT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3IEFTIChQ QVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0ZXJuOiAoYSBiKXs1fQotICAgICAgICAg LT4gIFNvcnQKLSAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzdG9jay5jb21wYW55Ci0gICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gc3RvY2sKLSg3IHJvd3MpCi0KLS0tIFRlc3Qge259IHF1 YW50aWZpZXIgZGlzcGxheQotQ1JFQVRFIFRFTVAgVklFVyB2X3F1YW50aWZpZXJfbiBBUwotU0VM RUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBzdG9jawot IFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJOIChBezN9 KQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVm KCd2X3F1YW50aWZpZXJfbicpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g ICBQQVRURVJOIChhezN9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgYSBBUyAocHJpY2UgPiAxMDApICk7Ci0oMSByb3cpCi0KLS0tIFRlc3Qge24sfSBx dWFudGlmaWVyIGRpc3BsYXkKLUNSRUFURSBURU1QIFZJRVcgdl9xdWFudGlmaWVyX25fcGx1cyBB UwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBz dG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJO IChBezIsfSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRf dmlld2RlZigndl9xdWFudGlmaWVyX25fcGx1cycpOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnks ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHByaWNl LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg IEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZ IGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H ICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICBQQVRURVJOIChhezIsfSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgYSBBUyAocHJpY2UgPiAxMDApICk7Ci0oMSByb3cpCi0KLS0t IFRlc3Q6IGZsYXR0ZW4gbmVzdGVkIFNFUSAoQSAoQiBDKSkgLT4gQSBCIEMKLUNSRUFURSBURU1Q IFZJRVcgdl9vcHRfZmxhdHRlbl9zZXEgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9O IEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSAoQiBDKSkKLSBERUZJTkUKLSAgQSBBUyBwcmlj ZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA+IDE1MCwKLSAgQyBBUyBwcmljZSA8IDE1MAotKTsKLVNF TEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfZmxhdHRlbl9zZXEnKTsgIC0tIG9yaWdpbmFsOiAo YSAoYiBjKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3 ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgdGRh dGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g ICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9NIHN0b2NrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21wYW55IFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0gICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgUEFUVEVSTiAo YSAoYiBjKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGEg QVMgKHByaWNlID4gMTAwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYiBBUyAocHJpY2UgPiAxNTApLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr Ci0gICBjIEFTIChwcmljZSA8IDE1MCkgKTsKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHZfb3B0X2ZsYXR0ZW5fc2VxOyAgLS0gb3B0aW1pemVkOiBhIGIgYwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9vcHRf ZmxhdHRlbl9zZXEKLSAgIC0+ICBXaW5kb3dBZ2cKLSAgICAgICAgIFdpbmRvdzogdyBBUyAoUEFS VElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0dGVybjogYSBiIGMKLSAgICAgICAgIC0+ICBT b3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtleTogc3RvY2suY29tcGFueQotICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0oNyByb3dzKQotCi0tLSBUZXN0OiBmbGF0dGVuIG5l c3RlZCBBTFQgKEEgfCAoQiB8IEMpKSAtPiAoQSB8IEIgfCBDKQotQ1JFQVRFIFRFTVAgVklFVyB2 X29wdF9mbGF0dGVuX2FsdCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQo KikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29t cGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwot IElOSVRJQUwKLSBQQVRURVJOICgoQSB8IChCIHwgQykpKykKLSBERUZJTkUKLSAgQSBBUyBwcmlj ZSA+IDIwMCwKLSAgQiBBUyBwcmljZSA+IDEwMCwKLSAgQyBBUyBwcmljZSA8PSAxMDAKLSk7Ci1T RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X2ZsYXR0ZW5fYWx0Jyk7ICAtLSBvcmlnaW5hbDog KChhIHwgKGIgfCBjKSkrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBQ QVRURVJOICgoYSB8IChiIHwgYykpKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgYSBBUyAocHJpY2UgPiAyMDApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBiIEFTIChwcmljZSA+IDEwMCks ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgIGMgQVMgKHByaWNlIDw9IDEwMCkgKTsKLSgxIHJvdykKLQotRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X2ZsYXR0ZW5fYWx0OyAgLS0gb3B0aW1pemVk OiAoKGEgfCBiIHwgYykpKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1 ZXJ5IFNjYW4gb24gdl9vcHRfZmxhdHRlbl9hbHQKLSAgIC0+ICBXaW5kb3dBZ2cKLSAgICAgICAg IFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0dGVybjogKGEg fCBiIHwgYykrCi0gICAgICAgICAtPiAgU29ydAotICAgICAgICAgICAgICAgU29ydCBLZXk6IHN0 b2NrLmNvbXBhbnkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcgcm93 cykKLQotLS0gVGVzdDogdW53cmFwIEdST1VQezEsMX0gKChBKSkgLT4gQQotQ1JFQVRFIFRFTVAg VklFVyB2X29wdF91bndyYXBfZ3JvdXAgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9O IEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKChBKSkpCi0gREVGSU5FCi0gIEEgQVMgcHJpY2Ug PiAxMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X3Vud3JhcF9ncm91cCcpOyAg LS0gb3JpZ2luYWw6ICgoKGEpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9NIHN0b2Nr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21wYW55IFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0gICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgUEFUVEVSTiAoKChhKSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSApOwotKDEgcm93KQotCi1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfdW53cmFwX2dyb3VwOyAgLS0gb3B0aW1pemVkOiBh Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU3VicXVlcnkgU2NhbiBvbiB2X29w dF91bndyYXBfZ3JvdXAKLSAgIC0+ICBXaW5kb3dBZ2cKLSAgICAgICAgIFdpbmRvdzogdyBBUyAo UEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0dGVybjogYQotICAgICAgICAgLT4gIFNv cnQKLSAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzdG9jay5jb21wYW55Ci0gICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gc3RvY2sKLSg3IHJvd3MpCi0KLS0tIFRlc3Q6IHF1YW50aWZpZXIg bXVsdGlwbGljYXRpb24gKEF7Mn0pezN9IC0+IEF7Nn0KLUNSRUFURSBURU1QIFZJRVcgdl9vcHRf cXVhbnRfbXVsdCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZF UiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQot IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJ QUwKLSBQQVRURVJOICgoQXsyfSl7M30pCi0gREVGSU5FCi0gIEEgQVMgcHJpY2UgPiAxMDAKLSk7 Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X3F1YW50X211bHQnKTsgIC0tIG9yaWdpbmFs OiAoKGF7Mn0pezN9KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0 X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBQQVRU RVJOICgoYXsyfSl7M30pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgYSBBUyAocHJpY2UgPiAxMDApICk7Ci0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSB2X29wdF9xdWFudF9tdWx0OyAgLS0gb3B0aW1pemVkOiBhezZ9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU3VicXVlcnkgU2NhbiBvbiB2X29wdF9xdWFu dF9tdWx0Ci0gICAtPiAgV2luZG93QWdnCi0gICAgICAgICBXaW5kb3c6IHcgQVMgKFBBUlRJVElP TiBCWSBzdG9jay5jb21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKLSAgICAgICAgIFBhdHRlcm46IGF7Nn0KLSAgICAgICAgIC0+ICBTb3J0Ci0g ICAgICAgICAgICAgICBTb3J0IEtleTogc3RvY2suY29tcGFueQotICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHN0b2NrCi0oNyByb3dzKQotCi0tLSBUZXN0OiBxdWFudGlmaWVyIG11bHRp cGxpY2F0aW9uIChBezIsNH0pezN9IC0+IEF7NiwxMn0KLUNSRUFURSBURU1QIFZJRVcgdl9vcHRf cXVhbnRfbXVsdF9yYW5nZSBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQo KikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29t cGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwot IElOSVRJQUwKLSBQQVRURVJOICgoQXsyLDR9KXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+ IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfcXVhbnRfbXVsdF9yYW5nZScp OyAgLS0gb3JpZ2luYWw6ICgoYXsyLDR9KXszfSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBG Uk9NIHN0b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBj b21wYW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyAr Ci0gICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgUEFUVEVSTiAoKGF7Miw0fSl7M30pICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSApOwotKDEgcm93KQotCi1FWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfcXVhbnRfbXVsdF9yYW5nZTsgIC0t IG9wdGltaXplZDogYXs2LDEyfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1 YnF1ZXJ5IFNjYW4gb24gdl9vcHRfcXVhbnRfbXVsdF9yYW5nZQotICAgLT4gIFdpbmRvd0FnZwot ICAgICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0 ZXJuOiBhezYsMTJ9Ci0gICAgICAgICAtPiAgU29ydAotICAgICAgICAgICAgICAgU29ydCBLZXk6 IHN0b2NrLmNvbXBhbnkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcg cm93cykKLQotLS0gVGVzdDogcXVhbnRpZmllciBtdWx0aXBsaWNhdGlvbiBibG9ja2VkIChBezJ9 KXszLDV9IC0+IG5vIGNoYW5nZQotLS0gb3V0ZXIgcmFuZ2Ugd2l0aCBjaGlsZCBleGFjdCA+IDEg Y2F1c2VzIGdhcHMgKDYsOCwxMCBub3QgNiw3LDgsOSwxMCkKLUNSRUFURSBURU1QIFZJRVcgdl9v cHRfcXVhbnRfbXVsdF9yYW5nZTIgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNv dW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZ IGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKEF7Mn0pezMsNX0pCi0gREVGSU5FCi0gIEEgQVMgcHJp Y2UgPiAxMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X3F1YW50X211bHRfcmFu Z2UyJyk7ICAtLSBvcmlnaW5hbDogKChhezJ9KXszLDV9KQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBh bnksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHBy aWNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgIEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5ET1cgdyBBUyAoUEFSVElUSU9O IEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgSU5JVElBTCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICBQQVRURVJOICgoYXsyfSl7Myw1fSkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIERFRklORSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgYSBBUyAocHJpY2UgPiAxMDApICk7Ci0oMSByb3cpCi0K LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9xdWFudF9tdWx0X3Jhbmdl MjsgIC0tIE5PVCBvcHRpbWl6ZWQ6IChhezJ9KXszLDV9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gU3VicXVlcnkgU2NhbiBvbiB2X29wdF9xdWFudF9tdWx0X3JhbmdlMgotICAg LT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgc3RvY2su Y29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp Ci0gICAgICAgICBQYXR0ZXJuOiAoYXsyfSl7Myw1fQotICAgICAgICAgLT4gIFNvcnQKLSAgICAg ICAgICAgICAgIFNvcnQgS2V5OiBzdG9jay5jb21wYW55Ci0gICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gc3RvY2sKLSg3IHJvd3MpCi0KLS0tIFRlc3Q6IHF1YW50aWZpZXIgbXVsdGlwbGlj YXRpb24gYmxvY2tlZCBieSBJTkYgKEErKXszfSAtPiBubyBjaGFuZ2UKLUNSRUFURSBURU1QIFZJ RVcgdl9vcHRfcXVhbnRfbXVsdF9pbmYgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9O IEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKEErKXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmlj ZSA+IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfcXVhbnRfbXVsdF9pbmYn KTsgIC0tIG9yaWdpbmFsOiAoKGErKXszfSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBjb21wYW55LCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgdGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBwcmljZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9N IHN0b2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBjb21w YW55IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCi0g ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIElOSVRJQUwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgUEFUVEVSTiAoKGErKXszfSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBERUZJTkUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgIGEgQVMgKHByaWNlID4gMTAwKSApOwotKDEgcm93KQotCi1FWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfcXVhbnRfbXVsdF9pbmY7ICAtLSBubyBt dWx0aXBseTogKGErKXszfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1 ZXJ5IFNjYW4gb24gdl9vcHRfcXVhbnRfbXVsdF9pbmYKLSAgIC0+ICBXaW5kb3dBZ2cKLSAgICAg ICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0dGVybjog KGErIil7M30KLSAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtleTogc3Rv Y2suY29tcGFueQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0oNyByb3dz KQotCi0tLSBUZXN0OiB1bndyYXAgc2luZ2xlLWl0ZW0gQUxUIGFmdGVyIGR1cGxpY2F0ZSByZW1v dmFsIChBIHwgQSkgLT4gQQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF91bndyYXBfYWx0IEFTCi1T RUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2Nr Ci0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKChB IHwgQSkrKQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92 aWV3ZGVmKCd2X29wdF91bndyYXBfYWx0Jyk7ICAtLSBvcmlnaW5hbDogKChhIHwgYSkrKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgY291bnQoKikg T1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBXSU5E T1cgdyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBQQVRURVJOICgoYSB8IGEpKykgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYSBBUyAocHJpY2UgPiAx MDApICk7Ci0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29w dF91bndyYXBfYWx0OyAgLS0gb3B0aW1pemVkOiBhKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9vcHRfdW53cmFwX2FsdAotICAgLT4gIFdpbmRv d0FnZwotICAgICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAg ICBQYXR0ZXJuOiBhKyIKLSAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtl eTogc3RvY2suY29tcGFueQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0o NyByb3dzKQotCi0tLSBUZXN0OiBHUk9VUHsxLDF9IHRvIFNFUSB3aXRoIGZsYXR0ZW4gKChBIEIp KEMgRCkpIC0+IEEgQiBDIEQKLUNSRUFURSBURU1QIFZJRVcgdl9vcHRfZ3JvdXBfdG9fc2VxIEFT Ci1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0 b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4g KCgoQSBCKShDIEQpKSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDIwMCwKLSAgQiBBUyBwcmlj ZSA+IDE1MCwKLSAgQyBBUyBwcmljZSA+IDEwMCwKLSAgRCBBUyBwcmljZSA8PSAxMDAKLSk7Ci1T RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X2dyb3VwX3RvX3NlcScpOyAgLS0gb3JpZ2luYWw6 ICgoKGEgYikoYyBkKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19n ZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1QgY29tcGFueSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g ICAgIHRkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgcHJpY2UsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgRlJPTSBzdG9jayAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgIFdJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgY29tcGFueSBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwotICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCi0gICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIFBB VFRFUk4gKCgoYSBiKSAoYyBkKSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr Ci0gICBhIEFTIChwcmljZSA+IDIwMCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGIgQVMgKHByaWNlID4gMTUwKSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgYyBBUyAocHJpY2UgPiAxMDApLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBkIEFTIChwcmljZSA8 PSAxMDApICk7Ci0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2 X29wdF9ncm91cF90b19zZXE7ICAtLSBvcHRpbWl6ZWQ6IGEgYiBjIGQKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9uIHZfb3B0X2dyb3VwX3RvX3NlcQot ICAgLT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04gQlkgc3Rv Y2suY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCi0gICAgICAgICBQYXR0ZXJuOiBhIGIgYyBkCi0gICAgICAgICAtPiAgU29ydAotICAgICAg ICAgICAgICAgU29ydCBLZXk6IHN0b2NrLmNvbXBhbnkKLSAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBzdG9jawotKDcgcm93cykKLQotLS0gVGVzdDogY29tYmluZWQgY29uc2VjdXRpdmUg R1JPVVAgKyBwcmVmaXggbWVyZ2UgQSBCIChBIEIpKyAoQSBCKSsgLT4gKEEgQil7Myx9Ci1DUkVB VEUgVEVNUCBWSUVXIHZfb3B0X2NvbWJpbmVkX21lcmdlIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAot IFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKEEgQiAoQSBCKSsgKEEgQikrKQot IERFRklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBCIEFTIHByaWNlIDw9IDEwMAotKTsKLVNF TEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfY29tYmluZWRfbWVyZ2UnKTsgIC0tIG9yaWdpbmFs OiAoYSBiIChhIGIpKyAoYSBiKSspCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1QgY29tcGFueSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCi0gICAgIHRkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgcHJpY2UsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgRlJPTSBzdG9j ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgIFdJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgY29tcGFueSBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwotICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgIFBBVFRFUk4gKGEgYiAoYSBiKSsgKGEgYikrKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgREVGSU5FICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICBhIEFTIChwcmljZSA+IDEwMCksICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGIgQVMgKHByaWNlIDw9 IDEwMCkgKTsKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZf b3B0X2NvbWJpbmVkX21lcmdlOyAgLS0gZXhwZWN0ZWQ6IChhIGIpezMsfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9vcHRfY29tYmluZWRfbWVy Z2UKLSAgIC0+ICBXaW5kb3dBZ2cKLSAgICAgICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZ IHN0b2NrLmNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQotICAgICAgICAgUGF0dGVybjogKGEnIGInKXszLH0iCi0gICAgICAgICAtPiAgU29y dAotICAgICAgICAgICAgICAgU29ydCBLZXk6IHN0b2NrLmNvbXBhbnkKLSAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBzdG9jawotKDcgcm93cykKLQotLS0gVGVzdDogbmVzdGVkIEFMVCBw YXR0ZXJuIC0gYnVnIHJlcHJvZHVjdGlvbgotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9uZXN0ZWRf YWx0IEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBG Uk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBB VFRFUk4gKCgoQSBCKSB8IEMpIEQgfCBBIEIgQykKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA8PSAx MDAsCi0gIEIgQVMgcHJpY2UgPD0gMTUwLAotICBDIEFTIHByaWNlIDw9IDIwMCwKLSAgRCBBUyBw cmljZSA+IDIwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbmVzdGVkX2FsdCcp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAgU0VMRUNUIGNvbXBhbnksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0ZGF0ZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICAgIHByaWNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgY291 bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgIEZST00gc3RvY2sgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g ICBXSU5ET1cgdyBBUyAoUEFSVElUSU9OIEJZIGNvbXBhbnkgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKLSAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBQQVRURVJOICgoKGEgYikg fCBjKSBkIHwgYSBiIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgYSBBUyAocHJp Y2UgPD0gMTAwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCi0gICBiIEFTIChwcmljZSA8PSAxNTApLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGMg QVMgKHByaWNlIDw9IDIwMCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgZCBBUyAocHJpY2UgPiAyMDApICk7Ci0oMSBy b3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9uZXN0ZWRfYWx0 OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9v cHRfbmVzdGVkX2FsdAotICAgLT4gIFdpbmRvd0FnZwotICAgICAgICAgV2luZG93OiB3IEFTIChQ QVJUSVRJT04gQlkgc3RvY2suY29tcGFueSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCi0gICAgICAgICBQYXR0ZXJuOiAoKGEgYiB8IGMpIGQgfCBhIGIg YykKLSAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBTb3J0IEtleTogc3RvY2suY29t cGFueQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHN0b2NrCi0oNyByb3dzKQotCi0t LSBUZXN0OiBuZXN0ZWQgQUxUIHdpdGggdW5ib3VuZGVkIC0gQSsgaW5zaWRlCi1DUkVBVEUgVEVN UCBWSUVXIHZfb3B0X25lc3RlZF9hbHQyIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNl LCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElP TiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKCgoQSsgQikgfCBDKSBEIHwgQSBCIEMpCi0gREVG SU5FCi0gIEEgQVMgcHJpY2UgPD0gMTAwLAotICBCIEFTIHByaWNlIDw9IDE1MCwKLSAgQyBBUyBw cmljZSA8PSAyMDAsCi0gIEQgQVMgcHJpY2UgPiAyMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdk ZWYoJ3Zfb3B0X25lc3RlZF9hbHQyJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1QgY29tcGFueSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICAgIHRkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgcHJpY2UsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgRlJPTSBz dG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgIFdJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgY29tcGFu eSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwotICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBJTklUSUFMICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgIFBBVFRFUk4gKCgoYSsgYikgfCBjKSBkIHwgYSBiIGMpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgREVGSU5FICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICBhIEFTIChwcmljZSA8PSAxMDApLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIGIgQVMgKHByaWNl IDw9IDE1MCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgYyBBUyAocHJpY2UgPD0gMjAwKSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICBkIEFT IChwcmljZSA+IDIwMCkgKTsKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIHZfb3B0X25lc3RlZF9hbHQyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIFN1YnF1ZXJ5IFNjYW4gb24gdl9vcHRfbmVzdGVkX2FsdDIKLSAgIC0+ICBXaW5kb3dBZ2cK LSAgICAgICAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHN0b2NrLmNvbXBhbnkgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQotICAgICAgICAgUGF0 dGVybjogKChhKyIgYiB8IGMpIGQgfCBhIGIgYykKLSAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAg ICAgICAgICBTb3J0IEtleTogc3RvY2suY29tcGFueQotICAgICAgICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHN0b2NrCi0oNyByb3dzKQotCi0tLQotLS0gRXJyb3IgY2FzZXMKLS0tCi0tLSByb3cg cGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgbXVzdCBub3QgYXBwZWFyIG1vcmUgdGhh biBvbmNlCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkg T1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcg QVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gT1JERVIgQlkgdGRhdGUKLSBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVS TiAoU1RBUlQgVVArIERPV04rKQotIERFRklORQotICBTVEFSVCBBUyBUUlVFLAotICBVUCBBUyBw cmljZSA+IFBSRVYocHJpY2UpLAotICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSksCi0gIFVQ IEFTIHByaWNlID4gUFJFVihwcmljZSkKLSk7Ci1FUlJPUjogIHJvdyBwYXR0ZXJuIGRlZmluaXRp b24gdmFyaWFibGUgbmFtZSAidXAiIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNs YXVzZQotTElORSAxMTogICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAotICAgICAgICAgICBe Ci0tLSBzdWJxdWVyaWVzIGluIERFRklORSBjbGF1c2UgYXJlIG5vdCBzdXBwb3J0ZWQKLVNFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3Rf dmFsdWUocHJpY2UpIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElU SU9OIEJZIGNvbXBhbnkKLSBPUkRFUiBCWSB0ZGF0ZQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJOIChTVEFSVCBMT1dQ UklDRSkKLSBERUZJTkUKLSAgU1RBUlQgQVMgVFJVRSwKLSAgTE9XUFJJQ0UgQVMgcHJpY2UgPCAo U0VMRUNUIDEwMCkKLSk7Ci1FUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGSU5FIGV4 cHJlc3Npb24KLUxJTkUgMTE6ICAgTE9XUFJJQ0UgQVMgcHJpY2UgPCAoU0VMRUNUIDEwMCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBhZ2dyZWdhdGVzIGluIERFRklORSBj bGF1c2UgYXJlIG5vdCBzdXBwb3J0ZWQKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZp cnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdwotIEZST00g c3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBPUkRFUiBCWSB0 ZGF0ZQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwot IElOSVRJQUwKLSBQQVRURVJOIChTVEFSVCBMT1dQUklDRSkKLSBERUZJTkUKLSAgU1RBUlQgQVMg VFJVRSwKLSAgTE9XUFJJQ0UgQVMgcHJpY2UgPCBjb3VudCgqKQotKTsKLUVSUk9SOiAgYWdncmVn YXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGSU5FCi1MSU5FIDExOiAgIExPV1BS SUNFIEFTIHByaWNlIDwgY291bnQoKikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci0tLSBGUkFNRSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93IHdoZW4gcm93IHBhdHRlcm4gcmVj b2duaXRpb24gaXMgdXNlZAotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFs dWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Ci0gRlJPTSBzdG9jawot IFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIE9SREVSIEJZIHRkYXRlCi0g Uk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK LSBJTklUSUFMCi0gUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQotIERFRklORQotICBTVEFSVCBB UyBUUlVFLAotICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAotICBET1dOIEFTIHByaWNlIDwg UFJFVihwcmljZSkKLSk7Ci1FUlJPUjogIEZSQU1FIG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1cg d2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCi1MSU5FIDY6ICBST1dTIEJFVFdF RU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgICAgICAg XgotREVUQUlMOiAgQ3VycmVudCBmcmFtZSBzdGFydHMgd2l0aCBVTkJPVU5ERUQgUFJFQ0VESU5H LgotSElOVDogIFVzZTogUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAuLi4KLS0tIEVYQ0xV REUgaXMgbm90IHBlcm1pdHRlZAotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3Rf dmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Ci0gRlJPTSBzdG9j awotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIE9SREVSIEJZIHRkYXRl Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gRVhD TFVERSBDVVJSRU5UIFJPVwotIElOSVRJQUwKLSBQQVRURVJOIChTVEFSVCBVUCsgRE9XTispCi0g REVGSU5FCi0gIFNUQVJUIEFTIFRSVUUsCi0gIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCi0g IERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQotKTsKLUVSUk9SOiAgRVhDTFVERSBvcHRpb25z IGFyZSBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAot TElORSA3OiAgRVhDTFVERSBDVVJSRU5UIFJPVwotICAgICAgICAgXgotREVUQUlMOiAgRnJhbWUg ZGVmaW5pdGlvbiBpbmNsdWRlcyBFWENMVURFIENVUlJFTlQgUk9XLgotSElOVDogIFJlbW92ZSB0 aGUgRVhDTFVERSBjbGF1c2UgZnJvbSB0aGUgd2luZG93IGRlZmluaXRpb24uCi0tLSBTRUVLIGlz IG5vdCBzdXBwb3J0ZWQKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdwotIEZST00gc3RvY2sKLSBX SU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBPUkRFUiBCWSB0ZGF0ZQotIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKLSBTRUVLCi0gUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQot IERFRklORQotICBTVEFSVCBBUyBUUlVFLAotICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAot ICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKLSk7Ci1FUlJPUjogIFNFRUsgaXMgbm90IHN1 cHBvcnRlZAotTElORSA4OiAgU0VFSwotICAgICAgICAgXgotSElOVDogIFVzZSBJTklUSUFMIGlu c3RlYWQuCi0tLSBQUkVWJ3MgYXJndW1lbnQgbXVzdCBoYXZlIGF0IGxlYXN0IDEgY29sdW1uIHJl ZmVyZW5jZQotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2Up IE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3 IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIE9SREVSIEJZIHRkYXRlCi0gUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVwotIElOSVRJQUwKLSBQQVRURVJOIChTVEFSVCBVUCsgRE9XTispCi0gREVG SU5FCi0gIFNUQVJUIEFTIFRSVUUsCi0gIFVQIEFTIHByaWNlID4gUFJFVigxKSwKLSAgRE9XTiBB UyBwcmljZSA8IFBSRVYoMSkKLSk7Ci1FUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3Bl cmF0aW9uJ3MgYXJndW1lbnQgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJl bmNlCi0tLSBVbnN1cHBvcnRlZCBxdWFudGlmaWVyCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcK LSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gT1JE RVIgQlkgdGRhdGUKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gSU5JVElBTAotIFBBVFRFUk4g KFNUQVJUIFVQfiBET1dOKykKLSBERUZJTkUKLSAgU1RBUlQgQVMgVFJVRSwKLSAgVVAgQVMgcHJp Y2UgPiBQUkVWKDEpLAotICBET1dOIEFTIHByaWNlIDwgUFJFVigxKQotKTsKLUVSUk9SOiAgdW5z dXBwb3J0ZWQgcXVhbnRpZmllciAifiIKLUxJTkUgOTogIFBBVFRFUk4gKFNUQVJUIFVQfiBET1dO KykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgXgotSElOVDogIFZhbGlkIHF1YW50aWZpZXJz IGFyZTogKiwgKywgPywgKj8sICs/LCA/Pywge259LCB7bix9LCB7LG19LCB7bixtfSBhbmQgdGhl aXIgcmVsdWN0YW50IHZlcnNpb25zLgotLS0gUFJFVigxKSBtaXNzaW5nIGNvbHVtbiByZWZlcmVu Y2UgKGVycm9yKQotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJp Y2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRP VyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIE9SREVSIEJZIHRkYXRlCi0gUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gQUZURVIgTUFUQ0gg U0tJUCBUTyBORVhUIFJPVwotIElOSVRJQUwKLSBQQVRURVJOIChTVEFSVCBVUCs/IERPV04rKQot IERFRklORQotICBTVEFSVCBBUyBUUlVFLAotICBVUCBBUyBwcmljZSA+IFBSRVYoMSksCi0gIERP V04gQVMgcHJpY2UgPCBQUkVWKDEpCi0pOwotRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9u IG9wZXJhdGlvbidzIGFyZ3VtZW50IG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJl ZmVyZW5jZQotLS0gTWF4aW11bSBwYXR0ZXJuIHZhcmlhYmxlcyBpcyAyNTEgKFJQUl9WQVJJRF9N QVgpCi0tLSBFcnJvcjogMjUyIHZhcmlhYmxlcyBleGNlZWRzIGxpbWl0IG9mIDI1MQotRE8gJCQK LURFQ0xBUkUKLSAgICBwYXR0ZXJuX3ZhcnMgdGV4dDsKLSAgICBkZWZpbmVfdmFycyB0ZXh0Owot ICAgIHF1ZXJ5IHRleHQ7Ci1CRUdJTgotICAgIFNFTEVDVCBzdHJpbmdfYWdnKCd2JyB8fCBscGFk KGk6OnRleHQsIDMsICcwJyksICcgJyksCi0gICAgICAgICAgIHN0cmluZ19hZ2coJ3YnIHx8IGxw YWQoaTo6dGV4dCwgMywgJzAnKSB8fCAnIEFTIFRSVUUnLCAnLCAnKQotICAgIElOVE8gcGF0dGVy bl92YXJzLCBkZWZpbmVfdmFycwotICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDI1MikgaTsK LQotICAgIHF1ZXJ5IDo9IGZvcm1hdCgnU0VMRUNUICogRlJPTSAoU0VMRUNUIDEgQVMgeCkgdCBX SU5ET1cgdyBBUyAoCi0gICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotICAgICAgICBQQVRURVJOICglcykKLSAgICAgICAgREVGSU5FICVzKScs IHBhdHRlcm5fdmFycywgZGVmaW5lX3ZhcnMpOwotCi0gICAgRVhFQ1VURSBxdWVyeTsKLUVORDsK LSQkOwotRVJST1I6ICB0b28gbWFueSBwYXR0ZXJuIHZhcmlhYmxlcwotREVUQUlMOiAgTWF4aW11 bSBpcyAyNTEuCi1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiU0VMRUNUICogRlJPTSAoU0VMRUNU IDEgQVMgeCkgdCBXSU5ET1cgdyBBUyAoCi0gICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgICAgICBQQVRURVJOICh2MDAxIHYwMDIgdjAw MyB2MDA0IHYwMDUgdjAwNiB2MDA3IHYwMDggdjAwOSB2MDEwIHYwMTEgdjAxMiB2MDEzIHYwMTQg djAxNSB2MDE2IHYwMTcgdjAxOCB2MDE5IHYwMjAgdjAyMSB2MDIyIHYwMjMgdjAyNCB2MDI1IHYw MjYgdjAyNyB2MDI4IHYwMjkgdjAzMCB2MDMxIHYwMzIgdjAzMyB2MDM0IHYwMzUgdjAzNiB2MDM3 IHYwMzggdjAzOSB2MDQwIHYwNDEgdjA0MiB2MDQzIHYwNDQgdjA0NSB2MDQ2IHYwNDcgdjA0OCB2 MDQ5IHYwNTAgdjA1MSB2MDUyIHYwNTMgdjA1NCB2MDU1IHYwNTYgdjA1NyB2MDU4IHYwNTkgdjA2 MCB2MDYxIHYwNjIgdjA2MyB2MDY0IHYwNjUgdjA2NiB2MDY3IHYwNjggdjA2OSB2MDcwIHYwNzEg djA3MiB2MDczIHYwNzQgdjA3NSB2MDc2IHYwNzcgdjA3OCB2MDc5IHYwODAgdjA4MSB2MDgyIHYw ODMgdjA4NCB2MDg1IHYwODYgdjA4NyB2MDg4IHYwODkgdjA5MCB2MDkxIHYwOTIgdjA5MyB2MDk0 IHYwOTUgdjA5NiB2MDk3IHYwOTggdjA5OSB2MTAwIHYxMDEgdjEwMiB2MTAzIHYxMDQgdjEwNSB2 MTA2IHYxMDcgdjEwOCB2MTA5IHYxMTAgdjExMSB2MTEyIHYxMTMgdjExNCB2MTE1IHYxMTYgdjEx NyB2MTE4IHYxMTkgdjEyMCB2MTIxIHYxMjIgdjEyMyB2MTI0IHYxMjUgdjEyNiB2MTI3IHYxMjgg djEyOSB2MTMwIHYxMzEgdjEzMiB2MTMzIHYxMzQgdjEzNSB2MTM2IHYxMzcgdjEzOCB2MTM5IHYx NDAgdjE0MSB2MTQyIHYxNDMgdjE0NCB2MTQ1IHYxNDYgdjE0NyB2MTQ4IHYxNDkgdjE1MCB2MTUx IHYxNTIgdjE1MyB2MTU0IHYxNTUgdjE1NiB2MTU3IHYxNTggdjE1OSB2MTYwIHYxNjEgdjE2MiB2 MTYzIHYxNjQgdjE2NSB2MTY2IHYxNjcgdjE2OCB2MTY5IHYxNzAgdjE3MSB2MTcyIHYxNzMgdjE3 NCB2MTc1IHYxNzYgdjE3NyB2MTc4IHYxNzkgdjE4MCB2MTgxIHYxODIgdjE4MyB2MTg0IHYxODUg djE4NiB2MTg3IHYxODggdjE4OSB2MTkwIHYxOTEgdjE5MiB2MTkzIHYxOTQgdjE5NSB2MTk2IHYx OTcgdjE5OCB2MTk5IHYyMDAgdjIwMSB2MjAyIHYyMDMgdjIwNCB2MjA1IHYyMDYgdjIwNyB2MjA4 IHYyMDkgdjIxMCB2MjExIHYyMTIgdjIxMyB2MjE0IHYyMTUgdjIxNiB2MjE3IHYyMTggdjIxOSB2 MjIwIHYyMjEgdjIyMiB2MjIzIHYyMjQgdjIyNSB2MjI2IHYyMjcgdjIyOCB2MjI5IHYyMzAgdjIz MSB2MjMyIHYyMzMgdjIzNCB2MjM1IHYyMzYgdjIzNyB2MjM4IHYyMzkgdjI0MCB2MjQxIHYyNDIg djI0MyB2MjQ0IHYyNDUgdjI0NiB2MjQ3IHYyNDggdjI0OSB2MjUwIHYyNTEgdjI1MikKLSAgICAg ICAgREVGSU5FIHYwMDEgQVMgVFJVRSwgdjAwMiBBUyBUUlVFLCB2MDAzIEFTIFRSVUUsIHYwMDQg QVMgVFJVRSwgdjAwNSBBUyBUUlVFLCB2MDA2IEFTIFRSVUUsIHYwMDcgQVMgVFJVRSwgdjAwOCBB UyBUUlVFLCB2MDA5IEFTIFRSVUUsIHYwMTAgQVMgVFJVRSwgdjAxMSBBUyBUUlVFLCB2MDEyIEFT IFRSVUUsIHYwMTMgQVMgVFJVRSwgdjAxNCBBUyBUUlVFLCB2MDE1IEFTIFRSVUUsIHYwMTYgQVMg VFJVRSwgdjAxNyBBUyBUUlVFLCB2MDE4IEFTIFRSVUUsIHYwMTkgQVMgVFJVRSwgdjAyMCBBUyBU UlVFLCB2MDIxIEFTIFRSVUUsIHYwMjIgQVMgVFJVRSwgdjAyMyBBUyBUUlVFLCB2MDI0IEFTIFRS VUUsIHYwMjUgQVMgVFJVRSwgdjAyNiBBUyBUUlVFLCB2MDI3IEFTIFRSVUUsIHYwMjggQVMgVFJV RSwgdjAyOSBBUyBUUlVFLCB2MDMwIEFTIFRSVUUsIHYwMzEgQVMgVFJVRSwgdjAzMiBBUyBUUlVF LCB2MDMzIEFTIFRSVUUsIHYwMzQgQVMgVFJVRSwgdjAzNSBBUyBUUlVFLCB2MDM2IEFTIFRSVUUs IHYwMzcgQVMgVFJVRSwgdjAzOCBBUyBUUlVFLCB2MDM5IEFTIFRSVUUsIHYwNDAgQVMgVFJVRSwg djA0MSBBUyBUUlVFLCB2MDQyIEFTIFRSVUUsIHYwNDMgQVMgVFJVRSwgdjA0NCBBUyBUUlVFLCB2 MDQ1IEFTIFRSVUUsIHYwNDYgQVMgVFJVRSwgdjA0NyBBUyBUUlVFLCB2MDQ4IEFTIFRSVUUsIHYw NDkgQVMgVFJVRSwgdjA1MCBBUyBUUlVFLCB2MDUxIEFTIFRSVUUsIHYwNTIgQVMgVFJVRSwgdjA1 MyBBUyBUUlVFLCB2MDU0IEFTIFRSVUUsIHYwNTUgQVMgVFJVRSwgdjA1NiBBUyBUUlVFLCB2MDU3 IEFTIFRSVUUsIHYwNTggQVMgVFJVRSwgdjA1OSBBUyBUUlVFLCB2MDYwIEFTIFRSVUUsIHYwNjEg QVMgVFJVRSwgdjA2MiBBUyBUUlVFLCB2MDYzIEFTIFRSVUUsIHYwNjQgQVMgVFJVRSwgdjA2NSBB UyBUUlVFLCB2MDY2IEFTIFRSVUUsIHYwNjcgQVMgVFJVRSwgdjA2OCBBUyBUUlVFLCB2MDY5IEFT IFRSVUUsIHYwNzAgQVMgVFJVRSwgdjA3MSBBUyBUUlVFLCB2MDcyIEFTIFRSVUUsIHYwNzMgQVMg VFJVRSwgdjA3NCBBUyBUUlVFLCB2MDc1IEFTIFRSVUUsIHYwNzYgQVMgVFJVRSwgdjA3NyBBUyBU UlVFLCB2MDc4IEFTIFRSVUUsIHYwNzkgQVMgVFJVRSwgdjA4MCBBUyBUUlVFLCB2MDgxIEFTIFRS VUUsIHYwODIgQVMgVFJVRSwgdjA4MyBBUyBUUlVFLCB2MDg0IEFTIFRSVUUsIHYwODUgQVMgVFJV RSwgdjA4NiBBUyBUUlVFLCB2MDg3IEFTIFRSVUUsIHYwODggQVMgVFJVRSwgdjA4OSBBUyBUUlVF LCB2MDkwIEFTIFRSVUUsIHYwOTEgQVMgVFJVRSwgdjA5MiBBUyBUUlVFLCB2MDkzIEFTIFRSVUUs IHYwOTQgQVMgVFJVRSwgdjA5NSBBUyBUUlVFLCB2MDk2IEFTIFRSVUUsIHYwOTcgQVMgVFJVRSwg djA5OCBBUyBUUlVFLCB2MDk5IEFTIFRSVUUsIHYxMDAgQVMgVFJVRSwgdjEwMSBBUyBUUlVFLCB2 MTAyIEFTIFRSVUUsIHYxMDMgQVMgVFJVRSwgdjEwNCBBUyBUUlVFLCB2MTA1IEFTIFRSVUUsIHYx MDYgQVMgVFJVRSwgdjEwNyBBUyBUUlVFLCB2MTA4IEFTIFRSVUUsIHYxMDkgQVMgVFJVRSwgdjEx MCBBUyBUUlVFLCB2MTExIEFTIFRSVUUsIHYxMTIgQVMgVFJVRSwgdjExMyBBUyBUUlVFLCB2MTE0 IEFTIFRSVUUsIHYxMTUgQVMgVFJVRSwgdjExNiBBUyBUUlVFLCB2MTE3IEFTIFRSVUUsIHYxMTgg QVMgVFJVRSwgdjExOSBBUyBUUlVFLCB2MTIwIEFTIFRSVUUsIHYxMjEgQVMgVFJVRSwgdjEyMiBB UyBUUlVFLCB2MTIzIEFTIFRSVUUsIHYxMjQgQVMgVFJVRSwgdjEyNSBBUyBUUlVFLCB2MTI2IEFT IFRSVUUsIHYxMjcgQVMgVFJVRSwgdjEyOCBBUyBUUlVFLCB2MTI5IEFTIFRSVUUsIHYxMzAgQVMg VFJVRSwgdjEzMSBBUyBUUlVFLCB2MTMyIEFTIFRSVUUsIHYxMzMgQVMgVFJVRSwgdjEzNCBBUyBU UlVFLCB2MTM1IEFTIFRSVUUsIHYxMzYgQVMgVFJVRSwgdjEzNyBBUyBUUlVFLCB2MTM4IEFTIFRS VUUsIHYxMzkgQVMgVFJVRSwgdjE0MCBBUyBUUlVFLCB2MTQxIEFTIFRSVUUsIHYxNDIgQVMgVFJV RSwgdjE0MyBBUyBUUlVFLCB2MTQ0IEFTIFRSVUUsIHYxNDUgQVMgVFJVRSwgdjE0NiBBUyBUUlVF LCB2MTQ3IEFTIFRSVUUsIHYxNDggQVMgVFJVRSwgdjE0OSBBUyBUUlVFLCB2MTUwIEFTIFRSVUUs IHYxNTEgQVMgVFJVRSwgdjE1MiBBUyBUUlVFLCB2MTUzIEFTIFRSVUUsIHYxNTQgQVMgVFJVRSwg djE1NSBBUyBUUlVFLCB2MTU2IEFTIFRSVUUsIHYxNTcgQVMgVFJVRSwgdjE1OCBBUyBUUlVFLCB2 MTU5IEFTIFRSVUUsIHYxNjAgQVMgVFJVRSwgdjE2MSBBUyBUUlVFLCB2MTYyIEFTIFRSVUUsIHYx NjMgQVMgVFJVRSwgdjE2NCBBUyBUUlVFLCB2MTY1IEFTIFRSVUUsIHYxNjYgQVMgVFJVRSwgdjE2 NyBBUyBUUlVFLCB2MTY4IEFTIFRSVUUsIHYxNjkgQVMgVFJVRSwgdjE3MCBBUyBUUlVFLCB2MTcx IEFTIFRSVUUsIHYxNzIgQVMgVFJVRSwgdjE3MyBBUyBUUlVFLCB2MTc0IEFTIFRSVUUsIHYxNzUg QVMgVFJVRSwgdjE3NiBBUyBUUlVFLCB2MTc3IEFTIFRSVUUsIHYxNzggQVMgVFJVRSwgdjE3OSBB UyBUUlVFLCB2MTgwIEFTIFRSVUUsIHYxODEgQVMgVFJVRSwgdjE4MiBBUyBUUlVFLCB2MTgzIEFT IFRSVUUsIHYxODQgQVMgVFJVRSwgdjE4NSBBUyBUUlVFLCB2MTg2IEFTIFRSVUUsIHYxODcgQVMg VFJVRSwgdjE4OCBBUyBUUlVFLCB2MTg5IEFTIFRSVUUsIHYxOTAgQVMgVFJVRSwgdjE5MSBBUyBU UlVFLCB2MTkyIEFTIFRSVUUsIHYxOTMgQVMgVFJVRSwgdjE5NCBBUyBUUlVFLCB2MTk1IEFTIFRS VUUsIHYxOTYgQVMgVFJVRSwgdjE5NyBBUyBUUlVFLCB2MTk4IEFTIFRSVUUsIHYxOTkgQVMgVFJV RSwgdjIwMCBBUyBUUlVFLCB2MjAxIEFTIFRSVUUsIHYyMDIgQVMgVFJVRSwgdjIwMyBBUyBUUlVF LCB2MjA0IEFTIFRSVUUsIHYyMDUgQVMgVFJVRSwgdjIwNiBBUyBUUlVFLCB2MjA3IEFTIFRSVUUs IHYyMDggQVMgVFJVRSwgdjIwOSBBUyBUUlVFLCB2MjEwIEFTIFRSVUUsIHYyMTEgQVMgVFJVRSwg djIxMiBBUyBUUlVFLCB2MjEzIEFTIFRSVUUsIHYyMTQgQVMgVFJVRSwgdjIxNSBBUyBUUlVFLCB2 MjE2IEFTIFRSVUUsIHYyMTcgQVMgVFJVRSwgdjIxOCBBUyBUUlVFLCB2MjE5IEFTIFRSVUUsIHYy MjAgQVMgVFJVRSwgdjIyMSBBUyBUUlVFLCB2MjIyIEFTIFRSVUUsIHYyMjMgQVMgVFJVRSwgdjIy NCBBUyBUUlVFLCB2MjI1IEFTIFRSVUUsIHYyMjYgQVMgVFJVRSwgdjIyNyBBUyBUUlVFLCB2MjI4 IEFTIFRSVUUsIHYyMjkgQVMgVFJVRSwgdjIzMCBBUyBUUlVFLCB2MjMxIEFTIFRSVUUsIHYyMzIg QVMgVFJVRSwgdjIzMyBBUyBUUlVFLCB2MjM0IEFTIFRSVUUsIHYyMzUgQVMgVFJVRSwgdjIzNiBB UyBUUlVFLCB2MjM3IEFTIFRSVUUsIHYyMzggQVMgVFJVRSwgdjIzOSBBUyBUUlVFLCB2MjQwIEFT IFRSVUUsIHYyNDEgQVMgVFJVRSwgdjI0MiBBUyBUUlVFLCB2MjQzIEFTIFRSVUUsIHYyNDQgQVMg VFJVRSwgdjI0NSBBUyBUUlVFLCB2MjQ2IEFTIFRSVUUsIHYyNDcgQVMgVFJVRSwgdjI0OCBBUyBU UlVFLCB2MjQ5IEFTIFRSVUUsIHYyNTAgQVMgVFJVRSwgdjI1MSBBUyBUUlVFLCB2MjUyIEFTIFRS VUUpIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxNyBhdCBFWEVD VVRFCi0tLSBFcnJvcjogMjUzIHZhcmlhYmxlcyBleGNlZWRzIGxpbWl0IG9mIDI1MQotRE8gJCQK LURFQ0xBUkUKLSAgICBwYXR0ZXJuX3ZhcnMgdGV4dDsKLSAgICBkZWZpbmVfdmFycyB0ZXh0Owot ICAgIHF1ZXJ5IHRleHQ7Ci1CRUdJTgotICAgIFNFTEVDVCBzdHJpbmdfYWdnKCd2JyB8fCBscGFk KGk6OnRleHQsIDMsICcwJyksICcgJyksCi0gICAgICAgICAgIHN0cmluZ19hZ2coJ3YnIHx8IGxw YWQoaTo6dGV4dCwgMywgJzAnKSB8fCAnIEFTIFRSVUUnLCAnLCAnKQotICAgIElOVE8gcGF0dGVy bl92YXJzLCBkZWZpbmVfdmFycwotICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDI1MykgaTsK LQotICAgIHF1ZXJ5IDo9IGZvcm1hdCgnU0VMRUNUICogRlJPTSAoU0VMRUNUIDEgQVMgeCkgdCBX SU5ET1cgdyBBUyAoCi0gICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotICAgICAgICBQQVRURVJOICglcykKLSAgICAgICAgREVGSU5FICVzKScs IHBhdHRlcm5fdmFycywgZGVmaW5lX3ZhcnMpOwotCi0gICAgRVhFQ1VURSBxdWVyeTsKLUVORDsK LSQkOwotRVJST1I6ICB0b28gbWFueSBwYXR0ZXJuIHZhcmlhYmxlcwotREVUQUlMOiAgTWF4aW11 bSBpcyAyNTEuCi1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiU0VMRUNUICogRlJPTSAoU0VMRUNU IDEgQVMgeCkgdCBXSU5ET1cgdyBBUyAoCi0gICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgICAgICBQQVRURVJOICh2MDAxIHYwMDIgdjAw MyB2MDA0IHYwMDUgdjAwNiB2MDA3IHYwMDggdjAwOSB2MDEwIHYwMTEgdjAxMiB2MDEzIHYwMTQg djAxNSB2MDE2IHYwMTcgdjAxOCB2MDE5IHYwMjAgdjAyMSB2MDIyIHYwMjMgdjAyNCB2MDI1IHYw MjYgdjAyNyB2MDI4IHYwMjkgdjAzMCB2MDMxIHYwMzIgdjAzMyB2MDM0IHYwMzUgdjAzNiB2MDM3 IHYwMzggdjAzOSB2MDQwIHYwNDEgdjA0MiB2MDQzIHYwNDQgdjA0NSB2MDQ2IHYwNDcgdjA0OCB2 MDQ5IHYwNTAgdjA1MSB2MDUyIHYwNTMgdjA1NCB2MDU1IHYwNTYgdjA1NyB2MDU4IHYwNTkgdjA2 MCB2MDYxIHYwNjIgdjA2MyB2MDY0IHYwNjUgdjA2NiB2MDY3IHYwNjggdjA2OSB2MDcwIHYwNzEg djA3MiB2MDczIHYwNzQgdjA3NSB2MDc2IHYwNzcgdjA3OCB2MDc5IHYwODAgdjA4MSB2MDgyIHYw ODMgdjA4NCB2MDg1IHYwODYgdjA4NyB2MDg4IHYwODkgdjA5MCB2MDkxIHYwOTIgdjA5MyB2MDk0 IHYwOTUgdjA5NiB2MDk3IHYwOTggdjA5OSB2MTAwIHYxMDEgdjEwMiB2MTAzIHYxMDQgdjEwNSB2 MTA2IHYxMDcgdjEwOCB2MTA5IHYxMTAgdjExMSB2MTEyIHYxMTMgdjExNCB2MTE1IHYxMTYgdjEx NyB2MTE4IHYxMTkgdjEyMCB2MTIxIHYxMjIgdjEyMyB2MTI0IHYxMjUgdjEyNiB2MTI3IHYxMjgg djEyOSB2MTMwIHYxMzEgdjEzMiB2MTMzIHYxMzQgdjEzNSB2MTM2IHYxMzcgdjEzOCB2MTM5IHYx NDAgdjE0MSB2MTQyIHYxNDMgdjE0NCB2MTQ1IHYxNDYgdjE0NyB2MTQ4IHYxNDkgdjE1MCB2MTUx IHYxNTIgdjE1MyB2MTU0IHYxNTUgdjE1NiB2MTU3IHYxNTggdjE1OSB2MTYwIHYxNjEgdjE2MiB2 MTYzIHYxNjQgdjE2NSB2MTY2IHYxNjcgdjE2OCB2MTY5IHYxNzAgdjE3MSB2MTcyIHYxNzMgdjE3 NCB2MTc1IHYxNzYgdjE3NyB2MTc4IHYxNzkgdjE4MCB2MTgxIHYxODIgdjE4MyB2MTg0IHYxODUg djE4NiB2MTg3IHYxODggdjE4OSB2MTkwIHYxOTEgdjE5MiB2MTkzIHYxOTQgdjE5NSB2MTk2IHYx OTcgdjE5OCB2MTk5IHYyMDAgdjIwMSB2MjAyIHYyMDMgdjIwNCB2MjA1IHYyMDYgdjIwNyB2MjA4 IHYyMDkgdjIxMCB2MjExIHYyMTIgdjIxMyB2MjE0IHYyMTUgdjIxNiB2MjE3IHYyMTggdjIxOSB2 MjIwIHYyMjEgdjIyMiB2MjIzIHYyMjQgdjIyNSB2MjI2IHYyMjcgdjIyOCB2MjI5IHYyMzAgdjIz MSB2MjMyIHYyMzMgdjIzNCB2MjM1IHYyMzYgdjIzNyB2MjM4IHYyMzkgdjI0MCB2MjQxIHYyNDIg djI0MyB2MjQ0IHYyNDUgdjI0NiB2MjQ3IHYyNDggdjI0OSB2MjUwIHYyNTEgdjI1MiB2MjUzKQot ICAgICAgICBERUZJTkUgdjAwMSBBUyBUUlVFLCB2MDAyIEFTIFRSVUUsIHYwMDMgQVMgVFJVRSwg djAwNCBBUyBUUlVFLCB2MDA1IEFTIFRSVUUsIHYwMDYgQVMgVFJVRSwgdjAwNyBBUyBUUlVFLCB2 MDA4IEFTIFRSVUUsIHYwMDkgQVMgVFJVRSwgdjAxMCBBUyBUUlVFLCB2MDExIEFTIFRSVUUsIHYw MTIgQVMgVFJVRSwgdjAxMyBBUyBUUlVFLCB2MDE0IEFTIFRSVUUsIHYwMTUgQVMgVFJVRSwgdjAx NiBBUyBUUlVFLCB2MDE3IEFTIFRSVUUsIHYwMTggQVMgVFJVRSwgdjAxOSBBUyBUUlVFLCB2MDIw IEFTIFRSVUUsIHYwMjEgQVMgVFJVRSwgdjAyMiBBUyBUUlVFLCB2MDIzIEFTIFRSVUUsIHYwMjQg QVMgVFJVRSwgdjAyNSBBUyBUUlVFLCB2MDI2IEFTIFRSVUUsIHYwMjcgQVMgVFJVRSwgdjAyOCBB UyBUUlVFLCB2MDI5IEFTIFRSVUUsIHYwMzAgQVMgVFJVRSwgdjAzMSBBUyBUUlVFLCB2MDMyIEFT IFRSVUUsIHYwMzMgQVMgVFJVRSwgdjAzNCBBUyBUUlVFLCB2MDM1IEFTIFRSVUUsIHYwMzYgQVMg VFJVRSwgdjAzNyBBUyBUUlVFLCB2MDM4IEFTIFRSVUUsIHYwMzkgQVMgVFJVRSwgdjA0MCBBUyBU UlVFLCB2MDQxIEFTIFRSVUUsIHYwNDIgQVMgVFJVRSwgdjA0MyBBUyBUUlVFLCB2MDQ0IEFTIFRS VUUsIHYwNDUgQVMgVFJVRSwgdjA0NiBBUyBUUlVFLCB2MDQ3IEFTIFRSVUUsIHYwNDggQVMgVFJV RSwgdjA0OSBBUyBUUlVFLCB2MDUwIEFTIFRSVUUsIHYwNTEgQVMgVFJVRSwgdjA1MiBBUyBUUlVF LCB2MDUzIEFTIFRSVUUsIHYwNTQgQVMgVFJVRSwgdjA1NSBBUyBUUlVFLCB2MDU2IEFTIFRSVUUs IHYwNTcgQVMgVFJVRSwgdjA1OCBBUyBUUlVFLCB2MDU5IEFTIFRSVUUsIHYwNjAgQVMgVFJVRSwg djA2MSBBUyBUUlVFLCB2MDYyIEFTIFRSVUUsIHYwNjMgQVMgVFJVRSwgdjA2NCBBUyBUUlVFLCB2 MDY1IEFTIFRSVUUsIHYwNjYgQVMgVFJVRSwgdjA2NyBBUyBUUlVFLCB2MDY4IEFTIFRSVUUsIHYw NjkgQVMgVFJVRSwgdjA3MCBBUyBUUlVFLCB2MDcxIEFTIFRSVUUsIHYwNzIgQVMgVFJVRSwgdjA3 MyBBUyBUUlVFLCB2MDc0IEFTIFRSVUUsIHYwNzUgQVMgVFJVRSwgdjA3NiBBUyBUUlVFLCB2MDc3 IEFTIFRSVUUsIHYwNzggQVMgVFJVRSwgdjA3OSBBUyBUUlVFLCB2MDgwIEFTIFRSVUUsIHYwODEg QVMgVFJVRSwgdjA4MiBBUyBUUlVFLCB2MDgzIEFTIFRSVUUsIHYwODQgQVMgVFJVRSwgdjA4NSBB UyBUUlVFLCB2MDg2IEFTIFRSVUUsIHYwODcgQVMgVFJVRSwgdjA4OCBBUyBUUlVFLCB2MDg5IEFT IFRSVUUsIHYwOTAgQVMgVFJVRSwgdjA5MSBBUyBUUlVFLCB2MDkyIEFTIFRSVUUsIHYwOTMgQVMg VFJVRSwgdjA5NCBBUyBUUlVFLCB2MDk1IEFTIFRSVUUsIHYwOTYgQVMgVFJVRSwgdjA5NyBBUyBU UlVFLCB2MDk4IEFTIFRSVUUsIHYwOTkgQVMgVFJVRSwgdjEwMCBBUyBUUlVFLCB2MTAxIEFTIFRS VUUsIHYxMDIgQVMgVFJVRSwgdjEwMyBBUyBUUlVFLCB2MTA0IEFTIFRSVUUsIHYxMDUgQVMgVFJV RSwgdjEwNiBBUyBUUlVFLCB2MTA3IEFTIFRSVUUsIHYxMDggQVMgVFJVRSwgdjEwOSBBUyBUUlVF LCB2MTEwIEFTIFRSVUUsIHYxMTEgQVMgVFJVRSwgdjExMiBBUyBUUlVFLCB2MTEzIEFTIFRSVUUs IHYxMTQgQVMgVFJVRSwgdjExNSBBUyBUUlVFLCB2MTE2IEFTIFRSVUUsIHYxMTcgQVMgVFJVRSwg djExOCBBUyBUUlVFLCB2MTE5IEFTIFRSVUUsIHYxMjAgQVMgVFJVRSwgdjEyMSBBUyBUUlVFLCB2 MTIyIEFTIFRSVUUsIHYxMjMgQVMgVFJVRSwgdjEyNCBBUyBUUlVFLCB2MTI1IEFTIFRSVUUsIHYx MjYgQVMgVFJVRSwgdjEyNyBBUyBUUlVFLCB2MTI4IEFTIFRSVUUsIHYxMjkgQVMgVFJVRSwgdjEz MCBBUyBUUlVFLCB2MTMxIEFTIFRSVUUsIHYxMzIgQVMgVFJVRSwgdjEzMyBBUyBUUlVFLCB2MTM0 IEFTIFRSVUUsIHYxMzUgQVMgVFJVRSwgdjEzNiBBUyBUUlVFLCB2MTM3IEFTIFRSVUUsIHYxMzgg QVMgVFJVRSwgdjEzOSBBUyBUUlVFLCB2MTQwIEFTIFRSVUUsIHYxNDEgQVMgVFJVRSwgdjE0MiBB UyBUUlVFLCB2MTQzIEFTIFRSVUUsIHYxNDQgQVMgVFJVRSwgdjE0NSBBUyBUUlVFLCB2MTQ2IEFT IFRSVUUsIHYxNDcgQVMgVFJVRSwgdjE0OCBBUyBUUlVFLCB2MTQ5IEFTIFRSVUUsIHYxNTAgQVMg VFJVRSwgdjE1MSBBUyBUUlVFLCB2MTUyIEFTIFRSVUUsIHYxNTMgQVMgVFJVRSwgdjE1NCBBUyBU UlVFLCB2MTU1IEFTIFRSVUUsIHYxNTYgQVMgVFJVRSwgdjE1NyBBUyBUUlVFLCB2MTU4IEFTIFRS VUUsIHYxNTkgQVMgVFJVRSwgdjE2MCBBUyBUUlVFLCB2MTYxIEFTIFRSVUUsIHYxNjIgQVMgVFJV RSwgdjE2MyBBUyBUUlVFLCB2MTY0IEFTIFRSVUUsIHYxNjUgQVMgVFJVRSwgdjE2NiBBUyBUUlVF LCB2MTY3IEFTIFRSVUUsIHYxNjggQVMgVFJVRSwgdjE2OSBBUyBUUlVFLCB2MTcwIEFTIFRSVUUs IHYxNzEgQVMgVFJVRSwgdjE3MiBBUyBUUlVFLCB2MTczIEFTIFRSVUUsIHYxNzQgQVMgVFJVRSwg djE3NSBBUyBUUlVFLCB2MTc2IEFTIFRSVUUsIHYxNzcgQVMgVFJVRSwgdjE3OCBBUyBUUlVFLCB2 MTc5IEFTIFRSVUUsIHYxODAgQVMgVFJVRSwgdjE4MSBBUyBUUlVFLCB2MTgyIEFTIFRSVUUsIHYx ODMgQVMgVFJVRSwgdjE4NCBBUyBUUlVFLCB2MTg1IEFTIFRSVUUsIHYxODYgQVMgVFJVRSwgdjE4 NyBBUyBUUlVFLCB2MTg4IEFTIFRSVUUsIHYxODkgQVMgVFJVRSwgdjE5MCBBUyBUUlVFLCB2MTkx IEFTIFRSVUUsIHYxOTIgQVMgVFJVRSwgdjE5MyBBUyBUUlVFLCB2MTk0IEFTIFRSVUUsIHYxOTUg QVMgVFJVRSwgdjE5NiBBUyBUUlVFLCB2MTk3IEFTIFRSVUUsIHYxOTggQVMgVFJVRSwgdjE5OSBB UyBUUlVFLCB2MjAwIEFTIFRSVUUsIHYyMDEgQVMgVFJVRSwgdjIwMiBBUyBUUlVFLCB2MjAzIEFT IFRSVUUsIHYyMDQgQVMgVFJVRSwgdjIwNSBBUyBUUlVFLCB2MjA2IEFTIFRSVUUsIHYyMDcgQVMg VFJVRSwgdjIwOCBBUyBUUlVFLCB2MjA5IEFTIFRSVUUsIHYyMTAgQVMgVFJVRSwgdjIxMSBBUyBU UlVFLCB2MjEyIEFTIFRSVUUsIHYyMTMgQVMgVFJVRSwgdjIxNCBBUyBUUlVFLCB2MjE1IEFTIFRS VUUsIHYyMTYgQVMgVFJVRSwgdjIxNyBBUyBUUlVFLCB2MjE4IEFTIFRSVUUsIHYyMTkgQVMgVFJV RSwgdjIyMCBBUyBUUlVFLCB2MjIxIEFTIFRSVUUsIHYyMjIgQVMgVFJVRSwgdjIyMyBBUyBUUlVF LCB2MjI0IEFTIFRSVUUsIHYyMjUgQVMgVFJVRSwgdjIyNiBBUyBUUlVFLCB2MjI3IEFTIFRSVUUs IHYyMjggQVMgVFJVRSwgdjIyOSBBUyBUUlVFLCB2MjMwIEFTIFRSVUUsIHYyMzEgQVMgVFJVRSwg djIzMiBBUyBUUlVFLCB2MjMzIEFTIFRSVUUsIHYyMzQgQVMgVFJVRSwgdjIzNSBBUyBUUlVFLCB2 MjM2IEFTIFRSVUUsIHYyMzcgQVMgVFJVRSwgdjIzOCBBUyBUUlVFLCB2MjM5IEFTIFRSVUUsIHYy NDAgQVMgVFJVRSwgdjI0MSBBUyBUUlVFLCB2MjQyIEFTIFRSVUUsIHYyNDMgQVMgVFJVRSwgdjI0 NCBBUyBUUlVFLCB2MjQ1IEFTIFRSVUUsIHYyNDYgQVMgVFJVRSwgdjI0NyBBUyBUUlVFLCB2MjQ4 IEFTIFRSVUUsIHYyNDkgQVMgVFJVRSwgdjI1MCBBUyBUUlVFLCB2MjUxIEFTIFRSVUUsIHYyNTIg QVMgVFJVRSwgdjI1MyBBUyBUUlVFKSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Js b2NrIGxpbmUgMTcgYXQgRVhFQ1VURQotICAgIENSRUFURSBURU1QIFRBQkxFIHN0b2NrX251bGwg KGNvbXBhbnkgVEVYVCwgdGRhdGUgREFURSwgcHJpY2UgSU5URUdFUik7Ci0gICAgSU5TRVJUIElO VE8gc3RvY2tfbnVsbCBWQUxVRVMgKCdjMScsICcyMDIzLTA3LTAxJywgMTAwKTsKLSAgICBJTlNF UlQgSU5UTyBzdG9ja19udWxsIFZBTFVFUyAoJ2MxJywgJzIwMjMtMDctMDInLCBOVUxMKTsgIC0t IE5VTEwgaW4gbWlkZGxlCi0gICAgSU5TRVJUIElOVE8gc3RvY2tfbnVsbCBWQUxVRVMgKCdjMScs ICcyMDIzLTA3LTAzJywgMjAwKTsKLSAgICBJTlNFUlQgSU5UTyBzdG9ja19udWxsIFZBTFVFUyAo J2MxJywgJzIwMjMtMDctMDQnLCAxNTApOwotICAgIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJp Y2UsIGNvdW50KCopIE9WRVIgdyBBUyBtYXRjaF9jb3VudAotICAgIEZST00gc3RvY2tfbnVsbAot ICAgIFdJTkRPVyB3IEFTICgKLSAgICAgIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gICAgICBPUkRF UiBCWSB0ZGF0ZQotICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCi0gICAgICBQQVRURVJOIChTVEFSVCBVUCBET1dOKQotICAgICAgREVGSU5FIFNU QVJUIEFTIFRSVUUsIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksIERPV04gQVMgcHJpY2UgPAot UFJFVihwcmljZSkKLSAgICApOwotIGNvbXBhbnkgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBtYXRj aF9jb3VudCAKLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0g YzEgICAgICB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAwCi0gYzEgICAgICB8IDA3 LTAyLTIwMjMgfCAgICAgICB8ICAgICAgICAgICAwCi0gYzEgICAgICB8IDA3LTAzLTIwMjMgfCAg IDIwMCB8ICAgICAgICAgICAwCi0gYzEgICAgICB8IDA3LTA0LTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAwCi0oNCByb3dzKQotCi0tLSBPdmVybGFwcGluZyBtYXRjaCB0ZXN0cyAocmVxdWlyZXMg bXVsdGktY29udGV4dCBmb3IgY29ycmVjdCBiZWhhdmlvcikKLS0tIFVzaW5nIGFycmF5IGZsYWdz OiAnWCcgPSBBTlkoZmxhZ3MpIGZvciBtdWx0aS1UUlVFIHN1cHBvcnQKLS0tIFRlc3QgMTogQSBC IEMgRCBFIHwgQiBDIEQgfCBDIEQgRSBGIC0gdGhyZWUgb3ZlcmxhcHBpbmcgcGF0dGVybnMKLS0t IERpZmZlcmVudCBlbmQgcG9pbnRzOiBCIEMgRCAoNCksIEEgQiBDIEQgRSAoNSksIEMgRCBFIEYg KDYpCi1XSVRIIHRlc3Rfb3ZlcmxhcDEgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwot ICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsnQiddKSwKLSAgICAg ICAgKDMsIEFSUkFZWydDJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCi0gICAgICAgICg1 LCBBUlJBWVsnRSddKSwKLSAgICAgICAgKDYsIEFSUkFZWydGJ10pCi0gICAgKSBBUyB0KGlkLCBm bGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gdGVzdF9v dmVybGFwMQotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSBCIEMgRCBFIHwgQiBDIEQgfCBDIEQgRSBG KQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIg QVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAotICAg ICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCi0gICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdz KSwKLSAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRj aF9zdGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCi0gIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA1Ci0gIDIgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCi0gIDQgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDUgfCB7RX0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDYgfCB7Rn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCi0oNiByb3dzKQotCi1XSVRIIHRlc3Rfb3ZlcmxhcDEgQVMgKAotICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBB UlJBWVsnQiddKSwKLSAgICAgICAgKDMsIEFSUkFZWydDJ10pLAotICAgICAgICAoNCwgQVJSQVlb J0QnXSksCi0gICAgICAgICg1LCBBUlJBWVsnRSddKSwKLSAgICAgICAgKDYsIEFSUkFZWydGJ10p Ci0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9lbmQKLUZST00gdGVzdF9vdmVybGFwMQotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlk Ci0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0g ICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwotICAgIFBBVFRFUk4gKEEgQiBDIEQgRSB8 IEIgQyBEIHwgQyBEIEUgRikKLSAgICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAotICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0g QU5ZKGZsYWdzKSwKLSAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAotICAgICAgICBFIEFT ICdFJyA9IEFOWShmbGFncyksCi0gICAgICAgIEYgQVMgJ0YnID0gQU5ZKGZsYWdzKQotKTsKLSBp ZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAg NQotICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAotICAzIHwge0N9ICAgfCAg ICAgICAgICAgMyB8ICAgICAgICAgNgotICA0IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAotICA1IHwge0V9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA2IHwge0Z9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAotKDYgcm93cykKLQotLS0gUEFTVCBMQVNUOiBvbmx5 IG9uZSBtYXRjaAotLS0gVE8gTkVYVCBST1cgd2l0aCBtdWx0aS1jb250ZXh0OiB0aHJlZSBtYXRj aGVzCi0tLSAgIFJvdyAxOiBBIEIgQyBEIEUgKDEtNSkKLS0tICAgUm93IDI6IEIgQyBEICgyLTQp IDwtIGVuZHMgZmlyc3QhCi0tLSAgIFJvdyAzOiBDIEQgRSBGICgzLTYpIDwtIGVuZHMgbGFzdCEK LS0tIFRlc3QgMWI6IExvbmdlciBwYXR0ZXJuIEZBSUxTLCBzaG9ydGVyIHBhdHRlcm4gc2hvdWxk IHN1cnZpdmUKLS0tIFBhdHRlcm46IEErIEIgQyBEIEUgfCBCKyBDCi0tLSBBKyBCIEMgRCBFIGZh aWxzIChubyBFIGZvdW5kIGluIHNlcXVlbmNlKQotLS0gQisgQyBtYXRjaGVzIGF0IHJvd3MgMi0z Ci0tLSBSZXN1bHQ6IG1hdGNoIDItMyAoQisgQykKLVdJVEggdGVzdF9vdmVybGFwMWIgQVMgKAot ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAg ICAgICgyLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDMsIEFSUkFZWydDJ10pLAotICAgICAgICAo NCwgQVJSQVlbJ0QnXSksCi0gICAgICAgICg1LCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwg ZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3Rf b3ZlcmxhcDFiCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBKyBCIEMgRCBFIHwgQisgQykKLSAgICBE RUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdCJyA9 IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgRCBB UyAnRCcgPSBBTlkoZmxhZ3MpLAotICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKLSk7Ci0g aWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKLSAgMiB8IHtCfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDMKLSAgMyB8IHtDfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKLSAgNCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKLSAgNSB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg1IHJvd3MpCi0K LS0tIFRlc3QgMjogQSBCKyBDIHwgQisgRCAtIGxvbmcgQiBzZXF1ZW5jZSB3aXRoIGRpZmZlcmVu dCBlbmRpbmdzCi1XSVRIIHRlc3Rfb3ZlcmxhcDIgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUwotICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgIEFSUkFZWydCJ10p LAotICAgICAgICAoMywgIEFSUkFZWydCJ10pLAotICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAot ICAgICAgICAoNSwgIEFSUkFZWydCJ10pLAotICAgICAgICAoNiwgIEFSUkFZWydDJ10pLAotICAg ICAgICAoNywgIEFSUkFZWydCJ10pLAotICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAotICAgICAg ICAoOSwgIEFSUkFZWydCJ10pLAotICAgICAgICAoMTAsIEFSUkFZWydEJ10pCi0gICAgKSBBUyB0 KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00g dGVzdF9vdmVybGFwMgotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVwotICAgIFBBVFRFUk4gKEEgQisgQyB8IEIrIEQpCi0gICAgREVG SU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMg J0QnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwge0F9ICAg fCAgICAgICAgICAgMSB8ICAgICAgICAgNgotICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAotICAzIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA0IHwge0J9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwge0J9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAotICA2IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA3IHwg e0J9ICAgfCAgICAgICAgICAgNyB8ICAgICAgICAxMAotICA4IHwge0J9ICAgfCAgICAgICAgICAg OCB8ICAgICAgICAxMAotICA5IHwge0J9ICAgfCAgICAgICAgICAgOSB8ICAgICAgICAxMAotIDEw IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotKDEwIHJvd3MpCi0KLS0tIEN1cnJl bnQgcmVzdWx0IChjb3JyZWN0KToKLS0tICAgUm93IDE6IEEgQisgQyAoMS02KQotLS0gICBSb3cg Ny05OiBCKyBEICg3LTEwLCA4LTEwLCA5LTEwKQotLS0gTm90ZTogUm93IDItNiBjYW5ub3QgbWF0 Y2ggQisgRCBiZWNhdXNlIFJvdyA2IGlzIEMsIG5vdCBECi0tLSBXaXRoIGFic29ycHRpb246IDgt MTAgYW5kIDktMTAgd291bGQgYmUgYWJzb3JiZWQgYnkgNy0xMCAoZWFybGllciBjb250ZXh0IGNv dmVycyBsYXRlcikKLS0tIFRlc3QgMzogR3JlZWR5IHF1YW50aWZpZXIgd2l0aCBsYXRlIGZhaWx1 cmUgLSBBIEIgQysgRCB8IEEgQgotLS0gUGF0dGVybiBleHBlY3RzIEQgYWZ0ZXIgQyssIGJ1dCBF IGNvbWVzIGluc3RlYWQgKCJiZXRyYXlhbCIpCi1XSVRIIHRlc3RfYmV0cmF5YWwgQVMgKAotICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAg ICgyLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDMsIEFSUkFZWydDJ10pLAotICAgICAgICAoNCwg QVJSQVlbJ0MnXSksCi0gICAgICAgICg1LCBBUlJBWVsnQyddKSwKLSAgICAgICAgKDYsIEFSUkFZ WydFJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKLUZST00gdGVzdF9iZXRyYXlhbAotV0lORE9XIHcgQVMgKAotICAgIE9SREVS IEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSBC IEMrIEQgfCBBIEIpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK LSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncyksCi0gICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwg bWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQotICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMgotICAyIHwge0J9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAotICA0IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwg e0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA2IHwge0V9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4g KEEgQisgQykKKyBERUZJTkUKKyAgQSBBUyB2YWwgSVMgTk9UIE5VTEwsCisgIEIgQVMgdmFsIElT IE5VTEwgQU5EIE5FWFQodmFsKSBJUyBOVUxMLAorICBDIEFTIHZhbCBJUyBOVUxMIEFORCBORVhU KHZhbCkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0t CisgIDEgfCAxMDAgfCAgIDQKKyAgMiB8ICAgICB8ICAgMAorICAzIHwgICAgIHwgICAwCisgIDQg fCAgICAgfCAgIDAKKyAgNSB8IDIwMCB8ICAgMAorICA2IHwgMzAwIHwgICAwCiAoNiByb3dzKQog Ci0tLSBBIEIgQysgRCBmYWlscyBhdCBSb3cgNiAoRSBpbnN0ZWFkIG9mIEQpCi0tLSBRdWVzdGlv bjogRG9lcyBpdCBmYWxsYmFjayB0byBBIEIgKDEtMik/Ci0tLSBUZXN0IDQ6IExleGljYWwgT3Jk ZXIgdGVzdCAtIEEgQiBDIHwgQSBCIEMgRCBFCi0tLSBTUUwgc3RhbmRhcmQ6IGZpcnN0IG1hdGNo aW5nIGFsdGVybmF0aXZlIHdpbnMKLVdJVEggdGVzdF9sZXhpY2FsIEFTICgKLSAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJS QVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJBWVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydE J10pLAotICAgICAgICAoNSwgQVJSQVlbJ0UnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQot U0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwg bGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0ZXN0X2xleGljYWwKLVdJ TkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVwotICAgIFBBVFRFUk4gKEEgQiBDIHwgQSBCIEMgRCBFKQotICAgIERFRklORQotICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwK LSAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAotICAgICAgICBEIEFTICdEJyA9IEFOWShm bGFncyksCi0gICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwg bWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQotICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMwotICAyIHwge0J9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAotICA0IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwg e0V9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotKDUgcm93cykKLQotLS0gU1FMIHN0YW5k YXJkIExleGljYWwgT3JkZXI6IEEgQiBDICgxLTMpIHdpbnMgKGZpcnN0IGFsdGVybmF0aXZlKQot LS0gVGVzdCA0YjogUmV2ZXJzZWQgcGF0dGVybiBvcmRlciAtIEEgQiBDIEQgRSB8IEEgQiBDCi1X SVRIIHRlc3RfbGV4aWNhbDIgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAg ICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDMs IEFSUkFZWydDJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCi0gICAgICAgICg1LCBBUlJB WVsnRSddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3RfbGV4aWNhbDIKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRF UiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIFBBVFRFUk4gKEEg QiBDIEQgRSB8IEEgQiBDKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBBUyAnQycgPSBB TlkoZmxhZ3MpLAotICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCi0gICAgICAgIEUgQVMg J0UnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwge0F9ICAg fCAgICAgICAgICAgMSB8ICAgICAgICAgNQotICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAotICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA0IHwge0R9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwge0V9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAotKDUgcm93cykKLQotLS0gU1FMIHN0YW5kYXJkIExleGljYWwgT3JkZXI6IEEg QiBDIEQgRSAoMS01KSB3aW5zIChmaXJzdCBhbHRlcm5hdGl2ZSkKLS0tIFRlc3QgNTogTXVsdGlw bGUgVFJVRSBpbiBzaW5nbGUgcm93IChvdmVybGFwcGluZyBwYXR0ZXJuIHZhcmlhYmxlcykKLS0t IEVhY2ggcm93IG1hdGNoZXMgbXVsdGlwbGUgREVGSU5FIGNvbmRpdGlvbnMgc2ltdWx0YW5lb3Vz bHkKLVdJVEggdGVzdF9tdWx0aV90cnVlIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMK LSAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwgICAgICAgIC0tIEEgYW5kIEIgYm90aCBUUlVF Ci0gICAgICAgICgyLCBBUlJBWVsnQicsJ0MnXSksICAgICAgICAtLSBCIGFuZCBDIGJvdGggVFJV RQotICAgICAgICAoMywgQVJSQVlbJ0MnLCdEJ10pLCAgICAgICAgLS0gQyBhbmQgRCBib3RoIFRS VUUKLSAgICAgICAgKDQsIEFSUkFZWydEJywnRSddKSwgICAgICAgIC0tIEQgYW5kIEUgYm90aCBU UlVFCi0gICAgICAgICg1LCBBUlJBWVsnRScsJ18nXSkgICAgICAgICAtLSBFIG9ubHkKLSAgICAp IEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAot RlJPTSB0ZXN0X211bHRpX3RydWUKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIFBBVFRFUk4gKEEgQiBDIEQgRSkKLSAg ICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAg RCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAotICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKLSk7 Ci0gaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSAgMSB8IHtBLEJ9IHwgICAgICAgICAgIDEgfCAgICAg ICAgIDUKLSAgMiB8IHtCLEN9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8IHtDLER9 IHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgNCB8IHtELEV9IHwgICAgICAgICAgICAgfCAg ICAgICAgICAKLSAgNSB8IHtFLF99IHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg1IHJvd3Mp Ci0KLS0tIFJvdyAxOiBBPVQsIEI9VCAtPiBtYXRjaGVzIEEKLS0tIFJvdyAyOiBCPVQsIEM9VCAt PiBtYXRjaGVzIEIKLS0tIFJvdyAzOiBDPVQsIEQ9VCAtPiBtYXRjaGVzIEMKLS0tIFJvdyA0OiBE PVQsIEU9VCAtPiBtYXRjaGVzIEQKLS0tIFJvdyA1OiBFPVQgICAgICAtPiBtYXRjaGVzIEUKLS0t IFJlc3VsdDogbWF0Y2ggMS01IChBIEIgQyBEIEUpCi0tLSBUZXN0IDY6IERpYWdvbmFsIHBhdHRl cm4gd2l0aCBtdWx0aS1UUlVFIChzaGlmdGVkIG92ZXJsYXApCi1XSVRIIHRlc3RfZGlhZ29uYWwg QVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnLCdf J10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InLCdBJ10pLAotICAgICAgICAoMywgQVJSQVlbJ0Mn LCdCJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0QnLCdDJ10pLAotICAgICAgICAoNSwgQVJSQVlb J18nLCdEJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKLUZST00gdGVzdF9kaWFnb25hbAotV0lORE9XIHcgQVMgKAotICAgIE9S REVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwotICAgIFBBVFRFUk4gKEEg QiBDIEQpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAg ICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyks Ci0gICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hf c3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQotICAxIHwge0EsX30gfCAgICAgICAgICAgMSB8ICAgICAgICAgNAotICAyIHwge0IsQX0gfCAg ICAgICAgICAgMiB8ICAgICAgICAgNQotICAzIHwge0MsQn0gfCAgICAgICAgICAgICB8ICAgICAg ICAgIAotICA0IHwge0QsQ30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwge18sRH0g fCAgICAgICAgICAgICB8ICAgICAgICAgIAotKDUgcm93cykKLQotLS0gUG9zc2libGUgbWF0Y2hl czoKLS0tICAgU3RhcnQgUm93IDE6IEEoMSkgQigyKSBDKDMpIEQoNCkgLT4gMS00Ci0tLSAgIFN0 YXJ0IFJvdyAyOiBBKDIpIEIoMykgQyg0KSBEKDUpIC0+IDItNSAoYmVjYXVzZSBSb3cgMiBoYXMg QSB0b28hKQotLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ29udGV4dCBBYnNvcnB0aW9uIFRlc3RzCi0tLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBUZXN0IGFic29ycHRpb24gMTogQmFzaWMgQSsgcGF0dGVybiAtIGxhdGVy IGNvbnRleHRzIGFic29yYmVkIGJ5IGVhcmxpZXIKLVdJVEggdGVzdF9hYnNvcmJfYmFzaWMgQVMg KAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0g ICAgICAgICgyLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJ10pLAotICAgICAg ICAoNCwgQVJSQVlbJ0EnXSksCi0gICAgICAgICg1LCBBUlJBWVsnQiddKQotICAgICkgQVMgdChp ZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRl c3RfYWJzb3JiX2Jhc2ljCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBN QVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAoQSspCi0gICAgREVGSU5FIEEgQVMg J0EnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwge0F9ICAg fCAgICAgICAgICAgMSB8ICAgICAgICAgNAotICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAg ICAgICAgNAotICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNAotICA0IHwge0F9 ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNAotICA1IHwge0J9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAotKDUgcm93cykKLQotLS0gUGF0dGVybiBBKyBpcyBhYnNvcmJhYmxlICh1bmJv dW5kZWQgZmlyc3QgZWxlbWVudCwgb25seSBvbmUgdW5ib3VuZGVkKQotLS0gNCBtYXRjaGVzOiAo MS00LCAyLTQsIDMtNCwgNC00KQotLS0gVGVzdCBhYnNvcnB0aW9uIDI6IEErIEIgcGF0dGVybiAt IGFic29ycHRpb24gd2l0aCBmaXhlZCBzdWZmaXgKLVdJVEggdGVzdF9hYnNvcmJfc3VmZml4IEFT ICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAot ICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgzLCBBUlJBWVsnQSddKSwKLSAgICAg ICAgKDQsIEFSUkFZWydCJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKLSAgICApIEFTIHQo aWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0 ZXN0X2Fic29yYl9zdWZmaXgKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVS IE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQQVRURVJOIChBKyBCKQotICAgIERFRklORQot ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwge0F9ICAgfCAgICAgICAgICAg MSB8ICAgICAgICAgNAotICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAotICAz IHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNAotICA0IHwge0J9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAotICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAot KDUgcm93cykKLQotLS0gUGF0dGVybiBBKyBCIGlzIGFic29yYmFibGUgKEErIHVuYm91bmRlZCBm aXJzdCwgQiBib3VuZGVkIHN1ZmZpeCkKLS0tIEFsbCBwb3RlbnRpYWwgbWF0Y2hlcyBlbmQgYXQg c2FtZSByb3cgKHJvdyA0IHdpdGggQikKLS0tIDMgbWF0Y2hlczogKDEtNCwgMi00LCAzLTQpCi0t LSBUZXN0IGFic29ycHRpb24gMzogUGVyLWJyYW5jaCBhYnNvcnB0aW9uIHdpdGggQUxUIChCKyBD IHwgQisgRCkKLVdJVEggdGVzdF9hYnNvcmJfYWx0IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydCJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSks Ci0gICAgICAgICgzLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAg ICAgICAoNSwgQVJSQVlbJ1gnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlk LCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0ZXN0X2Fic29yYl9hbHQKLVdJTkRPVyB3 IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAg ICBQQVRURVJOIChCKyBDIHwgQisgRCkKLSAgICBERUZJTkUKLSAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMg J0QnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwge0J9ICAg fCAgICAgICAgICAgMSB8ICAgICAgICAgNAotICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAg ICAgICAgNAotICAzIHwge0J9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNAotICA0IHwge0R9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAotKDUgcm93cykKLQotLS0gQm90aCBicmFuY2hlcyBCKyBDIGFuZCBCKyBEIGFy ZSBhYnNvcmJhYmxlIChCKyB1bmJvdW5kZWQgZmlyc3QpCi0tLSBCKyBEIGJyYW5jaCBtYXRjaGVz OiAzIG1hdGNoZXMgKDEtNCwgMi00LCAzLTQpCi0tLSBUZXN0IGFic29ycHRpb24gNDogTm9uLWFi c29yYmFibGUgcGF0dGVybiAoQSBCKyAtIHVuYm91bmRlZCBub3QgZmlyc3QpCi1XSVRIIHRlc3Rf bm9fYWJzb3JiIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFS UkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJBWVsn QiddKSwKLSAgICAgICAgKDQsIEFSUkFZWydCJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkK LSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X2VuZAotRlJPTSB0ZXN0X25vX2Fic29yYgotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlk Ci0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0g ICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwotICAgIFBBVFRFUk4gKEEgQispCi0gICAg REVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicg PSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAK LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gIDEgfCB7QX0gICB8ICAg ICAgICAgICAxIHwgICAgICAgICA0Ci0gIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCi0gIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDQgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDUgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCi0oNSByb3dzKQotCi0tLSBQYXR0ZXJuIEEgQisgaXMgTk9UIGFic29yYmFibGUgKEEg Ym91bmRlZCBmaXJzdCwgQisgdW5ib3VuZGVkIGJ1dCBub3QgZmlyc3QpCi0tLSBPbmx5IFJvdyAx IGNhbiBzdGFydCBtYXRjaCAob25seSByb3cgd2l0aCBBKSwgc28gb25seSBvbmUgbWF0Y2g6IDEt NAotLS0gVGVzdCBhYnNvcnB0aW9uIDU6IEdST1VQIG1lcmdlIGVuYWJsZXMgYWJzb3JwdGlvbgot V0lUSCB0ZXN0X2Fic29yYl9ncm91cCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0g ICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydCJ10pLAotICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCi0gICAgICAgICg0LCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDUs IEFSUkFZWydBJ10pLAotICAgICAgICAoNiwgQVJSQVlbJ0InXSksCi0gICAgICAgICg3LCBBUlJB WVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3RfYWJzb3JiX2dyb3VwCi1XSU5ET1cgdyBBUyAoCi0gICAg T1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAo KEEgQikgKEEgQikrKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks Ci0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hf c3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQotICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgNgotICAyIHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAotICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAg ICAgNgotICA0IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA1IHwge0F9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAotICA2IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAotICA3IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAotKDcgcm93cykK LQotLS0gUGF0dGVybiBvcHRpbWl6ZWQ6IChBIEIpIChBIEIpKyAtPiAoQSBCKXsyLH0KLS0tIDIg bWF0Y2hlczogMS02ICgzIHJlcHMpLCAzLTYgKDIgcmVwcykKLS0tIFRlc3QgYWJzb3JwdGlvbiA2 OiBNdWx0aXBsZSB1bmJvdW5kZWQgLSBmaXJzdCBlbGVtZW50IHVuYm91bmRlZCBlbmFibGVzIGFi c29ycHRpb24KLVdJVEggdGVzdF9tdWx0aV91bmJvdW5kZWQgQVMgKAotICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsn QSddKSwKLSAgICAgICAgKDMsIEFSUkFZWydCJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0InXSks Ci0gICAgICAgICg1LCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxF Q1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3RfbXVsdGlfdW5ib3VuZGVk Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCi0gICAgUEFUVEVSTiAoQSsgQispCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCi0gIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA0Ci0g IDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0Ci0gIDMgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCi0gIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg Ci0gIDUgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0oNSByb3dzKQotCi0tLSAy IG1hdGNoZXM6IDEtNCwgMi00IChzYW1lIGVuZHBvaW50IDQpCi0tLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmFjb2IncyBSUFIgUGF0dGVybnMgKGZy b20gamFjb2IgYnJhbmNoKQotLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIFRlc3Q6IEE/IChvcHRpb25hbCwgZ3JlZWR5KQotV0lUSCBqYWNvYl9vcHRp b25hbCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsn QSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydYJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkK LVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQs IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gamFjb2Jfb3B0aW9uYWwK LVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVwotICAgIFBBVFRFUk4gKEE/KQotICAgIERFRklORSBBIEFTICdBJyA9IEFOWShmbGFn cykKLSk7Ci0gaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEg fCAgICAgICAgIDEKLSAgMiB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSgyIHJv d3MpCi0KLS0tIEV4cGVjdGVkOiAxLTEgKG1hdGNoZXMgQSkKLS0tIFRlc3Q6IEF7Mn0gKGV4YWN0 IGNvdW50KQotV0lUSCBqYWNvYl9leGFjdCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVT Ci0gICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydBJ10pLAotICAg ICAgICAoMywgQVJSQVlbJ0EnXSksCi0gICAgICAgICg0LCBBUlJBWVsnWCddKQotICAgICkgQVMg dChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9N IGphY29iX2V4YWN0Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBezJ9KQotICAgIERFRklORSBBIEFT ICdBJyA9IEFOWShmbGFncykKLSk7Ci0gaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAotLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSAgMSB8IHtBfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKLSAgMiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKLSAgMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgNCB8IHtY fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg0IHJvd3MpCi0KLS0tIEV4cGVjdGVkOiAx LTIKLS0tIFRlc3Q6IEF7MSwzfSAoYm91bmRlZCByYW5nZSwgZ3JlZWR5KQotV0lUSCBqYWNvYl9i b3VuZGVkIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgzLCBBUlJBWVsnQSdd KSwKLSAgICAgICAgKDQsIEFSUkFZWydBJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKLSAg ICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAotRlJPTSBqYWNvYl9ib3VuZGVkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBezEsM30pCi0gICAg REVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdzIHwgbWF0Y2hfc3Rh cnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQot ICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMwotICAyIHwge0F9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAotICAzIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAotICA0IHwge0F9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNAotICA1IHwge1h9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAotKDUgcm93cykKLQotLS0gRXhwZWN0ZWQ6IDEtMyAoZ3Jl ZWR5IHRha2VzIG1heCksIHRoZW4gNC00Ci0tLSBUZXN0OiBBIHwgQiAoc2ltcGxlIGFsdGVybmF0 aW9uKQotV0lUSCBqYWNvYl9zaW1wbGVfYWx0IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0g ICAgICAgICgzLCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1Qg aWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX3NpbXBsZV9hbHQKLVdJTkRP VyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VwotICAgIFBBVFRFUk4gKEEgfCBCKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQotKTsKLSBpZCB8IGZsYWdz IHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCi0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQotICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMQotICAyIHwg e0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMgotICAzIHwge1h9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAotKDMgcm93cykKLQotLS0gRXhwZWN0ZWQ6IDEtMSAoQSksIDItMiAoQikK LS0tIFRlc3Q6IEEgfCBCIHwgQyAodGhyZWUtd2F5IGFsdGVybmF0aW9uKQotV0lUSCBqYWNvYl90 aHJlZV9hbHQgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJS QVlbJ0InXSksCi0gICAgICAgICgyLCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3Mp Ci0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX3RocmVl X2FsdAotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSB8IEIgfCBDKQotICAgIERFRklORQotICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwK LSAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9z dGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ci0gIDEgfCB7Qn0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAxCi0gIDIgfCB7WH0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCi0oMiByb3dzKQotCi0tLSBFeHBlY3RlZDogMS0xIChCKQot LS0gVGVzdDogQSBCIEMgKGNvbmNhdGVuYXRpb24pCi1XSVRIIGphY29iX2NvbmNhdCBBUyAoCi0g ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAg ICAgKDIsIEFSUkFZWydCJ10pLAotICAgICAgICAoMywgQVJSQVlbJ0MnXSksCi0gICAgICAgICg0 LCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdz LCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX2NvbmNhdAotV0lORE9XIHcgQVMgKAotICAg IE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVS TiAoQSBCIEMpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAg ICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFn cykKLSk7Ci0gaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEg fCAgICAgICAgIDMKLSAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8 IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgNCB8IHtYfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKLSg0IHJvd3MpCi0KLS0tIEV4cGVjdGVkOiAxLTMKLS0tIFRlc3Q6IEEg Qj8gQyAob3B0aW9uYWwgbWlkZGxlKQotV0lUSCBqYWNvYl9vcHRpb25hbF9taWQgQVMgKAotICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAg ICgyLCBBUlJBWVsnQyddKSwKLSAgICAgICAgKDMsIEFSUkFZWydYJ10pCi0gICAgKSBBUyB0KGlk LCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gamFj b2Jfb3B0aW9uYWxfbWlkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBIEI/IEMpCi0gICAgREVGSU5F Ci0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKLSk7Ci0gaWQgfCBmbGFncyB8 IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKLSAgMiB8IHtD fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8IHtYfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKLSgzIHJvd3MpCi0KLS0tIEV4cGVjdGVkOiAxLTIgKEEgQywgQiBza2lwcGVk KQotLS0gVGVzdDogKEEgQil7Mn0gKG5lc3RlZCBncm91cCB3aXRoIHF1YW50aWZpZXIpCi1XSVRI IGphY29iX25lc3RlZF9ncm91cCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAg ICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydCJ10pLAotICAgICAgICAo MywgQVJSQVlbJ0EnXSksCi0gICAgICAgICg0LCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDUsIEFS UkFZWydYJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKLUZST00gamFjb2JfbmVzdGVkX2dyb3VwCi1XSU5ET1cgdyBBUyAoCi0g ICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRU RVJOICgoQSBCKXsyfSkKLSAgICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAotICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKLSk7Ci0gaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKLSAgMiB8IHtCfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKLSAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgNSB8IHtYfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg1IHJvd3MpCi0KLS0tIEV4cGVjdGVkOiAxLTQg KEEgQiBBIEIpCi0tLSBUZXN0OiAoQSl7M30gKHF1YW50aWZpZXIgb24gZ3JvdXBlZCBzaW5nbGUg ZWxlbWVudCkKLVdJVEggamFjb2JfZ3JvdXBfcXVhbnQgQVMgKAotICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsnQSdd KSwKLSAgICAgICAgKDMsIEFSUkFZWydBJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ1gnXSkKLSAg ICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAotRlJPTSBqYWNvYl9ncm91cF9xdWFudAotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlk Ci0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0g ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoKEEpezN9KQot ICAgIERFRklORSBBIEFTICdBJyA9IEFOWShmbGFncykKLSk7Ci0gaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKLSAgMiB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKLSAgNCB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg0IHJvd3MpCi0K LS0tIEV4cGVjdGVkOiAxLTMKLS0tIFRlc3Q6IEEgQiBDIHwgQSBCIEMgRCBFIChsZXhpY2FsIG9y ZGVyIC0gZmlyc3QgYWx0IHdpbnMpCi1XSVRIIGphY29iX2xleF9maXJzdCBBUyAoCi0gICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIs IEFSUkFZWydCJ10pLAotICAgICAgICAoMywgQVJSQVlbJ0MnXSksCi0gICAgICAgICg0LCBBUlJB WVsnRCddKSwKLSAgICAgICAgKDUsIEFSUkFZWydFJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykK LSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3Rh cnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gamFjb2JfbGV4X2Zp cnN0Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBIEIgQyB8IEEgQiBDIEQgRSkKLSAgICBERUZJTkUK LSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgRCBBUyAnRCcg PSBBTlkoZmxhZ3MpLAotICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKLSk7Ci0gaWQgfCBm bGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KLSAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKLSAg MiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8IHtDfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKLSAgNCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK LSAgNSB8IHtFfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg1IHJvd3MpCi0KLS0tIEV4 cGVjdGVkOiAxLTMgKEEgQiBDIHdpbnMgYnkgbGV4aWNhbCBvcmRlcikKLS0tIFRlc3Q6IEEgQiBD IEQgRSB8IEEgQiBDIChsZXhpY2FsIG9yZGVyIC0gbG9uZ2VyIGZpcnN0IHdpbnMpCi1XSVRIIGph Y29iX2xleF9sb25nIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEs IEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJB WVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ0Un XSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAotRlJPTSBqYWNvYl9sZXhfbG9uZwotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZ IGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H Ci0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSBCIEMg RCBFIHwgQSBCIEMpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK LSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncyksCi0gICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgRSBBUyAnRScg PSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAK LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gIDEgfCB7QX0gICB8ICAg ICAgICAgICAxIHwgICAgICAgICA1Ci0gIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCi0gIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDQgfCB7RH0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDUgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCi0oNSByb3dzKQotCi0tLSBFeHBlY3RlZDogMS01IChBIEIgQyBEIEUgd2lucyBieSBs ZXhpY2FsIG9yZGVyKQotLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmllcnMgKEJVRyBjYXNlcyBmcm9tIEph Y29iJ3MgdGVzdHMpCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gVGVzdDogKEEgfCBCKSsgQyAtIGFsdGVybmF0aW9uIGluc2lkZSBxdWFudGlmaWVk IGdyb3VwIGZvbGxvd2VkIGJ5IEMKLVdJVEggamFjb2JfYWx0X3F1YW50IEFTICgKLSAgICBTRUxF Q1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwg QVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDQsIEFSUkFZ WydDJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKLUZST00gamFjb2JfYWx0X3F1YW50Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JE RVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOICgo QSB8IEIpKyBDKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0g ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxh Z3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gIDEgfCB7QX0gICB8ICAgICAgICAgICAx IHwgICAgICAgICA0Ci0gIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDMg fCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDQgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCi0oNCByb3dzKQotCi0tLSBFeHBlY3RlZDogMS00IChBIEIgQSBDKQot LS0gVGVzdDogKChBIHwgQikgQykrIC0gYWx0ZXJuYXRpb24gaW5zaWRlIGdyb3VwIHdpdGggb3V0 ZXIgcXVhbnRpZmllcgotV0lUSCBqYWNvYl9hbHRfZ3JvdXAgQVMgKAotICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsn QyddKSwKLSAgICAgICAgKDMsIEFSUkFZWydCJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0MnXSks Ci0gICAgICAgICg1LCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxF Q1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX2FsdF9ncm91cAotV0lO RE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCi0gICAgUEFUVEVSTiAoKChBIHwgQikgQykrKQotICAgIERFRklORQotICAgICAgICBBIEFT ICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAg ICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8 IG1hdGNoX2VuZCAKLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gIDEg fCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA0Ci0gIDIgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCi0gIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0g IDQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDUgfCB7WH0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCi0oNSByb3dzKQotCi0tLSBFeHBlY3RlZDogMS00IChBIEMgQiBD KQotLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFJF TFVDVEFOVCBxdWFudGlmaWVycwotLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIFRlc3Q6IEErPyBCIChyZWx1Y3RhbnQpIC0gQiBhdmFpbGFibGUgYXQg cm93IDMsIEEgZXhpdHMgZWFybHkKLVdJVEggamFjb2JfcmVsdWN0YW50IEFTICgKLSAgICBTRUxF Q1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKLSAgICAgICAg KDIsIEFSUkFZWydBJywnXyddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwKLSAgICAg ICAgKDQsIEFSUkFZWydCJywnXyddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1Qg aWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX3JlbHVjdGFudAotV0lORE9X IHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X Ci0gICAgUEFUVEVSTiAoQSs/IEIpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCi0pOwotIGlkIHwgZmxhZ3Mg fCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCi0gIDEgfCB7QSxffSB8ICAgICAgICAgICAxIHwgICAgICAgICAzCi0gIDIgfCB7 QSxffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDMgfCB7QSxCfSB8ICAgICAgICAgICAg IHwgICAgICAgICAgCi0gIDQgfCB7QixffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0oNCBy b3dzKQotCi0tLSBUZXN0OiBBezEsM30/IEIgKHJlbHVjdGFudCBib3VuZGVkKSAtIHNhbWUgZGF0 YSwgYm91bmRlZCBxdWFudGlmaWVyCi1XSVRIIGphY29iX3JlbHVjdGFudF9ib3VuZGVkIEFTICgK LSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwK LSAgICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJywnQidd KSwKLSAgICAgICAgKDQsIEFSUkFZWydCJywnXyddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0p Ci1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX3JlbHVjdGFu dF9ib3VuZGVkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBezEsM30/IEIpCi0gICAgREVGSU5FCi0g ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCi0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gIDEgfCB7QSxffSB8ICAgICAgICAgICAx IHwgICAgICAgICAzCi0gIDIgfCB7QSxffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDMg fCB7QSxCfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCi0gIDQgfCB7QixffSB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCi0oNCByb3dzKQotCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gTmVzdGVkIHF1YW50aWZpZXJzIChwYXRob2xvZ2ljYWwg cGF0dGVybnMpCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gVGhlc2UgcGF0dGVybnMgcHJldmlvdXNseSBjYXVzZWQgc2VnZmF1bHQgb3IgaW5maW5p dGUgbG9vcC4KLS0tIE5vdyB0aGV5IGFyZSBlaXRoZXIgb3B0aW1pemVkIGF0IGNvbXBpbGUgdGlt ZSBvciBoYW5kbGVkIHNhZmVseSBhdCBydW50aW1lLgotLS0gVGVzdDogKEEqKSogLSBuZXN0ZWQg dW5ib3VuZGVkIHF1YW50aWZpZXJzIChvcHRpbWl6ZWQgdG8gQSopCi1TRUxFQ1QgdiwgY291bnQo KikgT1ZFUiB3IEFTIGMKLUZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgdikKLVdJ TkRPVyB3IEFTICgKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBJTklUSUFM Ci0gICAgUEFUVEVSTiAoKEEqKSopCi0gICAgREVGSU5FIEEgQVMgVFJVRQotKTsKLSB2IHwgYyAK LS0tLSstLS0KLSAxIHwgNQotIDIgfCAwCi0gMyB8IDAKLSA0IHwgMAotIDUgfCAwCi0oNSByb3dz KQotCi0tLSBUZXN0OiAoQSopKyAtIGlubmVyIG51bGxhYmxlLCBvdXRlciByZXF1aXJlcyBvbmUg KG9wdGltaXplZCB0byBBKikKLVNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgYwotRlJPTSAo U0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCA1KSB2KQotV0lORE9XIHcgQVMgKAotICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIElOSVRJQUwKLSAgICBQQVRURVJOICgoQSopKykK LSAgICBERUZJTkUgQSBBUyBUUlVFCi0pOwotIHYgfCBjIAotLS0tKy0tLQotIDEgfCA1Ci0gMiB8 IDAKLSAzIHwgMAotIDQgfCAwCi0gNSB8IDAKLSg1IHJvd3MpCi0KLS0tIFRlc3Q6IChBKykqIC0g b3V0ZXIgbnVsbGFibGUgKG9wdGltaXplZCB0byBBKikKLVNFTEVDVCB2LCBjb3VudCgqKSBPVkVS IHcgQVMgYwotRlJPTSAoU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCA1KSB2KQotV0lORE9XIHcg QVMgKAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIElOSVRJQUwKLSAgICBQ QVRURVJOICgoQSspKikKLSAgICBERUZJTkUgQSBBUyBUUlVFCi0pOwotIHYgfCBjIAotLS0tKy0t LQotIDEgfCA1Ci0gMiB8IDAKLSAzIHwgMAotIDQgfCAwCi0gNSB8IDAKLSg1IHJvd3MpCi0KLS0t IFRlc3Q6IChBKykrIC0gYm90aCByZXF1aXJlIG1hdGNoIChvcHRpbWl6ZWQgdG8gQSspCi1TRUxF Q1QgdiwgY291bnQoKikgT1ZFUiB3IEFTIGMKLUZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMo MSwgNSkgdikKLVdJTkRPVyB3IEFTICgKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK LSAgICBJTklUSUFMCi0gICAgUEFUVEVSTiAoKEErKSspCi0gICAgREVGSU5FIEEgQVMgVFJVRQot KTsKLSB2IHwgYyAKLS0tLSstLS0KLSAxIHwgNQotIDIgfCAwCi0gMyB8IDAKLSA0IHwgMAotIDUg fCAwCi0oNSByb3dzKQotCi0tLSBUZXN0OiAoQSogQiopKiAtIGNvbXBsZXggbmVzdGVkIHBhdHRl cm4gKHJ1bnRpbWUgcHJvdGVjdGlvbikKLS0tIE5vdCBvcHRpbWl6ZWQgYnV0IGhhbmRsZWQgc2Fm ZWx5IGJ5IGVtcHR5LW1hdGNoIGxvb3AgcHJldmVudGlvbgotU0VMRUNUIHYsIGNvdW50KCopIE9W RVIgdyBBUyBjCi1GUk9NIChTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIHYpCi1XSU5ET1cg dyBBUyAoCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgSU5JVElBTAotICAg IFBBVFRFUk4gKChBKiBCKikqKQotICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgVFJVRQotKTsK LSB2IHwgYyAKLS0tLSstLS0KLSAxIHwgNQotIDIgfCAwCi0gMyB8IDAKLSA0IHwgMAotIDUgfCAw Ci0oNSByb3dzKQotCi0tLSBUZXN0OiAoKChBKSopKikqICAtIHRyaXBsZSBuZXN0ZWQgKG9wdGlt aXplZCB0aHJvdWdoIHJlY3Vyc2l2ZSBvcHRpbWl6YXRpb24pCi1TRUxFQ1QgdiwgY291bnQoKikg T1ZFUiB3IEFTIGMKLUZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgMykgdikKLVdJTkRP VyB3IEFTICgKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBJTklUSUFMCi0g ICAgUEFUVEVSTiAoKCgoQSkqKSopKikKLSAgICBERUZJTkUgQSBBUyBUUlVFCi0pOwotIHYgfCBj IAotLS0tKy0tLQotIDEgfCAzCi0gMiB8IDAKLSAzIHwgMAotKDMgcm93cykKLQorRFJPUCBUQUJM RSBycHJfY29uc2VjX251bGw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9iYXNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0Cmlu ZGV4IGFiODc4NDQzMzc5Li4zMzgzYjI0MmVmMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfYmFzZS5vdXQKQEAgLTE0NDksNyArMTQ0OSw3IEBAIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIioiCiBMSU5FIDY6ICAgICBQQVRURVJOIChBKyAqKQogICAgICAgICAgICAgICAg ICAgICAgICAgXgogLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi KiIKLS0tID8gPyAoaW52YWxpZCBjb21iaW5hdGlvbikKKy0tID8gPyAocGFyc2VkIGFzID8/IHJl bHVjdGFudCBxdWFudGlmaWVyKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVs dWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0yMjAzLDcgKzIyMDMsMzIgQEAgU0VMRUNUIHBnX2dl dF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y4Jzo6cmVnY2xhc3MpOwogKDEgcm93KQogCiBEUk9QIFZJ RVcgcnByX3NlcmlhbF92ODsKLURST1AgVEFCTEUgcnByX3NlcmlhbDsKKy0tIFJlbHVjdGFudCB7 MX0/IHF1YW50aWZpZXIgZGVwYXJzZSB0aHJvdWdoIHJ1bGV1dGlscworQ1JFQVRFIFZJRVcgcnBy X3F1YW50X3JlbHVjdGFudF92IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitG Uk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAg ICAgIElOSVRJQUwKKyAgICAgICAgICAgICBQQVRURVJOIChBezF9PyBCKQorICAgICAgICAgICAg IERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9xdWFudF9yZWx1Y3RhbnRfdic6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg dmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2Vy aWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBJ TklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGF7MX0/IGIpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5FICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICBhIEFTICh2YWwgPiAwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKHZhbCA+IDApICk7CisoMSBy b3cpCisKK0RST1AgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3Y7CiAtLSBNYXRlcmlhbGl6ZWQg dmlldyAoaWYgc3VwcG9ydGVkKQogQ1JFQVRFIFRBQkxFIHJwcl9tdmlldyAoaWQgSU5ULCB2YWwg SU5UKTsKIElOU0VSVCBJTlRPIHJwcl9tdmlldyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMs IDMwKTsKQEAgLTIyNTEsNiArMjI3Niw1MiBAQCBTRUxFQ1QgKiBGUk9NIHJwcl9tdmlld192MSBP UkRFUiBCWSBpZDsKIAogRFJPUCBNQVRFUklBTElaRUQgVklFVyBycHJfbXZpZXdfdjE7CiBEUk9Q IFRBQkxFIHJwcl9tdmlldzsKKy0tIENSRUFURSBUQUJMRSBBUyBTRUxFQ1Qgd2l0aCBSUFIKK0NS RUFURSBUQUJMRSBycHJfY3RhcyAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9j dGFzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMTUpLCAoNCwgMjUpOworQ1JFQVRFIFRB QkxFIHJwcl9jdGFzX3Jlc3VsdCBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKK0ZST00gcnByX2N0YXMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyB2YWwgPiBQUkVWKHZhbCkKKyk7CitTRUxFQ1QgKiBGUk9NIHJw cl9jdGFzX3Jlc3VsdCBPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIK KyAgNCB8ICAyNSB8ICAgMAorKDQgcm93cykKKworLS0gSU5TRVJUIElOVE8gLi4uIFNFTEVDVCB3 aXRoIFJQUgorQ1JFQVRFIFRBQkxFIHJwcl9pbnNlcnRfdGFyZ2V0IChpZCBJTlQsIHZhbCBJTlQs IGNudCBCSUdJTlQpOworSU5TRVJUIElOVE8gcnByX2luc2VydF90YXJnZXQKK1NFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX2N0YXMKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyB2YWwgPiBQUkVWKHZhbCkKKyk7CitT RUxFQ1QgKiBGUk9NIHJwcl9pbnNlcnRfdGFyZ2V0IE9SREVSIEJZIGlkOworIGlkIHwgdmFsIHwg Y250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAK KyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAwCisoNCByb3dzKQorCitEUk9QIFRBQkxF IHJwcl9jdGFzX3Jlc3VsdDsKK0RST1AgVEFCTEUgcnByX2luc2VydF90YXJnZXQ7CitEUk9QIFRB QkxFIHJwcl9jdGFzOwogLS0gUHJlcGFyZWQgc3RhdGVtZW50cyAodGVzdHMgb3V0ZnVuY3MuYyAv IHJlYWRmdW5jcy5jKQogQ1JFQVRFIFRBQkxFIHJwcl9wcmVwIChpZCBJTlQsIHZhbCBJTlQpOwog SU5TRVJUIElOVE8gcnByX3ByZXAgVkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCk7CkBA IC0yNjA4LDYgKzI2NzksNTcgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfbXVsdGl3aW5f dic6OnJlZ2NsYXNzKTsKIAogRFJPUCBWSUVXIHJwcl9tdWx0aXdpbl92OwogRFJPUCBUQUJMRSBy cHJfbXVsdGl3aW47CistLSB7bn0gcXVhbnRpZmllciBkaXNwbGF5IGluIHZpZXcKK0NSRUFURSBW SUVXIHJwcl9xdWFudF9uX3YgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAg ICAgSU5JVElBTAorICAgICAgICAgICAgIFBBVFRFUk4gKEF7M30pCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgdmFsID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9uX3Yn OjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3 ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICBTRUxFQ1QgaWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgY291 bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgIEZST00gcnByX3NlcmlhbCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H ICsKKyAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRU RVJOIChhezN9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYSBBUyAodmFsID4gMCkg KTsKKygxIHJvdykKKworRFJPUCBWSUVXIHJwcl9xdWFudF9uX3Y7CistLSB7bix9IHF1YW50aWZp ZXIgZGlzcGxheSBpbiB2aWV3CitDUkVBVEUgVklFVyBycHJfcXVhbnRfbl9wbHVzX3YgQVMKK1NF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgSU5JVElBTAorICAgICAgICAgICAg IFBBVFRFUk4gKEF7Mix9KQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDApOworU0VM RUNUIHBnX2dldF92aWV3ZGVmKCdycHJfcXVhbnRfbl9wbHVzX3YnOjpyZWdjbGFzcyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgIHZhbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNv dW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg IEZST00gcnByX3NlcmlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOIChhezIsfSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg IERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgYSBBUyAodmFsID4gMCkgKTsKKygxIHJvdykKKworRFJP UCBWSUVXIHJwcl9xdWFudF9uX3BsdXNfdjsKK0RST1AgVEFCTEUgcnByX3NlcmlhbDsKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gRXJyb3IgQ2FzZXMgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjY5NCw2ICsyODE2LDcgQEAgV0lO RE9XIHcgQVMgKAogRVJST1I6ICBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVm ZXJlbmNlICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZCBpbiBERUZJTkUgY2xhdXNlCiBMSU5FIDc6 ICAgICBERUZJTkUgQSBBUyBBLnZhbCA+IDAKICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVy ZW5jZSAiYS52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKIC0tIFBBVFRFUk4tb25seSB2YXJpYWJsZSBx dWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCBldmVuIHdpdGhvdXQgREVGSU5FIGVudHJ5CiBT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CiBGUk9NIHJwcl9lcnIKQEAgLTI3MDYsNiArMjgyOSw3IEBA IFdJTkRPVyB3IEFTICgKIEVSUk9SOiAgcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1u IHJlZmVyZW5jZSAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVzZQogTElO RSA3OiAgICAgREVGSU5FIEEgQVMgQi52YWwgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVtbiBy ZWZlcmVuY2UgImIudmFsIiBpcyBub3Qgc3VwcG9ydGVkCiAtLSBERUZJTkUtb25seSB2YXJpYWJs ZSBxdWFsaWZpZWQgbmFtZTogc3RpbGwgYSBwYXR0ZXJuIHZhcmlhYmxlLCBub3QgYSByYW5nZSB2 YXJpYWJsZQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfZXJyCkBAIC0yNzE4LDYg KzI4NDIsNyBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIHBhdHRlcm4gdmFyaWFibGUgcXVhbGlm aWVkIGNvbHVtbiByZWZlcmVuY2UgImIudmFsIiBpcyBub3Qgc3VwcG9ydGVkIGluIERFRklORSBj bGF1c2UKIExJTkUgNzogICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgQi52YWwgPiAwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJP UjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAiYi52YWwiIGlz IG5vdCBzdXBwb3J0ZWQKIC0tIEZST00tY2xhdXNlIHJhbmdlIHZhcmlhYmxlIHF1YWxpZmllZCBu YW1lOiBub3QgYWxsb3dlZCAocHJvaGliaXRlZCBieSDCpzYuNSkKIFNFTEVDVCBDT1VOVCgqKSBP VkVSIHcKIEZST00gcnByX2VycgpAQCAtMjczMCw2ICsyODU1LDcgQEAgV0lORE9XIHcgQVMgKAog RVJST1I6ICByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAicnByX2Vy ci52YWwiIGlzIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2UKIExJTkUgNzogICAgIERFRklO RSBBIEFTIHJwcl9lcnIudmFsID4gMAogICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhw ZWN0ZWQ6IEVSUk9SOiByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAi cnByX2Vyci52YWwiIGlzIG5vdCBhbGxvd2VkCiAtLSBTZW1hbnRpYyBlcnJvcnMKIC0tIFVuZGVm aW5lZCBjb2x1bW4gaW4gREVGSU5FCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0yNzY5LDcg KzI4OTUsNyBAQCBXSU5ET1cgdyBBUyAoCiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJl IG5vdCBhbGxvd2VkIGluIERFRklORQogTElORSA3OiAgICAgREVGSU5FIEEgQVMgQ09VTlQoKikg PiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1Igb3Igd29y a3MgZGVwZW5kaW5nIG9uIGltcGxlbWVudGF0aW9uCistLSBFeHBlY3RlZDogRVJST1I6IGFnZ3Jl Z2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklORQogLS0gU3VicXVlcnkgaW4g REVGSU5FIChOT1QgU1VQUE9SVEVEKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJf ZXJyCkBAIC0zMDE5LDYgKzMxNDUsMjYgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9wbGFuCiAoNiByb3dzKQogCistLSBEYXRhIGV4ZWN1dGlvbjogU0VR IGZsYXR0ZW4gcHJvZHVjZXMgY29ycmVjdCByZXN1bHRzCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICAgICAgICAgICBQQVRURVJO IChBICgoQikgKEMpKSkgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA8PSA2MCwgQyBB UyB2YWwgPiA2MCk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAg MTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAg IDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDAKKyAg OCB8ICA4MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dz KQorCiAtLSBBTFQgZmxhdHRlbjogKEEgfCAoQiB8IEMpKSsgLT4gKGEgfCBiIHwgYykrCiBFWFBM QUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KQEAg LTMwNDksNiArMzE5NSwyNiBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX3BsYW4KICg2IHJvd3MpCiAKKy0tIERhdGEgZXhlY3V0aW9uOiBBTFQgZGVkdXAg cHJvZHVjZXMgY29ycmVjdCByZXN1bHRzCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgICAgICAgICAgIFBBVFRFUk4gKChBIHwg QiB8IEEpKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyBpZCB8IHZh bCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxMAorICAyIHwgIDIwIHwg ICAwCisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorICA1IHwgIDUwIHwgICAwCisg IDYgfCAgNjAgfCAgIDAKKyAgNyB8ICA3MCB8ICAgMAorICA4IHwgIDgwIHwgICAwCisgIDkgfCAg OTAgfCAgIDAKKyAxMCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKIC0tIFF1YW50aWZpZXIgbXVs dGlwbHk6IChBezJ9KXszfSAtPiBhezZ9CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KQEAgLTM0NjgsNiArMzYzNCwyNiBAQCBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KICg2IHJvd3MpCiAK Ky0tIERhdGEgZXhlY3V0aW9uOiBHUk9VUCB1bndyYXAgcHJvZHVjZXMgY29ycmVjdCByZXN1bHRz CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBS T1cKKyAgICAgICAgICAgICBQQVRURVJOICgoQSB8IEIgfCBDKSkgREVGSU5FIEEgQVMgdmFsIDw9 IDMwLCBCIEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisgaWQgfCB2YWwgfCBjbnQgCist LS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAyMCB8ICAgMQorICAzIHwg IDMwIHwgICAxCisgIDQgfCAgNDAgfCAgIDEKKyAgNSB8ICA1MCB8ICAgMQorICA2IHwgIDYwIHwg ICAxCisgIDcgfCAgNzAgfCAgIDEKKyAgOCB8ICA4MCB8ICAgMQorICA5IHwgIDkwIHwgICAxCisg MTAgfCAxMDAgfCAgIDEKKygxMCByb3dzKQorCiAtLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5 cGFzczogVkFSIG1lcmdlCiAtLSBBKz8gQSBzdGF5cyBhcyBhKz8gYSAoZ3JlZWR5IEErIEEgbWVy Z2VzIHRvIGF7Mix9KQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzYxMiw2ICszNzk4LDEzNCBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KICg2 IHJvd3MpCiAKKy0tIER1cGxpY2F0ZSBHUk9VUCByZW1vdmFsOiAoKEEgfCBCKSsgfCAoQSB8IEIp KykgLT4gKGEgfCBiKSsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KChBIHwgQikrIHwgKEEgfCBCKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1 MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2lu ZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYikrCisgICAt PiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX3BsYW4KKyg2IHJvd3MpCisKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZSB3aXRoIHplcm8t bWluOiBBKiBBKyAtPiBhKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9W RVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVS TiAoQSogQSspIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiBhKyIKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gQ29uc2VjdXRp dmUgVkFSIG1lcmdlICg0LWVsZW1lbnQpOiBBIEF7Mn0gQSsgQXszfSAtPiBhezcsfQorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBBezJ9IEErIEF7M30pIERFRklO RSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBh ezcsfSIKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gUFJFRklYK1NVRkZJWCBtZXJnZSAo NS13YXkpOiBBIEIgQSBCIChBIEIpKyBBIEIgQSBCIC0+IChhIGIpezUsfQorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCIEEgQiAoQSBCKSsgQSBCIEEgQikKKyAg ICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAg V2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYicpezUsfSIKKyAgIC0+ICBTb3J0 CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgorKDYgcm93cykKKworLS0gVW53cmFwIHNpbmdsZS1pdGVtIEFMVCBhZnRlciBkZWR1cDogKEEg fCBBKSsgLT4gYSsKKy0tIEFMVCBkZWR1cCByZWR1Y2VzIHRvIHNpbmdsZS1pdGVtLCB0aGVuIEdS T1VQIHVud3JhcAorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEg fCBBKSspIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiBhKyIKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gR1JPVVB7MSwxfSB0 byBTRVEgd2l0aCBmbGF0dGVuOiAoKEEgQikoQyBEKSkgLT4gYSBiIGMgZAorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKChBIEIpKEMgRCkpKQorICAgICAgICAgICAg IERFRklORSBBIEFTIHZhbCA8PSAyNSwgQiBBUyB2YWwgPiAyNSBBTkQgdmFsIDw9IDUwLAorICAg ICAgICAgICAgICAgICAgICBDIEFTIHZhbCA+IDUwIEFORCB2YWwgPD0gNzUsIEQgQVMgdmFsID4g NzUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIgYyBkCisgICAt PiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX3BsYW4KKyg2IHJvd3MpCisKKy0tIE5lc3RlZCBBTFQgcGF0dGVybjogKChBIEIpIHwgQykg RCB8IEEgQiBDCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZS T00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoKEEg QikgfCBDKSBEIHwgQSBCIEMpCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDI1LCBC IEFTIHZhbCA+IDI1IEFORCB2YWwgPD0gNTAsCisgICAgICAgICAgICAgICAgICAgIEMgQVMgdmFs ID4gNTAgQU5EIHZhbCA8PSA3NSwgRCBBUyB2YWwgPiA3NSk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46ICgoYSBiIHwgYykgZCB8IGEgYiBjKQorICAgLT4gIFNvcnQKKyAg ICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCiso NiByb3dzKQorCistLSBOZXN0ZWQgQUxUIHdpdGggdW5ib3VuZGVkOiAoKEErIEIpIHwgQykgRCB8 IEEgQiBDCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoKEErIEIp IHwgQykgRCB8IEEgQiBDKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSAyNSwgQiBB UyB2YWwgPiAyNSBBTkQgdmFsIDw9IDUwLAorICAgICAgICAgICAgICAgICAgICBDIEFTIHZhbCA+ IDUwIEFORCB2YWwgPD0gNzUsIEQgQVMgdmFsID4gNzUpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCisgICBQYXR0ZXJuOiAoKGErIiBiIHwgYykgZCB8IGEgYiBjKQorICAgLT4gIFNvcnQKKyAg ICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCiso NiByb3dzKQorCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIEFic29ycHRpb24gRmxhZyBEaXNwbGF5IFRlc3RzCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KQEAgLTM4MDEsNiArNDExNSwyOCBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCAxMCBGT0xMT1dJTkcKICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfcGxhbgogKDYgcm93cykKIAorLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBk ZXBhcnNlCistLSBBezF9PyBpcyBhIHJlbHVjdGFudCB7MSwxfSBxdWFudGlmaWVyLiAgVGhlIGRl cGFyc2UgY29kZSBtdXN0CistLSBvdXRwdXQgInsxfSIgZXhwbGljaXRseSB0byBkaXNhbWJpZ3Vh dGUgZnJvbSBhIGJhcmUgIj8iIHF1YW50aWZpZXIKKy0tICh3aGljaCB3b3VsZCBtZWFuIHswLDF9 KS4KK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIHZhbAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MX0/IEIp CisgICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAwCispOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIHZhbCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhezF9PyBiCisgICAtPiAgU29ydAorICAgICAg ICAgU29ydCBLZXk6IHZhbAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiBy b3dzKQorCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIEFic29ycHRpb24gQW5hbHlzaXMgVGVzdHMKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAt NDUyOSw3ICs0ODY1LDggQEAgT1JERVIgQlkgY2F0ZWdvcnk7CiBFUlJPUjogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICJHUk9VUCIKIExJTkUgMTI6IEdST1VQIEJZIGNhdGVnb3J5CiAgICAgICAg ICBeCi0tLSBFeHBlY3RlZDogRVJST1IgKEdST1VQIEJZIHdpdGggd2luZG93IFJQUiBub3Qgc3Vw cG9ydGVkKQorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiR1JP VVAiCistLSAoR1JPVVAgQlkgYWZ0ZXIgV0lORE9XIGNsYXVzZSBpcyBub3QgdmFsaWQgU1FMIHN5 bnRheCkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0gU3VicXVlcnkgYW5kIENURSBUZXN0cwogLS0gRmlsZXM6IHBsYW5u ZXIuYywgcHJlcGpvaW50cmVlLmMKQEAgLTUwMDcsNyArNTM0NCw4IEBAIENSRUFURSBUQUJMRSBy cHJfc29ydCAoaWQgSU5ULCBjYXRlZ29yeSBWQVJDSEFSKDEwKSwgdmFsIElOVCk7CiBJTlNFUlQg SU5UTyBycHJfc29ydCBWQUxVRVMKICAgICAoMSwgJ0EnLCAzMCksICgyLCAnQicsIDIwKSwgKDMs ICdBJywgMTApLAogICAgICg0LCAnQicsIDQwKSwgKDUsICdBJywgNTApLCAoNiwgJ0InLCA2MCk7 Ci0tLSBSUFIgd2l0aCBHUk9VUCBCWQorLS0gUlBSIHdpdGggR1JPVVAgQlkgKGFnZ3JlZ2F0ZSBp biBERUZJTkUg4oaSIEVSUk9SIGJlZm9yZSBHUk9VUCBCWSBpbnRlcmFjdGlvbikKKy0tIEV4cGVj dGVkOiBFUlJPUjogYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGSU5F CiBTRUxFQ1QgY2F0ZWdvcnksCiAgICAgICAgQ09VTlQoKikgYXMgZ3JvdXBfY250LAogICAgICAg IE1BWCh2YWwpIGFzIG1heF92YWwsCkBAIC01MDI0LDcgKzUzNjIsOCBAQCBPUkRFUiBCWSBjYXRl Z29yeTsKIEVSUk9SOiAgYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVG SU5FCiBMSU5FIDExOiAgICAgREVGSU5FIEEgQVMgQ09VTlQoKikgPiAwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgXgotLS0gUlBSIHdpdGggSEFWSU5HCistLSBSUFIgd2l0aCBIQVZJTkcgKHNh bWUgYWdncmVnYXRlLWluLURFRklORSBlcnJvcikKKy0tIEV4cGVjdGVkOiBFUlJPUjogYWdncmVn YXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGSU5FCiBTRUxFQ1QgY2F0ZWdvcnks CiAgICAgICAgQ09VTlQoKikgYXMgZ3JvdXBfY250LAogICAgICAgIENPVU5UKCopIE9WRVIgdyBh cyB3aW5kb3dfY250CkBAIC01Nzg3LDYgKzYxMjYsMyBAQCBGUk9NIChTRUxFQ1QgaWQsIHZhbCwK ICgyIHJvd3MpCiAKIERST1AgVEFCTEUgcnByX3BsYW47Ci0tLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEVuZCBvZiBycHJf YmFzZS5zcWwKLS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91 dAppbmRleCAzNDA0MDhjYzQ1NC4uODE3MjY5MDIxZjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2V4cGxhaW4ub3V0CkBAIC02LDggKzYsOSBAQAogLS0gVGhpcyB0ZXN0IHN1aXRl IHZhbGlkYXRlcyBFWFBMQUlOIG91dHB1dCBmb3IgUlBSIHF1ZXJpZXMsCiAtLSBpbmNsdWRpbmcg TkZBIHN0YXRpc3RpY3Mgc2hvd24gaW4gRVhQTEFJTiBBTkFMWVpFOgogLS0gICAtIE5GQSBTdGF0 ZXM6IHBlYWssIHRvdGFsLCBtZXJnZWQKLS0tICAgLSBORkEgQ29udGV4dHM6IHBlYWssIHRvdGFs LCBhYnNvcmJlZCwgc2tpcHBlZAorLS0gICAtIE5GQSBDb250ZXh0czogcGVhaywgdG90YWwsIHBy dW5lZAogLS0gICAtIE5GQTogbWF0Y2hlZCAobGVuIG1pbi9tYXgvYXZnKSwgbWlzbWF0Y2hlZCAo bGVuIG1pbi9tYXgvYXZnKQorLS0gICAtIE5GQTogYWJzb3JiZWQgKGxlbiBtaW4vbWF4L2F2Zyks IHNraXBwZWQgKGxlbiBtaW4vbWF4L2F2ZykKIC0tICAgLSBQYXR0ZXJuIGRlcGFyc2UgZm9ybWF0 dGluZwogLS0gICAtIE11bHRpcGxlIG91dHB1dCBmb3JtYXRzICh0ZXh0LCBKU09OLCBYTUwpCiAt LQpAQCAtNDM0LDcgKzQzNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIERST1AgVklF VyBycHJfdjsKLS0tIEdyb3VwZWQgcGF0dGVybiB3aXRoIHF1YW50aWZpZXIgLSBzdGF0ZSBtZXJn aW5nCistLSBHcm91cGVkIHBhdHRlcm4gd2l0aCBxdWFudGlmaWVyIC0gc3RhdGUgY291bnQgd2l0 aCBncm91cGluZwogQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKQEAgLTYzNyw3ICs2Mzgs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiBEUk9QIFZJRVcgcnByX3Y7Ci0tLSBIaWdo IHN0YXRlIG1lcmdpbmcgLSBhbHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgorLS0gSGln aCBzdGF0ZSBjb3VudCAtIGFsdGVybmF0aW9uIHdpdGggcGx1cyBxdWFudGlmaWVyCiBDUkVBVEUg VEVNUCBWSUVXIHJwcl92IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDApIEFTIHModikKQEAgLTc1OCw3ICs3NTksNyBAQCBXSU5ET1cgdyBBUyAo CiAKIERST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3Rz IChwZWFrLCB0b3RhbCwgYWJzb3JiZWQsIHNraXBwZWQpCistLSBDb250ZXh0IFN0YXRpc3RpY3Mg VGVzdHMgKHBlYWssIHRvdGFsLCBwcnVuZWQgKyBhYnNvcmJlZC9za2lwcGVkKQogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LSBDb250ZXh0IGFic29ycHRpb24gd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllciBhdCBzdGFydAog Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwpAQCAtMTA0Nyw3ICsxMDQ4LDcgQEAgV0lORE9XIHcg QVMgKAogKDkgcm93cykKIAogRFJPUCBWSUVXIHJwcl92OwotLS0gTWl4IG9mIHNob3J0IGFuZCBs b25nIG1hdGNoZXMKKy0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0Y2hlcyBmcm9t IGdhcCByb3dzICh2JTIwID0gMTEuLjE1KQogQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CkBAIC0xMDk0LDggKzEwOTUsOCBAQCBEUk9QIFZJRVcgcnByX3Y7CiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIE1pc21h dGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBhdHRlcm4gdGhhdCBjYXVz ZXMgbWlzbWF0Y2hlcyB3aXRoIGxlbmd0aCA+IDEKLS0tIE1pc21hdGNoIGhhcHBlbnMgd2hlbiBw YXJ0aWFsIG1hdGNoIGZhaWxzIGFmdGVyIHByb2Nlc3NpbmcgbXVsdGlwbGUgcm93cworLS0gUGF0 dGVybiB3aXRoIGNvbXBsZXRlIG1hdGNoIGV2ZXJ5IGN5Y2xlOiAwIG1pc21hdGNoZWQKKy0tIEEo MSwyLDMpIEIoNCw1KSBDKDYpIHJlcGVhdHMgcGVyZmVjdGx5OyBYIHJvd3MgYXJlIHBydW5lZCwg bm90IG1pc21hdGNoZWQKIENSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gKApAQCAtMTM3NCw4NyArMTM3NSw2IEBAIFdJTkRPVyB3IEFTICgKICBd CiAoMSByb3cpCiAKLURST1AgVklFVyBycHJfdjsKLS0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gWE1MIEZvcm1hdCBUZXN0 cwotLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBYTUwgZm9ybWF0IG91dHB1dAotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UwotU0VMRUNUIGNvdW50KCopIE9WRVIgdwotRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFT IHModikKLVdJTkRPVyB3IEFTICgKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAg ICBQQVRURVJOIChBIEIpCi0gICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0g MAotKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7Ci0g ICAgICAgbGluZSAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgUEFUVEVSTiAoYSBiKSAK LSgxIHJvdykKLQotU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCi1FWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFU IFhNTCkKLVNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMw KSBBUyBzKHYpCi1XSU5ET1cgdyBBUyAoCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X Ci0gICAgUEFUVEVSTiAoQSBCKQotICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUg MiA9IDAKLSknKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9m aWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotIDxleHBsYWluIHhtbG5zPSJodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnLzIwMDkvZXhw bGFpbiI+ICAgICAgICAgICAgICAgICAgICAgICsKLSAgIDxRdWVyeT4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g ICAgIDxQbGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxOb2RlLVR5cGU+V2luZG93QWdnPC9Ob2Rl LVR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8 UGFyYWxsZWwtQXdhcmU+ZmFsc2U8L1BhcmFsbGVsLUF3YXJlPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCi0gICAgICAgPEFzeW5jLUNhcGFibGU+ZmFsc2U8L0FzeW5jLUNhcGFi bGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxBY3R1YWwt Um93cz4zMC4wMDwvQWN0dWFsLVJvd3M+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgICA8QWN0dWFsLUxvb3BzPjE8L0FjdHVhbC1Mb29wcz4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgPERpc2FibGVkPmZhbHNl PC9EaXNhYmxlZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgICAgIDxXaW5kb3c+dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKTwvV2luZG93PisKLSAgICAgICA8UGF0dGVybj5hIGI8L1BhdHRlcm4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg ICAgPFN0b3JhZ2U+TWVtb3J5PC9TdG9yYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxNYXhpbXVtLVN0b3JhZ2U+MDwvTWF4aW11bS1T dG9yYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8TkZB LVN0YXRlcy1QZWFrPjI8L05GQS1TdGF0ZXMtUGVhaz4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICAgICAgPE5GQS1TdGF0ZXMtVG90YWw+MzE8L05GQS1TdGF0ZXMtVG90 YWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxORkEtU3RhdGVz LU1lcmdlZD4wPC9ORkEtU3RhdGVzLU1lcmdlZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICAgICA8TkZBLUNvbnRleHRzLVBlYWs+MjwvTkZBLUNvbnRleHRzLVBlYWs+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgPE5GQS1Db250ZXh0cy1Ub3Rh bD4zMTwvTkZBLUNvbnRleHRzLVRvdGFsPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgICAgIDxORkEtQ29udGV4dHMtQWJzb3JiZWQ+MDwvTkZBLUNvbnRleHRzLUFic29yYmVkPiAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8TkZBLUNvbnRleHRzLVNraXBwZWQ+MTU8 L05GQS1Db250ZXh0cy1Ta2lwcGVkPiAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAg PE5GQS1Db250ZXh0cy1QcnVuZWQ+MDwvTkZBLUNvbnRleHRzLVBydW5lZD4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgICAgIDxORkEtTWF0Y2hlZD4xNTwvTkZBLU1hdGNoZWQ+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8TkZBLU1p c21hdGNoZWQ+MDwvTkZBLU1pc21hdGNoZWQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICAgICAgPE5GQS1NYXRjaC1MZW5ndGgtTWluPjI8L05GQS1NYXRjaC1MZW5n dGgtTWluPiAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxORkEtTWF0Y2gtTGVu Z3RoLU1heD4yPC9ORkEtTWF0Y2gtTGVuZ3RoLU1heD4gICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgICA8TkZBLU1hdGNoLUxlbmd0aC1Bdmc+Mi4wPC9ORkEtTWF0Y2gtTGVuZ3RoLUF2 Zz4gICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgPE5GQS1Ta2lwcGVkLUxlbmd0aC1N aW4+MTwvTkZBLVNraXBwZWQtTGVuZ3RoLU1pbj4gICAgICAgICAgICAgICAgICAgICAgKwotICAg ICAgIDxORkEtU2tpcHBlZC1MZW5ndGgtTWF4PjE8L05GQS1Ta2lwcGVkLUxlbmd0aC1NYXg+ICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8TkZBLVNraXBwZWQtTGVuZ3RoLUF2Zz4xLjA8 L05GQS1Ta2lwcGVkLUxlbmd0aC1Bdmc+ICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgPFBs YW5zPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgICAgICAgPFBsYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgPE5vZGUt VHlwZT5GdW5jdGlvbiBTY2FuPC9Ob2RlLVR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICAgICAgICAgIDxQYXJlbnQtUmVsYXRpb25zaGlwPk91dGVyPC9QYXJlbnQtUmVs YXRpb25zaGlwPiAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICA8UGFyYWxsZWwtQXdh cmU+ZmFsc2U8L1BhcmFsbGVsLUF3YXJlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgICAgICAgPEFzeW5jLUNhcGFibGU+ZmFsc2U8L0FzeW5jLUNhcGFibGU+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgIDxGdW5jdGlvbi1OYW1lPmdlbmVy YXRlX3NlcmllczwvRnVuY3Rpb24tTmFtZT4gICAgICAgICAgICAgICAgICAgICAgKwotICAgICAg ICAgICA8QWxpYXM+czwvQWxpYXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgPEFjdHVhbC1Sb3dzPjMwLjAwPC9BY3R1YWwt Um93cz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgIDxB Y3R1YWwtTG9vcHM+MTwvQWN0dWFsLUxvb3BzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgICAgICAgICA8RGlzYWJsZWQ+ZmFsc2U8L0Rpc2FibGVkPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgIDwvUGxhbj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCi0gICAgICAgPC9QbGFucz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICA8L1BsYW4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg ICAgPFRyaWdnZXJzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICAgIDwvVHJpZ2dlcnM+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgPC9RdWVy eT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSA8L2V4cGxhaW4+Ci0oMSByb3cpCi0KIERST1AgVklFVyBycHJfdjsK IC0tIEpTT04gZm9ybWF0IHdpdGggbWlzbWF0Y2ggc3RhdGlzdGljcwogLS0gUGF0dGVybiBBIEIg QyBleHBlY3RzIDEsMiwzIGJ1dCBnZXRzIDEsMiw0IHR3aWNlIGNhdXNpbmcgbWlzbWF0Y2hlcwpA QCAtMTYxOCw2ICsxNTM4LDg3IEBAIFdJTkRPVyB3IEFTICgKICBdCiAoMSByb3cpCiAKK0RST1Ag VklFVyBycHJfdjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gWE1MIEZvcm1hdCBUZXN0cworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBYTUwg Zm9ybWF0IG91dHB1dAorQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisg ICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiKSAKKygxIHJvdykKKworU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFUIFhNTCkKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC KQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyknKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxleHBsYWluIHht bG5zPSJodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnLzIwMDkvZXhwbGFpbiI+ICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIDxRdWVyeT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIDxQbGFuPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgIDxOb2RlLVR5cGU+V2luZG93QWdnPC9Ob2RlLVR5cGU+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8UGFyYWxsZWwtQXdhcmU+ZmFs c2U8L1BhcmFsbGVsLUF3YXJlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgPEFzeW5jLUNhcGFibGU+ZmFsc2U8L0FzeW5jLUNhcGFibGU+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxBY3R1YWwtUm93cz4zMC4wMDwvQWN0dWFs LVJvd3M+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8 QWN0dWFsLUxvb3BzPjE8L0FjdHVhbC1Mb29wcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgPERpc2FibGVkPmZhbHNlPC9EaXNhYmxlZD4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxXaW5kb3c+ dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKTwv V2luZG93PisKKyAgICAgICA8UGF0dGVybj5hIGI8L1BhdHRlcm4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPFN0b3JhZ2U+TWVtb3J5 PC9TdG9yYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgIDxNYXhpbXVtLVN0b3JhZ2U+MDwvTWF4aW11bS1TdG9yYWdlPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZBLVN0YXRlcy1QZWFrPjI8L05G QS1TdGF0ZXMtUGVhaz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgPE5GQS1TdGF0ZXMtVG90YWw+MzE8L05GQS1TdGF0ZXMtVG90YWw+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtU3RhdGVzLU1lcmdlZD4wPC9ORkEtU3Rh dGVzLU1lcmdlZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZB LUNvbnRleHRzLVBlYWs+MjwvTkZBLUNvbnRleHRzLVBlYWs+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgPE5GQS1Db250ZXh0cy1Ub3RhbD4zMTwvTkZBLUNvbnRleHRz LVRvdGFsPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtQ29udGV4 dHMtQWJzb3JiZWQ+MDwvTkZBLUNvbnRleHRzLUFic29yYmVkPiAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICA8TkZBLUNvbnRleHRzLVNraXBwZWQ+MTU8L05GQS1Db250ZXh0cy1Ta2lw cGVkPiAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPE5GQS1Db250ZXh0cy1QcnVu ZWQ+MDwvTkZBLUNvbnRleHRzLVBydW5lZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgIDxORkEtTWF0Y2hlZD4xNTwvTkZBLU1hdGNoZWQ+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZBLU1pc21hdGNoZWQ+MDwvTkZBLU1p c21hdGNoZWQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg PE5GQS1NYXRjaC1MZW5ndGgtTWluPjI8L05GQS1NYXRjaC1MZW5ndGgtTWluPiAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtTWF0Y2gtTGVuZ3RoLU1heD4yPC9ORkEtTWF0 Y2gtTGVuZ3RoLU1heD4gICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZBLU1h dGNoLUxlbmd0aC1Bdmc+Mi4wPC9ORkEtTWF0Y2gtTGVuZ3RoLUF2Zz4gICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgPE5GQS1Ta2lwcGVkLUxlbmd0aC1NaW4+MTwvTkZBLVNraXBwZWQt TGVuZ3RoLU1pbj4gICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtU2tpcHBlZC1M ZW5ndGgtTWF4PjE8L05GQS1Ta2lwcGVkLUxlbmd0aC1NYXg+ICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICA8TkZBLVNraXBwZWQtTGVuZ3RoLUF2Zz4xLjA8L05GQS1Ta2lwcGVkLUxlbmd0 aC1Bdmc+ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPFBsYW5zPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgPFBsYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgPE5vZGUtVHlwZT5GdW5jdGlvbiBTY2Fu PC9Ob2RlLVR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg IDxQYXJlbnQtUmVsYXRpb25zaGlwPk91dGVyPC9QYXJlbnQtUmVsYXRpb25zaGlwPiAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICA8UGFyYWxsZWwtQXdhcmU+ZmFsc2U8L1BhcmFsbGVs LUF3YXJlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgPEFzeW5j LUNhcGFibGU+ZmFsc2U8L0FzeW5jLUNhcGFibGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgIDxGdW5jdGlvbi1OYW1lPmdlbmVyYXRlX3NlcmllczwvRnVuY3Rp b24tTmFtZT4gICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICA8QWxpYXM+czwvQWxp YXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgPEFjdHVhbC1Sb3dzPjMwLjAwPC9BY3R1YWwtUm93cz4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgIDxBY3R1YWwtTG9vcHM+MTwvQWN0 dWFsLUxvb3BzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICA8RGlzYWJsZWQ+ZmFsc2U8L0Rpc2FibGVkPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgIDwvUGxhbj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPC9QbGFu cz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICA8L1BsYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgPFRyaWdnZXJzPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIDwvVHJpZ2dlcnM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgPC9RdWVyeT4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyA8 L2V4cGxhaW4+CisoMSByb3cpCisKIERST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTXVsdGlw bGUgUGFydGl0aW9ucyBUZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfbmZhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKaW5k ZXggMDNlZTE3NGQzNTkuLmM4NDY0ZThmY2Y0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9uZmEub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X25mYS5vdXQKQEAgLTMyMiw2ICszMjIsMTYxIEBAIFdJTkRPVyB3IEFTICgKICAgNSB8IHtffSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKICg1IHJvd3MpCiAKKy0tIEFic29ycHRpb24gd2l0 aCBmaXhlZCBzdWZmaXg6IEErIEIKK1dJVEggdGVzdF9hYnNvcmJfc3VmZml4IEFTICgKKyAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAo MiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFS UkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdz KQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9z dGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29y Yl9zdWZmaXgKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBB IEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsK KyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAg ICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAorICAzIHwge0F9ICAg fCAgICAgICAgICAgMyB8ICAgICAgICAgNAorICA0IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykK KworLS0gUGVyLWJyYW5jaCBhYnNvcnB0aW9uIHdpdGggQUxUOiBCKyBDIHwgQisgRAorV0lUSCB0 ZXN0X2Fic29yYl9hbHQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgQVJSQVlbJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFS UkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCisgICAgICAgICg1LCBBUlJBWVsn WCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2FsdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEIrIEMg fCBCKyBEKQorICAgIERFRklORQorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAg ICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3Mp CispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7Qn0gICB8ICAgICAgICAgICAxIHwg ICAgICAgICA0CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0CisgIDMgfCB7 Qn0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7RH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDUgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSBy b3dzKQorCistLSBOb24tYWJzb3JiYWJsZTogQSBCKyAodW5ib3VuZGVkIG5vdCBpbiBmaXJzdCBw b3NpdGlvbikKK1dJVEggdGVzdF9ub19hYnNvcmIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwK KyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAg ICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQs IGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfbm9fYWJzb3JiCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtCfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtYfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIEdST1VQIG1lcmdlIGVu YWJsZXMgYWJzb3JwdGlvbjogKEEgQikgKEEgQikrIG9wdGltaXplZCB0byAoQSBCKXsyLH0KK1dJ VEggdGVzdF9hYnNvcmJfZ3JvdXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAg ICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAg KDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBB UlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydCJ10pLAorICAgICAgICAoNywgQVJSQVlb J1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9ncm91cAorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChB IEIpIChBIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0 YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDYKKyAgMiB8IHtCfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAg IDYKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNyB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg3IHJvd3MpCisK Ky0tIE11bHRpcGxlIHVuYm91bmRlZDogQSsgQisgKGZpcnN0IGVsZW1lbnQgdW5ib3VuZGVkIGVu YWJsZXMgYWJzb3JwdGlvbikKK1dJVEggdGVzdF9tdWx0aV91bmJvdW5kZWQgQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgy LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJS QVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbXVsdGlf dW5ib3VuZGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsgQispCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisp OworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAg ICAgICA0CisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0CisgIDMgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDUgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dz KQorCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIENvbnRleHQgTGlmZWN5Y2xlCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTY3NCw3ICs4Mjks OCBAQCBXSU5ET1cgdyBBUyAoCiAoNSByb3dzKQogCiAtLSBPcHRpb25hbCByZWx1Y3RhbnQgZ3Jv dXA6IChBIEIpPz8gQwotLS0gbmZhX2FkdmFuY2VfYmVnaW46IHJlbHVjdGFudCBwcmVmZXJzIHNr aXAgKDAgaXRlcmF0aW9ucykgb3ZlciBlbnRlcgorLS0gbmZhX2FkdmFuY2VfYmVnaW46IHJlbHVj dGFudCB0cmllcyBza2lwIGZpcnN0LCBidXQgc2tpcCBwYXRoIG5lZWRzIEMKKy0tIGF0IHJvdyAx IHdoaWNoIGlzIEEg4oaSIHNraXAgZmFpbHMuIEVudGVyIHBhdGggc3VjY2VlZHM6IEEoMSkgQigy KSBDKDMpLgogV0lUSCB0ZXN0X29wdGlvbmFsX3JlbHVjdGFudCBBUyAoCiAgICAgU0VMRUNUICog RlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQSddKSwKQEAgLTczNCw2ICs4OTAsNDQg QEAgV0lORE9XIHcgQVMgKAogICA0IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAog KDQgcm93cykKIAorLS0gUmVsdWN0YW50IG9wdGlvbmFsIGdyb3VwIHNraXAtdG8tRklOCistLSBX aGVuIGEgcmVsdWN0YW50IG9wdGlvbmFsIGdyb3VwJ3Mgc2tpcCBwYXRoIHJlYWNoZXMgRklOLCB0 aGUgZ3JvdXAKKy0tIGVudHJ5IHBhdGggaXMgYWJhbmRvbmVkIChub2RlV2luZG93QWdnLmMgbmZh X2FkdmFuY2VfYmVnaW4pLgorLS0gUGF0dGVybjogQyAoQSBCKT8/IC0tIGFmdGVyIEMgbWF0Y2hl cywgdGhlIHJlbHVjdGFudCBncm91cCAoQSBCKT8/CistLSBwcmVmZXJzIHRvIHNraXAuICBTa2lw IGdvZXMgdG8gRklOIChncm91cCBpcyBsYXN0IGVsZW1lbnQpLCBzbworLS0gdGhlIG1hdGNoIGNv bXBsZXRlcyB3aXRoIGp1c3QgQy4KK1dJVEggdGVzdF9iZWdpbl9za2lwX2ZpbiBBUyAoCisgICAg U0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQyddKSwKKyAgICAgICAg KDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCBB UlJBWVsnQycsJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwg ZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X2VuZAorRlJPTSB0ZXN0X2JlZ2luX3NraXBfZmluCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQyAoQSBC KT8/KQorICAgIERFRklORQorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisp OworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7Q30gICB8ICAgICAgICAgICAxIHwgICAg ICAgICAxCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QyxBfSB8ICAgICAgICAgICA0IHwg ICAgICAgICA0CisgIDUgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dz KQorCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIE1hdGNoIFBoYXNlCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE2NjQsNiArMTg1OCw2NCBA QCBXSU5ET1cgdyBBUyAoCiAgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiAo NCByb3dzKQogCistLSBBKz8gQiAocmVsdWN0YW50IHBsdXMpOiBleGl0cyBBIGF0IGZpcnN0IEIg YXZhaWxhYmlsaXR5CistLSAoU2FtZSBzY2VuYXJpbyBhcyBncmVlZHktdnMtcmVsdWN0YW50IGNv bXBhcmlzb24gYWJvdmU7IHJldGFpbmVkIGZvcgorLS0gc3RhbmRhbG9uZSBxdWFudGlmaWVyIGNv dmVyYWdlIGFsb25nc2lkZSBBezEsM30/IGFuZCBBezIsM30/IGJlbG93KQorV0lUSCB0ZXN0X3Jl bHVjdGFudF9wbHVzIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAg KDMsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJywnXyddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitG Uk9NIHRlc3RfcmVsdWN0YW50X3BsdXMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAg IERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0In ID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQg CistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0EsX30gfCAg ICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0EsX30gfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorICAzIHwge0EsQn0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0IsX30g fCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKworLS0gQXsxLDN9PyBCIChyZWx1 Y3RhbnQgYm91bmRlZCk6IHNhbWUgZGF0YSwgYm91bmRlZCBxdWFudGlmaWVyCitXSVRIIHRlc3Rf cmVsdWN0YW50X2JvdW5kZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAg ICAoMSwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCdfJ10pLAorICAg ICAgICAoMywgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InLCdfJ10pCisg ICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfYm91bmRlZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsx LDN9PyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQg fCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAx IHwge0EsX30gfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0EsX30gfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA0IHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKwogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLSBQYXRob2xvZ2ljYWwgUGF0dGVybiBSdW50aW1lIFByb3RlY3Rpb24KIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAt MjAzMCw2ICsyMjgyLDI4MyBAQCBXSU5ET1cgdyBBUyAoCiAgIDMgfCB7Qn0gICB8ICAgICAgICAg ICAzIHwgICAgICAgICAzCiAoMyByb3dzKQogCistLSBPdmVybGFwcGluZyBtYXRjaDogQSBCIEMg RCBFIHwgQiBDIEQgfCBDIEQgRSBGIChTS0lQIFBBU1QgTEFTVCBST1cpCitXSVRIIHRlc3Rfb3Zl cmxhcDEgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10p LAorICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCisgICAgICAgICg1LCBBUlJBWVsnRSddKSwKKyAg ICAgICAgKDYsIEFSUkFZWydGJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vdmVybGFwMQorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCIEMgRCBFIHwgQiBDIEQgfCBDIEQgRSBGKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFO WShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRiBBUyAn RicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2Vu ZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8 ICAgICAgICAgICAxIHwgICAgICAgICA1CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7RH0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7RX0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDYgfCB7Rn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dz KQorCistLSBTYW1lIHdpdGggU0tJUCBUTyBORVhUIFJPVzogdGhyZWUgb3ZlcmxhcHBpbmcgbWF0 Y2hlcworV0lUSCB0ZXN0X292ZXJsYXAxIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMK KyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAg ICAgICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJ10pLAorICAgICAgICAo NSwgQVJSQVlbJ0UnXSksCisgICAgICAgICg2LCBBUlJBWVsnRiddKQorICAgICkgQVMgdChpZCwg ZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rf b3ZlcmxhcDEKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIgQyBEIEUgfCBCIEMgRCB8IEMgRCBFIEYp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBB UyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAg ICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBGIEFTICdGJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDUKKyAgMiB8IHtCfSAgIHwg ICAgICAgICAgIDIgfCAgICAgICAgIDQKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgIDMgfCAgICAg ICAgIDYKKyAgNCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtFfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtGfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyg2IHJvd3MpCisKKy0tIExvbmdlciBwYXR0ZXJuIGZhaWxzLCBzaG9ydGVyIHN1 cnZpdmVzOiBBKyBCIEMgRCBFIHwgQisgQworV0lUSCB0ZXN0X292ZXJsYXAxYiBBUyAoCisgICAg U0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAg KDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCBB UlJBWVsnRCddKSwKKyAgICAgICAgKDUsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFn cykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf c3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vdmVy bGFwMWIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIgQyBEIEUgfCBCKyBDKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdE JyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8 IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMworICAzIHwge0N9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykKKworLS0g TG9uZyBCIHNlcXVlbmNlIHdpdGggZGlmZmVyZW50IGVuZGluZ3M6IEEgQisgQyB8IEIrIEQKK1dJ VEggdGVzdF9vdmVybGFwMiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCAgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgz LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCAg QVJSQVlbJ0InXSksCisgICAgICAgICg2LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg3LCAgQVJS QVlbJ0InXSksCisgICAgICAgICg4LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlb J0InXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0QnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQor KQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFy dCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X292ZXJsYXAy CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKyBDIHwgQisgRCkKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisg ICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxh Z3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAx IHwgICAgICAgICA2CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDUgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7Qn0gICB8ICAgICAg ICAgICA3IHwgICAgICAgIDEwCisgIDggfCB7Qn0gICB8ICAgICAgICAgICA4IHwgICAgICAgIDEw CisgIDkgfCB7Qn0gICB8ICAgICAgICAgICA5IHwgICAgICAgIDEwCisgMTAgfCB7RH0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisoMTAgcm93cykKKworLS0gR3JlZWR5IHdpdGggbGF0ZSBm YWlsdXJlICgiYmV0cmF5YWwiKTogQSBCIEMrIEQgfCBBIEIKK1dJVEggdGVzdF9iZXRyYXlhbCBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisgICAg ICAgICg0LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDUsIEFSUkFZWydDJ10pLAorICAgICAgICAo NiwgQVJSQVlbJ0UnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2JldHJheWFsCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBIEIgQysgRCB8IEEgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlko ZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0Mn ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAyCisg IDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7RX0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dzKQorCistLSBNdWx0aXBsZSBUUlVFIHBlciBy b3c6IG92ZXJsYXBwaW5nIHBhdHRlcm4gdmFyaWFibGVzCitXSVRIIHRlc3RfbXVsdGlfdHJ1ZSBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ0In XSksCisgICAgICAgICgyLCBBUlJBWVsnQicsJ0MnXSksCisgICAgICAgICgzLCBBUlJBWVsnQycs J0QnXSksCisgICAgICAgICg0LCBBUlJBWVsnRCcsJ0UnXSksCisgICAgICAgICg1LCBBUlJBWVsn RScsJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X211bHRpX3RydWUKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9 IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAor LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBLEJ9IHwgICAg ICAgICAgIDEgfCAgICAgICAgIDUKKyAgMiB8IHtCLEN9IHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAgMyB8IHtDLER9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtELEV9IHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtFLF99IHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyg1IHJvd3MpCisKKy0tIERpYWdvbmFsIHBhdHRlcm4gd2l0aCBzaGlmdGVkIG11bHRp LVRSVUUgb3ZlcmxhcAorV0lUSCB0ZXN0X2RpYWdvbmFsIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZ WydCJywnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJywnQiddKSwKKyAgICAgICAgKDQsIEFS UkFZWydEJywnQyddKSwKKyAgICAgICAgKDUsIEFSUkFZWydfJywnRCddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3RfZGlhZ29uYWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIgQyBEKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFO WShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBLF99IHwgICAgICAg ICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtCLEF9IHwgICAgICAgICAgIDIgfCAgICAgICAgIDUK KyAgMyB8IHtDLEJ9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtELEN9IHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtfLER9IHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyg1IHJvd3MpCisKKy0tICgoQSB8IEIpIEMpKyAtIGFsdGVybmF0aW9uIGluc2lkZSBncm91 cCB3aXRoIG91dGVyIHF1YW50aWZpZXIKK1dJVEggdGVzdF9hbHRfZ3JvdXAgQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgy LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJS QVlbJ0MnXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWx0X2dy b3VwCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEgfCBCKSBDKSspCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtDfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtYfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gRGVlcCBO ZXN0ZWQgR3JvdXBzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KQEAgLTIyMjcsNiArMjc1Niw2OSBAQCBXSU5ET1cgdyBBUyAo CiAgIDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiAoNSByb3dzKQogCistLSAo QSBCKXsyfSAtIGdyb3VwIHdpdGggZXhhY3QgcXVhbnRpZmllcgorV0lUSCB0ZXN0X2dyb3VwX2V4 YWN0IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0X2dyb3VwX2V4YWN0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCKXsyfSkKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5k IAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwg ICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtYfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyg1IHJvd3MpCisKKy0tIE5lc3RlZCBFTkQtPkVORCBmYXN0LWZvcndhcmQKKy0t IFdoZW4gYW4gaW5uZXIgZ3JvdXAgaGFzIGEgbnVsbGFibGUgYm9keSBhbmQgY291bnQgPCBtaW4s IHRoZQorLS0gZmFzdC1mb3J3YXJkIHBhdGggZXhpdHMgdGhyb3VnaCB0aGUgb3V0ZXIgRU5ELCBp bmNyZW1lbnRpbmcKKy0tIHRoZSBvdXRlciBncm91cCdzIGNvdW50IChub2RlV2luZG93QWdnLmMg bmZhX2FkdmFuY2VfZW5kKS4KKy0tIFBhdHRlcm46ICgoQT8pezIsM30pezIsM30gLS0gbmVzdGVk IGdyb3VwcywgbmVpdGhlciBjb2xsYXBzZXMKKy0tIGJlY2F1c2UgdGhlIG9wdGltaXplciBjYW5u b3Qgc2FmZWx5IG11bHRpcGx5IG5vbi1leGFjdCBxdWFudGlmaWVycy4KKy0tIERhdGEgaGFzIG5v IEEgcm93cywgZm9yY2luZyBhbGwtZW1wdHkgaXRlcmF0aW9ucyB2aWEgZmFzdC1mb3J3YXJkLgor V0lUSCB0ZXN0X25lc3RlZF9mZiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAg ICAgICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAo MywgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9uZXN0ZWRfZmYK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVY VCBST1cKKyAgICBQQVRURVJOICgoKEE/KXsyLDN9KXsyLDN9KQorICAgIERFRklORQorICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwg bWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygz IHJvd3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gU0tJUCBPcHRpb25zIChSdW50aW1lKQogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0y MzkwLDYgKzI5ODIsOCBAQCBPUkRFUiBCWSBtb2RlLCBpZDsKIAogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBJTklUSUFM IE1vZGUgKFJ1bnRpbWUpCistLSBQbGFjZWhvbGRlcjogSU5JVElBTCBpcyBub3QgeWV0IGltcGxl bWVudGVkIChzeW50YXggZXJyb3IpLgorLS0gS2VwdCBoZXJlIHNvIHRlc3RzIGNvbnZlcnQgdG8g cnVudGltZSB0ZXN0cyB3aGVuIGltcGxlbWVudGVkLgogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBJTklUSUFMIG1vZGUg KG5vdCB5ZXQgc3VwcG9ydGVkIC0gcHJvZHVjZXMgc3ludGF4IGVycm9yKQogV0lUSCB0ZXN0X2lu aXRpYWxfbW9kZSBBUyAoCkBAIC0yNTk3LDYgKzMxOTEsODAgQEAgV0lORE9XIHcgQVMgKAogICA1 IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAogKDUgcm93cykKIAorLS0gTiBGT0xM T1dJTkcgKyBTS0lQIFRPIE5FWFQgUk9XOiBvdmVybGFwcGluZyBtYXRjaGVzIGJvdW5kZWQgYnkg ZnJhbWUKKy0tIFJvdyAxOiBmcmFtZSBbMSw0XSwgQSgxLTMpIEIoNCkgLT4gbWF0Y2gKKy0tIFJv dyAyOiBmcmFtZSBbMiw1XSwgQSgyLTMpIEIoNCkgLT4gbWF0Y2gKKy0tIFJvdyAzOiBmcmFtZSBb Myw2XSwgQSgzKSBCKDQpIC0+IG1hdGNoCistLSBSb3cgNTogZnJhbWUgWzUsNl0sIEEoNSkgQig2 KSAtPiBtYXRjaAorV0lUSCB0ZXN0X25fc2tpcF9uZXh0IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0En XSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAor ICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X25fc2tpcF9uZXh0CitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDMgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAn QicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2Vu ZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8 ICAgICAgICAgICAxIHwgICAgICAgICA0CisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAg ICAgICA0CisgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwg ICAgICAgICA2CisgIDYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dz KQorCistLSBGcmFtZSBleGFjdGx5IDEgcm93IHNob3J0IG9mIHBvdGVudGlhbCBtYXRjaAorLS0g RnJvbSByb3cgMTogQSBBIEEgQiBuZWVkcyA0IHJvd3MgYnV0IGZyYW1lIGhvbGRzIDMgLT4gbm8g bWF0Y2gKKy0tIEZyb20gcm93IDI6IEEgQSBCIGZpdHMgaW4gMy1yb3cgZnJhbWUgLT4gbWF0Y2gK K1dJVEggdGVzdF9mcmFtZV9vbmVfc2hvcnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAg ICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlk LCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfZnJhbWVfb25lX3Nob3J0CitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAg REVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicg PSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAK Ky0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAg ICA0CisgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAg ICAgICA2CisgIDYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dzKQor CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIFNwZWNpYWwgUGFydGl0aW9uIENhc2VzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTM0MDcsNyAr NDA3NSw4IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gKEE/KXswLDN9OiBtaW49MCwgbnVsbGFibGUg aW5uZXIuCiAtLSBBIG5ldmVyIG1hdGNoZXMuIEE/IG1hdGNoZXMgZW1wdHksIG1pbj0wIHNhdGlz ZmllZCBpbW1lZGlhdGVseS4KLS0tIEV4cGVjdGVkOiBlbXB0eSBtYXRjaCAobWF0Y2hfc3RhcnQg PSBtYXRjaF9lbmQpIGZvciBldmVyeSByb3cKKy0tIFBlciBzdGFuZGFyZDogZW1wdHkgbWF0Y2gg ZXhwZWN0ZWQgZm9yIGV2ZXJ5IHJvdy4KKy0tIFhYWDogdmlzaXRlZCBiaXRtYXAgYmxvY2tzIGVt cHR5IGl0ZXJhdGlvbiDihpIgbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30pCiBXSVRIIHRlc3RfNzI4 X21pbjAgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJSQVlb J0InXSksCkBAIC0zNDM2LDcgKzQxMDUsOCBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIChBPyl7MSwz fTogbWluPTEsIG51bGxhYmxlIGlubmVyLgogLS0gQSBuZXZlciBtYXRjaGVzLiBOZWVkIDEgZW1w dHkgaXRlcmF0aW9uIHRvIHNhdGlzZnkgbWluPTEuCi0tLSBFeHBlY3RlZDogZW1wdHkgbWF0Y2gg Zm9yIGV2ZXJ5IHJvdworLS0gUGVyIHN0YW5kYXJkOiBlbXB0eSBtYXRjaCBleHBlY3RlZCBmb3Ig ZXZlcnkgcm93LgorLS0gWFhYOiB2aXNpdGVkIGJpdG1hcCBibG9ja3MgZW1wdHkgaXRlcmF0aW9u IOKGkiBubyBtYXRjaCAoc2FtZSBhcyB7MiwzfSkKIFdJVEggdGVzdF83MjhfbWluMSBBUyAoCiAg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQiddKSwKQEAgLTM0 OTcsNyArNDE2Nyw4IEBAIFdJTkRPVyB3IEFTICgKIC0tIChBPyl7MiwzfSBtaXhlZDogc29tZSBy b3dzIG1hdGNoIEEsIHNvbWUgZG9uJ3QKIC0tIFJvd3MgMS0yOiBBIG1hdGNoZXMsIGdyZWVkeSB0 YWtlcyAyIOKGkiBtaW4gc2F0aXNmaWVkCiAtLSBSb3cgMzogQSBkb2Vzbid0IG1hdGNoLCBuZWVk cyAyIGVtcHR5IGl0ZXJhdGlvbnMgZm9yIG1pbj0yCi0tLSBFeHBlY3RlZDogYWxsIHJvd3MgcHJv ZHVjZSBtYXRjaGVzCistLSBYWFg6IFJvdyAzIGZhaWxzIGR1ZSB0byB2aXNpdGVkIGJpdG1hcCAo c2FtZSBhcyBwdXJlIGVtcHR5IHsyLDN9KQorLS0gUm93IDQ6IEEgbWF0Y2hlcyAxIHJlYWwgaXRl ciArIDEgZmYgZW1wdHkgZXhpdCDihpIgbWF0Y2ggNC00CiBXSVRIIHRlc3RfNzI4X21pbjJfbWl4 ZWQgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJSQVlbJ0En XSksCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByLnNxbAppbmRleCBhMjYzMDc0ZTNlOS4uOGRiZDNmOTAzNmEgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByLnNxbApAQCAtMSw1ICsxLDEwIEBACiAtLQotLS0gVGVzdCBmb3Igcm93IHBhdHRl cm4gZGVmaW5pdGlvbiBjbGF1c2UKKy0tIFRlc3QgZm9yIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u OiBXSU5ET1cgY2xhdXNlIGludGVncmF0aW9uIGFuZAorLS0gcmVhbC13b3JsZCBzY2VuYXJpbyB0 ZXN0cyB1c2luZyBzdG9jayBwcmljZSBkYXRhLgorLS0KKy0tIFBhcnNlci9wbGFubmVyIHRlc3Rz OiBycHJfYmFzZS5zcWwKKy0tIE5GQSBlbmdpbmUgdGVzdHM6IHJwcl9uZmEuc3FsCistLSBFWFBM QUlOIHN0YXRpc3RpY3MgdGVzdHM6IHJwcl9leHBsYWluLnNxbAogLS0KIAogQ1JFQVRFIFRFTVAg VEFCTEUgc3RvY2sgKApAQCAtMzAsNiArMzUsMTAgQEAgSU5TRVJUIElOVE8gc3RvY2sgVkFMVUVT ICgnY29tcGFueTInLCAnMjAyMy0wNy0xMCcsIDEzMDApOwogCiBTRUxFQ1QgKiBGUk9NIHN0b2Nr OwogCistLQorLS0gQmFzaWMgcGF0dGVybiBtYXRjaGluZyB3aXRoIFBSRVYvTkVYVAorLS0KKwog LS0gYmFzaWMgdGVzdCB1c2luZyBQUkVWCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBm aXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCiAgbnRo X3ZhbHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZApAQCAtMTc1LDcgKzE4NCw3IEBA IFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcs IGxhc3RfdmFsdWUocHJpY2UpIE9WRVIKICAgSElHSCBBUyBwcmljZSA+IDE1MAogKTsKIAotLS0g YmFzaWMgdGVzdCB3aXRoIG5vbmUtZ3JlZWR5IHBhdHRlcm4KKy0tIGJhc2ljIHRlc3Qgd2l0aCBm aXhlZC1sZW5ndGggcGF0dGVybiAoQSBBIEEgPSBleGFjdGx5IDMpCiBTRUxFQ1QgY29tcGFueSwg dGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKICBGUk9NIHN0b2NrCiAgV0lORE9XIHcgQVMg KApAQCAtMjk0LDcgKzMwMyw5IEBAIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0 X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIKICAgVVBET1dOIEFT IHByaWNlID4gUFJFVihwcmljZSkgQU5EIHByaWNlID4gTkVYVChwcmljZSkKICk7CiAKLS0tIHVz aW5nIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKy0tIHVzaW5nIEFGVEVSIE1BVENIIFNL SVAgVE8gTkVYVCBST1cgKHNhbWUgcGF0dGVybiBhcyBhYm92ZTsKKy0tIG1hdGNoIGxlbmd0aCBp cyBhbHdheXMgMiwgc28gcmVzdWx0IGlzIGlkZW50aWNhbCB0byBTS0lQIFBBU1QgTEFTVCBST1cu CistLSBTS0lQIFRPIE5FWFQgUk9XJ3MgZGlzdGluY3QgZWZmZWN0IGlzIHRlc3RlZCBpbiBiYWNr dHJhY2tpbmcgc2VjdGlvbi4pCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKICBGUk9NIHN0b2Nr CiAgV0lORE9XIHcgQVMgKApAQCAtMzA4LDggKzMxOSw5MiBAQCBTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBP VkVSCiAgIFVQRE9XTiBBUyBwcmljZSA+IFBSRVYocHJpY2UpIEFORCBwcmljZSA+IE5FWFQocHJp Y2UpCiApOwogCi0tLSBtYXRjaCBldmVyeXRoaW5nCistLSBQUkVWIHJldHVybnMgTlVMTCBhdCBw YXJ0aXRpb24ncyBmaXJzdCByb3cgKG51bGxfc2xvdCBwYXRoKQorU0VMRUNUIGNvbXBhbnksIHRk YXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisg UEFSVElUSU9OIEJZIGNvbXBhbnkKKyBPUkRFUiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIFBBVFRFUk4gKEJPVU5EQVJZIFJFU1Qr KQorIERFRklORQorICBCT1VOREFSWSBBUyBQUkVWKHByaWNlKSBJUyBOVUxMLAorICBSRVNUIEFT IFBSRVYocHJpY2UpIElTIE5PVCBOVUxMCispOworCistLSBORVhUIHJldHVybnMgTlVMTCBhdCBw YXJ0aXRpb24ncyBsYXN0IHJvdyAobnVsbF9zbG90IHBhdGgpCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyBQ QVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgUEFUVEVSTiAoQSsgQk9VTkRBUlkpCisgREVGSU5FCisgIEEgQVMgTkVYVChwcmlj ZSkgSVMgTk9UIE5VTEwsCisgIEJPVU5EQVJZIEFTIE5FWFQocHJpY2UpIElTIE5VTEwKKyk7CisK Ky0tIERFU0Mgb3JkZXI6IFBSRVYgcmVmZXJzIHRvIHRoZSByb3cgd2l0aCBsYXRlciBkYXRlCitT RUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlIERF U0MKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChTVEFSVCBET1dOKyBVUCsp CisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNl KSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKQorKTsKKworLS0gTXVsdGlwbGUgcGFydGl0 aW9ucyB3aXRoIHVuZXF1YWwgc2l6ZXMKK1dJVEggbXVsdGlfcGFydCBBUyAoCisgU0VMRUNUICog RlJPTSAoVkFMVUVTCisgICgnYScsIDEsIDEwKSwgKCdhJywgMiwgMjApLCAoJ2EnLCAzLCAxNSks CisgICgnYicsIDEsIDUpLAorICAoJ2MnLCAxLCAxMDApLCAoJ2MnLCAyLCAyMDApLCAoJ2MnLCAz LCAxNTApLCAoJ2MnLCA0LCAxNDApLCAoJ2MnLCA1LCAzMDApCisgKSBBUyB0KGdycCwgaWQsIHZh bCkKKykKK1NFTEVDVCBncnAsIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBtdWx0aV9w YXJ0CitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGdycAorIE9SREVSIEJZIGlkCisgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoQSBCKykKKyBERUZJTkUKKyAgQSBBUyB2 YWwgPD0gTkVYVCh2YWwpLAorICBCIEFTIHZhbCA+IFBSRVYodmFsKSBPUiB2YWwgPCBQUkVWKHZh bCkKKyk7CisKKy0tIEZMT0FUL05VTUVSSUMgREVGSU5FIGNvbmRpdGlvbnMKK1dJVEggZmxvYXRf ZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICgxLCAxLjA6OmZsb2F0OCksICgy LCAxLjUpLCAoMywgMS40OTk5KSwgKDQsIDEuNTAwMDEpLCAoNSwgMC4xKQorICkgQVMgdChpZCwg dmFsKQorKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBmbG9hdF9kYXRh CitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyBQQVRURVJOIChBIEIrKQorIERFRklORQorICBBIEFTIFRSVUUsCisgIEIgQVMgdmFsID4gUFJF Vih2YWwpICogMC45OQorKTsKKworLS0KKy0tIFNLSVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBGcmFt ZSBib3VuZGFyeQorLS0KIAorLS0gbWF0Y2ggZXZlcnl0aGluZwogU0VMRUNUIGNvbXBhbnksIHRk YXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkg T1ZFUiB3CiAgRlJPTSBzdG9jawogIFdJTkRPVyB3IEFTICgKQEAgLTQ3NCw2ICs1NjksMjUgQEAg VVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQog KTsKIAorLS0gcm93X251bWJlcigpIHdpdGhpbiBSUFIgcmVkdWNlZCBmcmFtZQorU0VMRUNUIGNv bXBhbnksIHRkYXRlLCBwcmljZSwgcm93X251bWJlcigpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3 CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBPUkRF UiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4gKFNUQVJUIFVQ KyBET1dOKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVW KHByaWNlKSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLQorLS0gU1FM IEludGVncmF0aW9uOiBKT0lOLCBDVEUsIExBVEVSQUwKKy0tCisKIC0tIEpPSU4gY2FzZQogQ1JF QVRFIFRFTVAgVEFCTEUgdDEgKGkgaW50LCB2MSBpbnQpOwogQ1JFQVRFIFRFTVAgVEFCTEUgdDIg KGogaW50LCB2MiBpbnQpOwpAQCAtNTUyLDYgKzY2NiwxMCBAQCBTRUxFQ1QgaWQsIGksIGosIGNv dW50KCopIE9WRVIgdwogICBDT05EIEFTIFBSRVYoaSArIGogKyAxKSA8IDEwCiApOwogCistLQor LS0gTGFyZ2Utc2NhbGUgLyBzY2FsYWJpbGl0eSB0ZXN0cworLS0KKwogLS0gU21va2UgdGVzdCBm b3IgbGFyZ2VyIHBhcnRpdGlvbnMuCiBXSVRIIHMgQVMgKAogIFNFTEVDVCB2LCBjb3VudCgqKSBP VkVSIHcgQVMgYwpAQCAtNjA3LDggKzcyNSw5IEBAIHJlc3VsdCBBUyAoCiBTRUxFQ1QgbWF0Y2hf Zmlyc3QsIG1hdGNoX2xhc3QsIG1hdGNoX2xlbiBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4g PiAwOwogCiAtLQotLS0gVXNpbmcgSUdOT1JFIE5VTExTCistLSBJR05PUkUgTlVMTFMKIC0tCisK IC0tIG5vIE5VTEwgcm93cyBjYXNlLiBUaGUgcmVzdWx0IHNob3VsZCBiZSBpZGVudGljYWwgd2l0 aCAiYmFzaWMgdGVzdCB1c2luZyBQUkVWIgogU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwg Zmlyc3RfdmFsdWUocHJpY2UpIElHTk9SRSBOVUxMUyBPVkVSIHcsCiAgbGFzdF92YWx1ZShwcmlj ZSkgSUdOT1JFIE5VTExTIE9WRVIgdywKQEAgLTYyNiw3ICs3NDUsNyBAQCBTRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgSUdOT1JFIE5VTExTIE9WRVIgdywK ICk7CiAKIC0tIG50aF92YWx1ZSB3aXRoIElHTk9SRSBOVUxMUyBvcHRpb24gd2FudHMgdG8gZmlu ZCB0aGUgc2Vjb25kIHJvdyBidXQKLS0tIGR1ZSBhIE5VTEwgaW4gdGhlIG1pZGxsZSwgaXQgcmV0 dXJucyB0aGUgdGhpcmQgcm93LgorLS0gZHVlIHRvIGEgTlVMTCBpbiB0aGUgbWlkZGxlLCBpdCBy ZXR1cm5zIHRoZSB0aGlyZCByb3cuCiBXSVRIIGRhdGEgQVMgKAogIFNFTEVDVCAqIEZST00gKFZB TFVFUwogICAoMTAsIDEpLCAoMTEsIE5VTEwpLCAoMTIsIDMpLCAoMTMsIDQpCkBAIC02NDMsOCAr NzYyLDggQEAgV0lUSCBkYXRhIEFTICgKICAgKTsKIAogLS0gbnRoX3ZhbHVlIHdpdGggSUdOT1JF IE5VTExTIG9wdGlvbiB3YW50cyB0byBmaW5kIHRoZSB0aGlyZCByb3cgYnV0Ci0tLSBkdWUgYSBO VUxMIGluIHRoZSBtaWRsbGUsIGl0IHJlYWNoZXMgdGhlIGVuZCBvZiByZWR1Y2VkIGZyYW1lIGFu ZAotLS0gcmV0dXJuIE5VTEwKKy0tIGR1ZSB0byBhIE5VTEwgaW4gdGhlIG1pZGRsZSwgaXQgcmVh Y2hlcyB0aGUgZW5kIG9mIHJlZHVjZWQgZnJhbWUgYW5kCistLSByZXR1cm5zIE5VTEwKIFdJVEgg ZGF0YSBBUyAoCiAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICgxMCwgMSksICgxMSwgTlVMTCks ICgxMiwgMyksICgxMywgNCkKQEAgLTY3NywxNTAzICs3OTYsMTE1IEBAIFdJTkRPVyB3IEFTICgK ICAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCiApOwogCi0tLSBWaWV3IGFuZCBwZ19nZXRf dmlld2RlZiB0ZXN0cy4KLUNSRUFURSBURU1QIFZJRVcgdl93aW5kb3cgQVMKLVNFTEVDVCBjb21w YW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywKLSBudGhfdmFsdWUodGRhdGUsIDIpIE9WRVIgdyBBUyBudGhfc2Vjb25k Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJQUwK LSBQQVRURVJOIChTVEFSVCBVUCsgRE9XTispCi0gREVGSU5FCi0gIFNUQVJUIEFTIFRSVUUsCi0g IFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCi0gIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNl KQotKTsKLQotU0VMRUNUICogRlJPTSB2X3dpbmRvdzsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZign dl93aW5kb3cnKTsKLQotLS0KLS0tIFBhdHRlcm4gb3B0aW1pemF0aW9uIHRlc3RzCi0tLSBWSUVX IHNob3dzIG9yaWdpbmFsIHBhdHRlcm4sIEVYUExBSU4gc2hvd3Mgb3B0aW1pemVkIHBhdHRlcm4K LS0tCi0KLS0tIFRlc3Q6IGR1cGxpY2F0ZSBhbHRlcm5hdGl2ZXMgcmVtb3ZhbCAoQSB8IEIgfCBB KSsgLT4gKEEgfCBCKSsKLUNSRUFURSBURU1QIFZJRVcgdl9vcHRfZHVwIEFTCi1TRUxFQ1QgY29t cGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9X IHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKChBIHwgQiB8IEEp KykKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA8PSAxMDAKLSk7 Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X2R1cCcpOyAgLS0gb3JpZ2luYWw6ICgoYSB8 IGIgfCBhKSspCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfZHVwOyAg LS0gb3B0aW1pemVkOiAoKGEgfCBiKSspCi0KLS0tIFRlc3Q6IGR1cGxpY2F0ZSBncm91cCByZW1v dmFsICgoQSB8IEIpKyB8IChBIHwgQikrKSAtPiAoQSB8IEIpKwotQ1JFQVRFIFRFTVAgVklFVyB2 X29wdF9kdXBfZ3JvdXAgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCop IE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBh bnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJ TklUSUFMCi0gUEFUVEVSTiAoKEEgfCBCKSsgfCAoQSB8IEIpKykKLSBERUZJTkUKLSAgQSBBUyBw cmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA8PSAxMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdk ZWYoJ3Zfb3B0X2R1cF9ncm91cCcpOyAgLS0gb3JpZ2luYWw6ICgoYSB8IGIpKyB8IChhIHwgYikr KQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X2R1cF9ncm91cDsgIC0t IG9wdGltaXplZDogKChhIHwgYikrKQotCi0tLSBUZXN0OiBjb25zZWN1dGl2ZSB2YXJzIG1lcmdl IChBIEEgQSkgLT4gQXszfQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZSBBUwotU0VMRUNU IGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJ TkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJOIChBIEEgQSkK LSBERUZJTkUKLSAgQSBBUyBwcmljZSA+PSAxNDAgQU5EIHByaWNlIDw9IDE1MAotKTsKLVNFTEVD VCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2UnKTsgIC0tIG9yaWdpbmFsOiAoYSBhIGEpCi1F WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2U7ICAtLSBvcHRpbWl6 ZWQ6IGF7M30KLQotLS0gVGVzdDogcXVhbnRpZmllZCB2YXJzIG1lcmdlIChBIEErIEEpIC0+IEF7 Myx9Ci1DUkVBVEUgVEVNUCBWSUVXIHZfb3B0X21lcmdlX3F1YW50IEFTCi1TRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcg QVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKEEgQSsgQSkKLSBERUZJ TkUKLSAgQSBBUyBwcmljZSA+IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRf bWVyZ2VfcXVhbnQnKTsgIC0tIG9yaWdpbmFsOiAoYSBhKyBhKQotRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHZfb3B0X21lcmdlX3F1YW50OyAgLS0gb3B0aW1pemVkOiBhezMsfQot Ci0tLSBUZXN0OiBtZXJnZSB0d28gdW5ib3VuZGVkIChBKyBBKykgLT4gQXsyLH0KLUNSRUFURSBU RU1QIFZJRVcgdl9vcHRfbWVyZ2VfdW5ib3VuZGVkIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUs IHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBB UlRJVElPTiBCWSBjb21wYW55CistLSBJR05PUkUgTlVMTFMgKyBmaXJzdF92YWx1ZSB3aGVyZSBm aXJzdCB2YWx1ZSBpbiByZWR1Y2VkIGZyYW1lIGlzIE5VTEwKK1dJVEggZGF0YSBBUyAoCisgU0VM RUNUICogRlJPTSAoVkFMVUVTCisgICgxLCBOVUxMKSwgKDIsIE5VTEwpLCAoMywgMzApLCAoNCwg NDApCisgKSBBUyB0KGlkLCB2YWwpKQorU0VMRUNUIGlkLCB2YWwsCisgZmlyc3RfdmFsdWUodmFs KSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGZ2X2lnbnVsbCwKKyBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZGF0YQorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCiAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKEErIEEr KQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgUEFUVEVSTiAoQSspCisgREVGSU5FIEEgQVMgVFJVRQogKTsKLVNFTEVDVCBwZ19n ZXRfdmlld2RlZigndl9vcHRfbWVyZ2VfdW5ib3VuZGVkJyk7ICAtLSBvcmlnaW5hbDogKGErIGEr KQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X21lcmdlX3VuYm91bmRl ZDsgIC0tIG9wdGltaXplZDogYXsyLH0KIAotLS0gVGVzdDogbWVyZ2Ugd2l0aCB6ZXJvLW1pbiAo QSogQSspIC0+IEErCi1DUkVBVEUgVEVNUCBWSUVXIHZfb3B0X21lcmdlX3N0YXIgQVMKLVNFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBX SU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKKy0tIElHTk9SRSBOVUxMUyArIGFs bCB2YWx1ZXMgTlVMTCBpbiByZWR1Y2VkIGZyYW1lCitXSVRIIGRhdGEgQVMgKAorIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAoMSwgTlVMTCksICgyLCBOVUxMKSwgKDMsIE5VTEwpCisgKSBBUyB0 KGlkLCB2YWwpKQorU0VMRUNUIGlkLCB2YWwsCisgZmlyc3RfdmFsdWUodmFsKSBJR05PUkUgTlVM TFMgT1ZFUiB3IEFTIGZ2X2lnbnVsbCwKKyBsYXN0X3ZhbHVlKHZhbCkgSUdOT1JFIE5VTExTIE9W RVIgdyBBUyBsdl9pZ251bGwsCisgY291bnQoKikgT1ZFUiB3CitGUk9NIGRhdGEKK1dJTkRPVyB3 IEFTICgKKyBPUkRFUiBCWSBpZAogIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJOIChBKiBBKykKLSBERUZJTkUKLSAgQSBB UyBwcmljZSA+IDEwMAorIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4g KEErKQorIERFRklORSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0 X21lcmdlX3N0YXInKTsgIC0tIG9yaWdpbmFsOiAoYSogYSspCi1FWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2Vfc3RhcjsgIC0tIG9wdGltaXplZDogYSsKIAotLS0g VGVzdDogY29tcGxleCBtZXJnZSAoQSBBezJ9IEErIEF7M30pIC0+IEF7Nyx9Ci1DUkVBVEUgVEVN UCBWSUVXIHZfb3B0X21lcmdlX2NvbXBsZXggQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJp Y2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElU SU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSBBezJ9IEErIEF7M30pCi0gREVGSU5FCi0g IEEgQVMgcHJpY2UgPiAxMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X21lcmdl X2NvbXBsZXgnKTsgIC0tIG9yaWdpbmFsOiAoYSBhezJ9IGErIGF7M30pCi1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2VfY29tcGxleDsgIC0tIG9wdGltaXplZDog YXs3LH0KKy0tCistLSBsYXN0X3ZhbHVlIElHTk9SRSBOVUxMUyB3aXRoIHJlZHVjZWQgZnJhbWUg Y29udGFpbmluZyBhbGwgTlVMTHMKKy0tIEV4ZXJjaXNlcyBpZ25vcmVudWxsc19nZXRmdW5jYXJn aW5mcmFtZSBTRUVLX1RBSUwgb3V0LW9mLWZyYW1lIHBhdGgKKy0tIHdoZW4gbm90bnVsbF9yZWxw b3MgPj0gbnVtX3JlZHVjZWRfZnJhbWUuCistLQorQ1JFQVRFIFRFTVAgVEFCTEUgcnByX251bGx2 YWwgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfbnVsbHZhbCBWQUxVRVMgKDEs IDEwKSwgKDIsIE5VTEwpLCAoMywgTlVMTCksICg0LCAyMCk7CiAKLS0tIFRlc3Q6IGdyb3VwIG1l cmdlICgoQSBCKSAoQSBCKSspIC0+IChBIEIpezIsfQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9t ZXJnZV9ncm91cCBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZF UiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQot IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotIElOSVRJ QUwKLSBQQVRURVJOICgoQSBCKSAoQSBCKSspCi0gREVGSU5FCi0gIEEgQVMgcHJpY2UgPiAxMDAs Ci0gIEIgQVMgcHJpY2UgPD0gMTAwCitTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICBsYXN0X3ZhbHVl KHZhbCkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsdl9pZ251bGwsCisgICAgICAgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbnVsbHZhbAorV0lORE9XIHcgQVMgKAorICBPUkRFUiBC WSBpZAorICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgIFBBVFRFUk4gKEEgQispCisgIERF RklORQorICAgIEEgQVMgdmFsIElTIE5PVCBOVUxMLAorICAgIEIgQVMgdmFsIElTIE5VTEwKICk7 Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X21lcmdlX2dyb3VwJyk7ICAtLSBvcmlnaW5h bDogKChhIGIpIChhIGIpKykKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29w dF9tZXJnZV9ncm91cDsgIC0tIGV4cGVjdGVkOiAoYSBiKXsyLH0KIAotLS0gVGVzdDogZ3JvdXAg bWVyZ2UgQSBCIChBIEIpKyAtPiAoQSBCKXsyLH0KLUNSRUFURSBURU1QIFZJRVcgdl9vcHRfbWVy Z2VfZ3JvdXAyIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVS IHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0g Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElB TAotIFBBVFRFUk4gKEEgQiAoQSBCKSspCi0gREVGSU5FCi0gIEEgQVMgcHJpY2UgPiAxMDAsCi0g IEIgQVMgcHJpY2UgPD0gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X29wdF9tZXJn ZV9ncm91cDInKTsgIC0tIG9yaWdpbmFsOiAoYSBiIChhIGIpKykKLUVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSB2X29wdF9tZXJnZV9ncm91cDI7ICAtLSBleHBlY3RlZDogKGEgYil7 Mix9CistLQorLS0gTlVMTCBoYW5kbGluZworLS0KIAotLS0gVGVzdDogZ3JvdXAgbWVyZ2UgKEEg QikgKEEgQikrIChBIEIpIC0+IChBIEIpezMsfQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJn ZV9ncm91cDMgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIg dwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFM Ci0gUEFUVEVSTiAoKEEgQikgKEEgQikrIChBIEIpKQotIERFRklORQotICBBIEFTIHByaWNlID4g MTAwLAotICBCIEFTIHByaWNlIDw9IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9v cHRfbWVyZ2VfZ3JvdXAzJyk7ICAtLSBvcmlnaW5hbDogKChhIGIpIChhIGIpKyAoYSBiKSkKLUVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9tZXJnZV9ncm91cDM7ICAtLSBl eHBlY3RlZDogKGEgYil7Myx9CitDUkVBVEUgVEVNUCBUQUJMRSBzdG9ja19udWxsIChjb21wYW55 IFRFWFQsIHRkYXRlIERBVEUsIHByaWNlIElOVEVHRVIpOworSU5TRVJUIElOVE8gc3RvY2tfbnVs bCBWQUxVRVMgKCdjMScsICcyMDIzLTA3LTAxJywgMTAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrX251 bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0wMicsIE5VTEwpOyAgLS0gTlVMTCBpbiBtaWRkbGUK K0lOU0VSVCBJTlRPIHN0b2NrX251bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0wMycsIDIwMCk7 CitJTlNFUlQgSU5UTyBzdG9ja19udWxsIFZBTFVFUyAoJ2MxJywgJzIwMjMtMDctMDQnLCAxNTAp OwogCi0tLSBUZXN0OiBncm91cCBtZXJnZSBBIEIgQSBCIChBIEIpKyBBIEIgQSBCIC0+IChBIEIp ezUsfQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV9ncm91cDQgQVMKLVNFTEVDVCBjb21w YW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cg dyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSBCIEEgQiAoQSBC KSsgQSBCIEEgQikKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA8 PSAxMDAKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdyBBUyBt YXRjaF9jb3VudAorRlJPTSBzdG9ja19udWxsCitXSU5ET1cgdyBBUyAoCisgIFBBUlRJVElPTiBC WSBjb21wYW55CisgIE9SREVSIEJZIHRkYXRlCisgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICBQQVRURVJOIChTVEFSVCBVUCBET1dOKQorICBERUZJ TkUgU1RBUlQgQVMgVFJVRSwgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwgRE9XTiBBUyBwcmlj ZSA8CitQUkVWKHByaWNlKQogKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbWVyZ2Vf Z3JvdXA0Jyk7ICAtLSBvcmlnaW5hbDogKGEgYiBhIGIgKGEgYikrIGEgYiBhIGIpCi1FWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfbWVyZ2VfZ3JvdXA0OyAgLS0gZXhwZWN0 ZWQ6IChhIGIpezUsfQogCi0tLSBUZXN0OiBncm91cCBtZXJnZSBDIEEgQiAoQSBCKSsgQSBCIEMg LT4gQyAoQSBCKXszLH0gQwotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV9ncm91cDUgQVMK LVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3Rv Y2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAo QyBBIEIgKEEgQikrIEEgQiBDKQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBCIEFT IHByaWNlIDw9IDEwMCwKLSAgQyBBUyBwcmljZSA+IDIwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmll d2RlZigndl9vcHRfbWVyZ2VfZ3JvdXA1Jyk7ICAtLSBvcmlnaW5hbDogKGMgYSBiIChhIGIpKyBh IGIgYykKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9tZXJnZV9ncm91 cDU7ICAtLSBleHBlY3RlZDogYyAoYSBiKXszLH0gYworLS0gQ29uc2VjdXRpdmUgTlVMTHM6IFBS RVYgbmF2aWdhdGVzIHRocm91Z2ggTlVMTCB2YWx1ZXMKK0NSRUFURSBURU1QIFRBQkxFIHJwcl9j b25zZWNfbnVsbCAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9jb25zZWNfbnVs bCBWQUxVRVMKKyAoMSwgMTAwKSwgKDIsIE5VTEwpLCAoMywgTlVMTCksICg0LCBOVUxMKSwgKDUs IDIwMCksICg2LCAzMDApOwogCi0tLSBUZXN0OiBjb25zZWN1dGl2ZSBHUk9VUCBtZXJnZSAoQSBC KSsgKEEgQikrIC0+IChBIEIpezIsfQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9tZXJnZV9jb25z ZWNfZ3JvdXAgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIg dwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKKy0t IFBSRVYodmFsKSBJUyBOVUxMIHN1Y2NlZWRzIGZvciBib3RoIG51bGxfc2xvdCAoZmlyc3Qgcm93 KSBhbmQgYWN0dWFsIE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CitGUk9NIHJwcl9jb25zZWNfbnVsbAorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCiAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAot IFBBVFRFUk4gKChBIEIpKyAoQSBCKSspCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgUEFUVEVSTiAoQSBCKyBDKQogIERFRklORQotICBBIEFTIHByaWNlID4gMTAwLAotICBCIEFT IHByaWNlIDw9IDEwMAorICBBIEFTIHZhbCBJUyBOVUxMLAorICBCIEFTIHZhbCBJUyBOVUxMIEFO RCBQUkVWKHZhbCkgSVMgTlVMTCwKKyAgQyBBUyB2YWwgSVMgTk9UIE5VTEwKICk7Ci1TRUxFQ1Qg cGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X21lcmdlX2NvbnNlY19ncm91cCcpOyAgLS0gb3JpZ2luYWw6 ICgoYSBiKSsgKGEgYikrKQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0 X21lcmdlX2NvbnNlY19ncm91cDsgIC0tIGV4cGVjdGVkOiAoYSBiKXsyLH0KIAotLS0gVGVzdDog Y29uc2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2l0aCBkaWZmZXJlbnQgcXVhbnRpZmllcnMgKEEgQil7 Mn0gKEEgQil7M30gLT4gKEEgQil7NX0KLUNSRUFURSBURU1QIFZJRVcgdl9vcHRfbWVyZ2VfY29u c2VjX2dyb3VwMiBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZF UiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQor LS0gTkVYVCh2YWwpIHRocm91Z2ggY29uc2VjdXRpdmUgTlVMTHMKK1NFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9jb25zZWNfbnVsbAorV0lORE9XIHcgQVMg KAorIE9SREVSIEJZIGlkCiAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKChBIEIpezJ9IChBIEIpezN9KQorIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4gKEEgQisgQykKICBERUZJTkUKLSAg QSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA8PSAxMDAKKyAgQSBBUyB2YWwgSVMgTk9U IE5VTEwsCisgIEIgQVMgdmFsIElTIE5VTEwgQU5EIE5FWFQodmFsKSBJUyBOVUxMLAorICBDIEFT IHZhbCBJUyBOVUxMIEFORCBORVhUKHZhbCkgSVMgTk9UIE5VTEwKICk7Ci1TRUxFQ1QgcGdfZ2V0 X3ZpZXdkZWYoJ3Zfb3B0X21lcmdlX2NvbnNlY19ncm91cDInKTsgIC0tIG9yaWdpbmFsOiAoKGEg Yil7Mn0gKGEgYil7M30pCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRf bWVyZ2VfY29uc2VjX2dyb3VwMjsgIC0tIGV4cGVjdGVkOiAoYSBiKXs1fQogCi0tLSBUZXN0IHtu fSBxdWFudGlmaWVyIGRpc3BsYXkKLUNSRUFURSBURU1QIFZJRVcgdl9xdWFudGlmaWVyX24gQVMK LVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3Rv Y2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAo QXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmll d2RlZigndl9xdWFudGlmaWVyX24nKTsKLQotLS0gVGVzdCB7bix9IHF1YW50aWZpZXIgZGlzcGxh eQotQ1JFQVRFIFRFTVAgVklFVyB2X3F1YW50aWZpZXJfbl9wbHVzIEFTCi1TRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcg QVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBBVFRFUk4gKEF7Mix9KQotIERFRklO RQotICBBIEFTIHByaWNlID4gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X3F1YW50 aWZpZXJfbl9wbHVzJyk7Ci0KLS0tIFRlc3Q6IGZsYXR0ZW4gbmVzdGVkIFNFUSAoQSAoQiBDKSkg LT4gQSBCIEMKLUNSRUFURSBURU1QIFZJRVcgdl9vcHRfZmxhdHRlbl9zZXEgQVMKLVNFTEVDVCBj b21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5E T1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSAoQiBDKSkK LSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMCwKLSAgQiBBUyBwcmljZSA+IDE1MCwKLSAgQyBB UyBwcmljZSA8IDE1MAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfZmxhdHRlbl9z ZXEnKTsgIC0tIG9yaWdpbmFsOiAoYSAoYiBjKSkKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSB2X29wdF9mbGF0dGVuX3NlcTsgIC0tIG9wdGltaXplZDogYSBiIGMKLQotLS0gVGVz dDogZmxhdHRlbiBuZXN0ZWQgQUxUIChBIHwgKEIgfCBDKSkgLT4gKEEgfCBCIHwgQykKLUNSRUFU RSBURU1QIFZJRVcgdl9vcHRfZmxhdHRlbl9hbHQgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwg cHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFS VElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKEEgfCAoQiB8IEMpKSspCi0gREVGSU5F Ci0gIEEgQVMgcHJpY2UgPiAyMDAsCi0gIEIgQVMgcHJpY2UgPiAxMDAsCi0gIEMgQVMgcHJpY2Ug PD0gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X29wdF9mbGF0dGVuX2FsdCcpOyAg LS0gb3JpZ2luYWw6ICgoYSB8IChiIHwgYykpKykKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSB2X29wdF9mbGF0dGVuX2FsdDsgIC0tIG9wdGltaXplZDogKChhIHwgYiB8IGMpKSsK LQotLS0gVGVzdDogdW53cmFwIEdST1VQezEsMX0gKChBKSkgLT4gQQotQ1JFQVRFIFRFTVAgVklF VyB2X29wdF91bndyYXBfZ3JvdXAgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNv dW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZ IGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKChBKSkpCi0gREVGSU5FCi0gIEEgQVMgcHJpY2UgPiAx MDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X3Vud3JhcF9ncm91cCcpOyAgLS0g b3JpZ2luYWw6ICgoKGEpKSkKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29w dF91bndyYXBfZ3JvdXA7ICAtLSBvcHRpbWl6ZWQ6IGEKLQotLS0gVGVzdDogcXVhbnRpZmllciBt dWx0aXBsaWNhdGlvbiAoQXsyfSl7M30gLT4gQXs2fQotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9x dWFudF9tdWx0IEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVS IHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0g Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElB TAotIFBBVFRFUk4gKChBezJ9KXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMAotKTsK LVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfcXVhbnRfbXVsdCcpOyAgLS0gb3JpZ2luYWw6 ICgoYXsyfSl7M30pCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdl9vcHRfcXVh bnRfbXVsdDsgIC0tIG9wdGltaXplZDogYXs2fQotCi0tLSBUZXN0OiBxdWFudGlmaWVyIG11bHRp cGxpY2F0aW9uIChBezIsNH0pezN9IC0+IEF7NiwxMn0KLUNSRUFURSBURU1QIFZJRVcgdl9vcHRf cXVhbnRfbXVsdF9yYW5nZSBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQo KikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29t cGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwot IElOSVRJQUwKLSBQQVRURVJOICgoQXsyLDR9KXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+ IDEwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfcXVhbnRfbXVsdF9yYW5nZScp OyAgLS0gb3JpZ2luYWw6ICgoYXsyLDR9KXszfSkKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSB2X29wdF9xdWFudF9tdWx0X3JhbmdlOyAgLS0gb3B0aW1pemVkOiBhezYsMTJ9Ci0K LS0tIFRlc3Q6IHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24gYmxvY2tlZCAoQXsyfSl7Myw1fSAt PiBubyBjaGFuZ2UKLS0tIG91dGVyIHJhbmdlIHdpdGggY2hpbGQgZXhhY3QgPiAxIGNhdXNlcyBn YXBzICg2LDgsMTAgbm90IDYsNyw4LDksMTApCi1DUkVBVEUgVEVNUCBWSUVXIHZfb3B0X3F1YW50 X211bHRfcmFuZ2UyIEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBP VkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55 Ci0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5J VElBTAotIFBBVFRFUk4gKChBezJ9KXszLDV9KQotIERFRklORQotICBBIEFTIHByaWNlID4gMTAw Ci0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X29wdF9xdWFudF9tdWx0X3JhbmdlMicpOyAg LS0gb3JpZ2luYWw6ICgoYXsyfSl7Myw1fSkKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSB2X29wdF9xdWFudF9tdWx0X3JhbmdlMjsgIC0tIE5PVCBvcHRpbWl6ZWQ6IChhezJ9KXsz LDV9Ci0KLS0tIFRlc3Q6IHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24gYmxvY2tlZCBieSBJTkYg KEErKXszfSAtPiBubyBjaGFuZ2UKLUNSRUFURSBURU1QIFZJRVcgdl9vcHRfcXVhbnRfbXVsdF9p bmYgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdwotIEZS T00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkKLSBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFU VEVSTiAoKEErKXszfSkKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA+IDEwMAotKTsKLVNFTEVDVCBw Z19nZXRfdmlld2RlZigndl9vcHRfcXVhbnRfbXVsdF9pbmYnKTsgIC0tIG9yaWdpbmFsOiAoKGEr KXszfSkKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9xdWFudF9tdWx0 X2luZjsgIC0tIG5vIG11bHRpcGx5OiAoYSspezN9Ci0KLS0tIFRlc3Q6IHVud3JhcCBzaW5nbGUt aXRlbSBBTFQgYWZ0ZXIgZHVwbGljYXRlIHJlbW92YWwgKEEgfCBBKSAtPiBBCi1DUkVBVEUgVEVN UCBWSUVXIHZfb3B0X3Vud3JhcF9hbHQgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9O IEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKEEgfCBBKSspCi0gREVGSU5FCi0gIEEgQVMgcHJp Y2UgPiAxMDAKLSk7Ci1TRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfb3B0X3Vud3JhcF9hbHQnKTsg IC0tIG9yaWdpbmFsOiAoKGEgfCBhKSspCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZS T00gdl9vcHRfdW53cmFwX2FsdDsgIC0tIG9wdGltaXplZDogYSsKLQotLS0gVGVzdDogR1JPVVB7 MSwxfSB0byBTRVEgd2l0aCBmbGF0dGVuICgoQSBCKShDIEQpKSAtPiBBIEIgQyBECi1DUkVBVEUg VEVNUCBWSUVXIHZfb3B0X2dyb3VwX3RvX3NlcSBBUwotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwgY291bnQoKikgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJU SVRJT04gQlkgY29tcGFueQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORwotIElOSVRJQUwKLSBQQVRURVJOICgoKEEgQikoQyBEKSkpCi0gREVGSU5FCi0g IEEgQVMgcHJpY2UgPiAyMDAsCi0gIEIgQVMgcHJpY2UgPiAxNTAsCi0gIEMgQVMgcHJpY2UgPiAx MDAsCi0gIEQgQVMgcHJpY2UgPD0gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X29w dF9ncm91cF90b19zZXEnKTsgIC0tIG9yaWdpbmFsOiAoKChhIGIpKGMgZCkpKQotRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X2dyb3VwX3RvX3NlcTsgIC0tIG9wdGltaXpl ZDogYSBiIGMgZAotCi0tLSBUZXN0OiBjb21iaW5lZCBjb25zZWN1dGl2ZSBHUk9VUCArIHByZWZp eCBtZXJnZSBBIEIgKEEgQikrIChBIEIpKyAtPiAoQSBCKXszLH0KLUNSRUFURSBURU1QIFZJRVcg dl9vcHRfY29tYmluZWRfbWVyZ2UgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNv dW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZ IGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoQSBCIChBIEIpKyAoQSBCKSspCi0gREVGSU5FCi0gIEEg QVMgcHJpY2UgPiAxMDAsCi0gIEIgQVMgcHJpY2UgPD0gMTAwCi0pOwotU0VMRUNUIHBnX2dldF92 aWV3ZGVmKCd2X29wdF9jb21iaW5lZF9tZXJnZScpOyAgLS0gb3JpZ2luYWw6IChhIGIgKGEgYikr IChhIGIpKykKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB2X29wdF9jb21iaW5l ZF9tZXJnZTsgIC0tIGV4cGVjdGVkOiAoYSBiKXszLH0KLQotLS0gVGVzdDogbmVzdGVkIEFMVCBw YXR0ZXJuIC0gYnVnIHJlcHJvZHVjdGlvbgotQ1JFQVRFIFRFTVAgVklFVyB2X29wdF9uZXN0ZWRf YWx0IEFTCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKLSBG Uk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gSU5JVElBTAotIFBB VFRFUk4gKCgoQSBCKSB8IEMpIEQgfCBBIEIgQykKLSBERUZJTkUKLSAgQSBBUyBwcmljZSA8PSAx MDAsCi0gIEIgQVMgcHJpY2UgPD0gMTUwLAotICBDIEFTIHByaWNlIDw9IDIwMCwKLSAgRCBBUyBw cmljZSA+IDIwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmlld2RlZigndl9vcHRfbmVzdGVkX2FsdCcp OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHZfb3B0X25lc3RlZF9hbHQ7Ci0K LS0tIFRlc3Q6IG5lc3RlZCBBTFQgd2l0aCB1bmJvdW5kZWQgLSBBKyBpbnNpZGUKLUNSRUFURSBU RU1QIFZJRVcgdl9vcHRfbmVzdGVkX2FsdDIgQVMKLVNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJp Y2UsIGNvdW50KCopIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElU SU9OIEJZIGNvbXBhbnkKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoKChBKyBCKSB8IEMpIEQgfCBBIEIgQykKLSBE RUZJTkUKLSAgQSBBUyBwcmljZSA8PSAxMDAsCi0gIEIgQVMgcHJpY2UgPD0gMTUwLAotICBDIEFT IHByaWNlIDw9IDIwMCwKLSAgRCBBUyBwcmljZSA+IDIwMAotKTsKLVNFTEVDVCBwZ19nZXRfdmll d2RlZigndl9vcHRfbmVzdGVkX2FsdDInKTsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSB2X29wdF9uZXN0ZWRfYWx0MjsKLQotLS0KLS0tIEVycm9yIGNhc2VzCi0tLQotCi0tLSBy b3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgbXVzdCBub3QgYXBwZWFyIG1vcmUg dGhhbiBvbmNlCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9X IHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gT1JERVIgQlkgdGRhdGUKLSBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFU VEVSTiAoU1RBUlQgVVArIERPV04rKQotIERFRklORQotICBTVEFSVCBBUyBUUlVFLAotICBVUCBB UyBwcmljZSA+IFBSRVYocHJpY2UpLAotICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSksCi0g IFVQIEFTIHByaWNlID4gUFJFVihwcmljZSkKLSk7Ci0KLS0tIHN1YnF1ZXJpZXMgaW4gREVGSU5F IGNsYXVzZSBhcmUgbm90IHN1cHBvcnRlZAotU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Ci0gRlJP TSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkgY29tcGFueQotIE9SREVSIEJZ IHRkYXRlCi0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H Ci0gSU5JVElBTAotIFBBVFRFUk4gKFNUQVJUIExPV1BSSUNFKQotIERFRklORQotICBTVEFSVCBB UyBUUlVFLAotICBMT1dQUklDRSBBUyBwcmljZSA8IChTRUxFQ1QgMTAwKQotKTsKLQotLS0gYWdn cmVnYXRlcyBpbiBERUZJTkUgY2xhdXNlIGFyZSBub3Qgc3VwcG9ydGVkCi1TRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBj b21wYW55Ci0gT1JERVIgQlkgdGRhdGUKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKLSBJTklUSUFMCi0gUEFUVEVSTiAoU1RBUlQgTE9XUFJJQ0UpCi0g REVGSU5FCi0gIFNUQVJUIEFTIFRSVUUsCi0gIExPV1BSSUNFIEFTIHByaWNlIDwgY291bnQoKikK LSk7Ci0KLS0tIEZSQU1FIG11c3Qgc3RhcnQgYXQgY3VycmVudCByb3cgd2hlbiByb3cgcGF0dGVy biByZWNvZ25pdGlvbiBpcyB1c2VkCi1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKLSBGUk9NIHN0 b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gT1JERVIgQlkgdGRh dGUKLSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExP V0lORwotIElOSVRJQUwKLSBQQVRURVJOIChTVEFSVCBVUCsgRE9XTispCi0gREVGSU5FCi0gIFNU QVJUIEFTIFRSVUUsCi0gIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCi0gIERPV04gQVMgcHJp Y2UgPCBQUkVWKHByaWNlKQotKTsKLQotLS0gRVhDTFVERSBpcyBub3QgcGVybWl0dGVkCi1TRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0 X3ZhbHVlKHByaWNlKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAotIFBBUlRJ VElPTiBCWSBjb21wYW55Ci0gT1JERVIgQlkgdGRhdGUKLSBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBFWENMVURFIENVUlJFTlQgUk9XCi0gSU5JVElB TAotIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKLSBERUZJTkUKLSAgU1RBUlQgQVMgVFJVRSwK LSAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKLSAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJp Y2UpCi0pOwotCi0tLSBTRUVLIGlzIG5vdCBzdXBwb3J0ZWQKLVNFTEVDVCBjb21wYW55LCB0ZGF0 ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9W RVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9OIEJZIGNvbXBhbnkK LSBPUkRFUiBCWSB0ZGF0ZQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORwotIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSBTRUVLCi0gUEFUVEVS TiAoU1RBUlQgVVArIERPV04rKQotIERFRklORQotICBTVEFSVCBBUyBUUlVFLAotICBVUCBBUyBw cmljZSA+IFBSRVYocHJpY2UpLAotICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKLSk7Ci0K LS0tIFBSRVYncyBhcmd1bWVudCBtdXN0IGhhdmUgYXQgbGVhc3QgMSBjb2x1bW4gcmVmZXJlbmNl Ci1TRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKLSBGUk9NIHN0b2NrCi0gV0lORE9XIHcgQVMgKAot IFBBUlRJVElPTiBCWSBjb21wYW55Ci0gT1JERVIgQlkgdGRhdGUKLSBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCi0gSU5JVElBTAotIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKLSBERUZJTkUKLSAg U1RBUlQgQVMgVFJVRSwKLSAgVVAgQVMgcHJpY2UgPiBQUkVWKDEpLAotICBET1dOIEFTIHByaWNl IDwgUFJFVigxKQotKTsKLQotLS0gVW5zdXBwb3J0ZWQgcXVhbnRpZmllcgotU0VMRUNUIGNvbXBh bnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShw cmljZSkgT1ZFUiB3Ci0gRlJPTSBzdG9jawotIFdJTkRPVyB3IEFTICgKLSBQQVJUSVRJT04gQlkg Y29tcGFueQotIE9SREVSIEJZIHRkYXRlCi0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCi0gQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwotIElOSVRJ QUwKLSBQQVRURVJOIChTVEFSVCBVUH4gRE9XTispCi0gREVGSU5FCi0gIFNUQVJUIEFTIFRSVUUs Ci0gIFVQIEFTIHByaWNlID4gUFJFVigxKSwKLSAgRE9XTiBBUyBwcmljZSA8IFBSRVYoMSkKLSk7 Ci0KLS0tIFBSRVYoMSkgbWlzc2luZyBjb2x1bW4gcmVmZXJlbmNlIChlcnJvcikKLVNFTEVDVCBj b21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFs dWUocHJpY2UpIE9WRVIgdwotIEZST00gc3RvY2sKLSBXSU5ET1cgdyBBUyAoCi0gUEFSVElUSU9O IEJZIGNvbXBhbnkKLSBPUkRFUiBCWSB0ZGF0ZQotIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwotIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSBJ TklUSUFMCi0gUEFUVEVSTiAoU1RBUlQgVVArPyBET1dOKykKLSBERUZJTkUKLSAgU1RBUlQgQVMg VFJVRSwKLSAgVVAgQVMgcHJpY2UgPiBQUkVWKDEpLAotICBET1dOIEFTIHByaWNlIDwgUFJFVigx KQotKTsKLQotLS0gTWF4aW11bSBwYXR0ZXJuIHZhcmlhYmxlcyBpcyAyNTEgKFJQUl9WQVJJRF9N QVgpCi0KLS0tIEVycm9yOiAyNTIgdmFyaWFibGVzIGV4Y2VlZHMgbGltaXQgb2YgMjUxCi1ETyAk JAotREVDTEFSRQotICAgIHBhdHRlcm5fdmFycyB0ZXh0OwotICAgIGRlZmluZV92YXJzIHRleHQ7 Ci0gICAgcXVlcnkgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUIHN0cmluZ19hZ2coJ3YnIHx8IGxw YWQoaTo6dGV4dCwgMywgJzAnKSwgJyAnKSwKLSAgICAgICAgICAgc3RyaW5nX2FnZygndicgfHwg bHBhZChpOjp0ZXh0LCAzLCAnMCcpIHx8ICcgQVMgVFJVRScsICcsICcpCi0gICAgSU5UTyBwYXR0 ZXJuX3ZhcnMsIGRlZmluZV92YXJzCi0gICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjUyKSBp OwotCi0gICAgcXVlcnkgOj0gZm9ybWF0KCdTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgMSBBUyB4KSB0 IFdJTkRPVyB3IEFTICgKLSAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCi0gICAgICAgIFBBVFRFUk4gKCVzKQotICAgICAgICBERUZJTkUgJXMp JywgcGF0dGVybl92YXJzLCBkZWZpbmVfdmFycyk7Ci0KLSAgICBFWEVDVVRFIHF1ZXJ5OwotRU5E OwotJCQ7Ci0KLS0tIEVycm9yOiAyNTMgdmFyaWFibGVzIGV4Y2VlZHMgbGltaXQgb2YgMjUxCi1E TyAkJAotREVDTEFSRQotICAgIHBhdHRlcm5fdmFycyB0ZXh0OwotICAgIGRlZmluZV92YXJzIHRl eHQ7Ci0gICAgcXVlcnkgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUIHN0cmluZ19hZ2coJ3YnIHx8 IGxwYWQoaTo6dGV4dCwgMywgJzAnKSwgJyAnKSwKLSAgICAgICAgICAgc3RyaW5nX2FnZygndicg fHwgbHBhZChpOjp0ZXh0LCAzLCAnMCcpIHx8ICcgQVMgVFJVRScsICcsICcpCi0gICAgSU5UTyBw YXR0ZXJuX3ZhcnMsIGRlZmluZV92YXJzCi0gICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjUz KSBpOwotCi0gICAgcXVlcnkgOj0gZm9ybWF0KCdTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgMSBBUyB4 KSB0IFdJTkRPVyB3IEFTICgKLSAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgICAgIFBBVFRFUk4gKCVzKQotICAgICAgICBERUZJTkUg JXMpJywgcGF0dGVybl92YXJzLCBkZWZpbmVfdmFycyk7Ci0KLSAgICBFWEVDVVRFIHF1ZXJ5Owot RU5EOwotJCQ7Ci0KLSAgICBDUkVBVEUgVEVNUCBUQUJMRSBzdG9ja19udWxsIChjb21wYW55IFRF WFQsIHRkYXRlIERBVEUsIHByaWNlIElOVEVHRVIpOwotICAgIElOU0VSVCBJTlRPIHN0b2NrX251 bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0wMScsIDEwMCk7Ci0gICAgSU5TRVJUIElOVE8gc3Rv Y2tfbnVsbCBWQUxVRVMgKCdjMScsICcyMDIzLTA3LTAyJywgTlVMTCk7ICAtLSBOVUxMIGluIG1p ZGRsZQotICAgIElOU0VSVCBJTlRPIHN0b2NrX251bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0w MycsIDIwMCk7Ci0gICAgSU5TRVJUIElOVE8gc3RvY2tfbnVsbCBWQUxVRVMgKCdjMScsICcyMDIz LTA3LTA0JywgMTUwKTsKLQotICAgIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50 KCopIE9WRVIgdyBBUyBtYXRjaF9jb3VudAotICAgIEZST00gc3RvY2tfbnVsbAotICAgIFdJTkRP VyB3IEFTICgKLSAgICAgIFBBUlRJVElPTiBCWSBjb21wYW55Ci0gICAgICBPUkRFUiBCWSB0ZGF0 ZQotICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H Ci0gICAgICBQQVRURVJOIChTVEFSVCBVUCBET1dOKQotICAgICAgREVGSU5FIFNUQVJUIEFTIFRS VUUsIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksIERPV04gQVMgcHJpY2UgPAotUFJFVihwcmlj ZSkKLSAgICApOwotCi0KLS0tIE92ZXJsYXBwaW5nIG1hdGNoIHRlc3RzIChyZXF1aXJlcyBtdWx0 aS1jb250ZXh0IGZvciBjb3JyZWN0IGJlaGF2aW9yKQotLS0gVXNpbmcgYXJyYXkgZmxhZ3M6ICdY JyA9IEFOWShmbGFncykgZm9yIG11bHRpLVRSVUUgc3VwcG9ydAotCi0tLSBUZXN0IDE6IEEgQiBD IEQgRSB8IEIgQyBEIHwgQyBEIEUgRiAtIHRocmVlIG92ZXJsYXBwaW5nIHBhdHRlcm5zCi0tLSBE aWZmZXJlbnQgZW5kIHBvaW50czogQiBDIEQgKDQpLCBBIEIgQyBEIEUgKDUpLCBDIEQgRSBGICg2 KQotV0lUSCB0ZXN0X292ZXJsYXAxIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAg ICgzLCBBUlJBWVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAgICAoNSwg QVJSQVlbJ0UnXSksCi0gICAgICAgICg2LCBBUlJBWVsnRiddKQotICAgICkgQVMgdChpZCwgZmxh Z3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3Rfb3Zl cmxhcDEKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVwotICAgIFBBVFRFUk4gKEEgQiBDIEQgRSB8IEIgQyBEIHwgQyBEIEUgRikK LSAgICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKLSAgICAg ICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAotICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncyks Ci0gICAgICAgIEYgQVMgJ0YnID0gQU5ZKGZsYWdzKQotKTsKLQotV0lUSCB0ZXN0X292ZXJsYXAx IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10p LAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJBWVsnQyddKSwKLSAg ICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ0UnXSksCi0gICAgICAg ICg2LCBBUlJBWVsnRiddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZs YWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3Rfb3ZlcmxhcDEKLVdJTkRPVyB3IEFTICgK LSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQQVRU RVJOIChBIEIgQyBEIEUgfCBCIEMgRCB8IEMgRCBFIEYpCi0gICAgREVGSU5FCi0gICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAg ICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdz KSwKLSAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBGIEFTICdGJyA9IEFO WShmbGFncykKLSk7Ci0tLSBQQVNUIExBU1Q6IG9ubHkgb25lIG1hdGNoCi0tLSBUTyBORVhUIFJP VyB3aXRoIG11bHRpLWNvbnRleHQ6IHRocmVlIG1hdGNoZXMKLS0tICAgUm93IDE6IEEgQiBDIEQg RSAoMS01KQotLS0gICBSb3cgMjogQiBDIEQgKDItNCkgPC0gZW5kcyBmaXJzdCEKLS0tICAgUm93 IDM6IEMgRCBFIEYgKDMtNikgPC0gZW5kcyBsYXN0IQotCi0tLSBUZXN0IDFiOiBMb25nZXIgcGF0 dGVybiBGQUlMUywgc2hvcnRlciBwYXR0ZXJuIHNob3VsZCBzdXJ2aXZlCi0tLSBQYXR0ZXJuOiBB KyBCIEMgRCBFIHwgQisgQwotLS0gQSsgQiBDIEQgRSBmYWlscyAobm8gRSBmb3VuZCBpbiBzZXF1 ZW5jZSkKLS0tIEIrIEMgbWF0Y2hlcyBhdCByb3dzIDItMwotLS0gUmVzdWx0OiBtYXRjaCAyLTMg KEIrIEMpCi1XSVRIIHRlc3Rfb3ZlcmxhcDFiIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0g ICAgICAgICgzLCBBUlJBWVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAg ICAoNSwgQVJSQVlbJ1gnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBm bGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0ZXN0X292ZXJsYXAxYgotV0lORE9XIHcgQVMg KAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAg UEFUVEVSTiAoQSsgQiBDIEQgRSB8IEIrIEMpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBD IEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKLSAg ICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpCi0pOwotCi0tLSBUZXN0IDI6IEEgQisgQyB8IEIr IEQgLSBsb25nIEIgc2VxdWVuY2Ugd2l0aCBkaWZmZXJlbnQgZW5kaW5ncwotV0lUSCB0ZXN0X292 ZXJsYXAyIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsICBBUlJB WVsnQSddKSwKLSAgICAgICAgKDIsICBBUlJBWVsnQiddKSwKLSAgICAgICAgKDMsICBBUlJBWVsn QiddKSwKLSAgICAgICAgKDQsICBBUlJBWVsnQiddKSwKLSAgICAgICAgKDUsICBBUlJBWVsnQidd KSwKLSAgICAgICAgKDYsICBBUlJBWVsnQyddKSwKLSAgICAgICAgKDcsICBBUlJBWVsnQiddKSwK LSAgICAgICAgKDgsICBBUlJBWVsnQiddKSwKLSAgICAgICAgKDksICBBUlJBWVsnQiddKSwKLSAg ICAgICAgKDEwLCBBUlJBWVsnRCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1Qg aWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3Rfb3ZlcmxhcDIKLVdJTkRPVyB3 IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAg ICBQQVRURVJOIChBIEIrIEMgfCBCKyBEKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBB UyAnQycgPSBBTlkoZmxhZ3MpLAotICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKLSk7Ci0t LSBDdXJyZW50IHJlc3VsdCAoY29ycmVjdCk6Ci0tLSAgIFJvdyAxOiBBIEIrIEMgKDEtNikKLS0t ICAgUm93IDctOTogQisgRCAoNy0xMCwgOC0xMCwgOS0xMCkKLS0tIE5vdGU6IFJvdyAyLTYgY2Fu bm90IG1hdGNoIEIrIEQgYmVjYXVzZSBSb3cgNiBpcyBDLCBub3QgRAotLS0gV2l0aCBhYnNvcnB0 aW9uOiA4LTEwIGFuZCA5LTEwIHdvdWxkIGJlIGFic29yYmVkIGJ5IDctMTAgKGVhcmxpZXIgY29u dGV4dCBjb3ZlcnMgbGF0ZXIpCi0KLS0tIFRlc3QgMzogR3JlZWR5IHF1YW50aWZpZXIgd2l0aCBs YXRlIGZhaWx1cmUgLSBBIEIgQysgRCB8IEEgQgotLS0gUGF0dGVybiBleHBlY3RzIEQgYWZ0ZXIg QyssIGJ1dCBFIGNvbWVzIGluc3RlYWQgKCJiZXRyYXlhbCIpCi1XSVRIIHRlc3RfYmV0cmF5YWwg QVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSks Ci0gICAgICAgICgyLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDMsIEFSUkFZWydDJ10pLAotICAg ICAgICAoNCwgQVJSQVlbJ0MnXSksCi0gICAgICAgICg1LCBBUlJBWVsnQyddKSwKLSAgICAgICAg KDYsIEFSUkFZWydFJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxh Z3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gdGVzdF9iZXRyYXlhbAotV0lORE9XIHcgQVMgKAot ICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFU VEVSTiAoQSBCIEMrIEQgfCBBIEIpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdD JyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEEg QiBDKyBEIGZhaWxzIGF0IFJvdyA2IChFIGluc3RlYWQgb2YgRCkKLS0tIFF1ZXN0aW9uOiBEb2Vz IGl0IGZhbGxiYWNrIHRvIEEgQiAoMS0yKT8KLQotLS0gVGVzdCA0OiBMZXhpY2FsIE9yZGVyIHRl c3QgLSBBIEIgQyB8IEEgQiBDIEQgRQotLS0gU1FMIHN0YW5kYXJkOiBmaXJzdCBtYXRjaGluZyBh bHRlcm5hdGl2ZSB3aW5zCi1XSVRIIHRlc3RfbGV4aWNhbCBBUyAoCi0gICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydC J10pLAotICAgICAgICAoMywgQVJSQVlbJ0MnXSksCi0gICAgICAgICg0LCBBUlJBWVsnRCddKSwK LSAgICAgICAgKDUsIEFSUkFZWydFJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVD VCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gdGVzdF9sZXhpY2FsCi1XSU5ET1cg dyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK LSAgICBQQVRURVJOIChBIEIgQyB8IEEgQiBDIEQgRSkKLSAgICBERUZJTkUKLSAgICAgICAgQSBB UyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCi0gICAg ICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3Mp LAotICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKLSk7Ci0tLSBTUUwgc3RhbmRhcmQgTGV4 aWNhbCBPcmRlcjogQSBCIEMgKDEtMykgd2lucyAoZmlyc3QgYWx0ZXJuYXRpdmUpCi0KLS0tIFRl c3QgNGI6IFJldmVyc2VkIHBhdHRlcm4gb3JkZXIgLSBBIEIgQyBEIEUgfCBBIEIgQwotV0lUSCB0 ZXN0X2xleGljYWwyIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEs IEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJB WVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ0Un XSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAotRlJPTSB0ZXN0X2xleGljYWwyCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkg aWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK LSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBIEIgQyBE IEUgfCBBIEIgQykKLSAgICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAot ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZs YWdzKSwKLSAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAotICAgICAgICBFIEFTICdFJyA9 IEFOWShmbGFncykKLSk7Ci0tLSBTUUwgc3RhbmRhcmQgTGV4aWNhbCBPcmRlcjogQSBCIEMgRCBF ICgxLTUpIHdpbnMgKGZpcnN0IGFsdGVybmF0aXZlKQotCi0tLSBUZXN0IDU6IE11bHRpcGxlIFRS VUUgaW4gc2luZ2xlIHJvdyAob3ZlcmxhcHBpbmcgcGF0dGVybiB2YXJpYWJsZXMpCi0tLSBFYWNo IHJvdyBtYXRjaGVzIG11bHRpcGxlIERFRklORSBjb25kaXRpb25zIHNpbXVsdGFuZW91c2x5Ci1X SVRIIHRlc3RfbXVsdGlfdHJ1ZSBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAg ICAgICgxLCBBUlJBWVsnQScsJ0InXSksICAgICAgICAtLSBBIGFuZCBCIGJvdGggVFJVRQotICAg ICAgICAoMiwgQVJSQVlbJ0InLCdDJ10pLCAgICAgICAgLS0gQiBhbmQgQyBib3RoIFRSVUUKLSAg ICAgICAgKDMsIEFSUkFZWydDJywnRCddKSwgICAgICAgIC0tIEMgYW5kIEQgYm90aCBUUlVFCi0g ICAgICAgICg0LCBBUlJBWVsnRCcsJ0UnXSksICAgICAgICAtLSBEIGFuZCBFIGJvdGggVFJVRQot ICAgICAgICAoNSwgQVJSQVlbJ0UnLCdfJ10pICAgICAgICAgLS0gRSBvbmx5Ci0gICAgKSBBUyB0 KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00g dGVzdF9tdWx0aV90cnVlCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBIEIgQyBEIEUpCi0gICAgREVG SU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMg J0QnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpCi0pOwotLS0g Um93IDE6IEE9VCwgQj1UIC0+IG1hdGNoZXMgQQotLS0gUm93IDI6IEI9VCwgQz1UIC0+IG1hdGNo ZXMgQgotLS0gUm93IDM6IEM9VCwgRD1UIC0+IG1hdGNoZXMgQwotLS0gUm93IDQ6IEQ9VCwgRT1U IC0+IG1hdGNoZXMgRAotLS0gUm93IDU6IEU9VCAgICAgIC0+IG1hdGNoZXMgRQotLS0gUmVzdWx0 OiBtYXRjaCAxLTUgKEEgQiBDIEQgRSkKLQotLS0gVGVzdCA2OiBEaWFnb25hbCBwYXR0ZXJuIHdp dGggbXVsdGktVFJVRSAoc2hpZnRlZCBvdmVybGFwKQotV0lUSCB0ZXN0X2RpYWdvbmFsIEFTICgK LSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwK LSAgICAgICAgKDIsIEFSUkFZWydCJywnQSddKSwKLSAgICAgICAgKDMsIEFSUkFZWydDJywnQidd KSwKLSAgICAgICAgKDQsIEFSUkFZWydEJywnQyddKSwKLSAgICAgICAgKDUsIEFSUkFZWydfJywn RCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfZW5kCi1GUk9NIHRlc3RfZGlhZ29uYWwKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBC WSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwotICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQQVRURVJOIChBIEIgQyBE KQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIg QVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAotICAg ICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKLSk7Ci0tLSBQb3NzaWJsZSBtYXRjaGVzOgotLS0g ICBTdGFydCBSb3cgMTogQSgxKSBCKDIpIEMoMykgRCg0KSAtPiAxLTQKLS0tICAgU3RhcnQgUm93 IDI6IEEoMikgQigzKSBDKDQpIEQoNSkgLT4gMi01IChiZWNhdXNlIFJvdyAyIGhhcyBBIHRvbyEp Ci0KLS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIENvbnRleHQgQWJzb3JwdGlvbiBUZXN0cwotLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotCi0tLSBUZXN0IGFic29ycHRpb24gMTogQmFzaWMgQSsgcGF0dGVybiAtIGxhdGVyIGNv bnRleHRzIGFic29yYmVkIGJ5IGVhcmxpZXIKLVdJVEggdGVzdF9hYnNvcmJfYmFzaWMgQVMgKAot ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAg ICAgICgyLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJ10pLAotICAgICAgICAo NCwgQVJSQVlbJ0EnXSksCi0gICAgICAgICg1LCBBUlJBWVsnQiddKQotICAgICkgQVMgdChpZCwg ZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3Rf YWJzb3JiX2Jhc2ljCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAoQSspCi0gICAgREVGSU5FIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKQotKTsKLS0tIFBhdHRlcm4gQSsgaXMgYWJzb3JiYWJsZSAodW5ib3VuZGVk IGZpcnN0IGVsZW1lbnQsIG9ubHkgb25lIHVuYm91bmRlZCkKLS0tIDQgbWF0Y2hlczogKDEtNCwg Mi00LCAzLTQsIDQtNCkKLQotLS0gVGVzdCBhYnNvcnB0aW9uIDI6IEErIEIgcGF0dGVybiAtIGFi c29ycHRpb24gd2l0aCBmaXhlZCBzdWZmaXgKLVdJVEggdGVzdF9hYnNvcmJfc3VmZml4IEFTICgK LSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAg ICAgICAoMiwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgzLCBBUlJBWVsnQSddKSwKLSAgICAgICAg KDQsIEFSUkFZWydCJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKLSAgICApIEFTIHQoaWQs IGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0ZXN0 X2Fic29yYl9zdWZmaXgKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQQVRURVJOIChBKyBCKQotICAgIERFRklORQotICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQotKTsKLS0tIFBhdHRlcm4gQSsgQiBpcyBhYnNvcmJhYmxlIChBKyB1bmJvdW5kZWQgZmlyc3Qs IEIgYm91bmRlZCBzdWZmaXgpCi0tLSBBbGwgcG90ZW50aWFsIG1hdGNoZXMgZW5kIGF0IHNhbWUg cm93IChyb3cgNCB3aXRoIEIpCi0tLSAzIG1hdGNoZXM6ICgxLTQsIDItNCwgMy00KQotCi0tLSBU ZXN0IGFic29ycHRpb24gMzogUGVyLWJyYW5jaCBhYnNvcnB0aW9uIHdpdGggQUxUIChCKyBDIHwg QisgRCkKLVdJVEggdGVzdF9hYnNvcmJfYWx0IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKLSAgICAgICAgKDEsIEFSUkFZWydCJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0g ICAgICAgICgzLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAg ICAoNSwgQVJSQVlbJ1gnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBm bGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0ZXN0X2Fic29yYl9hbHQKLVdJTkRPVyB3IEFT ICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQ QVRURVJOIChCKyBDIHwgQisgRCkKLSAgICBERUZJTkUKLSAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAgIEQgQVMgJ0Qn ID0gQU5ZKGZsYWdzKQotKTsKLS0tIEJvdGggYnJhbmNoZXMgQisgQyBhbmQgQisgRCBhcmUgYWJz b3JiYWJsZSAoQisgdW5ib3VuZGVkIGZpcnN0KQotLS0gQisgRCBicmFuY2ggbWF0Y2hlczogMyBt YXRjaGVzICgxLTQsIDItNCwgMy00KQotCi0tLSBUZXN0IGFic29ycHRpb24gNDogTm9uLWFic29y YmFibGUgcGF0dGVybiAoQSBCKyAtIHVuYm91bmRlZCBub3QgZmlyc3QpCi1XSVRIIHRlc3Rfbm9f YWJzb3JiIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJBWVsnQidd KSwKLSAgICAgICAgKDQsIEFSUkFZWydCJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKLSAg ICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAotRlJPTSB0ZXN0X25vX2Fic29yYgotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0g ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAg QUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwotICAgIFBBVFRFUk4gKEEgQispCi0gICAgREVG SU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpCi0pOwotLS0gUGF0dGVybiBBIEIrIGlzIE5PVCBhYnNvcmJhYmxlIChBIGJvdW5k ZWQgZmlyc3QsIEIrIHVuYm91bmRlZCBidXQgbm90IGZpcnN0KQotLS0gT25seSBSb3cgMSBjYW4g c3RhcnQgbWF0Y2ggKG9ubHkgcm93IHdpdGggQSksIHNvIG9ubHkgb25lIG1hdGNoOiAxLTQKLQot LS0gVGVzdCBhYnNvcnB0aW9uIDU6IEdST1VQIG1lcmdlIGVuYWJsZXMgYWJzb3JwdGlvbgotV0lU SCB0ZXN0X2Fic29yYl9ncm91cCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAg ICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydCJ10pLAotICAgICAgICAo MywgQVJSQVlbJ0EnXSksCi0gICAgICAgICg0LCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDUsIEFS UkFZWydBJ10pLAotICAgICAgICAoNiwgQVJSQVlbJ0InXSksCi0gICAgICAgICg3LCBBUlJBWVsn WCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfZW5kCi1GUk9NIHRlc3RfYWJzb3JiX2dyb3VwCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JE RVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAoKEEg QikgKEEgQikrKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0g ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQotKTsKLS0tIFBhdHRlcm4gb3B0aW1pemVkOiAo QSBCKSAoQSBCKSsgLT4gKEEgQil7Mix9Ci0tLSAyIG1hdGNoZXM6IDEtNiAoMyByZXBzKSwgMy02 ICgyIHJlcHMpCi0KLS0tIFRlc3QgYWJzb3JwdGlvbiA2OiBNdWx0aXBsZSB1bmJvdW5kZWQgLSBm aXJzdCBlbGVtZW50IHVuYm91bmRlZCBlbmFibGVzIGFic29ycHRpb24KLVdJVEggdGVzdF9tdWx0 aV91bmJvdW5kZWQgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwg QVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDMsIEFSUkFZ WydCJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0InXSksCi0gICAgICAgICg1LCBBUlJBWVsnWCdd KQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCi1GUk9NIHRlc3RfbXVsdGlfdW5ib3VuZGVkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JE RVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAoQSsg QispCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAg QiBBUyAnQicgPSBBTlkoZmxhZ3MpCi0pOwotLS0gMiBtYXRjaGVzOiAxLTQsIDItNCAoc2FtZSBl bmRwb2ludCA0KQotCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gSmFjb2IncyBSUFIgUGF0dGVybnMgKGZyb20gamFjb2IgYnJhbmNoKQotLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotLS0gVGVzdDogQT8g KG9wdGlvbmFsLCBncmVlZHkpCi1XSVRIIGphY29iX29wdGlvbmFsIEFTICgKLSAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJS QVlbJ1gnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAotRlJPTSBqYWNvYl9vcHRpb25hbAotV0lORE9XIHcgQVMgKAotICAgIE9S REVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAo QT8pCi0gICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAx LTEgKG1hdGNoZXMgQSkKLQotLS0gVGVzdDogQXsyfSAoZXhhY3QgY291bnQpCi1XSVRIIGphY29i X2V4YWN0IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgzLCBBUlJBWVsnQSdd KSwKLSAgICAgICAgKDQsIEFSUkFZWydYJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNF TEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gamFjb2JfZXhhY3QKLVdJTkRP VyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VwotICAgIFBBVFRFUk4gKEF7Mn0pCi0gICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQot KTsKLS0tIEV4cGVjdGVkOiAxLTIKLQotLS0gVGVzdDogQXsxLDN9IChib3VuZGVkIHJhbmdlLCBn cmVlZHkpCi1XSVRIIGphY29iX2JvdW5kZWQgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBBUlJBWVsnQSddKSwKLSAg ICAgICAgKDMsIEFSUkFZWydBJ10pLAotICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCi0gICAgICAg ICg1LCBBUlJBWVsnWCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZs YWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX2JvdW5kZWQKLVdJTkRPVyB3IEFTICgK LSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIFBB VFRFUk4gKEF7MSwzfSkKLSAgICBERUZJTkUgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCi0pOwotLS0g RXhwZWN0ZWQ6IDEtMyAoZ3JlZWR5IHRha2VzIG1heCksIHRoZW4gNC00Ci0KLS0tIFRlc3Q6IEEg fCBCIChzaW1wbGUgYWx0ZXJuYXRpb24pCi1XSVRIIGphY29iX3NpbXBsZV9hbHQgQVMgKAotICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAg ICgyLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDMsIEFSUkFZWydYJ10pCi0gICAgKSBBUyB0KGlk LCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gamFj b2Jfc2ltcGxlX2FsdAotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSB8IEIpCi0gICAgREVGSU5FCi0g ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCi0pOwotLS0gRXhwZWN0ZWQ6IDEtMSAoQSksIDItMiAoQikKLQotLS0gVGVzdDogQSB8IEIg fCBDICh0aHJlZS13YXkgYWx0ZXJuYXRpb24pCi1XSVRIIGphY29iX3RocmVlX2FsdCBBUyAoCi0g ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsnQiddKSwKLSAgICAg ICAgKDIsIEFSUkFZWydYJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwg ZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZST00gamFjb2JfdGhyZWVfYWx0Ci1XSU5ET1cgdyBB UyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAg ICBQQVRURVJOIChBIHwgQiB8IEMpCi0gICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdD JyA9IEFOWShmbGFncykKLSk7Ci0tLSBFeHBlY3RlZDogMS0xIChCKQotCi0tLSBUZXN0OiBBIEIg QyAoY29uY2F0ZW5hdGlvbikKLVdJVEggamFjb2JfY29uY2F0IEFTICgKLSAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlb J0InXSksCi0gICAgICAgICgzLCBBUlJBWVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydYJ10p Ci0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9lbmQKLUZST00gamFjb2JfY29uY2F0Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQK LSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBIEIgQykKLSAg ICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4 cGVjdGVkOiAxLTMKLQotLS0gVGVzdDogQSBCPyBDIChvcHRpb25hbCBtaWRkbGUpCi1XSVRIIGph Y29iX29wdGlvbmFsX21pZCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAg ICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydDJ10pLAotICAgICAgICAoMywg QVJSQVlbJ1gnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAotRlJPTSBqYWNvYl9vcHRpb25hbF9taWQKLVdJTkRPVyB3IEFTICgK LSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIFBB VFRFUk4gKEEgQj8gQykKLSAgICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAotICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5Z KGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAxLTIgKEEgQywgQiBza2lwcGVkKQotCi0tLSBUZXN0 OiAoQSBCKXsyfSAobmVzdGVkIGdyb3VwIHdpdGggcXVhbnRpZmllcikKLVdJVEggamFjb2JfbmVz dGVkX2dyb3VwIEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFS UkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBBUlJBWVsn QSddKSwKLSAgICAgICAgKDQsIEFSUkFZWydCJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkK LSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X2VuZAotRlJPTSBqYWNvYl9uZXN0ZWRfZ3JvdXAKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBC WSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIFBBVFRFUk4gKChBIEIp ezJ9KQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCi0gICAgICAg IEIgQVMgJ0InID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAxLTQgKEEgQiBBIEIpCi0K LS0tIFRlc3Q6IChBKXszfSAocXVhbnRpZmllciBvbiBncm91cGVkIHNpbmdsZSBlbGVtZW50KQot V0lUSCBqYWNvYl9ncm91cF9xdWFudCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0g ICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydBJ10pLAotICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCi0gICAgICAgICg0LCBBUlJBWVsnWCddKQotICAgICkgQVMgdChp ZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGph Y29iX2dyb3VwX3F1YW50Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOICgoQSl7M30pCi0gICAgREVGSU5F IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAxLTMKLQotLS0gVGVzdDog QSBCIEMgfCBBIEIgQyBEIEUgKGxleGljYWwgb3JkZXIgLSBmaXJzdCBhbHQgd2lucykKLVdJVEgg amFjb2JfbGV4X2ZpcnN0IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAg KDEsIEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0InXSksCi0gICAgICAgICgzLCBB UlJBWVsnQyddKSwKLSAgICAgICAgKDQsIEFSUkFZWydEJ10pLAotICAgICAgICAoNSwgQVJSQVlb J0UnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAotRlJPTSBqYWNvYl9sZXhfZmlyc3QKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRF UiBCWSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIFBBVFRFUk4gKEEg QiBDIHwgQSBCIEMgRCBFKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cyksCi0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBBUyAnQycgPSBB TlkoZmxhZ3MpLAotICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCi0gICAgICAgIEUgQVMg J0UnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAxLTMgKEEgQiBDIHdpbnMgYnkgbGV4 aWNhbCBvcmRlcikKLQotLS0gVGVzdDogQSBCIEMgRCBFIHwgQSBCIEMgKGxleGljYWwgb3JkZXIg LSBsb25nZXIgZmlyc3Qgd2lucykKLVdJVEggamFjb2JfbGV4X2xvbmcgQVMgKAotICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBB UlJBWVsnQiddKSwKLSAgICAgICAgKDMsIEFSUkFZWydDJ10pLAotICAgICAgICAoNCwgQVJSQVlb J0QnXSksCi0gICAgICAgICg1LCBBUlJBWVsnRSddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0p Ci1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX2xleF9sb25n Ci1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKLSAgICBQQVRURVJOIChBIEIgQyBEIEUgfCBBIEIgQykKLSAgICBERUZJTkUKLSAg ICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFn cyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgRCBBUyAnRCcgPSBB TlkoZmxhZ3MpLAotICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKLSk7Ci0tLSBFeHBlY3Rl ZDogMS01IChBIEIgQyBEIEUgd2lucyBieSBsZXhpY2FsIG9yZGVyKQotCi0tLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQWx0ZXJuYXRpb24gd2l0aCBx dWFudGlmaWVycyAoQlVHIGNhc2VzIGZyb20gSmFjb2IncyB0ZXN0cykKLS0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLS0tIFRlc3Q6IChBIHwgQikrIEMg LSBhbHRlcm5hdGlvbiBpbnNpZGUgcXVhbnRpZmllZCBncm91cCBmb2xsb3dlZCBieSBDCi1XSVRI IGphY29iX2FsdF9xdWFudCBBUyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAg ICgxLCBBUlJBWVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydCJ10pLAotICAgICAgICAoMywg QVJSQVlbJ0EnXSksCi0gICAgICAgICg0LCBBUlJBWVsnQyddKQotICAgICkgQVMgdChpZCwgZmxh Z3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX2Fs dF9xdWFudAotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoKEEgfCBCKSsgQykKLSAgICBERUZJTkUKLSAg ICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFn cyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAxLTQg KEEgQiBBIEMpCi0KLS0tIFRlc3Q6ICgoQSB8IEIpIEMpKyAtIGFsdGVybmF0aW9uIGluc2lkZSBn cm91cCB3aXRoIG91dGVyIHF1YW50aWZpZXIKLVdJVEggamFjb2JfYWx0X2dyb3VwIEFTICgKLSAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJ10pLAotICAgICAg ICAoMiwgQVJSQVlbJ0MnXSksCi0gICAgICAgICgzLCBBUlJBWVsnQiddKSwKLSAgICAgICAgKDQs IEFSUkFZWydDJ10pLAotICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKLSAgICApIEFTIHQoaWQsIGZs YWdzKQotKQotU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSBqYWNvYl9h bHRfZ3JvdXAKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVwotICAgIFBBVFRFUk4gKCgoQSB8IEIpIEMpKykKLSAgICBERUZJTkUK LSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncyksCi0gICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQotKTsKLS0tIEV4cGVjdGVkOiAx LTQgKEEgQyBCIEMpCi0KLS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBSRUxVQ1RBTlQgcXVhbnRpZmllcnMKLS0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLS0tIFRlc3Q6IEErPyBCIChyZWx1Y3RhbnQpIC0g QiBhdmFpbGFibGUgYXQgcm93IDMsIEEgZXhpdHMgZWFybHkKLVdJVEggamFjb2JfcmVsdWN0YW50 IEFTICgKLSAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywn XyddKSwKLSAgICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwKLSAgICAgICAgKDMsIEFSUkFZWydB JywnQiddKSwKLSAgICAgICAgKDQsIEFSUkFZWydCJywnXyddKQotICAgICkgQVMgdChpZCwgZmxh Z3MpCi0pCi1TRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX3Jl bHVjdGFudAotV0lORE9XIHcgQVMgKAotICAgIE9SREVSIEJZIGlkCi0gICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSs/IEIpCi0gICAgREVGSU5FCi0gICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCi0p OwotCi0tLSBUZXN0OiBBezEsM30/IEIgKHJlbHVjdGFudCBib3VuZGVkKSAtIHNhbWUgZGF0YSwg Ym91bmRlZCBxdWFudGlmaWVyCi1XSVRIIGphY29iX3JlbHVjdGFudF9ib3VuZGVkIEFTICgKLSAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKLSAg ICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwK LSAgICAgICAgKDQsIEFSUkFZWydCJywnXyddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1T RUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIGphY29iX3JlbHVjdGFudF9i b3VuZGVkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKLSAgICBQQVRURVJOIChBezEsM30/IEIpCi0gICAgREVGSU5FCi0gICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp Ci0pOwotCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gTmVzdGVkIHF1YW50aWZpZXJzIChwYXRob2xvZ2ljYWwgcGF0dGVybnMpCi0tLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVGhlc2UgcGF0dGVybnMg cHJldmlvdXNseSBjYXVzZWQgc2VnZmF1bHQgb3IgaW5maW5pdGUgbG9vcC4KLS0tIE5vdyB0aGV5 IGFyZSBlaXRoZXIgb3B0aW1pemVkIGF0IGNvbXBpbGUgdGltZSBvciBoYW5kbGVkIHNhZmVseSBh dCBydW50aW1lLgotCi0tLSBUZXN0OiAoQSopKiAtIG5lc3RlZCB1bmJvdW5kZWQgcXVhbnRpZmll cnMgKG9wdGltaXplZCB0byBBKikKLVNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgYwotRlJP TSAoU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCA1KSB2KQotV0lORE9XIHcgQVMgKAotICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIElOSVRJQUwKLSAgICBQQVRURVJOICgoQSop KikKLSAgICBERUZJTkUgQSBBUyBUUlVFCi0pOwotCi0tLSBUZXN0OiAoQSopKyAtIGlubmVyIG51 bGxhYmxlLCBvdXRlciByZXF1aXJlcyBvbmUgKG9wdGltaXplZCB0byBBKikKLVNFTEVDVCB2LCBj b3VudCgqKSBPVkVSIHcgQVMgYwotRlJPTSAoU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCA1KSB2 KQotV0lORE9XIHcgQVMgKAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwotICAgIElO SVRJQUwKLSAgICBQQVRURVJOICgoQSopKykKLSAgICBERUZJTkUgQSBBUyBUUlVFCi0pOwotCi0t LSBUZXN0OiAoQSspKiAtIG91dGVyIG51bGxhYmxlIChvcHRpbWl6ZWQgdG8gQSopCi1TRUxFQ1Qg diwgY291bnQoKikgT1ZFUiB3IEFTIGMKLUZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwg NSkgdikKLVdJTkRPVyB3IEFTICgKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKLSAg ICBJTklUSUFMCi0gICAgUEFUVEVSTiAoKEErKSopCi0gICAgREVGSU5FIEEgQVMgVFJVRQotKTsK LQotLS0gVGVzdDogKEErKSsgLSBib3RoIHJlcXVpcmUgbWF0Y2ggKG9wdGltaXplZCB0byBBKykK LVNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgYwotRlJPTSAoU0VMRUNUIGdlbmVyYXRlX3Nl cmllcygxLCA1KSB2KQotV0lORE9XIHcgQVMgKAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVwotICAgIElOSVRJQUwKLSAgICBQQVRURVJOICgoQSspKykKLSAgICBERUZJTkUgQSBBUyBU UlVFCi0pOwotCi0tLSBUZXN0OiAoQSogQiopKiAtIGNvbXBsZXggbmVzdGVkIHBhdHRlcm4gKHJ1 bnRpbWUgcHJvdGVjdGlvbikKLS0tIE5vdCBvcHRpbWl6ZWQgYnV0IGhhbmRsZWQgc2FmZWx5IGJ5 IGVtcHR5LW1hdGNoIGxvb3AgcHJldmVudGlvbgotU0VMRUNUIHYsIGNvdW50KCopIE9WRVIgdyBB UyBjCi1GUk9NIChTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIHYpCi1XSU5ET1cgdyBBUyAo Ci0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0g ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgSU5JVElBTAotICAgIFBBVFRF Uk4gKChBKiBCKikqKQotICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgVFJVRQotKTsKLQotLS0g VGVzdDogKCgoQSkqKSopKiAgLSB0cmlwbGUgbmVzdGVkIChvcHRpbWl6ZWQgdGhyb3VnaCByZWN1 cnNpdmUgb3B0aW1pemF0aW9uKQotU0VMRUNUIHYsIGNvdW50KCopIE9WRVIgdyBBUyBjCi1GUk9N IChTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDMpIHYpCi1XSU5ET1cgdyBBUyAoCi0gICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gICAgSU5JVElBTAotICAgIFBBVFRFUk4gKCgoKEEp KikqKSopCi0gICAgREVGSU5FIEEgQVMgVFJVRQotKTsKK0RST1AgVEFCTEUgcnByX2NvbnNlY19u dWxsOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCmluZGV4IDk3YjYyYTczYTBlLi5kYTI4ZGUx YThmOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbApAQCAtMTA1MCw3ICsxMDUwLDcgQEAg V0lORE9XIHcgQVMgKAogKTsKIC0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9y IG5lYXIgIioiCiAKLS0tID8gPyAoaW52YWxpZCBjb21iaW5hdGlvbikKKy0tID8gPyAocGFyc2Vk IGFzID8/IHJlbHVjdGFudCBxdWFudGlmaWVyKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJP TSBycHJfcmVsdWN0YW50CiBXSU5ET1cgdyBBUyAoCkBAIC0xNTMzLDcgKzE1MzMsMTcgQEAgU0VM RUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y4Jzo6cmVnY2xhc3MpOwogCiBEUk9QIFZJ RVcgcnByX3NlcmlhbF92ODsKIAotRFJPUCBUQUJMRSBycHJfc2VyaWFsOworLS0gUmVsdWN0YW50 IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxzCitDUkVBVEUgVklFVyBy cHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcK K0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgSU5JVElBTAorICAgICAgICAgICAgIFBBVFRFUk4gKEF7MX0/IEIpCisgICAgICAgICAg ICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAwKTsKK1NFTEVDVCBwZ19nZXRfdmll d2RlZigncnByX3F1YW50X3JlbHVjdGFudF92Jzo6cmVnY2xhc3MpOworRFJPUCBWSUVXIHJwcl9x dWFudF9yZWx1Y3RhbnRfdjsKIAogLS0gTWF0ZXJpYWxpemVkIHZpZXcgKGlmIHN1cHBvcnRlZCkK IApAQCAtMTU2MCw2ICsxNTcwLDQwIEBAIFNFTEVDVCAqIEZST00gcnByX212aWV3X3YxIE9SREVS IEJZIGlkOwogRFJPUCBNQVRFUklBTElaRUQgVklFVyBycHJfbXZpZXdfdjE7CiBEUk9QIFRBQkxF IHJwcl9tdmlldzsKIAorLS0gQ1JFQVRFIFRBQkxFIEFTIFNFTEVDVCB3aXRoIFJQUgorQ1JFQVRF IFRBQkxFIHJwcl9jdGFzIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2N0YXMg VkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAxNSksICg0LCAyNSk7CisKK0NSRUFURSBUQUJM RSBycHJfY3Rhc19yZXN1bHQgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9jdGFzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgdmFsID4gUFJFVih2YWwpCispOworU0VMRUNUICogRlJPTSBycHJf Y3Rhc19yZXN1bHQgT1JERVIgQlkgaWQ7CisKKy0tIElOU0VSVCBJTlRPIC4uLiBTRUxFQ1Qgd2l0 aCBSUFIKK0NSRUFURSBUQUJMRSBycHJfaW5zZXJ0X3RhcmdldCAoaWQgSU5ULCB2YWwgSU5ULCBj bnQgQklHSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9pbnNlcnRfdGFyZ2V0CitTRUxFQ1QgaWQsIHZh bCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9jdGFzCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB IEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgdmFsID4gUFJFVih2YWwpCispOworU0VM RUNUICogRlJPTSBycHJfaW5zZXJ0X3RhcmdldCBPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBy cHJfY3Rhc19yZXN1bHQ7CitEUk9QIFRBQkxFIHJwcl9pbnNlcnRfdGFyZ2V0OworRFJPUCBUQUJM RSBycHJfY3RhczsKKwogLS0gUHJlcGFyZWQgc3RhdGVtZW50cyAodGVzdHMgb3V0ZnVuY3MuYyAv IHJlYWRmdW5jcy5jKQogCiBDUkVBVEUgVEFCTEUgcnByX3ByZXAgKGlkIElOVCwgdmFsIElOVCk7 CkBAIC0xODIyLDYgKzE4NjYsMzIgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfbXVsdGl3 aW5fdic6OnJlZ2NsYXNzKTsKIERST1AgVklFVyBycHJfbXVsdGl3aW5fdjsKIERST1AgVEFCTEUg cnByX211bHRpd2luOwogCistLSB7bn0gcXVhbnRpZmllciBkaXNwbGF5IGluIHZpZXcKK0NSRUFU RSBWSUVXIHJwcl9xdWFudF9uX3YgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcK K0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgSU5JVElBTAorICAgICAgICAgICAgIFBBVFRFUk4gKEF7M30pCisgICAgICAgICAgICAg REVGSU5FIEEgQVMgdmFsID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9u X3YnOjpyZWdjbGFzcyk7CitEUk9QIFZJRVcgcnByX3F1YW50X25fdjsKKworLS0ge24sfSBxdWFu dGlmaWVyIGRpc3BsYXkgaW4gdmlldworQ1JFQVRFIFZJRVcgcnByX3F1YW50X25fcGx1c192IEFT CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIElOSVRJQUwKKyAgICAgICAg ICAgICBQQVRURVJOIChBezIsfSkKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwKTsK K1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3F1YW50X25fcGx1c192Jzo6cmVnY2xhc3MpOwor RFJPUCBWSUVXIHJwcl9xdWFudF9uX3BsdXNfdjsKKworRFJPUCBUQUJMRSBycHJfc2VyaWFsOwor CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIEVycm9yIENhc2VzIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE5MDEsNiArMTk3MSw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyBBLnZh bCA+IDAKICk7CistLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVk IGNvbHVtbiByZWZlcmVuY2UgImEudmFsIiBpcyBub3Qgc3VwcG9ydGVkCiAKIC0tIFBBVFRFUk4t b25seSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCBldmVuIHdpdGhvdXQg REVGSU5FIGVudHJ5CiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0xOTExLDYgKzE5ODIsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQispCiAgICAgREVGSU5FIEEgQVMgQi52 YWwgPiAwCiApOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmll ZCBjb2x1bW4gcmVmZXJlbmNlICJiLnZhbCIgaXMgbm90IHN1cHBvcnRlZAogCiAtLSBERUZJTkUt b25seSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogc3RpbGwgYSBwYXR0ZXJuIHZhcmlhYmxlLCBu b3QgYSByYW5nZSB2YXJpYWJsZQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMTkyMSw2ICsx OTkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFT IHZhbCA+IDAsIEIgQVMgQi52YWwgPiAwCiApOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJu IHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlICJiLnZhbCIgaXMgbm90IHN1cHBv cnRlZAogCiAtLSBGUk9NLWNsYXVzZSByYW5nZSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90 IGFsbG93ZWQgKHByb2hpYml0ZWQgYnkgwqc2LjUpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBA IC0xOTMxLDYgKzIwMDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAg REVGSU5FIEEgQVMgcnByX2Vyci52YWwgPiAwCiApOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiByYW5n ZSB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAicnByX2Vyci52YWwiIGlzIG5v dCBhbGxvd2VkCiAKIC0tIFNlbWFudGljIGVycm9ycwogCkBAIC0xOTY1LDcgKzIwMzksNyBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgQ09VTlQoKikg PiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SIG9yIHdvcmtzIGRlcGVuZGluZyBvbiBpbXBsZW1l bnRhdGlvbgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3Qg YWxsb3dlZCBpbiBERUZJTkUKIAogLS0gU3VicXVlcnkgaW4gREVGSU5FIChOT1QgU1VQUE9SVEVE KQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMjEwOCw2ICsyMTgyLDEzIEBAIFNFTEVDVCBD T1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgogV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAg ICAgIFBBVFRFUk4gKEEgKChCKSAoQykpKSBERUZJTkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFs IDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsKIAorLS0gRGF0YSBleGVjdXRpb246IFNFUSBmbGF0dGVu IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0cworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgICAgICAgUEFUVEVSTiAoQSAoKEIp IChDKSkpIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwgPD0gNjAsIEMgQVMgdmFsID4g NjApOworCiAtLSBBTFQgZmxhdHRlbjogKEEgfCAoQiB8IEMpKSsgLT4gKGEgfCBiIHwgYykrCiBF WFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4K QEAgLTIxMjAsNiArMjIwMSwxMyBAQCBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3Bs YW4KIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgICAgICBQQVRURVJOICgoQSB8IEIgfCBBKSsp IERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CiAKKy0tIERhdGEgZXhlY3V0 aW9uOiBBTFQgZGVkdXAgcHJvZHVjZXMgY29ycmVjdCByZXN1bHRzCitTRUxFQ1QgaWQsIHZhbCwg Y291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgICAgICAgICAg IFBBVFRFUk4gKChBIHwgQiB8IEEpKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+ IDUwKTsKKwogLS0gUXVhbnRpZmllciBtdWx0aXBseTogKEF7Mn0pezN9IC0+IGF7Nn0KIEVYUExB SU4gKENPU1RTIE9GRikKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgpAQCAt MjMwNSw2ICsyMzkzLDEzIEBAIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgog V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogICAgICAgICAgICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKSBERUZJ TkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsKIAorLS0g RGF0YSBleGVjdXRpb246IEdST1VQIHVud3JhcCBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdHMKK1NF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgICAgICAgICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKSBERUZJTkUgQSBBUyB2YWwgPD0gMzAs IEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsKKwogLS0gUmVsdWN0YW50IG9wdGltaXph dGlvbiBieXBhc3M6IFZBUiBtZXJnZQogLS0gQSs/IEEgc3RheXMgYXMgYSs/IGEgKGdyZWVkeSBB KyBBIG1lcmdlcyB0byBhezIsfSkKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTIzNjgsNiArMjQ2 Myw2MiBAQCBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVS TiAoQSs/KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKIAorLS0gRHVwbGljYXRlIEdST1VQIHJlbW92 YWw6ICgoQSB8IEIpKyB8IChBIHwgQikrKSAtPiAoYSB8IGIpKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgfCBCKSsgfCAoQSB8IEIpKykgREVGSU5FIEEgQVMg dmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gQ29uc2VjdXRpdmUgVkFSIG1lcmdlIHdp dGggemVyby1taW46IEEqIEErIC0+IGErCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAg ICBQQVRURVJOIChBKiBBKykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIENvbnNlY3V0aXZl IFZBUiBtZXJnZSAoNC1lbGVtZW50KTogQSBBezJ9IEErIEF7M30gLT4gYXs3LH0KK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQXsyfSBBKyBBezN9KSBERUZJTkUg QSBBUyB2YWwgPiAwKTsKKworLS0gUFJFRklYK1NVRkZJWCBtZXJnZSAoNS13YXkpOiBBIEIgQSBC IChBIEIpKyBBIEIgQSBCIC0+IChhIGIpezUsfQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgUEFUVEVSTiAoQSBCIEEgQiAoQSBCKSsgQSBCIEEgQikKKyAgICAgICAgICAgICBERUZJ TkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCistLSBVbndyYXAgc2luZ2xlLWl0 ZW0gQUxUIGFmdGVyIGRlZHVwOiAoQSB8IEEpKyAtPiBhKworLS0gQUxUIGRlZHVwIHJlZHVjZXMg dG8gc2luZ2xlLWl0ZW0sIHRoZW4gR1JPVVAgdW53cmFwCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgICAgICBQQVRURVJOICgoQSB8IEEpKykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0t IEdST1VQezEsMX0gdG8gU0VRIHdpdGggZmxhdHRlbjogKChBIEIpKEMgRCkpIC0+IGEgYiBjIGQK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBCKShDIEQpKSkK KyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjUsIEIgQVMgdmFsID4gMjUgQU5EIHZh bCA8PSA1MCwKKyAgICAgICAgICAgICAgICAgICAgQyBBUyB2YWwgPiA1MCBBTkQgdmFsIDw9IDc1 LCBEIEFTIHZhbCA+IDc1KTsKKworLS0gTmVzdGVkIEFMVCBwYXR0ZXJuOiAoKEEgQikgfCBDKSBE IHwgQSBCIEMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJP TSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBC KSB8IEMpIEQgfCBBIEIgQykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjUsIEIg QVMgdmFsID4gMjUgQU5EIHZhbCA8PSA1MCwKKyAgICAgICAgICAgICAgICAgICAgQyBBUyB2YWwg PiA1MCBBTkQgdmFsIDw9IDc1LCBEIEFTIHZhbCA+IDc1KTsKKworLS0gTmVzdGVkIEFMVCB3aXRo IHVuYm91bmRlZDogKChBKyBCKSB8IEMpIEQgfCBBIEIgQworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoKChBKyBCKSB8IEMpIEQgfCBBIEIgQykKKyAgICAgICAgICAg ICBERUZJTkUgQSBBUyB2YWwgPD0gMjUsIEIgQVMgdmFsID4gMjUgQU5EIHZhbCA8PSA1MCwKKyAg ICAgICAgICAgICAgICAgICAgQyBBUyB2YWwgPiA1MCBBTkQgdmFsIDw9IDc1LCBEIEFTIHZhbCA+ IDc1KTsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLSBBYnNvcnB0aW9uIEZsYWcgRGlzcGxheSBUZXN0cwogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CkBAIC0yNDUwLDYgKzI2MDEsMTkgQEAgU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9w bGFuCiBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCAxMCBGT0xMT1dJTkcKICAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cgUEFUVEVSTiAoQSspIERFRklORSBBIEFTIHZhbCA+IDApOwogCistLSBSZWx1Y3RhbnQgezF9 PyBxdWFudGlmaWVyIGRlcGFyc2UKKy0tIEF7MX0/IGlzIGEgcmVsdWN0YW50IHsxLDF9IHF1YW50 aWZpZXIuICBUaGUgZGVwYXJzZSBjb2RlIG11c3QKKy0tIG91dHB1dCAiezF9IiBleHBsaWNpdGx5 IHRvIGRpc2FtYmlndWF0ZSBmcm9tIGEgYmFyZSAiPyIgcXVhbnRpZmllcgorLS0gKHdoaWNoIHdv dWxkIG1lYW4gezAsMX0pLgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgdmFsCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQXsxfT8gQikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA+IDAKKyk7 CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0gQWJzb3JwdGlvbiBBbmFseXNpcyBUZXN0cwogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yODcx LDcgKzMwMzUsOCBAQCBXSU5ET1cgdyBBUyAoCiApCiBHUk9VUCBCWSBjYXRlZ29yeQogT1JERVIg QlkgY2F0ZWdvcnk7Ci0tLSBFeHBlY3RlZDogRVJST1IgKEdST1VQIEJZIHdpdGggd2luZG93IFJQ UiBub3Qgc3VwcG9ydGVkKQorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAiR1JPVVAiCistLSAoR1JPVVAgQlkgYWZ0ZXIgV0lORE9XIGNsYXVzZSBpcyBub3QgdmFs aWQgU1FMIHN5bnRheCkKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdWJxdWVyeSBhbmQgQ1RFIFRlc3RzCkBAIC0z MjQzLDcgKzM0MDgsOCBAQCBJTlNFUlQgSU5UTyBycHJfc29ydCBWQUxVRVMKICAgICAoMSwgJ0En LCAzMCksICgyLCAnQicsIDIwKSwgKDMsICdBJywgMTApLAogICAgICg0LCAnQicsIDQwKSwgKDUs ICdBJywgNTApLCAoNiwgJ0InLCA2MCk7CiAKLS0tIFJQUiB3aXRoIEdST1VQIEJZCistLSBSUFIg d2l0aCBHUk9VUCBCWSAoYWdncmVnYXRlIGluIERFRklORSDihpIgRVJST1IgYmVmb3JlIEdST1VQ IEJZIGludGVyYWN0aW9uKQorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBhZ2dyZWdhdGUgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKIAogU0VMRUNUIGNhdGVnb3J5LAogICAgICAgIENP VU5UKCopIGFzIGdyb3VwX2NudCwKQEAgLTMyNTksNyArMzQyNSw4IEBAIFdJTkRPVyB3IEFTICgK ICkKIE9SREVSIEJZIGNhdGVnb3J5OwogCi0tLSBSUFIgd2l0aCBIQVZJTkcKKy0tIFJQUiB3aXRo IEhBVklORyAoc2FtZSBhZ2dyZWdhdGUtaW4tREVGSU5FIGVycm9yKQorLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKIAogU0VM RUNUIGNhdGVnb3J5LAogICAgICAgIENPVU5UKCopIGFzIGdyb3VwX2NudCwKQEAgLTM3NzEsNyAr MzkzOCwzIEBAIEZST00gKFNFTEVDVCBpZCwgdmFsLAogKSBzOwogCiBEUk9QIFRBQkxFIHJwcl9w bGFuOwotCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIEVuZCBvZiBycHJfYmFzZS5zcWwKLS0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IGQwMTdhMjI5MmQyLi40YmI0OTY1MGJiNyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbApAQCAtNiw4ICs2LDkgQEAKIC0tIFRoaXMg dGVzdCBzdWl0ZSB2YWxpZGF0ZXMgRVhQTEFJTiBvdXRwdXQgZm9yIFJQUiBxdWVyaWVzLAogLS0g aW5jbHVkaW5nIE5GQSBzdGF0aXN0aWNzIHNob3duIGluIEVYUExBSU4gQU5BTFlaRToKIC0tICAg LSBORkEgU3RhdGVzOiBwZWFrLCB0b3RhbCwgbWVyZ2VkCi0tLSAgIC0gTkZBIENvbnRleHRzOiBw ZWFrLCB0b3RhbCwgYWJzb3JiZWQsIHNraXBwZWQKKy0tICAgLSBORkEgQ29udGV4dHM6IHBlYWss IHRvdGFsLCBwcnVuZWQKIC0tICAgLSBORkE6IG1hdGNoZWQgKGxlbiBtaW4vbWF4L2F2ZyksIG1p c21hdGNoZWQgKGxlbiBtaW4vbWF4L2F2ZykKKy0tICAgLSBORkE6IGFic29yYmVkIChsZW4gbWlu L21heC9hdmcpLCBza2lwcGVkIChsZW4gbWluL21heC9hdmcpCiAtLSAgIC0gUGF0dGVybiBkZXBh cnNlIGZvcm1hdHRpbmcKIC0tICAgLSBNdWx0aXBsZSBvdXRwdXQgZm9ybWF0cyAodGV4dCwgSlNP TiwgWE1MKQogLS0KQEAgLTMxMCw3ICszMTEsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogRFJP UCBWSUVXIHJwcl92OwogCi0tLSBHcm91cGVkIHBhdHRlcm4gd2l0aCBxdWFudGlmaWVyIC0gc3Rh dGUgbWVyZ2luZworLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRlIGNv dW50IHdpdGggZ3JvdXBpbmcKIENSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCkBAIC00Mjgs NyArNDI5LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIERST1AgVklFVyBycHJfdjsKIAotLS0g SGlnaCBzdGF0ZSBtZXJnaW5nIC0gYWx0ZXJuYXRpb24gd2l0aCBwbHVzIHF1YW50aWZpZXIKKy0t IEhpZ2ggc3RhdGUgY291bnQgLSBhbHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgogQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCkBAIC00OTksNyArNTAwLDcgQEAgV0lORE9XIHcg QVMgKAogRFJPUCBWSUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENvbnRleHQgU3RhdGlzdGljcyBU ZXN0cyAocGVhaywgdG90YWwsIGFic29yYmVkLCBza2lwcGVkKQorLS0gQ29udGV4dCBTdGF0aXN0 aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgcHJ1bmVkICsgYWJzb3JiZWQvc2tpcHBlZCkKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogCiAtLSBDb250ZXh0IGFic29ycHRpb24gd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllciBhdCBz dGFydApAQCAtNjcxLDcgKzY3Miw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiBEUk9QIFZJRVcg cnByX3Y7CiAKLS0tIE1peCBvZiBzaG9ydCBhbmQgbG9uZyBtYXRjaGVzCistLSBVbmlmb3JtIG1h dGNoIGxlbmd0aCB3aXRoIG1pc21hdGNoZXMgZnJvbSBnYXAgcm93cyAodiUyMCA9IDExLi4xNSkK IENSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQpAQCAtNzAyLDggKzcwMyw4IEBAIERST1Ag VklFVyBycHJfdjsKIC0tIE1pc21hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IAotLS0gUGF0dGVybiB0aGF0IGNhdXNlcyBtaXNtYXRjaGVzIHdpdGggbGVuZ3RoID4gMQotLS0g TWlzbWF0Y2ggaGFwcGVucyB3aGVuIHBhcnRpYWwgbWF0Y2ggZmFpbHMgYWZ0ZXIgcHJvY2Vzc2lu ZyBtdWx0aXBsZSByb3dzCistLSBQYXR0ZXJuIHdpdGggY29tcGxldGUgbWF0Y2ggZXZlcnkgY3lj bGU6IDAgbWlzbWF0Y2hlZAorLS0gQSgxLDIsMykgQig0LDUpIEMoNikgcmVwZWF0cyBwZXJmZWN0 bHk7IFggcm93cyBhcmUgcHJ1bmVkLCBub3QgbWlzbWF0Y2hlZAogQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCkBAIC04MzcsMzMgKzgzOCw2 IEBAIFdJTkRPVyB3IEFTICgKICknKTsKIERST1AgVklFVyBycHJfdjsKIAotLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBY TUwgRm9ybWF0IFRlc3RzCi0tLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLQotLS0gWE1MIGZvcm1hdCBvdXRwdXQKLUNSRUFURSBU RU1QIFZJRVcgcnByX3YgQVMKLVNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDMwKSBBUyBzKHYpCi1XSU5ET1cgdyBBUyAoCi0gICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCi0gICAgUEFUVEVSTiAoQSBCKQotICAgIERFRklORSBBIEFTIHYgJSAyID0g MSwgQiBBUyB2ICUgMiA9IDAKLSk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwotU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCi1FWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9S TUFUIFhNTCkKLVNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCi1XSU5ET1cgdyBBUyAoCi0gICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCi0gICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCi0gICAgUEFUVEVSTiAoQSBCKQotICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2 ICUgMiA9IDAKLSknKTsKLURST1AgVklFVyBycHJfdjsKLQogLS0gSlNPTiBmb3JtYXQgd2l0aCBt aXNtYXRjaCBzdGF0aXN0aWNzCiAtLSBQYXR0ZXJuIEEgQiBDIGV4cGVjdHMgMSwyLDMgYnV0IGdl dHMgMSwyLDQgdHdpY2UgY2F1c2luZyBtaXNtYXRjaGVzCiBDUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCkBAIC05MTIsNiArODg2LDMzIEBAIFdJTkRPVyB3IEFTICgKICknKTsKIERST1AgVklFVyBy cHJfdjsKIAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBYTUwgRm9ybWF0IFRlc3RzCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gWE1MIGZv cm1hdCBvdXRwdXQKK0NSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAg IERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFUIFhNTCkKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBB IEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyknKTsKK0RST1AgVklFVyBycHJfdjsKKwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSBNdWx0aXBsZSBQYXJ0aXRpb25zIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX25mYS5zcWwKaW5kZXggYTNmMDFiNjBiYzQuLmMwZjRkZmExMjQ4IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfbmZhLnNxbApAQCAtMjU1LDYgKzI1NSwxMTkgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncykKICk7CiAKKy0tIEFic29ycHRpb24gd2l0aCBmaXhlZCBz dWZmaXg6IEErIEIKK1dJVEggdGVzdF9hYnNvcmJfc3VmZml4IEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10p LAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VM RUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9zdWZmaXgK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVY VCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gUGVy LWJyYW5jaCBhYnNvcnB0aW9uIHdpdGggQUxUOiBCKyBDIHwgQisgRAorV0lUSCB0ZXN0X2Fic29y Yl9hbHQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10p LAorICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3RfYWJzb3JiX2FsdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEIrIEMgfCBCKyBEKQor ICAgIERFRklORQorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMg J0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworCist LSBOb24tYWJzb3JiYWJsZTogQSBCKyAodW5ib3VuZGVkIG5vdCBpbiBmaXJzdCBwb3NpdGlvbikK K1dJVEggdGVzdF9ub19hYnNvcmIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAg ICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAg KDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBB UlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfbm9fYWJzb3JiCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo QSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAg ICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIEdST1VQIG1lcmdlIGVuYWJsZXMgYWJz b3JwdGlvbjogKEEgQikgKEEgQikrIG9wdGltaXplZCB0byAoQSBCKXsyLH0KK1dJVEggdGVzdF9h YnNvcmJfZ3JvdXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwg QVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDYsIEFSUkFZWydCJ10pLAorICAgICAgICAoNywgQVJSQVlbJ1gnXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X2Fic29yYl9ncm91cAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBIEIpIChBIEIp KykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE11bHRpcGxlIHVuYm91bmRlZDogQSsgQisg KGZpcnN0IGVsZW1lbnQgdW5ib3VuZGVkIGVuYWJsZXMgYWJzb3JwdGlvbikKK1dJVEggdGVzdF9t dWx0aV91bmJvdW5kZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFS UkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsn WCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfZW5kCitGUk9NIHRlc3RfbXVsdGlfdW5ib3VuZGVkCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo QSsgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAg ICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCiAtLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIENvbnRleHQgTGlmZWN5 Y2xlCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KQEAgLTUyNCw3ICs2MzcsOCBAQCBXSU5ET1cgdyBBUyAoCiApOwogCiAtLSBP cHRpb25hbCByZWx1Y3RhbnQgZ3JvdXA6IChBIEIpPz8gQwotLS0gbmZhX2FkdmFuY2VfYmVnaW46 IHJlbHVjdGFudCBwcmVmZXJzIHNraXAgKDAgaXRlcmF0aW9ucykgb3ZlciBlbnRlcgorLS0gbmZh X2FkdmFuY2VfYmVnaW46IHJlbHVjdGFudCB0cmllcyBza2lwIGZpcnN0LCBidXQgc2tpcCBwYXRo IG5lZWRzIEMKKy0tIGF0IHJvdyAxIHdoaWNoIGlzIEEg4oaSIHNraXAgZmFpbHMuIEVudGVyIHBh dGggc3VjY2VlZHM6IEEoMSkgQigyKSBDKDMpLgogV0lUSCB0ZXN0X29wdGlvbmFsX3JlbHVjdGFu dCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKQEAgLTU3MSw2ICs2ODUsMzYgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBCIEFTICdCJyA9 IEFOWShmbGFncykKICk7CiAKKy0tIFJlbHVjdGFudCBvcHRpb25hbCBncm91cCBza2lwLXRvLUZJ TgorLS0gV2hlbiBhIHJlbHVjdGFudCBvcHRpb25hbCBncm91cCdzIHNraXAgcGF0aCByZWFjaGVz IEZJTiwgdGhlIGdyb3VwCistLSBlbnRyeSBwYXRoIGlzIGFiYW5kb25lZCAobm9kZVdpbmRvd0Fn Zy5jIG5mYV9hZHZhbmNlX2JlZ2luKS4KKy0tIFBhdHRlcm46IEMgKEEgQik/PyAtLSBhZnRlciBD IG1hdGNoZXMsIHRoZSByZWx1Y3RhbnQgZ3JvdXAgKEEgQik/PworLS0gcHJlZmVycyB0byBza2lw LiAgU2tpcCBnb2VzIHRvIEZJTiAoZ3JvdXAgaXMgbGFzdCBlbGVtZW50KSwgc28KKy0tIHRoZSBt YXRjaCBjb21wbGV0ZXMgd2l0aCBqdXN0IEMuCitXSVRIIHRlc3RfYmVnaW5fc2tpcF9maW4gQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0MnXSksCisg ICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAg ICAoNCwgQVJSQVlbJ0MnLCdBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0InXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9iZWdpbl9za2lwX2ZpbgorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4g KEMgKEEgQik/PykKKyAgICBERUZJTkUKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSBNYXRjaCBQaGFzZQogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xMTk4LDYgKzEz NDIsNTAgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKICk7 CiAKKy0tIEErPyBCIChyZWx1Y3RhbnQgcGx1cyk6IGV4aXRzIEEgYXQgZmlyc3QgQiBhdmFpbGFi aWxpdHkKKy0tIChTYW1lIHNjZW5hcmlvIGFzIGdyZWVkeS12cy1yZWx1Y3RhbnQgY29tcGFyaXNv biBhYm92ZTsgcmV0YWluZWQgZm9yCistLSBzdGFuZGFsb25lIHF1YW50aWZpZXIgY292ZXJhZ2Ug YWxvbmdzaWRlIEF7MSwzfT8gYW5kIEF7MiwzfT8gYmVsb3cpCitXSVRIIHRlc3RfcmVsdWN0YW50 X3BsdXMgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnLCdfJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMywgQVJS QVlbJ0EnLCdCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InLCdfJ10pCisgICAgKSBBUyB0KGlk LCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVz dF9yZWx1Y3RhbnRfcGx1cworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpCispOworCistLSBBezEsM30/IEIgKHJlbHVjdGFudCBib3VuZGVkKTogc2FtZSBkYXRh LCBib3VuZGVkIHF1YW50aWZpZXIKK1dJVEggdGVzdF9yZWx1Y3RhbnRfYm91bmRlZCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ18nXSksCisg ICAgICAgICgyLCBBUlJBWVsnQScsJ18nXSksCisgICAgICAgICgzLCBBUlJBWVsnQScsJ0InXSks CisgICAgICAgICg0LCBBUlJBWVsnQicsJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwg bGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9i b3VuZGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezEsM30/IEIpCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp CispOworCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIFBhdGhvbG9naWNhbCBQYXR0ZXJuIFJ1bnRpbWUgUHJvdGVjdGlv bgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CkBAIC0xNDgxLDYgKzE2NjksMjExIEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAg QiBBUyAnQicgPSBBTlkoZmxhZ3MpCiApOwogCistLSBPdmVybGFwcGluZyBtYXRjaDogQSBCIEMg RCBFIHwgQiBDIEQgfCBDIEQgRSBGIChTS0lQIFBBU1QgTEFTVCBST1cpCitXSVRIIHRlc3Rfb3Zl cmxhcDEgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10p LAorICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCisgICAgICAgICg1LCBBUlJBWVsnRSddKSwKKyAg ICAgICAgKDYsIEFSUkFZWydGJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vdmVybGFwMQorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCIEMgRCBFIHwgQiBDIEQgfCBDIEQgRSBGKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFO WShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRiBBUyAn RicgPSBBTlkoZmxhZ3MpCispOworCistLSBTYW1lIHdpdGggU0tJUCBUTyBORVhUIFJPVzogdGhy ZWUgb3ZlcmxhcHBpbmcgbWF0Y2hlcworV0lUSCB0ZXN0X292ZXJsYXAxIEFTICgKKyAgICBTRUxF Q1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZ WydEJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0UnXSksCisgICAgICAgICg2LCBBUlJBWVsnRidd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3Rfb3ZlcmxhcDEKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIgQyBEIEUg fCBCIEMgRCB8IEMgRCBFIEYpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9 IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRSBB UyAnRScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBGIEFTICdGJyA9IEFOWShmbGFncykKKyk7CisK Ky0tIExvbmdlciBwYXR0ZXJuIGZhaWxzLCBzaG9ydGVyIHN1cnZpdmVzOiBBKyBCIEMgRCBFIHwg QisgQworV0lUSCB0ZXN0X292ZXJsYXAxYiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAg ICAgICAoMywgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCBBUlJBWVsnRCddKSwKKyAgICAgICAg KDUsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vdmVybGFwMWIKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKEErIEIgQyBEIEUgfCBCKyBDKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBB UyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAg ICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gTG9uZyBCIHNlcXVlbmNlIHdpdGgg ZGlmZmVyZW50IGVuZGluZ3M6IEEgQisgQyB8IEIrIEQKK1dJVEggdGVzdF9vdmVybGFwMiBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAg ICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg2LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg4 LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwg QVJSQVlbJ0QnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X292ZXJsYXAyCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo QSBCKyBDIHwgQisgRCkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworCistLSBHcmVlZHkg d2l0aCBsYXRlIGZhaWx1cmUgKCJiZXRyYXlhbCIpOiBBIEIgQysgRCB8IEEgQgorV0lUSCB0ZXN0 X2JldHJheWFsIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFS UkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsn QyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydDJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSks CisgICAgICAgICg2LCBBUlJBWVsnRSddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxF Q1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYmV0cmF5YWwKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEEgQiBDKyBEIHwgQSBCKQorICAgIERFRklORQorICAgICAgICBBIEFT ICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAg ICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykK Kyk7CisKKy0tIE11bHRpcGxlIFRSVUUgcGVyIHJvdzogb3ZlcmxhcHBpbmcgcGF0dGVybiB2YXJp YWJsZXMKK1dJVEggdGVzdF9tdWx0aV90cnVlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJywn QyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJywnRCddKSwKKyAgICAgICAgKDQsIEFSUkFZWydE JywnRSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydFJywnXyddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbXVs dGlfdHJ1ZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFO WShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gRGlhZ29u YWwgcGF0dGVybiB3aXRoIHNoaWZ0ZWQgbXVsdGktVFJVRSBvdmVybGFwCitXSVRIIHRlc3RfZGlh Z29uYWwgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnLCdfJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InLCdBJ10pLAorICAgICAgICAoMywgQVJS QVlbJ0MnLCdCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0QnLCdDJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ18nLCdEJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9kaWFnb25hbAorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRF Uk4gKEEgQiBDIEQpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gKChBIHwgQikg QykrIC0gYWx0ZXJuYXRpb24gaW5zaWRlIGdyb3VwIHdpdGggb3V0ZXIgcXVhbnRpZmllcgorV0lU SCB0ZXN0X2FsdF9ncm91cCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydDJ10pLAorICAgICAgICAoMywg QVJSQVlbJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDUsIEFSUkFZ WydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfZ3JvdXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgo QSB8IEIpIEMpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZs YWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSBEZWVwIE5lc3RlZCBHcm91cHMKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMTYy NSw2ICsyMDE4LDU1IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxh Z3MpCiApOwogCistLSAoQSBCKXsyfSAtIGdyb3VwIHdpdGggZXhhY3QgcXVhbnRpZmllcgorV0lU SCB0ZXN0X2dyb3VwX2V4YWN0IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgz LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJS QVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2dyb3VwX2V4YWN0CitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO ICgoQSBCKXsyfSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE5lc3RlZCBFTkQtPkVORCBm YXN0LWZvcndhcmQKKy0tIFdoZW4gYW4gaW5uZXIgZ3JvdXAgaGFzIGEgbnVsbGFibGUgYm9keSBh bmQgY291bnQgPCBtaW4sIHRoZQorLS0gZmFzdC1mb3J3YXJkIHBhdGggZXhpdHMgdGhyb3VnaCB0 aGUgb3V0ZXIgRU5ELCBpbmNyZW1lbnRpbmcKKy0tIHRoZSBvdXRlciBncm91cCdzIGNvdW50IChu b2RlV2luZG93QWdnLmMgbmZhX2FkdmFuY2VfZW5kKS4KKy0tIFBhdHRlcm46ICgoQT8pezIsM30p ezIsM30gLS0gbmVzdGVkIGdyb3VwcywgbmVpdGhlciBjb2xsYXBzZXMKKy0tIGJlY2F1c2UgdGhl IG9wdGltaXplciBjYW5ub3Qgc2FmZWx5IG11bHRpcGx5IG5vbi1leGFjdCBxdWFudGlmaWVycy4K Ky0tIERhdGEgaGFzIG5vIEEgcm93cywgZm9yY2luZyBhbGwtZW1wdHkgaXRlcmF0aW9ucyB2aWEg ZmFzdC1mb3J3YXJkLgorV0lUSCB0ZXN0X25lc3RlZF9mZiBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydC J10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF9uZXN0ZWRfZmYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoKEE/KXsyLDN9KXsyLDN9KQorICAg IERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0g U0tJUCBPcHRpb25zIChSdW50aW1lKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xNzUxLDYgKzIxOTMsOCBAQCBPUkRF UiBCWSBtb2RlLCBpZDsKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBJTklUSUFMIE1vZGUgKFJ1bnRpbWUpCistLSBQ bGFjZWhvbGRlcjogSU5JVElBTCBpcyBub3QgeWV0IGltcGxlbWVudGVkIChzeW50YXggZXJyb3Ip LgorLS0gS2VwdCBoZXJlIHNvIHRlc3RzIGNvbnZlcnQgdG8gcnVudGltZSB0ZXN0cyB3aGVuIGlt cGxlbWVudGVkLgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAKIC0tIElOSVRJQUwgbW9kZSAobm90IHlldCBzdXBwb3J0ZWQg LSBwcm9kdWNlcyBzeW50YXggZXJyb3IpCkBAIC0xOTE3LDYgKzIzNjEsNjIgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKICk7CiAKKy0tIE4gRk9MTE9XSU5H ICsgU0tJUCBUTyBORVhUIFJPVzogb3ZlcmxhcHBpbmcgbWF0Y2hlcyBib3VuZGVkIGJ5IGZyYW1l CistLSBSb3cgMTogZnJhbWUgWzEsNF0sIEEoMS0zKSBCKDQpIC0+IG1hdGNoCistLSBSb3cgMjog ZnJhbWUgWzIsNV0sIEEoMi0zKSBCKDQpIC0+IG1hdGNoCistLSBSb3cgMzogZnJhbWUgWzMsNl0s IEEoMykgQig0KSAtPiBtYXRjaAorLS0gUm93IDU6IGZyYW1lIFs1LDZdLCBBKDUpIEIoNikgLT4g bWF0Y2gKK1dJVEggdGVzdF9uX3NraXBfbmV4dCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDUsIEFSUkFZWydBJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9lbmQKK0ZST00gdGVzdF9uX3NraXBfbmV4dAorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAzIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERF RklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0g QU5ZKGZsYWdzKQorKTsKKworLS0gRnJhbWUgZXhhY3RseSAxIHJvdyBzaG9ydCBvZiBwb3RlbnRp YWwgbWF0Y2gKKy0tIEZyb20gcm93IDE6IEEgQSBBIEIgbmVlZHMgNCByb3dzIGJ1dCBmcmFtZSBo b2xkcyAzIC0+IG5vIG1hdGNoCistLSBGcm9tIHJvdyAyOiBBIEEgQiBmaXRzIGluIDMtcm93IGZy YW1lIC0+IG1hdGNoCitXSVRIIHRlc3RfZnJhbWVfb25lX3Nob3J0IEFTICgKKyAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJS QVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydC J10pLAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKQor ICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2ZyYW1lX29uZV9zaG9ydAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAy IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJO IChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTcGVjaWFsIFBhcnRp dGlvbiBDYXNlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CkBAIC0yNTY3LDcgKzMwNjcsOCBAQCBXSU5ET1cgdyBBUyAoCiAK IC0tIChBPyl7MCwzfTogbWluPTAsIG51bGxhYmxlIGlubmVyLgogLS0gQSBuZXZlciBtYXRjaGVz LiBBPyBtYXRjaGVzIGVtcHR5LCBtaW49MCBzYXRpc2ZpZWQgaW1tZWRpYXRlbHkuCi0tLSBFeHBl Y3RlZDogZW1wdHkgbWF0Y2ggKG1hdGNoX3N0YXJ0ID0gbWF0Y2hfZW5kKSBmb3IgZXZlcnkgcm93 CistLSBQZXIgc3RhbmRhcmQ6IGVtcHR5IG1hdGNoIGV4cGVjdGVkIGZvciBldmVyeSByb3cuCist LSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJsb2NrcyBlbXB0eSBpdGVyYXRpb24g4oaSIG5vIG1hdGNo IChzYW1lIGFzIHsyLDN9KQogV0lUSCB0ZXN0XzcyOF9taW4wIEFTICgKICAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydCJ10pLApAQCAtMjU5MCw3ICszMDkxLDgg QEAgV0lORE9XIHcgQVMgKAogCiAtLSAoQT8pezEsM306IG1pbj0xLCBudWxsYWJsZSBpbm5lci4K IC0tIEEgbmV2ZXIgbWF0Y2hlcy4gTmVlZCAxIGVtcHR5IGl0ZXJhdGlvbiB0byBzYXRpc2Z5IG1p bj0xLgotLS0gRXhwZWN0ZWQ6IGVtcHR5IG1hdGNoIGZvciBldmVyeSByb3cKKy0tIFBlciBzdGFu ZGFyZDogZW1wdHkgbWF0Y2ggZXhwZWN0ZWQgZm9yIGV2ZXJ5IHJvdy4KKy0tIFhYWDogdmlzaXRl ZCBiaXRtYXAgYmxvY2tzIGVtcHR5IGl0ZXJhdGlvbiDihpIgbm8gbWF0Y2ggKHNhbWUgYXMgezIs M30pCiBXSVRIIHRlc3RfNzI4X21pbjEgQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwog ICAgICAgICAoMSwgQVJSQVlbJ0InXSksCkBAIC0yNjM5LDcgKzMxNDEsOCBAQCBXSU5ET1cgdyBB UyAoCiAtLSAoQT8pezIsM30gbWl4ZWQ6IHNvbWUgcm93cyBtYXRjaCBBLCBzb21lIGRvbid0CiAt LSBSb3dzIDEtMjogQSBtYXRjaGVzLCBncmVlZHkgdGFrZXMgMiDihpIgbWluIHNhdGlzZmllZAog LS0gUm93IDM6IEEgZG9lc24ndCBtYXRjaCwgbmVlZHMgMiBlbXB0eSBpdGVyYXRpb25zIGZvciBt aW49MgotLS0gRXhwZWN0ZWQ6IGFsbCByb3dzIHByb2R1Y2UgbWF0Y2hlcworLS0gWFhYOiBSb3cg MyBmYWlscyBkdWUgdG8gdmlzaXRlZCBiaXRtYXAgKHNhbWUgYXMgcHVyZSBlbXB0eSB7MiwzfSkK Ky0tIFJvdyA0OiBBIG1hdGNoZXMgMSByZWFsIGl0ZXIgKyAxIGZmIGVtcHR5IGV4aXQg4oaSIG1h dGNoIDQtNAogV0lUSCB0ZXN0XzcyOF9taW4yX21peGVkIEFTICgKICAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKICAgICAgICAgKDEsIEFSUkFZWydBJ10pLApAQCAtMjc3Myw0ICszMjc2LDMgQEAg V0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIHByaWNlID4gMTAwLAogICAgICAgICBCIEFTIFRS VUUKICk7Ci0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0004-keep-test-objects.txt" Content-Disposition: attachment; filename="0004-keep-test-objects.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufi683 RnJvbSBmOWM4MGUzN2JiYzQ5MzczN2VkMDRkMjM3YWJkZDQxMTVkNWE0MTJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDMgTWFyIDIwMjYgMTk6MzI6MjQgKzA5MDAKU3ViamVjdDogW1BBVENIIDA0LzEyXSBL ZWVwIFJQUiB0ZXN0IG9iamVjdHMgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0aW5nCgotLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0ICAgIHwgIDE4ICstCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCB8IDUwNCArKysrKysrKystLS0t LS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICAgICB8ICAy OSArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAgfCA0ODQgKysr KysrKysrLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDQxMCBpbnNlcnRpb25zKCspLCA2 MjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRl eCAzMzgzYjI0MmVmMC4uYWU2ZDljOWI5MzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0CkBAIC0xMiw3ICsxMiw3IEBACiAtLSAgIFF1YW50aWZpZXJzIFRlc3RzCiAtLSAg IE5hdmlnYXRpb24gRnVuY3Rpb25zIFRlc3RzCiAtLSAgIFNLSVAgVE8gLyBJTklUSUFMIFRlc3Rz Ci0tLSAgIFNlcmlhbGl6YXRpb24vRGVzZXJpYWxpemF0aW9uIFRlc3RzCistLSAgIFNlcmlhbGl6 YXRpb24vRGVzZXJpYWxpemF0aW9uIFRlc3RzIChvYmplY3RzIGtlcHQgZm9yIHBnX3VwZ3JhZGUv cGdfZHVtcCkKIC0tICAgRXJyb3IgQ2FzZXMgVGVzdHMKIC0tCiAtLSBQbGFubmVyIExheWVyOgpA QCAtMTkzMCw3ICsxOTMwLDYgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Yx Jzo6cmVnY2xhc3MpOwogICAgYSBBUyAodmFsID4gMCkgKTsKICgxIHJvdykKIAotRFJPUCBWSUVX IHJwcl9zZXJpYWxfdjE7CiAtLSBDb21wbGV4IHBhdHRlcm4gd2l0aCBhbHRlcm5hdGlvbgogQ1JF QVRFIFZJRVcgcnByX3NlcmlhbF92MiBBUwogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKQEAgLTE5NjcsNyArMTk2Niw2IEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnBy X3NlcmlhbF92Mic6OnJlZ2NsYXNzKTsKICAgIGIgQVMgKHZhbCA8PSAyMCkgKTsKICgxIHJvdykK IAotRFJPUCBWSUVXIHJwcl9zZXJpYWxfdjI7CiAtLSBQYXR0ZXJuIHdpdGggZ3JvdXBpbmcgYW5k IHF1YW50aWZpZXJzCiBDUkVBVEUgVklFVyBycHJfc2VyaWFsX3YzIEFTCiBTRUxFQ1QgaWQsIHZh bCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApAQCAtMjAwOCw3ICsyMDA2LDYgQEAgU0VMRUNUIHBn X2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3YzJzo6cmVnY2xhc3MpOwogICAgYyBBUyAodmFsIDw9 IDEwKSApOwogKDEgcm93KQogCi1EUk9QIFZJRVcgcnByX3NlcmlhbF92MzsKIC0tIEFsbCBmZWF0 dXJlcyBjb21iaW5lZAogQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF92NCBBUwogU0VMRUNUIGlkLCB2 YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKQEAgLTIwNTMsNyArMjA1MCw2IEBAIFNFTEVDVCBw Z19nZXRfdmlld2RlZigncnByX3NlcmlhbF92NCc6OnJlZ2NsYXNzKTsKICAgIGZpbmlzaCBBUyAo dmFsID4gMTUpICk7CiAoMSByb3cpCiAKLURST1AgVklFVyBycHJfc2VyaWFsX3Y0OwogLS0gQWRk aXRpb25hbCBxdWFudGlmaWVycyBmb3IgZGVwYXJzaW5nIGNvdmVyYWdlCiAtLSA/IHF1YW50aWZp ZXIgKHplcm8gb3Igb25lKQogQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF92NSBBUwpAQCAtMjA5MSw3 ICsyMDg3LDYgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y1Jzo6cmVnY2xh c3MpOwogICAgYiBBUyAodmFsID4gMjApICk7CiAoMSByb3cpCiAKLURST1AgVklFVyBycHJfc2Vy aWFsX3Y1OwogLS0ge24sfSBxdWFudGlmaWVyIChuIG9yIG1vcmUpCiBDUkVBVEUgVklFVyBycHJf c2VyaWFsX3Y2IEFTCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApAQCAt MjEyNyw3ICsyMTIyLDYgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y2Jzo6 cmVnY2xhc3MpOwogICAgYSBBUyAodmFsID4gMTUpICk7CiAoMSByb3cpCiAKLURST1AgVklFVyBy cHJfc2VyaWFsX3Y2OwogLS0ge259IHF1YW50aWZpZXIgKGV4YWN0bHkgbikKIENSRUFURSBWSUVX IHJwcl9zZXJpYWxfdjcgQVMKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CkBAIC0yMTYzLDcgKzIxNTcsNiBAQCBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxf djcnOjpyZWdjbGFzcyk7CiAgICBhIEFTICh2YWwgPiAwKSApOwogKDEgcm93KQogCi1EUk9QIFZJ RVcgcnByX3NlcmlhbF92NzsKIC0tIE5lc3RlZCBBTFQgcGF0dGVybiAodGVzdHMgZGVwYXJzZSBv ZiBjb21wbGV4IG5lc3RlZCBzdHJ1Y3R1cmUpCiBDUkVBVEUgVklFVyBycHJfc2VyaWFsX3Y4IEFT CiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApAQCAtMjIwMiw3ICsyMTk1 LDYgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y4Jzo6cmVnY2xhc3MpOwog ICAgZCBBUyAodmFsID4gMzApICk7CiAoMSByb3cpCiAKLURST1AgVklFVyBycHJfc2VyaWFsX3Y4 OwogLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxz CiBDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcKQEAgLTIyMjgsNyArMjIyMCw2IEBAIFNFTEVDVCBwZ19nZXRfdmlld2Rl ZigncnByX3F1YW50X3JlbHVjdGFudF92Jzo6cmVnY2xhc3MpOwogICAgYiBBUyAodmFsID4gMCkg KTsKICgxIHJvdykKIAotRFJPUCBWSUVXIHJwcl9xdWFudF9yZWx1Y3RhbnRfdjsKIC0tIE1hdGVy aWFsaXplZCB2aWV3IChpZiBzdXBwb3J0ZWQpCiBDUkVBVEUgVEFCTEUgcnByX212aWV3IChpZCBJ TlQsIHZhbCBJTlQpOwogSU5TRVJUIElOVE8gcnByX212aWV3IFZBTFVFUyAoMSwgMTApLCAoMiwg MjApLCAoMywgMzApOwpAQCAtMjI3NCw4ICsyMjY1LDYgQEAgU0VMRUNUICogRlJPTSBycHJfbXZp ZXdfdjEgT1JERVIgQlkgaWQ7CiAgIDMgfCAgMzAgfCAgIDAKICgzIHJvd3MpCiAKLURST1AgTUFU RVJJQUxJWkVEIFZJRVcgcnByX212aWV3X3YxOwotRFJPUCBUQUJMRSBycHJfbXZpZXc7CiAtLSBD UkVBVEUgVEFCTEUgQVMgU0VMRUNUIHdpdGggUlBSCiBDUkVBVEUgVEFCTEUgcnByX2N0YXMgKGlk IElOVCwgdmFsIElOVCk7CiBJTlNFUlQgSU5UTyBycHJfY3RhcyBWQUxVRVMgKDEsIDEwKSwgKDIs IDIwKSwgKDMsIDE1KSwgKDQsIDI1KTsKQEAgLTI2NzcsOCArMjY2Niw2IEBAIFNFTEVDVCBwZ19n ZXRfdmlld2RlZigncnByX211bHRpd2luX3YnOjpyZWdjbGFzcyk7CiAgICBiIEFTICh2YWwgPD0g MTUpICk7CiAoMSByb3cpCiAKLURST1AgVklFVyBycHJfbXVsdGl3aW5fdjsKLURST1AgVEFCTEUg cnByX211bHRpd2luOwogLS0ge259IHF1YW50aWZpZXIgZGlzcGxheSBpbiB2aWV3CiBDUkVBVEUg VklFVyBycHJfcXVhbnRfbl92IEFTCiBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CkBA IC0yNzAzLDcgKzI2OTAsNiBAQCBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9uX3Yn OjpyZWdjbGFzcyk7CiAgICBhIEFTICh2YWwgPiAwKSApOwogKDEgcm93KQogCi1EUk9QIFZJRVcg cnByX3F1YW50X25fdjsKIC0tIHtuLH0gcXVhbnRpZmllciBkaXNwbGF5IGluIHZpZXcKIENSRUFU RSBWSUVXIHJwcl9xdWFudF9uX3BsdXNfdiBBUwogU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9W RVIgdwpAQCAtMjcyOCw4ICsyNzE0LDYgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfcXVh bnRfbl9wbHVzX3YnOjpyZWdjbGFzcyk7CiAgICBhIEFTICh2YWwgPiAwKSApOwogKDEgcm93KQog Ci1EUk9QIFZJRVcgcnByX3F1YW50X25fcGx1c192OwotRFJPUCBUQUJMRSBycHJfc2VyaWFsOwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSBFcnJvciBDYXNlcyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDgxNzI2OTAyMWY0Li4zYzcwYTEyODc0YSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTMsNiArMyw5IEBA CiAtLSBUZXN0cyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gRVhQTEFJTiBvdXRwdXQKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0KKy0tIFZpZXdzIGFuZCB0YWJsZXMgaW4gdGhpcyBmaWxlIGFyZSBpbnRlbnRpb25h bGx5IG5vdCBkcm9wcGVkLAorLS0gc28gdGhhdCBwZ191cGdyYWRlL3BnX2R1bXAgY2FuIHRlc3Qg UlBSIHN5bnRheCBzZXJpYWxpemF0aW9uLgorLS0KIC0tIFRoaXMgdGVzdCBzdWl0ZSB2YWxpZGF0 ZXMgRVhQTEFJTiBvdXRwdXQgZm9yIFJQUiBxdWVyaWVzLAogLS0gaW5jbHVkaW5nIE5GQSBzdGF0 aXN0aWNzIHNob3duIGluIEVYUExBSU4gQU5BTFlaRToKIC0tICAgLSBORkEgU3RhdGVzOiBwZWFr LCB0b3RhbCwgbWVyZ2VkCkBAIC03NCwxMyArNzcsMTMgQEAgYmVnaW4KIGVuZDsKICQkOwogLS0g U2V0dXA6IENyZWF0ZSB0ZXN0IHRhYmxlcwotQ1JFQVRFIFRFTVAgVEFCTEUgbmZhX3Rlc3QgKAor Q1JFQVRFIFRBQkxFIHJwcl9uZmFfdGVzdCAoCiAgICAgaWQgc2VyaWFsLAogICAgIHYgaW50LAog ICAgIGNhdCBjaGFyKDEpCiApOwogLS0gSW5zZXJ0IHRlc3QgZGF0YTogMTAwIHJvd3Mgd2l0aCBw cmVkaWN0YWJsZSBwYXR0ZXJuCi1JTlNFUlQgSU5UTyBuZmFfdGVzdCAodiwgY2F0KQorSU5TRVJU IElOVE8gcnByX25mYV90ZXN0ICh2LCBjYXQpCiBTRUxFQ1QgaSwKICAgICAgICBDQVNFCiAgICAg ICAgICAgIFdIRU4gaSAlIDUgPSAxIFRIRU4gJ0EnCkBAIC05MSwxMiArOTQsMTIgQEAgU0VMRUNU IGksCiAgICAgICAgRU5ECiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIGk7CiAtLSBBZGRp dGlvbmFsIHRlc3QgdGFibGUgd2l0aCBtb3JlIGNvbXBsZXggcGF0dGVybnMKLUNSRUFURSBURU1Q IFRBQkxFIG5mYV9jb21wbGV4ICgKK0NSRUFURSBUQUJMRSBycHJfbmZhX2NvbXBsZXggKAogICAg IGlkIHNlcmlhbCwKICAgICBwcmljZSBpbnQsCiAgICAgdHJlbmQgY2hhcigxKSAgLS0gVT11cCwg RD1kb3duLCBTPXN0YWJsZQogKTsKLUlOU0VSVCBJTlRPIG5mYV9jb21wbGV4IChwcmljZSwgdHJl bmQpCitJTlNFUlQgSU5UTyBycHJfbmZhX2NvbXBsZXggKHByaWNlLCB0cmVuZCkKIFZBTFVFUwog ICAgICgxMDAsICdTJyksICgxMDUsICdVJyksICgxMTAsICdVJyksICgxMDgsICdEJyksICgxMTIs ICdVJyksCiAgICAgKDExNSwgJ1UnKSwgKDExMywgJ0QnKSwgKDExMSwgJ0QnKSwgKDEwOSwgJ0Qn KSwgKDExMCwgJ1UnKSwKQEAgLTEwOCwxNiArMTExLDE2IEBAIFZBTFVFUwogLS0gQmFzaWMgTkZB IFN0YXRpc3RpY3MgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2ltcGxlIHBhdHRlcm4gLSBzaG91bGQgc2hv dyBiYXNpYyBzdGF0aXN0aWNzCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklF VyBycHJfZXYwMSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwotRlJPTSBuZmFfdGVzdAorRlJP TSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFT IGNhdCA9ICdCJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjAxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEg YikgCkBAIC0xMjYsNyArMTI5LDcgQEAgU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1G Uk9NIG5mYV90ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKAogICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVwpAQCAtMTQzLDIxICsxNDYsMjAgQEAgV0lORE9XIHcgQVMg KAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEwMSB0b3RhbCwgNjAgcHJ1bmVkCiAgICBORkE6 IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3Ji ZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQotICAgLT4gIFNlcSBTY2FuIG9uIG5mYV90ZXN0 IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZh X3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVX IHJwcl92OwogLS0gUGF0dGVybiB3aXRoIG5vIG1hdGNoZXMgLSAwIG1hdGNoZWQKLUNSRUFURSBU RU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjAyIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMg KAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwog ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKFggWSBaKQog ICAgIERFRklORSBYIEFTIGNhdCA9ICdYJywgWSBBUyBjYXQgPSAnWScsIFogQVMgY2F0ID0gJ1on CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MDInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAg IGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHggeSB6KSAK QEAgLTE2Niw3ICsxNjgsNyBAQCBTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZQogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00g bmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCkBAIC0xODIsMjEgKzE4NCwyMCBAQCBXSU5ET1cgdyBBUyAoCiAg ICBORkEgU3RhdGVzOiAxIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0 czogMiBwZWFrLCAxMDEgdG90YWwsIDEwMCBwcnVuZWQKICAgIE5GQTogMCBtYXRjaGVkLCAwIG1p c21hdGNoZWQKLSAgIC0+ICBTZXEgU2NhbiBvbiBuZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAw IGxvb3BzPTEpCisgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwgcm93cz0x MDAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIFBhdHRlcm4g bWF0Y2hpbmcgZXZlcnkgcm93IC0gaGlnaCBtYXRjaCBjb3VudAotQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MDMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK LUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCiAgICAgUEFUVEVSTiAoUikKICAgICBERUZJTkUgUiBB UyBUUlVFCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICBsaW5lICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChyKSAKQEAgLTIw NSw3ICsyMDYsNyBAQCBTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZQogU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rl c3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCkBAIC0yMjEsMTMgKzIyMiwxMiBAQCBXSU5ET1cgdyBBUyAoCiAgICBORkEg U3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBw ZWFrLCAxMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEwMCBtYXRjaGVkIChsZW4gMS8xLzEu MCksIDAgbWlzbWF0Y2hlZAotICAgLT4gIFNlcSBTY2FuIG9uIG5mYV90ZXN0IChhY3R1YWwgcm93 cz0xMDAuMDAgbG9vcHM9MSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVh bCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDggcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0g UmVncmVzc2lvbiB0ZXN0OiBTcGFjZSBiZWZvcmUgcGFyZW50aGVzaXMgaW4gcGF0dGVybiBkZXBh cnNlCiAtLSBWZXJpZmllcyB0aGF0ICJBIChCIHwgQykiIGNvcnJlY3RseSBvdXRwdXRzIGFzICJh IChiIHwgYykiIHdpdGggc3BhY2UKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBW SUVXIHJwcl9ldjA0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAyMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjM1LDcgKzIzNSw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIChCIHwgQykpCiAgICAgREVGSU5FIEEgQVMgdiAl IDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIChiIHwgYykpIApAQCAtMjYz LDExICsyNjMsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1E Uk9QIFZJRVcgcnByX3Y7CiAtLSBSZWdyZXNzaW9uIHRlc3Q6IFNlcXVlbnRpYWwgYWx0ZXJuYXRp b25zIGF0IHNhbWUgZGVwdGgKIC0tIFZlcmlmaWVzIHRoYXQgIigoQiB8IEMpIChEIHwgRSkpIiBj b3JyZWN0bHkgb3V0cHV0cyBhcyAiKGIgfCBjKSAoZCB8IGUpIgogLS0gUHJldmlvdXNseSBmYWls ZWQgZHVlIHRvIG1pc3NpbmcgcGFyZW50aGVzZXMgb24gQUxUIGRlcHRoIGRlY3JlYXNlCi1DUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYwNSBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTI3NSw3ICsyNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QSAoKEIgfCBDKSAoRCB8IEUpKSopCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPSAxLCBCIEFTIHYg JSA1ID0gMiwgQyBBUyB2ICUgNSA9IDMsIEQgQVMgdiAlIDUgPSA0LCBFIEFTIHYgJSA1ID0gMAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djA1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAg ICAgICAgbGluZSAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOIChhICgoYiB8IGMpIChkIHwgZSkpKikgCkBAIC0zMDIsMTIgKzMw MSwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLURST1AgVklF VyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gU3RhdGUgU3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90YWws IG1lcmdlZCkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gU2ltcGxlIHF1YW50aWZpZXIgcGF0dGVybiAtIEErIHdpdGgg c2hvcnQgbWF0Y2hlcyAobm8gbWVyZ2luZykKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NS RUFURSBWSUVXIHJwcl9ldjA2IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzE2LDcgKzMxNCw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2ICUg MiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYwNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApAQCAt MzQ0LDExICszNDIsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOCByb3dzKQog Ci1EUk9QIFZJRVcgcnByX3Y7CiAtLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIC0gbXVsdGlwbGUgc3Rh dGUgYnJhbmNoZXMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djA3IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9u ZmFfdGVzdAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwpA QCAtMzU3LDcgKzM1NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScs IEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcs IEUgQVMgY2F0ID0gJ0UnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2MDcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIgfCBjKSAoZCB8IGUpKSAK QEAgLTM2Niw3ICszNjMsNyBAQCBTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZQogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00g bmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCkBAIC0zODUsMTIgKzM4MiwxMSBAQCBXSU5ET1cgdyBBUyAoCiAg ICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCAyMCBwcnVuZWQKICAgIE5GQTogMjAg bWF0Y2hlZCAobGVuIDIvMi8yLjApLCA0MCBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5G QTogMCBhYnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCi0gICAtPiAgU2VxIFNjYW4g b24gbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQog Ci1EUk9QIFZJRVcgcnByX3Y7CiAtLSBDb21wbGV4IHBhdHRlcm4gd2l0aCBoaWdoIHN0YXRlIGNv dW50Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYwOCBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00MDIsNyArMzk4LDcgQEAgV0lORE9XIHcgQVMgKAogICAg ICAgICBCIEFTIHYgJSAzID0gMiwKICAgICAgICAgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwOCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsgYiogYyspIApAQCAt NDM0LDkgKzQzMCw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAK LURST1AgVklFVyBycHJfdjsKIC0tIEdyb3VwZWQgcGF0dGVybiB3aXRoIHF1YW50aWZpZXIgLSBz dGF0ZSBjb3VudCB3aXRoIGdyb3VwaW5nCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVB VEUgVklFVyBycHJfZXYwOSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTQ0NSw3ICs0NDAsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYg JSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICBQQVRURVJOICgoYSBiKSspIApAQCAtNDc0LDEwICs0NjksOSBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJv d3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIFN0YXRl IGV4cGxvc2lvbiBwYXR0ZXJuIC0gbWFueSBhbHRlcm5hdGlvbnMKIC0tIFBhdHRlcm4gKEF8Qiko QXxCKShBfEIpKEF8QikgY2FuIGNyZWF0ZSBtYW55IHBhcmFsbGVsIHN0YXRlcwotQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MTAgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtNDg2LDcgKzQ4MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8 IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwg QikpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEwJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikgKGEgfCBiKSAo YSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSkgCkBAIC01MTUs MTAgKzUwOSw5IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURS T1AgVklFVyBycHJfdjsKIC0tIENvbnNlY3V0aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBkaWZm ZXJlbnQgQUxUCiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlQWx0cyBmbHVzaCBvbiBBTFQgY2hh bmdlOiAoQXxCKXsyfSAoQ3xEKQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2MTEgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC01MjcsNyArNTIwLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQyB8IEQpKQogICAgIERF RklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFT IHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjExJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGMg fCBkKSkgCkBAIC01NTYsMTAgKzU0OSw5IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQog KDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZv bGxvd2VkIGJ5IG5vbi1BTFQgZWxlbWVudAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMg Zmx1c2ggb24gbm9uLUFMVDogKEF8Qil7Mn0gYwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2MTIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC01NjgsNyArNTYw LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSBDKQogICAg IERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 MTInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgIFBBVFRFUk4gKChhIHwgYikgKGEgfCBiKSBjKSAKQEAgLTU5Nyw5ICs1ODksOCBAQCBXSU5E T1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0t IEFMVCBwcmVmaXgvc3VmZml4IGFic29yYmVkIGludG8gR1JPVVA6IChBfEIpIChBfEIpKyAoQXxC KSAtPiAoQXxCKXszLH0KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJw cl9ldjEzIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNjA4LDcgKzU5OSw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikrIChBIHwgQikpCiAgICAgREVGSU5F IEEgQVMgdiAlIDIgPSAwLCBCIEFTIHYgJSAyID0gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEzJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKChhIHwgYikgKGEgfCBiKSsgKGEgfCBiKSkgCkBAIC02MzcsOSArNjI4LDggQEAgV0lORE9X IHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTQwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBI aWdoIHN0YXRlIGNvdW50IC0gYWx0ZXJuYXRpb24gd2l0aCBwbHVzIHF1YW50aWZpZXIKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjE0IEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTY0OCw3ICs2MzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgfCBCIHwgQykrIEQpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0g MiwgQyBBUyB2ICUgNCA9IDMsIEQgQVMgdiAlIDQgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYiB8IGMpKyBk KSAKQEAgLTY3NywxMCArNjY3LDkgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDkg cm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gRWFybHkgdGVybWluYXRpb246IGZpcnN0IEFM VCBicmFuY2ggKEEpIHJlYWNoZXMgRklOIGltbWVkaWF0ZWx5LAogLS0gcHJ1bmluZyBzZWNvbmQg YnJhbmNoIChBIEIrKSBiZWZvcmUgaXQgY2FuIGFjY3VtdWxhdGUgQiByZXBldGl0aW9ucy4KLUNS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjE1IEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTY4OSw3ICs2NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoKEEgfCBBIEIpKykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjE1Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBh IGIpKykgCkBAIC03MTcsOSArNzA2LDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQog KDggcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gTmVzdGVkIHF1YW50aWZpZXJzIGNhdXNp bmcgc3RhdGUgZ3Jvd3RoCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBy cHJfZXYxNiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTAwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNzI4LDcgKzcxNiw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgfCBCKSspKykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2MTYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiAgICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKCgoYSB8IGIpKykrKSAKQEAgLTc1NywxMiArNzQ1LDEx IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcg cnByX3Y7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIENvbnRleHQgU3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90YWws IHBydW5lZCArIGFic29yYmVkL3NraXBwZWQpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIENvbnRleHQgYWJzb3JwdGlv biB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVyIGF0IHN0YXJ0Ci1DUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYxNyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTc3 MSw3ICs3NTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJ TkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjE3JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsgYikgCkBAIC04MDAsOSArNzg3LDggQEAgV0lORE9X IHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBO byBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlmaWVyCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitDUkVBVEUgVklFVyBycHJfZXYxOCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTgxMSw3 ICs3OTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyLDR9IEIpCiAgICAgREVG SU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYXsyLDR9IGIpIApAQCAtODQwLDkgKzgy Niw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVX IHJwcl92OwogLS0gQ29udGV4dHMgc2tpcHBlZCBieSBTS0lQIFBBU1QgTEFTVCBST1cKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjE5IEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTg1MSw3ICs4MzYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAgPSAyLCBDIEFT IHYgJSAxMCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYxOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSBiIGMpIApAQCAtODgwLDkgKzg2NSw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIEhpZ2ggY29udGV4dCBhYnNvcnB0 aW9uIC0gdW5ib3VuZGVkIGdyb3VwCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUg VklFVyBycHJfZXYyMCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC04OTEsNyArODc1LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIEIpKyBDKQogICAgIERFRklORSBBIEFTIHYg JSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjAnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5lICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIpKyBjKSAKQEAgLTkyMCwx NCArOTA0LDEzIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURS T1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0gRml4ZWQgbGVuZ3RoIG1hdGNoZXMgLSBhbGwgc2FtZSBsZW5ndGgKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjIxIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcg QVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwpAQCAtOTM2LDcgKzkxOSw3IEBA IFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBD IEFTIGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 MjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAg bGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBi IGMgZCBlKSAKQEAgLTk0NSw3ICs5MjgsNyBAQCBTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZQogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKLUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCkBAIC05NjQsMTIgKzk0NywxMSBAQCBXSU5ET1cg dyBBUyAoCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA2MCBwcnVuZWQKICAg IE5GQTogMjAgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBh YnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCi0gICAtPiAgU2VxIFNjYW4gb24gbmZh X3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9Q IFZJRVcgcnByX3Y7CiAtLSBWYXJpYWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRp ZmZlcgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjIgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtOTc4LDcgKzk2MCw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAx MCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIp IApAQCAtMTAwNyw5ICs5ODksOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAoOSBy b3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBWZXJ5IGxvbmcgbWF0Y2hlcwotQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjMgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtMTAxOCw3ICs5OTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2IDw9IDE5NSwgQiBBUyB2ID4gMTk1CiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjMnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTEwNDcsOSArMTAyOCw4 IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz0yMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBy cHJfdjsKIC0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0Y2hlcyBmcm9tIGdhcCBy b3dzICh2JTIwID0gMTEuLjE1KQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2MjQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTA2MCw3ICsxMDQwLDcgQEAg V0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTICh2ICUgMjAgPD4gMCkgQU5EICh2ICUgMjAgPD0g MTAgT1IgdiAlIDIwID4gMTUpLAogICAgICAgICBCIEFTIHYgJSAyMCA9IDAKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTA5MSwxMyArMTA3 MSwxMiBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJ RVcgcnByX3Y7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIE1pc21hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIFBhdHRlcm4gd2l0aCBjb21wbGV0ZSBtYXRjaCBldmVyeSBjeWNsZTogMCBtaXNt YXRjaGVkCiAtLSBBKDEsMiwzKSBCKDQsNSkgQyg2KSByZXBlYXRzIHBlcmZlY3RseTsgWCByb3dz IGFyZSBwcnVuZWQsIG5vdCBtaXNtYXRjaGVkCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitD UkVBVEUgVklFVyBycHJfZXYyNSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAg ICAgU0VMRUNUIHYsCkBAIC0xMTEzLDcgKzEwOTIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSsgQisgQykKICAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0In LCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjI1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgUEFUVEVSTiAoYSsgYisgYykgCkBAIC0xMTQ5LDkgKzExMjgsOCBAQCBXSU5ET1cgdyBBUyAo CiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9 MTAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBMb25nIHBh cnRpYWwgbWF0Y2hlcyB0aGF0IGZhaWwKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjI2IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NICgKICAgICBT RUxFQ1QgaSBBUyB2LApAQCAtMTE3Miw3ICsxMTUwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIrIEMpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdC JywgQyBBUyBjYXQgPSAnQycKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYyNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgIFBBVFRFUk4gKGErIGIrIGMpIApAQCAtMTIxMywxMiArMTE5MSwxMSBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgaSAoYWN0dWFsIHJv d3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gSlNPTiBGb3JtYXQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSlNPTiBmb3JtYXQgb3V0cHV0IHdpdGgg YWxsIHN0YXRpc3RpY3MKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJw cl9ldjI3IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTIyNyw3ICsxMjA0LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwg QiBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFU VEVSTiAoYSsgYispIApAQCAtMTI5NCw5ICsxMjcxLDggQEAgV0lORE9XIHcgQVMgKAogIF0KICgx IHJvdykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gSlNPTiBmb3JtYXQgd2l0aCBtYXRjaCBsZW5n dGggc3RhdGlzdGljcwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnBy X2V2MjggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTMwNSw3ICsxMjgxLDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAs IEIgQVMgdiAlIDEwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjI4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFU VEVSTiAoYSsgYikgCkBAIC0xMzc1LDEwICsxMzUxLDkgQEAgV0lORE9XIHcgQVMgKAogIF0KICgx IHJvdykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gSlNPTiBmb3JtYXQgd2l0aCBtaXNtYXRjaCBz dGF0aXN0aWNzCiAtLSBQYXR0ZXJuIEEgQiBDIGV4cGVjdHMgMSwyLDMgYnV0IGdldHMgMSwyLDQg dHdpY2UgY2F1c2luZyBtaXNtYXRjaGVzCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVB VEUgVklFVyBycHJfZXYyOSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoVkFMVUVT ICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKIFdJTkRPVyB3 IEFTICgKQEAgLTEzODcsNyArMTM2Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIgQykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI5 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5l ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIgYykgCkBAIC0x NDU2LDEwICsxNDMxLDkgQEAgV0lORE9XIHcgQVMgKAogIF0KICgxIHJvdykKIAotRFJPUCBWSUVX IHJwcl92OwogLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRleHQgc3RhdGlzdGljcwog LS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyBjYXVzZXMgbWFu eSBjb250ZXh0cyB0byBiZSBza2lwcGVkCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVB VEUgVklFVyBycHJfZXYzMCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNDY4LDcgKzE0NDIs NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChBIHwgQikg KEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpKQogICAgIERFRklORSBBIEFT IHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwg YikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikpIApAQCAtMTUzOCwxMiArMTUxMiwxMSBAQCBXSU5E T1cgdyBBUyAoCiAgXQogKDEgcm93KQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFhN TCBGb3JtYXQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0gWE1MIGZvcm1hdCBvdXRwdXQKLUNSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjMxIEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMTU1Miw3ICsxNTI1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikK ICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzEnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAKIC0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiKSAKQEAgLTE2MTksMTIgKzE1OTIsMTEg QEAgV0lORE9XIHcgQVMgKAogIDwvZXhwbGFpbj4KICgxIHJvdykKIAotRFJPUCBWSUVXIHJwcl92 OwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLSBNdWx0aXBsZSBQYXJ0aXRpb25zIFRlc3RzCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFN0YXRp c3RpY3MgYWNyb3NzIG11bHRpcGxlIHBhcnRpdGlvbnMKLUNSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK0NSRUFURSBWSUVXIHJwcl9ldjMyIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N ICgKICAgICBTRUxFQ1QgcCwgdgpAQCAtMTYzOCw3ICsxNjEwLDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYzMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIp IApAQCAtMTY3Nyw5ICsxNjQ5LDggQEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICAgICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHYgKGFjdHVhbCByb3dzPTMwLjAwIGxv b3BzPTMpCiAoMTQgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gRGlmZmVyZW50IHBhdHRl cm4gYmVoYXZpb3IgcGVyIHBhcnRpdGlvbgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JF QVRFIFZJRVcgcnByX2V2MzMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAogICAg IFNFTEVDVApAQCAtMTY5NCw3ICsxNjY1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEErIEIpCiAgICAgREVGSU5FIEEgQVMgdmFsIDwgNSwgQiBBUyB2YWwgPj0gNQogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjMzJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsgYikgCkBAIC0xNzMyLDEyICsx NzAzLDExIEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyB2IChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDEyIHJvd3MpCiAK LURST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gRWRnZSBDYXNlcwogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBFbXB0 eSByZXN1bHQgc2V0Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJf ZXYzNCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTc0Niw3ICsxNzE2LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0g MgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjM0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAg IGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEgYikgCkBAIC0x NzcwLDkgKzE3NDAsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MC4wMCBsb29wcz0xKQogKDQgcm93cykKIAot RFJPUCBWSUVXIHJwcl92OwogLS0gU2luZ2xlIHJvdwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworQ1JFQVRFIFZJRVcgcnByX2V2MzUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE3ODEsNyAr MTc1MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFT IFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYzNScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgIGxpbmUgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEpIApAQCAtMTgw OSw5ICsxNzc4LDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLURS T1AgVklFVyBycHJfdjsKIC0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQotQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MzYgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE4MjIsNyArMTc5MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyB2ID0gMSwg QiBBUyB2ID0gMiwgQyBBUyB2ID0gMywgRCBBUyB2ID0gNCwgRSBBUyB2ID0gNSwKICAgICAgICAg RiBBUyB2ID0gNiwgRyBBUyB2ID0gNywgSCBBUyB2ID0gOCwgSSBBUyB2ID0gOSwgSiBBUyB2ID0g MTAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYzNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgIFBBVFRFUk4gKGEgYiBjIGQgZSBmIGcgaCBpIGopIApAQCAtMTg1Miw5ICsx ODIwLDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTUuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLURST1AgVklF VyBycHJfdjsKIC0tIEFsbCByb3dzIG1hdGNoIGFzIHNpbmdsZSBtYXRjaAotQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MzcgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0xODYzLDcgKzE4MzAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAg ICAgREVGSU5FIEEgQVMgVFJVRQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogICAgICAgbGluZSAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRU RVJOIChhKykgCkBAIC0xODkyLDEyICsxODU5LDExIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29w cz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBDb21wbGV4IFBh dHRlcm4gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0gTmVzdGVkIGdyb3VwcwotQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MzggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0x OTA2LDcgKzE4NzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpIEMpKykK ICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0g MAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjM4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAg ICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoKChhIGIpIGMpKykgCkBAIC0xOTM1LDExICsxOTAxLDEwIEBAIFdJTkRPVyB3IEFTICgKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4w MCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gTXVsdGlwbGUgYWx0 ZXJuYXRpb25zCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYz OSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwotRlJPTSBuZmFfdGVzdAorRlJPTSBycHJfbmZh X3Rlc3QKIFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKQEAg LTE5NDgsNyArMTkxMyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScs IEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcs IEUgQVMgY2F0ID0gJ0UnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2MzknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChjIHwgZCB8IGUpKSAK QEAgLTE5NTcsNyArMTkyMiw3IEBAIFNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lCiBTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwotRlJP TSBuZmFfdGVzdAorRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKQEAgLTE5NzYsMTIgKzE5NDEsMTEgQEAgV0lORE9XIHcgQVMg KAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgNDAgcHJ1bmVkCiAgICBORkE6 IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMjAgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCiAg ICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQotICAgLT4gIFNlcSBT Y2FuIG9uIG5mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIC0+ICBTZXEg U2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDkgcm93 cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gT3B0aW9uYWwgZWxlbWVudHMKLUNSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjQwIEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMTk5MCw3ICsxOTU0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQj8g QykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYgJSA0 ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjQwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAg ICAgICBsaW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEg Yj8gYykgCkBAIC0yMDE5LDkgKzE5ODMsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkK ICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIEJvdW5kZWQgcXVhbnRpZmllcnMKLUNS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjQxIEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTIwMzAsNyArMTk5Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBezIsNX0gQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2NDEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAg ICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KGF7Miw1fSBiKSAKQEAgLTIwNTksOSArMjAyMiw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9v cHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIFN0YXIgcXVhbnRpZmllcgot Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NDIgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0yMDcwLDcgKzIwMzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSBCKiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA9IDEsIEIgQVMgdiAlIDEwIElO ICgyLDMsNCw1LDYsNyw4KSwgQyBBUyB2ICUgMTAgPSA5CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDInKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiKiBjKSAKQEAgLTIwOTksMjEgKzIwNjEsMjAg QEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnBy X3Y7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIFJlYWwtd29ybGQgUGF0dGVybiBFeGFtcGxlcwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBT dG9jayBwcmljZSBwYXR0ZXJuIC0gVi1zaGFwZSAoZG93biB0aGVuIHVwKQotQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NDMgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKLUZST00gbmZhX2NvbXBsZXgKK0ZST00gcnByX25mYV9jb21wbGV4CiBXSU5ET1cgdyBB UyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCiAgICAgUEFUVEVSTiAoRCsgVSsp CiAgICAgREVGSU5FIEQgQVMgdHJlbmQgPSAnRCcsIFUgQVMgdHJlbmQgPSAnVScKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0MycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoZCsgdSspIApAQCAtMjEyMiw3 ICsyMDgzLDcgQEAgU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV9jb21w bGV4CitGUk9NIHJwcl9uZmFfY29tcGxleAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVwpAQCAtMjEzOSwyMSArMjEwMCwyMCBAQCBXSU5ET1cgdyBBUyAoCiAg ICBORkEgQ29udGV4dHM6IDMgcGVhaywgMzEgdG90YWwsIDMgcHJ1bmVkCiAgICBORkE6IDMgbWF0 Y2hlZCAobGVuIDMvMTQvOC4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMy8zLzMuMCkKICAgIE5GQTog OSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxNCBza2lwcGVkIChsZW4gMS8xLzEuMCkKLSAgIC0+ ICBTZXEgU2NhbiBvbiBuZmFfY29tcGxleCAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKKyAg IC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX2NvbXBsZXggKGFjdHVhbCByb3dzPTMwLjAwIGxvb3Bz PTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBTdG9jayBwcmljZSBwYXR0ZXJu IC0gcGVhayAodXAsIHN0YWJsZSwgZG93bikKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NS RUFURSBWSUVXIHJwcl9ldjQ0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV9j b21wbGV4CitGUk9NIHJwcl9uZmFfY29tcGxleAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKFUrIFMqIEQrKQogICAgIERFRklORSBV IEFTIHRyZW5kID0gJ1UnLCBTIEFTIHRyZW5kID0gJ1MnLCBEIEFTIHRyZW5kID0gJ0QnCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDQn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5l ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHUrIHMqIGQr KSAKQEAgLTIxNjIsNyArMjEyMiw3IEBAIFNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lCiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwot RlJPTSBuZmFfY29tcGxleAorRlJPTSBycHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKQEAgLTIxNzksMTIgKzIxMzksMTEgQEAgV0lO RE9XIHcgQVMgKAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDMxIHRvdGFsLCAxIHBydW5lZAog ICAgTkZBOiA0IG1hdGNoZWQgKGxlbiAzLzExLzcuMiksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAx MiBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMyBza2lwcGVkIChsZW4gMS8xLzEuMCkKLSAgIC0+ ICBTZXEgU2NhbiBvbiBuZmFfY29tcGxleCAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKKyAg IC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX2NvbXBsZXggKGFjdHVhbCByb3dzPTMwLjAwIGxvb3Bz PTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBDb25zZWN1dGl2ZSBpbmNyZWFz aW5nIHZhbHVlcyAodXNpbmcgUFJFVikKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjQ1IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE5Myw3ICsyMTUyLDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Myx9KQogICAgIERFRklORSBBIEFTIHYg PiBQUkVWKHYpIE9SIFBSRVYodikgSVMgTlVMTAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOIChhezMsfSkgCkBAIC0yMjIyLDEyICsyMTgxLDExIEBAIFdJTkRP VyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLSBQZXJmb3JtYW5jZS1vcmllbnRlZCBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBMYXJnZSBkYXRh c2V0IHdpdGggc2ltcGxlIHBhdHRlcm4KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjQ2IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMjM2LDcgKzIxOTQs NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYg JSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAg ICBQQVRURVJOIChhIGIpIApAQCAtMjI2NSw5ICsyMjIzLDggQEAgV0lORE9XIHcgQVMgKAogICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMDAu MDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIExhcmdlIGRhdGFz ZXQgd2l0aCBhYnNvcnB0aW9uCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklF VyBycHJfZXY0NyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjI3Niw3ICsyMjMzLDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEw MCA8PiAwLCBCIEFTIHYgJSAxMDAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTIzMDUsOSArMjI2Miw4IEBAIFdJTkRPVyB3IEFTICgK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0x MDAwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBIaWdoIHN0 YXRlIG1lcmdlIHJhdGlvCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBy cHJfZXY0OCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzE2LDcgKzIyNzIsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ4JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBiKSsgYykgCkBAIC0y MzQ1LDEyICsyMzAxLDExIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MDAuMDAgbG9vcHM9MSkKICg5IHJvd3Mp CiAKLURST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSU5JVElBTCB2cyBubyBJTklUSUFMIGNv bXBhcmlzb24KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gV2l0aCBJTklUSUFMIGtleXdvcmQKLUNSRUFURSBURU1QIFZJ RVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjQ5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMjM2MCw3ICsyMzE1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAg ICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMjM5MCw5ICsyMzQ1LDgg QEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnBy X3Y7CiAtLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBjdXJyZW50bHkp Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1MCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTI0MDEsNyArMjM1NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAw CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2NTAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAg bGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAg LTI0MzAsMTIgKzIzODQsMTEgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4g b24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSByb3dz KQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFF1YW50aWZpZXIgVmFyaWF0aW9ucwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSBQbHVzIHF1YW50aWZpZXIKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NS RUFURSBWSUVXIHJwcl9ldjUxIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQ0NCw3ICsyMzk3 LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHYg JSA0IDw+IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXY1MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK ICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApA QCAtMjQ3Myw5ICsyNDI2LDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4g b24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAoOSByb3dz KQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBTdGFyIHF1YW50aWZpZXIgKHplcm8gb3IgbW9yZSkK LUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjUyIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQog V0lORE9XIHcgQVMgKApAQCAtMjQ4NCw3ICsyNDM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEEqIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgSU4gKDEsIDIpLCBCIEFTIHYgJSA0 ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjUyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAg ICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSogYikg CkBAIC0yNTEzLDkgKzI0NjUsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIFF1ZXN0aW9uIG1hcmsgKHplcm8gb3Igb25lKQot Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NTMgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0yNTI0LDcgKzI0NzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQT8gQiBDKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIs IEMgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2NTMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYT8gYiBjKSAKQEAgLTI1NTMsOSArMjUwNCw4IEBAIFdJTkRPVyB3IEFTICgKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4w MCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gRXhhY3QgY291bnQg e259Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1NCBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTI1NjQsNyArMjUxNCw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBezN9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY1NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChh ezN9IGIpIApAQCAtMjU5Myw5ICsyNTQzLDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEp CiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBSYW5nZSB7bixtfQotQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NTUgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC0yNjA0LDcgKzI1NTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsy LDR9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1T RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYXsyLDR9IGIp IApAQCAtMjYzMyw5ICsyNTgyLDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoOSBy b3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBBdCBsZWFzdCB7bix9Ci1DUkVBVEUgVEVNUCBW SUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1NiBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTI2NDQsNyArMjU5Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezMsfSBC KQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGF7Myx9IGIpIApAQCAt MjY3MywxMyArMjYyMSwxMiBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICg5IHJvd3Mp CiAKLURST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUmVncmVzc2lvbiBUZXN0cyBmb3IgU3Rh dGlzdGljcyBBY2N1cmFjeQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBWZXJpZnkgc3RhdGUgY291bnQgYWNjdXJhY3kK IC0tIFBhdHRlcm4gQSsgQiB3aXRoIDIwIHJvd3Mgc2hvdWxkIHNob3cgcHJlZGljdGFibGUgc3Rh dGUgYmVoYXZpb3IKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djU3IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAy MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjY4OCw3ICsyNjM1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBB UyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY1NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KGErIGIpIApAQCAtMjcxNyw5ICsyNjY0LDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEp CiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBWZXJpZnkgY29udGV4dCBjb3VudCB3 aXRoIGtub3duIGFic29ycHRpb24KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBW SUVXIHJwcl9ldjU4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjcyOCw3ICsyNjc0LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUg MTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFTIHYgJSAxMCA9IDgsIEMgQVMgdiAlIDEwID0gOQog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djU4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBs aW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIgYykg CkBAIC0yNzU3LDkgKzI3MDMsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIFZlcmlmeSBtYXRjaCBsZW5ndGggd2l0aCBmaXhl ZC1sZW5ndGggcGF0dGVybgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcg cnByX2V2NTkgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNzY4LDcgKzI3MTMsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAx LCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1OScpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiIGMpIApAQCAtMjc5NywyMSArMjc0MiwyMCBAQCBX SU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0gQWx0ZXJuYXRpb24gUGF0dGVybiBUZXN0cwogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTaW1wbGUg YWx0ZXJuYXRpb24KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djYwIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9u ZmFfdGVzdAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwog ICAgIFBBVFRFUk4gKChBIHwgQikgQykKICAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMg Y2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikgYykgCkBAIC0yODIwLDcgKzI3NjQsNyBA QCBTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZQogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rlc3QKK0ZST00gcnBy X25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CkBAIC0yODM3LDE0ICsyNzgxLDEzIEBAIFdJTkRPVyB3IEFTICgKICAgIE5GQSBDb250ZXh0czog MyBwZWFrLCAxMDEgdG90YWwsIDQwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4gMi8y LzIuMCksIDIwIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAy MCBza2lwcGVkIChsZW4gMS8xLzEuMCkKLSAgIC0+ICBTZXEgU2NhbiBvbiBuZmFfdGVzdCAoYWN0 dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCisgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV90ZXN0 IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJf djsKIC0tIE11bHRpcGxlIGl0ZW1zIGluIGFsdGVybmF0aW9uCi1DUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY2MSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwot RlJPTSBuZmFfdGVzdAorRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKQEAgLTI4NTMsNyArMjc5Niw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdD JywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjEnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgICAgIGxpbmUgICAg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KChhIHwgYiB8IGMgfCBkKSBlKSAKQEAgLTI4NjIsNyArMjgwNSw3IEBAIFNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicp KSBBUyBsaW5lCiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwotRlJPTSBuZmFfdGVzdAorRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRP VyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKQEAgLTI4ODEsMTIgKzI4 MjQsMTEgQEAgV0lORE9XIHcgQVMgKAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3Rh bCwgMCBwcnVuZWQKICAgIE5GQTogMjAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCA2MCBtaXNtYXRj aGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEv MS8xLjApCi0gICAtPiAgU2VxIFNjYW4gb24gbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBs b29wcz0xKQorICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBBbHRlcm5hdGlv biB3aXRoIHF1YW50aWZpZXJzCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklF VyBycHJfZXY2MiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI4OTUsNyArMjgzNyw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYg JSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjInKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpKyBjKSAKQEAg LTI5MjQsOSArMjg2Niw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogKDkgcm93cykK IAotRFJPUCBWSUVXIHJwcl92OwogLS0gTXVsdGlwbGUgYWx0ZXJuYXRpdmVzICg0KykKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjYzIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTI5MzQsNyArMjg3NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO IChBIHwgQiB8IEMgfCBEIHwgRSkKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAl IDUgPSAxLCBDIEFTIHYgJSA1ID0gMiwgRCBBUyB2ICUgNSA9IDMsIEUgQVMgdiAlIDUgPSA0CiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 NjMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgIFBBVFRFUk4gKGEgfCBiIHwgYyB8IGQgfCBlKSAKQEAgLTI5NjEsOSArMjkwMiw4IEBAIFdJ TkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChh Y3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsK IC0tIEFsdGVybmF0aW9uIGF0IHN0YXJ0Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVB VEUgVklFVyBycHJfZXY2NCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI5NzEsNyArMjkxMSw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIEMgRCkKICAgICBERUZJTkUg QSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUg NCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY2NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICAgICAgbGluZSAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoKGEgfCBiKSBjIGQpIApAQCAtMjk5OSw5ICsyOTM5LDggQEAgV0lORE9XIHcgQVMg KAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTYwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBNdWx0aXBs ZSBzZXF1ZW50aWFsIGFsdGVybmF0aW9ucwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JF QVRFIFZJRVcgcnByX2V2NjUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzAwOSw3ICsyOTQ4 LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgQyAoRCB8IEUpIEYpCiAg ICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2ICUgNiA9IDIs IEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUgNiA9IDUKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2NScpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgIGxp bmUgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKChhIHwgYikgYyAoZCB8IGUpIGYpIApAQCAtMzAzNiw5ICsyOTc1LDggQEAgV0lO RE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFj dHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogKDggcm93cykKIAotRFJPUCBWSUVXIHJwcl92Owog LS0gUXVhbnRpZmllZCBhbHRlcm5hdGl2ZXMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NS RUFURSBWSUVXIHJwcl9ldjY2IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzA0Niw3ICsyOTg0 LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBDKQogICAgIERFRklO RSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjYnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgIGxpbmUg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhKyB8 IGIrKSBjKSAKQEAgLTMwNzQsOSArMzAxMiw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0x KQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gQWx0ZXJuYXRpb24gYXQgZW5kCi1D UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY2NyBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTMwODQsNyArMzAyMSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBIEIgKEMgfCBEKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQg PSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2NycpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiIChjIHwgZCkpIApAQCAt MzExMiwxMCArMzA0OSw5IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogKDkgcm93cykK IAotRFJPUCBWSUVXIHJwcl92OwogLS0gTmVzdGVkIEFMVCBhdCBzdGFydCBvZiBicmFuY2ggaW5z aWRlIG91dGVyIEFMVAogLS0gUGF0dGVybjogKEEgKChCIHwgQykgRCB8IEUpKSAtIHByZWNlZGlu ZyBWQVIgKyBpbm5lciBBTFQgYXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQKLUNSRUFURSBURU1QIFZJ RVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjY4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMzEyMyw3ICszMDU5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKChCIHwg QykgRCB8IEUpKQogICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMg QVMgdiAlIDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2OCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSAoKGIgfCBjKSBkIHwgZSkpIApAQCAtMzE1MCwxMCArMzA4Niw5IEBAIFdJTkRPVyB3IEFT ICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz0yMC4wMCBsb29wcz0xKQogKDggcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gTmVzdGVk IEFMVCBhdCBlbmQgb2YgYnJhbmNoIGluc2lkZSBvdXRlciBBTFQKIC0tIFBhdHRlcm46IChDIChB IHwgQikgfCBEKSAtIGlubmVyIEFMVCBpcyBsYXN0IGVsZW1lbnQgaW4gb3V0ZXIgYnJhbmNoCi1D UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY2OSBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTMxNjEsNyArMzA5Niw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChDIChBIHwgQikgfCBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUg NCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY5JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgbGluZSAgICAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYyAoYSB8IGIpIHwg ZCkgCkBAIC0zMTg4LDEyICszMTIzLDExIEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQog KDggcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBHcm91cCBQYXR0ZXJuIFRl c3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIFNpbXBsZSBncm91cAotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2NzAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMjAyLDcgKzMx MzYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBB IEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSBiKSspIApAQCAtMzIzMSw5ICszMTY1LDggQEAgV0lO RE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFj dHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAt LSBHcm91cCB3aXRoIGJvdW5kZWQgcXVhbnRpZmllcgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBB UworQ1JFQVRFIFZJRVcgcnByX2V2NzEgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMjQyLDcg KzMxNzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQil7Miw0fSkKICAgICBE RUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzEnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSBiKXsyLDR9KSAKQEAgLTMy NzEsOSArMzIwNCw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogKDkgcm93cykKIAot RFJPUCBWSUVXIHJwcl92OwogLS0gTmVzdGVkIGdyb3VwcwotQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworQ1JFQVRFIFZJRVcgcnByX2V2NzIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMjgy LDcgKzMyMTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCiAg ICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjcyJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAg ICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoKGEgYil7Mn0pKykg CkBAIC0zMzExLDkgKzMyNDMsOCBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIERlZXAgbmVzdGluZyAoMysgbGV2ZWxzKQotQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NzMgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC0zMzIxLDcgKzMyNTIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoKCgoQSB8IEIpKykrKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAwLCBCIEFTIHYgJSAy ID0gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjczJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAg ICAgICAgICAgbGluZSAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOICgoKChhIHwgYikrKSspKykgCkBAIC0zMzQ5LDkgKzMyODAsOCBAQCBXSU5E T1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0t IEJvdW5kZWQgcXVhbnRpZmllciBvbiBhbHRlcm5hdGlvbgotQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworQ1JFQVRFIFZJRVcgcnByX2V2NzQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzU5 LDcgKzMyODksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKXsyLDN9IEMp CiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9 IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY3NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICAgICAgIGxpbmUgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgUEFUVEVSTiAoKGEgfCBiKXsyLDN9IGMpIApAQCAtMzM4Nyw5ICszMzE3LDggQEAgV0lORE9X IHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTYwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQogCi1EUk9QIFZJRVcgcnByX3Y7CiAtLSBO ZXN0ZWQgZ3JvdXBzIHdpdGggcXVhbnRpZmllcnMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMK K0NSRUFURSBWSUVXIHJwcl9ldjc1IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzM5Nyw3ICsz MzI2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQogICAgIERF RklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzUn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgIGxp bmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKCgo YSBiKSsgYykqKSAKQEAgLTM0MjUsOSArMzM1NCw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29w cz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gUGFydGlhbCBuZXN0ZWQgcXVh bnRpZmljYXRpb24KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djc2IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzQzNSw3ICszMzYzLDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQogICAgIERFRklORSBBIEFTIHYgJSAzID0g MCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzYnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIChiIGMpKykqKSAKQEAgLTM0 NjMsMTIgKzMzOTEsMTEgQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiAoOSByb3dzKQog Ci1EUk9QIFZJRVcgcnByX3Y7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFdpbmRvdyBGdW5jdGlvbiBDb21iaW5hdGlv bnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0gY291bnQoKikgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY3NyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM0 NzcsNyArMzQwNCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERF RklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzcnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0t LS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTM1MDYsOSArMzQzMyw4IEBAIFdJ TkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChh Y3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92Owog LS0gZmlyc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitD UkVBVEUgVklFVyBycHJfZXY3OCBBUwogU0VMRUNUIGZpcnN0X3ZhbHVlKHYpIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM1MTcs NyArMzQ0Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklO RSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzgnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTM1NDYsOSArMzQ3Miw4IEBAIFdJTkRP VyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz0zMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0g bGFzdF92YWx1ZSB3aXRoIHBhdHRlcm4KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjc5IEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNTU3LDcgKzM0 ODIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBB UyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgUEFUVEVSTiAoYSsgYikgCkBAIC0zNTg2LDkgKzM1MTEsOCBAQCBXSU5ET1cgdyBB UyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJv d3M9MzAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIE11bHRp cGxlIHdpbmRvdyBmdW5jdGlvbnMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBW SUVXIHJwcl9ldjgwIEFTCiBTRUxFQ1QKICAgICBjb3VudCgqKSBPVkVSIHcsCiAgICAgZmlyc3Rf dmFsdWUodikgT1ZFUiB3LApAQCAtMzYwMCw3ICszNTI0LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9 IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY4MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApA QCAtMzYzMiwxMiArMzU1NiwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gREVGSU5FIEV4cHJlc3Npb24gVmFy aWF0aW9ucwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLSBDb21wbGV4IGJvb2xlYW4gZXhwcmVzc2lvbnMKLUNSRUFURSBU RU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjgxIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtMzY0OCw3ICszNTcxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTICh2 ICUgNSA8PiAwKSBBTkQgKHYgJSAzIDw+IDApLAogICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9S ICh2ICUgMyA9IDApCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM2NzksOSArMzYwMiw4IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0x KQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJwcl92OwogLS0gVXNpbmcgUFJFViBmdW5jdGlvbgot Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0zNjkzLDcgKzM2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg IFUgQVMgdiA+IFBSRVYodiksCiAgICAgICAgIEQgQVMgdiA8IFBSRVYodikKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4MicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgIGxpbmUgICAgICAg ICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHMgdSsgZCspIApAQCAtMzcy NCw5ICszNjQ2LDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAoOCByb3dzKQogCi1E Uk9QIFZJRVcgcnByX3Y7CiAtLSBVc2luZyBOVUxMIGNvbXBhcmlzb25zCi1DUkVBVEUgVEVNUCBW SUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY4MyBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIENBU0UgV0hFTiB2ICUgNSA9IDAgVEhFTiBOVUxMIEVM U0UgdiBFTkQgQVMgdgpAQCAtMzczOCw3ICszNjU5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiBJUyBOT1QgTlVMTCwgQiBBUyB2IElTIE5V TEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY4MycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAg ICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApA QCAtMzc3MCwxMiArMzY5MSwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgdiAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTGFyZ2UgU2NhbGUgU3RhdGlzdGlj cyBWZXJpZmljYXRpb24KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0gNTAwIHJvd3MgLSB2ZXJpZnkgc3RhdGlzdGljcyBz Y2FsZSBjb3JyZWN0bHkKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJw cl9ldjg0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM3ODQsNyArMzcwNCw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIDwg NywgQiBBUyB2ICUgMTAgPSA3LCBDIEFTIHYgJSAxMCA9IDgKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiIGMpIApAQCAtMzgxMyw5ICszNzMzLDgg QEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQogKDkgcm93cykKIAotRFJPUCBWSUVXIHJw cl92OwogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworQ1JFQVRFIFZJRVcgcnByX2V2ODUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzgy NCw3ICszNzQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBERUZJ TkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2ODUnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAKIC0tLS0tLS0tLS0t LS0tLS0tLQogICAgUEFUVEVSTiAoYSBiKSAKQEAgLTM4NTMsOSArMzc3Miw4IEBAIFdJTkRPVyB3 IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz01MDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKIC0tIEhp Z2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRF IFZJRVcgcnByX2V2ODYgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzg2OSw3ICszNzg3LDcg QEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTIHYgJSAxMDAgPSA0LAogICAgICAgICBFIEFT IHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgUEFUVEVSTiAoYSBiIGMgZCBlKSAKQEAgLTM5MDMsNyArMzgyMSwzIEBAIFdJTkRPVyB3IEFT ICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz01MDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKLURST1AgVklFVyBycHJfdjsKLS0tIENsZWFu dXAKLURST1AgVEFCTEUgbmZhX3Rlc3Q7Ci1EUk9QIFRBQkxFIG5mYV9jb21wbGV4OwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsCmluZGV4IGRhMjhkZTFhOGY5Li40NTM4NjBjMTQ5OSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbApAQCAtMTIsNyArMTIsNyBAQAogLS0gICBRdWFudGlmaWVy cyBUZXN0cwogLS0gICBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cwogLS0gICBTS0lQIFRPIC8g SU5JVElBTCBUZXN0cwotLS0gICBTZXJpYWxpemF0aW9uL0Rlc2VyaWFsaXphdGlvbiBUZXN0cwor LS0gICBTZXJpYWxpemF0aW9uL0Rlc2VyaWFsaXphdGlvbiBUZXN0cyAob2JqZWN0cyBrZXB0IGZv ciBwZ191cGdyYWRlL3BnX2R1bXApCiAtLSAgIEVycm9yIENhc2VzIFRlc3RzCiAtLQogLS0gUGxh bm5lciBMYXllcjoKQEAgLTE0MDgsOCArMTQwOCw2IEBAIFNFTEVDVCAqIEZST00gcnByX3Nlcmlh bF92MSBPUkRFUiBCWSBpZDsKIC0tIFZlcmlmeSBkZXBhcnNpbmcKIFNFTEVDVCBwZ19nZXRfdmll d2RlZigncnByX3NlcmlhbF92MSc6OnJlZ2NsYXNzKTsKIAotRFJPUCBWSUVXIHJwcl9zZXJpYWxf djE7Ci0KIC0tIENvbXBsZXggcGF0dGVybiB3aXRoIGFsdGVybmF0aW9uCiBDUkVBVEUgVklFVyBy cHJfc2VyaWFsX3YyIEFTCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApA QCAtMTQyNCw4ICsxNDIyLDYgQEAgV0lORE9XIHcgQVMgKAogU0VMRUNUICogRlJPTSBycHJfc2Vy aWFsX3YyIE9SREVSIEJZIGlkOwogU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Yy Jzo6cmVnY2xhc3MpOwogCi1EUk9QIFZJRVcgcnByX3NlcmlhbF92MjsKLQogLS0gUGF0dGVybiB3 aXRoIGdyb3VwaW5nIGFuZCBxdWFudGlmaWVycwogQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF92MyBB UwogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKQEAgLTE0NDMsOCArMTQz OSw2IEBAIFdJTkRPVyB3IEFTICgKIFNFTEVDVCAqIEZST00gcnByX3NlcmlhbF92MyBPUkRFUiBC WSBpZDsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92Myc6OnJlZ2NsYXNzKTsK IAotRFJPUCBWSUVXIHJwcl9zZXJpYWxfdjM7Ci0KIC0tIEFsbCBmZWF0dXJlcyBjb21iaW5lZAog Q1JFQVRFIFZJRVcgcnByX3NlcmlhbF92NCBBUwogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKQEAgLTE0NjUsOCArMTQ1OSw2IEBAIFdJTkRPVyB3IEFTICgKIFNFTEVDVCAq IEZST00gcnByX3NlcmlhbF92NCBPUkRFUiBCWSBpZDsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZign cnByX3NlcmlhbF92NCc6OnJlZ2NsYXNzKTsKIAotRFJPUCBWSUVXIHJwcl9zZXJpYWxfdjQ7Ci0K IC0tIEFkZGl0aW9uYWwgcXVhbnRpZmllcnMgZm9yIGRlcGFyc2luZyBjb3ZlcmFnZQogCiAtLSA/ IHF1YW50aWZpZXIgKHplcm8gb3Igb25lKQpAQCAtMTQ4Myw4ICsxNDc1LDYgQEAgV0lORE9XIHcg QVMgKAogU0VMRUNUICogRlJPTSBycHJfc2VyaWFsX3Y1IE9SREVSIEJZIGlkOwogU0VMRUNUIHBn X2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y1Jzo6cmVnY2xhc3MpOwogCi1EUk9QIFZJRVcgcnBy X3NlcmlhbF92NTsKLQogLS0ge24sfSBxdWFudGlmaWVyIChuIG9yIG1vcmUpCiBDUkVBVEUgVklF VyBycHJfc2VyaWFsX3Y2IEFTCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dApAQCAtMTQ5OSw4ICsxNDg5LDYgQEAgV0lORE9XIHcgQVMgKAogU0VMRUNUICogRlJPTSBycHJf c2VyaWFsX3Y2IE9SREVSIEJZIGlkOwogU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFs X3Y2Jzo6cmVnY2xhc3MpOwogCi1EUk9QIFZJRVcgcnByX3NlcmlhbF92NjsKLQogLS0ge259IHF1 YW50aWZpZXIgKGV4YWN0bHkgbikKIENSRUFURSBWSUVXIHJwcl9zZXJpYWxfdjcgQVMKIFNFTEVD VCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CkBAIC0xNTE1LDggKzE1MDMsNiBAQCBX SU5ET1cgdyBBUyAoCiBTRUxFQ1QgKiBGUk9NIHJwcl9zZXJpYWxfdjcgT1JERVIgQlkgaWQ7CiBT RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfdjcnOjpyZWdjbGFzcyk7CiAKLURST1Ag VklFVyBycHJfc2VyaWFsX3Y3OwotCiAtLSBOZXN0ZWQgQUxUIHBhdHRlcm4gKHRlc3RzIGRlcGFy c2Ugb2YgY29tcGxleCBuZXN0ZWQgc3RydWN0dXJlKQogQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF92 OCBBUwogU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKQEAgLTE1MzEsOCAr MTUxNyw2IEBAIFdJTkRPVyB3IEFTICgKIFNFTEVDVCAqIEZST00gcnByX3NlcmlhbF92OCBPUkRF UiBCWSBpZDsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92OCc6OnJlZ2NsYXNz KTsKIAotRFJPUCBWSUVXIHJwcl9zZXJpYWxfdjg7Ci0KIC0tIFJlbHVjdGFudCB7MX0/IHF1YW50 aWZpZXIgZGVwYXJzZSB0aHJvdWdoIHJ1bGV1dGlscwogQ1JFQVRFIFZJRVcgcnByX3F1YW50X3Jl bHVjdGFudF92IEFTCiBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CkBAIC0xNTQzLDcg KzE1MjcsNiBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKICAgICAgICAgICAgICBQQVRURVJO IChBezF9PyBCKQogICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4g MCk7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9yZWx1Y3RhbnRfdic6OnJlZ2Ns YXNzKTsKLURST1AgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3Y7CiAKIC0tIE1hdGVyaWFsaXpl ZCB2aWV3IChpZiBzdXBwb3J0ZWQpCiAKQEAgLTE1NjcsOSArMTU1MCw2IEBAIFNFTEVDVCBwZ19n ZXRfdmlld2RlZigncnByX212aWV3X3YxJzo6cmVnY2xhc3MpOwogUkVGUkVTSCBNQVRFUklBTEla RUQgVklFVyBycHJfbXZpZXdfdjE7CiBTRUxFQ1QgKiBGUk9NIHJwcl9tdmlld192MSBPUkRFUiBC WSBpZDsKIAotRFJPUCBNQVRFUklBTElaRUQgVklFVyBycHJfbXZpZXdfdjE7Ci1EUk9QIFRBQkxF IHJwcl9tdmlldzsKLQogLS0gQ1JFQVRFIFRBQkxFIEFTIFNFTEVDVCB3aXRoIFJQUgogQ1JFQVRF IFRBQkxFIHJwcl9jdGFzIChpZCBJTlQsIHZhbCBJTlQpOwogSU5TRVJUIElOVE8gcnByX2N0YXMg VkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAxNSksICg0LCAyNSk7CkBAIC0xODYzLDkgKzE4 NDMsNiBAQCBXSU5ET1cKIFNFTEVDVCAqIEZST00gcnByX211bHRpd2luX3YgT1JERVIgQlkgaWQ7 CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9tdWx0aXdpbl92Jzo6cmVnY2xhc3MpOwogCi1E Uk9QIFZJRVcgcnByX211bHRpd2luX3Y7Ci1EUk9QIFRBQkxFIHJwcl9tdWx0aXdpbjsKLQogLS0g e259IHF1YW50aWZpZXIgZGlzcGxheSBpbiB2aWV3CiBDUkVBVEUgVklFVyBycHJfcXVhbnRfbl92 IEFTCiBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CkBAIC0xODc2LDcgKzE4NTMsNiBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKICAgICAgICAgICAgICBQQVRURVJOIChBezN9KQog ICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDApOwogU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdycHJfcXVhbnRfbl92Jzo6cmVnY2xhc3MpOwotRFJPUCBWSUVXIHJwcl9xdWFudF9uX3Y7CiAK IC0tIHtuLH0gcXVhbnRpZmllciBkaXNwbGF5IGluIHZpZXcKIENSRUFURSBWSUVXIHJwcl9xdWFu dF9uX3BsdXNfdiBBUwpAQCAtMTg4OCw5ICsxODY0LDYgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCiAgICAgICAgICAgICAgUEFUVEVSTiAoQXsyLH0pCiAgICAgICAgICAgICAgREVGSU5FIEEg QVMgdmFsID4gMCk7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9uX3BsdXNfdic6 OnJlZ2NsYXNzKTsKLURST1AgVklFVyBycHJfcXVhbnRfbl9wbHVzX3Y7Ci0KLURST1AgVEFCTEUg cnByX3NlcmlhbDsKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBFcnJvciBDYXNlcyBUZXN0cwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IDRiYjQ5NjUwYmI3Li44ZTIyMzgyYTY4ZSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbApAQCAtMyw2ICszLDkgQEAKIC0tIFRlc3RzIGZv ciBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiBFWFBMQUlOIG91dHB1dAogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLQorLS0g Vmlld3MgYW5kIHRhYmxlcyBpbiB0aGlzIGZpbGUgYXJlIGludGVudGlvbmFsbHkgbm90IGRyb3Bw ZWQsCistLSBzbyB0aGF0IHBnX3VwZ3JhZGUvcGdfZHVtcCBjYW4gdGVzdCBSUFIgc3ludGF4IHNl cmlhbGl6YXRpb24uCistLQogLS0gVGhpcyB0ZXN0IHN1aXRlIHZhbGlkYXRlcyBFWFBMQUlOIG91 dHB1dCBmb3IgUlBSIHF1ZXJpZXMsCiAtLSBpbmNsdWRpbmcgTkZBIHN0YXRpc3RpY3Mgc2hvd24g aW4gRVhQTEFJTiBBTkFMWVpFOgogLS0gICAtIE5GQSBTdGF0ZXM6IHBlYWssIHRvdGFsLCBtZXJn ZWQKQEAgLTc2LDE0ICs3OSwxNCBAQCBlbmQ7CiAkJDsKIAogLS0gU2V0dXA6IENyZWF0ZSB0ZXN0 IHRhYmxlcwotQ1JFQVRFIFRFTVAgVEFCTEUgbmZhX3Rlc3QgKAorQ1JFQVRFIFRBQkxFIHJwcl9u ZmFfdGVzdCAoCiAgICAgaWQgc2VyaWFsLAogICAgIHYgaW50LAogICAgIGNhdCBjaGFyKDEpCiAp OwogCiAtLSBJbnNlcnQgdGVzdCBkYXRhOiAxMDAgcm93cyB3aXRoIHByZWRpY3RhYmxlIHBhdHRl cm4KLUlOU0VSVCBJTlRPIG5mYV90ZXN0ICh2LCBjYXQpCitJTlNFUlQgSU5UTyBycHJfbmZhX3Rl c3QgKHYsIGNhdCkKIFNFTEVDVCBpLAogICAgICAgIENBU0UKICAgICAgICAgICAgV0hFTiBpICUg NSA9IDEgVEhFTiAnQScKQEAgLTk1LDEzICs5OCwxMyBAQCBTRUxFQ1QgaSwKIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMCkgaTsKIAogLS0gQWRkaXRpb25hbCB0ZXN0IHRhYmxlIHdpdGggbW9y ZSBjb21wbGV4IHBhdHRlcm5zCi1DUkVBVEUgVEVNUCBUQUJMRSBuZmFfY29tcGxleCAoCitDUkVB VEUgVEFCTEUgcnByX25mYV9jb21wbGV4ICgKICAgICBpZCBzZXJpYWwsCiAgICAgcHJpY2UgaW50 LAogICAgIHRyZW5kIGNoYXIoMSkgIC0tIFU9dXAsIEQ9ZG93biwgUz1zdGFibGUKICk7CiAKLUlO U0VSVCBJTlRPIG5mYV9jb21wbGV4IChwcmljZSwgdHJlbmQpCitJTlNFUlQgSU5UTyBycHJfbmZh X2NvbXBsZXggKHByaWNlLCB0cmVuZCkKIFZBTFVFUwogICAgICgxMDAsICdTJyksICgxMDUsICdV JyksICgxMTAsICdVJyksICgxMDgsICdEJyksICgxMTIsICdVJyksCiAgICAgKDExNSwgJ1UnKSwg KDExMywgJ0QnKSwgKDExMSwgJ0QnKSwgKDEwOSwgJ0QnKSwgKDExMCwgJ1UnKSwKQEAgLTExNSw3 NyArMTE4LDc0IEBAIFZBTFVFUwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIFNpbXBsZSBwYXR0ZXJuIC0gc2hvdWxk IHNob3cgYmFzaWMgc3RhdGlzdGljcwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRF IFZJRVcgcnByX2V2MDEgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rlc3QK K0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywg QiBBUyBjYXQgPSAnQicKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXYwMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcg QVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKEEgQikK ICAgICBERUZJTkUgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0InJwogKScpOwotRFJP UCBWSUVXIHJwcl92OwogCiAtLSBQYXR0ZXJuIHdpdGggbm8gbWF0Y2hlcyAtIDAgbWF0Y2hlZAot Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MDIgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5E T1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCiAgICAgUEFUVEVSTiAo WCBZIFopCiAgICAgREVGSU5FIFggQVMgY2F0ID0gJ1gnLCBZIEFTIGNhdCA9ICdZJywgWiBBUyBj YXQgPSAnWicKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXYwMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKAog ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKFggWSBaKQogICAg IERFRklORSBYIEFTIGNhdCA9ICcnWCcnLCBZIEFTIGNhdCA9ICcnWScnLCBaIEFTIGNhdCA9ICcn WicnCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBQYXR0ZXJuIG1hdGNoaW5nIGV2ZXJ5 IHJvdyAtIGhpZ2ggbWF0Y2ggY291bnQKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjAzIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0 CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKFIpCiAgICAgREVGSU5FIFIgQVMgVFJVRQogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjAzJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZh X3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCiAgICAgUEFUVEVSTiAoUikKICAgICBERUZJTkUgUiBBUyBUUlVFCiAp OycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBSZWdyZXNzaW9uIHRlc3Q6IFNwYWNlIGJlZm9y ZSBwYXJlbnRoZXNpcyBpbiBwYXR0ZXJuIGRlcGFyc2UKIC0tIFZlcmlmaWVzIHRoYXQgIkEgKEIg fCBDKSIgY29ycmVjdGx5IG91dHB1dHMgYXMgImEgKGIgfCBjKSIgd2l0aCBzcGFjZQotQ1JFQVRF IFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MDQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0xOTMsNyArMTkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEg KEIgfCBDKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFT IHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjA0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTIwMywxMiArMjAzLDExIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO IChBIChCIHwgQykpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwg QyBBUyB2ICUgMyA9IDAKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIFJlZ3Jlc3Npb24g dGVzdDogU2VxdWVudGlhbCBhbHRlcm5hdGlvbnMgYXQgc2FtZSBkZXB0aAogLS0gVmVyaWZpZXMg dGhhdCAiKChCIHwgQykgKEQgfCBFKSkiIGNvcnJlY3RseSBvdXRwdXRzIGFzICIoYiB8IGMpIChk IHwgZSkiCiAtLSBQcmV2aW91c2x5IGZhaWxlZCBkdWUgdG8gbWlzc2luZyBwYXJlbnRoZXNlcyBv biBBTFQgZGVwdGggZGVjcmVhc2UKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBW SUVXIHJwcl9ldjA1IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE2LDcgKzIxNSw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgoQiB8IEMpIChEIHwgRSkpKikKICAgICBERUZJ TkUgQSBBUyB2ICUgNSA9IDEsIEIgQVMgdiAlIDUgPSAyLCBDIEFTIHYgJSA1ID0gMywgRCBBUyB2 ICUgNSA9IDQsIEUgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjI2LDE0ICsyMjUsMTMgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEEgKChCIHwgQykgKEQgfCBFKSkqKQogICAgIERFRklORSBBIEFTIHYg JSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMgQVMgdiAlIDUgPSAzLCBEIEFTIHYgJSA1ID0gNCwg RSBBUyB2ICUgNSA9IDAKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU3Rh dGUgU3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90YWwsIG1lcmdlZCkKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBT aW1wbGUgcXVhbnRpZmllciBwYXR0ZXJuIC0gQSsgd2l0aCBzaG9ydCBtYXRjaGVzIChubyBtZXJn aW5nKQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MDYgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNDIsNyArMjQwLDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMQogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA2JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTI1MywxMiArMjUxLDEx IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2ICUg MiA9IDEKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIEFsdGVybmF0aW9uIHBhdHRlcm4g LSBtdWx0aXBsZSBzdGF0ZSBicmFuY2hlcwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JF QVRFIFZJRVcgcnByX2V2MDcgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rl c3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCkBAIC0yNjcsMTEgKzI2NCwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg IEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAg IEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA3JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25m YV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCkBA IC0yODAsMTAgKzI3Nyw5IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnJ0En JywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJywKICAgICAgICAgRCBBUyBjYXQg PSAnJ0QnJywgRSBBUyBjYXQgPSAnJ0UnJwogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0g Q29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3VudAotQ1JFQVRFIFRFTVAgVklFVyBy cHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MDggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mjk1LDcgKzI5MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQiBBUyB2ICUgMyA9IDIsCiAg ICAgICAgIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzA5LDEwICszMDUsOSBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0gMAogKTsnKTsKLURS T1AgVklFVyBycHJfdjsKIAogLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0 YXRlIGNvdW50IHdpdGggZ3JvdXBpbmcKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjA5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzIxLDcgKzMxNiw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSBCKSspCiAgICAgREVGSU5FIEEgQVMgdiAl IDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTMzMiwxMSArMzI3LDEwIEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOICgoQSBCKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYg JSAyID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gU3RhdGUgZXhwbG9zaW9uIHBh dHRlcm4gLSBtYW55IGFsdGVybmF0aW9ucwogLS0gUGF0dGVybiAoQXxCKShBfEIpKEF8QikoQXxC KSBjYW4gY3JlYXRlIG1hbnkgcGFyYWxsZWwgc3RhdGVzCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92 IEFTCitDUkVBVEUgVklFVyBycHJfZXYxMCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNDUs NyArMzM5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAo QSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJ TkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTAnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzU2LDExICszNTAsMTAgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikg KEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9 IDEsIEIgQVMgdiAlIDIgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBDb25zZWN1 dGl2ZSBBTFQgbWVyZ2UgZm9sbG93ZWQgYnkgZGlmZmVyZW50IEFMVAogLS0gVGVzdHMgbWVyZ2VD b25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gQUxUIGNoYW5nZTogKEF8Qil7Mn0gKEN8RCkKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjExIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMzY5LDcgKzM2Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgo QSB8IEIpIChBIHwgQikgKEMgfCBEKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMg diAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0zODAsMTEgKzM3Mywx MCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwgRCkp CiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9 IDIsIEQgQVMgdiAlIDQgPSAzCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBDb25zZWN1 dGl2ZSBBTFQgbWVyZ2UgZm9sbG93ZWQgYnkgbm9uLUFMVCBlbGVtZW50CiAtLSBUZXN0cyBtZXJn ZUNvbnNlY3V0aXZlQWx0cyBmbHVzaCBvbiBub24tQUxUOiAoQXxCKXsyfSBjCi1DUkVBVEUgVEVN UCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYxMiBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTM5Myw3ICszODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBC KSAoQSB8IEIpIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwg QyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXYxMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC00MDQsMTAgKzM5Niw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOICgoQSB8IEIpIChBIHwgQikgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMg diAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0g QUxUIHByZWZpeC9zdWZmaXggYWJzb3JiZWQgaW50byBHUk9VUDogKEF8QikgKEF8QikrIChBfEIp IC0+IChBfEIpezMsfQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnBy X2V2MTMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00MTYsNyArNDA3LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSsgKEEgfCBCKSkKICAgICBERUZJTkUg QSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTMnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNDI3LDEwICs0MTgsOSBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAoQSB8IEIpKQogICAgIERFRklO RSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7 CiAKIC0tIEhpZ2ggc3RhdGUgY291bnQgLSBhbHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmll cgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MTQgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtNDM5LDcgKzQyOSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOICgoQSB8IEIgfCBDKSsgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMg diAlIDQgPSAyLCBDIEFTIHYgJSA0ID0gMywgRCBBUyB2ICUgNCA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC00NTAsMTEgKzQ0MCwx MCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCIHwgQykrIEQpCiAgICAgREVG SU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMsIEQgQVMg diAlIDQgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBFYXJseSB0ZXJtaW5hdGlv bjogZmlyc3QgQUxUIGJyYW5jaCAoQSkgcmVhY2hlcyBGSU4gaW1tZWRpYXRlbHksCiAtLSBwcnVu aW5nIHNlY29uZCBicmFuY2ggKEEgQispIGJlZm9yZSBpdCBjYW4gYWNjdW11bGF0ZSBCIHJlcGV0 aXRpb25zLgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MTUg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNDYzLDcgKzQ1Miw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOICgoQSB8IEEgQikrKQogICAgIERFRklORSBBIEFTIHYgPSAxLCBCIEFTIHYg PiAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MTUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIg dwpAQCAtNDc0LDEwICs0NjMsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBB IEIpKykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQogKTsnKTsKLURST1AgVklF VyBycHJfdjsKIAogLS0gTmVzdGVkIHF1YW50aWZpZXJzIGNhdXNpbmcgc3RhdGUgZ3Jvd3RoCi1D UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYxNiBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgcyh2KQog V0lORE9XIHcgQVMgKApAQCAtNDg2LDcgKzQ3NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOICgoKEEgfCBCKSspKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMg PSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MTYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIg dwpAQCAtNDk3LDE0ICs0ODUsMTMgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgoQSB8 IEIpKykrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIKICk7Jyk7 Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3Rz IChwZWFrLCB0b3RhbCwgcHJ1bmVkICsgYWJzb3JiZWQvc2tpcHBlZCkKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBD b250ZXh0IGFic29ycHRpb24gd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllciBhdCBzdGFydAotQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MTcgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC01MTMsNyArNTAwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1T RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNycp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01MjQs MTAgKzUxMSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklO RSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92 OwogCiAtLSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlmaWVyCi1DUkVBVEUgVEVNUCBW SUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYxOCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTUzNiw3ICs1MjIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyLDR9IEIp CiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01NDcsMTAgKzUz Myw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezIsNH0gQikKICAgICBERUZJTkUg QSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsK IAogLS0gQ29udGV4dHMgc2tpcHBlZCBieSBTS0lQIFBBU1QgTEFTVCBST1cKLUNSRUFURSBURU1Q IFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjE5IEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTU1OSw3ICs1NDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCIEMp CiAgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAgPSAyLCBDIEFTIHYgJSAx MCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYxOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC01NzAsMTAgKzU1NSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIg QykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCA9IDIsIEMgQVMgdiAl IDEwID0gMwogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gSGlnaCBjb250ZXh0IGFic29y cHRpb24gLSB1bmJvdW5kZWQgZ3JvdXAKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjIwIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU4Miw3ICs1NjYsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrIEMpCiAgICAgREVGSU5FIEEgQVMg diAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC01OTMsMTYgKzU3Nywx NSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrIEMpCiAgICAgREVGSU5FIEEg QVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Jyk7Ci1EUk9Q IFZJRVcgcnByX3Y7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogCiAtLSBGaXhlZCBsZW5ndGggbWF0Y2hlcyAtIGFsbCBzYW1lIGxlbmd0aAotQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjEgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cg dyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCkBAIC02MTEsMTEgKzU5NCwx MSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdC JywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdF JwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjIxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK LUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCkBAIC02MjQsMTAgKzYwNyw5IEBAIFdJTkRPVyB3IEFT ICgKICAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQg PSAnJ0MnJywKICAgICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBjYXQgPSAnJ0UnJwogKTsn KTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gVmFyaWFibGUgbGVuZ3RoIG1hdGNoZXMgLSBtaW4v bWF4L2F2ZyBkaWZmZXIKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJw cl9ldjIyIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTYzNiw3ICs2MTgsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwg QiBBUyB2ICUgMTAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2MjInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNv dW50KCopIE9WRVIgdwpAQCAtNjQ3LDEwICs2MjksOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAw CiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBWZXJ5IGxvbmcgbWF0Y2hlcwotQ1JFQVRF IFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjMgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtNjU5LDcgKzY0MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyBCKQogICAgIERFRklORSBBIEFTIHYgPD0gMTk1LCBCIEFTIHYgPiAxOTUKICk7Ci1TRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMycpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC02NzAsMTAgKzY1 MSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFT IHYgPD0gMTk1LCBCIEFTIHYgPiAxOTUKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIFVu aWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0Y2hlcyBmcm9tIGdhcCByb3dzICh2JTIwID0g MTEuLjE1KQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjQg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNjg0LDcgKzY2NCw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICAgICAgQSBBUyAodiAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYgJSAyMCA+ IDE1KSwKICAgICAgICAgQiBBUyB2ICUgMjAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjQnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNjk3LDcgKzY3Nyw2IEBAIFdJTkRPVyB3 IEFTICgKICAgICAgICAgQSBBUyAodiAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYg JSAyMCA+IDE1KSwKICAgICAgICAgQiBBUyB2ICUgMjAgPSAwCiApOycpOwotRFJPUCBWSUVXIHJw cl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIE1pc21hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCkBAIC03 MDUsNyArNjg0LDcgQEAgRFJPUCBWSUVXIHJwcl92OwogCiAtLSBQYXR0ZXJuIHdpdGggY29tcGxl dGUgbWF0Y2ggZXZlcnkgY3ljbGU6IDAgbWlzbWF0Y2hlZAogLS0gQSgxLDIsMykgQig0LDUpIEMo NikgcmVwZWF0cyBwZXJmZWN0bHk7IFggcm93cyBhcmUgcHJ1bmVkLCBub3QgbWlzbWF0Y2hlZAot Q1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjUgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAogICAgIFNFTEVDVCB2LApAQCAtNzIxLDcgKzcwMCw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKyBDKQogICAgIERFRklORSBBIEFT IGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjUnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzM5LDEwICs3MTgs OSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBERUZJTkUgQSBB UyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJwogKTsnKTsK LURST1AgVklFVyBycHJfdjsKIAogLS0gTG9uZyBwYXJ0aWFsIG1hdGNoZXMgdGhhdCBmYWlsCi1D UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYyNiBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIGkgQVMgdiwKQEAgLTc2Myw3ICs3 NDEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBERUZJTkUg QSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI2JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTc4NiwxNCAr NzY0LDEzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKyBDKQogICAgIERFRklO RSBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicnLCBDIEFTIGNhdCA9ICcnQycnCiAp OycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEpTT04gRm9ybWF0IFRlc3RzCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAogLS0gSlNPTiBmb3JtYXQgb3V0cHV0IHdpdGggYWxsIHN0YXRpc3RpY3MKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjI3IEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtODAyLDcgKzc3OSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjcnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNPTikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTgxMywxMCArNzkwLDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIr KQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIKICknKTsKLURST1Ag VklFVyBycHJfdjsKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBtYXRjaCBsZW5ndGggc3RhdGlzdGlj cwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MjggQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtODI1LDcgKzgwMSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9 IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYyOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBKU09OKQogU0VMRUNUIGNv dW50KCopIE9WRVIgdwpAQCAtODM2LDExICs4MTIsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0g MAogKScpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNo IHN0YXRpc3RpY3MKIC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIs NCB0d2ljZSBjYXVzaW5nIG1pc21hdGNoZXMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NS RUFURSBWSUVXIHJwcl9ldjI5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIChWQUxV RVMgKDEpLCgyKSwoNCksICgxKSwoMiksKDQpLCAoMSksKDIpLCgzKSkgQVMgdCh2KQogV0lORE9X IHcgQVMgKApAQCAtODQ5LDcgKzgyNCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIgQykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI5 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9STUFUIEpTT04pCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC04NjAsMTEgKzgzNSwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMgdiA9IDMKICkn KTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRl eHQgc3RhdGlzdGljcwogLS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNU IFJPVyBjYXVzZXMgbWFueSBjb250ZXh0cyB0byBiZSBza2lwcGVkCi1DUkVBVEUgVEVNUCBWSUVX IHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYzMCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC04NzMsNyArODQ3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAg ICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzAnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNPTikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTg4 NCwxNCArODU4LDEzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIChBIHwg QikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikpCiAgICAg REVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKScpOwotRFJPUCBWSUVXIHJw cl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIFhNTCBGb3JtYXQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBYTUwgZm9y bWF0IG91dHB1dAotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2 MzEgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMw KSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05MDAsNyArODczLDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAl IDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MzEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgWE1MKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtOTExLDE0ICs4ODQsMTMgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAw CiApJyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTXVsdGlwbGUgUGFydGl0aW9u cyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAKIC0tIFN0YXRpc3RpY3MgYWNyb3NzIG11bHRpcGxlIHBhcnRpdGlv bnMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjMyIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1QgcCwgdgpAQCAtOTMyLDcg KzkwNCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBB IEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzInKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTQ4LDEwICs5MjAsOSBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gRGlmZmVyZW50IHBh dHRlcm4gYmVoYXZpb3IgcGVyIHBhcnRpdGlvbgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2MzMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAog ICAgIFNFTEVDVApAQCAtOTY2LDcgKzkzNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO IChBKyBCKQogICAgIERFRklORSBBIEFTIHZhbCA8IDUsIEIgQVMgdmFsID49IDUKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC05ODMsMTQg Kzk1NCwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUg QSBBUyB2YWwgPCA1LCBCIEFTIHZhbCA+PSA1CiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIEVkZ2UgQ2FzZXMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBFbXB0eSByZXN1bHQgc2V0Ci1DUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYzNCBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtOTk5LDcgKzk2OSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIpCiAgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMDEwLDEwICs5ODAsOSBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgPSAx LCBCIEFTIHYgPSAyCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBTaW5nbGUgcm93Ci1D UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYzNSBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMTAyMiw3ICs5OTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoQSkKICAgICBERUZJTkUgQSBBUyBUUlVFCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTAzMywxMCArMTAwMiw5IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFTIFRSVUUKICk7Jyk7Ci1EUk9Q IFZJRVcgcnByX3Y7CiAKIC0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQotQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2MzYgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTEwNDcsNyArMTAxNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyB2ID0gMSwg QiBBUyB2ID0gMiwgQyBBUyB2ID0gMywgRCBBUyB2ID0gNCwgRSBBUyB2ID0gNSwKICAgICAgICAg RiBBUyB2ID0gNiwgRyBBUyB2ID0gNywgSCBBUyB2ID0gOCwgSSBBUyB2ID0gOSwgSiBBUyB2ID0g MTAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYzNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0xMDYwLDEwICsxMDI4LDkgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIHYgPSAx LCBCIEFTIHYgPSAyLCBDIEFTIHYgPSAzLCBEIEFTIHYgPSA0LCBFIEFTIHYgPSA1LAogICAgICAg ICBGIEFTIHYgPSA2LCBHIEFTIHYgPSA3LCBIIEFTIHYgPSA4LCBJIEFTIHYgPSA5LCBKIEFTIHYg PSAxMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gQWxsIHJvd3MgbWF0Y2ggYXMgc2lu Z2xlIG1hdGNoCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYz NyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEwNzIsNyArMTAzOSw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyBUUlVFCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzcnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTA4MywxNCArMTA1 MCwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMg VFJVRQogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBDb21wbGV4IFBhdHRl cm4gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogCiAtLSBOZXN0ZWQgZ3JvdXBzCi1DUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYzOCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEw OTksNyArMTA2NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikgQykrKQog ICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAw CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MzgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTExMCwxMiArMTA3NiwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIp IEMpKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYg JSAzID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gTXVsdGlwbGUgYWx0ZXJuYXRp b25zCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXYzOSBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwotRlJPTSBuZmFfdGVzdAorRlJPTSBycHJfbmZhX3Rlc3QK IFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKQEAgLTExMjQs MTEgKzEwODksMTEgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBB UyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBB UyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYzOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3Ci1GUk9NIG5mYV90ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMg KAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwog ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwpAQCAtMTEzNywxMCArMTEwMiw5IEBA IFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0In JywgQyBBUyBjYXQgPSAnJ0MnJywKICAgICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBjYXQg PSAnJ0UnJwogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gT3B0aW9uYWwgZWxlbWVudHMK LUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjQwIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQog V0lORE9XIHcgQVMgKApAQCAtMTE0OSw3ICsxMTEzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEEgQj8gQykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAy LCBDIEFTIHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjQwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTExNjAsMTAgKzExMjQsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSBCPyBDKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9 IDIsIEMgQVMgdiAlIDQgPSAzCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBCb3VuZGVk IHF1YW50aWZpZXJzCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJf ZXY0MSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMTcyLDcgKzExMzUsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQXsyLDV9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+ IDAsIEIgQVMgdiAlIDEwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTExODMsMTAgKzExNDYsOSBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoQXsyLDV9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMg diAlIDEwID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gU3RhciBxdWFudGlmaWVy Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY0MiBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTExOTUsNyArMTE1Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBIEIqIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAg SU4gKDIsMyw0LDUsNiw3LDgpLCBDIEFTIHYgJSAxMCA9IDkKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0MicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMjA2LDYwICsxMTY4LDU3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIqIEMpCiAgICAgREVGSU5FIEEgQVMgdiAl IDEwID0gMSwgQiBBUyB2ICUgMTAgSU4gKDIsMyw0LDUsNiw3LDgpLCBDIEFTIHYgJSAxMCA9IDkK ICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUmVhbC13b3JsZCBQYXR0ZXJu IEV4YW1wbGVzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIFYtc2hhcGUgKGRv d24gdGhlbiB1cCkKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djQzIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV9jb21wbGV4CitGUk9NIHJw cl9uZmFfY29tcGxleAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVwogICAgIFBBVFRFUk4gKEQrIFUrKQogICAgIERFRklORSBEIEFTIHRyZW5kID0gJ0QnLCBV IEFTIHRyZW5kID0gJ1UnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2NDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNv dW50KCopIE9WRVIgdwotRlJPTSBuZmFfY29tcGxleAorRlJPTSBycHJfbmZhX2NvbXBsZXgKIFdJ TkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKICAgICBQQVRURVJO IChEKyBVKykKICAgICBERUZJTkUgRCBBUyB0cmVuZCA9ICcnRCcnLCBVIEFTIHRyZW5kID0gJydV JycKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIFN0b2NrIHByaWNlIHBhdHRlcm4gLSBw ZWFrICh1cCwgc3RhYmxlLCBkb3duKQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRF IFZJRVcgcnByX2V2NDQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX2NvbXBs ZXgKK0ZST00gcnByX25mYV9jb21wbGV4CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCiAgICAgUEFUVEVSTiAoVSsgUyogRCspCiAgICAgREVGSU5FIFUgQVMg dHJlbmQgPSAnVScsIFMgQVMgdHJlbmQgPSAnUycsIEQgQVMgdHJlbmQgPSAnRCcKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0NCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV9j b21wbGV4CitGUk9NIHJwcl9uZmFfY29tcGxleAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKFUrIFMqIEQrKQogICAgIERFRklORSBV IEFTIHRyZW5kID0gJydVJycsIFMgQVMgdHJlbmQgPSAnJ1MnJywgRCBBUyB0cmVuZCA9ICcnRCcn CiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBDb25zZWN1dGl2ZSBpbmNyZWFzaW5nIHZh bHVlcyAodXNpbmcgUFJFVikKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVX IHJwcl9ldjQ1IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTI2OCw3ICsxMjI3LDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Myx9KQogICAgIERFRklORSBBIEFTIHYgPiBQUkVW KHYpIE9SIFBSRVYodikgSVMgTlVMTAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEyNzksMTQgKzEyMzgsMTMgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEF7Myx9KQogICAgIERFRklORSBBIEFTIHYgPiBQUkVWKHYpIE9SIFBS RVYodikgSVMgTlVMTAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBQZXJm b3JtYW5jZS1vcmllbnRlZCBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIExhcmdlIGRhdGFzZXQgd2l0aCBz aW1wbGUgcGF0dGVybgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnBy X2V2NDYgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEyOTUsNyArMTI1Myw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBC IEFTIHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjQ2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTEzMDYsMTAgKzEyNjQsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7 Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIExhcmdlIGRhdGFzZXQgd2l0aCBhYnNvcnB0aW9u Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY0NyBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMTMxOCw3ICsxMjc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwMCA8PiAwLCBCIEFTIHYgJSAx MDAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2NDcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9W RVIgdwpAQCAtMTMyOSwxMCArMTI4Niw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMDAgPD4gMCwgQiBBUyB2ICUgMTAwID0gMAogKTsn KTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gSGlnaCBzdGF0ZSBtZXJnZSByYXRpbwotQ1JFQVRF IFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NDggQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMTM0MSw3ICsxMjk3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KChBIHwgQikrIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwg QyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0xMzUyLDE0ICsxMzA4LDEzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUg MyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tIElOSVRJQUwgdnMgbm8gSU5JVElBTCBjb21wYXJpc29uCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gV2l0aCBJ TklUSUFMIGtleXdvcmQKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJw cl9ldjQ5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTM2OSw3ICsxMzI0LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwg QiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXY0OScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0xMzgxLDEwICsxMzM2LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAK ICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChz YW1lIGJlaGF2aW9yIGN1cnJlbnRseSkKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldjUwIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTM5Myw3ICsxMzQ3LDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNDA0LDE0ICsxMzU4LDEzIEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMg diAlIDUgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFF1YW50aWZp ZXIgVmFyaWF0aW9ucwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIFBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NTEgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0xNDIwLDcgKzEzNzMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAg ICAgREVGSU5FIEEgQVMgdiAlIDQgPD4gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0MzEsMTAgKzEzODQsOSBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPD4gMAogKTsnKTsK LURST1AgVklFVyBycHJfdjsKIAogLS0gU3RhciBxdWFudGlmaWVyICh6ZXJvIG9yIG1vcmUpCi1D UkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1MiBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTE0NDMsNyArMTM5NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKiBCKQogICAgIERFRklORSBBIEFTIHYgJSA0IElOICgxLCAyKSwgQiBBUyB2ICUgNCA9 IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY1MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0xNDU0LDEwICsxNDA2LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEqIEIp CiAgICAgREVGSU5FIEEgQVMgdiAlIDQgSU4gKDEsIDIpLCBCIEFTIHYgJSA0ID0gMwogKTsnKTsK LURST1AgVklFVyBycHJfdjsKIAogLS0gUXVlc3Rpb24gbWFyayAoemVybyBvciBvbmUpCi1DUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1MyBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTE0NjYsNyArMTQxNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJO IChBPyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBB UyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY1MycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CkBAIC0xNDc3LDEwICsxNDI4LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEE/IEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBD IEFTIHYgJSA0ID0gMwogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gRXhhY3QgY291bnQg e259Ci1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1NCBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTE0ODksNyArMTQzOSw3IEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChBezN9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY1NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC0xNTAwLDEwICsxNDUwLDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7 M30gQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsnKTsK LURST1AgVklFVyBycHJfdjsKIAogLS0gUmFuZ2Uge24sbX0KLUNSRUFURSBURU1QIFZJRVcgcnBy X3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjU1IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTUx Miw3ICsxNDYxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTUnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUyMywxMCArMTQ3Miw5 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezIsNH0gQikKICAgICBERUZJTkUgQSBB UyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAog LS0gQXQgbGVhc3Qge24sfQotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcg cnByX2V2NTYgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNTM1LDcgKzE0ODMsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszLH0gQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAg PD4gMCwgQiBBUyB2ICUgMTAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NTYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTU0Niw3ICsxNDk0LDYgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEF7Myx9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMg diAlIDEwID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBSZWdyZXNz aW9uIFRlc3RzIGZvciBTdGF0aXN0aWNzIEFjY3VyYWN5CkBAIC0xNTU0LDcgKzE1MDEsNyBAQCBE Uk9QIFZJRVcgcnByX3Y7CiAKIC0tIFZlcmlmeSBzdGF0ZSBjb3VudCBhY2N1cmFjeQogLS0gUGF0 dGVybiBBKyBCIHdpdGggMjAgcm93cyBzaG91bGQgc2hvdyBwcmVkaWN0YWJsZSBzdGF0ZSBiZWhh dmlvcgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NTcgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNTYzLDcgKzE1MTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1 ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjU3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTE1NzQsMTAgKzE1MjEsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsnKTsKLURS T1AgVklFVyBycHJfdjsKIAogLS0gVmVyaWZ5IGNvbnRleHQgY291bnQgd2l0aCBrbm93biBhYnNv cnB0aW9uCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY1OCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE1ODYsNyArMTUzMiw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBKyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwIElOICgxLDIsMyw0 LDUsNiw3KSwgQiBBUyB2ICUgMTAgPSA4LCBDIEFTIHYgJSAxMCA9IDkKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1OCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNTk3LDEwICsxNTQz LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIgQykKICAgICBERUZJTkUgQSBB UyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFTIHYgJSAxMCA9IDgsIEMgQVMgdiAlIDEw ID0gOQogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gVmVyaWZ5IG1hdGNoIGxlbmd0aCB3 aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVB VEUgVklFVyBycHJfZXY1OSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE2MDksNyArMTU1NCw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIgQykKICAgICBERUZJTkUgQSBBUyB2 ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjU5JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE2MjAsMzkgKzE1NjUs MzcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiBDKQogICAgIERFRklORSBBIEFT IHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOycpOwotRFJPUCBW SUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tIEFsdGVybmF0aW9uIFBhdHRlcm4gVGVzdHMKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogCiAtLSBTaW1wbGUgYWx0ZXJuYXRpb24KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NS RUFURSBWSUVXIHJwcl9ldjYwIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3Ci1GUk9NIG5mYV90 ZXN0CitGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKAogICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVwogICAgIFBBVFRFUk4gKChBIHwgQikgQykKICAgICBERUZJTkUgQSBBUyBj YXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYwJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKLUZST00gbmZhX3Rlc3QKK0ZS T00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCiAgICAgUEFUVEVSTiAoKEEgfCBCKSBDKQogICAgIERFRklORSBBIEFTIGNhdCA9ICcn QScnLCBCIEFTIGNhdCA9ICcnQicnLCBDIEFTIGNhdCA9ICcnQycnCiApOycpOwotRFJPUCBWSUVX IHJwcl92OwogCiAtLSBNdWx0aXBsZSBpdGVtcyBpbiBhbHRlcm5hdGlvbgotQ1JFQVRFIFRFTVAg VklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NjEgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKLUZST00gbmZhX3Rlc3QKK0ZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCiAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCkBAIC0xNjYxLDExICsxNjA0LDExIEBAIFdJ TkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFT IGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjEn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwotRlJPTSBu ZmFfdGVzdAorRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKQEAgLTE2NzQsMTAgKzE2MTcsOSBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEEgQVMgY2F0ID0gJydBJycsIEIgQVMgY2F0ID0gJydCJycsIEMgQVMgY2F0ID0gJydD JycsCiAgICAgICAgIEQgQVMgY2F0ID0gJydEJycsIEUgQVMgY2F0ID0gJydFJycKICk7Jyk7Ci1E Uk9QIFZJRVcgcnByX3Y7CiAKIC0tIEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmllcnMKLUNSRUFU RSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjYyIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMTY4Niw3ICsxNjI4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KChBIHwgQikrIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwg QyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXY2MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0xNjk3LDEwICsxNjM5LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKChBIHwgQikrIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAz ID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIE11bHRp cGxlIGFsdGVybmF0aXZlcyAoNCspCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUg VklFVyBycHJfZXY2MyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzA4LDcgKzE2NDksNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVG SU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMg diAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3MTgsMTAgKzE2NTksOSBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVGSU5FIEEgQVMgdiAl IDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUgPSAzLCBF IEFTIHYgJSA1ID0gNAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gQWx0ZXJuYXRpb24g YXQgc3RhcnQKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjY0 IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTcyOSw3ICsxNjY5LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKChBIHwgQikgQyBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwg QiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMwogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3Yn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY0JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3MzksMTAg KzE2NzksOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSBDIEQpCiAgICAg REVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQg QVMgdiAlIDQgPSAzCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBNdWx0aXBsZSBzZXF1 ZW50aWFsIGFsdGVybmF0aW9ucwotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2NjUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTc1MCw3ICsxNjg5LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgQyAoRCB8IEUpIEYpCiAgICAgREVG SU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2ICUgNiA9IDIsIEQgQVMg diAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUgNiA9IDUKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2NScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNzYwLDEwICsxNjk5 LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgQyAoRCB8IEUpIEYpCiAg ICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2ICUgNiA9IDIs IEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUgNiA9IDUKICk7Jyk7Ci1E Uk9QIFZJRVcgcnByX3Y7CiAKIC0tIFF1YW50aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVEVN UCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY2NiBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTE3NzEsNyArMTcwOSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSsg fCBCKykgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFT IHYgJSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjY2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTE3ODEsMTAgKzE3MTksOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoKEErIHwgQispIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0g MSwgQyBBUyB2ICUgMyA9IDIKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIEFsdGVybmF0 aW9uIGF0IGVuZAotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2 NjcgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYw KSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzkyLDcgKzE3MjksNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSBCIChDIHwgRCkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAw LCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf dicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjcnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTgwMiwx MSArMTczOSwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCIChDIHwgRCkpCiAg ICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIs IEQgQVMgdiAlIDQgPSAzCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBOZXN0ZWQgQUxU IGF0IHN0YXJ0IG9mIGJyYW5jaCBpbnNpZGUgb3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQSAoKEIg fCBDKSBEIHwgRSkpIC0gcHJlY2VkaW5nIFZBUiArIGlubmVyIEFMVCBhcyBmaXJzdCBicmFuY2gg ZWxlbWVudAotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2Njgg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xODE0LDcgKzE3NTAsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSBEIHwgRSkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUg PSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUgPSAzLCBFIEFT IHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjY4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTE4MjQsMTEgKzE3NjAsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEEgKChCIHwgQykgRCB8IEUpKQogICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2 ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQK ICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIE5lc3RlZCBBTFQgYXQgZW5kIG9mIGJyYW5j aCBpbnNpZGUgb3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQyAoQSB8IEIpIHwgRCkgLSBpbm5lciBB TFQgaXMgbGFzdCBlbGVtZW50IGluIG91dGVyIGJyYW5jaAotQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworQ1JFQVRFIFZJRVcgcnByX2V2NjkgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xODM2 LDcgKzE3NzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkK ICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0g MiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXY2OScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CkBAIC0xODQ2LDE0ICsxNzgxLDEzIEBAIFdJTkRPVyB3IEFTICgKICAg ICBQQVRURVJOIChDIChBIHwgQikgfCBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBB UyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMwogKTsnKTsKLURST1Ag VklFVyBycHJfdjsKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBHcm91cCBQYXR0ZXJuIFRlc3RzCiAtLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAog LS0gU2ltcGxlIGdyb3VwCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBy cHJfZXY3MCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4NjIsNyArMTc5Niw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOICgoQSBCKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAx LCBCIEFTIHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjcwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTE4NzMsMTAgKzE4MDcsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9 IDAKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIEdyb3VwIHdpdGggYm91bmRlZCBxdWFu dGlmaWVyCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY3MSBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4ODUsNyArMTgxOCw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOICgoQSBCKXsyLDR9KQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBB UyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CkBAIC0xODk2LDEwICsxODI5LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKChBIEIpezIsNH0pCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0g MAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gTmVzdGVkIGdyb3VwcwotQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2NzIgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC0xOTA4LDcgKzE4NDAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChB IEIpezJ9KSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjcy JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE5 MTksMTAgKzE4NTEsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpezJ9KSsp CiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsnKTsKLURST1Ag VklFVyBycHJfdjsKIAogLS0gRGVlcCBuZXN0aW5nICgzKyBsZXZlbHMpCi1DUkVBVEUgVEVNUCBW SUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY3MyBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE5MzAsNyArMTg2MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKChBIHwg QikrKSspKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzMn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk0 MCwxMCArMTg3MSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKChBIHwgQikrKSsp KykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCiApOycpOwotRFJP UCBWSUVXIHJwcl92OwogCiAtLSBCb3VuZGVkIHF1YW50aWZpZXIgb24gYWx0ZXJuYXRpb24KLUNS RUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9ldjc0IEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMTk1MSw3ICsxODgxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKChBIHwgQil7MiwzfSBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUg MyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NzQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk2MSwxMCArMTg5MSw5IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAs IEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgogKTsnKTsKLURST1AgVklFVyBycHJfdjsK IAogLS0gTmVzdGVkIGdyb3VwcyB3aXRoIHF1YW50aWZpZXJzCi1DUkVBVEUgVEVNUCBWSUVXIHJw cl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY3NSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE5 NzIsNyArMTkwMSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikrIEMpKikK ICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0g MgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjc1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK QEAgLTE5ODIsMTAgKzE5MTEsOSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIp KyBDKSopCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2 ICUgMyA9IDIKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIFBhcnRpYWwgbmVzdGVkIHF1 YW50aWZpY2F0aW9uCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJf ZXY3NiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE5OTMsNyArMTkyMSw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOICgoQSAoQiBDKSspKikKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9 IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc2JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTIwMDMsMTQgKzE5MzEsMTMgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQogICAgIERFRklORSBBIEFT IHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOycpOwotRFJPUCBW SUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tIFdpbmRvdyBGdW5jdGlvbiBDb21iaW5hdGlvbnMKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogCiAtLSBjb3VudCgqKSB3aXRoIHBhdHRlcm4KLUNSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK0NSRUFURSBWSUVXIHJwcl9ldjc3IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjAxOSw3 ICsxOTQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5F IEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3NycpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMDMwLDEwICsxOTU3LDkgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyB2ICUgNSA9IDAKICk7Jyk7Ci1EUk9QIFZJRVcgcnByX3Y7CiAKIC0tIGZpcnN0X3Zh bHVlIHdpdGggcGF0dGVybgotQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcg cnByX2V2NzggQVMKIFNFTEVDVCBmaXJzdF92YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDQyLDcgKzE5NjgsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUg NSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBmaXJzdF92YWx1ZSh2KSBPVkVSIHcKQEAgLTIwNTMsMTAgKzE5NzksOSBAQCBXSU5ET1cg dyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAogLS0gbGFzdF92YWx1ZSB3 aXRoIHBhdHRlcm4KLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djc5IEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDY1LDcgKzE5OTAsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAw LCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX3YnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjc5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBs YXN0X3ZhbHVlKHYpIE9WRVIgdwpAQCAtMjA3NiwxMCArMjAwMSw5IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAl IDUgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBNdWx0aXBsZSB3aW5kb3cgZnVu Y3Rpb25zCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY4MCBB UwogU0VMRUNUCiAgICAgY291bnQoKikgT1ZFUiB3LAogICAgIGZpcnN0X3ZhbHVlKHYpIE9WRVIg dywKQEAgLTIwOTEsNyArMjAxNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2ODAnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUCkBAIC0yMTA1LDE0ICsyMDI5LDEzIEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIERF RklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBDb21wbGV4IGJvb2xlYW4g ZXhwcmVzc2lvbnMKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBWSUVXIHJwcl9l djgxIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjEyMyw3ICsyMDQ2LDcgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBBTkQgKHYgJSAzIDw+IDApLAogICAgICAg ICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDApCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2ODEnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjEzNiwxMCArMjA1OSw5IEBAIFdJ TkRPVyB3IEFTICgKICAgICAgICAgQSBBUyAodiAlIDUgPD4gMCkgQU5EICh2ICUgMyA8PiAwKSwK ICAgICAgICAgQiBBUyAodiAlIDUgPSAwKSBPUiAodiAlIDMgPSAwKQogKTsnKTsKLURST1AgVklF VyBycHJfdjsKIAogLS0gVXNpbmcgUFJFViBmdW5jdGlvbgotQ1JFQVRFIFRFTVAgVklFVyBycHJf diBBUworQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMTUx LDcgKzIwNzMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIFUgQVMgdiA+IFBSRVYodiksCiAg ICAgICAgIEQgQVMgdiA8IFBSRVYodikKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMTY1LDEwICsyMDg3LDkgQEAgV0lORE9XIHcgQVMg KAogICAgICAgICBVIEFTIHYgPiBQUkVWKHYpLAogICAgICAgICBEIEFTIHYgPCBQUkVWKHYpCiAp OycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSBVc2luZyBOVUxMIGNvbXBhcmlzb25zCi1DUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitDUkVBVEUgVklFVyBycHJfZXY4MyBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIENBU0UgV0hFTiB2ICUgNSA9IDAgVEhF TiBOVUxMIEVMU0UgdiBFTkQgQVMgdgpAQCAtMjE4MCw3ICsyMTAxLDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiBJUyBOT1QgTlVMTCwgQiBB UyB2IElTIE5VTEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY4MycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CkBAIC0yMTk0LDE0ICsyMTE1LDEzIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgSVMgTk9UIE5VTEwsIEIgQVMgdiBJUyBOVUxM CiApOycpOwotRFJPUCBWSUVXIHJwcl92OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIExhcmdlIFNjYWxlIFN0YXRp c3RpY3MgVmVyaWZpY2F0aW9uCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gNTAwIHJvd3MgLSB2ZXJpZnkgc3RhdGlz dGljcyBzY2FsZSBjb3JyZWN0bHkKLUNSRUFURSBURU1QIFZJRVcgcnByX3YgQVMKK0NSRUFURSBW SUVXIHJwcl9ldjg0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIyMTAsNyArMjEzMCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAl IDEwIDwgNywgQiBBUyB2ICUgMTAgPSA3LCBDIEFTIHYgJSAxMCA9IDgKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMjIxLDEwICsyMTQx LDkgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIgQykKICAgICBERUZJTkUgQSBB UyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAlIDEwID0gOAogKTsnKTsKLURS T1AgVklFVyBycHJfdjsKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFRF TVAgVklFVyBycHJfdiBBUworQ1JFQVRFIFZJRVcgcnByX2V2ODUgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtMjIzMyw3ICsyMTUyLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEg QikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2ODUnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjI0NCwxMCAr MjE2Myw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEg QVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAogKTsnKTsKLURST1AgVklFVyBycHJfdjsKIAog LS0gSGlnaCBza2lwIGNvdW50IHNjZW5hcmlvCi1DUkVBVEUgVEVNUCBWSUVXIHJwcl92IEFTCitD UkVBVEUgVklFVyBycHJfZXY4NiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMjYxLDcgKzIx NzksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEQgQVMgdiAlIDEwMCA9IDQsCiAgICAgICAg IEUgQVMgdiAlIDEwMCA9IDUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CkBAIC0yMjc3LDggKzIxOTUsNCBAQCBXSU5ET1cgdyBBUyAoCiAgICAg ICAgIEQgQVMgdiAlIDEwMCA9IDQsCiAgICAgICAgIEUgQVMgdiAlIDEwMCA9IDUKICk7Jyk7Ci1E Uk9QIFZJRVcgcnByX3Y7CiAKLS0tIENsZWFudXAKLURST1AgVEFCTEUgbmZhX3Rlc3Q7Ci1EUk9Q IFRBQkxFIG5mYV9jb21wbGV4OwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0005-disable-run-condition.txt" Content-Disposition: attachment; filename="0005-disable-run-condition.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufl7q4 RnJvbSA4MWE5YjgzYjlkNjE3MDRlODVkOTdiYzc5YjEwYWM2YTAwZDczZGVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgTWFyIDIwMjYgMTU6NTM6MzMgKzA5MDAKU3ViamVjdDogW1BBVENIIDA1LzEyXSBE aXNhYmxlIHJ1biBjb25kaXRpb24gcHVzaGRvd24gZm9yIFJQUiB3aW5kb3dzCgotLS0KIHNyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMgIHwgMTEgKysrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IHwgIDQgKysrLQogMiBmaWxlcyBjaGFu Z2VkLCAxNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w YXRoL2FsbHBhdGhzLmMKaW5kZXggOTAyNzVlMjU4NzIuLmI2N2MzNWFmMzlhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKQEAgLTI0NTMsNiArMjQ1MywxNyBAQCBmaW5kX3dp bmRvd19ydW5fY29uZGl0aW9ucyhRdWVyeSAqc3VicXVlcnksIEF0dHJOdW1iZXIgYXR0bm8sCiAJ d2NsYXVzZSA9IChXaW5kb3dDbGF1c2UgKikgbGlzdF9udGgoc3VicXVlcnktPndpbmRvd0NsYXVz ZSwKIAkJCQkJCQkJCQl3ZnVuYy0+d2lucmVmIC0gMSk7CiAKKwkvKgorCSAqIElmIGEgREVGSU5F IGNsYXVzZSBleGlzdHMsIHdlIGNhbm5vdCBwdXNoIGRvd24gYSBydW4gY29uZGl0aW9uLiBJbiB0 aGUKKwkgKiBjYXNlLCBhIHdpbmRvdyBwYXJ0aXRpb24gKG9yIGZyYW1lKSBpcyBkaXZpZGVkIGlu dG8gbXVsdGlwbGUgcmVkdWNlZAorCSAqIGZyYW1lcyBhbmQgZWFjaCBmcmFtZSBzaG91bGQgYmUg ZXZhbHVhdGVkIHRvIHRoZSBlbmQgb2YgdGhlIHBhcnRpdGlvbgorCSAqIChvciBmdWxsIGZyYW1l IGVuZCkuIFRoaXMgbWVhbnMgd2UgY2Fubm90IGFwcGx5IHRoZSBydW4gY29uZGl0aW9uCisJICog b3B0aW1pemF0aW9uIGJlY2F1c2UgaXQgc3RvcHMgZXZhbHVhdGlvbiB3aW5kb3cgZnVuY3Rpb25z IGluIGNlcnRhaW4KKwkgKiBjYXNlcy4KKwkgKi8KKwlpZiAod2NsYXVzZS0+ZGVmaW5lQ2xhdXNl ICE9IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCiAJcmVxLnR5cGUgPSBUX1N1cHBvcnRSZXF1ZXN0 V0Z1bmNNb25vdG9uaWM7CiAJcmVxLndpbmRvd19mdW5jID0gd2Z1bmM7CiAJcmVxLndpbmRvd19j bGF1c2UgPSB3Y2xhdXNlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRl eCBhZTZkOWM5YjkzNy4uYTdjNTM2NjI1ZjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0CkBAIC0yNDY1LDcgKzI0NjUsOSBAQCBXSEVSRSBjbnQgPiAwCiBPUkRFUiBCWSBp ZDsKICBpZCB8IHZhbCB8IGNudCAKIC0tLS0rLS0tLS0rLS0tLS0KLSgwIHJvd3MpCisgIDIgfCAg MjAgfCAgIDIKKyAgNCB8ICA0MCB8ICAgMQorKDIgcm93cykKIAogLS0gTmVzdGVkIHN1YnF1ZXJp ZXMKIFNFTEVDVCAqCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0006-disable-frame-opt.txt" Content-Disposition: attachment; filename="0006-disable-frame-opt.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufo0k5 RnJvbSA0NTgyMjRhZmE5ZGY4NDM4NDEzYjJmMzdmODcxNzU1ODFmODJhZWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgTWFyIDIwMjYgMTU6NTk6NDUgKzA5MDAKU3ViamVjdDogW1BBVENIIDA2LzEyXSBE aXNhYmxlIGZyYW1lIG9wdGltaXphdGlvbiBmb3IgUlBSIHdpbmRvd3MKCi0tLQogc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgfCAgMTQgKystCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCB8IDE0NSArKysrKysrKysrKysrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8ICA5OCArKysrKysr KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjU2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggMDRmYWY5MTkwMzMuLjg0 MmMyYWEyYjk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVy LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC01OTA3LDYg KzU5MDcsMTQgQEAgb3B0aW1pemVfd2luZG93X2NsYXVzZXMoUGxhbm5lckluZm8gKnJvb3QsIFdp bmRvd0Z1bmNMaXN0cyAqd2ZsaXN0cykKIAkJaWYgKHdmbGlzdHMtPndpbmRvd0Z1bmNzW3djLT53 aW5yZWZdID09IE5JTCkKIAkJCWNvbnRpbnVlOwogCisJCS8qCisJCSAqIElmIGEgREVGSU5FIGNs YXVzZSBleGlzdHMsIGRvIG5vdCBsZXQgc3VwcG9ydCBmdW5jdGlvbnMgcmVwbGFjZSB0aGUKKwkJ ICogZnJhbWUgd2l0aCBhIG5vbi1SUFItY29tcGF0aWJsZSBvbmUuICBSUFIgd2luZG93cyByZXF1 aXJlIFJPV1MKKwkJICogQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgLi4uCisJCSAqLworCQlpZiAo d2MtPmRlZmluZUNsYXVzZSAhPSBOSUwpCisJCQljb250aW51ZTsKKwogCQlmb3JlYWNoKGxjMiwg d2ZsaXN0cy0+d2luZG93RnVuY3Nbd2MtPndpbnJlZl0pCiAJCXsKIAkJCVN1cHBvcnRSZXF1ZXN0 T3B0aW1pemVXaW5kb3dDbGF1c2UgcmVxOwpAQCAtNTk5MCw3ICs1OTk4LDExIEBAIG9wdGltaXpl X3dpbmRvd19jbGF1c2VzKFBsYW5uZXJJbmZvICpyb290LCBXaW5kb3dGdW5jTGlzdHMgKndmbGlz dHMpCiAJCQkJCWVxdWFsKHdjLT5vcmRlckNsYXVzZSwgZXhpc3Rpbmdfd2MtPm9yZGVyQ2xhdXNl KSAmJgogCQkJCQl3Yy0+ZnJhbWVPcHRpb25zID09IGV4aXN0aW5nX3djLT5mcmFtZU9wdGlvbnMg JiYKIAkJCQkJZXF1YWwod2MtPnN0YXJ0T2Zmc2V0LCBleGlzdGluZ193Yy0+c3RhcnRPZmZzZXQp ICYmCi0JCQkJCWVxdWFsKHdjLT5lbmRPZmZzZXQsIGV4aXN0aW5nX3djLT5lbmRPZmZzZXQpKQor CQkJCQllcXVhbCh3Yy0+ZW5kT2Zmc2V0LCBleGlzdGluZ193Yy0+ZW5kT2Zmc2V0KSAmJgorCQkJ CQl3Yy0+cnBTa2lwVG8gPT0gZXhpc3Rpbmdfd2MtPnJwU2tpcFRvICYmCisJCQkJCXdjLT5pbml0 aWFsID09IGV4aXN0aW5nX3djLT5pbml0aWFsICYmCisJCQkJCWVxdWFsKHdjLT5kZWZpbmVDbGF1 c2UsIGV4aXN0aW5nX3djLT5kZWZpbmVDbGF1c2UpICYmCisJCQkJCWVxdWFsKHdjLT5ycFBhdHRl cm4sIGV4aXN0aW5nX3djLT5ycFBhdHRlcm4pKQogCQkJCXsKIAkJCQkJTGlzdENlbGwgICAqbGM0 OwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDNjNzBh MTI4NzRhLi5lMDdhZDU3ZjMwMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhw bGFpbi5vdXQKQEAgLTM4MjEsMyArMzgyMSwxNDggQEAgV0lORE9XIHcgQVMgKAogICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwMC4wMCBsb29w cz0xKQogKDkgcm93cykKIAorLS0KKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uOiBvcHRpbWl6ZV93 aW5kb3dfY2xhdXNlcyBtdXN0IG5vdCBhbHRlciBSUFIgZnJhbWUKKy0tCistLSBvcHRpbWl6ZV93 aW5kb3dfY2xhdXNlcygpIHJlcGxhY2VzIGZyYW1lIG9wdGlvbnMgdmlhIHByb3N1cHBvcnQgZnVu Y3Rpb25zLgorLS0gQWZmZWN0ZWQgZnVuY3Rpb25zOiByb3dfbnVtYmVyLCByYW5rLCBkZW5zZV9y YW5rLCBwZXJjZW50X3JhbmssIGN1bWVfZGlzdCwKKy0tIG50aWxlLiAgQWxsIHdvdWxkIGNoYW5n ZSB0aGUgZnJhbWUgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HLCBicmVha2luZworLS0gUlBS J3MgcmVxdWlyZWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HLgorLS0gVGVzdCB3aXRoIHJvd19udW1iZXIoKSBhcyByZXByZXNlbnRhdGl2ZSBjYXNlLgor LS0KKy0tIFdpdGhvdXQgUlBSOiByb3dfbnVtYmVyKCkgZnJhbWUgaXMgb3B0aW1pemVkIHRvIFJP V1MgVU5CT1VOREVEIFBSRUNFRElORworQ1JFQVRFIFZJRVcgcnByX2V2ODcgQVMKK1NFTEVDVCBy b3dfbnVtYmVyKCkgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIHYKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gcnByX2V2ODc7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIHJwcl9l djg3CisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHMu diBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcpCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAg ICAgICAgU29ydCBLZXk6IHMudgorICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMKKyg2IHJvd3MpCisKKy0tIFdpdGggUlBSOiBmcmFtZSBtdXN0IHJl bWFpbiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKK0NS RUFURSBWSUVXIHJwcl9ldjg4IEFTCitTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSB2CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykK KyAgICBERUZJTkUKKyAgICAgICAgQiBBUyB2ID4gUFJFVih2KQorKTsKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4ODsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gcnBy X2V2ODgKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg cy52IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg ICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBT b3J0IEtleTogcy52CisgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcworKDcgcm93cykKKworLS0KKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uOiBub24t UlBSIGFuZCBSUFIgd2luZG93cyB0aGF0IHNoYXJlIHRoZSBzYW1lIGJhc2UgZnJhbWUKKy0tIGFm dGVyIGZyYW1lIG9wdGltaXphdGlvbiBhcmUga2VwdCBhcyBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9k ZXMuCistLQorQ1JFQVRFIFZJRVcgcnByX2V2ODkgQVMKK1NFTEVDVAorICAgIHJvd19udW1iZXIo KSBPVkVSIHdfbm9ybWFsIEFTIHJuX25vcm1hbCwKKyAgICByb3dfbnVtYmVyKCkgT1ZFUiB3X3Jw ciBBUyBybl9ycHIKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHModikKK1dJTkRPVwor ICAgIHdfbm9ybWFsIEFTIChPUkRFUiBCWSB2IFJBTkdFIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNF RElORyBBTkQgQ1VSUkVOVCBST1cpLAorICAgIHdfcnByIEFTICgKKyAgICAgICAgT1JERVIgQlkg dgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHYgPiAxCisgICAg KTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4OTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU3VicXVlcnkgU2NhbiBvbiBycHJfZXY4OQorICAgLT4gIFdpbmRvd0FnZworICAgICAg ICAgV2luZG93OiB3X3JwciBBUyAoT1JERVIgQlkgcy52IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGErIgorICAgICAg ICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICAgICAgV2luZG93OiB3X25vcm1hbCBBUyAoT1JE RVIgQlkgcy52IFJPV1MgVU5CT1VOREVEIFBSRUNFRElORykKKyAgICAgICAgICAgICAgIC0+ICBT b3J0CisgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogcy52CisgICAgICAgICAgICAgICAg ICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDkgcm93cykKKwor LS0KKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uOiBmaW5kX3dpbmRvd19ydW5fY29uZGl0aW9ucyBt dXN0IG5vdCBwdXNoIGRvd24KKy0tIFJQUiB3aW5kb3cgZnVuY3Rpb24gcmVzdWx0cyBhcyBSdW4g Q29uZGl0aW9ucy4KKy0tCistLSBmaW5kX3dpbmRvd19ydW5fY29uZGl0aW9ucygpIHB1c2hlcyBX SEVSRSBmaWx0ZXJzIG9uIG1vbm90b25pYyB3aW5kb3cKKy0tIGZ1bmN0aW9ucyBpbnRvIFdpbmRv d0FnZyBhcyBSdW4gQ29uZGl0aW9ucyBmb3IgZWFybHkgdGVybWluYXRpb24uCistLSBXaXRoIFJQ UidzIHJlcXVpcmVkIGZyYW1lIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RAorLS0gRk9MTE9XSU5HKSwgdGhlIG1vbm90b25pYyBkaXJlY3Rpb24gZGV0ZXJtaW5lcyB3aGlj aCBvcGVyYXRvcnMgdHJpZ2dlcgorLS0gUnVuIENvbmRpdGlvbiBwdXNoZG93bjoKKy0tICAgSU5D UkVBU0lORyAoPD0pOiByb3dfbnVtYmVyLCByYW5rLCBkZW5zZV9yYW5rLCBwZXJjZW50X3Jhbmss CistLSAgICAgICAgICAgICAgICAgICAgY3VtZV9kaXN0LCBudGlsZQorLS0gICBERUNSRUFTSU5H ICg+KTogIGNvdW50KCopICh2aWEgaW50OGluYywgRU5EX1VOQk9VTkRFRF9GT0xMT1dJTkcpCist LSBSUFIgd2luZG93IGZ1bmN0aW9uIHJlc3VsdHMgYXJlIG1hdGNoLWRlcGVuZGVudCwgbm90IG1v bm90b25pYy4KKy0tIFRlc3Qgd2l0aCBjb3VudCgqKSA+IDAgYXMgcmVwcmVzZW50YXRpdmUgY2Fz ZS4KKy0tCistLSBXaXRob3V0IFJQUjogY291bnQoKikgPiAwIGlzIHB1c2hlZCBkb3duIGFzIFJ1 biBDb25kaXRpb24KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTApIEFTIHModikKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIE9SREVSIEJZIHYKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg KQorKSB0IFdIRVJFIGNudCA+IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIHQKKyAgIC0+ICBX aW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcy52IFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFJ1biBDb25k aXRpb246IChjb3VudCgqKSBPVkVSIHcgPiAwKQorICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAg ICAgICAgIFNvcnQgS2V5OiBzLnYKKyAgICAgICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzCisoNyByb3dzKQorCistLSBXaXRoIFJQUjogY291bnQoKikgPiAw IG11c3Qgbm90IGJlIHB1c2hlZCBkb3duIGFzIFJ1biBDb25kaXRpb24KK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKKyAgICBXSU5ET1cgdyBB UyAoCisgICAgICAgIE9SREVSIEJZIHYKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUKKyAgICAgICAg ICAgIEIgQVMgdiA+IFBSRVYodikKKyAgICApCispIHQgV0hFUkUgY250ID4gMDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1 YnF1ZXJ5IFNjYW4gb24gdAorICAgRmlsdGVyOiAodC5jbnQgPiAwKQorICAgLT4gIFdpbmRvd0Fn ZworICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSBiKwor ICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzLnYKKyAgICAgICAg ICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoOCByb3dzKQor CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKaW5kZXggOGUyMjM4MmE2OGUuLjkzZTA2 YjBjYmRmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCkBAIC0yMTk2LDMgKzIx OTYsMTAxIEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgRSBBUyB2ICUgMTAwID0gNQogKTsnKTsK IAorLS0KKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uOiBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcyBt dXN0IG5vdCBhbHRlciBSUFIgZnJhbWUKKy0tCistLSBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcygp IHJlcGxhY2VzIGZyYW1lIG9wdGlvbnMgdmlhIHByb3N1cHBvcnQgZnVuY3Rpb25zLgorLS0gQWZm ZWN0ZWQgZnVuY3Rpb25zOiByb3dfbnVtYmVyLCByYW5rLCBkZW5zZV9yYW5rLCBwZXJjZW50X3Jh bmssIGN1bWVfZGlzdCwKKy0tIG50aWxlLiAgQWxsIHdvdWxkIGNoYW5nZSB0aGUgZnJhbWUgdG8g Uk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HLCBicmVha2luZworLS0gUlBSJ3MgcmVxdWlyZWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HLgorLS0gVGVzdCB3 aXRoIHJvd19udW1iZXIoKSBhcyByZXByZXNlbnRhdGl2ZSBjYXNlLgorLS0KKworLS0gV2l0aG91 dCBSUFI6IHJvd19udW1iZXIoKSBmcmFtZSBpcyBvcHRpbWl6ZWQgdG8gUk9XUyBVTkJPVU5ERUQg UFJFQ0VESU5HCitDUkVBVEUgVklFVyBycHJfZXY4NyBBUworU0VMRUNUIHJvd19udW1iZXIoKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgdgorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldjg3OworCistLSBXaXRoIFJQUjogZnJhbWUgbXVzdCByZW1haW4gUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCitDUkVBVEUgVklFVyBycHJfZXY4OCBB UworU0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgdgorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAg IEIgQVMgdiA+IFBSRVYodikKKyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBycHJfZXY4ODsKKworLS0KKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uOiBub24tUlBSIGFuZCBS UFIgd2luZG93cyB0aGF0IHNoYXJlIHRoZSBzYW1lIGJhc2UgZnJhbWUKKy0tIGFmdGVyIGZyYW1l IG9wdGltaXphdGlvbiBhcmUga2VwdCBhcyBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9kZXMuCistLQor Q1JFQVRFIFZJRVcgcnByX2V2ODkgQVMKK1NFTEVDVAorICAgIHJvd19udW1iZXIoKSBPVkVSIHdf bm9ybWFsIEFTIHJuX25vcm1hbCwKKyAgICByb3dfbnVtYmVyKCkgT1ZFUiB3X3JwciBBUyBybl9y cHIKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHModikKK1dJTkRPVworICAgIHdfbm9y bWFsIEFTIChPUkRFUiBCWSB2IFJBTkdFIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQg Q1VSUkVOVCBST1cpLAorICAgIHdfcnByIEFTICgKKyAgICAgICAgT1JERVIgQlkgdgorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHYgPiAxCisgICAgKTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldjg5OworCistLQorLS0gUGxhbm5l ciBvcHRpbWl6YXRpb246IGZpbmRfd2luZG93X3J1bl9jb25kaXRpb25zIG11c3Qgbm90IHB1c2gg ZG93bgorLS0gUlBSIHdpbmRvdyBmdW5jdGlvbiByZXN1bHRzIGFzIFJ1biBDb25kaXRpb25zLgor LS0KKy0tIGZpbmRfd2luZG93X3J1bl9jb25kaXRpb25zKCkgcHVzaGVzIFdIRVJFIGZpbHRlcnMg b24gbW9ub3RvbmljIHdpbmRvdworLS0gZnVuY3Rpb25zIGludG8gV2luZG93QWdnIGFzIFJ1biBD b25kaXRpb25zIGZvciBlYXJseSB0ZXJtaW5hdGlvbi4KKy0tIFdpdGggUlBSJ3MgcmVxdWlyZWQg ZnJhbWUgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVECistLSBGT0xMT1dJ TkcpLCB0aGUgbW9ub3RvbmljIGRpcmVjdGlvbiBkZXRlcm1pbmVzIHdoaWNoIG9wZXJhdG9ycyB0 cmlnZ2VyCistLSBSdW4gQ29uZGl0aW9uIHB1c2hkb3duOgorLS0gICBJTkNSRUFTSU5HICg8PSk6 IHJvd19udW1iZXIsIHJhbmssIGRlbnNlX3JhbmssIHBlcmNlbnRfcmFuaywKKy0tICAgICAgICAg ICAgICAgICAgICBjdW1lX2Rpc3QsIG50aWxlCistLSAgIERFQ1JFQVNJTkcgKD4pOiAgY291bnQo KikgKHZpYSBpbnQ4aW5jLCBFTkRfVU5CT1VOREVEX0ZPTExPV0lORykKKy0tIFJQUiB3aW5kb3cg ZnVuY3Rpb24gcmVzdWx0cyBhcmUgbWF0Y2gtZGVwZW5kZW50LCBub3QgbW9ub3RvbmljLgorLS0g VGVzdCB3aXRoIGNvdW50KCopID4gMCBhcyByZXByZXNlbnRhdGl2ZSBjYXNlLgorLS0KKworLS0g V2l0aG91dCBSUFI6IGNvdW50KCopID4gMCBpcyBwdXNoZWQgZG93biBhcyBSdW4gQ29uZGl0aW9u CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQo KikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYp CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSB2CisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICkKKykgdCBXSEVS RSBjbnQgPiAwOworCistLSBXaXRoIFJQUjogY291bnQoKikgPiAwIG11c3Qgbm90IGJlIHB1c2hl ZCBkb3duIGFzIFJ1biBDb25kaXRpb24KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZS T00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMTApIEFTIHModikKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIE9SREVS IEJZIHYKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgICAgICBQ QVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIEIgQVMgdiA+IFBSRVYo dikKKyAgICApCispIHQgV0hFUkUgY250ID4gMDsKKwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1 KQoK --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0007-stock-scenario-tests.txt" Content-Disposition: attachment; filename="0007-stock-scenario-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufq9s6 RnJvbSBiYTA2M2NkYWIyYTgyNGNiMWYwMzEyYmM2MDhiODg5NmYyNzM0NGJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDMgTWFyIDIwMjYgMjI6MTc6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIDA3LzEyXSBB ZGQgc3RvY2sgc2NlbmFyaW8gdGVzdHMgZm9yIFJQUiBwYXR0ZXJuIG1hdGNoaW5nCgotLS0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZGF0YS9zdG9jay5kYXRhICB8IDE2MzIgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCB8ICA1MTcgKysr KysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgfCAgMjU2ICsrKystCiAz IGZpbGVzIGNoYW5nZWQsIDI0MDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2RhdGEvc3RvY2suZGF0YQoKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZGF0YS9zdG9jay5kYXRhIGIvc3JjL3Rlc3QvcmVncmVzcy9k YXRhL3N0b2NrLmRhdGEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY0 NWJiNjQzZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9kYXRhL3N0b2Nr LmRhdGEKQEAgLTAsMCArMSwxNjMyIEBACisxCTEJMzY0Ljc1MAkxNTgwMAkwLjAwMAkwLjAwMAkw LjAwMAorMQkyCTM2OC4yNTAJMjEyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEJMwkzNjguNTAwCTI0 NDAwCTAuMDAwCTAuMDAwCTAuMDAwCisxCTQJMzY4Ljc1MAkyMjkwMAkwLjAwMAkwLjAwMAkwLjAw MAorMQk1CTM2OS41MDAJMzU0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEJNgkzNjkuMDAwCTI5MzAw CTAuMDAwCTAuMDAwCTAuMDAwCisxCTcJMzY3Ljc1MAkxOTAwMAkwLjAwMAkwLjAwMAkwLjAwMAor MQk4CTM3NC4xMjUJMzcyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzIJOQkzNDMuMjUwCTU2ODAwCTAu MDAwCTAuMDAwCTAuMDAwCisyCTEwCTMzOC41MDAJNDUyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzIJ MTEJMzM4Ljc1MAk0MDkwMAkwLjAwMAkwLjAwMAkwLjAwMAorMgkxMgkzNDQuNzUwCTM1MjAwCTAu MDAwCTAuMDAwCTAuMDAwCisyCTEzCTM0OS43NTAJMjg1MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzIJ MTQJMzQ2LjAwMAkyNTYwMAkwLjAwMAkwLjAwMAkwLjAwMAorMwkxNQkzNDkuMDAwCTI0OTAwCTAu MDAwCTAuMDAwCTAuMDAwCiszCTE2CTM0OS4yNTAJMjA3MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzMJ MTcJMzQ5Ljc1MAkyMjIwMAkwLjAwMAkwLjAwMAkwLjAwMAorMwkxOAkzNTEuMjUwCTE5NjAwCTAu MDAwCTAuMDAwCTAuMDAwCiszCTE5CTM1Mi4wMDAJMzI1MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzMJ MjAJMzQ5LjUwMAkzMjIwMAkwLjAwMAkwLjAwMAkwLjAwMAorMwkyMQkzNDQuNTAwCTE4NjAwCTAu MDAwCTAuMDAwCTAuMDAwCiszCTIyCTM0NS4wMDAJNjEyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzQJ MjMJMjM4LjI1MAkzNzEwMAkwLjAwMAkwLjAwMAkwLjAwMAorNAkyNAkyMzAuNjI1CTYxNTAwCTAu MDAwCTAuMDAwCTAuMDAwCis0CTI1CTIyMy4wMDAJMTYxNzAwCTAuMDAwCTAuMDAwCTAuMDAwCis0 CTI2CTIyOS44NzUJNTUzMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzQJMjcJMjM1LjI1MAkzODUwMAkw LjAwMAkwLjAwMAkwLjAwMAorNQkyOAkzMTAuMDAwCTM2MDAwCTAuMDAwCTAuMDAwCTAuMDAwCis1 CTI5CTMxMS43NTAJMjY4MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzAJMzEyLjc1MAkzMTkwMAkw LjAwMAkwLjAwMAkwLjAwMAorNQkzMQkzMTQuNzUwCTIxMTAwCTAuMDAwCTAuMDAwCTAuMDAwCis1 CTMyCTMxNS41MDAJMjc0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzMJMzE2LjUwMAk0MDcwMAkw LjAwMAkwLjAwMAkwLjAwMAorNQkzNAkzMjEuNzUwCTUzNTAwCTAuMDAwCTAuMDAwCTAuMDAwCis1 CTM1CTMyNi4wMDAJNDg3MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzYJMzIyLjUwMAk0NjAwMAkw LjAwMAkwLjAwMAkwLjAwMAorNQkzNwkzMTcuNTAwCTM1NjAwCTAuMDAwCTAuMDAwCTAuMDAwCis1 CTM4CTMyNS41MDAJMzQwMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzkJMzI3LjI1MAkzMDcwMAkw LjAwMAkwLjAwMAkwLjAwMAorNQk0MAkzMjcuNzUwCTM2NzAwCTAuMDAwCTAuMDAwCTAuMDAwCis1 CTQxCTMyOC42MjUJMjMyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJNDIJMzMwLjUwMAkyOTcwMAkw LjAwMAkwLjAwMAkwLjAwMAorNQk0MwkzMzYuNTAwCTM5MjAwCTAuMDAwCTAuMDAwCTAuMDAwCis1 CTQ0CTM0MC43NTAJMzQ0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJNDUJMzM4LjUwMAkzMjIwMAkw LjAwMAkwLjAwMAkwLjAwMAorNgk0NgkzNTMuMDAwCTI3ODAwCTAuMDAwCTAuMDAwCTAuMDAwCis2 CTQ3CTM1Mi4wMDAJNTU2MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzYJNDgJMzU1LjAwMAkzMTMwMAkw LjAwMAkwLjAwMAkwLjAwMAorNgk0OQkzNTYuMDAwCTI2OTAwCTAuMDAwCTAuMDAwCTAuMDAwCis2 CTUwCTM1OC4wMDAJMTg5MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzYJNTEJMzYxLjI1MAkyNjQwMAkw LjAwMAkwLjAwMAkwLjAwMAorNwk1MgkzMTEuNzUwCTI1MTAwCTAuMDAwCTAuMDAwCTAuMDAwCis3 CTUzCTMxNC4wMDAJMzc5MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzcJNTQJMzE3LjAwMAkzNDAwMAkw LjAwMAkwLjAwMAkwLjAwMAorNwk1NQkzMTcuNzUwCTIzNzAwCTAuMDAwCTAuMDAwCTAuMDAwCis3 CTU2CTMxOS4wMDAJMjM0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzcJNTcJMzE2LjUwMAkyNDIwMAkw LjAwMAkwLjAwMAkwLjAwMAorOAk1OAkzMTYuMDAwCTM3MjAwCTAuMDAwCTAuMDAwCTAuMDAwCis4 CTU5CTMxNS4wMDAJMzE1MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzgJNjAJMzAyLjAwMAkxMjQ3MDAJ MC4wMDAJMC4wMDAJMC4wMDAKKzgJNjEJMzAwLjAwMAkxOTYxMDAJMC4wMDAJMC4wMDAJMC4wMDAK KzgJNjIJMjk4LjAwMAk3MDAwMAkwLjAwMAkwLjAwMAkwLjAwMAorOAk2MwkyOTQuNTAwCTg4MjAw CTAuMDAwCTAuMDAwCTAuMDAwCis4CTY0CTI5Ni41MDAJNTM4MDAJMC4wMDAJMC4wMDAJMC4wMDAK KzgJNjUJMjk5LjAwMAk0NzkwMAkwLjAwMAkwLjAwMAkwLjAwMAorOAk2NgkzMDEuNzUwCTMzMzAw CTAuMDAwCTAuMDAwCTAuMDAwCis4CTY3CTI5OS41MDAJMzE4MDAJMC4wMDAJMC4wMDAJMC4wMDAK KzkJNjgJMjk5LjUwMAk3NjcwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk2OQkyOTYuNzUwCTQxOTAw CTAuMDAwCTAuMDAwCTAuMDAwCis5CTcwCTI5MS4yNTAJNDY3MDAJMC4wMDAJMC4wMDAJMC4wMDAK KzkJNzEJMjkzLjc1MAkzMTEwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk3MgkyOTAuMDAwCTQ4OTAw CTAuMDAwCTAuMDAwCTAuMDAwCis5CTczCTI4Ny4wMDAJNTYzMDAJMC4wMDAJMC4wMDAJMC4wMDAK KzkJNzQJMjg3LjAwMAk0MDcwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk3NQkyODUuNTAwCTI3OTAw CTAuMDAwCTAuMDAwCTAuMDAwCis5CTc2CTI4NC4wMDAJMjc0MDAJMC4wMDAJMC4wMDAJMC4wMDAK KzkJNzcJMjg2LjAwMAkyMzUwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk3OAkyOTEuMjUwCTM4MDAw CTAuMDAwCTAuMDAwCTAuMDAwCis5CTc5CTI5Ni43NTAJNDI5MDAJMC4wMDAJMC4wMDAJMC4wMDAK KzkJODAJMjk1LjAwMAkxOTUwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk4MQkzMTQuMDAwCTEwMjkw MAkwLjAwMAkwLjAwMAkwLjAwMAorOQk4MgkzMTUuNzUwCTg0MTAwCTAuMDAwCTAuMDAwCTAuMDAw CisxMAk4MwkzMDIuMDAwCTQ0NjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4NAkzMDEuMDAwCTQ1 MDAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4NQkyOTQuNzUwCTI3OTAwCTAuMDAwCTAuMDAwCTAu MDAwCisxMAk4NgkyOTMuNTAwCTE3NjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4NwkyOTEuNzUw CTIxNjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4OAkyOTAuNTAwCTMwMzAwCTAuMDAwCTAuMDAw CTAuMDAwCisxMAk4OQkyOTEuNzUwCTIyNzAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5MAkyOTgu NzUwCTE2MjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5MQkzMDIuMjUwCTQ5MTAwCTAuMDAwCTAu MDAwCTAuMDAwCisxMAk5MgkzMDUuNTAwCTM1NTAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5Mwkz MDkuNzUwCTYzMjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5NAkzMDkuNTAwCTQzMjAwCTAuMDAw CTAuMDAwCTAuMDAwCisxMQk5NQkzODMuNzUwCTE5MzAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQk5 NgkzODkuNTAwCTI4OTAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQk5NwkzOTQuNTAwCTQxNzAwCTAu MDAwCTAuMDAwCTAuMDAwCisxMQk5OAkzOTYuMjUwCTI4MjAwCTAuMDAwCTAuMDAwCTAuMDAwCisx MQk5OQk0MDEuMDAwCTU1MDAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQkxMDAJNDAyLjAwMAk0MTEw MAkwLjAwMAkwLjAwMAkwLjAwMAorMTEJMTAxCTQwMy4wMDAJMzg1MDAJMC4wMDAJMC4wMDAJMC4w MDAKKzExCTEwMgk0MDQuMDAwCTMzMTAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQkxMDMJNDA0LjAw MAkzMzgwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTIJMTA0CTM4OC4wMDAJMjU4MDAJMC4wMDAJMC4w MDAJMC4wMDAKKzEyCTEwNQkzODguNTAwCTQ0OTAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMgkxMDYJ MzkwLjAwMAkzODQwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTIJMTA3CTM5MC43NTAJMjMyMDAJMC4w MDAJMC4wMDAJMC4wMDAKKzEyCTEwOAkzOTYuNTAwCTI1MTAwCTAuMDAwCTAuMDAwCTAuMDAwCisx MgkxMDkJMzk4Ljc1MAkzODAwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTIJMTEwCTM5OC4wMDAJMzM2 MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEyCTExMQkzOTQuNTAwCTU0MDAwCTAuMDAwCTAuMDAwCTAu MDAwCisxMgkxMTIJMzk3LjAwMAkyMDkwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTMJMTEzCTM5OC4x MjUJMjg1MDAJMC4wMDAJMzk2LjAwMAk0MDEuMDAwCisxMwkxMTQJMzk0LjUwMAkzOTkwMAkwLjAw MAkzOTIuNTAwCTM5Ny41MDAKKzEzCTExNQkzOTAuMDAwCTM3NjAwCTAuMDAwCTM5MC4wMDAJMzkz Ljc1MAorMTMJMTE2CTM4OS41MDAJMzEwMDAJMC4wMDAJMzg2LjAwMAkzOTIuNzUwCisxMwkxMTcJ Mzg1LjUwMAkyNTgwMAkwLjAwMAkzODUuNTAwCTM4OS43NTAKKzEzCTExOAkzOTAuNTAwCTE4MDAw CTAuMDAwCTM4NS4wMDAJMzkwLjUwMAorMTMJMTE5CTM5MS43NTAJMTQ2MDAJMC4wMDAJMzkxLjUw MAkzOTUuNTAwCisxMwkxMjAJMzk5LjAwMAkyNzgwMAkwLjAwMAkzOTIuMjUwCTM5OS4wMDAKKzEz CTEyMQk0MDIuMDAwCTQ2NTAwCTAuMDAwCTM5OS4wMDAJNDAzLjAwMAorMTMJMTIyCTQwOS4wMDAJ MzYzMDAJMC4wMDAJNDA0LjUwMAk0MDkuNTAwCisxMwkxMjMJNDA5LjI1MAk1NDUwMAkwLjAwMAk0 MDkuMjUwCTQxMy43NTAKKzEzCTEyNAk0MTEuNzUwCTQ2MjAwCTAuMDAwCTQwNi4wMDAJNDEyLjUw MAorMTMJMTI1CTQxOC43NTAJNjAyMDAJMC4wMDAJNDEyLjc1MAk0MTkuNTAwCisxMwkxMjYJNDE4 Ljc1MAkzMjcwMAkwLjAwMAk0MTYuMDAwCTQyMC4wMDAKKzE0CTEyNwk0MTEuNTAwCTI0ODAwCTAu MDAwCTQxMS4yNTAJNDE1LjUwMAorMTQJMTI4CTQxNS4yNTAJNTMwMDAJMC4wMDAJNDEyLjAwMAk0 MjMuMDAwCisxNAkxMjkJNDIwLjAwMAk0OTcwMAkwLjAwMAk0MTcuMjUwCTQyNS4wMDAKKzE0CTEz MAk0MjMuMjUwCTY4NzAwCTAuMDAwCTQyMi43NTAJNDI5LjAwMAorMTQJMTMxCTQyMi41MDAJNDU0 MDAJMC4wMDAJNDIwLjc1MAk0MjQuNzUwCisxNAkxMzIJNDI0LjAwMAkyMDkwMAkwLjAwMAk0MjAu NzUwCTQyNC4yNTAKKzE0CTEzMwk0MjguODc1CTM3NjAwCTAuMDAwCTQyNy4wMDAJNDMwLjAwMAor MTQJMTM0CTQzOS4wMDAJNTk4MDAJMC4wMDAJNDI3LjI1MAk0MzkuMDAwCisxNQkxMzUJNDQ4Ljc1 MAkyOTMwMAkwLjAwMAk0NDQuNzUwCTQ0OS41MDAKKzE1CTEzNgk0NDQuMDAwCTI3NDAwCTAuMDAw CTQ0NC4wMDAJNDQ5Ljc1MAorMTUJMTM3CTQ0My41MDAJMzA5MDAJMC4wMDAJNDQwLjUwMAk0NDgu NTAwCisxNQkxMzgJNDM3Ljg3NQkyNjUwMAkwLjAwMAk0MzcuNTAwCTQ0Mi44NzUKKzE1CTEzOQk0 MzcuNzUwCTI5MDAwCTAuMDAwCTQzMy41MDAJNDQwLjAwMAorMTUJMTQwCTQzMC41MDAJMjc1MDAJ MC4wMDAJNDMwLjI1MAk0NDEuMjUwCisxNQkxNDEJNDI1LjUwMAk1MjMwMAkwLjAwMAk0MjQuMjUw CTQyOC44ODAKKzE1CTE0Mgk0MjguMDAwCTU5OTAwCTAuMDAwCTQxOS41MDAJNDI5LjAwMAorMTUJ MTQzCTQzMi41MDAJMzQ2MDAJMC4wMDAJNDI3LjI1MAk0MzUuMDAwCisxNQkxNDQJNDM3LjUwMAkz MzEwMAkwLjAwMAk0MzIuMDAwCTQzOC41MDAKKzE1CTE0NQk0MzQuNTAwCTI0MzAwCTAuMDAwCTQz NC4wMDAJNDM3Ljc1MAorMTUJMTQ2CTQzMS41MDAJMjg1MDAJMC4wMDAJNDMwLjUwMAk0MzcuNTAw CisxNQkxNDcJNDI4LjAwMAkxNTUwMAkwLjAwMAk0MjcuMDAwCTQzMi43NTAKKzE1CTE0OAk0MjQu MjUwCTQ0OTAwCTAuMDAwCTQyNC4wMDAJNDI4Ljc1MAorMTUJMTQ5CTQyMy4wMDAJMzQwMDAJMC4w MDAJNDIwLjAwMAk0MjYuNTAwCisxNQkxNTAJNDIyLjg3NQkzNzgwMAkwLjAwMAk0MjAuMDAwCTQy NC4wMDAKKzE1CTE1MQk0MjMuNTAwCTI0MDAwCTAuMDAwCTQyMy4yNTAJNDI4LjAwMAorMTUJMTUy CTQyOS41MDAJMjMyMDAJMC4wMDAJNDIwLjUwMAk0MjkuNTAwCisxNQkxNTMJNDM0LjI1MAkzMTgw MAkwLjAwMAk0MjkuNzUwCTQzNS4wMDAKKzE1CTE1NAk0MzAuMjUwCTM2NTAwCTAuMDAwCTQyNi41 MDAJNDM2LjI1MAorMTYJMTU1CTMwOS43NTAJNDE0MDAJMC4wMDAJMzA3LjEyNQkzMTAuNzUwCisx NgkxNTYJMzE3LjAwMAk0NDUwMAkwLjAwMAkzMDkuNzUwCTMxNy4wMDAKKzE2CTE1NwkzMTUuMDAw CTM5OTAwCTAuMDAwCTMxMy4xMjUJMzE5Ljc1MAorMTYJMTU4CTMyMi4wMDAJNDA2MDAJMC4wMDAJ MzE4LjUwMAkzMjIuNTAwCisxNgkxNTkJMzI0LjI1MAkzNTMwMAkwLjAwMAkzMjEuMDAwCTMyNS4y NTAKKzE2CTE2MAkzMjMuMDAwCTMyMzAwCTAuMDAwCTMyMi41MDAJMzI3LjAwMAorMTYJMTYxCTMy OS4yNTAJNDc3MDAJMC4wMDAJMzIzLjI1MAkzMzAuMDAwCisxNgkxNjIJMzI5LjUwMAk1NjcwMAkw LjAwMAkzMjguNTAwCTMzMy41MDAKKzE2CTE2MwkzMjEuMDAwCTQ1NDAwCTAuMDAwCTMyMC4wMDAJ MzI4LjUwMAorMTcJMTY0CTI5OC4wMDAJMzE5MDAJMC4wMDAJMjkwLjUwMAkyOTguMDAwCisxNwkx NjUJMjcyLjAwMAkxNjUwMDAJMC4wMDAJMjcwLjc1MAkyODUuMTI1CisxNwkxNjYJMjU5LjUwMAky OTA0MDAJMC4wMDAJMjUyLjc1MAkyNjEuMDAwCisxNwkxNjcJMjcwLjc1MAkxMzYwMDAJMC4wMDAJ MjY2LjAwMAkyNzAuNzUwCisxNwkxNjgJMjY4Ljc1MAk5NjYwMAkwLjAwMAkyNjYuMDAwCTI3MS43 NTAKKzE3CTE2OQkyNjAuMDAwCTk5MTAwCTAuMDAwCTI1OC4wMDAJMjY0LjUwMAorMTcJMTcwCTI1 MS41MDAJMTAwOTAwCTAuMDAwCTI1MC41MDAJMjYwLjc1MAorMTcJMTcxCTI1OS41MDAJNzgxMDAJ MC4wMDAJMjUzLjAwMAkyNjEuMDAwCisxNwkxNzIJMjYwLjUwMAk2NDYwMAkwLjAwMAkyNjAuNTAw CTI2Ny41MDAKKzE3CTE3MwkyNjAuMDAwCTUxNDAwCTAuMDAwCTI1OS4wMDAJMjY0LjUwMAorMTcJ MTc0CTI1OC4wMDAJNDA4MDAJMC4wMDAJMjU3LjAwMAkyNjEuMDAwCisxNwkxNzUJMjU3Ljc1MAkz OTQwMAkwLjAwMAkyNTUuMDAwCTI1Ny43NTAKKzE3CTE3NgkyNTUuNTAwCTQ3NTAwCTAuMDAwCTI1 My41MDAJMjU3LjUwMAorMTcJMTc3CTI0OC41MDAJMTQ3NDAwCTAuMDAwCTI0Ny4yNTAJMjU0LjAw MAorMTcJMTc4CTI1MS41MDAJMTA3MTAwCTAuMDAwCTI0NS4wMDAJMjUxLjUwMAorMTcJMTc5CTI1 OS41MDAJNzAxMDAJMC4wMDAJMjUyLjUwMAkyNjIuMDAwCisxNwkxODAJMjYxLjc1MAk0OTgwMAkw LjAwMAkyNTUuMDAwCTI2My41MDAKKzE3CTE4MQkyNzQuMDAwCTE0NjcwMAkwLjAwMAkyNzAuNTAw CTI4NC41MDAKKzE3CTE4MgkyODEuMDAwCTgyODAwCTAuMDAwCTI3Ny41MDAJMjgzLjc1MAorMTcJ MTgzCTI4Mi4wMDAJNTIwMDAJMC4wMDAJMjgxLjAwMAkyODQuNTAwCisxNwkxODQJMjc5LjI1MAkz OTYwMAkwLjAwMAkyNzguMDAwCTI4MC4yNTAKKzE4CTE4NQkyNDguMDAwCTM4MDAwCTAuMDAwCTI0 Ny43NTAJMjUwLjAwMAorMTgJMTg2CTI0Ni41MDAJMjUxMDAJMC4wMDAJMjQ0LjAwMAkyNDguMjUw CisxOAkxODcJMjQ3LjAwMAkyNzEwMAkwLjAwMAkyNDUuMDAwCTI0OC43NTAKKzE4CTE4OAkyNDQu Mzc1CTMwNTAwCTAuMDAwCTI0NC4wMDAJMjQ4LjAwMAorMTgJMTg5CTI0My4yNTAJMzE2MDAJMC4w MDAJMjQwLjUwMAkyNDQuMjUwCisxOAkxOTAJMjQ2LjI1MAkzNDkwMAkwLjAwMAkyNDUuMjUwCTI0 OC41MDAKKzE4CTE5MQkyNDUuMjUwCTM1MzAwCTAuMDAwCTI0NS4xMzAJMjQ5Ljc1MAorMTgJMTky CTI0MS4yNTAJMzA3MDAJMC4wMDAJMjQwLjI1MAkyNDQuNTAwCisxOQkxOTMJMjQwLjUwMAkzNDgw MAkwLjAwMAkyMzcuNTAwCTI0My4yNTAKKzE5CTE5NAkyNDYuNTAwCTQzNjAwCTAuMDAwCTIzNi41 MDAJMjQ2LjUwMAorMTkJMTk1CTI0OS41MDAJNjgzMDAJMC4wMDAJMjQ2LjUwMAkyNTEuNTAwCisx OQkxOTYJMjUwLjAwMAkzNTEwMAkwLjAwMAkyNDkuMTI1CTI1NC4wMDAKKzE5CTE5NwkyNDguNzUw CTU2NDAwCTAuMDAwCTI0Ny4wMDAJMjUxLjUwMAorMTkJMTk4CTI0OS4yNTAJMzIxMDAJMC4wMDAJ MjQ2Ljc1MAkyNTAuNTAwCisxOQkxOTkJMjQ3LjUwMAkyOTMwMAkwLjAwMAkyNDcuMzc1CTI1MC43 NTAKKzE5CTIwMAkyNDUuNzUwCTIwMDAwCTAuMDAwCTI0NS4yNTAJMjQ3LjUwMAorMTkJMjAxCTI0 Ni4yNTAJMjI1MDAJMC4wMDAJMjQ1LjEyNQkyNDYuNzUwCisxOQkyMDIJMjQzLjAwMAkzODgwMAkw LjAwMAkyNDIuNTAwCTI0Ny43NTAKKzIwCTIwMwkxODIuMjUwCTg0MzAwCTAuMDAwCTE3Ni41MDAJ MTgzLjUwMAorMjAJMjA0CTE3OS4wMDAJNjMzMDAJMC4wMDAJMTc5LjAwMAkxODUuNTAwCisyMAky MDUJMTczLjAwMAk1OTIwMAkwLjAwMAkxNzEuNzUwCTE3OC41MDAKKzIwCTIwNgkxNzEuNTAwCTY5 NjAwCTAuMDAwCTE3MC4yNTAJMTc1LjI1MAorMjAJMjA3CTE2NS4xMjUJNzA1MDAJMC4wMDAJMTY1 LjEyNQkxNzIuMjUwCisyMAkyMDgJMTU2LjUwMAkxMTMyMDAJMC4wMDAJMTU1LjI1MAkxNjUuMDAw CisyMAkyMDkJMTUyLjAwMAkxMzEwMDAJMC4wMDAJMTUwLjUwMAkxNTcuMjUwCisyMAkyMTAJMTU5 LjYyNQkxMDkxMDAJMC4wMDAJMTUwLjUwMAkxNTkuNzUwCisyMAkyMTEJMTYxLjg4MAk4NzgwMAkw LjAwMAkxNjEuNzUwCTE2OC41MDAKKzIwCTIxMgkxNjYuNTAwCTc1ODAwCTAuMDAwCTE1OC4wMDAJ MTY2LjUwMAorMjAJMjEzCTE3MC41MDAJOTU5MDAJMC4wMDAJMTY5LjI1MAkxNzMuNzUwCisyMAky MTQJMTcxLjUwMAk4MDYwMAkwLjAwMAkxNjYuNTAwCTE3My41MDAKKzIwCTIxNQkxNjkuMjUwCTU5 NTAwCTAuMDAwCTE2OC4yNTAJMTc1LjAwMAorMjAJMjE2CTE2Ni43NTAJNDcwMDAJMC4wMDAJMTY0 Ljc1MAkxNjguMDAwCisyMAkyMTcJMTY1LjAwMAk1OTcwMAkwLjAwMAkxNjUuMDAwCTE3MS4wMDAK KzIwCTIxOAkxNjQuMDAwCTI1ODAwCTAuMDAwCTE2MC4yNTAJMTY0LjAwMAorMjAJMjE5CTE2MC44 NzUJNTE5MDAJMC4wMDAJMTYwLjAwMAkxNjYuNzUwCisyMAkyMjAJMTU5LjAwMAk4NDEwMAkwLjAw MAkxNTMuNTAwCTE1OS41MDAKKzIwCTIyMQkxNjAuMjUwCTEyNTgwMAkwLjAwMAkxNTQuMjUwCTE2 MS43NTAKKzIwCTIyMgkxNTkuNTAwCTYzOTAwCTAuMDAwCTE1OC41MDAJMTYzLjUwMAorMjAJMjIz CTE1Ny43NTAJNTYxMDAJMC4wMDAJMTU1LjYyNQkxNjAuNTAwCisyMAkyMjQJMTU2LjI1MAk3NDIw MAkwLjAwMAkxNTQuMjUwCTE1OS41MDAKKzIwCTIyNQkxNjQuMTI1CTYwOTAwCTAuMDAwCTE1OS4y NTAJMTY0Ljc1MAorMjAJMjI2CTE2Mi4wMDAJODcwMDAJMC4wMDAJMTYwLjc1MAkxNjQuNTAwCisy MQkyMjcJMTYyLjI1MAk1MTgwMAkwLjAwMAkxNjEuNzUwCTE2Ni4wMDAKKzIxCTIyOAkxNjQuMjUw CTY1MzAwCTAuMDAwCTE2MC4xMzAJMTY0LjI1MAorMjEJMjI5CTE2OC4wMDAJNDg5MDAJMC4wMDAJ MTY2LjAwMAkxNjguODc1CisyMQkyMzAJMTY4Ljg3NQk0NTEwMAkwLjAwMAkxNjguMjUwCTE3MS4z NzUKKzIxCTIzMQkxNjcuNTAwCTc4MDAwCTAuMDAwCTE2Ni43NTAJMTcxLjI1MAorMjEJMjMyCTE2 Ni42MjUJNTMwMDAJMC4wMDAJMTY1LjUwMAkxNzAuMjUwCisyMQkyMzMJMTY1Ljc1MAk0OTAwMAkw LjAwMAkxNjMuNTAwCTE2Ni41MDAKKzIxCTIzNAkxNjMuMjUwCTU4NzAwCTAuMDAwCTE2My4yNTAJ MTY3LjEyNQorMjEJMjM1CTE2OC41MDAJNTY3MDAJMC4wMDAJMTYyLjYzMAkxNjguNTAwCisyMgky MzYJMjEyLjAwMAk4OTIwMAkwLjAwMAkyMTIuMDAwCTIxNy43NTAKKzIyCTIzNwkyMDcuNTAwCTEx NzcwMAkwLjAwMAkyMDYuMDAwCTIwOS43NTAKKzIyCTIzOAkyMTIuMDAwCTk1MTAwCTAuMDAwCTIw Ny41MDAJMjEyLjUwMAorMjIJMjM5CTIxMi4yNTAJNzQwMDAJMC4wMDAJMjExLjUwMAkyMTQuMDAw CisyMgkyNDAJMjE1LjUwMAk2ODQwMAkwLjAwMAkyMTEuODgwCTIxNS43NTAKKzIyCTI0MQkyMjAu MDAwCTc5MjAwCTAuMDAwCTIxNi4wMDAJMjIwLjAwMAorMjMJMjQyCTIyMi41MDAJNDU3MDAJMC4w MDAJMjIyLjI1MAkyMjQuNjMwCisyMwkyNDMJMjIzLjI1MAk0MzAwMAkwLjAwMAkyMjEuNTAwCTIy My41MDAKKzIzCTI0NAkyMjQuMjUwCTQ3NzAwCTAuMDAwCTIyMy41MDAJMjI1LjI1MAorMjMJMjQ1 CTIyNi41MDAJNDM4MDAJMC4wMDAJMjIzLjM4MAkyMjYuNTAwCisyMwkyNDYJMjMwLjAwMAk4ODgw MAkwLjAwMAkyMjYuMjUwCTIzMC4wMDAKKzIzCTI0NwkyMjkuMzgwCTExODAwMAkwLjAwMAkyMjku MDAwCTIzMC44ODAKKzIzCTI0OAkyMjguNTAwCTEyNzEwMAkwLjAwMAkyMjguMzc1CTIzMS4wMDAK KzIzCTI0OQkyMzAuMzgwCTEzNjQwMAkwLjAwMAkyMjguNTAwCTIzMC43NTAKKzI0CTI1MAkyNDku ODgwCTk3NTAwCTAuMDAwCTI0OS42MzAJMjU1LjAwMAorMjQJMjUxCTI1MS4wMDAJOTA0MDAJMC4w MDAJMjQ4LjEzMAkyNTIuMjUwCisyNAkyNTIJMjU2LjUwMAk5MDQwMAkwLjAwMAkyNTEuMDAwCTI1 Ny4wMDAKKzI0CTI1MwkyNTcuNzUwCTExMTAwMAkwLjAwMAkyNTcuNjI1CTI1OS43NTAKKzI0CTI1 NAkyNTkuMjUwCTg3MjAwCTAuMDAwCTI1Ni4wMDAJMjU5LjI1MAorMjQJMjU1CTI2MS4wMDAJMTEx MTAwCTAuMDAwCTI1OC4yNTAJMjYxLjI1MAorMjQJMjU2CTI2My43NTAJNzU5MDAJMC4wMDAJMjYx LjI1MAkyNjQuNTAwCisyNAkyNTcJMjU4LjAwMAkxMjExMDAJMC4wMDAJMjU3Ljc1MAkyNjMuMjUw CisyNAkyNTgJMjU0LjAwMAkxMjU1MDAJMC4wMDAJMjU0LjAwMAkyNTcuMjUwCisyNAkyNTkJMjUz LjUwMAk3ODQwMAkwLjAwMAkyNTIuNzUwCTI1Ny43NTAKKzI0CTI2MAkyNTguMDAwCTc0NzAwCTAu MDAwCTI1My4wMDAJMjU4LjAwMAorMjUJMjYxCTI3OS43NTAJNjI3MDAJMC4wMDAJMjc3LjEzMAky ODAuMDAwCisyNQkyNjIJMjc3LjYyNQk4NTUwMAkwLjAwMAkyNzYuNzUwCTI4MC4zNzUKKzI1CTI2 MwkyNzYuNjMwCTk5ODAwCTAuMDAwCTI3Ni42MzAJMjgwLjM4MAorMjUJMjY0CTI3Ni4yNTAJMTEz NjAwCTAuMDAwCTI3Ni4wMDAJMjc5LjUwMAorMjUJMjY1CTI3NC4yNTAJMTg3MTAwCTAuMDAwCTI3 Mi43NTAJMjc2LjM4MAorMjUJMjY2CTI3Mi4wMDAJMTA1MzAwCTAuMDAwCTI3Mi4wMDAJMjc1LjUw MAorMjUJMjY3CTI3MC41MDAJMTExMDAwCTAuMDAwCTI2OC4wMDAJMjcyLjc1MAorMjUJMjY4CTI3 MS4wMDAJNjYwMDAJMC4wMDAJMjcwLjUwMAkyNzIuNTAwCisyNQkyNjkJMjcyLjUwMAk0MzAwMAkw LjAwMAkyNzAuMjUwCTI3Mi41MDAKKzI1CTI3MAkyNzMuMDAwCTU2MjAwCTAuMDAwCTI3Mi4wMDAJ MjczLjg4MAorMjUJMjcxCTI3NS41MDAJNTUyMDAJMC4wMDAJMjczLjc1MAkyNzUuNTAwCisyNQky NzIJMjcyLjI1MAk3MzQwMAkwLjAwMAkyNzIuMDAwCTI3NS41MDAKKzI2CTI3MwkyNjIuMjUwCTg5 MDAwCTAuMDAwCTI2Mi4wMDAJMjY3Ljc1MAorMjYJMjc0CTI1OS41MDAJMTQ2MTAwCTAuMDAwCTI1 Ny41MDAJMjYxLjc1MAorMjYJMjc1CTI2MC4yNTAJOTAzMDAJMC4wMDAJMjU3LjUwMAkyNjAuNjI1 CisyNgkyNzYJMjYxLjAwMAk3NDEwMAkwLjAwMAkyNTguODgwCTI2MS44ODAKKzI2CTI3NwkyNjQu NTAwCTQ0NDAwCTAuMDAwCTI2MC4yNTAJMjY0Ljg4MAorMjYJMjc4CTI2Mi4wMDAJNzg5MDAJMC4w MDAJMjYxLjI1MAkyNjQuNTAwCisyNwkyNzkJMjcyLjUwMAkxMzIwMDAJMC4wMDAJMjcwLjEzMAky NzIuNTAwCisyNwkyODAJMjcyLjAwMAk3OTgwMAkwLjAwMAkyNzEuMzc1CTI3Mi42MjUKKzI3CTI4 MQkyNzEuMTMwCTc1NjAwCTAuMDAwCTI3MC43NTAJMjcyLjg4MAorMjcJMjgyCTI3MC4wMDAJMTEz ODAwCTAuMDAwCTI2OS44ODAJMjcxLjUwMAorMjcJMjgzCTI2NC4wMDAJMTc5NTAwCTAuMDAwCTI2 My41MDAJMjcwLjUwMAorMjcJMjg0CTI1OC4wMDAJMjE1MzAwCTAuMDAwCTI1Ny41MDAJMjYzLjI1 MAorMjcJMjg1CTI1OC4yNTAJMTU0MjAwCTAuMDAwCTI1Ni41MDAJMjU5LjYyNQorMjcJMjg2CTI1 OS41MDAJOTU2MDAJMC4wMDAJMjU3LjUwMAkyNjAuNTAwCisyNwkyODcJMjYxLjI1MAk5NjUwMAkw LjAwMAkyNTkuMjUwCTI2Mi4wMDAKKzI3CTI4OAkyNTkuNzUwCTExOTAwMAkwLjAwMAkyNTkuMjUw CTI2MS42MjUKKzI3CTI4OQkyNTguNzUwCTgxNTAwCTAuMDAwCTI1Ny4xMzAJMjU5Ljc1MAorMjgJ MjkwCTI1Ny4zODAJNTM3MDAJMC4wMDAJMjU3LjI1MAkyNTkuMjUwCisyOAkyOTEJMjU2LjAwMAk1 MjIwMAkwLjAwMAkyNTUuMzc1CTI1Ny41MDAKKzI4CTI5MgkyNTcuNzUwCTc2MjAwCTAuMDAwCTI1 NS42MzAJMjU4LjYzMAorMjgJMjkzCTI1OC43NTAJOTM0MDAJMC4wMDAJMjU3LjM4MAkyNTkuNTAw CisyOAkyOTQJMjU4Ljc1MAk5OTAwMAkwLjAwMAkyNTguNTAwCTI1OS42MzAKKzI4CTI5NQkyNTcu MjUwCTEyMzEwMAkwLjAwMAkyNTUuNzUwCTI1Ny41MDAKKzI4CTI5NgkyNjAuNTAwCTE4ODMwMAkw LjAwMAkyNTcuMDAwCTI2MS4wMDAKKzI4CTI5NwkyNjAuMjUwCTEwMzMwMAkwLjAwMAkyNTkuMDAw CTI2MS4yNTAKKzI5CTI5OAkyNjQuMjUwCTExMDEwMAkwLjAwMAkyNjEuNjMwCTI2NC4zODAKKzI5 CTI5OQkyNjYuMDAwCTk4MTAwCTAuMDAwCTI2NC4yNTAJMjY2Ljc1MAorMjkJMzAwCTI2Ny41MDAJ MTQ2MTAwCTAuMDAwCTI2Ni42MjUJMjY4LjAwMAorMjkJMzAxCTI3MC4yNTAJMTk5NDAwCTAuMDAw CTI2Ny41MDAJMjcwLjI1MAorMjkJMzAyCTI3MC4yNTAJODk4MDAJMC4wMDAJMjY5LjAwMAkyNzAu NjI1CisyOQkzMDMJMjcxLjAwMAk3ODYwMAkwLjAwMAkyNjkuMjUwCTI3MS4yNTAKKzI5CTMwNAky NzIuNzUwCTEwNzYwMAkwLjAwMAkyNjkuODgwCTI3My41MDAKKzI5CTMwNQkyNzMuNTAwCTExOTIw MAkwLjAwMAkyNzIuNzUwCTI3NS4yNTAKKzI5CTMwNgkyNzMuNTAwCTAJMC4wMDAJMC4wMDAJMC4w MDAKKzMwCTMwNwkyMzYuMjUwCTE0NjEwMAkwLjAwMAkyMzYuMjUwCTI0Mi4wMDAKKzMwCTMwOAky MzkuNTAwCTM1ODEwMAkwLjAwMAkyMzUuNTAwCTIzOS41MDAKKzMwCTMwOQkyNDMuNTAwCTI0MTUw MAkwLjAwMAkyNDAuNTAwCTI0NC4wMDAKKzMwCTMxMAkyNTEuMTI1CTMwNDgwMAkwLjAwMAkyNDgu Mzc1CTI1My42MjUKKzMwCTMxMQkyNTEuMjUwCTIzMTAwMAkwLjAwMAkyNDguODc1CTI1My4wMDAK KzMwCTMxMgkyNTMuMDAwCTE1MjgwMAkwLjAwMAkyNDkuNjI1CTI1NC4wMDAKKzMwCTMxMwkyNTMu NTAwCTE3NTEwMAkwLjAwMAkyNTIuNTAwCTI1Ny44ODAKKzMwCTMxNAkyNTQuMDAwCTE0MTgwMAkw LjAwMAkyNTIuMTI1CTI1NS41MDAKKzMwCTMxNQkyNTguMDAwCTExMDAwMAkwLjAwMAkyNTMuMDAw CTI1OC4yNTAKKzMwCTMxNgkyNjEuNzUwCTM3NDIwMAkwLjAwMAkyNjEuMjUwCTI2NC4wMDAKKzMw CTMxNwkyNjIuMzgwCTI3NTEwMAkwLjAwMAkyNjEuMzgwCTI2NS4wMDAKKzMwCTMxOAkyNjEuNTAw CTE2OTcwMAkwLjAwMAkyNTkuODc1CTI2MS43NTAKKzMxCTMxOQkyNjIuNTAwCTg3MTAwCTAuMDAw CTI2Mi4yNTAJMjY2LjUwMAorMzEJMzIwCTI1OC4yNTAJOTExMDAJMC4wMDAJMjU3Ljc1MAkyNjIu NTAwCiszMQkzMjEJMjYwLjg4MAkxMDU2MDAJMC4wMDAJMjU4LjI1MAkyNjIuMDAwCiszMQkzMjIJ MjYxLjc1MAk4NTAwMAkwLjAwMAkyNTguNTAwCTI2MS44ODAKKzMxCTMyMwkyNTkuNjMwCTY4NDAw CTAuMDAwCTI1OS4wMDAJMjYyLjI1MAorMzEJMzI0CTI1Ny4yNTAJNDU1MDAJMC4wMDAJMjU3LjI1 MAkyNjAuMjUwCiszMQkzMjUJMjU2Ljc1MAkzOTkwMAkwLjAwMAkyNTUuMDAwCTI1Ny41MDAKKzMx CTMyNgkyNTguMDAwCTEwMjQwMAkwLjAwMAkyNTUuMjUwCTI1OS41MDAKKzMyCTMyNwkyNjguMTI1 CTE4MDcwMAkwLjAwMAkyNjcuNzUwCTI3Mi4wMDAKKzMyCTMyOAkyNzAuMjUwCTgwOTAwCTAuMDAw CTI2Ny4wMDAJMjcwLjI1MAorMzIJMzI5CTI3MS4wMDAJMTA3MjAwCTAuMDAwCTI2Ny43NTAJMjcx LjAwMAorMzIJMzMwCTI3My4wMDAJMTQ5NDAwCTAuMDAwCTI2OS4yNTAJMjczLjAwMAorMzIJMzMx CTI3My41MDAJMjYyOTAwCTAuMDAwCTI3My4wMDAJMjc2Ljc1MAorMzIJMzMyCTI3Ni4yNTAJMTUw MzAwCTAuMDAwCTI3My4wMDAJMjc2LjI1MAorMzIJMzMzCTI3OC42MzAJMTcyODAwCTAuMDAwCTI3 NS41MDAJMjc5LjUwMAorMzIJMzM0CTI4MS4wMDAJMTMyNzAwCTAuMDAwCTI3OC43NTAJMjgxLjUw MAorMzIJMzM1CTI3OS4xMjUJMTc4NDAwCTAuMDAwCTI3OS4wMDAJMjgxLjc1MAorMzMJMzM2CTMx MS4wMDAJOTY5MDAJMC4wMDAJMzA4LjEzMAkzMTEuMDAwCiszMwkzMzcJMzA4LjI1MAk4NTAwMAkw LjAwMAkzMDcuNjI1CTMxMS4wMDAKKzMzCTMzOAkzMDUuNzUwCTExOTIwMAkwLjAwMAkzMDQuNTAw CTMwNi42MjUKKzMzCTMzOQkzMDMuNTAwCTEzMzIwMAkwLjAwMAkzMDMuMDAwCTMwNi41MDAKKzMz CTM0MAkyOTguNTAwCTE2ODQwMAkwLjAwMAkyOTcuMTMwCTI5OS43NTAKKzMzCTM0MQkyOTkuNjMw CTc3OTAwCTAuMDAwCTI5OS4xMzAJMzAwLjYzMAorMzMJMzQyCTMwMS43NTAJOTExMDAJMC4wMDAJ MzAwLjEzMAkzMDEuODgwCiszMwkzNDMJMzA2LjYzMAk3ODcwMAkwLjAwMAkyOTkuNzUwCTMwNy4w MDAKKzMzCTM0NAkzMDguMTI1CTEzMjYwMAkwLjAwMAkzMDYuNzUwCTMxMC4wMDAKKzMzCTM0NQkz MDUuNTAwCTgyNDAwCTAuMDAwCTMwNC4wMDAJMzA4LjI1MAorMzQJMzQ2CTMwOC44NzUJODA2MDAJ MC4wMDAJMzA4LjI1MAkzMTIuODc1CiszNAkzNDcJMzA2Ljc1MAkxMjQwMDAJMC4wMDAJMzA2LjI1 MAkzMDkuMjUwCiszNAkzNDgJMzEwLjAwMAkxMjMzMDAJMC4wMDAJMzA3LjAwMAkzMTAuMjUwCisz NAkzNDkJMzEwLjI1MAkxMDI2MDAJMC4wMDAJMzA5Ljc1MAkzMTIuODc1CiszNAkzNTAJMzEyLjAw MAk4MDQwMAkwLjAwMAkzMDkuODgwCTMxMi4yNTAKKzM0CTM1MQkzMDguODgwCTExNTkwMAkwLjAw MAkzMDguNTAwCTMxMi4wMDAKKzM0CTM1MgkzMTAuNTAwCTk4MzAwCTAuMDAwCTMwNy41MDAJMzEw LjUwMAorMzQJMzUzCTMxNC4yNTAJMTE2OTAwCTAuMDAwCTMwOS43NTAJMzE0LjI1MAorMzQJMzU0 CTMxNS42MjUJMTE4NjAwCTAuMDAwCTMxNC4yNTAJMzE3LjUwMAorMzQJMzU1CTMxOC4wMDAJOTg3 MDAJMC4wMDAJMzE1LjAwMAkzMTguNTAwCiszNAkzNTYJMzE5Ljc1MAkxNDkwMDAJMC4wMDAJMzE4 LjAwMAkzMjEuNTAwCiszNAkzNTcJMzExLjI1MAkxMjE5MDAJMC4wMDAJMzExLjAwMAkzMTcuNTAw CiszNAkzNTgJMzA5LjAwMAk4NDQwMAkwLjAwMAkzMDguMTMwCTMwOS44ODAKKzM0CTM1OQkzMTIu MDAwCTEyNjUwMAkwLjAwMAkzMDguNjI1CTMxMi4yNTAKKzM1CTM2MAk3OC4wMDAJNTEyMTAwCTAu MDAwCTc3LjUwMAk3OC41MDAKKzM1CTM2MQk3NS4zNzUJNjA3NzAwCTAuMDAwCTc1LjI1MAk3OC4w MDAKKzM1CTM2Mgk3NC42MjUJNjI4MzAwCTAuMDAwCTczLjc1MAk3NS4yNTAKKzM1CTM2Mwk3NC4y NTAJNTE3MzAwCTAuMDAwCTczLjg3NQk3NS4wMDAKKzM1CTM2NAk3Mi43NTAJMzU4MzAwCTAuMDAw CTcyLjYyNQk3NC4wMDAKKzM1CTM2NQk3Mi42MzAJMzk0NjAwCTAuMDAwCTcyLjI1MAk3My41MDAK KzM1CTM2Ngk3My4wMDAJNTk5MjAwCTAuMDAwCTcyLjEzMAk3My43NTAKKzM1CTM2Nwk3My41MDAJ NDUwMjAwCTAuMDAwCTcyLjg3NQk3NC41MDAKKzM1CTM2OAk3NC4xMzAJMzA0NDAwCTAuMDAwCTcz Ljg4MAk3NC4yNTAKKzM1CTM2OQk3My44NzUJMjg5MjAwCTAuMDAwCTczLjM3NQk3NC41MDAKKzM2 CTM3MAk3Mi4yNTAJNDk4MzAwCTAuMDAwCTY5Ljg3NQk3Mi4zNzUKKzM2CTM3MQk3MS42MzAJNDc2 ODAwCTAuMDAwCTcxLjAwMAk3Mi41MDAKKzM2CTM3Mgk3MS4yNTAJMjgyNjAwCTAuMDAwCTcxLjAw MAk3MS44ODAKKzM2CTM3Mwk3MS42MzAJMzUwMzAwCTAuMDAwCTcwLjg4MAk3MS44ODAKKzM2CTM3 NAk3MC44ODAJMjYxNTAwCTAuMDAwCTcwLjUwMAk3MS42MzAKKzM2CTM3NQk3MC41MDAJNTMxNzAw CTAuMDAwCTcwLjM4MAk3MS4xMzAKKzM2CTM3Ngk2OS42MjUJMzkxOTAwCTAuMDAwCTY5LjUwMAk3 MC43NTAKKzM2CTM3Nwk2OS42MjUJMzM3MDAwCTAuMDAwCTY5LjEyNQk3MC41MDAKKzM2CTM3OAk3 MC4wMDAJMzM4OTAwCTAuMDAwCTY5LjUwMAk3MC42MjUKKzM2CTM3OQk3MC4wMDAJMzkzNDAwCTAu MDAwCTY5LjYyNQk3MC4xMjUKKzM2CTM4MAk2OS42MzAJMjkzMjAwCTAuMDAwCTY5LjYzMAk3MC4y NTAKKzM2CTM4MQk2OS41MDAJMjA1MzAwCTAuMDAwCTY5LjUwMAk3MC4wMDAKKzM2CTM4Mgk3MC4w MDAJMjY4MzAwCTAuMDAwCTY5Ljc1MAk3MC4wMDAKKzM2CTM4Mwk2OC42MzAJMzgxNTAwCTAuMDAw CTY4LjUwMAk2OS44ODAKKzM2CTM4NAk2OC4yNTAJNjkzMjAwCTAuMDAwCTY3LjI1MAk2OC41MDAK KzM2CTM4NQk2Ny42MzAJMzE2MTAwCTAuMDAwCTY3LjUwMAk2OC4yNTAKKzM2CTM4Ngk2Ny43NTAJ NDA2NjAwCTAuMDAwCTY3LjM4MAk2OC4wMDAKKzM2CTM4Nwk2Ny41MDAJMzA1ODAwCTAuMDAwCTY3 LjM3NQk2Ny44NzUKKzM2CTM4OAk2Ni41MDAJNDY2NTAwCTAuMDAwCTY2LjEyNQk2Ny43NTAKKzM2 CTM4OQk2Ni4yNTAJNjUyODAwCTAuMDAwCTY1Ljc1MAk2Ni42MjUKKzM2CTM5MAk2Ni43NTAJMzk5 MzAwCTAuMDAwCTY2LjEyNQk2Ni44NzUKKzM2CTM5MQk2Ny44ODAJNTAyMTAwCTAuMDAwCTY2LjUw MAk2OC4zODAKKzM2CTM5Mgk2OC41MDAJNTM4OTAwCTAuMDAwCTY4LjM4MAk2OS4yNTAKKzM2CTM5 Mwk2Ny44ODAJNDA3NzAwCTAuMDAwCTY3Ljc1MAk2OC41MDAKKzM2CTM5NAk2Ny43NTAJMzk2NTAw CTAuMDAwCTY3Ljc1MAk2OC42MzAKKzM2CTM5NQk3MS4yNTAJNDM5OTAwCTAuMDAwCTY3LjYyNQk3 MS4zNzUKKzM2CTM5Ngk3MC4wMDAJNjI2MTAwCTAuMDAwCTY5LjM4MAk3MS4wMDAKKzM3CTM5Nwk2 NS4wMDAJMjA4OTAwCTAuMDAwCTY0LjUwMAk2NS4xMjUKKzM3CTM5OAk2NS4zODAJMjkxODAwCTAu MDAwCTY0Ljg4MAk2NS4zODAKKzM3CTM5OQk2NS43NTAJMzc3NjAwCTAuMDAwCTY1LjUwMAk2Ni4z ODAKKzM3CTQwMAk2Ny4yNTAJMjgzNTAwCTAuMDAwCTY1LjM4MAk2Ny4yNTAKKzM3CTQwMQk2Ni42 MzAJNTgyNDAwCTAuMDAwCTY2LjM4MAk2Ny42MzAKKzM3CTQwMgk2Ni4zNzUJMjU3MjAwCTAuMDAw CTY2LjEyNQk2Ni42MjUKKzM3CTQwMwk2NS42MjUJMzkzOTAwCTAuMDAwCTY1LjYyNQk2Ni43NTAK KzM3CTQwNAk2NS4yNTAJMjk1NTAwCTAuMDAwCTY1LjEzMAk2NS43NTAKKzM3CTQwNQk2NS4wMDAJ MzI5NzAwCTAuMDAwCTY0LjYzMAk2NS4yNTAKKzM3CTQwNgk2Ni4wMDAJNDEyNDAwCTAuMDAwCTY0 Ljg4MAk2Ni4xMzAKKzM4CTQwNwk2NC44NzUJMTc2MzAwCTAuMDAwCTY0LjAwMAk2NC44NzUKKzM4 CTQwOAk2NC44NzUJMTYzMzAwCTAuMDAwCTY0LjM3NQk2NS4xMjUKKzM4CTQwOQk2NC43NTAJMjUz ODAwCTAuMDAwCTY0LjI1MAk2NS4wMDAKKzM4CTQxMAk2NC4yNTAJMjc5MjAwCTAuMDAwCTY0LjAw MAk2NC42MzAKKzM4CTQxMQk2NC4zODAJMzA4NjAwCTAuMDAwCTY0LjAwMAk2NC42MzAKKzM4CTQx Mgk2Mi41MDAJNDEyMDAwCTAuMDAwCTYyLjUwMAk2NC41MDAKKzM4CTQxMwk2My41MDAJNjEwMzAw CTAuMDAwCTYxLjI1MAk2My41MDAKKzM4CTQxNAk2My4zODAJNDcyODAwCTAuMDAwCTYzLjAwMAk2 My43NTAKKzM5CTQxNQk1NC42MjUJNTEyOTAwCTAuMDAwCTUzLjM3NQk1NC43NTAKKzM5CTQxNgk1 NC4yNTAJNTA0OTAwCTAuMDAwCTU0LjAwMAk1NS4yNTAKKzM5CTQxNwk1My41MDAJNjUxNzAwCTAu MDAwCTUzLjUwMAk1NS4wMDAKKzM5CTQxOAk1My4wMDAJMzM0MTAwCTAuMDAwCTUyLjc1MAk1My43 NTAKKzM5CTQxOQk1Mi4wMDAJNTc5OTAwCTAuMDAwCTUxLjg3NQk1My41MDAKKzM5CTQyMAk1MS4x MjUJNjcyMzAwCTAuMDAwCTUxLjAwMAk1Mi44NzUKKzM5CTQyMQk1MS4yNTAJNDUxMDAwCTAuMDAw CTUwLjM4MAk1MS42MzAKKzM5CTQyMgk1MS4yNTAJNDExOTAwCTAuMDAwCTUwLjg3NQk1MS43NTAK KzM5CTQyMwk1MS4yNTAJNjYzODAwCTAuMDAwCTUwLjUwMAk1MS42MjUKKzM5CTQyNAk1My44NzUJ ODIxODAwCTAuMDAwCTUyLjAwMAk1NC41MDAKKzM5CTQyNQk1My41MDAJNzYxNDAwCTAuMDAwCTUz LjI1MAk1NC4zNzUKKzQwCTQyNgk2Ni4wMDAJNDM3MjAwCTAuMDAwCTY0LjI1MAk2Ni4wMDAKKzQw CTQyNwk2NS4xMzAJNTUzMDAwCTAuMDAwCTY0Ljc1MAk2Ni4xMzAKKzQwCTQyOAk2NC44ODAJNDQ5 MDAwCTAuMDAwCTY0LjM4MAk2NS4zODAKKzQwCTQyOQk2NC43NTAJMzk3NDAwCTAuMDAwCTY0LjI1 MAk2NS4wMDAKKzQwCTQzMAk2NC4zODAJMzc1ODAwCTAuMDAwCTYzLjg4MAk2NC42MzAKKzQwCTQz MQk2NS4wMDAJMjcwODAwCTAuMDAwCTY0LjAwMAk2NS4yNTAKKzQwCTQzMgk2NS4xMjUJNDEwNjAw CTAuMDAwCTY0LjM3NQk2NS41MDAKKzQwCTQzMwk2NS41MDAJNTU1NzAwCTAuMDAwCTY1LjEzMAk2 Ni4wMDAKKzQwCTQzNAk2NS4yNTAJNjQ0MTAwCTAuMDAwCTY0LjM4MAk2NS4zODAKKzQxCTQzNQk1 Ni43NTAJNDkyNTAwCTAuMDAwCTU2LjI1MAk1Ni44ODAKKzQxCTQzNgk1Ni42MzAJNjE2MjAwCTAu MDAwCTU1Ljc1MAk1Ni42MzAKKzQxCTQzNwk1Ni4zODAJMzQ4MDAwCTAuMDAwCTU2LjEzMAk1Ni42 MzAKKzQxCTQzOAk1NS42MjUJNDYxODAwCTAuMDAwCTU1LjUwMAk1Ni4zNzUKKzQxCTQzOQk1NS41 MDAJNDM4NDAwCTAuMDAwCTU1LjI1MAk1NS44NzUKKzQxCTQ0MAk1Ni4xMzAJNTE0OTAwCTAuMDAw CTU1LjEzMAk1Ni4zODAKKzQxCTQ0MQk1Ny44ODAJNjczOTAwCTAuMDAwCTU1Ljg4MAk1OC4xMzAK KzQxCTQ0Mgk1OC4wMDAJNzAwMjAwCTAuMDAwCTU3LjI1MAk1OC41MDAKKzQxCTQ0Mwk1OC43NTAJ Nzk2OTAwCTAuMDAwCTU3Ljg4MAk1OS4xMzAKKzQxCTQ0NAk2MC4yNTAJMTA4OTIwMAkwLjAwMAk1 OS43NTAJNjAuNzUwCis0MQk0NDUJNTkuODgwCTc0NzYwMAkwLjAwMAk1OS44ODAJNjAuNTAwCis0 Mgk0NDYJNTUuODc1CTM4NzMwMAkwLjAwMAk1NS4wMDAJNTYuNzUwCis0Mgk0NDcJNTUuNTAwCTM5 NjYwMAkwLjAwMAk1NS41MDAJNTYuNTAwCis0Mgk0NDgJNTQuODgwCTM3MjUwMAkwLjAwMAk1NC41 MDAJNTUuMzgwCis0Mgk0NDkJNTQuMTMwCTU1MTYwMAkwLjAwMAk1My41MDAJNTUuMTMwCis0Mgk0 NTAJNTQuMDAwCTM0NjEwMAkwLjAwMAk1My44NzUJNTQuNTAwCis0Mgk0NTEJNTQuMzc1CTQyNzMw MAkwLjAwMAk1NC4xMjUJNTUuMDAwCis0Mgk0NTIJNTQuNTAwCTM4OTgwMAkwLjAwMAk1My4zODAJ NTQuNjMwCis0Mgk0NTMJNTQuNjI1CTQ5NzYwMAkwLjAwMAk1NC4yNTAJNTUuMjUwCis0Mgk0NTQJ NTMuNjI1CTUyNDIwMAkwLjAwMAk1My4yNTAJNTQuMjUwCis0Mwk0NTUJNjQuNjI1CTEwNTg4MDAJ MC4wMDAJNjMuMzc1CTY0LjYyNQorNDMJNDU2CTY0LjUwMAk2ODk0MDAJMC4wMDAJNjQuMjUwCTY0 Ljg4MAorNDMJNDU3CTYzLjc1MAkxMTQwNjAwCTAuMDAwCTYzLjYyNQk2NS4xMjUKKzQzCTQ1OAk2 My4yNTAJODkyODAwCTAuMDAwCTYzLjAwMAk2My44ODAKKzQzCTQ1OQk2My44NzUJNTEyMjAwCTAu MDAwCTYzLjI1MAk2My44NzUKKzQzCTQ2MAk2NC4zNzUJNjQ1ODAwCTAuMDAwCTY0LjAwMAk2NC43 NTAKKzQzCTQ2MQk2NS43NTAJMTIxNDEwMAkwLjAwMAk2NC41MDAJNjUuNzUwCis0Mwk0NjIJNjYu MDAwCTkxMTcwMAkwLjAwMAk2NS4wMDAJNjYuMTMwCis0Mwk0NjMJNjUuMTI1CTY4NTYwMAkwLjAw MAk2NC42MjUJNjUuNzUwCis0Mwk0NjQJNjQuODgwCTcxNzIwMAkwLjAwMAk2NC41MDAJNjUuMjUw Cis0Mwk0NjUJNjQuMTI1CTQ5MTYwMAkwLjAwMAk2NC4xMjUJNjQuNjI1Cis0Mwk0NjYJNjQuMjUw CTc1OTIwMAkwLjAwMAk2NC4wMDAJNjQuNzUwCis0Mwk0NjcJNjQuNTAwCTM4NDYwMAkwLjAwMAk2 NC4wMDAJNjQuNzUwCis0Mwk0NjgJNjQuNzUwCTQ5NzUwMAkwLjAwMAk2NC41MDAJNjUuMjUwCis0 Mwk0NjkJNjUuMTI1CTg1NTYwMAkwLjAwMAk2NC43NTAJNjUuMjUwCis0Mwk0NzAJNjQuODc1CTc3 NzIwMAkwLjAwMAk2NC43NTAJNjUuMTI1Cis0Mwk0NzEJNjQuNzUwCTQ4NzkwMAkwLjAwMAk2NC43 NTAJNjUuMTMwCis0Mwk0NzIJNjMuODc1CTU2OTgwMAkwLjAwMAk2My44NzUJNjQuODc1Cis0Mwk0 NzMJNjQuMzgwCTM3MjQwMAkwLjAwMAk2NC4wMDAJNjQuNzUwCis0NAk0NzQJNjAuMDAwCTI5MDEw MAkwLjAwMAk2MC4wMDAJNjAuNjMwCis0NAk0NzUJNjAuMzgwCTM1ODgwMAkwLjAwMAk1OS4zODAJ NjAuNzUwCis0NAk0NzYJNjEuMDAwCTYzODMwMAkwLjAwMAk2MC4zODAJNjEuMjUwCis0NAk0NzcJ NjEuNTAwCTk2MzkwMAkwLjAwMAk1OS43NTAJNjEuNjMwCis0NAk0NzgJNjIuNTAwCTEyNDcxMDAJ MC4wMDAJNjEuMzgwCTYyLjUwMAorNDQJNDc5CTYzLjUwMAk5ODUxMDAJMC4wMDAJNjIuODgwCTYz LjYzMAorNDQJNDgwCTY0LjUwMAkxNTU2MzAwCTAuMDAwCTYzLjEyNQk2NS4wMDAKKzQ0CTQ4MQk2 Ni44NzUJMTY4ODEwMAkwLjAwMAk2NC43NTAJNjYuODc1Cis0NAk0ODIJNjYuNzUwCTE1Nzg3MDAJ MC4wMDAJNjYuMzc1CTY3LjUwMAorNDUJNDgzCTc2Ljc1MAkxMzIxNzAwCTAuMDAwCTc0Ljc1MAk3 Ni43NTAKKzQ1CTQ4NAk3NS41MDAJMTYwNDEwMAkwLjAwMAk3NS41MDAJNzcuNjMwCis0NQk0ODUJ NzYuMzgwCTEyNTQwMDAJMC4wMDAJNzUuMjUwCTc2LjYzMAorNDUJNDg2CTc2LjAwMAk4ODcxMDAJ MC4wMDAJNzUuNjMwCTc2LjUwMAorNDUJNDg3CTc2LjYzMAk0OTA1MDAJMC4wMDAJNzUuNzUwCTc3 LjAwMAorNDUJNDg4CTc2LjI1MAk4NjgzMDAJMC4wMDAJNzYuMjUwCTc3LjI1MAorNDUJNDg5CTc0 Ljc1MAk4MzEwMDAJMC4wMDAJNzQuNTAwCTc2LjM3NQorNDUJNDkwCTczLjM3NQk5OTc5MDAJMC4w MDAJNzMuMjUwCTc0Ljg3NQorNDUJNDkxCTc0LjEzMAk3NDc1MDAJMC4wMDAJNzMuMzgwCTc0LjYz MAorNDUJNDkyCTc0LjUwMAk2MTQ5MDAJMC4wMDAJNzMuMjUwCTc0LjYzMAorNDUJNDkzCTc1LjEz MAk3NTIzMDAJMC4wMDAJNzQuNjMwCTc2LjEzMAorNDUJNDk0CTc5LjAwMAkxMzQ2MTAwCTAuMDAw CTc1LjM3NQk3OS4wMDAKKzQ1CTQ5NQk4MC4zODAJMjIwNzYwMAkwLjAwMAk3OC4zODAJODAuMzgw Cis0NQk0OTYJODEuMTMwCTEzNDI1MDAJMC4wMDAJNzkuMjUwCTgxLjEzMAorNDUJNDk3CTgzLjUw MAkxNDM5MzAwCTAuMDAwCTgxLjM4MAk4NC41MDAKKzQ1CTQ5OAk4Mi43NTAJMTUwMDQwMAkwLjAw MAk4Mi4zNzUJODQuMzc1Cis0Ngk0OTkJOTYuMTMwCTcyNTQwMAkwLjAwMAk5NS43NTAJOTguMDAw Cis0Ngk1MDAJOTYuMjUwCTM3MzcwMAkwLjAwMAk5Ni4xMjUJOTcuMTI1Cis0Ngk1MDEJOTMuMDAw CTc2MDYwMAkwLjAwMAk5Mi41MDAJOTcuMDAwCis0Ngk1MDIJOTUuNjI1CTkxNTEwMAkwLjAwMAk5 Mi4zNzUJOTUuNjI1Cis0Ngk1MDMJOTYuMDAwCTk1MDkwMAkwLjAwMAk5NS4wMDAJOTYuNzUwCis0 Ngk1MDQJOTcuNjI1CTEwMjQyMDAJMC4wMDAJOTUuNTAwCTk4LjUwMAorNDYJNTA1CTk2LjYzMAkx MDYwNjAwCTAuMDAwCTk2LjUwMAk5OC4zODAKKzQ2CTUwNgk5OC4wMDAJMTExNDIwMAkwLjAwMAk5 Ni4wMDAJOTkuMjUwCis0Ngk1MDcJOTguMDAwCTg1MDkwMAkwLjAwMAk5Ny4wMDAJOTguMzgwCis0 Nwk1MDgJMTAyLjAwMAk3MTE4MDAJMC4wMDAJMTAxLjg4MAkxMDMuMjUwCis0Nwk1MDkJMTAyLjYy NQk4NTgwMDAJMC4wMDAJMTAxLjI1MAkxMDIuODc1Cis0Nwk1MTAJMTAzLjI1MAk2MDcxMDAJMC4w MDAJMTAyLjAwMAkxMDMuMzc1Cis0Nwk1MTEJMTAzLjg3NQk4OTQyMDAJMC4wMDAJMTAyLjYyNQkx MDQuMDAwCis0Nwk1MTIJMTA2LjYyNQkxNjUxMjAwCTAuMDAwCTEwNC42MjUJMTA2Ljc1MAorNDcJ NTEzCTEwNy4wMDAJMTA0OTAwMAkwLjAwMAkxMDYuMDAwCTEwNy4zODAKKzQ3CTUxNAkxMDguNzUw CTk3ODgwMAkwLjAwMAkxMDcuMzc1CTEwOS4wMDAKKzQ3CTUxNQkxMDkuNTAwCTEwMDc1MDAJMC4w MDAJMTA3LjI1MAkxMTAuMDAwCis0Nwk1MTYJMTEwLjEyNQk3OTQxMDAJMC4wMDAJMTA5LjYyNQkx MTAuNTAwCis0Nwk1MTcJMTEyLjYzMAkxMDIwNDAwCTAuMDAwCTExMC4wMDAJMTEyLjYzMAorNDcJ NTE4CTExMS41MDAJOTI5NDAwCTAuMDAwCTExMS4wMDAJMTEyLjEzMAorNDgJNTE5CTExNi41MDAJ NDI0NzAwCTAuMDAwCTExNS42MjUJMTE2LjYyNQorNDgJNTIwCTExNS4yNTAJNjY4OTAwCTAuMDAw CTExNC4wMDAJMTE1LjI1MAorNDgJNTIxCTExNC4wMDAJNzIyMDAwCTAuMDAwCTExMy4xMjUJMTE1 LjAwMAorNDgJNTIyCTExMS43NTAJODAyMzAwCTAuMDAwCTExMC43NTAJMTE0Ljc1MAorNDgJNTIz CTExMS4yNTAJNjczNTAwCTAuMDAwCTExMC41MDAJMTEyLjUwMAorNDgJNTI0CTExMC43NTAJNTM4 OTAwCTAuMDAwCTExMC4yNTAJMTExLjc1MAorNDgJNTI1CTExMi41MDAJODEzMDAwCTAuMDAwCTEw OS43NTAJMTEyLjg3NQorNDgJNTI2CTExNC42MzAJNjY1NDAwCTAuMDAwCTExMy4wMDAJMTE1LjAw MAorNDgJNTI3CTExNS42MzAJODQzNjAwCTAuMDAwCTExMy4zODAJMTE1LjYzMAorNDgJNTI4CTEx NC4zODAJNjQ3ODAwCTAuMDAwCTExNC4yNTAJMTE1Ljg4MAorNDgJNTI5CTExMy4wMDAJNDA0NDAw CTAuMDAwCTExMi44NzUJMTE1LjAwMAorNDgJNTMwCTExMS4yNTAJNzM0ODAwCTAuMDAwCTExMC4y NTAJMTEyLjg4MAorNDgJNTMxCTExMS44NzUJODkwMzAwCTAuMDAwCTExMC4yNTAJMTExLjg3NQor NDgJNTMyCTExMy41MDAJODAzMDAwCTAuMDAwCTExMS4yNTAJMTEzLjg3NQorNDgJNTMzCTExNC4w MDAJNjYyMTAwCTAuMDAwCTExMy4wMDAJMTE0Ljg4MAorNDgJNTM0CTExNS43NTAJNTczOTAwCTAu MDAwCTExMy42MzAJMTE2LjEzMAorNDgJNTM1CTExMy4xMzAJNzkxNDAwCTAuMDAwCTExMy4wMDAJ MTE2LjI1MAorNDgJNTM2CTExMy4zNzUJODMxNzAwCTAuMDAwCTExMi42MjUJMTE0Ljc1MAorNDgJ NTM3CTExMy43NTAJNjcyMzAwCTAuMDAwCTExMy4xMzAJMTE0LjUwMAorNDgJNTM4CTExNC4yNTAJ NDE5NjAwCTAuMDAwCTExMy42MzAJMTE0LjYzMAorNDgJNTM5CTExNy4yNTAJNzM3ODAwCTAuMDAw CTExNC4xMjUJMTE3LjI1MAorNDgJNTQwCTExOC4wMDAJOTcxNTAwCTAuMDAwCTExNy4wMDAJMTE5 Ljc1MAorNDgJNTQxCTEyMS4wMDAJMTE3MDMwMAkwLjAwMAkxMTguMTMwCTEyMS4wMDAKKzQ4CTU0 MgkxMjEuNzUwCTEyMzM0MDAJMC4wMDAJMTIxLjUwMAkxMjIuODc1Cis0OAk1NDMJMTIxLjEzMAk2 MjU1MDAJMC4wMDAJMTIwLjI1MAkxMjIuMjUwCis0OQk1NDQJMTIwLjg3NQk1NDI5MDAJMC4wMDAJ MTIwLjI1MAkxMjIuNzUwCis0OQk1NDUJMTE4LjAwMAk4NjUzMDAJMC4wMDAJMTE3Ljc1MAkxMjEu MzgwCis0OQk1NDYJMTIwLjAwMAk2Njk4MDAJMC4wMDAJMTE3Ljg4MAkxMjAuODgwCis0OQk1NDcJ MTIwLjI1MAk1NTYyMDAJMC4wMDAJMTE5Ljc1MAkxMjEuMDAwCis0OQk1NDgJMTIxLjAwMAkzNzMx MDAJMC4wMDAJMTIwLjM3NQkxMjEuMjUwCis0OQk1NDkJMTE5LjI1MAk5NDMzMDAJMC4wMDAJMTE4 LjYyNQkxMTkuNjI1Cis1MAk1NTAJMTIyLjg4MAk4MTQzMDAJMC4wMDAJMTIxLjYzMAkxMjMuNTAw Cis1MAk1NTEJMTIxLjc1MAk2OTExMDAJMC4wMDAJMTIxLjUwMAkxMjMuMjUwCis1MAk1NTIJMTIz LjEyNQk4MTk3MDAJMC4wMDAJMTIxLjUwMAkxMjQuMjUwCis1MAk1NTMJMTIzLjc1MAk5MTE1MDAJ MC4wMDAJMTIyLjYyNQkxMjQuODc1Cis1MAk1NTQJMTIzLjg3NQk5NDIzMDAJMC4wMDAJMTIzLjEy NQkxMjQuNTAwCis1MAk1NTUJMTIzLjAwMAkxMDcwOTAwCTAuMDAwCTEyMi44NzUJMTI0LjEyNQor NTAJNTU2CTEyNC42MjUJMTA5OTMwMAkwLjAwMAkxMjIuNzUwCTEyNC43NTAKKzUwCTU1NwkxMjYu NjI1CTExMTE5MDAJMC4wMDAJMTI0LjI1MAkxMjYuNjI1Cis1MAk1NTgJMTI4LjYyNQkyMDk3NTAw CTAuMDAwCTEyNi4wMDAJMTI5LjUwMAorNTAJNTU5CTEyNy44NzUJMTI3MTUwMAkwLjAwMAkxMjYu NTAwCTEyOC4zNzUKKzUxCTU2MAkxMjkuODc1CTExOTAyMDAJMC4wMDAJMTI4Ljg3NQkxMzAuMTI1 Cis1MQk1NjEJMTMxLjEzMAkxMzkxMjAwCTAuMDAwCTEyOS4xMzAJMTMxLjI1MAorNTEJNTYyCTEz Mi4xMzAJMTEwNDYwMAkwLjAwMAkxMzEuMDAwCTEzMi4yNTAKKzUxCTU2MwkxMzIuMjUwCTgwMzMw MAkwLjAwMAkxMzEuNzUwCTEzMi41MDAKKzUxCTU2NAkxMzQuMjUwCTY1ODQwMAkwLjAwMAkxMzEu NTAwCTEzNC4yNTAKKzUxCTU2NQkxMzMuMDAwCTY4NzEwMAkwLjAwMAkxMzIuNzUwCTEzNC4wMDAK KzUyCTU2NgkxMjYuNzUwCTE0MTMyMDAJMC4wMDAJMTI1LjAwMAkxMjcuMjUwCis1Mgk1NjcJMTI2 LjUwMAk5NDY0MDAJMC4wMDAJMTI1LjUwMAkxMjcuMDAwCis1Mgk1NjgJMTIzLjg4MAk5MjI2MDAJ MC4wMDAJMTIzLjUwMAkxMjYuNTAwCis1Mgk1NjkJMTIyLjI1MAkxNDc0NTAwCTAuMDAwCTEyMS43 NTAJMTIzLjI1MAorNTIJNTcwCTEyMi4xMjUJODAzNjAwCTAuMDAwCTEyMi4wMDAJMTIzLjM3NQor NTIJNTcxCTEyMi4yNTAJNjUwOTAwCTAuMDAwCTEyMS44ODAJMTIyLjg4MAorNTIJNTcyCTEyMy42 MjUJODU4OTAwCTAuMDAwCTEyMi4zNzUJMTIzLjYyNQorNTIJNTczCTEyNS4yNTAJMTE2NTgwMAkw LjAwMAkxMjQuMDAwCTEyNS43NTAKKzUyCTU3NAkxMjYuODc1CTc4NDgwMAkwLjAwMAkxMjUuMTI1 CTEyNy4yNTAKKzUyCTU3NQkxMjcuNTAwCTEwMzA2MDAJMC4wMDAJMTI3LjAwMAkxMjguMjUwCis1 Mgk1NzYJMTI0LjUwMAkxMzU0MzAwCTAuMDAwCTEyNC4wMDAJMTI3LjYzMAorNTMJNTc3CTExMS4y NTAJMTA0MzIwMAkwLjAwMAkxMDkuMjUwCTExMS41MDAKKzUzCTU3OAkxMTIuODgwCTE0NTg5MDAJ MC4wMDAJMTEwLjc1MAkxMTMuNTAwCis1Mwk1NzkJMTEwLjAwMAkxMjQxMzAwCTAuMDAwCTEwOS44 NzUJMTEyLjUwMAorNTMJNTgwCTExMC4yNTAJMTExNzAwMAkwLjAwMAkxMDkuMzc1CTExMS43NTAK KzUzCTU4MQkxMTEuNTAwCTgxMjkwMAkwLjAwMAkxMDkuNzUwCTExMS42MjUKKzUzCTU4MgkxMTIu MDAwCTEwMDUwMDAJMC4wMDAJMTExLjYyNQkxMTIuODc1Cis1Mwk1ODMJMTExLjAwMAk3Nzk0MDAJ MC4wMDAJMTEwLjM3NQkxMTEuNTAwCis1Mwk1ODQJMTA5LjI1MAk4Njg1MDAJMC4wMDAJMTA5LjEy NQkxMTEuNjI1Cis1NAk1ODUJMTA4LjAwMAk3Mjk2MDAJMC4wMDAJMTA3LjM3NQkxMDguNjI1Cis1 NAk1ODYJMTEwLjI1MAkxNDU1OTAwCTAuMDAwCTEwOC41MDAJMTEwLjUwMAorNTQJNTg3CTExMC42 MjUJMTQzMjMwMAkwLjAwMAkxMTAuMzc1CTExMi4wMDAKKzU0CTU4OAkxMTEuMDAwCTk5MDcwMAkw LjAwMAkxMTAuMzc1CTExMS41MDAKKzU0CTU4OQkxMTIuMDAwCTk1NDcwMAkwLjAwMAkxMTEuMTI1 CTExMi41MDAKKzU0CTU5MAkxMTMuNzUwCTIxMTA1MDAJMC4wMDAJMTEyLjc1MAkxMTQuMjUwCis1 NAk1OTEJMTE0LjAwMAk4MTc2MDAJMC4wMDAJMTEyLjUwMAkxMTQuMDAwCis1NAk1OTIJMTE0Ljc1 MAkxMjQxMDAwCTAuMDAwCTExMy41MDAJMTE1LjM4MAorNTQJNTkzCTExNC4wMDAJOTE0OTAwCTAu MDAwCTExNC4wMDAJMTE1LjUwMAorNTQJNTk0CTExMi43NTAJODgxNDAwCTAuMDAwCTExMi4zNzUJ MTE0LjAwMAorNTQJNTk1CTExMi4yNTAJODM2NzAwCTAuMDAwCTExMS41MDAJMTEzLjAwMAorNTQJ NTk2CTExMi4yNTAJNjk0MjAwCTAuMDAwCTExMS43NTAJMTEzLjI1MAorNTUJNTk3CTExMi43NTAJ NzcwNTAwCTAuMDAwCTExMC42MzAJMTEyLjg4MAorNTUJNTk4CTExMi4yNTAJOTMxNTAwCTAuMDAw CTExMi4wMDAJMTEzLjUwMAorNTUJNTk5CTExMS4xMjUJNzIwNzAwCTAuMDAwCTExMC41MDAJMTEy LjI1MAorNTUJNjAwCTExMC43NTAJMTAyODcwMAkwLjAwMAkxMTAuMTI1CTExMS4xMjUKKzU1CTYw MQkxMDkuODgwCTgzNjQwMAkwLjAwMAkxMDkuNjMwCTExMS4zODAKKzU1CTYwMgkxMTAuNzUwCTEx MDQ0MDAJMC4wMDAJMTA5LjUwMAkxMTEuNjI1Cis1NQk2MDMJMTExLjg3NQk4OTk0MDAJMC4wMDAJ MTEwLjYyNQkxMTIuMjUwCis1NQk2MDQJMTEzLjI1MAkxMDkwMDAwCTAuMDAwCTExMS44NzUJMTEz LjUwMAorNTUJNjA1CTExMy4zODAJMTAyMjkwMAkwLjAwMAkxMTIuNjMwCTExNC4yNTAKKzU1CTYw NgkxMTMuNzUwCTExMjI1MDAJMC4wMDAJMTEyLjc1MAkxMTQuNjMwCis1NQk2MDcJMTE2LjUwMAkx NDYzNTAwCTAuMDAwCTExNC4wMDAJMTE2LjUwMAorNTUJNjA4CTExNi4yNTAJMTMzNzkwMAkwLjAw MAkxMTYuMDAwCTExNy4yNTAKKzU2CTYwOQkxMDcuMjUwCTcwNDcwMAkwLjAwMAkxMDUuMzc1CTEw Ny41MDAKKzU2CTYxMAkxMDcuMTI1CTgwMjQwMAkwLjAwMAkxMDYuMjUwCTEwNy4zNzUKKzU2CTYx MQkxMDUuMjUwCTg5NzUwMAkwLjAwMAkxMDUuMjUwCTEwNy4xMzAKKzU2CTYxMgkxMDQuMzc1CTEw NzY5MDAJMC4wMDAJMTA0LjEyNQkxMDUuNjI1Cis1Ngk2MTMJMTA1LjI1MAk4NTYxMDAJMC4wMDAJ MTA0LjAwMAkxMDUuNzUwCis1Ngk2MTQJMTA3LjI1MAk5MjU3MDAJMC4wMDAJMTA0LjUwMAkxMDcu MjUwCis1Ngk2MTUJMTA4LjEzMAkxMDQ3MTAwCTAuMDAwCTEwNi43NTAJMTA4LjM4MAorNTYJNjE2 CTEwNy41MDAJNjI1MTAwCTAuMDAwCTEwNy4xMjUJMTA4LjEyNQorNTYJNjE3CTEwNy4wMDAJODk1 OTAwCTAuMDAwCTEwNi4yNTAJMTA3LjM3NQorNTYJNjE4CTEwNi41MDAJODEwMDAwCTAuMDAwCTEw NS41MDAJMTA3LjI1MAorNTYJNjE5CTEwNi4xMjUJOTMxMTAwCTAuMDAwCTEwNS4xMjUJMTA2LjM3 NQorNTYJNjIwCTEwNS4zODAJNzEwMjAwCTAuMDAwCTEwNS4xMzAJMTA3LjAwMAorNTYJNjIxCTEw Ny4xMjUJMTU5MTgwMAkwLjAwMAkxMDQuNTAwCTEwNy43NTAKKzU2CTYyMgkxMDguMjUwCTEwMDI3 MDAJMC4wMDAJMTA2Ljc1MAkxMDguNzUwCis1Ngk2MjMJMTA5LjAwMAkxMDU5MzAwCTAuMDAwCTEw Ny44NzUJMTA5LjYyNQorNTYJNjI0CTEwOC4zODAJNjEwNDAwCTAuMDAwCTEwOC4yNTAJMTA5LjM4 MAorNTcJNjI1CTEyNC42MjUJOTI5NTAwCTAuMDAwCTEyNC42MjUJMTI2LjEyNQorNTcJNjI2CTEy NS43NTAJMTIwMDEwMAkwLjAwMAkxMjUuMjUwCTEyNi44NzUKKzU3CTYyNwkxMjUuODgwCTc2MzIw MAkwLjAwMAkxMjUuNzUwCTEyNi41MDAKKzU3CTYyOAkxMjYuNzUwCTU4OTcwMAkwLjAwMAkxMjMu NzUwCTEyNi44NzUKKzU3CTYyOQkxMjcuNTAwCTEyNzA2MDAJMC4wMDAJMTI2LjUwMAkxMjcuNzUw Cis1Nwk2MzAJMTI1Ljc1MAkxNjY4NDAwCTAuMDAwCTEyNS4zNzUJMTI3LjEyNQorNTcJNjMxCTEy NC44ODAJMTA1NjcwMAkwLjAwMAkxMjQuMjUwCTEyNS43NTAKKzU3CTYzMgkxMjMuMjUwCTk0NDMw MAkwLjAwMAkxMjMuMjUwCTEyNS41MDAKKzU3CTYzMwkxMjQuMDAwCTc4MjcwMAkwLjAwMAkxMjIu NzUwCTEyNC4wMDAKKzU4CTYzNAkxMjQuMjUwCTc1NDIwMAkwLjAwMAkxMjMuMjUwCTEyNC41MDAK KzU4CTYzNQkxMjMuNzUwCTQxODMwMAkwLjAwMAkxMjMuNjI1CTEyNC4yNTAKKzU4CTYzNgkxMjMu MTI1CTUwNTIwMAkwLjAwMAkxMjIuNzUwCTEyNC4yNTAKKzU4CTYzNwkxMjMuNTAwCTU3MzYwMAkw LjAwMAkxMjIuNzUwCTEyNC4wMDAKKzU4CTYzOAkxMjMuMTI1CTY4NTAwMAkwLjAwMAkxMjIuODc1 CTEyMy44NzUKKzU4CTYzOQkxMjEuMDAwCTg3MjUwMAkwLjAwMAkxMjAuNzUwCTEyMi42MzAKKzU4 CTY0MAkxMjAuMDAwCTEzODgxMDAJMC4wMDAJMTE5Ljg3NQkxMjIuMjUwCis1OAk2NDEJMTE5Ljc1 MAkxMDA3MDAwCTAuMDAwCTExOS4wMDAJMTIwLjM3NQorNTkJNjQyCTEyMy42MjUJMTA2OTYwMAkw LjAwMAkxMjMuMjUwCTEyNC42MjUKKzU5CTY0MwkxMjQuMTMwCTExNjMzMDAJMC4wMDAJMTIzLjYz MAkxMjUuMDAwCis1OQk2NDQJMTI4LjI1MAkyMTM4ODAwCTAuMDAwCTEyNC42MzAJMTI4LjUwMAor NTkJNjQ1CTEyOS42MzAJMjUzOTAwMAkwLjAwMAkxMjkuMTMwCTEzMC42MzAKKzU5CTY0NgkxMzIu NTAwCTIyNzAyMDAJMC4wMDAJMTI5LjM3NQkxMzIuNjI1Cis1OQk2NDcJMTMzLjEzMAkxODI1MjAw CTAuMDAwCTEzMi4zODAJMTM0LjUwMAorNTkJNjQ4CTEzMy4yNTAJMTIxMjMwMAkwLjAwMAkxMzIu NjI1CTEzNC4xMjUKKzU5CTY0OQkxMzQuNjI1CTE5MzY1MDAJMC4wMDAJMTMzLjI1MAkxMzUuMjUw Cis1OQk2NTAJMTM3LjAwMAkxMTI4NzAwCTAuMDAwCTEzMy43NTAJMTM3LjAwMAorNTkJNjUxCTEz Ni42MzAJMTU2MzYwMAkwLjAwMAkxMzYuMTMwCTEzNy42MzAKKzYwCTY1MgkxMzAuNTAwCTEwMzcy MDAJMC4wMDAJMTI4LjI1MAkxMzEuMTI1Cis2MAk2NTMJMTI5LjM3NQkxMTE4ODAwCTAuMDAwCTEy OS4wMDAJMTMwLjYyNQorNjAJNjU0CTEyOC43NTAJMTU1MjIwMAkwLjAwMAkxMjguMTI1CTEzMC4w MDAKKzYwCTY1NQkxMjcuNzUwCTExOTc4MDAJMC4wMDAJMTI3Ljc1MAkxMjguNzUwCis2MAk2NTYJ MTI0LjUwMAkyMDU3OTAwCTAuMDAwCTEyNC41MDAJMTI4LjAwMAorNjAJNjU3CTEyNS4zNzUJMTQw NDQwMAkwLjAwMAkxMjQuMTI1CTEyNS42MjUKKzYwCTY1OAkxMjYuMzgwCTEwOTg0MDAJMC4wMDAJ MTI1LjUwMAkxMjYuNjMwCis2MAk2NTkJMTI2LjYyNQk5OTM0MDAJMC4wMDAJMTI2LjM3NQkxMjcu NjI1Cis2MAk2NjAJMTI4LjEyNQk4NDA4MDAJMC4wMDAJMTI2Ljg3NQkxMjguMjUwCis2MAk2NjEJ MTI3Ljc1MAk5NDkwMDAJMC4wMDAJMTI3LjUwMAkxMjkuNTAwCis2MQk2NjIJMTI2LjUwMAkxMjgw MzAwCTAuMDAwCTEyNS41MDAJMTI2Ljc1MAorNjEJNjYzCTEyNS42MzAJMTEzNTAwMAkwLjAwMAkx MjUuMTMwCTEyNi44ODAKKzYxCTY2NAkxMjUuMzc1CTEyNTg4MDAJMC4wMDAJMTI0Ljc1MAkxMjYu Mzc1Cis2MQk2NjUJMTI1LjAwMAk3NzA1MDAJMC4wMDAJMTI0LjYzMAkxMjUuNjMwCis2MQk2NjYJ MTI0Ljc1MAk1Nzk0MDAJMC4wMDAJMTI0Ljc1MAkxMjUuNjI1Cis2MQk2NjcJMTI1Ljc1MAk3NzI5 MDAJMC4wMDAJMTI1LjAwMAkxMjYuMjUwCis2MQk2NjgJMTI3LjEyNQk5MjU3MDAJMC4wMDAJMTI1 LjM3NQkxMjcuMjUwCis2MQk2NjkJMTI3Ljg4MAk5NzgzMDAJMC4wMDAJMTI3LjAwMAkxMjguMjUw Cis2MQk2NzAJMTMwLjEzMAkyMjM5MDAwCTAuMDAwCTEyOC41MDAJMTMwLjg4MAorNjEJNjcxCTEz MC4yNTAJMTE1NzYwMAkwLjAwMAkxMjkuNzUwCTEzMC42MjUKKzYxCTY3MgkxMjguMDAwCTE1NTEy MDAJMC4wMDAJMTI3Ljc1MAkxMzAuODc1Cis2Mgk2NzMJMTMzLjAwMAkxMjE1MDAwCTAuMDAwCTEz Mi4zODAJMTMzLjI1MAorNjIJNjc0CTEzMi4zNzUJODU3MTAwCTAuMDAwCTEzMS44NzUJMTMyLjc1 MAorNjIJNjc1CTEzMS4zNzUJODI5MzAwCTAuMDAwCTEzMS4yNTAJMTMyLjM3NQorNjIJNjc2CTEz MC44ODAJNjc1MjAwCTAuMDAwCTEzMC43NTAJMTMxLjYzMAorNjIJNjc3CTEzMC4zNzUJOTIxOTAw CTAuMDAwCTEyOS43NTAJMTMxLjc1MAorNjIJNjc4CTEyOS43NTAJOTM5NzAwCTAuMDAwCTEyOS4y NTAJMTMwLjI1MAorNjIJNjc5CTEyOC4wMDAJMTY2NjYwMAkwLjAwMAkxMjcuMjUwCTEyOS41MDAK KzYyCTY4MAkxMjguNjI1CTEzNzE5MDAJMC4wMDAJMTI3LjI1MAkxMzAuMDAwCis2Mgk2ODEJMTI5 LjEyNQkxMjY1NjAwCTAuMDAwCTEyOC4yNTAJMTI5LjUwMAorNjIJNjgyCTEyOS43NTAJMTE3NjEw MAkwLjAwMAkxMjguNzUwCTEzMC4xMzAKKzYyCTY4MwkxMjguNTAwCTE2NDQ1MDAJMC4wMDAJMTI4 LjUwMAkxMzAuNjMwCis2Mwk2ODQJMTIxLjEzMAkxNzUzMDAwCTAuMDAwCTExOS4zODAJMTIxLjEz MAorNjMJNjg1CTEyMC4xMzAJMTMxNjYwMAkwLjAwMAkxMTkuMjUwCTEyMC41MDAKKzYzCTY4Ngkx MTkuODc1CTE4MTkwMDAJMC4wMDAJMTE5LjEyNQkxMjEuNjI1Cis2Mwk2ODcJMTE5LjM3NQkxMjY4 OTAwCTAuMDAwCTExOS4yNTAJMTIwLjg3NQorNjMJNjg4CTExOC43NTAJMTQwMDMwMAkwLjAwMAkx MTcuMzc1CTExOS43NTAKKzYzCTY4OQkxMTkuMzgwCTEzNjUxMDAJMC4wMDAJMTE4LjM4MAkxMTku NzUwCis2Mwk2OTAJMTIwLjg3NQkxMTI1MzAwCTAuMDAwCTExOC43NTAJMTIxLjEyNQorNjMJNjkx CTEyMi4wMDAJMTc1MzAwMAkwLjAwMAkxMjEuMzgwCTEyMy4zODAKKzYzCTY5MgkxMjMuMTMwCTkx NDMwMAkwLjAwMAkxMjIuMDAwCTEyMy4yNTAKKzYzCTY5MwkxMjQuMDAwCTExNTE1MDAJMC4wMDAJ MTIzLjEyNQkxMjQuMjUwCis2Mwk2OTQJMTIzLjc1MAk4MjA1MDAJMC4wMDAJMTIzLjUwMAkxMjQu NTAwCis2NAk2OTUJMTQxLjc1MAkxNjM4NDAwCTAuMDAwCTE0MC4yNTAJMTQxLjc1MAorNjQJNjk2 CTE0NC42MzAJMTY2MjUwMAkwLjAwMAkxNDIuMTMwCTE0NC44ODAKKzY0CTY5NwkxNDYuNjI1CTE5 NDAyMDAJMC4wMDAJMTQ0LjI1MAkxNDguMDAwCis2NAk2OTgJMTQ5LjAwMAkxOTg1NjAwCTAuMDAw CTE0Ni42MjUJMTQ5LjM3NQorNjQJNjk5CTE0OC42MzAJMTQwNzYwMAkwLjAwMAkxNDcuMDAwCTE0 OS4zODAKKzY0CTcwMAkxNTAuMjUwCTE4OTAxMDAJMC4wMDAJMTQ5LjEzMAkxNTEuNTAwCis2NAk3 MDEJMTUyLjI1MAkxNTg2MTAwCTAuMDAwCTE1MC4wMDAJMTUzLjUwMAorNjQJNzAyCTE1Mi41MDAJ MTc4NjEwMAkwLjAwMAkxNTEuNTAwCTE1NC41MDAKKzY0CTcwMwkxNTIuODc1CTE1MjQxMDAJMC4w MDAJMTUxLjYyNQkxNTMuODc1Cis2NAk3MDQJMTUzLjc1MAkxMTA1OTAwCTAuMDAwCTE1Mi4zNzUJ MTU0LjAwMAorNjQJNzA1CTE1NC4yNTAJMjEyNzgwMAkwLjAwMAkxNTMuNzUwCTE1Ni42MjUKKzY0 CTcwNgkxNTQuMDAwCTEyMjA5MDAJMC4wMDAJMTUzLjM4MAkxNTUuMTMwCis2NAk3MDcJMTUyLjc1 MAkxMDExNjAwCTAuMDAwCTE1MS4yNTAJMTU0LjYzMAorNjQJNzA4CTE1My4yNTAJNTYyNzAwCTAu MDAwCTE1Mi4xMjUJMTUzLjc1MAorNjUJNzA5CTE0MS4xMzAJMTg1ODYwMAkwLjAwMAkxMzguODgw CTE0MS4yNTAKKzY1CTcxMAkxNDEuMTI1CTE1NjE2MDAJMC4wMDAJMTQwLjUwMAkxNDIuMDAwCis2 NQk3MTEJMTQwLjAwMAkxMjI5MDAwCTAuMDAwCTEzOS41MDAJMTQwLjM4MAorNjUJNzEyCTEzOC43 NTAJODg3NjAwCTAuMDAwCTEzOC4wMDAJMTQwLjAwMAorNjUJNzEzCTEzNi4wMDAJMTkzODMwMAkw LjAwMAkxMzUuNTAwCTEzOC44NzUKKzY1CTcxNAkxMzYuMTI1CTE2Mjg2MDAJMC4wMDAJMTM1LjEy NQkxMzYuMzc1Cis2NQk3MTUJMTM5LjM4MAkxNjMwMDAwCTAuMDAwCTEzNi4wMDAJMTM5LjUwMAor NjUJNzE2CTE0MC4zNzUJMjYxODEwMAkwLjAwMAkxMzguNTAwCTE0MS4wMDAKKzY1CTcxNwkxNDMu NzUwCTI2MjkxMDAJMC4wMDAJMTQwLjg3NQkxNDMuODc1Cis2NQk3MTgJMTQzLjg4MAkyMjUxMTAw CTAuMDAwCTE0My41MDAJMTQ1LjUwMAorNjUJNzE5CTE0NC4xMzAJMTc2NjkwMAkwLjAwMAkxNDIu ODgwCTE0NC41MDAKKzY1CTcyMAkxMzkuMjUwCTI4NjYxMDAJMC4wMDAJMTM4Ljc1MAkxNDIuODgw Cis2NQk3MjEJMTM3LjM4MAk0Mzc5NTAwCTAuMDAwCTEzNi4yNTAJMTM5Ljg4MAorNjUJNzIyCTEz Ny4wMDAJMjE5NDUwMAkwLjAwMAkxMzYuMDAwCTEzOC41MDAKKzY1CTcyMwkxMzguMjUwCTE0MTMx MDAJMC4wMDAJMTM1LjYyNQkxMzguNTAwCis2Ngk3MjQJMTIzLjYyNQkyNDMxMTAwCTAuMDAwCTEy Mi4zNzUJMTI0LjUwMAorNjYJNzI1CTEyMi4wMDAJMTYwOTMwMAkwLjAwMAkxMjEuODgwCTEyNS4y NTAKKzY2CTcyNgkxMjAuODgwCTMxNDIyMDAJMC4wMDAJMTE5Ljc1MAkxMjMuMDAwCis2Ngk3MjcJ MTIzLjAwMAkyMjM5NTAwCTAuMDAwCTEyMC4zNzUJMTIzLjAwMAorNjYJNzI4CTEyMS4xMzAJMjIy MDQwMAkwLjAwMAkxMjAuODgwCTEyMy4zODAKKzY2CTcyOQkxMjEuODc1CTE5NDc2MDAJMC4wMDAJ MTIwLjUwMAkxMjIuMzc1Cis2Ngk3MzAJMTIwLjI1MAkxNDg0NzAwCTAuMDAwCTExOS44NzUJMTIx LjI1MAorNjYJNzMxCTEyMS4zNzUJMTY5NzAwMAkwLjAwMAkxMjAuMjUwCTEyMS4zNzUKKzY2CTcz MgkxMjAuMzc1CTEyODM5MDAJMC4wMDAJMTIwLjEyNQkxMjEuNTAwCis2Nwk3MzMJMTIzLjEzMAky MTA3NzAwCTAuMDAwCTEyMi41MDAJMTI0Ljc1MAorNjcJNzM0CTEyMS4zODAJMjU4MTIwMAkwLjAw MAkxMTkuMjUwCTEyMi4wMDAKKzY3CTczNQkxMjEuNTAwCTExMDM0MDAJMC4wMDAJMTIwLjAwMAkx MjEuODgwCis2Nwk3MzYJMTIzLjEyNQk5OTgyMDAJMC4wMDAJMTIxLjI1MAkxMjMuMjUwCis2Nwk3 MzcJMTIzLjc1MAk3NTE0MDAJMC4wMDAJMTIyLjg3NQkxMjQuMjUwCis2Nwk3MzgJMTIyLjc1MAkx MTMwNDAwCTAuMDAwCTEyMS44NzUJMTI0LjM3NQorNjgJNzM5CTE1MS43NTAJMTgwNDcwMAkwLjAw MAkxNTEuNTAwCTE1NC4xMzAKKzY4CTc0MAkxNTQuMjUwCTMzMDg5MDAJMC4wMDAJMTQ5LjUwMAkx NTYuMDAwCis2OAk3NDEJMTU1LjI1MAkyOTQ1OTAwCTAuMDAwCTE1NC42MjUJMTU2LjYyNQorNjgJ NzQyCTE1OC42MzAJMzI0ODgwMAkwLjAwMAkxNTUuODgwCTE1OS42MzAKKzY4CTc0MwkxNjAuMTI1 CTMyNzIyMDAJMC4wMDAJMTU3Ljc1MAkxNjEuNTAwCis2OAk3NDQJMTYwLjYzMAkyMzg1MDAwCTAu MDAwCTE1OS4xMzAJMTYyLjM4MAorNjgJNzQ1CTE2My4wMDAJMTU2MTcwMAkwLjAwMAkxNTkuNzUw CTE2My4wMDAKKzY4CTc0NgkxNjYuODc1CTI3OTI1MDAJMC4wMDAJMTY0LjI1MAkxNjcuNjI1Cis2 OAk3NDcJMTY2Ljc1MAkyMTg3OTAwCTAuMDAwCTE2Ni4wMDAJMTY3LjYzMAorNjgJNzQ4CTE2NC44 ODAJMTY1MjIwMAkwLjAwMAkxNjMuODgwCTE2Ni43NTAKKzY4CTc0OQkxNjMuNzUwCTE0MzA1MDAJ MC4wMDAJMTYzLjI1MAkxNjUuODc1Cis2OAk3NTAJMTYzLjAwMAkyMjY5NjAwCTAuMDAwCTE2My4w MDAJMTY3LjM4MAorNjgJNzUxCTE2NS4zODAJMTk5ODIwMAkwLjAwMAkxNjIuMjUwCTE2Ni4xMzAK KzY5CTc1MgkxNTkuMjUwCTIwNTc5MDAJMC4wMDAJMTU4Ljc1MAkxNjAuODgwCis2OQk3NTMJMTU5 LjM4MAkxNjY4NDAwCTAuMDAwCTE1OC41MDAJMTYwLjAwMAorNjkJNzU0CTE2MC4yNTAJMjQzNTgw MAkwLjAwMAkxNTkuNzUwCTE2MS4wMDAKKzY5CTc1NQkxNjMuMDAwCTIyODQwMDAJMC4wMDAJMTU5 LjEyNQkxNjMuMjUwCis2OQk3NTYJMTY0LjM3NQkyMzg2OTAwCTAuMDAwCTE2My4wMDAJMTY1LjYy NQorNjkJNzU3CTE2Ni43NTAJMTYzMjIwMAkwLjAwMAkxNjQuNTAwCTE2Ni43NTAKKzY5CTc1OAkx NjkuMDAwCTMyMDMzMDAJMC4wMDAJMTY3LjEzMAkxNjkuNjMwCis2OQk3NTkJMTcwLjM4MAkzMjk5 OTAwCTAuMDAwCTE2OC4wMDAJMTcyLjEzMAorNjkJNzYwCTE3My4zODAJMjU4NjYwMAkwLjAwMAkx NzAuMzgwCTE3NC4wMDAKKzY5CTc2MQkxNzMuMjUwCTIxMDkyMDAJMC4wMDAJMTcyLjAwMAkxNzUu MDAwCis3MAk3NjIJMTUwLjUwMAkyNjMwNTAwCTAuMDAwCTE0OS41MDAJMTUzLjc1MAorNzAJNzYz CTE1MC43NTAJMzA3MzMwMAkwLjAwMAkxNDguNTAwCTE1MS44ODAKKzcwCTc2NAkxNTQuNjMwCTE5 MDg0MDAJMC4wMDAJMTUxLjAwMAkxNTQuNzUwCis3MAk3NjUJMTU1LjI1MAkxODY4NTAwCTAuMDAw CTE1NC43NTAJMTU2Ljg4MAorNzAJNzY2CTE1Ni41MDAJMTU0NDMwMAkwLjAwMAkxNTQuNTAwCTE1 Ny4yNTAKKzcwCTc2NwkxNTEuMDAwCTIwNDQyMDAJMC4wMDAJMTUxLjAwMAkxNTYuMzc1Cis3MQk3 NjgJMTQ1LjI1MAkyOTIyMTAwCTAuMDAwCTE0NC4xMzAJMTQ3LjM4MAorNzEJNzY5CTE0MC4xMjUJ MzkyMzkwMAkwLjAwMAkxNDAuMDAwCTE0NS43NTAKKzcxCTc3MAkxMzUuMDAwCTQ2NjUwMDAJMC4w MDAJMTMyLjAwMAkxNDEuMjUwCis3MQk3NzEJMTA0LjAwMAk2Mzg0NDAwCTAuMDAwCTEwMi4wMDAJ MTMwLjc1MAorNzEJNzcyCTExNS4wMDAJMAkwLjAwMAkxMTAuMTMwCTEyMi4wMDAKKzcxCTc3Mwkx MjIuNzUwCTUzODY2MDAJMC4wMDAJMTIwLjAwMAkxMjUuNTAwCis3Mgk3NzQJMTE4Ljg4MAkyMjMz NjAwCTAuMDAwCTExNS4wMDAJMTE5LjI1MAorNzIJNzc1CTExNS41MDAJMTgyNDcwMAkwLjAwMAkx MTUuMDAwCTExOS41MDAKKzcyCTc3NgkxMTcuMjUwCTI3OTg5MDAJMC4wMDAJMTE1LjI1MAkxMTgu MjUwCis3Mgk3NzcJMTE4LjI1MAkxNTUwMjAwCTAuMDAwCTExNi44ODAJMTE5LjUwMAorNzIJNzc4 CTExOC4yNTAJMTIxNzAwMAkwLjAwMAkxMTYuNTAwCTExOC4zNzUKKzcyCTc3OQkxMTkuNTAwCTE2 NDY0MDAJMC4wMDAJMTE4Ljc1MAkxMjAuMzgwCis3Mgk3ODAJMTE5Ljg3NQk2MzAzMDAJMC4wMDAJ MTE5LjAwMAkxMTkuODc1Cis3Mgk3ODEJMTE1Ljc1MAkxMDg2ODAwCTAuMDAwCTExNS4xMzAJMTE3 LjYzMAorNzMJNzgyCTExMS42MzAJMTIzMDMwMAkwLjAwMAkxMTAuNzUwCTExMi4xMzAKKzczCTc4 MwkxMTIuMjUwCTc2OTAwMAkwLjAwMAkxMTEuNTAwCTExMi43NTAKKzczCTc4NAkxMTMuMzgwCTg2 NzQwMAkwLjAwMAkxMTIuNzUwCTExNC4wMDAKKzczCTc4NQkxMTIuODc1CTg5NjgwMAkwLjAwMAkx MTIuNjI1CTExMy43NTAKKzczCTc4NgkxMTEuNTAwCTkzMjIwMAkwLjAwMAkxMTAuNzUwCTExMy41 MDAKKzczCTc4NwkxMTAuMjUwCTE0ODkwMDAJMC4wMDAJMTA5LjUwMAkxMTEuMTMwCis3Mwk3ODgJ MTE0LjAwMAkxNTY0OTAwCTAuMDAwCTExMS42MzAJMTE0Ljc1MAorNzMJNzg5CTExMi44NzUJOTU4 MjAwCTAuMDAwCTExMi4zNzUJMTEzLjg3NQorNzQJNzkwCTExNC4xMjUJMTY1MjcwMAkwLjAwMAkx MTIuNTAwCTExNC4zNzUKKzc0CTc5MQkxMTMuNTAwCTk0NzQwMAkwLjAwMAkxMTMuMzc1CTExNC4x MjUKKzc0CTc5MgkxMTIuNzUwCTExMDAyMDAJMC4wMDAJMTEyLjUwMAkxMTQuMzgwCis3NAk3OTMJ MTEyLjUwMAkyMTk1OTAwCTAuMDAwCTExMC42MzAJMTEyLjYzMAorNzQJNzk0CTExMy4wMDAJMTU1 ODEwMAkwLjAwMAkxMTEuODgwCTExMy4wMDAKKzc0CTc5NQkxMTMuMzgwCTExODc3MDAJMC4wMDAJ MTEzLjEzMAkxMTQuMjUwCis3NAk3OTYJMTE1LjAwMAkxMzY1MzAwCTAuMDAwCTExMy42MzAJMTE1 LjI1MAorNzQJNzk3CTExNC42MjUJMTk5MjAwMAkwLjAwMAkxMTQuNTAwCTExNi41MDAKKzc0CTc5 OAkxMTQuMDAwCTE1ODIxMDAJMC4wMDAJMTEzLjYyNQkxMTUuMDAwCis3NAk3OTkJMTEzLjc1MAky MjI1MDAwCTAuMDAwCTExMi42MjUJMTE0LjAwMAorNzQJODAwCTExNS41MDAJMjQwNjQwMAkwLjAw MAkxMTMuMjUwCTExNS43NTAKKzc0CTgwMQkxMTcuMzc1CTIyMDk1MDAJMC4wMDAJMTE1Ljc1MAkx MTcuNjI1Cis3NAk4MDIJMTE4LjI1MAkyNjQ4MjAwCTAuMDAwCTExNy43NTAJMTE5LjM3NQorNzQJ ODAzCTExNy4xMjUJMTYxOTgwMAkwLjAwMAkxMTcuMTI1CTExOS4xMjUKKzc1CTgwNAkxMTYuMzgw CTEzMzM4MDAJMC4wMDAJMTE2LjAwMAkxMTguMzgwCis3NQk4MDUJMTE2Ljg3NQkxNTA5ODAwCTAu MDAwCTExNi4xMjUJMTE3LjUwMAorNzUJODA2CTExNy4xMzAJOTM5MDAwCTAuMDAwCTExNi44ODAJ MTE3LjYzMAorNzUJODA3CTExNy4zODAJMTA0OTgwMAkwLjAwMAkxMTYuODgwCTExOC4yNTAKKzc1 CTgwOAkxMTcuNzUwCTE3MDgzMDAJMC4wMDAJMTE3LjM3NQkxMTguNzUwCis3NQk4MDkJMTE2Ljc1 MAkxMTA1NjAwCTAuMDAwCTExNi4wMDAJMTE3LjYzMAorNzUJODEwCTExNi4yNTAJMTE0MTIwMAkw LjAwMAkxMTUuODc1CTExNy4wMDAKKzc1CTgxMQkxMTYuMDAwCTExNzM0MDAJMC4wMDAJMTE1LjAw MAkxMTYuMzgwCis3NQk4MTIJMTE2LjI1MAk5NDY2MDAJMC4wMDAJMTE1LjM3NQkxMTYuMzc1Cis3 Ngk4MTMJOTguNzUwCTEyNDk3MDAJMC4wMDAJOTguMDAwCTk5LjM4MAorNzYJODE0CTk5LjUwMAkx MTI3OTAwCTAuMDAwCTk4LjUwMAk5OS43NTAKKzc2CTgxNQkxMDAuMTI1CTExMjk0MDAJMC4wMDAJ OTkuMzc1CTEwMC41MDAKKzc2CTgxNgkxMDAuMzc1CTYzODgwMAkwLjAwMAkxMDAuMjUwCTEwMC43 NTAKKzc2CTgxNwk5OS4zODAJMTI0NTQwMAkwLjAwMAk5OC4yNTAJMTAwLjc1MAorNzYJODE4CTk4 Ljg4MAkxMTU3NzAwCTAuMDAwCTk4LjUwMAk5OS4zODAKKzc2CTgxOQk5Ny43NTAJOTU2NTAwCTAu MDAwCTk3LjUwMAk5OC42MjUKKzc2CTgyMAk5Ny42MzAJMTAwMTMwMAkwLjAwMAk5Ni44ODAJOTgu MTMwCis3Ngk4MjEJOTcuMTMwCTE0MzQyMDAJMC4wMDAJOTYuODgwCTk4LjEzMAorNzYJODIyCTk5 LjI1MAkyMDI2OTAwCTAuMDAwCTk3LjM4MAk5OS41MDAKKzc3CTgyMwk5NS4zNzUJMTAwNTEwMAkw LjAwMAk5NS4xMjUJOTUuNzUwCis3Nwk4MjQJOTQuNTAwCTY4MjIwMAkwLjAwMAk5NC4yNTAJOTUu NTAwCis3Nwk4MjUJOTQuNzUwCTExNjU3MDAJMC4wMDAJOTQuNTAwCTk1LjM3NQorNzcJODI2CTk0 LjEzMAkxMTkyMzAwCTAuMDAwCTk0LjAwMAk5NS4xMzAKKzc3CTgyNwk5NC4xMzAJMTYzNzEwMAkw LjAwMAk5NC4wMDAJOTQuNjMwCis3Nwk4MjgJOTguMDAwCTE3NjA0MDAJMC4wMDAJOTQuNTAwCTk4 LjEzMAorNzcJODI5CTk4Ljg3NQkyMzY2MDAwCTAuMDAwCTk4LjM3NQk5OS41MDAKKzc3CTgzMAkx MDAuMDAwCTI0MTg3MDAJMC4wMDAJOTguODgwCTEwMC4zODAKKzc3CTgzMQk5OS43NTAJMTg5MDUw MAkwLjAwMAk5OS41MDAJMTAxLjYzMAorNzgJODMyCTEwNi42MjUJMTA1MDQwMAkwLjAwMAkxMDYu MDAwCTEwNi43NTAKKzc4CTgzMwkxMDYuNTAwCTE3MTYyMDAJMC4wMDAJMTA1Ljg4MAkxMDcuNzUw Cis3OAk4MzQJMTA2LjEzMAk4Njg0MDAJMC4wMDAJMTA1Ljg4MAkxMDYuODgwCis3OAk4MzUJMTA1 Ljg3NQk3NTIzMDAJMC4wMDAJMTA1LjI1MAkxMDYuMzc1Cis3OAk4MzYJMTA1LjUwMAk3ODI4MDAJ MC4wMDAJMTA1LjI1MAkxMDUuODgwCis3OAk4MzcJMTA1Ljg3NQk5MzQ4MDAJMC4wMDAJMTA1LjEy NQkxMDYuMzc1Cis3OAk4MzgJMTA2LjM3NQk2NDUyMDAJMC4wMDAJMTA1Ljg3NQkxMDYuNTAwCis3 OAk4MzkJMTA3LjEyNQk5MjE2MDAJMC4wMDAJMTA3LjAwMAkxMDguMDAwCis3OAk4NDAJMTEwLjg4 MAk0MTIwNzAwCTAuMDAwCTExMC4xMzAJMTExLjI1MAorNzgJODQxCTExMS4xMjUJMTkxNjkwMAkw LjAwMAkxMDkuODc1CTExMS4yNTAKKzc4CTg0MgkxMDkuODc1CTE1MzEwMDAJMC4wMDAJMTA5LjUw MAkxMTAuODc1Cis3OQk4NDMJMTAyLjM4MAkxMzQ3MDAwCTAuMDAwCTEwMS41MDAJMTAzLjUwMAor NzkJODQ0CTEwNS41MDAJMTYzNDcwMAkwLjAwMAkxMDEuODgwCTEwNS41MDAKKzc5CTg0NQkxMDUu ODgwCTE2MDk0MDAJMC4wMDAJMTA1LjUwMAkxMDcuNjMwCis3OQk4NDYJMTA3LjUwMAkxNDM4MjAw CTAuMDAwCTEwNS44ODAJMTA3Ljc1MAorNzkJODQ3CTEwNy44ODAJMTE5MjkwMAkwLjAwMAkxMDcu MTMwCTEwOC4zODAKKzc5CTg0OAkxMDUuMDAwCTEwNzcwMDAJMC4wMDAJMTA0Ljc1MAkxMDcuNzUw Cis4MAk4NDkJMTA3LjM3NQkxMTAxNzAwCTAuMDAwCTEwNy4xMjUJMTA5LjAwMAorODAJODUwCTEw Ny44ODAJMTE2MjAwMAkwLjAwMAkxMDYuMzgwCTEwOC4yNTAKKzgwCTg1MQkxMDguMjUwCTE1NzAw MDAJMC4wMDAJMTA2LjAwMAkxMDkuMDAwCis4MAk4NTIJMTA5LjUwMAk5MDEzMDAJMC4wMDAJMTA4 LjYyNQkxMDkuNTAwCis4MAk4NTMJMTA1LjM3NQkxNDE4NjAwCTAuMDAwCTEwNS4zNzUJMTA4LjYy NQorODAJODU0CTEwMy41MDAJMjI1ODYwMAkwLjAwMAkxMDIuODc1CTEwNi42MjUKKzgwCTg1NQkx MDEuMDAwCTMxMTM4MDAJMC4wMDAJOTkuNzUwCTEwMy44ODAKKzgwCTg1NgkxMDAuMjUwCTIzMDgx MDAJMC4wMDAJOTkuNTAwCTEwMi4wMDAKKzgwCTg1Nwk5OS4yNTAJMzEyMTQwMAkwLjAwMAk5Ni4y NTAJMTAwLjg3NQorODAJODU4CTk5LjM4MAkxNjkwMjAwCTAuMDAwCTk4LjI1MAkxMDAuMzgwCis4 MAk4NTkJMTAwLjc1MAkxMzMwMzAwCTAuMDAwCTk5LjM4MAkxMDEuNjMwCis4MAk4NjAJMTA1LjM3 NQkxODY2NTAwCTAuMDAwCTEwMS43NTAJMTA1LjM3NQorODAJODYxCTEwNy42MjUJMjY1ODYwMAkw LjAwMAkxMDQuNjI1CTEwOS4wMDAKKzgwCTg2MgkxMDcuNzUwCTE5MTgzMDAJMC4wMDAJMTA2LjUw MAkxMDguNzUwCis4MAk4NjMJMTA2Ljc1MAkxMjcwNzAwCTAuMDAwCTEwNi42MjUJMTA4LjI1MAor ODEJODY0CTExMS41MDAJMzM4OTgwMAkwLjAwMAkxMTEuMjUwCTExNi4wMDAKKzgxCTg2NQkxMTIu NTAwCTE5MDk0MDAJMC4wMDAJMTEwLjc1MAkxMTIuODc1Cis4MQk4NjYJMTEzLjM4MAkxMTczODAw CTAuMDAwCTExMi4xMzAJMTEzLjc1MAorODEJODY3CTExMi44NzUJOTk3OTAwCTAuMDAwCTExMi4z NzUJMTEzLjEyNQorODEJODY4CTExNC4zNzUJMTQ3MTkwMAkwLjAwMAkxMTIuNjI1CTExNC41MDAK KzgxCTg2OQkxMTIuODgwCTEwOTMxMDAJMC4wMDAJMTEyLjg4MAkxMTQuNjMwCis4MQk4NzAJMTEx LjI1MAkxNDM1MjAwCTAuMDAwCTExMS4wMDAJMTEyLjUwMAorODEJODcxCTExMS41MDAJOTU0OTAw CTAuMDAwCTExMC42MjUJMTExLjc1MAorODEJODcyCTExMy41MDAJMTYxNzEwMAkwLjAwMAkxMTEu NTAwCTExMy41MDAKKzgxCTg3MwkxMTIuNzUwCTI0NjM5MDAJMC4wMDAJMTEyLjEzMAkxMTQuMDAw Cis4MQk4NzQJMTEzLjc1MAkxODk2MDAwCTAuMDAwCTExMi4yNTAJMTE0LjYzMAorODEJODc1CTEx My44NzUJMjA4NDYwMAkwLjAwMAkxMTMuMzc1CTExNC4zNzUKKzgxCTg3NgkxMTMuODgwCTM0MTMw MAkwLjAwMAkxMTMuNzUwCTExNC4yNTAKKzgxCTg3NwkxMTMuNTAwCTM5NjgwMAkwLjAwMAkxMTMu NTAwCTExNC4yNTAKKzgxCTg3OAkxMTMuNjMwCTcxNDEwMAkwLjAwMAkxMTMuMDAwCTExMy44ODAK KzgxCTg3OQkxMTMuMzc1CTcyODIwMAkwLjAwMAkxMTMuMjUwCTExMy44NzUKKzgxCTg4MAkxMTMu MDAwCTQ2MTMwMAkwLjAwMAkxMTIuODgwCTExMy41MDAKKzgxCTg4MQkxMTIuMTI1CTEwMzc3MDAJ MC4wMDAJMTEyLjEyNQkxMTMuNzUwCis4MQk4ODIJMTEyLjUwMAkxMzA3NDAwCTAuMDAwCTExMi4y NTAJMTEzLjg4MAorODEJODgzCTExMi4xMzAJMTA4NTEwMAkwLjAwMAkxMTEuODgwCTExMy4wMDAK KzgxCTg4NAkxMTAuMjUwCTExODk0MDAJMC4wMDAJMTEwLjAwMAkxMTEuODc1Cis4MQk4ODUJMTA5 LjAwMAkxNzE1NTAwCTAuMDAwCTEwOC43NTAJMTEwLjM3NQorODEJODg2CTEwNi44ODAJMjA3ODAw MAkwLjAwMAkxMDYuNzUwCTExMC43NTAKKzgxCTg4NwkxMDguMzgwCTk2MjAwMAkwLjAwMAkxMDcu MjUwCTEwOC4zODAKKzgxCTg4OAkxMDguMTMwCTYwODcwMAkwLjAwMAkxMDcuNzUwCTEwOC4yNTAK KzgxCTg4OQkxMDYuNzUwCTE3NDY1MDAJMC4wMDAJMTA1LjUwMAkxMDcuMTMwCis4MQk4OTAJMTA3 LjUwMAkxMTY4MTAwCTAuMDAwCTEwNi43NTAJMTA3Ljc1MAorODEJODkxCTEwOS4xMzAJMTU4MjAw MAkwLjAwMAkxMDYuNjMwCTEwOS4yNTAKKzgxCTg5MgkxMTUuNzUwCTQzMzA0MDAJMC4wMDAJMTE0 LjI1MAkxMTYuMTMwCis4MQk4OTMJMTE3LjYyNQk0NTkyNTAwCTAuMDAwCTExNC44NzUJMTE4LjI1 MAorODIJODk0CTExOC4wMDAJMTk2MzcwMAkwLjAwMAkxMTcuNzUwCTExOS42MjUKKzgyCTg5NQkx MTkuMjUwCTIyMTEwMDAJMC4wMDAJMTE3Ljg3NQkxMjAuMTI1Cis4Mgk4OTYJMTIxLjAwMAkyODQx MjAwCTAuMDAwCTExOS44ODAJMTIxLjYzMAorODIJODk3CTEyMi42MjUJMjQ0MTEwMAkwLjAwMAkx MjAuNTAwCTEyMi42MjUKKzgyCTg5OAkxMjQuMjUwCTI0Nzg0MDAJMC4wMDAJMTIyLjM4MAkxMjUu MDAwCis4Mgk4OTkJMTI0LjUwMAkxOTQ5MjAwCTAuMDAwCTEyMy4wMDAJMTI1LjM4MAorODIJOTAw CTEyNy4wMDAJMjUyNDMwMAkwLjAwMAkxMjQuNjMwCTEyNy4wMDAKKzgyCTkwMQkxMjYuNzUwCTE3 MTgzMDAJMC4wMDAJMTI2LjI1MAkxMjcuMTMwCis4Mgk5MDIJMTI2Ljg4MAkxOTE5MTAwCTAuMDAw CTEyNS42MzAJMTI3LjYzMAorODMJOTAzCTEyOC41MDAJMjUzMjAwMAkwLjAwMAkxMjguMzgwCTEz MS4wMDAKKzgzCTkwNAkxMjkuNTAwCTE3NTE3MDAJMC4wMDAJMTI4LjI1MAkxMjkuODc1Cis4Mwk5 MDUJMTMyLjM3NQkxODY1MzAwCTAuMDAwCTEyOS42MjUJMTMyLjUwMAorODMJOTA2CTEzMi43NTAJ MjM3MjQwMAkwLjAwMAkxMzEuNTAwCTEzMy44NzUKKzgzCTkwNwkxMzQuNjMwCTE5MjM4MDAJMC4w MDAJMTMyLjI1MAkxMzUuMDAwCis4Mwk5MDgJMTM1LjAwMAkyNDg1NDAwCTAuMDAwCTEzMy44ODAJ MTM2LjI1MAorODMJOTA5CTEzNy4zNzUJMjczODkwMAkwLjAwMAkxMzUuMzc1CTEzNy43NTAKKzgz CTkxMAkxMzkuNTAwCTIyNzgxMDAJMC4wMDAJMTM3LjAwMAkxMzkuNzUwCis4Mwk5MTEJMTM3Ljg4 MAkxODU0MjAwCTAuMDAwCTEzNy44ODAJMTM4Ljc1MAorODQJOTEyCTExMC42MzAJMjIxNDcwMAkw LjAwMAkxMTAuMTMwCTExMS44ODAKKzg0CTkxMwkxMDguNTAwCTM1NTU1MDAJMC4wMDAJMTA4LjEz MAkxMTEuMDAwCis4NAk5MTQJMTA2Ljg3NQkzMDI2ODAwCTAuMDAwCTEwNS42MjUJMTA4LjM3NQor ODQJOTE1CTEwOS4yNTAJMjA4NjcwMAkwLjAwMAkxMDYuNzUwCTEwOS4yNTAKKzg0CTkxNgkxMDku ODgwCTIwODkwMDAJMC4wMDAJMTA5LjI1MAkxMTAuNzUwCis4NAk5MTcJMTA5Ljc1MAkxNDYzODAw CTAuMDAwCTEwOS4zNzUJMTEwLjc1MAorODQJOTE4CTEwOS41MDAJMjEwOTMwMAkwLjAwMAkxMDku MDAwCTExMC4yNTAKKzg0CTkxOQkxMDguNTAwCTE1NzA0MDAJMC4wMDAJMTA4LjEyNQkxMDkuMzc1 Cis4NQk5MjAJOTguMDAwCTE0Mzg4MDAJMC4wMDAJOTcuNjMwCTk5LjM4MAorODUJOTIxCTk3LjI1 MAkxOTA5NTAwCTAuMDAwCTk2Ljc1MAk5OC4yNTAKKzg1CTkyMgk5OS43NTAJMTQxNzIwMAkwLjAw MAk5Ny4wMDAJOTkuODc1Cis4NQk5MjMJOTkuODgwCTg5MzYwMAkwLjAwMAk5OS41MDAJMTAwLjUw MAorODUJOTI0CTEwMS4yNTAJNzkxMDAwCTAuMDAwCTk5LjEyNQkxMDEuNjI1Cis4NQk5MjUJMTA0 LjI1MAkzMDMzNjAwCTAuMDAwCTk5Ljc1MAkxMDQuNzUwCis4NQk5MjYJMTAxLjYyNQkyMDI1OTAw CTAuMDAwCTEwMS4zNzUJMTAzLjc1MAorODUJOTI3CTk5Ljg3NQkxNjMxOTAwCTAuMDAwCTk5LjM3 NQkxMDEuMjUwCis4NQk5MjgJMTAwLjM4MAkxMzE1NzAwCTAuMDAwCTk5LjYzMAkxMDAuMzgwCis4 Ngk5MjkJOTQuNjI1CTE5NzMwMDAJOTIuMDAwCTkxLjg3NQk5NC43NTAKKzg2CTkzMAk5Mi4zODAJ MjUxNTkwMAk5NC4wMDAJOTIuMjUwCTk1LjAwMAorODYJOTMxCTkxLjI1MAkyMDQwMTAwCTkyLjYy NQk5MS4yNTAJOTQuMjUwCis4Ngk5MzIJOTAuODc1CTE2MTE1MDAJOTEuMzc1CTkwLjYyNQk5Mi41 MDAKKzg2CTkzMwk5MC4yNTAJMTMzMzMwMAk5MC43NTAJODkuNzUwCTkwLjg3NQorODYJOTM0CTky LjM3NQkxMzM4NDAwCTkwLjM3NQk5MC4yNTAJOTIuNTAwCis4Ngk5MzUJOTUuMzgwCTMxMDM5MDAJ OTQuMDAwCTkzLjUwMAk5NS43NTAKKzg2CTkzNgk5NS41MDAJMjI1MzIwMAk5NS4xMjUJOTUuMDAw CTk3LjEyNQorODYJOTM3CTk2LjM3NQkzNTgyMDAwCTk1LjAwMAk5Mi42MjUJOTguMTI1Cis4Ngk5 MzgJOTUuMjUwCTEyMDk1MDAJOTYuMjUwCTk1LjI1MAk5Ni4zNzUKKzg2CTkzOQk5Mi44ODAJMTQy NjQwMAk5NS4yNTAJOTIuODgwCTk1LjUwMAorODYJOTQwCTk1LjYzMAkxMjczNDAwCTkyLjg4MAk5 Mi44ODAJOTUuNjMwCis4Nwk5NDEJOTIuMjUwCTE1MDI2MDAJOTEuMTI1CTkwLjAwMAk5Mi4yNTAK Kzg3CTk0Mgk5MS4yNTAJMTYzMjUwMAk5MS43NTAJOTEuMDAwCTkyLjEzMAorODcJOTQzCTg5Ljg4 MAkxNDAxNzAwCTkwLjM4MAk4OS42MzAJOTAuODgwCis4Nwk5NDQJODkuMjUwCTE3MjQyMDAJOTAu MDAwCTg4LjYyNQk5MC4zNzUKKzg3CTk0NQk4OS43NTAJOTQ1ODAwCTg5LjYyNQk4OS4xMjUJODku ODc1Cis4Nwk5NDYJOTAuMjUwCTExMzA3MDAJODkuNzUwCTg5Ljc1MAk5MC44NzUKKzg3CTk0Nwk5 Mi4xMjUJMTU4MTUwMAk5MC41MDAJODkuODc1CTkyLjM3NQorODcJOTQ4CTkwLjc1MAkxOTU0MDAw CTkyLjc1MAk5MC4xMzAJOTMuMjUwCis4Nwk5NDkJODkuNzUwCTEyOTUxMDAJOTAuNTAwCTg5LjUw MAk5MS4xMzAKKzg3CTk1MAk4OS42MjUJMTMxNDUwMAk5MC4wMDAJODkuMTI1CTkxLjEyNQorODcJ OTUxCTg5LjYzMAkxMTQ4NDAwCTkwLjAwMAk4OS4zODAJOTAuNzUwCis4Nwk5NTIJODkuNzUwCTEz NjMyMDAJODkuNzUwCTg5LjEyNQk5MC42MjUKKzg3CTk1Mwk4OS44NzUJMTQ0NjEwMAk4OS43NTAJ ODkuMjUwCTkwLjM3NQorODcJOTU0CTg5LjM4MAkxMDU2NTAwCTg5Ljg4MAk4OC43NTAJOTAuMjUw Cis4OAk5NTUJODIuMzgwCTE5MjY0MDAJODMuMzgwCTgyLjI1MAk4NC44ODAKKzg4CTk1Ngk4NC44 NzUJMzAyMDEwMAk4Mi42MjUJODIuNjI1CTg1LjAwMAorODgJOTU3CTg1LjEyNQkyMjc1NjAwCTg1 LjM3NQk4NC42MjUJODUuODc1Cis4OAk5NTgJODYuMDAwCTIwNTI5MDAJODUuNjMwCTg0LjUwMAk4 Ni4xMzAKKzg4CTk1OQk4Ny41MDAJMTcxMjMwMAk4Ni4xMzAJODUuODgwCTg3LjUwMAorODgJOTYw CTg4LjI1MAkzMzE2NjAwCTg5LjUwMAk4OC4xMjUJODkuNzUwCis4OAk5NjEJODguNTAwCTIyMTU2 MDAJODguNzUwCTg3LjYyNQk4OC44NzUKKzg4CTk2Mgk4OC42MjUJMjA2MzEwMAk4OC41MDAJODcu NTAwCTg4LjYyNQorODgJOTYzCTg5LjUwMAkxNzkyODAwCTg4LjUwMAk4OC4yNTAJODkuNzUwCis4 OAk5NjQJOTAuMDAwCTIxMTcyMDAJODkuNjMwCTg5LjUwMAk5MC4yNTAKKzg4CTk2NQk5MC4xMjUJ MTMyNDkwMAk4OS44NzUJODkuNjI1CTkwLjEyNQorODgJOTY2CTg5LjI1MAkxNDc1NDAwCTkwLjAw MAk4OS4wMDAJOTAuNjMwCis4OQk5NjcJODkuMjUwCTE0NzU0MDAJOTAuMDAwCTg5LjAwMAk5MC42 MzAKKzg5CTk2OAk4OC4xMzAJOTkzMTAwCTg5LjEzMAk4OC4xMzAJODkuMjUwCis4OQk5NjkJODgu MTI1CTEwMDA5MDAJODcuODc1CTg3Ljc1MAk4OC43NTAKKzg5CTk3MAk4OC41MDAJMTEwODkwMAk4 OC4xMzAJODcuMzgwCTg4LjUwMAorODkJOTcxCTg4LjEzMAkxMjY4NjAwCTg4Ljg4MAk4Ny43NTAJ ODguODgwCis4OQk5NzIJOTAuNzUwCTE2ODE5MDAJODguNTAwCTg4LjI1MAk5MC43NTAKKzg5CTk3 Mwk5MC42MjUJMjA3NDQwMAk5MS4yNTAJOTAuMzc1CTkyLjEyNQorODkJOTc0CTkyLjUwMAkyMzQx MjAwCTkyLjUwMAk5Mi4xMjUJOTMuMDAwCis4OQk5NzUJOTMuODc1CTIwNDQ5MDAJOTIuNTAwCTky LjM3NQk5NC4wMDAKKzkwCTk3Ngk2Mi44ODAJMjU0MTgwMAk2Mi4zODAJNjIuMzgwCTYzLjM4MAor OTAJOTc3CTU2LjEzMAkxMjE5MzUwMAkwLjAwMAk1Ni4wMDAJNTkuODgwCis5MAk5NzgJNTEuODc1 CTEzNDIxMjAwCTUzLjYyNQk1MC43NTAJNTQuODc1Cis5MAk5NzkJNTMuMDAwCTgwMjU0MDAJMC4w MDAJNTEuMjUwCTUzLjM4MAorOTAJOTgwCTUxLjM3NQk3NjU4MDAwCTUzLjEyNQk1MC4yNTAJNTMu MjUwCis5MAk5ODEJNDguODc1CTczODQ2MDAJNTEuMjUwCTQ4Ljc1MAk1MS42MjUKKzkwCTk4Mgk1 MS43NTAJNjExNTcwMAk1MC4wMDAJNDkuMDAwCTUyLjAwMAorOTAJOTgzCTUxLjI1MAk0MTg2MjAw CTUxLjYyNQk1MS4wMDAJNTIuNjI1Cis5MQk5ODQJNDYuMzgwCTM2Mzg5MDAJNDcuMDAwCTQ1Ljg4 MAk0Ny4wMDAKKzkxCTk4NQk0OC42MjUJMzQyMDUwMAk0Ni41MDAJNDYuNTAwCTQ4Ljc1MAorOTEJ OTg2CTQ4Ljg3NQkzMDU0NTAwCTQ4Ljc1MAk0Ny41MDAJNDkuMjUwCis5MQk5ODcJNDkuMDAwCTc4 MDI0MDAJNTIuODc1CTQ4Ljc1MAk1My4yNTAKKzkxCTk4OAk0OS42MjUJMzMwNzUwMAk0OS4xMjUJ NDguMjUwCTUwLjAwMAorOTEJOTg5CTUwLjI1MAkzMDk1NzAwCTUwLjAwMAk0OS43NTAJNTAuODc1 Cis5MQk5OTAJNTEuNTAwCTI5ODE1MDAJNTEuMDAwCTUwLjg3NQk1MS42MjUKKzkxCTk5MQk1Mi42 MjUJMzAzOTUwMAk1Mi4wMDAJNTIuMDAwCTUyLjYyNQorOTEJOTkyCTUyLjEyNQkyNjM1NDAwCTUy LjI1MAk1Mi4wMDAJNTMuMDAwCis5Mgk5OTMJNDIuMjUwCTI0OTQyMDAJNDMuNjI1CTQyLjAwMAk0 My42MjUKKzkyCTk5NAk0Mi4zNzUJMzkyMjMwMAk0MS44NzUJNDEuMTI1CTQyLjM3NQorOTIJOTk1 CTQ1LjYzMAk2MjYwMzAwCTQ0Ljg4MAk0NC41MDAJNDUuODgwCis5Mgk5OTYJNDQuMDAwCTQyMTY3 MDAJNDYuMDAwCTQzLjg3NQk0Ni4zNzUKKzkzCTk5Nwk1MS44NzUJMjMzMTcwMAk1Mi4yNTAJNTEu NTAwCTUyLjYyNQorOTMJOTk4CTUyLjAwMAkyNTk1MzAwCTUxLjg3NQk1MS42MjUJNTIuNTAwCis5 Mwk5OTkJNTMuMTI1CTIwNjcyMDAJNTIuMzc1CTUxLjg3NQk1My4yNTAKKzkzCTEwMDAJNTUuMTI1 CTQxODQwMDAJNTQuMDAwCTUzLjc1MAk1NS4yNTAKKzkzCTEwMDEJNTUuNzUwCTEyMTEwMDAJNTUu NTAwCTU1LjEyNQk1Ni4wMDAKKzkzCTEwMDIJNTQuMzgwCTI0ODc5MDAJNTYuMDAwCTU0LjM4MAk1 Ni4xMzAKKzkzCTEwMDMJNTMuODc1CTE5NzY4MDAJNTQuNTAwCTUzLjc1MAk1NS4xMjUKKzkzCTEw MDQJNTMuMTMwCTIzODUzMDAJNTQuNzUwCTUzLjEzMAk1NC43NTAKKzkzCTEwMDUJNTMuNzUwCTE4 NjU4MDAJNTMuMjUwCTUzLjI1MAk1NC4xMjUKKzk0CTEwMDYJNTkuMDAwCTE4NDY4MDAJNTguMTMw CTU4LjAwMAk1OS4xMzAKKzk0CTEwMDcJNTkuNTAwCTI1NzAwMDAJNTkuMDAwCTU4LjUwMAk1OS44 NzUKKzk0CTEwMDgJNTguNTAwCTIzNzk4MDAJNjAuMDAwCTU4LjUwMAk2MC4wMDAKKzk0CTEwMDkJ NTguODc1CTE0NTg2MDAJNTguNTAwCTU4LjAwMAk1OS4zNzUKKzk0CTEwMTAJNTkuMjUwCTE3MzQ5 MDAJNTguODc1CTU4LjUwMAk1OS41MDAKKzk0CTEwMTEJNTguNjMwCTE2OTA2MDAJNTkuMTMwCTU4 LjUwMAk1OS4zODAKKzk0CTEwMTIJNTguMTMwCTE1MDMxMDAJNTguNzUwCTU4LjEzMAk1OC44ODAK Kzk0CTEwMTMJNTguNzUwCTE4MDQyMDAJNTguMjUwCTU4LjI1MAk1OS4wMDAKKzk0CTEwMTQJNTgu NjMwCTE1ODYwMDAJNTguNzUwCTU4LjM4MAk1OS41MDAKKzk0CTEwMTUJNTcuNTAwCTE1MjgxMDAJ NTguNTAwCTU3LjEzMAk1OC41MDAKKzk0CTEwMTYJNTcuMTI1CTIyNTU5MDAJNTcuMzc1CTU2LjM3 NQk1Ny4zNzUKKzk0CTEwMTcJNTYuMDAwCTE5NTk1MDAJNTYuNzUwCTU1Ljc1MAk1Ny4wMDAKKzk0 CTEwMTgJNTUuMjUwCTIyNzg1MDAJNTUuODc1CTU1LjEyNQk1NS44NzUKKzk0CTEwMTkJNTUuMjUw CTMxNzY2MDAJNTUuMTI1CTU0Ljc1MAk1NS42MjUKKzk0CTEwMjAJNTguNjMwCTQyMTkzMDAJNTUu NzUwCTU1Ljc1MAk1OC43NTAKKzk0CTEwMjEJNTguMjUwCTEwMTU0OTAwCTU4Ljg4MAk1NS4zODAJ NTkuMzgwCis5NQkxMDIyCTUyLjg4MAkxNTY1NjAwCTUzLjM4MAk1Mi43NTAJNTMuNjMwCis5NQkx MDIzCTUzLjI1MAkxOTg1NTAwCTUyLjUwMAk1Mi4wMDAJNTMuMzgwCis5NQkxMDI0CTU0LjAwMAkx ODczNzAwCTUzLjM3NQk1My4zNzUJNTQuNjI1Cis5NQkxMDI1CTU0LjUwMAkxNzI3NDAwCTU0LjM4 MAk1NC4wMDAJNTQuNjMwCis5NQkxMDI2CTU0LjYyNQkxNDk1NzAwCTU1LjI1MAk1NC41MDAJNTUu MjUwCis5NQkxMDI3CTUyLjc1MAkyMjkwMjAwCTU0Ljg4MAk1Mi41MDAJNTUuMDAwCis5NgkxMDI4 CTUzLjM4MAkyMDk3NTAwCTUzLjUwMAk1MS4zODAJNTMuNzUwCis5NgkxMDI5CTUyLjI1MAkyMjA3 NzAwCTUzLjI1MAk1MS43NTAJNTMuNTAwCis5NgkxMDMwCTU4LjM4MAk4NzU4MTAwCTU1LjAwMAk1 NC4wMDAJNTguNjMwCis5NgkxMDMxCTU4Ljc1MAk1NjYwNTAwCTU4LjM3NQk1OC4wMDAJNTkuNTAw Cis5NwkxMDMyCTU4LjUwMAkyMjE3MjAwCTU4Ljg4MAk1OC41MDAJNTkuMjUwCis5NwkxMDMzCTU3 LjEyNQkyMjk3NTAwCTU3Ljg3NQk1Ni43NTAJNTguMjUwCis5NwkxMDM0CTU3LjUwMAkxOTA4NjAw CTU3LjM3NQk1Ni44NzUJNTcuODc1Cis5NwkxMDM1CTU4LjAwMAkxNjA4NTAwCTU3LjUwMAk1Ni44 NzUJNTguMzc1Cis5NwkxMDM2CTU4LjM4MAkxMzc2NjAwCTU4LjEzMAk1Ny44ODAJNTguNjMwCis5 NwkxMDM3CTU3Ljc1MAkxNTAwMzAwCTU4LjI1MAk1Ny41MDAJNTguMjUwCis5OAkxMDM4CTU1LjYy NQkxODE3MjAwCTU2Ljc1MAk1NS42MjUJNTYuODc1Cis5OAkxMDM5CTU1Ljg4MAkzMTg5MzAwCTU1 Ljc1MAk1NC41MDAJNTYuMjUwCis5OAkxMDQwCTYyLjM4MAk4ODA3NTAwCTU5LjAwMAk1OC4wMDAJ NjIuNjMwCis5OAkxMDQxCTYxLjM4MAkzNzE0MTAwCTYyLjI1MAk2MS4xMzAJNjIuMzgwCis5OQkx MDQyCTcyLjI1MAkyMzQxNjAwCTczLjYyNQk3Mi4yNTAJNzQuMTI1Cis5OQkxMDQzCTczLjEyNQky MDQwODAwCTcyLjUwMAk3MS44NzUJNzMuMTI1Cis5OQkxMDQ0CTczLjI1MAkxNTM2NDAwCTcyLjg4 MAk3Mi43NTAJNzMuNzUwCis5OQkxMDQ1CTc0LjM3NQkyNDYzNDAwCTczLjUwMAk3My4zNzUJNzQu NTAwCis5OQkxMDQ2CTc1LjM4MAkzOTMzOTAwCTc0LjAwMAk3My43NTAJNzUuNzUwCis5OQkxMDQ3 CTc1LjAwMAk1MjE2OTAwCTc1LjUwMAk3My44NzUJNzYuMTI1Cis5OQkxMDQ4CTc0LjYyNQkzMzcy NTAwCTc0LjYyNQk3NC4xMjUJNzUuMzc1Cis5OQkxMDQ5CTczLjAwMAkyNjE1MjAwCTc0LjYyNQk3 Mi44NzUJNzQuNjI1Cis5OQkxMDUwCTczLjg4MAkyODI5NjAwCTcyLjYzMAk3Mi42MzAJNzQuMzgw CisxMDAJMTA1MQk3MS43NTAJMTQxODUwMAk3Mi43NTAJNzEuNTAwCTczLjAwMAorMTAwCTEwNTIJ NzIuMTMwCTI3NDI0MDAJNzIuMDAwCTcwLjI1MAk3Mi44ODAKKzEwMAkxMDUzCTczLjYyNQkzMjky MDAwCTcyLjM3NQk3Mi4yNTAJNzMuODc1CisxMDAJMTA1NAk3NC4zODAJMTQ1ODYwMAk3My42MzAJ NzMuNTAwCTc0LjM4MAorMTAwCTEwNTUJNzQuNjI1CTI1NjI4MDAJNzQuODc1CTc0LjUwMAk3NS4y NTAKKzEwMAkxMDU2CTc0LjM4MAkxMzUyMTAwCTc0LjM4MAk3NC4xMzAJNzQuODgwCisxMDAJMTA1 Nwk3NC4yNTAJMTQ1MDcwMAk3NC4yNTAJNzMuODc1CTc0LjM3NQorMTAwCTEwNTgJNzQuMjUwCTE0 OTY0MDAJNzQuMTI1CTc0LjEyNQk3NC44NzUKKzEwMQkxMDU5CTg3LjEzMAkyNTc2NDAwCTg3Ljg4 MAk4Ni4wMDAJODguMjUwCisxMDEJMTA2MAk4OS4wMDAJNTk3NzcwMAk5MC41MDAJODguNjMwCTkw LjUwMAorMTAxCTEwNjEJOTEuNjI1CTU4ODY0MDAJODkuMzc1CTg5LjEyNQk5Mi4wMDAKKzEwMQkx MDYyCTkzLjUwMAk0MzE4OTAwCTkxLjUwMAk5MS4wMDAJOTMuODgwCisxMDEJMTA2Mwk5My42MjUJ MzM0NjMwMAk5My4xMjUJOTIuODc1CTkzLjg3NQorMTAxCTEwNjQJOTUuMjUwCTM2OTQ1MDAJOTMu MTI1CTkyLjg3NQk5NS42MjUKKzEwMgkxMDY1CTg5LjM3NQkzMzk0MDAwCTkwLjEyNQk4OC4zNzUJ OTAuNzUwCisxMDIJMTA2Ngk4OS4xMzAJMzMwODQwMAk4OS42MzAJODguNjMwCTkwLjI1MAorMTAy CTEwNjcJOTAuMjUwCTI5OTU3MDAJOTAuNTAwCTg5Ljc1MAk5MC43NTAKKzEwMgkxMDY4CTkxLjc1 MAkyOTA1MjAwCTkxLjM4MAk5MC44ODAJOTIuMjUwCisxMDIJMTA2OQk5My4wMDAJMjU2MjUwMAk5 MS44NzUJOTEuODc1CTkzLjM3NQorMTAyCTEwNzAJOTMuMDAwCTIxOTI5MDAJOTMuNjMwCTkzLjAw MAk5NC4wMDAKKzEwMwkxMDcxCTEwOS4wMDAJMzI4NTYwMAkxMDYuNTAwCTEwNS42MjUJMTA5LjUw MAorMTAzCTEwNzIJMTA4LjYyNQkxMjU3MjAwCTEwOS4xMjUJMTA4LjUwMAkxMDkuNzUwCisxMDMJ MTA3MwkxMDguODc1CTE0MzA4MDAJMTA5LjEyNQkxMDguNjI1CTEwOS4zNzUKKzEwMwkxMDc0CTEw OS42MzAJMTc5NTMwMAkxMDguODgwCTEwOC44ODAJMTEwLjAwMAorMTAzCTEwNzUJMTA5Ljg3NQkx OTY2ODAwCTExMC4wMDAJMTA5LjYyNQkxMTAuMzc1CisxMDMJMTA3NgkxMDkuMTI1CTE5NzE0MDAJ MTA5Ljg3NQkxMDguODc1CTExMC4zNzUKKzEwMwkxMDc3CTEwOS4yNTAJMjMyNzcwMAkxMDkuNTAw CTEwOC4zODAJMTA5LjYzMAorMTAzCTEwNzgJMTEwLjc1MAkxNzQ4MzAwCTEwOS4yNTAJMTA5LjI1 MAkxMTAuODc1CisxMDMJMTA3OQkxMTIuMDAwCTI3MDEwMDAJMTExLjAwMAkxMTAuMjUwCTExMi4x MjUKKzEwMwkxMDgwCTExMi4zNzUJMjk0NjgwMAkxMTIuMTI1CTExMC43NTAJMTEyLjc1MAorMTAz CTEwODEJMTEzLjYyNQkzMDI5NzAwCTExMi4zNzUJMTEyLjI1MAkxMTQuNjI1CisxMDMJMTA4Mgkx MTEuMzc1CTM2OTgxMDAJMTEzLjg3NQkxMTEuMTI1CTExNC4wMDAKKzEwMwkxMDgzCTEwNi43NTAJ NDcwMDcwMAkxMTEuMzgwCTEwNi41MDAJMTExLjM4MAorMTAzCTEwODQJMTA3LjYzMAk1NTE0MzAw CTEwNy4wMDAJMTA1LjYzMAkxMDguMjUwCisxMDMJMTA4NQkxMDYuNjI1CTMyMzkwMDAJMTA4LjEy NQkxMDYuNTAwCTEwOC41MDAKKzEwNAkxMDg2CTkxLjg4MAkzNzQ0NDAwCTg5LjEzMAk4OS4xMzAJ OTEuODgwCisxMDQJMTA4Nwk4OS4zNzUJMzYwNTgwMAk5Mi4wMDAJODkuMTI1CTkyLjAwMAorMTA0 CTEwODgJOTAuODc1CTI2NzQwMDAJODkuODc1CTg5Ljc1MAk5MS4xMjUKKzEwNAkxMDg5CTkxLjI1 MAkxODc3NDAwCTkwLjg4MAk5MC44ODAJOTEuODgwCisxMDQJMTA5MAk5MS43NTAJOTQ1NDAwCTky LjAwMAk5MS42MjUJOTIuMTI1CisxMDQJMTA5MQk5Mi4wMDAJMTU3MjAwMAk5MS43NTAJOTAuNzUw CTkyLjAwMAorMTA1CTEwOTIJODcuMjUwCTQ2MjQ2MDAJODguMTMwCTg2LjAwMAk4OC41MDAKKzEw NQkxMDkzCTg2LjM3NQkyNjY0NDAwCTg3LjI1MAk4Ni4xMjUJODcuMjUwCisxMDUJMTA5NAk4My4x MjUJMzc0MjgwMAk4Ni41MDAJODMuMTI1CTg2LjUwMAorMTA1CTEwOTUJODcuMDAwCTQ2MTMwMDAJ ODQuMTI1CTgzLjUwMAk4Ny43NTAKKzEwNQkxMDk2CTg3LjYyNQk0ODIxMTAwCTg2Ljc1MAk4NS43 NTAJODkuMjUwCisxMDUJMTA5Nwk5Ni4yNTAJOTg1NjkwMAk5MC4wMDAJODkuNjI1CTk2LjI1MAor MTA1CTEwOTgJMTAyLjAwMAkxMzE0NTkwMAk5Ni42MjUJOTYuNTAwCTEwNC4xMjUKKzEwNQkxMDk5 CTEwMi4yNTAJNTI5MzAwMAkxMDEuNTAwCTEwMS4zNzUJMTAzLjg3NQorMTA1CTExMDAJMTAzLjAw MAk0OTU5MTAwCTEwMC43NTAJMTAwLjc1MAkxMDQuNTAwCisxMDUJMTEwMQkxMDcuMDAwCTc5ODkw MDAJMTAzLjEzMAkxMDMuMTMwCTEwOS4wMDAKKzEwNQkxMTAyCTEwNC4xMjUJNDcyMTgwMAkxMDcu NjI1CTEwNC4xMjUJMTA4LjAwMAorMTA2CTExMDMJMTEzLjYyNQkzNDY3OTAwCTExNC4wMDAJMTEz LjUwMAkxMTQuODc1CisxMDYJMTEwNAkxMTQuMjUwCTMyMzc0MDAJMTEzLjg4MAkxMTMuNzUwCTEx NS4wMDAKKzEwNgkxMTA1CTExNy42MjUJNTgzNTMwMAkxMTQuMzc1CTExNC4yNTAJMTE4LjUwMAor MTA2CTExMDYJMTE4LjAwMAk0OTg1OTAwCTExOC4wMDAJMTE3LjUwMAkxMTguODgwCisxMDYJMTEw NwkxMTkuMTI1CTUzMjIyMDAJMTE2Ljc1MAkxMTYuNzUwCTEyMC44NzUKKzEwNgkxMTA4CTEyMC4y NTAJNDA5NzMwMAkxMTkuMDAwCTExOC42MzAJMTIwLjYzMAorMTA2CTExMDkJMTI0LjEyNQk1MzU1 ODAwCTEyMS43NTAJMTIxLjI1MAkxMjUuNjI1CisxMDYJMTExMAkxMjUuNjMwCTQxMjYyMDAJMTI1 LjAwMAkxMjQuMDAwCTEyNi4xMzAKKzEwNgkxMTExCTEyNC44ODAJMjg4MjUwMAkxMjMuODgwCTEy My44ODAJMTI1LjUwMAorMTA3CTExMTIJMTA4Ljc1MAk0NzIyOTAwCTExNC44NzUJMTA4LjM3NQkx MTUuMTI1CisxMDcJMTExMwkxMTAuNzUwCTQ1NTg5MDAJMTA4LjM3NQkxMDcuNjI1CTExMi4wMDAK KzEwNwkxMTE0CTExMS4yNTAJMzYxOTgwMAkxMTEuMTMwCTExMC4yNTAJMTEzLjc1MAorMTA3CTEx MTUJMTA5Ljc1MAkzMDQ2NjAwCTExMS44NzUJMTA5LjUwMAkxMTIuMzc1CisxMDcJMTExNgkxMTEu MjUwCTI5MzE2MDAJMTEwLjM4MAkxMTAuMzgwCTExMy43NTAKKzEwNwkxMTE3CTExMC4zODAJMjM3 OTUwMAkxMTIuMTMwCTExMC4wMDAJMTEyLjc1MAorMTA3CTExMTgJMTE3LjYyNQk1NDA3NzAwCTEx MS4wMDAJMTEwLjUwMAkxMTguMTI1CisxMDcJMTExOQkxMTkuNzUwCTQxNDk5MDAJMTE3LjUwMAkx MTYuMTMwCTEyMC41MDAKKzEwOAkxMTIwCTkxLjc1MAkzNjgzNjAwCTg5LjYzMAk4OS4xMzAJOTIu NjMwCisxMDgJMTEyMQkxMDMuNjMwCTkwMTQ5MDAJOTYuMDAwCTk1LjYzMAkxMDMuNzUwCisxMDgJ MTEyMgkxMDMuODc1CTM5OTA0MDAJMTAzLjEyNQkxMDEuNjI1CTEwNC4xMjUKKzEwOAkxMTIzCTEw NC43NTAJMzMzODIwMAkxMDMuNTAwCTEwMy4zODAJMTA1LjUwMAorMTA4CTExMjQJMTA3LjM4MAkz OTkyODAwCTEwNS4yNTAJMTAzLjc1MAkxMDguMDAwCisxMDgJMTEyNQkxMDcuNTAwCTM1MDUzMDAJ MTA3LjEyNQkxMDcuMDAwCTEwOC44NzUKKzEwOAkxMTI2CTEwNy4yNTAJMzEyMDYwMAkxMDguMDAw CTEwNy4yNTAJMTA5LjAwMAorMTA4CTExMjcJMTA4Ljg3NQkyMjY1ODAwCTEwOC4zNzUJMTA3Ljc1 MAkxMDkuMzc1CisxMDgJMTEyOAkxMDkuMjUwCTIxNTExMDAJMTA4LjAwMAkxMDguMDAwCTEwOS4z NzUKKzEwOQkxMTI5CTEyNC43NTAJMTMxMjIwMAkxMjQuNzUwCTEyNC4wMDAJMTI1LjUwMAorMTA5 CTExMzAJMTI0LjUwMAkxODY0NDAwCTEyNC44NzUJMTI0LjEyNQkxMjcuMTI1CisxMDkJMTEzMQkx MjMuNzUwCTI0NDY1MDAJMTI0LjAwMAkxMjMuMTMwCTEyNS4yNTAKKzEwOQkxMTMyCTEyNS44ODAJ MjAxMzIwMAkxMjQuMjUwCTEyNC4wMDAJMTI1Ljg4MAorMTA5CTExMzMJMTI1LjAwMAkxODQ1MTAw CTEyNS43NTAJMTI0LjYyNQkxMjYuMjUwCisxMDkJMTEzNAkxMjYuNjI1CTIzMDIzMDAJMTI1Ljg3 NQkxMjUuNjI1CTEyNy4xMjUKKzEwOQkxMTM1CTEyNy44NzUJMTgzNTQwMAkxMjYuODc1CTEyNi44 NzUJMTI4LjAwMAorMTA5CTExMzYJMTI4LjM4MAkzMTQ4MDAwCTEyOC4wMDAJMTI3LjYzMAkxMjku NTAwCisxMDkJMTEzNwkxMjYuMjUwCTI0MDI0MDAJMTI5LjAwMAkxMjYuMTMwCTEyOS4zODAKKzEw OQkxMTM4CTEyNy43NTAJMjI0ODUwMAkxMjUuNTAwCTEyNS41MDAJMTI4LjAwMAorMTA5CTExMzkJ MTI5Ljg3NQkyODU4MzAwCTEyOC41MDAJMTI4LjI1MAkxMzAuMTI1CisxMDkJMTE0MAkxMzAuMDAw CTE0MDA5MDAJMTI5Ljg4MAkxMjkuMTMwCTEzMC4wMDAKKzEwOQkxMTQxCTEyOS41MDAJMjg2Mzkw MAkxMzAuNzUwCTEyOC42MzAJMTMxLjI1MAorMTA5CTExNDIJMTI3LjYyNQkxODc1NzAwCTEyOS41 MDAJMTI3LjM3NQkxMjkuNTAwCisxMDkJMTE0MwkxMjUuNjI1CTIxMzU0MDAJMTI4Ljc1MAkxMjUu MjUwCTEyOS4xMjUKKzEwOQkxMTQ0CTEyOS4zNzUJMzQ3MzcwMAkxMjUuNTAwCTEyNC4wMDAJMTI5 LjUwMAorMTEwCTExNDUJMTMzLjM3NQkyODg2NDAwCTEzMC42MjUJMTMwLjI1MAkxMzMuODc1Cisx MTAJMTE0NgkxMzMuNzUwCTM0ODE2MDAJMTMzLjEyNQkxMzIuNzUwCTEzNS4xMjUKKzExMAkxMTQ3 CTEzNC4zNzUJMTU2OTQwMAkxMzMuMzc1CTEzMi44NzUJMTM0LjUwMAorMTEwCTExNDgJMTM0LjUw MAkxNDI5MjAwCTEzNC4zNzUJMTM0LjAwMAkxMzQuODc1CisxMTAJMTE0OQkxMzMuMjUwCTI3MjQx MDAJMTM1LjAwMAkxMzMuMDAwCTEzNS43NTAKKzExMAkxMTUwCTEzNC43NTAJMjM5MjMwMAkxMzMu NTAwCTEzMy4yNTAJMTM1Ljg3NQorMTEwCTExNTEJMTM2Ljg4MAkyNzc0NTAwCTEzNC42MzAJMTM0 LjYzMAkxMzcuNjMwCisxMTAJMTE1MgkxNDUuMDAwCTc4MDM4MDAJMTM3LjYzMAkxMzcuMzgwCTE0 NS41MDAKKzExMAkxMTUzCTE0Ni43NTAJNTc3NzEwMAkxNDQuNzUwCTE0My4wMDAJMTUwLjAwMAor MTExCTExNTQJMTU3LjYyNQkyODMzMDAwCTE1OC4xMjUJMTU2LjEyNQkxNTguNTAwCisxMTEJMTE1 NQkxNTguMDAwCTU1MTU0MDAJMTU3LjUwMAkxNTcuMDAwCTE2MC43NTAKKzExMQkxMTU2CTE1OC4x MjUJMjc5OTcwMAkxNTguMjUwCTE1Ny43NTAJMTYwLjI1MAorMTExCTExNTcJMTU5LjM3NQk5MzEz MDAJMTU4LjEyNQkxNTguMTI1CTE1OS42MjUKKzExMQkxMTU4CTE2My4wMDAJMzMxNjAwMAkxNTku NjMwCTE1OS42MzAJMTYzLjUwMAorMTExCTExNTkJMTYyLjYyNQk0Njc3ODAwCTE2My42MjUJMTYy LjYyNQkxNjYuMDAwCisxMTEJMTE2MAkxNjIuMDAwCTQ0Mzc0MDAJMTYyLjg3NQkxNTkuMTI1CTE2 NC4wMDAKKzExMQkxMTYxCTE1OC41MDAJMzAzNjMwMAkxNjEuMzc1CTE1OC4zNzUJMTYyLjYyNQor MTExCTExNjIJMTU1LjYyNQk2MDUxOTAwCTE1MS4wMDAJMTUxLjAwMAkxNTguMDAwCisxMTEJMTE2 MwkxNjAuMDAwCTI3Njk5MDAJMTU2LjYzMAkxNTYuMjUwCTE2MC4xMzAKKzExMgkxMTY0CTE0MS4y NTAJMzU4MzAwMAkxNDMuMTMwCTE0MC4yNTAJMTQzLjUwMAorMTEyCTExNjUJMTM3LjYyNQk2MzA4 NTAwCTE0MC43NTAJMTM3LjEyNQkxNDAuODc1CisxMTIJMTE2NgkxNDMuODc1CTQyODI3MDAJMTM3 LjYyNQkwLjAwMAkxNDQuMDAwCisxMTIJMTE2NwkxNDYuNTAwCTQxOTg0MDAJMTQ0LjM4MAkxNDQu MTMwCTE0OC4wMDAKKzExMgkxMTY4CTE0Ni44NzUJMzY3MDQwMAkxNDcuMDAwCTE0NC4wMDAJMTQ3 LjUwMAorMTEyCTExNjkJMTQzLjAwMAkxNzcyMjAwCTE0Ni44ODAJMTQzLjAwMAkxNDYuODgwCisx MTMJMTE3MAkxMzYuNTAwCTI2MzQ0MDAJMTM0LjUwMAkxMzMuMjUwCTEzNi44ODAKKzExMwkxMTcx CTEzNy44ODAJMzkzMTkwMAkxMzguNjMwCTEzNC4zODAJMTM5LjAwMAorMTEzCTExNzIJMTM3LjUw MAkxODQ1MzAwCTEzNy4zODAJMTM1Ljc1MAkxMzguMzgwCisxMTMJMTE3MwkxMzcuNzUwCTI2NTUx MDAJMTM3LjM3NQkxMzYuNzUwCTEzOS43NTAKKzExMwkxMTc0CTEzOS43NTAJMjM0MzIwMAkxMzgu MDAwCTEzNy43NTAJMTQwLjEzMAorMTEzCTExNzUJMTM3LjM4MAkyMzU2NzAwCTEzOS42MzAJMTM2 LjYzMAkxNDEuMjUwCisxMTMJMTE3NgkxNDAuMDAwCTMwMjIyMDAJMTM3LjI1MAkxMzQuNzUwCTE0 MC4xMzAKKzExMwkxMTc3CTE0Mi4zODAJMzkxNzEwMAkxNDAuMDAwCTEzOS4wMDAJMTQzLjc1MAor MTEzCTExNzgJMTUzLjYyNQkxMDY1OTEwMAkxNTAuNTAwCTE0OS41MDAJMTU3LjAwMAorMTEzCTEx NzkJMTUwLjc1MAkzMDA1MDAwCTE1Mi4yNTAJMTUwLjYyNQkxNTIuODc1CisxMTQJMTE4MAk5OC42 MjUJMjk0OTYwMAkxMDIuNDM3CTk4LjYyNQkxMDQuMTI1CisxMTQJMTE4MQk5OS4xMzAJMjA2MDAw MAkxMDAuMTMwCTk5LjAwMAkxMDAuODEwCisxMTQJMTE4MgkxMDEuNjkwCTEwNjkxMDAJOTkuMzgw CTk5LjI1MAkxMDEuNzUwCisxMTQJMTE4MwkxMDIuNzUwCTIzMDczMDAJMTAyLjg3NQkxMDIuNzUw CTEwMy42ODcKKzExNAkxMTg0CTEwMy4xMzAJMzU1ODAwMAkxMDMuNjkwCTEwMi45NDAJMTA1LjUw MAorMTE0CTExODUJMTA0LjYyNQkyNzM2NTAwCTEwNC4wMDAJMTAzLjE4NwkxMDUuMTg3CisxMTQJ MTE4NgkxMDUuNjI1CTI2MzUwMDAJMTA0LjUwMAkxMDQuMDYyCTEwNS43NTAKKzExNAkxMTg3CTEw Ni40MzcJNTAxNzAwMAkxMDUuNTYyCTEwNS4wMDAJMTA2LjgxMgorMTE0CTExODgJMTA1LjI1MAkz NTU1NjAwCTEwNS4zNzUJMTA1LjA2MgkxMDcuMTg3CisxMTQJMTE4OQkxMDQuMjUwCTQzMDgyMDAJ MTA1LjAwMAkxMDIuNjI1CTEwNS4wMDAKKzExNAkxMTkwCTEwNC4xOTAJNDA1OTQwMAkxMDMuNTAw CTEwMi45NDAJMTA1LjUwMAorMTE0CTExOTEJMTAwLjA2Mgk3MTgyODAwCTEwNC4zMTIJOTkuMzc1 CTEwNC44NzUKKzExNAkxMTkyCTEwMC4xMzAJNjQxMDcwMAk5OC4yNTAJOTcuNTAwCTEwMS4xMzAK KzExNAkxMTkzCTEwMi4xMzAJMzQxNDUwMAkxMDAuNTYwCTEwMC4zMTAJMTAyLjQ0MAorMTE0CTEx OTQJMTAyLjYyNQk0Mjc1NDAwCTEwMy41MDAJMTAxLjI1MAkxMDQuMDAwCisxMTQJMTE5NQkxMDMu NDM3CTYzMjE3MDAJMTAzLjE4NwkxMDIuMzc1CTEwNC45MzcKKzExNAkxMTk2CTEwNS4wMDAJNDE4 OTEwMAkxMDQuODc1CTEwNC41MDAJMTA1LjE4NworMTE0CTExOTcJMTA4LjM4MAk0OTcwNjAwCTEw NS4xOTAJMTA0LjY5MAkxMDguMzgwCisxMTQJMTE5OAkxMDAuMTI1CTEzOTA3ODAwCTEwMC4yNTAJ OTkuNjI1CTEwMi4wMDAKKzExNAkxMTk5CTk5LjM4MAk2NTgzNTAwCTk5LjgxMAk5OC41MDAJMTAw LjYzMAorMTE0CTEyMDAJOTkuMTg3CTM5MTE1MDAJOTkuODEyCTk4LjkzNwkxMDAuMDAwCisxMTQJ MTIwMQk5OC4xMjUJMjgwNzkwMAk5OS4yNTAJOTguMDAwCTk5LjkzNworMTE0CTEyMDIJOTYuNTAw CTcwMTk3MDAJOTYuNzUwCTk1LjYzMAk5Ny44ODAKKzExNAkxMjAzCTk3LjAwMAk1MTkyNDAwCTk3 LjEzMAk5Ni41MDAJOTguMDAwCisxMTQJMTIwNAk5OC4xODcJNDQxMzYwMAk5Ny4wMDAJOTcuMDAw CTk5LjMxMgorMTE0CTEyMDUJOTguNzUwCTI5MDAxMDAJOTguMzEyCTk4LjAwMAk5OS41NjIKKzEx NAkxMjA2CTEwMC41NjIJMzQzNzcwMAkxMDAuMDAwCTEwMC4wMDAJMTAxLjI1MAorMTE0CTEyMDcJ OTkuMzgwCTM1ODU2MDAJMTAwLjEzMAk5OC42OTAJMTAwLjI1MAorMTE1CTEyMDgJOTguMTI1CTUy MDUxMDAJOTkuMTI1CTk4LjEyNQk5OS44MTIKKzExNQkxMjA5CTk2LjEyNQk2NDY0MjAwCTk3LjEy NQk5NS44NzUJOTguMjUwCisxMTUJMTIxMAk5Ny41MDAJNDE2NzEwMAk5Ny4zODAJOTYuNjkwCTk4 LjE5MAorMTE1CTEyMTEJOTkuMTMwCTM0MDM0MDAJOTcuODgwCTk3LjQ0MAk5OS44ODAKKzExNQkx MjEyCTEwMC4yNTAJMjk1MTcwMAk5OS4xODcJOTguMTg3CTEwMC42MjUKKzExNQkxMjEzCTk5LjYz MAkyOTI1MzAwCTEwMC44ODAJOTkuMDAwCTEwMS4xMzAKKzExNQkxMjE0CTEwMS4yNTAJMzQyMDcw MAk5OS42OTAJOTkuMjUwCTEwMS4zODAKKzExNQkxMjE1CTEwMC44ODAJMzU4NTEwMAkxMDEuMzEw CTk5LjU2MAkxMDEuODEwCisxMTUJMTIxNgkxMDEuNTYwCTM1OTQ3MDAJMTAwLjYzMAkxMDAuNTYw CTEwMi4zMTAKKzExNQkxMjE3CTEwMi44NzUJMjU4NTAwMAkxMDEuNjg3CTEwMS40MzcJMTAzLjAw MAorMTE1CTEyMTgJMTAyLjA2Mgk0MTA3ODAwCTEwMy4wMDAJMTAxLjQzNwkxMDMuMjUwCisxMTYJ MTIxOQkxMDguODEyCTQyNDA3MDAJMTA5LjAwMAkxMDcuNjI1CTEwOS4xMjUKKzExNgkxMjIwCTEw Ni4xMzAJNDg4NDAwMAkxMDguNzUwCTEwNi4wMDAJMTA5LjI1MAorMTE2CTEyMjEJMTA4LjEzMAk0 Mjc2OTAwCTEwNi4yNTAJMTA2LjE5MAkxMDkuNTAwCisxMTYJMTIyMgkxMTEuNzUwCTQwMzkyMDAJ MTEwLjAwMAkxMDkuOTQwCTExMi4zMTAKKzExNgkxMjIzCTExMi4wMDAJMzAzMDAwMAkxMTEuODgw CTExMC4wNjAJMTEyLjEzMAorMTE2CTEyMjQJMTEyLjQ0MAkzMTg3ODAwCTExMi41MDAJMTEyLjAw MAkxMTQuNjkwCisxMTYJMTIyNQkxMTMuMDAwCTE2MzY0MDAJMTEyLjM4MAkxMTIuMzEwCTExMy40 NDAKKzExNgkxMjI2CTExNC4xMjUJMjE4NDYwMAkxMTQuMTI1CTExMy41NjIJMTE0LjgxMgorMTE2 CTEyMjcJMTE0LjgxMAk0MzU2MDAwCTExNC4xMzAJMTEzLjUwMAkxMTYuMzEwCisxMTYJMTIyOAkx MTYuNzUwCTMxNjY0MDAJMTE2LjAwMAkxMTUuNTAwCTExNi45MzcKKzExNgkxMjI5CTExNS4xOTAJ MzIxOTgwMAkxMTYuNTYwCTExNC41MDAJMTE2LjYzMAorMTE3CTEyMzAJMTE1LjAwMAkyMjU4MjAw CTExMy43NTAJMTEzLjYzMAkxMTUuNTYwCisxMTcJMTIzMQkxMTcuMDYyCTMxODk1MDAJMTE0Ljc1 MAkxMTQuNjI1CTExOC41MDAKKzExNwkxMjMyCTExOC41MDAJMzA3MDEwMAkxMTguMjUwCTExNy4z NzUJMTE5LjI1MAorMTE3CTEyMzMJMTE5LjM4MAkyMzM5ODAwCTExOC41MDAJMTE4LjI1MAkxMjAu MDAwCisxMTcJMTIzNAkxMTkuNjI1CTIyNjg2MDAJMTE5Ljc1MAkxMTkuMDAwCTEyMC42MjUKKzEx NwkxMjM1CTExNy4wMDAJMjU1NzgwMAkxMTkuMjUwCTExNy4wMDAJMTIwLjAwMAorMTE3CTEyMzYJ MTE4LjM4MAkyMTgwMTAwCTExNy4xMzAJMTE2LjAwMAkxMTguOTQwCisxMTcJMTIzNwkxMjAuMTg3 CTMxNjg0MDAJMTE4LjU2MgkxMTguNTAwCTEyMC4zNzUKKzExNwkxMjM4CTEyMi4wMDAJNDQ4OTIw MAkxMjEuMDAwCTEyMC4zMTIJMTIzLjAwMAorMTE3CTEyMzkJMTI4LjEzMAkxMjMwODYwMAkxMjgu MjUwCTEyNy43NTAJMTMxLjAwMAorMTE3CTEyNDAJMTI3LjQ0MAk2MDQ5OTAwCTEyNi4wMDAJMTI0 LjUwMAkxMjguNDQwCisxMTcJMTI0MQkxMjMuODgwCTQxNTMxMDAJMTI3LjE5MAkxMjMuNjkwCTEy OS4wMDAKKzExNwkxMjQyCTEyNC4yNTAJMjg3NDYwMAkxMjUuODc1CTEyMi41MDAJMTI1LjkzNwor MTE4CTEyNDMJMTIzLjUwMAk0OTk0NzAwCTEyNS43NTAJMTIzLjM3NQkxMjcuNDM3CisxMTgJMTI0 NAkxMjIuNTAwCTU1Nzk4MDAJMTIyLjEzMAkxMTguMTkwCTEyMi41MDAKKzExOAkxMjQ1CTEyNi41 NjIJNDk2NTEwMAkxMjEuMzc1CTEyMC42MjUJMTI2LjU2MgorMTE4CTEyNDYJMTI5LjEzMAk0NTU3 MTAwCTEyOC4wMDAJMTI3LjYzMAkxMjkuOTQwCisxMTgJMTI0NwkxMzAuMDAwCTMyNDY4MDAJMTI5 LjAwMAkxMjguNTAwCTEzMC42ODcKKzExOAkxMjQ4CTEzMC41MDAJMzMxOTQwMAkxMzAuMDAwCTEy OC4xOTAJMTMwLjk0MAorMTE5CTEyNDkJMTMzLjYyNQkzODIwNDAwCTEzNC41MDAJMTMyLjE4Nwkx MzYuMTg3CisxMTkJMTI1MAkxMzEuNDM3CTM1NDQ5MDAJMTMzLjc1MAkxMzAuMDAwCTEzNC4xMjUK KzExOQkxMjUxCTEyOC41MDAJNDE0OTcwMAkxMzAuNzUwCTEyNy42MzAJMTMxLjUwMAorMTE5CTEy NTIJMTI1LjM3NQk2MjY4NzAwCTEyNS4wNjIJMTIzLjM3NQkxMjYuNDM3CisxMTkJMTI1MwkxMjQu ODEwCTczMDI2MDAJMTI0LjEzMAkxMTguOTQwCTEyNS4yNTAKKzExOQkxMjU0CTEyMC4yNTAJNjcy MTAwMAkxMjMuNzUwCTExNy4zMTAJMTIzLjc1MAorMTE5CTEyNTUJMTE5LjI1MAk3MTgzNzAwCTEy NC4wMDAJMTE4Ljc1MAkxMjQuMDAwCisxMTkJMTI1NgkxMjAuNzUwCTY1ODI0MDAJMTE5LjUwMAkx MTguMTI1CTEyMi44NzUKKzExOQkxMjU3CTEyMy41MDAJOTE1NjMwMAkxMjAuNzUwCTExNi44MTIJ MTIzLjUwMAorMTE5CTEyNTgJMTI3LjMxMgk1ODQxNjAwCTEyNC40MzcJMTIyLjUwMAkxMjcuOTM3 CisxMTkJMTI1OQkxMzAuODc1CTU0MDI1MDAJMTMwLjEyNQkxMjkuNTYyCTEzMi44NzUKKzExOQkx MjYwCTEyOC4xOTAJNDY5NjgwMAkxMzAuNTAwCTEyNi41NjAJMTMwLjUwMAorMTIwCTEyNjEJMTQ3 LjM4MAkzNDU2NTAwCTE0OC41MDAJMTQ3LjE5MAkxNDkuOTQwCisxMjAJMTI2MgkxNDcuODgwCTQw OTYzMDAJMTQ4Ljg4MAkxNDUuNzUwCTE0OS43NTAKKzEyMAkxMjYzCTE0OS4wMDAJMzI5MzAwMAkx NDcuNjkwCTE0Ni44MTAJMTQ5LjU2MAorMTIwCTEyNjQJMTQ5Ljk0MAkzNTY5MDAwCTE0OC44ODAJ MTQ3LjUwMAkxNTAuOTQwCisxMjAJMTI2NQkxNTEuMzgwCTM3ODg3MDAJMTUwLjc1MAkxNDkuOTQw CTE1Mi4xOTAKKzEyMAkxMjY2CTE1Ni4wMDAJNDM3MTUwMAkxNTAuODgwCTE1MC42OTAJMTU2Ljc1 MAorMTIwCTEyNjcJMTU3LjEyNQk1MTA5MTAwCTE1Ny4wMDAJMTU2LjUwMAkxNTguODc1CisxMjAJ MTI2OAkxNTcuODgwCTQzMzM5MDAJMTU2LjY5MAkxNTYuNjMwCTE1OS44ODAKKzEyMAkxMjY5CTE1 Ny40MzcJMjk5NzYwMAkxNTcuMDAwCTE1NS43NTAJMTU3LjUwMAorMTIxCTEyNzAJMTY1LjAwMAkz ODg1ODAwCTE2My41MDAJMTYyLjUwMAkxNjUuODEwCisxMjEJMTI3MQkxNjQuMzc1CTI4MjY0MDAJ MTY2Ljg3NQkxNjQuMzEyCTE2Ni44NzUKKzEyMQkxMjcyCTE2Ni4wNjIJNDM4MTYwMAkxNjUuNDM3 CTE2NS4wNjIJMTY5LjYyNQorMTIxCTEyNzMJMTcxLjU2MAk0OTA4NDAwCTE2Ni42MzAJMTY2LjYz MAkxNzIuMTkwCisxMjEJMTI3NAkxNzYuMzc1CTM3MzkzMDAJMTcxLjU2MgkxNzEuNTYyCTE3OC45 MzcKKzEyMQkxMjc1CTE4Mi4yNTAJNDM1MjMwMAkxNzcuNTAwCTE3NS4yNTAJMTgzLjAwMAorMTIx CTEyNzYJMTg1LjAwMAkzNTM1MDAwCTE4Mi42OTAJMTgxLjEzMAkxODUuMzgwCisxMjEJMTI3Nwkx ODcuOTM3CTE1MjQ5MDAJMTg0Ljc1MAkxODQuMDYyCTE4Ny45MzcKKzEyMQkxMjc4CTE4OS4yNTAJ MjYzNDYwMAkxODYuNTAwCTE4Ni4wMDAJMTg5LjkzNworMTIxCTEyNzkJMTg3LjEyNQkxODgxMTAw CTE4OC42MjUJMTg3LjAwMAkxODguOTM3CisxMjEJMTI4MAkxODYuNzUwCTI0MDY2MDAJMTg2Ljg3 NQkxODYuMzEyCTE4OC42MjUKKzEyMQkxMjgxCTE4NC4zNzUJMTkzMjQwMAkxODYuNzUwCTE4My41 MDAJMTg3LjE4NworMTIxCTEyODIJMTgzLjAwMAk0MDc0ODAwCTE4NS4wMDAJMTgxLjUwMAkxODYu NTAwCisxMjEJMTI4MwkxODkuNjMwCTQ5NTM4MDAJMTgzLjAwMAkxODIuODEwCTE4OS44ODAKKzEy MgkxMjg0CTE3Ny45MzcJNDYwMDEwMAkxNzIuMjUwCTE3MS4wNjIJMTc3LjkzNworMTIyCTEyODUJ MTc2Ljk0MAk0NTU0NjAwCTE3OC4wMDAJMTc1Ljc1MAkxODAuMDAwCisxMjIJMTI4NgkxNzMuNzUw CTQzMTg3MDAJMTc3LjI1MAkxNzMuMTMwCTE3OS42OTAKKzEyMgkxMjg3CTE3My42MjUJNTIzNDgw MAkxNzIuMDAwCTE2OS4zMTIJMTczLjkzNworMTIyCTEyODgJMTY5Ljc1MAk3Mzk5MDAwCTE3MS4w MDAJMTY2LjUwMAkxNzEuODgwCisxMjIJMTI4OQkxNjguMzc1CTQ3OTU0MDAJMTY5LjUwMAkxNjUu MTI1CTE2OS41MDAKKzEyMgkxMjkwCTE2Ny43NTAJNDM3MTIwMAkxNzAuNTAwCTE2Ni44ODAJMTcw Ljk0MAorMTIyCTEyOTEJMTY2Ljc1MAkzODcxNTAwCTE2OC41MDAJMTY1LjA2MgkxNjguOTM3Cisx MjIJMTI5MgkxNzEuMDAwCTEwNzUwNTAwCTE3My41MDAJMTcwLjEyNQkxNzcuMDAwCisxMjIJMTI5 MwkxNzguMzgwCTU4MDMyMDAJMTczLjg4MAkxNzMuNzUwCTE3OC45NDAKKzEyMgkxMjk0CTE3OC44 NzUJMzc3OTkwMAkxNzguNjI1CTE3Ny4wNjIJMTgwLjAwMAorMTIyCTEyOTUJMTgyLjE5MAk1MDA5 NTAwCTE3OS44ODAJMTc4LjU2MAkxODQuODgwCisxMjIJMTI5NgkxODEuNTAwCTM1MDQ5MDAJMTgx LjYzMAkxODAuMjUwCTE4Mi44ODAKKzEyMwkxMjk3CTE4Mi4wMDAJMzk1MTQwMAkxNzkuMTg3CTE3 Ny4xMjUJMTgyLjMxMgorMTIzCTEyOTgJMTgxLjAwMAkzMzAzMDAwCTE4Mi4wMDAJMTgwLjE5MAkx ODMuNTAwCisxMjMJMTI5OQkxNzguMDYwCTM0NTI3MDAJMTc5LjUwMAkxNzguMDAwCTE4MC4wMDAK KzEyMwkxMzAwCTE3Ny42MzAJNzI1MjUwMAkxNzcuNTAwCTE3Mi45NDAJMTc3Ljc1MAorMTIzCTEz MDEJMTY4LjU2Mgk5NzQ4NDAwCTE3Ni42MjUJMTY4LjAwMAkxNzguMDAwCisxMjMJMTMwMgkxNjcu MDAwCTU5NDgzMDAJMTY4LjY4NwkxNjYuNjI1CTE3MC41MDAKKzEyMwkxMzAzCTE2NS4zODAJNTAw NzUwMAkxNjcuMDAwCTE2NC4wMDAJMTY3LjYzMAorMTIzCTEzMDQJMTY5LjUwMAk1OTEwNTAwCTE2 OC4wMDAJMTY2LjUwMAkxNzAuNTAwCisxMjMJMTMwNQkxNzEuMzEyCTQ5MTQ0MDAJMTcyLjAwMAkx NjkuNTAwCTE3My4yNTAKKzEyMwkxMzA2CTE3Mi4zODAJNDEzMzIwMAkxNzEuMDYwCTE3MC41NjAJ MTc1Ljg4MAorMTIzCTEzMDcJMTc4LjU2MgkzNzMzNDAwCTE3Ny4wMDAJMTc2Ljg3NQkxODEuMjUw CisxMjMJMTMwOAkxNzcuMjUwCTI5MTc2MDAJMTgwLjAwMAkxNzYuNTAwCTE4MS41MDAKKzEyNAkx MzA5CTE4Ny4wMDAJNDI2NTUwMAkxODYuMDAwCTE4Mi4zMTIJMTg4LjA2MgorMTI0CTEzMTAJMTg2 LjMxMAkzMDU1OTAwCTE4NS42MzAJMTg0LjAwMAkxODguMDYwCisxMjQJMTMxMQkxODMuNDQwCTQ0 ODk5MDAJMTgzLjUwMAkxODEuMDYwCTE4My42MzAKKzEyNAkxMzEyCTE4MC4wMDAJMzQyMzIwMAkx ODQuMDAwCTE3OS45NDAJMTg0LjAwMAorMTI0CTEzMTMJMTc5LjM4MAkzNjMwNTAwCTE4Mi43NTAJ MTc3LjYzMAkxODMuODgwCisxMjQJMTMxNAkxNzcuNzUwCTQxNjUyMDAJMTc5LjUwMAkxNzMuNTAw CTE3OS41MDAKKzEyNAkxMzE1CTE3MC4zNzUJNTk2NDQwMAkxNzcuNTAwCTE3MC4xMjUJMTc3LjUw MAorMTI0CTEzMTYJMTY2Ljc1MAk3NjkxODAwCTE3MC44ODAJMTY0LjA2MAkxNzIuMzEwCisxMjQJ MTMxNwkxNjkuNzUwCTczNTgwMDAJMTY3LjAwMAkxNjMuMDAwCTE2OS43NTAKKzEyNAkxMzE4CTE3 MS44NzUJNjU4MDgwMAkxNjkuNzUwCTE2NS4xMjUJMTcxLjg3NQorMTI0CTEzMTkJMTk0LjUwMAkx OTU4NDkwMAkxOTcuMjUwCTE5Mi42ODcJMTk4Ljc1MAorMTI0CTEzMjAJMTk5Ljc1MAkxMDM3NTUw MAkxOTMuMzgwCTE5Mi45NDAJMjA2LjU2MAorMTI0CTEzMjEJMjA5Ljg4MAk5MzMzMDAwCTIwNC43 NTAJMjAyLjMxMAkyMTAuNzUwCisxMjQJMTMyMgkyMTIuMDAwCTEwNDY0NjAwCTIxMi4wMDAJMjA4 LjUwMAkyMTUuMjUwCisxMjQJMTMyMwkyMDUuMDAwCTU2NzA5MDAJMjA5LjI1MAkyMDMuNTAwCTIx MC41MDAKKzEyNQkxMzI0CTIwOS4yNTAJNDE2OTgwMAkyMTEuODgwCTIwOC4wMDAJMjE0LjAwMAor MTI1CTEzMjUJMjE3LjI1MAk0OTkzNDAwCTIxMS4yNTAJMjExLjA2MgkyMTcuNTAwCisxMjUJMTMy NgkyMTguNjMwCTQ3NzQyMDAJMjE3LjI1MAkyMTcuMDYwCTIyMS44ODAKKzEyNQkxMzI3CTIyMS4w MDAJNDE4NjQwMAkyMjAuNTAwCTIxNy41MDAJMjIxLjg3NQorMTI1CTEzMjgJMjI1LjUwMAk2MDMz NDAwCTIyMS4xMjUJMjE1LjUwMAkyMjguNDM3CisxMjUJMTMyOQkyNDYuMDAwCTEyMTY1NzAwCTIz NC4wMDAJMjM0LjAwMAkyNDYuMDAwCisxMjUJMTMzMAkyMzkuMjUwCTkwMzY5MDAJMjQxLjUwMAky MzYuMDAwCTI0My41MDAKKzEyNQkxMzMxCTIzNy41MDAJNTc4MDIwMAkyMzYuMDAwCTIzMi4wMDAJ MjM5LjYyNQorMTI1CTEzMzIJMjM4LjUwMAk0MzE2OTAwCTIzOC4yNTAJMjM3LjAwMAkyNDAuNjI1 CisxMjUJMTMzMwkyMzUuODc1CTM4OTU4MDAJMjM4LjI1MAkyMzMuMDYyCTIzOC43NTAKKzEyNQkx MzM0CTIzMi44NzUJMzIyMDkwMAkyMzUuNjI1CTIzMi41MDAJMjM2LjM3NQorMTI1CTEzMzUJMjMw LjM4MAkzNDUyMzAwCTIzMi43NTAJMjI5LjE5MAkyMzMuMzgwCisxMjUJMTMzNgkyMjMuNzUwCTQy OTkxMDAJMjMwLjMxMAkyMjEuNzUwCTIzMC42OTAKKzEyNQkxMzM3CTIyMS4xODcJNDcwMjUwMAky MjIuNTAwCTIyMS4wMDAJMjI2LjAwMAorMTI1CTEzMzgJMjM2LjI1MAk4MzE0MDAwCTIyMy4wMDAJ MjIxLjQ0MAkyMzYuNjMwCisxMjUJMTMzOQkxMTYuMDAwCTEwNTUyNjAwCTExNi42ODcJMTEyLjYy NQkxMTYuODc1CisxMjUJMTM0MAkxMTYuMDAwCTYzNzk1MDAJMTE2LjAwMAkxMTQuMTg3CTExNi43 NTAKKzEyNgkxMzQxCTEyNC40NDAJNjA0MzUwMAkxMjIuNzUwCTEyMi4zMTAJMTI0Ljg4MAorMTI2 CTEzNDIJMTIyLjAwMAk4NDQyMTAwCTEyMy4zNzUJMTIxLjAwMAkxMjMuNjI1CisxMjYJMTM0Mwkx MjIuMzgwCTY0NjMwMDAJMTIyLjAwMAkxMjAuODgwCTEyNC4wNjAKKzEyNgkxMzQ0CTEyMi45NDAJ NjI0NTMwMAkxMjIuNjMwCTEyMi4wNjAJMTI1Ljg4MAorMTI2CTEzNDUJMTI0LjAwMAk0MzU0NjAw CTEyNS4wMDAJMTIyLjc1MAkxMjUuMTkwCisxMjYJMTM0NgkxMjMuMTg3CTQ3NzMwMDAJMTI0LjI1 MAkxMjIuNjg3CTEyNS42MjUKKzEyNwkxMzQ3CTk4LjAwMAkxODcyMDQwMAk5NC4wMDAJOTMuNTYy CTk4LjI1MAorMTI3CTEzNDgJMTA0Ljc1MAkxOTY3MzMwMAk5OS4wMDAJOTguMzgwCTEwNS4wMDAK KzEyNwkxMzQ5CTEwNy44ODAJMTM2ODE1MDAJMTA1LjUwMAkxMDQuNDQwCTEwOC40NDAKKzEyNwkx MzUwCTEwNi4xMjUJMTA2NjUwMDAJMTA4LjgxMgkxMDYuMDAwCTEwOS44NzUKKzEyNwkxMzUxCTEw NC4wNjAJOTcxMDMwMAkxMDUuMDAwCTEwMS44MTAJMTA1LjAwMAorMTI3CTEzNTIJMTA1LjAwMAkz MTA4NDAwCTEwNS45MzcJMTA0LjEyNQkxMDYuMDAwCisxMjcJMTM1MwkxMDQuMTg3CTU2Nzc3MDAJ MTA0LjkzNwkxMDMuMzc1CTEwNC45MzcKKzEyNwkxMzU0CTEwMy4wNjAJNTcxOTkwMAkxMDMuNjkw CTEwMi4xMzAJMTA0LjUwMAorMTI3CTEzNTUJMTAzLjc1MAk1MzM2MDAwCTEwMi41NjIJMTAyLjI1 MAkxMDQuNDM3CisxMjcJMTM1NgkxMDUuNTYwCTYyMDg2MDAJMTAzLjQ0MAkxMDMuMzgwCTEwNi4z MTAKKzEyNwkxMzU3CTExMi4wMDAJMTQ2Nzk5MDAJMTA5LjgxMgkxMDcuOTM3CTExMi44NzUKKzEy NwkxMzU4CTExNi4wMDAJOTkyNDQwMAkxMTMuMDAwCTExMi41MDAJMTE2LjUwMAorMTI4CTEzNTkJ MTA5LjE5MAk3MTE3MzAwCTEwOC4wMDAJMTA1Ljc1MAkxMDkuNjkwCisxMjgJMTM2MAkxMDkuMTI1 CTc2ODA3MDAJMTEwLjY4NwkxMDguNjI1CTExMS4wNjIKKzEyOAkxMzYxCTEwOC4wNjAJNDgzNDkw MAkxMDkuMDYwCTEwNy43NTAJMTEwLjQ0MAorMTI4CTEzNjIJMTEwLjEyNQk0NzczNTAwCTEwOC41 MDAJMTA4LjA2MgkxMTAuMTI1CisxMjgJMTM2MwkxMDguMzc1CTQwMDU1MDAJMTA5Ljg3NQkxMDgu MjUwCTExMC4zMTIKKzEyOAkxMzY0CTEwOC42MjUJNDUyODcwMAkxMDkuMTI1CTEwOC4xODcJMTEw LjQzNworMTI4CTEzNjUJMTA5Ljc1MAkzNzQwNzAwCTEwOS42ODcJMTA4LjEyNQkxMTAuMDAwCisx MjgJMTM2NgkxMDkuMjUwCTQwODEzMDAJMTA5LjU2MAkxMDkuMDYwCTExMC43NTAKKzEyOAkxMzY3 CTEwOS4wNjAJMjY4MzEwMAkxMTAuNDQwCTEwOC43NTAJMTEwLjUwMAorMTI4CTEzNjgJMTA4Ljc1 MAkzNDM1MTAwCTEwOS42OTAJMTA4LjU2MAkxMTAuNTAwCisxMjgJMTM2OQkxMDcuODc1CTI4NzAz MDAJMTA5LjE4NwkxMDYuNjI1CTEwOS41MDAKKzEyOAkxMzcwCTExNS42MjUJMTAzNDY4MDAJMTEy LjQzNwkxMTEuODc1CTExNS44MTIKKzEyOAkxMzcxCTExMi4wNjAJODIyNzgwMAkxMTQuMDAwCTEx MC44ODAJMTE0LjUwMAorMTI5CTEzNzIJMTA3LjAwMAk1NjY1OTAwCTEwNy41MDAJMTA2LjEzMAkx MDguMjUwCisxMjkJMTM3MwkxMDkuMDAwCTY2MjI1MDAJMTA5LjAwMAkxMDcuODgwCTEwOS44MTAK KzEyOQkxMzc0CTExMC4wMDAJODg1NjQwMAkxMDguMjUwCTEwNy42ODcJMTExLjY4NworMTI5CTEz NzUJMTEyLjc1MAk2NTYzNTAwCTExMC4wMDAJMTA5Ljk0MAkxMTMuMzgwCisxMjkJMTM3NgkxMTMu NTAwCTY3NzE0MDAJMTEyLjgxMAkxMTEuOTQwCTExNC42OTAKKzEyOQkxMzc3CTExNC4yNTAJNjEz NzgwMAkxMTQuNTAwCTExMy44NzUJMTE1LjM3NQorMTI5CTEzNzgJMTE1LjI1MAk2NDkyNDAwCTEx NS44NzUJMTExLjYyNQkxMTUuODc1CisxMjkJMTM3OQkxMjEuNTAwCTEyMTI0MzAwCTExNS4zNzUJ MTE1LjA2MgkxMjIuMjUwCisxMjkJMTM4MAkxMjYuODgwCTExODYyOTAwCTEyNS4wMDAJMTI0LjYz MAkxMjguMjUwCisxMjkJMTM4MQkxMjIuNTAwCTgxNjMwMDAJMTI1Ljc1MAkxMjIuMDYwCTEyNy4w MDAKKzEzMAkxMzgyCTEwMi45NDAJNjQwMjgwMAkxMDQuMTMwCTEwMi42MzAJMTA0LjgxMAorMTMw CTEzODMJMTAzLjUwMAk3NDI4MTAwCTEwMi4zODAJMTAxLjAwMAkxMDQuMzgwCisxMzAJMTM4NAkx MTcuMDAwCTIyOTI3OTAwCTExMi4wMDAJMTExLjc1MAkxMTcuODEyCisxMzAJMTM4NQkxMTQuNDQw CTg3NjQ3MDAJMTE3LjAwMAkxMTMuNzUwCTExNy4wMDAKKzEzMQkxMzg2CTkwLjEzMAk3NzA1MzAw CTkwLjE5MAk4OS44MTAJOTQuNDQwCisxMzEJMTM4Nwk4Ni4wMDAJMTI1Nzk1MDAJODUuODgwCTg0 LjgxMAk4OC4wMDAKKzEzMQkxMzg4CTgxLjU2MAkxMjcyNDkwMAk4NS41MDAJODAuMDYwCTg3Ljk0 MAorMTMxCTEzODkJODkuMDAwCTk1MTQwMDAJODQuNTAwCTg0LjUwMAk4OS4zNzUKKzEzMQkxMzkw CTg0LjgxMAk2MDUyMzAwCTg5LjAwMAk4NC4yNTAJODkuNTYwCisxMzIJMTM5MQk5Mi43NTAJNTY3 MTgwMAk5My43NTAJOTEuODEwCTk0LjAwMAorMTMyCTEzOTIJOTYuNjg3CTk3MTI5MDAJOTUuMzc1 CTk0LjMxMgk5Ny43NTAKKzEzMgkxMzkzCTEwOC4zMTIJMjUyNDMzMDAJMTA0LjM3NQkxMDMuNTAw CTExMC4wMDAKKzEzMgkxMzk0CTExMS4yNTAJMTQ3NjA0MDAJMTA3LjUwMAkxMDcuMjUwCTExMy45 MzcKKzEzMwkxMzk1CTEwNi40NzAJNjc5MzEwMAkxMDcuMTcwCTEwNS4zNzAJMTA3LjM0MAorMTMz CTEzOTYJOTkuMjkwCTE2Njg4MTAwCTEwNS4wMDAJOTcuOTA1CTEwNS4wMTAKKzEzMwkxMzk3CTk1 LjQ5MAkxNDQ5NDgwMAk5Ny45MDAJOTUuMDIwCTk4LjQwMAorMTMzCTEzOTgJOTguMzkwCTEyMTI3 OTAwCTk1LjEwMAk5NC4yMDAJOTguNDQwCisxMzMJMTM5OQk5NC45NjAJMTQyNDY2MDAJOTUuNDAw CTkzLjM0MAk5OC45MDAKKzEzNAkxNDAwCTk5LjcwMAk5OTU3MzAwCTk3LjAwMAk5Ny4wMDAJOTku ODgwCisxMzQJMTQwMQkxMDYuNTAwCTE5ODQ5NTAwCTEwMy4wMDAJMTAyLjMwMAkxMTAuMDAwCisx MzQJMTQwMgkxMTQuNDcwCTI1ODIyNDAwCTExMi4wMDAJMTEwLjQ1MAkxMTUuOTAwCisxMzQJMTQw MwkxMTQuODMwCTEyNzU5MTAwCTExNC4zNTAJMTEzLjc1MAkxMTYuNDAwCisxMzUJMTQwNAkxMTku NjAwCTc3MjY5MDAJMTE3LjUwMAkxMTcuNTAwCTExOS42MDAKKzEzNQkxNDA1CTExNy44MDAJNTYy OTEwMAkxMTkuNTIwCTExNy43NjAJMTE5LjkwMAorMTM1CTE0MDYJMTE1LjI3MAk1ODE4MDAwCTEx Ny4zNTAJMTE1LjA4MAkxMTcuNTkwCisxMzUJMTQwNwkxMTIuNjUwCTk1OTg3MDAJMTE0LjAwMAkx MTIuMDAwCTExNC4xMDAKKzEzNQkxNDA4CTExMS44MDAJNjc1NzYwMAkxMTIuNjUwCTExMS42NDAJ MTEzLjg2MAorMTM1CTE0MDkJMTEyLjg5MAk1MTM4OTAwCTExMi41MDAJMTExLjkwMAkxMTMuNjAw CisxMzUJMTQxMAkxMTMuNjQwCTM4MTIyMDAJMTEzLjI1MAkxMTIuODUwCTExNC43NTAKKzEzNQkx NDExCTExNi45NzAJNjE1NDQwMAkxMTMuNjQwCTExMy41NjAJMTE3LjYwMAorMTM1CTE0MTIJMTE3 LjUwMAk5NjI1NzAwCTExNy42MDAJMTE2LjUwMAkxMTkuMDAwCisxMzUJMTQxMwkxMTcuMjUwCTY0 MjM3MDAJMTE3LjAwMAkxMTcuMDAwCTExOC4yNTAKKzEzNQkxNDE0CTExNi4xMDAJMzA5OTEwMAkx MTcuNTAwCTExNS42MDAJMTE3LjUwMAorMTM1CTE0MTUJMTE3LjM2MAk2NTQyNzAwCTExNi4zMDAJ MTE2LjEwMAkxMTguMTQwCisxMzYJMTQxNgkxMDQuNzIwCTkzMTI2MDAJMTA2LjUwMAkxMDMuNjUw CTEwNi45NTAKKzEzNgkxNDE3CTEwMS45NjAJMTAyNjY4MDAJMTA0LjczMAkxMDEuNjAwCTEwNS40 MDAKKzEzNgkxNDE4CTEwMy44NTAJODg5NDgwMAkxMDEuNjAwCTEwMS41NjAJMTA0LjEzMAorMTM2 CTE0MTkJMTA3LjI1MAk4NzY3MjAwCTEwNS45MDAJMTA1LjYyMAkxMDcuODAwCisxMzYJMTQyMAkx MDguNTMwCTc4NDE4MDAJMTA2LjE1MAkxMDYuMTEwCTEwOS4zMDAKKzEzNgkxNDIxCTEwNy44MjAJ NTMzMDEwMAkxMDguNTMwCTEwNy4yODAJMTA5LjM4MAorMTM3CTE0MjIJMTA4LjgwMAk1Njc1MTAw CTEwOC41MDAJMTA3LjIxMAkxMDkuNDcwCisxMzcJMTQyMwkxMDguMTgwCTM3MDQxMDAJMTA3Ljgw MAkxMDcuMTAwCTExMC4wOTAKKzEzNwkxNDI0CTEwNi41MTAJNDE3NjgwMAkxMDcuMjUwCTEwNS43 OTAJMTA3LjM3MAorMTM3CTE0MjUJMTA2LjI1MAk0MDI4MzAwCTEwNS44MDAJMTA1LjI2MAkxMDcu MzcwCisxMzcJMTQyNgkxMDQuMTkwCTYzOTgwMDAJMTA1LjAwMAkxMDQuMTAwCTEwNi4xMDAKKzEz NwkxNDI3CTEwNC4wODAJNjc2MzIwMAkxMDMuNzAwCTEwMi43MDAJMTA0LjU0MAorMTM3CTE0MjgJ MTA0Ljk1MAk1MjU0ODAwCTEwMy44NTAJMTAyLjgxMAkxMDQuOTUwCisxMzcJMTQyOQkxMDUuODYw CTYwMjQ0MDAJMTA1LjAwMAkxMDQuNjUwCTEwNi42NDAKKzEzNwkxNDMwCTEwNi4yMDAJNTczMDIw MAkxMDYuNTAwCTEwNS40MDAJMTA2Ljg1MAorMTM3CTE0MzEJMTA1LjAxMAk0NzEzMTAwCTEwNi4z NTAJMTA1LjAxMAkxMDYuNTkwCisxMzgJMTQzMgk5MS4zMDAJMTM3ODMxMDAJOTQuNDUwCTkwLjMw MAk5NC40NTAKKzEzOAkxNDMzCTkwLjAwMAkxMzE3MjIwMAk5MS4zMDAJODcuNDkwCTkxLjUwMAor MTM4CTE0MzQJOTEuNzIwCTExMDc3MjAwCTkwLjIwMAk4OS45MDAJOTIuNzEwCisxMzgJMTQzNQk5 Mi43MTAJODY3NjIwMAk5MS43MjAJOTEuMzQwCTkzLjQ4MAorMTM4CTE0MzYJOTMuNzcwCTcyMjEy MDAJOTIuMzAwCTkyLjEwMAk5My45MDAKKzEzOAkxNDM3CTk2Ljk1MAkxMTExODgwMAk5Mi45MDAJ OTIuNDAwCTk3LjYyMAorMTM4CTE0MzgJOTcuMzEwCTk3ODUxMDAJOTcuMTUwCTk2LjgwMAk5OC44 ODAKKzEzOAkxNDM5CTk4LjAyMAk5NzMzMDAwCTk2LjY1MAk5NS4zNzAJOTguNDUwCisxMzgJMTQ0 MAk5OC41MDAJNzA5MzQwMAk5OC4wMzAJOTYuNzUwCTk5LjAwMAorMTM4CTE0NDEJOTcuMTQwCTc1 MjUzMDAJOTguNTAwCTk2Ljc2MAk5OC41MDAKKzEzOQkxNDQyCTEyMy4yMDAJNzk1MDQwMAkxMjEu MTIwCTEyMC4wNjAJMTIzLjIxMAorMTM5CTE0NDMJMTIwLjI1MAk4MDYxMDAwCTEyMS41NTAJMTIw LjEyMAkxMjIuMzAwCisxMzkJMTQ0NAkxMjEuMTAwCTcwMzYwMDAJMTIwLjgwMAkxMTkuNDEwCTEy MS40ODAKKzEzOQkxNDQ1CTEyMS4zNDAJNjIyNTUwMAkxMjAuMTUwCTEyMC4xNTAJMTIyLjE0MAor MTM5CTE0NDYJMTIyLjIwMAk1NTk2MjAwCTEyMS41MTAJMTIxLjM1MAkxMjIuOTcwCisxMzkJMTQ0 NwkxMjMuODkwCTgwNTQyMDAJMTIxLjkwMAkxMjEuMDEwCTEyNC43MDAKKzE0MAkxNDQ4CTc1LjQ5 MAk3OTUzMDAwCTc3Ljg1MAk3NS4yMDAJNzguMjUwCisxNDAJMTQ0OQk3NC42NTAJMTMyOTYxMDAJ NzUuNDAwCTczLjI1MAk3NS45NTAKKzE0MAkxNDUwCTc1LjYwMAk4OTA5NzAwCTc1LjQ1MAk3NS4z MDAJNzcuNDAwCisxNDAJMTQ1MQk3Ni4xNzAJODU5MjAwMAk3NC4yMDAJNzMuMjUwCTc2Ljc3MAor MTQwCTE0NTIJNzcuMTQwCTc3NzU4MDAJNzYuMTgwCTc1LjE2MAk3Ny43NTAKKzE0MAkxNDUzCTc1 Ljk0MAk3MjQwOTAwCTc1LjYwMAk3NS40NzAJNzYuOTAwCisxNDEJMTQ1NAk3Mi4wMDAJMTA5NDU2 MDAJNzEuMzUwCTcxLjI1MAk3My42MjAKKzE0MQkxNDU1CTY3LjYwMAkxMjA1NjAwMAk3Mi4wMTAJ NjcuMTYwCTcyLjQxMAorMTQxCTE0NTYJNjguNTgwCTEyMDEyOTAwCTY3Ljg1MAk2Ny43MDAJNjku NDAwCisxNDEJMTQ1Nwk3MC41MTAJODQ2OTkwMAk2Ny45NTAJNjcuODcwCTcwLjcxMAorMTQxCTE0 NTgJNzMuNTAwCTUyNDMwMDAJNzIuNDUwCTcyLjAwMAk3My45MDAKKzE0MQkxNDU5CTcxLjMwMAk5 NDg4MTAwCTczLjAwMAk3MS4wMzAJNzMuNDgwCisxNDEJMTQ2MAk2OS42NzAJMTExNjUxMDAJNzEu NDAwCTY5LjQ1MAk3Mi4yNTAKKzE0MQkxNDYxCTY4Ljc2MAkxMDA3MzQwMAk3MC42MDAJNjguNTMw CTcxLjI1MAorMTQxCTE0NjIJNjkuNDEwCTExMDM0NjAwCTY4LjAwMAk2Ny41NTAJNjkuNzUwCisx NDIJMTQ2Mwk2OS4zNTAJMTA5ODk4MDAJNjguOTAwCTY3LjMwMAk3MC4wMDAKKzE0MgkxNDY0CTY2 LjQwMAkxMTU3NjQwMAk2OC43NTAJNjUuNzYwCTY5LjQ3MAorMTQyCTE0NjUJNzEuMTgwCTExOTE4 NjAwCTcwLjM3MAk2OC4wMDAJNzEuNDAwCisxNDIJMTQ2Ngk3MS43OTAJMTAxMzY0MDAJNzAuNTAw CTcwLjAyMAk3Mi43MDAKKzE0MgkxNDY3CTcwLjQwMAkxMjcwODEwMAk3MC43NTAJNjkuMTEwCTcx LjYwMAorMTQyCTE0NjgJNjguMjUwCTg4MzIwMDAJNzAuNDAwCTY3LjIyMAk3MC43MDAKKzE0Mgkx NDY5CTY3Ljg4MAk2OTE1MDAwCTY4LjIxMAk2Ny4xMjMJNjguMjMwCisxNDIJMTQ3MAk2NS45OTAJ NzEyNjkwMAk2Ny45NDAJNjUuODUwCTY4LjM1MAorMTQyCTE0NzEJNjcuOTAwCTgzNzA4MDAJNjcu MDAwCTY2LjYxMAk2OS40MjAKKzE0MgkxNDcyCTY5LjE3MAk4MDM2ODAwCTY5LjAwMAk2Ni44MDAJ NjkuOTAwCisxNDIJMTQ3Mwk3MS42MTAJODQzMjUwMAk2OS4yMDAJNjguMzUwCTcyLjA1MAorMTQy CTE0NzQJNzEuODMwCTY5NDA5MDAJNzAuNjEwCTcwLjQwMAk3NC4zMDAKKzE0MgkxNDc1CTcxLjc3 MAk1MjYzMzAwCTcxLjA1MAk3MC42MTAJNzIuNjQwCisxNDMJMTQ3Ngk1NS4wNzAJMTIxNTU4MDAJ NTYuMDUwCTU0LjgxMAk1Ni43MDAKKzE0MwkxNDc3CTU3LjU4MAkxMjY3MjYwMAk1NC42NTAJNTQu MDEwCTU4LjQ4MAorMTQzCTE0NzgJNjMuOTIwCTE3ODUyNTAwCTYyLjAwMAk2MS41MDAJNjMuOTIw CisxNDMJMTQ3OQk2My40MjAJNzkyNTMwMAk2MS41NDAJNjEuNTQwCTYzLjgwMAorMTQzCTE0ODAJ NjguNDgwCTE0NjAwMjAwCTY3Ljc1MAk2Ni41ODAJNjguNDgwCisxNDMJMTQ4MQk2NC45MDAJMTU4 Mjg5MDAJNjYuNjAwCTY0LjI0MAk2Ny4wMDUKKzE0MwkxNDgyCTcyLjIwMAkyMTM0NDUwMAk3Mi44 MDAJNzEuMjMwCTczLjAwMAorMTQzCTE0ODMJNzQuMjUwCTEyNTMyNzAwCTcxLjczMAk3MC4yNjAJ NzQuMjUwCisxNDQJMTQ4NAk3Mi4xMDAJMTA1NzAwMDAJNzUuNTAwCTcxLjc1MAk3NS41NTAKKzE0 NAkxNDg1CTc0LjU2MAk3NTM4ODAwCTcyLjUwMAk3Mi4xNjAJNzQuNjIwCisxNDQJMTQ4Ngk3Ni41 NjAJMTI1NDQ4MDAJNzUuMTUwCTc0LjU2MAk3Ny41MDAKKzE0NAkxNDg3CTc2Ljc0MAkxMTY0ODUw MAk3Ni41NjAJNzQuMjAwCTc3LjA1MAorMTQ0CTE0ODgJNzguNjcwCTEyODY1ODAwCTc3LjAwMAk3 Ni4wMjAJNzkuNDAwCisxNDQJMTQ4OQk3OC45NDAJOTg0NDMwMAk3OC42NzAJNzguNTAwCTc5Ljc5 MAorMTQ0CTE0OTAJODAuNDAwCTkzOTUyMDAJNzguOTAwCTc4LjMyMAk4MC41MDAKKzE0NAkxNDkx CTgyLjUwMAkxMjAwNTEwMAk4Mi4wMDAJODEuNzAwCTgzLjgxMAorMTQ0CTE0OTIJODEuNjgwCTEw NDY2NzAwCTgxLjc1MAk4MC40NzAJODIuMDEwCisxNDUJMTQ5Mwk4MC4yNjAJNTkyMjcwMAk3OS43 NTAJNzkuNDQwCTgxLjUwNworMTQ1CTE0OTQJNzkuNzYwCTI0MjAyMDAJODAuMjAwCTc5Ljc2MAk4 MS4wMDAKKzE0NQkxNDk1CTc4LjUwMAk1Nzg0MzAwCTc5LjgxMAk3OC4yNjAJODAuNzAwCisxNDUJ MTQ5Ngk3Ny4zNjAJNjMzNDQwMAk3OC41MDAJNzYuNjEwCTc5LjE4MAorMTQ1CTE0OTcJNzYuMjUw CTgwNjY2MDAJNzcuMDAwCTc1LjYwMAk3Ny40MzAKKzE0NQkxNDk4CTc3LjUwMAk3ODcxNDAwCTc3 LjEwMAk3Ny4xMDAJNzguNDYwCisxNDUJMTQ5OQk4MC41NzAJNzg2NDUwMAk3OC44MDAJNzguMTkw CTgwLjU3MAorMTQ1CTE1MDAJODEuNjUwCTU5NjM0MDAJODAuNzAwCTgwLjIxMAk4MS42NTAKKzE0 NQkxNTAxCTgzLjU5MAk3OTIzMzAwCTgxLjkwMAk4MS44MTAJODQuNTkwCisxNDUJMTUwMgk4Ni4w MDAJMTE5MDcwMDAJODMuOTUwCTgzLjc1MAk4Ni4xODAKKzE0NQkxNTAzCTg0LjE5MAk5NTA5NzAw CTg1LjU1MAk4NC4wNzAJODUuNjkwCisxNDYJMTUwNAk3Ni41MDAJNTYxNzcwMAk3Ny41MDAJNzYu NTAwCTc4LjA5MAorMTQ2CTE1MDUJNzUuODYwCTExMjE4NjAwCTc2LjEwMAk3NC4zMTAJNzYuMzUw CisxNDYJMTUwNgk3Ny40NTAJODMwMDEwMAk3Ni40MDAJNzUuMzUwCTc3LjQ1MAorMTQ2CTE1MDcJ NzkuMzMwCTc3OTMwMDAJNzguMDIwCTc3LjkxMAk3OS41MTAKKzE0NgkxNTA4CTc5LjUxMAk1NDQx MzAwCTc5LjA4MAk3OC44MjYJNzkuNzAwCisxNDYJMTUwOQk3OS4wNDAJNjI5NTYwMAk3OS41NzAJ NzguNzEwCTgwLjA1MAorMTQ3CTE1MTAJNzkuODUwCTcwMjQ3MDAJODEuMTMwCTc5LjgwMAk4MS4z MzAKKzE0NwkxNTExCTc5Ljc1MAk3NDcyMjAwCTc5LjcwMAk3OC43MzAJODAuNjgwCisxNDcJMTUx Mgk4MC42OTAJNTI5ODUwMAk3OS42OTAJNzkuMzgwCTgwLjgyMAorMTQ3CTE1MTMJODAuODgwCTQ2 MTU2MDAJODEuMDUwCTgwLjM1MAk4MS4yNzAKKzE0NwkxNTE0CTgxLjAyMAk0MjYyMjAwCTgwLjg3 MAk4MC4yODAJODEuNTAwCisxNDcJMTUxNQk4MS41MTAJNDYzNDIwMAk4MS40NTAJODAuNjUwCTgx LjU0MAorMTQ4CTE1MTYJODkuNzAwCTg4NDI1MDAJOTEuNDUwCTg5LjAxMAk5MS41MTAKKzE0OAkx NTE3CTkwLjMxMAk1NTI5NzAwCTg5LjkwMAk4OS43NTAJOTAuNDYwCisxNDgJMTUxOAk5NC4wMjAJ MTk4MTM2MDAJOTUuMDcwCTkzLjU1MAk5NS42NTAKKzE0OAkxNTE5CTk1LjMyMAk5MzAyMTAwCTk1 LjAwMAk5NC43MTAJOTUuMzUwCisxNDgJMTUyMAk5Ny4xMDAJOTI4NTMwMAk5Ni4wMDAJOTUuNzMw CTk3LjQ0MAorMTQ4CTE1MjEJOTcuNzAwCTY5NTI3MDAJOTcuMjMwCTk2LjY0MAk5OC4wNDAKKzE0 OAkxNTIyCTk3LjUxMAk0MzcxNjAwCTk3Ljg0MAk5Ny4zMjAJOTguMTYwCisxNDkJMTUyMwk5OS4z MDAJMzYxMTcwMAkxMDAuMDYwCTk5LjMwMAkxMDAuMzAwCisxNDkJMTUyNAk5OS43MTAJMzU2MjQw MAk5OS4xMDAJOTkuMDgwCTEwMC4wOTAKKzE0OQkxNTI1CTk5LjM3MAkzOTMwNTAwCTk5Ljk5MAk5 OS4zMjAJMTAwLjAwMAorMTQ5CTE1MjYJOTguNDIwCTQ4MzA1MDAJOTkuMzEwCTk4LjE1MAk5OS43 NzAKKzE0OQkxNTI3CTk3LjgwMAk1NDQ3NzAwCTk4LjQyMAk5Ny41MjAJOTkuMjMwCisxNDkJMTUy OAk5Ny4zMTAJNTY5MDIwMAk5OC42MDAJOTcuMTkwCTk4LjYwMAorMTQ5CTE1MjkJOTUuOTYwCTY2 Mjk2MDAJOTcuNDAwCTk1LjQ2MAk5Ny41MTAKKzE0OQkxNTMwCTk2Ljc5MAk3MDEyMTAwCTk1LjIw MAk5NS4yMDAJOTcuNDYwCisxNDkJMTUzMQk5Ni41NDAJMzM2MjUwMAk5Ni41MDAJOTYuMjMwCTk3 LjA5MAorMTUwCTE1MzIJOTYuODQwCTQ4MDcwMDAJOTYuNTcwCTk1LjYwMAk5Ni44OTAKKzE1MAkx NTMzCTk2LjM5MAkzNTQ4NTAwCTk2LjU4MAk5Ni4xMzAJOTYuOTIwCisxNTAJMTUzNAk5Ni40NTAJ Mzk3MTgwMAk5NS45NTAJOTUuNTYwCTk2Ljk4MAorMTUwCTE1MzUJOTQuNTkwCTUwODQyMDAJOTYu NDkwCTk0LjU5MAk5Ni44ODAKKzE1MAkxNTM2CTk0LjUzMAk2MzkxNDAwCTk0LjMwMAk5My43NzAJ OTUuMjgwCisxNTAJMTUzNwk5My4wNjAJNjUzNjQwMAk5NC4zODAJOTIuNjgwCTk0Ljc0MAorMTUw CTE1MzgJOTEuMjEwCTg1NjA4MDAJOTIuMDAwCTkxLjE1MAk5Mi45ODAKKzE1MAkxNTM5CTkzLjMw MAk2MjkwNjAwCTkyLjAwMAk5MS42ODAJOTMuMzgwCisxNTEJMTU0MAk4NS4zNTAJNTY3NzMwMAk4 NS4zMDAJODUuMDUwCTg1Ljk0MAorMTUxCTE1NDEJODMuNjUwCTc1MzAxMDAJODUuMDAwCTgzLjU4 MAk4NS4wMTAKKzE1MQkxNTQyCTgzLjg5MAk2NTk1MjAwCTg0LjQwMAk4My41MTAJODQuNTAwCisx NTEJMTU0Mwk4NC45NTAJNjAwOTIwMAk4NC4wMDAJODMuNDIwCTg1LjI1MAorMTUxCTE1NDQJODUu MjUwCTYwMDE1MDAJODUuOTAwCTg1LjIwMAk4Ni4wOTAKKzE1MQkxNTQ1CTg0LjEzMAk2Mjk4NzAw CTg0Ljg0MAk4My43ODAJODUuMjQwCisxNTIJMTU0Ngk4My42OTAJNTI2ODUwMAk4My43MDAJODMu MTAwCTgzLjk4MAorMTUyCTE1NDcJODIuMjEwCTcxMzQ5MDAJODMuMDUwCTgxLjkwMAk4My4wNTAK KzE1MgkxNTQ4CTgzLjkxMAk1OTE2OTAwCTgyLjU0MAk4Mi41MTAJODMuOTQwCisxNTIJMTU0OQk4 NC4wMjAJNDM2MTUwMAk4My43MDAJODMuNTEwCTg0LjU2MAorMTUyCTE1NTAJODQuMDQwCTM1NTk1 MDAJODQuMTAwCTgzLjY2MAk4NC41NDAKKzE1MgkxNTUxCTg1LjEzMAk0ODMzNzAwCTgzLjYwMAk4 My41NzAJODUuMTMwCisxNTMJMTU1Mgk4NC4xNjAJNDY1MDMwMAk4NC4xMDAJODMuOTgwCTg0LjQ0 MAorMTUzCTE1NTMJODQuNDgwCTM4NzQyMDAJODQuMzUwCTgzLjg4MAk4NC42NTAKKzE1MwkxNTU0 CTg0Ljk4MAk0MjA0NjAwCTg0LjQ4MAk4NC4xNTAJODQuOTgwCisxNTMJMTU1NQk4NS43NDAJNTE5 ODAwMAk4NS4xNDAJODUuMDEwCTg1Ljk4MAorMTUzCTE1NTYJODYuNzIwCTQ1NDI3MDAJODUuOTUw CTg1Ljg4MAk4Ni45ODAKKzE1MwkxNTU3CTg3LjE2MAk1MDAxNDAwCTg3LjAwMAk4Ni43MjAJODgu MTAwCisxNTMJMTU1OAk4Ny4zMjAJNTE1MDgwMAk4Ny45NTAJODcuMTMwCTg4LjAzMAorMTUzCTE1 NTkJODguMDQwCTM5ODQ0MDAJODcuMTQwCTg3LjEwMAk4OC4xMDAKKzE1MwkxNTYwCTg3LjQyMAkz MDc2OTAwCTg4LjA0MAk4Ny40MDAJODguMTAwCisxNTMJMTU2MQk4Ni43MTAJNDA5MDAwMAk4Ny40 MzAJODYuNTEwCTg3LjkxMAorMTUzCTE1NjIJODYuNjMwCTMwMTYzMDAJODYuNzcwCTg2LjI3MAk4 Ny4yMDAKKzE1MwkxNTYzCTg2LjAwMAk0NjI2NjAwCTg2LjAyMAk4NS41ODAJODYuMjAwCisxNTMJ MTU2NAk4NC45ODAJNjY2NTIwMAk4Ni4yNjAJODQuNDMwCTg2LjQ4MAorMTUzCTE1NjUJODQuNzgw CTQyMzM3MDAJODQuNzUwCTg0LjMwMAk4NC45ODAKKzE1MwkxNTY2CTg0Ljg1MAk1OTI4NTAwCTg0 Ljc4MAk4NC42MDAJODUuMjUwCisxNTMJMTU2Nwk4NS45MjAJNzI3NTYwMAk4NC4zMDAJODQuMjkw CTg2LjE1MAorMTUzCTE1NjgJODkuMzcwCTEzODI0NTAwCTg4LjIwMAk4OC4wMDAJODkuNzMwCisx NTMJMTU2OQk4OC44MjAJNzA3OTgwMAk4OC40NTAJODguMjkwCTg5LjE5MAorMTUzCTE1NzAJODgu MTAwCTYyNzIxMDAJODguNDAwCTg3LjY2MAk4OC43NjAKKzE1MwkxNTcxCTg3LjM5MAk1OTk4OTAw CTg4LjIyMAk4Ny4yOTAJODguNDUwCisxNTMJMTU3Mgk4OC40MzAJNTc3NTAwMAk4Ny4zNjAJODcu MzEwCTg4LjkwMAorMTUzCTE1NzMJODkuMDAwCTczMzczMDAJODguMzMwCTg4LjI1MAk4OS41NzAK KzE1MwkxNTc0CTkwLjAwMAk2MDM1MTAwCTg4LjU4MAk4OC41MDAJOTAuMjcwCisxNTMJMTU3NQk4 OS41MDAJNDIyNjUwMAk4OS44MDAJODkuNDMwCTkwLjI0MAorMTUzCTE1NzYJODkuNzUwCTQ1MTg1 MDAJODkuNDAwCTg4Ljk1MAk4OS45MDAKKzE1MwkxNTc3CTkwLjExMAk1MTYwOTAwCTg5LjMzMAk4 OS4yMzAJOTAuNjAwCisxNTMJMTU3OAk5MC40NzAJNTM5MTEwMAk4OS41NTAJODkuNTAwCTkxLjIy MAorMTUzCTE1NzkJOTEuMjAwCTY1NTMzMDAJOTEuMjUwCTkwLjk3MAk5MS45MDAKKzE1MwkxNTgw CTkyLjM4MAk2OTUyMTAwCTkxLjA1MAk5MC44MjAJOTIuNzAwCisxNTMJMTU4MQk5My4yODAJNjcw ODUwMAk5Mi40MDAJOTIuNDAwCTkzLjUyMAorMTUzCTE1ODIJOTMuMzcwCTQ5MDczMDAJOTIuNTAw CTkyLjUwMAk5My43MDAKKzE1MwkxNTgzCTkzLjM3MAk0NTEzMTAwCTkzLjAwMAk5My4wMDAJOTMu OTUwCisxNTQJMTU4NAk5NC4xMzAJMzU0MTIwMAk5NC4yODAJOTQuMTMwCTk0LjY0MAorMTU0CTE1 ODUJOTIuNzAwCTU2NjQyMDAJOTQuMTQwCTkyLjU0MAk5NC44MzAKKzE1NAkxNTg2CTkyLjc2MAk0 ODM4NzAwCTkyLjk1MAk5Mi4zMDAJOTMuMTAwCisxNTQJMTU4Nwk5My4zMDAJNDIzMzAwMAk5Mi43 MDAJOTIuNTAwCTkzLjk3MAorMTU0CTE1ODgJOTMuNTcwCTI4Njg4MDAJOTMuMTYwCTkzLjE2MAk5 NC4wMjAKKzE1NAkxNTg5CTk0LjMzMAk0Mjk5MjAwCTkzLjUwMAk5My40ODAJOTQuNjcwCisxNTUJ MTU5MAk5My4zMDAJMzgyMTkwMAk5Mi42NDAJOTIuNTkwCTkzLjQzMAorMTU1CTE1OTEJOTIuOTIw CTQ1NDEyMDAJOTIuNzUwCTkyLjc1MAk5My43MzAKKzE1NQkxNTkyCTkyLjQxMAk0MDM3OTAwCTkz LjE1MAk5Mi4yMDAJOTMuMjEwCisxNTUJMTU5Mwk5Mi4zNzAJNDc1NDAwMAk5Mi45NDAJOTIuMzYw CTkzLjE4MAorMTU1CTE1OTQJOTEuNjAwCTgwNTEwMDAJOTIuMzUwCTkxLjU5MAk5Mi41MTAKKzE1 NQkxNTk1CTkyLjEzMAk1MDg3ODAwCTkxLjcwMAk5MS43MDAJOTIuNTYwCisxNTUJMTU5Ngk5Mi4z NTAJNDUxMzkwMAk5Mi4wMjAJOTIuMDEwCTkzLjAwMAorMTU1CTE1OTcJOTIuNDEwCTM0MjQ4MDAJ OTIuMzUwCTkyLjA5MAk5Mi44MDAKKzE1NQkxNTk4CTkxLjUxMAk0NDk0MzAwCTkyLjI1MAk5MS4y MDAJOTIuNDEwCisxNTYJMTU5OQk5MS4zODAJNDQxOTEwMAk5MC40NjAJOTAuMjIwCTkxLjQxMAor MTU2CTE2MDAJOTAuNDQwCTU3NDA4MDAJOTEuNDkwCTkwLjA0MAk5MS43NjAKKzE1NgkxNjAxCTkw LjMyMAkzNzM3OTAwCTkwLjA4MAk4OS43NzMJOTAuNjIwCisxNTYJMTYwMgk4OS41NzAJNDU3OTMw MAk5MC4yMzAJODkuMjYwCTkwLjMzMAorMTU2CTE2MDMJODkuMDAwCTc4MzY4MDAJODkuMDUwCTg4 LjcwNgk4OS4zODAKKzE1NgkxNjA0CTg4LjQ0MAk2Mzc2NTAwCTg5LjAwMAk4OC4xMDAJODkuMjAw CisxNTYJMTYwNQk4Ny42MDAJNTI3MzQwMAk4OC4yODAJODcuNTAwCTg4LjQ2MAorMTU2CTE2MDYJ ODYuMjAwCTgyOTY1MDAJODcuMzUwCTg2LjA5MAk4Ny41NjAKKzE1NgkxNjA3CTg1Ljc1MAk4NDUw MDAwCTg1LjkwMAk4NS4xNzAJODYuMjQwCisxNTYJMTYwOAk4NC41NzAJNzA5MDgwMAk4NS43NjAJ ODQuMjQwCTg1Ljk3MgorMTU2CTE2MDkJODMuNjQwCTEwNzA4MzAwCTg0LjYzMAk4My40NzAJODUu NDEwCisxNTYJMTYxMAk3Ni43MDAJMjc5MzI0MDAJNzkuNDkwCTc2LjMzMAk3OS42NjAKKzE1Ngkx NjExCTc2LjY1MAkxMzI1NjEwMAk3Ny4xNTAJNzYuMTQwCTc3Ljc1MAorMTU2CTE2MTIJNzUuNDgw CTkyOTI3MDAJNzYuOTgwCTc1LjI1MAk3Ny4yMDAKKzE1NgkxNjEzCTcyLjAxMAkyMDM4OTgwMAk3 NS40ODAJNzEuODUwCTc1Ljg3MAorMTU2CTE2MTQJNzQuMDMwCTE2MjczNjAwCTcyLjk5MAk3Mi44 MDAJNzQuMTAwCisxNTYJMTYxNQk3NC4yMTAJMTA5ODUyMDAJNzQuMDUwCTczLjI2MAk3NC43MDAK KzE1NgkxNjE2CTc0LjYxMAkxMDIyMzQwMAk3NS4yNDAJNzQuMDUwCTc1LjcyMAorMTU2CTE2MTcJ NzUuNDMwCTEyNTAwMjAwCTc0LjY4MAk3NC42NTAJNzYuOTgwCisxNTYJMTYxOAk3Ny4wNTAJMTE3 MDY4MDAJNzUuNjkwCTc1LjUwMAk3Ny4xODAKKzE1NgkxNjE5CTc1LjkxMAk4NjM4MzAwCTc3LjA1 MAk3NS42NTAJNzcuMTEwCisxNTcJMTYyMAk4My4xNDAJNTM0MDkwMAk4Mi45MzAJODIuNTAwCTgz Ljc4MAorMTU3CTE2MjEJODQuMDAwCTQ0OTAyMDAJODMuMTQwCTgzLjAwMAk4NC4wODAKKzE1Nwkx NjIyCTg0LjE5MAk0NzEyOTAwCTgzLjcxMAk4My41NjAJODQuNjMwCisxNTcJMTYyMwk4NC4xOTAJ NTIxMDYwMAk4NC4xNTAJODMuNzkwCTg0LjY5MAorMTU3CTE2MjQJODQuNzAwCTQ2NjE3MDAJODQu MjAwCTg0LjEwMAk4NC45MDAKKzE1NwkxNjI1CTg2LjA4MAk3Nzg4NjAwCTg0LjQ1MAk4NC40NDAJ ODYuMjEwCisxNTcJMTYyNgk4Ni43MTAJODYzMzYwMAk4Ni4wODAJODUuNzUwCTg3LjYwMAorMTU3 CTE2MjcJODYuOTUwCTEzMzI4MzAwCTg2LjMzMAk4Ni4yMjAJODcuOTQwCisxNTcJMTYyOAk4OS44 MjAJMjc4NzYyMDAJOTAuNTEwCTg5LjczMAk5Mi4wNDAKKzE1NwkxNjI5CTg5Ljg2MAkxMDY3NjQw MAk4OS44MDAJODkuMzEwCTkwLjk4MAorMTU3CTE2MzAJOTAuNDgwCTczOTE2MDAJOTAuMDQwCTg5 LjU1MAk5MC43MDAKKzE1NwkxNjMxCTkxLjU2MAk4ODYyMzAwCTkwLjA1MAk5MC4wMTAJOTIuMDAw CisxNTcJMTYzMgk5MS40OTAJOTIyMjUwMAk5MC45MTAJOTAuODAwCTkxLjk1MApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHIub3V0CmluZGV4IDM1YjkwYTA0NDkyLi5lY2JlODM1Y2JiNCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMSwxMSArMSwyNSBAQAogLS0KIC0tIFRlc3QgZm9yIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uOiBXSU5ET1cgY2xhdXNlIGludGVncmF0aW9uIGFuZAotLS0g cmVhbC13b3JsZCBzY2VuYXJpbyB0ZXN0cyB1c2luZyBzdG9jayBwcmljZSBkYXRhLgorLS0gc2Nl bmFyaW8gdGVzdHMgdXNpbmcgc3ludGhldGljIHN0b2NrIGRhdGEuCiAtLQogLS0gUGFyc2VyL3Bs YW5uZXIgdGVzdHM6IHJwcl9iYXNlLnNxbAogLS0gTkZBIGVuZ2luZSB0ZXN0czogcnByX25mYS5z cWwKIC0tIEVYUExBSU4gc3RhdGlzdGljcyB0ZXN0czogcnByX2V4cGxhaW4uc3FsCiAtLQorXGdl dGVudiBhYnNfc3JjZGlyIFBHX0FCU19TUkNESVIKKy0tIFN5bnRoZXRpYyBzdG9jayBkYXRhIGZv ciBSUFIgcGF0dGVybiBtYXRjaGluZyB0ZXN0cworQ1JFQVRFIFRBQkxFIHJwcl9zdG9jayAoCisg ICAgICAgcGFydF9pZCBpbnRlZ2VyLAorICAgICAgIHJuICAgICAgaW50ZWdlciwKKyAgICAgICBw cmljZSAgIG51bWVyaWMoMTAsMyksCisgICAgICAgdm9sdW1lICBiaWdpbnQsCisgICAgICAgb3Bl biAgICBudW1lcmljKDEwLDMpLAorICAgICAgIGxvdyAgICAgbnVtZXJpYygxMCwzKSwKKyAgICAg ICBoaWdoICAgIG51bWVyaWMoMTAsMykKKyk7Citcc2V0IGZpbGVuYW1lIDphYnNfc3JjZGlyICcv ZGF0YS9zdG9jay5kYXRhJworQ09QWSBycHJfc3RvY2sgRlJPTSA6J2ZpbGVuYW1lJzsKK0FOQUxZ WkUgcnByX3N0b2NrOwogQ1JFQVRFIFRFTVAgVEFCTEUgc3RvY2sgKAogICAgICAgIGNvbXBhbnkg VEVYVCwKICAgICAgICB0ZGF0ZSBEQVRFLApAQCAtMTgzOSwzICsxODUzLDUwNCBAQCBXSU5ET1cg dyBBUyAoCiAoNiByb3dzKQogCiBEUk9QIFRBQkxFIHJwcl9jb25zZWNfbnVsbDsKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gU3RvY2sgU2NlbmFyaW8gVGVzdHMgKDE2MzIgcm93cywgcGFydGl0aW9uZWQgcmVnaW9ucykK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gQ29uc2VjdXRpdmUgcmlzaW5nIGRheXM6IGZpbmQgc3RyZWFrcyBvZiA3KyBk YXlzCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgZmlyc3RfdmFsdWUocm4pIE9WRVIgdyBB UyBzdGFydF9ybiwKKyAgICAgICAgICAgbGFzdF92YWx1ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwK KyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGRheXMKKyAgICBGUk9NIHJwcl9zdG9jawor ICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZIHBhcnRfaWQKKyAgICAgICAg T1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg ICAgICBQQVRURVJOIChVUHs3LH0pCisgICAgICAgIERFRklORSBVUCBBUyBwcmljZSA+IFBSRVYo cHJpY2UpCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0 YXJ0X3JuIHwgZW5kX3JuIHwgZGF5cyAKKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tCisgICAg ICAgMjkgfCAgICAgMzUgfCAgICA3CisgICAgICAgMzggfCAgICAgNDQgfCAgICA3CisgICAgICAg OTYgfCAgICAxMDIgfCAgICA3CisgICAgICAxMTggfCAgICAxMjUgfCAgICA4CisgICAgICAzMDgg fCAgICAzMTcgfCAgIDEwCisgICAgICAzMjggfCAgICAzMzQgfCAgICA3CisgICAgICA0NzUgfCAg ICA0ODEgfCAgICA3CisgICAgICA0OTEgfCAgICA0OTcgfCAgICA3CisgICAgICA1MDkgfCAgICA1 MTcgfCAgICA5CisgICAgICA1MzYgfCAgICA1NDIgfCAgICA3CisgICAgICA1ODYgfCAgICA1OTIg fCAgICA3CisgICAgICA2NDMgfCAgICA2NTAgfCAgICA4CisgICAgICA3NDAgfCAgICA3NDYgfCAg ICA3CisgICAgICA3NTMgfCAgICA3NjAgfCAgICA4CisgICAgICA5MDQgfCAgICA5MTAgfCAgICA3 CisgICAgICA5NTYgfCAgICA5NjUgfCAgIDEwCisgICAgICA5ODUgfCAgICA5OTEgfCAgICA3Cisg ICAgIDEwOTUgfCAgIDExMDEgfCAgICA3CisgICAgIDExMDQgfCAgIDExMTAgfCAgICA3CisgICAg IDExODEgfCAgIDExODcgfCAgICA3CisgICAgIDEyMjEgfCAgIDEyMjggfCAgICA4CisgICAgIDEy NjIgfCAgIDEyNjggfCAgICA3CisgICAgIDEyNzIgfCAgIDEyNzggfCAgICA3CisgICAgIDEzNzMg fCAgIDEzODAgfCAgICA4CisgICAgIDE0MzQgfCAgIDE0NDAgfCAgICA3CisgICAgIDE0ODUgfCAg IDE0OTEgfCAgICA3CisgICAgIDE1NTMgfCAgIDE1NTkgfCAgICA3CisgICAgIDE1NzYgfCAgIDE1 ODIgfCAgICA3CisgICAgIDE2MjQgfCAgIDE2MzEgfCAgICA4CisoMjkgcm93cykKKworLS0gVi1z aGFwZSByZWNvdmVyeTogNCsgZGF5cyBkZWNsaW5lIGZvbGxvd2VkIGJ5IDQrIGRheXMgcmlzZQor U0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3Rh cnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAg ICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRfcHJpY2UsCisgICAgICAg ICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UsCisgICAgICAgICAgIGNv dW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBB UyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAo REVDTElORXs0LH0gUklTRXs0LH0pCisgICAgICAgIERFRklORQorICAgICAgICAgICAgREVDTElO RSBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgICAgICAgICAgUklTRSBBUyBwcmljZSA+IFBS RVYocHJpY2UpCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOwor IHN0YXJ0X3JuIHwgZW5kX3JuIHwgc3RhcnRfcHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAg IDg0IHwgICAgIDkzIHwgICAgIDMwMS4wMDAgfCAgIDMwOS43NTAgfCAgIDEwCisgICAgICAxMTQg fCAgICAxMjUgfCAgICAgMzk0LjUwMCB8ICAgNDE4Ljc1MCB8ICAgMTIKKyAgICAgIDE3MyB8ICAg IDE4MyB8ICAgICAyNjAuMDAwIHwgICAyODIuMDAwIHwgICAxMQorICAgICAgMjA0IHwgICAgMjE0 IHwgICAgIDE3OS4wMDAgfCAgIDE3MS41MDAgfCAgIDExCisgICAgICAyNjIgfCAgICAyNzEgfCAg ICAgMjc3LjYyNSB8ICAgMjc1LjUwMCB8ICAgMTAKKyAgICAgIDMzNyB8ICAgIDM0NCB8ICAgICAz MDguMjUwIHwgICAzMDguMTI1IHwgICAgOAorICAgICAgNDM2IHwgICAgNDQ0IHwgICAgICA1Ni42 MzAgfCAgICA2MC4yNTAgfCAgICA5CisgICAgICA1NjcgfCAgICA1NzUgfCAgICAgMTI2LjUwMCB8 ICAgMTI3LjUwMCB8ICAgIDkKKyAgICAgIDU5OCB8ICAgIDYwNyB8ICAgICAxMTIuMjUwIHwgICAx MTYuNTAwIHwgICAxMAorICAgICAgNjUzIHwgICAgNjYwIHwgICAgIDEyOS4zNzUgfCAgIDEyOC4x MjUgfCAgICA4CisgICAgICA2NjMgfCAgICA2NzEgfCAgICAgMTI1LjYzMCB8ICAgMTMwLjI1MCB8 ICAgIDkKKyAgICAgIDY4NSB8ICAgIDY5MyB8ICAgICAxMjAuMTMwIHwgICAxMjQuMDAwIHwgICAg OQorICAgICAgNzEwIHwgICAgNzE5IHwgICAgIDE0MS4xMjUgfCAgIDE0NC4xMzAgfCAgIDEwCisg ICAgICA4MzMgfCAgICA4NDEgfCAgICAgMTA2LjUwMCB8ICAgMTExLjEyNSB8ICAgIDkKKyAgICAg IDg1MyB8ICAgIDg2MiB8ICAgICAxMDUuMzc1IHwgICAxMDcuNzUwIHwgICAxMAorICAgICAgOTMw IHwgICAgOTM3IHwgICAgICA5Mi4zODAgfCAgICA5Ni4zNzUgfCAgICA4CisgICAgIDExODggfCAg IDExOTcgfCAgICAgMTA1LjI1MCB8ICAgMTA4LjM4MCB8ICAgMTAKKyAgICAgMTE5OCB8ICAgMTIw NiB8ICAgICAxMDAuMTI1IHwgICAxMDAuNTYyIHwgICAgOQorICAgICAxMjUwIHwgICAxMjU5IHwg ICAgIDEzMS40MzcgfCAgIDEzMC44NzUgfCAgIDEwCisgICAgIDEyODUgfCAgIDEyOTUgfCAgICAg MTc2Ljk0MCB8ICAgMTgyLjE5MCB8ICAgMTEKKyAgICAgMTI5OCB8ICAgMTMwNyB8ICAgICAxODEu MDAwIHwgICAxNzguNTYyIHwgICAxMAorICAgICAxMzEwIHwgICAxMzIyIHwgICAgIDE4Ni4zMTAg fCAgIDIxMi4wMDAgfCAgIDEzCisgICAgIDE0MDUgfCAgIDE0MTIgfCAgICAgMTE3LjgwMCB8ICAg MTE3LjUwMCB8ICAgIDgKKyAgICAgMTQ2NyB8ICAgMTQ3NCB8ICAgICAgNzAuNDAwIHwgICAgNzEu ODMwIHwgICAgOAorICAgICAxNDk0IHwgICAxNTAyIHwgICAgICA3OS43NjAgfCAgICA4Ni4wMDAg fCAgICA5CisgICAgIDE2MDAgfCAgIDE2MTggfCAgICAgIDkwLjQ0MCB8ICAgIDc3LjA1MCB8ICAg MTkKKygyNiByb3dzKQorCistLSBXLWJvdHRvbTogZGVjbGluZSwgYm91bmNlLCByZS1kZWNsaW5l LCByZWNvdmVyeQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBP VkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBl bmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRfcHJp Y2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UsCisg ICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAg ICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9S REVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAg ICAgUEFUVEVSTiAoREVDTElORXszLH0gQk9VTkNFezMsfSBESVB7Myx9IFJFQ09WRVJ7Myx9KQor ICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIERFQ0xJTkUgQVMgcHJpY2UgPCBQUkVWKHByaWNl KSwKKyAgICAgICAgICAgIEJPVU5DRSBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICAgICAgICAg ICAgRElQIEFTIHByaWNlIDwgUFJFVihwcmljZSksCisgICAgICAgICAgICBSRUNPVkVSIEFTIHBy aWNlID4gUFJFVihwcmljZSkKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3Rh cnRfcm47Cisgc3RhcnRfcm4gfCBlbmRfcm4gfCBzdGFydF9wcmljZSB8IGVuZF9wcmljZSB8IGRh eXMgCistLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t CisgICAgICAxMzYgfCAgICAxNTMgfCAgICAgNDQ0LjAwMCB8ICAgNDM0LjI1MCB8ICAgMTgKKyAg ICAgIDQ1NiB8ICAgIDQ2OSB8ICAgICAgNjQuNTAwIHwgICAgNjUuMTI1IHwgICAxNAorICAgICAg NTIwIHwgICAgNTM0IHwgICAgIDExNS4yNTAgfCAgIDExNS43NTAgfCAgIDE1CisgICAgICA2MTAg fCAgICA2MjMgfCAgICAgMTA3LjEyNSB8ICAgMTA5LjAwMCB8ICAgMTQKKyAgICAgIDc5MSB8ICAg IDgwMiB8ICAgICAxMTMuNTAwIHwgICAxMTguMjUwIHwgICAxMgorICAgICAgOTQyIHwgICAgOTUz IHwgICAgICA5MS4yNTAgfCAgICA4OS44NzUgfCAgIDEyCisgICAgIDExODggfCAgIDEyMDYgfCAg ICAgMTA1LjI1MCB8ICAgMTAwLjU2MiB8ICAgMTkKKyAgICAgMTU2MCB8ICAgMTU3NCB8ICAgICAg ODcuNDIwIHwgICAgOTAuMDAwIHwgICAxNQorKDggcm93cykKKworLS0gVm9sdW1lIHN1cmdlIHN0 cmVhazogNisgY29uc2VjdXRpdmUgZGF5cyBvZiBpbmNyZWFzaW5nIHZvbHVtZQorU0VMRUNUICog RlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisg ICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZp cnN0X3ZhbHVlKHZvbHVtZSkgT1ZFUiB3IEFTIHN0YXJ0X3ZvbCwKKyAgICAgICAgICAgbGFzdF92 YWx1ZSh2b2x1bWUpIE9WRVIgdyBBUyBlbmRfdm9sLAorICAgICAgICAgICBjb3VudCgqKSBPVkVS IHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAg ICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKElOSVQgU1VSR0V7 NSx9KQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIFNVUkdFIEFTIHZvbHVtZSA+IFBSRVYo dm9sdW1lKQorICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKyBz dGFydF9ybiB8IGVuZF9ybiB8IHN0YXJ0X3ZvbCB8IGVuZF92b2wgIHwgZGF5cyAKKy0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0KKyAgICAgIDE4NiB8ICAg IDE5MSB8ICAgICAyNTEwMCB8ICAgIDM1MzAwIHwgICAgNgorICAgICAgMjkxIHwgICAgMjk2IHwg ICAgIDUyMjAwIHwgICAxODgzMDAgfCAgICA2CisgICAgICA0MDggfCAgICA0MTMgfCAgICAxNjMz MDAgfCAgIDYxMDMwMCB8ICAgIDYKKyAgICAgIDQzOSB8ICAgIDQ0NCB8ICAgIDQzODQwMCB8ICAx MDg5MjAwIHwgICAgNgorICAgICAgNTAwIHwgICAgNTA2IHwgICAgMzczNzAwIHwgIDExMTQyMDAg fCAgICA3CisgICAgICA1NTEgfCAgICA1NTggfCAgICA2OTExMDAgfCAgMjA5NzUwMCB8ICAgIDgK KyAgICAgIDYzNSB8ICAgIDY0MCB8ICAgIDQxODMwMCB8ICAxMzg4MTAwIHwgICAgNgorICAgICAg NzgzIHwgICAgNzg4IHwgICAgNzY5MDAwIHwgIDE1NjQ5MDAgfCAgICA2CisgICAgICA4MjQgfCAg ICA4MzAgfCAgICA2ODIyMDAgfCAgMjQxODcwMCB8ICAgIDcKKyAgICAgIDk2OCB8ICAgIDk3NCB8 ICAgIDk5MzEwMCB8ICAyMzQxMjAwIHwgICAgNworICAgICAxMDcyIHwgICAxMDc3IHwgICAxMjU3 MjAwIHwgIDIzMjc3MDAgfCAgICA2CisgICAgIDEwNzggfCAgIDEwODQgfCAgIDE3NDgzMDAgfCAg NTUxNDMwMCB8ICAgIDcKKyAgICAgMTA5MyB8ICAgMTA5OCB8ICAgMjY2NDQwMCB8IDEzMTQ1OTAw IHwgICAgNgorICAgICAxMzM0IHwgICAxMzM5IHwgICAzMjIwOTAwIHwgMTA1NTI2MDAgfCAgICA2 CisgICAgIDE1MjQgfCAgIDE1MzAgfCAgIDM1NjI0MDAgfCAgNzAxMjEwMCB8ICAgIDcKKyAgICAg MTUzMyB8ICAgMTUzOCB8ICAgMzU0ODUwMCB8ICA4NTYwODAwIHwgICAgNgorICAgICAxNTc1IHwg ICAxNTgwIHwgICA0MjI2NTAwIHwgIDY5NTIxMDAgfCAgICA2CisoMTcgcm93cykKKworLS0gVm9s YXRpbGl0eSBzcXVlZXplOiBjb25zZWN1dGl2ZSBuYXJyb3dpbmcgb2YgZGFpbHkgcHJpY2UgcmFu Z2UKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFT IHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAor ICAgICAgICAgICBmaXJzdF92YWx1ZShoaWdoIC0gbG93KSBPVkVSIHcgQVMgc3RhcnRfcmFuZ2Us CisgICAgICAgICAgIGxhc3RfdmFsdWUoaGlnaCAtIGxvdykgT1ZFUiB3IEFTIGVuZF9yYW5nZSwK KyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGRheXMKKyAgICBGUk9NIHJwcl9zdG9jawor ICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZIHBhcnRfaWQKKyAgICAgICAg T1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg ICAgICBQQVRURVJOIChJTklUIE5BUlJPV3s1LH0pCisgICAgICAgIERFRklORQorICAgICAgICAg ICAgTkFSUk9XIEFTIChoaWdoIC0gbG93KSA8IFBSRVYoaGlnaCkgLSBQUkVWKGxvdykKKyAgICAp CispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47Cisgc3RhcnRfcm4gfCBlbmRf cm4gfCBzdGFydF9yYW5nZSB8IGVuZF9yYW5nZSB8IGRheXMgCistLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tCisgICAgICAxMjggfCAgICAxMzMgfCAg ICAgIDExLjAwMCB8ICAgICAzLjAwMCB8ICAgIDYKKyAgICAgIDE3MCB8ICAgIDE3NSB8ICAgICAg MTAuMjUwIHwgICAgIDIuNzUwIHwgICAgNgorICAgICAgMTk0IHwgICAgMjAxIHwgICAgICAxMC4w MDAgfCAgICAgMS42MjUgfCAgICA4CisgICAgICAyODMgfCAgICAyODggfCAgICAgICA3LjAwMCB8 ICAgICAyLjM3NSB8ICAgIDYKKyAgICAgIDMyMCB8ICAgIDMyNSB8ICAgICAgIDQuNzUwIHwgICAg IDIuNTAwIHwgICAgNgorICAgICAgNTc4IHwgICAgNTgzIHwgICAgICAgMi43NTAgfCAgICAgMS4x MjUgfCAgICA2CisgICAgICA3MjUgfCAgICA3MzEgfCAgICAgICAzLjM3MCB8ICAgICAxLjEyNSB8 ICAgIDcKKyAgICAgIDc3NSB8ICAgIDc4MCB8ICAgICAgIDQuNTAwIHwgICAgIDAuODc1IHwgICAg NgorICAgICAgOTEzIHwgICAgOTE4IHwgICAgICAgMi44NzAgfCAgICAgMS4yNTAgfCAgICA2Cisg ICAgIDExMzAgfCAgIDExMzUgfCAgICAgICAzLjAwMCB8ICAgICAxLjEyNSB8ICAgIDYKKyAgICAg MTM0OCB8ICAgMTM1MyB8ICAgICAgIDYuNjIwIHwgICAgIDEuNTYyIHwgICAgNgorKDExIHJvd3Mp CisKKy0tIEdhcCB1cDogb3BlbiBzaWduaWZpY2FudGx5IGhpZ2hlciB0aGFuIHByZXZpb3VzIGNs b3NlICg1JSspCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgZmlyc3RfdmFsdWUocm4pIE9W RVIgdyBBUyBnYXBfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMg cHJldl9jbG9zZSwKKyAgICAgICAgICAgbGFzdF92YWx1ZShvcGVuKSBPVkVSIHcgQVMgZ2FwX29w ZW4sCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9zdG9j aworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZIHBhcnRfaWQKKyAgICAg ICAgT1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgICAgICBQQVRURVJOIChQUkVWX0RBWSBHQVBfVVApCisgICAgICAgIERFRklORQorICAgICAg ICAgICAgR0FQX1VQIEFTIG9wZW4gPiBQUkVWKHByaWNlKSAqIDEuMDUKKyAgICApCispIHQgV0hF UkUgY250ID4gMCBPUkRFUiBCWSBnYXBfcm47CisgZ2FwX3JuIHwgcHJldl9jbG9zZSB8IGdhcF9v cGVuIHwgY250IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0KKyAgICA5 ODYgfCAgICAgNDguODc1IHwgICA1Mi44NzUgfCAgIDIKKyAgICA5OTQgfCAgICAgNDIuMzc1IHwg ICA0NC44ODAgfCAgIDIKKyAgIDEwMjkgfCAgICAgNTIuMjUwIHwgICA1NS4wMDAgfCAgIDIKKyAg IDEwMzkgfCAgICAgNTUuODgwIHwgICA1OS4wMDAgfCAgIDIKKyAgIDExNzcgfCAgICAxNDIuMzgw IHwgIDE1MC41MDAgfCAgIDIKKyAgIDEyMzggfCAgICAxMjIuMDAwIHwgIDEyOC4yNTAgfCAgIDIK KyAgIDEzMTggfCAgICAxNzEuODc1IHwgIDE5Ny4yNTAgfCAgIDIKKyAgIDEzODMgfCAgICAxMDMu NTAwIHwgIDExMi4wMDAgfCAgIDIKKyAgIDEzOTIgfCAgICAgOTYuNjg3IHwgIDEwNC4zNzUgfCAg IDIKKyAgIDE0MDEgfCAgICAxMDYuNTAwIHwgIDExMi4wMDAgfCAgIDIKKyAgIDE0NjQgfCAgICAg NjYuNDAwIHwgICA3MC4zNzAgfCAgIDIKKyAgIDE0NzcgfCAgICAgNTcuNTgwIHwgICA2Mi4wMDAg fCAgIDIKKyAgIDE0NzkgfCAgICAgNjMuNDIwIHwgICA2Ny43NTAgfCAgIDIKKyAgIDE0ODEgfCAg ICAgNjQuOTAwIHwgICA3Mi44MDAgfCAgIDIKKyAgIDE1MTcgfCAgICAgOTAuMzEwIHwgICA5NS4w NzAgfCAgIDIKKygxNSByb3dzKQorCistLSBQcmljZS12b2x1bWUgZGl2ZXJnZW5jZTogcHJpY2Ug cmlzaW5nIHdoaWxlIHZvbHVtZSBkZWNsaW5pbmcgKGJlYXJpc2ggc2lnbmFsKQorU0VMRUNUICog RlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisg ICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZp cnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRfcHJpY2UsCisgICAgICAgICAgIGxhc3Rf dmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UsCisgICAgICAgICAgIGNvdW50KCopIE9W RVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAg ICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoSU5JVCBESVZF UkdFezMsfSkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBESVZFUkdFIEFTIHByaWNlID4g UFJFVihwcmljZSkgQU5EIHZvbHVtZSA8IFBSRVYodm9sdW1lKQorICAgICkKKykgdCBXSEVSRSBk YXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKyBzdGFydF9ybiB8IGVuZF9ybiB8IHN0YXJ0X3By aWNlIHwgZW5kX3ByaWNlIHwgZGF5cyAKKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0KKyAgICAgICAxMCB8ICAgICAxMyB8ICAgICAzMzguNTAwIHwg ICAzNDkuNzUwIHwgICAgNAorICAgICAgIDQ3IHwgICAgIDUwIHwgICAgIDM1Mi4wMDAgfCAgIDM1 OC4wMDAgfCAgICA0CisgICAgICAgNTMgfCAgICAgNTYgfCAgICAgMzE0LjAwMCB8ICAgMzE5LjAw MCB8ICAgIDQKKyAgICAgICA2MyB8ICAgICA2NiB8ICAgICAyOTQuNTAwIHwgICAzMDEuNzUwIHwg ICAgNAorICAgICAgIDk5IHwgICAgMTAyIHwgICAgIDQwMS4wMDAgfCAgIDQwNC4wMDAgfCAgICA0 CisgICAgICAxNzcgfCAgICAxODAgfCAgICAgMjQ4LjUwMCB8ICAgMjYxLjc1MCB8ICAgIDQKKyAg ICAgIDIwOSB8ICAgIDIxMiB8ICAgICAxNTIuMDAwIHwgICAxNjYuNTAwIHwgICAgNAorICAgICAg MjM3IHwgICAgMjQwIHwgICAgIDIwNy41MDAgfCAgIDIxNS41MDAgfCAgICA0CisgICAgICAyNzQg fCAgICAyNzcgfCAgICAgMjU5LjUwMCB8ICAgMjY0LjUwMCB8ICAgIDQKKyAgICAgIDM0NyB8ICAg IDM1MCB8ICAgICAzMDYuNzUwIHwgICAzMTIuMDAwIHwgICAgNAorICAgICAgNTMxIHwgICAgNTM0 IHwgICAgIDExMS44NzUgfCAgIDExNS43NTAgfCAgICA0CisgICAgICA1NDUgfCAgICA1NDggfCAg ICAgMTE4LjAwMCB8ICAgMTIxLjAwMCB8ICAgIDQKKyAgICAgIDU2MSB8ICAgIDU2NCB8ICAgICAx MzEuMTMwIHwgICAxMzQuMjUwIHwgICAgNAorICAgICAgNTg2IHwgICAgNTg5IHwgICAgIDExMC4y NTAgfCAgIDExMi4wMDAgfCAgICA0CisgICAgICA2NDUgfCAgICA2NDggfCAgICAgMTI5LjYzMCB8 ICAgMTMzLjI1MCB8ICAgIDQKKyAgICAgIDY1NiB8ICAgIDY2MCB8ICAgICAxMjQuNTAwIHwgICAx MjguMTI1IHwgICAgNQorICAgICAgNjc5IHwgICAgNjgyIHwgICAgIDEyOC4wMDAgfCAgIDEyOS43 NTAgfCAgICA0CisgICAgICA3MzQgfCAgICA3MzcgfCAgICAgMTIxLjM4MCB8ICAgMTIzLjc1MCB8 ICAgIDQKKyAgICAgIDc2MyB8ICAgIDc2NiB8ICAgICAxNTAuNzUwIHwgICAxNTYuNTAwIHwgICAg NAorICAgICAgODQ0IHwgICAgODQ3IHwgICAgIDEwNS41MDAgfCAgIDEwNy44ODAgfCAgICA0Cisg ICAgICA5MjEgfCAgICA5MjQgfCAgICAgIDk3LjI1MCB8ICAgMTAxLjI1MCB8ICAgIDQKKyAgICAg IDk1NiB8ICAgIDk1OSB8ICAgICAgODQuODc1IHwgICAgODcuNTAwIHwgICAgNAorICAgICAgOTYw IHwgICAgOTYzIHwgICAgICA4OC4yNTAgfCAgICA4OS41MDAgfCAgICA0CisgICAgICA5ODcgfCAg ICA5OTAgfCAgICAgIDQ5LjAwMCB8ICAgIDUxLjUwMCB8ICAgIDQKKyAgICAgMTAyMyB8ICAgMTAy NiB8ICAgICAgNTMuMjUwIHwgICAgNTQuNjI1IHwgICAgNAorICAgICAxMDMzIHwgICAxMDM2IHwg ICAgICA1Ny4xMjUgfCAgICA1OC4zODAgfCAgICA0CisgICAgIDEwNjAgfCAgIDEwNjMgfCAgICAg IDg5LjAwMCB8ICAgIDkzLjYyNSB8ICAgIDQKKyAgICAgMTA2NiB8ICAgMTA2OSB8ICAgICAgODku MTMwIHwgICAgOTMuMDAwIHwgICAgNAorICAgICAxMDg3IHwgICAxMDkwIHwgICAgICA4OS4zNzUg fCAgICA5MS43NTAgfCAgICA0CisgICAgIDExNjUgfCAgIDExNjggfCAgICAgMTM3LjYyNSB8ICAg MTQ2Ljg3NSB8ICAgIDQKKyAgICAgMTIwMiB8ICAgMTIwNSB8ICAgICAgOTYuNTAwIHwgICAgOTgu NzUwIHwgICAgNAorICAgICAxMjA5IHwgICAxMjEyIHwgICAgICA5Ni4xMjUgfCAgIDEwMC4yNTAg fCAgICA0CisgICAgIDEyMjAgfCAgIDEyMjMgfCAgICAgMTA2LjEzMCB8ICAgMTEyLjAwMCB8ICAg IDQKKyAgICAgMTIzMSB8ICAgMTIzNCB8ICAgICAxMTcuMDYyIHwgICAxMTkuNjI1IHwgICAgNAor ICAgICAxMjQ0IHwgICAxMjQ3IHwgICAgIDEyMi41MDAgfCAgIDEzMC4wMDAgfCAgICA0CisgICAg IDEzMDQgfCAgIDEzMDcgfCAgICAgMTY5LjUwMCB8ICAgMTc4LjU2MiB8ICAgIDQKKyAgICAgMTM0 MiB8ICAgMTM0NSB8ICAgICAxMjIuMDAwIHwgICAxMjQuMDAwIHwgICAgNAorICAgICAxNDE3IHwg ICAxNDIwIHwgICAgIDEwMS45NjAgfCAgIDEwOC41MzAgfCAgICA0CisgICAgIDE0MzMgfCAgIDE0 MzYgfCAgICAgIDkwLjAwMCB8ICAgIDkzLjc3MCB8ICAgIDQKKyAgICAgMTQzNyB8ICAgMTQ0MCB8 ICAgICAgOTYuOTUwIHwgICAgOTguNTAwIHwgICAgNAorICAgICAxNDQzIHwgICAxNDQ2IHwgICAg IDEyMC4yNTAgfCAgIDEyMi4yMDAgfCAgICA0CisgICAgIDE0NDkgfCAgIDE0NTIgfCAgICAgIDc0 LjY1MCB8ICAgIDc3LjE0MCB8ICAgIDQKKyAgICAgMTQ1NSB8ICAgMTQ1OCB8ICAgICAgNjcuNjAw IHwgICAgNzMuNTAwIHwgICAgNAorICAgICAxNDk3IHwgICAxNTAwIHwgICAgICA3Ni4yNTAgfCAg ICA4MS42NTAgfCAgICA0CisgICAgIDE1MDUgfCAgIDE1MDggfCAgICAgIDc1Ljg2MCB8ICAgIDc5 LjUxMCB8ICAgIDQKKyAgICAgMTUxMSB8ICAgMTUxNCB8ICAgICAgNzkuNzUwIHwgICAgODEuMDIw IHwgICAgNAorICAgICAxNTE4IHwgICAxNTIxIHwgICAgICA5NC4wMjAgfCAgICA5Ny43MDAgfCAg ICA0CisgICAgIDE1NDEgfCAgIDE1NDQgfCAgICAgIDgzLjY1MCB8ICAgIDg1LjI1MCB8ICAgIDQK KyAgICAgMTU0NyB8ICAgMTU1MCB8ICAgICAgODIuMjEwIHwgICAgODQuMDQwIHwgICAgNAorICAg ICAxNTg1IHwgICAxNTg4IHwgICAgICA5Mi43MDAgfCAgICA5My41NzAgfCAgICA0CisgICAgIDE1 OTQgfCAgIDE1OTcgfCAgICAgIDkxLjYwMCB8ICAgIDkyLjQxMCB8ICAgIDQKKyAgICAgMTYxMyB8 ICAgMTYxNiB8ICAgICAgNzIuMDEwIHwgICAgNzQuNjEwIHwgICAgNAorKDUyIHJvd3MpCisKKy0t IENvbnNvbGlkYXRpb24gdGhlbiBicmVha291dDogc2lkZXdheXMgbW92ZW1lbnQgZm9sbG93ZWQg Ynkgc2hhcnAgcmlzZQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJu KSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBB UyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRf cHJpY2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2Us CisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sK KyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAg IE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICAgICAgUEFUVEVSTiAoRkxBVHs1LH0gQlJFQUtPVVQpCisgICAgICAgIERFRklORQorICAgICAg ICAgICAgRkxBVCBBUyBwcmljZSBCRVRXRUVOIFBSRVYocHJpY2UpICogMC45OCBBTkQgUFJFVihw cmljZSkgKiAxLjAyLAorICAgICAgICAgICAgQlJFQUtPVVQgQVMgcHJpY2UgPiBQUkVWKHByaWNl KSAqIDEuMDUKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47Cisg c3RhcnRfcm4gfCBlbmRfcm4gfCBzdGFydF9wcmljZSB8IGVuZF9wcmljZSB8IGRheXMgCistLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tCisgICAgICAg NjkgfCAgICAgODEgfCAgICAgMjk2Ljc1MCB8ICAgMzE0LjAwMCB8ICAgMTMKKyAgICAgIDIxNCB8 ICAgIDIyNSB8ICAgICAxNzEuNTAwIHwgICAxNjQuMTI1IHwgICAxMgorICAgICAgMzcxIHwgICAg Mzk1IHwgICAgICA3MS42MzAgfCAgICA3MS4yNTAgfCAgIDI1CisgICAgICA0MTYgfCAgICA0MjQg fCAgICAgIDU0LjI1MCB8ICAgIDUzLjg3NSB8ICAgIDkKKyAgICAgIDQ4NCB8ICAgIDQ5NCB8ICAg ICAgNzUuNTAwIHwgICAgNzkuMDAwIHwgICAxMQorICAgICAgODY1IHwgICAgODkyIHwgICAgIDEx Mi41MDAgfCAgIDExNS43NTAgfCAgIDI4CisgICAgIDEwMDcgfCAgIDEwMjAgfCAgICAgIDU5LjUw MCB8ICAgIDU4LjYzMCB8ICAgMTQKKyAgICAgMTExMyB8ICAgMTExOCB8ICAgICAxMTAuNzUwIHwg ICAxMTcuNjI1IHwgICAgNgorICAgICAxMTQ2IHwgICAxMTUyIHwgICAgIDEzMy43NTAgfCAgIDE0 NS4wMDAgfCAgICA3CisgICAgIDExNzEgfCAgIDExNzggfCAgICAgMTM3Ljg4MCB8ICAgMTUzLjYy NSB8ICAgIDgKKyAgICAgMTM1MCB8ICAgMTM1NyB8ICAgICAxMDYuMTI1IHwgICAxMTIuMDAwIHwg ICAgOAorICAgICAxMzYwIHwgICAxMzcwIHwgICAgIDEwOS4xMjUgfCAgIDExNS42MjUgfCAgIDEx CisoMTIgcm93cykKKworLS0gRGVhZCBjYXQgYm91bmNlOiBkZWNsaW5lIGZvbGxvd2VkIGJ5IHdl YWsgcmVjb3ZlcnkgKDwxJSBwZXIgZGF5KQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZp cnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUo cm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVS IHcgQVMgc3RhcnRfcHJpY2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBB UyBlbmRfcHJpY2UsCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJP TSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0 X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoREVDTElORXs0LH0gQk9VTkNFezMsfSkKKyAgICAg ICAgREVGSU5FCisgICAgICAgICAgICBERUNMSU5FIEFTIHByaWNlIDwgUFJFVihwcmljZSksCisg ICAgICAgICAgICBCT1VOQ0UgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSBBTkQgcHJpY2UgPCBQUkVW KHByaWNlKSAqIDEuMDEKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRf cm47Cisgc3RhcnRfcm4gfCBlbmRfcm4gfCBzdGFydF9wcmljZSB8IGVuZF9wcmljZSB8IGRheXMg CistLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tCisg ICAgICAgNTkgfCAgICAgNjYgfCAgICAgMzE1LjAwMCB8ICAgMzAxLjc1MCB8ICAgIDgKKyAgICAg IDI2MiB8ICAgIDI3MSB8ICAgICAyNzcuNjI1IHwgICAyNzUuNTAwIHwgICAxMAorICAgICAgMjgw IHwgICAgMjg3IHwgICAgIDI3Mi4wMDAgfCAgIDI2MS4yNTAgfCAgICA4CisgICAgICAzNjEgfCAg ICAzNjggfCAgICAgIDc1LjM3NSB8ICAgIDc0LjEzMCB8ICAgIDgKKyAgICAgIDQyNyB8ICAgIDQz MyB8ICAgICAgNjUuMTMwIHwgICAgNjUuNTAwIHwgICAgNworICAgICAgNDQ3IHwgICAgNDUzIHwg ICAgICA1NS41MDAgfCAgICA1NC42MjUgfCAgICA3CisgICAgICA2NTMgfCAgICA2NTkgfCAgICAg MTI5LjM3NSB8ICAgMTI2LjYyNSB8ICAgIDcKKyAgICAgIDY3NCB8ICAgIDY4MiB8ICAgICAxMzIu Mzc1IHwgICAxMjkuNzUwIHwgICAgOQorICAgICAgODMzIHwgICAgODM5IHwgICAgIDEwNi41MDAg fCAgIDEwNy4xMjUgfCAgICA3CisgICAgIDE0MjMgfCAgIDE0MzAgfCAgICAgMTA4LjE4MCB8ICAg MTA2LjIwMCB8ICAgIDgKKyAgICAgMTU5MSB8ICAgMTU5NyB8ICAgICAgOTIuOTIwIHwgICAgOTIu NDEwIHwgICAgNworKDExIHJvd3MpCisKKy0tIFVwdHJlbmQ6IDcrIGNvbnNlY3V0aXZlIGRheXMg b2YgaGlnaGVyIGhpZ2hzIEFORCBoaWdoZXIgbG93cworU0VMRUNUICogRlJPTSAoCisgICAgU0VM RUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3Rf dmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcgQVMgc3RhcnRfcHJpY2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9W RVIgdyBBUyBlbmRfcHJpY2UsCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisg ICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBC WSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoVVBUUkVORHs3LH0pCisgICAgICAgIERF RklORQorICAgICAgICAgICAgVVBUUkVORCBBUyBoaWdoID4gUFJFVihoaWdoKSBBTkQgbG93ID4g UFJFVihsb3cpCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOwor IHN0YXJ0X3JuIHwgZW5kX3JuIHwgc3RhcnRfcHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAg MTU2IHwgICAgMTYyIHwgICAgIDMxNy4wMDAgfCAgIDMyOS41MDAgfCAgICA3CisgICAgICAyOTkg fCAgICAzMDUgfCAgICAgMjY2LjAwMCB8ICAgMjczLjUwMCB8ICAgIDcKKyAgICAgIDY5NiB8ICAg IDcwMiB8ICAgICAxNDQuNjMwIHwgICAxNTIuNTAwIHwgICAgNworICAgICAgNzQxIHwgICAgNzQ3 IHwgICAgIDE1NS4yNTAgfCAgIDE2Ni43NTAgfCAgICA3CisgICAgICA4OTUgfCAgICA5MDEgfCAg ICAgMTE5LjI1MCB8ICAgMTI2Ljc1MCB8ICAgIDcKKyAgICAgMTEyMSB8ICAgMTEyNyB8ICAgICAx MDMuNjMwIHwgICAxMDguODc1IHwgICAgNworICAgICAxMjExIHwgICAxMjE3IHwgICAgICA5OS4x MzAgfCAgIDEwMi44NzUgfCAgICA3CisgICAgIDEyNzEgfCAgIDEyNzggfCAgICAgMTY0LjM3NSB8 ICAgMTg5LjI1MCB8ICAgIDgKKyAgICAgMTYyMSB8ICAgMTYyOCB8ICAgICAgODQuMDAwIHwgICAg ODkuODIwIHwgICAgOAorKDkgcm93cykKKworLS0gUGFuaWMgYW5kIHNuYXAtYmFjazogMyUrIGRh aWx5IGRyb3BzIGZvbGxvd2VkIGJ5IDIlKyByZWJvdW5kCitTRUxFQ1QgKiBGUk9NICgKKyAgICBT RUxFQ1QgZmlyc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBzdGFydF9ybiwKKyAgICAgICAgICAgbGFz dF92YWx1ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwKKyAgICAgICAgICAgZmlyc3RfdmFsdWUocHJp Y2UpIE9WRVIgdyBBUyBzdGFydF9wcmljZSwKKyAgICAgICAgICAgbGFzdF92YWx1ZShwcmljZSkg T1ZFUiB3IEFTIGVuZF9wcmljZSwKKyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGRheXMK KyAgICBGUk9NIHJwcl9zdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9O IEJZIHBhcnRfaWQKKyAgICAgICAgT1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgICAgICBQQVRURVJOIChQQU5JQ3syLH0gU05BUCkKKyAgICAg ICAgREVGSU5FCisgICAgICAgICAgICBQQU5JQyBBUyBwcmljZSA8IFBSRVYocHJpY2UpICogMC45 NywKKyAgICAgICAgICAgIFNOQVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSAqIDEuMDIKKyAgICAp CispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47Cisgc3RhcnRfcm4gfCBlbmRf cm4gfCBzdGFydF9wcmljZSB8IGVuZF9wcmljZSB8IGRheXMgCistLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tCisgICAgICAgMjQgfCAgICAgMjYgfCAg ICAgMjMwLjYyNSB8ICAgMjI5Ljg3NSB8ICAgIDMKKyAgICAgIDE2NSB8ICAgIDE2NyB8ICAgICAy NzIuMDAwIHwgICAyNzAuNzUwIHwgICAgMworICAgICAgMTY5IHwgICAgMTcxIHwgICAgIDI2MC4w MDAgfCAgIDI1OS41MDAgfCAgICAzCisgICAgICA3NjkgfCAgICA3NzIgfCAgICAgMTQwLjEyNSB8 ICAgMTE1LjAwMCB8ICAgIDQKKyAgICAgIDk3NyB8ICAgIDk3OSB8ICAgICAgNTYuMTMwIHwgICAg NTMuMDAwIHwgICAgMworICAgICAgOTgwIHwgICAgOTgyIHwgICAgICA1MS4zNzUgfCAgICA1MS43 NTAgfCAgICAzCisgICAgIDEzODcgfCAgIDEzODkgfCAgICAgIDg2LjAwMCB8ICAgIDg5LjAwMCB8 ICAgIDMKKyAgICAgMTM5NiB8ICAgMTM5OCB8ICAgICAgOTkuMjkwIHwgICAgOTguMzkwIHwgICAg MworKDggcm93cykKKworLS0gVm9sdW1lIGNsaW1heCByZXZlcnNhbDogdXB0cmVuZCwgdm9sdW1l IHNwaWtlICgxLjV4KSwgdGhlbiBkZWNsaW5lCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1Qg Zmlyc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBzdGFydF9ybiwKKyAgICAgICAgICAgbGFzdF92YWx1 ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwKKyAgICAgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9W RVIgdyBBUyBzdGFydF9wcmljZSwKKyAgICAgICAgICAgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3 IEFTIGVuZF9wcmljZSwKKyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGRheXMKKyAgICBG Uk9NIHJwcl9zdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZIHBh cnRfaWQKKyAgICAgICAgT1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgICAgICBQQVRURVJOIChSQUxMWXszLH0gQ0xJTUFYIFNFTExPRkZ7Mix9 KQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIFJBTExZIEFTIHByaWNlID4gUFJFVihwcmlj ZSksCisgICAgICAgICAgICBDTElNQVggQVMgdm9sdW1lID4gUFJFVih2b2x1bWUpICogMS41LAor ICAgICAgICAgICAgU0VMTE9GRiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCisgICAgKQorKSB0IFdI RVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0YXJ0X3JuIHwgZW5kX3JuIHwgc3Rh cnRfcHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAgICAyIHwgICAgICA3IHwgICAgIDM2OC4y NTAgfCAgIDM2Ny43NTAgfCAgICA2CisgICAgICAgMTYgfCAgICAgMjEgfCAgICAgMzQ5LjI1MCB8 ICAgMzQ0LjUwMCB8ICAgIDYKKyAgICAgIDEwNSB8ICAgIDExMSB8ICAgICAzODguNTAwIHwgICAz OTQuNTAwIHwgICAgNworICAgICAgMjI4IHwgICAgMjM0IHwgICAgIDE2NC4yNTAgfCAgIDE2My4y NTAgfCAgICA3CisgICAgICAyNDMgfCAgICAyNDggfCAgICAgMjIzLjI1MCB8ICAgMjI4LjUwMCB8 ICAgIDYKKyAgICAgIDI1MSB8ICAgIDI1OSB8ICAgICAyNTEuMDAwIHwgICAyNTMuNTAwIHwgICAg OQorICAgICAgMzUyIHwgICAgMzU4IHwgICAgIDMxMC41MDAgfCAgIDMwOS4wMDAgfCAgICA3Cisg ICAgICAzOTggfCAgICA0MDUgfCAgICAgIDY1LjM4MCB8ICAgIDY1LjAwMCB8ICAgIDgKKyAgICAg IDQ2NiB8ICAgIDQ3MiB8ICAgICAgNjQuMjUwIHwgICAgNjMuODc1IHwgICAgNworICAgICAgNTg2 IHwgICAgNTk1IHwgICAgIDExMC4yNTAgfCAgIDExMi4yNTAgfCAgIDEwCisgICAgICA2MjYgfCAg ICA2MzIgfCAgICAgMTI1Ljc1MCB8ICAgMTIzLjI1MCB8ICAgIDcKKyAgICAgIDcwMCB8ICAgIDcw NyB8ICAgICAxNTAuMjUwIHwgICAxNTIuNzUwIHwgICAgOAorICAgICAgNzE0IHwgICAgNzIyIHwg ICAgIDEzNi4xMjUgfCAgIDEzNy4wMDAgfCAgICA5CisgICAgICA3NDAgfCAgICA3NTAgfCAgICAg MTU0LjI1MCB8ICAgMTYzLjAwMCB8ICAgMTEKKyAgICAgIDgwNSB8ICAgIDgxMSB8ICAgICAxMTYu ODc1IHwgICAxMTYuMDAwIHwgICAgNworICAgICAgODE0IHwgICAgODIxIHwgICAgICA5OS41MDAg fCAgICA5Ny4xMzAgfCAgICA4CisgICAgICA4NTAgfCAgICA4NTcgfCAgICAgMTA3Ljg4MCB8ICAg IDk5LjI1MCB8ICAgIDgKKyAgICAgIDkyMiB8ICAgIDkyNyB8ICAgICAgOTkuNzUwIHwgICAgOTku ODc1IHwgICAgNgorICAgICAgOTM0IHwgICAgOTM5IHwgICAgICA5Mi4zNzUgfCAgICA5Mi44ODAg fCAgICA2CisgICAgICA5OTggfCAgIDEwMDQgfCAgICAgIDUyLjAwMCB8ICAgIDUzLjEzMCB8ICAg IDcKKyAgICAgMTA0MyB8ICAgMTA0OSB8ICAgICAgNzMuMTI1IHwgICAgNzMuMDAwIHwgICAgNwor ICAgICAxMDUyIHwgICAxMDU3IHwgICAgICA3Mi4xMzAgfCAgICA3NC4yNTAgfCAgICA2CisgICAg IDExMzggfCAgIDExNDMgfCAgICAgMTI3Ljc1MCB8ICAgMTI1LjYyNSB8ICAgIDYKKyAgICAgMTE1 NSB8ICAgMTE2MiB8ICAgICAxNTguMDAwIHwgICAxNTUuNjI1IHwgICAgOAorICAgICAxMTgxIHwg ICAxMTkxIHwgICAgICA5OS4xMzAgfCAgIDEwMC4wNjIgfCAgIDExCisgICAgIDExOTIgfCAgIDEy MDIgfCAgICAgMTAwLjEzMCB8ICAgIDk2LjUwMCB8ICAgMTEKKyAgICAgMTIzNiB8ICAgMTI0MSB8 ICAgICAxMTguMzgwIHwgICAxMjMuODgwIHwgICAgNgorICAgICAxMjcyIHwgICAxMjgyIHwgICAg IDE2Ni4wNjIgfCAgIDE4My4wMDAgfCAgIDExCisgICAgIDEzMjUgfCAgIDEzMzEgfCAgICAgMjE3 LjI1MCB8ICAgMjM3LjUwMCB8ICAgIDcKKyAgICAgMTQwOSB8ICAgMTQxNCB8ICAgICAxMTIuODkw IHwgICAxMTYuMTAwIHwgICAgNgorICAgICAxNDU2IHwgICAxNDYxIHwgICAgICA2OC41ODAgfCAg ICA2OC43NjAgfCAgICA2CisoMzEgcm93cykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKaW5kZXggOGRiZDNm OTAzNmEuLmIzMDhmOGQ3Y2I0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKQEAgLTEsMTIgKzEsMjkgQEAK IC0tCiAtLSBUZXN0IGZvciByb3cgcGF0dGVybiByZWNvZ25pdGlvbjogV0lORE9XIGNsYXVzZSBp bnRlZ3JhdGlvbiBhbmQKLS0tIHJlYWwtd29ybGQgc2NlbmFyaW8gdGVzdHMgdXNpbmcgc3RvY2sg cHJpY2UgZGF0YS4KKy0tIHNjZW5hcmlvIHRlc3RzIHVzaW5nIHN5bnRoZXRpYyBzdG9jayBkYXRh LgogLS0KIC0tIFBhcnNlci9wbGFubmVyIHRlc3RzOiBycHJfYmFzZS5zcWwKIC0tIE5GQSBlbmdp bmUgdGVzdHM6IHJwcl9uZmEuc3FsCiAtLSBFWFBMQUlOIHN0YXRpc3RpY3MgdGVzdHM6IHJwcl9l eHBsYWluLnNxbAogLS0KIAorXGdldGVudiBhYnNfc3JjZGlyIFBHX0FCU19TUkNESVIKKworLS0g U3ludGhldGljIHN0b2NrIGRhdGEgZm9yIFJQUiBwYXR0ZXJuIG1hdGNoaW5nIHRlc3RzCitDUkVB VEUgVEFCTEUgcnByX3N0b2NrICgKKyAgICAgICBwYXJ0X2lkIGludGVnZXIsCisgICAgICAgcm4g ICAgICBpbnRlZ2VyLAorICAgICAgIHByaWNlICAgbnVtZXJpYygxMCwzKSwKKyAgICAgICB2b2x1 bWUgIGJpZ2ludCwKKyAgICAgICBvcGVuICAgIG51bWVyaWMoMTAsMyksCisgICAgICAgbG93ICAg ICBudW1lcmljKDEwLDMpLAorICAgICAgIGhpZ2ggICAgbnVtZXJpYygxMCwzKQorKTsKKworXHNl dCBmaWxlbmFtZSA6YWJzX3NyY2RpciAnL2RhdGEvc3RvY2suZGF0YScKK0NPUFkgcnByX3N0b2Nr IEZST00gOidmaWxlbmFtZSc7CitBTkFMWVpFIHJwcl9zdG9jazsKKwogQ1JFQVRFIFRFTVAgVEFC TEUgc3RvY2sgKAogICAgICAgIGNvbXBhbnkgVEVYVCwKICAgICAgICB0ZGF0ZSBEQVRFLApAQCAt OTA4LDMgKzkyNSwyNDAgQEAgV0lORE9XIHcgQVMgKAogKTsKIAogRFJPUCBUQUJMRSBycHJfY29u c2VjX251bGw7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gU3RvY2sgU2NlbmFyaW8gVGVzdHMgKDE2MzIgcm93cywg cGFydGl0aW9uZWQgcmVnaW9ucykKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBDb25zZWN1dGl2ZSByaXNpbmcgZGF5 czogZmluZCBzdHJlYWtzIG9mIDcrIGRheXMKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBm aXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVl KHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5 cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJ T04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKFVQezcsfSkKKyAgICAgICAgREVG SU5FIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSkKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAg T1JERVIgQlkgc3RhcnRfcm47CisKKy0tIFYtc2hhcGUgcmVjb3Zlcnk6IDQrIGRheXMgZGVjbGlu ZSBmb2xsb3dlZCBieSA0KyBkYXlzIHJpc2UKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBm aXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVl KHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZF UiB3IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcg QVMgZW5kX3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZS T00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFy dF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKERFQ0xJTkV7NCx9IFJJU0V7NCx9KQorICAgICAg ICBERUZJTkUKKyAgICAgICAgICAgIERFQ0xJTkUgQVMgcHJpY2UgPCBQUkVWKHByaWNlKSwKKyAg ICAgICAgICAgIFJJU0UgQVMgcHJpY2UgPiBQUkVWKHByaWNlKQorICAgICkKKykgdCBXSEVSRSBk YXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKworLS0gVy1ib3R0b206IGRlY2xpbmUsIGJvdW5j ZSwgcmUtZGVjbGluZSwgcmVjb3ZlcnkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJz dF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJu KSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMg ZW5kX3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00g cnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9p ZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgICAgIFBBVFRFUk4gKERFQ0xJTkV7Myx9IEJPVU5DRXszLH0gRElQezMsfSBS RUNPVkVSezMsfSkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBERUNMSU5FIEFTIHByaWNl IDwgUFJFVihwcmljZSksCisgICAgICAgICAgICBCT1VOQ0UgQVMgcHJpY2UgPiBQUkVWKHByaWNl KSwKKyAgICAgICAgICAgIERJUCBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgICAgICAgICAg UkVDT1ZFUiBBUyBwcmljZSA+IFBSRVYocHJpY2UpCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAw IE9SREVSIEJZIHN0YXJ0X3JuOworCistLSBWb2x1bWUgc3VyZ2Ugc3RyZWFrOiA2KyBjb25zZWN1 dGl2ZSBkYXlzIG9mIGluY3JlYXNpbmcgdm9sdW1lCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxF Q1QgZmlyc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBzdGFydF9ybiwKKyAgICAgICAgICAgbGFzdF92 YWx1ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwKKyAgICAgICAgICAgZmlyc3RfdmFsdWUodm9sdW1l KSBPVkVSIHcgQVMgc3RhcnRfdm9sLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHZvbHVtZSkgT1ZF UiB3IEFTIGVuZF92b2wsCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAg RlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBw YXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoSU5JVCBTVVJHRXs1LH0pCisgICAgICAgIERF RklORQorICAgICAgICAgICAgU1VSR0UgQVMgdm9sdW1lID4gUFJFVih2b2x1bWUpCisgICAgKQor KSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworCistLSBWb2xhdGlsaXR5IHNx dWVlemU6IGNvbnNlY3V0aXZlIG5hcnJvd2luZyBvZiBkYWlseSBwcmljZSByYW5nZQorU0VMRUNU ICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4s CisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAg IGZpcnN0X3ZhbHVlKGhpZ2ggLSBsb3cpIE9WRVIgdyBBUyBzdGFydF9yYW5nZSwKKyAgICAgICAg ICAgbGFzdF92YWx1ZShoaWdoIC0gbG93KSBPVkVSIHcgQVMgZW5kX3JhbmdlLAorICAgICAgICAg ICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9X IHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBy bgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRF Uk4gKElOSVQgTkFSUk9XezUsfSkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBOQVJST1cg QVMgKGhpZ2ggLSBsb3cpIDwgUFJFVihoaWdoKSAtIFBSRVYobG93KQorICAgICkKKykgdCBXSEVS RSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKworLS0gR2FwIHVwOiBvcGVuIHNpZ25pZmlj YW50bHkgaGlnaGVyIHRoYW4gcHJldmlvdXMgY2xvc2UgKDUlKykKK1NFTEVDVCAqIEZST00gKAor ICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIGdhcF9ybiwKKyAgICAgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBwcmV2X2Nsb3NlLAorICAgICAgICAgICBsYXN0 X3ZhbHVlKG9wZW4pIE9WRVIgdyBBUyBnYXBfb3BlbiwKKyAgICAgICAgICAgY291bnQoKikgT1ZF UiB3IEFTIGNudAorICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAg ICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKFBSRVZfREFZIEdB UF9VUCkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBHQVBfVVAgQVMgb3BlbiA+IFBSRVYo cHJpY2UpICogMS4wNQorICAgICkKKykgdCBXSEVSRSBjbnQgPiAwIE9SREVSIEJZIGdhcF9ybjsK KworLS0gUHJpY2Utdm9sdW1lIGRpdmVyZ2VuY2U6IHByaWNlIHJpc2luZyB3aGlsZSB2b2x1bWUg ZGVjbGluaW5nIChiZWFyaXNoIHNpZ25hbCkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBm aXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVl KHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZF UiB3IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcg QVMgZW5kX3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZS T00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFy dF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKElOSVQgRElWRVJHRXszLH0pCisgICAgICAgIERF RklORQorICAgICAgICAgICAgRElWRVJHRSBBUyBwcmljZSA+IFBSRVYocHJpY2UpIEFORCB2b2x1 bWUgPCBQUkVWKHZvbHVtZSkKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3Rh cnRfcm47CisKKy0tIENvbnNvbGlkYXRpb24gdGhlbiBicmVha291dDogc2lkZXdheXMgbW92ZW1l bnQgZm9sbG93ZWQgYnkgc2hhcnAgcmlzZQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZp cnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUo cm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVS IHcgQVMgc3RhcnRfcHJpY2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBB UyBlbmRfcHJpY2UsCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJP TSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0 X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoRkxBVHs1LH0gQlJFQUtPVVQpCisgICAgICAgIERF RklORQorICAgICAgICAgICAgRkxBVCBBUyBwcmljZSBCRVRXRUVOIFBSRVYocHJpY2UpICogMC45 OCBBTkQgUFJFVihwcmljZSkgKiAxLjAyLAorICAgICAgICAgICAgQlJFQUtPVVQgQVMgcHJpY2Ug PiBQUkVWKHByaWNlKSAqIDEuMDUKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkg c3RhcnRfcm47CisKKy0tIERlYWQgY2F0IGJvdW5jZTogZGVjbGluZSBmb2xsb3dlZCBieSB3ZWFr IHJlY292ZXJ5ICg8MSUgcGVyIGRheSkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJz dF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJu KSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMg ZW5kX3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00g cnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9p ZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgICAgIFBBVFRFUk4gKERFQ0xJTkV7NCx9IEJPVU5DRXszLH0pCisgICAgICAg IERFRklORQorICAgICAgICAgICAgREVDTElORSBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAg ICAgICAgICAgQk9VTkNFIEFTIHByaWNlID4gUFJFVihwcmljZSkgQU5EIHByaWNlIDwgUFJFVihw cmljZSkgKiAxLjAxCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3Ju OworCistLSBVcHRyZW5kOiA3KyBjb25zZWN1dGl2ZSBkYXlzIG9mIGhpZ2hlciBoaWdocyBBTkQg aGlnaGVyIGxvd3MKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikg T1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMg ZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3By aWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAor ICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBP UkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg ICAgIFBBVFRFUk4gKFVQVFJFTkR7Nyx9KQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIFVQ VFJFTkQgQVMgaGlnaCA+IFBSRVYoaGlnaCkgQU5EIGxvdyA+IFBSRVYobG93KQorICAgICkKKykg dCBXSEVSRSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKworLS0gUGFuaWMgYW5kIHNuYXAt YmFjazogMyUrIGRhaWx5IGRyb3BzIGZvbGxvd2VkIGJ5IDIlKyByZWJvdW5kCitTRUxFQ1QgKiBG Uk9NICgKKyAgICBTRUxFQ1QgZmlyc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBzdGFydF9ybiwKKyAg ICAgICAgICAgbGFzdF92YWx1ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwKKyAgICAgICAgICAgZmly c3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBzdGFydF9wcmljZSwKKyAgICAgICAgICAgbGFzdF92 YWx1ZShwcmljZSkgT1ZFUiB3IEFTIGVuZF9wcmljZSwKKyAgICAgICAgICAgY291bnQoKikgT1ZF UiB3IEFTIGRheXMKKyAgICBGUk9NIHJwcl9zdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAg ICAgUEFSVElUSU9OIEJZIHBhcnRfaWQKKyAgICAgICAgT1JERVIgQlkgcm4KKyAgICAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgICAgICBQQVRURVJOIChQQU5JQ3syLH0g U05BUCkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBQQU5JQyBBUyBwcmljZSA8IFBSRVYo cHJpY2UpICogMC45NywKKyAgICAgICAgICAgIFNOQVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSAq IDEuMDIKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47CisKKy0t IFZvbHVtZSBjbGltYXggcmV2ZXJzYWw6IHVwdHJlbmQsIHZvbHVtZSBzcGlrZSAoMS41eCksIHRo ZW4gZGVjbGluZQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBP VkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBl bmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRfcHJp Y2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UsCisg ICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAg ICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9S REVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAg ICAgUEFUVEVSTiAoUkFMTFl7Myx9IENMSU1BWCBTRUxMT0ZGezIsfSkKKyAgICAgICAgREVGSU5F CisgICAgICAgICAgICBSQUxMWSBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICAgICAgICAgICAg Q0xJTUFYIEFTIHZvbHVtZSA+IFBSRVYodm9sdW1lKSAqIDEuNSwKKyAgICAgICAgICAgIFNFTExP RkYgQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRF UiBCWSBzdGFydF9ybjsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0008-fix-zero-min-reluctant.txt" Content-Disposition: attachment; filename="0008-fix-zero-min-reluctant.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhuftfg7 RnJvbSA1ZmMwZmU5YzVhMzZmYTdmN2RkODRmMjEzNDlhMDU2ZjBmNWJjMTVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgTWFyIDIwMjYgMTQ6MDg6NDcgKzA5MDAKU3ViamVjdDogW1BBVENIIDA4LzEyXSBG aXggemVyby1taW4gcmVsdWN0YW50IHF1YW50aWZpZXIgdG8gcHJvZHVjZQogemVyby1sZW5ndGgg bWF0Y2gKCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgICAgfCAx MDQgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf YmFzZS5vdXQgICAgfCAgMzAgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf ZXhwbGFpbi5vdXQgfCAgIDQgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwg NjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDQ0 NDFiNGQ5YzUxLi4zMDc1YzUxNzg5YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cu YwpAQCAtMzA3LDI0ICszMDcsMjQgQEAgc3RhdGljIGlubGluZSBib29sIG5mYV9ldmFsX3Zhcl9t YXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsCiBzdGF0aWMgdm9pZCBuZmFfbWF0Y2goV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJCSAgYm9vbCAq dmFyTWF0Y2hlZCk7CiBzdGF0aWMgdm9pZCBuZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKLQkJCQkJCQkgIFJQUk5GQVN0YXRlICpz dGF0ZSwgaW50NjQgY3VycmVudFBvcywgYm9vbCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkJICBS UFJORkFTdGF0ZSAqc3RhdGUsIGludDY0IGN1cnJlbnRQb3MpOwogc3RhdGljIHZvaWQgbmZhX3Jv dXRlX3RvX2VsZW0oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs CiAJCQkJCQkJICBSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICpuZXh0RWxl bSwKLQkJCQkJCQkgIGludDY0IGN1cnJlbnRQb3MsIGJvb2wgaW5pdGlhbEFkdmFuY2UpOworCQkJ CQkJCSAgaW50NjQgY3VycmVudFBvcyk7CiBzdGF0aWMgdm9pZCBuZmFfYWR2YW5jZV9hbHQoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJCQkJUlBSTkZB U3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKLQkJCQkJCQlpbnQ2NCBjdXJy ZW50UG9zLCBib29sIGluaXRpYWxBZHZhbmNlKTsKKwkJCQkJCQlpbnQ2NCBjdXJyZW50UG9zKTsK IHN0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX2JlZ2luKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJCSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0 ZXJuRWxlbWVudCAqZWxlbSwKLQkJCQkJCQkgIGludDY0IGN1cnJlbnRQb3MsIGJvb2wgaW5pdGlh bEFkdmFuY2UpOworCQkJCQkJCSAgaW50NjQgY3VycmVudFBvcyk7CiBzdGF0aWMgdm9pZCBuZmFf YWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs CiAJCQkJCQkJUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKLQkJ CQkJCQlpbnQ2NCBjdXJyZW50UG9zLCBib29sIGluaXRpYWxBZHZhbmNlKTsKKwkJCQkJCQlpbnQ2 NCBjdXJyZW50UG9zKTsKIHN0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJCQkJCQlSUFJORkFTdGF0ZSAqc3Rh dGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAotCQkJCQkJCWludDY0IGN1cnJlbnRQb3MsIGJv b2wgaW5pdGlhbEFkdmFuY2UpOworCQkJCQkJCWludDY0IGN1cnJlbnRQb3MpOwogc3RhdGljIHZv aWQgbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpj dHgsCi0JCQkJCQlpbnQ2NCBjdXJyZW50UG9zLCBib29sIGluaXRpYWxBZHZhbmNlKTsKKwkJCQkJ CWludDY0IGN1cnJlbnRQb3MpOwogCiAvKgogICogTm90IG51bGwgaW5mbyBiaXQgYXJyYXkgY29u c2lzdHMgb2YgMi1iaXQgaXRlbXMKQEAgLTUwMDgsOSArNTAwOCwxNCBAQCByZWdpc3Rlcl9yZXN1 bHQ6CiAgKiAgIGhhbmRsZXMgbmVzdGVkIGdyb3VwcyBsaWtlICIoKEF8QikrKSsiIGNvcnJlY3Rs eSAtIGV4aXRpbmcgdGhlIGlubmVyCiAgKiAgIGdyb3VwIGNvdW50cyBhcyBvbmUgaXRlcmF0aW9u IG9mIHRoZSBvdXRlciBncm91cC4KICAqCi0gKiAtIGluaXRpYWxBZHZhbmNlIGZsYWc6IFRoZSBm aXJzdCBhZHZhbmNlIGFmdGVyIGNvbnRleHQgY3JlYXRpb24gbXVzdAotICogICBza2lwIEZJTiBy ZWNvcmRpbmcuIFJlYWNoaW5nIEZJTiB3aXRob3V0IGV2YWx1YXRpbmcgYW55IFZBUiB3b3VsZAot ICogICBjcmVhdGUgYSB6ZXJvLWxlbmd0aCBtYXRjaCwgd2hpY2ggaXMgaW52YWxpZC4KKyAqIC0g WmVyby1sZW5ndGggbWF0Y2ggaGFuZGxpbmc6IFRoZSBpbml0aWFsIGFkdmFuY2UgdXNlcyBjdXJy ZW50UG9zID0KKyAqICAgc3RhcnRQb3MgLSAxIChiZWZvcmUgYW55IHJvdyBpcyBjb25zdW1lZCku IElmIEZJTiBpcyByZWFjaGVkIHZpYQorICogICBlcHNpbG9uIHRyYW5zaXRpb25zIGFsb25lLCBt YXRjaEVuZFJvdyA9IHN0YXJ0UG9zIC0gMSA8IG1hdGNoU3RhcnRSb3csCisgKiAgIHJlc3VsdGlu ZyBpbiBVTk1BVENIRUQuIEZvciByZWx1Y3RhbnQgbWluPTAgcGF0dGVybnMgKEEqPywgQT8/KSwK KyAqICAgdGhlIHNraXAgcGF0aCByZWFjaGVzIEZJTiBmaXJzdCBhbmQgZWFybHkgdGVybWluYXRp b24gcHJ1bmVzIGVudGVyCisgKiAgIHBhdGhzLCB5aWVsZGluZyBhbiBpbW1lZGlhdGUgemVyby1s ZW5ndGggKHVubWF0Y2hlZCkgcmVzdWx0LiBGb3IKKyAqICAgZ3JlZWR5IHBhdHRlcm5zIChBKiks IHRoZSBlbnRlciBwYXRoIGFkZHMgVkFSIHN0YXRlcyBmaXJzdCwgdGhlbgorICogICB0aGUgc2tp cCBGSU4gaXMgcmVjb3JkZWQgYnV0IFZBUiBzdGF0ZXMgc3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hp bmcuCiAgKgogICogQ29udGV4dCBBYnNvcnB0aW9uIFJ1bnRpbWU6CiAgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KQEAgLTUxMjIsNyArNTEyNyw3IEBAIG5mYV9wcm9jZXNzX3JvdyhXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQb3MsCiAJCUFzc2VydCghaGFzTGlt aXRlZEZyYW1lIHx8CiAJCQkgICBjdXJyZW50UG9zIDwgY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJh bWVPZmZzZXQgKyAxKTsKIAotCQluZmFfYWR2YW5jZSh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9z LCBmYWxzZSk7CisJCW5mYV9hZHZhbmNlKHdpbnN0YXRlLCBjdHgsIGN1cnJlbnRQb3MpOwogCX0K IH0KIApAQCAtNTQ2NywxMCArNTQ3MiwxMSBAQCBuZmFfc3RhcnRfY29udGV4dChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIGludDY0IHN0YXJ0UG9zKQogCSAqIHN0YXRlcyBmb3IgVkFSIGVsZW1l bnRzIHdpdGggbWluPTAuIFRoaXMgcHJlcGFyZXMgdGhlIGNvbnRleHQgZm9yIHRoZQogCSAqIGZp cnN0IHJvdydzIG1hdGNoIHBoYXNlLgogCSAqCi0JICogUGFzcyBpbml0aWFsQWR2YW5jZT10cnVl IHRvIHByZXZlbnQgcmVjb3JkaW5nIHplcm8tbGVuZ3RoIG1hdGNoZXMgd2hlbgotCSAqIG9wdGlv bmFsIHBhdHRlcm5zIGNhbiBza2lwIGFsbCBWQVJzIHRvIHJlYWNoIEZJTiBpbW1lZGlhdGVseS4K KwkgKiBVc2Ugc3RhcnRQb3MgLSAxIGFzIGN1cnJlbnRQb3Mgc2luY2Ugbm8gcm93IGhhcyBiZWVu IGNvbnN1bWVkIHlldC4gSWYKKwkgKiBGSU4gaXMgcmVhY2hlZCB2aWEgZXBzaWxvbiB0cmFuc2l0 aW9ucywgbWF0Y2hFbmRSb3cgPSBzdGFydFBvcyAtIDEKKwkgKiB3aGljaCBpcyBsZXNzIHRoYW4g bWF0Y2hTdGFydFJvdywgcmVzdWx0aW5nIGluIFVOTUFUQ0hFRCB0cmVhdG1lbnQuCiAJICovCi0J bmZhX2FkdmFuY2Uod2luc3RhdGUsIGN0eCwgc3RhcnRQb3MsIHRydWUpOworCW5mYV9hZHZhbmNl KHdpbnN0YXRlLCBjdHgsIHN0YXJ0UG9zIC0gMSk7CiAKIAlyZXR1cm4gY3R4OwogfQpAQCAtNTcx MSw3ICs1NzE3LDcgQEAgbmZhX2ZpbmFsaXplX2FsbF9jb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIGludDY0IGxhc3RQb3MpCiAJCWlmIChjdHgtPnN0YXRlcyAhPSBOVUxMKQogCQl7 CiAJCQluZmFfbWF0Y2god2luc3RhdGUsIGN0eCwgTlVMTCk7Ci0JCQluZmFfYWR2YW5jZSh3aW5z dGF0ZSwgY3R4LCBsYXN0UG9zLCBmYWxzZSk7CisJCQluZmFfYWR2YW5jZSh3aW5zdGF0ZSwgY3R4 LCBsYXN0UG9zKTsKIAkJfQogCX0KIH0KQEAgLTYwNDcsNyArNjA1Myw3IEBAIG5mYV9tYXRjaChX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0 Y2hlZCkKIHN0YXRpYyB2b2lkCiBuZmFfcm91dGVfdG9fZWxlbShXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgUlBS UGF0dGVybkVsZW1lbnQgKm5leHRFbGVtLAotCQkJCSAgaW50NjQgY3VycmVudFBvcywgYm9vbCBp bml0aWFsQWR2YW5jZSkKKwkJCQkgIGludDY0IGN1cnJlbnRQb3MpCiB7CiAJaWYgKFJQUkVsZW1J c1ZhcihuZXh0RWxlbSkpCiAJewpAQCAtNjA2MSwxMSArNjA2NywxMSBAQCBuZmFfcm91dGVfdG9f ZWxlbShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJbmZh X2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgc3RhdGUpOwogCiAJCWlmIChza2lwU3Rh dGUgIT0gTlVMTCkKLQkJCW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0YXRlLCBjdHgsIHNraXBTdGF0 ZSwgY3VycmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOworCQkJbmZhX2FkdmFuY2Vfc3RhdGUod2lu c3RhdGUsIGN0eCwgc2tpcFN0YXRlLCBjdXJyZW50UG9zKTsKIAl9CiAJZWxzZQogCXsKLQkJbmZh X2FkdmFuY2Vfc3RhdGUod2luc3RhdGUsIGN0eCwgc3RhdGUsIGN1cnJlbnRQb3MsIGluaXRpYWxB ZHZhbmNlKTsKKwkJbmZhX2FkdmFuY2Vfc3RhdGUod2luc3RhdGUsIGN0eCwgc3RhdGUsIGN1cnJl bnRQb3MpOwogCX0KIH0KIApAQCAtNjA3Nyw3ICs2MDgzLDcgQEAgbmZhX3JvdXRlX3RvX2VsZW0o V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiBzdGF0aWMgdm9p ZAogbmZhX2FkdmFuY2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4 dCAqY3R4LAogCQkJCVJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0s Ci0JCQkJaW50NjQgY3VycmVudFBvcywgYm9vbCBpbml0aWFsQWR2YW5jZSkKKwkJCQlpbnQ2NCBj dXJyZW50UG9zKQogewogCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0ZS0+cnBQYXR0ZXJu OwogCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVsZW1lbnRzOwpAQCAt NjA5Nyw3ICs2MTAzLDcgQEAgbmZhX2FkdmFuY2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJCQkJc3RhdGUtPmNvdW50cywgc3RhdGUtPmlz QWJzb3JiYWJsZSk7CiAKIAkJLyogUmVjdXJzaXZlbHkgcHJvY2VzcyB0aGlzIGJyYW5jaCBiZWZv cmUgbmV4dCAqLwotCQluZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBuZXdTdGF0ZSwg Y3VycmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOworCQluZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0 ZSwgY3R4LCBuZXdTdGF0ZSwgY3VycmVudFBvcyk7CiAJCWFsdElkeCA9IGFsdEVsZW0tPmp1bXA7 CiAJfQogCkBAIC02MTE1LDcgKzYxMjEsNyBAQCBuZmFfYWR2YW5jZV9hbHQoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiBzdGF0aWMgdm9pZAogbmZhX2FkdmFu Y2VfYmVnaW4oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJ CQkJICBSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAotCQkJCSAg aW50NjQgY3VycmVudFBvcywgYm9vbCBpbml0aWFsQWR2YW5jZSkKKwkJCQkgIGludDY0IGN1cnJl bnRQb3MpCiB7CiAJUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47CiAJ UlBSUGF0dGVybkVsZW1lbnQgKmVsZW1lbnRzID0gcGF0dGVybi0+ZWxlbWVudHM7CkBAIC02MTM2 LDcgKzYxNDIsNyBAQCBuZmFfYWR2YW5jZV9iZWdpbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IFJQUk5GQUNvbnRleHQgKmN0eCwKIAogCQkvKiBSZWx1Y3RhbnQ6IHNraXAgZmlyc3QgKHByZWZl ciBmZXdlciBpdGVyYXRpb25zKSwgZW50ZXIgc2Vjb25kICovCiAJCW5mYV9yb3V0ZV90b19lbGVt KHdpbnN0YXRlLCBjdHgsIHNraXBTdGF0ZSwKLQkJCQkJCSAgJmVsZW1lbnRzW2VsZW0tPmp1bXBd LCBjdXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkgICZlbGVtZW50c1tlbGVtLT5q dW1wXSwgY3VycmVudFBvcyk7CiAKIAkJLyoKIAkJICogSWYgc2tpcCBwYXRoIHJlYWNoZWQgRklO LCBzaG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4gU2tpcCBncm91cCBlbnRyeQpAQCAtNjE1MCwxOSAr NjE1NiwxOSBAQCBuZmFfYWR2YW5jZV9iZWdpbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQUNvbnRleHQgKmN0eCwKIAogCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCW5m YV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLAotCQkJCQkJICAmZWxlbWVudHNb c3RhdGUtPmVsZW1JZHhdLCBjdXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkgICZl bGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQb3MpOwogCX0KIAllbHNlCiAJewogCQkv KiBHcmVlZHk6IGVudGVyIGZpcnN0LCBza2lwIHNlY29uZCAqLwogCQlzdGF0ZS0+ZWxlbUlkeCA9 IGVsZW0tPm5leHQ7CiAJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLAot CQkJCQkJICAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdLCBjdXJyZW50UG9zLCBpbml0aWFsQWR2 YW5jZSk7CisJCQkJCQkgICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQb3MpOwog CiAJCWlmIChza2lwU3RhdGUgIT0gTlVMTCkKIAkJewogCQkJbmZhX3JvdXRlX3RvX2VsZW0od2lu c3RhdGUsIGN0eCwgc2tpcFN0YXRlLAotCQkJCQkJCSAgJmVsZW1lbnRzW2VsZW0tPmp1bXBdLCBj dXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkJICAmZWxlbWVudHNbZWxlbS0+anVt cF0sIGN1cnJlbnRQb3MpOwogCQl9CiAJfQogfQpAQCAtNjE3Niw3ICs2MTgyLDcgQEAgbmZhX2Fk dmFuY2VfYmVnaW4oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs CiBzdGF0aWMgdm9pZAogbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCVJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVs ZW1lbnQgKmVsZW0sCi0JCQkJaW50NjQgY3VycmVudFBvcywgYm9vbCBpbml0aWFsQWR2YW5jZSkK KwkJCQlpbnQ2NCBjdXJyZW50UG9zKQogewogCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0 ZS0+cnBQYXR0ZXJuOwogCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVs ZW1lbnRzOwpAQCAtNjE5OSw3ICs2MjA1LDcgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQlzdGF0ZS0+ZWxlbUlkeCA9IGVs ZW0tPmp1bXA7CiAJCWp1bXBFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAkJbmZh X3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIGp1bXBFbGVtLAotCQkJCQkJICBj dXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkgIGN1cnJlbnRQb3MpOwogCiAJCS8q CiAJCSAqIEZhc3QtZm9yd2FyZCBmYWxsYmFjayBmb3IgbnVsbGFibGUgYm9kaWVzLiAgRS5nLiAo QT8pezIsM30gd2hlbiBBCkBAIC02MjIzLDcgKzYyMjksNyBAQCBuZmFfYWR2YW5jZV9lbmQoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJZmZTdGF0ZS0+ Y291bnRzW25leHRFbGVtLT5kZXB0aF0rKzsKIAogCQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3Rh dGUsIGN0eCwgZmZTdGF0ZSwgbmV4dEVsZW0sCi0JCQkJCQkJICBjdXJyZW50UG9zLCBpbml0aWFs QWR2YW5jZSk7CisJCQkJCQkJICBjdXJyZW50UG9zKTsKIAkJfQogCX0KIAllbHNlIGlmIChlbGVt LT5tYXggIT0gUlBSX1FVQU5USVRZX0lORiAmJiBjb3VudCA+PSBlbGVtLT5tYXgpCkBAIC02MjM5 LDcgKzYyNDUsNyBAQCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJORkFDb250ZXh0ICpjdHgsCiAJCWlmIChSUFJFbGVtSXNFbmQobmV4dEVsZW0pICYmIHN0YXRl LT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSA8IFJQUl9DT1VOVF9NQVgpCiAJCQlzdGF0ZS0+Y291 bnRzW25leHRFbGVtLT5kZXB0aF0rKzsKIAotCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwg Y3R4LCBzdGF0ZSwgbmV4dEVsZW0sIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKwkJbmZh X3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIG5leHRFbGVtLCBjdXJyZW50UG9z KTsKIAl9CiAJZWxzZQogCXsKQEAgLTYyNzcsNyArNjI4Myw3IEBAIG5mYV9hZHZhbmNlX2VuZChX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAogCQkJLyogRXhp dCBmaXJzdCAocHJlZmVycmVkIGZvciByZWx1Y3RhbnQpICovCiAJCQluZmFfcm91dGVfdG9fZWxl bSh3aW5zdGF0ZSwgY3R4LCBleGl0U3RhdGUsIG5leHRFbGVtLAotCQkJCQkJCSAgY3VycmVudFBv cywgaW5pdGlhbEFkdmFuY2UpOworCQkJCQkJCSAgY3VycmVudFBvcyk7CiAKIAkJCS8qCiAJCQkg KiBJZiBleGl0IHBhdGggcmVhY2hlZCBGSU4sIHNob3J0ZXN0IG1hdGNoIGlzIGZvdW5kLiBTa2lw IGxvb3AgdG8KQEAgLTYyOTEsMTYgKzYyOTcsMTYgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCiAJCQkvKiBMb29wIHNlY29u ZCAqLwogCQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIGp1bXBFbGVt LAotCQkJCQkJCSAgY3VycmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOworCQkJCQkJCSAgY3VycmVu dFBvcyk7CiAJCX0KIAkJZWxzZQogCQl7CiAJCQkvKiBMb29wIGZpcnN0IChwcmVmZXJyZWQgZm9y IGdyZWVkeSkgKi8KIAkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBq dW1wRWxlbSwKLQkJCQkJCQkgIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKwkJCQkJCQkg IGN1cnJlbnRQb3MpOwogCQkJLyogRXhpdCBzZWNvbmQgKi8KIAkJCW5mYV9yb3V0ZV90b19lbGVt KHdpbnN0YXRlLCBjdHgsIGV4aXRTdGF0ZSwgbmV4dEVsZW0sCi0JCQkJCQkJICBjdXJyZW50UG9z LCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkJICBjdXJyZW50UG9zKTsKIAkJfQogCX0KIH0KQEAg LTYzMTQsNyArNjMyMCw3IEBAIG5mYV9hZHZhbmNlX2VuZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIHN0YXRpYyB2b2lkCiBuZmFfYWR2YW5jZV92YXIoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJUlBSTkZBU3Rh dGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKLQkJCQlpbnQ2NCBjdXJyZW50UG9z LCBib29sIGluaXRpYWxBZHZhbmNlKQorCQkJCWludDY0IGN1cnJlbnRQb3MpCiB7CiAJUlBSUGF0 dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47CiAJUlBSUGF0dGVybkVsZW1lbnQg KmVsZW1lbnRzID0gcGF0dGVybi0+ZWxlbWVudHM7CkBAIC02MzU5LDcgKzYzNjUsNyBAQCBuZmFf YWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs CiAKIAkJCS8qIEV4aXQgZmlyc3QgKHByZWZlcnJlZCBmb3IgcmVsdWN0YW50KSAqLwogCQkJbmZh X3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgY2xvbmVTdGF0ZSwgbmV4dEVsZW0sCi0JCQkJ CQkJICBjdXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCQkJCQkJICBjdXJyZW50UG9zKTsK IAogCQkJLyoKIAkJCSAqIElmIGV4aXQgcGF0aCByZWFjaGVkIEZJTiwgdGhlIHNob3J0ZXN0IG1h dGNoIGlzIGZvdW5kLiBTa2lwCkBAIC02NDAwLDcgKzY0MDYsNyBAQCBuZmFfYWR2YW5jZV92YXIo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQl9CiAKIAkJ CW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBuZXh0RWxlbSwKLQkJCQkJ CQkgIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKwkJCQkJCQkgIGN1cnJlbnRQb3MpOwog CQl9CiAJfQogCWVsc2UgaWYgKGNhbkxvb3ApCkBAIC02NDI0LDcgKzY0MzAsNyBAQCBuZmFfYWR2 YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJ CQkJc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CiAJCX0KIAotCQluZmFfcm91dGVf dG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgbmV4dEVsZW0sIGN1cnJlbnRQb3MsIGluaXRp YWxBZHZhbmNlKTsKKwkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIG5l eHRFbGVtLCBjdXJyZW50UG9zKTsKIAl9CiB9CiAKQEAgLTY0MzYsNyArNjQ0Miw3IEBAIG5mYV9h ZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwK ICAqLwogc3RhdGljIHZvaWQKIG5mYV9hZHZhbmNlX3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAotCQkJCSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBpbnQ2 NCBjdXJyZW50UG9zLCBib29sIGluaXRpYWxBZHZhbmNlKQorCQkJCSAgUlBSTkZBU3RhdGUgKnN0 YXRlLCBpbnQ2NCBjdXJyZW50UG9zKQogewogCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0 ZS0+cnBQYXR0ZXJuOwogCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtOwpAQCAtNjQ1OCwyOCArNjQ2 NCwyNSBAQCBuZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5G QUNvbnRleHQgKmN0eCwKIAlzd2l0Y2ggKGVsZW0tPnZhcklkKQogCXsKIAkJY2FzZSBSUFJfVkFS SURfRklOOgotCQkJLyogRklOOiByZWNvcmQgbWF0Y2ggKHNraXAgZm9yIGluaXRpYWwgYWR2YW5j ZSkgKi8KLQkJCWlmICghaW5pdGlhbEFkdmFuY2UpCi0JCQkJbmZhX2FkZF9tYXRjaGVkX3N0YXRl KHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBjdXJyZW50UG9zKTsKLQkJCWVsc2UKLQkJCQluZmFfc3Rh dGVfZnJlZSh3aW5zdGF0ZSwgc3RhdGUpOworCQkJLyogRklOOiByZWNvcmQgbWF0Y2ggKi8KKwkJ CW5mYV9hZGRfbWF0Y2hlZF9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgY3VycmVudFBvcyk7 CiAJCQlicmVhazsKIAogCQljYXNlIFJQUl9WQVJJRF9BTFQ6Ci0JCQluZmFfYWR2YW5jZV9hbHQo d2luc3RhdGUsIGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsK KwkJCW5mYV9hZHZhbmNlX2FsdCh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgZWxlbSwgY3VycmVudFBv cyk7CiAJCQlicmVhazsKIAogCQljYXNlIFJQUl9WQVJJRF9CRUdJTjoKLQkJCW5mYV9hZHZhbmNl X2JlZ2luKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBlbGVtLCBjdXJyZW50UG9zLCBpbml0aWFsQWR2 YW5jZSk7CisJCQluZmFfYWR2YW5jZV9iZWdpbih3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgZWxlbSwg Y3VycmVudFBvcyk7CiAJCQlicmVhazsKIAogCQljYXNlIFJQUl9WQVJJRF9FTkQ6Ci0JCQluZmFf YWR2YW5jZV9lbmQod2luc3RhdGUsIGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MsIGluaXRp YWxBZHZhbmNlKTsKKwkJCW5mYV9hZHZhbmNlX2VuZCh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgZWxl bSwgY3VycmVudFBvcyk7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJLyogVkFSIGVsZW1l bnQgKi8KLQkJCW5mYV9hZHZhbmNlX3Zhcih3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgZWxlbSwgY3Vy cmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOworCQkJbmZhX2FkdmFuY2VfdmFyKHdpbnN0YXRlLCBj dHgsIHN0YXRlLCBlbGVtLCBjdXJyZW50UG9zKTsKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTY0ODks MTMgKzY0OTIsMTIgQEAgbmZhX2FkdmFuY2Vfc3RhdGUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBSUFJORkFDb250ZXh0ICpjdHgsCiAgKgogICogQWR2YW5jZSBwaGFzZSAoZGl2ZXJnZW5jZSk6 IHRyYW5zaXRpb24gZnJvbSBhbGwgc3Vydml2aW5nIHN0YXRlcy4KICAqIENhbGxlZCBhZnRlciBt YXRjaCBwaGFzZSB3aXRoIG1hdGNoZWQgVkFSIHN0YXRlcywgb3IgYXQgY29udGV4dCBjcmVhdGlv bgotICogZm9yIGluaXRpYWwgZXBzaWxvbiBleHBhbnNpb24gKGluaXRpYWxBZHZhbmNlPXRydWUg c2tpcHMgRklOIG1hdGNoZXMpLgorICogZm9yIGluaXRpYWwgZXBzaWxvbiBleHBhbnNpb24gKHdp dGggY3VycmVudFBvcyA9IHN0YXJ0UG9zIC0gMSkuCiAgKgogICogUHJvY2Vzc2VzIHN0YXRlcyBp biBvcmRlciwgdXNpbmcgcmVjdXJzaXZlIERGUyB0byBtYWludGFpbiBsZXhpY2FsIG9yZGVyLgog ICovCiBzdGF0aWMgdm9pZAotbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJORkFDb250ZXh0ICpjdHgsIGludDY0IGN1cnJlbnRQb3MsCi0JCQlib29sIGluaXRpYWxBZHZh bmNlKQorbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0 ICpjdHgsIGludDY0IGN1cnJlbnRQb3MpCiB7CiAJUlBSTkZBU3RhdGUgKnN0YXRlcyA9IGN0eC0+ c3RhdGVzOwogCVJQUk5GQVN0YXRlICpzdGF0ZTsKQEAgLTY1MTUsNyArNjUxNyw3IEBAIG5mYV9h ZHZhbmNlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBpbnQ2 NCBjdXJyZW50UG9zLAogCQlzdGF0ZXMgPSBzdGF0ZXMtPm5leHQ7CiAJCXN0YXRlLT5uZXh0ID0g TlVMTDsKIAotCQluZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgY3VycmVu dFBvcywgaW5pdGlhbEFkdmFuY2UpOworCQluZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4 LCBzdGF0ZSwgY3VycmVudFBvcyk7CiAKIAkJLyoKIAkJICogRWFybHkgdGVybWluYXRpb246IGlm IGEgRklOIHdhcyBuZXdseSByZWFjaGVkIGluIHRoaXMgYWR2YW5jZSwKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggYTdjNTM2NjI1ZjEuLjJmZWZiOTMzYzcxIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAtMTA5MCw5ICsxMDkwLDkgQEAg V0lORE9XIHcgQVMgKAogKTsKICBjb3VudCAKIC0tLS0tLS0KLSAgICAgMQotICAgICAxCi0gICAg IDEKKyAgICAgMAorICAgICAwCisgICAgIDAKICgzIHJvd3MpCiAKIC0tIFJlbHVjdGFudCBxdWFu dGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKQEAgLTExMjQsOSArMTEyNCw5IEBAIFdJTkRP VyB3IEFTICgKICk7CiAgY291bnQgCiAtLS0tLS0tCi0gICAgIDEKLSAgICAgMQotICAgICAxCisg ICAgIDAKKyAgICAgMAorICAgICAwCiAoMyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgcXVhbnRpZmll cjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCkBAIC0xMTkyLDkgKzExOTIsOSBAQCBXSU5ET1cgdyBB UyAoCiApOwogIGNvdW50IAogLS0tLS0tLQotICAgICAxCi0gICAgIDEKLSAgICAgMQorICAgICAw CisgICAgIDAKKyAgICAgMAogKDMgcm93cykKIAogLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHBy ZWZlciBzaG9ydGVzdCBtYXRjaApAQCAtMTM4Miw5ICsxMzgyLDkgQEAgV0lORE9XIHcgQVMgKAog KTsKICBjb3VudCAKIC0tLS0tLS0KLSAgICAgMQotICAgICAxCi0gICAgIDEKKyAgICAgMAorICAg ICAwCisgICAgIDAKICgzIHJvd3MpCiAKIC0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIg c2hvcnRlc3QgbWF0Y2gKQEAgLTE0NjAsOSArMTQ2MCw5IEBAIFdJTkRPVyB3IEFTICgKICk7CiAg Y291bnQgCiAtLS0tLS0tCi0gICAgIDEKLSAgICAgMQotICAgICAxCisgICAgIDAKKyAgICAgMAor ICAgICAwCiAoMyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0 ZXN0IG1hdGNoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4 IGUwN2FkNTdmMzAwLi5iZDM0NTkwNjEzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQKQEAgLTMzNDcsNyArMzM0Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKChhJyBiJykrIiBjKSoKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKLSAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTc4IHRvdGFsLCAwIG1l cmdlZAorICAgTkZBIFN0YXRlczogOSBwZWFrLCAxNzggdG90YWwsIDAgbWVyZ2VkCiAgICBORkEg Q29udGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDIyIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQg KGxlbiA1Ny81Ny81Ny4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDM3IHNr aXBwZWQgKGxlbiAxLzMvMi4wKQpAQCAtMzM4NCw3ICszMzg0LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSAoYiBjKSspKgogICAgU3RvcmFnZTogTWVtb3J5ICBN YXhpbXVtIFN0b3JhZ2U6IE5rQgotICAgTkZBIFN0YXRlczogNSBwZWFrLCAxNjAgdG90YWwsIDAg bWVyZ2VkCisgICBORkEgU3RhdGVzOiA3IHBlYWssIDE2MCB0b3RhbCwgMCBtZXJnZWQKICAgIE5G QSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjIgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hl ZCAobGVuIDU3LzU3LzU3LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzcg c2tpcHBlZCAobGVuIDEvMy8yLjApCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0009-fix-window-dedup.txt" Content-Disposition: attachment; filename="0009-fix-window-dedup.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufvvf8 RnJvbSBkNGM4N2NiMmQ1YjdmMzUyMjNkYzNiZmE5ZDcxODA5YzlmY2IxMzVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDggTWFyIDIwMjYgMTg6MzA6MjEgKzA5MDAKU3ViamVjdDogW1BBVENIIDA5LzEyXSBG aXggd2luZG93IGRlZHVwbGljYXRpb24gZm9yIFJQUiB3aW5kb3dzIGF0IHBhcnNlIHRpbWUKCi0t LQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgfCAgMyArKy0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IHwgMjYgKysrKysrKysrKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgIHwgMjAgKysr KysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCA4MWUxZDcwZmZjMS4uNWU5NDIw NzU0NDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTExMTAsNyArMTExMCw4IEBAIHRyYW5z Zm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMs CiAJCQkJZXF1YWwocmVmd2luLT5vcmRlckNsYXVzZSwgd2luZGVmLT5vcmRlckNsYXVzZSkgJiYK IAkJCQlyZWZ3aW4tPmZyYW1lT3B0aW9ucyA9PSB3aW5kZWYtPmZyYW1lT3B0aW9ucyAmJgogCQkJ CWVxdWFsKHJlZndpbi0+c3RhcnRPZmZzZXQsIHdpbmRlZi0+c3RhcnRPZmZzZXQpICYmCi0JCQkJ ZXF1YWwocmVmd2luLT5lbmRPZmZzZXQsIHdpbmRlZi0+ZW5kT2Zmc2V0KSkKKwkJCQllcXVhbChy ZWZ3aW4tPmVuZE9mZnNldCwgd2luZGVmLT5lbmRPZmZzZXQpICYmCisJCQkJZXF1YWwocmVmd2lu LT5ycENvbW1vblN5bnRheCwgd2luZGVmLT5ycENvbW1vblN5bnRheCkpCiAJCQl7CiAJCQkJLyog Zm91bmQgYSBkdXBsaWNhdGUgd2luZG93IHNwZWNpZmljYXRpb24gKi8KIAkJCQl3ZnVuYy0+d2lu cmVmID0gd2lucmVmOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf YmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCAy ZmVmYjkzM2M3MS4uMDlkMDc5YjA1YzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jh c2Uub3V0CkBAIC0xNCw2ICsxNCw3IEBACiAtLSAgIFNLSVAgVE8gLyBJTklUSUFMIFRlc3RzCiAt LSAgIFNlcmlhbGl6YXRpb24vRGVzZXJpYWxpemF0aW9uIFRlc3RzIChvYmplY3RzIGtlcHQgZm9y IHBnX3VwZ3JhZGUvcGdfZHVtcCkKIC0tICAgRXJyb3IgQ2FzZXMgVGVzdHMKKy0tICAgV2luZG93 IERlZHVwbGljYXRpb24gVGVzdHMKIC0tCiAtLSBQbGFubmVyIExheWVyOgogLS0gICBQYXR0ZXJu IE9wdGltaXphdGlvbiBUZXN0cwpAQCAtMjk2OCw2ICsyOTY5LDMxIEBAIE9SREVSIEJZIGlkOwog KDMgcm93cykKIAogRFJPUCBUQUJMRSBycHJfbnVsbDsKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gV2luZG93IERlZHVw bGljYXRpb24gVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gbm9uLVJQUiBhbmQgUlBSIHdpbmRvd3Mgd2l0aCBp ZGVudGljYWwgYmFzZSBmcmFtZSBhcmUga2VwdCBzZXBhcmF0ZS4KK1NFTEVDVCBpZCwgdmFsLAor ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgKSBB UyBmdl9ub3JtYWwsCisgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdzEgQVMgZnZfcnByCitGUk9N IChWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKSwgKDQsIDQwKSkgQVMgdChpZCwgdmFs KQorV0lORE9XIHcxIEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIHZhbCA+IDEwCispOworIGlkIHwgdmFsIHwgZnZfbm9ybWFsIHwgZnZfcnByIAor LS0tLSstLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAgICAxIHwg ICAgICAgCisgIDIgfCAgMjAgfCAgICAgICAgIDIgfCAgICAgIDIKKyAgMyB8ICAzMCB8ICAgICAg ICAgMyB8ICAgICAgIAorICA0IHwgIDQwIHwgICAgICAgICA0IHwgICAgICAgCisoNCByb3dzKQor CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tIFBhdHRlcm4gT3B0aW1pemF0aW9uIFRlc3RzCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9iYXNlLnNxbAppbmRleCA0NTM4NjBjMTQ5OS4uOTVjZmI0Yjg2ZmUgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfYmFzZS5zcWwKQEAgLTE0LDYgKzE0LDcgQEAKIC0tICAgU0tJUCBUTyAvIElO SVRJQUwgVGVzdHMKIC0tICAgU2VyaWFsaXphdGlvbi9EZXNlcmlhbGl6YXRpb24gVGVzdHMgKG9i amVjdHMga2VwdCBmb3IgcGdfdXBncmFkZS9wZ19kdW1wKQogLS0gICBFcnJvciBDYXNlcyBUZXN0 cworLS0gICBXaW5kb3cgRGVkdXBsaWNhdGlvbiBUZXN0cwogLS0KIC0tIFBsYW5uZXIgTGF5ZXI6 CiAtLSAgIFBhdHRlcm4gT3B0aW1pemF0aW9uIFRlc3RzCkBAIC0yMDgwLDYgKzIwODEsMjUgQEAg T1JERVIgQlkgaWQ7CiAKIERST1AgVEFCTEUgcnByX251bGw7CiAKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gV2luZG93 IERlZHVwbGljYXRpb24gVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBub24tUlBSIGFuZCBSUFIgd2luZG93 cyB3aXRoIGlkZW50aWNhbCBiYXNlIGZyYW1lIGFyZSBrZXB0IHNlcGFyYXRlLgorU0VMRUNUIGlk LCB2YWwsCisgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgKAorICAgICAgICBPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICApIEFTIGZ2X25vcm1hbCwKKyAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3MSBBUyBmdl9y cHIKK0ZST00gKFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzApLCAoNCwgNDApKSBBUyB0 KGlkLCB2YWwpCitXSU5ET1cgdzEgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgdmFsID4gMTAKKyk7CisKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUGF0dGVybiBPcHRp bWl6YXRpb24gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0010-walk-define-clause.txt" Content-Disposition: attachment; filename="0010-walk-define-clause.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhufy2l9 RnJvbSBlM2QwZWNkMDcyOTljMDdjY2E4M2UxZDFhNzVlNzJhZjRmNzg5YzBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDggTWFyIDIwMjYgMTg6MzA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIDEwLzEyXSBX YWxrIERFRklORSBjbGF1c2UgaW4gd2luZG93IHRyZWUgdHJhdmVyc2FsCgotLS0KIHNyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgIHwgIDYgKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICB8IDI0ICsrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwppbmRleCAxOTllZDI3OTk1Zi4uZGRmNjgxMmQ3YjAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCkBAIC0yNDExLDYgKzI0MTEsOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9k ZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsod2MtPmVuZE9mZnNldCkp CiAJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHdjLT5kZWZpbmVDbGF1c2UpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFRfQ1RFQ3ljbGVDbGF1c2U6 CkBAIC0yNzYzLDYgKzI3NjUsOCBAQCBxdWVyeV90cmVlX3dhbGtlcl9pbXBsKFF1ZXJ5ICpxdWVy eSwKIAkJCQlyZXR1cm4gdHJ1ZTsKIAkJCWlmIChXQUxLKHdjLT5lbmRPZmZzZXQpKQogCQkJCXJl dHVybiB0cnVlOworCQkJaWYgKFdBTEsod2MtPmRlZmluZUNsYXVzZSkpCisJCQkJcmV0dXJuIHRy dWU7CiAJCX0KIAl9CiAKQEAgLTM0OTksNiArMzUwMyw3IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRh dG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlNVVRBVEUobmV3bm9kZS0+b3JkZXJDbGF1c2UsIHdj LT5vcmRlckNsYXVzZSwgTGlzdCAqKTsKIAkJCQlNVVRBVEUobmV3bm9kZS0+c3RhcnRPZmZzZXQs IHdjLT5zdGFydE9mZnNldCwgTm9kZSAqKTsKIAkJCQlNVVRBVEUobmV3bm9kZS0+ZW5kT2Zmc2V0 LCB3Yy0+ZW5kT2Zmc2V0LCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2RlLT5kZWZpbmVDbGF1 c2UsIHdjLT5kZWZpbmVDbGF1c2UsIExpc3QgKik7CiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25v ZGU7CiAJCQl9CiAJCQlicmVhazsKQEAgLTM4MzEsNiArMzgzNiw3IEBAIHF1ZXJ5X3RyZWVfbXV0 YXRvcl9pbXBsKFF1ZXJ5ICpxdWVyeSwKIAkJCUZMQVRDT1BZKG5ld25vZGUsIHdjLCBXaW5kb3dD bGF1c2UpOwogCQkJTVVUQVRFKG5ld25vZGUtPnN0YXJ0T2Zmc2V0LCB3Yy0+c3RhcnRPZmZzZXQs IE5vZGUgKik7CiAJCQlNVVRBVEUobmV3bm9kZS0+ZW5kT2Zmc2V0LCB3Yy0+ZW5kT2Zmc2V0LCBO b2RlICopOworCQkJTVVUQVRFKG5ld25vZGUtPmRlZmluZUNsYXVzZSwgd2MtPmRlZmluZUNsYXVz ZSwgTGlzdCAqKTsKIAogCQkJcmVzdWx0bGlzdCA9IGxhcHBlbmQocmVzdWx0bGlzdCwgKE5vZGUg KikgbmV3bm9kZSk7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5k ZXggMDlkMDc5YjA1YzYuLmZmZDBmOGVkOWYxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9iYXNlLm91dApAQCAtMjgsNiArMjgsNyBAQAogLS0gICBDb21wbGV4IEV4cHJlc3Npb24gVGVz dHMKIC0tICAgU2V0IE9wZXJhdGlvbnMgVGVzdHMKIC0tICAgU29ydGluZyBhbmQgR3JvdXBpbmcg VGVzdHMKKy0tICAgU1FMIEZ1bmN0aW9uIElubGluaW5nIFRlc3RzCiAtLSAgIFN0cmVzcyBUZXN0 cwogLS0gICBFcnJvciBMaW1pdCBUZXN0cwogLS0KQEAgLTU0NTMsNiArNTQ1NCwzNCBAQCBMSU1J VCAzIE9GRlNFVCAxOwogKDMgcm93cykKIAogRFJPUCBUQUJMRSBycHJfc29ydDsKKy0tIFNRTCBm dW5jdGlvbiBpbmxpbmluZzogJDEgaW4gREVGSU5FIG11c3QgYmUgc3Vic3RpdHV0ZWQgYnkKKy0t IHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNfaW5fZnJvbSB2aWEgcXVlcnlfdHJlZV9tdXRh dG9yLgorQ1JFQVRFIFRBQkxFIHJwcl9zcmZfdCAodiBpbnQpOworSU5TRVJUIElOVE8gcnByX3Ny Zl90IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNSk7CitDUkVBVEUgRlVOQ1RJT04gcnByX3Ny Zl9mKHRocmVzaG9sZCBpbnQpCitSRVRVUk5TIFRBQkxFICh2IGludCwgY250IGJpZ2ludCkKK0xB TkdVQUdFIHNxbCBTVEFCTEUgQVMgJCQKKyAgICBTRUxFQ1Qgdjo6aW50LCBjb3VudCgqKSBPVkVS IHcKKyAgICBGUk9NIHJwcl9zcmZfdAorICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgT1JERVIg QlkgdgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHYgPiAkMQor ICAgICkKKyQkOworU0VMRUNUIHYsIGNudCBGUk9NIHJwcl9zcmZfZigzKSBPUkRFUiBCWSB2Owor IHYgfCBjbnQgCistLS0rLS0tLS0KKyAxIHwgICAwCisgMiB8ICAgMAorIDMgfCAgIDAKKyA0IHwg ICAyCisgNSB8ICAgMAorKDUgcm93cykKKworRFJPUCBUQUJMRSBycHJfc3JmX3Q7CitEUk9QIEZV TkNUSU9OIHJwcl9zcmZfZihpbnQpOwogRFJPUCBUQUJMRSBycHJfcGxhbm5lcjsKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gU3RyZXNzIFRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFz ZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggOTVjZmI0Yjg2 ZmUuLjNkNmNhMmJjMmEyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFz ZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0yOCw2ICsy OCw3IEBACiAtLSAgIENvbXBsZXggRXhwcmVzc2lvbiBUZXN0cwogLS0gICBTZXQgT3BlcmF0aW9u cyBUZXN0cwogLS0gICBTb3J0aW5nIGFuZCBHcm91cGluZyBUZXN0cworLS0gICBTUUwgRnVuY3Rp b24gSW5saW5pbmcgVGVzdHMKIC0tICAgU3RyZXNzIFRlc3RzCiAtLSAgIEVycm9yIExpbWl0IFRl c3RzCiAtLQpAQCAtMzQ3OCw2ICszNDc5LDI5IEBAIExJTUlUIDMgT0ZGU0VUIDE7CiAKIERST1Ag VEFCTEUgcnByX3NvcnQ7CiAKKy0tIFNRTCBmdW5jdGlvbiBpbmxpbmluZzogJDEgaW4gREVGSU5F IG11c3QgYmUgc3Vic3RpdHV0ZWQgYnkKKy0tIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNf aW5fZnJvbSB2aWEgcXVlcnlfdHJlZV9tdXRhdG9yLgorQ1JFQVRFIFRBQkxFIHJwcl9zcmZfdCAo diBpbnQpOworSU5TRVJUIElOVE8gcnByX3NyZl90IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwg NSk7CisKK0NSRUFURSBGVU5DVElPTiBycHJfc3JmX2YodGhyZXNob2xkIGludCkKK1JFVFVSTlMg VEFCTEUgKHYgaW50LCBjbnQgYmlnaW50KQorTEFOR1VBR0Ugc3FsIFNUQUJMRSBBUyAkJAorICAg IFNFTEVDVCB2OjppbnQsIGNvdW50KCopIE9WRVIgdworICAgIEZST00gcnByX3NyZl90CisgICAg V0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSB2CisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykK KyAgICAgICAgREVGSU5FIEEgQVMgdiA+ICQxCisgICAgKQorJCQ7CisKK1NFTEVDVCB2LCBjbnQg RlJPTSBycHJfc3JmX2YoMykgT1JERVIgQlkgdjsKKworRFJPUCBUQUJMRSBycHJfc3JmX3Q7CitE Uk9QIEZVTkNUSU9OIHJwcl9zcmZfZihpbnQpOworCiBEUk9QIFRBQkxFIHJwcl9wbGFubmVyOwog CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0011-use-empty-match-term.txt" Content-Disposition: attachment; filename="0011-use-empty-match-term.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhug00e10 RnJvbSAzNTJiOTE4YWNiMmRjMTBiZDU1ZWFmMDQ3MWYxZjVjNjBiOGExNzkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDggTWFyIDIwMjYgMTk6MTc6MzEgKzA5MDAKU3ViamVjdDogW1BBVENIIDExLzEyXSBV c2UgU1FMIHN0YW5kYXJkIHRlcm0gImVtcHR5IG1hdGNoIiBpbiBSUFIgY29tbWVudHMKCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICB8IDQgKystLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCB8IDQgKystLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX25mYS5zcWwgICAgICB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmlu ZGV4IDMwNzVjNTE3ODljLi43NmMxYTZiZWJlZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5k b3dBZ2cuYwpAQCAtNTAwOCwxMiArNTAwOCwxMiBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAgKiAgIGhh bmRsZXMgbmVzdGVkIGdyb3VwcyBsaWtlICIoKEF8QikrKSsiIGNvcnJlY3RseSAtIGV4aXRpbmcg dGhlIGlubmVyCiAgKiAgIGdyb3VwIGNvdW50cyBhcyBvbmUgaXRlcmF0aW9uIG9mIHRoZSBvdXRl ciBncm91cC4KICAqCi0gKiAtIFplcm8tbGVuZ3RoIG1hdGNoIGhhbmRsaW5nOiBUaGUgaW5pdGlh bCBhZHZhbmNlIHVzZXMgY3VycmVudFBvcyA9CisgKiAtIEVtcHR5IG1hdGNoIGhhbmRsaW5nOiBU aGUgaW5pdGlhbCBhZHZhbmNlIHVzZXMgY3VycmVudFBvcyA9CiAgKiAgIHN0YXJ0UG9zIC0gMSAo YmVmb3JlIGFueSByb3cgaXMgY29uc3VtZWQpLiBJZiBGSU4gaXMgcmVhY2hlZCB2aWEKICAqICAg ZXBzaWxvbiB0cmFuc2l0aW9ucyBhbG9uZSwgbWF0Y2hFbmRSb3cgPSBzdGFydFBvcyAtIDEgPCBt YXRjaFN0YXJ0Um93LAogICogICByZXN1bHRpbmcgaW4gVU5NQVRDSEVELiBGb3IgcmVsdWN0YW50 IG1pbj0wIHBhdHRlcm5zIChBKj8sIEE/PyksCiAgKiAgIHRoZSBza2lwIHBhdGggcmVhY2hlcyBG SU4gZmlyc3QgYW5kIGVhcmx5IHRlcm1pbmF0aW9uIHBydW5lcyBlbnRlcgotICogICBwYXRocywg eWllbGRpbmcgYW4gaW1tZWRpYXRlIHplcm8tbGVuZ3RoICh1bm1hdGNoZWQpIHJlc3VsdC4gRm9y CisgKiAgIHBhdGhzLCB5aWVsZGluZyBhbiBpbW1lZGlhdGUgZW1wdHkgKHVubWF0Y2hlZCkgcmVz dWx0LiBGb3IKICAqICAgZ3JlZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRlciBwYXRoIGFkZHMg VkFSIHN0YXRlcyBmaXJzdCwgdGhlbgogICogICB0aGUgc2tpcCBGSU4gaXMgcmVjb3JkZWQgYnV0 IFZBUiBzdGF0ZXMgc3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCiAgKgpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX25mYS5vdXQKaW5kZXggYzg0NjRlOGZjZjQuLjdiNWExN2ZiNjcxIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKQEAgLTQyMzksOCArNDIzOSw4IEBAIFdJ TkRPVyB3IEFTICgKICg2IHJvd3MpCiAKIC0tIChBPyBCPyl7MiwzfTogcHVyZSBlbXB0eSBib2R5 IChub3RoaW5nIG1hdGNoZXMpCi0tLSBYWFg6IEFsbCBOVUxMOiBzYW1lIGlzc3VlIGFzIHRlc3Rf NzI4X21pbjIgKGluaXRpYWxBZHZhbmNlIGJsb2NrcyBGSU4KLS0tIGZvciB6ZXJvLWxlbmd0aCBt YXRjaGVzIGF0IGNvbnRleHQgc3RhcnQpCistLSBYWFg6IEFsbCBOVUxMOiBzYW1lIGlzc3VlIGFz IHRlc3RfNzI4X21pbjIgKGVtcHR5IG1hdGNoIGF0IGNvbnRleHQKKy0tIHN0YXJ0IHlpZWxkcyBV Tk1BVENIRUQgdmlhIHN0YXJ0UG9zLTEgaW5pdGlhbCBhZHZhbmNlKQogV0lUSCB0ZXN0XzcyOF9t dWx0aV9lbXB0eSBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBB UlJBWVsnQyddKSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwKaW5kZXggYzBmNGRmYTEyNDguLjVl ZGNiMzM1N2U2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbApAQCAtMzE5Nyw4ICszMTk3LDgg QEAgV0lORE9XIHcgQVMgKAogKTsKIAogLS0gKEE/IEI/KXsyLDN9OiBwdXJlIGVtcHR5IGJvZHkg KG5vdGhpbmcgbWF0Y2hlcykKLS0tIFhYWDogQWxsIE5VTEw6IHNhbWUgaXNzdWUgYXMgdGVzdF83 MjhfbWluMiAoaW5pdGlhbEFkdmFuY2UgYmxvY2tzIEZJTgotLS0gZm9yIHplcm8tbGVuZ3RoIG1h dGNoZXMgYXQgY29udGV4dCBzdGFydCkKKy0tIFhYWDogQWxsIE5VTEw6IHNhbWUgaXNzdWUgYXMg dGVzdF83MjhfbWluMiAoZW1wdHkgbWF0Y2ggYXQgY29udGV4dAorLS0gc3RhcnQgeWllbGRzIFVO TUFUQ0hFRCB2aWEgc3RhcnRQb3MtMSBpbml0aWFsIGFkdmFuY2UpCiBXSVRIIHRlc3RfNzI4X211 bHRpX2VtcHR5IEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKICAgICAgICAgKDEsIEFS UkFZWydDJ10pLAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000921dae064c840db1 Content-Type: text/plain; charset="US-ASCII"; name="0012-extract-nfa-engine.txt" Content-Disposition: attachment; filename="0012-extract-nfa-engine.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmhug2xx11 RnJvbSBmNGM1NGY5ODNiNTAyNjI2ZmUxNWU3ZWQ5MTUzNWY4ZDllNTc1NmIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDggTWFyIDIwMjYgMjI6MzA6MjAgKzA5MDAKU3ViamVjdDogW1BBVENIIDEyLzEyXSBF eHRyYWN0IFJQUiBORkEgZW5naW5lIGludG8gZXhlY1JQUi5jCgotLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL01ha2VmaWxlICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JQUi5jICAgICAgIHwgMzAzNyArKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tl bmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlV2luZG93QWdnLmMgfCAyOTIxICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICB8ICAgIDIgKy0KIHNyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNSUFIuaCAgICAgICB8ICAgNDAgKwogNiBmaWxlcyBjaGFuZ2VkLCAzNzU1IGlu c2VydGlvbnMoKyksIDIyNDcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY1JQUi5oCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFr ZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQppbmRleCAxMTExOGQwY2UwMi4u ZWVlZDlhOTA0ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCkBAIC0yNiw2ICsyNiw3IEBAIE9CSlMg PSBcCiAJZXhlY1BhcnRpdGlvbi5vIFwKIAlleGVjUHJvY25vZGUubyBcCiAJZXhlY1JlcGxpY2F0 aW9uLm8gXAorCWV4ZWNSUFIubyBcCiAJZXhlY1NSRi5vIFwKIAlleGVjU2Nhbi5vIFwKIAlleGVj VHVwbGVzLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4wZDViYTc1MTZlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMCwwICsxLDMwMzcgQEAKKy8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIGV4ZWNSUFIuYworICoJICBORkEtYmFzZWQgUm93IFBhdHRlcm4gUmVjb2duaXRp b24gZW5naW5lIGZvciB3aW5kb3cgZnVuY3Rpb25zLgorICoKKyAqIFRoaXMgZmlsZSBpbXBsZW1l bnRzIHRoZSBORkEgZXhlY3V0aW9uIGVuZ2luZSBmb3IgdGhlIFJPV1MgQkVUV0VFTgorICogUEFU VEVSTiBjbGF1c2UgKFNRTCBTdGFuZGFyZCBGZWF0dXJlIFIwMjA6IFJvdyBQYXR0ZXJuIFJlY29n bml0aW9uIGluCisgKiBXaW5kb3cgRnVuY3Rpb25zKS4KKyAqCisgKiBUaGUgZW5naW5lIGV4ZWN1 dGVzIHRoZSBjb21waWxlZCBSUFJQYXR0ZXJuIHN0cnVjdHVyZSBkaXJlY3RseSwgYXZvaWRpbmcK KyAqIHJlZ2V4IGNvbXBpbGF0aW9uIG92ZXJoZWFkLiAgSXQgaXMgY2FsbGVkIGJ5IG5vZGVXaW5k b3dBZ2cuYyBhbmQgZXhwb3NlcworICogdGhlIGludGVyZmFjZSBkZWNsYXJlZCBpbiBleGVjdXRv ci9leGVjUlBSLmguCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMK KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNp bmNsdWRlICJleGVjdXRvci9leGVjUlBSLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3Iu aCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCisjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMu aCIKKworLyoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgUG9zdGdyZVNRTCBSb3cgUGF0 dGVybiBSZWNvZ25pdGlvbjogRmxhdC1BcnJheSBTdHJlYW0gTkZBIEd1aWRlCisgKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisgKgorICogICBUYXJnZXQgYXVkaWVuY2U6IERldmVsb3BlcnMgd2l0aCBh IGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIFBvc3RncmVTUUwKKyAqICAgICAgICAgICAgICAg ICAgICBleGVjdXRvciBhbmQgcGxhbm5lciBhcmNoaXRlY3R1cmUKKyAqCisgKiAgIFNjb3BlOiBU aGUgZW50aXJlIHByb2Nlc3MgZnJvbSBQQVRURVJOL0RFRklORSBjbGF1c2UgcGFyc2luZyB0byBO RkEKKyAqICAgICAgICAgIHJ1bnRpbWUgZXhlY3V0aW9uCisgKgorICogICBSZWxhdGVkIGNvZGU6 CisgKiAgICAgLSBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgICAgKHBhcnNl ciBwaGFzZSkKKyAqICAgICAtIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAg ICAob3B0aW1pemVyIHBoYXNlKQorICogICAgIC0gc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5jICAgIChleGVjdXRvciBwaGFzZSwgd2luZG93IGFnZykKKyAqICAgICAtIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICAgICAoZXhlY3V0b3IgcGhhc2UsIE5GQSBl bmdpbmUpCisgKiAgICAgLSBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUlBSLmggICAgICAgICAg KE5GQSBwdWJsaWMgQVBJKQorICogICAgIC0gc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg ICAgICAgICAgIChwbGFuIG5vZGUgZGVmaW5pdGlvbnMpCisgKiAgICAgLSBzcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgKGV4ZWN1dGlvbiBzdGF0ZSBkZWZpbml0aW9ucykK KyAqICAgICAtIHNyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaCAgICAgICAgICAgICAodHlwZXMg YW5kIGNvbnN0YW50cykKKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogV2hhdCBp cyBhIEZsYXQtQXJyYXkgU3RyZWFtIE5GQT8KKyAqCisgKiAgIFRoZSBORkEgaW4gdGhpcyBpbXBs ZW1lbnRhdGlvbiBpcyBub3QgYSB0cmFkaXRpb25hbCBzdGF0ZS10cmFuc2l0aW9uIGdyYXBoCisg KiAgIGJ1dCBhIGZsYXQgYXJyYXkgb2YgZml4ZWQtc2l6ZSAxNi1ieXRlIGVsZW1lbnRzLiBBdCBy dW50aW1lLCBpdCBwcm9jZXNzZXMKKyAqICAgdGhlIHJvdyBzdHJlYW0gaW4gYSBmb3J3YXJkLW9u bHkgbWFubmVyLCBleHBhbmRpbmcgZXBzaWxvbiB0cmFuc2l0aW9ucworICogICBlYWdlcmx5IHdp dGhvdXQgYmFja3RyYWNraW5nLgorICoKKyAqICAgLSBGbGF0LUFycmF5OiBQYXR0ZXJuIGNvbXBp bGVkIGludG8gYSBmbGF0IGFycmF5LAorICogICAgICAgICAgICAgICAgIG5vdCBhIGdyYXBoIChD aGFwdGVyIElWKQorICogICAtIFN0cmVhbTogICAgIFJvd3MgY29uc3VtZWQgc2VxdWVudGlhbGx5 IGluIG9uZSBkaXJlY3Rpb24sCisgKiAgICAgICAgICAgICAgICAgbmV2ZXIgcmV2aXNpdGVkIChD aGFwdGVyIFhJSSkKKyAqICAgLSBORkE6ICAgICAgICBOb25kZXRlcm1pbmlzdGljIGV4ZWN1dGlv biB3aGVyZSBtdWx0aXBsZSBzdGF0ZXMKKyAqICAgICAgICAgICAgICAgICBjb2V4aXN0IHdpdGhp biBhIHNpbmdsZSBjb250ZXh0IChDaGFwdGVyIFZJKQorICoKKyAqIENoYXB0ZXIgSSAgUm93IFBh dHRlcm4gUmVjb2duaXRpb24gT3ZlcnZpZXcKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisg KiBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiAoaGVyZWFmdGVyIFJQUikgaXMgYSBmZWF0dXJlIGlu dHJvZHVjZWQgaW4gU1FMOjIwMTYKKyAqIHRoYXQgbWF0Y2hlcyByZWdleC1iYXNlZCBwYXR0ZXJu cyBhZ2FpbnN0IG9yZGVyZWQgcm93IHNldHMuCisgKgorICogVGhlIFNRTCBzdGFuZGFyZCBkZWZp bmVzIHR3byBmb3JtczoKKyAqCisgKiAgIEZlYXR1cmUgUjAxMDogTUFUQ0hfUkVDT0dOSVpFIChG Uk9NIGNsYXVzZSkKKyAqICAgICAtIERlZGljYXRlZCB0YWJsZSBvcGVyYXRvcgorICogICAgIC0g UHJvdmlkZXMgZGVkaWNhdGVkIGZ1bmN0aW9ucyBzdWNoIGFzIE1BVENIX05VTUJFUigpLCBDTEFT U0lGSUVSKCkKKyAqICAgICAtIFN1cHBvcnRzIE9ORSBST1cgUEVSIE1BVENIIC8gQUxMIFJPV1Mg UEVSIE1BVENICisgKgorICogICBGZWF0dXJlIFIwMjA6IFJQUiBpbiBhIHdpbmRvdyAoV0lORE9X IGNsYXVzZSkKKyAqICAgICAtIEludGVncmF0ZWQgaW50byB0aGUgZXhpc3Rpbmcgd2luZG93IGZ1 bmN0aW9uIGZyYW1ld29yaworICogICAgIC0gU3VwcG9ydHMgQUxMIFJPV1MgUEVSIE1BVENIIG9u bHkKKyAqICAgICAtIE5vIE1BVENIX05VTUJFUigpCisgKgorICogVGhpcyBpbXBsZW1lbnRhdGlv biB0YXJnZXRzIEZlYXR1cmUgUjAyMC4KKyAqCisgKiBUaGUgYmFzaWMgc3ludGF4IGlzIGFzIGZv bGxvd3M6CisgKgorICogICBTRUxFQ1QgLi4uCisgKiAgIE9WRVIgKAorICogICAgIFBBUlRJVElP TiBCWSAuLi4KKyAqICAgICBPUkRFUiBCWSAuLi4KKyAqICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAqICAgICBbSU5JVElBTCB8IFNFRUtdICAg LS0gU0VFSyBpcyBkZWZpbmVkIGluIHRoZSBzdGFuZGFyZCBidXQgbm90IGltcGxlbWVudGVkCisg KiAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVyB8IFNLSVAgUEFTVCBMQVNUIFJPVwor ICogICAgIFBBVFRFUk4gKCA8cmVnZXg+ICkKKyAqICAgICBERUZJTkUgPHZhcmlhYmxlPiBBUyA8 Y29uZGl0aW9uPiwgLi4uCisgKiAgICkKKyAqCisgKiBUaGUgUEFUVEVSTiBjbGF1c2UgaXMgYSBy ZWd1bGFyIGV4cHJlc3Npb24gb3ZlciByb3cgcGF0dGVybiB2YXJpYWJsZXMuCisgKiBUaGUgREVG SU5FIGNsYXVzZSBzcGVjaWZpZXMgYm9vbGVhbiBjb25kaXRpb25zIHRoYXQgZGV0ZXJtaW5lIHdo ZXRoZXIgZWFjaAorICogdmFyaWFibGUgZXZhbHVhdGVzIHRvIHRydWUgZm9yIHRoZSBjdXJyZW50 IHJvdy4KKyAqCisgKiBFeGFtcGxlOgorICoKKyAqICAgUEFUVEVSTiAoQSsgQikKKyAqICAgREVG SU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAqICAgICAgICAgIEIgQVMgcHJpY2UgPCBQ UkVWKHByaWNlKQorICoKKyAqIFRoaXMgcGF0dGVybiBtYXRjaGVzICJhIHNwYW4gd2hlcmUgcHJp Y2VzIHJpc2UgY29uc2VjdXRpdmVseSB0aGVuIGRyb3AuIgorICoKKyAqIENoYXB0ZXIgSUkgIE92 ZXJhbGwgUHJvY2Vzc2luZyBQaXBlbGluZQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAq IFJQUiBwcm9jZXNzaW5nIGlzIGRpdmlkZWQgaW50byB0aHJlZSBwaGFzZXM6CisgKgorICogICAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKworICogICB8ICAxLiBQYXJzaW5nIChQYXJzZXIpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogICB8ICAgICBTUUwgdGV4dCAtPiBQQVRURVJOIEFTVCArIERF RklORSBleHByZXNzaW9uIHRyZWUgICAgICAgfAorICogICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICB8ICAyLiBDb21w aWxhdGlvbiAoT3B0aW1pemVyL1BsYW5uZXIpICAgICAgICAgICAgICAgICAgICAgICAgfAorICog ICB8ICAgICBQQVRURVJOIEFTVCAtPiBvcHRpbWl6YXRpb24gLT4gZmxhdCBORkEgZWxlbWVudCBh cnJheSAgfAorICogICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorICogICB8ICAzLiBFeGVjdXRpb24gKEV4ZWN1dG9yKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICB8ICAgICBSb3ctYnktcm93IG1h dGNoaW5nIHZpYSBORkEgc2ltdWxhdGlvbiAgICAgICAgICAgICAgICAgfAorICogICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor ICoKKyAqIEVhY2ggcGhhc2UgdXNlcyBpbmRlcGVuZGVudCBkYXRhIHN0cnVjdHVyZXMsIGFuZCB0 aGUgaW50ZXJmYWNlcyBiZXR3ZWVuCisgKiBwaGFzZXMgYXJlIHdlbGwtZGVmaW5lZDoKKyAqCisg KiAgIFBhcnNlciAtPiBQbGFubmVyOiAgICBXaW5kb3dDbGF1c2UucnBQYXR0ZXJuIChSUFJQYXR0 ZXJuTm9kZSB0cmVlKQorICogICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93Q2xhdXNlLmRl ZmluZUNsYXVzZSAoVGFyZ2V0RW50cnkgbGlzdCkKKyAqCisgKiAgIFBsYW5uZXIgLT4gRXhlY3V0 b3I6ICBXaW5kb3dBZ2cucnBQYXR0ZXJuIChSUFJQYXR0ZXJuIHN0cnVjdCkKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgIFdpbmRvd0FnZy5kZWZpbmVDbGF1c2UgKFRhcmdldEVudHJ5IGxpc3Qp CisgKgorICogQ2hhcHRlciBJSUkgIFBhcnNpbmcgUGhhc2UKKyAqID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKyAqCisgKiBJSUktMS4gRW50cnkgUG9pbnQKKyAqCisgKiAgIHRyYW5zZm9ybVdpbmRvd0Rl ZmluaXRpb25zKCkgKHBhcnNlX2NsYXVzZS5jKQorICogICAgICstLSB0cmFuc2Zvcm1SUFIoKSAo cGFyc2VfcnByLmMpCisgKgorICogdHJhbnNmb3JtUlBSKCkgaXMgaW52b2tlZCB3aGVuIFJQQ29t bW9uU3ludGF4IGlzIHByZXNlbnQgYW5kIHBlcmZvcm1zIHRoZQorICogZm9sbG93aW5nOgorICoK KyAqICAgKDEpIEZyYW1lIG9wdGlvbiB2YWxpZGF0aW9uCisgKiAgICAgICAtIE9ubHkgUk9XUyBp cyBhbGxvd2VkIChSQU5HRSwgR1JPVVBTIGFyZSBub3QpCisgKiAgICAgICAtIFRoZSBzdGFydCBi b3VuZGFyeSBtdXN0IGJlIENVUlJFTlQgUk9XCisgKiAgICAgICAtIEVYQ0xVREUgb3B0aW9uIGlz IG5vdCBhbGxvd2VkCisgKgorICogICAoMikgVHJhbnNjcmlwdGlvbiB0byBXaW5kb3dDbGF1c2UK KyAqICAgICAgIC0gQ29waWVzIHJwUGF0dGVybiwgcnBTa2lwVG8sIGluaXRpYWwgZmllbGRzCisg KgorICogICAoMykgREVGSU5FIGNsYXVzZSB0cmFuc2Zvcm1hdGlvbiAodHJhbnNmb3JtRGVmaW5l Q2xhdXNlKQorICoKKyAqIElJSS0yLiBQQVRURVJOIEFTVAorICoKKyAqIFRoZSBwYXJzZXIgdHJh bnNmb3JtcyB0aGUgUEFUVEVSTiBjbGF1c2UgaW50byBhbiBSUFJQYXR0ZXJuTm9kZSB0cmVlLgor ICogRWFjaCBub2RlIGhhcyBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3VyIHR5cGVzOgorICoKKyAq ICAgUlBSX1BBVFRFUk5fVkFSICAgIFZhcmlhYmxlIHJlZmVyZW5jZS4gTmFtZSBzdG9yZWQgaW4g dmFyTmFtZSBmaWVsZC4KKyAqICAgUlBSX1BBVFRFUk5fU0VRICAgIENvbmNhdGVuYXRpb24uIENo aWxkcmVuIG5vZGUgbGlzdCBpbiBjaGlsZHJlbi4KKyAqICAgUlBSX1BBVFRFUk5fQUxUICAgIEFs dGVybmF0aW9uLiBCcmFuY2ggbm9kZSBsaXN0IGluIGNoaWxkcmVuLgorICogICBSUFJfUEFUVEVS Tl9HUk9VUCAgR3JvdXAgKHBhcmVudGhlc2VzKS4gQm9keSBub2RlIGxpc3QgaW4gY2hpbGRyZW4u CisgKgorICogQWxsIG5vZGVzIGhhdmUgbWluL21heCBmaWVsZHMgdG8gZXhwcmVzcyBxdWFudGlm aWVyczoKKyAqCisgKiAgIEEgICAgICAgLT4gVkFSKEEsIG1pbj0xLCBtYXg9MSkKKyAqICAgQSsg ICAgICAtPiBWQVIoQSwgbWluPTEsIG1heD1JTkYpCisgKiAgIEEqICAgICAgLT4gVkFSKEEsIG1p bj0wLCBtYXg9SU5GKQorICogICBBPyAgICAgIC0+IFZBUihBLCBtaW49MCwgbWF4PTEpCisgKiAg IEF7Myw1fSAgLT4gVkFSKEEsIG1pbj0zLCBtYXg9NSkKKyAqCisgKiBJZiB0aGUgcmVsdWN0YW50 IGZpZWxkIGlzIHRydWUsIHRoZSBxdWFudGlmaWVyIGlzIHJlbHVjdGFudCAobm9uLWdyZWVkeSku CisgKiAoUlBSUGF0dGVybk5vZGUucmVsdWN0YW50IGlzIGJvb2w7IHJlbHVjdGFudF9sb2NhdGlv biBpcyB0aGUgc2VwYXJhdGUKKyAqIFBhcnNlTG9jIGZpZWxkIGhvbGRpbmcgdGhlICc/JyB0b2tl biBwb3NpdGlvbiwgb3IgLTEgaWYgYWJzZW50LikKKyAqCisgKiBFeGFtcGxlOiBQQVRURVJOICgo QSsgQikgfCBDKikKKyAqCisgKiAgIEFMVAorICogICArLS0gU0VRCisgKiAgIHwgICArLS0gVkFS KEEsIDEsIElORikKKyAqICAgfCAgICstLSBWQVIoQiwgMSwgMSkKKyAqICAgKy0tIFZBUihDLCAw LCBJTkYpCisgKgorICogSUlJLTMuIERFRklORSBDbGF1c2UgVHJhbnNmb3JtYXRpb24KKyAqCisg KiB0cmFuc2Zvcm1EZWZpbmVDbGF1c2UoKSBwcm9jZXNzZXMgZWFjaCBERUZJTkUgdmFyaWFibGUg YXMgZm9sbG93czoKKyAqCisgKiAgICgxKSBDaGVja3MgZm9yIGR1cGxpY2F0ZSB2YXJpYWJsZSBu YW1lcworICogICAoMikgVHJhbnNmb3JtcyB0aGUgZXhwcmVzc2lvbiBpbnRvIGEgc3RhbmRhcmQg U1FMIGV4cHJlc3Npb24KKyAqICAgKDMpIENvZXJjZXMgdG8gQm9vbGVhbiB0eXBlIChjb2VyY2Vf dG9fYm9vbGVhbikKKyAqICAgKDQpIFdyYXBzIGluIGEgVGFyZ2V0RW50cnkgd2l0aCB0aGUgdmFy aWFibGUgbmFtZSBzZXQgaW4gcmVzbmFtZQorICoKKyAqIFZhcmlhYmxlcyB0aGF0IGFyZSB1c2Vk IGluIFBBVFRFUk4gYnV0IG5vdCBkZWZpbmVkIGluIERFRklORSBhcmUgaW1wbGljaXRseQorICog ZXZhbHVhdGVkIGFzIFRSVUUgKG1hdGNoaW5nIGFsbCByb3dzKS4KKyAqCisgKiBDaGFwdGVyIElW ICBDb21waWxhdGlvbiBQaGFzZQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIElWLTEu IEVudHJ5IFBvaW50CisgKgorICogICBjcmVhdGVfd2luZG93YWdnX3BsYW4oKSAoY3JlYXRlcGxh bi5jKQorICogICAgICstLSBjb2xsZWN0UGF0dGVyblZhcmlhYmxlcygpICAgQ29sbGVjdCB2YXJp YWJsZSBuYW1lcworICogICAgICstLSBmaWx0ZXJEZWZpbmVDbGF1c2UoKSAgICAgICAgUmVtb3Zl IHVudXNlZCBERUZJTkUgZW50cmllcworICogICAgICstLSBidWlsZFJQUlBhdHRlcm4oKSAgICAg ICAgICAgTkZBIGNvbXBpbGF0aW9uICg2IHBoYXNlcykKKyAqCisgKiBJVi0yLiBUaGUgNiBQaGFz ZXMgb2YgYnVpbGRSUFJQYXR0ZXJuKCkKKyAqCisgKiAgIFBoYXNlIDE6IEFTVCBvcHRpbWl6YXRp b24gKG9wdGltaXplUlBSUGF0dGVybikKKyAqICAgUGhhc2UgMjogU3RhdGlzdGljcyBjb2xsZWN0 aW9uIChzY2FuUlBSUGF0dGVybikKKyAqICAgUGhhc2UgMzogTWVtb3J5IGFsbG9jYXRpb24gKGFs bG9jYXRlUlBSUGF0dGVybikKKyAqICAgUGhhc2UgNDogTkZBIGVsZW1lbnQgZmlsbCAoZmlsbFJQ UlBhdHRlcm4pCisgKiAgIFBoYXNlIDU6IEZpbmFsaXphdGlvbiAoZmluYWxpemVSUFJQYXR0ZXJu KQorICogICBQaGFzZSA2OiBBYnNvcmJhYmlsaXR5IGFuYWx5c2lzIChjb21wdXRlQWJzb3JiYWJp bGl0eSkKKyAqCisgKiBJVi0zLiBQaGFzZSAxOiBBU1QgT3B0aW1pemF0aW9uCisgKgorICogQWZ0 ZXIgY29weWluZyB0aGUgcGFyc2VyLWdlbmVyYXRlZCBBU1QsIHRoZSBmb2xsb3dpbmcgb3B0aW1p emF0aW9ucyBhcmUKKyAqIGFwcGxpZWQ6CisgKgorICogICAoYSkgU0VRIGZsYXR0ZW5pbmc6IFVu d3JhcCBuZXN0ZWQgU0VRIG5vZGVzCisgKiAgICAgICBTRVEoQSwgU0VRKEIsIEMpKSAtPiBTRVEo QSwgQiwgQykKKyAqCisgKiAgIChiKSBDb25zZWN1dGl2ZSB2YXJpYWJsZSBtZXJnaW5nOiBNZXJn ZSBjb25zZWN1dGl2ZSBvY2N1cnJlbmNlcyBvZiB0aGUKKyAqICAgICAgIHNhbWUgdmFyaWFibGUg aW50byBhIHNpbmdsZSBxdWFudGlmaWVyCisgKiAgICAgICBBIEEgLT4gQXsyfQorICogICAgICAg QXsyLDN9IEF7MSwyfSAtPiBBezMsNX0KKyAqCisgKiAgIChjKSBDb25zZWN1dGl2ZSBncm91cCBt ZXJnaW5nOiBNZXJnZSByZXBlYXRlZCBpZGVudGljYWwgZ3JvdXBzCisgKiAgICAgICAoQSBCKSsg KEEgQikrIC0+IChBIEIpezIsSU5GfQorICoKKyAqICAgKGQpIENvbnNlY3V0aXZlIEFMVCBtZXJn aW5nOiBNZXJnZSByZXBlYXRlZCBpZGVudGljYWwgQUxUIG5vZGVzCisgKiAgICAgICAoQSB8IEIp IChBIHwgQikgKEEgfCBCKSAtPiAoQSB8IEIpezN9CisgKgorICogICAoZSkgUHJlZml4L3N1ZmZp eCBhYnNvcnB0aW9uOiBBYnNvcmIgaWRlbnRpY2FsIHNlcXVlbmNlcyBiZWZvcmUvYWZ0ZXIKKyAq ICAgICAgIGEgZ3JvdXAKKyAqICAgICAgIEEgQiAoQSBCKSsgLT4gKEEgQil7MixJTkZ9CisgKgor ICogICAoZikgQUxUIGZsYXR0ZW5pbmcgYW5kIGRlZHVwbGljYXRpb24KKyAqICAgICAgIChBIHwg KEIgfCBDKSkgLT4gKEEgfCBCIHwgQykKKyAqICAgICAgIChBIHwgQiB8IEEpIC0+IChBIHwgQikK KyAqCisgKiAgIChnKSBRdWFudGlmaWVyIG11bHRpcGxpY2F0aW9uOiBDb2xsYXBzZSBuZXN0ZWQg cXVhbnRpZmllcnMgd2hlbiBzYWZlCisgKiAgICAgICAoQSspKyAtPiBBKworICogICAgICAgKEF7 MiwzfSl7NX0gLT4gQXsxMCwxNX0KKyAqCisgKiAgIChoKSBTaW5nbGUtY2hpbGQgdW53cmFwCisg KiAgICAgICBTRVEoQSkgLT4gQSwgIChBKXsxLDF9IC0+IEEKKyAqCisgKiBJVi00LiBQaGFzZSA0 OiBORkEgRWxlbWVudCBBcnJheSBHZW5lcmF0aW9uCisgKgorICogVHJhbnNmb3JtcyB0aGUgb3B0 aW1pemVkIEFTVCBpbnRvIGEgZmxhdCBhcnJheSBvZiBSUFJQYXR0ZXJuRWxlbWVudC4KKyAqIFRo aXMgaXMgdGhlIGNvcmUgZGF0YSBzdHJ1Y3R1cmUgdXNlZCBmb3IgTkZBIHNpbXVsYXRpb24gYXQg cnVudGltZS4KKyAqCisgKiBSUFJQYXR0ZXJuRWxlbWVudCBzdHJ1Y3QgKDE2IGJ5dGVzKToKKyAq CisgKiAgIEZpZWxkICAgICAgU2l6ZSAgICAgRGVzY3JpcHRpb24KKyAqICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgIHZhcklk ICAgICAgMUIgICAgICBWYXJpYWJsZSBJRCAoMC0yNTEpIG9yIGNvbnRyb2wgY29kZSAoMjUyLTI1 NSkKKyAqICAgZGVwdGggICAgICAxQiAgICAgIEdyb3VwIG5lc3RpbmcgZGVwdGgKKyAqICAgZmxh Z3MgICAgICAxQiAgICAgIEJpdCBmbGFncyAoc2VlIGJlbG93KQorICogICByZXNlcnZlZCAgIDFC ICAgICAgUGFkZGluZworICogICBtaW4gICAgICAgIDRCICAgICAgUXVhbnRpZmllciBsb3dlciBi b3VuZAorICogICBtYXggICAgICAgIDRCICAgICAgUXVhbnRpZmllciB1cHBlciBib3VuZAorICog ICBuZXh0ICAgICAgIDJCICAgICAgTmV4dCBlbGVtZW50IGluZGV4IChzZXF1ZW50aWFsIGZsb3cp CisgKiAgIGp1bXAgICAgICAgMkIgICAgICBCcmFuY2ggdGFyZ2V0IGluZGV4IChmb3IgQUxUL0dS T1VQKQorICoKKyAqIENvbnRyb2wgY29kZXM6CisgKgorICogICBSUFJfVkFSSURfQkVHSU4gKDI1 MikgIEdyb3VwIHN0YXJ0IG1hcmtlcgorICogICBSUFJfVkFSSURfRU5EICAgKDI1MykgIEdyb3Vw IGVuZCBtYXJrZXIKKyAqICAgUlBSX1ZBUklEX0FMVCAgICgyNTQpICBBbHRlcm5hdGlvbiBzdGFy dCBtYXJrZXIKKyAqICAgUlBSX1ZBUklEX0ZJTiAgICgyNTUpICBQYXR0ZXJuIGNvbXBsZXRpb24g bWFya2VyCisgKgorICogRWxlbWVudCBmbGFncyAoMSBieXRlLCBiaXRtYXNrKToKKyAqCisgKiAg IDB4MDEgIFJQUl9FTEVNX1JFTFVDVEFOVCAgICAgICAgICAoVkFSLCBCRUdJTiwgRU5EKQorICog ICAgICAgICBOb24tZ3JlZWR5IHF1YW50aWZpZXIuICBQcmVmZXJzIHNob3J0ZXIgbWF0Y2g6IHRy eSBleGl0LWxvb3AKKyAqICAgICAgICAgZmlyc3QsIHRoZW4gcmVwZWF0LiAgU2V0IG9uIFZBUiBm b3Igc2ltcGxlIChBKz8pLAorICogICAgICAgICBvbiBCRUdJTitFTkQgZm9yIGdyb3VwICgoLi4u KSs/KS4KKyAqCisgKiAgIDB4MDIgIFJQUl9FTEVNX0VNUFRZX0xPT1AgICAgICAgICAoRU5EKQor ICogICAgICAgICBHcm91cCBib2R5IGNhbiBwcm9kdWNlIGVtcHR5IG1hdGNoIChhbGwgY2hpbGRy ZW4gbnVsbGFibGUpLgorICogICAgICAgICBDcmVhdGVzIGEgZmFzdC1mb3J3YXJkIGV4aXQgY2xv bmUgYWxvbmdzaWRlIHRoZSBub3JtYWwKKyAqICAgICAgICAgbG9vcC1iYWNrIHNvIGN5Y2xlIGRl dGVjdGlvbiBkb2Vzbid0IGtpbGwgbGVnaXRpbWF0ZQorICogICAgICAgICBtYXRjaGVzLiAoSVYt NGIpCisgKgorICogICAweDA0ICBSUFJfRUxFTV9BQlNPUkJBQkxFX0JSQU5DSCAgKFZBUiwgQkVH SU4sIEVORCwgQUxUKQorICogICAgICAgICBFbGVtZW50IGxpZXMgd2l0aGluIGFuIGFic29yYmFi bGUgcmVnaW9uLiAgVXNlZCBhdCBydW50aW1lCisgKiAgICAgICAgIHRvIHRyYWNrIHdoZXRoZXIg dGhlIGN1cnJlbnQgTkZBIHN0YXRlIGlzIGluIGFuIGFic29yYmFibGUKKyAqICAgICAgICAgY29u dGV4dC4KKyAqCisgKiAgIDB4MDggIFJQUl9FTEVNX0FCU09SQkFCTEUgICAgICAgICAoVkFSLCBF TkQpCisgKiAgICAgICAgIEFic29ycHRpb24ganVkZ21lbnQgcG9pbnQuICBXaGVyZSB0byBjb21w YXJlIGNvbnNlY3V0aXZlCisgKiAgICAgICAgIGl0ZXJhdGlvbnMgZm9yIGFic29ycHRpb24uCisg KiAgICAgICAgICAgLSBTaW1wbGUgdW5ib3VuZGVkIFZBUiAoQSspOiBzZXQgb24gdGhlIFZBUiBp dHNlbGYKKyAqICAgICAgICAgICAtIFVuYm91bmRlZCBHUk9VUCAoKEEgQikrKTogc2V0IG9uIHRo ZSBFTkQgZWxlbWVudCBvbmx5CisgKgorICogICBBY2Nlc3NvciBtYWNyb3M6CisgKiAgICAgUlBS RWxlbUlzUmVsdWN0YW50KGUpICAgICAgICAoZSktPmZsYWdzICYgMHgwMQorICogICAgIFJQUkVs ZW1DYW5FbXB0eUxvb3AoZSkgICAgICAgKGUpLT5mbGFncyAmIDB4MDIKKyAqICAgICBSUFJFbGVt SXNBYnNvcmJhYmxlQnJhbmNoKGUpIChlKS0+ZmxhZ3MgJiAweDA0CisgKiAgICAgUlBSRWxlbUlz QWJzb3JiYWJsZShlKSAgICAgICAoZSktPmZsYWdzICYgMHgwOAorICoKKyAqIEV4YW1wbGU6IFBB VFRFUk4gKEErIEIgfCBDKQorICoKKyAqICAgQVNUOiBBTFQoU0VRKFZBUihBLDEsSU5GKSwgVkFS KEIsMSwxKSksIFZBUihDLDEsMSkpCisgKgorICogICBDb21waWxhdGlvbiByZXN1bHQ6CisgKgor ICogICBpZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAgIERlc2NyaXB0aW9u CisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICogICAgMCAgIEFMVCAgICAwICAgICAgMSAgICAxICAgIDEgICAgIC0xICAg IEFsdGVybmF0aW9uIHN0YXJ0CisgKiAgICAxICAgQSgwKSAgIDEgICAgICAxICAgIElORiAgMiAg ICAgMyAgICAgQnJhbmNoIDE6IEErCisgKiAgICAyICAgQigxKSAgIDEgICAgICAxICAgIDEgICAg NCAgICAgLTEgICAgQnJhbmNoIDE6IEIgLT4gRklOCisgKiAgICAzICAgQygyKSAgIDEgICAgICAx ICAgIDEgICAgNCAgICAgLTEgICAgQnJhbmNoIDI6IEMgLT4gRklOCisgKiAgICA0ICAgRklOICAg IDAgICAgICAxICAgIDEgICAgLTEgICAgLTEgICAgUGF0dGVybiBjb21wbGV0aW9uCisgKgorICog ICAtIGlkeCAwOiBBTFQgbWFya2VyLiBuZXh0KD0xKSBpcyB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0 IGJyYW5jaAorICogICAtIGlkeCAxOiBWYXJpYWJsZSBBLiBuZXh0KD0yKSBpcyBCLCBqdW1wKD0z KSBpcyB0aGUgc3RhcnQgb2YgdGhlIHNlY29uZAorICogICAgICAgICAgICBicmFuY2gKKyAqICAg LSBpZHggMjogVmFyaWFibGUgQi4gbmV4dCg9NCkgaXMgRklOCisgKiAgIC0gaWR4IDM6IFZhcmlh YmxlIEMuIG5leHQoPTQpIGlzIEZJTgorICogICAtIGlkeCA0OiBGSU4gbWFya2VyLiBNYXRjaCBj b21wbGV0aW9uIHNpZ25hbAorICoKKyAqIFJvbGVzIG9mIG5leHQgYW5kIGp1bXA6CisgKgorICog ICAtIG5leHQ6IFRoZSBuZXh0IGVsZW1lbnQgdG8gbW92ZSB0byAiYWZ0ZXIgY29uc3VtaW5nIiB0 aGUgY3VycmVudCBlbGVtZW50LgorICogICAgICAgICAgIEZvciBWQVIsIHRoZSBuZXh0IHBvc2l0 aW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBtYXRjaC4KKyAqICAgICAgICAgICBGb3IgQkVHSU4vRU5E LCB0aGUgbmV4dCBwb3NpdGlvbiBpbnNpZGUvb3V0c2lkZSB0aGUgZ3JvdXAuCisgKgorICogICAt IGp1bXA6IFRoZSBlbGVtZW50IHRvICJza2lwIHRvLiIKKyAqICAgICAgICAgICBJbiBBTFQsIGEg anVtcCBmcm9tIG9uZSBicmFuY2ggdG8gdGhlIG5leHQgYnJhbmNoLgorICogICAgICAgICAgIElu IEJFR0lOLCBhIHNraXAgcGF0aCB0byBFTkQrMSAoZm9yIGdyb3VwcyB3aXRoIG1pbj0wKS4KKyAq ICAgICAgICAgICBJbiBFTkQsIGEgbG9vcC1iYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JvdXAg Ym9keS4KKyAqCisgKiBFeGFtcGxlOiBQQVRURVJOICgoQSBCKSspCisgKgorICogICBpZHggIHZh cklkICAgIGRlcHRoICBtaW4gIG1heCAgbmV4dCAganVtcCAgRGVzY3JpcHRpb24KKyAqICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqICAgIDAgICBCRUdJTiAgICAwICAgICAgMSAgICBJTkYgIDEgICAgIDQgICAgIEdyb3Vw IHN0YXJ0CisgKiAgICAxICAgQSgwKSAgICAgMSAgICAgIDEgICAgMSAgICAyICAgICAtMSAgICBB CisgKiAgICAyICAgQigxKSAgICAgMSAgICAgIDEgICAgMSAgICAzICAgICAtMSAgICBCCisgKiAg ICAzICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICA0ICAgICAxICAgICBHcm91cCBlbmQKKyAq ICAgIDQgICBGSU4gICAgICAwICAgICAgMSAgICAxICAgIC0xICAgIC0xICAgIFBhdHRlcm4gY29t cGxldGlvbgorICoKKyAqICAgLSBpZHggMDogQkVHSU4uIG5leHQoPTEpIGVudGVycyB0aGUgZ3Jv dXAgYm9keS4KKyAqICAgICAgICAgICAganVtcCg9NCkgc2tpcHMgdG8gYWZ0ZXIgRU5EID0gRklO ICh1c2VkIHdoZW4gbWluPTApLgorICogICAtIGlkeCAzOiBFTkQuIG5leHQoPTQpIGV4aXRzIHRo ZSBncm91cC4KKyAqICAgICAgICAgICAganVtcCg9MSkgbG9vcHMgYmFjayB0byB0aGUgc3RhcnQg b2YgdGhlIGdyb3VwIGJvZHkuCisgKgorICogSVYtNGEuIFJlbHVjdGFudCBGbGFnIChSUFJfRUxF TV9SRUxVQ1RBTlQpCisgKgorICogVGhlIHJlbHVjdGFudCBmbGFnIGlzIHNldCBkdXJpbmcgUGhh c2UgNCAoZmlsbFJQUlBhdHRlcm4pIHdoZW4gdGhlIEFTVCBub2RlCisgKiBoYXMgcmVsdWN0YW50 ID09IHRydWUuIEl0IHJldmVyc2VzIHRoZSBwcmlvcml0eSBvZiBxdWFudGlmaWVyIGV4cGFuc2lv biBhdAorICogcnVudGltZToKKyAqCisgKiAgIEdyZWVkeSAoZGVmYXVsdCk6ICB0cnkgbG9vcC1i YWNrIGZpcnN0LCB0aGVuIGV4aXQgIChwcmVmZXIgbG9uZ2VyIG1hdGNoKQorICogICBSZWx1Y3Rh bnQ6ICAgICAgICAgdHJ5IGV4aXQgZmlyc3QsIHRoZW4gbG9vcC1iYWNrICAgKHByZWZlciBzaG9y dGVyIG1hdGNoKQorICoKKyAqIFRoZSBmbGFnIGlzIHNldCBvbiBhbGwgZWxlbWVudHMgdGhhdCBj YXJyeSB0aGUgcXVhbnRpZmllcjoKKyAqCisgKiAgIFNpbXBsZSBWQVIgKEErPyk6ICAgICBSUFJf RUxFTV9SRUxVQ1RBTlQgb24gdGhlIFZBUiBlbGVtZW50CisgKiAgIEdyb3VwICgoLi4uKSs/KTog ICAgICBSUFJfRUxFTV9SRUxVQ1RBTlQgb24gQkVHSU4gYW5kIEVORCBlbGVtZW50cworICoKKyAq IEF0IHJ1bnRpbWUgKG5mYV9hZHZhbmNlKSwgdGhlIGZsYWcgY29udHJvbHMgREZTIGV4cGxvcmF0 aW9uIG9yZGVyOgorICoKKyAqICAgVkFSIHdpdGggcXVhbnRpZmllcjoKKyAqICAgICBHcmVlZHk6 ICAgIHByaW1hcnkgcGF0aCA9IG5leHQgKGNvbnRpbnVlKSwgY2xvbmUgPSBqdW1wIChza2lwKQor ICogICAgIFJlbHVjdGFudDogcHJpbWFyeSBwYXRoID0ganVtcCAoc2tpcCksIGNsb25lID0gbmV4 dCAoY29udGludWUpCisgKgorICogICBFTkQgZWxlbWVudDoKKyAqICAgICBHcmVlZHk6ICAgIHBy aW1hcnkgcGF0aCA9IGp1bXAgKGxvb3AtYmFjayksIGNsb25lID0gbmV4dCAoZXhpdCkKKyAqICAg ICBSZWx1Y3RhbnQ6IHByaW1hcnkgcGF0aCA9IG5leHQgKGV4aXQpLCBjbG9uZSA9IGp1bXAgKGxv b3AtYmFjaykKKyAqCisgKiAgIEJFR0lOIHdpdGggbWluPTA6CisgKiAgICAgR3JlZWR5OiAgICBw cmltYXJ5IHBhdGggPSBuZXh0IChlbnRlciBncm91cCksIGNsb25lID0ganVtcCAoc2tpcCkKKyAq ICAgICBSZWx1Y3RhbnQ6IHByaW1hcnkgcGF0aCA9IGp1bXAgKHNraXApLCBjbG9uZSA9IG5leHQg KGVudGVyIGdyb3VwKQorICoKKyAqIFRoZSBhYnNvcnB0aW9uIG9wdGltaXphdGlvbiByZXF1aXJl cyBncmVlZHkgcXVhbnRpZmllcnMuIFJlbHVjdGFudAorICogcXVhbnRpZmllcnMgYXJlIGV4Y2x1 ZGVkIGZyb20gYWJzb3JiYWJpbGl0eSBhbmFseXNpcyAoc2VlIElWLTUpLgorICoKKyAqIElWLTRi LiBFbXB0eSBMb29wIEZsYWcgKFJQUl9FTEVNX0VNUFRZX0xPT1ApCisgKgorICogVGhlIGVtcHR5 LWxvb3AgZmxhZyBpcyBzZXQgZHVyaW5nIFBoYXNlIDQgKGZpbGxSUFJQYXR0ZXJuR3JvdXApIG9u IHRoZSBFTkQKKyAqIGVsZW1lbnQgd2hlbiB0aGUgZ3JvdXAgYm9keSBpcyBudWxsYWJsZSAtLSBp LmUuLCBldmVyeSBwYXRoIHRocm91Z2ggdGhlCisgKiBib2R5IGNhbiBtYXRjaCB6ZXJvIHJvd3Mg KGFsbCBjaGlsZHJlbiBhcmUgbnVsbGFibGUpLgorICoKKyAqIEV4YW1wbGUgcGF0dGVybnMgdGhh dCB0cmlnZ2VyIHRoaXMgZmxhZzoKKyAqCisgKiAgIChBPykqICAgIEEgaXMgbnVsbGFibGUgKG1p bj0wKSwgc28gZ3JvdXAgYm9keSBpcyBudWxsYWJsZSAtPiBFTkQgZ2V0cyBmbGFnCisgKiAgIChB PyBCPykrIEJvdGggY2hpbGRyZW4gbnVsbGFibGUgLT4gYm9keSBudWxsYWJsZSAtPiBFTkQgZ2V0 cyBmbGFnCisgKiAgIChBIHwgQiopIEIqIGlzIG51bGxhYmxlLCBtYWtpbmcgdGhlIEFMVCBudWxs YWJsZSAtPiBFTkQgZ2V0cyBmbGFnCisgKgorICogVGhlIGZsYWcgd29ya3MgaW4gY29uanVuY3Rp b24gd2l0aCB0aGUgZW1wdHkgbWF0Y2ggY3ljbGUgZGV0ZWN0aW9uCisgKiAoZWxlbUlkeCB2aXNp dGVkIGJpdG1hcCkuIFdpdGhvdXQgdGhpcyBmbGFnLCBjeWNsZSBkZXRlY3Rpb24gYWxvbmUgd291 bGQKKyAqIGNhdXNlIGxlZ2l0aW1hdGUgbWF0Y2hlcyB0byBmYWlsLgorICoKKyAqIFByb2JsZW0g ZXhhbXBsZTogKEEqKXsyLDN9CisgKiAgIC0gSXRlcmF0aW9uIDE6IEEqIGNvbnN1bWVzIGFsbCBh dmFpbGFibGUgcm93cyAtPiBjb3VudD0xLCBFTkQgcmVhY2hlZAorICogICAtIExvb3AtYmFjayBm b3IgaXRlcmF0aW9uIDI6IEEqIG1hdGNoZXMgemVybyByb3dzIC0+IEVORCByZWFjaGVkIGFnYWlu CisgKiAgIC0gQ3ljbGUgZGV0ZWN0aW9uIHNlZXMgdGhlIHNhbWUgZWxlbUlkeCBvbiB0aGUgc2Ft ZSByb3cgLT4gc3RhdGUga2lsbGVkCisgKiAgIC0gY291bnQgbmV2ZXIgcmVhY2hlcyBtaW4oMikg LT4gbWF0Y2ggZmFpbHMgKGluY29ycmVjdCkKKyAqCisgKiBXaXRoIHRoZSBSUFJfRUxFTV9FTVBU WV9MT09QIGZsYWcsIG5mYV9hZHZhbmNlX2VuZCBjcmVhdGVzIHR3byBwYXRoczoKKyAqIHRoZSBu b3JtYWwgbG9vcC1iYWNrICh3aGljaCBjeWNsZSBkZXRlY3Rpb24gd2lsbCBldmVudHVhbGx5IGtp bGwpIGFuZAorICogYSBmYXN0LWZvcndhcmQgZXhpdCBjbG9uZSB0aGF0IGJ5cGFzc2VzIHRoZSBs b29wIGVudGlyZWx5LgorICogKFNlZSBJWC00KGMpIGZvciBkZXRhaWxlZCBydW50aW1lIGJlaGF2 aW9yLikKKyAqICAgICAtIEVtcHR5IG1hdGNoIGlzIGltcG9zc2libGUgc2luY2UgYm9keSBpcyBu b3QgbnVsbGFibGUKKyAqCisgKiBJVi01LiBBYnNvcmJhYmlsaXR5IEFuYWx5c2lzIChSUFJfRUxF TV9BQlNPUkJBQkxFKQorICoKKyAqIENvbnRleHQgYWJzb3JwdGlvbiBpcyBhbiBvcHRpbWl6YXRp b24gdGVjaG5pcXVlIHRoYXQgcmVkdWNlcyBPKG5eMikgdG8gTyhuKS4KKyAqIChSdW50aW1lIGJl aGF2aW9yIGlzIGRlc2NyaWJlZCBpbiBDaGFwdGVyIFZJSUkuKQorICoKKyAqIFRoaXMgcGhhc2Ug ZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwYXR0ZXJuIGhhcyBhIHN0cnVjdHVyZSBzdWl0YWJsZSBm b3IgdGhlCisgKiBhYnNvcnB0aW9uIG9wdGltaXphdGlvbiBhbmQgc2V0cyBmbGFncyBvbiB0aGUg cmVsZXZhbnQgZWxlbWVudHM6CisgKgorICogICBSUFJfRUxFTV9BQlNPUkJBQkxFICAgICAgICAg QWJzb3JwdGlvbiBjb21wYXJpc29uIHBvaW50CisgKiAgIFJQUl9FTEVNX0FCU09SQkFCTEVfQlJB TkNIICBFbGVtZW50IHdpdGhpbiBhbiBhYnNvcmJhYmxlIHJlZ2lvbgorICoKKyAqIEVsaWdpYmls aXR5IGNvbmRpdGlvbnM6CisgKgorICogICAoMSkgU0tJUCBQQVNUIExBU1QgUk9XIChub3QgTkVY VCBST1cpCisgKiAgICgyKSBGcmFtZSBlbmQgaXMgVU5CT1VOREVEIEZPTExPV0lORworICoKKyAq IFN0cnVjdHVyYWwgY29uZGl0aW9ucyAoaXNVbmJvdW5kZWRTdGFydCArIGNvbXB1dGVBYnNvcmJh YmlsaXR5UmVjdXJzaXZlKToKKyAqCisgKiAgIENhc2UgMTogU2ltcGxlIFZBUisgKGUuZy4sIEEr KQorICogICAgICAgICAgIC0+IEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBzZXQgb24g dGhlIFZBUgorICogICBDYXNlIDI6IEdST1VQKyB3aG9zZSBib2R5IGNvbnNpc3RzIG9ubHkgb2Yg ezEsMX0gVkFScyAoZS5nLiwgKEEgQikrKQorICogICAgICAgICAgIC0+IEFCU09SQkFCTEVfQlJB TkNIIG9uIGNoaWxkcmVuLAorICogICAgICAgICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVf QlJBTkNIIG9uIEVORAorICogICBDYXNlIDM6IEdST1VQKyB3aG9zZSBib2R5IHN0YXJ0cyB3aXRo IFZBUisgKGUuZy4sIChBKyBCKSspCisgKiAgICAgICAgICAgLT4gUmVjdXJzZXMgZnJvbSBCRUdJ TiBpbnRvIHRoZSBib2R5LCBhcHBseWluZyBDYXNlIDEuCisgKiAgICAgICAgICAgICBBQlNPUkJB QkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0ggc2V0IG9uIEEuCisgKiAgICAgICAgICAgICBCIGFuZCBF TkQgZ2V0IG5vIGZsYWdzIC0+IGFic29ycHRpb24gc3RvcHMgb25jZSBwYXN0IEEuCisgKgorICog QWJzb3JiYWJpbGl0eSBpcyBkZXRlcm1pbmVkIHBlci1lbGVtZW50LCBub3QgcGVyLXBhdHRlcm4u CisgKiBBYnNvcnB0aW9uIGNvbXBhcmlzb24gaXMgcGVyZm9ybWVkIG9ubHkgd2hlbiBhIHN0YXRl IHJlc2lkZXMgYXQgYW4KKyAqIGVsZW1lbnQgd2l0aCB0aGUgUlBSX0VMRU1fQUJTT1JCQUJMRSBm bGFnLiBPbmNlIGEgc3RhdGUgbGVhdmVzIHRoZQorICogZmxhZ2dlZCByZWdpb24sIGFic29ycHRp b24gaXMgcGVybWFuZW50bHkgZGlzYWJsZWQgZm9yIHRoYXQgc3RhdGUuCisgKgorICogVGhyb3Vn aCB0aGlzIG1lY2hhbmlzbSwgdGhlIHJ1bnRpbWUgZ3VhcmFudGVlcyBtb25vdG9uaWNpdHk6Cisg KiAiYSBjb250ZXh0IHRoYXQgc3RhcnRlZCBlYXJsaWVyIGFsd2F5cyBzdWJzdW1lcyBhIGNvbnRl eHQgdGhhdAorICogc3RhcnRlZCBsYXRlci4iCisgKgorICogQ2hhcHRlciBWICBORkEgUnVudGlt ZSBEYXRhIFN0cnVjdHVyZXMKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBWLTEuIFJQ Uk5GQVN0YXRlIC0tIE5GQSBTdGF0ZQorICoKKyAqIEEgc2luZ2xlIE5GQSBzdGF0ZSByZXByZXNl bnRzICJob3cgZmFyIHRoZSBwYXR0ZXJuIGhhcyBwcm9ncmVzc2VkLiIKKyAqCisgKiAgIEZpZWxk ICAgICAgICAgRGVzY3JpcHRpb24KKyAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICAgZWxlbUlkeCAgICAgICBJbmRleCBv ZiB0aGUgY3VycmVudCBwYXR0ZXJuIGVsZW1lbnQKKyAqICAgY291bnRzW10gICAgICBSZXBldGl0 aW9uIGNvdW50IHBlciBncm91cCBkZXB0aAorICogICBpc0Fic29yYmFibGUgIFdoZXRoZXIgdGhl IHN0YXRlIGlzIGluIGFuIGFic29yYmFibGUgcmVnaW9uCisgKiAgIG5leHQgICAgICAgICAgTmV4 dCBzdGF0ZSBpbiB0aGUgbGlua2VkIGxpc3QKKyAqCisgKiBUaGUgc2l6ZSBvZiB0aGUgY291bnRz IGFycmF5IGlzIHJwUGF0dGVybi0+bWF4RGVwdGggKD0gbWF4aW11bSBncm91cAorICogbmVzdGlu ZyBkZXB0aCArIDEpLCBhbGxvY2F0ZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgYXQgdGhl IGVuZCBvZgorICogdGhlIHN0cnVjdC4KKyAqCisgKiBFeGFtcGxlOiBJbiBQQVRURVJOICgoQSBC KSsgQyksIGEgc3RhdGUgd2FpdGluZyBmb3IgQiBpbiB0aGUgM3JkIGl0ZXJhdGlvbgorICoKKyAq ICAgRWxlbWVudCBhcnJheTogWzA6QkVHSU4oZDApIDE6QShkMSkgMjpCKGQxKSAzOkVORChkMCkg NDpDKGQwKSA1OkZJTl0KKyAqCisgKiAgIGVsZW1JZHggPSAyIChCLCBkZXB0aCAxKQorICogICBj b3VudHNbMF0gPSAyIChkZXB0aCAwOiBkZXB0aCBvZiBFTkQuIEdyb3VwIGNvbXBsZXRlZCAyIGl0 ZXJhdGlvbnMpCisgKiAgIGNvdW50c1sxXSA9IDEgKGRlcHRoIDE6IGRlcHRoIG9mIEIuIEEgbWF0 Y2hlZCBpbiBjdXJyZW50IGl0ZXJhdGlvbikKKyAqCisgKiAgIENvdW50cyBhcmUgaW5kZXhlZCBi eSBkZXB0aCwgbm90IGJ5IGVsZW1JZHguCisgKiAgIGNvdW50c1swXSBpcyBpbmNyZW1lbnRlZCB3 aGVuIHBhc3NpbmcgdGhyb3VnaCBFTkQoZGVwdGggMCksCisgKiAgIGFuZCB0aGUgZ3JvdXAgcmVw ZXRpdGlvbiBjb3VudCBpcyBwcmVzZXJ2ZWQgZXZlbiB3aGVuCisgKiAgIHRoZSBzdGF0ZSBpcyBh dCBCKGRlcHRoIDEpLgorICoKKyAqIERlZmluaXRpb24gb2YgdHdvIHN0YXRlcyBiZWluZyAiZXF1 YWwiOgorICoKKyAqICAgVHdvIHN0YXRlcyBhcmUgZXF1YWwgaWYgdGhleSBoYXZlIHRoZSBzYW1l IGVsZW1JZHggYW5kIHRoZSBzYW1lIGNvdW50cworICogICB1cCB0byB0aGUgZGVwdGggb2YgdGhh dCBlbGVtZW50LgorICogICBuZmFfc3RhdGVzX2VxdWFsKCkgY29tcGFyZXMgY291bnRzWzAuLmVs ZW0tPmRlcHRoXSB1c2luZyBtZW1jbXAuCisgKiAgIE9ubHkgY291bnRzIGF0IG9yIGJlbG93IHRo ZSBkZXB0aCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGFyZSBtZWFuaW5nZnVsLgorICoKKyAqIFYt Mi4gUlBSTkZBQ29udGV4dCAtLSBNYXRjaGluZyBDb250ZXh0CisgKgorICogQSBzaW5nbGUgY29u dGV4dCByZXByZXNlbnRzICJhIG1hdGNoaW5nIGF0dGVtcHQgc3RhcnRlZCBmcm9tIGEgc3BlY2lm aWMKKyAqIHN0YXJ0IHJvdy4iCisgKgorICogICBGaWVsZCAgICAgICAgICAgICAgICAgRGVzY3Jp cHRpb24KKyAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgIHN0YXRlcyAgICAgICAgICAgICAgICBMaW5r ZWQgbGlzdCBvZiBhY3RpdmUgTkZBIHN0YXRlcworICogICBtYXRjaFN0YXJ0Um93ICAgICAgICAg Um93IG51bWJlciB3aGVyZSBtYXRjaGluZyBzdGFydGVkCisgKiAgIG1hdGNoRW5kUm93ICAgICAg ICAgICBSb3cgbnVtYmVyIHdoZXJlIG1hdGNoaW5nIGNvbXBsZXRlZAorICogICAgICAgICAgICAg ICAgICAgICAgICAgKC0xIGlmIGluY29tcGxldGUpCisgKiAgIGxhc3RQcm9jZXNzZWRSb3cgICAg ICBMYXN0IHJvdyBwcm9jZXNzZWQKKyAqICAgbWF0Y2hlZFN0YXRlICAgICAgICAgIFN0YXRlIHRo YXQgcmVhY2hlZCBGSU4gKGZvciBncmVlZHkgZmFsbGJhY2spCisgKiAgIGhhc0Fic29yYmFibGVT dGF0ZSAgICBXaGV0aGVyIHRoaXMgY29udGV4dCBjYW4gYWJzb3JiIG90aGVyIGNvbnRleHRzCisg KiAgIGFsbFN0YXRlc0Fic29yYmFibGUgICBXaGV0aGVyIHRoaXMgY29udGV4dCBjYW4gYmUgYWJz b3JiZWQKKyAqICAgbmV4dCwgcHJldiAgICAgICAgICAgIERvdWJseS1saW5rZWQgbGlzdAorICoK KyAqIFNpbmNlIHRoZSBORkEgaXMgbm9uZGV0ZXJtaW5pc3RpYywgbXVsdGlwbGUgc3RhdGVzIGNh biBjb2V4aXN0CisgKiBzaW11bHRhbmVvdXNseSB3aXRoaW4gYSBzaW5nbGUgY29udGV4dC4KKyAq CisgKiBFeGFtcGxlOiBJbiBQQVRURVJOIChBIHwgQikgQywgaWYgdGhlIGZpcnN0IHJvdyBtYXRj aGVzIGJvdGggQSBhbmQgQiwKKyAqIHR3byBzdGF0ZXMgY29leGlzdCB3aXRoaW4gdGhlIGNvbnRl eHQ6CisgKgorICogICBTdGF0ZSAxOiBlbGVtSWR4PTMgKHdhaXRpbmcgZm9yIEMsIHZpYSBicmFu Y2ggQSkKKyAqICAgU3RhdGUgMjogZWxlbUlkeD0zICh3YWl0aW5nIGZvciBDLCB2aWEgYnJhbmNo IEIpCisgKgorICogSW4gdGhpcyBjYXNlLCBzaW5jZSB0aGUgKGVsZW1JZHgsIGNvdW50cykgb2Yg dGhlIHR3byBzdGF0ZXMgYXJlIGVxdWFsLAorICogbmZhX2FkZF9zdGF0ZV91bmlxdWUoKSByZXRh aW5zIG9ubHkgU3RhdGUgMSAoYnJhbmNoIEEpLCB3aGljaCB3YXMKKyAqIGFkZGVkIGZpcnN0Lgor ICogQmVjYXVzZSBERlMgcHJvY2Vzc2VzIHRoZSBmaXJzdCBicmFuY2ggb2YgQUxUIGZpcnN0LCB0 aGUgc3RhdGUgdmlhIEEKKyAqIGlzIHJlZ2lzdGVyZWQgZmlyc3QsIGFuZCB0aGUgc3RhdGUgdmlh IEIgaXMgZGlzY2FyZGVkIGFzIGEgZHVwbGljYXRlLgorICogVGhpcyBpcyB0aGUgcHJlZmVybWVu dCBndWFyYW50ZWUuCisgKgorICogVi0zLiBSUFIgRmllbGRzIG9mIFdpbmRvd0FnZ1N0YXRlCisg KgorICogICBuZmFDb250ZXh0IC8gbmZhQ29udGV4dFRhaWwgICBEb3VibHktbGlua2VkIGxpc3Qg b2YgYWN0aXZlIGNvbnRleHRzCisgKiAgIG5mYUNvbnRleHRGcmVlICAgICAgICAgICAgICAgIFJl dXNlIHBvb2wgZm9yIGNvbnRleHRzCisgKiAgIG5mYVN0YXRlRnJlZSAgICAgICAgICAgICAgICAg IFJldXNlIHBvb2wgZm9yIHN0YXRlcworICogICBuZmFWYXJNYXRjaGVkICAgICAgICAgICAgICAg ICBQZXItcm93IGNhY2hlOiB2YXJNYXRjaGVkW3ZhcklkXQorICogICBuZmFWaXNpdGVkRWxlbXMg ICAgICAgICAgICAgICBCaXRtYXAgZm9yIGN5Y2xlIGRldGVjdGlvbgorICogICBuZmFTdGF0ZVNp emUgICAgICAgICAgICAgICAgICBQcmVjb21wdXRlZCBzaXplIG9mIFJQUk5GQVN0YXRlCisgKgor ICogTWVtb3J5IG1hbmFnZW1lbnQ6CisgKgorICogICBTdGF0ZXMgYW5kIGNvbnRleHRzIGFyZSBt YW5hZ2VkIHRocm91Z2ggdGhlaXIgb3duIGZyZWUgbGlzdHMuCisgKiAgIEluc3RlYWQgb2YgcGFs bG9jLCB0aGV5IGFyZSBvYnRhaW5lZCBmcm9tIHRoZSByZXVzZSBwb29sLCBhbmQKKyAqICAgcmV0 dXJuZWQgdG8gdGhlIHBvb2wgdXBvbiBkZWFsbG9jYXRpb24uCisgKiAgIFRoaXMgcmVkdWNlcyB0 aGUgb3ZlcmhlYWQgb2YgZnJlcXVlbnQgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24uCisgKgorICog Q2hhcHRlciBWSSAgTkZBIEV4ZWN1dGlvbjogMy1QaGFzZSBNb2RlbAorICogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorICoKKyAqIFZJLTEuIEVudHJ5IFBvaW50IGFuZCBPdmVyYWxsIEZsb3cKKyAqCisg KiBXaGVuIHRoZSB3aW5kb3cgZnVuY3Rpb24gcHJvY2Vzc2VzIGVhY2ggcm93LCByb3dfaXNfaW5f cmVkdWNlZF9mcmFtZSgpCisgKiBpcyBjYWxsZWQuIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3 aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBiZWxvbmdzIHRvCisgKiBhIG1hdGNoZWQgZnJhbWUsIGFu ZCBpZiBuZWNlc3NhcnksIGNhbGxzIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKCkgdG8KKyAqIGRyaXZl IHRoZSBORkEuCisgKgorICogRmxvdyBvZiB1cGRhdGVfcmVkdWNlZF9mcmFtZSgpOgorICoKKyAq ICAgKDEpIEZpbmQgb3IgY3JlYXRlIGEgY29udGV4dCBmb3IgdGhlIHRhcmdldCByb3cKKyAqICAg KDIpIEVudGVyIHRoZSByb3cgcHJvY2Vzc2luZyBsb29wCisgKiAgICgzKSBBZnRlciB0aGUgbG9v cCBlbmRzLCByZWNvcmQgdGhlIHJlc3VsdCBpbiByZWR1Y2VkX2ZyYW1lX21hcAorICoKKyAqIFBz ZXVkb2NvZGUgb2YgdGhlIHJvdyBwcm9jZXNzaW5nIGxvb3A6CisgKgorICogICB0YXJnZXRDdHgg PSBFeGVjUlBSR2V0SGVhZENvbnRleHQocG9zKQorICogICBpZiB0YXJnZXRDdHggPT0gTlVMTDoK KyAqICAgICAgIHRhcmdldEN0eCA9IEV4ZWNSUFJTdGFydENvbnRleHQocG9zKQorICoKKyAqICAg Zm9yIGN1cnJlbnRQb3MgPSBzdGFydFBvczsgdGFyZ2V0Q3R4LT5zdGF0ZXMgIT0gTlVMTDsgY3Vy cmVudFBvcysrOgorICogICAgICAgaWYgbm90IG5mYV9ldmFsdWF0ZV9yb3coY3VycmVudFBvcyk6 ICAtLSByb3cgZG9lcyBub3QgZXhpc3QKKyAqICAgICAgICAgICBFeGVjUlBSRmluYWxpemVBbGxD b250ZXh0cygpICAgICAgLS0gZmluYWxpemUgYWxsIGNvbnRleHRzCisgKiAgICAgICAgICAgRXhl Y1JQUkNsZWFudXBEZWFkQ29udGV4dHMoKSAgICAgIC0tIGNsZWFuIHVwIGFmdGVyIGZpbmFsaXph dGlvbgorICogICAgICAgICAgIGJyZWFrCisgKgorICogICAgICAgRXhlY1JQUlByb2Nlc3NSb3co Y3VycmVudFBvcykgICAgICAgICAtLSAzLXBoYXNlIHByb2Nlc3NpbmcKKyAqICAgICAgIEV4ZWNS UFJTdGFydENvbnRleHQoY3VycmVudFBvcyArIDEpICAgLS0gcHJlLWNyZWF0ZSBuZXh0IHN0YXJ0 IHBvaW50CisgKiAgICAgICBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cygpICAgICAgICAgIC0t IHJlbW92ZSBkZWFkIGNvbnRleHRzCisgKgorICogS2V5IHBvaW50OiBQcm9jZXNzaW5nIGEgc2lu Z2xlIHJvdyBtYXkgcmVxdWlyZSBwcm9jZXNzaW5nIG11bHRpcGxlIHJvd3MKKyAqIGFoZWFkLiBE dWUgdG8gdGhlIG5hdHVyZSBvZiB3aW5kb3cgZnVuY3Rpb25zLCBkZXRlcm1pbmluZyB0aGUgZnJh bWUgZm9yCisgKiByb3cgTiByZXF1aXJlcyBsb29raW5nIGF0IHJvd3MgYmV5b25kIE4uCisgKgor ICogVkktMi4gQ29udGV4dCBDcmVhdGlvbjogRXhlY1JQUlN0YXJ0Q29udGV4dCgpCisgKgorICog Q3JlYXRlcyBhIG5ldyBjb250ZXh0IGFuZCBwZXJmb3JtcyB0aGUgaW5pdGlhbCBhZHZhbmNlLgor ICoKKyAqICAgKDEpIEFsbG9jYXRlIGNvbnRleHQgdmlhIG5mYV9jb250ZXh0X2FsbG9jKCkKKyAq ICAgKDIpIFNldCBtYXRjaFN0YXJ0Um93ID0gcG9zCisgKiAgICgzKSBDcmVhdGUgaW5pdGlhbCBz dGF0ZTogZWxlbUlkeD0wIChmaXJzdCBwYXR0ZXJuIGVsZW1lbnQpLAorICogICAgICAgY291bnRz PWFsbCB6ZXJvCisgKiAgICg0KSBDYWxsIG5mYV9hZHZhbmNlKGluaXRpYWxBZHZhbmNlPXRydWUp CisgKgorICogVGhlIGluaXRpYWwgYWR2YW5jZSBleHBhbmRzIGVwc2lsb24gdHJhbnNpdGlvbnMg YXQgdGhlIGJlZ2lubmluZyBvZgorICogdGhlIHBhdHRlcm4uIEZvciBleGFtcGxlLCB0aGUgaW5p dGlhbCBhZHZhbmNlIGZvciBQQVRURVJOICgoQSB8IEIpIEMpOgorICoKKyAqICAgU3RhcnQ6IGVs ZW1JZHg9MCAoQUxUKQorICogICAgIC0+IEV4cGFuZCBBTFQgYnJhbmNoZXMKKyAqICAgICAgIC0+ IGVsZW1JZHg9MSAoQSkgLS0gVkFSLCBzbyBhZGQgc3RhdGU7IHN0b3AgaGVyZQorICogICAgICAg LT4gZWxlbUlkeD0yIChCKSAtLSBWQVIsIHNvIGFkZCBzdGF0ZTsgc3RvcCBoZXJlCisgKgorICog ICBSZXN1bHQ6IFR3byBzdGF0ZXMgaW4gdGhlIGNvbnRleHQge3dhaXRpbmcgZm9yIEEsIHdhaXRp bmcgZm9yIEJ9CisgKgorICogRHVyaW5nIHRoZSBpbml0aWFsIGFkdmFuY2UsIHJlYWNoaW5nIEZJ TiBpcyBub3QgcmVjb3JkZWQgYXMgYSBtYXRjaC4KKyAqIFRoaXMgaXMgdG8gcHJldmVudCBlbXB0 eSBtYXRjaGVzLgorICoKKyAqIFZJLTMuIFJvdyBFdmFsdWF0aW9uOiBuZmFfZXZhbHVhdGVfcm93 KCkKKyAqCisgKiBFdmFsdWF0ZXMgYWxsIHZhcmlhYmxlIGNvbmRpdGlvbnMgaW4gdGhlIERFRklO RSBjbGF1c2UgYXQgb25jZSBmb3IKKyAqIHRoZSBjdXJyZW50IHJvdy4KKyAqCisgKiAgIGZvciBl YWNoIGRlZmluZUNsYXVzZVtpXToKKyAqICAgICAgIHJlc3VsdCA9IEV4ZWNFdmFsRXhwcihkZWZp bmVDbGF1c2VbaV0pCisgKiAgICAgICB2YXJNYXRjaGVkW2ldID0gKG5vdCBudWxsIGFuZCB0cnVl KQorICoKKyAqIFRvIHN1cHBvcnQgcm93IG5hdmlnYXRpb24gb3BlcmF0b3JzIHN1Y2ggYXMgUFJF VigpIGFuZCBORVhUKCksCisgKiB0aGUgcHJldmlvdXMgcm93LCBjdXJyZW50IHJvdywgYW5kIG5l eHQgcm93IGFyZSBzZXQgaW4gc2VwYXJhdGUgc2xvdHM6CisgKgorICogICBlY3h0X3NjYW50dXBs ZSAgPSBwcmV2aW91cyByb3cgKGZvciBQUkVWIHJlZmVyZW5jZSkKKyAqICAgZWN4dF9vdXRlcnR1 cGxlID0gY3VycmVudCByb3cgIChkZWZhdWx0IHJlZmVyZW5jZSkKKyAqICAgZWN4dF9pbm5lcnR1 cGxlID0gbmV4dCByb3cgICAgIChmb3IgTkVYVCByZWZlcmVuY2UpCisgKgorICogVGhlIHZhck1h dGNoZWQgYXJyYXkgaXMgcmVmZXJlbmNlZCBsYXRlciBpbiBQaGFzZSAxIChNYXRjaCkuCisgKgor ICogVkktNC4gRXhlY1JQUlByb2Nlc3NSb3coKTogMy1QaGFzZSBQcm9jZXNzaW5nCisgKgorICog TkZBIHByb2Nlc3NpbmcgZm9yIGEgc2luZ2xlIHJvdyBpcyBkaXZpZGVkIGludG8gdGhyZWUgcGhh c2VzOgorICoKKyAqICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKworICogICB8ICBQaGFzZSAxOiBNQVRDSCAoY29udmVyZ2VuY2UpICAgICAgICAgICAgICB8 CisgKiAgIHwgIENvbXBhcmUgdGhlIGN1cnJlbnQgcm93IGFnYWluc3QgZWFjaCBWQVIgIHwKKyAq ICAgfCAgc3RhdGUuIFJlbW92ZSBzdGF0ZXMgdGhhdCBmYWlsIHRvIG1hdGNoLiAgfAorICogICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgIHwgIFBo YXNlIDI6IEFCU09SQiAoYWJzb3JwdGlvbikgICAgICAgICAgICAgIHwKKyAqICAgfCAgTWVyZ2Ug ZHVwbGljYXRlIGNvbnRleHRzIHRvIHByZXZlbnQgICAgICAgfAorICogICB8ICBzdGF0ZSBleHBs b3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgfCAgUGhhc2UgMzogQURWQU5DRSAo ZXhwYW5zaW9uKSAgICAgICAgICAgICAgfAorICogICB8ICBFeHBhbmQgZXBzaWxvbiB0cmFuc2l0 aW9ucyB0byBwcmVwYXJlICAgICB8CisgKiAgIHwgIGZvciB0aGUgbmV4dCByb3cuICAgICAgICAg ICAgICAgICAgICAgICAgIHwKKyAqICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKworICoKKyAqIFRoaXMgb3JkZXJpbmcgaXMgaW1wb3J0YW50OgorICoKKyAq ICAgLSBNYXRjaCBleGVjdXRlcyBmaXJzdCB0byAiY29uc3VtZSB0aGUgY3VycmVudCByb3cuIgor ICogICAtIEFic29yYiBleGVjdXRlcyBpbW1lZGlhdGVseSBhZnRlciBNYXRjaCwgd2hlbiBzdGF0 ZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCisgKiAgIC0gQWR2YW5jZSBleGVjdXRlcyBsYXN0IHRvIHBy ZXBhcmUgInN0YXRlcyB3YWl0aW5nIGZvciB0aGUgbmV4dCByb3cuIgorICoKKyAqIENoYXB0ZXIg VklJICBQaGFzZSAxOiBNYXRjaAorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIG5mYV9t YXRjaCgpIGl0ZXJhdGVzIHRocm91Z2ggZWFjaCBzdGF0ZSBpbiB0aGUgY29udGV4dDoKKyAqCisg KiAgICgxKSBDaGVjayB3aGV0aGVyIHRoZSBzdGF0ZSdzIGVsZW1JZHggaXMgYSBWQVIgZWxlbWVu dAorICogICAoMikgQ29tcGFyZSBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdyB1c2luZyBuZmFfZXZh bF92YXJfbWF0Y2goKQorICogICAoMykgTWF0Y2ggc3VjY2VzczogaW5jcmVtZW50IHJlcGV0aXRp b24gY291bnQsIHJldGFpbiBzdGF0ZQorICogICAoNCkgTWF0Y2ggZmFpbHVyZTogcmVtb3ZlIHN0 YXRlCisgKgorICogTWF0Y2ggZGV0ZXJtaW5hdGlvbiAobmZhX2V2YWxfdmFyX21hdGNoKToKKyAq CisgKiAgIElmIHZhcklkIGlzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgZGVmaW5lVmFyaWFibGVMaXN0 OgorICogICAgICAgVXNlIHRoZSB2YWx1ZSBvZiB2YXJNYXRjaGVkW3ZhcklkXQorICoKKyAqICAg SWYgdmFySWQgZXhjZWVkcyB0aGUgcmFuZ2UgKHZhcmlhYmxlIG5vdCBkZWZpbmVkIGluIERFRklO RSk6CisgKiAgICAgICBVbmNvbmRpdGlvbmFsbHkgdHJ1ZSAobWF0Y2hlcyBhbGwgcm93cykKKyAq CisgKiBJbW1lZGlhdGUgYWR2YW5jZSBmb3Igc2ltcGxlIFZBUnM6CisgKgorICogICBGb3IgYSBW QVIgd2l0aCBtaW49MSwgbWF4PTEgd2hlcmUgdGhlIG5leHQgZWxlbWVudCBpcyBFTkQsCisgKiAg IHRoZSBNYXRjaCBwaGFzZSBwcm9jZXNzZXMgdGhyb3VnaCBFTkQgaW1tZWRpYXRlbHkuCisgKiAg IFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBhY2N1cmF0ZSBzdGF0ZSBjb21wYXJpc29uIGluIFBoYXNl IDIgKEFic29yYikuCisgKgorICogICBFeGFtcGxlOiBJbiBQQVRURVJOICgoQSBCKSspLCB3aGVu IEEgbWF0Y2hlcywgaXQgaW1tZWRpYXRlbHkgYWR2YW5jZXMKKyAqICAgdG8gQiwgYW5kIHdoZW4g QiBtYXRjaGVzLCBpdCBpbW1lZGlhdGVseSBhZHZhbmNlcyB0aHJvdWdoIEVORCB0bworICogICBj b21wbGV0ZSB0aGUgZ3JvdXAgY291bnQuIFRoaXMgZW5hYmxlcyBhYnNvcnB0aW9uIGNvbXBhcmlz b24gd2l0aAorICogICBvdGhlciBjb250ZXh0cy4KKyAqCisgKiBDaGFwdGVyIFZJSUkgIFBoYXNl IDI6IEFic29yYiAoQ29udGV4dCBBYnNvcnB0aW9uKQorICogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor ICoKKyAqIFZJSUktMS4gUHJvYmxlbQorICoKKyAqIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0 aW9uLCBhIG5ldyBjb250ZXh0IGlzIHN0YXJ0ZWQgZm9yIGVhY2ggcm93CisgKiBwcm9jZXNzZWQu CisgKiBBcHBseWluZyBQQVRURVJOIChBKykgdG8gMTAgcm93cyBwcm9kdWNlcyAxMCBjb250ZXh0 cywKKyAqIGVhY2ggb2Ygd2hpY2ggdHJhY2tzIHN0YXRlIGluZGVwZW5kZW50bHkuCisgKgorICog SWYgdGhlcmUgYXJlIE4gcm93cywgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0ZXMgYmVjb21lcyBP KE5eMik6CisgKgorICogICBDb250ZXh0IDEgKHN0YXJ0ZWQgYXQgcm93IDEpOiBjYW4gbWF0Y2gg QSB1cCB0byBOIHRpbWVzCisgKiAgIENvbnRleHQgMiAoc3RhcnRlZCBhdCByb3cgMik6IGNhbiBt YXRjaCBBIHVwIHRvIE4tMSB0aW1lcworICogICAuLi4KKyAqICAgQ29udGV4dCBOIChzdGFydGVk IGF0IHJvdyBOKTogY2FuIG1hdGNoIEEgMSB0aW1lCisgKgorICogVklJSS0yLiBTb2x1dGlvbjog Q29udGV4dCBBYnNvcnB0aW9uCisgKgorICogS2V5IG9ic2VydmF0aW9uOiBhIGNvbnRleHQgc3Rh cnRlZCBlYXJsaWVyIGNvbnRhaW5zCisgKiBhbGwgbWF0Y2hlcyBvZiBhIGxhdGVyLXN0YXJ0ZWQg Y29udGV4dCAobW9ub3RvbmljaXR5IHByaW5jaXBsZSkuCisgKgorICogSWYgQ29udGV4dCAxIHN0 YXJ0ZWQgYXQgcm93IDEgYW5kIG1hdGNoZWQgQSA1IHRpbWVzLAorICogdGhlIHN0YXRlIHdoZXJl IENvbnRleHQgMiAoc3RhcnRlZCBhdCByb3cgMikgbWF0Y2hlZCBBIDQgdGltZXMKKyAqIGlzIGFs cmVhZHkgY29udGFpbmVkIHdpdGhpbiBDb250ZXh0IDEuCisgKgorICogVGhlcmVmb3JlIENvbnRl eHQgMiBjYW4gYmUgImFic29yYmVkIiBpbnRvIENvbnRleHQgMS4KKyAqCisgKiBWSUlJLTMuIEFi c29ycHRpb24gQ29uZGl0aW9ucworICoKKyAqICAgKDEpIFRoZSBwYXR0ZXJuIGlzIG1hcmtlZCBh cyBpc0Fic29yYmFibGUgKHNlZSBJVi01KQorICogICAoMikgYWxsU3RhdGVzQWJzb3JiYWJsZSBv ZiB0aGUgdGFyZ2V0IGNvbnRleHQgaXMgdHJ1ZQorICogICAoMykgQW4gZWFybGllciBjb250ZXh0 ICJjb3ZlcnMiIGFsbCBzdGF0ZXMgb2YgdGhlIHRhcmdldAorICoKKyAqIENvdmVyIGNvbmRpdGlv biAobmZhX3N0YXRlc19jb3ZlcmVkKToKKyAqCisgKiAgIEEgc3RhdGUgd2l0aCB0aGUgc2FtZSBl bGVtSWR4IGV4aXN0cyBpbiB0aGUgZWFybGllciBjb250ZXh0LAorICogICBhbmQgdGhlIGNvdW50 IGF0IHRoYXQgZGVwdGggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIC0tIHRoZW4gaXQgaXMgY292 ZXJlZC4KKyAqCisgKiBWSUlJLTQuIER1YWwtRmxhZyBEZXNpZ24KKyAqCisgKiBUd28gYm9vbGVh biBmbGFncyBtYWtlIHRoZSBhYnNvcnB0aW9uIGRlY2lzaW9uIGVmZmljaWVudDoKKyAqCisgKiAg IGhhc0Fic29yYmFibGVTdGF0ZSAobW9ub3RvbmljOiBvbmx5IHRydWUtPmZhbHNlIHRyYW5zaXRp b24gcG9zc2libGUpCisgKiAgICAgIkRvZXMgdGhpcyBjb250ZXh0IGhhdmUgdGhlIGFiaWxpdHkg dG8gYWJzb3JiIG90aGVyIGNvbnRleHRzPyIKKyAqICAgICB0cnVlIGlmIGF0IGxlYXN0IG9uZSBh YnNvcmJhYmxlIHN0YXRlIGV4aXN0cy4KKyAqICAgICBUcmFuc2l0aW9ucyB0byBmYWxzZSB3aGVu IHN0YXRlcyBhcmUgcmVtb3ZlZCBsZWF2aW5nIG5vIGFic29yYmFibGUKKyAqICAgICBzdGF0ZXMu CisgKiAgICAgT25jZSBmYWxzZSwgaXQgbmV2ZXIgYmVjb21lcyB0cnVlIGFnYWluLgorICoKKyAq ICAgYWxsU3RhdGVzQWJzb3JiYWJsZSAoZHluYW1pYzogY2FuIGZsdWN0dWF0ZSkKKyAqICAgICAi Q2FuIHRoaXMgY29udGV4dCBiZSBhYnNvcmJlZD8iCisgKiAgICAgdHJ1ZSBpZiBhbGwgc3RhdGVz IGFyZSBpbiBhbiBhYnNvcmJhYmxlIHJlZ2lvbi4KKyAqICAgICBCZWNvbWVzIGZhbHNlIHdoZW4g YSBub24tYWJzb3JiYWJsZSBzdGF0ZSBpcyBhZGRlZDsgcmV2ZXJ0cyB0byB0cnVlCisgKiAgICAg d2hlbiBpdCBpcyByZW1vdmVkLgorICoKKyAqIFZJSUktNS4gQWJzb3JwdGlvbiBPcmRlcgorICoK KyAqIG5mYV9hYnNvcmJfY29udGV4dHMoKSB0cmF2ZXJzZXMgZnJvbSB0YWlsIChuZXdlc3QpIHRv IGhlYWQgKG9sZGVzdCkuCisgKgorICogICBmb3IgY3R4ID0gdGFpbCB0byBoZWFkOgorICogICAg ICAgaWYgY3R4LmFsbFN0YXRlc0Fic29yYmFibGU6CisgKiAgICAgICAgICAgZm9yIG9sZGVyID0g Y3R4LnByZXYgdG8gaGVhZDoKKyAqICAgICAgICAgICAgICAgaWYgb2xkZXIuaGFzQWJzb3JiYWJs ZVN0YXRlOgorICogICAgICAgICAgICAgICAgICAgaWYgbmZhX3N0YXRlc19jb3ZlcmVkKG9sZGVy LCBjdHgpOgorICogICAgICAgICAgICAgICAgICAgICAgIGZyZWUoY3R4KSAgLS0gYWJzb3JiZWQK KyAqICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICoKKyAqIFNpbmNlIGluc3BlY3Rpb24g c3RhcnRzIGZyb20gdGhlIG5ld2VzdCBjb250ZXh0LCB0aGUgbW9zdCByZWNlbnRseSBzdGFydGVk CisgKiAoPSBoYXZpbmcgdGhlIHNob3J0ZXN0IG1hdGNoKSBjb250ZXh0IGlzIGFic29yYmVkIGZp cnN0LgorICoKKyAqIENoYXB0ZXIgSVggIFBoYXNlIDM6IEFkdmFuY2UgKEVwc2lsb24gVHJhbnNp dGlvbiBFeHBhbnNpb24pCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogSVgtMS4gT3Zl cnZpZXcKKyAqCisgKiBuZmFfYWR2YW5jZSgpIGV4cGFuZHMgZXBzaWxvbiB0cmFuc2l0aW9ucyBm cm9tIGVhY2ggc3RhdGUgYWZ0ZXIgTWF0Y2gsCisgKiBnZW5lcmF0aW5nICJuZXcgc3RhdGVzIHdh aXRpbmcgZm9yIHRoZSBuZXh0IHJvdy4iCisgKgorICogQW4gZXBzaWxvbiB0cmFuc2l0aW9uIGlz IGEgdHJhbnNpdGlvbiB0aGF0IG1vdmVzIHdpdGhvdXQgY29uc3VtaW5nIGEgcm93OgorICoKKyAq ICAgLSBBTFQ6IGJyYW5jaCB0byBlYWNoIGFsdGVybmF0aXZlCisgKiAgIC0gQkVHSU46IGVudGVy IGdyb3VwIChvciBza2lwIGlmIG1pbj0wKQorICogICAtIEVORDogbG9vcC1iYWNrIHdpdGhpbiBn cm91cCAob3IgZXhpdCB3aGVuIGNvbmRpdGlvbiBpcyBtZXQpCisgKiAgIC0gRklOOiByZWNvcmQg bWF0Y2ggY29tcGxldGlvbgorICogICAtIFZBUiBsb29wL2V4aXQ6IHJlcGVhdC9leGl0IGFjY29y ZGluZyB0byB0aGUgcXVhbnRpZmllcgorICoKKyAqIEV4cGFuc2lvbiBzdG9wcyB1cG9uIHJlYWNo aW5nIGEgVkFSIGVsZW1lbnQsIGFuZCB0aGUgc3RhdGUgaXMgYWRkZWQuCisgKiBUaGlzIGlzIGJl Y2F1c2UgVkFSIGlzIHRoZSBlbGVtZW50IHRoYXQgIndpbGwgY29uc3VtZSB0aGUgbmV4dCByb3cu IgorICoKKyAqIElYLTIuIFByb2Nlc3NpbmcgT3JkZXI6IERGUyBhbmQgUHJlZmVybWVudAorICoK KyAqIGFkdmFuY2UgcHJvY2Vzc2VzIHN0YXRlcyBpbiBsZXhpY29ncmFwaGljIG9yZGVyLAorICog cGVyZm9ybWluZyBEZXB0aC1GaXJzdCBTZWFyY2ggKERGUykgb24gZWFjaCBzdGF0ZS4KKyAqCisg KiBUaGlzIERGUyBvcmRlciBpcyB3aGF0IGd1YXJhbnRlZXMgdGhlIFNRTCBzdGFuZGFyZCdzICJw cmVmZXJtZW50IjoKKyAqCisgKiAgIFRoZSBicmFuY2ggdGhhdCBhcHBlYXJzIGZpcnN0IGluIHRo ZSBQQVRURVJOIHRleHQgdGFrZXMgcHJlY2VkZW5jZS4KKyAqCisgKiBFeGFtcGxlOiBQQVRURVJO IChBIHwgQikgQworICoKKyAqICAgVGhlIGZpcnN0IGJyYW5jaCBBIG9mIHRoZSBBTFQgdGFrZXMg cHJlY2VkZW5jZSBvdmVyIHRoZSBzZWNvbmQgYnJhbmNoIEIuCisgKiAgIFdoZW4gYm90aCBBIGFu ZCBCIGNhbiBtYXRjaCwgdGhlIG1hdGNoIHZpYSBBIGlzIHNlbGVjdGVkLgorICoKKyAqIG5mYV9h ZGRfc3RhdGVfdW5pcXVlKCkgcHJldmVudHMgZHVwbGljYXRlIGFkZGl0aW9uIG9mIHRoZSBzYW1l IHN0YXRlLAorICogc28gdGhlIHN0YXRlIGFkZGVkIGZpcnN0ICg9IGZyb20gdGhlIHByZWZlcnJl ZCBicmFuY2gpIGlzIHJldGFpbmVkLgorICoKKyAqIElYLTMuIFJvdXRpbmcgRnVuY3Rpb246IG5m YV9yb3V0ZV90b19lbGVtKCkKKyAqCisgKiBBbGwgaW50ZXItZWxlbWVudCB0cmFuc2l0aW9ucyBp biB0aGUgYWR2YW5jZSBwaGFzZSBnbyB0aHJvdWdoCisgKiBuZmFfcm91dGVfdG9fZWxlbSgpLgor ICogVGhpcyBmdW5jdGlvbiBicmFuY2hlcyBpdHMgYmVoYXZpb3IgYmFzZWQgb24gdGhlIHR5cGUg b2YgdGhlIG5leHQgZWxlbWVudDoKKyAqCisgKiAgIElmIHRoZSBuZXh0IGVsZW1lbnQgaXMgVkFS OgorICogICAgICgxKSBBZGQgdGhlIHN0YXRlIHRvIHRoZSBjb250ZXh0IChuZmFfYWRkX3N0YXRl X3VuaXF1ZSkKKyAqICAgICAoMikgSWYgdGhlIFZBUiBoYXMgbWluPTAsIGFsc28gYWRkIGEgc2tp cCBwYXRoIChyZWN1cnNlIHZpYSBuZXh0KQorICogICAgIC0+IEV4cGFuc2lvbiBzdG9wcyBoZXJl IChWQVIgaXMgdGhlIGVsZW1lbnQgdGhhdCAid2lsbCBjb25zdW1lIHRoZSBuZXh0CisgKiAgICAg ICAgcm93IikKKyAqCisgKiAgIElmIHRoZSBuZXh0IGVsZW1lbnQgaXMgbm9uLVZBUiAoQUxULCBC RUdJTiwgRU5ELCBGSU4pOgorICogICAgIC0+IFJlY3Vyc2l2ZWx5IGNhbGwgbmZhX2FkdmFuY2Vf c3RhdGUoKSB0byBjb250aW51ZSBleHBhbnNpb24KKyAqCisgKiBXaXRoIHRoaXMgc3RydWN0dXJl LCBhZHZhbmNlIHJlY3Vyc2l2ZWx5IGZvbGxvd3MgZXBzaWxvbiB0cmFuc2l0aW9ucworICogdW50 aWwgcmVhY2hpbmcgYSBWQVIsIGNvbnNpc3RlbnRseSBzdG9wcGluZyBvbmx5IGF0IFZBUiBlbGVt ZW50cy4KKyAqCisgKiBJWC00LiBQZXItRWxlbWVudCBhZHZhbmNlIEJlaGF2aW9yCisgKgorICog KGEpIEFMVCAobmZhX2FkdmFuY2VfYWx0KQorICoKKyAqICAgVXBvbiBlbmNvdW50ZXJpbmcgYW4g QUxUIGVsZW1lbnQsIGFsbCBicmFuY2hlcyBhcmUgZXhwYW5kZWQgaW4gb3JkZXIuCisgKiAgIFRo ZSBmaXJzdCBlbGVtZW50IG9mIGVhY2ggYnJhbmNoIGlzIGNvbm5lY3RlZCB2aWEgYSBqdW1wIHBv aW50ZXIuCisgKgorICogICBpZHg9MCAoQUxUKSAtPiBicmFuY2ggMSBzdGFydCAobmV4dCkgLT4g YnJhbmNoIDIgc3RhcnQgKGp1bXApIC0+IC4uLgorICoKKyAqICAgbmZhX2FkdmFuY2Vfc3RhdGUo KSBpcyByZWN1cnNpdmVseSBjYWxsZWQgZm9yIGVhY2ggYnJhbmNoLgorICoKKyAqIChiKSBCRUdJ TiAobmZhX2FkdmFuY2VfYmVnaW4pCisgKgorICogICBIYW5kbGVzIGdyb3VwIGVudHJ5LgorICog ICBqdW1wIHBvaW50cyB0byB0aGUgZWxlbWVudCBhZnRlciBFTkQgKD0gZmlyc3QgZWxlbWVudCBv dXRzaWRlIHRoZSBncm91cCkuCisgKgorICogICBHcmVlZHkgKGRlZmF1bHQpOgorICogICAgICgx KSBFbnRlciB0aGUgZ3JvdXAgYm9keSAobW92ZSB2aWEgbmV4dCwgcmVzZXQgdGhlIGNvdW50IGF0 IHRoYXQgZGVwdGgpCisgKiAgICAgKDIpIElmIG1pbj0wLCBhbHNvIGFkZCBhIGdyb3VwIHNraXAg cGF0aCAobW92ZSB2aWEganVtcCkKKyAqCisgKiAgIFJlbHVjdGFudDoKKyAqICAgICBPcmRlciBy ZXZlcnNlZCAtLSBza2lwIHBhdGggZmlyc3QsIGdyb3VwIGVudHJ5IHNlY29uZC4KKyAqICAgICBJ ZiB0aGUgc2tpcCBwYXRoIHJlYWNoZXMgRklOLCB0aGUgZ3JvdXAgZW50cnkgcGF0aCBpcyBub3Qg Z2VuZXJhdGVkCisgKiAgICAgKHNob3J0ZXN0IG1hdGNoIHByZWZlcnJlZCkuCisgKgorICogKGMp IEVORCAobmZhX2FkdmFuY2VfZW5kKQorICoKKyAqICAgSGFuZGxlcyBncm91cCB0ZXJtaW5hdGlv bi4gVGhpcyBpcyB0aGUgY29yZSBvZiB0aGUgcmVwZXRpdGlvbiBsb2dpYy4KKyAqCisgKiAgIExl dCBjb3VudCBiZSB0aGUgY291bnQgYXQgdGhlIGN1cnJlbnQgZGVwdGg6CisgKgorICogICBjb3Vu dCA8IG1pbjoKKyAqICAgICBMb29wLWJhY2sgKG1vdmUgdmlhIGp1bXAsIHJlcGVhdCB0aGUgZ3Jv dXAgYm9keSkKKyAqCisgKiAgICAgSWYgdGhlIFJQUl9FTEVNX0VNUFRZX0xPT1AgZmxhZyBpcyBz ZXQ6CisgKiAgICAgICBJbiBhZGRpdGlvbiB0byBsb29wLWJhY2ssIGFsc28gYWRkIGEgZmFzdC1m b3J3YXJkIGV4aXQgcGF0aC4KKyAqICAgICAgIFRoaXMgaXMgYmVjYXVzZSB0aGUgYm9keSBtYXkg cHJvZHVjZSBhbiBlbXB0eSBtYXRjaCwgY2F1c2luZyBjb3VudAorICogICAgICAgdG8gbmV2ZXIg cmVhY2ggbWluLiBmYXN0LWZvcndhcmQgcmVzZXRzIGNvdW50c1tkZXB0aF0gdG8gMAorICogICAg ICAgYW5kIGV4aXRzIHZpYSBuZXh0ICh0cmVhdGluZyB0aGUgcmVtYWluaW5nIHJlcXVpcmVkIGl0 ZXJhdGlvbnMKKyAqICAgICAgIGFzIGVtcHR5IG1hdGNoZXMpLgorICoKKyAqICAgbWluIDw9IGNv dW50IDwgbWF4OgorICogICAgIEdyZWVkeTogbG9vcC1iYWNrIGZpcnN0LCBleGl0IHNlY29uZAor ICogICAgIFJlbHVjdGFudDogZXhpdCBmaXJzdCwgbG9vcC1iYWNrIHNlY29uZAorICogICAgICAg ICAgICAgICAgSWYgdGhlIGV4aXQgcGF0aCByZWFjaGVzIEZJTiwgbG9vcC1iYWNrIGlzIG9taXR0 ZWQuCisgKgorICogICBjb3VudCA+PSBtYXg6CisgKiAgICAgVW5jb25kaXRpb25hbCBleGl0ICht b3ZlIHZpYSBuZXh0KQorICoKKyAqICAgT24gZXhpdDogcmVzZXQgY291bnRzW2RlcHRoXSA9IDAs IGFuZCBpZiB0aGUgbmV4dCBlbGVtZW50IGlzIGFuIG91dGVyIEVORCwKKyAqICAgaW5jcmVtZW50 IHRoZSBjb3VudCBhdCB0aGUgb3V0ZXIgZGVwdGguCisgKgorICogKGQpIFZBUiAobmZhX2FkdmFu Y2VfdmFyKQorICoKKyAqICAgSGFuZGxlcyByZXBlYXQvZXhpdCBmb3IgYSBWQVIgZWxlbWVudCB3 aXRoIGEgcXVhbnRpZmllci4KKyAqCisgKiAgIExldCBjb3VudCBiZSB0aGUgY291bnQgYXQgdGhl IGN1cnJlbnQgZGVwdGg6CisgKgorICogICBjb3VudCA8IG1pbjoKKyAqICAgICBVbmNvbmRpdGlv bmFsIGxvb3AgKHN0YXkgYXQgdGhlIHNhbWUgZWxlbUlkeCwgd2FpdCBmb3IgdGhlIG5leHQgcm93 KQorICoKKyAqICAgbWluIDw9IGNvdW50IDwgbWF4OgorICogICAgIEdyZWVkeTogbG9vcCBmaXJz dCwgZXhpdCAobmV4dCkgc2Vjb25kCisgKiAgICAgUmVsdWN0YW50OiBleGl0IGZpcnN0LCBsb29w IHNlY29uZAorICogICAgICAgICAgICAgICAgSWYgdGhlIGV4aXQgcGF0aCByZWFjaGVzIEZJTiwg bG9vcCBpcyBvbWl0dGVkLgorICoKKyAqICAgY291bnQgPj0gbWF4OgorICogICAgIFVuY29uZGl0 aW9uYWwgZXhpdCAobW92ZSB2aWEgbmV4dCkKKyAqCisgKiAgIE9uIGV4aXQ6IHJlc2V0IGNvdW50 c1tkZXB0aF0gPSAwLgorICoKKyAqIChlKSBGSU4KKyAqCisgKiAgIE1hdGNoIHN1Y2Nlc3MuIFRo ZSBjdXJyZW50IHN0YXRlIGlzIG1vdmVkIHRvIG1hdGNoZWRTdGF0ZSBmb3IgcmVjb3JkaW5nLAor ICogICBhbmQgbWF0Y2hFbmRSb3cgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHJvdy4KKyAqCisgKiAg IFVwb24gcmVhY2hpbmcgRklOLCBhbGwgcmVtYWluaW5nIHVucHJvY2Vzc2VkIHN0YXRlcyBhcmUg cmVtb3ZlZAorICogICAoZWFybHkgdGVybWluYXRpb24pLiBCeSBERlMgb3JkZXIsIHRoZSBwYXRo IHRoYXQgcmVhY2hlZCBGSU4gZmlyc3QKKyAqICAgaGFzIHRoZSBoaWdoZXN0IHByZWZlcm1lbnQs IHNvIHRoZSByZXN0IGFyZSBpbmZlcmlvciBwYXRocy4KKyAqICAgVGhpcyBpcyB0aGUgY29yZSBt ZWNoYW5pc20gdGhhdCBndWFyYW50ZWVzIHByZWZlcm1lbnQuCisgKgorICogICBJbiBTS0lQIFBB U1QgTEFTVCBST1cgbW9kZSwgdXBvbiByZWFjaGluZyBGSU4sIHN1YnNlcXVlbnQgY29udGV4dHMK KyAqICAgdGhhdCBzdGFydGVkIHdpdGhpbiB0aGUgbWF0Y2ggcmFuZ2UgYXJlIGltbWVkaWF0ZWx5 IHBydW5lZC4KKyAqCisgKiBJWC01LiBTdGF0ZSBEZWR1cGxpY2F0aW9uOiBuZmFfYWRkX3N0YXRl X3VuaXF1ZSgpCisgKgorICogV2hlbiBhZGRpbmcgYSBuZXcgc3RhdGUgdG8gYSBjb250ZXh0LCBp dCBpcyBjb21wYXJlZCBhZ2FpbnN0IGV4aXN0aW5nCisgKiBzdGF0ZXM7CisgKiBpZiBhbiBpZGVu dGljYWwgc3RhdGUgYWxyZWFkeSBleGlzdHMsIGl0IGlzIG5vdCBhZGRlZC4KKyAqCisgKiBDb21w YXJpc29uIGNyaXRlcmlhOiBlbGVtSWR4ICsgY291bnRzWzAuLmVsZW0tPmRlcHRoXSAoc2VlIFYt MSkKKyAqCisgKiBUaGlzIGRlZHVwbGljYXRpb24gaXMgdGhlIGNvcmUgbWVjaGFuaXNtIHRoYXQg c3VwcHJlc3NlcyBORkEgc3RhdGUKKyAqIGV4cGxvc2lvbi4KKyAqIEJlY2F1c2UgREZTIG9yZGVy IGNhdXNlcyBwcmVmZXJyZWQtYnJhbmNoIHN0YXRlcyB0byBiZSBhZGRlZCBmaXJzdCwKKyAqIGlk ZW50aWNhbCBzdGF0ZXMgZnJvbSBsb3dlci1wcmlvcml0eSBicmFuY2hlcyBhcmUgYXV0b21hdGlj YWxseSBkaXNjYXJkZWQuCisgKgorICogSVgtNi4gQ3ljbGUgRGV0ZWN0aW9uOiBuZmFWaXNpdGVk RWxlbXMKKyAqCisgKiBXaGVuIGEgZ3JvdXAgYm9keSBjYW4gcHJvZHVjZSBhbiBlbXB0eSBtYXRj aCwKKyAqIGxvb3BpbmcgYmFjayBmcm9tIEVORCBtYXkgY2F1c2UgYW4gaW5maW5pdGUgbG9vcC4K KyAqCisgKiBFeGFtcGxlOiBQQVRURVJOICgoQT8pKikKKyAqCisgKiAgIEE/IGhhcyBtaW49MCwg c28gaXQgY2FuIHBhc3MgdGhyb3VnaCB3aXRob3V0IG1hdGNoaW5nLgorICogICBJZiB0aGUgb3V0 ZXIgZ3JvdXAgcmVwZWF0czogQkVHSU4gLT4gQT8gc2tpcCAtPiBFTkQgLT4gQkVHSU4gLT4gLi4u CisgKgorICogVG8gcHJldmVudCB0aGlzOgorICoKKyAqICAgKDEpIEF0IGNvbXBpbGUgdGltZTog c2V0IHRoZSBSUFJfRUxFTV9FTVBUWV9MT09QIGZsYWcgb24gdGhlIEVORAorICogICAgICAgb2Yg Z3JvdXBzIHdob3NlIGJvZHkgaXMgbnVsbGFibGUuCisgKiAgICAgICBUaGUgcnVudGltZSBlZmZl Y3Qgb2YgdGhpcyBmbGFnIGlzIGRlc2NyaWJlZCBpbiBJWC00KGMpOgorICogICAgICAgd2hlbiBj b3VudCA8IG1pbiwgYSBmYXN0LWZvcndhcmQgZXhpdCBwYXRoIGlzIGFkZGVkLAorICogICAgICAg cmVzb2x2aW5nIHRoZSBkZWFkbG9jayB3aGVyZSBjb3VudCBjYW5ub3QgaW5jcmVhc2UgZHVlIHRv IGVtcHR5CisgKiAgICAgICBtYXRjaGVzLgorICoKKyAqICAgKDIpIEF0IHJ1bnRpbWU6IGluaXRp YWxpemUgdGhlIG5mYVZpc2l0ZWRFbGVtcyBiaXRtYXAgaW1tZWRpYXRlbHkgYmVmb3JlCisgKiAg ICAgICBERlMgZXhwYW5zaW9uIG9mIGVhY2ggc3RhdGUgd2l0aGluIGFkdmFuY2UgKG9uY2UgcGVy IHN0YXRlKS4KKyAqICAgICAgIER1cmluZyBERlMsIHNldCB0aGUgY29ycmVzcG9uZGluZyBlbGVt SWR4IGJpdCB3aGVuIHZpc2l0aW5nIGVhY2gKKyAqICAgICAgIGVsZW1lbnQuCisgKiAgICAgICBJ ZiBhIHByZXZpb3VzbHkgdmlzaXRlZCBlbGVtSWR4IGlzIHJldmlzaXRlZCwgdGhhdCBwYXRoIGlz IHRlcm1pbmF0ZWQuCisgKgorICogICBOb3RlOiB0aGUgYml0bWFwIHRyYWNrcyBvbmx5IGVsZW1J ZHggYW5kIGRvZXMgbm90IGNvbnNpZGVyIGNvdW50cy4KKyAqICAgVGhlcmVmb3JlLCBsZWdpdGlt YXRlIHJldmlzaXRzIHRvIHRoZSBzYW1lIGVsZW1JZHggYnV0IHdpdGggZGlmZmVyZW50CisgKiAg IGNvdW50cyBtYXkgYWxzbyBiZSBibG9ja2VkLiAgVGhpcyBvbmx5IG9jY3VycyB3aGVuIHRoZSBn cm91cCBib2R5IGlzCisgKiAgIG51bGxhYmxlIChhbGwgcGF0aHMgY2FuIG1hdGNoIGVtcHR5KSwg Y2F1c2luZyBFTkQgLT4gbG9vcC1iYWNrIC0+CisgKiAgIHNraXAgLT4gRU5EIHdpdGhpbiBhIHNp bmdsZSBERlMuICBJbiBzdWNoIGNhc2VzIHRoZSBFTkQgZWxlbWVudCBoYXMKKyAqICAgdGhlIFJQ Ul9FTEVNX0VNUFRZX0xPT1AgZmxhZywgc28gdGhlIGZhc3QtZm9yd2FyZCBleGl0IChJWC00KGMp KQorICogICBwcm92aWRlcyBhbiBhbHRlcm5hdGl2ZSBwYXRoIHRoYXQgYnlwYXNzZXMgdGhlIGN5 Y2xlLgorICoKKyAqIENoYXB0ZXIgWCAgTWF0Y2ggUmVzdWx0IFByb2Nlc3NpbmcKKyAqID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKyAqCisgKiBYLTEuIFJlZHVjZWQgRnJhbWUgTWFwCisgKgorICogUlBS IG1hdGNoIHJlc3VsdHMgYXJlIHJlY29yZGVkIGluIGEgYnl0ZSBhcnJheSBjYWxsZWQgcmVkdWNl ZF9mcmFtZV9tYXAuCisgKiBPbmUgYnl0ZSBpcyBhbGxvY2F0ZWQgcGVyIHJvdywgYW5kIHRoZSB2 YWx1ZSBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAqCisgKiAgIFJGX05PVF9ERVRFUk1JTkVE ICgwKSAgTm90IHlldCBwcm9jZXNzZWQKKyAqICAgUkZfRlJBTUVfSEVBRCAgICAgKDEpICBTdGFy dCByb3cgb2YgdGhlIG1hdGNoCisgKiAgIFJGX1NLSVBQRUQgICAgICAgICgyKSAgSW50ZXJpb3Ig cm93IG9mIHRoZSBtYXRjaCAoc2tpcHBlZCBpbiBmcmFtZSkKKyAqICAgUkZfVU5NQVRDSEVEICAg ICAgKDMpICBNYXRjaCBmYWlsdXJlCisgKgorICogVGhlIHdpbmRvdyBmdW5jdGlvbiByZWZlcmVu Y2VzIHRoaXMgbWFwIHRvIGRldGVybWluZSBmcmFtZSBpbmNsdXNpb24gZm9yCisgKiBlYWNoIHJv dy4KKyAqCisgKiBYLTIuIEFGVEVSIE1BVENIIFNLSVAKKyAqCisgKiBEZXRlcm1pbmVzIHRoZSBz dGFydGluZyBwb2ludCBmb3IgdGhlIG5leHQgbWF0Y2ggYXR0ZW1wdCBhZnRlciBhIHN1Y2Nlc3Nm dWwKKyAqIG1hdGNoOgorICoKKyAqICAgU0tJUCBUTyBORVhUIFJPVzoKKyAqICAgICBOZXcgbWF0 Y2ggYXR0ZW1wdCBiZWdpbnMgZnJvbSB0aGUgcm93IGFmdGVyIHRoZSBtYXRjaCBzdGFydCByb3cu CisgKiAgICAgT3ZlcmxhcHBpbmcgbWF0Y2hlcyBhcmUgcG9zc2libGUuCisgKgorICogICBTS0lQ IFBBU1QgTEFTVCBST1c6CisgKiAgICAgTmV3IG1hdGNoIGF0dGVtcHQgYmVnaW5zIGZyb20gdGhl IHJvdyBhZnRlciB0aGUgbWF0Y2ggZW5kIHJvdy4KKyAqICAgICBPbmx5IG5vbi1vdmVybGFwcGlu ZyBtYXRjaGVzIGFyZSBwb3NzaWJsZS4KKyAqCisgKiBYLTMuIElOSVRJQUwgdnMgU0VFSworICoK KyAqICAgU3RhbmRhcmQgZGVmaW5pdGlvbiAoc2VjdGlvbiA2LjEyKToKKyAqICAgSU5JVElBTDog ImlzIHVzZWQgdG8gbG9vayBmb3IgYSBtYXRjaCB3aG9zZSBmaXJzdCByb3cgaXMgUi4iCisgKiAg IFNFRUs6ICAgICJpcyB1c2VkIHRvIHBlcm1pdCBhIHNlYXJjaCBmb3IgdGhlIGZpcnN0IG1hdGNo IGFueXdoZXJlCisgKiAgICAgICAgICAgIGZyb20gUiB0aHJvdWdoIHRoZSBlbmQgb2YgdGhlIGZ1 bGwgd2luZG93IGZyYW1lLiIKKyAqICAgSW4gZWl0aGVyIGNhc2UsIGlmIHRoZXJlIGlzIG5vIG1h dGNoLCB0aGUgcmVkdWNlZCB3aW5kb3cgZnJhbWUgaXMgZW1wdHkuCisgKiAgIFRoZSBkZWZhdWx0 IGlzIElOSVRJQUwuCisgKgorICogICBDdXJyZW50IGltcGxlbWVudGF0aW9uOgorICogICBTRUVL IGlzIG5vdCBzdXBwb3J0ZWQgKHRoZSBwYXJzZXIgcmFpc2VzIGFuIGVycm9yKS4KKyAqICAgT25s eSBJTklUSUFMIGlzIHN1cHBvcnRlZCwgc2VhcmNoaW5nIG9ubHkgZm9yIG1hdGNoZXMgc3RhcnRp bmcgYXQgZWFjaAorICogICByb3cgcG9zaXRpb24gcG9zLgorICoKKyAqIENoYXB0ZXIgWEkgIFdv cmtlZCBFeGFtcGxlOiBGdWxsIEV4ZWN1dGlvbiBUcmFjZQorICogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorICoKKyAqIFhJLTEuIFF1ZXJ5CisgKgorICogICBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLAorICogICAgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBzdGFydF9wcmlj ZSwKKyAqICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UKKyAq ICAgRlJPTSBzdG9jaworICogICBXSU5ET1cgdyBBUyAoCisgKiAgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkKKyAqICAgICBPUkRFUiBCWSB0ZGF0ZQorICogICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICogICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICogICAgIFBBVFRFUk4gKEErIEIpCisgKiAgICAgREVGSU5FIEEgQVMgcHJp Y2UgPiBQUkVWKHByaWNlKSwKKyAqICAgICAgICAgICAgQiBBUyBwcmljZSA8IFBSRVYocHJpY2Up CisgKiAgICk7CisgKgorICogWEktMi4gRGF0YQorICoKKyAqICAgUm93IyAgICB0ZGF0ZSAgICAg ICBwcmljZQorICogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAwICAgICAgIDIw MjQtMDEtMDEgIDEwMAorICogICAxICAgICAgIDIwMjQtMDEtMDIgIDExMAorICogICAyICAgICAg IDIwMjQtMDEtMDMgIDEyMAorICogICAzICAgICAgIDIwMjQtMDEtMDQgIDExNQorICogICA0ICAg ICAgIDIwMjQtMDEtMDUgIDEzMAorICoKKyAqIFhJLTMuIENvbXBpbGF0aW9uIFJlc3VsdAorICoK KyAqICAgUEFUVEVSTiAoQSsgQikgLT4gdW5jaGFuZ2VkIGFmdGVyIG9wdGltaXphdGlvbgorICoK KyAqICAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBqdW1wCisgKiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgICAwICAgQSgwKSAgIDAg ICAgICAxICAgIElORiAgMSAgICAgLTEgICAgIEErCisgKiAgICAxICAgQigxKSAgIDAgICAgICAx ICAgIDEgICAgMiAgICAgLTEgICAgIEIKKyAqICAgIDIgICBGSU4gICAgMCAgICAgIDEgICAgMSAg ICAtMSAgICAtMQorICoKKyAqICAgREVGSU5FOiBBIC0+ICJwcmljZSA+IFBSRVYocHJpY2UpIiwg QiAtPiAicHJpY2UgPCBQUkVWKHByaWNlKSIKKyAqICAgaXNBYnNvcmJhYmxlID0gdHJ1ZSAoQSsg aXMgYSBzaW1wbGUgdW5ib3VuZGVkIFZBUikKKyAqCisgKiBYSS00LiBFeGVjdXRpb24gVHJhY2UK KyAqCisgKiAtLS0gUm93IDAgKHByaWNlPTEwMCkgLS0tCisgKgorICogICB1cGRhdGVfcmVkdWNl ZF9mcmFtZSgwKSBjYWxsZWQuCisgKgorICogICBDb250ZXh0IEMwIGNyZWF0ZWQgKG1hdGNoU3Rh cnRSb3c9MCkuCisgKiAgIEluaXRpYWwgYWR2YW5jZTogZWxlbUlkeD0wKEEpIC0+IFZBUiwgc28g c3RhdGUgaXMgYWRkZWQuCisgKiAgIEMwLnN0YXRlcyA9IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzBd fV0KKyAqCisgKiAgIG5mYV9ldmFsdWF0ZV9yb3coMCk6CisgKiAgICAgQTogcHJpY2UoMTAwKSA+ IFBSRVYocHJpY2UpIC0+IG5vIFBSRVYgLT4gZmFsc2UKKyAqICAgICBCOiBwcmljZSgxMDApIDwg UFJFVihwcmljZSkgLT4gbm8gUFJFViAtPiBmYWxzZQorICogICAgIHZhck1hdGNoZWQgPSBbZmFs c2UsIGZhbHNlXQorICoKKyAqICAgRXhlY1JQUlByb2Nlc3NSb3coMCk6CisgKiAgICAgUGhhc2Ug MSAoTWF0Y2gpOiBBKDApIHN0YXRlIHZzIHZhck1hdGNoZWRbMF09ZmFsc2UgLT4gc3RhdGUgcmVt b3ZlZAorICogICAgIEMwLnN0YXRlcyA9IFtdIChlbXB0eSkKKyAqCisgKiAgICAgUGhhc2UgMiAo QWJzb3JiKTogc2tpcHBlZCAobm8gc3RhdGVzKQorICogICAgIFBoYXNlIDMgKEFkdmFuY2UpOiBz a2lwcGVkIChubyBzdGF0ZXMpCisgKgorICogICBDMC5zdGF0ZXMgaXMgZW1wdHksIHNvIHRoZSBs b29wIHRlcm1pbmF0ZXMuCisgKiAgIG1hdGNoRW5kUm93IDwgbWF0Y2hTdGFydFJvdyAtPiBSRl9V Tk1BVENIRUQuCisgKiAgIHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKDAsIFJGX1VOTUFUQ0hF RCkuCisgKgorICogLS0tIFJvdyAxIChwcmljZT0xMTApIC0tLQorICoKKyAqICAgdXBkYXRlX3Jl ZHVjZWRfZnJhbWUoMSkgY2FsbGVkLgorICoKKyAqICAgQ29udGV4dCBDMSBjcmVhdGVkIChtYXRj aFN0YXJ0Um93PTEpLgorICogICBJbml0aWFsIGFkdmFuY2U6IEMxLnN0YXRlcyA9IFt7ZWxlbUlk eD0wLCBjb3VudHM9WzBdfV0KKyAqCisgKiAgIG5mYV9ldmFsdWF0ZV9yb3coMSk6CisgKiAgICAg QTogMTEwID4gUFJFVigxMDApIC0+IHRydWUKKyAqICAgICBCOiAxMTAgPCBQUkVWKDEwMCkgLT4g ZmFsc2UKKyAqICAgICB2YXJNYXRjaGVkID0gW3RydWUsIGZhbHNlXQorICoKKyAqICAgRXhlY1JQ UlByb2Nlc3NSb3coMSk6CisgKiAgICAgUGhhc2UgMSAoTWF0Y2gpOiBBKDApIG1hdGNoIHN1Y2Nl ZWRzIC0+IGNvdW50c1swXSsrIC0+IGNvdW50cz1bMV0KKyAqICAgICBDMS5zdGF0ZXMgPSBbe2Vs ZW1JZHg9MCwgY291bnRzPVsxXX1dCisgKgorICogICAgIFBoYXNlIDMgKEFkdmFuY2UpOgorICog ICAgICAgU3RhdGUge2VsZW1JZHg9MCwgY291bnRzPVsxXX06IEErIChtaW49MSwgY291bnQ9MSwg bWF4PUlORikKKyAqICAgICAgICAgY291bnQgPj0gbWluLCBzbzoKKyAqICAgICAgICAgR3JlZWR5 IC0+IGxvb3AgZmlyc3Q6IGtlZXAge2VsZW1JZHg9MCwgY291bnRzPVsxXX0KKyAqICAgICAgICAg ICAgICAgICAgIGV4aXQ6IHJlc2V0IGNvdW50c1swXT0wLCBuZXh0KD0xKSAtPiB7ZWxlbUlkeD0x LAorICogICAgICAgICAgICAgICAgICAgICAgICAgY291bnRzPVswXX0KKyAqICAgICBDMS5zdGF0 ZXMgPSBbe2VsZW1JZHg9MCwgY291bnRzPVsxXX0sIHtlbGVtSWR4PTEsIGNvdW50cz1bMF19XQor ICoKKyAqIC0tLSBSb3cgMiAocHJpY2U9MTIwKSAtLS0KKyAqCisgKiAgIENvbnRleHQgQzIgY3Jl YXRlZCAobWF0Y2hTdGFydFJvdz0yKS4KKyAqICAgSW5pdGlhbCBhZHZhbmNlOiBDMi5zdGF0ZXMg PSBbe2VsZW1JZHg9MCwgY291bnRzPVswXX1dCisgKgorICogICBuZmFfZXZhbHVhdGVfcm93KDIp OgorICogICAgIEE6IDEyMCA+IFBSRVYoMTEwKSAtPiB0cnVlCisgKiAgICAgQjogMTIwIDwgUFJF VigxMTApIC0+IGZhbHNlCisgKiAgICAgdmFyTWF0Y2hlZCA9IFt0cnVlLCBmYWxzZV0KKyAqCisg KiAgIEMxIEV4ZWNSUFJQcm9jZXNzUm93KDIpOgorICogICAgIFBoYXNlIDEgKE1hdGNoKToKKyAq ICAgICAgIHtlbGVtSWR4PTAsIGNvdW50cz1bMV19OiBBIG1hdGNoZXMgLT4gY291bnRzPVsyXQor ICogICAgICAge2VsZW1JZHg9MSwgY291bnRzPVswXX06IEIgZG9lcyBub3QgbWF0Y2ggLT4gcmVt b3ZlZAorICogICAgIEMxLnN0YXRlcyA9IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfV0KKyAqCisg KiAgIEMyIEV4ZWNSUFJQcm9jZXNzUm93KDIpOgorICogICAgIFBoYXNlIDEgKE1hdGNoKToKKyAq ICAgICAgIHtlbGVtSWR4PTAsIGNvdW50cz1bMF19OiBBIG1hdGNoZXMgLT4gY291bnRzPVsxXQor ICogICAgIEMyLnN0YXRlcyA9IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfV0KKyAqCisgKiAgICAg UGhhc2UgMiAoQWJzb3JiKToKKyAqICAgICAgIERvZXMgQzEgKHN0YXJ0ZWQgZWFybGllcikgY292 ZXIgQzI/CisgKiAgICAgICAgIEMxOiB7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfSwgQzI6IHtlbGVt SWR4PTAsIGNvdW50cz1bMV19CisgKiAgICAgICAgIFNhbWUgZWxlbUlkeCwgQzEuY291bnRzID49 IEMyLmNvdW50cyAtPiBjb3ZlcmVkCisgKiAgICAgICBDMiBhYnNvcmJlZC4gLT4gcmVtb3ZlZC4K KyAqCisgKiAgICAgUGhhc2UgMyAoQWR2YW5jZSk6CisgKiAgICAgICB7ZWxlbUlkeD0wLCBjb3Vu dHM9WzJdfTogR3JlZWR5IC0+IGxvb3AgKyBleGl0CisgKiAgICAgICAgIExvb3A6IHtlbGVtSWR4 PTAsIGNvdW50cz1bMl19CisgKiAgICAgICAgIEV4aXQ6IHJlc2V0IGNvdW50c1swXT0wLCBuZXh0 KD0xKSAtPiB7ZWxlbUlkeD0xLCBjb3VudHM9WzBdfQorICogICAgIEMxLnN0YXRlcyA9IFt7ZWxl bUlkeD0wLCBjb3VudHM9WzJdfSwge2VsZW1JZHg9MSwgY291bnRzPVswXX1dCisgKgorICogICBD b250ZXh0IEMzIGNyZWF0ZWQgKG1hdGNoU3RhcnRSb3c9MykuCisgKgorICogLS0tIFJvdyAzIChw cmljZT0xMTUpIC0tLQorICoKKyAqICAgbmZhX2V2YWx1YXRlX3JvdygzKToKKyAqICAgICBBOiAx MTUgPiBQUkVWKDEyMCkgLT4gZmFsc2UKKyAqICAgICBCOiAxMTUgPCBQUkVWKDEyMCkgLT4gdHJ1 ZQorICogICAgIHZhck1hdGNoZWQgPSBbZmFsc2UsIHRydWVdCisgKgorICogICBFeGVjUlBSUHJv Y2Vzc1JvdygzKToKKyAqICAgICBQaGFzZSAxIChNYXRjaCk6CisgKiAgICAgICB7ZWxlbUlkeD0w LCBjb3VudHM9WzJdfTogQSBkb2VzIG5vdCBtYXRjaCAtPiByZW1vdmVkCisgKiAgICAgICB7ZWxl bUlkeD0xLCBjb3VudHM9WzBdfTogQiBtYXRjaGVzIC0+IGNvdW50cz1bMV0KKyAqICAgICBDMS5z dGF0ZXMgPSBbe2VsZW1JZHg9MSwgY291bnRzPVsxXX1dCisgKgorICogICAgIFBoYXNlIDMgKEFk dmFuY2UpOgorICogICAgICAge2VsZW1JZHg9MSwgY291bnRzPVsxXX06IEIgKG1pbj0xLCBtYXg9 MSkKKyAqICAgICAgICAgY291bnQoMSkgPj0gbWF4KDEpIC0+IHVuY29uZGl0aW9uYWwgZXhpdAor ICogICAgICAgICBSZXNldCBjb3VudHNbMF09MCwgbmV4dCA9IDIgKEZJTikKKyAqICAgICAgIEZJ TiByZWFjaGVkIC0+IG1hdGNoRW5kUm93ID0gMywgbWF0Y2hlZFN0YXRlIHJlY29yZGVkLgorICog ICAgICAgRWFybHkgdGVybWluYXRpb246IG5vIHJlbWFpbmluZyBzdGF0ZXMsIHNvIGNvbXBsZXRl ZCBpbW1lZGlhdGVseS4KKyAqICAgICBDMS5zdGF0ZXMgPSBbXSAoZW1wdHkgYWZ0ZXIgcmVhY2hp bmcgRklOKQorICoKKyAqICAgQzEuc3RhdGVzIGlzIGVtcHR5IGFuZCBtYXRjaEVuZFJvdz0zID49 IG1hdGNoU3RhcnRSb3c9MSAtPiBtYXRjaCBzdWNjZWVkcy4KKyAqCisgKiAgIHJlZ2lzdGVyX3Jl ZHVjZWRfZnJhbWVfbWFwKDEsIFJGX0ZSQU1FX0hFQUQpCisgKiAgIHJlZ2lzdGVyX3JlZHVjZWRf ZnJhbWVfbWFwKDIsIFJGX1NLSVBQRUQpCisgKiAgIHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFw KDMsIFJGX1NLSVBQRUQpCisgKgorICogLS0tIFJvdyA0IChwcmljZT0xMzApIC0tLQorICoKKyAq ICAgdXBkYXRlX3JlZHVjZWRfZnJhbWUoNCkgY2FsbGVkLgorICogICBDMyB3YXMgYWxyZWFkeSBj cmVhdGVkIGJ1dCBtYXRjaFN0YXJ0Um93PTMsIHNvIGl0IGlzIG5vdCBhcHBsaWNhYmxlLgorICog ICBOZXcgY29udGV4dCBDNCBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTQpLgorICoKKyAqICAgbmZh X2V2YWx1YXRlX3Jvdyg0KToKKyAqICAgICBBOiAxMzAgPiBQUkVWKDExNSkgLT4gdHJ1ZQorICog ICAgIEI6IDEzMCA8IFBSRVYoMTE1KSAtPiBmYWxzZQorICoKKyAqICAgLi4uIE5vIHN1YnNlcXVl bnQgcm93cywgc28gRXhlY1JQUkZpbmFsaXplQWxsQ29udGV4dHMoKSBpcyBjYWxsZWQuCisgKiAg IE1hdGNoIGluY29tcGxldGUgLT4gUkZfVU5NQVRDSEVELgorICoKKyAqIFhJLTUuIEZpbmFsIFJl c3VsdAorICoKKyAqICAgUm93IDA6IFJGX1VOTUFUQ0hFRCAgLT4gZnJhbWUgPSB0aGUgcm93IGl0 c2VsZgorICogICBSb3cgMTogUkZfRlJBTUVfSEVBRCAtPiBmcmFtZSA9IHJvd3MgMSB0aHJvdWdo IDMKKyAqICAgUm93IDI6IFJGX1NLSVBQRUQgICAgLT4gaW5zaWRlIHJvdyAxJ3MgbWF0Y2gKKyAq ICAgUm93IDM6IFJGX1NLSVBQRUQgICAgLT4gaW5zaWRlIHJvdyAxJ3MgbWF0Y2gKKyAqICAgUm93 IDQ6IFJGX1VOTUFUQ0hFRCAgLT4gZnJhbWUgPSB0aGUgcm93IGl0c2VsZgorICoKKyAqIENoYXB0 ZXIgWElJICBTdW1tYXJ5IG9mIEtleSBEZXNpZ24gRGVjaXNpb25zCisgKiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisgKgorICogWElJLTEuIEZsYXQgQXJyYXkgdnMgVHJlZS1CYXNlZCBORkEKKyAqCisg KiAgIENob2ljZTogRmxhdCBhcnJheSAoUlBSUGF0dGVybkVsZW1lbnRbXSkKKyAqCisgKiAgIFJh dGlvbmFsZToKKyAqICAgLSBDYWNoZS1mcmllbmRseTogMTYtYnl0ZSBmaXhlZCBzaXplLCBjb250 aWd1b3VzIG1lbW9yeQorICogICAtIEluZGV4LWJhc2VkIHJlZmVyZW5jZXM6IDItYnl0ZSBpbmRp Y2VzIGluc3RlYWQgb2YgcG9pbnRlcnMKKyAqICAgLSBFYXN5IHRvIHNlcmlhbGl6ZTogY2FuIHVz ZSBtZW1jcHkgd2hlbiBwYXNzaW5nIHRvIHBsYW4gbm9kZXMKKyAqCisgKiBYSUktMi4gRm9yd2Fy ZC1vbmx5IEV4ZWN1dGlvbiB2cyBCYWNrdHJhY2tpbmcKKyAqCisgKiAgIENob2ljZTogRm9yd2Fy ZC1vbmx5IChzdGF0ZSBzZXQgdHJhY2tpbmcpCisgKgorICogICBSYXRpb25hbGU6CisgKiAgIC0g QmFja3RyYWNraW5nIHRha2VzIGV4cG9uZW50aWFsIHRpbWUgaW4gdGhlIHdvcnN0IGNhc2UKKyAq ICAgLSBORkEgc2ltdWxhdGlvbiBndWFyYW50ZWVzIHBvbHlub21pYWwgdGltZQorICogICAtIERG UyBvcmRlciBuYXR1cmFsbHkgZ3VhcmFudGVlcyBwcmVmZXJtZW50LgorICogICAgIEdyZWVkeS9y ZWx1Y3RhbnQgcGVyIHF1YW50aWZpZXIgcmVxdWlyZXMgb25seSByZXZlcnNpbmcgdGhlIERGUyBv cmRlcgorICogICAtIFdpbmRvdyBmdW5jdGlvbnMgcmVjZWl2ZSBzb3J0ZWQgcm93cyBzZXF1ZW50 aWFsbHkuCisgKiAgICAgRm9yd2FyZC1vbmx5IGZpdHMgZGlyZWN0bHkgaW50byB0aGlzIHBpcGVs aW5lLAorICogICAgIHdoZXJlYXMgYmFja3RyYWNraW5nIHJlcXVpcmVzIHJlLWZldGNoaW5nIHBy ZXZpb3VzIHJvd3MKKyAqICAgLSBERUZJTkUgY29uZGl0aW9ucyBhcmUgU1FMIGV4cHJlc3Npb25z IChQUkVWLCBSVU5OSU5HIGFnZ3JlZ2F0ZXMsIGV0Yy4pCisgKiAgICAgd2l0aCBoaWdoIHJlLWV2 YWx1YXRpb24gY29zdC4gRm9yd2FyZC1vbmx5IHJlcXVpcmVzIG9ubHkgb25lIGV2YWx1YXRpb24K KyAqICAgICBwZXIgcm93CisgKgorICogWElJLTMuIFBlci1Db250ZXh0IE1hbmFnZW1lbnQKKyAq CisgKiAgIENob2ljZTogSW5kZXBlbmRlbnQgY29udGV4dCBwZXIgc3RhcnQgcm93CisgKgorICog ICBSYXRpb25hbGU6CisgKiAgIC0gU3VwcG9ydHMgb3ZlcmxhcHBpbmcgbWF0Y2hlcyB1bmRlciBT S0lQIFRPIE5FWFQgUk9XCisgKiAgIC0gRGV0ZXJtaW5lcyB0aGUgZnJhbWUgZm9yIGVhY2ggcm93 IGluZGVwZW5kZW50bHkKKyAqICAgLSBBYnNvcnB0aW9uIG9wdGltaXphdGlvbiBjYW4gZWxpbWlu YXRlIHJlZHVuZGFudCBjb250ZXh0cyBpbiBPKG4pCisgKgorICogWElJLTQuIE1lbW9yeSBQb29s IE1hbmFnZW1lbnQKKyAqCisgKiAgIENob2ljZTogQ3VzdG9tIGZyZWUgbGlzdAorICoKKyAqICAg UmF0aW9uYWxlOgorICogICAtIE5GQSBzdGF0ZXMgYXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCBp biBsYXJnZSBudW1iZXJzIHBlciByb3cKKyAqICAgLSBBdm9pZHMgcGFsbG9jL3BmcmVlIG92ZXJo ZWFkCisgKiAgIC0gU3RhdGUgc2l6ZSBpcyB2YXJpYWJsZSAoY291bnRzW10gYXJyYXkpLCBidXQg d2l0aGluIGEgc2luZ2xlIHF1ZXJ5CisgKiAgICAgbWF4RGVwdGggaXMgZml4ZWQsIHNvIGFsbCBz dGF0ZXMgaGF2ZSB0aGUgc2FtZSBzaXplCisgKgorICogWElJLTUuIEV4ZWN1dGlvbiBPcHRpbWl6 YXRpb24gU3VtbWFyeQorICoKKyAqICAgVGhlIGZvbGxvd2luZyBvcHRpbWl6YXRpb25zIG1ha2Ug dGhlIE5GQSBzaW11bGF0aW9uIHByYWN0aWNhbC4KKyAqCisgKiAgIC0tIENvbXBpbGUtdGltZSAt LQorICoKKyAqICAgKDEpIEFTVCBPcHRpbWl6YXRpb24gKElWLTMpCisgKgorICogICAgIFNpbXBs aWZpZXMgdGhlIEFTVCBiZWZvcmUgY29udmVydGluZyB0aGUgcGF0dGVybiB0byBhbiBORkEuCisg KiAgICAgUmVkdWNlcyB0aGUgbnVtYmVyIG9mIE5GQSBlbGVtZW50cyB0aHJvdWdoIGNvbnNlY3V0 aXZlIHZhcmlhYmxlCisgKiAgICAgbWVyZ2luZyAoQSBBIC0+IEF7Mn0pLCBTRVEgZmxhdHRlbmlu ZywgcXVhbnRpZmllciBtdWx0aXBsaWNhdGlvbiwKKyAqICAgICBhbmQgb3RoZXIgdHJhbnNmb3Jt YXRpb25zLgorICoKKyAqICAgICBTaWduaWZpY2FuY2U6IFJlZHVjaW5nIHRoZSBlbGVtZW50IGNv dW50IGRpcmVjdGx5IHNocmlua3MgdGhlIHN0YXRlCisgKiAgICAgc3BhY2UsIGRlY3JlYXNpbmcg dGhlIGNvc3Qgb2YgYWxsIHN1YnNlcXVlbnQgcnVudGltZSBwaGFzZXMgKG1hdGNoLAorICogICAg IGFic29yYiwgYWR2YW5jZSkuCisgKgorICogICAtLSBSdW50aW1lOiBhZHZhbmNlIHBoYXNlIC0t CisgKgorICogICAoMikgR3JvdXAgU2tpcCAoSVgtNChiKSkKKyAqCisgKiAgICAgQXQgdGhlIEJF R0lOIG9mIGEgZ3JvdXAgd2l0aCBtaW49MCwgdXNlcyBqdW1wIHRvIHNraXAgdGhlIGVudGlyZQor ICogICAgIGdyb3VwLiBNb3ZlcyBkaXJlY3RseSB0byB0aGUgZmlyc3QgZWxlbWVudCBvdXRzaWRl IHRoZSBncm91cCB3aXRob3V0CisgKiAgICAgZXhwbG9yaW5nIHRoZSBncm91cCBib2R5LiBHcmVl ZHkgZW50ZXJzIHRoZW4gc2tpcHM7IFJlbHVjdGFudCBza2lwcworICogICAgIHRoZW4gZW50ZXJz LgorICoKKyAqICAgICBTaWduaWZpY2FuY2U6IEZvciBvcHRpb25hbCBncm91cHMgKG1pbj0wKSwg aW1tZWRpYXRlbHkgZ2VuZXJhdGVzCisgKiAgICAgYSBza2lwIHBhdGggd2l0aG91dCBleHBsb3Jp bmcgdGhlIGJvZHksIGF2b2lkaW5nIHVubmVjZXNzYXJ5IERGUworICogICAgIGV4cGFuc2lvbi4K KyAqCisgKiAgICgzKSBTdGF0ZSBEZWR1cGxpY2F0aW9uIChJWC01KQorICoKKyAqICAgICBEdXJp bmcgYWR2YW5jZSwgREZTIG1heSBnZW5lcmF0ZSBzdGF0ZXMgd2l0aCB0aGUgc2FtZSAoZWxlbUlk eCwKKyAqICAgICBjb3VudHMpIGNvbWJpbmF0aW9uIHRocm91Z2ggbXVsdGlwbGUgcGF0aHMuIEFk ZGl0aW9uYWxseSwgdW5saWtlCisgKiAgICAgVkFSIHJlcGV0aXRpb24sIGdyb3VwIHJlcGV0aXRp b24gY2Fubm90IHBlcmZvcm0gYWJzb3JwdGlvbgorICogICAgIGNvbXBhcmlzb24gdXNpbmcgVkFS IHN0YXRlcywgc28gaW5saW5lIGFkdmFuY2UgaXMgcGVyZm9ybWVkIGZyb20KKyAqICAgICBhZnRl ciBQaGFzZSAxIG1hdGNoIHRocm91Z2ggdG8gRU5EOyB0aGlzIHByb2Nlc3MgY2FuIGFsc28gcHJv ZHVjZQorICogICAgIGR1cGxpY2F0ZSBzdGF0ZXMgcmVhY2hpbmcgdGhlIHNhbWUgRU5ELgorICog ICAgIG5mYV9hZGRfc3RhdGVfdW5pcXVlKCkgYmxvY2tzIGR1cGxpY2F0ZSBhZGRpdGlvbiBvZiBp ZGVudGljYWwgc3RhdGVzCisgKiAgICAgaW4gYm90aCBjYXNlcy4KKyAqCisgKiAgICAgU2lnbmlm aWNhbmNlOiBQcmV2ZW50cyBleHBvbmVudGlhbCBncm93dGggb2YgdGhlIHN0YXRlIGNvdW50IGlu CisgKiAgICAgQUxUIGJyYW5jaGVzIGFuZCBxdWFudGlmaWVyIGV4cGFuc2lvbi4gU2luY2UgREZT IG9yZGVyIGNhdXNlcyB0aGUKKyAqICAgICBwcmVmZXJyZWQgYnJhbmNoJ3Mgc3RhdGUgdG8gYmUg cmVnaXN0ZXJlZCBmaXJzdCwgaWRlbnRpY2FsIHN0YXRlcworICogICAgIGZyb20gbG93ZXItcHJp b3JpdHkgYnJhbmNoZXMgYXJlIGF1dG9tYXRpY2FsbHkgZGlzY2FyZGVkLCB0aGVyZWJ5CisgKiAg ICAgYWxzbyBndWFyYW50ZWVpbmcgcHJlZmVybWVudC4KKyAqCisgKiAgICg0KSBDeWNsZSBEZXRl Y3Rpb24gYW5kIEZhc3QtRm9yd2FyZCAoSVgtNiwgSVgtNChjKSkKKyAqCisgKiAgICAgV2hlbiBh IG51bGxhYmxlIGdyb3VwIGJvZHkgKGUuZy4sIEE/KSByZXBlYXRzIGVtcHR5IG1hdGNoZXMsCisg KiAgICAgdGhlIEVORCAtPiBCRUdJTiBsb29wLWJhY2sgY2FuIGNvbnRpbnVlIGluZGVmaW5pdGVs eS4KKyAqCisgKiAgICAgVHdvIG1lY2hhbmlzbXMgcmVzb2x2ZSB0aGlzOgorICogICAgIC0gQSB2 aXNpdGVkIGJpdG1hcCAobmZhVmlzaXRlZEVsZW1zKSBibG9ja3MgcmV2aXNpdGF0aW9uIG9mIHRo ZQorICogICAgICAgc2FtZSBlbGVtZW50LCBwcmV2ZW50aW5nIGluZmluaXRlIGxvb3BzIChzYWZl dHkpCisgKiAgICAgLSBBdCBhbiBFTkQgd2l0aCB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFn IHNldCwgd2hlbgorICogICAgICAgY291bnQgPCBtaW4sIHRoZSByZW1haW5pbmcgcmVxdWlyZWQg aXRlcmF0aW9ucyBhcmUgdHJlYXRlZCBhcworICogICAgICAgZW1wdHkgbWF0Y2hlcyBhbmQgYSBm YXN0LWZvcndhcmQgZXhpdCBwYXRoIG91dCBvZiB0aGUgZ3JvdXAgaXMKKyAqICAgICAgIGFkZGVk IChjb3JyZWN0bmVzcykKKyAqCisgKiAgICAgU2lnbmlmaWNhbmNlOiBDeWNsZSBkZXRlY3Rpb24g Z3VhcmFudGVlcyB0ZXJtaW5hdGlvbiwgYW5kCisgKiAgICAgZmFzdC1mb3J3YXJkIGd1YXJhbnRl ZXMgdGhhdCB0aGUgbWluIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQuCisgKiAgICAgV2l0aG91dCB0 aGVzZSwgcGF0dGVybnMgY29udGFpbmluZyBudWxsYWJsZSBncm91cHMgd291bGQgZmFsbAorICog ICAgIGludG8gaW5maW5pdGUgbG9vcHMgb3IgZmFpbCB0byBtYXRjaC4KKyAqCisgKiAgICg1KSBN YXRjaCBQcnVuaW5nIChJWC00KGUpKQorICoKKyAqICAgICBXaGVuIGEgc3RhdGUgcmVhY2hlcyBG SU4gZHVyaW5nIGFkdmFuY2UsIGFsbCByZW1haW5pbmcgdW5wcm9jZXNzZWQKKyAqICAgICBzdGF0 ZXMgb2YgdGhhdCBjb250ZXh0IGFyZSByZW1vdmVkLiBCZWNhdXNlIG9mIERGUyBvcmRlciwgdGhl IHBhdGgKKyAqICAgICB0aGF0IHJlYWNoZXMgRklOIGZpcnN0IGhhcyB0aGUgaGlnaGVzdCBwcmVm ZXJtZW50LCBzbyB0aGUgcmVtYWluaW5nCisgKiAgICAgcGF0aHMgYXJlIGluZmVyaW9yLgorICoK KyAqICAgICBTaWduaWZpY2FuY2U6IE9uY2UgdGhlIGJlc3QgbWF0Y2ggaXMgZGV0ZXJtaW5lZCwg ZXhwbG9yYXRpb24gb2YKKyAqICAgICBpbmZlcmlvciBwYXRocyBpcyBpbW1lZGlhdGVseSB0ZXJt aW5hdGVkLiBUaGlzIG1lY2hhbmlzbSBhY2hpZXZlcworICogICAgIGJvdGggcHJlZmVybWVudCBn dWFyYW50ZWVzIGFuZCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uCisgKgorICogICAtLSBSdW50 aW1lOiBpbnRlci1jb250ZXh0IC0tCisgKgorICogICAoNikgRWFybHkgVGVybWluYXRpb24gKFNL SVAgUEFTVCBMQVNUIFJPVykKKyAqCisgKiAgICAgSW4gU0tJUCBQQVNUIExBU1QgUk9XIG1vZGUs IHdoZW4gYSBtYXRjaCBpcyBmb3VuZCwgc3Vic2VxdWVudAorICogICAgIGNvbnRleHRzIHdob3Nl IHN0YXJ0IHJvd3MgZmFsbCB3aXRoaW4gdGhlIG1hdGNoIHJhbmdlIGFyZSBwcnVuZWQKKyAqICAg ICBpbW1lZGlhdGVseSB3aXRob3V0IGZ1cnRoZXIgcHJvY2Vzc2luZy4KKyAqICAgICBJbiBTS0lQ IFRPIE5FWFQgUk9XIG1vZGUsIG92ZXJsYXBwaW5nIGNvbnRleHRzIGFyZSBwcmVzZXJ2ZWQKKyAq ICAgICBiZWNhdXNlIGVhY2ggcm93IHJlcXVpcmVzIGl0cyBvd24gaW5kZXBlbmRlbnQgbWF0Y2gu CisgKgorICogICAgIFNpZ25pZmljYW5jZTogUHJ1bmVzIHN1YnNlcXVlbnQgY29udGV4dHMgd2hv c2Ugc3RhcnQgcm93cyBvdmVybGFwCisgKiAgICAgd2l0aCBhIHByaW9yIG1hdGNoIHJhbmdlLCBh dm9pZGluZyB1bm5lY2Vzc2FyeSBwcm9jZXNzaW5nLgorICoKKyAqICAgKDcpIENvbnRleHQgQWJz b3JwdGlvbiAoQ2hhcHRlciBWSUlJKQorICoKKyAqICAgICBJZiBhbiBpbmRlcGVuZGVudCBjb250 ZXh0IGlzIGNyZWF0ZWQgZm9yIGVhY2ggcm93LCBPKG5eMikgc3RhdGVzCisgKiAgICAgYWNjdW11 bGF0ZS4gQnkgZXhwbG9pdGluZyB0aGUgbW9ub3RvbmljaXR5IHRoYXQgYW4gZWFybGllci1zdGFy dGVkCisgKiAgICAgY29udGV4dCBzdWJzdW1lcyB0aGUgc3RhdGVzIG9mIGEgbGF0ZXItc3RhcnRl ZCBjb250ZXh0LCByZWR1bmRhbnQKKyAqICAgICBjb250ZXh0cyBhcmUgZWxpbWluYXRlZCBlYXJs eS4KKyAqCisgKiAgICAgQWJzb3JiYWJpbGl0eSBpcyBkZXRlcm1pbmVkIHBlci1lbGVtZW50OyBj b21wYXJpc29uIGlzIHBlcmZvcm1lZAorICogICAgIG9ubHkgYXQgZWxlbWVudHMgd2l0aCB0aGUg UlBSX0VMRU1fQUJTT1JCQUJMRSBmbGFnIChzZWUgSVYtNSkuCisgKgorICogICAgIFNpZ25pZmlj YW5jZTogS2VlcHMgdGhlIG51bWJlciBvZiBhY3RpdmUgY29udGV4dHMgYXQgYSBjb25zdGFudAor ICogICAgIGxldmVsLCBhY2hpZXZpbmcgTyhuXjIpIC0+IE8obikgdGltZSBjb21wbGV4aXR5LiBX aXRob3V0IHRoaXMsCisgKiAgICAgcGVyZm9ybWFuY2UgZGVncmFkZXMgc2hhcnBseSBvbiBsb25n IHBhcnRpdGlvbnMuCisgKgorICogQXBwZW5kaXggQS4gS2V5IEZ1bmN0aW9uIEluZGV4CisgKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisgKgorICogICBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAg ICBGaWxlICAgICAgICAgICAgICAgICAgUm9sZQorICogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICog ICB0cmFuc2Zvcm1SUFIgICAgICAgICAgICAgICAgICBwYXJzZV9ycHIuYyAgICAgICAgICAgUGFy c2VyIGVudHJ5IHBvaW50CisgKiAgIHRyYW5zZm9ybURlZmluZUNsYXVzZSAgICAgICAgIHBhcnNl X3Jwci5jICAgICAgICAgICBERUZJTkUgdHJhbnNmb3JtYXRpb24KKyAqICAgY29sbGVjdFBhdHRl cm5WYXJpYWJsZXMgICAgICAgcnByLmMgICAgICAgICAgICAgICAgIFZhcmlhYmxlIGNvbGxlY3Rp b24KKyAqICAgZmlsdGVyRGVmaW5lQ2xhdXNlICAgICAgICAgICAgcnByLmMgICAgICAgICAgICAg ICAgIERFRklORSBmaWx0ZXJpbmcKKyAqICAgYnVpbGRSUFJQYXR0ZXJuICAgICAgICAgICAgICAg cnByLmMgICAgICAgICAgICAgICAgIE5GQSBjb21waWxhdGlvbiBtYWluCisgKiAgIG9wdGltaXpl UlBSUGF0dGVybiAgICAgICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBBU1Qgb3B0aW1pemF0 aW9uCisgKiAgIGZpbGxSUFJQYXR0ZXJuICAgICAgICAgICAgICAgIHJwci5jICAgICAgICAgICAg ICAgICBORkEgZWxlbWVudCBnZW5lcmF0aW9uCisgKiAgIGZpbmFsaXplUlBSUGF0dGVybiAgICAg ICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBGaW5hbGl6YXRpb24KKyAqICAgY29tcHV0ZUFi c29yYmFiaWxpdHkgICAgICAgICAgcnByLmMgICAgICAgICAgICAgICAgIEFic29ycHRpb24gYW5h bHlzaXMKKyAqICAgdXBkYXRlX3JlZHVjZWRfZnJhbWUgICAgICAgICAgbm9kZVdpbmRvd0FnZy5j ICAgICAgIEV4ZWN1dGlvbiBtYWluIGxvb3AKKyAqICAgbmZhX2V2YWx1YXRlX3JvdyAgICAgICAg ICAgICAgbm9kZVdpbmRvd0FnZy5jICAgICAgIERFRklORSBldmFsdWF0aW9uCisgKiAgIEV4ZWNS UFJTdGFydENvbnRleHQgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBDb250ZXh0IGNy ZWF0aW9uCisgKiAgIEV4ZWNSUFJQcm9jZXNzUm93ICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAg ICAgICAgICAzLXBoYXNlIHByb2Nlc3NpbmcKKyAqICAgbmZhX21hdGNoICAgICAgICAgICAgICAg ICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIFBoYXNlIDEKKyAqICAgbmZhX2Fic29yYl9jb250 ZXh0cyAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIFBoYXNlIDIKKyAqICAgbmZhX2Fk dmFuY2UgICAgICAgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIFBoYXNlIDMKKyAq ICAgbmZhX2FkdmFuY2Vfc3RhdGUgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIFBl ci1zdGF0ZSBicmFuY2hpbmcKKyAqICAgbmZhX3JvdXRlX3RvX2VsZW0gICAgICAgICAgICAgZXhl Y1JQUi5jICAgICAgICAgICAgIEVsZW1lbnQgcm91dGluZworICogICBuZmFfYWR2YW5jZV9hbHQg ICAgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgQUxUIGhhbmRsaW5nCisgKiAgIG5m YV9hZHZhbmNlX2JlZ2luICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBCRUdJTiBo YW5kbGluZworICogICBuZmFfYWR2YW5jZV9lbmQgICAgICAgICAgICAgICBleGVjUlBSLmMgICAg ICAgICAgICAgRU5EIGhhbmRsaW5nCisgKiAgIG5mYV9hZHZhbmNlX3ZhciAgICAgICAgICAgICAg IGV4ZWNSUFIuYyAgICAgICAgICAgICBWQVIgaGFuZGxpbmcKKyAqICAgbmZhX2FkZF9zdGF0ZV91 bmlxdWUgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIERlZHVwbGljYXRpb24KKyAqICAg bmZhX3N0YXRlc19jb3ZlcmVkICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIEFic29y cHRpb24gY2hlY2sKKyAqCisgKiBBcHBlbmRpeCBCLiBEYXRhIFN0cnVjdHVyZSBSZWxhdGlvbnNo aXAgRGlhZ3JhbQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqICAgUGFyc2VyIExheWVy CisgKiAgIC0tLS0tLS0tCisgKiAgIFJQQ29tbW9uU3ludGF4CisgKiAgICAgfC0tLSBycFNraXBU bzogUlBTa2lwVG8KKyAqICAgICB8LS0tIGluaXRpYWw6IGJvb2wKKyAqICAgICArLS0tIHJwUGF0 dGVybjogUlBSUGF0dGVybk5vZGUqICh0cmVlKQorICogICAgICAgICAgfC0tLSBub2RlVHlwZTog VkFSIHwgU0VRIHwgQUxUIHwgR1JPVVAKKyAqICAgICAgICAgIHwtLS0gbWluLCBtYXg6IHF1YW50 aWZpZXIKKyAqICAgICAgICAgIHwtLS0gdmFyTmFtZTogdmFyaWFibGUgbmFtZSAoVkFSIG9ubHkp CisgKiAgICAgICAgICArLS0tIGNoaWxkcmVuOiBMaXN0KiAoU0VRL0FMVC9HUk9VUCBvbmx5KQor ICoKKyAqICAgUGxhbm5lciBMYXllcgorICogICAtLS0tLS0tLS0tCisgKiAgIFdpbmRvd0FnZyAo cGxhbiBub2RlKQorICogICAgIHwtLS0gcnBTa2lwVG86IFJQU2tpcFRvCisgKiAgICAgfC0tLSBk ZWZpbmVDbGF1c2U6IExpc3Q8VGFyZ2V0RW50cnk+CisgKiAgICAgKy0tLSBycFBhdHRlcm46IFJQ UlBhdHRlcm4qCisgKiAgICAgICAgICB8LS0tIG51bVZhcnM6IGludAorICogICAgICAgICAgfC0t LSB2YXJOYW1lczogY2hhcioqCisgKiAgICAgICAgICB8LS0tIG1heERlcHRoOiBSUFJEZXB0aAor ICogICAgICAgICAgfC0tLSBpc0Fic29yYmFibGU6IGJvb2wKKyAqICAgICAgICAgIHwtLS0gbnVt RWxlbWVudHM6IGludAorICogICAgICAgICAgKy0tLSBlbGVtZW50czogUlBSUGF0dGVybkVsZW1l bnRbXSAgKGZsYXQgYXJyYXkpCisgKiAgICAgICAgICAgICAgIHwtLS0gdmFySWQgICAgICAoMUIp CisgKiAgICAgICAgICAgICAgIHwtLS0gZGVwdGggICAgICAoMUIpCisgKiAgICAgICAgICAgICAg IHwtLS0gZmxhZ3MgICAgICAoMUIpCisgKiAgICAgICAgICAgICAgIHwtLS0gcmVzZXJ2ZWQgICAo MUIpCisgKiAgICAgICAgICAgICAgIHwtLS0gbWluLCBtYXggICAoNEIgKyA0QikKKyAqICAgICAg ICAgICAgICAgKy0tLSBuZXh0LCBqdW1wICgyQiArIDJCKQorICoKKyAqICAgRXhlY3V0b3IgTGF5 ZXIKKyAqICAgLS0tLS0tLS0tLQorICogICBXaW5kb3dBZ2dTdGF0ZQorICogICAgIHwtLS0gcnBT a2lwVG86IFJQU2tpcFRvIChBRlRFUiBNQVRDSCBTS0lQIG1vZGUpCisgKiAgICAgfC0tLSBycFBh dHRlcm46IFJQUlBhdHRlcm4qIChjb3BpZWQgZnJvbSBwbGFuKQorICogICAgIHwtLS0gZGVmaW5l VmFyaWFibGVMaXN0OiBMaXN0PFN0cmluZz4gKHZhcmlhYmxlIG5hbWVzLCBERUZJTkUgb3JkZXIp CisgKiAgICAgfC0tLSBkZWZpbmVDbGF1c2VMaXN0OiBMaXN0PEV4cHJTdGF0ZT4KKyAqICAgICB8 LS0tIG5mYVZhck1hdGNoZWQ6IGJvb2xbXSAocGVyLXJvdyBjYWNoZSkKKyAqICAgICB8LS0tIG5m YVZpc2l0ZWRFbGVtczogYml0bWFwd29yZCogKGN5Y2xlIGRldGVjdGlvbikKKyAqICAgICB8LS0t IG5mYVN0YXRlU2l6ZTogU2l6ZSAocHJlLWNhbGN1bGF0ZWQgUlBSTkZBU3RhdGUgYWxsb2NhdGlv biBzaXplKQorICogICAgIHwtLS0gbmZhQ29udGV4dCA8LT4gbmZhQ29udGV4dFRhaWwgKGRvdWJs eS1saW5rZWQgbGlzdCkKKyAqICAgICB8ICAgKy0tLSBSUFJORkFDb250ZXh0CisgKiAgICAgfCAg ICAgICB8LS0tIHN0YXRlczogUlBSTkZBU3RhdGUqIChsaW5rZWQgbGlzdCkKKyAqICAgICB8ICAg ICAgIHwgICB8LS0tIGVsZW1JZHgKKyAqICAgICB8ICAgICAgIHwgICB8LS0tIGNvdW50c1tdCisg KiAgICAgfCAgICAgICB8ICAgKy0tLSBpc0Fic29yYmFibGUKKyAqICAgICB8ICAgICAgIHwtLS0g bWF0Y2hTdGFydFJvdywgbWF0Y2hFbmRSb3cKKyAqICAgICB8ICAgICAgIHwtLS0gbGFzdFByb2Nl c3NlZFJvdworICogICAgIHwgICAgICAgfC0tLSBtYXRjaGVkU3RhdGUgKGNsb25lZCBvbiBGSU4g YXJyaXZhbCkKKyAqICAgICB8ICAgICAgIHwtLS0gaGFzQWJzb3JiYWJsZVN0YXRlCisgKiAgICAg fCAgICAgICArLS0tIGFsbFN0YXRlc0Fic29yYmFibGUKKyAqICAgICB8LS0tIG5mYUNvbnRleHRG cmVlIChyZWN5Y2xpbmcgcG9vbCkKKyAqICAgICArLS0tIG5mYVN0YXRlRnJlZSAocmVjeWNsaW5n IHBvb2wpCisgKgorICogQXBwZW5kaXggQy4gTkZBIEVsZW1lbnQgQXJyYXkgRXhhbXBsZXMKKyAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBDLTEuIFBBVFRFUk4gKEEgQiBDKQorICoKKyAq ICAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBqdW1wCisgKiAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgMCAgIEEgICAgICAwICAg ICAgMSAgICAxICAgIDEgICAgIC0xCisgKiAgICAxICAgQiAgICAgIDAgICAgICAxICAgIDEgICAg MiAgICAgLTEKKyAqICAgIDIgICBDICAgICAgMCAgICAgIDEgICAgMSAgICAzICAgICAtMQorICog ICAgMyAgIEZJTiAgICAwICAgICAgMSAgICAxICAgIC0xICAgIC0xCisgKgorICogQy0yLiBQQVRU RVJOIChBKyBCKikKKyAqCisgKiAgIGlkeCAgdmFySWQgIGRlcHRoICBtaW4gIG1heCAgbmV4dCAg anVtcCAgZmxhZ3MKKyAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgICAwICAgQSAgICAgIDAgICAg ICAxICAgIElORiAgMSAgICAgLTEgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNICisg KiAgICAxICAgQiAgICAgIDAgICAgICAwICAgIElORiAgMiAgICAgLTEKKyAqICAgIDIgICBGSU4g ICAgMCAgICAgIDEgICAgMSAgICAtMSAgICAtMQorICoKKyAqICAgT25seSBBKyBpcyB0aGUgYWJz b3JwdGlvbiBwb2ludCAoQ2FzZSAxKS4gT25jZSBwYXN0IEEsCisgKiAgIGFic29ycHRpb24gaXMg cGVybWFuZW50bHkgZGlzYWJsZWQgZm9yIHRoYXQgc3RhdGUuCisgKgorICogQy0zLiBQQVRURVJO IChBIHwgQiB8IEMpCisgKgorICogICBpZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5leHQg IGp1bXAKKyAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICog ICAgMCAgIEFMVCAgICAwICAgICAgMSAgICAxICAgIDEgICAgIC0xICAgIGFsdGVybmF0aW9uIHN0 YXJ0CisgKiAgICAxICAgQSAgICAgIDEgICAgICAxICAgIDEgICAgNCAgICAgMiAgICAgYnJhbmNo IDEgLT4gRklOLCBqdW1wIC0+IGJyYW5jaCAyCisgKiAgICAyICAgQiAgICAgIDEgICAgICAxICAg IDEgICAgNCAgICAgMyAgICAgYnJhbmNoIDIgLT4gRklOLCBqdW1wIC0+IGJyYW5jaCAzCisgKiAg ICAzICAgQyAgICAgIDEgICAgICAxICAgIDEgICAgNCAgICAgLTEgICAgYnJhbmNoIDMgLT4gRklO CisgKiAgICA0ICAgRklOICAgIDAgICAgICAxICAgIDEgICAgLTEgICAgLTEKKyAqCisgKiBDLTQu IFBBVFRFUk4gKChBIEIpKyBDKQorICoKKyAqICAgaWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBt YXggIG5leHQgIGp1bXAgIGZsYWdzCisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgICAwICAg QkVHSU4gICAgMCAgICAgIDEgICAgSU5GICAxICAgICA0ICAgICBBQlNPUkJBQkxFX0JSQU5DSAor ICogICAgMSAgIEEgICAgICAgIDEgICAgICAxICAgIDEgICAgMiAgICAgLTEgICAgQUJTT1JCQUJM RV9CUkFOQ0gKKyAqICAgIDIgICBCICAgICAgICAxICAgICAgMSAgICAxICAgIDMgICAgIC0xICAg IEFCU09SQkFCTEVfQlJBTkNICisgKiAgICAzICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICA0 ICAgICAxICAgICBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0gKKyAqICAgIDQgICBDICAg ICAgICAwICAgICAgMSAgICAxICAgIDUgICAgIC0xCisgKiAgICA1ICAgRklOICAgICAgMCAgICAg IDEgICAgMSAgICAtMSAgICAtMQorICoKKyAqICAgQ2FzZSAyOiBHUk9VUCsgd2l0aCB7MSwxfSBi b2R5IFZBUnMuIEEsIEIgYXJlIGJyYW5jaGVzOworICogICBFTkQgaXMgdGhlIGFic29ycHRpb24g cG9pbnQuIENvbXBhcmUgd2l0aCBDLTYgKENhc2UgMykuCisgKgorICogQy01LiBQQVRURVJOICgo QSB8IEIpKz8gQykKKyAqCisgKiAgIGlkeCAgdmFySWQgICAgZGVwdGggIG1pbiAgbWF4ICAgbmV4 dCAganVtcCAgZmxhZ3MKKyAqICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgMCAgIEJFR0lOICAgIDAgICAg ICAxICAgIElORiAgIDEgICAgIDUgICAgIFJFTFVDVEFOVCwgZ3JvdXAgc3RhcnQKKyAqICAgIDEg ICBBTFQgICAgICAxICAgICAgMSAgICAxICAgICAyICAgICAtMSAgICBhbHRlcm5hdGlvbiBzdGFy dAorICogICAgMiAgIEEgICAgICAgIDIgICAgICAxICAgIDEgICAgIDQgICAgIDMgICAgIGJyYW5j aCAxCisgKiAgICAzICAgQiAgICAgICAgMiAgICAgIDEgICAgMSAgICAgNCAgICAgLTEgICAgYnJh bmNoIDIKKyAqICAgIDQgICBFTkQgICAgICAwICAgICAgMSAgICBJTkYgICA1ICAgICAxICAgICBS RUxVQ1RBTlQsIGdyb3VwIGVuZAorICogICAgNSAgIEMgICAgICAgIDAgICAgICAxICAgIDEgICAg IDYgICAgIC0xCisgKiAgICA2ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAgICAgLTEgICAgLTEK KyAqCisgKiBDLTYuIFBBVFRFUk4gKChBKyBCKSsgQykgIC0tIEFic29yYmFiaWxpdHkgZmxhZyBl eGFtcGxlCisgKgorICogICBpZHggIHZhcklkICAgIGRlcHRoICBtaW4gIG1heCAgIG5leHQgIGp1 bXAgIGZsYWdzCisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgMCAgIEJFR0lOICAgIDAg ICAgICAxICAgIElORiAgIDEgICAgIDQgICAgIEFCU09SQkFCTEVfQlJBTkNILCBncm91cCBzdGFy dAorICogICAgMSAgIEEgICAgICAgIDEgICAgICAxICAgIElORiAgIDIgICAgIC0xICAgIEFCU09S QkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSAorICogICAgMiAgIEIgICAgICAgIDEgICAgICAxICAg IDEgICAgIDMgICAgIC0xCisgKiAgICAzICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICAgNCAg ICAgMSAgICAgZ3JvdXAgZW5kCisgKiAgICA0ICAgQyAgICAgICAgMCAgICAgIDEgICAgMSAgICAg NSAgICAgLTEKKyAqICAgIDUgICBGSU4gICAgICAwICAgICAgMSAgICAxICAgICAtMSAgICAtMQor ICoKKyAqICAgUmVjdXJzZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5IC0+IEEgbWF0Y2hlcyBD YXNlIDEgKHNpbXBsZSBWQVIrKS4KKyAqICAgQSBnZXRzIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxF X0JSQU5DSCwgQkVHSU4gZ2V0cyBBQlNPUkJBQkxFX0JSQU5DSC4KKyAqICAgQiBhbmQgRU5EIGdl dCBubyBmbGFncyAtPiBhYnNvcnB0aW9uIHN0b3BzIG9uY2UgdGhlIHN0YXRlIGFkdmFuY2VzIHRv IEIuCisgKiAgIChTZWUgSVYtNSBDYXNlIDMpCisgKgorICogQy03LiBQQVRURVJOICgoQSsgQiB8 IEMqKSsgRCkgIC0tIFBlci1icmFuY2ggYWJzb3JwdGlvbiBpbiBBTFQKKyAqCisgKiAgIGlkeCAg dmFySWQgICAgZGVwdGggIG1pbiAgbWF4ICAgbmV4dCAganVtcCAgZmxhZ3MKKyAqICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKiAgICAwICAgQkVHSU4gICAgMCAgICAgIDEgICAgSU5GICAgMSAgICAg NiAgICAgQUJTT1JCQUJMRV9CUkFOQ0gKKyAqICAgIDEgICBBTFQgICAgICAxICAgICAgMSAgICAx ICAgICAyICAgICAtMSAgICBBQlNPUkJBQkxFX0JSQU5DSAorICogICAgMiAgIEEgICAgICAgIDIg ICAgICAxICAgIElORiAgIDMgICAgIDQgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5D SAorICogICAgMyAgIEIgICAgICAgIDIgICAgICAxICAgIDEgICAgIDUgICAgIC0xCisgKiAgICA0 ICAgQyAgICAgICAgMiAgICAgIDAgICAgSU5GICAgNSAgICAgLTEgICAgQUJTT1JCQUJMRSB8IEFC U09SQkFCTEVfQlJBTkNICisgKiAgICA1ICAgRU5EICAgICAgMCAgICAgIDEgICAgSU5GICAgNiAg ICAgMSAgICAgRU1QVFlfTE9PUAorICogICAgNiAgIEQgICAgICAgIDAgICAgICAxICAgIDEgICAg IDcgICAgIC0xCisgKiAgICA3ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAgICAgLTEgICAgLTEK KyAqCisgKiAgIEFMVCBicmFuY2hlcyBhcmUgY2hlY2tlZCBpbmRlcGVuZGVudGx5IGZvciBhYnNv cmJhYmlsaXR5LgorICogICBCcmFuY2ggMTogQSsgbWF0Y2hlcyBDYXNlIDEgLT4gQSBnZXRzIEFC U09SQkFCTEUuIEIgaGFzIG5vIGZsYWcuCisgKiAgIEJyYW5jaCAyOiBDKiBtYXRjaGVzIENhc2Ug MSAtPiBDIGdldHMgQUJTT1JCQUJMRS4KKyAqICAgQm90aCBBIGFuZCBDIGdldCBBQlNPUkJBQkxF X0JSQU5DSCBhcyBwYXJ0IG9mIHRoZWlyIHJlc3BlY3RpdmUgYnJhbmNoCisgKiAgIHBhdGhzLgor ICogICBFTkQgaGFzIEVNUFRZX0xPT1A6IGJyYW5jaCAyIChDKikgaXMgbnVsbGFibGUsIG1ha2lu ZyB0aGUgZ3JvdXAgYm9keQorICogICBudWxsYWJsZS4KKyAqICAgQkVHSU4gYW5kIEFMVCBnZXQg QUJTT1JCQUJMRV9CUkFOQ0ggKG9uIHRoZSBwYXRoIHRvIGFic29yYmFibGUgZWxlbWVudHMpLgor ICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgRW5kIG9mIGRvY3VtZW50CisgKiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisgKi8KKworLyogQml0bWFwIG1hY3JvcyBmb3IgTkZBIGN5Y2xlIGRl dGVjdGlvbiAoY2YuIGJpdG1hcHNldC5jLCB0aWRiaXRtYXAuYykgKi8KKyNkZWZpbmUgV09SRE5V TSh4KQkoKHgpIC8gQklUU19QRVJfQklUTUFQV09SRCkKKyNkZWZpbmUgQklUTlVNKHgpCSgoeCkg JSBCSVRTX1BFUl9CSVRNQVBXT1JEKQorCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAtIE5GQSBz dGF0ZSBtYW5hZ2VtZW50ICovCitzdGF0aWMgUlBSTkZBU3RhdGUgKm5mYV9zdGF0ZV9hbGxvYyhX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOworc3RhdGljIHZvaWQgbmZhX3N0YXRlX2ZyZWUoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqc3RhdGUpOworc3RhdGljIHZvaWQg bmZhX3N0YXRlX2ZyZWVfbGlzdChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0YXRl ICpsaXN0KTsKK3N0YXRpYyBSUFJORkFTdGF0ZSAqbmZhX3N0YXRlX2NyZWF0ZShXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgsCisJCQkJCQkJCQkgaW50MzIgKmNvdW50cywg Ym9vbCBzb3VyY2VBYnNvcmJhYmxlKTsKK3N0YXRpYyBib29sIG5mYV9zdGF0ZXNfZXF1YWwoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqczEsCisJCQkJCQkJIFJQUk5GQVN0 YXRlICpzMik7CitzdGF0aWMgYm9vbCBuZmFfYWRkX3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQkJCQkJIFJQUk5GQVN0YXRlICpz dGF0ZSk7CitzdGF0aWMgdm9pZCBuZmFfYWRkX21hdGNoZWRfc3RhdGUoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJCQkJCSAgUlBSTkZBU3RhdGUgKnN0 YXRlLCBpbnQ2NCBtYXRjaEVuZFJvdyk7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZB IGNvbnRleHQgbWFuYWdlbWVudCAoaW50ZXJuYWwpICovCitzdGF0aWMgUlBSTkZBQ29udGV4dCAq bmZhX2NvbnRleHRfYWxsb2MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKK3N0YXRpYyB2b2lk IG5mYV91bmxpbmtfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRl eHQgKmN0eCk7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHN0YXRpc3RpY3MgKi8K K3N0YXRpYyB2b2lkIG5mYV91cGRhdGVfbGVuZ3RoX3N0YXRzKGludDY0IGNvdW50LCBORkFMZW5n dGhTdGF0cyAqc3RhdHMsIGludDY0IG5ld0xlbik7CitzdGF0aWMgdm9pZCBuZmFfcmVjb3JkX2Nv bnRleHRfc2tpcHBlZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHNraXBwZWRMZW4p Oworc3RhdGljIHZvaWQgbmZhX3JlY29yZF9jb250ZXh0X2Fic29yYmVkKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgaW50NjQgYWJzb3JiZWRMZW4pOworCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9u cyAtIE5GQSBhYnNvcnB0aW9uICovCitzdGF0aWMgdm9pZCBuZmFfdXBkYXRlX2Fic29ycHRpb25f ZmxhZ3MoUlBSTkZBQ29udGV4dCAqY3R4KTsKK3N0YXRpYyBib29sIG5mYV9zdGF0ZXNfY292ZXJl ZChSUFJQYXR0ZXJuICpwYXR0ZXJuLCBSUFJORkFDb250ZXh0ICpvbGRlciwKKwkJCQkJCQkgICBS UFJORkFDb250ZXh0ICpuZXdlcik7CitzdGF0aWMgdm9pZCBuZmFfdHJ5X2Fic29yYl9jb250ZXh0 KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4KTsKK3N0YXRpYyB2 b2lkIG5mYV9hYnNvcmJfY29udGV4dHMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKKworLyog Rm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgbWF0Y2ggYW5kIGFkdmFuY2UgKi8KK3N0YXRpYyBi b29sIG5mYV9ldmFsX3Zhcl9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsCisJCQkJCQkJ ICAgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sIGJvb2wgKnZhck1hdGNoZWQpOworc3RhdGljIHZv aWQgbmZhX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4 LAorCQkJCQkgIGJvb2wgKnZhck1hdGNoZWQpOworc3RhdGljIHZvaWQgbmZhX2FkdmFuY2Vfc3Rh dGUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJCQkJ ICBSUFJORkFTdGF0ZSAqc3RhdGUsIGludDY0IGN1cnJlbnRQb3MpOworc3RhdGljIHZvaWQgbmZh X3JvdXRlX3RvX2VsZW0oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpj dHgsCisJCQkJCQkJICBSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICpuZXh0 RWxlbSwKKwkJCQkJCQkgIGludDY0IGN1cnJlbnRQb3MpOworc3RhdGljIHZvaWQgbmZhX2FkdmFu Y2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJ CQkJCVJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCisJCQkJCQkJ aW50NjQgY3VycmVudFBvcyk7CitzdGF0aWMgdm9pZCBuZmFfYWR2YW5jZV9iZWdpbihXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQkJCQkgIFJQUk5GQVN0 YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCisJCQkJCQkJICBpbnQ2NCBjdXJy ZW50UG9zKTsKK3N0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX2VuZChXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQkJCQlSUFJORkFTdGF0ZSAqc3RhdGUsIFJQ UlBhdHRlcm5FbGVtZW50ICplbGVtLAorCQkJCQkJCWludDY0IGN1cnJlbnRQb3MpOworc3RhdGlj IHZvaWQgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29u dGV4dCAqY3R4LAorCQkJCQkJCVJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQg KmVsZW0sCisJCQkJCQkJaW50NjQgY3VycmVudFBvcyk7CitzdGF0aWMgdm9pZCBuZmFfYWR2YW5j ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQkJCWlu dDY0IGN1cnJlbnRQb3MpOworCisvKgorICogTkZBLWJhc2VkIHBhdHRlcm4gbWF0Y2hpbmcgaW1w bGVtZW50YXRpb24KKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgaW1wbGVtZW50IGRpcmVjdCBORkEg ZXhlY3V0aW9uIHVzaW5nIHRoZSBjb21waWxlZAorICogUlBSUGF0dGVybiBzdHJ1Y3R1cmUsIGF2 b2lkaW5nIHJlZ2V4IGNvbXBpbGF0aW9uIG92ZXJoZWFkLgorICoKKyAqIEV4ZWN1dGlvbiBGbG93 OiBtYXRjaCAtPiBhYnNvcmIgLT4gYWR2YW5jZQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRoZSBORkEgZXhlY3V0aW9uIGZvbGxvd3MgYSB0aHJlZS1w aGFzZSBjeWNsZSBmb3IgZWFjaCByb3c6CisgKgorICogMS4gTUFUQ0ggKGNvbnZlcmdlbmNlKTog RXZhbHVhdGUgYWxsIHdhaXRpbmcgc3RhdGVzIGFnYWluc3QgY3VycmVudCByb3cuCisgKiAgICBT dGF0ZXMgb24gVkFSIGVsZW1lbnRzIGFyZSBjaGVja2VkIGFnYWluc3QgdGhlaXIgZGVmaW5pbmcg Y29uZGl0aW9ucy4KKyAqICAgIEZhaWxlZCBtYXRjaGVzIGFyZSByZW1vdmVkLCBzdWNjZXNzZnVs IG9uZXMgbWF5IHRyYW5zaXRpb24gZm9yd2FyZC4KKyAqICAgIFRoaXMgaXMgYSAiY29udmVyZ2Vu Y2UiIHBoYXNlIC0gdGhlIG51bWJlciBvZiBzdGF0ZXMgdGVuZHMgdG8gZGVjcmVhc2UuCisgKgor ICogMi4gQUJTT1JCOiBBZnRlciBtYXRjaGluZywgY2hlY2sgaWYgYW55IGNvbnRleHQgY2FuIGFi c29yYiBhbm90aGVyLgorICogICAgQ29udGV4dCBhYnNvcnB0aW9uIGlzIGFuIG9wdGltaXphdGlv biB0aGF0IG1lcmdlcyBlcXVpdmFsZW50IGNvbnRleHRzLgorICogICAgQSBjb250ZXh0IGNhbiBv bmx5IGJlIGFic29yYmVkIGlmIEFMTCBpdHMgc3RhdGVzIGFyZSBhYnNvcmJhYmxlLgorICoKKyAq IDMuIEFEVkFOQ0UgKGRpdmVyZ2VuY2UpOiBFeHBhbmQgc3RhdGVzIHRocm91Z2ggZXBzaWxvbiB0 cmFuc2l0aW9ucy4KKyAqICAgIFN0YXRlcyBhZHZhbmNlIHRocm91Z2ggQUxUIChhbHRlcm5hdGlv biksIEVORCAoZ3JvdXAgZW5kKSwgYW5kCisgKiAgICBvcHRpb25hbCBlbGVtZW50cyB1bnRpbCBy ZWFjaGluZyBWQVIgb3IgRklOIGVsZW1lbnRzIHdoZXJlIHRoZXkgd2FpdC4KKyAqICAgIFRoaXMg aXMgYSAiZGl2ZXJnZW5jZSIgcGhhc2UgLSBBTFQgY3JlYXRlcyBtdWx0aXBsZSBicmFuY2ggc3Rh dGVzLgorICoKKyAqIEtleSBEZXNpZ24gRGVjaXNpb25zOgorICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKiAtIFZBUi0+RU5EIHRyYW5zaXRpb24gaW4gbWF0Y2ggcGhhc2U6IFdoZW4gYSBzaW1w bGUgVkFSIChtYXg9MSkgbWF0Y2hlcworICogICBhbmQgdGhlIG5leHQgZWxlbWVudCBpcyBFTkQs IHdlIHRyYW5zaXRpb24gaW1tZWRpYXRlbHkgaW4gdGhlIG1hdGNoCisgKiAgIHBoYXNlIHJhdGhl ciB0aGFuIHdhaXRpbmcgZm9yIGFkdmFuY2UuIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0 CisgKiAgIGFic29ycHRpb246IHN0YXRlcyBtdXN0IGJlIGF0IEVORCB0byBiZSBtYXJrZWQgYWJz b3JiYWJsZSBiZWZvcmUgdGhlCisgKiAgIGFic29ycHRpb24gY2hlY2sgb2NjdXJzLgorICoKKyAq IC0gT3B0aW9uYWwgVkFSIHNraXAgcGF0aHM6IFdoZW4gYWR2YW5jZSBsYW5kcyBvbiBhIFZBUiB3 aXRoIG1pbj0wLAorICogICB3ZSBjcmVhdGUgYm90aCBhIHdhaXRpbmcgc3RhdGUgQU5EIGEgc2tp cCBzdGF0ZSAobGlrZSBBTFQgYnJhbmNoZXMpLgorICogICBUaGlzIGVuc3VyZXMgcGF0dGVybnMg bGlrZSAiQSBCPyBDIiB3b3JrIGNvcnJlY3RseSAtIHdlIG5lZWQgYSBzdGF0ZQorICogICB3YWl0 aW5nIGZvciBCIEFORCBhIHN0YXRlIHRoYXQgaGFzIGFscmVhZHkgc2tpcHBlZCB0byBDLgorICoK KyAqIC0gRU5ELT5FTkQgY291bnQgaW5jcmVtZW50OiBXaGVuIHRyYW5zaXRpb25pbmcgZnJvbSBv bmUgRU5EIHRvIGFub3RoZXIKKyAqICAgRU5EIHdpdGhpbiBhZHZhbmNlLCB3ZSBtdXN0IGluY3Jl bWVudCB0aGUgb3V0ZXIgRU5EJ3MgY291bnQuIFRoaXMKKyAqICAgaGFuZGxlcyBuZXN0ZWQgZ3Jv dXBzIGxpa2UgIigoQXxCKSspKyIgY29ycmVjdGx5IC0gZXhpdGluZyB0aGUgaW5uZXIKKyAqICAg Z3JvdXAgY291bnRzIGFzIG9uZSBpdGVyYXRpb24gb2YgdGhlIG91dGVyIGdyb3VwLgorICoKKyAq IC0gRW1wdHkgbWF0Y2ggaGFuZGxpbmc6IFRoZSBpbml0aWFsIGFkdmFuY2UgdXNlcyBjdXJyZW50 UG9zID0KKyAqICAgc3RhcnRQb3MgLSAxIChiZWZvcmUgYW55IHJvdyBpcyBjb25zdW1lZCkuIElm IEZJTiBpcyByZWFjaGVkIHZpYQorICogICBlcHNpbG9uIHRyYW5zaXRpb25zIGFsb25lLCBtYXRj aEVuZFJvdyA9IHN0YXJ0UG9zIC0gMSA8IG1hdGNoU3RhcnRSb3csCisgKiAgIHJlc3VsdGluZyBp biBVTk1BVENIRUQuIEZvciByZWx1Y3RhbnQgbWluPTAgcGF0dGVybnMgKEEqPywgQT8/KSwKKyAq ICAgdGhlIHNraXAgcGF0aCByZWFjaGVzIEZJTiBmaXJzdCBhbmQgZWFybHkgdGVybWluYXRpb24g cHJ1bmVzIGVudGVyCisgKiAgIHBhdGhzLCB5aWVsZGluZyBhbiBpbW1lZGlhdGUgZW1wdHkgKHVu bWF0Y2hlZCkgcmVzdWx0LiBGb3IKKyAqICAgZ3JlZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRl ciBwYXRoIGFkZHMgVkFSIHN0YXRlcyBmaXJzdCwgdGhlbgorICogICB0aGUgc2tpcCBGSU4gaXMg cmVjb3JkZWQgYnV0IFZBUiBzdGF0ZXMgc3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCisgKgor ICogQ29udGV4dCBBYnNvcnB0aW9uIFJ1bnRpbWU6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqIEFic29ycHRpb24gdXNlcyBmbGFncyBjb21wdXRlZCBhdCBwbGFubmluZyB0aW1l IChpbiBycHIuYykgYW5kIHR3bworICogY29udGV4dC1sZXZlbCBmbGFncyBtYWludGFpbmVkIGF0 IHJ1bnRpbWU6CisgKgorICogU3RhdGUtbGV2ZWw6CisgKiAgIHN0YXRlLmlzQWJzb3JiYWJsZTog dHJ1ZSBpZiBzdGF0ZSBpcyBpbiB0aGUgYWJzb3JiYWJsZSByZWdpb24uCisgKiAgICAgLSBTZXQg YXQgY3JlYXRpb246IGVsZW0tPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gKKyAq ICAgICAtIEF0IHRyYW5zaXRpb246IHByZXZBYnNvcmJhYmxlICYmIChuZXdFbGVtLT5mbGFncyAm IEFCU09SQkFCTEVfQlJBTkNIKQorICogICAgIC0gTW9ub3RvbmljOiBvbmNlIGZhbHNlLCBzdGF5 cyBmYWxzZSBmb3JldmVyCisgKgorICogQ29udGV4dC1sZXZlbDoKKyAqICAgY3R4Lmhhc0Fic29y YmFibGVTdGF0ZTogY2FuIHRoaXMgY29udGV4dCBhYnNvcmIgb3RoZXJzPworICogICAgIC0gVHJ1 ZSBpZiBhdCBsZWFzdCBvbmUgc3RhdGUgaGFzIGlzQWJzb3JiYWJsZT10cnVlCisgKiAgICAgLSBN b25vdG9uaWM6IHRydWUtPmZhbHNlIG9ubHkgKG9wdGltaXphdGlvbjogc2tpcCByZWNhbGMgd2hl biBmYWxzZSkKKyAqCisgKiAgIGN0eC5hbGxTdGF0ZXNBYnNvcmJhYmxlOiBjYW4gdGhpcyBjb250 ZXh0IGJlIGFic29yYmVkPworICogICAgIC0gVHJ1ZSBpZiBBTEwgc3RhdGVzIGhhdmUgaXNBYnNv cmJhYmxlPXRydWUKKyAqICAgICAtIER5bmFtaWM6IGNhbiBjaGFuZ2UgZmFsc2UtPnRydWUgKHdo ZW4gbm9uLWFic29yYmFibGUgc3RhdGVzIGRpZSkKKyAqCisgKiBBYnNvcnB0aW9uIEFsZ29yaXRo bToKKyAqICAgRm9yIGVhY2ggcGFpciAob2xkZXIgQ3R4MSwgbmV3ZXIgQ3R4Mik6CisgKiAgIDEu IFByZS1jaGVjazogQ3R4MS5oYXNBYnNvcmJhYmxlU3RhdGUgJiYgQ3R4Mi5hbGxTdGF0ZXNBYnNv cmJhYmxlCisgKiAgICAgIC0+IElmIGZhbHNlLCBza2lwIChmYXN0IGZpbHRlcikKKyAqICAgMi4g Q292ZXJhZ2UgY2hlY2s6IEZvciBlYWNoIEN0eDIgc3RhdGUgd2l0aCBpc0Fic29yYmFibGU9dHJ1 ZSwKKyAqICAgICAgZmluZCBDdHgxIHN0YXRlIHdpdGggc2FtZSBlbGVtSWR4IGFuZCBjb3VudCA+ PSBDdHgyLmNvdW50CisgKiAgIDMuIElmIGFsbCBDdHgyIGFic29yYmFibGUgc3RhdGVzIGFyZSBj b3ZlcmVkLCBhYnNvcmIgQ3R4MgorICoKKyAqIEV4YW1wbGU6IFBhdHRlcm4gQSsgQgorICogICBS b3cgMTogQ3R4MSBhdCBBIChjb3VudD0xKQorICogICBSb3cgMjogQ3R4MSBhdCBBIChjb3VudD0y KSwgQ3R4MiBhdCBBIChjb3VudD0xKQorICogICAtPiBCb3RoIGF0IHNhbWUgZWxlbUlkeCAoQSks IEN0eDEuY291bnQgPj0gQ3R4Mi5jb3VudAorICogICAtPiBDdHgyIGFic29yYmVkCisgKgorICog VGhlIGFzeW1tZXRyaWMgZGVzaWduIChDdHgxIG5lZWRzIGhhc0Fic29yYmFibGUsIEN0eDIgbmVl ZHMgYWxsQWJzb3JiYWJsZSkKKyAqIGFsbG93cyBhYnNvcnB0aW9uIGV2ZW4gd2hlbiBDdHgxIGhh cyBleHRyYSBub24tYWJzb3JiYWJsZSBzdGF0ZXMuCisgKi8KKworLyoKKyAqIG5mYV9zdGF0ZV9h bGxvYworICoKKyAqIEFsbG9jYXRlIGFuIE5GQSBzdGF0ZSwgcmV1c2luZyBmcm9tIGZyZWVMaXN0 IGlmIGF2YWlsYWJsZS4KKyAqIGZyZWVMaXN0IGlzIHN0b3JlZCBpbiBXaW5kb3dBZ2dTdGF0ZSBm b3IgcmV1c2UgYWNyb3NzIG1hdGNoIGF0dGVtcHRzLgorICogVXNlcyBmbGV4aWJsZSBhcnJheSBt ZW1iZXIgZm9yIGNvdW50c1tdLgorICovCitzdGF0aWMgUlBSTkZBU3RhdGUgKgorbmZhX3N0YXRl X2FsbG9jKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKK3sKKwlSUFJORkFTdGF0ZSAqc3RhdGU7 CisKKwkvKiBUcnkgdG8gcmV1c2UgZnJvbSBmcmVlIGxpc3QgZmlyc3QgKi8KKwlpZiAod2luc3Rh dGUtPm5mYVN0YXRlRnJlZSAhPSBOVUxMKQorCXsKKwkJc3RhdGUgPSB3aW5zdGF0ZS0+bmZhU3Rh dGVGcmVlOworCQl3aW5zdGF0ZS0+bmZhU3RhdGVGcmVlID0gc3RhdGUtPm5leHQ7CisJfQorCWVs c2UKKwl7CisJCS8qIEFsbG9jYXRlIGluIHBhcnRpdGlvbiBjb250ZXh0IGZvciBwcm9wZXIgbGlm ZXRpbWUgKi8KKwkJc3RhdGUgPSBNZW1vcnlDb250ZXh0QWxsb2Mod2luc3RhdGUtPnBhcnRjb250 ZXh0LCB3aW5zdGF0ZS0+bmZhU3RhdGVTaXplKTsKKwl9CisKKwkvKiBJbml0aWFsaXplIGVudGly ZSBzdGF0ZSB0byB6ZXJvICovCisJbWVtc2V0KHN0YXRlLCAwLCB3aW5zdGF0ZS0+bmZhU3RhdGVT aXplKTsKKworCS8qIFVwZGF0ZSBzdGF0aXN0aWNzICovCisJd2luc3RhdGUtPm5mYVN0YXRlc0Fj dGl2ZSsrOworCXdpbnN0YXRlLT5uZmFTdGF0ZXNUb3RhbENyZWF0ZWQrKzsKKwlpZiAod2luc3Rh dGUtPm5mYVN0YXRlc0FjdGl2ZSA+IHdpbnN0YXRlLT5uZmFTdGF0ZXNNYXgpCisJCXdpbnN0YXRl LT5uZmFTdGF0ZXNNYXggPSB3aW5zdGF0ZS0+bmZhU3RhdGVzQWN0aXZlOworCisJcmV0dXJuIHN0 YXRlOworfQorCisvKgorICogbmZhX3N0YXRlX2ZyZWUKKyAqCisgKiBSZXR1cm4gYSBzdGF0ZSB0 byB0aGUgZnJlZSBsaXN0IGZvciBsYXRlciByZXVzZS4KKyAqLworc3RhdGljIHZvaWQKK25mYV9z dGF0ZV9mcmVlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKnN0YXRlKQor eworCXdpbnN0YXRlLT5uZmFTdGF0ZXNBY3RpdmUtLTsKKwlzdGF0ZS0+bmV4dCA9IHdpbnN0YXRl LT5uZmFTdGF0ZUZyZWU7CisJd2luc3RhdGUtPm5mYVN0YXRlRnJlZSA9IHN0YXRlOworfQorCisv KgorICogbmZhX3N0YXRlX2ZyZWVfbGlzdAorICoKKyAqIFJldHVybiBhbGwgc3RhdGVzIGluIGEg bGlzdCB0byB0aGUgZnJlZSBsaXN0LgorICovCitzdGF0aWMgdm9pZAorbmZhX3N0YXRlX2ZyZWVf bGlzdChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0YXRlICpsaXN0KQoreworCVJQ Uk5GQVN0YXRlICpuZXh0OworCisJZm9yICg7IGxpc3QgIT0gTlVMTDsgbGlzdCA9IG5leHQpCisJ eworCQluZXh0ID0gbGlzdC0+bmV4dDsKKwkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIGxpc3Qp OworCX0KK30KKworLyoKKyAqIG5mYV9zdGF0ZV9jcmVhdGUKKyAqCisgKiBDcmVhdGUgYSBuZXcg c3RhdGUgd2l0aCBnaXZlbiBlbGVtSWR4IGFuZCBjb3VudHMuCisgKiBpc0Fic29yYmFibGUgaXMg Y29tcHV0ZWQgaW1tZWRpYXRlbHk6IGluaGVyaXRlZCBBTkQgbmV3IGVsZW1lbnQncyBmbGFnLgor ICogTW9ub3RvbmljIHByb3BlcnR5OiBvbmNlIGZhbHNlLCBzdGF5cyBmYWxzZSB0aHJvdWdoIGFs bCB0cmFuc2l0aW9ucy4KKyAqCisgKiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGxpbmtpbmcg dGhlIHJldHVybmVkIHN0YXRlLgorICovCitzdGF0aWMgUlBSTkZBU3RhdGUgKgorbmZhX3N0YXRl X2NyZWF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgsCisJCQkJIGlu dDMyICpjb3VudHMsIGJvb2wgc291cmNlQWJzb3JiYWJsZSkKK3sKKwlSUFJQYXR0ZXJuICpwYXR0 ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlpbnQJCQltYXhEZXB0aCA9IHBhdHRlcm4tPm1h eERlcHRoOworCVJQUk5GQVN0YXRlICpzdGF0ZSA9IG5mYV9zdGF0ZV9hbGxvYyh3aW5zdGF0ZSk7 CisJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbZWxlbUlkeF07 CisKKwlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW1JZHg7CisJaWYgKGNvdW50cyAhPSBOVUxMICYmIG1h eERlcHRoID4gMCkKKwkJbWVtY3B5KHN0YXRlLT5jb3VudHMsIGNvdW50cywgc2l6ZW9mKGludDMy KSAqIG1heERlcHRoKTsKKworCS8qCisJICogQ29tcHV0ZSBpc0Fic29yYmFibGUgaW1tZWRpYXRl bHkgYXQgdHJhbnNpdGlvbiB0aW1lLiBpc0Fic29yYmFibGUgPQorCSAqIHNvdXJjZUFic29yYmFi bGUgJiYgKGVsZW0tPmZsYWdzICYgQUJTT1JCQUJMRV9CUkFOQ0gpIE1vbm90b25pYzogb25jZQor CSAqIGZhbHNlLCBzdGF5cyBmYWxzZSAoY2FuJ3QgcmUtZW50ZXIgYWJzb3JiYWJsZSByZWdpb24p LgorCSAqLworCXN0YXRlLT5pc0Fic29yYmFibGUgPSBzb3VyY2VBYnNvcmJhYmxlICYmIFJQUkVs ZW1Jc0Fic29yYmFibGVCcmFuY2goZWxlbSk7CisKKwlyZXR1cm4gc3RhdGU7Cit9CisKKy8qCisg KiBuZmFfc3RhdGVzX2VxdWFsCisgKgorICogQ2hlY2sgaWYgdHdvIHN0YXRlcyBhcmUgZXF1aXZh bGVudCAoc2FtZSBlbGVtSWR4IGFuZCBjb3VudHMpLgorICovCitzdGF0aWMgYm9vbAorbmZhX3N0 YXRlc19lcXVhbChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0YXRlICpzMSwgUlBS TkZBU3RhdGUgKnMyKQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0ZS0+cnBQYXR0 ZXJuOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtOworCWludAkJCWNvbXBhcmVEZXB0aDsKKwor CWlmIChzMS0+ZWxlbUlkeCAhPSBzMi0+ZWxlbUlkeCkKKwkJcmV0dXJuIGZhbHNlOworCisJLyog Q29tcGFyZSBjb3VudHMgdXAgdG8gY3VycmVudCBlbGVtZW50J3MgZGVwdGggKi8KKwllbGVtID0g JnBhdHRlcm4tPmVsZW1lbnRzW3MxLT5lbGVtSWR4XTsKKwljb21wYXJlRGVwdGggPSBlbGVtLT5k ZXB0aCArIDE7IC8qIGRlcHRoIDAgbmVlZHMgMSBjb3VudCwgZXRjLiAqLworCisJaWYgKG1lbWNt cChzMS0+Y291bnRzLCBzMi0+Y291bnRzLCBzaXplb2YoaW50MzIpICogY29tcGFyZURlcHRoKSAh PSAwKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIG5mYV9h ZGRfc3RhdGVfdW5pcXVlCisgKgorICogQWRkIGEgc3RhdGUgdG8gY3R4LT5zdGF0ZXMgYXQgdGhl IEVORCwgb25seSBpZiBubyBkdXBsaWNhdGUgZXhpc3RzLgorICogUmV0dXJucyB0cnVlIGlmIHN0 YXRlIHdhcyBhZGRlZCwgZmFsc2UgaWYgZHVwbGljYXRlIGZvdW5kIChzdGF0ZSBpcyBmcmVlZCku CisgKiBFYXJsaWVyIHN0YXRlcyBoYXZlIGJldHRlciBsZXhpY2FsIG9yZGVyIChERlMgdHJhdmVy c2FsIG9yZGVyKSwgc28gZXhpc3Rpbmcgd2lucy4KKyAqLworc3RhdGljIGJvb2wKK25mYV9hZGRf c3RhdGVfdW5pcXVlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4 LCBSUFJORkFTdGF0ZSAqc3RhdGUpCit7CisJUlBSTkZBU3RhdGUgKnM7CisJUlBSTkZBU3RhdGUg KnRhaWwgPSBOVUxMOworCisJLyogQ2hlY2sgZm9yIGR1cGxpY2F0ZSBhbmQgZmluZCB0YWlsICov CisJZm9yIChzID0gY3R4LT5zdGF0ZXM7IHMgIT0gTlVMTDsgcyA9IHMtPm5leHQpCisJeworCQlp ZiAobmZhX3N0YXRlc19lcXVhbCh3aW5zdGF0ZSwgcywgc3RhdGUpKQorCQl7CisJCQkvKgorCQkJ ICogRHVwbGljYXRlIGZvdW5kIC0gZXhpc3RpbmcgaGFzIGJldHRlciBsZXhpY2FsIG9yZGVyLCBk aXNjYXJkCisJCQkgKiBuZXcKKwkJCSAqLworCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0 YXRlKTsKKwkJCXdpbnN0YXRlLT5uZmFTdGF0ZXNNZXJnZWQrKzsKKwkJCXJldHVybiBmYWxzZTsK KwkJfQorCQl0YWlsID0gczsKKwl9CisKKwkvKiBObyBkdXBsaWNhdGUsIGFkZCBhdCBlbmQgKi8K KwlzdGF0ZS0+bmV4dCA9IE5VTEw7CisJaWYgKHRhaWwgPT0gTlVMTCkKKwkJY3R4LT5zdGF0ZXMg PSBzdGF0ZTsKKwllbHNlCisJCXRhaWwtPm5leHQgPSBzdGF0ZTsKKworCXJldHVybiB0cnVlOwor fQorCisvKgorICogbmZhX2FkZF9tYXRjaGVkX3N0YXRlCisgKgorICogUmVjb3JkIGEgc3RhdGUg dGhhdCByZWFjaGVkIEZJTiwgcmVwbGFjaW5nIGFueSBwcmV2aW91cyBtYXRjaC4KKyAqCisgKiBG b3IgU0tJUCBQQVNUIExBU1QgUk9XLCBhbHNvIHBydW5lIHN1YnNlcXVlbnQgY29udGV4dHMgd2hv c2Ugc3RhcnQgcm93CisgKiBmYWxscyB3aXRoaW4gdGhlIG1hdGNoIHJhbmdlLCBhcyB0aGV5IGNh bm5vdCBwcm9kdWNlIG91dHB1dCByb3dzLgorICovCitzdGF0aWMgdm9pZAorbmZhX2FkZF9tYXRj aGVkX3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAor CQkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgaW50NjQgbWF0Y2hFbmRSb3cpCit7CisJaWYgKGN0 eC0+bWF0Y2hlZFN0YXRlICE9IE5VTEwpCisJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBjdHgt Pm1hdGNoZWRTdGF0ZSk7CisKKwljdHgtPm1hdGNoZWRTdGF0ZSA9IHN0YXRlOworCXN0YXRlLT5u ZXh0ID0gTlVMTDsKKwljdHgtPm1hdGNoRW5kUm93ID0gbWF0Y2hFbmRSb3c7CisKKwkvKiBQcnVu ZSBjb250ZXh0cyB0aGF0IHN0YXJ0ZWQgd2l0aGluIHRoaXMgbWF0Y2gncyByYW5nZSAqLworCWlm ICh3aW5zdGF0ZS0+cnBTa2lwVG8gPT0gU1RfUEFTVF9MQVNUX1JPVykKKwl7CisJCVJQUk5GQUNv bnRleHQgKm5leHRDdHg7CisJCWludDY0CQlza2lwcGVkTGVuOworCisJCXdoaWxlIChjdHgtPm5l eHQgIT0gTlVMTCAmJgorCQkJICAgY3R4LT5uZXh0LT5tYXRjaFN0YXJ0Um93IDw9IG1hdGNoRW5k Um93KQorCQl7CisJCQluZXh0Q3R4ID0gY3R4LT5uZXh0OworCQkJY3R4LT5uZXh0ID0gY3R4LT5u ZXh0LT5uZXh0OworCisJCQlBc3NlcnQobmV4dEN0eC0+bGFzdFByb2Nlc3NlZFJvdyA+PSBuZXh0 Q3R4LT5tYXRjaFN0YXJ0Um93KTsKKwkJCXNraXBwZWRMZW4gPSBuZXh0Q3R4LT5sYXN0UHJvY2Vz c2VkUm93IC0gbmV4dEN0eC0+bWF0Y2hTdGFydFJvdyArIDE7CisJCQluZmFfcmVjb3JkX2NvbnRl eHRfc2tpcHBlZCh3aW5zdGF0ZSwgc2tpcHBlZExlbik7CisKKwkJCUV4ZWNSUFJGcmVlQ29udGV4 dCh3aW5zdGF0ZSwgbmV4dEN0eCk7CisJCX0KKwkJaWYgKGN0eC0+bmV4dCA9PSBOVUxMKQorCQkJ d2luc3RhdGUtPm5mYUNvbnRleHRUYWlsID0gY3R4OworCX0KK30KKworLyoKKyAqIG5mYV9jb250 ZXh0X2FsbG9jCisgKgorICogQWxsb2NhdGUgYW4gTkZBIGNvbnRleHQsIHJldXNpbmcgZnJvbSBm cmVlIGxpc3QgaWYgYXZhaWxhYmxlLgorICovCitzdGF0aWMgUlBSTkZBQ29udGV4dCAqCituZmFf Y29udGV4dF9hbGxvYyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCit7CisJUlBSTkZBQ29udGV4 dCAqY3R4OworCisJaWYgKHdpbnN0YXRlLT5uZmFDb250ZXh0RnJlZSAhPSBOVUxMKQorCXsKKwkJ Y3R4ID0gd2luc3RhdGUtPm5mYUNvbnRleHRGcmVlOworCQl3aW5zdGF0ZS0+bmZhQ29udGV4dEZy ZWUgPSBjdHgtPm5leHQ7CisJfQorCWVsc2UKKwl7CisJCS8qIEFsbG9jYXRlIGluIHBhcnRpdGlv biBjb250ZXh0IGZvciBwcm9wZXIgbGlmZXRpbWUgKi8KKwkJY3R4ID0gTWVtb3J5Q29udGV4dEFs bG9jKHdpbnN0YXRlLT5wYXJ0Y29udGV4dCwgc2l6ZW9mKFJQUk5GQUNvbnRleHQpKTsKKwl9CisK KwljdHgtPm5leHQgPSBOVUxMOworCWN0eC0+cHJldiA9IE5VTEw7CisJY3R4LT5zdGF0ZXMgPSBO VUxMOworCWN0eC0+bWF0Y2hTdGFydFJvdyA9IC0xOworCWN0eC0+bWF0Y2hFbmRSb3cgPSAtMTsK KwljdHgtPmxhc3RQcm9jZXNzZWRSb3cgPSAtMTsKKwljdHgtPm1hdGNoZWRTdGF0ZSA9IE5VTEw7 CisKKwkvKiBJbml0aWFsaXplIHR3by1mbGFnIGFic29ycHRpb24gZGVzaWduIGJhc2VkIG9uIHBh dHRlcm4gKi8KKwljdHgtPmhhc0Fic29yYmFibGVTdGF0ZSA9IHdpbnN0YXRlLT5ycFBhdHRlcm4t PmlzQWJzb3JiYWJsZTsKKwljdHgtPmFsbFN0YXRlc0Fic29yYmFibGUgPSB3aW5zdGF0ZS0+cnBQ YXR0ZXJuLT5pc0Fic29yYmFibGU7CisKKwkvKiBVcGRhdGUgc3RhdGlzdGljcyAqLworCXdpbnN0 YXRlLT5uZmFDb250ZXh0c0FjdGl2ZSsrOworCXdpbnN0YXRlLT5uZmFDb250ZXh0c1RvdGFsQ3Jl YXRlZCsrOworCWlmICh3aW5zdGF0ZS0+bmZhQ29udGV4dHNBY3RpdmUgPiB3aW5zdGF0ZS0+bmZh Q29udGV4dHNNYXgpCisJCXdpbnN0YXRlLT5uZmFDb250ZXh0c01heCA9IHdpbnN0YXRlLT5uZmFD b250ZXh0c0FjdGl2ZTsKKworCXJldHVybiBjdHg7Cit9CisKKy8qCisgKiBuZmFfdW5saW5rX2Nv bnRleHQKKyAqCisgKiBSZW1vdmUgYSBjb250ZXh0IGZyb20gdGhlIGRvdWJseS1saW5rZWQgYWN0 aXZlIGNvbnRleHQgbGlzdC4KKyAqIFVwZGF0ZXMgaGVhZCAobmZhQ29udGV4dCkgYW5kIHRhaWwg KG5mYUNvbnRleHRUYWlsKSBhcyBuZWVkZWQuCisgKi8KK3N0YXRpYyB2b2lkCituZmFfdW5saW5r X2NvbnRleHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgpCit7 CisJaWYgKGN0eC0+cHJldiAhPSBOVUxMKQorCQljdHgtPnByZXYtPm5leHQgPSBjdHgtPm5leHQ7 CisJZWxzZQorCQl3aW5zdGF0ZS0+bmZhQ29udGV4dCA9IGN0eC0+bmV4dDsJLyogd2FzIGhlYWQg Ki8KKworCWlmIChjdHgtPm5leHQgIT0gTlVMTCkKKwkJY3R4LT5uZXh0LT5wcmV2ID0gY3R4LT5w cmV2OworCWVsc2UKKwkJd2luc3RhdGUtPm5mYUNvbnRleHRUYWlsID0gY3R4LT5wcmV2OwkvKiB3 YXMgdGFpbCAqLworCisJY3R4LT5uZXh0ID0gTlVMTDsKKwljdHgtPnByZXYgPSBOVUxMOworfQor CisvKgorICogbmZhX3VwZGF0ZV9sZW5ndGhfc3RhdHMKKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24g dG8gdXBkYXRlIG1pbi9tYXgvdG90YWwgbGVuZ3RoIHN0YXRpc3RpY3MuCisgKiBDYWxsZWQgd2hl biB0cmFja2luZyBtYXRjaC9taXNtYXRjaC9hYnNvcmJlZC9za2lwcGVkIGxlbmd0aHMuCisgKi8K K3N0YXRpYyB2b2lkCituZmFfdXBkYXRlX2xlbmd0aF9zdGF0cyhpbnQ2NCBjb3VudCwgTkZBTGVu Z3RoU3RhdHMgKnN0YXRzLCBpbnQ2NCBuZXdMZW4pCit7CisJaWYgKGNvdW50ID09IDEpCisJewor CQlzdGF0cy0+bWluID0gbmV3TGVuOworCQlzdGF0cy0+bWF4ID0gbmV3TGVuOworCX0KKwllbHNl CisJeworCQlpZiAobmV3TGVuIDwgc3RhdHMtPm1pbikKKwkJCXN0YXRzLT5taW4gPSBuZXdMZW47 CisJCWlmIChuZXdMZW4gPiBzdGF0cy0+bWF4KQorCQkJc3RhdHMtPm1heCA9IG5ld0xlbjsKKwl9 CisJc3RhdHMtPnRvdGFsICs9IG5ld0xlbjsKK30KKworLyoKKyAqIG5mYV9yZWNvcmRfY29udGV4 dF9za2lwcGVkCisgKgorICogUmVjb3JkIGEgc2tpcHBlZCBjb250ZXh0IGluIHN0YXRpc3RpY3Mu CisgKi8KK3N0YXRpYyB2b2lkCituZmFfcmVjb3JkX2NvbnRleHRfc2tpcHBlZChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIGludDY0IHNraXBwZWRMZW4pCit7CisJd2luc3RhdGUtPm5mYUNvbnRl eHRzU2tpcHBlZCsrOworCW5mYV91cGRhdGVfbGVuZ3RoX3N0YXRzKHdpbnN0YXRlLT5uZmFDb250 ZXh0c1NraXBwZWQsCisJCQkJCQkJJndpbnN0YXRlLT5uZmFTa2lwcGVkTGVuLAorCQkJCQkJCXNr aXBwZWRMZW4pOworfQorCisvKgorICogbmZhX3JlY29yZF9jb250ZXh0X2Fic29yYmVkCisgKgor ICogUmVjb3JkIGFuIGFic29yYmVkIGNvbnRleHQgaW4gc3RhdGlzdGljcy4KKyAqLworc3RhdGlj IHZvaWQKK25mYV9yZWNvcmRfY29udGV4dF9hYnNvcmJlZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIGludDY0IGFic29yYmVkTGVuKQoreworCXdpbnN0YXRlLT5uZmFDb250ZXh0c0Fic29yYmVk Kys7CisJbmZhX3VwZGF0ZV9sZW5ndGhfc3RhdHMod2luc3RhdGUtPm5mYUNvbnRleHRzQWJzb3Ji ZWQsCisJCQkJCQkJJndpbnN0YXRlLT5uZmFBYnNvcmJlZExlbiwKKwkJCQkJCQlhYnNvcmJlZExl bik7Cit9CisKKy8qCisgKiBuZmFfdXBkYXRlX2Fic29ycHRpb25fZmxhZ3MKKyAqCisgKiBVcGRh dGUgY29udGV4dCdzIGFic29ycHRpb24gZmxhZ3MgYWZ0ZXIgc3RhdGUgY2hhbmdlcy4KKyAqCisg KiBUd28gZmxhZ3MgY29udHJvbCBhYnNvcnB0aW9uIGJlaGF2aW9yOgorICogICBoYXNBYnNvcmJh YmxlU3RhdGU6IHRydWUgaWYgY29udGV4dCBoYXMgYXQgbGVhc3Qgb25lIGFic29yYmFibGUgc3Rh dGUuCisgKiAgICAgVGhpcyBmbGFnIGlzIG1vbm90b25pYyAodHJ1ZSAtPiBmYWxzZSBvbmx5KS4g T25jZSBhbGwgYWJzb3JiYWJsZSBzdGF0ZXMKKyAqICAgICBkaWUsIG5vIG5ldyBhYnNvcmJhYmxl IHN0YXRlcyBjYW4gYmUgY3JlYXRlZCB0aHJvdWdoIHRyYW5zaXRpb25zLgorICogICBhbGxTdGF0 ZXNBYnNvcmJhYmxlOiB0cnVlIGlmIEFMTCBzdGF0ZXMgaW4gY29udGV4dCBhcmUgYWJzb3JiYWJs ZS4KKyAqICAgICBUaGlzIGZsYWcgaXMgZHluYW1pYyBhbmQgY2FuIGNoYW5nZSBmYWxzZSAtPiB0 cnVlIHdoZW4gbm9uLWFic29yYmFibGUKKyAqICAgICBzdGF0ZXMgZGllIG9mZi4KKyAqCisgKiBP cHRpbWl6YXRpb246IE9uY2UgaGFzQWJzb3JiYWJsZVN0YXRlIGJlY29tZXMgZmFsc2UsIGJvdGgg ZmxhZ3MgcmVtYWluIGZhbHNlCisgKiBwZXJtYW5lbnRseSwgc28gd2Ugc2tpcCByZWNhbGN1bGF0 aW9uLgorICovCitzdGF0aWMgdm9pZAorbmZhX3VwZGF0ZV9hYnNvcnB0aW9uX2ZsYWdzKFJQUk5G QUNvbnRleHQgKmN0eCkKK3sKKwlSUFJORkFTdGF0ZSAqc3RhdGU7CisJYm9vbAkJaGFzQWJzb3Ji YWJsZSA9IGZhbHNlOworCWJvb2wJCWFsbEFic29yYmFibGUgPSB0cnVlOworCisJLyoKKwkgKiBP cHRpbWl6YXRpb246IE9uY2UgaGFzQWJzb3JiYWJsZVN0YXRlIGJlY29tZXMgZmFsc2UsIGl0IHN0 YXlzIGZhbHNlLiBObworCSAqIG5lZWQgdG8gcmVjYWxjdWxhdGUgLSBib3RoIGZsYWdzIHJlbWFp biBmYWxzZSBwZXJtYW5lbnRseS4KKwkgKi8KKwlpZiAoIWN0eC0+aGFzQWJzb3JiYWJsZVN0YXRl KQorCXsKKwkJY3R4LT5hbGxTdGF0ZXNBYnNvcmJhYmxlID0gZmFsc2U7CisJCXJldHVybjsKKwl9 CisKKwkvKiBObyBzdGF0ZXMgbWVhbnMgbm8gYWJzb3JiYWJsZSBzdGF0ZXMgKi8KKwlpZiAoY3R4 LT5zdGF0ZXMgPT0gTlVMTCkKKwl7CisJCWN0eC0+aGFzQWJzb3JiYWJsZVN0YXRlID0gZmFsc2U7 CisJCWN0eC0+YWxsU3RhdGVzQWJzb3JiYWJsZSA9IGZhbHNlOworCQlyZXR1cm47CisJfQorCisJ LyoKKwkgKiBJdGVyYXRlIHRocm91Z2ggYWxsIHN0YXRlcyB0byBjaGVjayBhYnNvcnB0aW9uIHN0 YXR1cy4gVXNlcworCSAqIHN0YXRlLT5pc0Fic29yYmFibGUgd2hpY2ggdHJhY2tzIGlmIHN0YXRl IGlzIGluIGFic29yYmFibGUgcmVnaW9uLiBUaGlzCisJICogaXMgZGlmZmVyZW50IGZyb20gUlBS RWxlbUlzQWJzb3JiYWJsZShlbGVtKSB3aGljaCBjaGVja3MganVkZ21lbnQKKwkgKiBwb2ludC4K KwkgKi8KKwlmb3IgKHN0YXRlID0gY3R4LT5zdGF0ZXM7IHN0YXRlICE9IE5VTEw7IHN0YXRlID0g c3RhdGUtPm5leHQpCisJeworCQlpZiAoc3RhdGUtPmlzQWJzb3JiYWJsZSkKKwkJCWhhc0Fic29y YmFibGUgPSB0cnVlOworCQllbHNlCisJCQlhbGxBYnNvcmJhYmxlID0gZmFsc2U7CisJfQorCisJ Y3R4LT5oYXNBYnNvcmJhYmxlU3RhdGUgPSBoYXNBYnNvcmJhYmxlOworCWN0eC0+YWxsU3RhdGVz QWJzb3JiYWJsZSA9IGFsbEFic29yYmFibGU7Cit9CisKKy8qCisgKiBuZmFfc3RhdGVzX2NvdmVy ZWQKKyAqCisgKiBDaGVjayBpZiBhbGwgc3RhdGVzIGluIG5ld2VyIGNvbnRleHQgYXJlICJjb3Zl cmVkIiBieSBvbGRlciBjb250ZXh0LgorICoKKyAqIEEgbmV3ZXIgc3RhdGUgaXMgY292ZXJlZCB3 aGVuIG9sZGVyIGNvbnRleHQgaGFzIGFuIGFic29yYmFibGUgc3RhdGUgYXQgdGhlCisgKiBzYW1l IHBhdHRlcm4gZWxlbWVudCAoZWxlbUlkeCkgd2l0aCBjb3VudCA+PSBuZXdlcidzIGNvdW50IGF0 IHRoYXQgZGVwdGguCisgKiBUaGUgY292ZXJpbmcgc3RhdGUgbXVzdCBiZSBhYnNvcmJhYmxlIGJl Y2F1c2Ugb25seSBhYnNvcmJhYmxlIHN0YXRlcyBjYW4KKyAqIGd1YXJhbnRlZSB0byBwcm9kdWNl IHN1cGVyc2V0IG1hdGNoZXMuCisgKgorICogSWYgYWxsIG5ld2VyIHN0YXRlcyBhcmUgY292ZXJl ZCwgbmV3ZXIgY29udGV4dCdzIGV2ZW50dWFsIG1hdGNoZXMgd2lsbCBiZQorICogYSBzdWJzZXQg b2Ygb2xkZXIgY29udGV4dCdzIG1hdGNoZXMsIG1ha2luZyBuZXdlciByZWR1bmRhbnQuCisgKi8K K3N0YXRpYyBib29sCituZmFfc3RhdGVzX2NvdmVyZWQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBS TkZBQ29udGV4dCAqb2xkZXIsIFJQUk5GQUNvbnRleHQgKm5ld2VyKQoreworCVJQUk5GQVN0YXRl ICpuZXdlclN0YXRlOworCisJZm9yIChuZXdlclN0YXRlID0gbmV3ZXItPnN0YXRlczsgbmV3ZXJT dGF0ZSAhPSBOVUxMOyBuZXdlclN0YXRlID0gbmV3ZXJTdGF0ZS0+bmV4dCkKKwl7CisJCVJQUk5G QVN0YXRlICpvbGRlclN0YXRlOworCQlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbTsKKwkJaW50CQkJ ZGVwdGg7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJLyogQWxsIHN0YXRlcyBhcmUgYWJz b3JiYWJsZSAoY2FsbGVyIGNoZWNrcyBhbGxTdGF0ZXNBYnNvcmJhYmxlKSAqLworCQllbGVtID0g JnBhdHRlcm4tPmVsZW1lbnRzW25ld2VyU3RhdGUtPmVsZW1JZHhdOworCQlkZXB0aCA9IGVsZW0t PmRlcHRoOworCisJCWZvciAob2xkZXJTdGF0ZSA9IG9sZGVyLT5zdGF0ZXM7IG9sZGVyU3RhdGUg IT0gTlVMTDsgb2xkZXJTdGF0ZSA9IG9sZGVyU3RhdGUtPm5leHQpCisJCXsKKwkJCS8qIENvdmVy aW5nIHN0YXRlIG11c3QgYWxzbyBiZSBhYnNvcmJhYmxlICovCisJCQlpZiAob2xkZXJTdGF0ZS0+ aXNBYnNvcmJhYmxlICYmCisJCQkJb2xkZXJTdGF0ZS0+ZWxlbUlkeCA9PSBuZXdlclN0YXRlLT5l bGVtSWR4ICYmCisJCQkJb2xkZXJTdGF0ZS0+Y291bnRzW2RlcHRoXSA+PSBuZXdlclN0YXRlLT5j b3VudHNbZGVwdGhdKQorCQkJeworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0K KwkJfQorCisJCWlmICghZm91bmQpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qCisgKiBuZmFfdHJ5X2Fic29yYl9jb250ZXh0CisgKgorICogVHJ5IHRvIGFi c29yYiBjdHggKG5ld2VyKSBpbnRvIGFuIG9sZGVyIGluLXByb2dyZXNzIGNvbnRleHQuCisgKiBS ZXR1cm5zIHRydWUgaWYgY3R4IHdhcyBhYnNvcmJlZCBhbmQgZnJlZWQuCisgKgorICogQWJzb3Jw dGlvbiByZXF1aXJlcyB0aHJlZSBjb25kaXRpb25zOgorICogICAxLiBjdHggbXVzdCBoYXZlIGFs bCBzdGF0ZXMgYWJzb3JiYWJsZSAoYWxsU3RhdGVzQWJzb3JiYWJsZSkuCisgKiAgICAgIElmIGN0 eCBoYXMgYW55IG5vbi1hYnNvcmJhYmxlIHN0YXRlLCBpdCBtYXkgcHJvZHVjZSB1bmlxdWUgbWF0 Y2hlcy4KKyAqICAgMi4gb2xkZXIgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBhYnNvcmJhYmxlIHN0 YXRlIChoYXNBYnNvcmJhYmxlU3RhdGUpLgorICogICAgICBXaXRob3V0IGFic29yYmFibGUgc3Rh dGVzLCBvbGRlciBjYW5ub3QgY292ZXIgbmV3ZXIncyBzdGF0ZXMuCisgKiAgIDMuIEFsbCBjdHgg c3RhdGVzIG11c3QgYmUgY292ZXJlZCBieSBvbGRlcidzIGFic29yYmFibGUgc3RhdGVzLgorICog ICAgICBUaGlzIGVuc3VyZXMgb2xkZXIgd2lsbCBwcm9kdWNlIGFsbCBtYXRjaGVzIHRoYXQgY3R4 IHdvdWxkIHByb2R1Y2UuCisgKgorICogQ29udGV4dCBsaXN0IGlzIG9yZGVyZWQgYnkgY3JlYXRp b24gdGltZSAob2xkZXN0IGZpcnN0IHZpYSBwcmV2IGNoYWluKS4KKyAqIEVhY2ggcm93IGNyZWF0 ZXMgYXQgbW9zdCBvbmUgY29udGV4dCwgc28gZWFybGllciBjb250ZXh0cyBoYXZlIHNtYWxsZXIK KyAqIG1hdGNoU3RhcnRSb3cgdmFsdWVzLgorICovCitzdGF0aWMgdm9pZAorbmZhX3RyeV9hYnNv cmJfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCkK K3sKKwlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJORkFD b250ZXh0ICpvbGRlcjsKKworCS8qIEVhcmx5IGV4aXQ6IGN0eCBtdXN0IGhhdmUgYWxsIHN0YXRl cyBhYnNvcmJhYmxlICovCisJaWYgKCFjdHgtPmFsbFN0YXRlc0Fic29yYmFibGUpCisJCXJldHVy bjsKKworCWZvciAob2xkZXIgPSBjdHgtPnByZXY7IG9sZGVyICE9IE5VTEw7IG9sZGVyID0gb2xk ZXItPnByZXYpCisJeworCQkvKgorCQkgKiBCeSBpbnZhcmlhbnQ6IGN0eC0+cHJldiBjaGFpbiBp cyBpbiBjcmVhdGlvbiBvcmRlciAob2xkZXN0IGZpcnN0KSwKKwkJICogYW5kIGVhY2ggcm93IGNy ZWF0ZXMgYXQgbW9zdCBvbmUgY29udGV4dC4gU28gYWxsIGNvbnRleHRzIGluIHRoaXMKKwkJICog Y2hhaW4gaGF2ZSBtYXRjaFN0YXJ0Um93IDwgY3R4LT5tYXRjaFN0YXJ0Um93LgorCQkgKi8KKwor CQkvKiBPbGRlciBtdXN0IGFsc28gYmUgaW4tcHJvZ3Jlc3MgKi8KKwkJaWYgKG9sZGVyLT5zdGF0 ZXMgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCS8qIE9sZGVyIG11c3QgaGF2ZSBhdCBsZWFz dCBvbmUgYWJzb3JiYWJsZSBzdGF0ZSAqLworCQlpZiAoIW9sZGVyLT5oYXNBYnNvcmJhYmxlU3Rh dGUpCisJCQljb250aW51ZTsKKworCQkvKiBDaGVjayBpZiBhbGwgbmV3ZXIgc3RhdGVzIGFyZSBj b3ZlcmVkIGJ5IG9sZGVyICovCisJCWlmIChuZmFfc3RhdGVzX2NvdmVyZWQocGF0dGVybiwgb2xk ZXIsIGN0eCkpCisJCXsKKwkJCWludDY0CQlhYnNvcmJlZExlbiA9IGN0eC0+bGFzdFByb2Nlc3Nl ZFJvdyAtIGN0eC0+bWF0Y2hTdGFydFJvdyArIDE7CisKKwkJCUV4ZWNSUFJGcmVlQ29udGV4dCh3 aW5zdGF0ZSwgY3R4KTsKKwkJCW5mYV9yZWNvcmRfY29udGV4dF9hYnNvcmJlZCh3aW5zdGF0ZSwg YWJzb3JiZWRMZW4pOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCisvKgorICogbmZhX2Fic29y Yl9jb250ZXh0cworICoKKyAqIEFic29yYiByZWR1bmRhbnQgY29udGV4dHMgdG8gcmVkdWNlIG1l bW9yeSB1c2FnZSBhbmQgY29tcHV0YXRpb24uCisgKgorICogRm9yIHBhdHRlcm5zIGxpa2UgQSss IG5ld2VyIGNvbnRleHRzIHN0YXJ0aW5nIGxhdGVyIHdpbGwgcHJvZHVjZSBzdWJzZXQKKyAqIG1h dGNoZXMgb2Ygb2xkZXIgY29udGV4dHMgd2l0aCBoaWdoZXIgY291bnRzLiBCeSBhYnNvcmJpbmcg dGhlc2UgcmVkdW5kYW50CisgKiBjb250ZXh0cyBlYXJseSwgd2UgYXZvaWQgZHVwbGljYXRlIHdv cmsuCisgKgorICogSXRlcmF0ZXMgZnJvbSB0YWlsIChuZXdlc3QpIHRvd2FyZCBoZWFkIChvbGRl c3QpIHZpYSBwcmV2IGNoYWluLgorICogT25seSBpbi1wcm9ncmVzcyBjb250ZXh0cyAoc3RhdGVz ICE9IE5VTEwpIGFyZSBjYW5kaWRhdGVzIGZvciBhYnNvcnB0aW9uOworICogY29tcGxldGVkIGNv bnRleHRzIHJlcHJlc2VudCB2YWxpZCBtYXRjaCByZXN1bHRzLgorICovCitzdGF0aWMgdm9pZAor bmZhX2Fic29yYl9jb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCit7CisJUlBSTkZB Q29udGV4dCAqY3R4OworCVJQUk5GQUNvbnRleHQgKm5leHRDdHg7CisKKwlmb3IgKGN0eCA9IHdp bnN0YXRlLT5uZmFDb250ZXh0VGFpbDsgY3R4ICE9IE5VTEw7IGN0eCA9IG5leHRDdHgpCisJewor CQluZXh0Q3R4ID0gY3R4LT5wcmV2OworCisJCS8qCisJCSAqIE9ubHkgYWJzb3JiIGluLXByb2dy ZXNzIGNvbnRleHRzOyBjb21wbGV0ZWQgY29udGV4dHMgYXJlIHZhbGlkCisJCSAqIHJlc3VsdHMK KwkJICovCisJCWlmIChjdHgtPnN0YXRlcyAhPSBOVUxMKQorCQkJbmZhX3RyeV9hYnNvcmJfY29u dGV4dCh3aW5zdGF0ZSwgY3R4KTsKKwl9Cit9CisKKy8qCisgKiBuZmFfZXZhbF92YXJfbWF0Y2gK KyAqCisgKiBFdmFsdWF0ZSBpZiBhIFZBUiBlbGVtZW50IG1hdGNoZXMgdGhlIGN1cnJlbnQgcm93 LgorICogVW5kZWZpbmVkIHZhcmlhYmxlcyAodmFySWQgPj0gZGVmaW5lVmFyaWFibGVMaXN0IGxl bmd0aCkgZGVmYXVsdCB0byBUUlVFLgorICovCitzdGF0aWMgYm9vbAorbmZhX2V2YWxfdmFyX21h dGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCisJ CQkJICAgYm9vbCAqdmFyTWF0Y2hlZCkKK3sKKwkvKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5 IGJlIGNhbGxlZCBmb3IgVkFSIGVsZW1lbnRzICovCisJQXNzZXJ0KFJQUkVsZW1Jc1ZhcihlbGVt KSk7CisKKwlpZiAodmFyTWF0Y2hlZCA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKGVs ZW0tPnZhcklkID49IGxpc3RfbGVuZ3RoKHdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3QpKQor CQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gdmFyTWF0Y2hlZFtlbGVtLT52YXJJZF07Cit9CisKKy8q CisgKiBuZmFfbWF0Y2gKKyAqCisgKiBNYXRjaCBwaGFzZSAoY29udmVyZ2VuY2UpOiBldmFsdWF0 ZSBWQVIgZWxlbWVudHMgYWdhaW5zdCBjdXJyZW50IHJvdy4KKyAqIE9ubHkgdXBkYXRlcyBjb3Vu dHMgYW5kIHJlbW92ZXMgZGVhZCBzdGF0ZXMuIE1pbmltYWwgdHJhbnNpdGlvbnMuCisgKgorICog Rm9yIFZBUiBlbGVtZW50czoKKyAqICAgLSBtYXRjaGVkOiBjb3VudCsrLCBrZWVwIHN0YXRlICh1 bmxlc3MgY291bnQgPiBtYXgpCisgKiAgIC0gbm90IG1hdGNoZWQ6IHJlbW92ZSBzdGF0ZSAoZXhp dCBhbHRlcm5hdGl2ZXMgYWxyZWFkeSBleGlzdCBmcm9tCisgKiAgICAgcHJldmlvdXMgYWR2YW5j ZSB3aGVuIGNvdW50ID49IG1pbiB3YXMgc2F0aXNmaWVkKQorICoKKyAqIEZvciBzaW1wbGUgVkFS cyAobWluPW1heD0xKSBmb2xsb3dlZCBieSBFTkQ6CisgKiAgIC0gQWR2YW5jZSB0byBFTkQgYW5k IHVwZGF0ZSBncm91cCBjb3VudCBiZWZvcmUgYWJzb3JiIHBoYXNlCisgKiAgIC0gVGhpcyBlbnN1 cmVzIGFic29ycHRpb24gY2FuIGNvbXBhcmUgc3RhdGVzIGJ5IGdyb3VwIGNvbXBsZXRpb24KKyAq CisgKiBOb24tVkFSIGVsZW1lbnRzIChBTFQsIEVORCwgRklOKSBhcmUga2VwdCBhcy1pcyBmb3Ig YWR2YW5jZSBwaGFzZS4KKyAqLworc3RhdGljIHZvaWQKK25mYV9tYXRjaChXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKK3sKKwlS UFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJQYXR0ZXJuRWxl bWVudCAqZWxlbWVudHMgPSBwYXR0ZXJuLT5lbGVtZW50czsKKwlSUFJORkFTdGF0ZSAqKnByZXZQ dHIgPSAmY3R4LT5zdGF0ZXM7CisJUlBSTkZBU3RhdGUgKnN0YXRlOworCVJQUk5GQVN0YXRlICpu ZXh0U3RhdGU7CisKKwkvKgorCSAqIEV2YWx1YXRlIFZBUiBlbGVtZW50cyBhZ2FpbnN0IGN1cnJl bnQgcm93LiBGb3Igc2ltcGxlIFZBUnMgd2l0aCBFTkQKKwkgKiBuZXh0LCBhZHZhbmNlIHRvIEVO RCBhbmQgdXBkYXRlIGdyb3VwIGNvdW50IGlubGluZSBzbyBhYnNvcmIgcGhhc2UgY2FuCisJICog Y29tcGFyZSBzdGF0ZXMgcHJvcGVybHkuCisJICovCisJZm9yIChzdGF0ZSA9IGN0eC0+c3RhdGVz OyBzdGF0ZSAhPSBOVUxMOyBzdGF0ZSA9IG5leHRTdGF0ZSkKKwl7CisJCVJQUlBhdHRlcm5FbGVt ZW50ICplbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKKworCQluZXh0U3RhdGUgPSBz dGF0ZS0+bmV4dDsKKworCQlpZiAoUlBSRWxlbUlzVmFyKGVsZW0pKQorCQl7CisJCQlib29sCQlt YXRjaGVkOworCQkJaW50CQkJZGVwdGggPSBlbGVtLT5kZXB0aDsKKwkJCWludDMyCQljb3VudCA9 IHN0YXRlLT5jb3VudHNbZGVwdGhdOworCisJCQltYXRjaGVkID0gbmZhX2V2YWxfdmFyX21hdGNo KHdpbnN0YXRlLCBlbGVtLCB2YXJNYXRjaGVkKTsKKworCQkJaWYgKG1hdGNoZWQpCisJCQl7CisJ CQkJLyogSW5jcmVtZW50IGNvdW50ICovCisJCQkJaWYgKGNvdW50IDwgUlBSX0NPVU5UX01BWCkK KwkJCQkJY291bnQrKzsKKworCQkJCS8qIE1heCBjb25zdHJhaW50IHNob3VsZCBub3QgYmUgZXhj ZWVkZWQgKi8KKwkJCQlBc3NlcnQoZWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwgY291 bnQgPD0gZWxlbS0+bWF4KTsKKworCQkJCXN0YXRlLT5jb3VudHNbZGVwdGhdID0gY291bnQ7CisK KwkJCQkvKgorCQkJCSAqIEZvciBzaW1wbGUgVkFSIChtaW49bWF4PTEpIHdpdGggRU5EIG5leHQs IGFkdmFuY2UgdG8gRU5ECisJCQkJICogYW5kIHVwZGF0ZSBncm91cCBjb3VudCBpbmxpbmUuIFRo aXMga2VlcHMgc3RhdGUgaW4gcGxhY2UsCisJCQkJICogcHJlc2VydmluZyBsZXhpY2FsIG9yZGVy LgorCQkJCSAqLworCQkJCWlmIChlbGVtLT5taW4gPT0gMSAmJiBlbGVtLT5tYXggPT0gMSAmJgor CQkJCQlSUFJFbGVtSXNFbmQoJmVsZW1lbnRzW2VsZW0tPm5leHRdKSkKKwkJCQl7CisJCQkJCVJQ UlBhdHRlcm5FbGVtZW50ICplbmRFbGVtID0gJmVsZW1lbnRzW2VsZW0tPm5leHRdOworCQkJCQlp bnQJCQllbmREZXB0aCA9IGVuZEVsZW0tPmRlcHRoOworCQkJCQlpbnQzMgkJZW5kQ291bnQgPSBz dGF0ZS0+Y291bnRzW2VuZERlcHRoXTsKKworCQkJCQlBc3NlcnQoY291bnQgPT0gMSk7CisKKwkJ CQkJLyogSW5jcmVtZW50IGdyb3VwIGNvdW50IHdpdGggb3ZlcmZsb3cgcHJvdGVjdGlvbiAqLwor CQkJCQlpZiAoZW5kQ291bnQgPCBSUFJfQ09VTlRfTUFYKQorCQkJCQkJZW5kQ291bnQrKzsKKwor CQkJCQkvKgorCQkJCQkgKiBFTkQncyBtYXggY2FuIG5ldmVyIGJlIGV4Y2VlZGVkIGhlcmUgYmVj YXVzZQorCQkJCQkgKiBuZmFfYWR2YW5jZV9lbmQgb25seSBsb29wcyB3aGVuIGNvdW50IDwgbWF4 LCBzbworCQkJCQkgKiBlbmRDb3VudCBlbnRlcmluZyBpbmxpbmUgYWR2YW5jZSBpcyBhdCBtb3N0 IG1heC0xLCBhbmQKKwkJCQkJICogaW5jcmVtZW50aW5nIHlpZWxkcyBhdCBtb3N0IG1heC4KKwkJ CQkJICovCisJCQkJCUFzc2VydChlbmRFbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fAor CQkJCQkJICAgZW5kQ291bnQgPD0gZW5kRWxlbS0+bWF4KTsKKworCQkJCQlzdGF0ZS0+ZWxlbUlk eCA9IGVsZW0tPm5leHQ7CisJCQkJCXN0YXRlLT5jb3VudHNbZW5kRGVwdGhdID0gZW5kQ291bnQ7 CisJCQkJfQorCQkJCS8qIGVsc2U6IHN0YXkgYXQgVkFSIGZvciBhZHZhbmNlIHBoYXNlICovCisJ CQl9CisJCQllbHNlCisJCQl7CisJCQkJLyoKKwkJCQkgKiBOb3QgbWF0Y2hlZCAtIHJlbW92ZSBz dGF0ZS4gRXhpdCBhbHRlcm5hdGl2ZXMgd2VyZSBhbHJlYWR5CisJCQkJICogY3JlYXRlZCBieSBh ZHZhbmNlIHBoYXNlIHdoZW4gY291bnQgPj0gbWluIHdhcyBzYXRpc2ZpZWQuCisJCQkJICovCisJ CQkJKnByZXZQdHIgPSBuZXh0U3RhdGU7CisJCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0 YXRlKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCQkvKiBOb24tVkFSIGVsZW1lbnRzOiBr ZWVwIGFzLWlzIGZvciBhZHZhbmNlIHBoYXNlICovCisKKwkJcHJldlB0ciA9ICZzdGF0ZS0+bmV4 dDsKKwl9Cit9CisKKy8qCisgKiBuZmFfcm91dGVfdG9fZWxlbQorICoKKyAqIFJvdXRlIHN0YXRl IHRvIG5leHQgZWxlbWVudC4gSWYgVkFSLCBhZGQgdG8gY3R4LT5zdGF0ZXMgYW5kIHByb2Nlc3MK KyAqIHNraXAgcGF0aCBpZiBvcHRpb25hbC4gT3RoZXJ3aXNlLCBjb250aW51ZSBlcHNpbG9uIGV4 cGFuc2lvbiB2aWEgcmVjdXJzaW9uLgorICovCitzdGF0aWMgdm9pZAorbmZhX3JvdXRlX3RvX2Vs ZW0oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJICBS UFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICpuZXh0RWxlbSwKKwkJCQkgIGlu dDY0IGN1cnJlbnRQb3MpCit7CisJaWYgKFJQUkVsZW1Jc1ZhcihuZXh0RWxlbSkpCisJeworCQlS UFJORkFTdGF0ZSAqc2tpcFN0YXRlID0gTlVMTDsKKworCQkvKiBDcmVhdGUgc2tpcCBzdGF0ZSBi ZWZvcmUgYWRkX3VuaXF1ZSwgd2hpY2ggbWF5IGZyZWUgc3RhdGUgKi8KKwkJaWYgKFJQUkVsZW1D YW5Ta2lwKG5leHRFbGVtKSkKKwkJCXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3Rh dGUsIG5leHRFbGVtLT5uZXh0LAorCQkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNB YnNvcmJhYmxlKTsKKworCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0 ZSk7CisKKwkJaWYgKHNraXBTdGF0ZSAhPSBOVUxMKQorCQkJbmZhX2FkdmFuY2Vfc3RhdGUod2lu c3RhdGUsIGN0eCwgc2tpcFN0YXRlLCBjdXJyZW50UG9zKTsKKwl9CisJZWxzZQorCXsKKwkJbmZh X2FkdmFuY2Vfc3RhdGUod2luc3RhdGUsIGN0eCwgc3RhdGUsIGN1cnJlbnRQb3MpOworCX0KK30K KworLyoKKyAqIG5mYV9hZHZhbmNlX2FsdAorICoKKyAqIEhhbmRsZSBBTFQgZWxlbWVudDogZXhw YW5kIGFsbCBicmFuY2hlcyBpbiBsZXhpY2FsIG9yZGVyIHZpYSBERlMuCisgKi8KK3N0YXRpYyB2 b2lkCituZmFfYWR2YW5jZV9hbHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250 ZXh0ICpjdHgsCisJCQkJUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxl bSwKKwkJCQlpbnQ2NCBjdXJyZW50UG9zKQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5z dGF0ZS0+cnBQYXR0ZXJuOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4t PmVsZW1lbnRzOworCVJQUkVsZW1JZHgJYWx0SWR4ID0gZWxlbS0+bmV4dDsKKworCXdoaWxlIChh bHRJZHggPj0gMCAmJiBhbHRJZHggPCBwYXR0ZXJuLT5udW1FbGVtZW50cykKKwl7CisJCVJQUlBh dHRlcm5FbGVtZW50ICphbHRFbGVtID0gJmVsZW1lbnRzW2FsdElkeF07CisJCVJQUk5GQVN0YXRl ICpuZXdTdGF0ZTsKKworCQkvKiBTdG9wIGlmIGVsZW1lbnQgaXMgb3V0c2lkZSBBTFQgc2NvcGUg KG5vdCBhIGJyYW5jaCkgKi8KKwkJaWYgKGFsdEVsZW0tPmRlcHRoIDw9IGVsZW0tPmRlcHRoKQor CQkJYnJlYWs7CisKKwkJLyogQ3JlYXRlIGluZGVwZW5kZW50IHN0YXRlIGZvciBlYWNoIGJyYW5j aCAqLworCQluZXdTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIGFsdElkeCwKKwkJ CQkJCQkJCXN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOworCisJCS8qIFJlY3Vy c2l2ZWx5IHByb2Nlc3MgdGhpcyBicmFuY2ggYmVmb3JlIG5leHQgKi8KKwkJbmZhX2FkdmFuY2Vf c3RhdGUod2luc3RhdGUsIGN0eCwgbmV3U3RhdGUsIGN1cnJlbnRQb3MpOworCQlhbHRJZHggPSBh bHRFbGVtLT5qdW1wOworCX0KKworCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7Cit9 CisKKy8qCisgKiBuZmFfYWR2YW5jZV9iZWdpbgorICoKKyAqIEhhbmRsZSBCRUdJTiBlbGVtZW50 OiBncm91cCBlbnRyeSBsb2dpYy4KKyAqIEJFR0lOIGlzIG9ubHkgdmlzaXRlZCBhdCBpbml0aWFs IGdyb3VwIGVudHJ5IChjb3VudCBpcyBhbHdheXMgMCkuCisgKiBJZiBtaW49MCwgY3JlYXRlcyBh IHNraXAgcGF0aCBwYXN0IHRoZSBncm91cC4KKyAqIExvb3AtYmFjayBmcm9tIEVORCBnb2VzIGRp cmVjdGx5IHRvIGZpcnN0IGNoaWxkLCBieXBhc3NpbmcgQkVHSU4uCisgKi8KK3N0YXRpYyB2b2lk CituZmFfYWR2YW5jZV9iZWdpbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRl eHQgKmN0eCwKKwkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVs ZW0sCisJCQkJICBpbnQ2NCBjdXJyZW50UG9zKQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3 aW5zdGF0ZS0+cnBQYXR0ZXJuOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRl cm4tPmVsZW1lbnRzOworCVJQUk5GQVN0YXRlICpza2lwU3RhdGUgPSBOVUxMOworCisJc3RhdGUt PmNvdW50c1tlbGVtLT5kZXB0aF0gPSAwOworCisJLyogT3B0aW9uYWwgZ3JvdXA6IGNyZWF0ZSBz a2lwIHBhdGggKGJ1dCBkb24ndCByb3V0ZSB5ZXQpICovCisJaWYgKGVsZW0tPm1pbiA9PSAwKQor CXsKKwkJc2tpcFN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgZWxlbS0+anVtcCwK KwkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKwl9CisKKwlp ZiAoc2tpcFN0YXRlICE9IE5VTEwgJiYgUlBSRWxlbUlzUmVsdWN0YW50KGVsZW0pKQorCXsKKwkJ UlBSTkZBU3RhdGUgKnNhdmVkTWF0Y2ggPSBjdHgtPm1hdGNoZWRTdGF0ZTsKKworCQkvKiBSZWx1 Y3RhbnQ6IHNraXAgZmlyc3QgKHByZWZlciBmZXdlciBpdGVyYXRpb25zKSwgZW50ZXIgc2Vjb25k ICovCisJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHNraXBTdGF0ZSwKKwkJCQkJ CSAgJmVsZW1lbnRzW2VsZW0tPmp1bXBdLCBjdXJyZW50UG9zKTsKKworCQkvKgorCQkgKiBJZiBz a2lwIHBhdGggcmVhY2hlZCBGSU4sIHNob3J0ZXN0IG1hdGNoIGlzIGZvdW5kLiBTa2lwIGdyb3Vw IGVudHJ5CisJCSAqIHRvIHByZXZlbnQgbG9uZ2VyIG1hdGNoZXMuCisJCSAqLworCQlpZiAoY3R4 LT5tYXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRjaCkKKwkJeworCQkJbmZhX3N0YXRlX2ZyZWUod2lu c3RhdGUsIHN0YXRlKTsKKwkJCXJldHVybjsKKwkJfQorCisJCXN0YXRlLT5lbGVtSWR4ID0gZWxl bS0+bmV4dDsKKwkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsCisJCQkJ CQkgICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQb3MpOworCX0KKwllbHNlCisJ eworCQkvKiBHcmVlZHk6IGVudGVyIGZpcnN0LCBza2lwIHNlY29uZCAqLworCQlzdGF0ZS0+ZWxl bUlkeCA9IGVsZW0tPm5leHQ7CisJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0 YXRlLAorCQkJCQkJICAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdLCBjdXJyZW50UG9zKTsKKwor CQlpZiAoc2tpcFN0YXRlICE9IE5VTEwpCisJCXsKKwkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0 YXRlLCBjdHgsIHNraXBTdGF0ZSwKKwkJCQkJCQkgICZlbGVtZW50c1tlbGVtLT5qdW1wXSwgY3Vy cmVudFBvcyk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBuZmFfYWR2YW5jZV9lbmQKKyAqCisgKiBI YW5kbGUgRU5EIGVsZW1lbnQ6IGdyb3VwIHJlcGV0aXRpb24gbG9naWMuCisgKiBEZWNpZGVzIHdo ZXRoZXIgdG8gbG9vcCBiYWNrIG9yIGV4aXQgYmFzZWQgb24gY291bnQgdnMgbWluL21heC4KKyAq Lworc3RhdGljIHZvaWQKK25mYV9hZHZhbmNlX2VuZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQlSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5F bGVtZW50ICplbGVtLAorCQkJCWludDY0IGN1cnJlbnRQb3MpCit7CisJUlBSUGF0dGVybiAqcGF0 dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47CisJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW1lbnRz ID0gcGF0dGVybi0+ZWxlbWVudHM7CisJaW50CQkJZGVwdGggPSBlbGVtLT5kZXB0aDsKKwlpbnQz MgkJY291bnQgPSBzdGF0ZS0+Y291bnRzW2RlcHRoXTsKKworCWlmIChjb3VudCA8IGVsZW0tPm1p bikKKwl7CisJCVJQUlBhdHRlcm5FbGVtZW50ICpqdW1wRWxlbTsKKwkJUlBSTkZBU3RhdGUgKmZm U3RhdGUgPSBOVUxMOworCisJCS8qIFNuYXBzaG90IHN0YXRlIGZvciBmZiBwYXRoIGJlZm9yZSBt b2RpZnlpbmcgZm9yIGxvb3AtYmFjayAqLworCQlpZiAoUlBSRWxlbUNhbkVtcHR5TG9vcChlbGVt KSkKKwkJCWZmU3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBzdGF0ZS0+ZWxlbUlk eCwKKwkJCQkJCQkJCSAgIHN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOworCisJ CS8qIExvb3AgYmFjayBmb3IgcmVhbCBtYXRjaGVzIChwcmltYXJ5IHBhdGgpICovCisJCWZvciAo aW50IGQgPSBkZXB0aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQorCQkJc3RhdGUt PmNvdW50c1tkXSA9IDA7CisJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKKwkJanVtcEVs ZW0gPSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOworCQluZmFfcm91dGVfdG9fZWxlbSh3aW5z dGF0ZSwgY3R4LCBzdGF0ZSwganVtcEVsZW0sCisJCQkJCQkgIGN1cnJlbnRQb3MpOworCisJCS8q CisJCSAqIEZhc3QtZm9yd2FyZCBmYWxsYmFjayBmb3IgbnVsbGFibGUgYm9kaWVzLiAgRS5nLiAo QT8pezIsM30gd2hlbiBBCisJCSAqIGRvZXNuJ3QgbWF0Y2g6IHRoZSBsb29wLWJhY2sgcHJvZHVj ZXMgZW1wdHkgaXRlcmF0aW9ucyB0aGF0IGN5Y2xlCisJCSAqIGRldGVjdGlvbiB3b3VsZCBraWxs LiAgSW5zdGVhZCwgZXhpdCBkaXJlY3RseSB0cmVhdGluZyBhbGwKKwkJICogcmVtYWluaW5nIHJl cXVpcmVkIGl0ZXJhdGlvbnMgYXMgZW1wdHkuICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QKKwkJ ICogbmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZCBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5L3Jl bHVjdGFudCBsb29wCisJCSAqIHN0YXRlcy4KKwkJICovCisJCWlmIChmZlN0YXRlICE9IE5VTEwp CisJCXsKKwkJCVJQUlBhdHRlcm5FbGVtZW50ICpuZXh0RWxlbTsKKworCQkJZmZTdGF0ZS0+Y291 bnRzW2RlcHRoXSA9IDA7CisJCQlmZlN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKKwkJCW5l eHRFbGVtID0gJmVsZW1lbnRzW2ZmU3RhdGUtPmVsZW1JZHhdOworCisJCQkvKiBFTkQtPkVORDog aW5jcmVtZW50IG91dGVyIEVORCdzIGNvdW50ICovCisJCQlpZiAoUlBSRWxlbUlzRW5kKG5leHRF bGVtKSAmJgorCQkJCWZmU3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdIDwgUlBSX0NPVU5U X01BWCkKKwkJCQlmZlN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOworCisJCQluZmFf cm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBmZlN0YXRlLCBuZXh0RWxlbSwKKwkJCQkJCQkg IGN1cnJlbnRQb3MpOworCQl9CisJfQorCWVsc2UgaWYgKGVsZW0tPm1heCAhPSBSUFJfUVVBTlRJ VFlfSU5GICYmIGNvdW50ID49IGVsZW0tPm1heCkKKwl7CisJCS8qIE11c3QgZXhpdDogcmVhY2hl ZCBtYXggaXRlcmF0aW9ucy4gKi8KKwkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOworCisJ CXN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKKwkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0 OworCQluZXh0RWxlbSA9ICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF07CisKKwkJLyogRU5ELT5F TkQ6IGluY3JlbWVudCBvdXRlciBFTkQncyBjb3VudCAqLworCQlpZiAoUlBSRWxlbUlzRW5kKG5l eHRFbGVtKSAmJiBzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFY KQorCQkJc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CisKKwkJbmZhX3JvdXRlX3Rv X2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIG5leHRFbGVtLCBjdXJyZW50UG9zKTsKKwl9CisJ ZWxzZQorCXsKKwkJLyoKKwkJICogQmV0d2VlbiBtaW4gYW5kIG1heCAod2l0aCBhdCBsZWFzdCBv bmUgaXRlcmF0aW9uKSAtIGNhbiBleGl0IG9yCisJCSAqIGxvb3AuIEdyZWVkeTogbG9vcCBmaXJz dCAocHJlZmVyIG1vcmUgaXRlcmF0aW9ucykuIFJlbHVjdGFudDogZXhpdAorCQkgKiBmaXJzdCAo cHJlZmVyIGZld2VyIGl0ZXJhdGlvbnMpLgorCQkgKi8KKwkJUlBSTkZBU3RhdGUgKmV4aXRTdGF0 ZTsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKmp1bXBFbGVtOworCQlSUFJQYXR0ZXJuRWxlbWVudCAq bmV4dEVsZW07CisKKwkJLyoKKwkJICogQ3JlYXRlIGV4aXQgc3RhdGUgZmlyc3QgKG5lZWQgb3Jp Z2luYWwgY291bnRzIGJlZm9yZSBtb2RpZnlpbmcKKwkJICogc3RhdGUpCisJCSAqLworCQlleGl0 U3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBlbGVtLT5uZXh0LAorCQkJCQkJCQkJ IHN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOworCQlleGl0U3RhdGUtPmNvdW50 c1tkZXB0aF0gPSAwOworCQluZXh0RWxlbSA9ICZlbGVtZW50c1tleGl0U3RhdGUtPmVsZW1JZHhd OworCisJCS8qIEVORC0+RU5EOiBpbmNyZW1lbnQgb3V0ZXIgRU5EJ3MgY291bnQgKi8KKwkJaWYg KFJQUkVsZW1Jc0VuZChuZXh0RWxlbSkgJiYgZXhpdFN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRl cHRoXSA8IFJQUl9DT1VOVF9NQVgpCisJCQlleGl0U3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVw dGhdKys7CisKKwkJLyogUHJlcGFyZSBsb29wIHN0YXRlICovCisJCWZvciAoaW50IGQgPSBkZXB0 aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQorCQkJc3RhdGUtPmNvdW50c1tkXSA9 IDA7CisJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKKwkJanVtcEVsZW0gPSAmZWxlbWVu dHNbc3RhdGUtPmVsZW1JZHhdOworCisJCWlmIChSUFJFbGVtSXNSZWx1Y3RhbnQoZWxlbSkpCisJ CXsKKwkJCVJQUk5GQVN0YXRlICpzYXZlZE1hdGNoID0gY3R4LT5tYXRjaGVkU3RhdGU7CisKKwkJ CS8qIEV4aXQgZmlyc3QgKHByZWZlcnJlZCBmb3IgcmVsdWN0YW50KSAqLworCQkJbmZhX3JvdXRl X3RvX2VsZW0od2luc3RhdGUsIGN0eCwgZXhpdFN0YXRlLCBuZXh0RWxlbSwKKwkJCQkJCQkgIGN1 cnJlbnRQb3MpOworCisJCQkvKgorCQkJICogSWYgZXhpdCBwYXRoIHJlYWNoZWQgRklOLCBzaG9y dGVzdCBtYXRjaCBpcyBmb3VuZC4gU2tpcCBsb29wIHRvCisJCQkgKiBwcmV2ZW50IGxvbmdlciBt YXRjaGVzIGZyb20gcmVwbGFjaW5nIGl0LgorCQkJICovCisJCQlpZiAoY3R4LT5tYXRjaGVkU3Rh dGUgIT0gc2F2ZWRNYXRjaCkKKwkJCXsKKwkJCQluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgc3Rh dGUpOworCQkJCXJldHVybjsKKwkJCX0KKworCQkJLyogTG9vcCBzZWNvbmQgKi8KKwkJCW5mYV9y b3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBqdW1wRWxlbSwKKwkJCQkJCQkgIGN1 cnJlbnRQb3MpOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogTG9vcCBmaXJzdCAocHJlZmVycmVk IGZvciBncmVlZHkpICovCisJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0 ZSwganVtcEVsZW0sCisJCQkJCQkJICBjdXJyZW50UG9zKTsKKwkJCS8qIEV4aXQgc2Vjb25kICov CisJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBleGl0U3RhdGUsIG5leHRFbGVt LAorCQkJCQkJCSAgY3VycmVudFBvcyk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBuZmFfYWR2YW5j ZV92YXIKKyAqCisgKiBIYW5kbGUgVkFSIGVsZW1lbnQ6IGxvb3AvZXhpdCB0cmFuc2l0aW9ucy4K KyAqIEFmdGVyIG1hdGNoIHBoYXNlLCBhbGwgVkFSIHN0YXRlcyBoYXZlIG1hdGNoZWQgLSBkZWNp ZGUgbmV4dCBhY3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCituZmFfYWR2YW5jZV92YXIoV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJUlBSTkZBU3RhdGUg KnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKKwkJCQlpbnQ2NCBjdXJyZW50UG9zKQor eworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0ZS0+cnBQYXR0ZXJuOworCVJQUlBhdHRl cm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVsZW1lbnRzOworCWludAkJCWRlcHRoID0g ZWxlbS0+ZGVwdGg7CisJaW50MzIJCWNvdW50ID0gc3RhdGUtPmNvdW50c1tkZXB0aF07CisJYm9v bAkJY2FuTG9vcCA9IChlbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fCBjb3VudCA8IGVs ZW0tPm1heCk7CisJYm9vbAkJY2FuRXhpdCA9IChjb3VudCA+PSBlbGVtLT5taW4pOworCisJLyog QWZ0ZXIgYSBzdWNjZXNzZnVsIG1hdGNoLCBjb3VudCA+PSAxLCBzbyBhdCBsZWFzdCBvbmUgbXVz dCBiZSB0cnVlICovCisJQXNzZXJ0KGNhbkxvb3AgfHwgY2FuRXhpdCk7CisKKwlpZiAoY2FuTG9v cCAmJiBjYW5FeGl0KQorCXsKKwkJLyoKKwkJICogQm90aCBsb29wIGFuZCBleGl0IHBvc3NpYmxl LiBHcmVlZHk6IGxvb3AgZmlyc3QgKHByZWZlciBsb25nZXIKKwkJICogbWF0Y2gpLiBSZWx1Y3Rh bnQ6IGV4aXQgZmlyc3QgKHByZWZlciBzaG9ydGVyIG1hdGNoKS4KKwkJICovCisJCVJQUk5GQVN0 YXRlICpjbG9uZVN0YXRlOworCQlSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW07CisJCWJvb2wJ CXJlbHVjdGFudCA9IFJQUkVsZW1Jc1JlbHVjdGFudChlbGVtKTsKKworCQkvKgorCQkgKiBDbG9u ZSBzdGF0ZSBmb3IgdGhlIHNlY29uZC1wcmlvcml0eSBwYXRoLiBGb3IgZ3JlZWR5LCBjbG9uZSBp cyB0aGUKKwkJICogbG9vcCBzdGF0ZTsgZm9yIHJlbHVjdGFudCwgY2xvbmUgaXMgdGhlIGV4aXQg c3RhdGUuCisJCSAqLworCQlpZiAocmVsdWN0YW50KQorCQl7CisJCQlSUFJORkFTdGF0ZSAqc2F2 ZWRNYXRjaCA9IGN0eC0+bWF0Y2hlZFN0YXRlOworCisJCQkvKiBDbG9uZSBmb3IgZXhpdCwgb3Jp Z2luYWwgc3RheXMgZm9yIGxvb3AgKi8KKwkJCWNsb25lU3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRl KHdpbnN0YXRlLCBlbGVtLT5uZXh0LAorCQkJCQkJCQkJCSAgc3RhdGUtPmNvdW50cywgc3RhdGUt PmlzQWJzb3JiYWJsZSk7CisJCQljbG9uZVN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKKwkJCW5l eHRFbGVtID0gJmVsZW1lbnRzW2Nsb25lU3RhdGUtPmVsZW1JZHhdOworCisJCQkvKiBXaGVuIGV4 aXRpbmcgZGlyZWN0bHkgdG8gYW4gb3V0ZXIgRU5ELCBpbmNyZW1lbnQgaXRzIGNvdW50ICovCisJ CQlpZiAoUlBSRWxlbUlzRW5kKG5leHRFbGVtKSkKKwkJCXsKKwkJCQlpZiAoY2xvbmVTdGF0ZS0+ Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQorCQkJCQljbG9uZVN0YXRl LT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOworCQkJfQorCisJCQkvKiBFeGl0IGZpcnN0IChw cmVmZXJyZWQgZm9yIHJlbHVjdGFudCkgKi8KKwkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRl LCBjdHgsIGNsb25lU3RhdGUsIG5leHRFbGVtLAorCQkJCQkJCSAgY3VycmVudFBvcyk7CisKKwkJ CS8qCisJCQkgKiBJZiBleGl0IHBhdGggcmVhY2hlZCBGSU4sIHRoZSBzaG9ydGVzdCBtYXRjaCBp cyBmb3VuZC4gU2tpcAorCQkJICogbG9vcCBzdGF0ZSB0byBwcmV2ZW50IGxvbmdlciBtYXRjaGVz IGZyb20gcmVwbGFjaW5nIGl0LgorCQkJICovCisJCQlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0g c2F2ZWRNYXRjaCkKKwkJCXsKKwkJCQluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgc3RhdGUpOwor CQkJCXJldHVybjsKKwkJCX0KKworCQkJLyogTG9vcCBzZWNvbmQgKi8KKwkJCW5mYV9hZGRfc3Rh dGVfdW5pcXVlKHdpbnN0YXRlLCBjdHgsIHN0YXRlKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8q IENsb25lIGZvciBsb29wLCBvcmlnaW5hbCB1c2VkIGZvciBleGl0ICovCisJCQljbG9uZVN0YXRl ID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgc3RhdGUtPmVsZW1JZHgsCisJCQkJCQkJCQkJ ICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKworCQkJLyogTG9vcCBmaXJz dCAocHJlZmVycmVkIGZvciBncmVlZHkpICovCisJCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3aW5z dGF0ZSwgY3R4LCBjbG9uZVN0YXRlKTsKKworCQkJLyogRXhpdCBzZWNvbmQgKi8KKwkJCXN0YXRl LT5jb3VudHNbZGVwdGhdID0gMDsKKwkJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKKwkJ CW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKKworCQkJLyoKKwkJCSAqIFdo ZW4gZXhpdGluZyBkaXJlY3RseSB0byBhbiBvdXRlciBFTkQsIGluY3JlbWVudCBpdHMgaXRlcmF0 aW9uCisJCQkgKiBjb3VudC4gIFNpbXBsZSBWQVJzIChtaW49bWF4PTEpIGhhbmRsZSB0aGlzIHZp YSBpbmxpbmUgYWR2YW5jZQorCQkJICogaW4gbmZhX21hdGNoLCBidXQgcXVhbnRpZmllZCBWQVJz IGJ5cGFzcyB0aGF0IHBhdGguCisJCQkgKi8KKwkJCWlmIChSUFJFbGVtSXNFbmQobmV4dEVsZW0p KQorCQkJeworCQkJCWlmIChzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09V TlRfTUFYKQorCQkJCQlzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0rKzsKKwkJCX0KKwor CQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIG5leHRFbGVtLAorCQkJ CQkJCSAgY3VycmVudFBvcyk7CisJCX0KKwl9CisJZWxzZSBpZiAoY2FuTG9vcCkKKwl7CisJCS8q IExvb3Agb25seToga2VlcCBzdGF0ZSBhcy1pcyAqLworCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3 aW5zdGF0ZSwgY3R4LCBzdGF0ZSk7CisJfQorCWVsc2UgaWYgKGNhbkV4aXQpCisJeworCQkvKiBF eGl0IG9ubHk6IGFkdmFuY2UgdG8gbmV4dCBlbGVtZW50ICovCisJCVJQUlBhdHRlcm5FbGVtZW50 ICpuZXh0RWxlbTsKKworCQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9IDA7CisJCXN0YXRlLT5lbGVt SWR4ID0gZWxlbS0+bmV4dDsKKwkJbmV4dEVsZW0gPSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhd OworCisJCS8qIFNlZSBjb21tZW50IGFib3ZlOiBpbmNyZW1lbnQgb3V0ZXIgRU5EIGNvdW50IGZv ciBxdWFudGlmaWVkIFZBUnMgKi8KKwkJaWYgKFJQUkVsZW1Jc0VuZChuZXh0RWxlbSkpCisJCXsK KwkJCWlmIChzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQor CQkJCXN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOworCQl9CisKKwkJbmZhX3JvdXRl X3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIG5leHRFbGVtLCBjdXJyZW50UG9zKTsKKwl9 Cit9CisKKy8qCisgKiBuZmFfYWR2YW5jZV9zdGF0ZQorICoKKyAqIFJlY3Vyc2l2ZWx5IHByb2Nl c3MgYSBzaW5nbGUgc3RhdGUgdGhyb3VnaCBlcHNpbG9uIHRyYW5zaXRpb25zLgorICogREZTIHRy YXZlcnNhbCBlbnN1cmVzIHN0YXRlcyBhcmUgYWRkZWQgdG8gY3R4LT5zdGF0ZXMgaW4gbGV4aWNh bCBvcmRlci4KKyAqLworc3RhdGljIHZvaWQKK25mYV9hZHZhbmNlX3N0YXRlKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCSAgUlBSTkZBU3RhdGUgKnN0 YXRlLCBpbnQ2NCBjdXJyZW50UG9zKQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0 ZS0+cnBQYXR0ZXJuOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtOworCisJQXNzZXJ0KHN0YXRl LT5lbGVtSWR4ID49IDAgJiYgc3RhdGUtPmVsZW1JZHggPCBwYXR0ZXJuLT5udW1FbGVtZW50cyk7 CisKKwkvKiBDeWNsZSBkZXRlY3Rpb246IGlmIHRoaXMgZWxlbUlkeCB3YXMgYWxyZWFkeSB2aXNp dGVkIGluIHRoaXMgREZTLCBiYWlsICovCisJaWYgKHdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXNb V09SRE5VTShzdGF0ZS0+ZWxlbUlkeCldICYKKwkJKChiaXRtYXB3b3JkKSAxIDw8IEJJVE5VTShz dGF0ZS0+ZWxlbUlkeCkpKQorCXsKKwkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsK KwkJcmV0dXJuOworCX0KKwl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUt PmVsZW1JZHgpXSB8PQorCQkoKGJpdG1hcHdvcmQpIDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4 KSk7CisKKwllbGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKKworCXN3 aXRjaCAoZWxlbS0+dmFySWQpCisJeworCQljYXNlIFJQUl9WQVJJRF9GSU46CisJCQkvKiBGSU46 IHJlY29yZCBtYXRjaCAqLworCQkJbmZhX2FkZF9tYXRjaGVkX3N0YXRlKHdpbnN0YXRlLCBjdHgs IHN0YXRlLCBjdXJyZW50UG9zKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUlBSX1ZBUklEX0FMVDoK KwkJCW5mYV9hZHZhbmNlX2FsdCh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgZWxlbSwgY3VycmVudFBv cyk7CisJCQlicmVhazsKKworCQljYXNlIFJQUl9WQVJJRF9CRUdJTjoKKwkJCW5mYV9hZHZhbmNl X2JlZ2luKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBlbGVtLCBjdXJyZW50UG9zKTsKKwkJCWJyZWFr OworCisJCWNhc2UgUlBSX1ZBUklEX0VORDoKKwkJCW5mYV9hZHZhbmNlX2VuZCh3aW5zdGF0ZSwg Y3R4LCBzdGF0ZSwgZWxlbSwgY3VycmVudFBvcyk7CisJCQlicmVhazsKKworCQlkZWZhdWx0Ogor CQkJLyogVkFSIGVsZW1lbnQgKi8KKwkJCW5mYV9hZHZhbmNlX3Zhcih3aW5zdGF0ZSwgY3R4LCBz dGF0ZSwgZWxlbSwgY3VycmVudFBvcyk7CisJCQlicmVhazsKKwl9Cit9CisKKy8qCisgKiBuZmFf YWR2YW5jZQorICoKKyAqIEFkdmFuY2UgcGhhc2UgKGRpdmVyZ2VuY2UpOiB0cmFuc2l0aW9uIGZy b20gYWxsIHN1cnZpdmluZyBzdGF0ZXMuCisgKiBDYWxsZWQgYWZ0ZXIgbWF0Y2ggcGhhc2Ugd2l0 aCBtYXRjaGVkIFZBUiBzdGF0ZXMsIG9yIGF0IGNvbnRleHQgY3JlYXRpb24KKyAqIGZvciBpbml0 aWFsIGVwc2lsb24gZXhwYW5zaW9uICh3aXRoIGN1cnJlbnRQb3MgPSBzdGFydFBvcyAtIDEpLgor ICoKKyAqIFByb2Nlc3NlcyBzdGF0ZXMgaW4gb3JkZXIsIHVzaW5nIHJlY3Vyc2l2ZSBERlMgdG8g bWFpbnRhaW4gbGV4aWNhbCBvcmRlci4KKyAqLworc3RhdGljIHZvaWQKK25mYV9hZHZhbmNlKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBpbnQ2NCBjdXJyZW50 UG9zKQoreworCVJQUk5GQVN0YXRlICpzdGF0ZXMgPSBjdHgtPnN0YXRlczsKKwlSUFJORkFTdGF0 ZSAqc3RhdGU7CisKKwljdHgtPnN0YXRlcyA9IE5VTEw7CQkJLyogV2lsbCByZWJ1aWxkICovCisK KwkvKiBQcm9jZXNzIGVhY2ggc3RhdGUgaW4gbGV4aWNhbCBvcmRlciAoREZTIG9yZGVyIGZyb20g cHJldmlvdXMgYWR2YW5jZSkgKi8KKwl3aGlsZSAoc3RhdGVzICE9IE5VTEwpCisJeworCQlSUFJO RkFTdGF0ZSAqc2F2ZWRNYXRjaGVkU3RhdGUgPSBjdHgtPm1hdGNoZWRTdGF0ZTsKKworCQkvKiBD bGVhciB2aXNpdGVkIGJpdG1hcCBiZWZvcmUgZWFjaCBzdGF0ZSdzIERGUyBleHBhbnNpb24gKi8K KwkJbWVtc2V0KHdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXMsIDAsCisJCQkgICBzaXplb2YoYml0 bWFwd29yZCkgKiB3aW5zdGF0ZS0+bmZhVmlzaXRlZE5Xb3Jkcyk7CisKKwkJc3RhdGUgPSBzdGF0 ZXM7CisJCXN0YXRlcyA9IHN0YXRlcy0+bmV4dDsKKwkJc3RhdGUtPm5leHQgPSBOVUxMOworCisJ CW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBjdXJyZW50UG9zKTsKKwor CQkvKgorCQkgKiBFYXJseSB0ZXJtaW5hdGlvbjogaWYgYSBGSU4gd2FzIG5ld2x5IHJlYWNoZWQg aW4gdGhpcyBhZHZhbmNlLAorCQkgKiByZW1haW5pbmcgb2xkIHN0YXRlcyBoYXZlIHdvcnNlIGxl eGljYWwgb3JkZXIgYW5kIGNhbiBiZSBwcnVuZWQuCisJCSAqIE9ubHkgY2hlY2sgZm9yIG5ldyBG SU4gYXJyaXZhbHMgKG5vdCBvbmVzIGZyb20gcHJldmlvdXMgcm93cykuCisJCSAqLworCQlpZiAo Y3R4LT5tYXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRjaGVkU3RhdGUgJiYgc3RhdGVzICE9IE5VTEwp CisJCXsKKwkJCW5mYV9zdGF0ZV9mcmVlX2xpc3Qod2luc3RhdGUsIHN0YXRlcyk7CisJCQlicmVh azsKKwkJfQorCX0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEFQSSBleHBvc2VkIHRvIG5v ZGVXaW5kb3dBZ2cuYworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogRXhlY1JQUlN0YXJ0Q29u dGV4dAorICoKKyAqIFN0YXJ0IGEgbmV3IG1hdGNoIGNvbnRleHQgYXQgZ2l2ZW4gcG9zaXRpb24u CisgKiBJbml0aWFsaXplcyBjb250ZXh0LCBzdGF0ZSBhYnNvcnB0aW9uIGZsYWdzLCBhbmQgcGVy Zm9ybXMgaW5pdGlhbCBhZHZhbmNlCisgKiB0byBleHBhbmQgZXBzaWxvbiB0cmFuc2l0aW9ucyAo QUxUIGJyYW5jaGVzLCBvcHRpb25hbCBlbGVtZW50cykuCisgKiBBZGRzIGNvbnRleHQgdG8gdGhl IHRhaWwgb2Ygd2luc3RhdGUtPm5mYUNvbnRleHQgbGlzdC4KKyAqLworUlBSTkZBQ29udGV4dCAq CitFeGVjUlBSU3RhcnRDb250ZXh0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgc3Rh cnRQb3MpCit7CisJUlBSTkZBQ29udGV4dCAqY3R4OworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3 aW5zdGF0ZS0+cnBQYXR0ZXJuOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtOworCisJY3R4ID0g bmZhX2NvbnRleHRfYWxsb2Mod2luc3RhdGUpOworCWN0eC0+bWF0Y2hTdGFydFJvdyA9IHN0YXJ0 UG9zOworCWN0eC0+c3RhdGVzID0gbmZhX3N0YXRlX2FsbG9jKHdpbnN0YXRlKTsJLyogaW5pdGlh bCBzdGF0ZSBhdCBlbGVtIDAgKi8KKworCWVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbMF07CisK KwlpZiAoUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChlbGVtKSkKKwl7CisJCWN0eC0+c3RhdGVz LT5pc0Fic29yYmFibGUgPSB0cnVlOworCX0KKwllbHNlCisJeworCQljdHgtPmhhc0Fic29yYmFi bGVTdGF0ZSA9IGZhbHNlOworCQljdHgtPmFsbFN0YXRlc0Fic29yYmFibGUgPSBmYWxzZTsKKwkJ Y3R4LT5zdGF0ZXMtPmlzQWJzb3JiYWJsZSA9IGZhbHNlOworCX0KKworCS8qIEFkZCB0byB0YWls IG9mIGFjdGl2ZSBjb250ZXh0IGxpc3QgKGRvdWJseS1saW5rZWQsIG9sZGVzdC1maXJzdCkgKi8K KwljdHgtPnByZXYgPSB3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWw7CisJY3R4LT5uZXh0ID0gTlVM TDsKKwlpZiAod2luc3RhdGUtPm5mYUNvbnRleHRUYWlsICE9IE5VTEwpCisJCXdpbnN0YXRlLT5u ZmFDb250ZXh0VGFpbC0+bmV4dCA9IGN0eDsKKwllbHNlCisJCXdpbnN0YXRlLT5uZmFDb250ZXh0 ID0gY3R4OyAvKiBmaXJzdCBjb250ZXh0IGJlY29tZXMgaGVhZCAqLworCXdpbnN0YXRlLT5uZmFD b250ZXh0VGFpbCA9IGN0eDsKKworCS8qCisJICogSW5pdGlhbCBhZHZhbmNlIChkaXZlcmdlbmNl KTogZXhwYW5kIEFMVCBicmFuY2hlcyBhbmQgY3JlYXRlIGV4aXQKKwkgKiBzdGF0ZXMgZm9yIFZB UiBlbGVtZW50cyB3aXRoIG1pbj0wLiBUaGlzIHByZXBhcmVzIHRoZSBjb250ZXh0IGZvciB0aGUK KwkgKiBmaXJzdCByb3cncyBtYXRjaCBwaGFzZS4KKwkgKgorCSAqIFVzZSBzdGFydFBvcyAtIDEg YXMgY3VycmVudFBvcyBzaW5jZSBubyByb3cgaGFzIGJlZW4gY29uc3VtZWQgeWV0LiBJZgorCSAq IEZJTiBpcyByZWFjaGVkIHZpYSBlcHNpbG9uIHRyYW5zaXRpb25zLCBtYXRjaEVuZFJvdyA9IHN0 YXJ0UG9zIC0gMQorCSAqIHdoaWNoIGlzIGxlc3MgdGhhbiBtYXRjaFN0YXJ0Um93LCByZXN1bHRp bmcgaW4gVU5NQVRDSEVEIHRyZWF0bWVudC4KKwkgKi8KKwluZmFfYWR2YW5jZSh3aW5zdGF0ZSwg Y3R4LCBzdGFydFBvcyAtIDEpOworCisJcmV0dXJuIGN0eDsKK30KKworLyoKKyAqIEV4ZWNSUFJH ZXRIZWFkQ29udGV4dAorICoKKyAqIFJldHVybiB0aGUgaGVhZCBjb250ZXh0IGlmIGl0cyBzdGFy dCBwb3NpdGlvbiBtYXRjaGVzIHBvcy4KKyAqIFJldHVybnMgTlVMTCBpZiBubyBjb250ZXh0IGV4 aXN0cyBvciBoZWFkIGRvZXNuJ3QgbWF0Y2ggcG9zLgorICovCitSUFJORkFDb250ZXh0ICoKK0V4 ZWNSUFJHZXRIZWFkQ29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykK K3sKKwlSUFJORkFDb250ZXh0ICpjdHggPSB3aW5zdGF0ZS0+bmZhQ29udGV4dDsKKworCS8qCisJ ICogQ29udGV4dHMgYXJlIHNvcnRlZCBieSBtYXRjaFN0YXJ0Um93IGFzY2VuZGluZy4gIElmIHRo ZSBoZWFkIGNvbnRleHQKKwkgKiBkb2Vzbid0IG1hdGNoIHBvcywgbm8gY29udGV4dCBleGlzdHMg Zm9yIHRoaXMgcG9zaXRpb24uCisJICovCisJaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWF0Y2hT dGFydFJvdyAhPSBwb3MpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuIGN0eDsKK30KKworLyoK KyAqIEV4ZWNSUFJGcmVlQ29udGV4dAorICoKKyAqIFVubGluayBjb250ZXh0IGZyb20gYWN0aXZl IGxpc3QgYW5kIHJldHVybiBpdCB0byBmcmVlIGxpc3QuCisgKiBBbHNvIGZyZWVzIGFueSBzdGF0 ZXMgaW4gdGhlIGNvbnRleHQuCisgKi8KK3ZvaWQKK0V4ZWNSUFJGcmVlQ29udGV4dChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCkKK3sKKwkvKiBVbmxpbmsgZnJv bSBhY3RpdmUgbGlzdCBmaXJzdCAqLworCW5mYV91bmxpbmtfY29udGV4dCh3aW5zdGF0ZSwgY3R4 KTsKKworCS8qIFVwZGF0ZSBzdGF0aXN0aWNzICovCisJd2luc3RhdGUtPm5mYUNvbnRleHRzQWN0 aXZlLS07CisKKwlpZiAoY3R4LT5zdGF0ZXMgIT0gTlVMTCkKKwkJbmZhX3N0YXRlX2ZyZWVfbGlz dCh3aW5zdGF0ZSwgY3R4LT5zdGF0ZXMpOworCWlmIChjdHgtPm1hdGNoZWRTdGF0ZSAhPSBOVUxM KQorCQluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgY3R4LT5tYXRjaGVkU3RhdGUpOworCisJY3R4 LT5zdGF0ZXMgPSBOVUxMOworCWN0eC0+bWF0Y2hlZFN0YXRlID0gTlVMTDsKKwljdHgtPm5leHQg PSB3aW5zdGF0ZS0+bmZhQ29udGV4dEZyZWU7CisJd2luc3RhdGUtPm5mYUNvbnRleHRGcmVlID0g Y3R4OworfQorCisvKgorICogRXhlY1JQUlJlY29yZENvbnRleHRTdWNjZXNzCisgKgorICogUmVj b3JkIGEgc3VjY2Vzc2Z1bCBjb250ZXh0IGluIHN0YXRpc3RpY3MuCisgKi8KK3ZvaWQKK0V4ZWNS UFJSZWNvcmRDb250ZXh0U3VjY2VzcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IG1h dGNoTGVuKQoreworCXdpbnN0YXRlLT5uZmFNYXRjaGVzU3VjY2VlZGVkKys7CisJbmZhX3VwZGF0 ZV9sZW5ndGhfc3RhdHMod2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQsCisJCQkJCQkJJndp bnN0YXRlLT5uZmFNYXRjaExlbiwKKwkJCQkJCQltYXRjaExlbik7Cit9CisKKy8qCisgKiBFeGVj UlBSUmVjb3JkQ29udGV4dEZhaWx1cmUKKyAqCisgKiBSZWNvcmQgYSBmYWlsZWQgY29udGV4dCBp biBzdGF0aXN0aWNzLgorICogSWYgZmFpbGVkTGVuID09IDEsIGNvdW50IGFzIHBydW5lZCAoZmFp bGVkIG9uIGZpcnN0IHJvdykuCisgKiBJZiBmYWlsZWRMZW4gPiAxLCBjb3VudCBhcyBtaXNtYXRj aGVkIGFuZCB1cGRhdGUgbGVuZ3RoIHN0YXRzLgorICovCit2b2lkCitFeGVjUlBSUmVjb3JkQ29u dGV4dEZhaWx1cmUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBmYWlsZWRMZW4pCit7 CisJaWYgKGZhaWxlZExlbiA9PSAxKQorCXsKKwkJd2luc3RhdGUtPm5mYUNvbnRleHRzUHJ1bmVk Kys7CisJfQorCWVsc2UKKwl7CisJCXdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkKys7CisJCW5m YV91cGRhdGVfbGVuZ3RoX3N0YXRzKHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkLAorCQkJCQkJ CQkmd2luc3RhdGUtPm5mYUZhaWxMZW4sCisJCQkJCQkJCWZhaWxlZExlbik7CisJfQorfQorCisv KgorICogRXhlY1JQUlByb2Nlc3NSb3cKKyAqCisgKiBQcm9jZXNzIGFsbCBjb250ZXh0cyBmb3Ig b25lIHJvdzoKKyAqICAgMS4gTWF0Y2ggYWxsIGNvbnRleHRzIChjb252ZXJnZW5jZSkgLSBldmFs dWF0ZSBWQVJzLCBwcnVuZSBkZWFkIHN0YXRlcworICogICAyLiBBYnNvcmIgcmVkdW5kYW50IGNv bnRleHRzIC0gaWRlYWwgdGltaW5nIGFmdGVyIGNvbnZlcmdlbmNlCisgKiAgIDMuIEFkdmFuY2Ug YWxsIGNvbnRleHRzIChkaXZlcmdlbmNlKSAtIGNyZWF0ZSBuZXcgc3RhdGVzIGZvciBuZXh0IHJv dworICovCit2b2lkCitFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IGludDY0IGN1cnJlbnRQb3MsCisJCQkJICBib29sIGhhc0xpbWl0ZWRGcmFtZSwgaW50NjQgZnJh bWVPZmZzZXQpCit7CisJUlBSTkZBQ29udGV4dCAqY3R4OworCWJvb2wJICAgKnZhck1hdGNoZWQg PSB3aW5zdGF0ZS0+bmZhVmFyTWF0Y2hlZDsKKworCS8qCisJICogUGhhc2UgMTogTWF0Y2ggYWxs IGNvbnRleHRzIChjb252ZXJnZW5jZSkuICBFdmFsdWF0ZSBWQVIgZWxlbWVudHMsCisJICogdXBk YXRlIGNvdW50cywgcmVtb3ZlIGRlYWQgc3RhdGVzLgorCSAqLworCWZvciAoY3R4ID0gd2luc3Rh dGUtPm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBjdHgtPm5leHQpCisJeworCQlpZiAo Y3R4LT5zdGF0ZXMgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCS8qIENoZWNrIGZyYW1lIGJv dW5kYXJ5IC0gZmluYWxpemUgaWYgZXhjZWVkZWQgKi8KKwkJaWYgKGhhc0xpbWl0ZWRGcmFtZSkK KwkJeworCQkJaW50NjQJCWN0eEZyYW1lRW5kID0gY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVP ZmZzZXQgKyAxOworCisJCQlpZiAoY3VycmVudFBvcyA+PSBjdHhGcmFtZUVuZCkKKwkJCXsKKwkJ CQkvKiBGcmFtZSBib3VuZGFyeSBleGNlZWRlZDogZm9yY2UgbWlzbWF0Y2ggKi8KKwkJCQluZmFf bWF0Y2god2luc3RhdGUsIGN0eCwgTlVMTCk7CisJCQkJY29udGludWU7CisJCQl9CisJCX0KKwor CQluZmFfbWF0Y2god2luc3RhdGUsIGN0eCwgdmFyTWF0Y2hlZCk7CisJCWN0eC0+bGFzdFByb2Nl c3NlZFJvdyA9IGN1cnJlbnRQb3M7CisJfQorCisJLyoKKwkgKiBQaGFzZSAyOiBBYnNvcmIgcmVk dW5kYW50IGNvbnRleHRzLiAgQWZ0ZXIgbWF0Y2ggcGhhc2UsIHN0YXRlcyBoYXZlCisJICogY29u dmVyZ2VkIC0gaWRlYWwgZm9yIGFic29ycHRpb24uICBGaXJzdCB1cGRhdGUgYWJzb3JwdGlvbiBm bGFncyB0aGF0CisJICogbWF5IGhhdmUgY2hhbmdlZCBkdWUgdG8gc3RhdGUgcmVtb3ZhbC4KKwkg Ki8KKwlpZiAod2luc3RhdGUtPnJwUGF0dGVybi0+aXNBYnNvcmJhYmxlKQorCXsKKwkJZm9yIChj dHggPSB3aW5zdGF0ZS0+bmZhQ29udGV4dDsgY3R4ICE9IE5VTEw7IGN0eCA9IGN0eC0+bmV4dCkK KwkJCW5mYV91cGRhdGVfYWJzb3JwdGlvbl9mbGFncyhjdHgpOworCisJCW5mYV9hYnNvcmJfY29u dGV4dHMod2luc3RhdGUpOworCX0KKworCS8qCisJICogUGhhc2UgMzogQWR2YW5jZSBhbGwgY29u dGV4dHMgKGRpdmVyZ2VuY2UpLiAgQ3JlYXRlIG5ldyBzdGF0ZXMKKwkgKiAobG9vcC9leGl0KSBm cm9tIHN1cnZpdmluZyBtYXRjaGVkIHN0YXRlcy4KKwkgKi8KKwlmb3IgKGN0eCA9IHdpbnN0YXRl LT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gY3R4LT5uZXh0KQorCXsKKwkJaWYgKGN0 eC0+c3RhdGVzID09IE5VTEwpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBQaGFzZSAxIGFs cmVhZHkgaGFuZGxlZCBmcmFtZSBib3VuZGFyeSBleGNlZWRlZCBjb250ZXh0cyBieSBmb3JjaW5n CisJCSAqIG1pc21hdGNoIChuZmFfbWF0Y2ggd2l0aCBOVUxMKSwgd2hpY2ggcmVtb3ZlcyBhbGwg c3RhdGVzIChhbGwKKwkJICogc3RhdGVzIGFyZSBhdCBWQVIgcG9zaXRpb25zIGFmdGVyIGFkdmFu Y2UpLiBTbyBhbnkgc3Vydml2aW5nCisJCSAqIGNvbnRleHQgaGVyZSBtdXN0IGJlIHdpdGhpbiBp dHMgZnJhbWUgYm91bmRhcnkuCisJCSAqLworCQlBc3NlcnQoIWhhc0xpbWl0ZWRGcmFtZSB8fAor CQkJICAgY3VycmVudFBvcyA8IGN0eC0+bWF0Y2hTdGFydFJvdyArIGZyYW1lT2Zmc2V0ICsgMSk7 CisKKwkJbmZhX2FkdmFuY2Uod2luc3RhdGUsIGN0eCwgY3VycmVudFBvcyk7CisJfQorfQorCisv KgorICogRXhlY1JQUkNsZWFudXBEZWFkQ29udGV4dHMKKyAqCisgKiBSZW1vdmUgY29udGV4dHMg dGhhdCBoYXZlIGZhaWxlZCAobm8gYWN0aXZlIHN0YXRlcyBhbmQgbm8gbWF0Y2gpLgorICogVGhl c2UgYXJlIGNvbnRleHRzIHRoYXQgZmFpbGVkIGR1cmluZyBub3JtYWwgcHJvY2Vzc2luZyBhbmQg c2hvdWxkIGJlCisgKiBjb3VudGVkIGFzIHBydW5lZCAoaWYgbGVuZ3RoIDEpIG9yIG1pc21hdGNo ZWQgKGlmIGxlbmd0aCA+IDEpLgorICovCit2b2lkCitFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0 cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmV4Y2x1ZGVDdHgpCit7 CisJUlBSTkZBQ29udGV4dCAqY3R4OworCVJQUk5GQUNvbnRleHQgKm5leHQ7CisKKwlmb3IgKGN0 eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gbmV4dCkKKwl7CisJ CW5leHQgPSBjdHgtPm5leHQ7CisKKwkJLyogU2tpcCB0aGUgdGFyZ2V0IGNvbnRleHQgYW5kIGNv bnRleHRzIHN0aWxsIHByb2Nlc3NpbmcgKi8KKwkJaWYgKGN0eCA9PSBleGNsdWRlQ3R4IHx8IGN0 eC0+c3RhdGVzICE9IE5VTEwpCisJCQljb250aW51ZTsKKworCQkvKiBTa2lwIHN1Y2Nlc3NmdWxs eSBtYXRjaGVkIGNvbnRleHRzICh3aWxsIGJlIGhhbmRsZWQgYnkgU0tJUCBsb2dpYykgKi8KKwkJ aWYgKGN0eC0+bWF0Y2hFbmRSb3cgPj0gY3R4LT5tYXRjaFN0YXJ0Um93KQorCQkJY29udGludWU7 CisKKwkJLyoKKwkJICogVGhpcyBpcyBhIGZhaWxlZCBjb250ZXh0IC0gY291bnQgYW5kIHJlbW92 ZSBpdC4gT25seSBjb3VudCBpZiBpdAorCQkgKiBhY3R1YWxseSBwcm9jZXNzZWQgaXRzIHN0YXJ0 IHJvdy4gQ29udGV4dHMgY3JlYXRlZCBmb3IKKwkJICogYmV5b25kLXBhcnRpdGlvbiByb3dzIGFy ZSBzaWxlbnRseSByZW1vdmVkLgorCQkgKi8KKwkJaWYgKGN0eC0+bGFzdFByb2Nlc3NlZFJvdyA+ PSBjdHgtPm1hdGNoU3RhcnRSb3cpCisJCXsKKwkJCWludDY0CQlmYWlsZWRMZW4gPSBjdHgtPmxh c3RQcm9jZXNzZWRSb3cgLSBjdHgtPm1hdGNoU3RhcnRSb3cgKyAxOworCisJCQlFeGVjUlBSUmVj b3JkQ29udGV4dEZhaWx1cmUod2luc3RhdGUsIGZhaWxlZExlbik7CisJCX0KKwkJLyogZWxzZTog Y29udGV4dCB3YXMgbmV2ZXIgcHJvY2Vzc2VkIChiZXlvbmQtcGFydGl0aW9uKSwganVzdCByZW1v dmUgKi8KKworCQlFeGVjUlBSRnJlZUNvbnRleHQod2luc3RhdGUsIGN0eCk7CisJfQorfQorCisv KgorICogRXhlY1JQUkZpbmFsaXplQWxsQ29udGV4dHMKKyAqCisgKiBGaW5hbGl6ZSBhbGwgYWN0 aXZlIGNvbnRleHRzIHdoZW4gcGFydGl0aW9uIGVuZHMuCisgKiBNYXRjaCB3aXRoIE5VTEwgdG8g Zm9yY2UgbWlzbWF0Y2gsIHRoZW4gYWR2YW5jZSB0byBwcm9jZXNzIGVwc2lsb24gdHJhbnNpdGlv bnMuCisgKi8KK3ZvaWQKK0V4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgaW50NjQgbGFzdFBvcykKK3sKKwlSUFJORkFDb250ZXh0ICpjdHg7CisKKwlm b3IgKGN0eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gY3R4LT5u ZXh0KQorCXsKKwkJaWYgKGN0eC0+c3RhdGVzICE9IE5VTEwpCisJCXsKKwkJCW5mYV9tYXRjaCh3 aW5zdGF0ZSwgY3R4LCBOVUxMKTsKKwkJCW5mYV9hZHZhbmNlKHdpbnN0YXRlLCBjdHgsIGxhc3RQ b3MpOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24u YnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCBkYzQ1YmUwYjJj ZS4uMGZmNGE1YjFkODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1 aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC0xMyw2ICsxMyw3 IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ2V4ZWNQYXJhbGxlbC5jJywKICAgJ2V4 ZWNQYXJ0aXRpb24uYycsCiAgICdleGVjUHJvY25vZGUuYycsCisgICdleGVjUlBSLmMnLAogICAn ZXhlY1JlcGxpY2F0aW9uLmMnLAogICAnZXhlY1NSRi5jJywKICAgJ2V4ZWNTY2FuLmMnLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDc2YzFhNmJlYmVmLi4wYTliYTViZDRl NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMzksNiArMzksNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImV4ZWN1 dG9yL2V4ZWNSUFIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlV2luZG93QWdnLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0yNDMs ODkgKzI0NCwyMyBAQCBzdGF0aWMgdm9pZCBwdXRfbm90bnVsbF9pbmZvKFdpbmRvd09iamVjdCB3 aW5vYmosCiAJCQkJCQkJIGludDY0IHBvcywgaW50IGFyZ25vLCBib29sIGlzbnVsbCk7CiBzdGF0 aWMgdm9pZCBhdHRub19tYXAoTm9kZSAqbm9kZSk7CiBzdGF0aWMgYm9vbCBhdHRub19tYXBfd2Fs a2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwotc3RhdGljIGludAlyb3dfaXNfaW5fcmVk dWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpOworCiBzdGF0aWMgYm9v bCBycHJfaXNfZGVmaW5lZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOworc3RhdGljIGludAly b3dfaXNfaW5fcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpOwog CiBzdGF0aWMgdm9pZCBjcmVhdGVfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlKTsKK3N0YXRpYyB2b2lkIGNsZWFyX3JlZHVjZWRfZnJhbWVfbWFwKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSk7CiBzdGF0aWMgaW50CWdldF9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcyk7CiBzdGF0aWMgdm9pZCByZWdpc3Rlcl9yZWR1 Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcywKIAkJCQkJ CQkJCSAgIGludCB2YWwpOwotc3RhdGljIHZvaWQgY2xlYXJfcmVkdWNlZF9mcmFtZV9tYXAoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1l KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CiAKIHN0YXRpYyB2b2lkIGNoZWNrX3Jw cl9uYXZpZ2F0aW9uKE5vZGUgKm5vZGUsIGJvb2wgaXNfcHJldik7CiBzdGF0aWMgYm9vbCBycHJf bmF2aWdhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKLS8qIEZvcndh cmQgZGVjbGFyYXRpb25zIC0gTkZBIHJvdyBwcm9jZXNzaW5nICovCi1zdGF0aWMgdm9pZCBuZmFf cHJvY2Vzc19yb3coV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zLAot CQkJCQkJCWJvb2wgaGFzTGltaXRlZEZyYW1lLCBpbnQ2NCBmcmFtZU9mZnNldCk7Ci0KLS8qIEZv cndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHN0YXRlIG1hbmFnZW1lbnQgKi8KLXN0YXRpYyBSUFJO RkFTdGF0ZSAqbmZhX3N0YXRlX2FsbG9jKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7Ci1zdGF0 aWMgdm9pZCBuZmFfc3RhdGVfZnJlZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0 YXRlICpzdGF0ZSk7Ci1zdGF0aWMgdm9pZCBuZmFfc3RhdGVfZnJlZV9saXN0KFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKmxpc3QpOwotc3RhdGljIFJQUk5GQVN0YXRlICpu ZmFfc3RhdGVfY3JlYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50MTYgZWxlbUlkeCwK LQkJCQkJCQkJCSBpbnQzMiAqY291bnRzLCBib29sIHNvdXJjZUFic29yYmFibGUpOwotc3RhdGlj IGJvb2wgbmZhX3N0YXRlc19lcXVhbChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQVN0 YXRlICpzMSwKLQkJCQkJCQkgUlBSTkZBU3RhdGUgKnMyKTsKLXN0YXRpYyBib29sIG5mYV9hZGRf c3RhdGVfdW5pcXVlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4 LAotCQkJCQkJCQkgUlBSTkZBU3RhdGUgKnN0YXRlKTsKLXN0YXRpYyB2b2lkIG5mYV9hZGRfbWF0 Y2hlZF9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwK LQkJCQkJCQkJICBSUFJORkFTdGF0ZSAqc3RhdGUsIGludDY0IG1hdGNoRW5kUm93KTsKLQotLyog Rm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgY29udGV4dCBtYW5hZ2VtZW50ICovCi1zdGF0aWMg UlBSTkZBQ29udGV4dCAqbmZhX2NvbnRleHRfYWxsb2MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl KTsKLXN0YXRpYyB2b2lkIG5mYV91bmxpbmtfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIFJQUk5GQUNvbnRleHQgKmN0eCk7Ci1zdGF0aWMgdm9pZCBuZmFfY29udGV4dF9mcmVlKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4KTsKLXN0YXRpYyBSUFJO RkFDb250ZXh0ICpuZmFfc3RhcnRfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGlu dDY0IHN0YXJ0UG9zKTsKLXN0YXRpYyBSUFJORkFDb250ZXh0ICpuZmFfZ2V0X2hlYWRfY29udGV4 dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcyk7Ci0KLS8qIEZvcndhcmQgZGVj bGFyYXRpb25zIC0gTkZBIHN0YXRpc3RpY3MgKi8KLXN0YXRpYyB2b2lkIG5mYV91cGRhdGVfbGVu Z3RoX3N0YXRzKGludDY0IGNvdW50LCBORkFMZW5ndGhTdGF0cyAqc3RhdHMsIGludDY0IG5ld0xl bik7Ci1zdGF0aWMgdm9pZCBuZmFfcmVjb3JkX2NvbnRleHRfc3VjY2VzcyhXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIGludDY0IG1hdGNoTGVuKTsKLXN0YXRpYyB2b2lkIG5mYV9yZWNvcmRfY29u dGV4dF9mYWlsdXJlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgZmFpbGVkTGVuKTsK LXN0YXRpYyB2b2lkIG5mYV9yZWNvcmRfY29udGV4dF9za2lwcGVkKFdpbmRvd0FnZ1N0YXRlICp3 aW5zdGF0ZSwgaW50NjQgc2tpcHBlZExlbik7Ci1zdGF0aWMgdm9pZCBuZmFfcmVjb3JkX2NvbnRl eHRfYWJzb3JiZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBhYnNvcmJlZExlbik7 Ci0KIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHJvdyBldmFsdWF0aW9uICovCiBzdGF0 aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywg Ym9vbCAqdmFyTWF0Y2hlZCk7CiAKLS8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIGNvbnRl eHQgbGlmZWN5Y2xlICovCi1zdGF0aWMgdm9pZCBuZmFfY2xlYW51cF9kZWFkX2NvbnRleHRzKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCk7Ci1zdGF0 aWMgdm9pZCBuZmFfZmluYWxpemVfYWxsX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgaW50NjQgbGFzdFBvcyk7Ci0KLS8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIGFic29y cHRpb24gKi8KLXN0YXRpYyB2b2lkIG5mYV91cGRhdGVfYWJzb3JwdGlvbl9mbGFncyhSUFJORkFD b250ZXh0ICpjdHgpOwotc3RhdGljIGJvb2wgbmZhX3N0YXRlc19jb3ZlcmVkKFJQUlBhdHRlcm4g KnBhdHRlcm4sIFJQUk5GQUNvbnRleHQgKm9sZGVyLAotCQkJCQkJCSAgIFJQUk5GQUNvbnRleHQg Km5ld2VyKTsKLXN0YXRpYyBib29sIG5mYV90cnlfYWJzb3JiX2NvbnRleHQoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgpOwotc3RhdGljIHZvaWQgbmZhX2Fic29y Yl9jb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwotCi0vKiBGb3J3YXJkIGRlY2xh cmF0aW9ucyAtIE5GQSBtYXRjaCBhbmQgYWR2YW5jZSAqLwotc3RhdGljIGlubGluZSBib29sIG5m YV9ldmFsX3Zhcl9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsCi0JCQkJCQkJCQkgIFJQ UlBhdHRlcm5FbGVtZW50ICplbGVtLCBib29sICp2YXJNYXRjaGVkKTsKLXN0YXRpYyB2b2lkIG5m YV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKLQkJ CQkJICBib29sICp2YXJNYXRjaGVkKTsKLXN0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX3N0YXRlKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAotCQkJCQkJCSAgUlBS TkZBU3RhdGUgKnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zKTsKLXN0YXRpYyB2b2lkIG5mYV9yb3V0 ZV90b19lbGVtKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAot CQkJCQkJCSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW0s Ci0JCQkJCQkJICBpbnQ2NCBjdXJyZW50UG9zKTsKLXN0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX2Fs dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKLQkJCQkJCQlS UFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAotCQkJCQkJCWludDY0 IGN1cnJlbnRQb3MpOwotc3RhdGljIHZvaWQgbmZhX2FkdmFuY2VfYmVnaW4oV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCi0JCQkJCQkJICBSUFJORkFTdGF0ZSAq c3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAotCQkJCQkJCSAgaW50NjQgY3VycmVudFBv cyk7Ci1zdGF0aWMgdm9pZCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBSUFJORkFDb250ZXh0ICpjdHgsCi0JCQkJCQkJUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0 ZXJuRWxlbWVudCAqZWxlbSwKLQkJCQkJCQlpbnQ2NCBjdXJyZW50UG9zKTsKLXN0YXRpYyB2b2lk IG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQg KmN0eCwKLQkJCQkJCQlSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVt LAotCQkJCQkJCWludDY0IGN1cnJlbnRQb3MpOwotc3RhdGljIHZvaWQgbmZhX2FkdmFuY2UoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCi0JCQkJCQlpbnQ2NCBj dXJyZW50UG9zKTsKLQogLyoKICAqIE5vdCBudWxsIGluZm8gYml0IGFycmF5IGNvbnNpc3RzIG9m IDItYml0IGl0ZW1zCiAgKi8KQEAgLTM0MywxMCArMjc4LDYgQEAgc3RhdGljIHZvaWQgbmZhX2Fk dmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAvKiBj YWxjdWxhdGUgc2hpZnQgYml0cyAqLwogI2RlZmluZQlOTl9TSElGVChwb3MpCSgocG9zKSAlIE5O X0lURU1fUEVSX1ZBUikgKiBOTl9CSVRTX1BFUl9NRU1CRVIKIAotLyogQml0bWFwIG1hY3JvcyBm b3IgTkZBIGN5Y2xlIGRldGVjdGlvbiAoY2YuIGJpdG1hcHNldC5jLCB0aWRiaXRtYXAuYykgKi8K LSNkZWZpbmUgV09SRE5VTSh4KQkoKHgpIC8gQklUU19QRVJfQklUTUFQV09SRCkKLSNkZWZpbmUg QklUTlVNKHgpCSgoeCkgJSBCSVRTX1BFUl9CSVRNQVBXT1JEKQotCiAvKgogICogaW5pdGlhbGl6 ZV93aW5kb3dhZ2dyZWdhdGUKICAqIHBhcmFsbGVsIHRvIGluaXRpYWxpemVfYWdncmVnYXRlcyBp biBub2RlQWdnLmMKQEAgLTQwMDIsODIyICszOTMzLDE5NSBAQCBwdXRfbm90bnVsbF9pbmZvKFdp bmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywgaW50IGFyZ25vLCBib29sIGlzbnVsbCkKIAlt YnBbYnBvc10gPSBtYjsKIH0KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBBUEkgZXhwb3NlZCB0byB3 aW5kb3cgZnVuY3Rpb25zCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KKy8qCisgKiBycHJfaXNfZGVmaW5l ZAorICogcmV0dXJuIHRydWUgaWYgUm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgZGVmaW5lZC4K KyAqLworc3RhdGljIGJvb2wKK3Jwcl9pc19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSkKK3sKKwlyZXR1cm4gd2luc3RhdGUtPnJwUGF0dGVybiAhPSBOVUxMOworfQogCiAvKgotICog V2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudAotICoJCUNoZWNrIG51bGwgdHJlYXRt ZW50IGNsYXVzZSBhbmQgc2V0cyBpZ25vcmVfbnVsbHMKKyAqIC0tLS0tLS0tLS0tLS0tLS0tCisg KiByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZQorICogRGV0ZXJtaW5lIHdoZXRoZXIgYSByb3cgaXMg aW4gdGhlIGN1cnJlbnQgcm93J3MgcmVkdWNlZCB3aW5kb3cgZnJhbWUKKyAqIGFjY29yZGluZyB0 byByb3cgcGF0dGVybiBtYXRjaGluZwogICoKLSAqIFdpbmRvdyBmdW5jdGlvbnMgc2hvdWxkIGNh bGwgdGhpcyB0byBjaGVjayBpZiB0aGV5IGFyZSBiZWluZyBjYWxsZWQgd2l0aAotICogYSBudWxs IHRyZWF0bWVudCBjbGF1c2Ugd2hlbiB0aGV5IGRvbid0IGFsbG93IGl0LCBvciB0byBzZXQgaWdu b3JlX251bGxzLgorICogVGhlIHJvdyBtdXN0IGhhcyBiZWVuIGFscmVhZHkgZGV0ZXJtaW5lZCB0 aGF0IGl0IGlzIGluIGEgZnVsbCB3aW5kb3cgZnJhbWUKKyAqIGFuZCBmZXRjaGVkIGl0IGludG8g c2xvdC4KKyAqCisgKiBSZXR1cm5zOgorICogPSAwLCBSUFIgaXMgbm90IGRlZmluZWQuCisgKiA+ MCwgaWYgdGhlIHJvdyBpcyB0aGUgZmlyc3QgaW4gdGhlIHJlZHVjZWQgZnJhbWUuIFJldHVybiB0 aGUgbnVtYmVyIG9mIHJvd3MKKyAqIGluIHRoZSByZWR1Y2VkIGZyYW1lLgorICogLTEsIGlmIHRo ZSByb3cgaXMgdW5tYXRjaGVkIHJvdworICogLTIsIGlmIHRoZSByb3cgaXMgaW4gdGhlIHJlZHVj ZWQgZnJhbWUgYnV0IG5lZWRlZCB0byBiZSBza2lwcGVkIGJlY2F1c2Ugb2YKKyAqIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICogLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotdm9pZAot V2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudChXaW5kb3dPYmplY3Qgd2lub2JqLAot CQkJCQkJCQkgICBib29sIGFsbG93TnVsbFRyZWF0bWVudCwKLQkJCQkJCQkJICAgRnVuY3Rpb25D YWxsSW5mbyBmY2luZm8pCitzdGF0aWMgaW50Cityb3dfaXNfaW5fcmVkdWNlZF9mcmFtZShXaW5k b3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiB7Ci0JQXNzZXJ0KFdpbmRvd09iamVjdElzVmFs aWQod2lub2JqKSk7Ci0JaWYgKHdpbm9iai0+aWdub3JlX251bGxzICE9IE5PX05VTExUUkVBVE1F TlQgJiYgIWFsbG93TnVsbFRyZWF0bWVudCkKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSB3 aW5vYmotPndpbnN0YXRlOworCWludAkJCXN0YXRlOworCWludAkJCXJ0bjsKKworCWlmICghcnBy X2lzX2RlZmluZWQod2luc3RhdGUpKQogCXsKLQkJY29uc3QgY2hhciAqZnVuY25hbWUgPSBnZXRf ZnVuY19uYW1lKGZjaW5mby0+ZmxpbmZvLT5mbl9vaWQpOworCQkvKgorCQkgKiBSUFIgaXMgbm90 IGRlZmluZWQuIEFzc3VtZSB0aGF0IHdlIGFyZSBhbHdheXMgaW4gdGhlIHRoZSByZWR1Y2VkCisJ CSAqIHdpbmRvdyBmcmFtZS4KKwkJICovCisJCXJ0biA9IDA7CisjaWZkZWYgUlBSX0RFQlVHCisJ CXByaW50Zigicm93X2lzX2luX3JlZHVjZWRfZnJhbWUgcmV0dXJucyAlZDogcG9zOiAiIElOVDY0 X0ZPUk1BVCAiXG4iLAorCQkJICAgcnRuLCBwb3MpOworI2VuZGlmCisJCXJldHVybiBydG47CisJ fQogCi0JCWlmICghZnVuY25hbWUpCi0JCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGdldCBmdW5j dGlvbiBuYW1lIik7Ci0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2coImZ1bmN0aW9uICVzIGRvZXMgbm90IGFs bG93IFJFU1BFQ1QvSUdOT1JFIE5VTExTIiwKLQkJCQkJCWZ1bmNuYW1lKSkpOworCXN0YXRlID0g Z2V0X3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlLCBwb3MpOworCisJaWYgKHN0YXRlID09IFJG X05PVF9ERVRFUk1JTkVEKQorCXsKKwkJdXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5zdGF0ZSk7CisJ CXVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKHdpbm9iaiwgcG9zKTsKIAl9Ci0JZWxzZSBpZiAod2lub2Jq LT5pZ25vcmVfbnVsbHMgPT0gUEFSU0VSX0lHTk9SRV9OVUxMUykKLQkJd2lub2JqLT5pZ25vcmVf bnVsbHMgPSBJR05PUkVfTlVMTFM7CisKKwlzdGF0ZSA9IGdldF9yZWR1Y2VkX2ZyYW1lX21hcCh3 aW5zdGF0ZSwgcG9zKTsKKworCXN3aXRjaCAoc3RhdGUpCisJeworCQkJaW50NjQJCWk7CisJCQlp bnQJCQludW1fcmVkdWNlZF9yb3dzOworCisJCWNhc2UgUkZfRlJBTUVfSEVBRDoKKwkJCW51bV9y ZWR1Y2VkX3Jvd3MgPSAxOworCQkJZm9yIChpID0gcG9zICsgMTsKKwkJCQkgZ2V0X3JlZHVjZWRf ZnJhbWVfbWFwKHdpbnN0YXRlLCBpKSA9PSBSRl9TS0lQUEVEOyBpKyspCisJCQkJbnVtX3JlZHVj ZWRfcm93cysrOworCQkJcnRuID0gbnVtX3JlZHVjZWRfcm93czsKKwkJCWJyZWFrOworCisJCWNh c2UgUkZfU0tJUFBFRDoKKwkJCXJ0biA9IC0yOworCQkJYnJlYWs7CisKKwkJY2FzZSBSRl9VTk1B VENIRUQ6CisJCQlydG4gPSAtMTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllbG9nKEVS Uk9SLCAidW5yZWNvZ25pemVkIHN0YXRlOiAlZCBhdDogIiBJTlQ2NF9GT1JNQVQsCisJCQkJIHN0 YXRlLCBwb3MpOworCQkJYnJlYWs7CisJfQorCisjaWZkZWYgUlBSX0RFQlVHCisJcHJpbnRmKCJy b3dfaXNfaW5fcmVkdWNlZF9mcmFtZSByZXR1cm5zICVkOiBwb3M6ICIgSU5UNjRfRk9STUFUICJc biIsCisJCSAgIHJ0biwgcG9zKTsKKyNlbmRpZgorCXJldHVybiBydG47CiB9CiAKKyNkZWZpbmUg UkVEVUNFRF9GUkFNRV9NQVBfSU5JVF9TSVpFCTEwMjRMCisKIC8qCi0gKiBXaW5HZXRQYXJ0aXRp b25Mb2NhbE1lbW9yeQotICoJCUdldCB3b3JraW5nIG1lbW9yeSB0aGF0IGxpdmVzIHRpbGwgZW5k IG9mIHBhcnRpdGlvbiBwcm9jZXNzaW5nCi0gKgotICogT24gZmlyc3QgY2FsbCB3aXRoaW4gYSBn aXZlbiBwYXJ0aXRpb24sIHRoaXMgYWxsb2NhdGVzIGFuZCB6ZXJvZXMgdGhlCi0gKiByZXF1ZXN0 ZWQgYW1vdW50IG9mIHNwYWNlLiAgU3Vic2VxdWVudCBjYWxscyBqdXN0IHJldHVybiB0aGUgc2Ft ZSBjaHVuay4KLSAqCi0gKiBNZW1vcnkgb2J0YWluZWQgdGhpcyB3YXkgaXMgbm9ybWFsbHkgdXNl ZCB0byBob2xkIHN0YXRlIHRoYXQgc2hvdWxkIGJlCi0gKiBhdXRvbWF0aWNhbGx5IHJlc2V0IGZv ciBlYWNoIG5ldyBwYXJ0aXRpb24uICBJZiBhIHdpbmRvdyBmdW5jdGlvbiB3YW50cwotICogdG8g aG9sZCBzdGF0ZSBhY3Jvc3MgdGhlIHdob2xlIHF1ZXJ5LCBmY2luZm8tPmZuX2V4dHJhIGNhbiBi ZSB1c2VkIGluIHRoZQotICogdXN1YWwgd2F5IGZvciB0aGF0LgorICogY3JlYXRlX3JlZHVjZWRf ZnJhbWVfbWFwCisgKiBDcmVhdGUgcmVkdWNlZCBmcmFtZSBtYXAKICAqLwotdm9pZCAqCi1XaW5H ZXRQYXJ0aXRpb25Mb2NhbE1lbW9yeShXaW5kb3dPYmplY3Qgd2lub2JqLCBTaXplIHN6KQorc3Rh dGljIHZvaWQKK2NyZWF0ZV9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUpCiB7Ci0JQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7Ci0JaWYgKHdpbm9i ai0+bG9jYWxtZW0gPT0gTlVMTCkKLQkJd2lub2JqLT5sb2NhbG1lbSA9Ci0JCQlNZW1vcnlDb250 ZXh0QWxsb2NaZXJvKHdpbm9iai0+d2luc3RhdGUtPnBhcnRjb250ZXh0LCBzeik7Ci0JcmV0dXJu IHdpbm9iai0+bG9jYWxtZW07CisJd2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwID0KKwkJTWVt b3J5Q29udGV4dEFsbG9jKHdpbnN0YXRlLT5wYXJ0Y29udGV4dCwKKwkJCQkJCSAgIFJFRFVDRURf RlJBTUVfTUFQX0lOSVRfU0laRSk7CisJd2luc3RhdGUtPmFsbG9jX3N6ID0gUkVEVUNFRF9GUkFN RV9NQVBfSU5JVF9TSVpFOworCWNsZWFyX3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlKTsKIH0K IAogLyoKLSAqIFdpbkdldEN1cnJlbnRQb3NpdGlvbgotICoJCVJldHVybiB0aGUgY3VycmVudCBy b3cncyBwb3NpdGlvbiAoY291bnRpbmcgZnJvbSAwKSB3aXRoaW4gdGhlIGN1cnJlbnQKLSAqCQlw YXJ0aXRpb24uCisgKiBjbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcAorICogQ2xlYXIgcmVkdWNlZCBm cmFtZSBtYXAKICAqLwotaW50NjQKLVdpbkdldEN1cnJlbnRQb3NpdGlvbihXaW5kb3dPYmplY3Qg d2lub2JqKQorc3RhdGljIHZvaWQKK2NsZWFyX3JlZHVjZWRfZnJhbWVfbWFwKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSkKIHsKLQlBc3NlcnQoV2luZG93T2JqZWN0SXNWYWxpZCh3aW5vYmopKTsK LQlyZXR1cm4gd2lub2JqLT53aW5zdGF0ZS0+Y3VycmVudHBvczsKKwlBc3NlcnQod2luc3RhdGUt PnJlZHVjZWRfZnJhbWVfbWFwICE9IE5VTEwpOworCU1lbVNldCh3aW5zdGF0ZS0+cmVkdWNlZF9m cmFtZV9tYXAsIFJGX05PVF9ERVRFUk1JTkVELAorCQkgICB3aW5zdGF0ZS0+YWxsb2Nfc3opOwog fQogCiAvKgotICogV2luR2V0UGFydGl0aW9uUm93Q291bnQKLSAqCQlSZXR1cm4gdG90YWwgbnVt YmVyIG9mIHJvd3MgY29udGFpbmVkIGluIHRoZSBjdXJyZW50IHBhcnRpdGlvbi4KLSAqCi0gKiBO b3RlOiB0aGlzIGlzIGEgcmVsYXRpdmVseSBleHBlbnNpdmUgb3BlcmF0aW9uIGJlY2F1c2UgaXQg Zm9yY2VzIHRoZQotICogd2hvbGUgcGFydGl0aW9uIHRvIGJlICJzcG9vbGVkIiBpbnRvIHRoZSB0 dXBsZXN0b3JlIGF0IG9uY2UuICBPbmNlCi0gKiBleGVjdXRlZCwgaG93ZXZlciwgYWRkaXRpb25h bCBjYWxscyB3aXRoaW4gdGhlIHNhbWUgcGFydGl0aW9uIGFyZSBjaGVhcC4KKyAqIGdldF9yZWR1 Y2VkX2ZyYW1lX21hcAorICogR2V0IHJlZHVjZWQgZnJhbWUgbWFwIHNwZWNpZmllZCBieSBwb3MK ICAqLwotaW50NjQKLVdpbkdldFBhcnRpdGlvblJvd0NvdW50KFdpbmRvd09iamVjdCB3aW5vYmop CitzdGF0aWMgaW50CitnZXRfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlLCBpbnQ2NCBwb3MpCiB7Ci0JQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7 Ci0Jc3Bvb2xfdHVwbGVzKHdpbm9iai0+d2luc3RhdGUsIC0xKTsKLQlyZXR1cm4gd2lub2JqLT53 aW5zdGF0ZS0+c3Bvb2xlZF9yb3dzOworCUFzc2VydCh3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9t YXAgIT0gTlVMTCk7CisJQXNzZXJ0KHBvcyA+PSAwKTsKKworCS8qCisJICogSWYgcG9zIGlzIG5v dCBpbiB0aGUgcmVkdWNlZCBmcmFtZSBtYXAsIGl0IG1lYW5zIHRoYXQgYW55IGluZm8KKwkgKiBy ZWdhcmRpbmcgdGhlIHBvcyBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQuIFNvIHdlIHJldHVy bgorCSAqIFJGX05PVF9ERVRFUk1JTkVELgorCSAqLworCWlmIChwb3MgPj0gd2luc3RhdGUtPmFs bG9jX3N6KQorCQlyZXR1cm4gUkZfTk9UX0RFVEVSTUlORUQ7CisKKwlyZXR1cm4gd2luc3RhdGUt PnJlZHVjZWRfZnJhbWVfbWFwW3Bvc107CiB9CiAKIC8qCi0gKiBXaW5TZXRNYXJrUG9zaXRpb24K LSAqCQlTZXQgdGhlICJtYXJrIiBwb3NpdGlvbiBmb3IgdGhlIHdpbmRvdyBvYmplY3QsIHdoaWNo IGlzIHRoZSBvbGRlc3Qgcm93Ci0gKgkJbnVtYmVyIChjb3VudGluZyBmcm9tIDApIGl0IGlzIGFs bG93ZWQgdG8gZmV0Y2ggZHVyaW5nIGFsbCBzdWJzZXF1ZW50Ci0gKgkJb3BlcmF0aW9ucyB3aXRo aW4gdGhlIGN1cnJlbnQgcGFydGl0aW9uLgotICoKLSAqIFdpbmRvdyBmdW5jdGlvbnMgZG8gbm90 IGhhdmUgdG8gY2FsbCB0aGlzLCBidXQgYXJlIGVuY291cmFnZWQgdG8gbW92ZSB0aGUKLSAqIG1h cmsgZm9yd2FyZCB3aGVuIHBvc3NpYmxlIHRvIGtlZXAgdGhlIHR1cGxlc3RvcmUgc2l6ZSBkb3du IGFuZCBwcmV2ZW50Ci0gKiBoYXZpbmcgdG8gc3BpbGwgcm93cyB0byBkaXNrLgorICogcmVnaXN0 ZXJfcmVkdWNlZF9mcmFtZV9tYXAKKyAqIEFkZC9yZXBsYWNlIHJlZHVjZWQgZnJhbWUgbWFwIG1l bWJlciBhdCBwb3MuCisgKiBJZiB0aGVyZSdzIG5vIGVub3VnaCBzcGFjZSwgZXhwYW5kIHRoZSBt YXAuCiAgKi8KLXZvaWQKLVdpblNldE1hcmtQb3NpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqLCBp bnQ2NCBtYXJrcG9zKQorc3RhdGljIHZvaWQKK3JlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zLCBpbnQgdmFsKQogewotCVdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZTsKKwlpbnQ2NAkJcmVhbGxvY19zejsKIAotCUFzc2VydChXaW5kb3dP YmplY3RJc1ZhbGlkKHdpbm9iaikpOwotCXdpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKKwlB c3NlcnQod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwICE9IE5VTEwpOwogCi0JaWYgKG1hcmtw b3MgPCB3aW5vYmotPm1hcmtwb3MpCi0JCWVsb2coRVJST1IsICJjYW5ub3QgbW92ZSBXaW5kb3dP YmplY3QncyBtYXJrIHBvc2l0aW9uIGJhY2t3YXJkIik7Ci0JdHVwbGVzdG9yZV9zZWxlY3RfcmVh ZF9wb2ludGVyKHdpbnN0YXRlLT5idWZmZXIsIHdpbm9iai0+bWFya3B0cik7Ci0JaWYgKG1hcmtw b3MgPiB3aW5vYmotPm1hcmtwb3MpCi0JewotCQl0dXBsZXN0b3JlX3NraXB0dXBsZXMod2luc3Rh dGUtPmJ1ZmZlciwKLQkJCQkJCQkgIG1hcmtwb3MgLSB3aW5vYmotPm1hcmtwb3MsCi0JCQkJCQkJ ICB0cnVlKTsKLQkJd2lub2JqLT5tYXJrcG9zID0gbWFya3BvczsKLQl9Ci0JdHVwbGVzdG9yZV9z ZWxlY3RfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5idWZmZXIsIHdpbm9iai0+cmVhZHB0cik7Ci0J aWYgKG1hcmtwb3MgPiB3aW5vYmotPnNlZWtwb3MpCisJaWYgKHBvcyA8IDApCisJCWVsb2coRVJS T1IsICJ3cm9uZyBwb3M6ICIgSU5UNjRfRk9STUFULCBwb3MpOworCisJd2hpbGUgKHBvcyA+IHdp bnN0YXRlLT5hbGxvY19zeiAtIDEpCiAJewotCQl0dXBsZXN0b3JlX3NraXB0dXBsZXMod2luc3Rh dGUtPmJ1ZmZlciwKLQkJCQkJCQkgIG1hcmtwb3MgLSB3aW5vYmotPnNlZWtwb3MsCi0JCQkJCQkJ ICB0cnVlKTsKLQkJd2lub2JqLT5zZWVrcG9zID0gbWFya3BvczsKKwkJcmVhbGxvY19zeiA9IHdp bnN0YXRlLT5hbGxvY19zeiAqIDI7CisKKwkJd2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwID0K KwkJCXJlcGFsbG9jKHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCwgcmVhbGxvY19zeik7CisK KwkJTWVtU2V0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCArIHdpbnN0YXRlLT5hbGxvY19z eiwKKwkJCSAgIFJGX05PVF9ERVRFUk1JTkVELCByZWFsbG9jX3N6IC0gd2luc3RhdGUtPmFsbG9j X3N6KTsKKworCQl3aW5zdGF0ZS0+YWxsb2Nfc3ogPSByZWFsbG9jX3N6OwogCX0KKworCXdpbnN0 YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcFtwb3NdID0gdmFsOwogfQogCiAvKgotICogV2luUm93c0Fy ZVBlZXJzCi0gKgkJQ29tcGFyZSB0d28gcm93cyAoc3BlY2lmaWVkIGJ5IGFic29sdXRlIHBvc2l0 aW9uIGluIHBhcnRpdGlvbikgdG8gc2VlCi0gKgkJaWYgdGhleSBhcmUgZXF1YWwgYWNjb3JkaW5n IHRvIHRoZSBPUkRFUiBCWSBjbGF1c2UuCisgKiB1cGRhdGVfcmVkdWNlZF9mcmFtZQorICoJCVVw ZGF0ZSByZWR1Y2VkIGZyYW1lIGluZm8gdXNpbmcgbXVsdGktY29udGV4dCBORkEgcGF0dGVybiBt YXRjaGluZy4KICAqCi0gKiBOQjogdGhpcyBkb2VzIG5vdCBjb25zaWRlciB0aGUgd2luZG93IGZy YW1lIG1vZGUuCisgKiBNYWludGFpbnMgbXVsdGlwbGUgTkZBIGNvbnRleHRzIHNpbXVsdGFuZW91 c2x5LCBvbmUgZm9yIGVhY2ggcG90ZW50aWFsCisgKiBtYXRjaCBzdGFydCBwb3NpdGlvbi4gVGhp cyBhbGxvd3Mgc2hhcmluZyByb3cgZXZhbHVhdGlvbnMgYWNyb3NzIGNvbnRleHRzLAorICogYXZv aWRpbmcgcmVkdW5kYW50IERFRklORSBjbGF1c2UgZXZhbHVhdGlvbnMgd2hlbiByZXdpbmRpbmcg Zm9yIFNLSVAgVE8KKyAqIE5FWFQgUk9XIG1vZGUuCisgKgorICogS2V5IG9wdGltaXphdGlvbnM6 CisgKiAtIFJvdyBldmFsdWF0aW9ucyAoZXhwZW5zaXZlIERFRklORSBjbGF1c2VzKSBoYXBwZW4g b25seSBvbmNlIHBlciByb3cKKyAqIC0gQWxsIGFjdGl2ZSBjb250ZXh0cyBzaGFyZSB0aGUgc2Ft ZSBldmFsdWF0aW9uIHJlc3VsdHMKKyAqIC0gQ29udGV4dHMgcGVyc2lzdCBhY3Jvc3MgY2FsbHMs IGVuYWJsaW5nIE8obikgREVGSU5FIGV2YWx1YXRpb25zCiAgKi8KLWJvb2wKLVdpblJvd3NBcmVQ ZWVycyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MxLCBpbnQ2NCBwb3MyKQotewotCVdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKLQlXaW5kb3dBZ2cgICpub2RlOwotCVR1cGxlVGFibGVT bG90ICpzbG90MTsKLQlUdXBsZVRhYmxlU2xvdCAqc2xvdDI7Ci0JYm9vbAkJcmVzOwotCi0JQXNz ZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7Ci0Jd2luc3RhdGUgPSB3aW5vYmotPndp bnN0YXRlOwotCW5vZGUgPSAoV2luZG93QWdnICopIHdpbnN0YXRlLT5zcy5wcy5wbGFuOwotCi0J LyogSWYgbm8gT1JERVIgQlksIGFsbCByb3dzIGFyZSBwZWVyczsgZG9uJ3QgYm90aGVyIHRvIGZl dGNoIHRoZW0gKi8KLQlpZiAobm9kZS0+b3JkTnVtQ29scyA9PSAwKQotCQlyZXR1cm4gdHJ1ZTsK LQotCS8qCi0JICogTm90ZTogT0sgdG8gdXNlIHRlbXBfc2xvdF8yIGhlcmUgYmVjYXVzZSB3ZSBh cmVuJ3QgY2FsbGluZyBhbnkKLQkgKiBmcmFtZS1yZWxhdGVkIGZ1bmN0aW9ucyAodGhvc2UgdGVu ZCB0byBjbG9iYmVyIHRlbXBfc2xvdF8yKS4KLQkgKi8KLQlzbG90MSA9IHdpbnN0YXRlLT50ZW1w X3Nsb3RfMTsKLQlzbG90MiA9IHdpbnN0YXRlLT50ZW1wX3Nsb3RfMjsKLQotCWlmICghd2luZG93 X2dldHR1cGxlc2xvdCh3aW5vYmosIHBvczEsIHNsb3QxKSkKLQkJZWxvZyhFUlJPUiwgInNwZWNp ZmllZCBwb3NpdGlvbiBpcyBvdXQgb2Ygd2luZG93OiAiIElOVDY0X0ZPUk1BVCwKLQkJCSBwb3Mx KTsKLQlpZiAoIXdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBwb3MyLCBzbG90MikpCi0JCWVs b2coRVJST1IsICJzcGVjaWZpZWQgcG9zaXRpb24gaXMgb3V0IG9mIHdpbmRvdzogIiBJTlQ2NF9G T1JNQVQsCi0JCQkgcG9zMik7Ci0KLQlyZXMgPSBhcmVfcGVlcnMod2luc3RhdGUsIHNsb3QxLCBz bG90Mik7Ci0KLQlFeGVjQ2xlYXJUdXBsZShzbG90MSk7Ci0JRXhlY0NsZWFyVHVwbGUoc2xvdDIp OwotCi0JcmV0dXJuIHJlczsKLX0KLQotLyoKLSAqIFdpbkdldEZ1bmNBcmdJblBhcnRpdGlvbgot ICoJCUV2YWx1YXRlIGEgd2luZG93IGZ1bmN0aW9uJ3MgYXJndW1lbnQgZXhwcmVzc2lvbiBvbiBh IHNwZWNpZmllZAotICoJCXJvdyBvZiB0aGUgcGFydGl0aW9uLiAgVGhlIHJvdyBpcyBpZGVudGlm aWVkIGluIGxzZWVrKDIpIHN0eWxlLAotICoJCWkuZS4gcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQs IGZpcnN0LCBvciBsYXN0IHJvdy4KLSAqCi0gKiBhcmdubzogYXJndW1lbnQgbnVtYmVyIHRvIGV2 YWx1YXRlIChjb3VudGVkIGZyb20gMCkKLSAqIHJlbHBvczogc2lnbmVkIHJvd2NvdW50IG9mZnNl dCBmcm9tIHRoZSBzZWVrIHBvc2l0aW9uCi0gKiBzZWVrdHlwZTogV0lORE9XX1NFRUtfQ1VSUkVO VCwgV0lORE9XX1NFRUtfSEVBRCwgb3IgV0lORE9XX1NFRUtfVEFJTAotICogc2V0X21hcms6IElm IHRoZSByb3cgaXMgZm91bmQgYW5kIHNldF9tYXJrIGlzIHRydWUsIHRoZSBtYXJrIGlzIG1vdmVk IHRvCi0gKgkJdGhlIHJvdyBhcyBhIHNpZGUtZWZmZWN0LgotICogaXNudWxsOiBvdXRwdXQgYXJn dW1lbnQsIHJlY2VpdmVzIGlzbnVsbCBzdGF0dXMgb2YgcmVzdWx0Ci0gKiBpc291dDogb3V0cHV0 IGFyZ3VtZW50LCBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciB0YXJnZXQgcm93IHBvc2l0aW9uCi0g KgkJaXMgb3V0IG9mIHBhcnRpdGlvbiAoY2FuIHBhc3MgTlVMTCBpZiBjYWxsZXIgZG9lc24ndCBj YXJlIGFib3V0IHRoaXMpCi0gKgotICogU3BlY2lmeWluZyBhIG5vbmV4aXN0ZW50IHJvdyBpcyBu b3QgYW4gZXJyb3IsIGl0IGp1c3QgY2F1c2VzIGEgbnVsbCByZXN1bHQKLSAqIChwbHVzIHNldHRp bmcgKmlzb3V0IHRydWUsIGlmIGlzb3V0IGlzbid0IE5VTEwpLgotICovCi1EYXR1bQotV2luR2V0 RnVuY0FyZ0luUGFydGl0aW9uKFdpbmRvd09iamVjdCB3aW5vYmosIGludCBhcmdubywKLQkJCQkJ CSBpbnQgcmVscG9zLCBpbnQgc2Vla3R5cGUsIGJvb2wgc2V0X21hcmssCi0JCQkJCQkgYm9vbCAq aXNudWxsLCBib29sICppc291dCkKLXsKLQlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7Ci0JaW50 NjQJCWFic19wb3M7Ci0JaW50NjQJCW1hcmtfcG9zOwotCURhdHVtCQlkYXR1bTsKLQlib29sCQlu dWxsX3RyZWF0bWVudDsKLQlpbnQJCQlub3RudWxsX29mZnNldDsKLQlpbnQJCQlub3RudWxsX3Jl bHBvczsKLQlpbnQJCQlmb3J3YXJkOwotCWJvb2wJCW15aXNvdXQ7Ci0KLQlBc3NlcnQoV2luZG93 T2JqZWN0SXNWYWxpZCh3aW5vYmopKTsKLQl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7Ci0K LQludWxsX3RyZWF0bWVudCA9ICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBJR05PUkVfTlVMTFMg JiYgcmVscG9zICE9IDApOwotCi0Jc3dpdGNoIChzZWVrdHlwZSkKLQl7Ci0JCWNhc2UgV0lORE9X X1NFRUtfQ1VSUkVOVDoKLQkJCWlmIChudWxsX3RyZWF0bWVudCkKLQkJCQlhYnNfcG9zID0gd2lu c3RhdGUtPmN1cnJlbnRwb3M7Ci0JCQllbHNlCi0JCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5jdXJy ZW50cG9zICsgcmVscG9zOwotCQkJYnJlYWs7Ci0JCWNhc2UgV0lORE9XX1NFRUtfSEVBRDoKLQkJ CWlmIChudWxsX3RyZWF0bWVudCkKLQkJCQlhYnNfcG9zID0gMDsKLQkJCWVsc2UKLQkJCQlhYnNf cG9zID0gcmVscG9zOwotCQkJYnJlYWs7Ci0JCWNhc2UgV0lORE9XX1NFRUtfVEFJTDoKLQkJCXNw b29sX3R1cGxlcyh3aW5zdGF0ZSwgLTEpOwotCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5zcG9vbGVk X3Jvd3MgLSAxICsgcmVscG9zOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIHdpbmRvdyBzZWVrIHR5cGU6ICVkIiwgc2Vla3R5cGUpOwotCQkJYWJz X3BvcyA9IDA7CQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCi0JCQlicmVhazsKLQl9Ci0KLQkv KiBFYXN5IGNhc2UgaWYgSUdOT1JFIE5VTExTIGlzIG5vdCBzcGVjaWZpZWQgKi8KLQlpZiAoIW51 bGxfdHJlYXRtZW50KQotCXsKLQkJLyogZ2V0IHR1cGxlIGFuZCBldmFsdWF0ZSBpbiBwYXJ0aXRp b24gKi8KLQkJZGF0dW0gPSBnZXR0dXBsZV9ldmFsX3BhcnRpdGlvbih3aW5vYmosIGFyZ25vLAot CQkJCQkJCQkJCWFic19wb3MsIGlzbnVsbCwgJm15aXNvdXQpOwotCQlpZiAoIW15aXNvdXQgJiYg c2V0X21hcmspCi0JCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBhYnNfcG9zKTsKLQkJaWYg KGlzb3V0KQotCQkJKmlzb3V0ID0gbXlpc291dDsKLQkJcmV0dXJuIGRhdHVtOwotCX0KLQotCS8q IFByZXBhcmUgZm9yIGxvb3AgKi8KLQlub3RudWxsX29mZnNldCA9IDA7Ci0Jbm90bnVsbF9yZWxw b3MgPSBhYnMocmVscG9zKTsKLQlmb3J3YXJkID0gcmVscG9zID4gMCA/IDEgOiAtMTsKLQlteWlz b3V0ID0gZmFsc2U7Ci0JZGF0dW0gPSAwOwotCi0JLyoKLQkgKiBJR05PUkUgTlVMTFMgKyBXSU5E T1dfU0VFS19DVVJSRU5UICsgcmVscG9zID4gMCBjYXNlLCB3ZSB3b3VsZCBmZXRjaAotCSAqIGJl eW9uZCB0aGUgY3VycmVudCByb3cgKyByZWxwb3MgdG8gZmluZCBvdXQgdGhlIHRhcmdldCByb3cu IElmIHdlIG1hcmsKLQkgKiBhdCBhYnNfcG9zLCBuZXh0IGNhbGwgdG8gV2luR2V0RnVuY0FyZ0lu UGFydGl0aW9uIG9yCi0JICogV2luR2V0RnVuY0FyZ0luRnJhbWUgKGluIGNhc2Ugd2hlbiBhIHdp bmRvdyBmdW5jdGlvbiBoYXZlIG11bHRpcGxlCi0JICogYXJncykgY291bGQgZmFpbCB3aXRoICJj YW5ub3QgZmV0Y2ggcm93IGJlZm9yZSBXaW5kb3dPYmplY3QncyBtYXJrCi0JICogcG9zaXRpb24i LiBTbyBrZWVwIHRoZSBtYXJrIHBvc2l0aW9uIGF0IGN1cnJlbnRwb3MuCi0JICovCi0JaWYgKHNl ZWt0eXBlID09IFdJTkRPV19TRUVLX0NVUlJFTlQgJiYgcmVscG9zID4gMCkKLQkJbWFya19wb3Mg PSB3aW5zdGF0ZS0+Y3VycmVudHBvczsKLQllbHNlCi0JewotCQkvKgotCQkgKiBGb3Igb3RoZXIg Y2FzZXMgd2UgaGF2ZSBubyBpZGVhIHdoYXQgcG9zaXRpb24gb2Ygcm93IGNhbGxlcnMgd291bGQK LQkJICogZmV0Y2ggbmV4dCB0aW1lLiBBbHNvIGZvciByZWxwb3MgPCAwIGNhc2UgKHdlIGdvIGJh Y2t3YXJkKSwgd2UKLQkJICogY2Fubm90IHNldCBtYXJrIGVpdGhlci4gRm9yIHRob3NlIGNhc2Vz IHdlIGFsd2F5cyBzZXQgbWFyayBhdCAwLgotCQkgKi8KLQkJbWFya19wb3MgPSAwOwotCX0KLQot CS8qCi0JICogR2V0IHRoZSBuZXh0IG5vbm51bGwgdmFsdWUgaW4gdGhlIHBhcnRpdGlvbiwgbW92 aW5nIGZvcndhcmQgb3IgYmFja3dhcmQKLQkgKiB1bnRpbCB3ZSBmaW5kIGEgdmFsdWUgb3IgcmVh Y2ggdGhlIHBhcnRpdGlvbidzIGVuZC4gIFdlIGNhY2hlIHRoZQotCSAqIG51bGxuZXNzIHN0YXR1 cyBiZWNhdXNlIHdlIG1heSByZXBlYXQgdGhpcyBwcm9jZXNzIG1hbnkgdGltZXMuCi0JICovCi0J ZG8KLQl7Ci0JCWludAkJCW5uX2luZm87CS8qIE5PVCBOVUxMIHN0YXR1cyAqLwotCi0JCWFic19w b3MgKz0gZm9yd2FyZDsKLQkJaWYgKGFic19wb3MgPCAwKQkJLyogY2xlYXJseSBvdXQgb2YgcGFy dGl0aW9uICovCi0JCQlicmVhazsKLQotCQkvKiBjaGVjayBOT1QgTlVMTCBjYWNoZWQgaW5mbyAq LwotCQlubl9pbmZvID0gZ2V0X25vdG51bGxfaW5mbyh3aW5vYmosIGFic19wb3MsIGFyZ25vKTsK LQkJaWYgKG5uX2luZm8gPT0gTk5fTk9UTlVMTCkJLyogdGhpcyByb3cgaXMga25vd24gdG8gYmUg Tk9UIE5VTEwgKi8KLQkJCW5vdG51bGxfb2Zmc2V0Kys7Ci0JCWVsc2UgaWYgKG5uX2luZm8gPT0g Tk5fTlVMTCkJLyogdGhpcyByb3cgaXMga25vd24gdG8gYmUgTlVMTCAqLwotCQkJY29udGludWU7 CQkJLyoga2VlcCBvbiBtb3ZpbmcgZm9yd2FyZCBvciBiYWNrd2FyZCAqLwotCQllbHNlCQkJCQkv KiBuZWVkIHRvIGNoZWNrIE5VTEwgb3Igbm90ICovCi0JCXsKLQkJCS8qCi0JCQkgKiBOT1QgTlVM TCBpbmZvIGRvZXMgbm90IGV4aXN0IHlldC4gIEdldCB0dXBsZSBhbmQgZXZhbHVhdGUgZnVuYwot CQkJICogYXJnIGluIHBhcnRpdGlvbi4gV2UgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgZnJvbQot CQkJICogZ2V0dHVwbGVfZXZhbF9wYXJ0aXRpb24gYmVjYXVzZSB3ZSBhcmUganVzdCBpbnRlcmVz dGVkIGluCi0JCQkgKiB3aGV0aGVyIHdlIGFyZSBpbnNpZGUgb3Igb3V0c2lkZSBvZiBwYXJ0aXRp b24sIE5VTEwgb3IgTk9UCi0JCQkgKiBOVUxMLgotCQkJICovCi0JCQkodm9pZCkgZ2V0dHVwbGVf ZXZhbF9wYXJ0aXRpb24od2lub2JqLCBhcmdubywKLQkJCQkJCQkJCQkgICBhYnNfcG9zLCBpc251 bGwsICZteWlzb3V0KTsKLQkJCWlmIChteWlzb3V0KQkJLyogb3V0IG9mIHBhcnRpdGlvbj8gKi8K LQkJCQlicmVhazsKLQkJCWlmICghKmlzbnVsbCkKLQkJCQlub3RudWxsX29mZnNldCsrOwotCQkJ LyogcmVjb3JkIHRoZSByb3cgc3RhdHVzICovCi0JCQlwdXRfbm90bnVsbF9pbmZvKHdpbm9iaiwg YWJzX3BvcywgYXJnbm8sICppc251bGwpOwotCQl9Ci0JfSB3aGlsZSAobm90bnVsbF9vZmZzZXQg PCBub3RudWxsX3JlbHBvcyk7Ci0KLQkvKiBnZXQgdHVwbGUgYW5kIGV2YWx1YXRlIGZ1bmMgYXJn IGluIHBhcnRpdGlvbiAqLwotCWRhdHVtID0gZ2V0dHVwbGVfZXZhbF9wYXJ0aXRpb24od2lub2Jq LCBhcmdubywKLQkJCQkJCQkJCWFic19wb3MsIGlzbnVsbCwgJm15aXNvdXQpOwotCWlmICghbXlp c291dCAmJiBzZXRfbWFyaykKLQkJV2luU2V0TWFya1Bvc2l0aW9uKHdpbm9iaiwgbWFya19wb3Mp OwotCWlmIChpc291dCkKLQkJKmlzb3V0ID0gbXlpc291dDsKLQotCXJldHVybiBkYXR1bTsKLX0K LQotLyoKLSAqIFdpbkdldEZ1bmNBcmdJbkZyYW1lCi0gKgkJRXZhbHVhdGUgYSB3aW5kb3cgZnVu Y3Rpb24ncyBhcmd1bWVudCBleHByZXNzaW9uIG9uIGEgc3BlY2lmaWVkCi0gKgkJcm93IG9mIHRo ZSB3aW5kb3cgZnJhbWUuICBUaGUgcm93IGlzIGlkZW50aWZpZWQgaW4gbHNlZWsoMikgc3R5bGUs Ci0gKgkJaS5lLiByZWxhdGl2ZSB0byB0aGUgZmlyc3Qgb3IgbGFzdCByb3cgb2YgdGhlIGZyYW1l LiAgKFdlIGRvIG5vdAotICoJCXN1cHBvcnQgV0lORE9XX1NFRUtfQ1VSUkVOVCBoZXJlLCBiZWNh dXNlIGl0J3Mgbm90IHZlcnkgY2xlYXIgd2hhdAotICoJCXRoYXQgc2hvdWxkIG1lYW4gaWYgdGhl IGN1cnJlbnQgcm93IGlzbid0IHBhcnQgb2YgdGhlIGZyYW1lLikKLSAqCi0gKiBhcmdubzogYXJn dW1lbnQgbnVtYmVyIHRvIGV2YWx1YXRlIChjb3VudGVkIGZyb20gMCkKLSAqIHJlbHBvczogc2ln bmVkIHJvd2NvdW50IG9mZnNldCBmcm9tIHRoZSBzZWVrIHBvc2l0aW9uCi0gKiBzZWVrdHlwZTog V0lORE9XX1NFRUtfSEVBRCBvciBXSU5ET1dfU0VFS19UQUlMCi0gKiBzZXRfbWFyazogSWYgdGhl IHJvdyBpcyBmb3VuZC9pbiBmcmFtZSBhbmQgc2V0X21hcmsgaXMgdHJ1ZSwgdGhlIG1hcmsgaXMK LSAqCQltb3ZlZCB0byB0aGUgcm93IGFzIGEgc2lkZS1lZmZlY3QuCi0gKiBpc251bGw6IG91dHB1 dCBhcmd1bWVudCwgcmVjZWl2ZXMgaXNudWxsIHN0YXR1cyBvZiByZXN1bHQKLSAqIGlzb3V0OiBv dXRwdXQgYXJndW1lbnQsIHNldCB0byBpbmRpY2F0ZSB3aGV0aGVyIHRhcmdldCByb3cgcG9zaXRp b24KLSAqCQlpcyBvdXQgb2YgZnJhbWUgKGNhbiBwYXNzIE5VTEwgaWYgY2FsbGVyIGRvZXNuJ3Qg Y2FyZSBhYm91dCB0aGlzKQotICoKLSAqIFNwZWNpZnlpbmcgYSBub25leGlzdGVudCBvciBub3Qt aW4tZnJhbWUgcm93IGlzIG5vdCBhbiBlcnJvciwgaXQganVzdAotICogY2F1c2VzIGEgbnVsbCBy ZXN1bHQgKHBsdXMgc2V0dGluZyAqaXNvdXQgdHJ1ZSwgaWYgaXNvdXQgaXNuJ3QgTlVMTCkuCi0g KgotICogTm90ZSB0aGF0IHNvbWUgZXhjbHVzaW9uLWNsYXVzZSBvcHRpb25zIGxlYWQgdG8gc2l0 dWF0aW9ucyB3aGVyZSB0aGUKLSAqIHJvd3MgdGhhdCBhcmUgaW4tZnJhbWUgYXJlIG5vdCBjb25z ZWN1dGl2ZSBpbiB0aGUgcGFydGl0aW9uLiAgQnV0IHdlCi0gKiBjb3VudCBvbmx5IGluLWZyYW1l IHJvd3Mgd2hlbiBtZWFzdXJpbmcgcmVscG9zLgotICoKLSAqIFRoZSBzZXRfbWFyayBmbGFnIGlz IGludGVycHJldGVkIGFzIG1lYW5pbmcgdGhhdCB0aGUgY2FsbGVyIHdpbGwgc3BlY2lmeQotICog YSBjb25zdGFudCAob3IsIHBlcmhhcHMsIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZykgcmVscG9z IGluIHN1Y2Nlc3NpdmUKLSAqIGNhbGxzLCBzbyB0aGF0ICppZiB0aGVyZSBpcyBubyBleGNsdXNp b24gY2xhdXNlKiB0aGVyZSB3aWxsIGJlIG5vIG5lZWQKLSAqIHRvIGZldGNoIGEgcm93IGJlZm9y ZSB0aGUgcHJldmlvdXNseSBmZXRjaGVkIHJvdy4gIEJ1dCB3ZSBkbyBub3QgZXhwZWN0Ci0gKiB0 aGUgY2FsbGVyIHRvIGtub3cgaG93IHRvIGFjY291bnQgZm9yIGV4Y2x1c2lvbiBjbGF1c2VzLiAg VGhlcmVmb3JlLAotICogaWYgdGhlcmUgaXMgYW4gZXhjbHVzaW9uIGNsYXVzZSB3ZSB0YWtlIHJl c3BvbnNpYmlsaXR5IGZvciBhZGp1c3RpbmcgdGhlCi0gKiBtYXJrIHJlcXVlc3QgdG8gc29tZXRo aW5nIHRoYXQgd2lsbCBiZSBzYWZlIGdpdmVuIHRoZSBhYm92ZSBhc3N1bXB0aW9uCi0gKiBhYm91 dCByZWxwb3MuCi0gKi8KLURhdHVtCi1XaW5HZXRGdW5jQXJnSW5GcmFtZShXaW5kb3dPYmplY3Qg d2lub2JqLCBpbnQgYXJnbm8sCi0JCQkJCSBpbnQgcmVscG9zLCBpbnQgc2Vla3R5cGUsIGJvb2wg c2V0X21hcmssCi0JCQkJCSBib29sICppc251bGwsIGJvb2wgKmlzb3V0KQotewotCVdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZTsKLQlFeHByQ29udGV4dCAqZWNvbnRleHQ7Ci0JVHVwbGVUYWJsZVNs b3QgKnNsb3Q7Ci0KLQlBc3NlcnQoV2luZG93T2JqZWN0SXNWYWxpZCh3aW5vYmopKTsKLQl3aW5z dGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7Ci0JZWNvbnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNf RXhwckNvbnRleHQ7Ci0Jc2xvdCA9IHdpbnN0YXRlLT50ZW1wX3Nsb3RfMTsKLQotCWlmICh3aW5v YmotPmlnbm9yZV9udWxscyA9PSBJR05PUkVfTlVMTFMpCi0JCXJldHVybiBpZ25vcmVudWxsc19n ZXRmdW5jYXJnaW5mcmFtZSh3aW5vYmosIGFyZ25vLCByZWxwb3MsIHNlZWt0eXBlLAotCQkJCQkJ CQkJCQkgc2V0X21hcmssIGlzbnVsbCwgaXNvdXQpOwotCi0JaWYgKFdpbkdldFNsb3RJbkZyYW1l KHdpbm9iaiwgc2xvdCwKLQkJCQkJCSAgcmVscG9zLCBzZWVrdHlwZSwgc2V0X21hcmssCi0JCQkJ CQkgIGlzbnVsbCwgaXNvdXQpID09IDApCi0JewotCQllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxl ID0gc2xvdDsKLQkJcmV0dXJuIEV4ZWNFdmFsRXhwcigoRXhwclN0YXRlICopIGxpc3RfbnRoKHdp bm9iai0+YXJnc3RhdGVzLCBhcmdubyksCi0JCQkJCQkJZWNvbnRleHQsIGlzbnVsbCk7Ci0JfQot Ci0JaWYgKGlzb3V0KQotCQkqaXNvdXQgPSB0cnVlOwotCSppc251bGwgPSB0cnVlOwotCXJldHVy biAoRGF0dW0pIDA7Ci19Ci0KLS8qCi0gKiBXaW5HZXRTbG90SW5GcmFtZQotICogc2xvdDogVHVw bGVUYWJsZVNsb3QgdG8gc3RvcmUgdGhlIHJlc3VsdAotICogcmVscG9zOiBzaWduZWQgcm93Y291 bnQgb2Zmc2V0IGZyb20gdGhlIHNlZWsgcG9zaXRpb24KLSAqIHNlZWt0eXBlOiBXSU5ET1dfU0VF S19IRUFEIG9yIFdJTkRPV19TRUVLX1RBSUwKLSAqIHNldF9tYXJrOiBJZiB0aGUgcm93IGlzIGZv dW5kL2luIGZyYW1lIGFuZCBzZXRfbWFyayBpcyB0cnVlLCB0aGUgbWFyayBpcwotICoJCW1vdmVk IHRvIHRoZSByb3cgYXMgYSBzaWRlLWVmZmVjdC4KLSAqIGlzbnVsbDogb3V0cHV0IGFyZ3VtZW50 LCByZWNlaXZlcyBpc251bGwgc3RhdHVzIG9mIHJlc3VsdAotICogaXNvdXQ6IG91dHB1dCBhcmd1 bWVudCwgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIgdGFyZ2V0IHJvdyBwb3NpdGlvbgotICoJCWlz IG91dCBvZiBmcmFtZSAoY2FuIHBhc3MgTlVMTCBpZiBjYWxsZXIgZG9lc24ndCBjYXJlIGFib3V0 IHRoaXMpCi0gKgotICogUmV0dXJucyAwIGlmIHdlIHN1Y2Nlc3NmdWxsdCBnb3QgdGhlIHNsb3Qu IGZhbHNlIGlmIG91dCBvZiBmcmFtZS4KLSAqIChhbHNvIGlzb3V0IGlzIHNldCkKLSAqLwotc3Rh dGljIGludAotV2luR2V0U2xvdEluRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJs ZVNsb3QgKnNsb3QsCi0JCQkJICBpbnQgcmVscG9zLCBpbnQgc2Vla3R5cGUsIGJvb2wgc2V0X21h cmssCi0JCQkJICBib29sICppc251bGwsIGJvb2wgKmlzb3V0KQotewotCVdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZTsKLQlpbnQ2NAkJYWJzX3BvczsKLQlpbnQ2NAkJbWFya19wb3M7Ci0JaW50CQkJ bnVtX3JlZHVjZWRfZnJhbWU7Ci0KLQlBc3NlcnQoV2luZG93T2JqZWN0SXNWYWxpZCh3aW5vYmop KTsKLQl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7Ci0KLQlzd2l0Y2ggKHNlZWt0eXBlKQot CXsKLQkJY2FzZSBXSU5ET1dfU0VFS19DVVJSRU5UOgotCQkJZWxvZyhFUlJPUiwgIldJTkRPV19T RUVLX0NVUlJFTlQgaXMgbm90IHN1cHBvcnRlZCBmb3IgV2luR2V0RnVuY0FyZ0luRnJhbWUiKTsK LQkJCWFic19wb3MgPSBtYXJrX3BvcyA9IDA7IC8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KLQkJ CWJyZWFrOwotCQljYXNlIFdJTkRPV19TRUVLX0hFQUQ6Ci0JCQkvKiByZWplY3RpbmcgcmVscG9z IDwgMCBpcyBlYXN5IGFuZCBzaW1wbGlmaWVzIGNvZGUgYmVsb3cgKi8KLQkJCWlmIChyZWxwb3Mg PCAwKQotCQkJCWdvdG8gb3V0X29mX2ZyYW1lOwotCQkJdXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5z dGF0ZSk7Ci0JCQlhYnNfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvcyArIHJlbHBvczsKLQkJ CW1hcmtfcG9zID0gYWJzX3BvczsKLQotCQkJLyoKLQkJCSAqIEFjY291bnQgZm9yIGV4Y2x1c2lv biBvcHRpb24gaWYgb25lIGlzIGFjdGl2ZSwgYnV0IGFkdmFuY2Ugb25seQotCQkJICogYWJzX3Bv cyBub3QgbWFya19wb3MuICBUaGlzIHByZXZlbnRzIGNoYW5nZXMgb2YgdGhlIGN1cnJlbnQKLQkJ CSAqIHJvdydzIHBlZXIgZ3JvdXAgZnJvbSByZXN1bHRpbmcgaW4gdHJ5aW5nIHRvIGZldGNoIGEg cm93IGJlZm9yZQotCQkJICogc29tZSBwcmV2aW91cyBtYXJrIHBvc2l0aW9uLgotCQkJICoKLQkJ CSAqIE5vdGUgdGhhdCBpbiBzb21lIGNvcm5lciBjYXNlcyBzdWNoIGFzIGN1cnJlbnQgcm93IGJl aW5nCi0JCQkgKiBvdXRzaWRlIGZyYW1lLCB0aGVzZSBjYWxjdWxhdGlvbnMgYXJlIHRoZW9yZXRp Y2FsbHkgdG9vIHNpbXBsZSwKLQkJCSAqIGJ1dCBpdCBkb2Vzbid0IG1hdHRlciBiZWNhdXNlIHdl J2xsIGVuZCB1cCBkZWNpZGluZyB0aGUgcm93IGlzCi0JCQkgKiBvdXQgb2YgZnJhbWUuICBXZSBk byBub3QgYXR0ZW1wdCB0byBhdm9pZCBmZXRjaGluZyByb3dzIHBhc3QKLQkJCSAqIGVuZCBvZiBm cmFtZTsgdGhhdCB3b3VsZCBoYXBwZW4gaW4gc29tZSBjYXNlcyBhbnl3YXkuCi0JCQkgKi8KLQkJ CXN3aXRjaCAod2luc3RhdGUtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VYQ0xVU0lPTikK LQkJCXsKLQkJCQljYXNlIDA6Ci0JCQkJCS8qIG5vIGFkanVzdG1lbnQgbmVlZGVkICovCi0JCQkJ CWJyZWFrOwotCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVERV9DVVJSRU5UX1JPVzoKLQkJCQkJ aWYgKGFic19wb3MgPj0gd2luc3RhdGUtPmN1cnJlbnRwb3MgJiYKLQkJCQkJCXdpbnN0YXRlLT5j dXJyZW50cG9zID49IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpCi0JCQkJCQlhYnNfcG9zKys7Ci0J CQkJCWJyZWFrOwotCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVERV9HUk9VUDoKLQkJCQkJdXBk YXRlX2dyb3VwdGFpbHBvcyh3aW5zdGF0ZSk7Ci0JCQkJCWlmIChhYnNfcG9zID49IHdpbnN0YXRl LT5ncm91cGhlYWRwb3MgJiYKLQkJCQkJCXdpbnN0YXRlLT5ncm91cHRhaWxwb3MgPiB3aW5zdGF0 ZS0+ZnJhbWVoZWFkcG9zKQotCQkJCQl7Ci0JCQkJCQlpbnQ2NAkJb3ZlcmxhcHN0YXJ0ID0gTWF4 KHdpbnN0YXRlLT5ncm91cGhlYWRwb3MsCi0JCQkJCQkJCQkJCQkJICAgd2luc3RhdGUtPmZyYW1l aGVhZHBvcyk7Ci0KLQkJCQkJCWFic19wb3MgKz0gd2luc3RhdGUtPmdyb3VwdGFpbHBvcyAtIG92 ZXJsYXBzdGFydDsKLQkJCQkJfQotCQkJCQlicmVhazsKLQkJCQljYXNlIEZSQU1FT1BUSU9OX0VY Q0xVREVfVElFUzoKLQkJCQkJdXBkYXRlX2dyb3VwdGFpbHBvcyh3aW5zdGF0ZSk7Ci0JCQkJCWlm IChhYnNfcG9zID49IHdpbnN0YXRlLT5ncm91cGhlYWRwb3MgJiYKLQkJCQkJCXdpbnN0YXRlLT5n cm91cHRhaWxwb3MgPiB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zKQotCQkJCQl7Ci0JCQkJCQlpbnQ2 NAkJb3ZlcmxhcHN0YXJ0ID0gTWF4KHdpbnN0YXRlLT5ncm91cGhlYWRwb3MsCi0JCQkJCQkJCQkJ CQkJICAgd2luc3RhdGUtPmZyYW1laGVhZHBvcyk7Ci0KLQkJCQkJCWlmIChhYnNfcG9zID09IG92 ZXJsYXBzdGFydCkKLQkJCQkJCQlhYnNfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7Ci0JCQkJ CQllbHNlCi0JCQkJCQkJYWJzX3BvcyArPSB3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zIC0gb3Zlcmxh cHN0YXJ0IC0gMTsKLQkJCQkJfQotCQkJCQlicmVhazsKLQkJCQlkZWZhdWx0OgotCQkJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIGZyYW1lIG9wdGlvbiBzdGF0ZTogMHgleCIsCi0JCQkJCQkg d2luc3RhdGUtPmZyYW1lT3B0aW9ucyk7Ci0JCQkJCWJyZWFrOwotCQkJfQotCQkJbnVtX3JlZHVj ZWRfZnJhbWUgPSByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSh3aW5vYmosCi0JCQkJCQkJCQkJCQkJ CXdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwotCQkJaWYgKG51bV9yZWR1Y2VkX2ZyYW1lIDwgMCkK LQkJCQlnb3RvIG91dF9vZl9mcmFtZTsKLQkJCWVsc2UgaWYgKG51bV9yZWR1Y2VkX2ZyYW1lID4g MCkKLQkJCQlpZiAocmVscG9zID49IG51bV9yZWR1Y2VkX2ZyYW1lKQotCQkJCQlnb3RvIG91dF9v Zl9mcmFtZTsKLQkJCWJyZWFrOwotCQljYXNlIFdJTkRPV19TRUVLX1RBSUw6Ci0JCQkvKiByZWpl Y3RpbmcgcmVscG9zID4gMCBpcyBlYXN5IGFuZCBzaW1wbGlmaWVzIGNvZGUgYmVsb3cgKi8KLQkJ CWlmIChyZWxwb3MgPiAwKQotCQkJCWdvdG8gb3V0X29mX2ZyYW1lOwotCi0JCQkvKgotCQkJICog UlBSIGNhcmVzIGFib3V0IGZyYW1lIGhlYWQgcG9zLiBOZWVkIHRvIGNhbGwKLQkJCSAqIHVwZGF0 ZV9mcmFtZWhlYWRwb3MKLQkJCSAqLwotCQkJdXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5zdGF0ZSk7 Ci0KLQkJCXVwZGF0ZV9mcmFtZXRhaWxwb3Mod2luc3RhdGUpOwotCQkJYWJzX3BvcyA9IHdpbnN0 YXRlLT5mcmFtZXRhaWxwb3MgLSAxICsgcmVscG9zOwotCi0JCQkvKgotCQkJICogQWNjb3VudCBm b3IgZXhjbHVzaW9uIG9wdGlvbiBpZiBvbmUgaXMgYWN0aXZlLiAgSWYgdGhlcmUgaXMgbm8KLQkJ CSAqIGV4Y2x1c2lvbiwgd2UgY2FuIHNhZmVseSBzZXQgdGhlIG1hcmsgYXQgdGhlIGFjY2Vzc2Vk IHJvdy4gIEJ1dAotCQkJICogaWYgdGhlcmUgaXMsIHdlIGNhbiBvbmx5IG1hcmsgdGhlIGZyYW1l IHN0YXJ0LCBiZWNhdXNlIHdlIGNhbid0Ci0JCQkgKiBiZSBzdXJlIGhvdyBmYXIgYmFjayBpbiB0 aGUgZnJhbWUgdGhlIGV4Y2x1c2lvbiBtaWdodCBjYXVzZSB1cwotCQkJICogdG8gZmV0Y2ggaW4g ZnV0dXJlLiAgRnVydGhlcm1vcmUsIHdlIGhhdmUgdG8gYWN0dWFsbHkgY2hlY2sKLQkJCSAqIGFn YWluc3QgZnJhbWVoZWFkcG9zIGhlcmUsIHNpbmNlIGl0J3MgdW5zYWZlIHRvIHRyeSB0byBmZXRj aCBhCi0JCQkgKiByb3cgYmVmb3JlIGZyYW1lIHN0YXJ0IGlmIHRoZSBtYXJrIG1pZ2h0IGJlIHRo ZXJlIGFscmVhZHkuCi0JCQkgKi8KLQkJCXN3aXRjaCAod2luc3RhdGUtPmZyYW1lT3B0aW9ucyAm IEZSQU1FT1BUSU9OX0VYQ0xVU0lPTikKLQkJCXsKLQkJCQljYXNlIDA6Ci0JCQkJCS8qIG5vIGFk anVzdG1lbnQgbmVlZGVkICovCi0JCQkJCW1hcmtfcG9zID0gYWJzX3BvczsKLQkJCQkJYnJlYWs7 Ci0JCQkJY2FzZSBGUkFNRU9QVElPTl9FWENMVURFX0NVUlJFTlRfUk9XOgotCQkJCQlpZiAoYWJz X3BvcyA8PSB3aW5zdGF0ZS0+Y3VycmVudHBvcyAmJgotCQkJCQkJd2luc3RhdGUtPmN1cnJlbnRw b3MgPCB3aW5zdGF0ZS0+ZnJhbWV0YWlscG9zKQotCQkJCQkJYWJzX3Bvcy0tOwotCQkJCQl1cGRh dGVfZnJhbWVoZWFkcG9zKHdpbnN0YXRlKTsKLQkJCQkJaWYgKGFic19wb3MgPCB3aW5zdGF0ZS0+ ZnJhbWVoZWFkcG9zKQotCQkJCQkJZ290byBvdXRfb2ZfZnJhbWU7Ci0JCQkJCW1hcmtfcG9zID0g d2luc3RhdGUtPmZyYW1laGVhZHBvczsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBGUkFNRU9QVElP Tl9FWENMVURFX0dST1VQOgotCQkJCQl1cGRhdGVfZ3JvdXB0YWlscG9zKHdpbnN0YXRlKTsKLQkJ CQkJaWYgKGFic19wb3MgPCB3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zICYmCi0JCQkJCQl3aW5zdGF0 ZS0+Z3JvdXBoZWFkcG9zIDwgd2luc3RhdGUtPmZyYW1ldGFpbHBvcykKLQkJCQkJewotCQkJCQkJ aW50NjQJCW92ZXJsYXBlbmQgPSBNaW4od2luc3RhdGUtPmdyb3VwdGFpbHBvcywKLQkJCQkJCQkJ CQkJCQkgd2luc3RhdGUtPmZyYW1ldGFpbHBvcyk7Ci0KLQkJCQkJCWFic19wb3MgLT0gb3Zlcmxh cGVuZCAtIHdpbnN0YXRlLT5ncm91cGhlYWRwb3M7Ci0JCQkJCX0KLQkJCQkJdXBkYXRlX2ZyYW1l aGVhZHBvcyh3aW5zdGF0ZSk7Ci0JCQkJCWlmIChhYnNfcG9zIDwgd2luc3RhdGUtPmZyYW1laGVh ZHBvcykKLQkJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOwotCQkJCQltYXJrX3BvcyA9IHdpbnN0YXRl LT5mcmFtZWhlYWRwb3M7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVE RV9USUVTOgotCQkJCQl1cGRhdGVfZ3JvdXB0YWlscG9zKHdpbnN0YXRlKTsKLQkJCQkJaWYgKGFi c19wb3MgPCB3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zICYmCi0JCQkJCQl3aW5zdGF0ZS0+Z3JvdXBo ZWFkcG9zIDwgd2luc3RhdGUtPmZyYW1ldGFpbHBvcykKLQkJCQkJewotCQkJCQkJaW50NjQJCW92 ZXJsYXBlbmQgPSBNaW4od2luc3RhdGUtPmdyb3VwdGFpbHBvcywKLQkJCQkJCQkJCQkJCQkgd2lu c3RhdGUtPmZyYW1ldGFpbHBvcyk7Ci0KLQkJCQkJCWlmIChhYnNfcG9zID09IG92ZXJsYXBlbmQg LSAxKQotCQkJCQkJCWFic19wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsKLQkJCQkJCWVsc2UK LQkJCQkJCQlhYnNfcG9zIC09IG92ZXJsYXBlbmQgLSAxIC0gd2luc3RhdGUtPmdyb3VwaGVhZHBv czsKLQkJCQkJfQotCQkJCQl1cGRhdGVfZnJhbWVoZWFkcG9zKHdpbnN0YXRlKTsKLQkJCQkJaWYg KGFic19wb3MgPCB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zKQotCQkJCQkJZ290byBvdXRfb2ZfZnJh bWU7Ci0JCQkJCW1hcmtfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvczsKLQkJCQkJYnJlYWs7 Ci0JCQkJZGVmYXVsdDoKLQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBmcmFtZSBvcHRp b24gc3RhdGU6IDB4JXgiLAotCQkJCQkJIHdpbnN0YXRlLT5mcmFtZU9wdGlvbnMpOwotCQkJCQlt YXJrX3BvcyA9IDA7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KLQkJCQkJYnJlYWs7Ci0JCQl9 Ci0KLQkJCW51bV9yZWR1Y2VkX2ZyYW1lID0gcm93X2lzX2luX3JlZHVjZWRfZnJhbWUod2lub2Jq LAotCQkJCQkJCQkJCQkJCQl3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zICsgcmVscG9zKTsKLQkJCWlm IChudW1fcmVkdWNlZF9mcmFtZSA8IDApCi0JCQkJZ290byBvdXRfb2ZfZnJhbWU7Ci0JCQllbHNl IGlmIChudW1fcmVkdWNlZF9mcmFtZSA+IDApCi0JCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5mcmFt ZWhlYWRwb3MgKyByZWxwb3MgKwotCQkJCQludW1fcmVkdWNlZF9mcmFtZSAtIDE7Ci0JCQlicmVh azsKLQkJZGVmYXVsdDoKLQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgd2luZG93IHNlZWsg dHlwZTogJWQiLCBzZWVrdHlwZSk7Ci0JCQlhYnNfcG9zID0gbWFya19wb3MgPSAwOyAvKiBrZWVw IGNvbXBpbGVyIHF1aWV0ICovCi0JCQlicmVhazsKLQl9Ci0KLQlpZiAoIXdpbmRvd19nZXR0dXBs ZXNsb3Qod2lub2JqLCBhYnNfcG9zLCBzbG90KSkKLQkJZ290byBvdXRfb2ZfZnJhbWU7Ci0KLQkv KiBUaGUgY29kZSBhYm92ZSBkb2VzIG5vdCBkZXRlY3QgYWxsIG91dC1vZi1mcmFtZSBjYXNlcywg c28gY2hlY2sgKi8KLQlpZiAocm93X2lzX2luX2ZyYW1lKHdpbm9iaiwgYWJzX3Bvcywgc2xvdCwg ZmFsc2UpIDw9IDApCi0JCWdvdG8gb3V0X29mX2ZyYW1lOwotCi0JaWYgKGlzb3V0KQotCQkqaXNv dXQgPSBmYWxzZTsKLQlpZiAoc2V0X21hcmspCi0JCVdpblNldE1hcmtQb3NpdGlvbih3aW5vYmos IG1hcmtfcG9zKTsKLQlyZXR1cm4gMDsKLQotb3V0X29mX2ZyYW1lOgotCWlmIChpc291dCkKLQkJ Kmlzb3V0ID0gdHJ1ZTsKLQkqaXNudWxsID0gdHJ1ZTsKLQlyZXR1cm4gLTE7Ci19Ci0KLS8qCi0g KiBXaW5HZXRGdW5jQXJnQ3VycmVudAotICoJCUV2YWx1YXRlIGEgd2luZG93IGZ1bmN0aW9uJ3Mg YXJndW1lbnQgZXhwcmVzc2lvbiBvbiB0aGUgY3VycmVudCByb3cuCi0gKgotICogYXJnbm86IGFy Z3VtZW50IG51bWJlciB0byBldmFsdWF0ZSAoY291bnRlZCBmcm9tIDApCi0gKiBpc251bGw6IG91 dHB1dCBhcmd1bWVudCwgcmVjZWl2ZXMgaXNudWxsIHN0YXR1cyBvZiByZXN1bHQKLSAqCi0gKiBO b3RlOiB0aGlzIGlzbid0IHF1aXRlIGVxdWl2YWxlbnQgdG8gV2luR2V0RnVuY0FyZ0luUGFydGl0 aW9uIG9yCi0gKiBXaW5HZXRGdW5jQXJnSW5GcmFtZSB0YXJnZXRpbmcgdGhlIGN1cnJlbnQgcm93 LCBiZWNhdXNlIGl0IHdpbGwgc3VjY2VlZAotICogZXZlbiBpZiB0aGUgV2luZG93T2JqZWN0J3Mg bWFyayBoYXMgYmVlbiBzZXQgYmV5b25kIHRoZSBjdXJyZW50IHJvdy4KLSAqIFRoaXMgc2hvdWxk IGdlbmVyYWxseSBiZSB1c2VkIGZvciAib3JkaW5hcnkiIGFyZ3VtZW50cyBvZiBhIHdpbmRvdwot ICogZnVuY3Rpb24sIHN1Y2ggYXMgdGhlIG9mZnNldCBhcmd1bWVudCBvZiBsZWFkKCkgb3IgbGFn KCkuCi0gKi8KLURhdHVtCi1XaW5HZXRGdW5jQXJnQ3VycmVudChXaW5kb3dPYmplY3Qgd2lub2Jq LCBpbnQgYXJnbm8sIGJvb2wgKmlzbnVsbCkKLXsKLQlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7 Ci0JRXhwckNvbnRleHQgKmVjb250ZXh0OwotCi0JQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQo d2lub2JqKSk7Ci0Jd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOwotCi0JZWNvbnRleHQgPSB3 aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7Ci0KLQllY29udGV4dC0+ZWN4dF9vdXRlcnR1 cGxlID0gd2luc3RhdGUtPnNzLnNzX1NjYW5UdXBsZVNsb3Q7Ci0JcmV0dXJuIEV4ZWNFdmFsRXhw cigoRXhwclN0YXRlICopIGxpc3RfbnRoKHdpbm9iai0+YXJnc3RhdGVzLCBhcmdubyksCi0JCQkJ CQllY29udGV4dCwgaXNudWxsKTsKLX0KLQotLyoKLSAqIHJwcl9pc19kZWZpbmVkCi0gKiByZXR1 cm4gdHJ1ZSBpZiBSb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyBkZWZpbmVkLgotICovCi1zdGF0 aWMgYm9vbAotcnByX2lzX2RlZmluZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQotewotCXJl dHVybiB3aW5zdGF0ZS0+cnBQYXR0ZXJuICE9IE5VTEw7Ci19Ci0KLS8qCi0gKiAtLS0tLS0tLS0t LS0tLS0tLQotICogcm93X2lzX2luX3JlZHVjZWRfZnJhbWUKLSAqIERldGVybWluZSB3aGV0aGVy IGEgcm93IGlzIGluIHRoZSBjdXJyZW50IHJvdydzIHJlZHVjZWQgd2luZG93IGZyYW1lCi0gKiBh Y2NvcmRpbmcgdG8gcm93IHBhdHRlcm4gbWF0Y2hpbmcKLSAqCi0gKiBUaGUgcm93IG11c3QgaGFz IGJlZW4gYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQgaXQgaXMgaW4gYSBmdWxsIHdpbmRvdyBmcmFt ZQotICogYW5kIGZldGNoZWQgaXQgaW50byBzbG90LgotICoKLSAqIFJldHVybnM6Ci0gKiA9IDAs IFJQUiBpcyBub3QgZGVmaW5lZC4KLSAqID4wLCBpZiB0aGUgcm93IGlzIHRoZSBmaXJzdCBpbiB0 aGUgcmVkdWNlZCBmcmFtZS4gUmV0dXJuIHRoZSBudW1iZXIgb2Ygcm93cwotICogaW4gdGhlIHJl ZHVjZWQgZnJhbWUuCi0gKiAtMSwgaWYgdGhlIHJvdyBpcyB1bm1hdGNoZWQgcm93Ci0gKiAtMiwg aWYgdGhlIHJvdyBpcyBpbiB0aGUgcmVkdWNlZCBmcmFtZSBidXQgbmVlZGVkIHRvIGJlIHNraXBw ZWQgYmVjYXVzZSBvZgotICogQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCi0gKiAtLS0t LS0tLS0tLS0tLS0tLQotICovCi1zdGF0aWMgaW50Ci1yb3dfaXNfaW5fcmVkdWNlZF9mcmFtZShX aW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCi17Ci0JV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKLQlpbnQJCQlzdGF0ZTsKLQlpbnQJCQlydG47Ci0KLQlp ZiAoIXJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKLQl7Ci0JCS8qCi0JCSAqIFJQUiBpcyBub3Qg ZGVmaW5lZC4gQXNzdW1lIHRoYXQgd2UgYXJlIGFsd2F5cyBpbiB0aGUgdGhlIHJlZHVjZWQKLQkJ ICogd2luZG93IGZyYW1lLgotCQkgKi8KLQkJcnRuID0gMDsKLSNpZmRlZiBSUFJfREVCVUcKLQkJ cHJpbnRmKCJyb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSByZXR1cm5zICVkOiBwb3M6ICIgSU5UNjRf Rk9STUFUICJcbiIsCi0JCQkgICBydG4sIHBvcyk7Ci0jZW5kaWYKLQkJcmV0dXJuIHJ0bjsKLQl9 Ci0KLQlzdGF0ZSA9IGdldF9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgcG9zKTsKLQotCWlm IChzdGF0ZSA9PSBSRl9OT1RfREVURVJNSU5FRCkKLQl7Ci0JCXVwZGF0ZV9mcmFtZWhlYWRwb3Mo d2luc3RhdGUpOwotCQl1cGRhdGVfcmVkdWNlZF9mcmFtZSh3aW5vYmosIHBvcyk7Ci0JfQotCi0J c3RhdGUgPSBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHBvcyk7Ci0KLQlzd2l0Y2gg KHN0YXRlKQotCXsKLQkJCWludDY0CQlpOwotCQkJaW50CQkJbnVtX3JlZHVjZWRfcm93czsKLQot CQljYXNlIFJGX0ZSQU1FX0hFQUQ6Ci0JCQludW1fcmVkdWNlZF9yb3dzID0gMTsKLQkJCWZvciAo aSA9IHBvcyArIDE7Ci0JCQkJIGdldF9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgaSkgPT0g UkZfU0tJUFBFRDsgaSsrKQotCQkJCW51bV9yZWR1Y2VkX3Jvd3MrKzsKLQkJCXJ0biA9IG51bV9y ZWR1Y2VkX3Jvd3M7Ci0JCQlicmVhazsKLQotCQljYXNlIFJGX1NLSVBQRUQ6Ci0JCQlydG4gPSAt MjsKLQkJCWJyZWFrOwotCi0JCWNhc2UgUkZfVU5NQVRDSEVEOgotCQkJcnRuID0gLTE7Ci0JCQli cmVhazsKLQotCQlkZWZhdWx0OgotCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBzdGF0ZTog JWQgYXQ6ICIgSU5UNjRfRk9STUFULAotCQkJCSBzdGF0ZSwgcG9zKTsKLQkJCWJyZWFrOwotCX0K LQotI2lmZGVmIFJQUl9ERUJVRwotCXByaW50Zigicm93X2lzX2luX3JlZHVjZWRfZnJhbWUgcmV0 dXJucyAlZDogcG9zOiAiIElOVDY0X0ZPUk1BVCAiXG4iLAotCQkgICBydG4sIHBvcyk7Ci0jZW5k aWYKLQlyZXR1cm4gcnRuOwotfQotCi0jZGVmaW5lIFJFRFVDRURfRlJBTUVfTUFQX0lOSVRfU0la RQkxMDI0TAotCi0vKgotICogY3JlYXRlX3JlZHVjZWRfZnJhbWVfbWFwCi0gKiBDcmVhdGUgcmVk dWNlZCBmcmFtZSBtYXAKLSAqLwotc3RhdGljIHZvaWQKLWNyZWF0ZV9yZWR1Y2VkX2ZyYW1lX21h cChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCi17Ci0Jd2luc3RhdGUtPnJlZHVjZWRfZnJhbWVf bWFwID0KLQkJTWVtb3J5Q29udGV4dEFsbG9jKHdpbnN0YXRlLT5wYXJ0Y29udGV4dCwKLQkJCQkJ CSAgIFJFRFVDRURfRlJBTUVfTUFQX0lOSVRfU0laRSk7Ci0Jd2luc3RhdGUtPmFsbG9jX3N6ID0g UkVEVUNFRF9GUkFNRV9NQVBfSU5JVF9TSVpFOwotCWNsZWFyX3JlZHVjZWRfZnJhbWVfbWFwKHdp bnN0YXRlKTsKLX0KLQotLyoKLSAqIGNsZWFyX3JlZHVjZWRfZnJhbWVfbWFwCi0gKiBDbGVhciBy ZWR1Y2VkIGZyYW1lIG1hcAotICovCi1zdGF0aWMgdm9pZAotY2xlYXJfcmVkdWNlZF9mcmFtZV9t YXAoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQotewotCUFzc2VydCh3aW5zdGF0ZS0+cmVkdWNl ZF9mcmFtZV9tYXAgIT0gTlVMTCk7Ci0JTWVtU2V0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21h cCwgUkZfTk9UX0RFVEVSTUlORUQsCi0JCSAgIHdpbnN0YXRlLT5hbGxvY19zeik7Ci19Ci0KLS8q Ci0gKiBnZXRfcmVkdWNlZF9mcmFtZV9tYXAKLSAqIEdldCByZWR1Y2VkIGZyYW1lIG1hcCBzcGVj aWZpZWQgYnkgcG9zCi0gKi8KLXN0YXRpYyBpbnQKLWdldF9yZWR1Y2VkX2ZyYW1lX21hcChXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykKLXsKLQlBc3NlcnQod2luc3RhdGUtPnJl ZHVjZWRfZnJhbWVfbWFwICE9IE5VTEwpOwotCUFzc2VydChwb3MgPj0gMCk7Ci0KLQkvKgotCSAq IElmIHBvcyBpcyBub3QgaW4gdGhlIHJlZHVjZWQgZnJhbWUgbWFwLCBpdCBtZWFucyB0aGF0IGFu eSBpbmZvCi0JICogcmVnYXJkaW5nIHRoZSBwb3MgaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0 LiBTbyB3ZSByZXR1cm4KLQkgKiBSRl9OT1RfREVURVJNSU5FRC4KLQkgKi8KLQlpZiAocG9zID49 IHdpbnN0YXRlLT5hbGxvY19zeikKLQkJcmV0dXJuIFJGX05PVF9ERVRFUk1JTkVEOwotCi0JcmV0 dXJuIHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcFtwb3NdOwotfQotCi0vKgotICogcmVnaXN0 ZXJfcmVkdWNlZF9mcmFtZV9tYXAKLSAqIEFkZC9yZXBsYWNlIHJlZHVjZWQgZnJhbWUgbWFwIG1l bWJlciBhdCBwb3MuCi0gKiBJZiB0aGVyZSdzIG5vIGVub3VnaCBzcGFjZSwgZXhwYW5kIHRoZSBt YXAuCi0gKi8KLXN0YXRpYyB2b2lkCi1yZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcywgaW50IHZhbCkKLXsKLQlpbnQ2NAkJcmVhbGxv Y19zejsKLQotCUFzc2VydCh3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAgIT0gTlVMTCk7Ci0K LQlpZiAocG9zIDwgMCkKLQkJZWxvZyhFUlJPUiwgIndyb25nIHBvczogIiBJTlQ2NF9GT1JNQVQs IHBvcyk7Ci0KLQl3aGlsZSAocG9zID4gd2luc3RhdGUtPmFsbG9jX3N6IC0gMSkKLQl7Ci0JCXJl YWxsb2Nfc3ogPSB3aW5zdGF0ZS0+YWxsb2Nfc3ogKiAyOwotCi0JCXdpbnN0YXRlLT5yZWR1Y2Vk X2ZyYW1lX21hcCA9Ci0JCQlyZXBhbGxvYyh3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAsIHJl YWxsb2Nfc3opOwotCi0JCU1lbVNldCh3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAgKyB3aW5z dGF0ZS0+YWxsb2Nfc3osCi0JCQkgICBSRl9OT1RfREVURVJNSU5FRCwgcmVhbGxvY19zeiAtIHdp bnN0YXRlLT5hbGxvY19zeik7Ci0KLQkJd2luc3RhdGUtPmFsbG9jX3N6ID0gcmVhbGxvY19zejsK LQl9Ci0KLQl3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXBbcG9zXSA9IHZhbDsKLX0KLQotLyoK LSAqIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lCi0gKgkJVXBkYXRlIHJlZHVjZWQgZnJhbWUgaW5mbyB1 c2luZyBtdWx0aS1jb250ZXh0IE5GQSBwYXR0ZXJuIG1hdGNoaW5nLgotICoKLSAqIE1haW50YWlu cyBtdWx0aXBsZSBORkEgY29udGV4dHMgc2ltdWx0YW5lb3VzbHksIG9uZSBmb3IgZWFjaCBwb3Rl bnRpYWwKLSAqIG1hdGNoIHN0YXJ0IHBvc2l0aW9uLiBUaGlzIGFsbG93cyBzaGFyaW5nIHJvdyBl dmFsdWF0aW9ucyBhY3Jvc3MgY29udGV4dHMsCi0gKiBhdm9pZGluZyByZWR1bmRhbnQgREVGSU5F IGNsYXVzZSBldmFsdWF0aW9ucyB3aGVuIHJld2luZGluZyBmb3IgU0tJUCBUTwotICogTkVYVCBS T1cgbW9kZS4KLSAqCi0gKiBLZXkgb3B0aW1pemF0aW9uczoKLSAqIC0gUm93IGV2YWx1YXRpb25z IChleHBlbnNpdmUgREVGSU5FIGNsYXVzZXMpIGhhcHBlbiBvbmx5IG9uY2UgcGVyIHJvdwotICog LSBBbGwgYWN0aXZlIGNvbnRleHRzIHNoYXJlIHRoZSBzYW1lIGV2YWx1YXRpb24gcmVzdWx0cwot ICogLSBDb250ZXh0cyBwZXJzaXN0IGFjcm9zcyBjYWxscywgZW5hYmxpbmcgTyhuKSBERUZJTkUg ZXZhbHVhdGlvbnMKLSAqLwotc3RhdGljIHZvaWQKLXVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRv d09iamVjdCB3aW5vYmosIGludDY0IHBvcykKK3N0YXRpYyB2b2lkCit1cGRhdGVfcmVkdWNlZF9m cmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiB7CiAJV2luZG93QWdnU3RhdGUg KndpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKIAlSUFJORkFDb250ZXh0ICp0YXJnZXRDdHg7 CkBAIC00ODUzLDcgKzQxNTcsNyBAQCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qg d2lub2JqLCBpbnQ2NCBwb3MpCiAJLyoKIAkgKiBDYXNlIDI6IEZpbmQgZXhpc3RpbmcgY29udGV4 dCBmb3IgdGhpcyBwb3MsIG9yIGNyZWF0ZSBuZXcgb25lLgogCSAqLwotCXRhcmdldEN0eCA9IG5m YV9nZXRfaGVhZF9jb250ZXh0KHdpbnN0YXRlLCBwb3MpOworCXRhcmdldEN0eCA9IEV4ZWNSUFJH ZXRIZWFkQ29udGV4dCh3aW5zdGF0ZSwgcG9zKTsKIAlpZiAodGFyZ2V0Q3R4ID09IE5VTEwpCiAJ ewogCQkvKgpAQCAtNDg2Nyw3ICs0MTcxLDcgQEAgdXBkYXRlX3JlZHVjZWRfZnJhbWUoV2luZG93 T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogCQkJcmV0dXJuOwogCQl9CiAJCS8qIE5vdCB5ZXQg cHJvY2Vzc2VkIC0gY3JlYXRlIG5ldyBjb250ZXh0IGFuZCBzdGFydCBmcmVzaCAqLwotCQl0YXJn ZXRDdHggPSBuZmFfc3RhcnRfY29udGV4dCh3aW5zdGF0ZSwgcG9zKTsKKwkJdGFyZ2V0Q3R4ID0g RXhlY1JQUlN0YXJ0Q29udGV4dCh3aW5zdGF0ZSwgcG9zKTsKIAl9CiAJZWxzZSBpZiAodGFyZ2V0 Q3R4LT5zdGF0ZXMgPT0gTlVMTCkKIAl7CkBAIC00OTAwLDE0ICs0MjA0LDkgQEAgdXBkYXRlX3Jl ZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogCQkvKiBObyBtb3Jl IHJvd3MgaW4gcGFydGl0aW9uPyBGaW5hbGl6ZSBhbGwgY29udGV4dHMgKi8KIAkJaWYgKCFyb3dF eGlzdHMpCiAJCXsKLQkJCW5mYV9maW5hbGl6ZV9hbGxfY29udGV4dHMod2luc3RhdGUsIGN1cnJl bnRQb3MgLSAxKTsKKwkJCUV4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzKHdpbnN0YXRlLCBjdXJy ZW50UG9zIC0gMSk7CiAJCQkvKiBDbGVhbiB1cCBkZWFkIGNvbnRleHRzIGZyb20gZmluYWxpemF0 aW9uICovCi0JCQluZmFfY2xlYW51cF9kZWFkX2NvbnRleHRzKHdpbnN0YXRlLCB0YXJnZXRDdHgp OwotCQkJLyogQWJzb3JiIGNvbnRleHRzIGF0IHBhcnRpdGlvbiBib3VuZGFyeSAqLwotCQkJaWYg KHdpbnN0YXRlLT5ycFBhdHRlcm4tPmlzQWJzb3JiYWJsZSkKLQkJCXsKLQkJCQluZmFfYWJzb3Ji X2NvbnRleHRzKHdpbnN0YXRlKTsKLQkJCX0KKwkJCUV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRz KHdpbnN0YXRlLCB0YXJnZXRDdHgpOwogCQkJYnJlYWs7CiAJCX0KIApAQCAtNDkyMCwyMCArNDIx OSwyMCBAQCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBw b3MpCiAJCSAqICAgMi4gQWJzb3JiIHJlZHVuZGFudAogCQkgKiAgIDMuIEFkdmFuY2UgYWxsIChk aXZlcmdlbmNlKQogCQkgKi8KLQkJbmZhX3Byb2Nlc3Nfcm93KHdpbnN0YXRlLCBjdXJyZW50UG9z LCBoYXNMaW1pdGVkRnJhbWUsIGZyYW1lT2Zmc2V0KTsKKwkJRXhlY1JQUlByb2Nlc3NSb3cod2lu c3RhdGUsIGN1cnJlbnRQb3MsIGhhc0xpbWl0ZWRGcmFtZSwgZnJhbWVPZmZzZXQpOwogCiAJCS8q CiAJCSAqIENyZWF0ZSBhIG5ldyBjb250ZXh0IGZvciB0aGUgbmV4dCBwb3RlbnRpYWwgc3RhcnQg cG9zaXRpb24uIFRoaXMKIAkJICogZW5hYmxlcyBvdmVybGFwcGluZyBtYXRjaCBkZXRlY3Rpb24g Zm9yIFNLSVAgVE8gTkVYVCBST1cuCiAJCSAqLwotCQluZmFfc3RhcnRfY29udGV4dCh3aW5zdGF0 ZSwgY3VycmVudFBvcyArIDEpOworCQlFeGVjUlBSU3RhcnRDb250ZXh0KHdpbnN0YXRlLCBjdXJy ZW50UG9zICsgMSk7CiAKIAkJLyoKIAkJICogQ2xlYW4gdXAgZGVhZCBjb250ZXh0cyAoZmFpbGVk IHdpdGggbm8gYWN0aXZlIHN0YXRlcyBhbmQgbm8gbWF0Y2gpLgogCQkgKiBUaGlzIHJlbW92ZXMg Y29udGV4dHMgdGhhdCBmYWlsZWQgZHVyaW5nIHByb2Nlc3NpbmcgYW5kIGNvdW50cyB0aGVtCiAJ CSAqIGFwcHJvcHJpYXRlbHkgYXMgcHJ1bmVkIG9yIG1pc21hdGNoZWQuCiAJCSAqLwotCQluZmFf Y2xlYW51cF9kZWFkX2NvbnRleHRzKHdpbnN0YXRlLCB0YXJnZXRDdHgpOworCQlFeGVjUlBSQ2xl YW51cERlYWRDb250ZXh0cyh3aW5zdGF0ZSwgdGFyZ2V0Q3R4KTsKIAl9CiAKIHJlZ2lzdGVyX3Jl c3VsdDoKQEAgLTQ5NDcsNjQ4ICs0MjQ2LDIzIEBAIHJlZ2lzdGVyX3Jlc3VsdDoKIAkJbWF0Y2hM ZW4gPSB0YXJnZXRDdHgtPmxhc3RQcm9jZXNzZWRSb3cgLSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRS b3cgKyAxOwogCiAJCXJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlLCB0YXJnZXRD dHgtPm1hdGNoU3RhcnRSb3csIFJGX1VOTUFUQ0hFRCk7Ci0JCW5mYV9yZWNvcmRfY29udGV4dF9m YWlsdXJlKHdpbnN0YXRlLCBtYXRjaExlbik7Ci0JCW5mYV9jb250ZXh0X2ZyZWUod2luc3RhdGUs IHRhcmdldEN0eCk7CisJCUV4ZWNSUFJSZWNvcmRDb250ZXh0RmFpbHVyZSh3aW5zdGF0ZSwgbWF0 Y2hMZW4pOworCQlFeGVjUlBSRnJlZUNvbnRleHQod2luc3RhdGUsIHRhcmdldEN0eCk7CiAJCXJl dHVybjsKIAl9CiAKIAkvKiBNYXRjaCBzdWNjZWVkZWQgLSByZWdpc3RlciBmcmFtZSBtYXAgYW5k IHJlY29yZCBzdGF0aXN0aWNzICovCiAJbWF0Y2hMZW4gPSB0YXJnZXRDdHgtPm1hdGNoRW5kUm93 IC0gdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0Um93ICsgMTsKIAotCXJlZ2lzdGVyX3JlZHVjZWRfZnJh bWVfbWFwKHdpbnN0YXRlLCB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3csIFJGX0ZSQU1FX0hFQUQp OwotCWZvciAoaW50NjQgaSA9IHRhcmdldEN0eC0+bWF0Y2hTdGFydFJvdyArIDE7IGkgPD0gdGFy Z2V0Q3R4LT5tYXRjaEVuZFJvdzsgaSsrKQotCXsKLQkJcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9t YXAod2luc3RhdGUsIGksIFJGX1NLSVBQRUQpOwotCX0KLQluZmFfcmVjb3JkX2NvbnRleHRfc3Vj Y2Vzcyh3aW5zdGF0ZSwgbWF0Y2hMZW4pOwotCi0JLyogUmVtb3ZlIHRoZSBtYXRjaGVkIGNvbnRl eHQgKi8KLQluZmFfY29udGV4dF9mcmVlKHdpbnN0YXRlLCB0YXJnZXRDdHgpOwotfQotCi0vKgot ICogTkZBLWJhc2VkIHBhdHRlcm4gbWF0Y2hpbmcgaW1wbGVtZW50YXRpb24KLSAqCi0gKiBUaGVz ZSBmdW5jdGlvbnMgaW1wbGVtZW50IGRpcmVjdCBORkEgZXhlY3V0aW9uIHVzaW5nIHRoZSBjb21w aWxlZAotICogUlBSUGF0dGVybiBzdHJ1Y3R1cmUsIGF2b2lkaW5nIHJlZ2V4IGNvbXBpbGF0aW9u IG92ZXJoZWFkLgotICoKLSAqIEV4ZWN1dGlvbiBGbG93OiBtYXRjaCAtPiBhYnNvcmIgLT4gYWR2 YW5jZQotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIFRo ZSBORkEgZXhlY3V0aW9uIGZvbGxvd3MgYSB0aHJlZS1waGFzZSBjeWNsZSBmb3IgZWFjaCByb3c6 Ci0gKgotICogMS4gTUFUQ0ggKGNvbnZlcmdlbmNlKTogRXZhbHVhdGUgYWxsIHdhaXRpbmcgc3Rh dGVzIGFnYWluc3QgY3VycmVudCByb3cuCi0gKiAgICBTdGF0ZXMgb24gVkFSIGVsZW1lbnRzIGFy ZSBjaGVja2VkIGFnYWluc3QgdGhlaXIgZGVmaW5pbmcgY29uZGl0aW9ucy4KLSAqICAgIEZhaWxl ZCBtYXRjaGVzIGFyZSByZW1vdmVkLCBzdWNjZXNzZnVsIG9uZXMgbWF5IHRyYW5zaXRpb24gZm9y d2FyZC4KLSAqICAgIFRoaXMgaXMgYSAiY29udmVyZ2VuY2UiIHBoYXNlIC0gdGhlIG51bWJlciBv ZiBzdGF0ZXMgdGVuZHMgdG8gZGVjcmVhc2UuCi0gKgotICogMi4gQUJTT1JCOiBBZnRlciBtYXRj aGluZywgY2hlY2sgaWYgYW55IGNvbnRleHQgY2FuIGFic29yYiBhbm90aGVyLgotICogICAgQ29u dGV4dCBhYnNvcnB0aW9uIGlzIGFuIG9wdGltaXphdGlvbiB0aGF0IG1lcmdlcyBlcXVpdmFsZW50 IGNvbnRleHRzLgotICogICAgQSBjb250ZXh0IGNhbiBvbmx5IGJlIGFic29yYmVkIGlmIEFMTCBp dHMgc3RhdGVzIGFyZSBhYnNvcmJhYmxlLgotICoKLSAqIDMuIEFEVkFOQ0UgKGRpdmVyZ2VuY2Up OiBFeHBhbmQgc3RhdGVzIHRocm91Z2ggZXBzaWxvbiB0cmFuc2l0aW9ucy4KLSAqICAgIFN0YXRl cyBhZHZhbmNlIHRocm91Z2ggQUxUIChhbHRlcm5hdGlvbiksIEVORCAoZ3JvdXAgZW5kKSwgYW5k Ci0gKiAgICBvcHRpb25hbCBlbGVtZW50cyB1bnRpbCByZWFjaGluZyBWQVIgb3IgRklOIGVsZW1l bnRzIHdoZXJlIHRoZXkgd2FpdC4KLSAqICAgIFRoaXMgaXMgYSAiZGl2ZXJnZW5jZSIgcGhhc2Ug LSBBTFQgY3JlYXRlcyBtdWx0aXBsZSBicmFuY2ggc3RhdGVzLgotICoKLSAqIEtleSBEZXNpZ24g RGVjaXNpb25zOgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAtIFZBUi0+RU5EIHRyYW5z aXRpb24gaW4gbWF0Y2ggcGhhc2U6IFdoZW4gYSBzaW1wbGUgVkFSIChtYXg9MSkgbWF0Y2hlcwot ICogICBhbmQgdGhlIG5leHQgZWxlbWVudCBpcyBFTkQsIHdlIHRyYW5zaXRpb24gaW1tZWRpYXRl bHkgaW4gdGhlIG1hdGNoCi0gKiAgIHBoYXNlIHJhdGhlciB0aGFuIHdhaXRpbmcgZm9yIGFkdmFu Y2UuIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0Ci0gKiAgIGFic29ycHRpb246IHN0YXRl cyBtdXN0IGJlIGF0IEVORCB0byBiZSBtYXJrZWQgYWJzb3JiYWJsZSBiZWZvcmUgdGhlCi0gKiAg IGFic29ycHRpb24gY2hlY2sgb2NjdXJzLgotICoKLSAqIC0gT3B0aW9uYWwgVkFSIHNraXAgcGF0 aHM6IFdoZW4gYWR2YW5jZSBsYW5kcyBvbiBhIFZBUiB3aXRoIG1pbj0wLAotICogICB3ZSBjcmVh dGUgYm90aCBhIHdhaXRpbmcgc3RhdGUgQU5EIGEgc2tpcCBzdGF0ZSAobGlrZSBBTFQgYnJhbmNo ZXMpLgotICogICBUaGlzIGVuc3VyZXMgcGF0dGVybnMgbGlrZSAiQSBCPyBDIiB3b3JrIGNvcnJl Y3RseSAtIHdlIG5lZWQgYSBzdGF0ZQotICogICB3YWl0aW5nIGZvciBCIEFORCBhIHN0YXRlIHRo YXQgaGFzIGFscmVhZHkgc2tpcHBlZCB0byBDLgotICoKLSAqIC0gRU5ELT5FTkQgY291bnQgaW5j cmVtZW50OiBXaGVuIHRyYW5zaXRpb25pbmcgZnJvbSBvbmUgRU5EIHRvIGFub3RoZXIKLSAqICAg RU5EIHdpdGhpbiBhZHZhbmNlLCB3ZSBtdXN0IGluY3JlbWVudCB0aGUgb3V0ZXIgRU5EJ3MgY291 bnQuIFRoaXMKLSAqICAgaGFuZGxlcyBuZXN0ZWQgZ3JvdXBzIGxpa2UgIigoQXxCKSspKyIgY29y cmVjdGx5IC0gZXhpdGluZyB0aGUgaW5uZXIKLSAqICAgZ3JvdXAgY291bnRzIGFzIG9uZSBpdGVy YXRpb24gb2YgdGhlIG91dGVyIGdyb3VwLgotICoKLSAqIC0gRW1wdHkgbWF0Y2ggaGFuZGxpbmc6 IFRoZSBpbml0aWFsIGFkdmFuY2UgdXNlcyBjdXJyZW50UG9zID0KLSAqICAgc3RhcnRQb3MgLSAx IChiZWZvcmUgYW55IHJvdyBpcyBjb25zdW1lZCkuIElmIEZJTiBpcyByZWFjaGVkIHZpYQotICog ICBlcHNpbG9uIHRyYW5zaXRpb25zIGFsb25lLCBtYXRjaEVuZFJvdyA9IHN0YXJ0UG9zIC0gMSA8 IG1hdGNoU3RhcnRSb3csCi0gKiAgIHJlc3VsdGluZyBpbiBVTk1BVENIRUQuIEZvciByZWx1Y3Rh bnQgbWluPTAgcGF0dGVybnMgKEEqPywgQT8/KSwKLSAqICAgdGhlIHNraXAgcGF0aCByZWFjaGVz IEZJTiBmaXJzdCBhbmQgZWFybHkgdGVybWluYXRpb24gcHJ1bmVzIGVudGVyCi0gKiAgIHBhdGhz LCB5aWVsZGluZyBhbiBpbW1lZGlhdGUgZW1wdHkgKHVubWF0Y2hlZCkgcmVzdWx0LiBGb3IKLSAq ICAgZ3JlZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRlciBwYXRoIGFkZHMgVkFSIHN0YXRlcyBm aXJzdCwgdGhlbgotICogICB0aGUgc2tpcCBGSU4gaXMgcmVjb3JkZWQgYnV0IFZBUiBzdGF0ZXMg c3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCi0gKgotICogQ29udGV4dCBBYnNvcnB0aW9uIFJ1 bnRpbWU6Ci0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEFic29ycHRpb24gdXNl cyBmbGFncyBjb21wdXRlZCBhdCBwbGFubmluZyB0aW1lIChpbiBycHIuYykgYW5kIHR3bwotICog Y29udGV4dC1sZXZlbCBmbGFncyBtYWludGFpbmVkIGF0IHJ1bnRpbWU6Ci0gKgotICogU3RhdGUt bGV2ZWw6Ci0gKiAgIHN0YXRlLmlzQWJzb3JiYWJsZTogdHJ1ZSBpZiBzdGF0ZSBpcyBpbiB0aGUg YWJzb3JiYWJsZSByZWdpb24uCi0gKiAgICAgLSBTZXQgYXQgY3JlYXRpb246IGVsZW0tPmZsYWdz ICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gKLSAqICAgICAtIEF0IHRyYW5zaXRpb246IHBy ZXZBYnNvcmJhYmxlICYmIChuZXdFbGVtLT5mbGFncyAmIEFCU09SQkFCTEVfQlJBTkNIKQotICog ICAgIC0gTW9ub3RvbmljOiBvbmNlIGZhbHNlLCBzdGF5cyBmYWxzZSBmb3JldmVyCi0gKgotICog Q29udGV4dC1sZXZlbDoKLSAqICAgY3R4Lmhhc0Fic29yYmFibGVTdGF0ZTogY2FuIHRoaXMgY29u dGV4dCBhYnNvcmIgb3RoZXJzPwotICogICAgIC0gVHJ1ZSBpZiBhdCBsZWFzdCBvbmUgc3RhdGUg aGFzIGlzQWJzb3JiYWJsZT10cnVlCi0gKiAgICAgLSBNb25vdG9uaWM6IHRydWUtPmZhbHNlIG9u bHkgKG9wdGltaXphdGlvbjogc2tpcCByZWNhbGMgd2hlbiBmYWxzZSkKLSAqCi0gKiAgIGN0eC5h bGxTdGF0ZXNBYnNvcmJhYmxlOiBjYW4gdGhpcyBjb250ZXh0IGJlIGFic29yYmVkPwotICogICAg IC0gVHJ1ZSBpZiBBTEwgc3RhdGVzIGhhdmUgaXNBYnNvcmJhYmxlPXRydWUKLSAqICAgICAtIER5 bmFtaWM6IGNhbiBjaGFuZ2UgZmFsc2UtPnRydWUgKHdoZW4gbm9uLWFic29yYmFibGUgc3RhdGVz IGRpZSkKLSAqCi0gKiBBYnNvcnB0aW9uIEFsZ29yaXRobToKLSAqICAgRm9yIGVhY2ggcGFpciAo b2xkZXIgQ3R4MSwgbmV3ZXIgQ3R4Mik6Ci0gKiAgIDEuIFByZS1jaGVjazogQ3R4MS5oYXNBYnNv cmJhYmxlU3RhdGUgJiYgQ3R4Mi5hbGxTdGF0ZXNBYnNvcmJhYmxlCi0gKiAgICAgIC0+IElmIGZh bHNlLCBza2lwIChmYXN0IGZpbHRlcikKLSAqICAgMi4gQ292ZXJhZ2UgY2hlY2s6IEZvciBlYWNo IEN0eDIgc3RhdGUgd2l0aCBpc0Fic29yYmFibGU9dHJ1ZSwKLSAqICAgICAgZmluZCBDdHgxIHN0 YXRlIHdpdGggc2FtZSBlbGVtSWR4IGFuZCBjb3VudCA+PSBDdHgyLmNvdW50Ci0gKiAgIDMuIElm IGFsbCBDdHgyIGFic29yYmFibGUgc3RhdGVzIGFyZSBjb3ZlcmVkLCBhYnNvcmIgQ3R4MgotICoK LSAqIEV4YW1wbGU6IFBhdHRlcm4gQSsgQgotICogICBSb3cgMTogQ3R4MSBhdCBBIChjb3VudD0x KQotICogICBSb3cgMjogQ3R4MSBhdCBBIChjb3VudD0yKSwgQ3R4MiBhdCBBIChjb3VudD0xKQot ICogICAtPiBCb3RoIGF0IHNhbWUgZWxlbUlkeCAoQSksIEN0eDEuY291bnQgPj0gQ3R4Mi5jb3Vu dAotICogICAtPiBDdHgyIGFic29yYmVkCi0gKgotICogVGhlIGFzeW1tZXRyaWMgZGVzaWduIChD dHgxIG5lZWRzIGhhc0Fic29yYmFibGUsIEN0eDIgbmVlZHMgYWxsQWJzb3JiYWJsZSkKLSAqIGFs bG93cyBhYnNvcnB0aW9uIGV2ZW4gd2hlbiBDdHgxIGhhcyBleHRyYSBub24tYWJzb3JiYWJsZSBz dGF0ZXMuCi0gKi8KLQotLyoKLSAqIG5mYV9wcm9jZXNzX3JvdwotICoKLSAqIFByb2Nlc3MgYWxs IGNvbnRleHRzIGZvciBvbmUgcm93OgotICogICAxLiBNYXRjaCBhbGwgY29udGV4dHMgKGNvbnZl cmdlbmNlKSAtIGV2YWx1YXRlIFZBUnMsIHBydW5lIGRlYWQgc3RhdGVzCi0gKiAgIDIuIEFic29y YiByZWR1bmRhbnQgY29udGV4dHMgLSBpZGVhbCB0aW1pbmcgYWZ0ZXIgY29udmVyZ2VuY2UKLSAq ICAgMy4gQWR2YW5jZSBhbGwgY29udGV4dHMgKGRpdmVyZ2VuY2UpIC0gY3JlYXRlIG5ldyBzdGF0 ZXMgZm9yIG5leHQgcm93Ci0gKi8KLXN0YXRpYyB2b2lkCi1uZmFfcHJvY2Vzc19yb3coV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zLAotCQkJCWJvb2wgaGFzTGltaXRl ZEZyYW1lLCBpbnQ2NCBmcmFtZU9mZnNldCkKLXsKLQlSUFJORkFDb250ZXh0ICpjdHg7Ci0JYm9v bAkgICAqdmFyTWF0Y2hlZCA9IHdpbnN0YXRlLT5uZmFWYXJNYXRjaGVkOwotCi0JLyoKLQkgKiBQ aGFzZSAxOiBNYXRjaCBhbGwgY29udGV4dHMgKGNvbnZlcmdlbmNlKS4gIEV2YWx1YXRlIFZBUiBl bGVtZW50cywKLQkgKiB1cGRhdGUgY291bnRzLCByZW1vdmUgZGVhZCBzdGF0ZXMuCi0JICovCi0J Zm9yIChjdHggPSB3aW5zdGF0ZS0+bmZhQ29udGV4dDsgY3R4ICE9IE5VTEw7IGN0eCA9IGN0eC0+ bmV4dCkKLQl7Ci0JCWlmIChjdHgtPnN0YXRlcyA9PSBOVUxMKQotCQkJY29udGludWU7Ci0KLQkJ LyogQ2hlY2sgZnJhbWUgYm91bmRhcnkgLSBmaW5hbGl6ZSBpZiBleGNlZWRlZCAqLwotCQlpZiAo aGFzTGltaXRlZEZyYW1lKQotCQl7Ci0JCQlpbnQ2NAkJY3R4RnJhbWVFbmQgPSBjdHgtPm1hdGNo U3RhcnRSb3cgKyBmcmFtZU9mZnNldCArIDE7Ci0KLQkJCWlmIChjdXJyZW50UG9zID49IGN0eEZy YW1lRW5kKQotCQkJewotCQkJCS8qIEZyYW1lIGJvdW5kYXJ5IGV4Y2VlZGVkOiBmb3JjZSBtaXNt YXRjaCAqLwotCQkJCW5mYV9tYXRjaCh3aW5zdGF0ZSwgY3R4LCBOVUxMKTsKLQkJCQljb250aW51 ZTsKLQkJCX0KLQkJfQotCi0JCW5mYV9tYXRjaCh3aW5zdGF0ZSwgY3R4LCB2YXJNYXRjaGVkKTsK LQkJY3R4LT5sYXN0UHJvY2Vzc2VkUm93ID0gY3VycmVudFBvczsKLQl9Ci0KLQkvKgotCSAqIFBo YXNlIDI6IEFic29yYiByZWR1bmRhbnQgY29udGV4dHMuICBBZnRlciBtYXRjaCBwaGFzZSwgc3Rh dGVzIGhhdmUKLQkgKiBjb252ZXJnZWQgLSBpZGVhbCBmb3IgYWJzb3JwdGlvbi4gIEZpcnN0IHVw ZGF0ZSBhYnNvcnB0aW9uIGZsYWdzIHRoYXQKLQkgKiBtYXkgaGF2ZSBjaGFuZ2VkIGR1ZSB0byBz dGF0ZSByZW1vdmFsLgotCSAqLwotCWlmICh3aW5zdGF0ZS0+cnBQYXR0ZXJuLT5pc0Fic29yYmFi bGUpCi0JewotCQlmb3IgKGN0eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsg Y3R4ID0gY3R4LT5uZXh0KQotCQkJbmZhX3VwZGF0ZV9hYnNvcnB0aW9uX2ZsYWdzKGN0eCk7Ci0K LQkJbmZhX2Fic29yYl9jb250ZXh0cyh3aW5zdGF0ZSk7Ci0JfQotCi0JLyoKLQkgKiBQaGFzZSAz OiBBZHZhbmNlIGFsbCBjb250ZXh0cyAoZGl2ZXJnZW5jZSkuICBDcmVhdGUgbmV3IHN0YXRlcwot CSAqIChsb29wL2V4aXQpIGZyb20gc3Vydml2aW5nIG1hdGNoZWQgc3RhdGVzLgotCSAqLwotCWZv ciAoY3R4ID0gd2luc3RhdGUtPm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBjdHgtPm5l eHQpCi0JewotCQlpZiAoY3R4LT5zdGF0ZXMgPT0gTlVMTCkKLQkJCWNvbnRpbnVlOwotCi0JCS8q Ci0JCSAqIFBoYXNlIDEgYWxyZWFkeSBoYW5kbGVkIGZyYW1lIGJvdW5kYXJ5IGV4Y2VlZGVkIGNv bnRleHRzIGJ5IGZvcmNpbmcKLQkJICogbWlzbWF0Y2ggKG5mYV9tYXRjaCB3aXRoIE5VTEwpLCB3 aGljaCByZW1vdmVzIGFsbCBzdGF0ZXMgKGFsbAotCQkgKiBzdGF0ZXMgYXJlIGF0IFZBUiBwb3Np dGlvbnMgYWZ0ZXIgYWR2YW5jZSkuIFNvIGFueSBzdXJ2aXZpbmcKLQkJICogY29udGV4dCBoZXJl IG11c3QgYmUgd2l0aGluIGl0cyBmcmFtZSBib3VuZGFyeS4KLQkJICovCi0JCUFzc2VydCghaGFz TGltaXRlZEZyYW1lIHx8Ci0JCQkgICBjdXJyZW50UG9zIDwgY3R4LT5tYXRjaFN0YXJ0Um93ICsg ZnJhbWVPZmZzZXQgKyAxKTsKLQotCQluZmFfYWR2YW5jZSh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50 UG9zKTsKLQl9Ci19Ci0KLS8qCi0gKiBuZmFfc3RhdGVfYWxsb2MKLSAqCi0gKiBBbGxvY2F0ZSBh biBORkEgc3RhdGUsIHJldXNpbmcgZnJvbSBmcmVlTGlzdCBpZiBhdmFpbGFibGUuCi0gKiBmcmVl TGlzdCBpcyBzdG9yZWQgaW4gV2luZG93QWdnU3RhdGUgZm9yIHJldXNlIGFjcm9zcyBtYXRjaCBh dHRlbXB0cy4KLSAqIFVzZXMgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBjb3VudHNbXS4KLSAq Lwotc3RhdGljIFJQUk5GQVN0YXRlICoKLW5mYV9zdGF0ZV9hbGxvYyhXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUpCi17Ci0JUlBSTkZBU3RhdGUgKnN0YXRlOwotCi0JLyogVHJ5IHRvIHJldXNlIGZy b20gZnJlZSBsaXN0IGZpcnN0ICovCi0JaWYgKHdpbnN0YXRlLT5uZmFTdGF0ZUZyZWUgIT0gTlVM TCkKLQl7Ci0JCXN0YXRlID0gd2luc3RhdGUtPm5mYVN0YXRlRnJlZTsKLQkJd2luc3RhdGUtPm5m YVN0YXRlRnJlZSA9IHN0YXRlLT5uZXh0OwotCX0KLQllbHNlCi0JewotCQkvKiBBbGxvY2F0ZSBp biBwYXJ0aXRpb24gY29udGV4dCBmb3IgcHJvcGVyIGxpZmV0aW1lICovCi0JCXN0YXRlID0gTWVt b3J5Q29udGV4dEFsbG9jKHdpbnN0YXRlLT5wYXJ0Y29udGV4dCwgd2luc3RhdGUtPm5mYVN0YXRl U2l6ZSk7Ci0JfQotCi0JLyogSW5pdGlhbGl6ZSBlbnRpcmUgc3RhdGUgdG8gemVybyAqLwotCW1l bXNldChzdGF0ZSwgMCwgd2luc3RhdGUtPm5mYVN0YXRlU2l6ZSk7Ci0KLQkvKiBVcGRhdGUgc3Rh dGlzdGljcyAqLwotCXdpbnN0YXRlLT5uZmFTdGF0ZXNBY3RpdmUrKzsKLQl3aW5zdGF0ZS0+bmZh U3RhdGVzVG90YWxDcmVhdGVkKys7Ci0JaWYgKHdpbnN0YXRlLT5uZmFTdGF0ZXNBY3RpdmUgPiB3 aW5zdGF0ZS0+bmZhU3RhdGVzTWF4KQotCQl3aW5zdGF0ZS0+bmZhU3RhdGVzTWF4ID0gd2luc3Rh dGUtPm5mYVN0YXRlc0FjdGl2ZTsKLQotCXJldHVybiBzdGF0ZTsKLX0KLQotLyoKLSAqIG5mYV9z dGF0ZV9mcmVlCi0gKgotICogUmV0dXJuIGEgc3RhdGUgdG8gdGhlIGZyZWUgbGlzdCBmb3IgbGF0 ZXIgcmV1c2UuCi0gKi8KLXN0YXRpYyB2b2lkCi1uZmFfc3RhdGVfZnJlZShXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQVN0YXRlICpzdGF0ZSkKLXsKLQl3aW5zdGF0ZS0+bmZhU3RhdGVz QWN0aXZlLS07Ci0Jc3RhdGUtPm5leHQgPSB3aW5zdGF0ZS0+bmZhU3RhdGVGcmVlOwotCXdpbnN0 YXRlLT5uZmFTdGF0ZUZyZWUgPSBzdGF0ZTsKLX0KLQotLyoKLSAqIG5mYV9zdGF0ZV9mcmVlX2xp c3QKLSAqCi0gKiBSZXR1cm4gYWxsIHN0YXRlcyBpbiBhIGxpc3QgdG8gdGhlIGZyZWUgbGlzdC4K LSAqLwotc3RhdGljIHZvaWQKLW5mYV9zdGF0ZV9mcmVlX2xpc3QoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFTdGF0ZSAqbGlzdCkKLXsKLQlSUFJORkFTdGF0ZSAqbmV4dDsKLQotCWZv ciAoOyBsaXN0ICE9IE5VTEw7IGxpc3QgPSBuZXh0KQotCXsKLQkJbmV4dCA9IGxpc3QtPm5leHQ7 Ci0JCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBsaXN0KTsKLQl9Ci19Ci0KLS8qCi0gKiBuZmFf c3RhdGVfY3JlYXRlCi0gKgotICogQ3JlYXRlIGEgbmV3IHN0YXRlIHdpdGggZ2l2ZW4gZWxlbUlk eCBhbmQgY291bnRzLgotICogaXNBYnNvcmJhYmxlIGlzIGNvbXB1dGVkIGltbWVkaWF0ZWx5OiBp bmhlcml0ZWQgQU5EIG5ldyBlbGVtZW50J3MgZmxhZy4KLSAqIE1vbm90b25pYyBwcm9wZXJ0eTog b25jZSBmYWxzZSwgc3RheXMgZmFsc2UgdGhyb3VnaCBhbGwgdHJhbnNpdGlvbnMuCi0gKgotICog Q2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBsaW5raW5nIHRoZSByZXR1cm5lZCBzdGF0ZS4KLSAq Lwotc3RhdGljIFJQUk5GQVN0YXRlICoKLW5mYV9zdGF0ZV9jcmVhdGUoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBpbnQxNiBlbGVtSWR4LAotCQkJCSBpbnQzMiAqY291bnRzLCBib29sIHNvdXJj ZUFic29yYmFibGUpCi17Ci0JUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRl cm47Ci0JaW50CQkJbWF4RGVwdGggPSBwYXR0ZXJuLT5tYXhEZXB0aDsKLQlSUFJORkFTdGF0ZSAq c3RhdGUgPSBuZmFfc3RhdGVfYWxsb2Mod2luc3RhdGUpOwotCVJQUlBhdHRlcm5FbGVtZW50ICpl bGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW2VsZW1JZHhdOwotCi0Jc3RhdGUtPmVsZW1JZHggPSBl bGVtSWR4OwotCWlmIChjb3VudHMgIT0gTlVMTCAmJiBtYXhEZXB0aCA+IDApCi0JCW1lbWNweShz dGF0ZS0+Y291bnRzLCBjb3VudHMsIHNpemVvZihpbnQzMikgKiBtYXhEZXB0aCk7Ci0KLQkvKgot CSAqIENvbXB1dGUgaXNBYnNvcmJhYmxlIGltbWVkaWF0ZWx5IGF0IHRyYW5zaXRpb24gdGltZS4g aXNBYnNvcmJhYmxlID0KLQkgKiBzb3VyY2VBYnNvcmJhYmxlICYmIChlbGVtLT5mbGFncyAmIEFC U09SQkFCTEVfQlJBTkNIKSBNb25vdG9uaWM6IG9uY2UKLQkgKiBmYWxzZSwgc3RheXMgZmFsc2Ug KGNhbid0IHJlLWVudGVyIGFic29yYmFibGUgcmVnaW9uKS4KLQkgKi8KLQlzdGF0ZS0+aXNBYnNv cmJhYmxlID0gc291cmNlQWJzb3JiYWJsZSAmJiBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNoKGVs ZW0pOwotCi0JcmV0dXJuIHN0YXRlOwotfQotCi0vKgotICogbmZhX3N0YXRlc19lcXVhbAotICoK LSAqIENoZWNrIGlmIHR3byBzdGF0ZXMgYXJlIGVxdWl2YWxlbnQgKHNhbWUgZWxlbUlkeCBhbmQg Y291bnRzKS4KLSAqLwotc3RhdGljIGJvb2wKLW5mYV9zdGF0ZXNfZXF1YWwoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqczEsIFJQUk5GQVN0YXRlICpzMikKLXsKLQlSUFJQ YXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKLQlSUFJQYXR0ZXJuRWxlbWVu dCAqZWxlbTsKLQlpbnQJCQljb21wYXJlRGVwdGg7Ci0KLQlpZiAoczEtPmVsZW1JZHggIT0gczIt PmVsZW1JZHgpCi0JCXJldHVybiBmYWxzZTsKLQotCS8qIENvbXBhcmUgY291bnRzIHVwIHRvIGN1 cnJlbnQgZWxlbWVudCdzIGRlcHRoICovCi0JZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tzMS0+ ZWxlbUlkeF07Ci0JY29tcGFyZURlcHRoID0gZWxlbS0+ZGVwdGggKyAxOyAvKiBkZXB0aCAwIG5l ZWRzIDEgY291bnQsIGV0Yy4gKi8KLQotCWlmIChtZW1jbXAoczEtPmNvdW50cywgczItPmNvdW50 cywgc2l6ZW9mKGludDMyKSAqIGNvbXBhcmVEZXB0aCkgIT0gMCkKLQkJcmV0dXJuIGZhbHNlOwot Ci0JcmV0dXJuIHRydWU7Ci19Ci0KLS8qCi0gKiBuZmFfYWRkX3N0YXRlX3VuaXF1ZQotICoKLSAq IEFkZCBhIHN0YXRlIHRvIGN0eC0+c3RhdGVzIGF0IHRoZSBFTkQsIG9ubHkgaWYgbm8gZHVwbGlj YXRlIGV4aXN0cy4KLSAqIFJldHVybnMgdHJ1ZSBpZiBzdGF0ZSB3YXMgYWRkZWQsIGZhbHNlIGlm IGR1cGxpY2F0ZSBmb3VuZCAoc3RhdGUgaXMgZnJlZWQpLgotICogRWFybGllciBzdGF0ZXMgaGF2 ZSBiZXR0ZXIgbGV4aWNhbCBvcmRlciAoREZTIHRyYXZlcnNhbCBvcmRlciksIHNvIGV4aXN0aW5n IHdpbnMuCi0gKi8KLXN0YXRpYyBib29sCi1uZmFfYWRkX3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgUlBSTkZBU3RhdGUgKnN0YXRlKQot ewotCVJQUk5GQVN0YXRlICpzOwotCVJQUk5GQVN0YXRlICp0YWlsID0gTlVMTDsKLQotCS8qIENo ZWNrIGZvciBkdXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAqLwotCWZvciAocyA9IGN0eC0+c3RhdGVz OyBzICE9IE5VTEw7IHMgPSBzLT5uZXh0KQotCXsKLQkJaWYgKG5mYV9zdGF0ZXNfZXF1YWwod2lu c3RhdGUsIHMsIHN0YXRlKSkKLQkJewotCQkJLyoKLQkJCSAqIER1cGxpY2F0ZSBmb3VuZCAtIGV4 aXN0aW5nIGhhcyBiZXR0ZXIgbGV4aWNhbCBvcmRlciwgZGlzY2FyZAotCQkJICogbmV3Ci0JCQkg Ki8KLQkJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7Ci0JCQl3aW5zdGF0ZS0+bmZh U3RhdGVzTWVyZ2VkKys7Ci0JCQlyZXR1cm4gZmFsc2U7Ci0JCX0KLQkJdGFpbCA9IHM7Ci0JfQot Ci0JLyogTm8gZHVwbGljYXRlLCBhZGQgYXQgZW5kICovCi0Jc3RhdGUtPm5leHQgPSBOVUxMOwot CWlmICh0YWlsID09IE5VTEwpCi0JCWN0eC0+c3RhdGVzID0gc3RhdGU7Ci0JZWxzZQotCQl0YWls LT5uZXh0ID0gc3RhdGU7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQotLyoKLSAqIG5mYV9hZGRfbWF0 Y2hlZF9zdGF0ZQotICoKLSAqIFJlY29yZCBhIHN0YXRlIHRoYXQgcmVhY2hlZCBGSU4sIHJlcGxh Y2luZyBhbnkgcHJldmlvdXMgbWF0Y2guCi0gKgotICogRm9yIFNLSVAgUEFTVCBMQVNUIFJPVywg YWxzbyBwcnVuZSBzdWJzZXF1ZW50IGNvbnRleHRzIHdob3NlIHN0YXJ0IHJvdwotICogZmFsbHMg d2l0aGluIHRoZSBtYXRjaCByYW5nZSwgYXMgdGhleSBjYW5ub3QgcHJvZHVjZSBvdXRwdXQgcm93 cy4KLSAqLwotc3RhdGljIHZvaWQKLW5mYV9hZGRfbWF0Y2hlZF9zdGF0ZShXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKLQkJCQkJICBSUFJORkFTdGF0ZSAqc3Rh dGUsIGludDY0IG1hdGNoRW5kUm93KQotewotCWlmIChjdHgtPm1hdGNoZWRTdGF0ZSAhPSBOVUxM KQotCQluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgY3R4LT5tYXRjaGVkU3RhdGUpOwotCi0JY3R4 LT5tYXRjaGVkU3RhdGUgPSBzdGF0ZTsKLQlzdGF0ZS0+bmV4dCA9IE5VTEw7Ci0JY3R4LT5tYXRj aEVuZFJvdyA9IG1hdGNoRW5kUm93OwotCi0JLyogUHJ1bmUgY29udGV4dHMgdGhhdCBzdGFydGVk IHdpdGhpbiB0aGlzIG1hdGNoJ3MgcmFuZ2UgKi8KLQlpZiAod2luc3RhdGUtPnJwU2tpcFRvID09 IFNUX1BBU1RfTEFTVF9ST1cpCi0JewotCQlSUFJORkFDb250ZXh0ICpuZXh0Q3R4OwotCQlpbnQ2 NAkJc2tpcHBlZExlbjsKLQotCQl3aGlsZSAoY3R4LT5uZXh0ICE9IE5VTEwgJiYKLQkJCSAgIGN0 eC0+bmV4dC0+bWF0Y2hTdGFydFJvdyA8PSBtYXRjaEVuZFJvdykKLQkJewotCQkJbmV4dEN0eCA9 IGN0eC0+bmV4dDsKLQkJCWN0eC0+bmV4dCA9IGN0eC0+bmV4dC0+bmV4dDsKLQotCQkJQXNzZXJ0 KG5leHRDdHgtPmxhc3RQcm9jZXNzZWRSb3cgPj0gbmV4dEN0eC0+bWF0Y2hTdGFydFJvdyk7Ci0J CQlza2lwcGVkTGVuID0gbmV4dEN0eC0+bGFzdFByb2Nlc3NlZFJvdyAtIG5leHRDdHgtPm1hdGNo U3RhcnRSb3cgKyAxOwotCQkJbmZhX3JlY29yZF9jb250ZXh0X3NraXBwZWQod2luc3RhdGUsIHNr aXBwZWRMZW4pOwotCi0JCQluZmFfY29udGV4dF9mcmVlKHdpbnN0YXRlLCBuZXh0Q3R4KTsKLQkJ fQotCQlpZiAoY3R4LT5uZXh0ID09IE5VTEwpCi0JCQl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwg PSBjdHg7Ci0JfQotfQotCi0vKgotICogbmZhX2NvbnRleHRfYWxsb2MKLSAqCi0gKiBBbGxvY2F0 ZSBhbiBORkEgY29udGV4dCwgcmV1c2luZyBmcm9tIGZyZWUgbGlzdCBpZiBhdmFpbGFibGUuCi0g Ki8KLXN0YXRpYyBSUFJORkFDb250ZXh0ICoKLW5mYV9jb250ZXh0X2FsbG9jKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSkKLXsKLQlSUFJORkFDb250ZXh0ICpjdHg7Ci0KLQlpZiAod2luc3RhdGUt Pm5mYUNvbnRleHRGcmVlICE9IE5VTEwpCi0JewotCQljdHggPSB3aW5zdGF0ZS0+bmZhQ29udGV4 dEZyZWU7Ci0JCXdpbnN0YXRlLT5uZmFDb250ZXh0RnJlZSA9IGN0eC0+bmV4dDsKLQl9Ci0JZWxz ZQotCXsKLQkJLyogQWxsb2NhdGUgaW4gcGFydGl0aW9uIGNvbnRleHQgZm9yIHByb3BlciBsaWZl dGltZSAqLwotCQljdHggPSBNZW1vcnlDb250ZXh0QWxsb2Mod2luc3RhdGUtPnBhcnRjb250ZXh0 LCBzaXplb2YoUlBSTkZBQ29udGV4dCkpOwotCX0KLQotCWN0eC0+bmV4dCA9IE5VTEw7Ci0JY3R4 LT5wcmV2ID0gTlVMTDsKLQljdHgtPnN0YXRlcyA9IE5VTEw7Ci0JY3R4LT5tYXRjaFN0YXJ0Um93 ID0gLTE7Ci0JY3R4LT5tYXRjaEVuZFJvdyA9IC0xOwotCWN0eC0+bGFzdFByb2Nlc3NlZFJvdyA9 IC0xOwotCWN0eC0+bWF0Y2hlZFN0YXRlID0gTlVMTDsKLQotCS8qIEluaXRpYWxpemUgdHdvLWZs YWcgYWJzb3JwdGlvbiBkZXNpZ24gYmFzZWQgb24gcGF0dGVybiAqLwotCWN0eC0+aGFzQWJzb3Ji YWJsZVN0YXRlID0gd2luc3RhdGUtPnJwUGF0dGVybi0+aXNBYnNvcmJhYmxlOwotCWN0eC0+YWxs U3RhdGVzQWJzb3JiYWJsZSA9IHdpbnN0YXRlLT5ycFBhdHRlcm4tPmlzQWJzb3JiYWJsZTsKLQot CS8qIFVwZGF0ZSBzdGF0aXN0aWNzICovCi0Jd2luc3RhdGUtPm5mYUNvbnRleHRzQWN0aXZlKys7 Ci0Jd2luc3RhdGUtPm5mYUNvbnRleHRzVG90YWxDcmVhdGVkKys7Ci0JaWYgKHdpbnN0YXRlLT5u ZmFDb250ZXh0c0FjdGl2ZSA+IHdpbnN0YXRlLT5uZmFDb250ZXh0c01heCkKLQkJd2luc3RhdGUt Pm5mYUNvbnRleHRzTWF4ID0gd2luc3RhdGUtPm5mYUNvbnRleHRzQWN0aXZlOwotCi0JcmV0dXJu IGN0eDsKLX0KLQotLyoKLSAqIG5mYV91bmxpbmtfY29udGV4dAotICoKLSAqIFJlbW92ZSBhIGNv bnRleHQgZnJvbSB0aGUgZG91Ymx5LWxpbmtlZCBhY3RpdmUgY29udGV4dCBsaXN0LgotICogVXBk YXRlcyBoZWFkIChuZmFDb250ZXh0KSBhbmQgdGFpbCAobmZhQ29udGV4dFRhaWwpIGFzIG5lZWRl ZC4KLSAqLwotc3RhdGljIHZvaWQKLW5mYV91bmxpbmtfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCkKLXsKLQlpZiAoY3R4LT5wcmV2ICE9IE5VTEwp Ci0JCWN0eC0+cHJldi0+bmV4dCA9IGN0eC0+bmV4dDsKLQllbHNlCi0JCXdpbnN0YXRlLT5uZmFD b250ZXh0ID0gY3R4LT5uZXh0OwkvKiB3YXMgaGVhZCAqLwotCi0JaWYgKGN0eC0+bmV4dCAhPSBO VUxMKQotCQljdHgtPm5leHQtPnByZXYgPSBjdHgtPnByZXY7Ci0JZWxzZQotCQl3aW5zdGF0ZS0+ bmZhQ29udGV4dFRhaWwgPSBjdHgtPnByZXY7CS8qIHdhcyB0YWlsICovCi0KLQljdHgtPm5leHQg PSBOVUxMOwotCWN0eC0+cHJldiA9IE5VTEw7Ci19Ci0KLS8qCi0gKiBuZmFfY29udGV4dF9mcmVl Ci0gKgotICogVW5saW5rIGNvbnRleHQgZnJvbSBhY3RpdmUgbGlzdCBhbmQgcmV0dXJuIGl0IHRv IGZyZWUgbGlzdC4KLSAqIEFsc28gZnJlZXMgYW55IHN0YXRlcyBpbiB0aGUgY29udGV4dC4KLSAq Lwotc3RhdGljIHZvaWQKLW5mYV9jb250ZXh0X2ZyZWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBSUFJORkFDb250ZXh0ICpjdHgpCi17Ci0JLyogVW5saW5rIGZyb20gYWN0aXZlIGxpc3QgZmly c3QgKi8KLQluZmFfdW5saW5rX2NvbnRleHQod2luc3RhdGUsIGN0eCk7Ci0KLQkvKiBVcGRhdGUg c3RhdGlzdGljcyAqLwotCXdpbnN0YXRlLT5uZmFDb250ZXh0c0FjdGl2ZS0tOwotCi0JaWYgKGN0 eC0+c3RhdGVzICE9IE5VTEwpCi0JCW5mYV9zdGF0ZV9mcmVlX2xpc3Qod2luc3RhdGUsIGN0eC0+ c3RhdGVzKTsKLQlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0gTlVMTCkKLQkJbmZhX3N0YXRlX2Zy ZWUod2luc3RhdGUsIGN0eC0+bWF0Y2hlZFN0YXRlKTsKLQotCWN0eC0+c3RhdGVzID0gTlVMTDsK LQljdHgtPm1hdGNoZWRTdGF0ZSA9IE5VTEw7Ci0JY3R4LT5uZXh0ID0gd2luc3RhdGUtPm5mYUNv bnRleHRGcmVlOwotCXdpbnN0YXRlLT5uZmFDb250ZXh0RnJlZSA9IGN0eDsKLX0KLQotLyoKLSAq IG5mYV9zdGFydF9jb250ZXh0Ci0gKgotICogU3RhcnQgYSBuZXcgbWF0Y2ggY29udGV4dCBhdCBn aXZlbiBwb3NpdGlvbi4KLSAqIEluaXRpYWxpemVzIGNvbnRleHQsIHN0YXRlIGFic29ycHRpb24g ZmxhZ3MsIGFuZCBwZXJmb3JtcyBpbml0aWFsIGFkdmFuY2UKLSAqIHRvIGV4cGFuZCBlcHNpbG9u IHRyYW5zaXRpb25zIChBTFQgYnJhbmNoZXMsIG9wdGlvbmFsIGVsZW1lbnRzKS4KLSAqIEFkZHMg Y29udGV4dCB0byB0aGUgdGFpbCBvZiB3aW5zdGF0ZS0+bmZhQ29udGV4dCBsaXN0LgotICovCi1z dGF0aWMgUlBSTkZBQ29udGV4dCAqCi1uZmFfc3RhcnRfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIGludDY0IHN0YXJ0UG9zKQotewotCVJQUk5GQUNvbnRleHQgKmN0eDsKLQlSUFJQ YXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKLQlSUFJQYXR0ZXJuRWxlbWVu dCAqZWxlbTsKLQotCWN0eCA9IG5mYV9jb250ZXh0X2FsbG9jKHdpbnN0YXRlKTsKLQljdHgtPm1h dGNoU3RhcnRSb3cgPSBzdGFydFBvczsKLQljdHgtPnN0YXRlcyA9IG5mYV9zdGF0ZV9hbGxvYyh3 aW5zdGF0ZSk7CS8qIGluaXRpYWwgc3RhdGUgYXQgZWxlbSAwICovCi0KLQllbGVtID0gJnBhdHRl cm4tPmVsZW1lbnRzWzBdOwotCi0JaWYgKFJQUkVsZW1Jc0Fic29yYmFibGVCcmFuY2goZWxlbSkp Ci0JewotCQljdHgtPnN0YXRlcy0+aXNBYnNvcmJhYmxlID0gdHJ1ZTsKLQl9Ci0JZWxzZQotCXsK LQkJY3R4LT5oYXNBYnNvcmJhYmxlU3RhdGUgPSBmYWxzZTsKLQkJY3R4LT5hbGxTdGF0ZXNBYnNv cmJhYmxlID0gZmFsc2U7Ci0JCWN0eC0+c3RhdGVzLT5pc0Fic29yYmFibGUgPSBmYWxzZTsKLQl9 Ci0KLQkvKiBBZGQgdG8gdGFpbCBvZiBhY3RpdmUgY29udGV4dCBsaXN0IChkb3VibHktbGlua2Vk LCBvbGRlc3QtZmlyc3QpICovCi0JY3R4LT5wcmV2ID0gd2luc3RhdGUtPm5mYUNvbnRleHRUYWls OwotCWN0eC0+bmV4dCA9IE5VTEw7Ci0JaWYgKHdpbnN0YXRlLT5uZmFDb250ZXh0VGFpbCAhPSBO VUxMKQotCQl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwtPm5leHQgPSBjdHg7Ci0JZWxzZQotCQl3 aW5zdGF0ZS0+bmZhQ29udGV4dCA9IGN0eDsgLyogZmlyc3QgY29udGV4dCBiZWNvbWVzIGhlYWQg Ki8KLQl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwgPSBjdHg7Ci0KLQkvKgotCSAqIEluaXRpYWwg YWR2YW5jZSAoZGl2ZXJnZW5jZSk6IGV4cGFuZCBBTFQgYnJhbmNoZXMgYW5kIGNyZWF0ZSBleGl0 Ci0JICogc3RhdGVzIGZvciBWQVIgZWxlbWVudHMgd2l0aCBtaW49MC4gVGhpcyBwcmVwYXJlcyB0 aGUgY29udGV4dCBmb3IgdGhlCi0JICogZmlyc3Qgcm93J3MgbWF0Y2ggcGhhc2UuCi0JICoKLQkg KiBVc2Ugc3RhcnRQb3MgLSAxIGFzIGN1cnJlbnRQb3Mgc2luY2Ugbm8gcm93IGhhcyBiZWVuIGNv bnN1bWVkIHlldC4gSWYKLQkgKiBGSU4gaXMgcmVhY2hlZCB2aWEgZXBzaWxvbiB0cmFuc2l0aW9u cywgbWF0Y2hFbmRSb3cgPSBzdGFydFBvcyAtIDEKLQkgKiB3aGljaCBpcyBsZXNzIHRoYW4gbWF0 Y2hTdGFydFJvdywgcmVzdWx0aW5nIGluIFVOTUFUQ0hFRCB0cmVhdG1lbnQuCi0JICovCi0JbmZh X2FkdmFuY2Uod2luc3RhdGUsIGN0eCwgc3RhcnRQb3MgLSAxKTsKLQotCXJldHVybiBjdHg7Ci19 Ci0KLS8qCi0gKiBuZmFfZ2V0X2hlYWRfY29udGV4dAotICoKLSAqIFJldHVybiB0aGUgaGVhZCBj b250ZXh0IGlmIGl0cyBzdGFydCBwb3NpdGlvbiBtYXRjaGVzIHBvcy4KLSAqIFJldHVybnMgTlVM TCBpZiBubyBjb250ZXh0IGV4aXN0cyBvciBoZWFkIGRvZXNuJ3QgbWF0Y2ggcG9zLgotICovCi1z dGF0aWMgUlBSTkZBQ29udGV4dCAqCi1uZmFfZ2V0X2hlYWRfY29udGV4dChXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIGludDY0IHBvcykKLXsKLQlSUFJORkFDb250ZXh0ICpjdHggPSB3aW5zdGF0 ZS0+bmZhQ29udGV4dDsKLQotCS8qCi0JICogQ29udGV4dHMgYXJlIHNvcnRlZCBieSBtYXRjaFN0 YXJ0Um93IGFzY2VuZGluZy4gIElmIHRoZSBoZWFkIGNvbnRleHQKLQkgKiBkb2Vzbid0IG1hdGNo IHBvcywgbm8gY29udGV4dCBleGlzdHMgZm9yIHRoaXMgcG9zaXRpb24uCi0JICovCi0JaWYgKGN0 eCA9PSBOVUxMIHx8IGN0eC0+bWF0Y2hTdGFydFJvdyAhPSBwb3MpCi0JCXJldHVybiBOVUxMOwot Ci0JcmV0dXJuIGN0eDsKLX0KLQotLyoKLSAqIG5mYV91cGRhdGVfbGVuZ3RoX3N0YXRzCi0gKgot ICogSGVscGVyIGZ1bmN0aW9uIHRvIHVwZGF0ZSBtaW4vbWF4L3RvdGFsIGxlbmd0aCBzdGF0aXN0 aWNzLgotICogQ2FsbGVkIHdoZW4gdHJhY2tpbmcgbWF0Y2gvbWlzbWF0Y2gvYWJzb3JiZWQvc2tp cHBlZCBsZW5ndGhzLgotICovCi1zdGF0aWMgdm9pZAotbmZhX3VwZGF0ZV9sZW5ndGhfc3RhdHMo aW50NjQgY291bnQsIE5GQUxlbmd0aFN0YXRzICpzdGF0cywgaW50NjQgbmV3TGVuKQotewotCWlm IChjb3VudCA9PSAxKQotCXsKLQkJc3RhdHMtPm1pbiA9IG5ld0xlbjsKLQkJc3RhdHMtPm1heCA9 IG5ld0xlbjsKLQl9Ci0JZWxzZQotCXsKLQkJaWYgKG5ld0xlbiA8IHN0YXRzLT5taW4pCi0JCQlz dGF0cy0+bWluID0gbmV3TGVuOwotCQlpZiAobmV3TGVuID4gc3RhdHMtPm1heCkKLQkJCXN0YXRz LT5tYXggPSBuZXdMZW47Ci0JfQotCXN0YXRzLT50b3RhbCArPSBuZXdMZW47Ci19Ci0KLS8qCi0g KiBuZmFfcmVjb3JkX2NvbnRleHRfc3VjY2VzcwotICoKLSAqIFJlY29yZCBhIHN1Y2Nlc3NmdWwg Y29udGV4dCBpbiBzdGF0aXN0aWNzLgotICovCi1zdGF0aWMgdm9pZAotbmZhX3JlY29yZF9jb250 ZXh0X3N1Y2Nlc3MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBtYXRjaExlbikKLXsK LQl3aW5zdGF0ZS0+bmZhTWF0Y2hlc1N1Y2NlZWRlZCsrOwotCW5mYV91cGRhdGVfbGVuZ3RoX3N0 YXRzKHdpbnN0YXRlLT5uZmFNYXRjaGVzU3VjY2VlZGVkLAotCQkJCQkJCSZ3aW5zdGF0ZS0+bmZh TWF0Y2hMZW4sCi0JCQkJCQkJbWF0Y2hMZW4pOwotfQotCi0vKgotICogbmZhX3JlY29yZF9jb250 ZXh0X2ZhaWx1cmUKLSAqCi0gKiBSZWNvcmQgYSBmYWlsZWQgY29udGV4dCBpbiBzdGF0aXN0aWNz LgotICogSWYgZmFpbGVkTGVuID09IDEsIGNvdW50IGFzIHBydW5lZCAoZmFpbGVkIG9uIGZpcnN0 IHJvdykuCi0gKiBJZiBmYWlsZWRMZW4gPiAxLCBjb3VudCBhcyBtaXNtYXRjaGVkIGFuZCB1cGRh dGUgbGVuZ3RoIHN0YXRzLgotICovCi1zdGF0aWMgdm9pZAotbmZhX3JlY29yZF9jb250ZXh0X2Zh aWx1cmUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBmYWlsZWRMZW4pCi17Ci0JaWYg KGZhaWxlZExlbiA9PSAxKQotCXsKLQkJd2luc3RhdGUtPm5mYUNvbnRleHRzUHJ1bmVkKys7Ci0J fQotCWVsc2UKKwlyZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgdGFyZ2V0Q3R4 LT5tYXRjaFN0YXJ0Um93LCBSRl9GUkFNRV9IRUFEKTsKKwlmb3IgKGludDY0IGkgPSB0YXJnZXRD dHgtPm1hdGNoU3RhcnRSb3cgKyAxOyBpIDw9IHRhcmdldEN0eC0+bWF0Y2hFbmRSb3c7IGkrKykK IAl7Ci0JCXdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkKys7Ci0JCW5mYV91cGRhdGVfbGVuZ3Ro X3N0YXRzKHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkLAotCQkJCQkJCQkmd2luc3RhdGUtPm5m YUZhaWxMZW4sCi0JCQkJCQkJCWZhaWxlZExlbik7CisJCXJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVf bWFwKHdpbnN0YXRlLCBpLCBSRl9TS0lQUEVEKTsKIAl9Ci19Ci0KLS8qCi0gKiBuZmFfcmVjb3Jk X2NvbnRleHRfc2tpcHBlZAotICoKLSAqIFJlY29yZCBhIHNraXBwZWQgY29udGV4dCBpbiBzdGF0 aXN0aWNzLgotICovCi1zdGF0aWMgdm9pZAotbmZhX3JlY29yZF9jb250ZXh0X3NraXBwZWQoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBza2lwcGVkTGVuKQotewotCXdpbnN0YXRlLT5u ZmFDb250ZXh0c1NraXBwZWQrKzsKLQluZmFfdXBkYXRlX2xlbmd0aF9zdGF0cyh3aW5zdGF0ZS0+ bmZhQ29udGV4dHNTa2lwcGVkLAotCQkJCQkJCSZ3aW5zdGF0ZS0+bmZhU2tpcHBlZExlbiwKLQkJ CQkJCQlza2lwcGVkTGVuKTsKLX0KKwlFeGVjUlBSUmVjb3JkQ29udGV4dFN1Y2Nlc3Mod2luc3Rh dGUsIG1hdGNoTGVuKTsKIAotLyoKLSAqIG5mYV9yZWNvcmRfY29udGV4dF9hYnNvcmJlZAotICoK LSAqIFJlY29yZCBhbiBhYnNvcmJlZCBjb250ZXh0IGluIHN0YXRpc3RpY3MuCi0gKi8KLXN0YXRp YyB2b2lkCi1uZmFfcmVjb3JkX2NvbnRleHRfYWJzb3JiZWQoV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlLCBpbnQ2NCBhYnNvcmJlZExlbikKLXsKLQl3aW5zdGF0ZS0+bmZhQ29udGV4dHNBYnNvcmJl ZCsrOwotCW5mYV91cGRhdGVfbGVuZ3RoX3N0YXRzKHdpbnN0YXRlLT5uZmFDb250ZXh0c0Fic29y YmVkLAotCQkJCQkJCSZ3aW5zdGF0ZS0+bmZhQWJzb3JiZWRMZW4sCi0JCQkJCQkJYWJzb3JiZWRM ZW4pOworCS8qIFJlbW92ZSB0aGUgbWF0Y2hlZCBjb250ZXh0ICovCisJRXhlY1JQUkZyZWVDb250 ZXh0KHdpbnN0YXRlLCB0YXJnZXRDdHgpOwogfQogCiAvKgpAQCAtNTYxMiw3ICs0Mjg2LDcgQEAg bmZhX2V2YWx1YXRlX3JvdyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZh ck1hdGNoZWQpCiAJLyoKIAkgKiBTZXQgdXAgc2xvdHMgZm9yIGN1cnJlbnQsIHByZXZpb3VzLCBh bmQgbmV4dCByb3dzLiBXZSBkb24ndCBjYWxsCiAJICogZ2V0X3Nsb3RzKCkgaGVyZSB0byBhdm9p ZCByZWN1cnNpb24gdGhyb3VnaCByb3dfaXNfaW5fZnJhbWUgLT4KLQkgKiB1cGRhdGVfcmVkdWNl ZF9mcmFtZSAtPiBuZmFfcHJvY2Vzc19yb3cuCisJICogdXBkYXRlX3JlZHVjZWRfZnJhbWUgLT4g RXhlY1JQUlByb2Nlc3NSb3cuCiAJICovCiAKIAkvKiBDdXJyZW50IHJvdyAtPiBlY3h0X291dGVy dHVwbGUgKi8KQEAgLTU2NTksODc1ICs0MzMzLDYzMCBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRv d09iamVjdCB3aW5vYmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKIAlyZXR1cm4gdHJ1 ZTsJCQkJLyogUm93IGV4aXN0cyAqLwogfQogCi0vKgotICogbmZhX2NsZWFudXBfZGVhZF9jb250 ZXh0cwotICoKLSAqIFJlbW92ZSBjb250ZXh0cyB0aGF0IGhhdmUgZmFpbGVkIChubyBhY3RpdmUg c3RhdGVzIGFuZCBubyBtYXRjaCkuCi0gKiBUaGVzZSBhcmUgY29udGV4dHMgdGhhdCBmYWlsZWQg ZHVyaW5nIG5vcm1hbCBwcm9jZXNzaW5nIGFuZCBzaG91bGQgYmUKLSAqIGNvdW50ZWQgYXMgcHJ1 bmVkIChpZiBsZW5ndGggMSkgb3IgbWlzbWF0Y2hlZCAoaWYgbGVuZ3RoID4gMSkuCi0gKi8KLXN0 YXRpYyB2b2lkCi1uZmFfY2xlYW51cF9kZWFkX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCkKLXsKLQlSUFJORkFDb250ZXh0ICpjdHg7 Ci0JUlBSTkZBQ29udGV4dCAqbmV4dDsKLQotCWZvciAoY3R4ID0gd2luc3RhdGUtPm5mYUNvbnRl eHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBuZXh0KQotCXsKLQkJbmV4dCA9IGN0eC0+bmV4dDsKLQot CQkvKiBTa2lwIHRoZSB0YXJnZXQgY29udGV4dCBhbmQgY29udGV4dHMgc3RpbGwgcHJvY2Vzc2lu ZyAqLwotCQlpZiAoY3R4ID09IGV4Y2x1ZGVDdHggfHwgY3R4LT5zdGF0ZXMgIT0gTlVMTCkKLQkJ CWNvbnRpbnVlOwotCi0JCS8qIFNraXAgc3VjY2Vzc2Z1bGx5IG1hdGNoZWQgY29udGV4dHMgKHdp bGwgYmUgaGFuZGxlZCBieSBTS0lQIGxvZ2ljKSAqLwotCQlpZiAoY3R4LT5tYXRjaEVuZFJvdyA+ PSBjdHgtPm1hdGNoU3RhcnRSb3cpCi0JCQljb250aW51ZTsKLQotCQkvKgotCQkgKiBUaGlzIGlz IGEgZmFpbGVkIGNvbnRleHQgLSBjb3VudCBhbmQgcmVtb3ZlIGl0LiBPbmx5IGNvdW50IGlmIGl0 Ci0JCSAqIGFjdHVhbGx5IHByb2Nlc3NlZCBpdHMgc3RhcnQgcm93LiBDb250ZXh0cyBjcmVhdGVk IGZvcgotCQkgKiBiZXlvbmQtcGFydGl0aW9uIHJvd3MgYXJlIHNpbGVudGx5IHJlbW92ZWQuCi0J CSAqLwotCQlpZiAoY3R4LT5sYXN0UHJvY2Vzc2VkUm93ID49IGN0eC0+bWF0Y2hTdGFydFJvdykK LQkJewotCQkJaW50NjQJCWZhaWxlZExlbiA9IGN0eC0+bGFzdFByb2Nlc3NlZFJvdyAtIGN0eC0+ bWF0Y2hTdGFydFJvdyArIDE7Ci0KLQkJCW5mYV9yZWNvcmRfY29udGV4dF9mYWlsdXJlKHdpbnN0 YXRlLCBmYWlsZWRMZW4pOwotCQl9Ci0JCS8qIGVsc2U6IGNvbnRleHQgd2FzIG5ldmVyIHByb2Nl c3NlZCAoYmV5b25kLXBhcnRpdGlvbiksIGp1c3QgcmVtb3ZlICovCi0KLQkJbmZhX2NvbnRleHRf ZnJlZSh3aW5zdGF0ZSwgY3R4KTsKLQl9Ci19CiAKLS8qCi0gKiBuZmFfZmluYWxpemVfYWxsX2Nv bnRleHRzCi0gKgotICogRmluYWxpemUgYWxsIGFjdGl2ZSBjb250ZXh0cyB3aGVuIHBhcnRpdGlv biBlbmRzLgotICogTWF0Y2ggd2l0aCBOVUxMIHRvIGZvcmNlIG1pc21hdGNoLCB0aGVuIGFkdmFu Y2UgdG8gcHJvY2VzcyBlcHNpbG9uIHRyYW5zaXRpb25zLgotICovCi1zdGF0aWMgdm9pZAotbmZh X2ZpbmFsaXplX2FsbF9jb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGxh c3RQb3MpCi17Ci0JUlBSTkZBQ29udGV4dCAqY3R4OworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBBUEkg ZXhwb3NlZCB0byB3aW5kb3cgZnVuY3Rpb25zCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLQlmb3IgKGN0 eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gY3R4LT5uZXh0KQot CXsKLQkJaWYgKGN0eC0+c3RhdGVzICE9IE5VTEwpCi0JCXsKLQkJCW5mYV9tYXRjaCh3aW5zdGF0 ZSwgY3R4LCBOVUxMKTsKLQkJCW5mYV9hZHZhbmNlKHdpbnN0YXRlLCBjdHgsIGxhc3RQb3MpOwot CQl9Ci0JfQotfQogCiAvKgotICogbmZhX3VwZGF0ZV9hYnNvcnB0aW9uX2ZsYWdzCi0gKgotICog VXBkYXRlIGNvbnRleHQncyBhYnNvcnB0aW9uIGZsYWdzIGFmdGVyIHN0YXRlIGNoYW5nZXMuCi0g KgotICogVHdvIGZsYWdzIGNvbnRyb2wgYWJzb3JwdGlvbiBiZWhhdmlvcjoKLSAqICAgaGFzQWJz b3JiYWJsZVN0YXRlOiB0cnVlIGlmIGNvbnRleHQgaGFzIGF0IGxlYXN0IG9uZSBhYnNvcmJhYmxl IHN0YXRlLgotICogICAgIFRoaXMgZmxhZyBpcyBtb25vdG9uaWMgKHRydWUgLT4gZmFsc2Ugb25s eSkuIE9uY2UgYWxsIGFic29yYmFibGUgc3RhdGVzCi0gKiAgICAgZGllLCBubyBuZXcgYWJzb3Ji YWJsZSBzdGF0ZXMgY2FuIGJlIGNyZWF0ZWQgdGhyb3VnaCB0cmFuc2l0aW9ucy4KLSAqICAgYWxs U3RhdGVzQWJzb3JiYWJsZTogdHJ1ZSBpZiBBTEwgc3RhdGVzIGluIGNvbnRleHQgYXJlIGFic29y YmFibGUuCi0gKiAgICAgVGhpcyBmbGFnIGlzIGR5bmFtaWMgYW5kIGNhbiBjaGFuZ2UgZmFsc2Ug LT4gdHJ1ZSB3aGVuIG5vbi1hYnNvcmJhYmxlCi0gKiAgICAgc3RhdGVzIGRpZSBvZmYuCisgKiBX aW5DaGVja0FuZEluaXRpYWxpemVOdWxsVHJlYXRtZW50CisgKgkJQ2hlY2sgbnVsbCB0cmVhdG1l bnQgY2xhdXNlIGFuZCBzZXRzIGlnbm9yZV9udWxscwogICoKLSAqIE9wdGltaXphdGlvbjogT25j ZSBoYXNBYnNvcmJhYmxlU3RhdGUgYmVjb21lcyBmYWxzZSwgYm90aCBmbGFncyByZW1haW4gZmFs c2UKLSAqIHBlcm1hbmVudGx5LCBzbyB3ZSBza2lwIHJlY2FsY3VsYXRpb24uCisgKiBXaW5kb3cg ZnVuY3Rpb25zIHNob3VsZCBjYWxsIHRoaXMgdG8gY2hlY2sgaWYgdGhleSBhcmUgYmVpbmcgY2Fs bGVkIHdpdGgKKyAqIGEgbnVsbCB0cmVhdG1lbnQgY2xhdXNlIHdoZW4gdGhleSBkb24ndCBhbGxv dyBpdCwgb3IgdG8gc2V0IGlnbm9yZV9udWxscy4KICAqLwotc3RhdGljIHZvaWQKLW5mYV91cGRh dGVfYWJzb3JwdGlvbl9mbGFncyhSUFJORkFDb250ZXh0ICpjdHgpCit2b2lkCitXaW5DaGVja0Fu ZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KFdpbmRvd09iamVjdCB3aW5vYmosCisJCQkJCQkJCSAg IGJvb2wgYWxsb3dOdWxsVHJlYXRtZW50LAorCQkJCQkJCQkgICBGdW5jdGlvbkNhbGxJbmZvIGZj aW5mbykKIHsKLQlSUFJORkFTdGF0ZSAqc3RhdGU7Ci0JYm9vbAkJaGFzQWJzb3JiYWJsZSA9IGZh bHNlOwotCWJvb2wJCWFsbEFic29yYmFibGUgPSB0cnVlOwotCi0JLyoKLQkgKiBPcHRpbWl6YXRp b246IE9uY2UgaGFzQWJzb3JiYWJsZVN0YXRlIGJlY29tZXMgZmFsc2UsIGl0IHN0YXlzIGZhbHNl LiBObwotCSAqIG5lZWQgdG8gcmVjYWxjdWxhdGUgLSBib3RoIGZsYWdzIHJlbWFpbiBmYWxzZSBw ZXJtYW5lbnRseS4KLQkgKi8KLQlpZiAoIWN0eC0+aGFzQWJzb3JiYWJsZVN0YXRlKQotCXsKLQkJ Y3R4LT5hbGxTdGF0ZXNBYnNvcmJhYmxlID0gZmFsc2U7Ci0JCXJldHVybjsKLQl9Ci0KLQkvKiBO byBzdGF0ZXMgbWVhbnMgbm8gYWJzb3JiYWJsZSBzdGF0ZXMgKi8KLQlpZiAoY3R4LT5zdGF0ZXMg PT0gTlVMTCkKKwlBc3NlcnQoV2luZG93T2JqZWN0SXNWYWxpZCh3aW5vYmopKTsKKwlpZiAod2lu b2JqLT5pZ25vcmVfbnVsbHMgIT0gTk9fTlVMTFRSRUFUTUVOVCAmJiAhYWxsb3dOdWxsVHJlYXRt ZW50KQogCXsKLQkJY3R4LT5oYXNBYnNvcmJhYmxlU3RhdGUgPSBmYWxzZTsKLQkJY3R4LT5hbGxT dGF0ZXNBYnNvcmJhYmxlID0gZmFsc2U7Ci0JCXJldHVybjsKLQl9CisJCWNvbnN0IGNoYXIgKmZ1 bmNuYW1lID0gZ2V0X2Z1bmNfbmFtZShmY2luZm8tPmZsaW5mby0+Zm5fb2lkKTsKIAotCS8qCi0J ICogSXRlcmF0ZSB0aHJvdWdoIGFsbCBzdGF0ZXMgdG8gY2hlY2sgYWJzb3JwdGlvbiBzdGF0dXMu IFVzZXMKLQkgKiBzdGF0ZS0+aXNBYnNvcmJhYmxlIHdoaWNoIHRyYWNrcyBpZiBzdGF0ZSBpcyBp biBhYnNvcmJhYmxlIHJlZ2lvbi4gVGhpcwotCSAqIGlzIGRpZmZlcmVudCBmcm9tIFJQUkVsZW1J c0Fic29yYmFibGUoZWxlbSkgd2hpY2ggY2hlY2tzIGp1ZGdtZW50Ci0JICogcG9pbnQuCi0JICov Ci0JZm9yIChzdGF0ZSA9IGN0eC0+c3RhdGVzOyBzdGF0ZSAhPSBOVUxMOyBzdGF0ZSA9IHN0YXRl LT5uZXh0KQotCXsKLQkJaWYgKHN0YXRlLT5pc0Fic29yYmFibGUpCi0JCQloYXNBYnNvcmJhYmxl ID0gdHJ1ZTsKLQkJZWxzZQotCQkJYWxsQWJzb3JiYWJsZSA9IGZhbHNlOworCQlpZiAoIWZ1bmNu YW1lKQorCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBnZXQgZnVuY3Rpb24gbmFtZSIpOworCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkgZXJybXNnKCJmdW5jdGlvbiAlcyBkb2VzIG5vdCBhbGxvdyBSRVNQRUNUL0lHTk9S RSBOVUxMUyIsCisJCQkJCQlmdW5jbmFtZSkpKTsKIAl9Ci0KLQljdHgtPmhhc0Fic29yYmFibGVT dGF0ZSA9IGhhc0Fic29yYmFibGU7Ci0JY3R4LT5hbGxTdGF0ZXNBYnNvcmJhYmxlID0gYWxsQWJz b3JiYWJsZTsKKwllbHNlIGlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBQQVJTRVJfSUdOT1JF X05VTExTKQorCQl3aW5vYmotPmlnbm9yZV9udWxscyA9IElHTk9SRV9OVUxMUzsKIH0KIAogLyoK LSAqIG5mYV9zdGF0ZXNfY292ZXJlZAotICoKLSAqIENoZWNrIGlmIGFsbCBzdGF0ZXMgaW4gbmV3 ZXIgY29udGV4dCBhcmUgImNvdmVyZWQiIGJ5IG9sZGVyIGNvbnRleHQuCisgKiBXaW5HZXRQYXJ0 aXRpb25Mb2NhbE1lbW9yeQorICoJCUdldCB3b3JraW5nIG1lbW9yeSB0aGF0IGxpdmVzIHRpbGwg ZW5kIG9mIHBhcnRpdGlvbiBwcm9jZXNzaW5nCiAgKgotICogQSBuZXdlciBzdGF0ZSBpcyBjb3Zl cmVkIHdoZW4gb2xkZXIgY29udGV4dCBoYXMgYW4gYWJzb3JiYWJsZSBzdGF0ZSBhdCB0aGUKLSAq IHNhbWUgcGF0dGVybiBlbGVtZW50IChlbGVtSWR4KSB3aXRoIGNvdW50ID49IG5ld2VyJ3MgY291 bnQgYXQgdGhhdCBkZXB0aC4KLSAqIFRoZSBjb3ZlcmluZyBzdGF0ZSBtdXN0IGJlIGFic29yYmFi bGUgYmVjYXVzZSBvbmx5IGFic29yYmFibGUgc3RhdGVzIGNhbgotICogZ3VhcmFudGVlIHRvIHBy b2R1Y2Ugc3VwZXJzZXQgbWF0Y2hlcy4KKyAqIE9uIGZpcnN0IGNhbGwgd2l0aGluIGEgZ2l2ZW4g cGFydGl0aW9uLCB0aGlzIGFsbG9jYXRlcyBhbmQgemVyb2VzIHRoZQorICogcmVxdWVzdGVkIGFt b3VudCBvZiBzcGFjZS4gIFN1YnNlcXVlbnQgY2FsbHMganVzdCByZXR1cm4gdGhlIHNhbWUgY2h1 bmsuCiAgKgotICogSWYgYWxsIG5ld2VyIHN0YXRlcyBhcmUgY292ZXJlZCwgbmV3ZXIgY29udGV4 dCdzIGV2ZW50dWFsIG1hdGNoZXMgd2lsbCBiZQotICogYSBzdWJzZXQgb2Ygb2xkZXIgY29udGV4 dCdzIG1hdGNoZXMsIG1ha2luZyBuZXdlciByZWR1bmRhbnQuCisgKiBNZW1vcnkgb2J0YWluZWQg dGhpcyB3YXkgaXMgbm9ybWFsbHkgdXNlZCB0byBob2xkIHN0YXRlIHRoYXQgc2hvdWxkIGJlCisg KiBhdXRvbWF0aWNhbGx5IHJlc2V0IGZvciBlYWNoIG5ldyBwYXJ0aXRpb24uICBJZiBhIHdpbmRv dyBmdW5jdGlvbiB3YW50cworICogdG8gaG9sZCBzdGF0ZSBhY3Jvc3MgdGhlIHdob2xlIHF1ZXJ5 LCBmY2luZm8tPmZuX2V4dHJhIGNhbiBiZSB1c2VkIGluIHRoZQorICogdXN1YWwgd2F5IGZvciB0 aGF0LgogICovCi1zdGF0aWMgYm9vbAotbmZhX3N0YXRlc19jb3ZlcmVkKFJQUlBhdHRlcm4gKnBh dHRlcm4sIFJQUk5GQUNvbnRleHQgKm9sZGVyLCBSUFJORkFDb250ZXh0ICpuZXdlcikKK3ZvaWQg KgorV2luR2V0UGFydGl0aW9uTG9jYWxNZW1vcnkoV2luZG93T2JqZWN0IHdpbm9iaiwgU2l6ZSBz eikKIHsKLQlSUFJORkFTdGF0ZSAqbmV3ZXJTdGF0ZTsKLQotCWZvciAobmV3ZXJTdGF0ZSA9IG5l d2VyLT5zdGF0ZXM7IG5ld2VyU3RhdGUgIT0gTlVMTDsgbmV3ZXJTdGF0ZSA9IG5ld2VyU3RhdGUt Pm5leHQpCi0JewotCQlSUFJORkFTdGF0ZSAqb2xkZXJTdGF0ZTsKLQkJUlBSUGF0dGVybkVsZW1l bnQgKmVsZW07Ci0JCWludAkJCWRlcHRoOwotCQlib29sCQlmb3VuZCA9IGZhbHNlOwotCi0JCS8q IEFsbCBzdGF0ZXMgYXJlIGFic29yYmFibGUgKGNhbGxlciBjaGVja3MgYWxsU3RhdGVzQWJzb3Ji YWJsZSkgKi8KLQkJZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tuZXdlclN0YXRlLT5lbGVtSWR4 XTsKLQkJZGVwdGggPSBlbGVtLT5kZXB0aDsKLQotCQlmb3IgKG9sZGVyU3RhdGUgPSBvbGRlci0+ c3RhdGVzOyBvbGRlclN0YXRlICE9IE5VTEw7IG9sZGVyU3RhdGUgPSBvbGRlclN0YXRlLT5uZXh0 KQotCQl7Ci0JCQkvKiBDb3ZlcmluZyBzdGF0ZSBtdXN0IGFsc28gYmUgYWJzb3JiYWJsZSAqLwot CQkJaWYgKG9sZGVyU3RhdGUtPmlzQWJzb3JiYWJsZSAmJgotCQkJCW9sZGVyU3RhdGUtPmVsZW1J ZHggPT0gbmV3ZXJTdGF0ZS0+ZWxlbUlkeCAmJgotCQkJCW9sZGVyU3RhdGUtPmNvdW50c1tkZXB0 aF0gPj0gbmV3ZXJTdGF0ZS0+Y291bnRzW2RlcHRoXSkKLQkJCXsKLQkJCQlmb3VuZCA9IHRydWU7 Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQotCQlpZiAoIWZvdW5kKQotCQkJcmV0dXJuIGZhbHNl OwotCX0KLQotCXJldHVybiB0cnVlOworCUFzc2VydChXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9i aikpOworCWlmICh3aW5vYmotPmxvY2FsbWVtID09IE5VTEwpCisJCXdpbm9iai0+bG9jYWxtZW0g PQorCQkJTWVtb3J5Q29udGV4dEFsbG9jWmVybyh3aW5vYmotPndpbnN0YXRlLT5wYXJ0Y29udGV4 dCwgc3opOworCXJldHVybiB3aW5vYmotPmxvY2FsbWVtOwogfQogCiAvKgotICogbmZhX3RyeV9h YnNvcmJfY29udGV4dAotICoKLSAqIFRyeSB0byBhYnNvcmIgY3R4IChuZXdlcikgaW50byBhbiBv bGRlciBpbi1wcm9ncmVzcyBjb250ZXh0LgotICogUmV0dXJucyB0cnVlIGlmIGN0eCB3YXMgYWJz b3JiZWQgYW5kIGZyZWVkLgotICoKLSAqIEFic29ycHRpb24gcmVxdWlyZXMgdGhyZWUgY29uZGl0 aW9uczoKLSAqICAgMS4gY3R4IG11c3QgaGF2ZSBhbGwgc3RhdGVzIGFic29yYmFibGUgKGFsbFN0 YXRlc0Fic29yYmFibGUpLgotICogICAgICBJZiBjdHggaGFzIGFueSBub24tYWJzb3JiYWJsZSBz dGF0ZSwgaXQgbWF5IHByb2R1Y2UgdW5pcXVlIG1hdGNoZXMuCi0gKiAgIDIuIG9sZGVyIG11c3Qg aGF2ZSBhdCBsZWFzdCBvbmUgYWJzb3JiYWJsZSBzdGF0ZSAoaGFzQWJzb3JiYWJsZVN0YXRlKS4K LSAqICAgICAgV2l0aG91dCBhYnNvcmJhYmxlIHN0YXRlcywgb2xkZXIgY2Fubm90IGNvdmVyIG5l d2VyJ3Mgc3RhdGVzLgotICogICAzLiBBbGwgY3R4IHN0YXRlcyBtdXN0IGJlIGNvdmVyZWQgYnkg b2xkZXIncyBhYnNvcmJhYmxlIHN0YXRlcy4KLSAqICAgICAgVGhpcyBlbnN1cmVzIG9sZGVyIHdp bGwgcHJvZHVjZSBhbGwgbWF0Y2hlcyB0aGF0IGN0eCB3b3VsZCBwcm9kdWNlLgotICoKLSAqIENv bnRleHQgbGlzdCBpcyBvcmRlcmVkIGJ5IGNyZWF0aW9uIHRpbWUgKG9sZGVzdCBmaXJzdCB2aWEg cHJldiBjaGFpbikuCi0gKiBFYWNoIHJvdyBjcmVhdGVzIGF0IG1vc3Qgb25lIGNvbnRleHQsIHNv IGVhcmxpZXIgY29udGV4dHMgaGF2ZSBzbWFsbGVyCi0gKiBtYXRjaFN0YXJ0Um93IHZhbHVlcy4K KyAqIFdpbkdldEN1cnJlbnRQb3NpdGlvbgorICoJCVJldHVybiB0aGUgY3VycmVudCByb3cncyBw b3NpdGlvbiAoY291bnRpbmcgZnJvbSAwKSB3aXRoaW4gdGhlIGN1cnJlbnQKKyAqCQlwYXJ0aXRp b24uCiAgKi8KLXN0YXRpYyBib29sCi1uZmFfdHJ5X2Fic29yYl9jb250ZXh0KFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4KQoraW50NjQKK1dpbkdldEN1cnJlbnRQ b3NpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqKQogewotCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3 aW5zdGF0ZS0+cnBQYXR0ZXJuOwotCVJQUk5GQUNvbnRleHQgKm9sZGVyOwotCi0JLyogRWFybHkg ZXhpdDogY3R4IG11c3QgaGF2ZSBhbGwgc3RhdGVzIGFic29yYmFibGUgKi8KLQlpZiAoIWN0eC0+ YWxsU3RhdGVzQWJzb3JiYWJsZSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JZm9yIChvbGRlciA9IGN0 eC0+cHJldjsgb2xkZXIgIT0gTlVMTDsgb2xkZXIgPSBvbGRlci0+cHJldikKLQl7Ci0JCS8qCi0J CSAqIEJ5IGludmFyaWFudDogY3R4LT5wcmV2IGNoYWluIGlzIGluIGNyZWF0aW9uIG9yZGVyIChv bGRlc3QgZmlyc3QpLAotCQkgKiBhbmQgZWFjaCByb3cgY3JlYXRlcyBhdCBtb3N0IG9uZSBjb250 ZXh0LiBTbyBhbGwgY29udGV4dHMgaW4gdGhpcwotCQkgKiBjaGFpbiBoYXZlIG1hdGNoU3RhcnRS b3cgPCBjdHgtPm1hdGNoU3RhcnRSb3cuCi0JCSAqLwotCi0JCS8qIE9sZGVyIG11c3QgYWxzbyBi ZSBpbi1wcm9ncmVzcyAqLwotCQlpZiAob2xkZXItPnN0YXRlcyA9PSBOVUxMKQotCQkJY29udGlu dWU7Ci0KLQkJLyogT2xkZXIgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBhYnNvcmJhYmxlIHN0YXRl ICovCi0JCWlmICghb2xkZXItPmhhc0Fic29yYmFibGVTdGF0ZSkKLQkJCWNvbnRpbnVlOwotCi0J CS8qIENoZWNrIGlmIGFsbCBuZXdlciBzdGF0ZXMgYXJlIGNvdmVyZWQgYnkgb2xkZXIgKi8KLQkJ aWYgKG5mYV9zdGF0ZXNfY292ZXJlZChwYXR0ZXJuLCBvbGRlciwgY3R4KSkKLQkJewotCQkJaW50 NjQJCWFic29yYmVkTGVuID0gY3R4LT5sYXN0UHJvY2Vzc2VkUm93IC0gY3R4LT5tYXRjaFN0YXJ0 Um93ICsgMTsKLQotCQkJbmZhX2NvbnRleHRfZnJlZSh3aW5zdGF0ZSwgY3R4KTsKLQkJCW5mYV9y ZWNvcmRfY29udGV4dF9hYnNvcmJlZCh3aW5zdGF0ZSwgYWJzb3JiZWRMZW4pOwotCQkJcmV0dXJu IHRydWU7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gZmFsc2U7CisJQXNzZXJ0KFdpbmRvd09iamVjdElz VmFsaWQod2lub2JqKSk7CisJcmV0dXJuIHdpbm9iai0+d2luc3RhdGUtPmN1cnJlbnRwb3M7CiB9 CiAKIC8qCi0gKiBuZmFfYWJzb3JiX2NvbnRleHRzCi0gKgotICogQWJzb3JiIHJlZHVuZGFudCBj b250ZXh0cyB0byByZWR1Y2UgbWVtb3J5IHVzYWdlIGFuZCBjb21wdXRhdGlvbi4KLSAqCi0gKiBG b3IgcGF0dGVybnMgbGlrZSBBKywgbmV3ZXIgY29udGV4dHMgc3RhcnRpbmcgbGF0ZXIgd2lsbCBw cm9kdWNlIHN1YnNldAotICogbWF0Y2hlcyBvZiBvbGRlciBjb250ZXh0cyB3aXRoIGhpZ2hlciBj b3VudHMuIEJ5IGFic29yYmluZyB0aGVzZSByZWR1bmRhbnQKLSAqIGNvbnRleHRzIGVhcmx5LCB3 ZSBhdm9pZCBkdXBsaWNhdGUgd29yay4KKyAqIFdpbkdldFBhcnRpdGlvblJvd0NvdW50CisgKgkJ UmV0dXJuIHRvdGFsIG51bWJlciBvZiByb3dzIGNvbnRhaW5lZCBpbiB0aGUgY3VycmVudCBwYXJ0 aXRpb24uCiAgKgotICogSXRlcmF0ZXMgZnJvbSB0YWlsIChuZXdlc3QpIHRvd2FyZCBoZWFkIChv bGRlc3QpIHZpYSBwcmV2IGNoYWluLgotICogT25seSBpbi1wcm9ncmVzcyBjb250ZXh0cyAoc3Rh dGVzICE9IE5VTEwpIGFyZSBjYW5kaWRhdGVzIGZvciBhYnNvcnB0aW9uOwotICogY29tcGxldGVk IGNvbnRleHRzIHJlcHJlc2VudCB2YWxpZCBtYXRjaCByZXN1bHRzLgorICogTm90ZTogdGhpcyBp cyBhIHJlbGF0aXZlbHkgZXhwZW5zaXZlIG9wZXJhdGlvbiBiZWNhdXNlIGl0IGZvcmNlcyB0aGUK KyAqIHdob2xlIHBhcnRpdGlvbiB0byBiZSAic3Bvb2xlZCIgaW50byB0aGUgdHVwbGVzdG9yZSBh dCBvbmNlLiAgT25jZQorICogZXhlY3V0ZWQsIGhvd2V2ZXIsIGFkZGl0aW9uYWwgY2FsbHMgd2l0 aGluIHRoZSBzYW1lIHBhcnRpdGlvbiBhcmUgY2hlYXAuCiAgKi8KLXN0YXRpYyB2b2lkCi1uZmFf YWJzb3JiX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKK2ludDY0CitXaW5HZXRQ YXJ0aXRpb25Sb3dDb3VudChXaW5kb3dPYmplY3Qgd2lub2JqKQogewotCVJQUk5GQUNvbnRleHQg KmN0eDsKLQlSUFJORkFDb250ZXh0ICpuZXh0Q3R4OwotCi0JZm9yIChjdHggPSB3aW5zdGF0ZS0+ bmZhQ29udGV4dFRhaWw7IGN0eCAhPSBOVUxMOyBjdHggPSBuZXh0Q3R4KQotCXsKLQkJbmV4dEN0 eCA9IGN0eC0+cHJldjsKLQotCQkvKgotCQkgKiBPbmx5IGFic29yYiBpbi1wcm9ncmVzcyBjb250 ZXh0czsgY29tcGxldGVkIGNvbnRleHRzIGFyZSB2YWxpZAotCQkgKiByZXN1bHRzCi0JCSAqLwot CQlpZiAoY3R4LT5zdGF0ZXMgIT0gTlVMTCkKLQkJCW5mYV90cnlfYWJzb3JiX2NvbnRleHQod2lu c3RhdGUsIGN0eCk7Ci0JfQorCUFzc2VydChXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9iaikpOwor CXNwb29sX3R1cGxlcyh3aW5vYmotPndpbnN0YXRlLCAtMSk7CisJcmV0dXJuIHdpbm9iai0+d2lu c3RhdGUtPnNwb29sZWRfcm93czsKIH0KIAogLyoKLSAqIG5mYV9ldmFsX3Zhcl9tYXRjaAorICog V2luU2V0TWFya1Bvc2l0aW9uCisgKgkJU2V0IHRoZSAibWFyayIgcG9zaXRpb24gZm9yIHRoZSB3 aW5kb3cgb2JqZWN0LCB3aGljaCBpcyB0aGUgb2xkZXN0IHJvdworICoJCW51bWJlciAoY291bnRp bmcgZnJvbSAwKSBpdCBpcyBhbGxvd2VkIHRvIGZldGNoIGR1cmluZyBhbGwgc3Vic2VxdWVudAor ICoJCW9wZXJhdGlvbnMgd2l0aGluIHRoZSBjdXJyZW50IHBhcnRpdGlvbi4KICAqCi0gKiBFdmFs dWF0ZSBpZiBhIFZBUiBlbGVtZW50IG1hdGNoZXMgdGhlIGN1cnJlbnQgcm93LgotICogVW5kZWZp bmVkIHZhcmlhYmxlcyAodmFySWQgPj0gZGVmaW5lVmFyaWFibGVMaXN0IGxlbmd0aCkgZGVmYXVs dCB0byBUUlVFLgorICogV2luZG93IGZ1bmN0aW9ucyBkbyBub3QgaGF2ZSB0byBjYWxsIHRoaXMs IGJ1dCBhcmUgZW5jb3VyYWdlZCB0byBtb3ZlIHRoZQorICogbWFyayBmb3J3YXJkIHdoZW4gcG9z c2libGUgdG8ga2VlcCB0aGUgdHVwbGVzdG9yZSBzaXplIGRvd24gYW5kIHByZXZlbnQKKyAqIGhh dmluZyB0byBzcGlsbCByb3dzIHRvIGRpc2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgYm9vbAotbmZh X2V2YWxfdmFyX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSUGF0dGVybkVsZW1l bnQgKmVsZW0sCi0JCQkJICAgYm9vbCAqdmFyTWF0Y2hlZCkKK3ZvaWQKK1dpblNldE1hcmtQb3Np dGlvbihXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBtYXJrcG9zKQogewotCS8qIFRoaXMgZnVu Y3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZvciBWQVIgZWxlbWVudHMgKi8KLQlBc3NlcnQo UlBSRWxlbUlzVmFyKGVsZW0pKTsKLQotCWlmICh2YXJNYXRjaGVkID09IE5VTEwpCi0JCXJldHVy biBmYWxzZTsKLQlpZiAoZWxlbS0+dmFySWQgPj0gbGlzdF9sZW5ndGgod2luc3RhdGUtPmRlZmlu ZVZhcmlhYmxlTGlzdCkpCi0JCXJldHVybiB0cnVlOwotCXJldHVybiB2YXJNYXRjaGVkW2VsZW0t PnZhcklkXTsKLX0KKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CiAKLS8qCi0gKiBuZmFfbWF0 Y2gKLSAqCi0gKiBNYXRjaCBwaGFzZSAoY29udmVyZ2VuY2UpOiBldmFsdWF0ZSBWQVIgZWxlbWVu dHMgYWdhaW5zdCBjdXJyZW50IHJvdy4KLSAqIE9ubHkgdXBkYXRlcyBjb3VudHMgYW5kIHJlbW92 ZXMgZGVhZCBzdGF0ZXMuIE1pbmltYWwgdHJhbnNpdGlvbnMuCi0gKgotICogRm9yIFZBUiBlbGVt ZW50czoKLSAqICAgLSBtYXRjaGVkOiBjb3VudCsrLCBrZWVwIHN0YXRlICh1bmxlc3MgY291bnQg PiBtYXgpCi0gKiAgIC0gbm90IG1hdGNoZWQ6IHJlbW92ZSBzdGF0ZSAoZXhpdCBhbHRlcm5hdGl2 ZXMgYWxyZWFkeSBleGlzdCBmcm9tCi0gKiAgICAgcHJldmlvdXMgYWR2YW5jZSB3aGVuIGNvdW50 ID49IG1pbiB3YXMgc2F0aXNmaWVkKQotICoKLSAqIEZvciBzaW1wbGUgVkFScyAobWluPW1heD0x KSBmb2xsb3dlZCBieSBFTkQ6Ci0gKiAgIC0gQWR2YW5jZSB0byBFTkQgYW5kIHVwZGF0ZSBncm91 cCBjb3VudCBiZWZvcmUgYWJzb3JiIHBoYXNlCi0gKiAgIC0gVGhpcyBlbnN1cmVzIGFic29ycHRp b24gY2FuIGNvbXBhcmUgc3RhdGVzIGJ5IGdyb3VwIGNvbXBsZXRpb24KLSAqCi0gKiBOb24tVkFS IGVsZW1lbnRzIChBTFQsIEVORCwgRklOKSBhcmUga2VwdCBhcy1pcyBmb3IgYWR2YW5jZSBwaGFz ZS4KLSAqLwotc3RhdGljIHZvaWQKLW5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKLXsKLQlSUFJQYXR0ZXJuICpw YXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKLQlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbWVu dHMgPSBwYXR0ZXJuLT5lbGVtZW50czsKLQlSUFJORkFTdGF0ZSAqKnByZXZQdHIgPSAmY3R4LT5z dGF0ZXM7Ci0JUlBSTkZBU3RhdGUgKnN0YXRlOwotCVJQUk5GQVN0YXRlICpuZXh0U3RhdGU7CisJ QXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CisJd2luc3RhdGUgPSB3aW5vYmot PndpbnN0YXRlOwogCi0JLyoKLQkgKiBFdmFsdWF0ZSBWQVIgZWxlbWVudHMgYWdhaW5zdCBjdXJy ZW50IHJvdy4gRm9yIHNpbXBsZSBWQVJzIHdpdGggRU5ECi0JICogbmV4dCwgYWR2YW5jZSB0byBF TkQgYW5kIHVwZGF0ZSBncm91cCBjb3VudCBpbmxpbmUgc28gYWJzb3JiIHBoYXNlIGNhbgotCSAq IGNvbXBhcmUgc3RhdGVzIHByb3Blcmx5LgotCSAqLwotCWZvciAoc3RhdGUgPSBjdHgtPnN0YXRl czsgc3RhdGUgIT0gTlVMTDsgc3RhdGUgPSBuZXh0U3RhdGUpCisJaWYgKG1hcmtwb3MgPCB3aW5v YmotPm1hcmtwb3MpCisJCWVsb2coRVJST1IsICJjYW5ub3QgbW92ZSBXaW5kb3dPYmplY3QncyBt YXJrIHBvc2l0aW9uIGJhY2t3YXJkIik7CisJdHVwbGVzdG9yZV9zZWxlY3RfcmVhZF9wb2ludGVy KHdpbnN0YXRlLT5idWZmZXIsIHdpbm9iai0+bWFya3B0cik7CisJaWYgKG1hcmtwb3MgPiB3aW5v YmotPm1hcmtwb3MpCiAJewotCQlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZlbGVtZW50c1tz dGF0ZS0+ZWxlbUlkeF07Ci0KLQkJbmV4dFN0YXRlID0gc3RhdGUtPm5leHQ7Ci0KLQkJaWYgKFJQ UkVsZW1Jc1ZhcihlbGVtKSkKLQkJewotCQkJYm9vbAkJbWF0Y2hlZDsKLQkJCWludAkJCWRlcHRo ID0gZWxlbS0+ZGVwdGg7Ci0JCQlpbnQzMgkJY291bnQgPSBzdGF0ZS0+Y291bnRzW2RlcHRoXTsK LQotCQkJbWF0Y2hlZCA9IG5mYV9ldmFsX3Zhcl9tYXRjaCh3aW5zdGF0ZSwgZWxlbSwgdmFyTWF0 Y2hlZCk7Ci0KLQkJCWlmIChtYXRjaGVkKQotCQkJewotCQkJCS8qIEluY3JlbWVudCBjb3VudCAq LwotCQkJCWlmIChjb3VudCA8IFJQUl9DT1VOVF9NQVgpCi0JCQkJCWNvdW50Kys7Ci0KLQkJCQkv KiBNYXggY29uc3RyYWludCBzaG91bGQgbm90IGJlIGV4Y2VlZGVkICovCi0JCQkJQXNzZXJ0KGVs ZW0tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIHx8IGNvdW50IDw9IGVsZW0tPm1heCk7Ci0KLQkJ CQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9IGNvdW50OwotCi0JCQkJLyoKLQkJCQkgKiBGb3Igc2lt cGxlIFZBUiAobWluPW1heD0xKSB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRvIEVORAotCQkJCSAq IGFuZCB1cGRhdGUgZ3JvdXAgY291bnQgaW5saW5lLiBUaGlzIGtlZXBzIHN0YXRlIGluIHBsYWNl LAotCQkJCSAqIHByZXNlcnZpbmcgbGV4aWNhbCBvcmRlci4KLQkJCQkgKi8KLQkJCQlpZiAoZWxl bS0+bWluID09IDEgJiYgZWxlbS0+bWF4ID09IDEgJiYKLQkJCQkJUlBSRWxlbUlzRW5kKCZlbGVt ZW50c1tlbGVtLT5uZXh0XSkpCi0JCQkJewotCQkJCQlSUFJQYXR0ZXJuRWxlbWVudCAqZW5kRWxl bSA9ICZlbGVtZW50c1tlbGVtLT5uZXh0XTsKLQkJCQkJaW50CQkJZW5kRGVwdGggPSBlbmRFbGVt LT5kZXB0aDsKLQkJCQkJaW50MzIJCWVuZENvdW50ID0gc3RhdGUtPmNvdW50c1tlbmREZXB0aF07 Ci0KLQkJCQkJQXNzZXJ0KGNvdW50ID09IDEpOwotCi0JCQkJCS8qIEluY3JlbWVudCBncm91cCBj b3VudCB3aXRoIG92ZXJmbG93IHByb3RlY3Rpb24gKi8KLQkJCQkJaWYgKGVuZENvdW50IDwgUlBS X0NPVU5UX01BWCkKLQkJCQkJCWVuZENvdW50Kys7Ci0KLQkJCQkJLyoKLQkJCQkJICogRU5EJ3Mg bWF4IGNhbiBuZXZlciBiZSBleGNlZWRlZCBoZXJlIGJlY2F1c2UKLQkJCQkJICogbmZhX2FkdmFu Y2VfZW5kIG9ubHkgbG9vcHMgd2hlbiBjb3VudCA8IG1heCwgc28KLQkJCQkJICogZW5kQ291bnQg ZW50ZXJpbmcgaW5saW5lIGFkdmFuY2UgaXMgYXQgbW9zdCBtYXgtMSwgYW5kCi0JCQkJCSAqIGlu Y3JlbWVudGluZyB5aWVsZHMgYXQgbW9zdCBtYXguCi0JCQkJCSAqLwotCQkJCQlBc3NlcnQoZW5k RWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKLQkJCQkJCSAgIGVuZENvdW50IDw9IGVu ZEVsZW0tPm1heCk7Ci0KLQkJCQkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OwotCQkJCQlz dGF0ZS0+Y291bnRzW2VuZERlcHRoXSA9IGVuZENvdW50OwotCQkJCX0KLQkJCQkvKiBlbHNlOiBz dGF5IGF0IFZBUiBmb3IgYWR2YW5jZSBwaGFzZSAqLwotCQkJfQotCQkJZWxzZQotCQkJewotCQkJ CS8qCi0JCQkJICogTm90IG1hdGNoZWQgLSByZW1vdmUgc3RhdGUuIEV4aXQgYWx0ZXJuYXRpdmVz IHdlcmUgYWxyZWFkeQotCQkJCSAqIGNyZWF0ZWQgYnkgYWR2YW5jZSBwaGFzZSB3aGVuIGNvdW50 ID49IG1pbiB3YXMgc2F0aXNmaWVkLgotCQkJCSAqLwotCQkJCSpwcmV2UHRyID0gbmV4dFN0YXRl OwotCQkJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7Ci0JCQkJY29udGludWU7Ci0J CQl9Ci0JCX0KLQkJLyogTm9uLVZBUiBlbGVtZW50czoga2VlcCBhcy1pcyBmb3IgYWR2YW5jZSBw aGFzZSAqLwotCi0JCXByZXZQdHIgPSAmc3RhdGUtPm5leHQ7CisJCXR1cGxlc3RvcmVfc2tpcHR1 cGxlcyh3aW5zdGF0ZS0+YnVmZmVyLAorCQkJCQkJCSAgbWFya3BvcyAtIHdpbm9iai0+bWFya3Bv cywKKwkJCQkJCQkgIHRydWUpOworCQl3aW5vYmotPm1hcmtwb3MgPSBtYXJrcG9zOworCX0KKwl0 dXBsZXN0b3JlX3NlbGVjdF9yZWFkX3BvaW50ZXIod2luc3RhdGUtPmJ1ZmZlciwgd2lub2JqLT5y ZWFkcHRyKTsKKwlpZiAobWFya3BvcyA+IHdpbm9iai0+c2Vla3BvcykKKwl7CisJCXR1cGxlc3Rv cmVfc2tpcHR1cGxlcyh3aW5zdGF0ZS0+YnVmZmVyLAorCQkJCQkJCSAgbWFya3BvcyAtIHdpbm9i ai0+c2Vla3BvcywKKwkJCQkJCQkgIHRydWUpOworCQl3aW5vYmotPnNlZWtwb3MgPSBtYXJrcG9z OwogCX0KIH0KIAogLyoKLSAqIG5mYV9yb3V0ZV90b19lbGVtCisgKiBXaW5Sb3dzQXJlUGVlcnMK KyAqCQlDb21wYXJlIHR3byByb3dzIChzcGVjaWZpZWQgYnkgYWJzb2x1dGUgcG9zaXRpb24gaW4g cGFydGl0aW9uKSB0byBzZWUKKyAqCQlpZiB0aGV5IGFyZSBlcXVhbCBhY2NvcmRpbmcgdG8gdGhl IE9SREVSIEJZIGNsYXVzZS4KICAqCi0gKiBSb3V0ZSBzdGF0ZSB0byBuZXh0IGVsZW1lbnQuIElm IFZBUiwgYWRkIHRvIGN0eC0+c3RhdGVzIGFuZCBwcm9jZXNzCi0gKiBza2lwIHBhdGggaWYgb3B0 aW9uYWwuIE90aGVyd2lzZSwgY29udGludWUgZXBzaWxvbiBleHBhbnNpb24gdmlhIHJlY3Vyc2lv bi4KKyAqIE5COiB0aGlzIGRvZXMgbm90IGNvbnNpZGVyIHRoZSB3aW5kb3cgZnJhbWUgbW9kZS4K ICAqLwotc3RhdGljIHZvaWQKLW5mYV9yb3V0ZV90b19lbGVtKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAotCQkJCSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQ YXR0ZXJuRWxlbWVudCAqbmV4dEVsZW0sCi0JCQkJICBpbnQ2NCBjdXJyZW50UG9zKQorYm9vbAor V2luUm93c0FyZVBlZXJzKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvczEsIGludDY0IHBv czIpCiB7Ci0JaWYgKFJQUkVsZW1Jc1ZhcihuZXh0RWxlbSkpCi0JewotCQlSUFJORkFTdGF0ZSAq c2tpcFN0YXRlID0gTlVMTDsKLQotCQkvKiBDcmVhdGUgc2tpcCBzdGF0ZSBiZWZvcmUgYWRkX3Vu aXF1ZSwgd2hpY2ggbWF5IGZyZWUgc3RhdGUgKi8KLQkJaWYgKFJQUkVsZW1DYW5Ta2lwKG5leHRF bGVtKSkKLQkJCXNraXBTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIG5leHRFbGVt LT5uZXh0LAotCQkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsK LQotCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSk7CisJV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlOworCVdpbmRvd0FnZyAgKm5vZGU7CisJVHVwbGVUYWJsZVNsb3Qg KnNsb3QxOworCVR1cGxlVGFibGVTbG90ICpzbG90MjsKKwlib29sCQlyZXM7CiAKLQkJaWYgKHNr aXBTdGF0ZSAhPSBOVUxMKQotCQkJbmZhX2FkdmFuY2Vfc3RhdGUod2luc3RhdGUsIGN0eCwgc2tp cFN0YXRlLCBjdXJyZW50UG9zKTsKLQl9Ci0JZWxzZQotCXsKLQkJbmZhX2FkdmFuY2Vfc3RhdGUo d2luc3RhdGUsIGN0eCwgc3RhdGUsIGN1cnJlbnRQb3MpOwotCX0KLX0KKwlBc3NlcnQoV2luZG93 T2JqZWN0SXNWYWxpZCh3aW5vYmopKTsKKwl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CisJ bm9kZSA9IChXaW5kb3dBZ2cgKikgd2luc3RhdGUtPnNzLnBzLnBsYW47CiAKLS8qCi0gKiBuZmFf YWR2YW5jZV9hbHQKLSAqCi0gKiBIYW5kbGUgQUxUIGVsZW1lbnQ6IGV4cGFuZCBhbGwgYnJhbmNo ZXMgaW4gbGV4aWNhbCBvcmRlciB2aWEgREZTLgotICovCi1zdGF0aWMgdm9pZAotbmZhX2FkdmFu Y2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAotCQkJ CVJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCi0JCQkJaW50NjQg Y3VycmVudFBvcykKLXsKLQlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVy bjsKLQlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbWVudHMgPSBwYXR0ZXJuLT5lbGVtZW50czsKLQlS UFJFbGVtSWR4CWFsdElkeCA9IGVsZW0tPm5leHQ7CisJLyogSWYgbm8gT1JERVIgQlksIGFsbCBy b3dzIGFyZSBwZWVyczsgZG9uJ3QgYm90aGVyIHRvIGZldGNoIHRoZW0gKi8KKwlpZiAobm9kZS0+ b3JkTnVtQ29scyA9PSAwKQorCQlyZXR1cm4gdHJ1ZTsKIAotCXdoaWxlIChhbHRJZHggPj0gMCAm JiBhbHRJZHggPCBwYXR0ZXJuLT5udW1FbGVtZW50cykKLQl7Ci0JCVJQUlBhdHRlcm5FbGVtZW50 ICphbHRFbGVtID0gJmVsZW1lbnRzW2FsdElkeF07Ci0JCVJQUk5GQVN0YXRlICpuZXdTdGF0ZTsK KwkvKgorCSAqIE5vdGU6IE9LIHRvIHVzZSB0ZW1wX3Nsb3RfMiBoZXJlIGJlY2F1c2Ugd2UgYXJl bid0IGNhbGxpbmcgYW55CisJICogZnJhbWUtcmVsYXRlZCBmdW5jdGlvbnMgKHRob3NlIHRlbmQg dG8gY2xvYmJlciB0ZW1wX3Nsb3RfMikuCisJICovCisJc2xvdDEgPSB3aW5zdGF0ZS0+dGVtcF9z bG90XzE7CisJc2xvdDIgPSB3aW5zdGF0ZS0+dGVtcF9zbG90XzI7CiAKLQkJLyogU3RvcCBpZiBl bGVtZW50IGlzIG91dHNpZGUgQUxUIHNjb3BlIChub3QgYSBicmFuY2gpICovCi0JCWlmIChhbHRF bGVtLT5kZXB0aCA8PSBlbGVtLT5kZXB0aCkKLQkJCWJyZWFrOworCWlmICghd2luZG93X2dldHR1 cGxlc2xvdCh3aW5vYmosIHBvczEsIHNsb3QxKSkKKwkJZWxvZyhFUlJPUiwgInNwZWNpZmllZCBw b3NpdGlvbiBpcyBvdXQgb2Ygd2luZG93OiAiIElOVDY0X0ZPUk1BVCwKKwkJCSBwb3MxKTsKKwlp ZiAoIXdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBwb3MyLCBzbG90MikpCisJCWVsb2coRVJS T1IsICJzcGVjaWZpZWQgcG9zaXRpb24gaXMgb3V0IG9mIHdpbmRvdzogIiBJTlQ2NF9GT1JNQVQs CisJCQkgcG9zMik7CiAKLQkJLyogQ3JlYXRlIGluZGVwZW5kZW50IHN0YXRlIGZvciBlYWNoIGJy YW5jaCAqLwotCQluZXdTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIGFsdElkeCwK LQkJCQkJCQkJCXN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOworCXJlcyA9IGFy ZV9wZWVycyh3aW5zdGF0ZSwgc2xvdDEsIHNsb3QyKTsKIAotCQkvKiBSZWN1cnNpdmVseSBwcm9j ZXNzIHRoaXMgYnJhbmNoIGJlZm9yZSBuZXh0ICovCi0JCW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0 YXRlLCBjdHgsIG5ld1N0YXRlLCBjdXJyZW50UG9zKTsKLQkJYWx0SWR4ID0gYWx0RWxlbS0+anVt cDsKLQl9CisJRXhlY0NsZWFyVHVwbGUoc2xvdDEpOworCUV4ZWNDbGVhclR1cGxlKHNsb3QyKTsK IAotCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7CisJcmV0dXJuIHJlczsKIH0KIAog LyoKLSAqIG5mYV9hZHZhbmNlX2JlZ2luCisgKiBXaW5HZXRGdW5jQXJnSW5QYXJ0aXRpb24KKyAq CQlFdmFsdWF0ZSBhIHdpbmRvdyBmdW5jdGlvbidzIGFyZ3VtZW50IGV4cHJlc3Npb24gb24gYSBz cGVjaWZpZWQKKyAqCQlyb3cgb2YgdGhlIHBhcnRpdGlvbi4gIFRoZSByb3cgaXMgaWRlbnRpZmll ZCBpbiBsc2VlaygyKSBzdHlsZSwKKyAqCQlpLmUuIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50LCBm aXJzdCwgb3IgbGFzdCByb3cuCisgKgorICogYXJnbm86IGFyZ3VtZW50IG51bWJlciB0byBldmFs dWF0ZSAoY291bnRlZCBmcm9tIDApCisgKiByZWxwb3M6IHNpZ25lZCByb3djb3VudCBvZmZzZXQg ZnJvbSB0aGUgc2VlayBwb3NpdGlvbgorICogc2Vla3R5cGU6IFdJTkRPV19TRUVLX0NVUlJFTlQs IFdJTkRPV19TRUVLX0hFQUQsIG9yIFdJTkRPV19TRUVLX1RBSUwKKyAqIHNldF9tYXJrOiBJZiB0 aGUgcm93IGlzIGZvdW5kIGFuZCBzZXRfbWFyayBpcyB0cnVlLCB0aGUgbWFyayBpcyBtb3ZlZCB0 bworICoJCXRoZSByb3cgYXMgYSBzaWRlLWVmZmVjdC4KKyAqIGlzbnVsbDogb3V0cHV0IGFyZ3Vt ZW50LCByZWNlaXZlcyBpc251bGwgc3RhdHVzIG9mIHJlc3VsdAorICogaXNvdXQ6IG91dHB1dCBh cmd1bWVudCwgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIgdGFyZ2V0IHJvdyBwb3NpdGlvbgorICoJ CWlzIG91dCBvZiBwYXJ0aXRpb24gKGNhbiBwYXNzIE5VTEwgaWYgY2FsbGVyIGRvZXNuJ3QgY2Fy ZSBhYm91dCB0aGlzKQogICoKLSAqIEhhbmRsZSBCRUdJTiBlbGVtZW50OiBncm91cCBlbnRyeSBs b2dpYy4KLSAqIEJFR0lOIGlzIG9ubHkgdmlzaXRlZCBhdCBpbml0aWFsIGdyb3VwIGVudHJ5IChj b3VudCBpcyBhbHdheXMgMCkuCi0gKiBJZiBtaW49MCwgY3JlYXRlcyBhIHNraXAgcGF0aCBwYXN0 IHRoZSBncm91cC4KLSAqIExvb3AtYmFjayBmcm9tIEVORCBnb2VzIGRpcmVjdGx5IHRvIGZpcnN0 IGNoaWxkLCBieXBhc3NpbmcgQkVHSU4uCisgKiBTcGVjaWZ5aW5nIGEgbm9uZXhpc3RlbnQgcm93 IGlzIG5vdCBhbiBlcnJvciwgaXQganVzdCBjYXVzZXMgYSBudWxsIHJlc3VsdAorICogKHBsdXMg c2V0dGluZyAqaXNvdXQgdHJ1ZSwgaWYgaXNvdXQgaXNuJ3QgTlVMTCkuCiAgKi8KLXN0YXRpYyB2 b2lkCi1uZmFfYWR2YW5jZV9iZWdpbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNv bnRleHQgKmN0eCwKLQkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQg KmVsZW0sCi0JCQkJICBpbnQ2NCBjdXJyZW50UG9zKQorRGF0dW0KK1dpbkdldEZ1bmNBcmdJblBh cnRpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCisJCQkJCQkgaW50IHJlbHBv cywgaW50IHNlZWt0eXBlLCBib29sIHNldF9tYXJrLAorCQkJCQkJIGJvb2wgKmlzbnVsbCwgYm9v bCAqaXNvdXQpCiB7Ci0JUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47 Ci0JUlBSUGF0dGVybkVsZW1lbnQgKmVsZW1lbnRzID0gcGF0dGVybi0+ZWxlbWVudHM7Ci0JUlBS TkZBU3RhdGUgKnNraXBTdGF0ZSA9IE5VTEw7CisJV2luZG93QWdnU3RhdGUgKndpbnN0YXRlOwor CWludDY0CQlhYnNfcG9zOworCWludDY0CQltYXJrX3BvczsKKwlEYXR1bQkJZGF0dW07CisJYm9v bAkJbnVsbF90cmVhdG1lbnQ7CisJaW50CQkJbm90bnVsbF9vZmZzZXQ7CisJaW50CQkJbm90bnVs bF9yZWxwb3M7CisJaW50CQkJZm9yd2FyZDsKKwlib29sCQlteWlzb3V0OwogCi0Jc3RhdGUtPmNv dW50c1tlbGVtLT5kZXB0aF0gPSAwOworCUFzc2VydChXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9i aikpOworCXdpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKKworCW51bGxfdHJlYXRtZW50ID0g KHdpbm9iai0+aWdub3JlX251bGxzID09IElHTk9SRV9OVUxMUyAmJiByZWxwb3MgIT0gMCk7CiAK LQkvKiBPcHRpb25hbCBncm91cDogY3JlYXRlIHNraXAgcGF0aCAoYnV0IGRvbid0IHJvdXRlIHll dCkgKi8KLQlpZiAoZWxlbS0+bWluID09IDApCisJc3dpdGNoIChzZWVrdHlwZSkKIAl7Ci0JCXNr aXBTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIGVsZW0tPmp1bXAsCi0JCQkJCQkJ CQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJCWNhc2UgV0lORE9XX1NF RUtfQ1VSUkVOVDoKKwkJCWlmIChudWxsX3RyZWF0bWVudCkKKwkJCQlhYnNfcG9zID0gd2luc3Rh dGUtPmN1cnJlbnRwb3M7CisJCQllbHNlCisJCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5jdXJyZW50 cG9zICsgcmVscG9zOworCQkJYnJlYWs7CisJCWNhc2UgV0lORE9XX1NFRUtfSEVBRDoKKwkJCWlm IChudWxsX3RyZWF0bWVudCkKKwkJCQlhYnNfcG9zID0gMDsKKwkJCWVsc2UKKwkJCQlhYnNfcG9z ID0gcmVscG9zOworCQkJYnJlYWs7CisJCWNhc2UgV0lORE9XX1NFRUtfVEFJTDoKKwkJCXNwb29s X3R1cGxlcyh3aW5zdGF0ZSwgLTEpOworCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5zcG9vbGVkX3Jv d3MgLSAxICsgcmVscG9zOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIHdpbmRvdyBzZWVrIHR5cGU6ICVkIiwgc2Vla3R5cGUpOworCQkJYWJzX3Bv cyA9IDA7CQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJCQlicmVhazsKIAl9CiAKLQlpZiAo c2tpcFN0YXRlICE9IE5VTEwgJiYgUlBSRWxlbUlzUmVsdWN0YW50KGVsZW0pKQorCS8qIEVhc3kg Y2FzZSBpZiBJR05PUkUgTlVMTFMgaXMgbm90IHNwZWNpZmllZCAqLworCWlmICghbnVsbF90cmVh dG1lbnQpCiAJewotCQlSUFJORkFTdGF0ZSAqc2F2ZWRNYXRjaCA9IGN0eC0+bWF0Y2hlZFN0YXRl OworCQkvKiBnZXQgdHVwbGUgYW5kIGV2YWx1YXRlIGluIHBhcnRpdGlvbiAqLworCQlkYXR1bSA9 IGdldHR1cGxlX2V2YWxfcGFydGl0aW9uKHdpbm9iaiwgYXJnbm8sCisJCQkJCQkJCQkJYWJzX3Bv cywgaXNudWxsLCAmbXlpc291dCk7CisJCWlmICghbXlpc291dCAmJiBzZXRfbWFyaykKKwkJCVdp blNldE1hcmtQb3NpdGlvbih3aW5vYmosIGFic19wb3MpOworCQlpZiAoaXNvdXQpCisJCQkqaXNv dXQgPSBteWlzb3V0OworCQlyZXR1cm4gZGF0dW07CisJfQogCi0JCS8qIFJlbHVjdGFudDogc2tp cCBmaXJzdCAocHJlZmVyIGZld2VyIGl0ZXJhdGlvbnMpLCBlbnRlciBzZWNvbmQgKi8KLQkJbmZh X3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc2tpcFN0YXRlLAotCQkJCQkJICAmZWxlbWVu dHNbZWxlbS0+anVtcF0sIGN1cnJlbnRQb3MpOworCS8qIFByZXBhcmUgZm9yIGxvb3AgKi8KKwlu b3RudWxsX29mZnNldCA9IDA7CisJbm90bnVsbF9yZWxwb3MgPSBhYnMocmVscG9zKTsKKwlmb3J3 YXJkID0gcmVscG9zID4gMCA/IDEgOiAtMTsKKwlteWlzb3V0ID0gZmFsc2U7CisJZGF0dW0gPSAw OwogCisJLyoKKwkgKiBJR05PUkUgTlVMTFMgKyBXSU5ET1dfU0VFS19DVVJSRU5UICsgcmVscG9z ID4gMCBjYXNlLCB3ZSB3b3VsZCBmZXRjaAorCSAqIGJleW9uZCB0aGUgY3VycmVudCByb3cgKyBy ZWxwb3MgdG8gZmluZCBvdXQgdGhlIHRhcmdldCByb3cuIElmIHdlIG1hcmsKKwkgKiBhdCBhYnNf cG9zLCBuZXh0IGNhbGwgdG8gV2luR2V0RnVuY0FyZ0luUGFydGl0aW9uIG9yCisJICogV2luR2V0 RnVuY0FyZ0luRnJhbWUgKGluIGNhc2Ugd2hlbiBhIHdpbmRvdyBmdW5jdGlvbiBoYXZlIG11bHRp cGxlCisJICogYXJncykgY291bGQgZmFpbCB3aXRoICJjYW5ub3QgZmV0Y2ggcm93IGJlZm9yZSBX aW5kb3dPYmplY3QncyBtYXJrCisJICogcG9zaXRpb24iLiBTbyBrZWVwIHRoZSBtYXJrIHBvc2l0 aW9uIGF0IGN1cnJlbnRwb3MuCisJICovCisJaWYgKHNlZWt0eXBlID09IFdJTkRPV19TRUVLX0NV UlJFTlQgJiYgcmVscG9zID4gMCkKKwkJbWFya19wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsK KwllbHNlCisJewogCQkvKgotCQkgKiBJZiBza2lwIHBhdGggcmVhY2hlZCBGSU4sIHNob3J0ZXN0 IG1hdGNoIGlzIGZvdW5kLiBTa2lwIGdyb3VwIGVudHJ5Ci0JCSAqIHRvIHByZXZlbnQgbG9uZ2Vy IG1hdGNoZXMuCisJCSAqIEZvciBvdGhlciBjYXNlcyB3ZSBoYXZlIG5vIGlkZWEgd2hhdCBwb3Np dGlvbiBvZiByb3cgY2FsbGVycyB3b3VsZAorCQkgKiBmZXRjaCBuZXh0IHRpbWUuIEFsc28gZm9y IHJlbHBvcyA8IDAgY2FzZSAod2UgZ28gYmFja3dhcmQpLCB3ZQorCQkgKiBjYW5ub3Qgc2V0IG1h cmsgZWl0aGVyLiBGb3IgdGhvc2UgY2FzZXMgd2UgYWx3YXlzIHNldCBtYXJrIGF0IDAuCiAJCSAq LwotCQlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRjaCkKLQkJewotCQkJbmZhX3N0 YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKLQkJCXJldHVybjsKLQkJfQotCi0JCXN0YXRlLT5l bGVtSWR4ID0gZWxlbS0+bmV4dDsKLQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwg c3RhdGUsCi0JCQkJCQkgICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQb3MpOwor CQltYXJrX3BvcyA9IDA7CiAJfQotCWVsc2UKKworCS8qCisJICogR2V0IHRoZSBuZXh0IG5vbm51 bGwgdmFsdWUgaW4gdGhlIHBhcnRpdGlvbiwgbW92aW5nIGZvcndhcmQgb3IgYmFja3dhcmQKKwkg KiB1bnRpbCB3ZSBmaW5kIGEgdmFsdWUgb3IgcmVhY2ggdGhlIHBhcnRpdGlvbidzIGVuZC4gIFdl IGNhY2hlIHRoZQorCSAqIG51bGxuZXNzIHN0YXR1cyBiZWNhdXNlIHdlIG1heSByZXBlYXQgdGhp cyBwcm9jZXNzIG1hbnkgdGltZXMuCisJICovCisJZG8KIAl7Ci0JCS8qIEdyZWVkeTogZW50ZXIg Zmlyc3QsIHNraXAgc2Vjb25kICovCi0JCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKLQkJ bmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsCi0JCQkJCQkgICZlbGVtZW50 c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQb3MpOworCQlpbnQJCQlubl9pbmZvOwkvKiBOT1Qg TlVMTCBzdGF0dXMgKi8KKworCQlhYnNfcG9zICs9IGZvcndhcmQ7CisJCWlmIChhYnNfcG9zIDwg MCkJCS8qIGNsZWFybHkgb3V0IG9mIHBhcnRpdGlvbiAqLworCQkJYnJlYWs7CiAKLQkJaWYgKHNr aXBTdGF0ZSAhPSBOVUxMKQorCQkvKiBjaGVjayBOT1QgTlVMTCBjYWNoZWQgaW5mbyAqLworCQlu bl9pbmZvID0gZ2V0X25vdG51bGxfaW5mbyh3aW5vYmosIGFic19wb3MsIGFyZ25vKTsKKwkJaWYg KG5uX2luZm8gPT0gTk5fTk9UTlVMTCkJLyogdGhpcyByb3cgaXMga25vd24gdG8gYmUgTk9UIE5V TEwgKi8KKwkJCW5vdG51bGxfb2Zmc2V0Kys7CisJCWVsc2UgaWYgKG5uX2luZm8gPT0gTk5fTlVM TCkJLyogdGhpcyByb3cgaXMga25vd24gdG8gYmUgTlVMTCAqLworCQkJY29udGludWU7CQkJLyog a2VlcCBvbiBtb3ZpbmcgZm9yd2FyZCBvciBiYWNrd2FyZCAqLworCQllbHNlCQkJCQkvKiBuZWVk IHRvIGNoZWNrIE5VTEwgb3Igbm90ICovCiAJCXsKLQkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0 YXRlLCBjdHgsIHNraXBTdGF0ZSwKLQkJCQkJCQkgICZlbGVtZW50c1tlbGVtLT5qdW1wXSwgY3Vy cmVudFBvcyk7CisJCQkvKgorCQkJICogTk9UIE5VTEwgaW5mbyBkb2VzIG5vdCBleGlzdCB5ZXQu ICBHZXQgdHVwbGUgYW5kIGV2YWx1YXRlIGZ1bmMKKwkJCSAqIGFyZyBpbiBwYXJ0aXRpb24uIFdl IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20KKwkJCSAqIGdldHR1cGxlX2V2YWxfcGFydGl0 aW9uIGJlY2F1c2Ugd2UgYXJlIGp1c3QgaW50ZXJlc3RlZCBpbgorCQkJICogd2hldGhlciB3ZSBh cmUgaW5zaWRlIG9yIG91dHNpZGUgb2YgcGFydGl0aW9uLCBOVUxMIG9yIE5PVAorCQkJICogTlVM TC4KKwkJCSAqLworCQkJKHZvaWQpIGdldHR1cGxlX2V2YWxfcGFydGl0aW9uKHdpbm9iaiwgYXJn bm8sCisJCQkJCQkJCQkJICAgYWJzX3BvcywgaXNudWxsLCAmbXlpc291dCk7CisJCQlpZiAobXlp c291dCkJCS8qIG91dCBvZiBwYXJ0aXRpb24/ICovCisJCQkJYnJlYWs7CisJCQlpZiAoISppc251 bGwpCisJCQkJbm90bnVsbF9vZmZzZXQrKzsKKwkJCS8qIHJlY29yZCB0aGUgcm93IHN0YXR1cyAq LworCQkJcHV0X25vdG51bGxfaW5mbyh3aW5vYmosIGFic19wb3MsIGFyZ25vLCAqaXNudWxsKTsK IAkJfQotCX0KKwl9IHdoaWxlIChub3RudWxsX29mZnNldCA8IG5vdG51bGxfcmVscG9zKTsKKwor CS8qIGdldCB0dXBsZSBhbmQgZXZhbHVhdGUgZnVuYyBhcmcgaW4gcGFydGl0aW9uICovCisJZGF0 dW0gPSBnZXR0dXBsZV9ldmFsX3BhcnRpdGlvbih3aW5vYmosIGFyZ25vLAorCQkJCQkJCQkJYWJz X3BvcywgaXNudWxsLCAmbXlpc291dCk7CisJaWYgKCFteWlzb3V0ICYmIHNldF9tYXJrKQorCQlX aW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBtYXJrX3Bvcyk7CisJaWYgKGlzb3V0KQorCQkqaXNv dXQgPSBteWlzb3V0OworCisJcmV0dXJuIGRhdHVtOwogfQogCiAvKgotICogbmZhX2FkdmFuY2Vf ZW5kCisgKiBXaW5HZXRGdW5jQXJnSW5GcmFtZQorICoJCUV2YWx1YXRlIGEgd2luZG93IGZ1bmN0 aW9uJ3MgYXJndW1lbnQgZXhwcmVzc2lvbiBvbiBhIHNwZWNpZmllZAorICoJCXJvdyBvZiB0aGUg d2luZG93IGZyYW1lLiAgVGhlIHJvdyBpcyBpZGVudGlmaWVkIGluIGxzZWVrKDIpIHN0eWxlLAor ICoJCWkuZS4gcmVsYXRpdmUgdG8gdGhlIGZpcnN0IG9yIGxhc3Qgcm93IG9mIHRoZSBmcmFtZS4g IChXZSBkbyBub3QKKyAqCQlzdXBwb3J0IFdJTkRPV19TRUVLX0NVUlJFTlQgaGVyZSwgYmVjYXVz ZSBpdCdzIG5vdCB2ZXJ5IGNsZWFyIHdoYXQKKyAqCQl0aGF0IHNob3VsZCBtZWFuIGlmIHRoZSBj dXJyZW50IHJvdyBpc24ndCBwYXJ0IG9mIHRoZSBmcmFtZS4pCisgKgorICogYXJnbm86IGFyZ3Vt ZW50IG51bWJlciB0byBldmFsdWF0ZSAoY291bnRlZCBmcm9tIDApCisgKiByZWxwb3M6IHNpZ25l ZCByb3djb3VudCBvZmZzZXQgZnJvbSB0aGUgc2VlayBwb3NpdGlvbgorICogc2Vla3R5cGU6IFdJ TkRPV19TRUVLX0hFQUQgb3IgV0lORE9XX1NFRUtfVEFJTAorICogc2V0X21hcms6IElmIHRoZSBy b3cgaXMgZm91bmQvaW4gZnJhbWUgYW5kIHNldF9tYXJrIGlzIHRydWUsIHRoZSBtYXJrIGlzCisg KgkJbW92ZWQgdG8gdGhlIHJvdyBhcyBhIHNpZGUtZWZmZWN0LgorICogaXNudWxsOiBvdXRwdXQg YXJndW1lbnQsIHJlY2VpdmVzIGlzbnVsbCBzdGF0dXMgb2YgcmVzdWx0CisgKiBpc291dDogb3V0 cHV0IGFyZ3VtZW50LCBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciB0YXJnZXQgcm93IHBvc2l0aW9u CisgKgkJaXMgb3V0IG9mIGZyYW1lIChjYW4gcGFzcyBOVUxMIGlmIGNhbGxlciBkb2Vzbid0IGNh cmUgYWJvdXQgdGhpcykKKyAqCisgKiBTcGVjaWZ5aW5nIGEgbm9uZXhpc3RlbnQgb3Igbm90LWlu LWZyYW1lIHJvdyBpcyBub3QgYW4gZXJyb3IsIGl0IGp1c3QKKyAqIGNhdXNlcyBhIG51bGwgcmVz dWx0IChwbHVzIHNldHRpbmcgKmlzb3V0IHRydWUsIGlmIGlzb3V0IGlzbid0IE5VTEwpLgorICoK KyAqIE5vdGUgdGhhdCBzb21lIGV4Y2x1c2lvbi1jbGF1c2Ugb3B0aW9ucyBsZWFkIHRvIHNpdHVh dGlvbnMgd2hlcmUgdGhlCisgKiByb3dzIHRoYXQgYXJlIGluLWZyYW1lIGFyZSBub3QgY29uc2Vj dXRpdmUgaW4gdGhlIHBhcnRpdGlvbi4gIEJ1dCB3ZQorICogY291bnQgb25seSBpbi1mcmFtZSBy b3dzIHdoZW4gbWVhc3VyaW5nIHJlbHBvcy4KICAqCi0gKiBIYW5kbGUgRU5EIGVsZW1lbnQ6IGdy b3VwIHJlcGV0aXRpb24gbG9naWMuCi0gKiBEZWNpZGVzIHdoZXRoZXIgdG8gbG9vcCBiYWNrIG9y IGV4aXQgYmFzZWQgb24gY291bnQgdnMgbWluL21heC4KKyAqIFRoZSBzZXRfbWFyayBmbGFnIGlz IGludGVycHJldGVkIGFzIG1lYW5pbmcgdGhhdCB0aGUgY2FsbGVyIHdpbGwgc3BlY2lmeQorICog YSBjb25zdGFudCAob3IsIHBlcmhhcHMsIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZykgcmVscG9z IGluIHN1Y2Nlc3NpdmUKKyAqIGNhbGxzLCBzbyB0aGF0ICppZiB0aGVyZSBpcyBubyBleGNsdXNp b24gY2xhdXNlKiB0aGVyZSB3aWxsIGJlIG5vIG5lZWQKKyAqIHRvIGZldGNoIGEgcm93IGJlZm9y ZSB0aGUgcHJldmlvdXNseSBmZXRjaGVkIHJvdy4gIEJ1dCB3ZSBkbyBub3QgZXhwZWN0CisgKiB0 aGUgY2FsbGVyIHRvIGtub3cgaG93IHRvIGFjY291bnQgZm9yIGV4Y2x1c2lvbiBjbGF1c2VzLiAg VGhlcmVmb3JlLAorICogaWYgdGhlcmUgaXMgYW4gZXhjbHVzaW9uIGNsYXVzZSB3ZSB0YWtlIHJl c3BvbnNpYmlsaXR5IGZvciBhZGp1c3RpbmcgdGhlCisgKiBtYXJrIHJlcXVlc3QgdG8gc29tZXRo aW5nIHRoYXQgd2lsbCBiZSBzYWZlIGdpdmVuIHRoZSBhYm92ZSBhc3N1bXB0aW9uCisgKiBhYm91 dCByZWxwb3MuCiAgKi8KLXN0YXRpYyB2b2lkCi1uZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCi0JCQkJUlBSTkZBU3RhdGUgKnN0YXRl LCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKLQkJCQlpbnQ2NCBjdXJyZW50UG9zKQorRGF0dW0K K1dpbkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludCBhcmdubywKKwkJ CQkJIGludCByZWxwb3MsIGludCBzZWVrdHlwZSwgYm9vbCBzZXRfbWFyaywKKwkJCQkJIGJvb2wg KmlzbnVsbCwgYm9vbCAqaXNvdXQpCiB7Ci0JUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRl LT5ycFBhdHRlcm47Ci0JUlBSUGF0dGVybkVsZW1lbnQgKmVsZW1lbnRzID0gcGF0dGVybi0+ZWxl bWVudHM7Ci0JaW50CQkJZGVwdGggPSBlbGVtLT5kZXB0aDsKLQlpbnQzMgkJY291bnQgPSBzdGF0 ZS0+Y291bnRzW2RlcHRoXTsKLQotCWlmIChjb3VudCA8IGVsZW0tPm1pbikKLQl7Ci0JCVJQUlBh dHRlcm5FbGVtZW50ICpqdW1wRWxlbTsKLQkJUlBSTkZBU3RhdGUgKmZmU3RhdGUgPSBOVUxMOwot Ci0JCS8qIFNuYXBzaG90IHN0YXRlIGZvciBmZiBwYXRoIGJlZm9yZSBtb2RpZnlpbmcgZm9yIGxv b3AtYmFjayAqLwotCQlpZiAoUlBSRWxlbUNhbkVtcHR5TG9vcChlbGVtKSkKLQkJCWZmU3RhdGUg PSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBzdGF0ZS0+ZWxlbUlkeCwKLQkJCQkJCQkJCSAg IHN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOwotCi0JCS8qIExvb3AgYmFjayBm b3IgcmVhbCBtYXRjaGVzIChwcmltYXJ5IHBhdGgpICovCi0JCWZvciAoaW50IGQgPSBkZXB0aCAr IDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQotCQkJc3RhdGUtPmNvdW50c1tkXSA9IDA7 Ci0JCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKLQkJanVtcEVsZW0gPSAmZWxlbWVudHNb c3RhdGUtPmVsZW1JZHhdOwotCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0 ZSwganVtcEVsZW0sCi0JCQkJCQkgIGN1cnJlbnRQb3MpOwotCi0JCS8qCi0JCSAqIEZhc3QtZm9y d2FyZCBmYWxsYmFjayBmb3IgbnVsbGFibGUgYm9kaWVzLiAgRS5nLiAoQT8pezIsM30gd2hlbiBB Ci0JCSAqIGRvZXNuJ3QgbWF0Y2g6IHRoZSBsb29wLWJhY2sgcHJvZHVjZXMgZW1wdHkgaXRlcmF0 aW9ucyB0aGF0IGN5Y2xlCi0JCSAqIGRldGVjdGlvbiB3b3VsZCBraWxsLiAgSW5zdGVhZCwgZXhp dCBkaXJlY3RseSB0cmVhdGluZyBhbGwKLQkJICogcmVtYWluaW5nIHJlcXVpcmVkIGl0ZXJhdGlv bnMgYXMgZW1wdHkuICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QKLQkJICogbmZhX2FkdmFuY2Vf ZW5kKSB0byBhdm9pZCBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5L3JlbHVjdGFudCBsb29wCi0J CSAqIHN0YXRlcy4KLQkJICovCi0JCWlmIChmZlN0YXRlICE9IE5VTEwpCi0JCXsKLQkJCVJQUlBh dHRlcm5FbGVtZW50ICpuZXh0RWxlbTsKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisJRXhw ckNvbnRleHQgKmVjb250ZXh0OworCVR1cGxlVGFibGVTbG90ICpzbG90OwogCi0JCQlmZlN0YXRl LT5jb3VudHNbZGVwdGhdID0gMDsKLQkJCWZmU3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0Owot CQkJbmV4dEVsZW0gPSAmZWxlbWVudHNbZmZTdGF0ZS0+ZWxlbUlkeF07CisJQXNzZXJ0KFdpbmRv d09iamVjdElzVmFsaWQod2lub2JqKSk7CisJd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOwor CWVjb250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OworCXNsb3QgPSB3aW5z dGF0ZS0+dGVtcF9zbG90XzE7CiAKLQkJCS8qIEVORC0+RU5EOiBpbmNyZW1lbnQgb3V0ZXIgRU5E J3MgY291bnQgKi8KLQkJCWlmIChSUFJFbGVtSXNFbmQobmV4dEVsZW0pICYmCi0JCQkJZmZTdGF0 ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQotCQkJCWZmU3RhdGUt PmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CisJaWYgKHdpbm9iai0+aWdub3JlX251bGxzID09 IElHTk9SRV9OVUxMUykKKwkJcmV0dXJuIGlnbm9yZW51bGxzX2dldGZ1bmNhcmdpbmZyYW1lKHdp bm9iaiwgYXJnbm8sIHJlbHBvcywgc2Vla3R5cGUsCisJCQkJCQkJCQkJCSBzZXRfbWFyaywgaXNu dWxsLCBpc291dCk7CiAKLQkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIGZmU3Rh dGUsIG5leHRFbGVtLAotCQkJCQkJCSAgY3VycmVudFBvcyk7Ci0JCX0KLQl9Ci0JZWxzZSBpZiAo ZWxlbS0+bWF4ICE9IFJQUl9RVUFOVElUWV9JTkYgJiYgY291bnQgPj0gZWxlbS0+bWF4KQorCWlm IChXaW5HZXRTbG90SW5GcmFtZSh3aW5vYmosIHNsb3QsCisJCQkJCQkgIHJlbHBvcywgc2Vla3R5 cGUsIHNldF9tYXJrLAorCQkJCQkJICBpc251bGwsIGlzb3V0KSA9PSAwKQogCXsKLQkJLyogTXVz dCBleGl0OiByZWFjaGVkIG1heCBpdGVyYXRpb25zLiAqLwotCQlSUFJQYXR0ZXJuRWxlbWVudCAq bmV4dEVsZW07Ci0KLQkJc3RhdGUtPmNvdW50c1tkZXB0aF0gPSAwOwotCQlzdGF0ZS0+ZWxlbUlk eCA9IGVsZW0tPm5leHQ7Ci0JCW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsK LQotCQkvKiBFTkQtPkVORDogaW5jcmVtZW50IG91dGVyIEVORCdzIGNvdW50ICovCi0JCWlmIChS UFJFbGVtSXNFbmQobmV4dEVsZW0pICYmIHN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSA8 IFJQUl9DT1VOVF9NQVgpCi0JCQlzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0rKzsKLQot CQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgbmV4dEVsZW0sIGN1cnJl bnRQb3MpOworCQllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsKKwkJcmV0dXJuIEV4 ZWNFdmFsRXhwcigoRXhwclN0YXRlICopIGxpc3RfbnRoKHdpbm9iai0+YXJnc3RhdGVzLCBhcmdu byksCisJCQkJCQkJZWNvbnRleHQsIGlzbnVsbCk7CiAJfQotCWVsc2UKLQl7Ci0JCS8qCi0JCSAq IEJldHdlZW4gbWluIGFuZCBtYXggKHdpdGggYXQgbGVhc3Qgb25lIGl0ZXJhdGlvbikgLSBjYW4g ZXhpdCBvcgotCQkgKiBsb29wLiBHcmVlZHk6IGxvb3AgZmlyc3QgKHByZWZlciBtb3JlIGl0ZXJh dGlvbnMpLiBSZWx1Y3RhbnQ6IGV4aXQKLQkJICogZmlyc3QgKHByZWZlciBmZXdlciBpdGVyYXRp b25zKS4KLQkJICovCi0JCVJQUk5GQVN0YXRlICpleGl0U3RhdGU7Ci0JCVJQUlBhdHRlcm5FbGVt ZW50ICpqdW1wRWxlbTsKLQkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOwotCi0JCS8qCi0J CSAqIENyZWF0ZSBleGl0IHN0YXRlIGZpcnN0IChuZWVkIG9yaWdpbmFsIGNvdW50cyBiZWZvcmUg bW9kaWZ5aW5nCi0JCSAqIHN0YXRlKQotCQkgKi8KLQkJZXhpdFN0YXRlID0gbmZhX3N0YXRlX2Ny ZWF0ZSh3aW5zdGF0ZSwgZWxlbS0+bmV4dCwKLQkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0 ZS0+aXNBYnNvcmJhYmxlKTsKLQkJZXhpdFN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKLQkJbmV4 dEVsZW0gPSAmZWxlbWVudHNbZXhpdFN0YXRlLT5lbGVtSWR4XTsKLQotCQkvKiBFTkQtPkVORDog aW5jcmVtZW50IG91dGVyIEVORCdzIGNvdW50ICovCi0JCWlmIChSUFJFbGVtSXNFbmQobmV4dEVs ZW0pICYmIGV4aXRTdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFY KQotCQkJZXhpdFN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOwotCi0JCS8qIFByZXBh cmUgbG9vcCBzdGF0ZSAqLwotCQlmb3IgKGludCBkID0gZGVwdGggKyAxOyBkIDwgcGF0dGVybi0+ bWF4RGVwdGg7IGQrKykKLQkJCXN0YXRlLT5jb3VudHNbZF0gPSAwOwotCQlzdGF0ZS0+ZWxlbUlk eCA9IGVsZW0tPmp1bXA7Ci0JCWp1bXBFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsK LQotCQlpZiAoUlBSRWxlbUlzUmVsdWN0YW50KGVsZW0pKQotCQl7Ci0JCQlSUFJORkFTdGF0ZSAq c2F2ZWRNYXRjaCA9IGN0eC0+bWF0Y2hlZFN0YXRlOwotCi0JCQkvKiBFeGl0IGZpcnN0IChwcmVm ZXJyZWQgZm9yIHJlbHVjdGFudCkgKi8KLQkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBj dHgsIGV4aXRTdGF0ZSwgbmV4dEVsZW0sCi0JCQkJCQkJICBjdXJyZW50UG9zKTsKLQotCQkJLyoK LQkJCSAqIElmIGV4aXQgcGF0aCByZWFjaGVkIEZJTiwgc2hvcnRlc3QgbWF0Y2ggaXMgZm91bmQu IFNraXAgbG9vcCB0bwotCQkJICogcHJldmVudCBsb25nZXIgbWF0Y2hlcyBmcm9tIHJlcGxhY2lu ZyBpdC4KLQkJCSAqLwotCQkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRlICE9IHNhdmVkTWF0Y2gpCi0J CQl7Ci0JCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKLQkJCQlyZXR1cm47Ci0J CQl9CiAKLQkJCS8qIExvb3Agc2Vjb25kICovCi0JCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0 ZSwgY3R4LCBzdGF0ZSwganVtcEVsZW0sCi0JCQkJCQkJICBjdXJyZW50UG9zKTsKLQkJfQotCQll bHNlCi0JCXsKLQkJCS8qIExvb3AgZmlyc3QgKHByZWZlcnJlZCBmb3IgZ3JlZWR5KSAqLwotCQkJ bmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIGp1bXBFbGVtLAotCQkJCQkJ CSAgY3VycmVudFBvcyk7Ci0JCQkvKiBFeGl0IHNlY29uZCAqLwotCQkJbmZhX3JvdXRlX3RvX2Vs ZW0od2luc3RhdGUsIGN0eCwgZXhpdFN0YXRlLCBuZXh0RWxlbSwKLQkJCQkJCQkgIGN1cnJlbnRQ b3MpOwotCQl9Ci0JfQorCWlmIChpc291dCkKKwkJKmlzb3V0ID0gdHJ1ZTsKKwkqaXNudWxsID0g dHJ1ZTsKKwlyZXR1cm4gKERhdHVtKSAwOwogfQogCiAvKgotICogbmZhX2FkdmFuY2VfdmFyCisg KiBXaW5HZXRTbG90SW5GcmFtZQorICogc2xvdDogVHVwbGVUYWJsZVNsb3QgdG8gc3RvcmUgdGhl IHJlc3VsdAorICogcmVscG9zOiBzaWduZWQgcm93Y291bnQgb2Zmc2V0IGZyb20gdGhlIHNlZWsg cG9zaXRpb24KKyAqIHNlZWt0eXBlOiBXSU5ET1dfU0VFS19IRUFEIG9yIFdJTkRPV19TRUVLX1RB SUwKKyAqIHNldF9tYXJrOiBJZiB0aGUgcm93IGlzIGZvdW5kL2luIGZyYW1lIGFuZCBzZXRfbWFy ayBpcyB0cnVlLCB0aGUgbWFyayBpcworICoJCW1vdmVkIHRvIHRoZSByb3cgYXMgYSBzaWRlLWVm ZmVjdC4KKyAqIGlzbnVsbDogb3V0cHV0IGFyZ3VtZW50LCByZWNlaXZlcyBpc251bGwgc3RhdHVz IG9mIHJlc3VsdAorICogaXNvdXQ6IG91dHB1dCBhcmd1bWVudCwgc2V0IHRvIGluZGljYXRlIHdo ZXRoZXIgdGFyZ2V0IHJvdyBwb3NpdGlvbgorICoJCWlzIG91dCBvZiBmcmFtZSAoY2FuIHBhc3Mg TlVMTCBpZiBjYWxsZXIgZG9lc24ndCBjYXJlIGFib3V0IHRoaXMpCiAgKgotICogSGFuZGxlIFZB UiBlbGVtZW50OiBsb29wL2V4aXQgdHJhbnNpdGlvbnMuCi0gKiBBZnRlciBtYXRjaCBwaGFzZSwg YWxsIFZBUiBzdGF0ZXMgaGF2ZSBtYXRjaGVkIC0gZGVjaWRlIG5leHQgYWN0aW9uLgorICogUmV0 dXJucyAwIGlmIHdlIHN1Y2Nlc3NmdWxsdCBnb3QgdGhlIHNsb3QuIGZhbHNlIGlmIG91dCBvZiBm cmFtZS4KKyAqIChhbHNvIGlzb3V0IGlzIHNldCkKICAqLwotc3RhdGljIHZvaWQKLW5mYV9hZHZh bmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKLQkJ CQlSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAotCQkJCWludDY0 IGN1cnJlbnRQb3MpCitzdGF0aWMgaW50CitXaW5HZXRTbG90SW5GcmFtZShXaW5kb3dPYmplY3Qg d2lub2JqLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKKwkJCQkgIGludCByZWxwb3MsIGludCBzZWVr dHlwZSwgYm9vbCBzZXRfbWFyaywKKwkJCQkgIGJvb2wgKmlzbnVsbCwgYm9vbCAqaXNvdXQpCiB7 Ci0JUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47Ci0JUlBSUGF0dGVy bkVsZW1lbnQgKmVsZW1lbnRzID0gcGF0dGVybi0+ZWxlbWVudHM7Ci0JaW50CQkJZGVwdGggPSBl bGVtLT5kZXB0aDsKLQlpbnQzMgkJY291bnQgPSBzdGF0ZS0+Y291bnRzW2RlcHRoXTsKLQlib29s CQljYW5Mb29wID0gKGVsZW0tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIHx8IGNvdW50IDwgZWxl bS0+bWF4KTsKLQlib29sCQljYW5FeGl0ID0gKGNvdW50ID49IGVsZW0tPm1pbik7CisJV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlOworCWludDY0CQlhYnNfcG9zOworCWludDY0CQltYXJrX3BvczsK KwlpbnQJCQludW1fcmVkdWNlZF9mcmFtZTsKIAotCS8qIEFmdGVyIGEgc3VjY2Vzc2Z1bCBtYXRj aCwgY291bnQgPj0gMSwgc28gYXQgbGVhc3Qgb25lIG11c3QgYmUgdHJ1ZSAqLwotCUFzc2VydChj YW5Mb29wIHx8IGNhbkV4aXQpOworCUFzc2VydChXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9iaikp OworCXdpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKIAotCWlmIChjYW5Mb29wICYmIGNhbkV4 aXQpCisJc3dpdGNoIChzZWVrdHlwZSkKIAl7Ci0JCS8qCi0JCSAqIEJvdGggbG9vcCBhbmQgZXhp dCBwb3NzaWJsZS4gR3JlZWR5OiBsb29wIGZpcnN0IChwcmVmZXIgbG9uZ2VyCi0JCSAqIG1hdGNo KS4gUmVsdWN0YW50OiBleGl0IGZpcnN0IChwcmVmZXIgc2hvcnRlciBtYXRjaCkuCi0JCSAqLwot CQlSUFJORkFTdGF0ZSAqY2xvbmVTdGF0ZTsKLQkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVt OwotCQlib29sCQlyZWx1Y3RhbnQgPSBSUFJFbGVtSXNSZWx1Y3RhbnQoZWxlbSk7CisJCWNhc2Ug V0lORE9XX1NFRUtfQ1VSUkVOVDoKKwkJCWVsb2coRVJST1IsICJXSU5ET1dfU0VFS19DVVJSRU5U IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFdpbkdldEZ1bmNBcmdJbkZyYW1lIik7CisJCQlhYnNfcG9z ID0gbWFya19wb3MgPSAwOyAvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJCQlicmVhazsKKwkJ Y2FzZSBXSU5ET1dfU0VFS19IRUFEOgorCQkJLyogcmVqZWN0aW5nIHJlbHBvcyA8IDAgaXMgZWFz eSBhbmQgc2ltcGxpZmllcyBjb2RlIGJlbG93ICovCisJCQlpZiAocmVscG9zIDwgMCkKKwkJCQln b3RvIG91dF9vZl9mcmFtZTsKKwkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOworCQkJ YWJzX3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MgKyByZWxwb3M7CisJCQltYXJrX3BvcyA9 IGFic19wb3M7CiAKLQkJLyoKLQkJICogQ2xvbmUgc3RhdGUgZm9yIHRoZSBzZWNvbmQtcHJpb3Jp dHkgcGF0aC4gRm9yIGdyZWVkeSwgY2xvbmUgaXMgdGhlCi0JCSAqIGxvb3Agc3RhdGU7IGZvciBy ZWx1Y3RhbnQsIGNsb25lIGlzIHRoZSBleGl0IHN0YXRlLgotCQkgKi8KLQkJaWYgKHJlbHVjdGFu dCkKLQkJewotCQkJUlBSTkZBU3RhdGUgKnNhdmVkTWF0Y2ggPSBjdHgtPm1hdGNoZWRTdGF0ZTsK KwkJCS8qCisJCQkgKiBBY2NvdW50IGZvciBleGNsdXNpb24gb3B0aW9uIGlmIG9uZSBpcyBhY3Rp dmUsIGJ1dCBhZHZhbmNlIG9ubHkKKwkJCSAqIGFic19wb3Mgbm90IG1hcmtfcG9zLiAgVGhpcyBw cmV2ZW50cyBjaGFuZ2VzIG9mIHRoZSBjdXJyZW50CisJCQkgKiByb3cncyBwZWVyIGdyb3VwIGZy b20gcmVzdWx0aW5nIGluIHRyeWluZyB0byBmZXRjaCBhIHJvdyBiZWZvcmUKKwkJCSAqIHNvbWUg cHJldmlvdXMgbWFyayBwb3NpdGlvbi4KKwkJCSAqCisJCQkgKiBOb3RlIHRoYXQgaW4gc29tZSBj b3JuZXIgY2FzZXMgc3VjaCBhcyBjdXJyZW50IHJvdyBiZWluZworCQkJICogb3V0c2lkZSBmcmFt ZSwgdGhlc2UgY2FsY3VsYXRpb25zIGFyZSB0aGVvcmV0aWNhbGx5IHRvbyBzaW1wbGUsCisJCQkg KiBidXQgaXQgZG9lc24ndCBtYXR0ZXIgYmVjYXVzZSB3ZSdsbCBlbmQgdXAgZGVjaWRpbmcgdGhl IHJvdyBpcworCQkJICogb3V0IG9mIGZyYW1lLiAgV2UgZG8gbm90IGF0dGVtcHQgdG8gYXZvaWQg ZmV0Y2hpbmcgcm93cyBwYXN0CisJCQkgKiBlbmQgb2YgZnJhbWU7IHRoYXQgd291bGQgaGFwcGVu IGluIHNvbWUgY2FzZXMgYW55d2F5LgorCQkJICovCisJCQlzd2l0Y2ggKHdpbnN0YXRlLT5mcmFt ZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVVNJT04pCisJCQl7CisJCQkJY2FzZSAwOgorCQkJ CQkvKiBubyBhZGp1c3RtZW50IG5lZWRlZCAqLworCQkJCQlicmVhazsKKwkJCQljYXNlIEZSQU1F T1BUSU9OX0VYQ0xVREVfQ1VSUkVOVF9ST1c6CisJCQkJCWlmIChhYnNfcG9zID49IHdpbnN0YXRl LT5jdXJyZW50cG9zICYmCisJCQkJCQl3aW5zdGF0ZS0+Y3VycmVudHBvcyA+PSB3aW5zdGF0ZS0+ ZnJhbWVoZWFkcG9zKQorCQkJCQkJYWJzX3BvcysrOworCQkJCQlicmVhazsKKwkJCQljYXNlIEZS QU1FT1BUSU9OX0VYQ0xVREVfR1JPVVA6CisJCQkJCXVwZGF0ZV9ncm91cHRhaWxwb3Mod2luc3Rh dGUpOworCQkJCQlpZiAoYWJzX3BvcyA+PSB3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9zICYmCisJCQkJ CQl3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zID4gd2luc3RhdGUtPmZyYW1laGVhZHBvcykKKwkJCQkJ eworCQkJCQkJaW50NjQJCW92ZXJsYXBzdGFydCA9IE1heCh3aW5zdGF0ZS0+Z3JvdXBoZWFkcG9z LAorCQkJCQkJCQkJCQkJCSAgIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwogCi0JCQkvKiBDbG9u ZSBmb3IgZXhpdCwgb3JpZ2luYWwgc3RheXMgZm9yIGxvb3AgKi8KLQkJCWNsb25lU3RhdGUgPSBu ZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBlbGVtLT5uZXh0LAotCQkJCQkJCQkJCSAgc3RhdGUt PmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7Ci0JCQljbG9uZVN0YXRlLT5jb3VudHNbZGVw dGhdID0gMDsKLQkJCW5leHRFbGVtID0gJmVsZW1lbnRzW2Nsb25lU3RhdGUtPmVsZW1JZHhdOwor CQkJCQkJYWJzX3BvcyArPSB3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zIC0gb3ZlcmxhcHN0YXJ0Owor CQkJCQl9CisJCQkJCWJyZWFrOworCQkJCWNhc2UgRlJBTUVPUFRJT05fRVhDTFVERV9USUVTOgor CQkJCQl1cGRhdGVfZ3JvdXB0YWlscG9zKHdpbnN0YXRlKTsKKwkJCQkJaWYgKGFic19wb3MgPj0g d2luc3RhdGUtPmdyb3VwaGVhZHBvcyAmJgorCQkJCQkJd2luc3RhdGUtPmdyb3VwdGFpbHBvcyA+ IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpCisJCQkJCXsKKwkJCQkJCWludDY0CQlvdmVybGFwc3Rh cnQgPSBNYXgod2luc3RhdGUtPmdyb3VwaGVhZHBvcywKKwkJCQkJCQkJCQkJCQkgICB3aW5zdGF0 ZS0+ZnJhbWVoZWFkcG9zKTsKIAotCQkJLyogV2hlbiBleGl0aW5nIGRpcmVjdGx5IHRvIGFuIG91 dGVyIEVORCwgaW5jcmVtZW50IGl0cyBjb3VudCAqLwotCQkJaWYgKFJQUkVsZW1Jc0VuZChuZXh0 RWxlbSkpCi0JCQl7Ci0JCQkJaWYgKGNsb25lU3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhd IDwgUlBSX0NPVU5UX01BWCkKLQkJCQkJY2xvbmVTdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0 aF0rKzsKKwkJCQkJCWlmIChhYnNfcG9zID09IG92ZXJsYXBzdGFydCkKKwkJCQkJCQlhYnNfcG9z ID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJCQkJCQllbHNlCisJCQkJCQkJYWJzX3BvcyArPSB3 aW5zdGF0ZS0+Z3JvdXB0YWlscG9zIC0gb3ZlcmxhcHN0YXJ0IC0gMTsKKwkJCQkJfQorCQkJCQli cmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGZyYW1l IG9wdGlvbiBzdGF0ZTogMHgleCIsCisJCQkJCQkgd2luc3RhdGUtPmZyYW1lT3B0aW9ucyk7CisJ CQkJCWJyZWFrOwogCQkJfQotCi0JCQkvKiBFeGl0IGZpcnN0IChwcmVmZXJyZWQgZm9yIHJlbHVj dGFudCkgKi8KLQkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIGNsb25lU3RhdGUs IG5leHRFbGVtLAotCQkJCQkJCSAgY3VycmVudFBvcyk7CisJCQludW1fcmVkdWNlZF9mcmFtZSA9 IHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKHdpbm9iaiwKKwkJCQkJCQkJCQkJCQkJd2luc3RhdGUt PmZyYW1laGVhZHBvcyk7CisJCQlpZiAobnVtX3JlZHVjZWRfZnJhbWUgPCAwKQorCQkJCWdvdG8g b3V0X29mX2ZyYW1lOworCQkJZWxzZSBpZiAobnVtX3JlZHVjZWRfZnJhbWUgPiAwKQorCQkJCWlm IChyZWxwb3MgPj0gbnVtX3JlZHVjZWRfZnJhbWUpCisJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOwor CQkJYnJlYWs7CisJCWNhc2UgV0lORE9XX1NFRUtfVEFJTDoKKwkJCS8qIHJlamVjdGluZyByZWxw b3MgPiAwIGlzIGVhc3kgYW5kIHNpbXBsaWZpZXMgY29kZSBiZWxvdyAqLworCQkJaWYgKHJlbHBv cyA+IDApCisJCQkJZ290byBvdXRfb2ZfZnJhbWU7CiAKIAkJCS8qCi0JCQkgKiBJZiBleGl0IHBh dGggcmVhY2hlZCBGSU4sIHRoZSBzaG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4gU2tpcAotCQkJICog bG9vcCBzdGF0ZSB0byBwcmV2ZW50IGxvbmdlciBtYXRjaGVzIGZyb20gcmVwbGFjaW5nIGl0Lgor CQkJICogUlBSIGNhcmVzIGFib3V0IGZyYW1lIGhlYWQgcG9zLiBOZWVkIHRvIGNhbGwKKwkJCSAq IHVwZGF0ZV9mcmFtZWhlYWRwb3MKIAkJCSAqLwotCQkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRlICE9 IHNhdmVkTWF0Y2gpCi0JCQl7Ci0JCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsK LQkJCQlyZXR1cm47Ci0JCQl9Ci0KLQkJCS8qIExvb3Agc2Vjb25kICovCi0JCQluZmFfYWRkX3N0 YXRlX3VuaXF1ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSk7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkv KiBDbG9uZSBmb3IgbG9vcCwgb3JpZ2luYWwgdXNlZCBmb3IgZXhpdCAqLwotCQkJY2xvbmVTdGF0 ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIHN0YXRlLT5lbGVtSWR4LAotCQkJCQkJCQkJ CSAgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7Ci0KLQkJCS8qIExvb3AgZmly c3QgKHByZWZlcnJlZCBmb3IgZ3JlZWR5KSAqLwotCQkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2lu c3RhdGUsIGN0eCwgY2xvbmVTdGF0ZSk7CisJCQl1cGRhdGVfZnJhbWVoZWFkcG9zKHdpbnN0YXRl KTsKIAotCQkJLyogRXhpdCBzZWNvbmQgKi8KLQkJCXN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsK LQkJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKLQkJCW5leHRFbGVtID0gJmVsZW1lbnRz W3N0YXRlLT5lbGVtSWR4XTsKKwkJCXVwZGF0ZV9mcmFtZXRhaWxwb3Mod2luc3RhdGUpOworCQkJ YWJzX3BvcyA9IHdpbnN0YXRlLT5mcmFtZXRhaWxwb3MgLSAxICsgcmVscG9zOwogCiAJCQkvKgot CQkJICogV2hlbiBleGl0aW5nIGRpcmVjdGx5IHRvIGFuIG91dGVyIEVORCwgaW5jcmVtZW50IGl0 cyBpdGVyYXRpb24KLQkJCSAqIGNvdW50LiAgU2ltcGxlIFZBUnMgKG1pbj1tYXg9MSkgaGFuZGxl IHRoaXMgdmlhIGlubGluZSBhZHZhbmNlCi0JCQkgKiBpbiBuZmFfbWF0Y2gsIGJ1dCBxdWFudGlm aWVkIFZBUnMgYnlwYXNzIHRoYXQgcGF0aC4KKwkJCSAqIEFjY291bnQgZm9yIGV4Y2x1c2lvbiBv cHRpb24gaWYgb25lIGlzIGFjdGl2ZS4gIElmIHRoZXJlIGlzIG5vCisJCQkgKiBleGNsdXNpb24s IHdlIGNhbiBzYWZlbHkgc2V0IHRoZSBtYXJrIGF0IHRoZSBhY2Nlc3NlZCByb3cuICBCdXQKKwkJ CSAqIGlmIHRoZXJlIGlzLCB3ZSBjYW4gb25seSBtYXJrIHRoZSBmcmFtZSBzdGFydCwgYmVjYXVz ZSB3ZSBjYW4ndAorCQkJICogYmUgc3VyZSBob3cgZmFyIGJhY2sgaW4gdGhlIGZyYW1lIHRoZSBl eGNsdXNpb24gbWlnaHQgY2F1c2UgdXMKKwkJCSAqIHRvIGZldGNoIGluIGZ1dHVyZS4gIEZ1cnRo ZXJtb3JlLCB3ZSBoYXZlIHRvIGFjdHVhbGx5IGNoZWNrCisJCQkgKiBhZ2FpbnN0IGZyYW1laGVh ZHBvcyBoZXJlLCBzaW5jZSBpdCdzIHVuc2FmZSB0byB0cnkgdG8gZmV0Y2ggYQorCQkJICogcm93 IGJlZm9yZSBmcmFtZSBzdGFydCBpZiB0aGUgbWFyayBtaWdodCBiZSB0aGVyZSBhbHJlYWR5Lgog CQkJICovCi0JCQlpZiAoUlBSRWxlbUlzRW5kKG5leHRFbGVtKSkKKwkJCXN3aXRjaCAod2luc3Rh dGUtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VYQ0xVU0lPTikKIAkJCXsKLQkJCQlpZiAo c3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdIDwgUlBSX0NPVU5UX01BWCkKLQkJCQkJc3Rh dGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7Ci0JCQl9Ci0KLQkJCW5mYV9yb3V0ZV90b19l bGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBuZXh0RWxlbSwKLQkJCQkJCQkgIGN1cnJlbnRQb3Mp OwotCQl9Ci0JfQotCWVsc2UgaWYgKGNhbkxvb3ApCi0JewotCQkvKiBMb29wIG9ubHk6IGtlZXAg c3RhdGUgYXMtaXMgKi8KLQkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgc3Rh dGUpOwotCX0KLQllbHNlIGlmIChjYW5FeGl0KQotCXsKLQkJLyogRXhpdCBvbmx5OiBhZHZhbmNl IHRvIG5leHQgZWxlbWVudCAqLwotCQlSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW07Ci0KLQkJ c3RhdGUtPmNvdW50c1tkZXB0aF0gPSAwOwotCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7 Ci0JCW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKLQotCQkvKiBTZWUgY29t bWVudCBhYm92ZTogaW5jcmVtZW50IG91dGVyIEVORCBjb3VudCBmb3IgcXVhbnRpZmllZCBWQVJz ICovCi0JCWlmIChSUFJFbGVtSXNFbmQobmV4dEVsZW0pKQotCQl7Ci0JCQlpZiAoc3RhdGUtPmNv dW50c1tuZXh0RWxlbS0+ZGVwdGhdIDwgUlBSX0NPVU5UX01BWCkKLQkJCQlzdGF0ZS0+Y291bnRz W25leHRFbGVtLT5kZXB0aF0rKzsKLQkJfQotCi0JCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRl LCBjdHgsIHN0YXRlLCBuZXh0RWxlbSwgY3VycmVudFBvcyk7Ci0JfQotfQotCi0vKgotICogbmZh X2FkdmFuY2Vfc3RhdGUKLSAqCi0gKiBSZWN1cnNpdmVseSBwcm9jZXNzIGEgc2luZ2xlIHN0YXRl IHRocm91Z2ggZXBzaWxvbiB0cmFuc2l0aW9ucy4KLSAqIERGUyB0cmF2ZXJzYWwgZW5zdXJlcyBz dGF0ZXMgYXJlIGFkZGVkIHRvIGN0eC0+c3RhdGVzIGluIGxleGljYWwgb3JkZXIuCi0gKi8KLXN0 YXRpYyB2b2lkCi1uZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQUNvbnRleHQgKmN0eCwKLQkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgaW50NjQgY3VycmVu dFBvcykKLXsKLQlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKLQlS UFJQYXR0ZXJuRWxlbWVudCAqZWxlbTsKLQotCUFzc2VydChzdGF0ZS0+ZWxlbUlkeCA+PSAwICYm IHN0YXRlLT5lbGVtSWR4IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpOworCQkJCWNhc2UgMDoKKwkJ CQkJLyogbm8gYWRqdXN0bWVudCBuZWVkZWQgKi8KKwkJCQkJbWFya19wb3MgPSBhYnNfcG9zOwor CQkJCQlicmVhazsKKwkJCQljYXNlIEZSQU1FT1BUSU9OX0VYQ0xVREVfQ1VSUkVOVF9ST1c6CisJ CQkJCWlmIChhYnNfcG9zIDw9IHdpbnN0YXRlLT5jdXJyZW50cG9zICYmCisJCQkJCQl3aW5zdGF0 ZS0+Y3VycmVudHBvcyA8IHdpbnN0YXRlLT5mcmFtZXRhaWxwb3MpCisJCQkJCQlhYnNfcG9zLS07 CisJCQkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOworCQkJCQlpZiAoYWJzX3BvcyA8 IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpCisJCQkJCQlnb3RvIG91dF9vZl9mcmFtZTsKKwkJCQkJ bWFya19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zOworCQkJCQlicmVhazsKKwkJCQljYXNl IEZSQU1FT1BUSU9OX0VYQ0xVREVfR1JPVVA6CisJCQkJCXVwZGF0ZV9ncm91cHRhaWxwb3Mod2lu c3RhdGUpOworCQkJCQlpZiAoYWJzX3BvcyA8IHdpbnN0YXRlLT5ncm91cHRhaWxwb3MgJiYKKwkJ CQkJCXdpbnN0YXRlLT5ncm91cGhlYWRwb3MgPCB3aW5zdGF0ZS0+ZnJhbWV0YWlscG9zKQorCQkJ CQl7CisJCQkJCQlpbnQ2NAkJb3ZlcmxhcGVuZCA9IE1pbih3aW5zdGF0ZS0+Z3JvdXB0YWlscG9z LAorCQkJCQkJCQkJCQkJCSB3aW5zdGF0ZS0+ZnJhbWV0YWlscG9zKTsKIAotCS8qIEN5Y2xlIGRl dGVjdGlvbjogaWYgdGhpcyBlbGVtSWR4IHdhcyBhbHJlYWR5IHZpc2l0ZWQgaW4gdGhpcyBERlMs IGJhaWwgKi8KLQlpZiAod2luc3RhdGUtPm5mYVZpc2l0ZWRFbGVtc1tXT1JETlVNKHN0YXRlLT5l bGVtSWR4KV0gJgotCQkoKGJpdG1hcHdvcmQpIDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4KSkp Ci0JewotCQluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgc3RhdGUpOwotCQlyZXR1cm47Ci0JfQot CXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXNbV09SRE5VTShzdGF0ZS0+ZWxlbUlkeCldIHw9Ci0J CSgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0oc3RhdGUtPmVsZW1JZHgpKTsKKwkJCQkJCWFic19w b3MgLT0gb3ZlcmxhcGVuZCAtIHdpbnN0YXRlLT5ncm91cGhlYWRwb3M7CisJCQkJCX0KKwkJCQkJ dXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5zdGF0ZSk7CisJCQkJCWlmIChhYnNfcG9zIDwgd2luc3Rh dGUtPmZyYW1laGVhZHBvcykKKwkJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQkJCQltYXJrX3Bv cyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3M7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgRlJBTUVP UFRJT05fRVhDTFVERV9USUVTOgorCQkJCQl1cGRhdGVfZ3JvdXB0YWlscG9zKHdpbnN0YXRlKTsK KwkJCQkJaWYgKGFic19wb3MgPCB3aW5zdGF0ZS0+Z3JvdXB0YWlscG9zICYmCisJCQkJCQl3aW5z dGF0ZS0+Z3JvdXBoZWFkcG9zIDwgd2luc3RhdGUtPmZyYW1ldGFpbHBvcykKKwkJCQkJeworCQkJ CQkJaW50NjQJCW92ZXJsYXBlbmQgPSBNaW4od2luc3RhdGUtPmdyb3VwdGFpbHBvcywKKwkJCQkJ CQkJCQkJCQkgd2luc3RhdGUtPmZyYW1ldGFpbHBvcyk7CiAKLQllbGVtID0gJnBhdHRlcm4tPmVs ZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKKwkJCQkJCWlmIChhYnNfcG9zID09IG92ZXJsYXBlbmQg LSAxKQorCQkJCQkJCWFic19wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsKKwkJCQkJCWVsc2UK KwkJCQkJCQlhYnNfcG9zIC09IG92ZXJsYXBlbmQgLSAxIC0gd2luc3RhdGUtPmdyb3VwaGVhZHBv czsKKwkJCQkJfQorCQkJCQl1cGRhdGVfZnJhbWVoZWFkcG9zKHdpbnN0YXRlKTsKKwkJCQkJaWYg KGFic19wb3MgPCB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zKQorCQkJCQkJZ290byBvdXRfb2ZfZnJh bWU7CisJCQkJCW1hcmtfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvczsKKwkJCQkJYnJlYWs7 CisJCQkJZGVmYXVsdDoKKwkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBmcmFtZSBvcHRp b24gc3RhdGU6IDB4JXgiLAorCQkJCQkJIHdpbnN0YXRlLT5mcmFtZU9wdGlvbnMpOworCQkJCQlt YXJrX3BvcyA9IDA7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCQkJYnJlYWs7CisJCQl9 CiAKLQlzd2l0Y2ggKGVsZW0tPnZhcklkKQotCXsKLQkJY2FzZSBSUFJfVkFSSURfRklOOgotCQkJ LyogRklOOiByZWNvcmQgbWF0Y2ggKi8KLQkJCW5mYV9hZGRfbWF0Y2hlZF9zdGF0ZSh3aW5zdGF0 ZSwgY3R4LCBzdGF0ZSwgY3VycmVudFBvcyk7CisJCQludW1fcmVkdWNlZF9mcmFtZSA9IHJvd19p c19pbl9yZWR1Y2VkX2ZyYW1lKHdpbm9iaiwKKwkJCQkJCQkJCQkJCQkJd2luc3RhdGUtPmZyYW1l aGVhZHBvcyArIHJlbHBvcyk7CisJCQlpZiAobnVtX3JlZHVjZWRfZnJhbWUgPCAwKQorCQkJCWdv dG8gb3V0X29mX2ZyYW1lOworCQkJZWxzZSBpZiAobnVtX3JlZHVjZWRfZnJhbWUgPiAwKQorCQkJ CWFic19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zICsgcmVscG9zICsKKwkJCQkJbnVtX3Jl ZHVjZWRfZnJhbWUgLSAxOwogCQkJYnJlYWs7Ci0KLQkJY2FzZSBSUFJfVkFSSURfQUxUOgotCQkJ bmZhX2FkdmFuY2VfYWx0KHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBlbGVtLCBjdXJyZW50UG9zKTsK KwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgd2luZG93IHNlZWsgdHlw ZTogJWQiLCBzZWVrdHlwZSk7CisJCQlhYnNfcG9zID0gbWFya19wb3MgPSAwOyAvKiBrZWVwIGNv bXBpbGVyIHF1aWV0ICovCiAJCQlicmVhazsKKwl9CiAKLQkJY2FzZSBSUFJfVkFSSURfQkVHSU46 Ci0JCQluZmFfYWR2YW5jZV9iZWdpbih3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgZWxlbSwgY3VycmVu dFBvcyk7Ci0JCQlicmVhazsKKwlpZiAoIXdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBhYnNf cG9zLCBzbG90KSkKKwkJZ290byBvdXRfb2ZfZnJhbWU7CiAKLQkJY2FzZSBSUFJfVkFSSURfRU5E OgotCQkJbmZhX2FkdmFuY2VfZW5kKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBlbGVtLCBjdXJyZW50 UG9zKTsKLQkJCWJyZWFrOworCS8qIFRoZSBjb2RlIGFib3ZlIGRvZXMgbm90IGRldGVjdCBhbGwg b3V0LW9mLWZyYW1lIGNhc2VzLCBzbyBjaGVjayAqLworCWlmIChyb3dfaXNfaW5fZnJhbWUod2lu b2JqLCBhYnNfcG9zLCBzbG90LCBmYWxzZSkgPD0gMCkKKwkJZ290byBvdXRfb2ZfZnJhbWU7CiAK LQkJZGVmYXVsdDoKLQkJCS8qIFZBUiBlbGVtZW50ICovCi0JCQluZmFfYWR2YW5jZV92YXIod2lu c3RhdGUsIGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MpOwotCQkJYnJlYWs7Ci0JfQorCWlm IChpc291dCkKKwkJKmlzb3V0ID0gZmFsc2U7CisJaWYgKHNldF9tYXJrKQorCQlXaW5TZXRNYXJr UG9zaXRpb24od2lub2JqLCBtYXJrX3Bvcyk7CisJcmV0dXJuIDA7CisKK291dF9vZl9mcmFtZToK KwlpZiAoaXNvdXQpCisJCSppc291dCA9IHRydWU7CisJKmlzbnVsbCA9IHRydWU7CisJcmV0dXJu IC0xOwogfQogCiAvKgotICogbmZhX2FkdmFuY2UKKyAqIFdpbkdldEZ1bmNBcmdDdXJyZW50Cisg KgkJRXZhbHVhdGUgYSB3aW5kb3cgZnVuY3Rpb24ncyBhcmd1bWVudCBleHByZXNzaW9uIG9uIHRo ZSBjdXJyZW50IHJvdy4KICAqCi0gKiBBZHZhbmNlIHBoYXNlIChkaXZlcmdlbmNlKTogdHJhbnNp dGlvbiBmcm9tIGFsbCBzdXJ2aXZpbmcgc3RhdGVzLgotICogQ2FsbGVkIGFmdGVyIG1hdGNoIHBo YXNlIHdpdGggbWF0Y2hlZCBWQVIgc3RhdGVzLCBvciBhdCBjb250ZXh0IGNyZWF0aW9uCi0gKiBm b3IgaW5pdGlhbCBlcHNpbG9uIGV4cGFuc2lvbiAod2l0aCBjdXJyZW50UG9zID0gc3RhcnRQb3Mg LSAxKS4KKyAqIGFyZ25vOiBhcmd1bWVudCBudW1iZXIgdG8gZXZhbHVhdGUgKGNvdW50ZWQgZnJv bSAwKQorICogaXNudWxsOiBvdXRwdXQgYXJndW1lbnQsIHJlY2VpdmVzIGlzbnVsbCBzdGF0dXMg b2YgcmVzdWx0CiAgKgotICogUHJvY2Vzc2VzIHN0YXRlcyBpbiBvcmRlciwgdXNpbmcgcmVjdXJz aXZlIERGUyB0byBtYWludGFpbiBsZXhpY2FsIG9yZGVyLgorICogTm90ZTogdGhpcyBpc24ndCBx dWl0ZSBlcXVpdmFsZW50IHRvIFdpbkdldEZ1bmNBcmdJblBhcnRpdGlvbiBvcgorICogV2luR2V0 RnVuY0FyZ0luRnJhbWUgdGFyZ2V0aW5nIHRoZSBjdXJyZW50IHJvdywgYmVjYXVzZSBpdCB3aWxs IHN1Y2NlZWQKKyAqIGV2ZW4gaWYgdGhlIFdpbmRvd09iamVjdCdzIG1hcmsgaGFzIGJlZW4gc2V0 IGJleW9uZCB0aGUgY3VycmVudCByb3cuCisgKiBUaGlzIHNob3VsZCBnZW5lcmFsbHkgYmUgdXNl ZCBmb3IgIm9yZGluYXJ5IiBhcmd1bWVudHMgb2YgYSB3aW5kb3cKKyAqIGZ1bmN0aW9uLCBzdWNo IGFzIHRoZSBvZmZzZXQgYXJndW1lbnQgb2YgbGVhZCgpIG9yIGxhZygpLgogICovCi1zdGF0aWMg dm9pZAotbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0 ICpjdHgsIGludDY0IGN1cnJlbnRQb3MpCitEYXR1bQorV2luR2V0RnVuY0FyZ0N1cnJlbnQoV2lu ZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLCBib29sICppc251bGwpCiB7Ci0JUlBSTkZBU3Rh dGUgKnN0YXRlcyA9IGN0eC0+c3RhdGVzOwotCVJQUk5GQVN0YXRlICpzdGF0ZTsKLQotCWN0eC0+ c3RhdGVzID0gTlVMTDsJCQkvKiBXaWxsIHJlYnVpbGQgKi8KLQotCS8qIFByb2Nlc3MgZWFjaCBz dGF0ZSBpbiBsZXhpY2FsIG9yZGVyIChERlMgb3JkZXIgZnJvbSBwcmV2aW91cyBhZHZhbmNlKSAq LwotCXdoaWxlIChzdGF0ZXMgIT0gTlVMTCkKLQl7Ci0JCVJQUk5GQVN0YXRlICpzYXZlZE1hdGNo ZWRTdGF0ZSA9IGN0eC0+bWF0Y2hlZFN0YXRlOwotCi0JCS8qIENsZWFyIHZpc2l0ZWQgYml0bWFw IGJlZm9yZSBlYWNoIHN0YXRlJ3MgREZTIGV4cGFuc2lvbiAqLwotCQltZW1zZXQod2luc3RhdGUt Pm5mYVZpc2l0ZWRFbGVtcywgMCwKLQkJCSAgIHNpemVvZihiaXRtYXB3b3JkKSAqIHdpbnN0YXRl LT5uZmFWaXNpdGVkTldvcmRzKTsKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisJRXhwckNv bnRleHQgKmVjb250ZXh0OwogCi0JCXN0YXRlID0gc3RhdGVzOwotCQlzdGF0ZXMgPSBzdGF0ZXMt Pm5leHQ7Ci0JCXN0YXRlLT5uZXh0ID0gTlVMTDsKKwlBc3NlcnQoV2luZG93T2JqZWN0SXNWYWxp ZCh3aW5vYmopKTsKKwl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CiAKLQkJbmZhX2FkdmFu Y2Vfc3RhdGUod2luc3RhdGUsIGN0eCwgc3RhdGUsIGN1cnJlbnRQb3MpOworCWVjb250ZXh0ID0g d2luc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OwogCi0JCS8qCi0JCSAqIEVhcmx5IHRlcm1p bmF0aW9uOiBpZiBhIEZJTiB3YXMgbmV3bHkgcmVhY2hlZCBpbiB0aGlzIGFkdmFuY2UsCi0JCSAq IHJlbWFpbmluZyBvbGQgc3RhdGVzIGhhdmUgd29yc2UgbGV4aWNhbCBvcmRlciBhbmQgY2FuIGJl IHBydW5lZC4KLQkJICogT25seSBjaGVjayBmb3IgbmV3IEZJTiBhcnJpdmFscyAobm90IG9uZXMg ZnJvbSBwcmV2aW91cyByb3dzKS4KLQkJICovCi0JCWlmIChjdHgtPm1hdGNoZWRTdGF0ZSAhPSBz YXZlZE1hdGNoZWRTdGF0ZSAmJiBzdGF0ZXMgIT0gTlVMTCkKLQkJewotCQkJbmZhX3N0YXRlX2Zy ZWVfbGlzdCh3aW5zdGF0ZSwgc3RhdGVzKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQorCWVjb250ZXh0 LT5lY3h0X291dGVydHVwbGUgPSB3aW5zdGF0ZS0+c3Muc3NfU2NhblR1cGxlU2xvdDsKKwlyZXR1 cm4gRXhlY0V2YWxFeHByKChFeHByU3RhdGUgKikgbGlzdF9udGgod2lub2JqLT5hcmdzdGF0ZXMs IGFyZ25vKSwKKwkJCQkJCWVjb250ZXh0LCBpc251bGwpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9y cHIuYwppbmRleCAwMDljMGY1MDE5ZC4uYjk1ODI4MGU5NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3Jwci5jCkBAIC00LDcgKzQsNyBAQAogICoJICBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiBwYXR0 ZXJuIGNvbXBpbGF0aW9uIGZvciBwbGFubmVyCiAgKgogICogVGhpcyBmaWxlIGNvbnRhaW5zIGZ1 bmN0aW9ucyBmb3Igb3B0aW1pemluZyBSUFIgcGF0dGVybiBBU1QgYW5kCi0gKiBjb21waWxpbmcg aXQgdG8gYnl0ZWNvZGUgZm9yIGV4ZWN1dGlvbiBieSBXaW5kb3dBZ2cuCisgKiBjb21waWxpbmcg aXQgdG8gYSBmbGF0IGVsZW1lbnQgYXJyYXkgZm9yIE5GQSBleGVjdXRpb24gYnkgV2luZG93QWdn LgogICoKICAqIEtleSBjb21wb25lbnRzOgogICogICAxLiBQYXR0ZXJuIE9wdGltaXphdGlvbjog U2ltcGxpZmllcyBwYXR0ZXJucyBiZWZvcmUgY29tcGlsYXRpb24KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNSUFIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNSUFIu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2IyYjBmZWJiNzYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUlBSLmgKQEAgLTAsMCAr MSw0MCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZXhlY1JQUi5oCisgKgkgIHByb3Rv dHlwZXMgZm9yIGV4ZWNSUFIuYyAoTkZBLWJhc2VkIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIGVu Z2luZSkKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNy Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNSUFIuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisjaWZuZGVmIEVYRUNSUFJfSAorI2RlZmluZSBFWEVDUlBSX0gKKworI2luY2x1ZGUgIm5vZGVz L2V4ZWNub2Rlcy5oIgorI2luY2x1ZGUgIndpbmRvd2FwaS5oIgorCisvKiBORkEgY29udGV4dCBt YW5hZ2VtZW50ICovCitleHRlcm4gUlBSTkZBQ29udGV4dCAqRXhlY1JQUlN0YXJ0Q29udGV4dChX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsCisJCQkJCQkJCQkJICBpbnQ2NCBzdGFydFBvcyk7Citl eHRlcm4gUlBSTkZBQ29udGV4dCAqRXhlY1JQUkdldEhlYWRDb250ZXh0KFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwKKwkJCQkJCQkJCQkJaW50NjQgcG9zKTsKK2V4dGVybiB2b2lkIEV4ZWNSUFJG cmVlQ29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCk7 CisKKy8qIE5GQSBwcm9jZXNzaW5nICovCitleHRlcm4gdm9pZCBFeGVjUlBSUHJvY2Vzc1JvdyhX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQb3MsCisJCQkJCQkJICBib29s IGhhc0xpbWl0ZWRGcmFtZSwgaW50NjQgZnJhbWVPZmZzZXQpOworZXh0ZXJuIHZvaWQgRXhlY1JQ UkNsZWFudXBEZWFkQ29udGV4dHMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLAorCQkJCQkJCQkJ ICAgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCk7CitleHRlcm4gdm9pZCBFeGVjUlBSRmluYWxp emVBbGxDb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGxhc3RQb3MpOwor CisvKiBORkEgc3RhdGlzdGljcyAqLworZXh0ZXJuIHZvaWQgRXhlY1JQUlJlY29yZENvbnRleHRT dWNjZXNzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKKwkJCQkJCQkJCQlpbnQ2NCBtYXRjaExl bik7CitleHRlcm4gdm9pZCBFeGVjUlBSUmVjb3JkQ29udGV4dEZhaWx1cmUoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLAorCQkJCQkJCQkJCWludDY0IGZhaWxlZExlbik7CisKKyNlbmRpZgkJCQkJ CQkvKiBFWEVDUlBSX0ggKi8KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000921dae064c840db1--