Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmGu9-006zwb-GI for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Mar 2024 17:36:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rmGu7-004bhJ-Rt for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Mar 2024 17:36:08 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rlbid-000QJZ-9d for pgsql-hackers@lists.postgresql.org; Sat, 16 Mar 2024 21:37:32 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rlbiV-004slE-3G for pgsql-hackers@lists.postgresql.org; Sat, 16 Mar 2024 21:37:30 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-29dd91f3aaeso1987085a91.3 for ; Sat, 16 Mar 2024 14:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1710625043; x=1711229843; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=z07bTczInTCfURBHucQiOV8SBN5KiZMf+gVUv4aAxaw=; b=WQnGohQNT1qet+Hprdou1LaqAFb+A8gPSMSOHiSbsNP/5JDLyu9lWzNB04t+s0Ve5+ G/6ZQCPAi6DH3KRMd5M2mx4RWjY8Wd1IW0K8+LB+GUBW0XZxi5I7+xaY2TtD1kvNoAz3 /KN2c+guUcKSJesWnyvIxa0nbi8unP9r5bul6/xKwOKviM/D3/ZG+DnlVHImVxFfz6W2 TZQq0KeFNjJNAzLyfS/NnGaTWTAmRGaIeIHSRo6rVwSGJBq3bS2nTy1WLaUCGb452v3D OtIgkM/zLk7sWD0p8mqUOc1f1iJgmK9RP9/aIrw+vQYoky0L0nyQoiNRrt4/KqzsnMSS MS/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710625043; x=1711229843; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=z07bTczInTCfURBHucQiOV8SBN5KiZMf+gVUv4aAxaw=; b=kUPgkq1OEyLp4bILgcg/xqwaZG97u2KUKSqrX8EXx+uRQMfMRANev42XoxQZeACR/b xYcI8ajVc8B/LQbbT70uWiuv2YyUC4fsXx4eernn9ohlJ/Qbn/Zgt4z7quuw+NMIqT/6 vlyRKL4/uwACYA6sqSGp3h/V5PSNXpRfRou+iZ8dAKSiNfuIdv1ESHtz3f5AyGByD8t/ 0Ou8CyZlq8j6BmDh6tTBgs7ilWiRTPn2rguNGUQxOlJDCrg11lGGUZtBPUO7qQem5lSj M143V/tcfTIe1/m/yILMukwML5IRv9kUnaQoNhbpDjPezd/SYuRlls3sSJT35nLZjEOo p2VQ== X-Forwarded-Encrypted: i=1; AJvYcCWIRXdRB0WyEjlkP610ulR1ozUrabUi0nzp8BRACwdigaayoOxfmyYSyjX4ve9OifpJl/0T6ykekJoz9haf8lIkbC3tTlUQNPIH50Pw1a6lK3XY X-Gm-Message-State: AOJu0Yz8u9E90GQWx6UaU0qX4E5H2+71/o7WHTW5DCzS309YQACiOx9A OCjD/toEbCye6W7xmpMyBwYKNX4csKfRFRHFe3lVi/sMyVEWfZX2ozi6hS4qBpeqhq+hmVEUEN4 7NfDusgnZkOCSzah8cz2QiC0YlzocRPAgmJcgAg== X-Google-Smtp-Source: AGHT+IFJkYgliU4e0tsMSr9pn9sC+ACav2xox/Y2sUdjZ5ccJo8ue07QtCush5KCteWmJtr3BuVnogTmNJ4SLx5x1YE= X-Received: by 2002:a05:6a21:99a8:b0:1a3:4863:f70e with SMTP id ve40-20020a056a2199a800b001a34863f70emr6843238pzb.46.1710625042484; Sat, 16 Mar 2024 14:37:22 -0700 (PDT) MIME-Version: 1.0 References: <596fefdd-6202-4228-b7c6-f240b1cbe06e@eisentraut.org> <35400587-6865-4a2c-9ea4-4761669478ea@eisentraut.org> <71b45adb-b496-4e58-b134-0a091014e63f@illuminatedcomputing.com> <7be8724a-5c25-46d7-8325-1bd8be6fa523@eisentraut.org> <0af6a323-f026-4cd9-adf1-941038cd00de@illuminatedcomputing.com> <88518c81-dcdc-4c5b-9200-146b74a520ab@eisentraut.org> <113f5e25-4455-4bdb-98ec-56275705cc4e@illuminatedcomputing.com> <7bd1c8f9-a91a-41a3-990e-0f796ba692ec@eisentraut.org> <6c3edb2c-bc45-4f19-babd-8f4edf39b384@illuminatedcomputing.com> <41b57948-f4d3-455f-8880-e0ce7e61ffc1@illuminatedcomputing.com> <0d977c63-f4a6-43ba-aad0-35c06c55df11@eisentraut.org> In-Reply-To: From: Paul A Jungwirth Date: Sat, 16 Mar 2024 14:37:10 -0700 Message-ID: Subject: Re: SQL:2011 application time To: jian he Cc: Peter Eisentraut , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000000093170613cdee62" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000093170613cdee62 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, Here is a new patch series addressing the last few feedback emails from Peter & Jian He. It mostly focuses on the FKs patch, trying to get it really ready to commit, but it also finishes restoring all the functionality to the PERIODs patch (that I removed temporarily when we changed PERIODs to GENERATED columns). I still want to restore a few more tests there, but all the functionality is back (e.g. PERIODs with foreign keys and FOR PORTION OF), so it proves the GENERATED idea works in principle. Specific feedback below: On Mon, Mar 11, 2024 at 12:46=E2=80=AFAM Peter Eisentraut wrote: > I had committed v27-0001-Rename-conwithoutoverlaps-to-conperiod.patch a > little while ago. Thanks! It looks like you also fixed the pg_catalog docs which I missed. > Attached is a small patch that changes the PERIOD keyword to unreserved > for this patch. You had said earlier that this didn't work for you. > The attached patch works for me when applied on top of 0003. Applied and included here. > You wrote: > > > I'm not sure how else to do it. The issue is that `range_agg` returns > > a multirange, so the result > > type doesn't match the inputs. But other types will likely have the > > same problem: to combine boxes > > you may need a multibox. The combine mdranges you may need a > > multimdrange. > > Can we just hardcode the use of range_agg for this release? Might be > easier. I don't see all this generality being useful in the near future. Okay, I've hard-coded range_agg in the main patch and separated the support for multirange/etc in the next two patches. But there isn't much code there (mostly tests and docs). Since we can't hard-code the *operators*, most of the infrastructure is already there not to hard-code the aggregate function. Supporting multiranges is already a nice improvement. E.g. it should cut down on disk usage when a record gets updated frequently. Supporting arbitrary types also seems very powerful, and we already do that for PKs. > > Btw that part changed a bit since v24 because as jian he pointed out, > > our type system doesn't > > support anyrange inputs and an anyrange[] output. So I changed the > > support funcs to use SETOF. > > I didn't see any SETOF stuff in the patch, or I didn't know where to look= . > > I'm not sure I follow all the details here. So more explanations of any > kind could be helpful. This is talking about the FOR PORTION OF patch, not the FKs patch. It is the function that gives the "leftovers" after a temporal UPDATE/DELETE. There is explanation in the preliminary patch (adding the support function) and the actual FOR PORTION OF patch, but if you think they need more let me know. But I'd love to talk more about this here: The reason for using a SETOF function is because you can't return an anyarray from a function that takes anyrange or anymultirange. Or rather if you do, the array elements match the rangetype's bounds' type, not the rangetype itself: `T[] f(rangetype)`, not `rangetype[] f(rangetype)`, and we need the latter. So to get a list of rangetype objects we do a SETOF function that is `anyrange f(anyrange)`. Personally I think an improvement would be to add a broken-out patch to add pseudotypes called anyrangearray and anymultirangearray, but using SETOF works now, and I don't know if anyone is interested in such a patch. But it's not the first time I've hit this shortcoming in the pg type system, so I think it's worthwhile. And since FOR PORTION OF isn't getting into v17, there is time to do it. What do you think? If it's an acceptable idea I will get started. It should be a separate commitfest entry I think. > * v27-0003-Refactor-FK-operator-lookup.patch > > I suggest to skip this refactoring patch. I don't think the way this is > sliced up is all that great, and it doesn't actually help with the > subsequent patches. Okay. > - src/backend/catalog/pg_constraint.c > > FindFKPeriodOpersAndProcs() could use a bit more top-level > documentation. Where does the input opclass come from? What are the > three output values? What is the business with "symmetric types"? Added and tried to clarify about the types. > - src/backend/commands/indexcmds.c > > GetOperatorFromWellKnownStrategy() is apparently changed to accept > InvalidOid for rhstype, but the meaning of this is not explained in > the function header. It's also not clear to me why an existing caller > is changed. This should be explained more thoroughly. It's not so much changing a param as removing one and adding another. The old param was unneeded because it's just the opclass's opcintype, and we're already passing the opclass. Then the new param lets you optionally ask for an operator that is not `opcintype op opcintype` but `opcintype op rhstype`. We need this because FKs compare fkattr <@ range_agg(pkattr)`, and range_agg returns a multirange, not a range. Even if we hard-code range_agg, the easiest way to get the operator is to use this function, passing ANYMULTIRANGEOID (but better is to pass whatever the referencedagg support func returns, as the now-separate multirange/custom type patch does). > - src/backend/commands/tablecmds.c > > is_temporal and similar should be renamed to with_period or similar > throughout this patch. Done. > In transformFkeyGetPrimaryKey(): > > * Now build the list of PK attributes from the indkey definition (w= e > - * assume a primary key cannot have expressional elements) > + * assume a primary key cannot have expressional elements, unless it > + * has a PERIOD) > > I think the original statement is still true even with PERIOD. The > expressional elements refer to expression indexes. I don't think we can > have a PERIOD marker on an expression? You're right: I wrote this back before PERIODs became GENERATED columns. Updated now. > - src/backend/utils/adt/ri_triggers.c > > Please remove the separate trigger functions for the period case. They > are the same as the non-period ones, so we don't need separate ones. > The difference is handled lower in the call stack, which I think is a > good setup. Removing the separate functions also removes a lot of extra > code in other parts of the patch. Done. The later patch for FKs with CASCADE/SET NULL/SET DEFAULT still has separate functions (since they call actually-different implementations), but I will see if I can unify things a bit more there. > - src/include/catalog/pg_constraint.h > > Should also update catalogs.sgml accordingly. Looks like you did this already in 030e10ff1a. > - src/test/regress/expected/without_overlaps.out > - src/test/regress/sql/without_overlaps.sql > > A few general comments on the tests: > > - In the INSERT commands, specify the column names explicitly. This > makes the tests easier to read (especially since the column order > between the PK and the FK table is sometimes different). Okay. > - Let's try to make it so that the inserted literals match the values > shown in the various error messages, so it's easier to match them up. > So, change the int4range literals to half-open notation. And also maybe > change the date output format to ISO. Done. Also changed the tsrange cols to daterange and made them YYYY-MM-DD. This is much easier to read IMO. Note there were already a few tsrange columns in the PK tests, so I changed those separately in the very first patch here. > - In various comments, instead of test FK "child", maybe use > "referencing table"? Instead of "parent", use "referenced table" (or > primary key table). When I read child and parent I was looking for > inheritance. Done. > - Consider truncating the test tables before each major block of tests > and refilling them with fresh data. So it's easier to eyeball the > tests. Otherwise, there is too much dependency on what earlier tests > left behind. Done. This will also let me reuse ids in the FOR PORTION OF partitioned table tests, but that's not done yet. > A specific question: > > In this test, a PERIOD marker on the referenced site is automatically > inferred from the primary key: > > +-- with inferred PK on the referenced table: > +CREATE TABLE temporal_fk_rng2rng ( > + id int4range, > + valid_at tsrange, > + parent_id int4range, > + CONSTRAINT temporal_fk_rng2rng_pk PRIMARY KEY (id, valid_at WITHOUT > OVERLAPS), > + CONSTRAINT temporal_fk_rng2rng_fk FOREIGN KEY (parent_id, PERIOD > valid_at) > + REFERENCES temporal_rng > +); > > In your patch, this succeeds. According to the SQL standard, it should > not. In subclause 11.8, syntax rule 4b: > > """ > Otherwise, the table descriptor of the referenced table shall include a > unique constraint UC that specifies PRIMARY KEY. The table constraint > descriptor of UC shall not include an application time period name. > """ > > So this case is apparently explicitly ruled out. > > (It might be ok to make an extension here, but then we should be > explicit about it.) Okay, I agree it doesn't match the standard. IMO our behavior is better, but the patches here should let you go either way. The main FK patch keeps the old behavior, but there is a follow-up patch doing what the standard says. There are some interesting implications, which you can see by looking at the test changes in that patch. Basically you can never give an inferred REFERENCES against a temporal table. Either your FK has a PERIOD element, and it fails because we exclude the PK's WITHOUT OVERLAPS in the inferred attributes, or your FK does not have a PERIOD element, and it fails because you want a PK side that is genuinely unique, but the PK index has a temporal definition of "unique" (and is not B-tree but GiST). I don't see any drawbacks from supporting inferred REFERENCES with temporal tables, so my vote is to break from the standard here, and *not* apply that follow-up patch. Should I add some docs about that? Also skipping the patch will cause some annoying merge conflicts, so let me know if that's what you choose and I'll handle them right away. Btw I tried checking what other vendors do here, but no one supports temporal FKs yet! MS SQL Server doesn't support application time at all. Oracle and MariaDB don't support temporal PKs or FKs. And IBM DB2 only supports temporal PKs. Actually DB2's docs in 2019 were *claiming* they supported temporal FKs, but it didn't work for me or at least one other person posting in their forums. And the latest docs no longer mention it.[1] I wrote about trying to make it work in my survey of other vendors.[2] The old docs are now a 404,[3] as is the forums post.[4] My DB2 test code is below in case anyone else wants to try.[5] So there is no precedent here for us to follow. Incidentally, here are two non-standard things I would like to add "some da= y": 1. FKs from non-temporal tables to temporal tables. Right now temporal tables are "contagious", which can be annoying. Maybe a non-temporal record is valid as long as a referenced temporal row exists at *any time*. You can't do that today. You can't even add an additional UNIQUE constraint, because there are surely duplicates that invalidate it. This kind of FK would be satisfied if *at least one* reference exists. 2. FKs from a single-timestamp table to a temporal table. Maybe the referring table is an "event" with no duration, but it is valid as long as the referenced table contains it. A workaround is to have a range that is `[t,t]`, but that's annoying. Anyway that's not important for these patches. As far as I can tell, whatever we choose re inferred PERIOD in REFERENCES keeps our options open for those ideas. One more thought: if we wanted to be cheekily compatible with the standard, we could infer *range types* that are WITHOUT OVERLAPs but not true PERIOD objects. "The table constraint descriptor of UC shall not include an application time period name." If it's a rangetype column, then it doesn't include a period name. :-P. So then we would skip the follow-up patch here but I could work it into the final patch for PERIOD support. This is probably not the wisest choice, although I guess it does let us defer deciding what to do. On Mon, Mar 11, 2024 at 7:45=E2=80=AFPM jian he wrote: > typo "referenced_agg", in the gist-extensibility.html page is "referenced= agg" > WITHOUT PORTION should be WITHOUT OVERLAPS Good catch! Fixed. > + While the non-PERIOD columns are treated normal= ly > + (and there must be at least one of them), > + the PERIOD column is not compared for equality. > the above sentence didn't say what is "normally"? > maybe we can do the following: > + While the non-PERIOD columns are treated > + normally for equality > + (and there must be at least one of them), > + the PERIOD column is not compared for equality. Reworked the language here. > my_range_agg_transfn error message is inconsistent? > `elog(ERROR, "range_agg_transfn called in non-aggregate context");` > `elog(ERROR, "range_agg must be called with a range");` > maybe just `my_range_agg_transfn`, instead of mention > {range_agg_transfn|range_agg} > similarly my_range_agg_finalfn error is also inconsistent. This matches what other aggs do (e.g. array_agg, json_agg, etc.) as well as the actual core range_agg code. And I think it is an appropriate difference. You only hit the first error if you are invoking the transfn directly, so that's what we should say. OTOH you hit the second error by calling the aggregate function, but with the wrong type. So the error message should mention the aggregate function. > my_range_agg_finalfn need `type_is_multirange(mltrngtypoid)`? This isn't part of the core range_agg_finalfn, so I'd rather not include it here. And I don't think it is needed. You would only get a non-multirange if the transfn does something wrong, and even if it does, the error will be caught and reported in multirange_get_typcache. On Mon, Mar 11, 2024 at 7:47=E2=80=AFPM jian he wrote: > maybe just change the tsrange type to daterange, then the dot out file > will be far less verbose. Agreed, done. > minor issues while reviewing v27, 0001 to 0004. > transformFkeyGetPrimaryKey comments need to update, > since bool pk_period also returned. pk_period is no longer returned in this latest patch. > +/* > + * FindFKComparisonOperators - > + * > + * Gets the operators for pfeqopOut, ppeqopOut, and ffeqopOut. > + * Sets old_check_ok if we can avoid re-validating the constraint. > + * Sets old_pfeqop_item to the old pfeqop values. > + */ > +static void > +FindFKComparisonOperators(Constraint *fkconstraint, > + AlteredTableInfo *tab, > + int i, > + int16 *fkattnum, > + bool *old_check_ok, > + ListCell **old_pfeqop_item, > + Oid pktype, Oid fktype, Oid opclass, > + Oid *pfeqopOut, Oid *ppeqopOut, Oid *ffeqopOut) > > I think the above comments is > `Sets the operators for pfeqopOut, ppeqopOut, and ffeqopOut.`. This whole function is removed. > + if (is_temporal) > + { > + if (!fkconstraint->fk_with_period) > + ereport(ERROR, > + (errcode(ERRCODE_INVALID_FOREIGN_KEY), > + errmsg("foreign key uses PERIOD on the referenced table but not the > referencing table"))); > + } > can be > if (is_temporal && !fkconstraint->fk_with_period) > ereport(ERROR, > (errcode(ERRCODE_INVALID_FOREIGN_KEY), > errmsg("foreign key uses PERIOD on the referenced table but not the > referencing table"))); The patch about inferred REFERENCES moves things around a bit, so this no longer applies. > + if (is_temporal) > + { > + if (!fkconstraint->pk_with_period) > + /* Since we got pk_attrs, one should be a period. */ > + ereport(ERROR, > + (errcode(ERRCODE_INVALID_FOREIGN_KEY), > + errmsg("foreign key uses PERIOD on the referencing table but not the > referenced table"))); > + } > can be > if (is_temporal && !fkconstraint->pk_with_period) > /* Since we got pk_attrs, one should be a period. */ > ereport(ERROR, > (errcode(ERRCODE_INVALID_FOREIGN_KEY), > errmsg("foreign key uses PERIOD on the referencing table but not the > referenced table"))); Likewise. > refactor decompile_column_index_array seems unnecessary. > Peter already mentioned it at [1], I have tried to fix it at [2]. No, that conversation is about handling WITHOUT OVERLAPS, not PERIOD. Because the syntax is `valid_at WITHOUT OVERLAPS` but `PERIOD valid_at` (post vs pre), we must handle PERIOD inside the function. > I don't understand the "expression elements" in the comments, most of > the tests case is like Covered above in Peter's feedback. > ` > PRIMARY KEY (id, valid_at WITHOUT OVERLAPS) > ` > + *pk_period =3D (indexStruct->indisexclusion); > can be > `+ *pk_period =3D indexStruct->indisexclusion;` No longer included here. On Wed, Mar 13, 2024 at 5:00=E2=80=AFPM jian he wrote: > @@ -118,12 +120,17 @@ typedef struct RI_ConstraintInfo > int16 confdelsetcols[RI_MAX_NUMKEYS]; /* attnums of cols to set on > * delete */ > char confmatchtype; /* foreign key's match type */ > + bool temporal; /* if the foreign key is temporal */ > int nkeys; /* number of key columns */ > int16 pk_attnums[RI_MAX_NUMKEYS]; /* attnums of referenced cols */ > int16 fk_attnums[RI_MAX_NUMKEYS]; /* attnums of referencing cols */ > Oid pf_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (PK =3D FK) */ > Oid pp_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (PK =3D PK) */ > Oid ff_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (FK =3D FK) */ > + Oid period_contained_by_oper; /* operator for PERIOD SQL */ > + Oid agged_period_contained_by_oper; /* operator for PERIOD SQL */ > + Oid period_referenced_agg_proc; /* proc for PERIOD SQL */ > + Oid period_referenced_agg_rettype; /* rettype for previous */ > > the comment seems not clear to me. Here is my understanding about it: > period_contained_by_oper is the operator where a single period/range > contained by a single period/range. > agged_period_contained_by_oper is the operator oid where a period > contained by a bound of periods > period_referenced_agg_proc is the oprcode of the agged_period_contained_b= y_oper. > period_referenced_agg_rettype is the function > period_referenced_agg_proc returning data type. Expanded these comments a bit. Thanks to you both for such detailed, careful feedback! Rebased to 605062227f. If anything else comes up re FKs I'll tackle that first, but otherwise I think I will work on some of the outstanding issues in the FOR PORTION OF patch (e.g. trigger transition table names). I may experiment with handling the leftover inserts as a separate executor node. If anyone has advice there I'm happy to hear it! Yours, Paul [1] https://www.ibm.com/docs/en/db2/11.5?topic=3Dstatements-alter-table [2] https://illuminatedcomputing.com/posts/2019/08/sql2011-survey/ [3] https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/intro/src/= tpc/db2z_integrity.html [4] https://www.ibm.com/developerworks/community/forums/html/topic?id=3D440= e07ad-23ee-4b0a-ae23-8c747abca819 [5] Here is DB2 test code showing temporal FKs don't work. (Note they disobey the standard re declaring `PERIOD p (s, e)` not `PERIOD FOR p (s, e)`, and it must be named `business_time`.) ``` create table t (id integer not null, ds date not null, de date not null, name varchar(4000), period business_time (ds, de)); alter table t add constraint tpk primary key (id, business_time without overlaps) insert into t values (1, '2000-01-01', '2001-01-01', 'foo'); create table fk (id integer, ds date not null, de date not null, period business_time (ds, de)); -- all this fails: alter table fk add constraint fkfk foreign key (id, period business_time) references t (id, period business_time); alter table fk add constraint fkfk foreign key (id, business_time) references t (id, business_time); alter table fk add constraint fkfk foreign key (id, period business_time) references t; alter table fk add constraint fkfk foreign key (id, business_time) referenc= es t; alter table fk add constraint fkfk foreign key (id, period for business_time) references t; alter table fk add constraint fkfk foreign key (id, period for business_time) references t (id, period for business_time); alter table fk add constraint fkfk foreign key (id, business_time without overlaps) references t; alter table fk add constraint fkfk foreign key (id, business_time without overlaps) references t (id, business_time without overlaps); alter table fk add constraint fkfk foreign key (id) references t; alter table fk add constraint fkfk foreign key (id) references t (id); ``` --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0004-Add-GiST-referencedagg-support-func.patch" Content-Disposition: attachment; filename="v28-0004-Add-GiST-referencedagg-support-func.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofcp3 RnJvbSA0YjcyNzM2NmI3ZmJjMzk1MjAxZTc0ZmRkY2NiZjEwNmJmYWM4ZmU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjkgRGVjIDIwMjMgMTQ6MzY6MjcgLTA4MDAKU3ViamVj dDogW1BBVENIIHYyOCA0LzldIEFkZCBHaVNUIHJlZmVyZW5jZWRhZ2cgc3VwcG9ydCBmdW5jCgpU aGlzIGlzIHRoZSB0aGlydGVlbnRoIHN1cHBvcnQgZnVuY3Rpb24gYW5kIGxldHMgdXMgaW1wbGVt ZW50IHRlbXBvcmFsCmZvcmVpZ24ga2V5cyB3aXRob3V0IGhhcmRjb2RpbmcgdGhlIHJhbmdlX2Fn ZyBmdW5jdGlvbi4gVGhlIHN1cHBvcnQKZnVuY3Rpb24gc2hvdWxkIGJlIGFuIGFnZ3JlZ2F0ZSBm dW5jdGlvbiB0aGF0IHRha2VzIGEgdHlwZSBtYXRjaGluZyB0aGUKZm9yZWlnbiBrZXkncyBQRVJJ T0QgZWxlbWVudCBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBjYW4gYXBwZWFyIG9uIHRoZQpyaWdo dGhhbmQgc2lkZSBvZiBhIENvbnRhaW5lZEJ5IG9wZXJhdG9yLCBzbyB0aGF0IGZvciBleGFtcGxl IHdlIGNhbiBzYXkKYGZrcGVyaW9kIDxAIHJhbmdlX2FnZyhwa3BlcmlvZClgLgotLS0KIGRvYy9z cmMvc2dtbC9naXN0LnNnbWwgICAgICAgICAgICAgICAgIHwgMTE0ICsrKysrKysrKysrKysrKysr KysrKysrKy0KIGRvYy9zcmMvc2dtbC94aW5kZXguc2dtbCAgICAgICAgICAgICAgIHwgICA4ICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyB8ICAgNyArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYyAgfCAgMjQgKysrKystCiBzcmMvaW5jbHVk ZS9hY2Nlc3MvYW12YWxpZGF0ZS5oICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3Mv Z2lzdC5oICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXBy b2MuZGF0ICAgICAgfCAgIDYgKysKIDcgZmlsZXMgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCBiL2Rv Yy9zcmMvc2dtbC9naXN0LnNnbWwKaW5kZXggOGExOWYxNTZkODMuLmU2N2RkNGI4NTlmIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9naXN0LnNn bWwKQEAgLTI3Miw3ICsyNzIsNyBAQCBDUkVBVEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lT VCAobXlfaW5ldF9jb2x1bW4gaW5ldF9vcHMpOwogCiAgPHBhcmE+CiAgICBUaGVyZSBhcmUgZml2 ZSBtZXRob2RzIHRoYXQgYW4gaW5kZXggb3BlcmF0b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5H aVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4K KyAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG11c3QgcHJvdmlkZSwgYW5kIGVpZ2h0IHRoYXQg YXJlIG9wdGlvbmFsLgogICAgQ29ycmVjdG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAg IGJ5IHByb3BlciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9u PiwgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlvbj51bmlv bjwvZnVuY3Rpb24+IG1ldGhvZHMsIHdoaWxlIGVmZmljaWVuY3kgKHNpemUgYW5kIHNwZWVkKSBv ZiB0aGUKQEAgLTMwMCw2ICszMDAsMTAgQEAgQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5H IEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3BzKTsKICAgIDxmaWxlbmFtZT5zcmMvaW5jbHVk ZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5hbWU+KSBpbnRvIHN0cmF0ZWd5IG51bWJlcnMKICAg IHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzLiAgVGhpcyBsZXRzIHRoZSBjb3JlIGNvZGUgbG9v ayB1cCBvcGVyYXRvcnMgZm9yCiAgICB0ZW1wb3JhbCBjb25zdHJhaW50IGluZGV4ZXMuCisgICBU aGUgb3B0aW9uYWwgdGhpcnRlZW50aCBtZXRob2QgPGZ1bmN0aW9uPnJlZmVyZW5jZWRhZ2c8L2Z1 bmN0aW9uPiBpcyB1c2VkIGJ5CisgICB0ZW1wb3JhbCBmb3JlaWduIGtleXMgdG8gY29tYmluZWQg cmVmZXJlbmNlZCByb3dzIHdpdGggdGhlIHNhbWUKKyAgIG5vbi08bGl0ZXJhbD5XSVRIT1VUIE9W RVJMQVBTPC9saXRlcmFsPiB2YWx1ZShzKSBpbnRvIG9uZQorICAgPGxpdGVyYWw+V0lUSE9VVCBP VkVSTEFQUzwvbGl0ZXJhbD4gc3BhbiB0byBjb21wYXJlIGFnYWluc3QgcmVmZXJlbmNpbmcgcm93 cy4KICA8L3BhcmE+CiAKICA8dmFyaWFibGVsaXN0PgpAQCAtMTI0NCw2ICsxMjQ4LDExNCBAQCBt eV9zdHJhdG51bShQR19GVU5DVElPTl9BUkdTKQogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3Rp dGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJt PjxmdW5jdGlvbj5yZWZlcmVuY2VkYWdnPC9mdW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFuIGFnZ3JlZ2F0ZSBmdW5jdGlvbi4gR2l2ZW4gdmFs dWVzIG9mIHRoaXMgb3BjbGFzcywKKyAgICAgICBpdCByZXR1cm5zIGEgdmFsdWUgY29tYmluaW5n IHRoZW0gYWxsLiBUaGUgcmV0dXJuIHZhbHVlCisgICAgICAgbmVlZCBub3QgYmUgdGhlIHNhbWUg dHlwZSBhcyB0aGUgaW5wdXQsIGJ1dCBpdCBtdXN0IGJlIGEKKyAgICAgICB0eXBlIHRoYXQgY2Fu IGFwcGVhciBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIHRoZSAiY29udGFpbmVkIGJ5IgorICAg ICAgIG9wZXJhdG9yLiBGb3IgZXhhbXBsZSB0aGUgYnVpbHQtaW4gPGxpdGVyYWw+cmFuZ2Vfb3Bz PC9saXRlcmFsPgorICAgICAgIG9wY2xhc3MgdXNlcyA8bGl0ZXJhbD5yYW5nZV9hZ2c8L2xpdGVy YWw+IGhlcmUsIHNvIHRoYXQgZm9yZWlnbgorICAgICAgIGtleXMgY2FuIGNoZWNrIDxsaXRlcmFs PmZrcGVyaW9kIEA+IHJhbmdlX2FnZyhwa3BlcmlvZCk8L2xpdGVyYWw+LgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1wb3JhbCBmb3JlaWdu IGtleSBjb25zdHJhaW50cy4KKyAgICAgICBJZiB5b3Ugb21pdCB0aGlzIHN1cHBvcnQgZnVuY3Rp b24sIHlvdXIgdHlwZSBjYW5ub3QgYmUgdXNlZAorICAgICAgIGFzIHRoZSA8bGl0ZXJhbD5QRVJJ T0Q8L2xpdGVyYWw+IHBhcnQgb2YgYSBmb3JlaWduIGtleS4KKyAgICAgIDwvcGFyYT4KKworICAg ICAgPHBhcmE+CisgICAgICAgVGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24g b2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9vayBsaWtlCisgICAgICAgdGhpcyAodXNpbmcgPGxpdGVy YWw+bXlfcmFuZ2VfYWdnPC9saXRlcmFsPiBhcyBhbiBleGFtcGxlKToKKworPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfcmFuZ2VfYWdnX3RyYW5zZm4oaW50 ZXJuYWwsIGFueXJhbmdlKQorUkVUVVJOUyBpbnRlcm5hbAorQVMgJ01PRFVMRV9QQVRITkFNRScK K0xBTkdVQUdFIEMgU1RSSUNUOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBteV9yYW5n ZV9hZ2dfZmluYWxmbihpbnRlcm5hbCwgYW55cmFuZ2UpCitSRVRVUk5TIGFueW11bHRpcmFuZ2UK K0FTICdNT0RVTEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIFNUUklDVDsKKworQ1JFQVRFIEFHR1JF R0FURSBteV9yYW5nZV9hZ2coYW55cmFuZ2UpIHsKKyAgU0ZVTkMgPSBteV9yYW5nZV9hZ2dfdHJh bnNmbiwKKyAgU1RZUEUgPSBpbnRlcm5hbCwKKyAgRklOQUxGVU5DID0gbXlfcmFuZ2VfYWdnX2Zp bmFsZm4KK307Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVu IGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCitteV9yYW5n ZV9hZ2dfdHJhbnNmbihQR19GVU5DVElPTl9BUkdTKQoreworICAgIE1lbW9yeUNvbnRleHQgICAg YWdnQ29udGV4dDsKKyAgICBPaWQgICAgICAgICAgICAgIHJuZ3R5cG9pZDsKKyAgICBBcnJheUJ1 aWxkU3RhdGUgKnN0YXRlOworCisgICAgaWYgKCFBZ2dDaGVja0NhbGxDb250ZXh0KGZjaW5mbywg JmFtcDthZ2dDb250ZXh0KSkKKyAgICAgICAgZWxvZyhFUlJPUiwgInJhbmdlX2FnZ190cmFuc2Zu IGNhbGxlZCBpbiBub24tYWdncmVnYXRlIGNvbnRleHQiKTsKKworICAgIHJuZ3R5cG9pZCA9IGdl dF9mbl9leHByX2FyZ3R5cGUoZmNpbmZvLSZndDtmbGluZm8sIDEpOworICAgIGlmICghdHlwZV9p c19yYW5nZShybmd0eXBvaWQpKQorICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2VfYWdnIG11c3Qg YmUgY2FsbGVkIHdpdGggYSByYW5nZSIpOworCisgICAgaWYgKFBHX0FSR0lTTlVMTCgwKSkKKyAg ICAgICAgc3RhdGUgPSBpbml0QXJyYXlSZXN1bHQocm5ndHlwb2lkLCBhZ2dDb250ZXh0LCBmYWxz ZSk7CisgICAgZWxzZQorICAgICAgICBzdGF0ZSA9IChBcnJheUJ1aWxkU3RhdGUgKikgUEdfR0VU QVJHX1BPSU5URVIoMCk7CisKKyAgICAvKiBza2lwIE5VTExzICovCisgICAgaWYgKCFQR19BUkdJ U05VTEwoMSkpCisgICAgICAgIGFjY3VtQXJyYXlSZXN1bHQoc3RhdGUsIFBHX0dFVEFSR19EQVRV TSgxKSwgZmFsc2UsIHJuZ3R5cG9pZCwgYWdnQ29udGV4dCk7CisKKyAgICBQR19SRVRVUk5fUE9J TlRFUihzdGF0ZSk7Cit9CisKK0RhdHVtCitteV9yYW5nZV9hZ2dfZmluYWxmbihQR19GVU5DVElP Tl9BUkdTKQoreworICAgIE1lbW9yeUNvbnRleHQgICAgYWdnQ29udGV4dDsKKyAgICBPaWQgICAg ICAgICAgICAgIG1sdHJuZ3R5cG9pZDsKKyAgICBUeXBlQ2FjaGVFbnRyeSAgKnR5cGNhY2hlOwor ICAgIEFycmF5QnVpbGRTdGF0ZSAqc3RhdGU7CisgICAgaW50MzIgICAgICAgICAgICByYW5nZV9j b3VudDsKKyAgICBSYW5nZVR5cGUgICAgICAqKnJhbmdlczsKKyAgICBpbnQgICAgICAgICAgICAg IGk7CisKKyAgICBpZiAoIUFnZ0NoZWNrQ2FsbENvbnRleHQoZmNpbmZvLCAmYW1wO2FnZ0NvbnRl eHQpKQorICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2VfYWdnX2ZpbmFsZm4gY2FsbGVkIGluIG5v bi1hZ2dyZWdhdGUgY29udGV4dCIpOworCisgICAgc3RhdGUgPSBQR19BUkdJU05VTEwoMCkgPyBO VUxMIDogKEFycmF5QnVpbGRTdGF0ZSAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKKyAgICBpZiAo c3RhdGUgPT0gTlVMTCkKKyAgICAgICAgLyogVGhpcyBzaG91bGRuJ3QgYmUgcG9zc2libGUsIGJ1 dCBqdXN0IGluIGNhc2UuLi4uICovCisgICAgICAgIFBHX1JFVFVSTl9OVUxMKCk7CisKKyAgICAv KiBBbHNvIHJldHVybiBOVUxMIGlmIHdlIGhhZCB6ZXJvIGlucHV0cywgbGlrZSBvdGhlciBhZ2dy ZWdhdGVzICovCisgICAgcmFuZ2VfY291bnQgPSBzdGF0ZS0mZ3Q7bmVsZW1zOworICAgIGlmIChy YW5nZV9jb3VudCA9PSAwKQorICAgICAgICBQR19SRVRVUk5fTlVMTCgpOworCisgICAgbWx0cm5n dHlwb2lkID0gZ2V0X2ZuX2V4cHJfcmV0dHlwZShmY2luZm8tJmd0O2ZsaW5mbyk7CisgICAgdHlw Y2FjaGUgPSBtdWx0aXJhbmdlX2dldF90eXBjYWNoZShmY2luZm8sIG1sdHJuZ3R5cG9pZCk7CisK KyAgICByYW5nZXMgPSBwYWxsb2MwKHJhbmdlX2NvdW50ICogc2l6ZW9mKFJhbmdlVHlwZSAqKSk7 CisgICAgZm9yIChpID0gMDsgaSAmbHQ7IHJhbmdlX2NvdW50OyBpKyspCisgICAgICAgIHJhbmdl c1tpXSA9IERhdHVtR2V0UmFuZ2VUeXBlUChzdGF0ZS0mZ3Q7ZHZhbHVlc1tpXSk7CisKKyAgICBQ R19SRVRVUk5fTVVMVElSQU5HRV9QKG1ha2VfbXVsdGlyYW5nZShtbHRybmd0eXBvaWQsIHR5cGNh Y2hlLSZndDtybmd0eXBlLCByYW5nZV9jb3VudCwgcmFuZ2VzKSk7Cit9Cis8L3Byb2dyYW1saXN0 aW5nPgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgogICA8L3ZhcmlhYmxlbGlzdD4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC94aW5kZXguc2dtbCBiL2RvYy9zcmMvc2dtbC94aW5kZXguc2dtbAppbmRleCAzYTE5ZGFiMTVl MC4uOTNkZjEzNmViYTMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC94aW5kZXguc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKQEAgLTUwOCw3ICs1MDgsNyBAQAogICAgPC90YWJs ZT4KIAogICA8cGFyYT4KLSAgIEdpU1QgaW5kZXhlcyBoYXZlIHR3ZWx2ZSBzdXBwb3J0IGZ1bmN0 aW9ucywgc2V2ZW4gb2Ygd2hpY2ggYXJlIG9wdGlvbmFsLAorICAgR2lTVCBpbmRleGVzIGhhdmUg dGhpcnRlZW4gc3VwcG9ydCBmdW5jdGlvbnMsIGVpZ2h0IG9mIHdoaWNoIGFyZSBvcHRpb25hbCwK ICAgIGFzIHNob3duIGluIDx4cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUi Lz4uCiAgICAoRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4u KQogICA8L3BhcmE+CkBAIC01OTYsNiArNTk2LDEyIEBACiAgICAgICAgIHVzZWQgYnkgdGhlIG9w ZXJhdG9yIGNsYXNzIChvcHRpb25hbCk8L2VudHJ5PgogICAgICAgIDxlbnRyeT4xMjwvZW50cnk+ CiAgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj5yZWZl cmVuY2VkYWdnPC9mdW5jdGlvbj48L2VudHJ5PgorICAgICAgIDxlbnRyeT5hZ2dyZWdhdGVzIHJl ZmVyZW5jZWQgcm93cycgPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4KKyAgICAg ICAgcGFydDwvZW50cnk+CisgICAgICAgPGVudHJ5PjEzPC9lbnRyeT4KKyAgICAgIDwvcm93Pgog ICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2dpc3QvZ2lzdHZhbGlkYXRlLmMKaW5kZXggMDkwMTU0M2E2MGEuLjk2NDY3NTY3ZWFhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwpAQCAtMTUwLDYgKzE1MCwxMSBAQCBn aXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElO VDJPSUQpOwogCQkJCWJyZWFrOworCQkJY2FzZSBHSVNUX1JFRkVSRU5DRURfQUdHX1BST0M6CisJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEludmFsaWRP aWQsIGZhbHNlLAorCQkJCQkJCQkJCQkgICAxLCAxLCBvcGNpbnR5cGUpCisJCQkJCSYmIGNoZWNr X2FtcHJvY19pc19hZ2dyZWdhdGUocHJvY2Zvcm0tPmFtcHJvYyk7CisJCQkJYnJlYWs7CiAJCQlk ZWZhdWx0OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9PQkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzEsNyArMjc2LDcgQEAgZ2lzdHZhbGlkYXRlKE9p ZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJU1RBTkNFX1BST0MgfHwgaSA9PSBHSVNU X0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9DT01QUkVTU19QUk9DIHx8IGkgPT0gR0lTVF9E RUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9PUFRJT05TX1BST0MgfHwgaSA9PSBHSVNU X1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJCWkgPT0gR0lTVF9TVFJBVE5VTV9QUk9DKQorCQkJaSA9 PSBHSVNUX1NUUkFUTlVNX1BST0MgfHwgaSA9PSBHSVNUX1JFRkVSRU5DRURfQUdHX1BST0MpCiAJ CQljb250aW51ZTsJCQkvKiBvcHRpb25hbCBtZXRob2RzICovCiAJCWVyZXBvcnQoSU5GTywKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKaW5kZXggMzJiYjQ3N2YzMjguLjllYjFiMTcyYWUxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKQEAgLTE0MCwxMyArMTQwLDMwIEBA IGlkZW50aWZ5X29wZmFtaWx5X2dyb3VwcyhDYXRDTGlzdCAqb3BybGlzdCwgQ2F0Q0xpc3QgKnBy b2NsaXN0KQogCXJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wKK2NoZWNrX2FtcHJvY19pc19hZ2dy ZWdhdGUoT2lkIGZ1bmNpZCkKK3sKKwlib29sCQlyZXN1bHQ7CisJSGVhcFR1cGxlCXRwOworCUZv cm1fcGdfcHJvYyBwcm9jZm9ybTsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFBST0NPSUQsIE9i amVjdElkR2V0RGF0dW0oZnVuY2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lk KTsKKwlwcm9jZm9ybSA9IChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0cCk7CisJcmVzdWx0ID0g cHJvY2Zvcm0tPnByb2tpbmQgPT0gJ2EnOworCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJcmV0dXJu IHJlc3VsdDsKK30KKwogLyoKICAqIFZhbGlkYXRlIHRoZSBzaWduYXR1cmUgKGFyZ3VtZW50IGFu ZCByZXN1bHQgdHlwZXMpIG9mIGFuIG9wY2xhc3Mgc3VwcG9ydAogICogZnVuY3Rpb24uICBSZXR1 cm4gdHJ1ZSBpZiBPSywgZmFsc2UgaWYgbm90LgogICoKICAqIFRoZSAiLi4uIiByZXByZXNlbnRz IG1heGFyZ3MgYXJndW1lbnQtdHlwZSBPSURzLiAgSWYgImV4YWN0IiBpcyB0cnVlLCB0aGV5CiAg KiBtdXN0IG1hdGNoIHRoZSBmdW5jdGlvbiBhcmcgdHlwZXMgZXhhY3RseSwgZWxzZSBvbmx5IGJp bmFyeS1jb2VyY2libHkuCi0gKiBJbiBhbnkgY2FzZSB0aGUgZnVuY3Rpb24gcmVzdWx0IHR5cGUg bXVzdCBtYXRjaCByZXN0eXBlIGV4YWN0bHkuCisgKiBJbiBhbnkgY2FzZSB0aGUgZnVuY3Rpb24g cmVzdWx0IHR5cGUgbXVzdCBtYXRjaCByZXN0eXBlIGV4YWN0bHksCisgKiB1bmxlc3MgaXQgaXMg SW52YWxpZE9pZC4KICAqLwogYm9vbAogY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lk LCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKQEAgLTE2Myw4ICsxODAsOSBAQCBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAogCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgZnVuY3Rpb24gJXUiLCBmdW5jaWQpOwog CXByb2Nmb3JtID0gKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHRwKTsKIAotCWlmIChwcm9jZm9y bS0+cHJvcmV0dHlwZSAhPSByZXN0eXBlIHx8IHByb2Nmb3JtLT5wcm9yZXRzZXQgfHwKLQkJcHJv Y2Zvcm0tPnByb25hcmdzIDwgbWluYXJncyB8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPiBtYXhhcmdz KQorCWlmICgocHJvY2Zvcm0tPnByb3JldHR5cGUgIT0gcmVzdHlwZSAmJiBPaWRJc1ZhbGlkKHJl c3R5cGUpKQorCQl8fCBwcm9jZm9ybS0+cHJvcmV0c2V0IHx8IHByb2Nmb3JtLT5wcm9uYXJncyA8 IG1pbmFyZ3MKKwkJfHwgcHJvY2Zvcm0tPnByb25hcmdzID4gbWF4YXJncykKIAkJcmVzdWx0ID0g ZmFsc2U7CiAKIAl2YV9zdGFydChhcCwgbWF4YXJncyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvYW12YWxpZGF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaApp bmRleCA0MjRhYjYzZmE1YS4uYzc5NWE0YmMxYmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9hbXZhbGlkYXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaApA QCAtMjgsNiArMjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVuY0dyb3VwCiAKIC8q IEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRlcm4gTGlzdCAq aWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJv Y2xpc3QpOworZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX2lzX2FnZ3JlZ2F0ZShPaWQgZnVuY2lk KTsKIGV4dGVybiBib29sIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJl c3R5cGUsIGJvb2wgZXhhY3QsCiAJCQkJCQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywu Li4pOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCk7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL2dpc3QuaAppbmRleCAyMmRkMDRjMTQxOC4uNjQxNjc3ZTE5MWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaApA QCAtNDAsNyArNDAsOCBAQAogI2RlZmluZSBHSVNUX09QVElPTlNfUFJPQwkJCQkxMAogI2RlZmlu ZSBHSVNUX1NPUlRTVVBQT1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJ CQkJMTIKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9SRUZFUkVOQ0VE X0FHR19QUk9DCQkxMworI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxMwogCiAvKgogICogUGFnZSBv cGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5kZXggcGFnZS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRh dAppbmRleCAzNTI1NThjMWYwNi4uMWQzZDVmY2Y0ZDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJv Yy5kYXQKQEAgLTYxMCw2ICs2MTAsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvcmFuZ2Vf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRu dW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdl JywgYW1wcm9jbnVtID0+ICcxMycsCisgIGFtcHJvYyA9PiAncmFuZ2VfYWdnKGFueXJhbmdlKScg fSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L25ldHdvcmtfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2luZXQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzEn LAogICBhbXByb2MgPT4gJ2luZXRfZ2lzdF9jb25zaXN0ZW50JyB9LApAQCAtNjUwLDYgKzY1Myw5 IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJh bmdlJywgYW1wcm9jbnVtID0+ICcxMicsCiAgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVu dGl0eScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11 bHRpcmFuZ2UnLCBhbXByb2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdyYW5nZV9hZ2coYW55 bXVsdGlyYW5nZSknIH0sCiAKICMgZ2luCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2luL2FycmF5X29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlhcnJheScsCi0tIAoyLjQyLjAKCg== --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0005-Support-multiranges-or-any-type-in-temporal-FKs.patch" Content-Disposition: attachment; filename="v28-0005-Support-multiranges-or-any-type-in-temporal-FKs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofcu4 RnJvbSAwMGMwNTYxYWIyMDMwOTUyMzA1OGNmMDFmZTQyNWU3MjJjOWI0ODdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMTUgTWFyIDIwMjQgMTc6NDM6MTYgLTA3MDAKU3ViamVj dDogW1BBVENIIHYyOCA1LzldIFN1cHBvcnQgbXVsdGlyYW5nZXMgb3IgYW55IHR5cGUgaW4gdGVt cG9yYWwgRktzCgpVc2UgcmVmZXJlbmNlZGFnZyBHaVNUIHN1cHBvcnQgZnVuYyB0byBhZ2dyZWdh dGUgdGhlIFBLIHJlY29yZHMgaW50byBvbmUKb2JqZWN0IHRoYXQgY2FuIGJlIGNvbXBhcmVkIHRv IHRoZSBGSyBzaWRlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAg ICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAg ICAgICAgIHwgIDM5ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAg ICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jICAgICAg ICAgICB8ICA2OCArKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oICAgICAg ICAgICB8ICAgNyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgNDIxICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwgICAgIHwgMzUyICsrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2Vk LCA4NzMgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKaW5kZXggZTQ3NzhhNDA3OWUuLmRiOTNkMWU1Y2E2IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3RhYmxlLnNnbWwKQEAgLTExODUsNyArMTE4NSwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4s IFJFTQogICAgICAgd2hvc2UgY29tYmluZWQgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiB2YWx1 ZXMgY29tcGxldGVseSBjb3ZlcgogICAgICAgdGhlIHJlZmVyZW5jaW5nIHJlY29yZCdzLgogICAg ICAgSW4gb3RoZXIgd29yZHMsIHRoZSByZWZlcmVuY2UgbXVzdCBoYXZlIGEgcmVmZXJlbnQgZm9y IGl0cyBlbnRpcmUgZHVyYXRpb24uCi0gICAgICBUaGlzIGNvbHVtbiBtdXN0IGJlIGEgY29sdW1u IHdpdGggYSByYW5nZSB0eXBlLgorICAgICAgTm9ybWFsbHkgdGhpcyBjb2x1bW4gd291bGQgYmUg YSByYW5nZSBvciBtdWx0aXJhbmdlIHR5cGUsCisgICAgICBhbHRob3VnaCBhbnkgdHlwZSB3aG9z ZSBHaVNUIG9wY2xhc3MgaGFzIGEgImNvbnRhaW5lZCBieSIgb3BlcmF0b3IKKyAgICAgIGFuZCBh IDxsaXRlcmFsPnJlZmVyZW5jZWRhZ2c8L2xpdGVyYWw+IHN1cHBvcnQgZnVuY3Rpb24gaXMgYWxs b3dlZC4KKyAgICAgIChTZWUgPHhyZWYgbGlua2VuZD0iZ2lzdC1leHRlbnNpYmlsaXR5Ii8+LikK ICAgICAgIEluIGFkZGl0aW9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIG11c3QgaGF2ZSBhIHByaW1h cnkga2V5CiAgICAgICBvciB1bmlxdWUgY29uc3RyYWludCBkZWNsYXJlZCB3aXRoIDxsaXRlcmFs PldJVEhPVVQgUE9SVElPTjwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19jb25zdHJhaW50LmMKaW5kZXggMjc1ODFjMDU1ZmIuLjZhMDM5YTM1M2NmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX2NvbnN0cmFpbnQuYwpAQCAtMTYwNywyMSArMTYwNywyOSBAQCBEZWNvbnN0cnVj dEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogfQogCiAvKgot ICogRmluZEZrUGVyaW9kT3BlcnMgLQorICogRmluZEZrUGVyaW9kT3BlcnNBbmRQcm9jcyAtCiAg KgotICogTG9va3MgdXAgdGhlIG9wZXJhdG9yIG9pZHMgdXNlZCBmb3IgdGhlIFBFUklPRCBwYXJ0 IG9mIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXkuCisgKiBMb29rcyB1cCB0aGUgb3BlcmF0b3IgYW5k IHN1cHBvcnQgcHJvYyBvaWRzIHVzZWQgZm9yIHRoZSBQRVJJT0QgcGFydCBvZiBhIHRlbXBvcmFs IGZvcmVpZ24ga2V5LgogICogVGhlIG9wY2xhc3Mgc2hvdWxkIGJlIHRoZSBvcGNsYXNzIG9mIHRo YXQgUEVSSU9EIGVsZW1lbnQuCiAgKiBFdmVyeXRoaW5nIGVsc2UgaXMgYW4gb3V0cHV0OiBwZXJp b2RvcGVyb2lkIGlzIHRoZSBDb250YWluZWRCeSBvcGVyYXRvciBmb3IKLSAqIHR5cGVzIG1hdGNo aW5nIHRoZSBQRVJJT0QgZWxlbWVudC4KKyAqIHR5cGVzIG1hdGNoaW5nIHRoZSBQRVJJT0QgZWxl bWVudC4gcGVyaW9kcHJvY29pZCBpcyBhIEdpU1Qgc3VwcG9ydCBmdW5jdGlvbiB0bworICogYWdn cmVnYXRlIG11bHRpcGxlIFBFUklPRCBlbGVtZW50IHZhbHVlcyBpbnRvIGEgc2luZ2xlIHZhbHVl CisgKiAod2hvc2UgcmV0dXJuIHR5cGUgbmVlZCBub3QgbWF0Y2ggaXRzIGlucHV0cywKKyAqIGUu Zy4gbWFueSByYW5nZXMgY2FuIGJlIGFnZ3JlZ2F0ZWQgaW50byBhIG11bHRpcmFuZ2UpLgogICog QW5kIGFnZ2VkcGVyaW9kb3Blcm9pZCBpcyBhbHNvIGEgQ29udGFpbmVkQnkgb3BlcmF0b3IsCi0g KiBidXQgb25lIHdob3NlIHJocyBpcyBhbnltdWx0aXJhbmdlLgorICogYnV0IG9uZSB3aG9zZSBy aHMgbWF0Y2hlcyB0aGUgdHlwZSByZXR1cm5lZCBieSBhZ2dlZHBlcmlvZG9wZXJvaWQuCiAgKiBU aGF0IHdheSBmb3JlaWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0 dHIpLgogICovCiB2b2lkCi1GaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKLQkJCQkgIE9p ZCAqcGVyaW9kb3Blcm9pZCwKLQkJCQkgIE9pZCAqYWdnZWRwZXJpb2RvcGVyb2lkKQorRmluZEZL UGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywKKwkJCQkJCSAgT2lkICpwZXJpb2RvcGVy b2lkLAorCQkJCQkJICBPaWQgKmFnZ2VkcGVyaW9kb3Blcm9pZCwKKwkJCQkJCSAgT2lkICpwZXJp b2Rwcm9jb2lkKQogeworCU9pZAlvcGZhbWlseTsKKwlPaWQJb3BjaW50eXBlOworCU9pZAlhZ2dy ZXR0eXBlOworCU9pZAlmdW5jaWQgPSBJbnZhbGlkT2lkOwogCVN0cmF0ZWd5TnVtYmVyIHN0cmF0 OwogCiAJLyoKQEAgLTE2MzYsNiArMTY0NCwyMSBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3Bj bGFzcywKIAkJCQkJCQkJCSBwZXJpb2RvcGVyb2lkLAogCQkJCQkJCQkJICZzdHJhdCk7CiAKKwkv KiBOb3cgbG9vayB1cCB0aGUgc3VwcG9ydCBwcm9jIGZvciBhZ2dyZWdhdGlvbi4gKi8KKwlpZiAo Z2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywgJm9wZmFtaWx5LCAm b3BjaW50eXBlKSkKKwkJZnVuY2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2lu dHlwZSwgb3BjaW50eXBlLCBHSVNUX1JFRkVSRU5DRURfQUdHX1BST0MpOworCisJaWYgKCFPaWRJ c1ZhbGlkKGZ1bmNpZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJubyBzdXBwb3J0IGZ1bmMgJXUgZm91bmQg Zm9yIEZPUkVJR04gS0VZIGNvbnN0cmFpbnQiLCBHSVNUX1JFRkVSRU5DRURfQUdHX1BST0MpLAor CQkJCSBlcnJoaW50KCJEZWZpbmUgYSByZWZlcmVuY2VkYWdnIHN1cHBvcnQgZnVuY3Rpb24gZm9y IHlvdXIgR2lTVCBvcGNsYXNzLiIpKSk7CisKKwkqcGVyaW9kcHJvY29pZCA9IGZ1bmNpZDsKKwor CS8qIExvb2sgdXAgdGhlIGZ1bmN0aW9uJ3MgcmV0dHlwZS4gKi8KKwlhZ2dyZXR0eXBlID0gZ2V0 X2Z1bmNfcmV0dHlwZShmdW5jaWQpOworCiAJLyoKIAkgKiBOb3cgbG9vayB1cCB0aGUgQ29udGFp bmVkQnkgb3BlcmF0b3IuCiAJICogSXRzIGxlZnQgYXJnIG11c3QgYmUgdGhlIHR5cGUgb2YgdGhl IGNvbHVtbiAob3IgcmF0aGVyIG9mIHRoZSBvcGNsYXNzKS4KQEAgLTE2NDMsNyArMTY2Niw3IEBA IEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAogCSAqLwogCXN0cmF0ID0gUlRDb250YWlu ZWRCeVN0cmF0ZWd5TnVtYmVyOwogCUdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KG9w Y2xhc3MsCi0JCQkJCQkJCQkgQU5ZTVVMVElSQU5HRU9JRCwKKwkJCQkJCQkJCSBhZ2dyZXR0eXBl LAogCQkJCQkJCQkJIGFnZ2VkcGVyaW9kb3Blcm9pZCwKIAkJCQkJCQkJCSAmc3RyYXQpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA5ZGU1MTllYTZlNS4uNDhhYTQ1YzBiNTEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDI1Nyw4ICsxMDI1Nyw5IEBAIEFUQWRkRm9y ZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBS ZWxhdGlvbiByZWwsCiAJewogCQlPaWQJCQlwZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlhZ2dlZHBl cmlvZG9wZXJvaWQ7CisJCU9pZAkJCXBlcmlvZHByb2NvaWQ7CiAKLQkJRmluZEZLUGVyaW9kT3Bl cnMob3BjbGFzc2VzW251bXBrcyAtIDFdLCAmcGVyaW9kb3Blcm9pZCwgJmFnZ2VkcGVyaW9kb3Bl cm9pZCk7CisJCUZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3Mob3BjbGFzc2VzW251bXBrcyAtIDFd LCAmcGVyaW9kb3Blcm9pZCwgJmFnZ2VkcGVyaW9kb3Blcm9pZCwgJnBlcmlvZHByb2NvaWQpOwog CX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCmluZGV4IGE4NGI0ZWUzMzg3 Li5mOWNiODEzNDg0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKQEAgLTEyNCw4 ICsxMjQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3RyYWludEluZm8KIAlPaWQJCQlwZl9l cV9vcHJzW1JJX01BWF9OVU1LRVlTXTsgLyogZXF1YWxpdHkgb3BlcmF0b3JzIChQSyA9IEZLKSAq LwogCU9pZAkJCXBwX2VxX29wcnNbUklfTUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRv cnMgKFBLID0gUEspICovCiAJT2lkCQkJZmZfZXFfb3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVx dWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykgKi8KLQlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5 X29wZXI7CS8qIGFueXJhbmdlIDxAIGFueXJhbmdlICovCi0JT2lkCQkJYWdnZWRfcGVyaW9kX2Nv bnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5nZSA8QCBhbnltdWx0aXJhbmdlICovCisJT2lkCQkJ cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5nZSA8QCBhbnlyYW5nZSwKKwkJCQkJ CQkJCQkJICAgKG9yIHdoYXRldmVyIHR5cGUgaXMgdXNlZCkgKi8KKwlPaWQJCQlhZ2dlZF9wZXJp b2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIHJlZmVyZW5jZWRhZ2cgcmVzdWx0 CisJCQkJCQkJCQkJCQkgICAob3Igd2hhdGV2ZXIgdHlwZXMgYXJlIHVzZWQpICovCisJT2lkCQkJ cGVyaW9kX3JlZmVyZW5jZWRfYWdnX3Byb2M7CS8qIHJlZmVyZW5jZWRhZ2cgR2lTVCBzdXBwb3J0 IHByb2MKKwkJCQkJCQkJCQkJICAgdG8gY29tYmluZSBQSyByYW5nZXMgKi8KKwlPaWQJCQlwZXJp b2RfcmVmZXJlbmNlZF9hZ2dfcmV0dHlwZTsJLyogcmV0dHlwZSBmb3IgcHJldmlvdXMgKi8KIAlk bGlzdF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAq LwogfSBSSV9Db25zdHJhaW50SW5mbzsKIApAQCAtMjMzLDYgKzIzOCw3IEBAIHN0YXRpYyB2b2lk IHJpX1JlcG9ydFZpb2xhdGlvbihjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQkJ CQkJCSAgIFJlbGF0aW9uIHBrX3JlbCwgUmVsYXRpb24gZmtfcmVsLAogCQkJCQkJCSAgIFR1cGxl VGFibGVTbG90ICp2aW9sYXRvcnNsb3QsIFR1cGxlRGVzYyB0dXBkZXNjLAogCQkJCQkJCSAgIGlu dCBxdWVyeW5vLCBib29sIHBhcnRnb25lKSBwZ19hdHRyaWJ1dGVfbm9yZXR1cm4oKTsKK3N0YXRp YyB2b2lkIGxvb2t1cFBlcmlvZFJJUHJvYyhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZv LCBjaGFyICoqYWdnbmFtZSk7CiAKIAogLyoKQEAgLTQyMSwxNSArNDI3LDE3IEBAIFJJX0ZLZXlf Y2hlY2soVHJpZ2dlckRhdGEgKnRyaWdkYXRhKQogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZx dWVyeWJ1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHgiKTsKIAkJaWYgKHJpaW5mby0+aGFzcGVyaW9k KQogCQl7CisJCQljaGFyICAgKmFnZ25hbWU7CiAJCQlPaWQJCWZrX3R5cGUgPSBSSUF0dFR5cGUo ZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKLQkJCU9pZAkJ YWdnX3JldHR5cGUgPSBBTllNVUxUSVJBTkdFT0lEOworCQkJT2lkCQlhZ2dfcmV0dHlwZSA9IHJp aW5mby0+cGVyaW9kX3JlZmVyZW5jZWRfYWdnX3JldHR5cGU7CiAKKwkJCWxvb2t1cFBlcmlvZFJJ UHJvYyhyaWluZm8sICZhZ2duYW1lKTsKIAkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAi KSB4MSBIQVZJTkcgIik7CiAJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIHJpaW5mby0+bmtl eXMpOwogCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1ZiwgIiIsCiAJCQkJCQkJcGFyYW1uYW1l LCBma190eXBlLAogCQkJCQkJCXJpaW5mby0+YWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVy LAotCQkJCQkJCSJwZ19jYXRhbG9nLnJhbmdlX2FnZyIsIGFnZ19yZXR0eXBlKTsKKwkJCQkJCQlh Z2duYW1lLCBhZ2dfcmV0dHlwZSk7CiAJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIih4 MS5yKSIpOwogCQl9CiAKQEAgLTU5MSwxNSArNTk5LDE3IEBAIHJpX0NoZWNrX1BrX01hdGNoKFJl bGF0aW9uIHBrX3JlbCwgUmVsYXRpb24gZmtfcmVsLAogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KCZxdWVyeWJ1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHgiKTsKIAkJaWYgKHJpaW5mby0+aGFzcGVy aW9kKQogCQl7CisJCQljaGFyICAgKmFnZ25hbWU7CiAJCQlPaWQJCWZrX3R5cGUgPSBSSUF0dFR5 cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKLQkJCU9p ZAkJYWdnX3JldHR5cGUgPSBBTllNVUxUSVJBTkdFT0lEOworCQkJT2lkCQlhZ2dfcmV0dHlwZSA9 IHJpaW5mby0+cGVyaW9kX3JlZmVyZW5jZWRfYWdnX3JldHR5cGU7CiAKKwkJCWxvb2t1cFBlcmlv ZFJJUHJvYyhyaWluZm8sICZhZ2duYW1lKTsKIAkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVm LCAiKSB4MSBIQVZJTkcgIik7CiAJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIHJpaW5mby0+ bmtleXMpOwogCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1ZiwgIiIsCiAJCQkJCQkJcGFyYW1u YW1lLCBma190eXBlLAogCQkJCQkJCXJpaW5mby0+YWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9v cGVyLAotCQkJCQkJCSJwZ19jYXRhbG9nLnJhbmdlX2FnZyIsIGFnZ19yZXR0eXBlKTsKKwkJCQkJ CQlhZ2duYW1lLCBhZ2dfcmV0dHlwZSk7CiAJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1Ziwg Iih4MS5yKSIpOwogCQl9CiAKQEAgLTIyNzIsOSArMjI4MiwxMSBAQCByaV9Mb2FkQ29uc3RyYWlu dEluZm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQogCXsKIAkJ T2lkCW9wY2xhc3MgPSBnZXRfaW5kZXhfY29sdW1uX29wY2xhc3MoY29uRm9ybS0+Y29uaW5kaWQs IHJpaW5mby0+bmtleXMpOwotCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzLAotCQkJCQkJICAm cmlpbmZvLT5wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCi0JCQkJCQkgICZyaWluZm8tPmFnZ2Vk X3BlcmlvZF9jb250YWluZWRfYnlfb3Blcik7CisJCUZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3Mo b3BjbGFzcywKKwkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJ CQkJCQkJCSAgJnJpaW5mby0+YWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAorCQkJCQkJ CQkgICZyaWluZm8tPnBlcmlvZF9yZWZlcmVuY2VkX2FnZ19wcm9jKTsKKwkJcmlpbmZvLT5wZXJp b2RfcmVmZXJlbmNlZF9hZ2dfcmV0dHlwZSA9IGdldF9mdW5jX3JldHR5cGUocmlpbmZvLT5wZXJp b2RfcmVmZXJlbmNlZF9hZ2dfcHJvYyk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CkBA IC0zMTM3LDMgKzMxNDksNDEgQEAgUklfRktleV90cmlnZ2VyX3R5cGUoT2lkIHRnZm9pZCkKIAog CXJldHVybiBSSV9UUklHR0VSX05PTkU7CiB9CisKKy8qCisgKiBsb29rdXBQZXJpb2RSSVByb2Mg LQorICoKKyAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFnZ3JlZ2F0ZSBmdW5jdGlvbgorICogdXNl ZCB0byBidWlsZCB0aGUgU1FMIGZvciB0ZW1wb3JhbCBSSSBjb25zdHJhaW50cy4KKyAqIFJhaXNl cyBhbiBlcnJvciBpZiBub3QgZm91bmQuCisgKi8KK3N0YXRpYyB2b2lkCitsb29rdXBQZXJpb2RS SVByb2MoY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgY2hhciAqKmFnZ25hbWUpCit7 CisJT2lkCQkJb2lkID0gcmlpbmZvLT5wZXJpb2RfcmVmZXJlbmNlZF9hZ2dfcHJvYzsKKwlIZWFw VHVwbGUJdHA7CisJRm9ybV9wZ19wcm9jIGZ1bmN0dXA7CisJY2hhcgkgICAqbmFtZXNwOworCWNo YXIJICAgKmZ1bmM7CisKKworCWlmICghT2lkSXNWYWxpZChvaWQpKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygi bm8gcmVmZXJlbmNlZGFnZyBzdXBwb3J0IGZ1bmN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJh aW50IFwiJXNcIiIsCisJCQkJCQlOYW1lU3RyKHJpaW5mby0+Y29ubmFtZSkpLAorCQkJCSBlcnJo aW50KCJZb3UgbXVzdCB1c2UgYW4gb3BlcmF0b3IgY2xhc3Mgd2l0aCBhIHJlZmVyZW5jZWRhZ2cg c3VwcG9ydCBmdW5jdGlvbi4iKSkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoUFJPQ09JRCwg T2JqZWN0SWRHZXREYXR1bShyaWluZm8tPnBlcmlvZF9yZWZlcmVuY2VkX2FnZ19wcm9jKSk7CisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGZ1bmN0aW9uICV1Iiwgb2lkKTsKKworCWZ1bmN0dXAgPSAoRm9ybV9wZ19wcm9j KSBHRVRTVFJVQ1QodHApOworCW5hbWVzcCA9IGdldF9uYW1lc3BhY2VfbmFtZShmdW5jdHVwLT5w cm9uYW1lc3BhY2UpOworCWZ1bmMgPSBOYW1lU3RyKGZ1bmN0dXAtPnByb25hbWUpOworCisJKmFn Z25hbWUgPSBwc3ByaW50ZigiJXMuJXMiLCBxdW90ZV9pZGVudGlmaWVyKG5hbWVzcCksIHF1b3Rl X2lkZW50aWZpZXIoZnVuYykpOworCisJcGZyZWUobmFtZXNwKTsKKwlSZWxlYXNlU3lzQ2FjaGUo dHApOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50Lmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaAppbmRleCBjNjQ0YzdkZGJiZS4u ZTRmNGMyZmZhZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCkBAIC0yODMsOSAr MjgzLDEwIEBAIGV4dGVybiB2b2lkIERlY29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBs ZSB0dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJCQkJCQkgICBBdHRyTnVtYmVyICpjb25rZXksIEF0 dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJCQkJCQkgICBPaWQgKnBmX2VxX29wcnMsIE9pZCAqcHBf ZXFfb3BycywgT2lkICpmZl9lcV9vcHJzLAogCQkJCQkJCQkJICAgaW50ICpudW1fZmtfZGVsX3Nl dF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2NvbHMpOwotZXh0ZXJuIHZvaWQgRmluZEZL UGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCi0JCQkJCQkJICBPaWQgKnBlcmlvZG9wZXJvaWQsCi0J CQkJCQkJICBPaWQgKmFnZ2VkcGVyaW9kb3Blcm9pZCk7CitleHRlcm4gdm9pZCBGaW5kRktQZXJp b2RPcGVyc0FuZFByb2NzKE9pZCBvcGNsYXNzLAorCQkJCQkJCQkJICBPaWQgKnBlcmlvZG9wZXJv aWQsCisJCQkJCQkJCQkgIE9pZCAqYWdnZWRwZXJpb2RvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQg KnBlcmlvZHByb2NvaWQpOwogCiBleHRlcm4gYm9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5n KE9pZCByZWxpZCwKIAkJCQkJCQkJCSAgSW5kZXggdmFybm8sIEluZGV4IHZhcmxldmVsc3VwLApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5kZXgg Y2RjNTUzOTUxMzMuLmEzZWVjZjFkNzliIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTk5LDYgKzk5LDUxIEBAIENSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ybmczICgKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX3JuZzNfcGs7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CiBEUk9QIFRZUEUg dGV4dHJhbmdlMjsKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEgbXVsdGlyYW5nZToKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0 IGRhdGVtdWx0aXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfbWx0 cm5nCisgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX21sdHJuZyIKKyAgQ29s dW1uICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAor LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CisgdmFsaWRfYXQgfCBkYXRlbXVsdGlyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJ bmRleGVzOgorICAgICJ0ZW1wb3JhbF9tbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKworLS0gUEsgd2l0aCB0d28gY29sdW1ucyBwbHVzIGEgbXVs dGlyYW5nZToKKy0tIFdlIGRvbid0IGRyb3AgdGhpcyB0YWJsZSBiZWNhdXNlIHRlc3RzIGJlbG93 IGFsc28gbmVlZCBtdWx0aXBsZSBzY2FsYXIgY29sdW1ucy4KK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9tbHRybmcyICgKKwlpZDEgaW50NHJhbmdlLAorCWlkMiBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmcyX3BrIFBSSU1BUlkg S0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3Jh bF9tbHRybmcyCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfbWx0cm5nMiIK KyAgQ29sdW1uICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tCisgaWQxICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgCisgaWQyICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxs IHwgCisgdmFsaWRfYXQgfCBkYXRlbXVsdGlyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9tbHRybmcyX3BrIiBQUklNQVJZIEtFWSAoaWQxLCBp ZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21s dHJuZzJfcGsnOworICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiso MSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00g cGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZzJfcGsnOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX21sdHJuZzJfcGsg T04gdGVtcG9yYWxfbWx0cm5nMiBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFsaWRfYXQpCisoMSBy b3cpCisKIC0tIFVOSVFVRSB3aXRoIG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJMQVBTOgog Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAogCXZhbGlkX2F0IGRhdGVyYW5nZSwKQEAgLTI3 NSw2ICszMjAsMzAgQEAgREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIFsyMDE4 LTAxLTAxLDIwMTgtMDEtMDUpKS4KIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOwogRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVt biAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIG5vdC1udWxs IGNvbnN0cmFpbnQKIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChbMyw0KSwgbnVsbCku CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywg JzIwMTgtMDQtMDQnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgTlVMTCkpKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworRVJST1I6ICBjb25mbGljdGluZyBr ZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX21sdHJuZ19w ayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4 LTAxLTA1KX0pIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0pLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworRVJST1I6ICBudWxsIHZhbHVlIGluIGNv bHVtbiAiaWQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIG5vdC1udWxs IGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCB7WzIwMTgt MDEtMDEsMjAxOC0wMS0wNSl9KS4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworRVJST1I6ICBudWxsIHZhbHVlIGluIGNv bHVtbiAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIG5v dC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChbMyw0KSwg bnVsbCkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0K KyBbMSwyKSB8IHtbMjAxOC0wMy0wMywyMDE4LTA0LTA0KX0KKyBbMiwzKSB8IHtbMjAxOC0wMS0w MSwyMDE4LTAxLTA1KX0KKyBbMyw0KSB8IHtbMjAxOC0wMS0wMSwpfQorKDQgcm93cykKKwogLS0K IC0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBhbmQgYSBVTklRVUUgY29uc3RyYWludAog LS0KQEAgLTgyOCw2ICs4OTcsMzU4IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcK IAkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKIEVSUk9SOiAg aW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5n IFBFUklPRAogLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIG11bHRpcmFuZ2UgcmVmZXJlbmNlcyBt dWx0aXJhbmdlCistLQorLS0gQ2FuJ3QgY3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgbXVs dGlyYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGludDRtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrMiBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mazIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsyIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5z ICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50 NG11bHRpcmFuZ2UgYW5kIGRhdGVtdWx0aXJhbmdlLgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZzsKKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNF UyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVm ZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZQorLS0gKHBhcmVudF9p ZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0 IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMg UEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRh YmxlCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZworKTsKK0VSUk9SOiAgbnVtYmVyIG9mIHJlZmVyZW5jaW5nIGFuZCByZWZlcmVu Y2VkIGNvbHVtbnMgZm9yIGZvcmVpZ24ga2V5IGRpc2FncmVlCistLSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCkK Kyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0 YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVO Q0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlw YXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lk KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7 CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxl IGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRo ZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKFRoaXMgaXMgbm90IHBlcm1pdHRlZCBieSB0aGUgU1FM IHN0YW5kYXJkLiBTZWUgMTEuOCBzeW50YXggcnVsZSA0Yi4pCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0 aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2lu ZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZF UkVOQ0VTIFtpbXBsaWNpdF0KKy0tIFRoaXMgZmluZHMgdGhlIFBLIChvbWl0dGluZyB0aGUgV0lU SE9VVCBPVkVSTEFQUyBlbGVtZW50KSwKKy0tIGJ1dCBpdCdzIG5vdCBhIGItdHJlZSBpbmRleCwg c28gaXQgZmFpbHMgYW55d2F5LgorLS0gQW55d2F5IGl0IG11c3QgZmFpbCBiZWNhdXNlIHRoZSB0 d28gc2lkZXMgaGF2ZSBhIGRpZmZlcmVudCBkZWZpbml0aW9uIG9mICJ1bmlxdWUiLgorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxp ZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZwor KTsKK0VSUk9SOiAgb25seSBiLXRyZWUgaW5kZXhlcyBhcmUgc3VwcG9ydGVkIGZvciBmb3JlaWdu IGtleXMKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29s dW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgaWQpCispOworRVJST1I6 ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1 cGxpY2F0ZXMKKy0tIFR3byBzY2FsYXIgY29sdW1ucworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFu Z2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgUEVSSU9E IHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgICAgICAgICAg VGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyIKKyAgIENvbHVtbiAgIHwg ICAgICBUeXBlICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisg dmFsaWRfYXQgICB8IGRhdGVtdWx0aXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyBw YXJlbnRfaWQxIHwgaW50NHJhbmdlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBh cmVudF9pZDIgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitJbmRl eGVzOgorICAgICJ0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayIgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6Cisg ICAgInRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJu ZzIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZzsKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCist LQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsK KwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1 bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2Us CisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nCisgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyIKKyAgIENvbHVtbiAgIHwgICAgICBUeXBlICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAg ICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgICB8IGRhdGVtdWx0aXJhbmdlIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19w ayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1r ZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrIiBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZzIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworLS0gc2hv dWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfZmsyCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBh cmVudF9pZCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCBpZCk7CitF UlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRh aW4gZHVwbGljYXRlcworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScpOworLS0g c2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg InRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAyLDIwMTgtMDQtMDEpfSkgaXMgbm90IHBy ZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX21sdHJuZyIuCistLSBva2F5IGFnYWluOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tCistLSB0ZXN0IHBn X2dldF9jb25zdHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19mayc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25z dHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcoaWQsIFBFUklPRCB2YWxpZF9hdCkK KygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAxJykpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDQtMDEnKSksICdbMSwyKScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQs IHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKX0pIGlzIG5vdCBwcmVz ZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciLgorLS0gbm93IGl0IHNob3VsZCB3b3JrOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAzJywgJzIwMTgtMDMtMDMnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNpbmcgdXBkYXRlcworLS0KK1VQREFURSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAz LTAxJykpIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDUtMDEnKSkgV0hFUkUgaWQgPSAnWzEsMiknOworRVJS T1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAx OC0wMS0wMiwyMDE4LTA1LTAxKX0pIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9t bHRybmciLgorVVBEQVRFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgU0VUIHBhcmVudF9pZCA9 ICdbOCw5KScgV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9u IHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIgorREVUQUlMOiAgS2V5IChw YXJlbnRfaWQsIHZhbGlkX2F0KT0oWzgsOSksIHtbMjAxOC0wMS0wMiwyMDE4LTAzLTAxKX0pIGlz IG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciLgorLS0gQUxURVIgRksgREVG RVJSQUJMRQorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMKKyAgICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAorICAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CisgIElOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSksICdbNSw2KScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2Zr CisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7IC0tc2hvdWxkIG5vdCBmYWlsIHlldC4KK0NP TU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIuCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8g QUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmlj IGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZl biB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBp c24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUs NiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KSk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZDoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyIuCistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKwlPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0 ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykp KTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkgV0hFUkUgaWQgPSAnWzUsNikn OworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBp ZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMt MDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIGEgUEsgdXBkYXRlIHRo YXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX21s dHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEn LCAnMjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIHRo ZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3 LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg e1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n CisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7 CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNu J3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBu dW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSksCisg ICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0w My0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBk ZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJu ZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m azsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorCU9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRz IGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFu Z2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVy ZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9t bHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n Ii4KKy0tCiAtLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlcwogLS0KIENSRUFURSBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0 X292ZXJsYXBzLnNxbAppbmRleCA0OGJjYWExOGEwOS4uOGY5ODMyYmE3ODEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC02OSw2ICs2OSwyNiBAQCBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrOwog RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogRFJPUCBUWVBFIHRleHRyYW5nZTI7CiAKKy0tIFBL IHdpdGggb25lIGNvbHVtbiBwbHVzIGEgbXVsdGlyYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9tbHRybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfbWx0cm5nCisKKy0tIFBLIHdpdGgg dHdvIGNvbHVtbnMgcGx1cyBhIG11bHRpcmFuZ2U6CistLSBXZSBkb24ndCBkcm9wIHRoaXMgdGFi bGUgYmVjYXVzZSB0ZXN0cyBiZWxvdyBhbHNvIG5lZWQgbXVsdGlwbGUgc2NhbGFyIGNvbHVtbnMu CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCisJaWQxIGludDRyYW5nZSwKKwlpZDIg aW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfbWx0cm5nMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispOworXGQgdGVtcG9yYWxfbWx0cm5nMgorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50 ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0 cm5nMl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9N IHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9tbHRybmcyX3BrJzsKKwog LS0gVU5JUVVFIHdpdGggbm8gY29sdW1ucyBqdXN0IFdJVEhPVVQgT1ZFUkxBUFM6CiAKIENSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTIwNyw2ICsyMjcsMTkgQEAgSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKE5VTEwsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOwogSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7 CiAKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wMi0wMycpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDMn LCAnMjAxOC0wNC0wNCcpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCBOVUxMKSkpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKIC0tCiAt LSB0ZXN0IGEgcmFuZ2Ugd2l0aCBib3RoIGEgUEsgYW5kIGEgVU5JUVVFIGNvbnN0cmFpbnQKIC0t CkBAIC02OTksNiArNzMyLDMyNSBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJ CVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwogCistLQorLS0gdGVzdCBGT1JF SUdOIEtFWSwgbXVsdGlyYW5nZSByZWZlcmVuY2VzIG11bHRpcmFuZ2UKKy0tCisKKy0tIENhbid0 IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIG11bHRpcmFuZ2UgdHlwZQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9h dCBpbnQ0bXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wazIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsy IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRh dGVtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6Cist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkK Ky0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxp Y2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9tbHRybmcKKyk7CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp IFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCkKKyk7CistLSAocGFy ZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRl bXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQg dGFibGU6CistLSAoVGhpcyBpcyBub3QgcGVybWl0dGVkIGJ5IHRoZSBTUUwgc3RhbmRhcmQuIFNl ZSAxMS44IHN5bnRheCBydWxlIDRiLikKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFy ZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworKTsKKy0tIChw YXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gVGhpcyBmaW5kcyB0aGUgUEsgKG9t aXR0aW5nIHRoZSBXSVRIT1VUIE9WRVJMQVBTIGVsZW1lbnQpLAorLS0gYnV0IGl0J3Mgbm90IGEg Yi10cmVlIGluZGV4LCBzbyBpdCBmYWlscyBhbnl3YXkuCistLSBBbnl3YXkgaXQgbXVzdCBmYWls IGJlY2F1c2UgdGhlIHR3byBzaWRlcyBoYXZlIGEgZGlmZmVyZW50IGRlZmluaXRpb24gb2YgInVu aXF1ZSIuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50 NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2Us CisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfbWx0cm5nCispOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSBy ZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCBwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIGlk KQorKTsKKworLS0gVHdvIHNjYWxhciBjb2x1bW5zCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQxIGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKK0RST1AgVEFCTEUg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFE RCBDT05TVFJBSU5UCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7Cist LSBUd28gc2NhbGFyIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJl bnRfaWQxIGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBs aWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsyCisJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwlSRUZFUkVOQ0VTIHRl bXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCBpZCk7CisKKy0tCistLSB0ZXN0IHdpdGggcm93cyBh bHJlYWR5CistLQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnKSksICdbMSwyKScp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQt MDEnKSksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBva2F5IGFnYWlu OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor CVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKworLS0K Ky0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCisKK1NFTEVDVCBwZ19nZXRfY29uc3Ry YWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfZmsnOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNl cnRzCistLQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFp bDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMicsICcyMDE4LTA0LTAxJykpLCAnWzEsMiknKTsKKy0tIG5vdyBpdCBzaG91bGQgd29y azoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAz JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJykpLCAnWzEsMiknKTsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKworVVBEQVRFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywg JzIwMTgtMDMtMDEnKSkgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gc2hvdWxkIGZhaWw6CitVUERB VEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNS0wMScpKSBXSEVSRSBpZCA9ICdbMSwy KSc7CitVUERBVEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgcGFyZW50X2lkID0gJ1s4 LDkpJyBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKKworQkVH SU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK KyAgICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpLAorICAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSks ICdbNSw2KScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgREVGRVJS QUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IFdIRVJFIGlkID0gJ1s1LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBz aG91bGQgZmFpbCBoZXJlLgorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8g QUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVy aWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKSkgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBl dmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdl IGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdb NSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScs ICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0w MScpKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJykpOworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBE QVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSk7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklD VAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJF TkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJT04gVVBEQVRFIFJF U1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmlj IGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZl biB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBp c24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUs NiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KSk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZDoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9O CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBhIFBLIGRlbGV0 ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykp KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBh IFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJl ZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSksCisgICgnWzUsNiknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUn LCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcg V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWls cyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mazsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorCU9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2Ug aXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT CisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx JykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5j ZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpOworCiAtLQogLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXMKIC0tCi0tIAoy LjQyLjAKCg== --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0002-Add-temporal-FOREIGN-KEYs.patch" Content-Disposition: attachment; filename="v28-0002-Add-temporal-FOREIGN-KEYs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofcd1 RnJvbSA5OWVjYmM2MjM4MmI2NGQ5MDg1OWE3MzRkMzUxNWNkNjRkYzE3NTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMjggRmViIDIwMjQgMjE6NDU6MzcgLTA4MDAKU3ViamVj dDogW1BBVENIIHYyOCAyLzldIEFkZCB0ZW1wb3JhbCBGT1JFSUdOIEtFWXMKCi0gQWRkZWQgYmlz b24gc3VwcG9ydCBmb3IgdGVtcG9yYWwgRk9SRUlHTiBLRVlzLiBUaGV5IHNob3VsZCBoYXZlIGEK ICByYW5nZSBjb2x1bW4gZm9yIHRoZSB0ZW1wb3JhbCBjb21wb25lbnQuIChNdWx0aXJhbmdlIGFu ZCBvdGhlciB0eXBlcwogIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4pCi0gQWRkZWQgdGVtcG9yYWwg dHJpZ2dlciBmdW5jdGlvbnMgYWtpbiB0byBleGlzdGluZyBSSSB0cmlnZ2VyCiAgZnVuY3Rpb25z LgotIERvbid0IHlldCBzdXBwb3J0IE9OIHtVUERBVEUsREVMRVRFfSB7Q0FTQ0FERSxTRVQgTlVM TCxTRVQgREVGQVVMVH0uCi0gQWRkZWQgcGdfZHVtcCBzdXBwb3J0LgotIFNob3cgdGhlIGNvcnJl Y3Qgc3ludGF4IGluIHBzcWwgXGQgb3V0cHV0IGZvciBmb3JlaWduIGtleXMuCi0gQWRkZWQgdGVz dHMgYW5kIGRvY3VtZW50YXRpb24uCi0tLQogLi4uL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQgIHwgIDQ4ICsrCiBjb250cmliL2J0cmVlX2dpc3Qvc3FsL3dpdGhvdXRf b3ZlcmxhcHMuc3FsICAgfCAgMjggKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAg ICAgICAgICAgICAgIHwgICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s ICAgICAgICAgICAgfCAgNDEgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5j ICAgICAgICAgICB8ICA0MyArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAg ICAgICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAg ICAgICAgICAgfCAyMTIgKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICAgICAgICAgfCAgNDUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5j ICAgICAgICAgICB8IDEyOCArKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMg ICAgICAgICAgICAgfCAgMTkgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5o ICAgICAgICAgICB8ICAxOSArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 ICAgICB8IDY2NCArKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsICAgICB8IDYzOCArKysrKysrKysrKysrKysrLQogMTYgZmlsZXMgY2hh bmdlZCwgMTc4MyBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvY29udHJp Yi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CmluZGV4IGJlNTJjNTIy ZTg5Li4xODg1NjkwMGRlZCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVk L3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93 aXRob3V0X292ZXJsYXBzLm91dApAQCAtNDIsMyArNDIsNTEgQEAgSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIFZBTFVFUwogICAoMSwgJ1syMDAwLTA2LTAxLDIwMDEtMDEtMDEpJyk7CiBFUlJPUjog IGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVt cG9yYWxfcm5nX3BrIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPSgxLCBbMDYtMDEtMjAw MCwwMS0wMS0yMDAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQp PSgxLCBbMDEtMDEtMjAwMCwwMS0wMS0yMDAxKSkuCistLSBGb3JlaWduIGtleQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorICBpZCBpbnRlZ2VyLAorICB2YWxpZF9hdCBkYXRl cmFuZ2UsCisgIHBhcmVudF9pZCBpbnRlZ2VyLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfZmtfcm5nMnJuZyIKKyAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgIHwgZGF0ZXJhbmdlIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnJuZ19wayIgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3Ry YWludHM6CisgICAgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcoaWQsIFBFUklPRCB2 YWxpZF9hdCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnJuZ19mayc7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0gb2theQorSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAgKDEsICdbMjAwMC0wMS0wMSwyMDAx LTAxLTAxKScsIDEpOworLS0gb2theSBzcGFubmluZyB0d28gcGFyZW50IHJlY29yZHM6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIFZBTFVFUworICAoMiwgJ1syMDAwLTAxLTAxLDIw MDItMDEtMDEpJywgMSk7CistLSBrZXkgaXMgbWlzc2luZworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyBWQUxVRVMKKyAgKDMsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKScsIDMpOwor RVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIgor REVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oMywgWzAxLTAxLTIwMDAsMDEtMDEt MjAwMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgorLS0ga2V5IGV4 aXN0IGJ1dCBpcyBvdXRzaWRlIHJhbmdlCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IFZBTFVFUworICAoNCwgJ1syMDAxLTAxLTAxLDIwMDItMDEtMDEpJywgMik7CitFUlJPUjogIGlu c2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBL ZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPSgyLCBbMDEtMDEtMjAwMSwwMS0wMS0yMDAyKSkgaXMg bm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCistLSBrZXkgZXhpc3QgYnV0IGlz IHBhcnRseSBvdXRzaWRlIHJhbmdlCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIFZB TFVFUworICAoNSwgJ1syMDAwLTAxLTAxLDIwMDItMDEtMDEpJywgMik7CitFUlJPUjogIGluc2Vy dCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkg KHBhcmVudF9pZCwgdmFsaWRfYXQpPSgyLCBbMDEtMDEtMjAwMCwwMS0wMS0yMDAyKSkgaXMgbm90 IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCmRpZmYgLS1naXQgYS9jb250cmliL2J0 cmVlX2dpc3Qvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvY29udHJpYi9idHJlZV9naXN0L3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCA0MzNjNjA5YWIyMi4uYjFiNTgxZmNhYmMgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysr IGIvY29udHJpYi9idHJlZV9naXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMjMsMyAr MjMsMzEgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUwogLS0gc2hvdWxkIGZhaWw6 CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTCiAgICgxLCAnWzIwMDAtMDYtMDEsMjAw MS0wMS0wMSknKTsKKworLS0gRm9yZWlnbiBrZXkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nICgKKyAgaWQgaW50ZWdlciwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRf aWQgaW50ZWdlciwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOwor XGQgdGVtcG9yYWxfZmtfcm5nMnJuZworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnJuZ19m ayc7CisKKy0tIG9rYXkKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVTCisg ICgxLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0wMSknLCAxKTsKKy0tIG9rYXkgc3Bhbm5pbmcgdHdv IHBhcmVudCByZWNvcmRzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMK KyAgKDIsICdbMjAwMC0wMS0wMSwyMDAyLTAxLTAxKScsIDEpOworLS0ga2V5IGlzIG1pc3NpbmcK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVTCisgICgzLCAnWzIwMDAtMDEt MDEsMjAwMS0wMS0wMSknLCAzKTsKKy0tIGtleSBleGlzdCBidXQgaXMgb3V0c2lkZSByYW5nZQor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAgKDQsICdbMjAwMS0wMS0w MSwyMDAyLTAxLTAxKScsIDIpOworLS0ga2V5IGV4aXN0IGJ1dCBpcyBwYXJ0bHkgb3V0c2lkZSBy YW5nZQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAgKDUsICdbMjAw MC0wMS0wMSwyMDAyLTAxLTAxKScsIDIpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCAzODdhMTRiMTg2OS4u YTI1NjUwNjFmZTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0yNzI1LDcgKzI3MjUsOCBAQCBTQ1JBTS1T SEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+ OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CiAgICAgICAgVGhp cyBjb25zdHJhaW50IGlzIGRlZmluZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9s aXRlcmFsPgotICAgICAgIChmb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlxdWUgY29uc3RyYWludHMp LgorICAgICAgIChmb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlxdWUgY29uc3RyYWludHMpIG9yIDxs aXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4KKyAgICAgICAoZm9yIGZvcmVpZ24ga2V5cykuCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5z Z21sCmluZGV4IDRjYmFhY2NhZjdjLi5lYWYzYzRiNzA1YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90 YWJsZS5zZ21sCkBAIC04MSw3ICs4MSw3IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7 IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiAgIFVO SVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZF UkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJz PC9yZXBsYWNlYWJsZT4gfAogICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZF UkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJz PC9yZXBsYWNlYWJsZT4gfAogICBFWENMVURFIFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IF0gKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9yZXBsYWNlYWJsZT4gV0lUSCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3I8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSAp IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNl YWJsZT4gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcmVkaWNhdGU8 L3JlcGxhY2VhYmxlPiApIF0gfAotICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgUkVGRVJFTkNF UyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBb ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICkgXQorICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgUkVG RVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2Vh YmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8IE1BVENI IFBBUlRJQUwgfCBNQVRDSCBTSU1QTEUgXSBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUKIGNsYXNz PSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERB VEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVw bGFjZWFibGU+IF0gfQogWyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFCTEUgXSBbIElOSVRJQUxM WSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQpAQCAtMTE1Miw4ICsxMTUyLDggQEAg V0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0 YWJsZS1wYXJtcy1yZWZlcmVuY2VzIj4KICAgICA8dGVybT48bGl0ZXJhbD5SRUZFUkVOQ0VTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gKSBd IFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1hdGNodHlwZTwvcmVwbGFj ZWFibGU+IF0gWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVy ZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF08L2xpdGVy YWw+IChjb2x1bW4gY29uc3RyYWludCk8L3Rlcm0+CiAKLSAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJ R04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uIF0gKQotICAgIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKyAgIDx0ZXJt PjxsaXRlcmFsPkZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKQorICAgIFJFRkVS RU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJs ZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSApIF0KICAgICBbIE1BVENIIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBPTiBERUxF VEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVw bGFjZWFibGU+IF0KICAgICBbIE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXTwvbGl0ZXJhbD4KQEAgLTExNjks NyArMTE2OSwyOCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgcHJpbWFyeSBrZXkg b2YgdGhlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFi bGU+CiAgICAgICBpcyB1c2VkLiAgT3RoZXJ3aXNlLCB0aGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+CiAgICAgICBsaXN0IG11c3QgcmVmZXIg dG8gdGhlIGNvbHVtbnMgb2YgYSBub24tZGVmZXJyYWJsZSB1bmlxdWUgb3IgcHJpbWFyeSBrZXkK LSAgICAgIGNvbnN0cmFpbnQgb3IgYmUgdGhlIGNvbHVtbnMgb2YgYSBub24tcGFydGlhbCB1bmlx dWUgaW5kZXguICBUaGUgdXNlcgorICAgICAgY29uc3RyYWludCBvciBiZSB0aGUgY29sdW1ucyBv ZiBhIG5vbi1wYXJ0aWFsIHVuaXF1ZSBpbmRleC4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJh PgorICAgICAgSWYgdGhlIGxhc3QgY29sdW1uIGlzIG1hcmtlZCB3aXRoIDxsaXRlcmFsPlBFUklP RDwvbGl0ZXJhbD4sCisgICAgICBpdCBpcyB0cmVhdGVkIGluIGEgc3BlY2lhbCB3YXkuCisgICAg ICBXaGlsZSB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gY29sdW1ucyBhcmUgY29t cGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICAoYW5kIHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25l IG9mIHRoZW0pLAorICAgICAgdGhlIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gY29sdW1uIGlz IG5vdC4KKyAgICAgIEluc3RlYWQgdGhlIGNvbnN0cmFpbnQgaXMgY29uc2lkZXJlZCBzYXRpc2Zp ZWQKKyAgICAgIGlmIHRoZSByZWZlcmVuY2VkIHRhYmxlIGhhcyBtYXRjaGluZyByZWNvcmRzCisg ICAgICAoYmFzZWQgb24gdGhlIG5vbi08bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHBhcnRzIG9m IHRoZSBrZXkpCisgICAgICB3aG9zZSBjb21iaW5lZCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+ IHZhbHVlcyBjb21wbGV0ZWx5IGNvdmVyCisgICAgICB0aGUgcmVmZXJlbmNpbmcgcmVjb3JkJ3Mu CisgICAgICBJbiBvdGhlciB3b3JkcywgdGhlIHJlZmVyZW5jZSBtdXN0IGhhdmUgYSByZWZlcmVu dCBmb3IgaXRzIGVudGlyZSBkdXJhdGlvbi4KKyAgICAgIFRoaXMgY29sdW1uIG11c3QgYmUgYSBj b2x1bW4gd2l0aCBhIHJhbmdlIHR5cGUuCisgICAgICBJbiBhZGRpdGlvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZSBtdXN0IGhhdmUgYSBwcmltYXJ5IGtleQorICAgICAgb3IgdW5pcXVlIGNvbnN0cmFp bnQgZGVjbGFyZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUIFBPUlRJT048L2xpdGVyYWw+LgorICAg ICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgdXNlcgogICAgICAgbXVzdCBoYXZl IDxsaXRlcmFsPlJFRkVSRU5DRVM8L2xpdGVyYWw+IHBlcm1pc3Npb24gb24gdGhlIHJlZmVyZW5j ZWQKICAgICAgIHRhYmxlIChlaXRoZXIgdGhlIHdob2xlIHRhYmxlLCBvciB0aGUgc3BlY2lmaWMg cmVmZXJlbmNlZCBjb2x1bW5zKS4gIFRoZQogICAgICAgYWRkaXRpb24gb2YgYSBmb3JlaWduIGtl eSBjb25zdHJhaW50IHJlcXVpcmVzIGEKQEAgLTEyNDMsNiArMTI2NCwxMCBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBs YWNlYWJsZT4sIFJFTQogICAgICAgICAgIHZhbHVlcyBvZiB0aGUgcmVmZXJlbmNpbmcgY29sdW1u KHMpIHRvIHRoZSBuZXcgdmFsdWVzIG9mIHRoZQogICAgICAgICAgIHJlZmVyZW5jZWQgY29sdW1u cywgcmVzcGVjdGl2ZWx5LgogICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3Vw cG9ydGVkLgorICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwv dmFybGlzdGVudHJ5PgogCkBAIC0xMjU0LDYgKzEyNzksMTAgQEAgV0lUSCAoIE1PRFVMVVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+ LCBSRU0KICAgICAgICAgICByZWZlcmVuY2luZyBjb2x1bW5zLCB0byBudWxsLiBBIHN1YnNldCBv ZiBjb2x1bW5zIGNhbiBvbmx5IGJlCiAgICAgICAgICAgc3BlY2lmaWVkIGZvciA8bGl0ZXJhbD5P TiBERUxFVEU8L2xpdGVyYWw+IGFjdGlvbnMuCiAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAg IDxwYXJhPgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoaXMgb3B0aW9u IGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTEyNjcsNiArMTI5NiwxMCBAQCBXSVRIICgg TU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgIChUaGVyZSBtdXN0IGJlIGEgcm93IGluIHRoZSBy ZWZlcmVuY2VkIHRhYmxlIG1hdGNoaW5nIHRoZSBkZWZhdWx0CiAgICAgICAgICAgdmFsdWVzLCBp ZiB0aGV5IGFyZSBub3QgbnVsbCwgb3IgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwuKQogICAgICAg ICAgPC9wYXJhPgorCisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZv cmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgPC9wYXJh PgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgogICAgICAgPC92 YXJpYWJsZWxpc3Q+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFp bnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCmluZGV4IDVlYTlkZjIx OWMxLi4yNzU4MWMwNTVmYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25z dHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTE1 LDYgKzE1LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2dl bmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKICNpbmNsdWRlICJhY2Nlc3Mv dGFibGUuaCIKQEAgLTE2MDUsNiArMTYwNiw0OCBAQCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJv dyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCSpudW1ma3MgPSBudW1rZXlzOwogfQog CisvKgorICogRmluZEZrUGVyaW9kT3BlcnMgLQorICoKKyAqIExvb2tzIHVwIHRoZSBvcGVyYXRv ciBvaWRzIHVzZWQgZm9yIHRoZSBQRVJJT0QgcGFydCBvZiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5 LgorICogVGhlIG9wY2xhc3Mgc2hvdWxkIGJlIHRoZSBvcGNsYXNzIG9mIHRoYXQgUEVSSU9EIGVs ZW1lbnQuCisgKiBFdmVyeXRoaW5nIGVsc2UgaXMgYW4gb3V0cHV0OiBwZXJpb2RvcGVyb2lkIGlz IHRoZSBDb250YWluZWRCeSBvcGVyYXRvciBmb3IKKyAqIHR5cGVzIG1hdGNoaW5nIHRoZSBQRVJJ T0QgZWxlbWVudC4KKyAqIEFuZCBhZ2dlZHBlcmlvZG9wZXJvaWQgaXMgYWxzbyBhIENvbnRhaW5l ZEJ5IG9wZXJhdG9yLAorICogYnV0IG9uZSB3aG9zZSByaHMgaXMgYW55bXVsdGlyYW5nZS4KKyAq IFRoYXQgd2F5IGZvcmVpZ24ga2V5cyBjYW4gY29tcGFyZSBma2F0dHIgPEAgcmFuZ2VfYWdnKHBr YXR0cikuCisgKi8KK3ZvaWQKK0ZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAorCQkJCSAg T2lkICpwZXJpb2RvcGVyb2lkLAorCQkJCSAgT2lkICphZ2dlZHBlcmlvZG9wZXJvaWQpCit7CisJ U3RyYXRlZ3lOdW1iZXIgc3RyYXQ7CisKKwkvKgorCSAqIExvb2sgdXAgdGhlIENvbnRhaW5lZEJ5 IG9wZXJhdG9yIHdob3NlIGxocyBhbmQgcmhzIGFyZSB0aGUgb3BjbGFzcydzIHR5cGUuCisJICog V2UgdXNlIHRoaXMgdG8gb3B0aW1pemUgUkkgY2hlY2tzOiBpZiB0aGUgbmV3IHZhbHVlIGluY2x1 ZGVzIGFsbAorCSAqIG9mIHRoZSBvbGQgdmFsdWUsIHRoZW4gd2UgY2FuIHRyZWF0IHRoZSBhdHRy aWJ1dGUgYXMgaWYgaXQgZGlkbid0IGNoYW5nZSwKKwkgKiBhbmQgc2tpcCB0aGUgUkkgY2hlY2su CisJICovCisJc3RyYXQgPSBSVENvbnRhaW5lZEJ5U3RyYXRlZ3lOdW1iZXI7CisJR2V0T3BlcmF0 b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3BjbGFzcywKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLAor CQkJCQkJCQkJIHBlcmlvZG9wZXJvaWQsCisJCQkJCQkJCQkgJnN0cmF0KTsKKworCS8qCisJICog Tm93IGxvb2sgdXAgdGhlIENvbnRhaW5lZEJ5IG9wZXJhdG9yLgorCSAqIEl0cyBsZWZ0IGFyZyBt dXN0IGJlIHRoZSB0eXBlIG9mIHRoZSBjb2x1bW4gKG9yIHJhdGhlciBvZiB0aGUgb3BjbGFzcyku CisJICogSXRzIHJpZ2h0IGFyZyBtdXN0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiB0aGUgc3Vw cG9ydCBwcm9jLgorCSAqLworCXN0cmF0ID0gUlRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVyOwor CUdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KG9wY2xhc3MsCisJCQkJCQkJCQkgQU5Z TVVMVElSQU5HRU9JRCwKKwkJCQkJCQkJCSBhZ2dlZHBlcmlvZG9wZXJvaWQsCisJCQkJCQkJCQkg JnN0cmF0KTsKK30KKwogLyoKICAqIERldGVybWluZSB3aGV0aGVyIGEgcmVsYXRpb24gY2FuIGJl IHByb3ZlbiBmdW5jdGlvbmFsbHkgZGVwZW5kZW50IG9uCiAgKiBhIHNldCBvZiBncm91cGluZyBj b2x1bW5zLiAgSWYgc28sIHJldHVybiB0cnVlIGFuZCBhZGQgdGhlIHBnX2NvbnN0cmFpbnQKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggZGU4OWJlOGQ3NTkuLjllMjUxYjQ5YmNmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMjE4NSw4ICsyMTg1LDEwIEBAIENvbXB1dGVJbmRl eEF0dHJzKEluZGV4SW5mbyAqaW5kZXhJbmZvLAogCQkJCXN0cmF0ID0gUlRPdmVybGFwU3RyYXRl Z3lOdW1iZXI7CiAJCQllbHNlCiAJCQkJc3RyYXQgPSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI7Ci0J CQlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNzT2lkc1thdHRuXSwgYXR0 dHlwZSwKLQkJCQkJCQkJCQkJICZvcGlkLCAmc3RyYXQpOworCQkJR2V0T3BlcmF0b3JGcm9tV2Vs bEtub3duU3RyYXRlZ3kob3BjbGFzc09pZHNbYXR0bl0sCisJCQkJCQkJCQkJCSBJbnZhbGlkT2lk LAorCQkJCQkJCQkJCQkgJm9waWQsCisJCQkJCQkJCQkJCSAmc3RyYXQpOwogCQkJaW5kZXhJbmZv LT5paV9FeGNsdXNpb25PcHNbYXR0bl0gPSBvcGlkOwogCQkJaW5kZXhJbmZvLT5paV9FeGNsdXNp b25Qcm9jc1thdHRuXSA9IGdldF9vcGNvZGUob3BpZCk7CiAJCQlpbmRleEluZm8tPmlpX0V4Y2x1 c2lvblN0cmF0c1thdHRuXSA9IHN0cmF0OwpAQCAtMjQyNSw3ICsyNDI3LDcgQEAgR2V0RGVmYXVs dE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCkKICAqIEdldE9wZXJhdG9yRnJvbVdlbGxL bm93blN0cmF0ZWd5CiAgKgogICogb3BjbGFzcyAtIHRoZSBvcGNsYXNzIHRvIHVzZQotICogYXR0 dHlwZSAtIHRoZSB0eXBlIHRvIGFzayBhYm91dAorICogcmhzdHlwZSAtIHRoZSB0eXBlIGZvciB0 aGUgcmlnaHQtaGFuZCBzaWRlLCBvciBJbnZhbGlkT2lkIHRvIHVzZSB0aGUgdHlwZSBvZiB0aGUg Z2l2ZW4gb3BjbGFzcy4KICAqIG9waWQgLSBob2xkcyB0aGUgb3BlcmF0b3Igd2UgZm91bmQKICAq IHN0cmF0IC0gaG9sZHMgdGhlIGlucHV0IGFuZCBvdXRwdXQgc3RyYXRlZ3kgbnVtYmVyCiAgKgpA QCAtMjQzOCwxNCArMjQ0MCwzMCBAQCBHZXREZWZhdWx0T3BDbGFzcyhPaWQgdHlwZV9pZCwgT2lk IGFtX2lkKQogICogSW52YWxpZFN0cmF0ZWd5LgogICovCiB2b2lkCi1HZXRPcGVyYXRvckZyb21X ZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIGF0dHR5cGUsCi0JCQkJCQkJCSBPaWQg Km9waWQsIFN0cmF0ZWd5TnVtYmVyICpzdHJhdCkKK0dldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0 cmF0ZWd5KE9pZCBvcGNsYXNzLAorCQkJCQkJCQkgT2lkIHJoc3R5cGUsCisJCQkJCQkJCSBPaWQg Km9waWQsCisJCQkJCQkJCSBTdHJhdGVneU51bWJlciAqc3RyYXQpCiB7CiAJT2lkCQkJb3BmYW1p bHk7CiAJT2lkCQkJb3BjaW50eXBlOwogCVN0cmF0ZWd5TnVtYmVyIGluc3RyYXQgPSAqc3RyYXQ7 CisJY2hhcgkgICAqZXJyc3RyOwogCi0JQXNzZXJ0KGluc3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5 TnVtYmVyIHx8IGluc3RyYXQgPT0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXIpOworCXN3aXRjaCAo aW5zdHJhdCkKKwl7CisJCWNhc2UgUlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJZXJyc3RyID0g ImNvdWxkIG5vdCBpZGVudGlmeSBhbiBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAlcyI7CisJ CQlicmVhazsKKwkJY2FzZSBSVE92ZXJsYXBTdHJhdGVneU51bWJlcjoKKwkJCWVycnN0ciA9ICJj b3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0b3IgZm9yIHR5cGUgJXMiOworCQkJ YnJlYWs7CisJCWNhc2UgUlRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVyOgorCQkJZXJyc3RyID0g ImNvdWxkIG5vdCBpZGVudGlmeSBhIGNvbnRhaW5lZCBieSBvcGVyYXRvciBmb3IgdHlwZSAlcyI7 CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBzdHJh dGVneSBudW1iZXIgJXUiLCBpbnN0cmF0KTsKKwl9CiAKIAkqb3BpZCA9IEludmFsaWRPaWQ7CiAK QEAgLTI0NjgsMTYgKzI0ODYsMTkgQEAgR2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3ko T2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAogCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQllcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCi0JCQkJCWluc3RyYXQgPT0gUlRFcXVhbFN0 cmF0ZWd5TnVtYmVyID8KLQkJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxp dHkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgotCQkJ CQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBvdmVybGFwcyBvcGVyYXRvciBmb3IgdHlw ZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUpKSwKKwkJCQkJZXJybXNnKGVycnN0ciwgZm9y bWF0X3R5cGVfYmUob3BjaW50eXBlKSksCiAJCQkJCWVycmRldGFpbCgiQ291bGQgbm90IHRyYW5z bGF0ZSBzdHJhdGVneSBudW1iZXIgJWQgZm9yIG9wZXJhdG9yIGNsYXNzIFwiJXNcIiBmb3IgYWNj ZXNzIG1ldGhvZCBcIiVzXCIuIiwKIAkJCQkJCQkgIGluc3RyYXQsIE5hbWVTdHIoKChGb3JtX3Bn X29wY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpLT5vcGNuYW1lKSwgImdpc3QiKSk7Ci0KLQkJCVJl bGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCX0KIAotCQkqb3BpZCA9IGdldF9vcGZhbWlseV9tZW1i ZXIob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCAqc3RyYXQpOworCQkvKgorCQkgKiBX ZSBwYXJhbWV0ZXJpemUgcmhzdHlwZSBzbyBmb3JlaWduIGtleXMgY2FuIGFzayBmb3IgYSA8QCBv cGVyYXRvcgorCQkgKiB3aG9zZSByaHMgbWF0Y2hlcyB0aGUgYWdncmVnYXRlIGZ1bmN0aW9uLiBG b3IgZXhhbXBsZSByYW5nZV9hZ2cKKwkJICogcmV0dXJucyBhbnltdWx0aXJhbmdlLgorCQkgKi8K KwkJaWYgKCFPaWRJc1ZhbGlkKHJoc3R5cGUpKQorCQkJcmhzdHlwZSA9IG9wY2ludHlwZTsKKwkJ Km9waWQgPSBnZXRfb3BmYW1pbHlfbWVtYmVyKG9wZmFtaWx5LCBvcGNpbnR5cGUsIHJoc3R5cGUs ICpzdHJhdCk7CiAJfQogCiAJaWYgKCFPaWRJc1ZhbGlkKCpvcGlkKSkKQEAgLTI0OTAsOSArMjUx MSw3IEBAIEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQg YXR0dHlwZSwKIAogCQllcmVwb3J0KEVSUk9SLAogCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklO RURfT0JKRUNUKSwKLQkJCQlpbnN0cmF0ID09IFJURXF1YWxTdHJhdGVneU51bWJlciA/Ci0JCQkJ ZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHR5cGUg JXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgotCQkJCWVycm1zZygiY291bGQgbm90IGlk ZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUo YXR0dHlwZSkpLAorCQkJCWVycm1zZyhlcnJzdHIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkp LAogCQkJCWVycmRldGFpbCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgb3BlcmF0b3IgaW4gb3BlcmF0 b3IgZmFtaWx5IFwiJXNcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKIAkJCQkJCSAgTmFt ZVN0cigoKEZvcm1fcGdfb3BmYW1pbHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5vcGZuYW1lKSwgImdp c3QiKSk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAyNDcwMjY1NTYxYS4uY2Zk MDZlOTRhYWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xNiw2ICsxNiw3IEBACiAK ICNpbmNsdWRlICJhY2Nlc3MvYXR0bWFwLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCisj aW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5j bHVkZSAiYWNjZXNzL2hlYXBhbV94bG9nLmgiCiAjaW5jbHVkZSAiYWNjZXNzL211bHRpeGFjdC5o IgpAQCAtMjA5LDYgKzIxMCw3IEBAIHR5cGVkZWYgc3RydWN0IE5ld0NvbnN0cmFpbnQKIAlDb25z dHJUeXBlCWNvbnR5cGU7CQkvKiBDSEVDSyBvciBGT1JFSUdOICovCiAJT2lkCQkJcmVmcmVsaWQ7 CQkvKiBQSyByZWwsIGlmIEZPUkVJR04gKi8KIAlPaWQJCQlyZWZpbmRpZDsJCS8qIE9JRCBvZiBQ SydzIGluZGV4LCBpZiBGT1JFSUdOICovCisJYm9vbAkJY29ud2l0aHBlcmlvZDsJLyogV2hldGhl ciB0aGUgbmV3IEZPUkVJR04gS0VZIHVzZXMgUEVSSU9EICovCiAJT2lkCQkJY29uaWQ7CQkJLyog T0lEIG9mIHBnX2NvbnN0cmFpbnQgZW50cnksIGlmIEZPUkVJR04gKi8KIAlOb2RlCSAgICpxdWFs OwkJCS8qIENoZWNrIGV4cHIgb3IgQ09OU1RSX0ZPUkVJR04gQ29uc3RyYWludCAqLwogCUV4cHJT dGF0ZSAgKnF1YWxzdGF0ZTsJCS8qIEV4ZWN1dGlvbiBzdGF0ZSBmb3IgQ0hFQ0sgZXhwciAqLwpA QCAtMzg0LDE2ICszODYsMTYgQEAgc3RhdGljIGludAl0cmFuc2Zvcm1Db2x1bW5OYW1lTGlzdChP aWQgcmVsSWQsIExpc3QgKmNvbExpc3QsCiBzdGF0aWMgaW50CXRyYW5zZm9ybUZrZXlHZXRQcmlt YXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAogCQkJCQkJCQkJICAgTGlzdCAq KmF0dG5hbWVsaXN0LAogCQkJCQkJCQkJICAgaW50MTYgKmF0dG51bXMsIE9pZCAqYXR0dHlwaWRz LAotCQkJCQkJCQkJICAgT2lkICpvcGNsYXNzZXMpOworCQkJCQkJCQkJICAgT2lkICpvcGNsYXNz ZXMsIGJvb2wgKnBrX3BlcmlvZCk7CiBzdGF0aWMgT2lkCXRyYW5zZm9ybUZrZXlDaGVja0F0dHJz KFJlbGF0aW9uIHBrcmVsLAogCQkJCQkJCQkJaW50IG51bWF0dHJzLCBpbnQxNiAqYXR0bnVtcywK LQkJCQkJCQkJCU9pZCAqb3BjbGFzc2VzKTsKKwkJCQkJCQkJCWJvb2wgd2l0aF9wZXJpb2QsIE9p ZCAqb3BjbGFzc2VzKTsKIHN0YXRpYyB2b2lkIGNoZWNrRmtleVBlcm1pc3Npb25zKFJlbGF0aW9u IHJlbCwgaW50MTYgKmF0dG51bXMsIGludCBuYXR0cyk7CiBzdGF0aWMgQ29lcmNpb25QYXRoVHlw ZSBmaW5kRmtleUNhc3QoT2lkIHRhcmdldFR5cGVJZCwgT2lkIHNvdXJjZVR5cGVJZCwKIAkJCQkJ CQkJCSBPaWQgKmZ1bmNpZCk7CiBzdGF0aWMgdm9pZCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJh aW50KGNoYXIgKmNvbm5hbWUsCiAJCQkJCQkJCQkJIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gcGty ZWwsCi0JCQkJCQkJCQkJIE9pZCBwa2luZE9pZCwgT2lkIGNvbnN0cmFpbnRPaWQpOworCQkJCQkJ CQkJCSBPaWQgcGtpbmRPaWQsIE9pZCBjb25zdHJhaW50T2lkLCBib29sIHRlbXBvcmFsKTsKIHN0 YXRpYyB2b2lkIEFUQ29udHJvbGxlcihBbHRlclRhYmxlU3RtdCAqcGFyc2V0cmVlLAogCQkJCQkJ IFJlbGF0aW9uIHJlbCwgTGlzdCAqY21kcywgYm9vbCByZWN1cnNlLCBMT0NLTU9ERSBsb2NrbW9k ZSwKIAkJCQkJCSBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpOwpAQCAtNTA2LDcg KzUwOCw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlz dCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhCiAJCQkJCQkJCQkJCU9pZCAqcGZlcW9w ZXJhdG9ycywgT2lkICpwcGVxb3BlcmF0b3JzLCBPaWQgKmZmZXFvcGVyYXRvcnMsCiAJCQkJCQkJ CQkJCWludCBudW1ma2RlbHNldGNvbHMsIGludDE2ICpma2RlbHNldGNvbHMsCiAJCQkJCQkJCQkJ CWJvb2wgb2xkX2NoZWNrX29rLAotCQkJCQkJCQkJCQlPaWQgcGFyZW50RGVsVHJpZ2dlciwgT2lk IHBhcmVudFVwZFRyaWdnZXIpOworCQkJCQkJCQkJCQlPaWQgcGFyZW50RGVsVHJpZ2dlciwgT2lk IHBhcmVudFVwZFRyaWdnZXIsCisJCQkJCQkJCQkJCWJvb2wgd2l0aF9wZXJpb2QpOwogc3RhdGlj IHZvaWQgdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQx NiAqZmthdHRudW1zLAogCQkJCQkJCQkJCSBpbnQgbnVtZmtzZXRjb2xzLCBjb25zdCBpbnQxNiAq ZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkJCQkgTGlzdCAqZmtzZXRjb2xzKTsKQEAgLTUxNiw3 ICs1MTksOSBAQCBzdGF0aWMgdm9pZCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1 ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCiAJCQkJCQkJCQlPaWQgKnBmZXFvcGVyYXRv cnMsIE9pZCAqcHBlcW9wZXJhdG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAogCQkJCQkJCQkJaW50 IG51bWZrZGVsc2V0Y29scywgaW50MTYgKmZrZGVsc2V0Y29scywKIAkJCQkJCQkJCWJvb2wgb2xk X2NoZWNrX29rLCBMT0NLTU9ERSBsb2NrbW9kZSwKLQkJCQkJCQkJCU9pZCBwYXJlbnRJbnNUcmln Z2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlcik7CisJCQkJCQkJCQlPaWQgcGFyZW50SW5zVHJpZ2dl ciwgT2lkIHBhcmVudFVwZFRyaWdnZXIsCisJCQkJCQkJCQlib29sIHdpdGhfcGVyaW9kKTsKKwog c3RhdGljIHZvaWQgQ2xvbmVGb3JlaWduS2V5Q29uc3RyYWludHMoTGlzdCAqKndxdWV1ZSwgUmVs YXRpb24gcGFyZW50UmVsLAogCQkJCQkJCQkJICAgUmVsYXRpb24gcGFydGl0aW9uUmVsKTsKIHN0 YXRpYyB2b2lkIENsb25lRmtSZWZlcmVuY2VkKFJlbGF0aW9uIHBhcmVudFJlbCwgUmVsYXRpb24g cGFydGl0aW9uUmVsKTsKQEAgLTU5NjIsNyArNTk2Nyw4IEBAIEFUUmV3cml0ZVRhYmxlcyhBbHRl clRhYmxlU3RtdCAqcGFyc2V0cmVlLCBMaXN0ICoqd3F1ZXVlLCBMT0NLTU9ERSBsb2NrbW9kZSwK IAogCQkJCXZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQoZmtjb25zdHJhaW50LT5jb25uYW1l LCByZWwsIHJlZnJlbCwKIAkJCQkJCQkJCQkJIGNvbi0+cmVmaW5kaWQsCi0JCQkJCQkJCQkJCSBj b24tPmNvbmlkKTsKKwkJCQkJCQkJCQkJIGNvbi0+Y29uaWQsCisJCQkJCQkJCQkJCSBjb24tPmNv bndpdGhwZXJpb2QpOwogCiAJCQkJLyoKIAkJCQkgKiBObyBuZWVkIHRvIG1hcmsgdGhlIGNvbnN0 cmFpbnQgcm93IGFzIHZhbGlkYXRlZCwgd2UgZGlkCkBAIC05ODEyLDYgKzk4MTgsOCBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRh YiwgUmVsYXRpb24gcmVsLAogCU9pZAkJCXBwZXFvcGVyYXRvcnNbSU5ERVhfTUFYX0tFWVNdID0g ezB9OwogCU9pZAkJCWZmZXFvcGVyYXRvcnNbSU5ERVhfTUFYX0tFWVNdID0gezB9OwogCWludDE2 CQlma2RlbHNldGNvbHNbSU5ERVhfTUFYX0tFWVNdID0gezB9OworCWJvb2wJCXdpdGhfcGVyaW9k OworCWJvb2wJCXBrX3dpdGhfcGVyaW9kOwogCWludAkJCWk7CiAJaW50CQkJbnVtZmtzLAogCQkJ CW51bXBrcywKQEAgLTk5MDYsNiArOTkxNCwxNCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50 KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCW51 bWZrcyA9IHRyYW5zZm9ybUNvbHVtbk5hbWVMaXN0KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJ CQkJCQkJCSBma2NvbnN0cmFpbnQtPmZrX2F0dHJzLAogCQkJCQkJCQkJIGZrYXR0bnVtLCBma3R5 cG9pZCk7CisJd2l0aF9wZXJpb2QgPSBma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kIHx8IGZr Y29uc3RyYWludC0+cGtfd2l0aF9wZXJpb2Q7CisJaWYgKHdpdGhfcGVyaW9kKQorCXsKKwkJaWYg KCFma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0ZPUkVJR05fS0VZKSwKKwkJCQkJZXJybXNnKCJmb3Jl aWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSBy ZWZlcmVuY2luZyB0YWJsZSIpKSk7CisJfQogCiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3Jt Q29sdW1uTmFtZUxpc3QoUmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29u c3RyYWludC0+ZmtfZGVsX3NldF9jb2xzLApAQCAtOTkyNSwxNiArOTk0MSwzMiBAQCBBVEFkZEZv cmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwg UmVsYXRpb24gcmVsLAogCQludW1wa3MgPSB0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShwa3Jl bCwgJmluZGV4T2lkLAogCQkJCQkJCQkJCQkmZmtjb25zdHJhaW50LT5wa19hdHRycywKIAkJCQkJ CQkJCQkJcGthdHRudW0sIHBrdHlwb2lkLAotCQkJCQkJCQkJCQlvcGNsYXNzZXMpOworCQkJCQkJ CQkJCQlvcGNsYXNzZXMsICZwa193aXRoX3BlcmlvZCk7CisKKwkJLyogSWYgdGhlIHByaW1hcnkg a2V5IHVzZXMgV0lUSE9VVCBPVkVSTEFQUywgdGhlIGZrIG11c3QgdXNlIFBFUklPRCAqLworCQlp ZiAocGtfd2l0aF9wZXJpb2QgJiYgIWZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkp LAorCQkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2Vk IHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlIikpKTsKIAl9CiAJZWxzZQogCXsK IAkJbnVtcGtzID0gdHJhbnNmb3JtQ29sdW1uTmFtZUxpc3QoUmVsYXRpb25HZXRSZWxpZChwa3Jl bCksCiAJCQkJCQkJCQkJIGZrY29uc3RyYWludC0+cGtfYXR0cnMsCiAJCQkJCQkJCQkJIHBrYXR0 bnVtLCBwa3R5cG9pZCk7CisKKwkJaWYgKHdpdGhfcGVyaW9kKQorCQl7CisJCQlpZiAoIWZrY29u c3RyYWludC0+cGtfd2l0aF9wZXJpb2QpCisJCQkJLyogU2luY2Ugd2UgZ290IHBrX2F0dHJzLCBv bmUgc2hvdWxkIGJlIGEgcGVyaW9kLiAqLworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAorCQkJCQkJZXJybXNnKCJmb3JlaWdu IGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVm ZXJlbmNlZCB0YWJsZSIpKSk7CisJCX0KKwogCQkvKiBMb29rIGZvciBhbiBpbmRleCBtYXRjaGlu ZyB0aGUgY29sdW1uIGxpc3QgKi8KIAkJaW5kZXhPaWQgPSB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRy cyhwa3JlbCwgbnVtcGtzLCBwa2F0dG51bSwKLQkJCQkJCQkJCQkgICBvcGNsYXNzZXMpOworCQkJ CQkJCQkJCSAgIHdpdGhfcGVyaW9kLCBvcGNsYXNzZXMpOwogCX0KIAogCS8qCkBAIC0xMDAwMyw4 ICsxMDAzNSwxMSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFs dGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlPaWQJCQlwZmVxb3A7CiAJCU9p ZAkJCXBwZXFvcDsKIAkJT2lkCQkJZmZlcW9wOworCQlTdHJhdGVneU51bWJlcglydHN0cmF0ZWd5 OwogCQlpbnQxNgkJZXFzdHJhdGVneTsKIAkJT2lkCQkJcGZlcW9wX3JpZ2h0OworCQljaGFyCSAg ICpzdHJhdG5hbWU7CisJCWJvb2wJCWZvcl9vdmVybGFwcyA9IHdpdGhfcGVyaW9kICYmIGkgPT0g bnVtcGtzIC0gMTsKIAogCQkvKiBXZSBuZWVkIHNldmVyYWwgZmllbGRzIG91dCBvZiB0aGUgcGdf b3BjbGFzcyBlbnRyeSAqLwogCQljbGFfaHQgPSBTZWFyY2hTeXNDYWNoZTEoQ0xBT0lELCBPYmpl Y3RJZEdldERhdHVtKG9wY2xhc3Nlc1tpXSkpOwpAQCAtMTAwMTYsMTYgKzEwMDUxLDUxIEBAIEFU QWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAJCW9wY2ludHlwZSA9IGNsYV90dXAtPm9wY2ludHlwZTsKIAkJ UmVsZWFzZVN5c0NhY2hlKGNsYV9odCk7CiAKLQkJLyoKLQkJICogQ2hlY2sgaXQncyBhIGJ0cmVl OyBjdXJyZW50bHkgdGhpcyBjYW4gbmV2ZXIgZmFpbCBzaW5jZSBubyBvdGhlcgotCQkgKiBpbmRl eCBBTXMgc3VwcG9ydCB1bmlxdWUgaW5kZXhlcy4gIElmIHdlIGV2ZXIgZGlkIGhhdmUgb3RoZXIg dHlwZXMKLQkJICogb2YgdW5pcXVlIGluZGV4ZXMsIHdlJ2QgbmVlZCBhIHdheSB0byBkZXRlcm1p bmUgd2hpY2ggb3BlcmF0b3IKLQkJICogc3RyYXRlZ3kgbnVtYmVyIGlzIGVxdWFsaXR5LiAgKElz IGl0IHJlYXNvbmFibGUgdG8gaW5zaXN0IHRoYXQKLQkJICogZXZlcnkgc3VjaCBpbmRleCBBTSB1 c2UgYnRyZWUncyBudW1iZXIgZm9yIGVxdWFsaXR5PykKLQkJICovCi0JCWlmIChhbWlkICE9IEJU UkVFX0FNX09JRCkKLQkJCWVsb2coRVJST1IsICJvbmx5IGItdHJlZSBpbmRleGVzIGFyZSBzdXBw b3J0ZWQgZm9yIGZvcmVpZ24ga2V5cyIpOwotCQllcXN0cmF0ZWd5ID0gQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyOworCQlpZiAod2l0aF9wZXJpb2QpCisJCXsKKwkJCS8qCisJCQkgKiBHaVNUIGluZGV4 ZXMgYXJlIHJlcXVpcmVkIHRvIHN1cHBvcnQgdGVtcG9yYWwgZm9yZWlnbiBrZXlzCisJCQkgKiBi ZWNhdXNlIHRoZXkgY29tYmluZSBlcXVhbHMgYW5kIG92ZXJsYXBzLgorCQkJICovCisJCQlpZiAo YW1pZCAhPSBHSVNUX0FNX09JRCkKKwkJCQllbG9nKEVSUk9SLCAib25seSBHaVNUIGluZGV4ZXMg YXJlIHN1cHBvcnRlZCBmb3IgdGVtcG9yYWwgZm9yZWlnbiBrZXlzIik7CisJCQlpZiAoZm9yX292 ZXJsYXBzKQorCQkJeworCQkJCXN0cmF0bmFtZSA9ICJvdmVybGFwcyI7CisJCQkJcnRzdHJhdGVn eSA9IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXN0 cmF0bmFtZSA9ICJlcXVhbGl0eSI7CisJCQkJcnRzdHJhdGVneSA9IFJURXF1YWxTdHJhdGVneU51 bWJlcjsKKwkJCX0KKwkJCS8qCisJCQkgKiBBbiBvcGNsYXNzIGNhbiB1c2Ugd2hhdGV2ZXIgc3Ry YXRlZ3kgbnVtYmVycyBpdCB3YW50cywgc28gd2UgYXNrCisJCQkgKiB0aGUgb3BjbGFzcyB3aGF0 IG51bWJlciBpdCBhY3R1YWxseSB1c2VzIGluc3RlYWQgb2Ygb3VyCisJCQkgKiBSVCogY29uc3Rh bnRzLgorCQkJICovCisJCQllcXN0cmF0ZWd5ID0gR2lzdFRyYW5zbGF0ZVN0cmF0bnVtKG9wY2xh c3Nlc1tpXSwgcnRzdHJhdGVneSk7CisJCQlpZiAoZXFzdHJhdGVneSA9PSBJbnZhbGlkU3RyYXRl Z3kpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X09CSkVDVCksCisJCQkJCQkgZXJybXNnKCJubyAlcyBvcGVyYXRvciBmb3VuZCBmb3IgZm9yZWln biBrZXkiLCBzdHJhdG5hbWUpLAorCQkJCQkJIGVycmRldGFpbCgiQ291bGQgbm90IHRyYW5zbGF0 ZSBzdHJhdGVneSBudW1iZXIgJWQgZm9yIG9wY2xhc3MgJWQuIiwKKwkJCQkJCQkgcnRzdHJhdGVn eSwgb3BjbGFzc2VzW2ldKSwKKwkJCQkJCSBlcnJoaW50KCJEZWZpbmUgYSBzdHJhdG51bSBzdXBw b3J0IGZ1bmN0aW9uIGZvciB5b3VyIEdpU1Qgb3BjbGFzcy4iKSkpOworCQl9CisJCWVsc2UKKwkJ eworCQkJLyoKKwkJCSAqIENoZWNrIGl0J3MgYSBidHJlZTsgY3VycmVudGx5IHRoaXMgY2FuIG5l dmVyIGZhaWwgc2luY2Ugbm8gb3RoZXIKKwkJCSAqIGluZGV4IEFNcyBzdXBwb3J0IHVuaXF1ZSBp bmRleGVzLiAgSWYgd2UgZXZlciBkaWQgaGF2ZSBvdGhlciB0eXBlcworCQkJICogb2YgdW5pcXVl IGluZGV4ZXMsIHdlJ2QgbmVlZCBhIHdheSB0byBkZXRlcm1pbmUgd2hpY2ggb3BlcmF0b3IKKwkJ CSAqIHN0cmF0ZWd5IG51bWJlciBpcyBlcXVhbGl0eS4gIChJcyBpdCByZWFzb25hYmxlIHRvIGlu c2lzdCB0aGF0CisJCQkgKiBldmVyeSBzdWNoIGluZGV4IEFNIHVzZSBidHJlZSdzIG51bWJlciBm b3IgZXF1YWxpdHk/KQorCQkJICovCisJCQlpZiAoYW1pZCAhPSBCVFJFRV9BTV9PSUQpCisJCQkJ ZWxvZyhFUlJPUiwgIm9ubHkgYi10cmVlIGluZGV4ZXMgYXJlIHN1cHBvcnRlZCBmb3IgZm9yZWln biBrZXlzIik7CisJCQllcXN0cmF0ZWd5ID0gQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOworCQl9CiAK IAkJLyoKIAkJICogVGhlcmUgaGFkIGJldHRlciBiZSBhIHByaW1hcnkgZXF1YWxpdHkgb3BlcmF0 b3IgZm9yIHRoZSBpbmRleC4KQEAgLTEwMDg2LDE2ICsxMDE1NiwyMSBAQCBBVEFkZEZvcmVpZ25L ZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCQl9CiAKIAkJaWYgKCEoT2lkSXNWYWxpZChwZmVxb3ApICYmIE9pZElzVmFsaWQo ZmZlcW9wKSkpCisJCXsKKwkJCWNoYXIgKmZrYXR0cl9uYW1lID0gc3RyVmFsKGxpc3RfbnRoKGZr Y29uc3RyYWludC0+ZmtfYXR0cnMsIGkpKTsKKwkJCWNoYXIgKnBrYXR0cl9uYW1lID0gc3RyVmFs KGxpc3RfbnRoKGZrY29uc3RyYWludC0+cGtfYXR0cnMsIGkpKTsKKwogCQkJZXJlcG9ydChFUlJP UiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJCSBlcnJt c2coImZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgXCIlc1wiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZCIs CiAJCQkJCQkJZmtjb25zdHJhaW50LT5jb25uYW1lKSwKIAkJCQkJIGVycmRldGFpbCgiS2V5IGNv bHVtbnMgXCIlc1wiIGFuZCBcIiVzXCIgIgogCQkJCQkJCSAgICJhcmUgb2YgaW5jb21wYXRpYmxl IHR5cGVzOiAlcyBhbmQgJXMuIiwKLQkJCQkJCQkgICBzdHJWYWwobGlzdF9udGgoZmtjb25zdHJh aW50LT5ma19hdHRycywgaSkpLAotCQkJCQkJCSAgIHN0clZhbChsaXN0X250aChma2NvbnN0cmFp bnQtPnBrX2F0dHJzLCBpKSksCisJCQkJCQkJICAgZmthdHRyX25hbWUsCisJCQkJCQkJICAgcGth dHRyX25hbWUsCiAJCQkJCQkJICAgZm9ybWF0X3R5cGVfYmUoZmt0eXBlKSwKIAkJCQkJCQkgICBm b3JtYXRfdHlwZV9iZShwa3R5cGUpKSkpOworCQl9CiAKIAkJaWYgKG9sZF9jaGVja19vaykKIAkJ ewpAQCAtMTAxNjgsNiArMTAyNDMsNyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3Qg Kip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCW5l d19jYXN0ZnVuYyA9PSBvbGRfY2FzdGZ1bmMgJiYKIAkJCQkJCQkoIUlzUG9seW1vcnBoaWNUeXBl KHBmZXFvcF9yaWdodCkgfHwKIAkJCQkJCQkgbmV3X2ZrdHlwZSA9PSBvbGRfZmt0eXBlKSk7CisK IAkJfQogCiAJCXBmZXFvcGVyYXRvcnNbaV0gPSBwZmVxb3A7CkBAIC0xMDE3NSw2ICsxMDI1MSwy MiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlmZmVxb3BlcmF0b3JzW2ldID0gZmZlcW9wOwog CX0KIAorCS8qCisJICogRm9yIEZLcyB3aXRoIFBFUklPRCB3ZSBuZWVkIGFuIG9wZXJhdG9yIGFu ZCBhZ2dyZWdhdGUgZnVuY3Rpb24KKwkgKiB0byBjaGVjayB3aGV0aGVyIHRoZSByZWZlcmVuY2lu ZyByb3cncyByYW5nZSBpcyBjb250YWluZWQKKwkgKiBieSB0aGUgYWdncmVnYXRlZCByYW5nZXMg b2YgdGhlIHJlZmVyZW5jZWQgcm93KHMpLgorCSAqIEZvciByYW5nZXR5cGVzIHRoaXMgaXMgZmsu cGVyaW9kYXR0IDxAIHJhbmdlX2FnZyhway5wZXJpb2RhdHQpLgorCSAqIEZLcyB3aWxsIGxvb2sg dGhlc2UgdXAgYXQgInJ1bnRpbWUiLCBidXQgd2Ugc2hvdWxkIG1ha2Ugc3VyZQorCSAqIHRoZSBs b29rdXAgd29ya3MgaGVyZSwgZXZlbiBpZiB3ZSBkb24ndCB1c2UgdGhlIHZhbHVlcy4KKwkgKi8K KwlpZiAod2l0aF9wZXJpb2QpCisJeworCQlPaWQJCQlwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlh Z2dlZHBlcmlvZG9wZXJvaWQ7CisKKwkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzc2VzW251bXBr cyAtIDFdLCAmcGVyaW9kb3Blcm9pZCwgJmFnZ2VkcGVyaW9kb3Blcm9pZCk7CisJfQorCiAJLyoK IAkgKiBDcmVhdGUgYWxsIHRoZSBjb25zdHJhaW50IGFuZCB0cmlnZ2VyIG9iamVjdHMsIHJlY3Vy c2luZyB0byBwYXJ0aXRpb25zCiAJICogYXMgbmVjZXNzYXJ5LiAgRmlyc3QgaGFuZGxlIHRoZSBy ZWZlcmVuY2VkIHNpZGUuCkBAIC0xMDE5MSw3ICsxMDI4Myw4IEBAIEFUQWRkRm9yZWlnbktleUNv bnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiBy ZWwsCiAJCQkJCQkJCQkgbnVtZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkJIGZrZGVsc2V0Y29scywK IAkJCQkJCQkJCSBvbGRfY2hlY2tfb2ssCi0JCQkJCQkJCQkgSW52YWxpZE9pZCwgSW52YWxpZE9p ZCk7CisJCQkJCQkJCQkgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKKwkJCQkJCQkJCSB3aXRoX3Bl cmlvZCk7CiAKIAkvKiBOb3cgaGFuZGxlIHRoZSByZWZlcmVuY2luZyBzaWRlLiAqLwogCWFkZEZr UmVjdXJzZVJlZmVyZW5jaW5nKHdxdWV1ZSwgZmtjb25zdHJhaW50LCByZWwsIHBrcmVsLApAQCAt MTAyMDcsNyArMTAzMDAsOCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCWZrZGVsc2V0 Y29scywKIAkJCQkJCQlvbGRfY2hlY2tfb2ssCiAJCQkJCQkJbG9ja21vZGUsCi0JCQkJCQkJSW52 YWxpZE9pZCwgSW52YWxpZE9pZCk7CisJCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKKwkJ CQkJCQl3aXRoX3BlcmlvZCk7CiAKIAkvKgogCSAqIERvbmUuICBDbG9zZSBwayB0YWJsZSwgYnV0 IGtlZXAgbG9jayB1bnRpbCB3ZSd2ZSBjb21taXR0ZWQuCkBAIC0xMDI5Miw3ICsxMDM4Niw4IEBA IGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25z dHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJCSAgIE9pZCAqcHBlcW9wZXJhdG9ycywgT2lkICpm ZmVxb3BlcmF0b3JzLAogCQkJCQkgICBpbnQgbnVtZmtkZWxzZXRjb2xzLCBpbnQxNiAqZmtkZWxz ZXRjb2xzLAogCQkJCQkgICBib29sIG9sZF9jaGVja19vaywKLQkJCQkJICAgT2lkIHBhcmVudERl bFRyaWdnZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyKQorCQkJCQkgICBPaWQgcGFyZW50RGVsVHJp Z2dlciwgT2lkIHBhcmVudFVwZFRyaWdnZXIsCisJCQkJCSAgIGJvb2wgd2l0aF9wZXJpb2QpCiB7 CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCU9pZAkJCWNvbnN0ck9pZDsKQEAgLTEwMzc4LDcg KzEwNDczLDcgQEAgYWRkRmtSZWN1cnNlUmVmZXJlbmNlZChMaXN0ICoqd3F1ZXVlLCBDb25zdHJh aW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSAgY29uaXNsb2NhbCwJ LyogaXNsb2NhbCAqLwogCQkJCQkJCQkJICBjb25pbmhjb3VudCwJLyogaW5oY291bnQgKi8KIAkJ CQkJCQkJCSAgY29ubm9pbmhlcml0LCAvKiBjb25Ob0luaGVyaXQgKi8KLQkJCQkJCQkJCSAgZmFs c2UsCS8qIGNvblBlcmlvZCAqLworCQkJCQkJCQkJICB3aXRoX3BlcmlvZCwJLyogY29uUGVyaW9k ICovCiAJCQkJCQkJCQkgIGZhbHNlKTsJLyogaXNfaW50ZXJuYWwgKi8KIAogCU9iamVjdEFkZHJl c3NTZXQoYWRkcmVzcywgQ29uc3RyYWludFJlbGF0aW9uSWQsIGNvbnN0ck9pZCk7CkBAIC0xMDQ1 NCw3ICsxMDU0OSw4IEBAIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29u c3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgIHBmZXFvcGVy YXRvcnMsIHBwZXFvcGVyYXRvcnMsIGZmZXFvcGVyYXRvcnMsCiAJCQkJCQkJCSAgIG51bWZrZGVs c2V0Y29scywgZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkgICBvbGRfY2hlY2tfb2ssCi0JCQkJCQkJ CSAgIGRlbGV0ZVRyaWdnZXJPaWQsIHVwZGF0ZVRyaWdnZXJPaWQpOworCQkJCQkJCQkgICBkZWxl dGVUcmlnZ2VyT2lkLCB1cGRhdGVUcmlnZ2VyT2lkLAorCQkJCQkJCQkgICB3aXRoX3BlcmlvZCk7 CiAKIAkJCS8qIERvbmUgLS0gY2xlYW4gdXAgKGJ1dCBrZWVwIHRoZSBsb2NrKSAqLwogCQkJdGFi bGVfY2xvc2UocGFydFJlbCwgTm9Mb2NrKTsKQEAgLTEwNTEyLDcgKzEwNjA4LDggQEAgYWRkRmtS ZWN1cnNlUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50 LCBSZWxhdGlvbiByZWwsCiAJCQkJCQlPaWQgKnBmZXFvcGVyYXRvcnMsIE9pZCAqcHBlcW9wZXJh dG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAogCQkJCQkJaW50IG51bWZrZGVsc2V0Y29scywgaW50 MTYgKmZrZGVsc2V0Y29scywKIAkJCQkJCWJvb2wgb2xkX2NoZWNrX29rLCBMT0NLTU9ERSBsb2Nr bW9kZSwKLQkJCQkJCU9pZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlcikK KwkJCQkJCU9pZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlciwKKwkJCQkJ CWJvb2wgd2l0aF9wZXJpb2QpCiB7CiAJT2lkCQkJaW5zZXJ0VHJpZ2dlck9pZCwKIAkJCQl1cGRh dGVUcmlnZ2VyT2lkOwpAQCAtMTA1NjAsNiArMTA2NTcsNyBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVu Y2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9uIHJl bCwKIAkJCW5ld2Nvbi0+cmVmcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHBrcmVsKTsKIAkJCW5l d2Nvbi0+cmVmaW5kaWQgPSBpbmRleE9pZDsKIAkJCW5ld2Nvbi0+Y29uaWQgPSBwYXJlbnRDb25z dHI7CisJCQluZXdjb24tPmNvbndpdGhwZXJpb2QgPSBma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVy aW9kOwogCQkJbmV3Y29uLT5xdWFsID0gKE5vZGUgKikgZmtjb25zdHJhaW50OwogCiAJCQl0YWIt PmNvbnN0cmFpbnRzID0gbGFwcGVuZCh0YWItPmNvbnN0cmFpbnRzLCBuZXdjb24pOwpAQCAtMTA2 NzcsNyArMTA3NzUsNyBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBD b25zdHJhaW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSAgZmFsc2Us CiAJCQkJCQkJCQkgIDEsCiAJCQkJCQkJCQkgIGZhbHNlLAotCQkJCQkJCQkJICBmYWxzZSwJLyog Y29uUGVyaW9kICovCisJCQkJCQkJCQkgIHdpdGhfcGVyaW9kLAkvKiBjb25QZXJpb2QgKi8KIAkJ CQkJCQkJCSAgZmFsc2UpOwogCiAJCQkvKgpAQCAtMTA3MDgsNyArMTA4MDYsOCBAQCBhZGRGa1Jl Y3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQs IFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCW9sZF9jaGVja19vaywKIAkJCQkJCQkJCWxvY2ttb2Rl LAogCQkJCQkJCQkJaW5zZXJ0VHJpZ2dlck9pZCwKLQkJCQkJCQkJCXVwZGF0ZVRyaWdnZXJPaWQp OworCQkJCQkJCQkJdXBkYXRlVHJpZ2dlck9pZCwKKwkJCQkJCQkJCXdpdGhfcGVyaW9kKTsKIAog CQkJdGFibGVfY2xvc2UocGFydGl0aW9uLCBOb0xvY2spOwogCQl9CkBAIC0xMDk0NCw3ICsxMTA0 Myw4IEBAIENsb25lRmtSZWZlcmVuY2VkKFJlbGF0aW9uIHBhcmVudFJlbCwgUmVsYXRpb24gcGFy dGl0aW9uUmVsKQogCQkJCQkJCSAgIGNvbmZkZWxzZXRjb2xzLAogCQkJCQkJCSAgIHRydWUsCiAJ CQkJCQkJICAgZGVsZXRlVHJpZ2dlck9pZCwKLQkJCQkJCQkgICB1cGRhdGVUcmlnZ2VyT2lkKTsK KwkJCQkJCQkgICB1cGRhdGVUcmlnZ2VyT2lkLAorCQkJCQkJCSAgIGNvbnN0ckZvcm0tPmNvbnBl cmlvZCk7CiAKIAkJdGFibGVfY2xvc2UoZmtSZWwsIE5vTG9jayk7CiAJCVJlbGVhc2VTeXNDYWNo ZSh0dXBsZSk7CkBAIC0xMTAzNyw2ICsxMTEzNyw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhMaXN0 ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJCUxpc3RD ZWxsICAgKmxjOwogCQlPaWQJCQlpbnNlcnRUcmlnZ2VyT2lkLAogCQkJCQl1cGRhdGVUcmlnZ2Vy T2lkOworCQlib29sCQl3aXRoX3BlcmlvZDsKIAogCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShD T05TVFJPSUQsIE9iamVjdElkR2V0RGF0dW0ocGFyZW50Q29uc3RyT2lkKSk7CiAJCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXBsZSkpCkBAIC0xMTE1Miw2ICsxMTI1Myw3IEBAIENsb25lRmtSZWZl cmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRS ZWwpCiAJCQlma2NvbnN0cmFpbnQtPmNvbm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoY29uc3RyRm9y bS0+Y29ubmFtZSkpOwogCiAJCWluZGV4T2lkID0gY29uc3RyRm9ybS0+Y29uaW5kaWQ7CisJCXdp dGhfcGVyaW9kID0gY29uc3RyRm9ybS0+Y29ucGVyaW9kOwogCQljb25zdHJPaWQgPQogCQkJQ3Jl YXRlQ29uc3RyYWludEVudHJ5KGZrY29uc3RyYWludC0+Y29ubmFtZSwKIAkJCQkJCQkJICBjb25z dHJGb3JtLT5jb25uYW1lc3BhY2UsCkBAIC0xMTE4Myw3ICsxMTI4NSw3IEBAIENsb25lRmtSZWZl cmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRS ZWwpCiAJCQkJCQkJCSAgZmFsc2UsCS8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJICAxLAkvKiBpbmhj b3VudCAqLwogCQkJCQkJCQkgIGZhbHNlLAkvKiBjb25Ob0luaGVyaXQgKi8KLQkJCQkJCQkJICBm YWxzZSwJLyogY29uUGVyaW9kICovCisJCQkJCQkJCSAgd2l0aF9wZXJpb2QsCS8qIGNvblBlcmlv ZCAqLwogCQkJCQkJCQkgIHRydWUpOwogCiAJCS8qIFNldCB1cCBwYXJ0aXRpb24gZGVwZW5kZW5j aWVzIGZvciB0aGUgbmV3IGNvbnN0cmFpbnQgKi8KQEAgLTExMjE3LDcgKzExMzE5LDggQEAgQ2xv bmVGa1JlZmVyZW5jaW5nKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHBhcmVudFJlbCwgUmVsYXRp b24gcGFydFJlbCkKIAkJCQkJCQkJZmFsc2UsCS8qIG5vIG9sZCBjaGVjayBleGlzdHMgKi8KIAkJ CQkJCQkJQWNjZXNzRXhjbHVzaXZlTG9jaywKIAkJCQkJCQkJaW5zZXJ0VHJpZ2dlck9pZCwKLQkJ CQkJCQkJdXBkYXRlVHJpZ2dlck9pZCk7CisJCQkJCQkJCXVwZGF0ZVRyaWdnZXJPaWQsCisJCQkJ CQkJCXdpdGhfcGVyaW9kKTsKIAkJdGFibGVfY2xvc2UocGtyZWwsIE5vTG9jayk7CiAJfQogCkBA IC0xMjAzOCw3ICsxMjE0MSw3IEBAIHN0YXRpYyBpbnQKIHRyYW5zZm9ybUZrZXlHZXRQcmltYXJ5 S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAogCQkJCQkJICAgTGlzdCAqKmF0dG5h bWVsaXN0LAogCQkJCQkJICAgaW50MTYgKmF0dG51bXMsIE9pZCAqYXR0dHlwaWRzLAotCQkJCQkJ ICAgT2lkICpvcGNsYXNzZXMpCisJCQkJCQkgICBPaWQgKm9wY2xhc3NlcywgYm9vbCAqcGtfcGVy aW9kKQogewogCUxpc3QJICAgKmluZGV4b2lkbGlzdDsKIAlMaXN0Q2VsbCAgICppbmRleG9pZHNj YW47CkBAIC0xMjExNiw2ICsxMjIxOSw4IEBAIHRyYW5zZm9ybUZrZXlHZXRQcmltYXJ5S2V5KFJl bGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAogCQkJCQkJCSAgIG1ha2VTdHJpbmcocHN0cmR1 cChOYW1lU3RyKCphdHRudW1BdHROYW1lKHBrcmVsLCBwa2F0dG5vKSkpKSk7CiAJfQogCisJKnBr X3BlcmlvZCA9IChpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb24pOworCiAJUmVsZWFzZVN5c0Nh Y2hlKGluZGV4VHVwbGUpOwogCiAJcmV0dXJuIGk7CkBAIC0xMjEzNiw3ICsxMjI0MSw3IEBAIHRy YW5zZm9ybUZrZXlHZXRQcmltYXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAog c3RhdGljIE9pZAogdHJhbnNmb3JtRmtleUNoZWNrQXR0cnMoUmVsYXRpb24gcGtyZWwsCiAJCQkJ CQlpbnQgbnVtYXR0cnMsIGludDE2ICphdHRudW1zLAotCQkJCQkJT2lkICpvcGNsYXNzZXMpCisJ CQkJCQlib29sIHdpdGhfcGVyaW9kLCBPaWQgKm9wY2xhc3NlcykKIHsKIAlPaWQJCQlpbmRleG9p ZCA9IEludmFsaWRPaWQ7CiAJYm9vbAkJZm91bmQgPSBmYWxzZTsKQEAgLTEyMTgzLDEyICsxMjI4 OCwxMyBAQCB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhSZWxhdGlvbiBwa3JlbCwKIAkJaW5kZXhT dHJ1Y3QgPSAoRm9ybV9wZ19pbmRleCkgR0VUU1RSVUNUKGluZGV4VHVwbGUpOwogCiAJCS8qCi0J CSAqIE11c3QgaGF2ZSB0aGUgcmlnaHQgbnVtYmVyIG9mIGNvbHVtbnM7IG11c3QgYmUgdW5pcXVl IGFuZCBub3QgYQorCQkgKiBNdXN0IGhhdmUgdGhlIHJpZ2h0IG51bWJlciBvZiBjb2x1bW5zOyBt dXN0IGJlIHVuaXF1ZQorCQkgKiAob3IgaWYgdGVtcG9yYWwgdGhlbiBleGNsdXNpb24gaW5zdGVh ZCkgYW5kIG5vdCBhCiAJCSAqIHBhcnRpYWwgaW5kZXg7IGZvcmdldCBpdCBpZiB0aGVyZSBhcmUg YW55IGV4cHJlc3Npb25zLCB0b28uIEludmFsaWQKIAkJICogaW5kZXhlcyBhcmUgb3V0IGFzIHdl bGwuCiAJCSAqLwogCQlpZiAoaW5kZXhTdHJ1Y3QtPmluZG5rZXlhdHRzID09IG51bWF0dHJzICYm Ci0JCQlpbmRleFN0cnVjdC0+aW5kaXN1bmlxdWUgJiYKKwkJCSh3aXRoX3BlcmlvZCA/IGluZGV4 U3RydWN0LT5pbmRpc2V4Y2x1c2lvbiA6IGluZGV4U3RydWN0LT5pbmRpc3VuaXF1ZSkgJiYKIAkJ CWluZGV4U3RydWN0LT5pbmRpc3ZhbGlkICYmCiAJCQloZWFwX2F0dGlzbnVsbChpbmRleFR1cGxl LCBBbnVtX3BnX2luZGV4X2luZHByZWQsIE5VTEwpICYmCiAJCQloZWFwX2F0dGlzbnVsbChpbmRl eFR1cGxlLCBBbnVtX3BnX2luZGV4X2luZGV4cHJzLCBOVUxMKSkKQEAgLTEyMjI2LDYgKzEyMzMy LDEzIEBAIHRyYW5zZm9ybUZrZXlDaGVja0F0dHJzKFJlbGF0aW9uIHBrcmVsLAogCQkJCWlmICgh Zm91bmQpCiAJCQkJCWJyZWFrOwogCQkJfQorCQkJLyogVGhlIGxhc3QgYXR0cmlidXRlIGluIHRo ZSBpbmRleCBtdXN0IGJlIHRoZSBQRVJJT0QgRksgcGFydCAqLworCQkJaWYgKGZvdW5kICYmIHdp dGhfcGVyaW9kKQorCQkJeworCQkJCWludDE2IHBlcmlvZGF0dG51bSA9IGF0dG51bXNbbnVtYXR0 cnMgLSAxXTsKKworCQkJCWZvdW5kID0gKHBlcmlvZGF0dG51bSA9PSBpbmRleFN0cnVjdC0+aW5k a2V5LnZhbHVlc1tudW1hdHRycyAtIDFdKTsKKwkJCX0KIAogCQkJLyoKIAkJCSAqIFJlZnVzZSB0 byB1c2UgYSBkZWZlcnJhYmxlIHVuaXF1ZS9wcmltYXJ5IGtleS4gIFRoaXMgaXMgcGVyIFNRTApA QCAtMTIzMzUsNyArMTI0NDgsOCBAQCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGNoYXIg KmNvbm5hbWUsCiAJCQkJCQkJIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkgUmVsYXRpb24gcGtyZWws CiAJCQkJCQkJIE9pZCBwa2luZE9pZCwKLQkJCQkJCQkgT2lkIGNvbnN0cmFpbnRPaWQpCisJCQkJ CQkJIE9pZCBjb25zdHJhaW50T2lkLAorCQkJCQkJCSBib29sIHRlbXBvcmFsKQogewogCVR1cGxl VGFibGVTbG90ICpzbG90OwogCVRhYmxlU2NhbkRlc2Mgc2NhbjsKQEAgLTEyMzY0LDggKzEyNDc4 LDEwIEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQoY2hhciAqY29ubmFtZSwKIAkvKgog CSAqIFNlZSBpZiB3ZSBjYW4gZG8gaXQgd2l0aCBhIHNpbmdsZSBMRUZUIEpPSU4gcXVlcnkuICBB IGZhbHNlIHJlc3VsdAogCSAqIGluZGljYXRlcyB3ZSBtdXN0IHByb2NlZWQgd2l0aCB0aGUgZmly ZS10aGUtdHJpZ2dlciBtZXRob2QuCisJICogV2UgY2FuJ3QgZG8gYSBMRUZUIEpPSU4gZm9yIHRl bXBvcmFsIEZLcyB5ZXQsCisJICogYnV0IHdlIGNhbiBvbmNlIHdlIHN1cHBvcnQgdGVtcG9yYWwg bGVmdCBqb2lucy4KIAkgKi8KLQlpZiAoUklfSW5pdGlhbF9DaGVjaygmdHJpZywgcmVsLCBwa3Jl bCkpCisJaWYgKCF0ZW1wb3JhbCAmJiBSSV9Jbml0aWFsX0NoZWNrKCZ0cmlnLCByZWwsIHBrcmVs KSkKIAkJcmV0dXJuOwogCiAJLyoKQEAgLTEyNTE2LDYgKzEyNjMyLDE3IEBAIGNyZWF0ZUZvcmVp Z25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFp bnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dlci0+d2hlbkNsYXVzZSA9IE5VTEw7CiAJZmtfdHJpZ2dl ci0+dHJhbnNpdGlvblJlbHMgPSBOSUw7CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsK KworCS8qIEZvcmJpZCBzb21lIGFjdGlvbnMgd2l0aCBQRVJJT0QgZWxlbWVudHMgZm9yIG5vdzog Ki8KKwlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCAmJiAoCisJCWZrY29uc3RyYWlu dC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAorCQlma2NvbnN0 cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKKwkJZmtj b25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJIGVycm1zZygiaW52YWxpZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgdXNpbmcgUEVSSU9EIiwKKwkJCQkJCSJPTiBERUxFVEUiKSkpOworCiAJc3dpdGNo IChma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24pCiAJewogCQljYXNlIEZLQ09OU1RSX0FDVElP Tl9OT0FDVElPTjoKQEAgLTEyNTc2LDYgKzEyNzAzLDE3IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rp b25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29u c3RyCiAJZmtfdHJpZ2dlci0+d2hlbkNsYXVzZSA9IE5VTEw7CiAJZmtfdHJpZ2dlci0+dHJhbnNp dGlvblJlbHMgPSBOSUw7CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsKKworCS8qIEZv cmJpZCBzb21lIGFjdGlvbnMgd2l0aCBQRVJJT0QgZWxlbWVudHMgZm9yIG5vdzogKi8KKwlpZiAo Zmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCAmJiAoCisJCWZrY29uc3RyYWludC0+ZmtfdXBk X2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAorCQlma2NvbnN0cmFpbnQtPmZr X3VwZF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKKwkJZmtjb25zdHJhaW50 LT5ma191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJIGVycm1zZygiaW52YWxpZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg dXNpbmcgUEVSSU9EIiwKKwkJCQkJCSJPTiBVUERBVEUiKSkpOworCiAJc3dpdGNoIChma2NvbnN0 cmFpbnQtPmZrX3VwZF9hY3Rpb24pCiAJewogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9OT0FDVElP TjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IGM2ZTJmNjc5ZmQ1Li43ZGExYjRhYzMyYSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CkBAIC01MjMsMTIgKzUyMywxMyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCSBTZXRS ZXNldENsYXVzZSBGdW5jdGlvblNldFJlc2V0Q2xhdXNlCiAKICV0eXBlIDxub2RlPglUYWJsZUVs ZW1lbnQgVHlwZWRUYWJsZUVsZW1lbnQgQ29uc3RyYWludEVsZW0gVGFibGVGdW5jRWxlbWVudAot JXR5cGUgPG5vZGU+CWNvbHVtbkRlZiBjb2x1bW5PcHRpb25zCisldHlwZSA8bm9kZT4JY29sdW1u RGVmIGNvbHVtbk9wdGlvbnMgb3B0aW9uYWxQZXJpb2ROYW1lCiAldHlwZSA8ZGVmZWx0PglkZWZf ZWxlbSByZWxvcHRpb25fZWxlbSBvbGRfYWdncl9lbGVtIG9wZXJhdG9yX2RlZl9lbGVtCiAldHlw ZSA8bm9kZT4JZGVmX2FyZyBjb2x1bW5FbGVtIHdoZXJlX2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50 X2NsYXVzZQogCQkJCWFfZXhwciBiX2V4cHIgY19leHByIEFleHByQ29uc3QgaW5kaXJlY3Rpb25f ZWwgb3B0X3NsaWNlX2JvdW5kCiAJCQkJY29sdW1ucmVmIGluX2V4cHIgaGF2aW5nX2NsYXVzZSBm dW5jX3RhYmxlIHhtbHRhYmxlIGFycmF5X2V4cHIKIAkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRv cl9kZWZfYXJnCisldHlwZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBl IDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5 cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCiAldHlwZSA8 bGlzdD4JRXhjbHVzaW9uQ29uc3RyYWludExpc3QgRXhjbHVzaW9uQ29uc3RyYWludEVsZW0KQEAg LTc0Niw3ICs3NDcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCU9WRVIgT1ZFUkxBUFMg T1ZFUkxBWSBPVkVSUklESU5HIE9XTkVEIE9XTkVSCiAKIAlQQVJBTExFTCBQQVJBTUVURVIgUEFS U0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJTkcgUEFTU1dPUkQKLQlQTEFDSU5HIFBMQU5TIFBP TElDWQorCVBFUklPRCBQTEFDSU5HIFBMQU5TIFBPTElDWQogCVBPU0lUSU9OIFBSRUNFRElORyBQ UkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCiAJUFJJT1IgUFJJVklM RUdFUyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFVCTElDQVRJT04K IApAQCAtNDIyOCwyMSArNDIyOSwzMSBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJCQkJICAgTlVM TCwgeXlzY2FubmVyKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgRk9SRUlH TiBLRVkgJygnIGNvbHVtbkxpc3QgJyknIFJFRkVSRU5DRVMgcXVhbGlmaWVkX25hbWUKLQkJCQlv cHRfY29sdW1uX2xpc3Qga2V5X21hdGNoIGtleV9hY3Rpb25zIENvbnN0cmFpbnRBdHRyaWJ1dGVT cGVjCisJCQl8IEZPUkVJR04gS0VZICcoJyBjb2x1bW5MaXN0IG9wdGlvbmFsUGVyaW9kTmFtZSAn KScgUkVGRVJFTkNFUyBxdWFsaWZpZWRfbmFtZQorCQkJCW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9s aXN0IGtleV9tYXRjaCBrZXlfYWN0aW9ucyBDb25zdHJhaW50QXR0cmlidXRlU3BlYwogCQkJCXsK IAkJCQkJQ29uc3RyYWludCAqbiA9IG1ha2VOb2RlKENvbnN0cmFpbnQpOwogCiAJCQkJCW4tPmNv bnR5cGUgPSBDT05TVFJfRk9SRUlHTjsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKLQkJCQkJbi0+ cGt0YWJsZSA9ICQ3OworCQkJCQluLT5wa3RhYmxlID0gJDg7CiAJCQkJCW4tPmZrX2F0dHJzID0g JDQ7Ci0JCQkJCW4tPnBrX2F0dHJzID0gJDg7Ci0JCQkJCW4tPmZrX21hdGNodHlwZSA9ICQ5Owot CQkJCQluLT5ma191cGRfYWN0aW9uID0gKCQxMCktPnVwZGF0ZUFjdGlvbi0+YWN0aW9uOwotCQkJ CQluLT5ma19kZWxfYWN0aW9uID0gKCQxMCktPmRlbGV0ZUFjdGlvbi0+YWN0aW9uOwotCQkJCQlu LT5ma19kZWxfc2V0X2NvbHMgPSAoJDEwKS0+ZGVsZXRlQWN0aW9uLT5jb2xzOwotCQkJCQlwcm9j ZXNzQ0FTYml0cygkMTEsIEAxMSwgIkZPUkVJR04gS0VZIiwKKwkJCQkJaWYgKCQ1KQorCQkJCQl7 CisJCQkJCQluLT5ma19hdHRycyA9IGxhcHBlbmQobi0+ZmtfYXR0cnMsICQ1KTsKKwkJCQkJCW4t PmZrX3dpdGhfcGVyaW9kID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQluLT5wa19hdHRycyA9IGxpbml0 aWFsKCQ5KTsKKwkJCQkJaWYgKGxzZWNvbmQoJDkpKQorCQkJCQl7CisJCQkJCQluLT5wa19hdHRy cyA9IGxhcHBlbmQobi0+cGtfYXR0cnMsIGxzZWNvbmQoJDkpKTsKKwkJCQkJCW4tPnBrX3dpdGhf cGVyaW9kID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQluLT5ma19tYXRjaHR5cGUgPSAkMTA7CisJCQkJ CW4tPmZrX3VwZF9hY3Rpb24gPSAoJDExKS0+dXBkYXRlQWN0aW9uLT5hY3Rpb247CisJCQkJCW4t PmZrX2RlbF9hY3Rpb24gPSAoJDExKS0+ZGVsZXRlQWN0aW9uLT5hY3Rpb247CisJCQkJCW4tPmZr X2RlbF9zZXRfY29scyA9ICgkMTEpLT5kZWxldGVBY3Rpb24tPmNvbHM7CisJCQkJCXByb2Nlc3ND QVNiaXRzKCQxMiwgQDEyLCAiRk9SRUlHTiBLRVkiLAogCQkJCQkJCQkgICAmbi0+ZGVmZXJyYWJs ZSwgJm4tPmluaXRkZWZlcnJlZCwKIAkJCQkJCQkJICAgJm4tPnNraXBfdmFsaWRhdGlvbiwgTlVM TCwKIAkJCQkJCQkJICAgeXlzY2FubmVyKTsKQEAgLTQyNzAsNiArNDI4MSwxNiBAQCBjb2x1bW5M aXN0OgogCQkJfCBjb2x1bW5MaXN0ICcsJyBjb2x1bW5FbGVtCQkJCXsgJCQgPSBsYXBwZW5kKCQx LCAkMyk7IH0KIAkJOwogCitvcHRpb25hbFBlcmlvZE5hbWU6CisJCQknLCcgUEVSSU9EIGNvbHVt bkVsZW0geyAkJCA9ICQzOyB9CisJCQl8IC8qRU1QVFkqLyAgICAgICAgICAgICAgIHsgJCQgPSBO VUxMOyB9CisJOworCitvcHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdDoKKwkJCScoJyBjb2x1bW5M aXN0IG9wdGlvbmFsUGVyaW9kTmFtZSAnKScJCQl7ICQkID0gbGlzdF9tYWtlMigkMiwgJDMpOyB9 CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTIoTklMLCBOVUxMKTsgfQor CQk7CisKIGNvbHVtbkVsZW06IENvbElkCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VT dHJpbmcoJDEpOwpAQCAtMTczMzIsNiArMTczNTMsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJ CQl8IFBBUlRJVElPTgogCQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECisJCQl8IFBFUklPRAog CQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kKIAkJCXwgUFJFQ0VESU5HCkBAIC0xNzkzMyw2ICsxNzk1 NSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUEFSVElUSU9OCiAJCQl8IFBBU1NJTkcK IAkJCXwgUEFTU1dPUkQKKwkJCXwgUEVSSU9ECiAJCQl8IFBMQUNJTkcKIAkJCXwgUExBTlMKIAkJ CXwgUE9MSUNZCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCmluZGV4IDJmZTkzNzc1MDAz Li5hODRiNGVlMzM4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKQEAgLTMwLDYg KzMwLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf Y29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCkBA IC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGls cy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0 aWxzL3JhbmdldHlwZXMuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGls cy9ybHMuaCIKICNpbmNsdWRlICJ1dGlscy9ydWxldXRpbHMuaCIKQEAgLTExNSwxMiArMTE3LDE1 IEBAIHR5cGVkZWYgc3RydWN0IFJJX0NvbnN0cmFpbnRJbmZvCiAJaW50MTYJCWNvbmZkZWxzZXRj b2xzW1JJX01BWF9OVU1LRVlTXTsgLyogYXR0bnVtcyBvZiBjb2xzIHRvIHNldCBvbgogCQkJCQkJ CQkJCQkJICogZGVsZXRlICovCiAJY2hhcgkJY29uZm1hdGNodHlwZTsJLyogZm9yZWlnbiBrZXkn cyBtYXRjaCB0eXBlICovCisJYm9vbAkJaGFzcGVyaW9kOwkJLyogaWYgdGhlIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EICovCiAJaW50CQkJbmtleXM7CQkJLyogbnVtYmVyIG9mIGtleSBjb2x1bW5z ICovCiAJaW50MTYJCXBrX2F0dG51bXNbUklfTUFYX05VTUtFWVNdOyAvKiBhdHRudW1zIG9mIHJl ZmVyZW5jZWQgY29scyAqLwogCWludDE2CQlma19hdHRudW1zW1JJX01BWF9OVU1LRVlTXTsgLyog YXR0bnVtcyBvZiByZWZlcmVuY2luZyBjb2xzICovCiAJT2lkCQkJcGZfZXFfb3Byc1tSSV9NQVhf TlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoUEsgPSBGSykgKi8KIAlPaWQJCQlwcF9l cV9vcHJzW1JJX01BWF9OVU1LRVlTXTsgLyogZXF1YWxpdHkgb3BlcmF0b3JzIChQSyA9IFBLKSAq LwogCU9pZAkJCWZmX2VxX29wcnNbUklfTUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRv cnMgKEZLID0gRkspICovCisJT2lkCQkJcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnly YW5nZSA8QCBhbnlyYW5nZSAqLworCU9pZAkJCWFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3Bl cjsJLyogYW55cmFuZ2UgPEAgYW55bXVsdGlyYW5nZSAqLwogCWRsaXN0X25vZGUJdmFsaWRfbGlu azsJCS8qIExpbmsgaW4gbGlzdCBvZiB2YWxpZCBlbnRyaWVzICovCiB9IFJJX0NvbnN0cmFpbnRJ bmZvOwogCkBAIC0zNjIsMTQgKzM2Nyw0MSBAQCBSSV9GS2V5X2NoZWNrKFRyaWdnZXJEYXRhICp0 cmlnZGF0YSkKIAkJICoJCSAgIEZPUiBLRVkgU0hBUkUgT0YgeAogCQkgKiBUaGUgdHlwZSBpZCdz IGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0aGUKIAkJICogY29ycmVzcG9uZGlu ZyBGSyBhdHRyaWJ1dGVzLgorCQkgKgorCQkgKiBCdXQgZm9yIHRlbXBvcmFsIEZLcyB3ZSBuZWVk IHRvIG1ha2Ugc3VyZQorCQkgKiB0aGUgRksncyByYW5nZSBpcyBjb21wbGV0ZWx5IGNvdmVyZWQu CisJCSAqIFNvIHdlIHVzZSB0aGlzIHF1ZXJ5IGluc3RlYWQ6CisJCSAqICBTRUxFQ1QgMQorCQkg KglGUk9NCSgKKwkJICoJCVNFTEVDVCBwa3BlcmlvZGF0dCBBUyByCisJCSAqCQlGUk9NICAgW09O TFldIHBrdGFibGUgeAorCQkgKgkJV0hFUkUgIHBrYXR0MSA9ICQxIFtBTkQgLi4uXQorCQkgKgkJ QU5EICAgIHBrcGVyaW9kYXR0ICYmICRuCisJCSAqCQlGT1IgS0VZIFNIQVJFIE9GIHgKKwkJICoJ KSB4MQorCQkgKiAgSEFWSU5HICRuIDxAIHJhbmdlX2FnZyh4MS5yKQorCQkgKiBOb3RlIGlmIEZP UiBLRVkgU0hBUkUgZXZlciBhbGxvd3MgR1JPVVAgQlkgYW5kIEhBVklORworCQkgKiB3ZSBjYW4g bWFrZSB0aGlzIGEgYml0IHNpbXBsZXIuCiAJCSAqIC0tLS0tLS0tLS0KIAkJICovCiAJCWluaXRT dHJpbmdJbmZvKCZxdWVyeWJ1Zik7CiAJCXBrX29ubHkgPSBwa19yZWwtPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFID8KIAkJCSIiIDogIk9OTFkgIjsKIAkJcXVv dGVSZWxhdGlvbk5hbWUocGtyZWxuYW1lLCBwa19yZWwpOwotCQlhcHBlbmRTdHJpbmdJbmZvKCZx dWVyeWJ1ZiwgIlNFTEVDVCAxIEZST00gJXMlcyB4IiwKLQkJCQkJCSBwa19vbmx5LCBwa3JlbG5h bWUpOworCQlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJCXsKKwkJCXF1b3RlT25lTmFtZShhdHRu YW1lLAorCQkJCQlSSUF0dE5hbWUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5u a2V5cyAtIDFdKSk7CisKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkiU0VM RUNUIDEgRlJPTSAoU0VMRUNUICVzIEFTIHIgRlJPTSAlcyVzIHgiLAorCQkJCQlhdHRuYW1lLCBw a19vbmx5LCBwa3JlbG5hbWUpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5m bygmcXVlcnlidWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCisJCQkJCQkJIHBrX29ubHksIHBr cmVsbmFtZSk7CisJCX0KIAkJcXVlcnlzZXAgPSAiV0hFUkUiOwogCQlmb3IgKGludCBpID0gMDsg aSA8IHJpaW5mby0+bmtleXM7IGkrKykKIAkJewpAQCAtMzg3LDYgKzQxOSwxOSBAQCBSSV9GS2V5 X2NoZWNrKFRyaWdnZXJEYXRhICp0cmlnZGF0YSkKIAkJCXF1ZXJ5b2lkc1tpXSA9IGZrX3R5cGU7 CiAJCX0KIAkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcXVlcnlidWYsICIgRk9SIEtFWSBTSEFS RSBPRiB4Iik7CisJCWlmIChyaWluZm8tPmhhc3BlcmlvZCkKKwkJeworCQkJT2lkCQlma190eXBl ID0gUklBdHRUeXBlKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAx XSk7CisJCQlPaWQJCWFnZ19yZXR0eXBlID0gQU5ZTVVMVElSQU5HRU9JRDsKKworCQkJYXBwZW5k U3RyaW5nSW5mbygmcXVlcnlidWYsICIpIHgxIEhBVklORyAiKTsKKwkJCXNwcmludGYocGFyYW1u YW1lLCAiJCVkIiwgcmlpbmZvLT5ua2V5cyk7CisJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVm LCAiIiwKKwkJCQkJCQlwYXJhbW5hbWUsIGZrX3R5cGUsCisJCQkJCQkJcmlpbmZvLT5hZ2dlZF9w ZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkJInBnX2NhdGFsb2cucmFuZ2VfYWdnIiwg YWdnX3JldHR5cGUpOworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIoeDEucikiKTsK KwkJfQogCiAJCS8qIFByZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8KIAkJcXBsYW4gPSByaV9Q bGFuQ2hlY2socXVlcnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cywgcXVlcnlvaWRzLApAQCAtNDk0 LDE0ICs1MzksNDAgQEAgcmlfQ2hlY2tfUGtfTWF0Y2goUmVsYXRpb24gcGtfcmVsLCBSZWxhdGlv biBma19yZWwsCiAJCSAqCQkgICBGT1IgS0VZIFNIQVJFIE9GIHgKIAkJICogVGhlIHR5cGUgaWQn cyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCiAJCSAqIFBLIGF0dHJpYnV0 ZXMgdGhlbXNlbHZlcy4KKwkJICogQnV0IGZvciB0ZW1wb3JhbCBGS3Mgd2UgbmVlZCB0byBtYWtl IHN1cmUKKwkJICogdGhlIEZLJ3MgcmFuZ2UgaXMgY29tcGxldGVseSBjb3ZlcmVkLgorCQkgKiBT byB3ZSB1c2UgdGhpcyBxdWVyeSBpbnN0ZWFkOgorCQkgKiAgU0VMRUNUIDEKKwkJICogIEZST00g ICAgKAorCQkgKgkgIFNFTEVDVCBwa3BlcmlvZGF0dCBBUyByCisJCSAqCSAgRlJPTSAgIFtPTkxZ XSBwa3RhYmxlIHgKKwkJICoJICBXSEVSRSAgcGthdHQxID0gJDEgW0FORCAuLi5dCisJCSAqCSAg QU5EICAgIHBrcGVyaW9kYXR0ICYmICRuCisJCSAqCSAgRk9SIEtFWSBTSEFSRSBPRiB4CisJCSAq ICApIHgxCisJCSAqICBIQVZJTkcgJG4gPEAgcmFuZ2VfYWdnKHgxLnIpCisJCSAqIE5vdGUgaWYg Rk9SIEtFWSBTSEFSRSBldmVyIGFsbG93cyBHUk9VUCBCWSBhbmQgSEFWSU5HCisJCSAqIHdlIGNh biBtYWtlIHRoaXMgYSBiaXQgc2ltcGxlci4KIAkJICogLS0tLS0tLS0tLQogCQkgKi8KIAkJaW5p dFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKIAkJcGtfb25seSA9IHBrX3JlbC0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPwogCQkJIiIgOiAiT05MWSAiOwogCQlx dW90ZVJlbGF0aW9uTmFtZShwa3JlbG5hbWUsIHBrX3JlbCk7Ci0JCWFwcGVuZFN0cmluZ0luZm8o JnF1ZXJ5YnVmLCAiU0VMRUNUIDEgRlJPTSAlcyVzIHgiLAotCQkJCQkJIHBrX29ubHksIHBrcmVs bmFtZSk7CisJCWlmIChyaWluZm8tPmhhc3BlcmlvZCkKKwkJeworCQkJcXVvdGVPbmVOYW1lKGF0 dG5hbWUsIFJJQXR0TmFtZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlz IC0gMV0pKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsCisJCQkJCSJTRUxFQ1Qg MSBGUk9NIChTRUxFQ1QgJXMgQVMgciBGUk9NICVzJXMgeCIsCisJCQkJCWF0dG5hbWUsIHBrX29u bHksIHBrcmVsbmFtZSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZx dWVyeWJ1ZiwgIlNFTEVDVCAxIEZST00gJXMlcyB4IiwKKwkJCQkJcGtfb25seSwgcGtyZWxuYW1l KTsKKwkJfQorCiAJCXF1ZXJ5c2VwID0gIldIRVJFIjsKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBy aWluZm8tPm5rZXlzOyBpKyspCiAJCXsKQEAgLTUxOCw2ICs1ODksMTkgQEAgcmlfQ2hlY2tfUGtf TWF0Y2goUmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJCQlxdWVyeW9pZHNbaV0g PSBwa190eXBlOwogCQl9CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnF1ZXJ5YnVmLCAiIEZP UiBLRVkgU0hBUkUgT0YgeCIpOworCQlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJCXsKKwkJCU9p ZAkJZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8t Pm5rZXlzIC0gMV0pOworCQkJT2lkCQlhZ2dfcmV0dHlwZSA9IEFOWU1VTFRJUkFOR0VPSUQ7CisK KwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiKSB4MSBIQVZJTkcgIik7CisJCQlzcHJp bnRmKHBhcmFtbmFtZSwgIiQlZCIsIHJpaW5mby0+bmtleXMpOworCQkJcmlfR2VuZXJhdGVRdWFs KCZxdWVyeWJ1ZiwgIiIsCisJCQkJCQkJcGFyYW1uYW1lLCBma190eXBlLAorCQkJCQkJCXJpaW5m by0+YWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAorCQkJCQkJCSJwZ19jYXRhbG9nLnJh bmdlX2FnZyIsIGFnZ19yZXR0eXBlKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAi KHgxLnIpIik7CisJCX0KIAogCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCiAJCXFw bGFuID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMsIHF1ZXJ5b2lk cywKQEAgLTEyMTAsNyArMTI5NCw2IEBAIHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJv b2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCiAJfQogfQogCi0KIC8qCiAgKiBSSV9GS2V5X3Br X3VwZF9jaGVja19yZXF1aXJlZCAtCiAgKgpAQCAtMjE2OCw2ICsyMjUxLDcgQEAgcmlfTG9hZENv bnN0cmFpbnRJbmZvKE9pZCBjb25zdHJhaW50T2lkKQogCXJpaW5mby0+Y29uZnVwZHR5cGUgPSBj b25Gb3JtLT5jb25mdXBkdHlwZTsKIAlyaWluZm8tPmNvbmZkZWx0eXBlID0gY29uRm9ybS0+Y29u ZmRlbHR5cGU7CiAJcmlpbmZvLT5jb25mbWF0Y2h0eXBlID0gY29uRm9ybS0+Y29uZm1hdGNodHlw ZTsKKwlyaWluZm8tPmhhc3BlcmlvZCA9IGNvbkZvcm0tPmNvbnBlcmlvZDsKIAogCURlY29uc3Ry dWN0RmtDb25zdHJhaW50Um93KHR1cCwKIAkJCQkJCQkgICAmcmlpbmZvLT5ua2V5cywKQEAgLTIx NzksNiArMjI2MywyMCBAQCByaV9Mb2FkQ29uc3RyYWludEluZm8oT2lkIGNvbnN0cmFpbnRPaWQp CiAJCQkJCQkJICAgJnJpaW5mby0+bmRlbHNldGNvbHMsCiAJCQkJCQkJICAgcmlpbmZvLT5jb25m ZGVsc2V0Y29scyk7CiAKKwkvKgorCSAqIEZvciB0ZW1wb3JhbCBGS3MsIGdldCB0aGUgb3BlcmF0 b3JzIGFuZCBmdW5jdGlvbnMgd2UgbmVlZC4KKwkgKiBXZSBhc2sgdGhlIG9wY2xhc3Mgb2YgdGhl IFBLIGVsZW1lbnQgZm9yIHRoZXNlLgorCSAqIFRoaXMgYWxsIGdldHMgY2FjaGVkIChhcyBkb2Vz IHRoZSBnZW5lcmF0ZWQgcGxhbiksCisJICogc28gdGhlcmUncyBubyBwZXJmb3JtYW5jZSBpc3N1 ZS4KKwkgKi8KKwlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJeworCQlPaWQJb3BjbGFzcyA9IGdl dF9pbmRleF9jb2x1bW5fb3BjbGFzcyhjb25Gb3JtLT5jb25pbmRpZCwgcmlpbmZvLT5ua2V5cyk7 CisJCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3MsCisJCQkJCQkgICZyaWluZm8tPnBlcmlvZF9j b250YWluZWRfYnlfb3BlciwKKwkJCQkJCSAgJnJpaW5mby0+YWdnZWRfcGVyaW9kX2NvbnRhaW5l ZF9ieV9vcGVyKTsKKwl9CisKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCS8qCkBAIC0yNzkw LDcgKzI4ODgsMTAgQEAgcmlfSGFzaFByZXBhcmVkUGxhbihSSV9RdWVyeUtleSAqa2V5LCBTUElQ bGFuUHRyIHBsYW4pCiAvKgogICogcmlfS2V5c0VxdWFsIC0KICAqCi0gKiBDaGVjayBpZiBhbGwg a2V5IHZhbHVlcyBpbiBPTEQgYW5kIE5FVyBhcmUgZXF1YWwuCisgKiBDaGVjayBpZiBhbGwga2V5 IHZhbHVlcyBpbiBPTEQgYW5kIE5FVyBhcmUgImVxdWl2YWxlbnQiOgorICogRm9yIG5vcm1hbCBG S3Mgd2UgY2hlY2sgZm9yIGVxdWFsaXR5LgorICogRm9yIHRlbXBvcmFsIEZLcyB3ZSBjaGVjayB0 aGF0IHRoZSBQSyBzaWRlIGlzIGEgc3VwZXJzZXQgb2YgaXRzIG9sZCB2YWx1ZSwKKyAqIG9yIHRo ZSBGSyBzaWRlIGlzIGEgc3Vic2V0IG9mIGl0cyBvbGQgdmFsdWUuCiAgKgogICogTm90ZTogYXQg c29tZSBwb2ludCB3ZSBtaWdodCB3aXNoIHRvIHJlZGVmaW5lIHRoaXMgYXMgY2hlY2tpbmcgZm9y CiAgKiAiSVMgTk9UIERJU1RJTkNUIiByYXRoZXIgdGhhbiAiPSIsIHRoYXQgaXMsIGFsbG93IHR3 byBudWxscyB0byBiZQpAQCAtMjg0NiwxMyArMjk0NywyMyBAQCByaV9LZXlzRXF1YWwoUmVsYXRp b24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVUYWJsZVNsb3QgKm5ld3Nsb3Qs CiAJCX0KIAkJZWxzZQogCQl7CisJCQlPaWQgZXFfb3ByID0gcmlpbmZvLT5mZl9lcV9vcHJzW2ld OworCisJCQkvKgorCQkJICogV2hlbiBjb21wYXJpbmcgdGhlIFBFUklPRCBjb2x1bW5zIHdlIGNh biBza2lwIHRoZSBjaGVjaworCQkJICogd2hlbmV2ZXIgdGhlIHJlZmVyZW5jaW5nIGNvbHVtbiBz dGF5ZWQgZXF1YWwgb3Igc2hyYW5rLAorCQkJICogc28gdGVzdCB3aXRoIHRoZSBjb250YWluZWQt Ynkgb3BlcmF0b3IgaW5zdGVhZC4KKwkJCSAqLworCQkJaWYgKHJpaW5mby0+aGFzcGVyaW9kICYm IGkgPT0gcmlpbmZvLT5ua2V5cyAtIDEpCisJCQkJZXFfb3ByID0gcmlpbmZvLT5wZXJpb2RfY29u dGFpbmVkX2J5X29wZXI7CisKIAkJCS8qCiAJCQkgKiBGb3IgdGhlIEZLIHRhYmxlLCBjb21wYXJl IHdpdGggdGhlIGFwcHJvcHJpYXRlIGVxdWFsaXR5CiAJCQkgKiBvcGVyYXRvci4gIENoYW5nZXMg dGhhdCBjb21wYXJlIGVxdWFsIHdpbGwgc3RpbGwgc2F0aXNmeSB0aGUKIAkJCSAqIGNvbnN0cmFp bnQgYWZ0ZXIgdGhlIHVwZGF0ZS4KIAkJCSAqLwotCQkJaWYgKCFyaV9BdHRyaWJ1dGVzRXF1YWwo cmlpbmZvLT5mZl9lcV9vcHJzW2ldLCBSSUF0dFR5cGUocmVsLCBhdHRudW1zW2ldKSwKLQkJCQkJ CQkJCW9sZHZhbHVlLCBuZXd2YWx1ZSkpCisJCQlpZiAoIXJpX0F0dHJpYnV0ZXNFcXVhbChlcV9v cHIsIFJJQXR0VHlwZShyZWwsIGF0dG51bXNbaV0pLAorCQkJCQkJCQkJbmV3dmFsdWUsIG9sZHZh bHVlKSkKIAkJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9CkBAIC0yODYwLDcgKzI5NzEsNiBAQCBy aV9LZXlzRXF1YWwoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVU YWJsZVNsb3QgKm5ld3Nsb3QsCiAJcmV0dXJuIHRydWU7CiB9CiAKLQogLyoKICAqIHJpX0F0dHJp YnV0ZXNFcXVhbCAtCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDJhMWVlNjk5 NzAxLi4wY2NiMWIwZDU4YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzM4LDcg KzMzOCw3IEBAIHN0YXRpYyBjaGFyICpwZ19nZXRfdmlld2RlZl93b3JrZXIoT2lkIHZpZXdvaWQs CiAJCQkJCQkJCSAgIGludCBwcmV0dHlGbGFncywgaW50IHdyYXBDb2x1bW4pOwogc3RhdGljIGNo YXIgKnBnX2dldF90cmlnZ2VyZGVmX3dvcmtlcihPaWQgdHJpZ2lkLCBib29sIHByZXR0eSk7CiBz dGF0aWMgaW50CWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkoRGF0dW0gY29sdW1uX2luZGV4 X2FycmF5LCBPaWQgcmVsSWQsCi0JCQkJCQkJCQkJIFN0cmluZ0luZm8gYnVmKTsKKwkJCQkJCQkJ CQkgYm9vbCB3aXRoUGVyaW9kLCBTdHJpbmdJbmZvIGJ1Zik7CiBzdGF0aWMgY2hhciAqcGdfZ2V0 X3J1bGVkZWZfd29ya2VyKE9pZCBydWxlb2lkLCBpbnQgcHJldHR5RmxhZ3MpOwogc3RhdGljIGNo YXIgKnBnX2dldF9pbmRleGRlZl93b3JrZXIoT2lkIGluZGV4cmVsaWQsIGludCBjb2xubywKIAkJ CQkJCQkJCWNvbnN0IE9pZCAqZXhjbHVkZU9wcywKQEAgLTIyNDUsNyArMjI0NSw5IEBAIHBnX2dl dF9jb25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29uc3RyYWludElkLCBib29sIGZ1bGxDb21tYW5k LAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09OU1RST0lELCB0dXAsCiAJCQkJ CQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRfY29ua2V5KTsKIAotCQkJCWRlY29tcGlsZV9jb2x1 bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgJmJ1Zik7CisJCQkJLyogSWYg aXQgaXMgYSB0ZW1wb3JhbCBmb3JlaWduIGtleSB0aGVuIGl0IHVzZXMgUEVSSU9ELiAqLworCQkJ CWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwKKwkJ CQkJCQkJCQkJIGNvbkZvcm0tPmNvbnBlcmlvZCwgJmJ1Zik7CiAKIAkJCQkvKiBhZGQgZm9yZWln biByZWxhdGlvbiBuYW1lICovCiAJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiKSBSRUZFUkVO Q0VTICVzKCIsCkBAIC0yMjU2LDcgKzIyNTgsOCBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3Jr ZXIoT2lkIGNvbnN0cmFpbnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKIAkJCQl2YWwgPSBTeXNDYWNo ZUdldEF0dHJOb3ROdWxsKENPTlNUUk9JRCwgdHVwLAogCQkJCQkJCQkJCQkgQW51bV9wZ19jb25z dHJhaW50X2NvbmZrZXkpOwogCi0JCQkJZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheSh2YWws IGNvbkZvcm0tPmNvbmZyZWxpZCwgJmJ1Zik7CisJCQkJZGVjb21waWxlX2NvbHVtbl9pbmRleF9h cnJheSh2YWwsIGNvbkZvcm0tPmNvbmZyZWxpZCwKKwkJCQkJCQkJCQkJIGNvbkZvcm0tPmNvbnBl cmlvZCwgJmJ1Zik7CiAKIAkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmYnVmLCAnKScpOwogCkBA IC0yMzQyLDcgKzIzNDUsNyBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3JrZXIoT2lkIGNvbnN0 cmFpbnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKIAkJCQlpZiAoIWlzbnVsbCkKIAkJCQl7CiAJCQkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZiwgIiAoIik7Ci0JCQkJCWRlY29tcGlsZV9jb2x1 bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgJmJ1Zik7CisJCQkJCWRlY29t cGlsZV9jb2x1bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgZmFsc2UsICZi dWYpOwogCQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmYnVmLCAnKScpOwogCQkJCX0KIApAQCAt MjM3Nyw3ICsyMzgwLDcgQEAgcGdfZ2V0X2NvbnN0cmFpbnRkZWZfd29ya2VyKE9pZCBjb25zdHJh aW50SWQsIGJvb2wgZnVsbENvbW1hbmQsCiAJCQkJdmFsID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVs bChDT05TVFJPSUQsIHR1cCwKIAkJCQkJCQkJCQkJIEFudW1fcGdfY29uc3RyYWludF9jb25rZXkp OwogCi0JCQkJa2V5YXR0cyA9IGRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkodmFsLCBjb25G b3JtLT5jb25yZWxpZCwgJmJ1Zik7CisJCQkJa2V5YXR0cyA9IGRlY29tcGlsZV9jb2x1bW5faW5k ZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgZmFsc2UsICZidWYpOwogCQkJCWlmIChj b25Gb3JtLT5jb25wZXJpb2QpCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZiwgIiBX SVRIT1VUIE9WRVJMQVBTIik7CiAKQEAgLTI1NzUsNyArMjU3OCw3IEBAIHBnX2dldF9jb25zdHJh aW50ZGVmX3dvcmtlcihPaWQgY29uc3RyYWludElkLCBib29sIGZ1bGxDb21tYW5kLAogICovCiBz dGF0aWMgaW50CiBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KERhdHVtIGNvbHVtbl9pbmRl eF9hcnJheSwgT2lkIHJlbElkLAotCQkJCQkJCSBTdHJpbmdJbmZvIGJ1ZikKKwkJCQkJCQkgYm9v bCB3aXRoUGVyaW9kLCBTdHJpbmdJbmZvIGJ1ZikKIHsKIAlEYXR1bQkgICAqa2V5czsKIAlpbnQJ CQluS2V5czsKQEAgLTI1OTQsNyArMjU5Nyw5IEBAIGRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJy YXkoRGF0dW0gY29sdW1uX2luZGV4X2FycmF5LCBPaWQgcmVsSWQsCiAJCWlmIChqID09IDApCiAJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihjb2xOYW1lKSk7 CiAJCWVsc2UKLQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiLCAlcyIsIHF1b3RlX2lkZW50aWZp ZXIoY29sTmFtZSkpOworCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIsICVzJXMiLAorCQkJCQkJ CSAod2l0aFBlcmlvZCAmJiBqID09IG5LZXlzIC0gMSkgPyAiUEVSSU9EICIgOiAiIiwKKwkJCQkJ CQkgcXVvdGVfaWRlbnRpZmllcihjb2xOYW1lKSk7CiAJfQogCiAJcmV0dXJuIG5LZXlzOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaAppbmRleCBhMzNiNGYxN2VhOC4uYzY0NGM3ZGRiYmUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCkBAIC0xMDgsOCArMTA4LDggQEAgQ0FU QUxPRyhwZ19jb25zdHJhaW50LDI2MDYsQ29uc3RyYWludFJlbGF0aW9uSWQpCiAJYm9vbAkJY29u bm9pbmhlcml0OwogCiAJLyoKLQkgKiBGb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlxdWUgY29uc3Ry YWludHMsIHNpZ25pZmllcyB0aGUgbGFzdCBjb2x1bW4gdXNlcwotCSAqIG92ZXJsYXBzIGluc3Rl YWQgb2YgZXF1YWxzLgorCSAqIEZvciBwcmltYXJ5IGtleXMsIHVuaXF1ZSBjb25zdHJhaW50cywg YW5kIGZvcmVpZ24ga2V5cywKKwkgKiBzaWduaWZpZXMgdGhlIGxhc3QgY29sdW1uIHVzZXMgb3Zl cmxhcHMgaW5zdGVhZCBvZiBlcXVhbHMuCiAJICovCiAJYm9vbAkJY29ucGVyaW9kOwogCkBAIC0x MjcsMjAgKzEyNywyMCBAQCBDQVRBTE9HKHBnX2NvbnN0cmFpbnQsMjYwNixDb25zdHJhaW50UmVs YXRpb25JZCkKIAlpbnQxNgkJY29uZmtleVsxXTsKIAogCS8qCi0JICogSWYgYSBmb3JlaWduIGtl eSwgdGhlIE9JRHMgb2YgdGhlIFBLID0gRksgZXF1YWxpdHkgb3BlcmF0b3JzIGZvciBlYWNoCi0J ICogY29sdW1uIG9mIHRoZSBjb25zdHJhaW50CisJICogSWYgYSBmb3JlaWduIGtleSwgdGhlIE9J RHMgb2YgdGhlIFBLID0gRksgZXF1YWxpdHkvb3ZlcmxhcCBvcGVyYXRvcnMgZm9yCisJICogZWFj aCBjb2x1bW4gb2YgdGhlIGNvbnN0cmFpbnQKIAkgKi8KIAlPaWQJCQljb25wZmVxb3BbMV0gQktJ X0xPT0tVUChwZ19vcGVyYXRvcik7CiAKIAkvKgotCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBP SURzIG9mIHRoZSBQSyA9IFBLIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IgZWFjaAotCSAqIGNvbHVt biBvZiB0aGUgY29uc3RyYWludCAoaS5lLiwgZXF1YWxpdHkgZm9yIHRoZSByZWZlcmVuY2VkIGNv bHVtbnMpCisJICogSWYgYSBmb3JlaWduIGtleSwgdGhlIE9JRHMgb2YgdGhlIFBLID0gUEsgZXF1 YWxpdHkvb3ZlcmxhcCBvcGVyYXRvcnMgZm9yCisJICogZWFjaCBjb2x1bW4gb2YgdGhlIGNvbnN0 cmFpbnQgKGkuZS4sIGVxdWFsaXR5IGZvciB0aGUgcmVmZXJlbmNlZCBjb2x1bW5zKQogCSAqLwog CU9pZAkJCWNvbnBwZXFvcFsxXSBCS0lfTE9PS1VQKHBnX29wZXJhdG9yKTsKIAogCS8qCi0JICog SWYgYSBmb3JlaWduIGtleSwgdGhlIE9JRHMgb2YgdGhlIEZLID0gRksgZXF1YWxpdHkgb3BlcmF0 b3JzIGZvciBlYWNoCi0JICogY29sdW1uIG9mIHRoZSBjb25zdHJhaW50IChpLmUuLCBlcXVhbGl0 eSBmb3IgdGhlIHJlZmVyZW5jaW5nIGNvbHVtbnMpCisJICogSWYgYSBmb3JlaWduIGtleSwgdGhl IE9JRHMgb2YgdGhlIEZLID0gRksgZXF1YWxpdHkvb3ZlcmxhcCBvcGVyYXRvcnMgZm9yCisJICog ZWFjaCBjb2x1bW4gb2YgdGhlIGNvbnN0cmFpbnQgKGkuZS4sIGVxdWFsaXR5IGZvciB0aGUgcmVm ZXJlbmNpbmcgY29sdW1ucykKIAkgKi8KIAlPaWQJCQljb25mZmVxb3BbMV0gQktJX0xPT0tVUChw Z19vcGVyYXRvcik7CiAKQEAgLTI4Myw2ICsyODMsOSBAQCBleHRlcm4gdm9pZCBEZWNvbnN0cnVj dEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCQkJCQkJCQkJ ICAgQXR0ck51bWJlciAqY29ua2V5LCBBdHRyTnVtYmVyICpjb25ma2V5LAogCQkJCQkJCQkJICAg T2lkICpwZl9lcV9vcHJzLCBPaWQgKnBwX2VxX29wcnMsIE9pZCAqZmZfZXFfb3BycywKIAkJCQkJ CQkJCSAgIGludCAqbnVtX2ZrX2RlbF9zZXRfY29scywgQXR0ck51bWJlciAqZmtfZGVsX3NldF9j b2xzKTsKK2V4dGVybiB2b2lkIEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAorCQkJCQkJ CSAgT2lkICpwZXJpb2RvcGVyb2lkLAorCQkJCQkJCSAgT2lkICphZ2dlZHBlcmlvZG9wZXJvaWQp OwogCiBleHRlcm4gYm9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5nKE9pZCByZWxpZCwKIAkJ CQkJCQkJCSAgSW5kZXggdmFybm8sIEluZGV4IHZhcmxldmVsc3VwLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0u aAppbmRleCAwYzUzZDY3ZDNlZS4uNWZkMDk1ZWExNzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL2RlZnJlbS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCkBA IC01MCw3ICs1MCw3IEBAIGV4dGVybiBib29sIENoZWNrSW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJ ZCwKIGV4dGVybiBPaWQJR2V0RGVmYXVsdE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCk7 CiBleHRlcm4gT2lkCVJlc29sdmVPcENsYXNzKGNvbnN0IExpc3QgKm9wY2xhc3MsIE9pZCBhdHRy VHlwZSwKIAkJCQkJCSAgIGNvbnN0IGNoYXIgKmFjY2Vzc01ldGhvZE5hbWUsIE9pZCBhY2Nlc3NN ZXRob2RJZCk7Ci1leHRlcm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShP aWQgb3BjbGFzcywgT2lkIGF0dHR5cGUsCitleHRlcm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxs S25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIHJoc3R5cGUsCiAJCQkJCQkJCQkJCSBPaWQg Km9waWQsIFN0cmF0ZWd5TnVtYmVyICpzdHJhdCk7CiAKIC8qIGNvbW1hbmRzL2Z1bmN0aW9uY21k cy5jICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYWFkYWY2N2Y1NzQuLmM4NmM2NmUwNGNm IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yNjEzLDYgKzI2MTMsOCBAQCB0eXBlZGVmIHN0 cnVjdCBDb25zdHJhaW50CiAJUmFuZ2VWYXIgICAqcGt0YWJsZTsJCS8qIFByaW1hcnkga2V5IHRh YmxlICovCiAJTGlzdAkgICAqZmtfYXR0cnM7CQkvKiBBdHRyaWJ1dGVzIG9mIGZvcmVpZ24ga2V5 ICovCiAJTGlzdAkgICAqcGtfYXR0cnM7CQkvKiBDb3JyZXNwb25kaW5nIGF0dHJzIGluIFBLIHRh YmxlICovCisJYm9vbAkJZmtfd2l0aF9wZXJpb2Q7CS8qIExhc3QgYXR0cmlidXRlIG9mIEZLIHVz ZXMgUEVSSU9EICovCisJYm9vbAkJcGtfd2l0aF9wZXJpb2Q7CS8qIExhc3QgYXR0cmlidXRlIG9m IFBLIHVzZXMgUEVSSU9EICovCiAJY2hhcgkJZmtfbWF0Y2h0eXBlOwkvKiBGVUxMLCBQQVJUSUFM LCBTSU1QTEUgKi8KIAljaGFyCQlma191cGRfYWN0aW9uOwkvKiBPTiBVUERBVEUgYWN0aW9uICov CiAJY2hhcgkJZmtfZGVsX2FjdGlvbjsJLyogT04gREVMRVRFIGFjdGlvbiAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCmluZGV4IDIzMzFhY2FjMDkxLi5kZjVlMjg4N2I1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAt MzI2LDYgKzMyNiw3IEBAIFBHX0tFWVdPUkQoInBhcnRpYWwiLCBQQVJUSUFMLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJ0aXRpb24iLCBQQVJUSVRJT04s IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhc3NpbmciLCBQ QVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNz d29yZCIsIFBBU1NXT1JELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlX T1JEKCJwZXJpb2QiLCBQRVJJT0QsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInBsYWNpbmciLCBQTEFDSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgicGxhbnMiLCBQTEFOUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgicG9saWN5IiwgUE9MSUNZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRf b3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBz Lm91dAppbmRleCBlYTU1OTFhM2IzOC4uZWExYTJhNGM2YzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtOTksMjEgKzk5LDYgQEAgQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAogQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wazsKIERST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsK IERST1AgVFlQRSB0ZXh0cmFuZ2UyOwotLS0gUEsgd2l0aCBhIG11bHRpcmFuZ2U6Ci1DUkVBVEUg VEFCTEUgdGVtcG9yYWxfbWx0cm5nICgKLSAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCB0c211 bHRpcmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKLSk7Ci1cZCB0ZW1wb3JhbF9tbHRybmcKLSAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9tbHRybmciCi0gIENvbHVtbiAgfCAg ICAgVHlwZSAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCi0gaWQgICAg ICAgfCBpbnQ0cmFuZ2UgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAotIHZhbGlkX2F0IHwg dHNtdWx0aXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLUluZGV4ZXM6Ci0gICAgInRl bXBvcmFsX21sdHJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQotCiAtLSBVTklRVUUgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lUSE9VVCBPVkVSTEFQUzoK IENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKIAl2YWxpZF9hdCBkYXRlcmFuZ2UsCkBAIC0y NzYsMTggKzI2MSwxOCBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIC0tIHRlc3QgUEsgaW5zZXJ0 cwogLS0KIC0tIG9rYXk6Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0n LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKLUlOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyBWQUxVRVMgKCdbMSwxXScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1syLDJdJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgVkFMVUVTICgnWzMsM10nLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEt MDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CiAtLSBzaG91bGQgZmFpbDoK LUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKCdbMSwxXScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSk7CiBFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNp b24gY29uc3RyYWludCAidGVtcG9yYWxfcm5nX3BrIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0 aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpKS4K LUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKE5VTEwsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSk7CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJpZCIgb2YgcmVsYXRpb24gInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGluZyBy b3cgY29udGFpbnMgKG51bGwsIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKS4KLUlOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyBWQUxVRVMgKCdbMywzXScsIE5VTEwpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CiBFUlJPUjogIG51 bGwgdmFsdWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIg dmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKFszLDQpLCBudWxsKS4KIC0tCkBAIC0zMDMsOCArMjg4LDggQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsMyAoCiApOwogSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwg bmFtZSkKICAgVkFMVUVTCi0gICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpLCAnWzcsN10nLCAnZm9vJyksCi0gICgnWzIsMl0nLCBkYXRlcmFuZ2UoJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzksOV0nLCAnYmFyJykKKyAgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKKyAgKCdb MiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAn YmFyJykKIDsKIERST1AgVEFCTEUgdGVtcG9yYWwzOwogLS0KQEAgLTMzMSwxMiArMzE2LDEyIEBA IENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCiAgIG5hbWUgdGV4dCwKIAlDT05T VFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxF IHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1sx LDFdJywgJ1syLDJdJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzMsM10nLCAnWzQsNF0nKTsKLUlOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkIFZBTFVFUwotICAoJ1sxLDFdJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAotICAoJ1sxLDFdJywgZGF0ZXJhbmdlKCcy MDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAotICAoJ1szLDNdJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3RocmVlJyk7CitDUkVBVEUgVEFCTEUgdHAx IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMikn LCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCisgICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCisgICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsK IFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OwogICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKIC0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCkBAIC0zNjYsMTIgKzM1MSwxMiBAQCBDUkVB VEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAogICBuYW1lIHRleHQsCiAJQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIFBBUlRJ VElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMV0nLCAnWzIs Ml0nKTsKLUNSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk IEZPUiBWQUxVRVMgSU4gKCdbMywzXScsICdbNCw0XScpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWQgVkFMVUVTCi0gICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAwMC0wMi0wMScpLCAnb25lJyksCi0gICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEn LCAnMjAwMC0wMy0wMScpLCAnb25lJyksCi0gICgnWzMsM10nLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9O IE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScp OworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9S IFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0KScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpOwogU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgIGlkICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAogLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0KQEAgLTM5NCw0ICszNzksNjExIEBAIFNFTEVDVCAqIEZST00g dHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICgxIHJvdykKIAogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZDsKKy0tCistLSB0ZXN0IEZLIGRlcGVuZGVuY2llcworLS0KKy0tIGNhbid0 IGRyb3AgYSByYW5nZSByZWZlcmVuY2VkIGJ5IGFuIEZLLCB1bmxlc3Mgd2l0aCBDQVNDQURFCitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAo CisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVS RU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1u IHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBvcmFsMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBjb25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFi bGUgdGVtcG9yYWxfZmtfcm5nMnJuZyBkZXBlbmRzIG9uIGNvbHVtbiB2YWxpZF9hdCBvZiB0YWJs ZSB0ZW1wb3JhbDMKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBl bmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFs aWRfYXQgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29uc3RyYWludCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcKK0RST1AgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0KKy0tIHRl c3QgRk9SRUlHTiBLRVksIHJhbmdlIHJlZmVyZW5jZXMgcmFuZ2UKKy0tCistLSB0ZXN0IHRhYmxl IHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9y bmcgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX3JuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdp dGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgaW50NHJhbmdlLAorCXBhcmVudF9pZCBp bnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrMiBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19mazIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJP UjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsyIiBjYW5u b3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2 YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50NHJhbmdlIGFuZCBkYXRlcmFu Z2UuCistLSB3b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5jaW5n CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsK Ky0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRy YW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBr ZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVy ZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFs aWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSBy ZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50 X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRy YW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUg cmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAor CXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkKQorKTsKK0VSUk9SOiAgZm9y ZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhl IHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSBy ZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRoIGlu ZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFy ZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZzsKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5j ZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJl bmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCistLSBUd28gc2Nh bGFyIGNvbHVtbnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMjsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ybmcyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkg KGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5n ZSwKKwlwYXJlbnRfaWQxIGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOwor XGQgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3Jh bF9mazJfcm5nMnJuZyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8 IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgICB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgCisgcGFyZW50X2lkMSB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CisgcGFyZW50X2lkMiB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitJbmRl eGVzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAgInRl bXBvcmFsX2ZrMl9ybmcycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIoaWQxLCBpZDIsIFBF UklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKKy0tCist LSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJ cGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3byBzY2FsYXIg Y29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQxIGludDRyYW5nZSwKKwlwYXJl bnRfaWQyIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRf YXQpOworXGQgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50 ZW1wb3JhbF9mazJfcm5nMnJuZyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgICB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8 IG5vdCBudWxsIHwgCisgcGFyZW50X2lkMSB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnJuZ19wayIgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6Cisg ICAgInRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIoaWQxLCBp ZDIsIFBFUklPRCB2YWxpZF9hdCkKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJl bmNlZCB0YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAorCUFM VEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzcmFuZ2UgVVNJTkcgdHNyYW5nZShsb3dlcih2YWxp ZF9hdCksIHVwcGVyKHZhbGlkX2F0KSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n CisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0VS Uk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgY2Fu bm90IGJlIGltcGxlbWVudGVkCitERVRBSUw6ICBLZXkgY29sdW1ucyAidmFsaWRfYXQiIGFuZCAi dmFsaWRfYXQiIGFyZSBvZiBpbmNvbXBhdGlibGUgdHlwZXM6IHRzcmFuZ2UgYW5kIGRhdGVyYW5n ZS4KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBTFRFUiBDT0xVTU4gdmFsaWRf YXQgVFlQRSBkYXRlcmFuZ2UgVVNJTkcgZGF0ZXJhbmdlKGxvd2VyKHZhbGlkX2F0KTo6ZGF0ZSwg dXBwZXIodmFsaWRfYXQpOjpkYXRlKTsKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIHNob3VsZCBmYWls IGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2Zr MgorCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisJUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgaWQpOworRVJST1I6ICBmb3JlaWduIGtleSByZWZl cmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1cGxpY2F0ZXMKKy0tCistLSB0 ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAzJykpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIw MTgtMDQtMDQnKSksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAxJyksICdbMSwyKScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDIn LCAnMjAxOC0wNC0wMScpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBv cmFsX2ZrX3JuZzJybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwy KSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1w b3JhbF9ybmciLgorLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tCistLSB0ZXN0IHBnX2dldF9jb25z dHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19j b25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnJuZ19mayc7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAn WzEsMiknKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cm5nMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5n MnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3Ju ZyIuCistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDMnLCAnMjAx OC0wMy0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcy MDE4LTA0LTAxJyksICdbMSwyKScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRl cworLS0KK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0wMicsICcyMDE4LTAzLTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gc2hv dWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNS0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VS Uk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIKK0RF VEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4 LTA1LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCitVUERBVEUg dGVtcG9yYWxfZmtfcm5nMnJuZyBTRVQgcGFyZW50X2lkID0gJ1s4LDkpJyBXSEVSRSBpZCA9ICdb MSwyKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbOCw5KSwgWzIwMTgt MDEtMDIsMjAxOC0wMy0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmci LgorLS0gQUxURVIgRksgREVGRVJSQUJMRQorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJykpOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICAgKCdbMyw0KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworICBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7IC0tc2hvdWxkIG5vdCBmYWlsIHlldC4K K0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEp KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQg c3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykgV0hFUkUg aWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0 aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcg U0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKQorV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcy MDE4LTAzLTAxJyk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUg cmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIi4KKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitFUlJPUjog IHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBv cmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3Jk IGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf Zms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCU9OIFVQREFURSBSRVNUUklDVDsKKy0t IGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCBy ZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcy MDE2LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhl IHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYp JzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYp JywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywg JzIwMTYtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxz IGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIg b24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIg cGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Ju ZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcy cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLSBh IFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVm ZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRo YXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNh dXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsK Ky0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtf cm5nMnJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf Zms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCU9OIERFTEVURSBSRVNUUklDVDsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMg ZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5n ZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK KyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAo J1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNikn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIGEgUEsgZGVs ZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9u IHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCist LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVs ZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLQor LS0gdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgdXBkYXRlcyBDQVNDQURFCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERB VEUgQ0FTQ0FERTsKK0VSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWdu IGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgU0VUIE5VTEwKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OSwxMCknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBT RVQgTlVMTDsKK0VSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtl eSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIERFRkFVTFQKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRF IFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK0VSUk9SOiAgaW52YWxpZCBPTiBE RUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0K Ky0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzCistLQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5n ZSwKKyAgbmFtZSB0ZXh0LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9ybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04g QlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdb Nyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOworQ1JFQVRFIFRBQkxFIHRwMiBwYXJ0aXRpb24g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1 KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwK KyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUn KSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0 d28nKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2Us CisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUg dGZrcDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZB TFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdb MTEsMTIpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcp JywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworLS0KKy0tIHBhcnRpdGlvbmVkIEZL IHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMiknKSwKKyAgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMS0wMS0wMScsICcyMDAyLTAxLTAxJyksICdbMiwzKScpLAor ICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIp Jyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRh dGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDEwLTAyLTE1JyksICdbMSwyKScpOworRVJST1I6ICBp bnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtl eSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxMC0wMS0wMSwyMDEwLTAyLTE1KSkg aXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAw MC0wMi0xNScpLCAnWzMsNCknKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAi dGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShb Myw0KSwgWzIwMDAtMDEtMDEsMjAwMC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5j aW5nIHVwZGF0ZXMKKy0tCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBT RVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xMycpIFdIRVJF IGlkID0gJ1syLDMpJzsKKy0tIG1vdmUgYSByb3cgZnJvbSB0aGUgZmlyc3QgcGFydGl0aW9uIHRv IHRoZSBzZWNvbmQKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCBp ZCA9ICdbNCw1KScgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gbW92ZSBhIHJvdyBmcm9tIHRoZSBz ZWNvbmQgcGFydGl0aW9uIHRvIHRoZSBmaXJzdAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgU0VUIGlkID0gJ1sxLDIpJyBXSEVSRSBpZCA9ICdbNCw1KSc7CistLSBzaG91 bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTA0LTAxJykgV0hFUkUgaWQgPSAn WzEsMiknOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9u IGNvbnN0cmFpbnQgInRma3AxX3BrZXkiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbMjAwMC0wMS0wMSwyMDAwLTA0LTAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkpLgorLS0KKy0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKTsK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyks ICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCisgIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKKyAgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gc2hv dWxkIGZhaWw6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19w YXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcs IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m aworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworCU9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2 KScsIGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpOworVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sz LDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQg ZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92 YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBS RVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywg JzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlk X2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NB REUKKy0tCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisJRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworRVJS T1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg dXNpbmcgUEVSSU9ECistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUKKy0tCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBO VUxMCistLQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZworCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAorCUFERCBD T05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZworCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOwor RVJST1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgdXNpbmcgUEVSSU9ECistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMCistLQorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgREVGQVVMVAorLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFV TFQ7CitFUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29u c3RyYWludCB1c2luZyBQRVJJT0QKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIERFRkFVTFQKKy0tCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZzsKIFJFU0VUIGRh dGVzdHlsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zlcmxh cHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXgg YmI4Yjg1YWEyNWYuLmI2MjI2MjlmODg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0 X292ZXJsYXBzLnNxbApAQCAtNTgsNyArNTgsNiBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5n MiAoCiBTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmcyX3BrJzsKIFNFTEVDVCBwZ19nZXRfaW5kZXhk ZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0g J3RlbXBvcmFsX3JuZzJfcGsnOwogCi0KIC0tIFBLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToK IENSRUFURSBUWVBFIHRleHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9u PSJDIik7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC03MCwxNCArNjksNiBAQCBB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Br OwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogRFJPUCBUWVBFIHRleHRyYW5nZTI7CiAKLS0t IFBLIHdpdGggYSBtdWx0aXJhbmdlOgotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJuZyAoCi0g IGlkIGludDRyYW5nZSwKLSAgdmFsaWRfYXQgdHNtdWx0aXJhbmdlLAotICBDT05TVFJBSU5UIHRl bXBvcmFsX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCi0pOwotXGQgdGVtcG9yYWxfbWx0cm5nCi0KIC0tIFVOSVFVRSB3aXRoIG5vIGNvbHVtbnMg anVzdCBXSVRIT1VUIE9WRVJMQVBTOgogCiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBA IC0yMDYsMTUgKzE5NywxNSBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIC0tCiAKIC0tIG9rYXk6 Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxV RVMgKCdbMSwxXScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpOwotSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1syLDJdJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDEtMDUnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgn WzMsM10nLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0 LTA0JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CiAKIC0tIHNob3VsZCBmYWlsOgotSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1sxLDFdJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTIChOVUxMLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyBWQUxVRVMgKCdbMywzXScsIE5VTEwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwp OwogCiAtLQogLS0gdGVzdCBhIHJhbmdlIHdpdGggYm90aCBhIFBLIGFuZCBhIFVOSVFVRSBjb25z dHJhaW50CkBAIC0yMzAsOCArMjIxLDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCiApOwog SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgVkFMVUVT Ci0gICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzcs N10nLCAnZm9vJyksCi0gICgnWzIsMl0nLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAnWzksOV0nLCAnYmFyJykKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyJykKIDsKIERST1Ag VEFCTEUgdGVtcG9yYWwzOwogCkBAIC0yNjIsMTIgKzI1MywxMiBAQCBDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWQgKAogICBuYW1lIHRleHQsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJpdGlvbmVkX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykK ICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9G IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwxXScsICdbMiwyXScpOwot Q1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZB TFVFUyBJTiAoJ1szLDNdJywgJ1s0LDRdJyk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBWQUxVRVMKLSAgKCdbMSwxXScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAy LTAxJyksICdvbmUnKSwKLSAgKCdbMSwxXScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAw LTAzLTAxJyksICdvbmUnKSwKLSAgKCdbMywzXScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJyksICd0aHJlZScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVt cG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1syLDMpJyk7CitDUkVB VEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVT IElOICgnWzMsNCknLCAnWzQsNSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk IChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAorICAoJ1szLDQpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3RocmVlJyk7CiBTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00g dHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKQEAgLTI4MCwxNSArMjcxLDYwMiBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWQgKAogICBuYW1lIHRleHQsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlv bmVkX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApIFBBUlRJVElP TiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMV0nLCAnWzIsMl0nKTsKLUNSRUFURSBUQUJM RSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdb MywzXScsICdbNCw0XScpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgVkFMVUVT Ci0gICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25l JyksCi0gICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAn b25lJyksCi0gICgnWzMsM10nLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScp LCAndGhyZWUnKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRw MiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1szLDQp JywgJ1s0LDUpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlk X2F0LCBuYW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDAwLTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScs ICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpOwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogCistLQorLS0gdGVzdCBGSyBkZXBl bmRlbmNpZXMKKy0tCisKKy0tIGNhbid0IGRyb3AgYSByYW5nZSByZWZlcmVuY2VkIGJ5IGFuIEZL LCB1bmxlc3Mgd2l0aCBDQVNDQURFCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVy YW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdCBDQVNDQURFOworRFJPUCBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tCist LSB0ZXN0IEZPUkVJR04gS0VZLCByYW5nZSByZWZlcmVuY2VzIHJhbmdlCistLQorCistLSB0ZXN0 IHRhYmxlIHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ybmcgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3JuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKworLS0gQ2FuJ3QgY3JlYXRl IGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBpbnQ0cmFuZ2UsCisJcGFy ZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsyIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrMiBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQor KTsKKworLS0gd29ya3M6IFBFUklPRCBmb3IgYm90aCByZWZlcmVuY2VkIGFuZCByZWZlcmVuY2lu ZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2 YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7 CisKKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKworLS0gKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VT IHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJ CVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9p ZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdO IEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50 X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIChwYXJl bnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBh cnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50 NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcKKyk7CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVS RU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQpCispOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2 YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorKTsKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0 YWJsZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2Us CisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7CisKKy0tIHNob3VsZCBmYWls IGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdl LAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCBwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKQor KTsKKworLS0gVHdvIHNjYWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzI7CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcy X3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAor CXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQxIGludDRyYW5nZSwKKwlwYXJlbnRfaWQy IGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX3JuZzJybmcKK0RST1AgVEFCTEUgdGVt cG9yYWxfZmsyX3JuZzJybmc7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJB SU5UCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJ T0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrMl9ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAor CXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdlLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcm5nMnJu ZworCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBhbmQgd3Jv bmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisJQUxURVIgQ09MVU1OIHZhbGlkX2F0 IFRZUEUgdHNyYW5nZSBVU0lORyB0c3JhbmdlKGxvd2VyKHZhbGlkX2F0KSwgdXBwZXIodmFsaWRf YXQpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZworCUFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVyYW5nZSBVU0lORyBk YXRlcmFuZ2UobG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1cHBlcih2YWxpZF9hdCk6OmRhdGUpOwor CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmc7CisKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRl IHJlZmVyZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrMgorCUZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQ RVJJT0QgaWQpOworCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KKworREVMRVRF IEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpLAorICAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSksCisgICgnWzIsMyknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsIE5VTEwpKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnKSwgJ1sxLDIpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyksICdbMSwyKScpOworLS0g c2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIG9rYXkgYWdhaW46 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmc7CisKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorCitTRUxFQ1Qg cGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFt ZSA9ICd0ZW1wb3JhbF9ma19ybmcycm5nX2ZrJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNp bmcgaW5zZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDItMDEnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyksICdbMSwyKScpOwor LS0gbm93IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAzJywgJzIwMTgtMDMt MDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0w NC0wMScpLCAnWzEsMiknKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcwor LS0KKworVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDMtMDEnKSBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBzaG91 bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA1LTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOworVVBE QVRFIHRlbXBvcmFsX2ZrX3JuZzJybmcgU0VUIHBhcmVudF9pZCA9ICdbOCw5KScgV0hFUkUgaWQg PSAnWzEsMiknOworCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCisKK0JFR0lOOworICBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICAgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAgICgnWzUsNiknLCBkYXRl cmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOwor CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7IC0tc2hvdWxk IG5vdCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVk cyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSBXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1l cmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEn LCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCitXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYt MDEtMDEnLCAnMjAxNi0wMi0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIHRoZSBz Y2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJwor V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKK1dIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisJT04gVVBEQVRFIFJFU1RSSUNUOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0 IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK1VQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywg JzIwMTYtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1 Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0 aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUs NiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAo J1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwor VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEn LCAnMjAxNi0wMy0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFp bHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCitXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKTsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRz OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitV UERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScs ICcyMDE2LTAyLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBv cmFsX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBp ZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQ SyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZl cmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSksCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAx OC0wMy0wMScpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJl ZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRl IHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb Myw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwlPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdo IHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNikn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZh aWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3Jk IGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKKworLS0KKy0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCist LQorCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCQlP TiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKworLS0gdGVzdCBGSyByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIE5VTEwKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbOSwxMCknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9O IFVQREFURSBTRVQgTlVMTDsKKworLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb LTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKworLS0KKy0tIEZLIGJldHdlZW4gcGFydGl0 aW9uZWQgdGFibGVzCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n ICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVB VEUgVEFCTEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZB TFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdb MTEsMTIpJyk7CitDUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkp JywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAorICAoJ1sxLDIpJywgZGF0ZXJh bmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAorICAoJ1syLDMpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOworCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJF RkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQor KSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScs ICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOworQ1JFQVRF IFRBQkxFIHRma3AyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAs MTEpJywgJ1sxMiwxMyknKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIGlu c2VydHMKKy0tCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMSwyKScpLAorICAoJ1sxLDIpJywgZGF0ZXJh bmdlKCcyMDAxLTAxLTAxJywgJzIwMDItMDEtMDEnKSwgJ1syLDMpJyksCisgICgnWzIsMyknLCBk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMiknKTsKKy0tIHNob3Vs ZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDEw LTAxLTAxJywgJzIwMTAtMDItMTUnKSwgJ1sxLDIpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisg ICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzMsNCkn KTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0tCisKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTEzJykgV0hFUkUgaWQgPSAnWzIsMyknOworLS0g bW92ZSBhIHJvdyBmcm9tIHRoZSBmaXJzdCBwYXJ0aXRpb24gdG8gdGhlIHNlY29uZAorVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIGlkID0gJ1s0LDUpJyBXSEVSRSBp ZCA9ICdbMSwyKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIHNlY29uZCBwYXJ0aXRpb24gdG8g dGhlIGZpcnN0CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgaWQg PSAnWzEsMiknIFdIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMDAtMDQtMDEnKSBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tCistLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKTsK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyks ICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCisgIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKKyAgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8g QUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScs ICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0K Ky0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZworCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcK KwlPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEn LCAnMjAxNi0wMi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9 ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScp CisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2 LTAyLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0t IHNob3VsZCBmYWlsOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENB U0NBREUKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCisJCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcKKwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7 CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0K KworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0K KworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZworCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZworCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworCistLQor LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCistLQor LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworCQlP TiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworCistLQorLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorCitEUk9QIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZzsKKwogUkVTRVQgZGF0ZXN0eWxlOwotLSAKMi40Mi4wCgo= --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0001-Use-daterange-and-YMD-in-tests-instead-of-tsrang.patch" Content-Disposition: attachment; filename="v28-0001-Use-daterange-and-YMD-in-tests-instead-of-tsrang.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofbv0 RnJvbSBlYTM3YWJjYTI0NDNjOWU1OTc1YzkxZjgxZDdhMmQzNzRjMWU3MDhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IEZyaSwgOCBNYXIgMjAyNCAxMzoyNToxOCAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggdjI4IDEvOV0gVXNlIGRhdGVyYW5nZSBhbmQgWU1EIGluIHRlc3RzIGluc3RlYWQg b2YgdHNyYW5nZS4KClRoaXMgbWFrZXMgdGhpbmdzIGEgbG90IGVhc2llciB0byByZWFkLCBlc3Bl Y2lhbGx5IHdoZW4gd2UgZ2V0IHRvIHRoZQpGT1JFSUdOIEtFWSB0ZXN0cyBsYXRlci4KLS0tCiAu Li4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgICAgfCA3NiArKysrKysr KysrLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAg ICAgfCA0MiArKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDU2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0CmluZGV4IDcyNmU5NDEwMmJmLi5lYTU1OTFhM2IzOCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBAIC0zLDEyICszLDEzIEBA CiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBwZ19kdW1wIGV0YzoK IC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKIC0tIHRlbXBvcmFsX2ZrX3JuZzJybmcu CitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOwogLS0KIC0tIHRlc3QgaW5wdXQgcGFyc2VyCiAt LQogLS0gUEsgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lUSE9VVCBPVkVSTEFQUzoKIENSRUFURSBU QUJMRSB0ZW1wb3JhbF9ybmcgKAotCXZhbGlkX2F0IHRzcmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZICh2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQogKTsKIEVSUk9SOiAgY29uc3RyYWludCB1c2luZyBXSVRIT1VUIE9W RVJMQVBTIG5lZWRzIGF0IGxlYXN0IHR3byBjb2x1bW5zCkBAIC0zNCw3ICszNSw3IEBAIENSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAogCS0tIHVzZSBhbiBpbnQ0cmFuZ2UgaW5zdGVhZCBvZiBh biBpbnQuCiAJLS0gKFRoZSByYW5nZXR5cGVzIHJlZ3Jlc3Npb24gdGVzdCB1c2VzIHRoZSBzYW1l IHRyaWNrLikKIAlpZCBpbnQ0cmFuZ2UsCi0JdmFsaWRfYXQgdHNyYW5nZSwKKwl2YWxpZF9hdCBk YXRlcmFuZ2UsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKIFxkIHRlbXBvcmFsX3JuZwpAQCAtNDIsNyAr NDMsNyBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKICAgQ29sdW1uICB8ICAgVHlwZSAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKIC0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KICBpZCAgICAgICB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0gdmFsaWRfYXQgfCB0c3JhbmdlICAgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAKIEluZGV4ZXM6CiAgICAgInRlbXBvcmFsX3JuZ19wayIgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogCkBAIC02Myw3ICs2NCw3IEBAIFNFTEVD VCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlCiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCiAJaWQxIGlu dDRyYW5nZSwKIAlpZDIgaW50NHJhbmdlLAotCXZhbGlkX2F0IHRzcmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZXJhbmdlLAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nMl9wayBQUklNQVJZIEtFWSAoaWQx LCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApOwogXGQgdGVtcG9yYWxfcm5nMgpA QCAtNzIsNyArNzMsNyBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCiAtLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCiAgaWQxICAgICAg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGlkMiAgICAgIHwgaW50NHJh bmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLSB2YWxpZF9hdCB8IHRzcmFuZ2UgICB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAogSW5kZXhlczoKICAgICAidGVtcG9yYWxfcm5nMl9wayIgUFJJTUFSWSBL RVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogCkBAIC0xMTUsNyArMTE2 LDcgQEAgSW5kZXhlczoKIAogLS0gVU5JUVVFIHdpdGggbm8gY29sdW1ucyBqdXN0IFdJVEhPVVQg T1ZFUkxBUFM6CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCi0JdmFsaWRfYXQgdHNyYW5n ZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVO SVFVRSAodmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICk7CiBFUlJPUjogIGNvbnN0cmFpbnQg dXNpbmcgV0lUSE9VVCBPVkVSTEFQUyBuZWVkcyBhdCBsZWFzdCB0d28gY29sdW1ucwpAQCAtMTM4 LDcgKzEzOSw3IEBAIEhJTlQ6ICBZb3UgbXVzdCBzcGVjaWZ5IGFuIG9wZXJhdG9yIGNsYXNzIGZv ciB0aGUgaW5kZXggb3IgZGVmaW5lIGEgZGVmYXVsdCBvcGVyCiAtLSBVTklRVUUgd2l0aCBvbmUg Y29sdW1uIHBsdXMgYSByYW5nZToKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKIAlpZCBp bnQ0cmFuZ2UsCi0JdmFsaWRfYXQgdHNyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCiAJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCiApOwogXGQgdGVtcG9yYWxfcm5nMwpAQCAtMTQ2LDcgKzE0Nyw3IEBAIENSRUFURSBU QUJMRSB0ZW1wb3JhbF9ybmczICgKICAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKIC0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0KICBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCi0gdmFsaWRfYXQgfCB0c3JhbmdlICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKIElu ZGV4ZXM6CiAgICAgInRlbXBvcmFsX3JuZzNfdXEiIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCiAKQEAgLTE2Nyw3ICsxNjgsNyBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsX3Ju ZzM7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCiAJaWQxIGludDRyYW5nZSwKIAlpZDIg aW50NHJhbmdlLAotCXZhbGlkX2F0IHRzcmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAogCUNP TlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQogKTsKIFxkIHRlbXBvcmFsX3JuZzMKQEAgLTE3Niw3ICsxNzcsNyBAQCBD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCiAtLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCiAgaWQxICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAogIGlkMiAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKLSB2YWxpZF9hdCB8IHRzcmFuZ2UgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogSW5k ZXhlczoKICAgICAidGVtcG9yYWxfcm5nM191cSIgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKIApAQCAtMjA5LDcgKzIxMCw3IEBAIERST1AgVFlQRSB0ZXh0cmFu Z2UyOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5n ICgKIAlpZCBpbnQ0cmFuZ2UsCi0JdmFsaWRfYXQgdHNyYW5nZQorCXZhbGlkX2F0IGRhdGVyYW5n ZQogKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X3JuZ19wawpAQCAtMjE3LDcgKzIxOCw3IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZwogLS0g UEsgd2l0aCBVU0lORyBJTkRFWCAobm90IHBvc3NpYmxlKToKIENSRUFURSBUQUJMRSB0ZW1wb3Jh bDMgKAogCWlkIGludDRyYW5nZSwKLQl2YWxpZF9hdCB0c3JhbmdlCisJdmFsaWRfYXQgZGF0ZXJh bmdlCiApOwogQ1JFQVRFIElOREVYIGlkeF90ZW1wb3JhbDNfdXEgT04gdGVtcG9yYWwzIFVTSU5H IGdpc3QgKGlkLCB2YWxpZF9hdCk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKQEAgLTIzMSw3ICsy MzIsNyBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIC0tIFVOSVFVRSB3aXRoIFVTSU5HIElOREVY IChub3QgcG9zc2libGUpOgogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCiAJaWQgaW50NHJhbmdl LAotCXZhbGlkX2F0IHRzcmFuZ2UKKwl2YWxpZF9hdCBkYXRlcmFuZ2UKICk7CiBDUkVBVEUgSU5E RVggaWR4X3RlbXBvcmFsM191cSBPTiB0ZW1wb3JhbDMgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0 KTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsMwpAQCAtMjQ1LDcgKzI0Niw3IEBAIERST1AgVEFCTEUg dGVtcG9yYWwzOwogLS0gVU5JUVVFIHdpdGggVVNJTkcgW1VOSVFVRV0gSU5ERVggKHBvc3NpYmxl IGJ1dCBub3QgYSB0ZW1wb3JhbCBjb25zdHJhaW50KToKIENSRUFURSBUQUJMRSB0ZW1wb3JhbDMg KAogCWlkIGludDRyYW5nZSwKLQl2YWxpZF9hdCB0c3JhbmdlCisJdmFsaWRfYXQgZGF0ZXJhbmdl CiApOwogQ1JFQVRFIFVOSVFVRSBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxIE9OIHRlbXBvcmFsMyAo aWQsIHZhbGlkX2F0KTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsMwpAQCAtMjU4LDcgKzI1OSw3IEBA IENSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAogCWlkIGludDRyYW5nZQogKTsKIEFMVEVSIFRBQkxF IHRlbXBvcmFsMwotCUFERCBDT0xVTU4gdmFsaWRfYXQgdHNyYW5nZSwKKwlBREQgQ09MVU1OIHZh bGlkX2F0IGRhdGVyYW5nZSwKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKIAlQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogRFJPUCBUQUJMRSB0ZW1wb3Jh bDM7CkBAIC0yNjcsNyArMjY4LDcgQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCiAJaWQgaW50 NHJhbmdlCiApOwogQUxURVIgVEFCTEUgdGVtcG9yYWwzCi0JQUREIENPTFVNTiB2YWxpZF9hdCB0 c3JhbmdlLAorCUFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlLAogCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsM191cQogCVVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwog RFJPUCBUQUJMRSB0ZW1wb3JhbDM7CkBAIC0yNzUsMTcgKzI3NiwxNyBAQCBEUk9QIFRBQkxFIHRl bXBvcmFsMzsKIC0tIHRlc3QgUEsgaW5zZXJ0cwogLS0KIC0tIG9rYXk6Ci1JTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCB0c3JhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDItMDMnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCB0c3Jh bmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgVkFMVUVTICgnWzIsMl0nLCB0c3JhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7 Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzMsM10nLCB0c3JhbmdlKCcyMDE4 LTAxLTAxJywgTlVMTCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1sxLDFd JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAx OC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKCdbMiwyXScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIFZBTFVFUyAoJ1szLDNdJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOwog LS0gc2hvdWxkIGZhaWw6Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0n LCB0c3JhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKTsKIEVSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lv biBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCi1ERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFsxLDIpLCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIkZyaSBKYW4gMDUgMDA6MDA6 MDAgMjAxOCIpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIlNhdCBGZWIgMDMgMDA6MDA6MDAgMjAx OCIpKS4KLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKE5VTEwsIHRzcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBr ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKSkuCitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMS0wNScpKTsKIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiBy ZWxhdGlvbiAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRB SUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIw MTgiLCJGcmkgSmFuIDA1IDAwOjAwOjAwIDIwMTgiKSkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAobnVsbCwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgogSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIFZBTFVFUyAoJ1szLDNdJywgTlVMTCk7CiBFUlJPUjogIG51bGwgdmFsdWUgaW4g Y29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgbm90 LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFszLDQpLCBu dWxsKS4KQEAgLTMxMSw3ICszMTIsNyBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIC0tCiBDUkVB VEUgVEFCTEUgdGVtcG9yYWwzICgKIAlpZCBpbnQ0cmFuZ2UsCi0JdmFsaWRfYXQgdHNyYW5nZSwK Kwl2YWxpZF9hdCBkYXRlcmFuZ2UsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKIEFMVEVSIFRBQkxFIHRlbXBv cmFsMyBBTFRFUiBDT0xVTU4gdmFsaWRfYXQgRFJPUCBOT1QgTlVMTDsKQEAgLTMzOSwyMiArMzQw LDIyIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIFZBTFVFUwogU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgIGlkICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAogLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0KLSBbMSwyKSB8IFswMS0wMS0yMDAwLDAyLTAxLTIwMDApIHwg b25lCi0gWzEsMikgfCBbMDItMDEtMjAwMCwwMy0wMS0yMDAwKSB8IG9uZQotIFszLDQpIHwgWzAx LTAxLTIwMDAsMDEtMDEtMjAxMCkgfCB0aHJlZQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0w Mi0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwgb25lCisgWzMs NCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMyByb3dzKQogCiBTRUxFQ1Qg KiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IG5hbWUgCiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tCi0gWzEsMikgfCBbMDEtMDEtMjAwMCwwMi0wMS0yMDAwKSB8IG9uZQotIFsxLDIpIHwgWzAy LTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDIt MDEpIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQogKDIgcm93 cykKIAogU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKIC0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tCi0gWzMsNCkgfCBbMDEtMDEtMjAwMCwwMS0wMS0yMDEwKSB8IHRo cmVlCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMSByb3cpCiAK IERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CkBAIC0zNzQsMjIgKzM3NSwyMyBAQCBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBWQUxVRVMKIFNFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKIC0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tCi0gWzEsMikgfCBbMDEtMDEtMjAwMCwwMi0wMS0yMDAwKSB8IG9uZQotIFsx LDIpIHwgWzAyLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBvbmUKLSBbMyw0KSB8IFswMS0wMS0yMDAw LDAxLTAxLTIwMTApIHwgdGhyZWUKKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwg b25lCisgWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorIFszLDQpIHwgWzIw MDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQogKDMgcm93cykKIAogU0VMRUNUICogRlJPTSB0 cDEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBuYW1lIAogLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQotIFsx LDIpIHwgWzAxLTAxLTIwMDAsMDItMDEtMjAwMCkgfCBvbmUKLSBbMSwyKSB8IFswMi0wMS0yMDAw LDAzLTAxLTIwMDApIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9u ZQorIFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKICgyIHJvd3MpCiAKIFNF TEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLQotIFszLDQpIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAxMCkgfCB0aHJlZQorIFsz LDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQogKDEgcm93KQogCiBEUk9QIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworUkVTRVQgZGF0ZXN0eWxlOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCBjOGU4YWI5OTRhMC4uYmI4Yjg1YWEy NWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC00LDYg KzQsOCBAQAogLS0gdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ybmcyLAogLS0gdGVtcG9yYWxfZmtf cm5nMnJuZy4KIAorU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKKwogLS0KIC0tIHRlc3QgaW5w dXQgcGFyc2VyCiAtLQpAQCAtMTEsNyArMTMsNyBAQAogLS0gUEsgd2l0aCBubyBjb2x1bW5zIGp1 c3QgV0lUSE9VVCBPVkVSTEFQUzoKIAogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCi0JdmFs aWRfYXQgdHNyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCiAJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ybmdfcGsgUFJJTUFSWSBLRVkgKHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApOwogCkBA IC0zNyw3ICszOSw3IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAogCS0tIHVzZSBhbiBp bnQ0cmFuZ2UgaW5zdGVhZCBvZiBhbiBpbnQuCiAJLS0gKFRoZSByYW5nZXR5cGVzIHJlZ3Jlc3Np b24gdGVzdCB1c2VzIHRoZSBzYW1lIHRyaWNrLikKIAlpZCBpbnQ0cmFuZ2UsCi0JdmFsaWRfYXQg dHNyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKIFxkIHRl bXBvcmFsX3JuZwpAQCAtNDksNyArNTEsNyBAQCBTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmlu ZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZQogQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3JuZzIgKAogCWlkMSBpbnQ0cmFuZ2UsCiAJaWQyIGludDRyYW5n ZSwKLQl2YWxpZF9hdCB0c3JhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKIAlDT05TVFJBSU5U IHRlbXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQogKTsKIFxkIHRlbXBvcmFsX3JuZzIKQEAgLTc5LDcgKzgxLDcgQEAgQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX21sdHJuZyAoCiAtLSBVTklRVUUgd2l0aCBubyBjb2x1bW5zIGp1c3Qg V0lUSE9VVCBPVkVSTEFQUzoKIAogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAotCXZhbGlk X2F0IHRzcmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAogCUNPTlNUUkFJTlQgdGVtcG9yYWxf cm5nM191cSBVTklRVUUgKHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApOwogCkBAIC0xMDIs NyArMTA0LDcgQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAogCiBDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMyAoCiAJaWQgaW50NHJhbmdlLAotCXZhbGlkX2F0IHRzcmFuZ2UsCisJdmFs aWRfYXQgZGF0ZXJhbmdlLAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKIFxkIHRlbXBvcmFsX3JuZzMKQEAgLTEx NCw3ICsxMTYsNyBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CiBDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcm5nMyAoCiAJaWQxIGludDRyYW5nZSwKIAlpZDIgaW50NHJhbmdlLAotCXZhbGlkX2F0 IHRzcmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5n M191cSBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsKIFxk IHRlbXBvcmFsX3JuZzMKQEAgLTE0MCw3ICsxNDIsNyBAQCBEUk9QIFRZUEUgdGV4dHJhbmdlMjsK IERST1AgVEFCTEUgdGVtcG9yYWxfcm5nOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCiAJ aWQgaW50NHJhbmdlLAotCXZhbGlkX2F0IHRzcmFuZ2UKKwl2YWxpZF9hdCBkYXRlcmFuZ2UKICk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdf cGsKQEAgLTE0OSw3ICsxNTEsNyBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcKIC0tIFBLIHdp dGggVVNJTkcgSU5ERVggKG5vdCBwb3NzaWJsZSk6CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgK IAlpZCBpbnQ0cmFuZ2UsCi0JdmFsaWRfYXQgdHNyYW5nZQorCXZhbGlkX2F0IGRhdGVyYW5nZQog KTsKIENSRUFURSBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxIE9OIHRlbXBvcmFsMyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpOwogQUxURVIgVEFCTEUgdGVtcG9yYWwzCkBAIC0xNjAsNyArMTYyLDcg QEAgRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAtLSBVTklRVUUgd2l0aCBVU0lORyBJTkRFWCAobm90 IHBvc3NpYmxlKToKIENSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAogCWlkIGludDRyYW5nZSwKLQl2 YWxpZF9hdCB0c3JhbmdlCisJdmFsaWRfYXQgZGF0ZXJhbmdlCiApOwogQ1JFQVRFIElOREVYIGlk eF90ZW1wb3JhbDNfdXEgT04gdGVtcG9yYWwzIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCk7CiBB TFRFUiBUQUJMRSB0ZW1wb3JhbDMKQEAgLTE3MSw3ICsxNzMsNyBAQCBEUk9QIFRBQkxFIHRlbXBv cmFsMzsKIC0tIFVOSVFVRSB3aXRoIFVTSU5HIFtVTklRVUVdIElOREVYIChwb3NzaWJsZSBidXQg bm90IGEgdGVtcG9yYWwgY29uc3RyYWludCk6CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKIAlp ZCBpbnQ0cmFuZ2UsCi0JdmFsaWRfYXQgdHNyYW5nZQorCXZhbGlkX2F0IGRhdGVyYW5nZQogKTsK IENSRUFURSBVTklRVUUgSU5ERVggaWR4X3RlbXBvcmFsM191cSBPTiB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKQEAgLTE4NCw3ICsxODYsNyBAQCBDUkVB VEUgVEFCTEUgdGVtcG9yYWwzICgKIAlpZCBpbnQ0cmFuZ2UKICk7CiBBTFRFUiBUQUJMRSB0ZW1w b3JhbDMKLQlBREQgQ09MVU1OIHZhbGlkX2F0IHRzcmFuZ2UsCisJQUREIENPTFVNTiB2YWxpZF9h dCBkYXRlcmFuZ2UsCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCiAJUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERST1AgVEFCTEUgdGVtcG9yYWwzOwpA QCAtMTk0LDcgKzE5Niw3IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAogCWlkIGludDRyYW5n ZQogKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsMwotCUFERCBDT0xVTU4gdmFsaWRfYXQgdHNyYW5n ZSwKKwlBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKIAlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbDNfdXEKIAlVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERST1Ag VEFCTEUgdGVtcG9yYWwzOwpAQCAtMjA0LDE0ICsyMDYsMTQgQEAgRFJPUCBUQUJMRSB0ZW1wb3Jh bDM7CiAtLQogCiAtLSBva2F5OgotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1sx LDFdJywgdHNyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpOwotSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1sxLDFdJywgdHNyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1syLDJdJywgdHNy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIFZBTFVFUyAoJ1szLDNdJywgdHNyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKCdbMSwxXScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MicsICcyMDE4LTAyLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUyAoJ1sx LDFdJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzIsMl0nLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKCdbMywzXScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKIAogLS0gc2hvdWxkIGZhaWw6Ci1JTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCB0c3JhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTIChOVUxM LCB0c3JhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgVkFMVUVTICgnWzEsMV0nLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMgKE5VTEwsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IFZBTFVFUyAoJ1szLDNdJywgTlVMTCk7CiAKIC0tCkBAIC0yMzksNyArMjQxLDcgQEAgRFJPUCBU QUJMRSB0ZW1wb3JhbDM7CiAKIENSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAogCWlkIGludDRyYW5n ZSwKLQl2YWxpZF9hdCB0c3JhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKIAlDT05TVFJBSU5U IHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CiApOwogCkBAIC0yODgsMyArMjkwLDUgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBE Uk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworCitSRVNFVCBkYXRlc3R5bGU7Ci0tIAoy LjQyLjAKCg== --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0003-Don-t-infer-PERIOD-on-PK-side-of-temporal-FK.patch" Content-Disposition: attachment; filename="v28-0003-Don-t-infer-PERIOD-on-PK-side-of-temporal-FK.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofcm2 RnJvbSAxOThiMWNkNDRlOThkYTE5MjRkMzkxMDE0MTkzZmE0ODM2MmYyODJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMTUgTWFyIDIwMjQgMTA6NTE6NTUgLTA3MDAKU3ViamVj dDogW1BBVENIIHYyOCAzLzldIERvbid0IGluZmVyIFBFUklPRCBvbiBQSyBzaWRlIG9mIHRlbXBv cmFsIEZLCgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAg ICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAg fCA0MSArKysrKystLS0tLS0tCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBz Lm91dCAgICAgfCA2MSArKysrKysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93 aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCA1OCArKysrKysrKy0tLS0tLS0tLS0KIDQgZmlsZXMg Y2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3RhYmxlLnNnbWwKaW5kZXggZWFmM2M0YjcwNWEuLmU0Nzc4YTQwNzllIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTExNjcsNyArMTE2Nyw4IEBAIFdJVEggKCBNT0RVTFVT IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2Vh YmxlPiwgUkVNCiAgICAgICBjb2x1bW4ocykgb2Ygc29tZSByb3cgb2YgdGhlIHJlZmVyZW5jZWQg dGFibGUuICBJZiB0aGUgPHJlcGxhY2VhYmxlCiAgICAgICBjbGFzcz0icGFyYW1ldGVyIj5yZWZj b2x1bW48L3JlcGxhY2VhYmxlPiBsaXN0IGlzIG9taXR0ZWQsIHRoZQogICAgICAgcHJpbWFyeSBr ZXkgb2YgdGhlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFj ZWFibGU+Ci0gICAgICBpcyB1c2VkLiAgT3RoZXJ3aXNlLCB0aGUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+CisgICAgICBpcyB1c2VkIChvbWl0 dGluZyBhbnkgcGFydCBkZWNsYXJlZCB3aXRoIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xp dGVyYWw+KS4KKyAgICAgIE90aGVyd2lzZSwgdGhlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPgogICAgICAgbGlzdCBtdXN0IHJlZmVyIHRvIHRo ZSBjb2x1bW5zIG9mIGEgbm9uLWRlZmVycmFibGUgdW5pcXVlIG9yIHByaW1hcnkga2V5CiAgICAg ICBjb25zdHJhaW50IG9yIGJlIHRoZSBjb2x1bW5zIG9mIGEgbm9uLXBhcnRpYWwgdW5pcXVlIGlu ZGV4LgogICAgICA8L3BhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGNmZDA2ZTk0 YWFlLi45ZGU1MTllYTZlNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTM4Niw3ICsz ODYsNyBAQCBzdGF0aWMgaW50CXRyYW5zZm9ybUNvbHVtbk5hbWVMaXN0KE9pZCByZWxJZCwgTGlz dCAqY29sTGlzdCwKIHN0YXRpYyBpbnQJdHJhbnNmb3JtRmtleUdldFByaW1hcnlLZXkoUmVsYXRp b24gcGtyZWwsIE9pZCAqaW5kZXhPaWQsCiAJCQkJCQkJCQkgICBMaXN0ICoqYXR0bmFtZWxpc3Qs CiAJCQkJCQkJCQkgICBpbnQxNiAqYXR0bnVtcywgT2lkICphdHR0eXBpZHMsCi0JCQkJCQkJCQkg ICBPaWQgKm9wY2xhc3NlcywgYm9vbCAqcGtfcGVyaW9kKTsKKwkJCQkJCQkJCSAgIE9pZCAqb3Bj bGFzc2VzKTsKIHN0YXRpYyBPaWQJdHJhbnNmb3JtRmtleUNoZWNrQXR0cnMoUmVsYXRpb24gcGty ZWwsCiAJCQkJCQkJCQlpbnQgbnVtYXR0cnMsIGludDE2ICphdHRudW1zLAogCQkJCQkJCQkJYm9v bCB3aXRoX3BlcmlvZCwgT2lkICpvcGNsYXNzZXMpOwpAQCAtOTgxOSw3ICs5ODE5LDYgQEAgQVRB ZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0 YWIsIFJlbGF0aW9uIHJlbCwKIAlPaWQJCQlmZmVxb3BlcmF0b3JzW0lOREVYX01BWF9LRVlTXSA9 IHswfTsKIAlpbnQxNgkJZmtkZWxzZXRjb2xzW0lOREVYX01BWF9LRVlTXSA9IHswfTsKIAlib29s CQl3aXRoX3BlcmlvZDsKLQlib29sCQlwa193aXRoX3BlcmlvZDsKIAlpbnQJCQlpOwogCWludAkJ CW51bWZrcywKIAkJCQludW1wa3MsCkBAIC05OTIxLDYgKzk5MjAsMTYgQEAgQVRBZGRGb3JlaWdu S2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0 aW9uIHJlbCwKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9GT1JFSUdOX0tFWSksCiAJCQkJCWVycm1zZygiZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24g dGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUiKSkpOwor CQkvKgorCQkgKiBXZSBuZXZlciBpbmZlciBhIFBFUklPRCBvbiB0aGUgUEsgc2lkZQorCQkgKiAo Q2YuIDExLjggc3ludGF4IHJ1bGUgNGIgb2YgdGhlIHN0YW5kYXJkKSwKKwkJICogc28gaWYgd2Ug ZG9uJ3QgaGF2ZSBvbmUgYWxyZWFkeSB3ZSB3b24ndCBldmVyIGdldCBvbmUuCisJCSAqLworCQlp ZiAoIWZrY29uc3RyYWludC0+cGtfd2l0aF9wZXJpb2QpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAorCQkJCQllcnJtc2coImZv cmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRo ZSByZWZlcmVuY2VkIHRhYmxlIikpKTsKKwogCX0KIAogCW51bWZrZGVsc2V0Y29scyA9IHRyYW5z Zm9ybUNvbHVtbk5hbWVMaXN0KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKQEAgLTk5NDEsMTMgKzk5 NTAsNyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQludW1wa3MgPSB0cmFuc2Zvcm1Ga2V5R2V0 UHJpbWFyeUtleShwa3JlbCwgJmluZGV4T2lkLAogCQkJCQkJCQkJCQkmZmtjb25zdHJhaW50LT5w a19hdHRycywKIAkJCQkJCQkJCQkJcGthdHRudW0sIHBrdHlwb2lkLAotCQkJCQkJCQkJCQlvcGNs YXNzZXMsICZwa193aXRoX3BlcmlvZCk7Ci0KLQkJLyogSWYgdGhlIHByaW1hcnkga2V5IHVzZXMg V0lUSE9VVCBPVkVSTEFQUywgdGhlIGZrIG11c3QgdXNlIFBFUklPRCAqLwotCQlpZiAocGtfd2l0 aF9wZXJpb2QgJiYgIWZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCi0JCQllcmVwb3J0KEVS Uk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAotCQkJCQll cnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1 dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlIikpKTsKKwkJCQkJCQkJCQkJb3BjbGFzc2VzKTsK IAl9CiAJZWxzZQogCXsKQEAgLTk5NTUsMTUgKzk5NTgsNiBAQCBBVEFkZEZvcmVpZ25LZXlDb25z dHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVs LAogCQkJCQkJCQkJCSBma2NvbnN0cmFpbnQtPnBrX2F0dHJzLAogCQkJCQkJCQkJCSBwa2F0dG51 bSwgcGt0eXBvaWQpOwogCi0JCWlmICh3aXRoX3BlcmlvZCkKLQkJewotCQkJaWYgKCFma2NvbnN0 cmFpbnQtPnBrX3dpdGhfcGVyaW9kKQotCQkJCS8qIFNpbmNlIHdlIGdvdCBwa19hdHRycywgb25l IHNob3VsZCBiZSBhIHBlcmlvZC4gKi8KLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX0ZPUkVJR05fS0VZKSwKLQkJCQkJCWVycm1zZygiZm9yZWlnbiBr ZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVy ZW5jZWQgdGFibGUiKSkpOwotCQl9Ci0KIAkJLyogTG9vayBmb3IgYW4gaW5kZXggbWF0Y2hpbmcg dGhlIGNvbHVtbiBsaXN0ICovCiAJCWluZGV4T2lkID0gdHJhbnNmb3JtRmtleUNoZWNrQXR0cnMo cGtyZWwsIG51bXBrcywgcGthdHRudW0sCiAJCQkJCQkJCQkJICAgd2l0aF9wZXJpb2QsIG9wY2xh c3Nlcyk7CkBAIC0xMjE0MSw3ICsxMjEzNSw3IEBAIHN0YXRpYyBpbnQKIHRyYW5zZm9ybUZrZXlH ZXRQcmltYXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAogCQkJCQkJICAgTGlz dCAqKmF0dG5hbWVsaXN0LAogCQkJCQkJICAgaW50MTYgKmF0dG51bXMsIE9pZCAqYXR0dHlwaWRz LAotCQkJCQkJICAgT2lkICpvcGNsYXNzZXMsIGJvb2wgKnBrX3BlcmlvZCkKKwkJCQkJCSAgIE9p ZCAqb3BjbGFzc2VzKQogewogCUxpc3QJICAgKmluZGV4b2lkbGlzdDsKIAlMaXN0Q2VsbCAgICpp bmRleG9pZHNjYW47CkBAIC0xMjIxMiw2ICsxMjIwNiwxMyBAQCB0cmFuc2Zvcm1Ga2V5R2V0UHJp bWFyeUtleShSZWxhdGlvbiBwa3JlbCwgT2lkICppbmRleE9pZCwKIAl7CiAJCWludAkJCXBrYXR0 bm8gPSBpbmRleFN0cnVjdC0+aW5ka2V5LnZhbHVlc1tpXTsKIAorCQkvKgorCQkgKiBXZSBtdXN0 IG9taXQgV0lUSE9VVCBPVkVSTEFQcyBwYXJ0cyBvZiB0aGUga2V5IHBlciB0aGUgU1FMIHN0YW5k YXJkIDExLjggc3ludGF4IHJ1bGUgNGIuCisJCSAqIFRoaXMgc2hvdWxkIGNhdXNlIGFuIGVycm9y IGRvd25zdHJlYW0gaWYgdGhlIEZLIHVzZXMgUEVSSU9ELS0tYW5kIGFsc28gaWYgaXQgZG9lc24n dCEKKwkJICovCisJCWlmIChpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb24gJiYgaSA9PSBpbmRl eFN0cnVjdC0+aW5kbmF0dHMgLSAxKQorCQkJYnJlYWs7IC8qIGRvbid0IGluY2x1ZGUgdGhpcyBp dGVtIGluIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyByZXR1cm5lZCAqLworCiAJCWF0dG51bXNb aV0gPSBwa2F0dG5vOwogCQlhdHR0eXBpZHNbaV0gPSBhdHRudW1UeXBlSWQocGtyZWwsIHBrYXR0 bm8pOwogCQlvcGNsYXNzZXNbaV0gPSBpbmRjbGFzcy0+dmFsdWVzW2ldOwpAQCAtMTIyMTksOCAr MTIyMjAsNiBAQCB0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShSZWxhdGlvbiBwa3JlbCwgT2lk ICppbmRleE9pZCwKIAkJCQkJCQkgICBtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cigqYXR0bnVt QXR0TmFtZShwa3JlbCwgcGthdHRubykpKSkpOwogCX0KIAotCSpwa19wZXJpb2QgPSAoaW5kZXhT dHJ1Y3QtPmluZGlzZXhjbHVzaW9uKTsKLQogCVJlbGVhc2VTeXNDYWNoZShpbmRleFR1cGxlKTsK IAogCXJldHVybiBpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVy bGFwcy5vdXQKaW5kZXggZWExYTJhNGM2YzkuLmNkYzU1Mzk1MTMzIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTQ2Nyw3ICs0NjcsNyBA QCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCiAJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQogCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZwogKTsKLUVSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qg b24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKK0VS Uk9SOiAgbnVtYmVyIG9mIHJlZmVyZW5jaW5nIGFuZCByZWZlcmVuY2VkIGNvbHVtbnMgZm9yIGZv cmVpZ24ga2V5IGRpc2FncmVlCiAtLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVS RU5DRVMgKGlkKQogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAogCWlkIGludDRy YW5nZSwKQEAgLTQ4OSw2ICs0ODksNyBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZyAoCiApOwogRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQogLS0gd2l0aCBpbmZlcnJlZCBQ SyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChUaGlzIGlzIG5vdCBwZXJtaXR0ZWQgYnkg dGhlIFNRTCBzdGFuZGFyZC4gU2VlIDExLjggc3ludGF4IHJ1bGUgNGIuKQogQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJybmcgKAogCWlkIGludDRyYW5nZSwKIAl2YWxpZF9hdCBkYXRlcmFu Z2UsCkBAIC00OTcsNyArNDk4LDIwIEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n ICgKIAlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogKTsKLURS T1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQ RVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFi bGUKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gVGhpcyBmaW5kcyB0 aGUgUEsgKG9taXR0aW5nIHRoZSBXSVRIT1VUIE9WRVJMQVBTIGVsZW1lbnQpLAorLS0gYnV0IGl0 J3Mgbm90IGEgYi10cmVlIGluZGV4LCBzbyBpdCBmYWlscyBhbnl3YXkuCistLSBBbnl3YXkgaXQg bXVzdCBmYWlsIGJlY2F1c2UgdGhlIHR3byBzaWRlcyBoYXZlIGEgZGlmZmVyZW50IGRlZmluaXRp b24gb2YgInVuaXF1ZSIuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsK K0VSUk9SOiAgb25seSBiLXRyZWUgaW5kZXhlcyBhcmUgc3VwcG9ydGVkIGZvciBmb3JlaWduIGtl eXMKIC0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1u czoKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKIAlpZCBpbnQ0cmFuZ2UsCkBA IC01NzcsMjMgKzU5MSw2IEBAIEluZGV4ZXM6CiBGb3JlaWduLWtleSBjb25zdHJhaW50czoKICAg ICAidGVtcG9yYWxfZmsyX3JuZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMihpZDEsIGlk MiwgUEVSSU9EIHZhbGlkX2F0KQogCi0tLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlLCBhbmQgd3JvbmcgY29sdW1uIHR5cGU6Ci1BTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nCi0JRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCi0JQUxU RVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUgdHNyYW5nZSBVU0lORyB0c3JhbmdlKGxvd2VyKHZhbGlk X2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKLUFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcK LQlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCi0JRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOwotRVJS T1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBjYW5u b3QgYmUgaW1wbGVtZW50ZWQKLURFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2 YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogdHNyYW5nZSBhbmQgZGF0ZXJhbmdl LgotQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwotCUFMVEVSIENPTFVNTiB2YWxpZF9h dCBUWVBFIGRhdGVyYW5nZSBVU0lORyBkYXRlcmFuZ2UobG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1 cHBlcih2YWxpZF9hdCk6OmRhdGUpOwotLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJl bmNlZCB0YWJsZToKLUFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKLQlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCi0JRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOwogLS0gc2hvdWxkIGZhaWwg YmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgogQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsy CkBAIC02MTYsNyArNjEzLDcgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXIKIEFMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJybmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrCiAJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCVJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nOworCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZh bGlkX2F0KTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyksICdbMSwyKScpOwpAQCAtNjI0LDcgKzYyMSw3IEBA IElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n CiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCUZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKwlS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CiBFUlJPUjogIGlu c2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiCiBERVRBSUw6ICBL ZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkp IGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgogLS0gb2theSBhZ2FpbjoK QEAgLTYzMiw3ICs2MjksNyBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nOwogQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmsKIAlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0J UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpOwogLS0KIC0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKIC0tCkBA IC03MTYsNyArNzEzLDcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsKIAlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0JUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKIAlPTiBVUERBVEUgUkVTVFJJQ1Q7CiAtLSBhIFBLIHVwZGF0ZSB0aGF0IHN1 Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwpAQCAtNzUyLDcgKzc0OSw3IEBAIEFMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAJRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOwor CVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKIC0tIGEgUEsg ZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVu Y2VkOgogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1 LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOwpAQCAtNzc4LDcgKzc3NSw3IEBAIEFM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5n CisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJT04gREVM RVRFIFJFU1RSSUNUOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOwpAQCAtODA1LDcgKzgw Miw3IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLQkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCiAJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwogRVJS T1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg dXNpbmcgUEVSSU9ECiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTApAQCAt ODE1LDcgKzgxMiw3IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAlEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKLQkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VU IE5VTEw7CiBFUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkg Y29uc3RyYWludCB1c2luZyBQRVJJT0QKIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUCkBAIC04MjcsNyArODI0LDcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQotCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJT04gREVMRVRFIFNFVCBERUZB VUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKIEVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0 aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAogLS0KQEAgLTkxOSw3 ICs5MTYsNyBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiBB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogCUZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZworCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZh bGlkX2F0KQogCU9OIERFTEVURSBSRVNUUklDVDsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx Ni0wMS0wMScsICcyMDE2LTAyLTAxJykpOwogVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpIFdI RVJFIGlkID0gJ1s1LDYpJzsKQEAgLTk1MSw3ICs5NDgsNyBAQCBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCi0JCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxF VEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKIEVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUg YWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAogLS0KQEAgLTk2 NCw3ICs5NjEsNyBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n CiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCiAJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogCQlGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0JCVJFRkVSRU5DRVMgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNF VCBOVUxMOwogRVJST1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECiAtLQpAQCAtOTc4LDcgKzk3NSw3IEBAIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKLQkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKKwkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQp CiAJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CiBFUlJPUjog IGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2lu ZyBQRVJJT0QKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292 ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmlu ZGV4IGI2MjI2MjlmODg1Li40OGJjYWExOGEwOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwKQEAgLTM4Nyw4ICszODcsOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZyAoCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9E IHZhbGlkX2F0KQogKTsKLQogLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0 YWJsZToKKy0tIChUaGlzIGlzIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIFNRTCBzdGFuZGFyZC4gU2Vl IDExLjggc3ludGF4IHJ1bGUgNGIuKQogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcg KAogCWlkIGludDRyYW5nZSwKIAl2YWxpZF9hdCBkYXRlcmFuZ2UsCkBAIC0zOTcsNyArMzk3LDE4 IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKIAlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogKTsKLURST1AgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZzsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gVGhpcyBm aW5kcyB0aGUgUEsgKG9taXR0aW5nIHRoZSBXSVRIT1VUIE9WRVJMQVBTIGVsZW1lbnQpLAorLS0g YnV0IGl0J3Mgbm90IGEgYi10cmVlIGluZGV4LCBzbyBpdCBmYWlscyBhbnl3YXkuCistLSBBbnl3 YXkgaXQgbXVzdCBmYWlsIGJlY2F1c2UgdGhlIHR3byBzaWRlcyBoYXZlIGEgZGlmZmVyZW50IGRl ZmluaXRpb24gb2YgInVuaXF1ZSIuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAo CisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZworKTsKIAogLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBj b2x1bW5zOgogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKApAQCAtNDU4LDIzICs0 NjksNiBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZwogCVJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7CiBcZCB0ZW1wb3JhbF9mazJf cm5nMnJuZwogCi0tLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBh bmQgd3JvbmcgY29sdW1uIHR5cGU6Ci1BTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCi0J RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCi0JQUxURVIgQ09MVU1OIHZh bGlkX2F0IFRZUEUgdHNyYW5nZSBVU0lORyB0c3JhbmdlKGxvd2VyKHZhbGlkX2F0KSwgdXBwZXIo dmFsaWRfYXQpKTsKLUFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKLQlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCi0JRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOwotQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZwotCUFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVyYW5nZSBV U0lORyBkYXRlcmFuZ2UobG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1cHBlcih2YWxpZF9hdCk6OmRh dGUpOwotCi0tLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgotQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwotCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmsKLQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0J UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7Ci0KIC0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVw bGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrMgpAQCAtNDk5LDcgKzQ5 Myw3IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZzsKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CiBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZms7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wNC0wMScpLCAnWzEsMiknKTsKQEAgLTUwNywxMyArNTAxLDEzIEBAIElOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MiwzKScsIGRhdGVyCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKLQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKwlSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CiAtLSBva2F5IGFnYWluOgogREVMRVRF IEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZzsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAJRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOwor CVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKIAogLS0KIC0t IHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKQEAgLTU5Myw3ICs1ODcsNyBAQCBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19ybmcycm5nCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCUZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCU9OIFVQREFURSBSRVNU UklDVDsKIC0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBp ZCBpc24ndCByZWZlcmVuY2VkOgogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CkBAIC02MjcsNyArNjIxLDcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwog QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsKIAlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp Ci0JUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlk LCBQRVJJT0QgdmFsaWRfYXQpOwogLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNl IHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpKTsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb NSw2KSc7CkBAIC02NTMsNyArNjQ3LDcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsKIAlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCi0JUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKIAlPTiBERUxFVEUgUkVTVFJJQ1Q7CiBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KSc7CkBAIC02ODAsNyArNjc0LDcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJT04gREVMRVRFIENB U0NBREUgT04gVVBEQVRFIENBU0NBREU7CiAKIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBOVUxMCkBAIC02OTAsNyArNjg0LDcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQotCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJT04gREVMRVRFIFNFVCBOVUxM IE9OIFVQREFURSBTRVQgTlVMTDsKIAogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VU IERFRkFVTFQKQEAgLTcwMiw3ICs2OTYsNyBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCi0JCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxFVEUgU0VUIERFRkFV TFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwogCiAtLQpAQCAtNzk2LDcgKzc5MCw3IEBAIEFMVEVS IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX2ZrCiAJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQotCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCisJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJT04gREVM RVRFIFJFU1RSSUNUOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKSk7CiBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNikn OwpAQCAtODI4LDcgKzgyMiw3IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2Zr CiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKLQkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQ REFURSBDQVNDQURFOwogCiAtLQpAQCAtODQzLDcgKzgzNyw3IEBAIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKLQkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCU9OIERF TEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CiAKIC0tCkBAIC04NTksNyArODUzLDcg QEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZworCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKIAkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVM VDsKIAogLS0KLS0gCjIuNDIuMAoK --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0006-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v28-0006-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofd05 RnJvbSAzNGQ0M2M2ZDdhNWYyMTIyMTY4Y2UwMmJmMDJhNTYyODNlOGZhNDFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4MDAKU3ViamVj dDogW1BBVENIIHYyOCA2LzldIEFkZCBzdXBwb3J0IGZ1bmNzIGZvciBGT1IgUE9SVElPTiBPRgoK LSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoKICBUaGVzZSBqdXN0IGNhbGwgdGhlIGV4 aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAgYnV0IHRoZXkgbGV0IHVzIGNvbXB1dGUgdGhl IHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1cGRhdGVkL2RlbGV0ZWQKICBpbiBhIEZPUiBQT1JU SU9OIGNvbW1hbmQuCgotIEFkZHMge211bHRpLH1yYW5nZV93aXRob3V0X3BvcnRpb24gc3VwcG9y dCBwcm9jcwoKICBUaGVzZSByZXR1cm4gYW4gYXJyYXkgb2YgdGhlaXIgaW5wdXQgdHlwZSBhbmQg d29yayBsaWtlIG1pbnVzIGJ1dCBkb24ndAogIGZhaWwgb24gc3BsaXRzLiBUaGV5IG5ldmVyIGNv bnRhaW4gZW1wdHkgZWxlbWVudHMuIFdlIHdpbGwgdXNlIHRoaXMgdG8KICBjb21wdXRlIEZPUiBQ T1JUSU9OIE9GIGxlZnRvdmVycy4KLS0tCiBjb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTU1ICsrKysrKysrKysrKysrKystCiBkb2Mvc3JjL3NnbWwveGluZGV4 LnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9i cmluL2JyaW5fdmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dp bi9naW52YWxpZGF0ZS5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dmFsaWRhdGUuYyAgICAgICAgfCAgMzEgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2FtdmFsaWRhdGUuYyAgICAgICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHZhbGlkYXRlLmMgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BndmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211 bHRpcmFuZ2V0eXBlcy5jICAgICAgIHwgIDcxICsrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvcmFuZ2V0eXBlcy5jICAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysrKysrKysrCiBzcmMv aW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9p bmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAgICAgIHwgIDE1ICsrCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2luY2x1 ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dCB8IDExNiArKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0ICAgICAgfCAgNTQgKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsICAgICAgfCAgMjIgKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbCAgICAgICAgICAgfCAgMTAgKysK IDIxIGZpbGVzIGNoYW5nZWQsIDY3NiBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyBiL2NvbnRyaWIvYmxvb20vYmx2 YWxpZGF0ZS5jCmluZGV4IDg4YzVhNzkxOTc1Li45ZTM5ZTM5ZTE3NCAxMDA2NDQKLS0tIGEvY29u dHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKKysrIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMK QEAgLTEwNSw3ICsxMDUsNyBAQCBibHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2gg KHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQkxPT01fSEFTSF9QUk9DOgotCQkJ CW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBm YWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg SU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkxLCAxLCBvcGNrZXl0eXBlKTsKIAkJ CQlicmVhazsKIAkJCWNhc2UgQkxPT01fT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBh MjU2NTA2MWZlOS4uMWUxNGUxZTU2NGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC04NjUsNyArODY1LDcg QEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIFRoZSBCLXRyZWUgb3BlcmF0 b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMgYWNjb3JkaW5nIHRvLCBpZiBhbgotICAgICAgIG9y ZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlmIGEgc2VhcmNoIG9wZXJhdG9yCisgICAgICAgb3JkZXJp bmcgb3BlcmF0b3I7IHplcm8gaWYgYSBzZWFyY2ggb3BlcmF0b3Igb3IgcG9ydGlvbiBvcGVyYXRv cgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApp bmRleCBlNjdkZDRiODU5Zi4uYmJmNzg0MTgwN2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9n aXN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApAQCAtMjcyLDcgKzI3Miw3IEBA IENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0 X29wcyk7CiAKICA8cGFyYT4KICAgIFRoZXJlIGFyZSBmaXZlIG1ldGhvZHMgdGhhdCBhbiBpbmRl eCBvcGVyYXRvciBjbGFzcyBmb3IKLSAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG11c3QgcHJv dmlkZSwgYW5kIGVpZ2h0IHRoYXQgYXJlIG9wdGlvbmFsLgorICAgPGFjcm9ueW0+R2lTVDwvYWNy b255bT4gbXVzdCBwcm92aWRlLCBhbmQgdGVuIHRoYXQgYXJlIG9wdGlvbmFsLgogICAgQ29ycmVj dG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAgIGJ5IHByb3BlciBpbXBsZW1lbnRhdGlv biBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8 L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlvbj51bmlvbjwvZnVuY3Rpb24+IG1ldGhvZHMsIHdo aWxlIGVmZmljaWVuY3kgKHNpemUgYW5kIHNwZWVkKSBvZiB0aGUKQEAgLTMwNCw2ICszMDQsMTIg QEAgQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGlu ZXRfb3BzKTsKICAgIHRlbXBvcmFsIGZvcmVpZ24ga2V5cyB0byBjb21iaW5lZCByZWZlcmVuY2Vk IHJvd3Mgd2l0aCB0aGUgc2FtZQogICAgbm9uLTxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xp dGVyYWw+IHZhbHVlKHMpIGludG8gb25lCiAgICA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9s aXRlcmFsPiBzcGFuIHRvIGNvbXBhcmUgYWdhaW5zdCByZWZlcmVuY2luZyByb3dzLgorICAgVGhl IG9wdGlvbmFsIGZvdXJ0ZWVudGggbWV0aG9kIDxmdW5jdGlvbj5pbnRlcnNlY3Q8L2Z1bmN0aW9u PiBpcyB1c2VkIGJ5CisgICA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gdG8gY29t cHV0ZSB0aGUgbmV3IGJvdW5kcyBvZiB0aGUgdXBkYXRlZC8KKyAgIGRlbGV0ZWQgcmVjb3JkLgor ICAgVGhlIG9wdGlvbmFsIGZpZnRlZW50aCBtZXRob2QgPGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlv bjwvZnVuY3Rpb24+IGlzIHVzZWQgYnkKKyAgIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRl cmFsPiB0byBjb21wdXRlIHRoZSBsZWZ0b3ZlciByZWNvcmRzIG91dHNpZGUgdGhlCisgICB0YXJn ZXRlZCBib3VuZHMuCiAgPC9wYXJhPgogCiAgPHZhcmlhYmxlbGlzdD4KQEAgLTEzNTIsNiArMTM1 OCwxNTMgQEAgbXlfcmFuZ2VfYWdnX2ZpbmFsZm4oUEdfRlVOQ1RJT05fQVJHUykKIAogICAgIFBH X1JFVFVSTl9NVUxUSVJBTkdFX1AobWFrZV9tdWx0aXJhbmdlKG1sdHJuZ3R5cG9pZCwgdHlwY2Fj aGUtJmd0O3JuZ3R5cGUsIHJhbmdlX2NvdW50LCByYW5nZXMpKTsKIH0KKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVu Y3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZl biB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFzcywgaXQgcmV0dXJucyB0aGVpciBpbnRlcnNlY3Rp b24uCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGlzIHVzZWQgZm9y IHRlbXBvcmFsIHVwZGF0ZSBjb21tYW5kcyB0byBjb21wdXRlIHRoZQorICAgICAgIG5ldyBib3Vu ZHMgb2YgdGhlIGNoYW5nZWQgcm93LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rp b24gbXVzdCBsb29rIGxpa2UKKyAgICAgICB0aGlzICh1c2luZyA8bGl0ZXJhbD5teV9pbnRlcnNl Y3Q8L2xpdGVyYWw+IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBteV9yYW5nZV9pbnRlcnNlY3QoYW55cmFuZ2UsIGFueXJhbmdl KQorUkVUVVJOUyBhbnlyYW5nZQorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RS SUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgor ICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xs b3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEYXR1bQorbXlfcmFuZ2VfaW50 ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgUmFuZ2VUeXBlICAqcjEgPSBQR19HRVRB UkdfUkFOR0VfUCgwKTsKKyAgICBSYW5nZVR5cGUgICpyMiA9IFBHX0dFVEFSR19SQU5HRV9QKDEp OworICAgIFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworICAgIC8qIERpZmZlcmVudCB0eXBl cyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdFIG1hdGNoaW5nIHJ1bGVzICovCisgICAg aWYgKFJhbmdlVHlwZUdldE9pZChyMSkgIT0gUmFuZ2VUeXBlR2V0T2lkKHIyKSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICB0eXBjYWNoZSA9 IHJhbmdlX2dldF90eXBjYWNoZShmY2luZm8sIFJhbmdlVHlwZUdldE9pZChyMSkpOworCisgICAg UEdfUkVUVVJOX1JBTkdFX1AocmFuZ2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hlLCByMSwg cjIpKTsKK30KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0 ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+ PGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFz cywgaXQgc3VidHJhY3RzIHRoZSBzZWNvbmQgZm9yIHRoZSBmaXJzdAorICAgICAgIGFuZCByZXR1 cm5zIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1wb3JhbCB1cGRhdGUvZGVsZXRlIGNvbW1hbmRz IHRvIGNvbXB1dGUgdGhlCisgICAgICAgYm91bmRzIG9mIHRoZSB1bnRvdWNoZWQgZHVyYXRpb24u CisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNyb255bT5TUUw8 L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQorICAg ICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbjwvbGl0ZXJh bD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIG15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSwgYW55cmFuZ2UpCitS RVRVUk5TIGFueWFycmF5CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7 Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAg ICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0 aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCityYW5nZV93aXRob3V0X3Bv cnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAg IFJhbmdlVHlwZSAgKnJzWzJdOworICAgICAgICBpbnQgICAgICAgICBuOworICAgIH0gcmFuZ2Vf d2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKyAgICBGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7Cisg ICAgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisgICAgTWVtb3J5Q29udGV4dCBv bGRjb250ZXh0OworCisgICAgLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9m IHRoZSBmdW5jdGlvbiAqLworICAgIGlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisgICAgeworICAg ICAgICBSYW5nZVR5cGUgICAgICAgKnIxOworICAgICAgICBSYW5nZVR5cGUgICAgICAgKnIyOwor ICAgICAgICBPaWQgICAgICAgICAgICAgIHJuZ3R5cGlkOworICAgICAgICBUeXBlQ2FjaGVFbnRy eSAgKnR5cGNhY2hlOworCisgICAgICAgIC8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNvbnRleHQgZm9y IGNyb3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKyAgICAgICAgZnVuY2N0eCA9IFNSRl9GSVJTVENB TExfSU5JVCgpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHN3aXRjaCB0byBtZW1vcnkgY29u dGV4dCBhcHByb3ByaWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMKKyAgICAgICAgICov CisgICAgICAgIG9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0eC0mZ3Q7 bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKworICAgICAgICByMSA9IFBHX0dFVEFSR19SQU5HRV9Q KDApOworICAgICAgICByMiA9IFBHX0dFVEFSR19SQU5HRV9QKDEpOworCisgICAgICAgIC8qIERp ZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdFIG1hdGNoaW5nIHJ1 bGVzICovCisgICAgICAgIGlmIChSYW5nZVR5cGVHZXRPaWQocjEpICE9IFJhbmdlVHlwZUdldE9p ZChyMikpCisgICAgICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNo Iik7CisKKyAgICAgICAgLyogYWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRleHQgKi8KKyAg ICAgICAgZmN0eCA9IChyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Moc2l6ZW9m KHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4KSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICog SW5pdGlhbGl6ZSBzdGF0ZS4KKyAgICAgICAgICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5 cGNhY2hlIGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorICAgICAgICAgKiB1c2VzIHRo YXQgZm9yIHRoZSBTUkYgc3RhdGUuCisgICAgICAgICAqLworICAgICAgICBybmd0eXBpZCA9IFJh bmdlVHlwZUdldE9pZChyMSk7CisgICAgICAgIHR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUo cm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKyAgICAgICAgaWYgKHR5cGNhY2hlLSZn dDtybmdlbGVtdHlwZSA9PSBOVUxMKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwgInR5cGUgJXUg aXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKyAgICAgICAgcmFuZ2Vfd2l0aG91dF9w b3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZjdHgtJmd0O3JzLCAmYW1wO2ZjdHgt Jmd0O24pOworCisgICAgICAgIGZ1bmNjdHgtJmd0O3VzZXJfZmN0eCA9IGZjdHg7CisgICAgICAg IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKyAgICB9CisKKyAgICAvKiBzdHVm ZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICovCisgICAgZnVuY2N0eCA9IFNS Rl9QRVJDQUxMX1NFVFVQKCk7CisgICAgZmN0eCA9IGZ1bmNjdHgtJmd0O3VzZXJfZmN0eDsKKwor ICAgIGlmIChmdW5jY3R4LSZndDtjYWxsX2NudHIgJmx0OyBmY3R4LSZndDtuKQorICAgIHsKKyAg ICAgICAgLyoKKyAgICAgICAgICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFyYXRlIGxpbmVz CisgICAgICAgICAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6Cisg ICAgICAgICAqLworICAgICAgICBSYW5nZVR5cGUgKnJldCA9IGZjdHgtJmd0O3JzW2Z1bmNjdHgt Jmd0O2NhbGxfY250cl07CisgICAgICAgIFNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5 cGVQR2V0RGF0dW0ocmV0KSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgLyogZG8gd2hlbiB0 aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KKyAgICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgp OworfQogPC9wcm9ncmFtbGlzdGluZz4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC94aW5kZXguc2dtbCBiL2RvYy9zcmMvc2dtbC94aW5k ZXguc2dtbAppbmRleCA5M2RmMTM2ZWJhMy4uZDRkMGY2ZGM2ODUgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC94aW5kZXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKQEAgLTUw OCw3ICs1MDgsNyBAQAogICAgPC90YWJsZT4KIAogICA8cGFyYT4KLSAgIEdpU1QgaW5kZXhlcyBo YXZlIHRoaXJ0ZWVuIHN1cHBvcnQgZnVuY3Rpb25zLCBlaWdodCBvZiB3aGljaCBhcmUgb3B0aW9u YWwsCisgICBHaVNUIGluZGV4ZXMgaGF2ZSBmaWZ0ZWVuIHN1cHBvcnQgZnVuY3Rpb25zLCB0ZW4g b2Ygd2hpY2ggYXJlIG9wdGlvbmFsLAogICAgYXMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGlu ZGV4LWdpc3Qtc3VwcG9ydC10YWJsZSIvPi4KICAgIChGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUg PHhyZWYgbGlua2VuZD0iZ2lzdCIvPi4pCiAgIDwvcGFyYT4KQEAgLTYwMiw2ICs2MDIsMTggQEAK ICAgICAgICAgcGFydDwvZW50cnk+CiAgICAgICAgPGVudHJ5PjEzPC9lbnRyeT4KICAgICAgIDwv cm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVu Y3Rpb24+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+Y29tcHV0ZXMgaW50ZXJzZWN0aW9uIHdpdGgg PGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+CisgICAgICAgIGJvdW5kczwvZW50cnk+ CisgICAgICAgPGVudHJ5PjE0PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnk+PGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC9lbnRyeT4K KyAgICAgICA8ZW50cnk+Y29tcHV0ZXMgcmVtYWluaW5nIGR1cmF0aW9uKHMpIG91dHNpZGUKKyAg ICAgICA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzPC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+MTU8L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAg PC90Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbl92YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0 ZS5jCmluZGV4IDUzOWFjOWNiMDY0Li4wODJmOTZiODQ3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9i cmluL2JyaW5fdmFsaWRhdGUuYwpAQCAtODcsMjEgKzg3LDIxIEBAIGJyaW52YWxpZGF0ZShPaWQg b3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNl IEJSSU5fUFJPQ05VTV9PUENJTkZPOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5f UFJPQ05VTV9BRERWQUxVRToKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTQs IDQsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElO VEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQ6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xP SUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkzLCA0LCBJTlRFUk5BTE9JRCwg SU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lELCBJTlQ0T0lEKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgQlJJTl9QUk9DTlVNX1VOSU9OOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwK IAkJCQkJCQkJCQkJMywgMywgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Z2luL2dpbnZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhbGlkYXRlLmMK aW5kZXggNzQ0MjBhMTI5YWEuLjc0OGI5NGE4OTNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbnZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52 YWxpZGF0ZS5jCkBAIC0xMDQsMzcgKzEwNCwzNyBAQCBnaW52YWxpZGF0ZShPaWQgb3BjbGFzc29p ZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEdJTl9DT01Q QVJFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIElOVDRPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTIsIDIsIG9w Y2tleXR5cGUsIG9wY2tleXR5cGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fRVhUUkFDVFZB TFVFX1BST0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBudWxsRmxhZ3MgKi8KLQkJCQlv ayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQs IGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBJTlRFUk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkyLCAzLCBvcGNpbnR5cGUs IElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJTl9FWFRSQUNUUVVFUllfUFJPQzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0IG51 bGxGbGFncyBhbmQgc2VhcmNoTW9kZSAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgZmFs c2UsCiAJCQkJCQkJCQkJCTUsIDcsIG9wY2ludHlwZSwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJ CUlOVDJPSUQsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxP SUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lOX0NPTlNJU1RFTlRfUFJP QzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0IHF1ZXJ5S2V5cyBhbmQgbnVsbEZsYWdzICov Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xP SUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBCT09MT0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTYsIDgsIElOVEVSTkFMT0lE LCBJTlQyT0lELAogCQkJCQkJCQkJCQlvcGNpbnR5cGUsIElOVDRPSUQsCiAJCQkJCQkJCQkJCUlO VEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFM T0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lOX0NPTVBBUkVfUEFSVElBTF9QUk9DOgotCQkJ CW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBm YWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg SU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk0LCA0LCBvcGNrZXl0eXBlLCBvcGNr ZXl0eXBlLAogCQkJCQkJCQkJCQlJTlQyT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEdJTl9UUklDT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIENIQVJPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBDSEFST0lELCBmYWxzZSwgZmFsc2Us CiAJCQkJCQkJCQkJCTcsIDcsIElOVEVSTkFMT0lELCBJTlQyT0lELAogCQkJCQkJCQkJCQlvcGNp bnR5cGUsIElOVDRPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKaW5kZXggOTY0Njc1NjdlYWEuLmU3ODFj NDNkOTk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwpAQCAtMTA2LDM2 ICsxMDYsMzYgQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nm b3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgR0lTVF9DT05TSVNURU5UX1BST0M6Ci0JCQkJ b2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZh bHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBC T09MT0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTUsIDUsIElOVEVSTkFMT0lELCBvcGNp bnR5cGUsCiAJCQkJCQkJCQkJCUlOVDJPSUQsIE9JRE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBHSVNUX1VOSU9OX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIG9wY2tleXR5cGUsIGZhbHNlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBvcGNrZXl0eXBlLCBmYWxzZSwg ZmFsc2UsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJ YnJlYWs7CiAJCQljYXNlIEdJU1RfQ09NUFJFU1NfUFJPQzoKIAkJCWNhc2UgR0lTVF9ERUNPTVBS RVNTX1BST0M6CiAJCQljYXNlIEdJU1RfRkVUQ0hfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBm YWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwog CQkJY2FzZSBHSVNUX1BFTkFMVFlfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1 ZSwKIAkJCQkJCQkJCQkJMywgMywgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lE LCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfUElDS1NQTElUX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVS TkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVS TkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfRVFVQUxfUFJP QzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5U RVJOQUxPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkzLCAzLCBv cGNrZXl0eXBlLCBvcGNrZXl0eXBlLAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCk7CiAJCQkJYnJl YWs7CiAJCQljYXNlIEdJU1RfRElTVEFOQ0VfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgRkxPQVQ4T0lELCBmYWxzZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgRkxPQVQ4T0lELCBmYWxzZSwg ZmFsc2UsCiAJCQkJCQkJCQkJCTUsIDUsIElOVEVSTkFMT0lELCBvcGNpbnR5cGUsCiAJCQkJCQkJ CQkJCUlOVDJPSUQsIE9JRE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwpAQCAtMTQzLDE4 ICsxNDMsMjYgQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQkJCW9rID0gY2hlY2tf YW1vcHRzcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYyk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJU1RfU09SVFNVUFBPUlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJ CQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9TVFJB VE5VTV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBJTlQyT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBJTlQyT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5U Mk9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfUkVGRVJFTkNFRF9BR0dfUFJPQzoKLQkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSW52YWxpZE9p ZCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIEludmFsaWRPaWQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJICAgMSwgMSwgb3BjaW50 eXBlKQogCQkJCQkmJiBjaGVja19hbXByb2NfaXNfYWdncmVnYXRlKHByb2Nmb3JtLT5hbXByb2Mp OwogCQkJCWJyZWFrOworCQkJY2FzZSBHSVNUX0lOVEVSU0VDVF9QUk9DOgorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJbnZhbGlkT2lkLCBmYWxzZSwg dHJ1ZSwKKwkJCQkJCQkJCQkJMiwgMiwgb3BjaW50eXBlLCBvcGNpbnR5cGUpOworCQkJCWJyZWFr OworCQkJY2FzZSBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DOgorCQkJCW9rID0gY2hlY2tfYW1w cm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBvcGNpbnR5cGUsIHRydWUsIHRydWUsCisJ CQkJCQkJCQkJCTIsIDIsIG9wY2ludHlwZSwgb3BjaW50eXBlKTsKKwkJCQlicmVhazsKIAkJCWRl ZmF1bHQ6CiAJCQkJZXJlcG9ydChJTkZPLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKQEAgLTI3Niw3ICsyODQsOCBAQCBnaXN0dmFsaWRhdGUoT2lk IG9wY2xhc3NvaWQpCiAJCWlmIChpID09IEdJU1RfRElTVEFOQ0VfUFJPQyB8fCBpID09IEdJU1Rf RkVUQ0hfUFJPQyB8fAogCQkJaSA9PSBHSVNUX0NPTVBSRVNTX1BST0MgfHwgaSA9PSBHSVNUX0RF Q09NUFJFU1NfUFJPQyB8fAogCQkJaSA9PSBHSVNUX09QVElPTlNfUFJPQyB8fCBpID09IEdJU1Rf U09SVFNVUFBPUlRfUFJPQyB8fAotCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BST0MgfHwgaSA9PSBH SVNUX1JFRkVSRU5DRURfQUdHX1BST0MpCisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQyB8fCBp ID09IEdJU1RfUkVGRVJFTkNFRF9BR0dfUFJPQyB8fAorCQkJaSA9PSBHSVNUX0lOVEVSU0VDVF9Q Uk9DIHx8IGkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQykKIAkJCWNvbnRpbnVlOwkJCS8q IG9wdGlvbmFsIG1ldGhvZHMgKi8KIAkJZXJlcG9ydChJTkZPLAogCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFs aWRhdGUuYwppbmRleCA5ZWIxYjE3MmFlMS4uY2MyN2NjMjhhYjUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2luZGV4L2FtdmFsaWRhdGUuYwpAQCAtMTY2LDcgKzE2Niw3IEBAIGNoZWNrX2FtcHJvY19pc19h Z2dyZWdhdGUoT2lkIGZ1bmNpZCkKICAqIHVubGVzcyBpdCBpcyBJbnZhbGlkT2lkLgogICovCiBi b29sCi1jaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29s IGV4YWN0LAorY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwg Ym9vbCByZXRzZXQsIGJvb2wgZXhhY3QsCiAJCQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJn cywuLi4pCiB7CiAJYm9vbAkJcmVzdWx0ID0gdHJ1ZTsKQEAgLTE4MSw3ICsxODEsNyBAQCBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAog CXByb2Nmb3JtID0gKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHRwKTsKIAogCWlmICgocHJvY2Zv cm0tPnByb3JldHR5cGUgIT0gcmVzdHlwZSAmJiBPaWRJc1ZhbGlkKHJlc3R5cGUpKQotCQl8fCBw cm9jZm9ybS0+cHJvcmV0c2V0IHx8IHByb2Nmb3JtLT5wcm9uYXJncyA8IG1pbmFyZ3MKKwkJfHwg cHJvY2Zvcm0tPnByb3JldHNldCAhPSByZXRzZXQgfHwgcHJvY2Zvcm0tPnByb25hcmdzIDwgbWlu YXJncwogCQl8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPiBtYXhhcmdzKQogCQlyZXN1bHQgPSBmYWxz ZTsKIApAQCAtMjA5LDcgKzIwOSw3IEBAIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNp ZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCiBib29sCiBjaGVja19hbW9wdHNwcm9jX3NpZ25h dHVyZShPaWQgZnVuY2lkKQogewotCXJldHVybiBjaGVja19hbXByb2Nfc2lnbmF0dXJlKGZ1bmNp ZCwgVk9JRE9JRCwgdHJ1ZSwgMSwgMSwgSU5URVJOQUxPSUQpOworCXJldHVybiBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKGZ1bmNpZCwgVk9JRE9JRCwgZmFsc2UsIHRydWUsIDEsIDEsIElOVEVSTkFM T0lEKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 dmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYwppbmRl eCBlOWQ0Y2Q2MGRlMy4uMDRlNDNlZjFkY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0dmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHZhbGlkYXRlLmMKQEAgLTkxLDE2ICs5MSwxNiBAQCBidHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lk KQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQlRPUkRFUl9Q Uk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJ TlQ0T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgcHJvY2Zvcm0t PmFtcHJvY2xlZnR0eXBlLAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jcmlnaHR0eXBlKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgQlRTT1JUU1VQUE9SVF9QUk9DOgotCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxz ZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSBCVElOUkFOR0VfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJ CTUsIDUsCiAJCQkJCQkJCQkJCXByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSwKIAkJCQkJCQkJCQkJ cHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlLApAQCAtMTA4LDcgKzEwOCw3IEBAIGJ0dmFsaWRhdGUo T2lkIG9wY2xhc3NvaWQpCiAJCQkJCQkJCQkJCUJPT0xPSUQsIEJPT0xPSUQpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBCVEVRVUFMSU1BR0VfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJ CQkJCQkJCQkJCTEsIDEsIE9JRE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJUT1BUSU9OU19Q Uk9DOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jCmluZGV4IDg1MGMzYjY3 NWQ2Li5mN2EzOTdjYjhjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUu YwpAQCAtMTA5LDcgKzEwOSw3IEBAIHNwZ3ZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0 Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgU1BHSVNUX0NPTkZJR19QUk9D OgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lE T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQs IElOVEVSTkFMT0lEKTsKIAkJCQljb25maWdJbi5hdHRUeXBlID0gcHJvY2Zvcm0tPmFtcHJvY2xl ZnR0eXBlOwogCQkJCW1lbXNldCgmY29uZmlnT3V0LCAwLCBzaXplb2YoY29uZmlnT3V0KSk7CkBA IC0xNjQsMTEgKzE2NCwxMSBAQCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCWNhc2Ug U1BHSVNUX0NIT09TRV9QUk9DOgogCQkJY2FzZSBTUEdJU1RfUElDS1NQTElUX1BST0M6CiAJCQlj YXNlIFNQR0lTVF9JTk5FUl9DT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZhbHNlLCB0cnVl LAogCQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBTUEdJU1RfTEVBRl9DT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJ CWJyZWFrOwogCQkJY2FzZSBTUEdJU1RfQ09NUFJFU1NfUFJPQzoKQEAgLTE3Nyw3ICsxNzcsNyBA QCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQkJb2sgPSBmYWxzZTsKIAkJCQllbHNl CiAJCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLAotCQkJ CQkJCQkJCQkJY29uZmlnT3V0TGVhZlR5cGUsIHRydWUsCisJCQkJCQkJCQkJCQljb25maWdPdXRM ZWFmVHlwZSwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCQkxLCAxLCBwcm9jZm9ybS0+YW1wcm9j bGVmdHR5cGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBTUEdJU1RfT1BUSU9OU19QUk9DOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jCmluZGV4IDhmMTJjOTUzY2FkLi4yYWY3 YWQ4M2Q4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBl cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYwpAQCAtMTIy NSw2ICsxMjI1LDc3IEBAIG11bHRpcmFuZ2VfbWludXNfaW50ZXJuYWwoT2lkIG1sdHJuZ3R5cG9p ZCwgVHlwZUNhY2hlRW50cnkgKnJhbmdldHlwLAogCXJldHVybiBtYWtlX211bHRpcmFuZ2UobWx0 cm5ndHlwb2lkLCByYW5nZXR5cCwgcmFuZ2VfY291bnQzLCByYW5nZXMzKTsKIH0KIAorLyoKKyAq IG11bHRpcmFuZ2UgbWludXMgYnV0IHJldHVybmluZyB0aGUgcmVzdWx0IGFzIGEgU1JGLAorICog d2l0aCBubyByb3dzIGlmIHRoZSByZXN1bHQgd291bGQgYmUgZW1wdHkuCisgKi8KK0RhdHVtCitt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihQR19GVU5DVElPTl9BUkdTKQoreworCUZ1bmNDYWxs Q29udGV4dCAqZnVuY2N0eDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlpZiAoIVNS Rl9JU19GSVJTVENBTEwoKSkKKwl7CisJCS8qIFdlIG5ldmVyIGhhdmUgbW9yZSB0aGFuIG9uZSBy ZXN1bHQgKi8KKwkJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJCVNSRl9SRVRVUk5f RE9ORShmdW5jY3R4KTsKKwl9CisJZWxzZQorCXsKKwkJTXVsdGlyYW5nZVR5cGUgKm1yMTsKKwkJ TXVsdGlyYW5nZVR5cGUgKm1yMjsKKwkJT2lkCQkJbWx0cm5ndHlwb2lkOworCQlUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGU7CisJCVR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5cDsKKwkJaW50MzIJCXJh bmdlX2NvdW50MTsKKwkJaW50MzIJCXJhbmdlX2NvdW50MjsKKwkJUmFuZ2VUeXBlICoqcmFuZ2Vz MTsKKwkJUmFuZ2VUeXBlICoqcmFuZ2VzMjsKKwkJTXVsdGlyYW5nZVR5cGUgKm1yOworCisJCWZ1 bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKworCQkvKgorCQkgKiBzd2l0Y2ggdG8gbWVt b3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9uIGNhbGxzCisJCSAq LworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2Nh bGxfbWVtb3J5X2N0eCk7CisKKwkJLyogZ2V0IGFyZ3MsIGRldG9hc3RpbmcgaW50byBtdWx0aS1j YWxsIG1lbW9yeSBjb250ZXh0ICovCisJCW1yMSA9IFBHX0dFVEFSR19NVUxUSVJBTkdFX1AoMCk7 CisJCW1yMiA9IFBHX0dFVEFSR19NVUxUSVJBTkdFX1AoMSk7CisKKwkJbWx0cm5ndHlwb2lkID0g TXVsdGlyYW5nZVR5cGVHZXRPaWQobXIxKTsKKwkJdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNo ZShtbHRybmd0eXBvaWQsIFRZUEVDQUNIRV9NVUxUSVJBTkdFX0lORk8pOworCQlpZiAodHlwY2Fj aGUtPnJuZ3R5cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBhIG11 bHRpcmFuZ2UgdHlwZSIsIG1sdHJuZ3R5cG9pZCk7CisJCXJhbmdldHlwID0gdHlwY2FjaGUtPnJu Z3R5cGU7CisKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yMSkgfHwgTXVsdGlyYW5nZUlzRW1w dHkobXIyKSkKKwkJCW1yID0gbXIxOworCQllbHNlCisJCXsKKwkJCW11bHRpcmFuZ2VfZGVzZXJp YWxpemUocmFuZ2V0eXAsIG1yMSwgJnJhbmdlX2NvdW50MSwgJnJhbmdlczEpOworCQkJbXVsdGly YW5nZV9kZXNlcmlhbGl6ZShyYW5nZXR5cCwgbXIyLCAmcmFuZ2VfY291bnQyLCAmcmFuZ2VzMik7 CisKKwkJCW1yID0gbXVsdGlyYW5nZV9taW51c19pbnRlcm5hbChtbHRybmd0eXBvaWQsCisJCQkJ CQkJCQkJICAgcmFuZ2V0eXAsCisJCQkJCQkJCQkJICAgcmFuZ2VfY291bnQxLAorCQkJCQkJCQkJ CSAgIHJhbmdlczEsCisJCQkJCQkJCQkJICAgcmFuZ2VfY291bnQyLAorCQkJCQkJCQkJCSAgIHJh bmdlczIpOworCQl9CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCisJ CWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworCQlpZiAoTXVsdGlyYW5nZUlzRW1wdHko bXIpKQorCQkJU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworCQllbHNlCisJCQlTUkZfUkVUVVJO X05FWFQoZnVuY2N0eCwgTXVsdGlyYW5nZVR5cGVQR2V0RGF0dW0obXIpKTsKKwl9Cit9CisKIC8q IG11bHRpcmFuZ2UgaW50ZXJzZWN0aW9uICovCiBEYXR1bQogbXVsdGlyYW5nZV9pbnRlcnNlY3Qo UEdfRlVOQ1RJT05fQVJHUykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5n ZXR5cGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCmluZGV4IDJkOTRh NmI4Nzc0Li4yYWIyN2JiNzU3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jh bmdldHlwZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCkBAIC0z MSw2ICszMSw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImNvbW1vbi9o YXNoZm4uaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQu aCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIK QEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvY2xhdXNlcy5oIgogI2luY2x1 ZGUgIm9wdGltaXplci9jb3N0LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgor I2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBAIC0x MjEzLDYgKzEyMTUsMTY3IEBAIHJhbmdlX3NwbGl0X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0 eXBjYWNoZSwgY29uc3QgUmFuZ2VUeXBlICpyMSwgY29uc3QgUmFuZ2VUCiAJcmV0dXJuIGZhbHNl OwogfQogCisvKiBzdWJ0cmFjdGlvbiBidXQgcmV0dXJuaW5nIGFuIGFycmF5IHRvIGFjY29tbW9k YXRlIHNwbGl0cyAqLworRGF0dW0KK3JhbmdlX3dpdGhvdXRfcG9ydGlvbihQR19GVU5DVElPTl9B UkdTKQoreworCXR5cGVkZWYgc3RydWN0IHsKKwkJUmFuZ2VUeXBlICAqcnNbMl07CisJCWludAkJ CW47CisJfSByYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eDsKKworCUZ1bmNDYWxsQ29udGV4dCAq ZnVuY2N0eDsKKwlyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqZmN0eDsKKwlNZW1vcnlDb250 ZXh0IG9sZGNvbnRleHQ7CisKKwkvKiBzdHVmZiBkb25lIG9ubHkgb24gdGhlIGZpcnN0IGNhbGwg b2YgdGhlIGZ1bmN0aW9uICovCisJaWYgKFNSRl9JU19GSVJTVENBTEwoKSkKKwl7CisJCVJhbmdl VHlwZQkgICAqcjE7CisJCVJhbmdlVHlwZQkgICAqcjI7CisJCU9pZAkJCQlybmd0eXBpZDsKKwkJ VHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisJCS8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNvbnRl eHQgZm9yIGNyb3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKwkJZnVuY2N0eCA9IFNSRl9GSVJTVENB TExfSU5JVCgpOworCisJCS8qCisJCSAqIHN3aXRjaCB0byBtZW1vcnkgY29udGV4dCBhcHByb3By aWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMKKwkJICovCisJCW9sZGNvbnRleHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0eC0+bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKwor CQlyMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworCQlyMiA9IFBHX0dFVEFSR19SQU5HRV9QKDEp OworCisJCS8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdF IG1hdGNoaW5nIHJ1bGVzICovCisJCWlmIChSYW5nZVR5cGVHZXRPaWQocjEpICE9IFJhbmdlVHlw ZUdldE9pZChyMikpCisJCQllbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7 CisKKwkJLyogYWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRleHQgKi8KKwkJZmN0eCA9IChy YW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Moc2l6ZW9mKHJhbmdlX3dpdGhvdXRf cG9ydGlvbl9mY3R4KSk7CisKKwkJLyoKKwkJICogSW5pdGlhbGl6ZSBzdGF0ZS4KKwkJICogV2Ug Y2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hlIGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNh bGxlcgorCQkgKiB1c2VzIHRoYXQgZm9yIHRoZSBTUkYgc3RhdGUuCisJCSAqLworCQlybmd0eXBp ZCA9IFJhbmdlVHlwZUdldE9pZChyMSk7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUo cm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKwkJaWYgKHR5cGNhY2hlLT5ybmdlbGVt dHlwZSA9PSBOVUxMKQorCQkJZWxvZyhFUlJPUiwgInR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlw ZSIsIHJuZ3R5cGlkKTsKKwkJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hl LCByMSwgcjIsIGZjdHgtPnJzLCAmZmN0eC0+bik7CisKKwkJZnVuY2N0eC0+dXNlcl9mY3R4ID0g ZmN0eDsKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCX0KKworCS8qIHN0 dWZmIGRvbmUgb24gZXZlcnkgY2FsbCBvZiB0aGUgZnVuY3Rpb24gKi8KKwlmdW5jY3R4ID0gU1JG X1BFUkNBTExfU0VUVVAoKTsKKwlmY3R4ID0gZnVuY2N0eC0+dXNlcl9mY3R4OworCisJaWYgKGZ1 bmNjdHgtPmNhbGxfY250ciA8IGZjdHgtPm4pCisJeworCQkvKgorCQkgKiBXZSBtdXN0IGtlZXAg dGhlc2Ugb24gc2VwYXJhdGUgbGluZXMKKwkJICogYmVjYXVzZSBTUkZfUkVUVVJOX05FWFQgZG9l cyBjYWxsX2NudHIrKzoKKwkJICovCisJCVJhbmdlVHlwZSAqcmV0ID0gZmN0eC0+cnNbZnVuY2N0 eC0+Y2FsbF9jbnRyXTsKKwkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNjdHgsIFJhbmdlVHlwZVBHZXRE YXR1bShyZXQpKTsKKwl9CisJZWxzZQorCQkvKiBkbyB3aGVuIHRoZXJlIGlzIG5vIG1vcmUgbGVm dCAqLworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7Cit9CisKKy8qCisgKiByYW5nZV93aXRo b3V0X3BvcnRpb25faW50ZXJuYWwgLSBTZXRzIG91dHB1dHMgYW5kIG91dHB1dG4gdG8gdGhlIHJh bmdlcworICogcmVtYWluaW5nIGFuZCB0aGVpciBjb3VudCAocmVzcGVjdGl2ZWx5KSBhZnRlciBz dWJ0cmFjdGluZyByMiBmcm9tIHIxLgorICogVGhlIGFycmF5IHNob3VsZCBuZXZlciBjb250YWlu IGVtcHR5IHJhbmdlcy4KKyAqIFRoZSBvdXRwdXRzIHdpbGwgYmUgb3JkZXJlZC4gV2UgZXhwZWN0 IHRoYXQgb3V0cHV0cyBpcyBhbiBhcnJheSBvZgorICogUmFuZ2VUeXBlIHBvaW50ZXJzLCBhbHJl YWR5IGFsbG9jYXRlZCB3aXRoIHR3byBzbG90cy4KKyAqLwordm9pZAorcmFuZ2Vfd2l0aG91dF9w b3J0aW9uX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgUmFuZ2VUeXBlICpyMSwK KwkJCQkJCQkgICBSYW5nZVR5cGUgKnIyLCBSYW5nZVR5cGUgKipvdXRwdXRzLCBpbnQgKm91dHB1 dG4pCit7CisJaW50CQkJY21wX2wxbDIsCisJCQkJY21wX2wxdTIsCisJCQkJY21wX3UxbDIsCisJ CQkJY21wX3UxdTI7CisJUmFuZ2VCb3VuZAlsb3dlcjEsCisJCQkJbG93ZXIyOworCVJhbmdlQm91 bmQJdXBwZXIxLAorCQkJCXVwcGVyMjsKKwlib29sCQllbXB0eTEsCisJCQkJZW1wdHkyOworCisJ cmFuZ2VfZGVzZXJpYWxpemUodHlwY2FjaGUsIHIxLCAmbG93ZXIxLCAmdXBwZXIxLCAmZW1wdHkx KTsKKwlyYW5nZV9kZXNlcmlhbGl6ZSh0eXBjYWNoZSwgcjIsICZsb3dlcjIsICZ1cHBlcjIsICZl bXB0eTIpOworCisJaWYgKGVtcHR5MSkKKwl7CisJCS8qIGlmIHIxIGlzIGVtcHR5IHRoZW4gcjEg LSByMiBpcyBlbXB0eSwgc28gcmV0dXJuIHplcm8gcmVzdWx0cyAqLworCQkqb3V0cHV0biA9IDA7 CisJCXJldHVybjsKKwl9CisJZWxzZSBpZiAoZW1wdHkyKQorCXsKKwkJLyogcjIgaXMgZW1wdHkg c28gdGhlIHJlc3VsdCBpcyBqdXN0IHIxICh3aGljaCB3ZSBrbm93IGlzIG5vdCBlbXB0eSkgKi8K KwkJb3V0cHV0c1swXSA9IHIxOworCQkqb3V0cHV0biA9IDE7CisJCXJldHVybjsKKwl9CisKKwkv KgorCSAqIFVzZSB0aGUgc2FtZSBsb2dpYyBhcyByYW5nZV9taW51c19pbnRlcm5hbCwKKwkgKiBi dXQgc3VwcG9ydCB0aGUgc3BsaXQgY2FzZQorCSAqLworCWNtcF9sMWwyID0gcmFuZ2VfY21wX2Jv dW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJmxvd2VyMik7CisJY21wX2wxdTIgPSByYW5nZV9jbXBf Ym91bmRzKHR5cGNhY2hlLCAmbG93ZXIxLCAmdXBwZXIyKTsKKwljbXBfdTFsMiA9IHJhbmdlX2Nt cF9ib3VuZHModHlwY2FjaGUsICZ1cHBlcjEsICZsb3dlcjIpOworCWNtcF91MXUyID0gcmFuZ2Vf Y21wX2JvdW5kcyh0eXBjYWNoZSwgJnVwcGVyMSwgJnVwcGVyMik7CisKKwlpZiAoY21wX2wxbDIg PCAwICYmIGNtcF91MXUyID4gMCkKKwl7CisJCWxvd2VyMi5pbmNsdXNpdmUgPSAhbG93ZXIyLmlu Y2x1c2l2ZTsKKwkJbG93ZXIyLmxvd2VyID0gZmFsc2U7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSB1 cHBlciBib3VuZCAqLworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJmxvd2Vy MSwgJmxvd2VyMiwgZmFsc2UsIE5VTEwpOworCisJCXVwcGVyMi5pbmNsdXNpdmUgPSAhdXBwZXIy LmluY2x1c2l2ZTsKKwkJdXBwZXIyLmxvd2VyID0gdHJ1ZTsJLyogaXQgd2lsbCBiZWNvbWUgdGhl IGxvd2VyIGJvdW5kICovCisJCW91dHB1dHNbMV0gPSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAmdXBw ZXIyLCAmdXBwZXIxLCBmYWxzZSwgTlVMTCk7CisKKwkJKm91dHB1dG4gPSAyOworCX0KKwllbHNl IGlmIChjbXBfbDF1MiA+IDAgfHwgY21wX3UxbDIgPCAwKQorCXsKKwkJb3V0cHV0c1swXSA9IHIx OworCQkqb3V0cHV0biA9IDE7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyID49IDAgJiYgY21wX3Ux dTIgPD0gMCkKKwl7CisJCSpvdXRwdXRuID0gMDsKKwl9CisJZWxzZSBpZiAoY21wX2wxbDIgPD0g MCAmJiBjbXBfdTFsMiA+PSAwICYmIGNtcF91MXUyIDw9IDApCisJeworCQlsb3dlcjIuaW5jbHVz aXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dlciA9IGZhbHNlOwkvKiBpdCB3 aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0cHV0c1swXSA9IG1ha2VfcmFuZ2Uo dHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNlLCBOVUxMKTsKKwkJKm91dHB1dG4gPSAx OworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91MXUyID49IDAgJiYgY21wX2wx dTIgPD0gMCkKKwl7CisJCXVwcGVyMi5pbmNsdXNpdmUgPSAhdXBwZXIyLmluY2x1c2l2ZTsKKwkJ dXBwZXIyLmxvd2VyID0gdHJ1ZTsJLyogaXQgd2lsbCBiZWNvbWUgdGhlIGxvd2VyIGJvdW5kICov CisJCW91dHB1dHNbMF0gPSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAmdXBwZXIyLCAmdXBwZXIxLCBm YWxzZSwgTlVMTCk7CisJCSpvdXRwdXRuID0gMTsKKwl9CisJZWxzZQorCXsKKwkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgY2FzZSBpbiByYW5nZV93aXRob3V0X3BvcnRpb24iKTsKKwl9Cit9CisK IC8qIHJhbmdlIC0+IHJhbmdlIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgKi8KIAogRGF0dW0KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvYW12YWxpZGF0ZS5oCmluZGV4IGM3OTVhNGJjMWJmLi40ODQ0YmE4MmRjMyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvYW12YWxpZGF0ZS5oCkBAIC0yOSw4ICsyOSw4IEBAIHR5cGVkZWYgc3RydWN0IE9wRmFtaWx5 T3BGdW5jR3JvdXAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICov CiBleHRlcm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0 LCBDYXRDTGlzdCAqcHJvY2xpc3QpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX2lzX2FnZ3Jl Z2F0ZShPaWQgZnVuY2lkKTsKLWV4dGVybiBib29sIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lk IGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCi0JCQkJCQkJCSAgIGludCBtaW5hcmdz LCBpbnQgbWF4YXJncywuLi4pOworZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShP aWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCByZXRzZXQsCisJCQkJCQkJCSAgIGJvb2wgZXhh Y3QsIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywuLi4pOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1v cHRzcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9vbCBjaGVja19hbW9wX3Np Z25hdHVyZShPaWQgb3BubywgT2lkIHJlc3R5cGUsCiAJCQkJCQkJCSBPaWQgbGVmdHR5cGUsIE9p ZCByaWdodHR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKaW5kZXggNjQxNjc3ZTE5MWMuLmU4YjM5M2Y5ZGZkIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmgKQEAgLTQxLDcgKzQxLDkgQEAKICNkZWZpbmUgR0lTVF9TT1JUU1VQUE9SVF9Q Uk9DCQkJMTEKICNkZWZpbmUgR0lTVF9TVFJBVE5VTV9QUk9DCQkJCTEyCiAjZGVmaW5lIEdJU1Rf UkVGRVJFTkNFRF9BR0dfUFJPQwkJMTMKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTMKKyNkZWZp bmUgR0lTVF9JTlRFUlNFQ1RfUFJPQwkJCQkxNAorI2RlZmluZSBHSVNUX1dJVEhPVVRfUE9SVElP Tl9QUk9DCQkxNQorI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxNQogCiAvKgogICogUGFnZSBvcGFx dWUgZGF0YSBpbiBhIEdpU1QgaW5kZXggcGFnZS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApp bmRleCAxZDNkNWZjZjRkOC4uOGM5MjI5NzRiYjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5k YXQKQEAgLTUxMCw2ICs1MTAsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFt cHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Jv eCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxNCcsCisgIGFt cHJvYyA9PiAnYm94X2ludGVyc2VjdChib3gsYm94KScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdn aXN0L3BvbHlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BvbHlnb24nLAogICBhbXByb2NyaWdo dHR5cGUgPT4gJ3BvbHlnb24nLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2dpc3Rf cG9seV9jb25zaXN0ZW50JyB9LApAQCAtNjEzLDYgKzYxNiwxMiBAQAogeyBhbXByb2NmYW1pbHkg PT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTMnLAogICBhbXByb2Mg PT4gJ3JhbmdlX2FnZyhhbnlyYW5nZSknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5n ZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxNCcsCisgIGFtcHJvYyA9PiAncmFuZ2VfaW50 ZXJzZWN0KGFueXJhbmdlLGFueXJhbmdlKScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3Jh bmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzE1JywKKyAgYW1wcm9jID0+ICdyYW5nZV93 aXRob3V0X3BvcnRpb24oYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4g J2dpc3QvbmV0d29ya19vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnaW5ldF9n aXN0X2NvbnNpc3RlbnQnIH0sCkBAIC02NTYsNiArNjY1LDEyIEBACiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdl JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcx MycsCiAgIGFtcHJvYyA9PiAncmFuZ2VfYWdnKGFueW11bHRpcmFuZ2UpJyB9LAoreyBhbXByb2Nm YW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVs dGlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251 bSA9PiAnMTQnLAorICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfaW50ZXJzZWN0KGFueW11bHRpcmFu Z2UsYW55bXVsdGlyYW5nZSknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0aXJhbmdl X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAgYW1wcm9jcmlnaHR0 eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxNScsCisgIGFtcHJvYyA9PiAn bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oYW55bXVsdGlyYW5nZSxhbnltdWx0aXJhbmdlKScg fSwKIAogIyBnaW4KIHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ2FueWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDcwMGY3ZGFm N2IyLi5iYmQzOWRkMGZjNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMDU1NCw2ICsx MDU1NCwxMCBAQAogeyBvaWQgPT4gJzM4NjknLAogICBwcm9uYW1lID0+ICdyYW5nZV9taW51cycs IHByb3JldHR5cGUgPT4gJ2FueXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFu eXJhbmdlJywgcHJvc3JjID0+ICdyYW5nZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA4JywgZGVz Y3IgPT4gJ3JlbW92ZSBwb3J0aW9uIGZyb20gcmFuZ2UnLAorICBwcm9uYW1lID0+ICdyYW5nZV93 aXRob3V0X3BvcnRpb24nLCBwcm9yb3dzID0+ICcyJywKKyAgcHJvcmV0c2V0ID0+ICd0JywgcHJv cmV0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFu Z2UnLCBwcm9zcmMgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICczODcw JywgZGVzY3IgPT4gJ2xlc3MtZXF1YWwtZ3JlYXRlcicsCiAgIHByb25hbWUgPT4gJ3JhbmdlX2Nt cCcsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55 cmFuZ2UnLCBwcm9zcmMgPT4gJ3JhbmdlX2NtcCcgfSwKQEAgLTEwODQxLDYgKzEwODQ1LDEwIEBA CiB7IG9pZCA9PiAnNDI3MScsCiAgIHByb25hbWUgPT4gJ211bHRpcmFuZ2VfbWludXMnLCBwcm9y ZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFu Z2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5nZV9taW51cycgfSwKK3sgb2lk ID0+ICc4NDA2JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9uIGZyb20gbXVsdGlyYW5nZScsCisg IHByb25hbWUgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uJywgcHJvcm93cyA9PiAnMScs CisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAorICBw cm9hcmd0eXBlcyA9PiAnYW55bXVsdGlyYW5nZSBhbnltdWx0aXJhbmdlJywgcHJvc3JjID0+ICdt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICc0MjcyJywKICAgcHJvbmFt ZSA9PiAnbXVsdGlyYW5nZV9pbnRlcnNlY3QnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdl JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmggYi9zcmMvaW5jbHVkZS91dGls cy9yYW5nZXR5cGVzLmgKaW5kZXggMmI1NzQ4NzNjZWYuLmUxYjI1NmI2NWY0IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv cmFuZ2V0eXBlcy5oCkBAIC0xNjQsNSArMTY0LDcgQEAgZXh0ZXJuIFJhbmdlVHlwZSAqbWFrZV9l bXB0eV9yYW5nZShUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUpOwogZXh0ZXJuIGJvb2wgcmFuZ2Vf c3BsaXRfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5cGUg KnIxLAogCQkJCQkJCQkgY29uc3QgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0cHV0MSwK IAkJCQkJCQkJIFJhbmdlVHlwZSAqKm91dHB1dDIpOworZXh0ZXJuIHZvaWQgcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgUmFuZ2VUeXBlICpy MSwKKwkJCQkJCQkJCVJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91dHB1dHMsIGludCAqb3V0 cHV0bik7CiAKICNlbmRpZgkJCQkJCQkvKiBSQU5HRVRZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dAppbmRleCBjNjM2M2ViZWIyNC4uMTFh YTI4MmZmMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5n ZXR5cGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBl cy5vdXQKQEAgLTIyMDAsNiArMjIwMCwxMjIgQEAgU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDAKICB7 WzEsMiksWzQsNSl9CiAoMSByb3cpCiAKKy0tIHdpdGhvdXRfcG9ydGlvbgorU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsK KyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworIG11bHRpcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo MSwyKSksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBu dW1yYW5nZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSBy b3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3Mp CisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKKyBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9Ciso MSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEs Mil9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMykp KTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDAsOCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDAsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDAsMiksIG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsMyksWzQsOCl9CisoMSBy b3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVs bCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB7WzEsMiksWzMsNSl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQp KSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwg bnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitT RUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDkpKSk7CisgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiso MCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgy LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVt bXVsdGlyYW5nZShudW1yYW5nZSg4LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQor CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5n ZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSwgbnVt cmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKwogLS0gaW50ZXJzZWN0 aW9uCiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgpICogbnVtbXVsdGlyYW5nZSgpOwogID9jb2x1bW4/ IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKaW5kZXggYTdjYzIyMGJm MGQuLmFiMjMwOWU4YzFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jh bmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5v dXQKQEAgLTQ4MSw2ICs0ODEsNjAgQEAgc2VsZWN0IHJhbmdlX21pbnVzKG51bXJhbmdlKDEwLjEs MTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKICBlbXB0eQogKDEgcm93KQog CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKCdlbXB0eSc6Om51bXJhbmdlLCBudW1yYW5n ZSgyLjAsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdl KDEuMSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCBy YW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMu MCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg WzEuMSwyLjApCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFu Z2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjIsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVj dCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdl KDIuMCwgMy4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMS4xLDIuMCkKKygxIHJvdykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEuNSwgMi4wKSk7CisgcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4wLDEuNSkKKyBbMi4wLDMu MCkKKygyIHJvd3MpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAu MSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMTAuMSwxMi4yXQorKDEgcm93 KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10n KSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1yYW5nZSgxLjAsMy4wLCdbXScpLCBudW1yYW5nZSgxLjUsMi4wLCcoXScpKTsK KyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjAs MS41XQorICgyLjAsMy4wXQorKDIgcm93cykKKwogc2VsZWN0IG51bXJhbmdlKDQuNSwgNS41LCAn W10nKSAmJiBudW1yYW5nZSg1LjUsIDYuNSk7CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbAppbmRleCA0MWQ1NTI0Mjg1YS4uMGJm YTcxY2FjYTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBl cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbApAQCAt NDE0LDYgKzQxNCwyOCBAQCBTRUxFQ1QgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1y YW5nZSg0LDUpKSAtIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw5KQogU0VMRUNUIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDgsOSkpOwogU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2Uo NCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApLCBudW1yYW5nZSg4LDkpKTsKIAor LS0gd2l0aG91dF9wb3J0aW9uCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVt bXVsdGlyYW5nZSgpLCBudW1tdWx0aXJhbmdlKCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7 CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5n ZSgxLDIpKSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDMsNCkpLCBudW1tdWx0 aXJhbmdlKCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSks IG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVt cmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VM RUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0 KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMCw4KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSkpOwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo MSw4KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSwgbnVtcmFuZ2UoMyw0KSkpOworU0VM RUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4 KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSwgbnVtcmFuZ2UoNSxudWxsKSkpOworU0VM RUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwy KSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoLTIsMCkpKTsKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiks IG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51 bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNSkpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJh bmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOSkpKTsKK1NFTEVDVCBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMyksIG51bXJhbmdl KDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQs NSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApLCBudW1yYW5nZSg4LDkpKSk7CisKIC0tIGlu dGVyc2VjdGlvbgogU0VMRUNUIG51bW11bHRpcmFuZ2UoKSAqIG51bW11bHRpcmFuZ2UoKTsKIFNF TEVDVCBudW1tdWx0aXJhbmdlKCkgKiBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAppbmRleCBhNWVjZGY1MzcyZi4uN2ZjODA1ZDlmZmEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCkBAIC0xMDcsNiArMTA3LDE2IEBAIHNl bGVjdCBudW1yYW5nZSgxLjEsIDIuMiwnW10nKSAtIG51bXJhbmdlKDIuMCwgMy4wKTsKIHNlbGVj dCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDExMC4wLDEy MC4yLCcoXScpKTsKIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyks IG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CiAKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRp b24oJ2VtcHR5Jzo6bnVtcmFuZ2UsIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOwor c2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksIG51bXJhbmdl KDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwg Mi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMCwgMy4wKSwgbnVtcmFuZ2UoMS41LCAyLjAp KTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScp LCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsK K3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVt cmFuZ2UoMS41LDIuMCwnKF0nKSk7CisKIHNlbGVjdCBudW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykg JiYgbnVtcmFuZ2UoNS41LCA2LjUpOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMi4wKSA8PCBudW1y YW5nZSgzLjAsIDQuMCk7CiBzZWxlY3QgbnVtcmFuZ2UoMS4wLCAzLjAsJ1tdJykgPDwgbnVtcmFu Z2UoMy4wLCA0LjAsJ1tdJyk7Ci0tIAoyLjQyLjAKCg== --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0007-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v28-0007-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofd36 RnJvbSA1N2Q3MDVmN2IzNWQ3OGM5NmFhOWQ2MDAzZjFhZmM4MDg2ZDAwYTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3MDAKU3ViamVj dDogW1BBVENIIHYyOCA3LzldIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9GCgotIEFk ZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRheC4gVGhlIGJvdW5kcyBt dXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4gcmVmZXJlbmNlcywgc3VicXVl cmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2ljIFVOQk9VTkRFRCBrZXl3b3JkIGFz IHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1 cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBmdW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFk ZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGluc2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3Zl ciIgcGFydCBvZgogIGEgcmVjb3JkIHRvdWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4K LSBBZGRlZCB0Z190ZW1wb3JhbCBkZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3Qg dGhhdCB3ZSBwYXNzIHRvCiAgdHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhp cyB0byBsZWFybiB3aGF0IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9G IGNsYXVzZS4KLSBEb2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVt cG9yYWwgc3RydWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0 ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8ICAgNSArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwv cG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgIDQgKwogY29udHJpYi9zZXBnc3FsL3Byb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQogZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbCAg ICAgICAgICAgICAgICAgIHwgIDY5ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sICAg ICAgICAgICAgICAgICAgfCAgODcgKysrCiBkb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sICAgICAg ICAgICAgICAgICAgICAgfCAgNjAgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxp ZGF0ZS5jICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAg ICAgICAgICAgIHwgIDQ5ICsrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMg ICAgICAgIHwgMzAwICsrKysrKystCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAg ICAgICAgICAgICAgfCAgMjQgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxh bi5jICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyAg ICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAg ICAgICAgfCAyNDIgKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDU2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAg ICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAg ICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgICAgICAgICAgICAg IHwgICAyICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgICAgICAgICAg fCAgNDAgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAgICAgIHwg IDc0ICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAg NTcgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oICAgICAgICAgICAgICAgICB8ICAg MiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgNDYgKy0K IHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDI2ICsKIHNyYy9p bmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2lu Y2x1ZGUvcGFyc2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgIHwgNjg1ICsrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgICAxICsK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgICAgICB8ICAxOCArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQgfCAgMzIgKwogLi4u L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgICAgIHwgMTQwICsrKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsICAgICAgIHwgNTMxICsrKysrKysr KysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbCAgICAgICAgICAgfCAg IDEgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgICAgICAgICAgIHwgIDE4 ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92aWV3cy5zcWwgICAgICB8ICAxNCAr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAgODggKysr CiA1MSBmaWxlcyBjaGFuZ2VkLCAyNzMxIGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25f b2Yub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRp b25fb2Yuc3FsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zk dy5vdXQKaW5kZXggNThhNjAzYWM1NmYuLmJhMTNhODRmZjIzIDEwMDY0NAotLS0gYS9jb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9z dGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTYzMzQsNiArNjMzNCwxMSBA QCBERUxFVEUgRlJPTSBmdDIKIAogREVMRVRFIEZST00gZnQyIFdIRVJFIGZ0Mi5jMSA+IDIwMDA7 CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIGV4dGVuc2lvbnMgJ3Bvc3RncmVz X2ZkdycpOworLS0gVGVzdCBVUERBVEUvREVMRVRFIHdpdGggRk9SIFBPUlRJT04gT0YKK1VQREFU RSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAnYScgVE8gJ2InIFNFVCBjMSA9IDE7CitFUlJP UjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YKK0RFTEVURSBG Uk9NIGZ0MiBGT1IgUE9SVElPTiBPRiBjMyBGUk9NICdhJyBUTyAnYic7CitFUlJPUjogIGZvcmVp Z24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YKIC0tIFRlc3QgdGhhdCB0cmln Z2VyIG9uIHJlbW90ZSB0YWJsZSB3b3JrcyBhcyBleHBlY3RlZAogQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gIlMgMSIuRl9CUlRSSUcoKSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKIEJFR0lOCmRp ZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IGUzZDE0N2RlNmRh Li41YWNjZTNhNWFmYyAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3Rn cmVzX2Zkdy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5z cWwKQEAgLTE1NjYsNiArMTU2NiwxMCBAQCBERUxFVEUgRlJPTSBmdDIKIERFTEVURSBGUk9NIGZ0 MiBXSEVSRSBmdDIuYzEgPiAyMDAwOwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFE RCBleHRlbnNpb25zICdwb3N0Z3Jlc19mZHcnKTsKIAorLS0gVGVzdCBVUERBVEUvREVMRVRFIHdp dGggRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAnYScg VE8gJ2InIFNFVCBjMSA9IDE7CitERUxFVEUgRlJPTSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJP TSAnYScgVE8gJ2InOworCiAtLSBUZXN0IHRoYXQgdHJpZ2dlciBvbiByZW1vdGUgdGFibGUgd29y a3MgYXMgZXhwZWN0ZWQKIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJTIDEiLkZfQlJUUklH KCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCiBCRUdJTgpkaWZmIC0tZ2l0IGEvY29udHJpYi9zZXBn c3FsL3Byb2MuYyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKaW5kZXggNDg5OWJjMmEzZTMuLjIw MTIwZmQ1MzFmIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdzcWwvcHJvYy5jCisrKyBiL2NvbnRy aWIvc2VwZ3NxbC9wcm9jLmMKQEAgLTE2MSw3ICsxNjEsNyBAQCBzZXBnc3FsX3Byb2NfZHJvcChP aWQgZnVuY3Rpb25JZCkKIAkgKiBjaGVjayBkYl9zY2hlbWE6e3JlbW92ZV9uYW1lfSBwZXJtaXNz aW9uCiAJICovCiAJb2JqZWN0LmNsYXNzSWQgPSBOYW1lc3BhY2VSZWxhdGlvbklkOwotCW9iamVj dC5vYmplY3RJZCA9IGdldF9mdW5jX25hbWVzcGFjZShmdW5jdGlvbklkKTsKKwlvYmplY3Qub2Jq ZWN0SWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZnVuY3Rpb25JZCwgdHJ1ZSk7CiAJb2JqZWN0Lm9i amVjdFN1YklkID0gMDsKIAlhdWRpdF9uYW1lID0gZ2V0T2JqZWN0SWRlbnRpdHkoJm9iamVjdCwg ZmFsc2UpOwogCmRpZmYgLS1naXQgYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMgYi9jb250 cmliL3VuYWNjZW50L3VuYWNjZW50LmMKaW5kZXggNzA3OTYyMzA1ZjguLjNiNzY0NmVjNzJhIDEw MDY0NAotLS0gYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91bmFj Y2VudC91bmFjY2VudC5jCkBAIC00NDksNyArNDQ5LDcgQEAgdW5hY2NlbnRfZGljdChQR19GVU5D VElPTl9BUkdTKQogCQkgKiBVc2UgdGhlICJ1bmFjY2VudCIgZGljdGlvbmFyeSB0aGF0IGlzIGlu IHRoZSBzYW1lIHNjaGVtYSB0aGF0IHRoaXMKIAkJICogZnVuY3Rpb24gaXMgaW4uCiAJCSAqLwot CQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNpbmZvLT5mbGluZm8tPmZu X29pZCk7CisJCU9pZAkJCXByb2Nuc3BpZCA9IGdldF9mdW5jX25hbWVzcGFjZShmY2luZm8tPmZs aW5mby0+Zm5fb2lkLCB0cnVlKTsKIAkJY29uc3QgY2hhciAqZGljdG5hbWUgPSAidW5hY2NlbnQi OwogCiAJCWRpY3RPaWQgPSBHZXRTeXNDYWNoZU9pZDIoVFNESUNUTkFNRU5TUCwgQW51bV9wZ190 c19kaWN0X29pZCwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMWUxNGUxZTU2NGQuLjZjYzEyNzYxOGNkIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbApAQCAtODMzLDcgKzgzMyw3IEBACiAgICAgICAgPHN0cnVjdGZpZWxkPmFt b3BwdXJwb3NlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlwZT4KICAgICAgIDwvcGFyYT4K ICAgICAgIDxwYXJhPgotICAgICAgIE9wZXJhdG9yIHB1cnBvc2UsIGVpdGhlciA8bGl0ZXJhbD5z PC9saXRlcmFsPiBmb3Igc2VhcmNoIG9yCisgICAgICAgT3BlcmF0b3IgcHVycG9zZSwgZWl0aGVy IDxsaXRlcmFsPnM8L2xpdGVyYWw+IGZvciBzZWFyY2gsIG9yCiAgICAgICAgPGxpdGVyYWw+bzwv bGl0ZXJhbD4gZm9yIG9yZGVyaW5nCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+ CkBAIC04NjUsNyArODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAg IFRoZSBCLXRyZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMgYWNjb3JkaW5nIHRv LCBpZiBhbgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlmIGEgc2VhcmNoIG9wZXJh dG9yIG9yIHBvcnRpb24gb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVyYXRvcjsgemVybyBp ZiBhIHNlYXJjaCBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog ICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAppbmRleCAxYjgxYjRlN2Q3NC4uMWM3Mjc1MzQx ZWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9kZWxldGUuc2dtbApAQCAtMjMsNiArMjMsNyBAQCBQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KIDxzeW5vcHNpcz4KIFsgV0lUSCBbIFJFQ1VSU0lWRSBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj53aXRoX3F1ZXJ5PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdCiBERUxF VEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFt ZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0KKyAgICBbIEZPUiBQT1JUSU9OIE9GIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+ IEZST00gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2Vh YmxlPiBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2Vh YmxlPiBdCiAgICAgWyBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9p dGVtPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdCiAgICAgWyBXSEVSRSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gfCBXSEVSRSBDVVJSRU5UIE9G IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jdXJzb3JfbmFtZTwvcmVwbGFjZWFibGU+ IF0KICAgICBbIFJFVFVSTklORyAqIHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm91 dHB1dF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm91dHB1dF9uYW1lPC9yZXBsYWNlYWJsZT4gXSBbLCAuLi5dIF0KQEAgLTU0 LDYgKzU1LDM5IEBAIERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgICBjaXJjdW1zdGFuY2VzLgog ICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBJZiB0aGUgdGFibGUgaGFzIGEgcmFuZ2Ugb3IgbXVs dGlyYW5nZSBjb2x1bW4sCisgICB5b3UgbWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9O IE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIGRlbGV0ZSB3aWxsCisgICBvbmx5IGFmZmVj dCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBh IHJvdydzIHNwYW4KKyAgIGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04g T0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5b3VyIGRlbGV0ZQorICAgd2lsbCBvbmx5IGNoYW5n ZSB0aGUgc3BhbiB3aXRoaW4gdGhvc2UgYm91bmRzLiBJbiBlZmZlY3QgeW91IGFyZSBkZWxldGlu ZyBhbnkKKyAgIG1vbWVudCB0YXJnZXRlZCBieSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0 ZXJhbD4gYW5kIG5vIG1vbWVudHMgb3V0c2lkZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg U3BlY2lmaWNhbGx5LCBhZnRlciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IGRlbGV0ZXMgdGhlIGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9s aXRlcmFsPgorICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSBy ZWNlaXZlIHRoZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRz LCBjb250YWluaW5nIHRoZSBvcmlnaW5hbCB2YWx1ZXMgaW4gb3RoZXIgY29sdW1ucy4KKyAgIFRo ZXJlIHdpbGwgYmUgemVybyB0byB0d28gaW5zZXJ0ZWQgcmVjb3JkcywKKyAgIGRlcGVuZGluZyBv biB3aGV0aGVyIHRoZSBvcmlnaW5hbCBzcGFuIGV4dGVuZGVkIGJlZm9yZSB0aGUgdGFyZ2V0ZWQK KyAgIDxsaXRlcmFsPkZST008L2xpdGVyYWw+LCBhZnRlciB0aGUgdGFyZ2V0ZWQgPGxpdGVyYWw+ VE88L2xpdGVyYWw+LCBib3RoLCBvciBuZWl0aGVyLgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBmaXJlIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4g dHJpZ2dlcnMuIEZpcnN0CisgICA8bGl0ZXJhbD5CRUZPUkUgREVMRVRFPC9saXRlcmFsPiB0cmln Z2VycyBmaXJzdCwgdGhlbgorICAgPGxpdGVyYWw+QkVGT1JFIElOU0VSVDwvbGl0ZXJhbD4sIHRo ZW4gPGxpdGVyYWw+QUZURVIgSU5TRVJUPC9saXRlcmFsPiwKKyAgIHRoZW4gPGxpdGVyYWw+QUZU RVIgREVMRVRFPC9saXRlcmFsPi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vj b25kYXJ5IGluc2VydHMgZG8gbm90IHJlcXVpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiBw cml2aWxlZ2Ugb24gdGhlIHRhYmxlLgorICAgVGhpcyBpcyBiZWNhdXNlIGNvbmNlcHR1YWxseSBu byBuZXcgaW5mb3JtYXRpb24gaGFzIGJlZW4gYWRkZWQuIFRoZSBpbnNlcnRlZCByb3dzIG9ubHkg cHJlc2VydmUKKyAgIGV4aXN0aW5nIGRhdGEgYWJvdXQgdGhlIHVudGFyZ2V0ZWQgdGltZSBwZXJp b2QuIE5vdGUgdGhpcyBtYXkgcmVzdWx0IGluIHVzZXJzIGZpcmluZyA8bGl0ZXJhbD5JTlNFUlQ8 L2xpdGVyYWw+CisgICB0cmlnZ2VycyB3aG8gZG9uJ3QgaGF2ZSBpbnNlcnQgcHJpdmlsZWdlcywg c28gYmUgY2FyZWZ1bCBhYm91dCA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFsPiB0 cmlnZ2VyIGZ1bmN0aW9ucyEKKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFs IDxsaXRlcmFsPlJFVFVSTklORzwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyA8Y29tbWFuZD5ERUxF VEU8L2NvbW1hbmQ+CiAgICB0byBjb21wdXRlIGFuZCByZXR1cm4gdmFsdWUocykgYmFzZWQgb24g ZWFjaCByb3cgYWN0dWFsbHkgZGVsZXRlZC4KQEAgLTExNiw2ICsxNTAsNDEgQEAgREVMRVRFIEZS T00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICoKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoZSByYW5nZSBjb2x1bW4gb3IgcGVyaW9kIHRvIHVzZSB3 aGVuIHBlcmZvcm1pbmcgYSB0ZW1wb3JhbCBkZWxldGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVhcmxpZXN0 IHRpbWUgKGluY2x1c2l2ZSkgdG8gY2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRlLgorICAgICAg VGhpcyBtdXN0IGJlIGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUgcmFuZ2Ug b3IgcGVyaW9kIGZyb20KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5n ZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJhbD5OVUxMPC9s aXRlcmFsPiBoZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9zZSBiZWdpbm5pbmcgaXMKKyAgICAg IHVuYm91bmRlZCAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBsYXRlc3QgdGlt ZSAoZXhjbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCBkZWxldGUuCisgICAgICBUaGlz IG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBlIG9mIHRoZSByYW5nZSBvciBw ZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29y X3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVy YWw+IGhlcmUgaW5kaWNhdGVzIGEgZGVsZXRlIHdob3NlIGVuZCBpcyB1bmJvdW5kZWQKKyAgICAg IChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKaW5kZXggMmFiMjRiMDUyM2UuLjcxYTAyNjk3 ZjJkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAgUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCiA8c3lub3BzaXM+CiBbIFdJVEggWyBSRUNVUlNJVkUgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+d2l0aF9xdWVyeTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXQogVVBE QVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFsaWFzPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgRk9SIFBPUlRJT04gT0YgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZvcl9wb3J0aW9uX29mX3RhcmdldDwvcmVwbGFj ZWFibGU+IF0KICAgICBTRVQgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiA9IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4 cHJlc3Npb248L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfSB8CiAgICAgICAgICAgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5d ICkgPSBbIFJPVyBdICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lv bjwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9IFssIC4uLl0gKSB8CiAgICAgICAgICAgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dICkgPSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWItU0VMRUNUPC9yZXBs YWNlYWJsZT4gKQpAQCAtNTEsNiArNTIsNDEgQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWwogICAg Y2lyY3Vtc3RhbmNlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYgdGhlIHRhYmxlIGhh cyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1heSBzdXBwbHkgYSA8bGl0 ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciB1cGRhdGUgd2ls bAorICAgb25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBG dXJ0aGVybW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRl cmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciB1cGRhdGUKKyAg IHdpbGwgb25seSBjaGFuZ2UgdGhlIHNwYW4gd2l0aGluIHRob3NlIGJvdW5kcy4gSW4gZWZmZWN0 IHlvdSBhcmUgdXBkYXRpbmcgYW55CisgICBtb21lbnQgdGFyZ2V0ZWQgYnkgPGxpdGVyYWw+Rk9S IFBPUlRJT04gT0Y8L2xpdGVyYWw+IGFuZCBubyBtb21lbnRzIG91dHNpZGUuCisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFNwZWNpZmljYWxseSwgd2hlbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNR TDwvcHJvZHVjdG5hbWU+IHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgYWxz byBjaGFuZ2UgdGhlIHJhbmdlIG9yIHN0YXJ0L2VuZCBjb2x1bW4ocykgc28gdGhhdCB0aGVpciBp bnRlcnZhbAorICAgbm8gbG9uZ2VyIGV4dGVuZHMgYmV5b25kIHRoZSB0YXJnZXRlZCA8bGl0ZXJh bD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLgorICAgVGhlbiA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgor ICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZlIHRo ZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBjb250YWlu aW5nIHRoZSB1bi11cGRhdGVkIHZhbHVlcyBpbiBvdGhlciBjb2x1bW5zLgorICAgVGhlcmUgd2ls bCBiZSB6ZXJvIHRvIHR3byBpbnNlcnRlZCByZWNvcmRzLAorICAgZGVwZW5kaW5nIG9uIHdoZXRo ZXIgdGhlIG9yaWdpbmFsIHNwYW4gZXh0ZW5kZWQgYmVmb3JlIHRoZSB0YXJnZXRlZAorICAgPGxp dGVyYWw+RlJPTTwvbGl0ZXJhbD4sIGFmdGVyIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5UTzwvbGl0 ZXJhbD4sIGJvdGgsIG9yIG5laXRoZXIuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXNl IHNlY29uZGFyeSBpbnNlcnRzIGZpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiB0cmlnZ2Vy cy4gRmlyc3QKKyAgIDxsaXRlcmFsPkJFRk9SRSBVUERBVEU8L2xpdGVyYWw+IHRyaWdnZXJzIGZp cnN0LCB0aGVuCisgICA8bGl0ZXJhbD5CRUZPUkUgSU5TRVJUPC9saXRlcmFsPiwgdGhlbiA8bGl0 ZXJhbD5BRlRFUiBJTlNFUlQ8L2xpdGVyYWw+LAorICAgdGhlbiA8bGl0ZXJhbD5BRlRFUiBVUERB VEU8L2xpdGVyYWw+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkg aW5zZXJ0cyBkbyBub3QgcmVxdWlyZSA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+IHByaXZpbGVn ZSBvbiB0aGUgdGFibGUuCisgICBUaGlzIGlzIGJlY2F1c2UgY29uY2VwdHVhbGx5IG5vIG5ldyBp bmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZC4gVGhlIGluc2VydGVkIHJvd3Mgb25seSBwcmVzZXJ2 ZQorICAgZXhpc3RpbmcgZGF0YSBhYm91dCB0aGUgdW50YXJnZXRlZCB0aW1lIHBlcmlvZC4gTm90 ZSB0aGlzIG1heSByZXN1bHQgaW4gdXNlcnMgZmlyaW5nIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJh bD4KKyAgIHRyaWdnZXJzIHdobyBkb24ndCBoYXZlIGluc2VydCBwcml2aWxlZ2VzLCBzbyBiZSBj YXJlZnVsIGFib3V0IDxsaXRlcmFsPlNFQ1VSSVRZIERFRklORVI8L2xpdGVyYWw+IHRyaWdnZXIg ZnVuY3Rpb25zIQorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgb3B0aW9uYWwgPGxpdGVy YWw+UkVUVVJOSU5HPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIDxjb21tYW5kPlVQREFURTwvY29t bWFuZD4KICAgIHRvIGNvbXB1dGUgYW5kIHJldHVybiB2YWx1ZShzKSBiYXNlZCBvbiBlYWNoIHJv dyBhY3R1YWxseSB1cGRhdGVkLgpAQCAtMTE0LDYgKzE1MCw1NyBAQCBVUERBVEUgWyBPTkxZIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBb ICogXSBbCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9v cl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgcmFuZ2UgY29sdW1uIG9yIHBlcmlvZCB0byB1c2Ugd2hlbiBwZXJm b3JtaW5nIGEgdGVtcG9yYWwgdXBkYXRlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JfcG9ydGlvbl9vZl90YXJnZXQ8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGludGVy dmFsIHRvIHVwZGF0ZS4gSWYgeW91IGFyZSB0YXJnZXRpbmcgYSByYW5nZSBjb2x1bW4gb3IgPGxp dGVyYWw+UEVSSU9EPC9saXRlcmFsPiwKKyAgICAgIHlvdSBtYXkgZ2l2ZSB0aGlzIGluIHRoZSBm b3JtIDxsaXRlcmFsPkZST008L2xpdGVyYWw+CisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+c3RhcnRfdGltZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPlRPPC9saXRlcmFsPgor ICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJs ZT4uCisgICAgICBPdGhlcndpc2UgeW91IG11c3QgdXNlCisgICAgICA8bGl0ZXJhbD4oPC9saXRl cmFsPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT48bGl0ZXJhbD4pPC9saXRlcmFsPgorICAgICAgd2hlcmUgdGhlIGV4cHJlc3Npb24geWllbGRz IGEgdmFsdWUgZm9yIHRoZSBzYW1lIHR5cGUgYXMKKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF90aW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVw ZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUg b2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxp dGVyYWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRlIHdob3NlIGJlZ2lu bmluZyBpcworICAgICAgdW5ib3VuZGVkIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8 L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIGxhdGVzdCB0aW1lIChleGNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVwZGF0 ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2Yg dGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVy YWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRlIHdob3NlIGVuZCBpcyB1 bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv dHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbAppbmRleCBhNTM5MGZmNjQ0 My4uNTM4YTFlMDc4ZGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtNTM1LDE3ICs1MzUsMTggQEAgQ0FMTEVE X0FTX1RSSUdHRVIoZmNpbmZvKQogPHByb2dyYW1saXN0aW5nPgogdHlwZWRlZiBzdHJ1Y3QgVHJp Z2dlckRhdGEKIHsKLSAgICBOb2RlVGFnICAgICAgICAgIHR5cGU7Ci0gICAgVHJpZ2dlckV2ZW50 ICAgICB0Z19ldmVudDsKLSAgICBSZWxhdGlvbiAgICAgICAgIHRnX3JlbGF0aW9uOwotICAgIEhl YXBUdXBsZSAgICAgICAgdGdfdHJpZ3R1cGxlOwotICAgIEhlYXBUdXBsZSAgICAgICAgdGdfbmV3 dHVwbGU7Ci0gICAgVHJpZ2dlciAgICAgICAgICp0Z190cmlnZ2VyOwotICAgIFR1cGxlVGFibGVT bG90ICAqdGdfdHJpZ3Nsb3Q7Ci0gICAgVHVwbGVUYWJsZVNsb3QgICp0Z19uZXdzbG90OwotICAg IFR1cGxlc3RvcmVzdGF0ZSAqdGdfb2xkdGFibGU7Ci0gICAgVHVwbGVzdG9yZXN0YXRlICp0Z19u ZXd0YWJsZTsKLSAgICBjb25zdCBCaXRtYXBzZXQgKnRnX3VwZGF0ZWRjb2xzOworICAgIE5vZGVU YWcgICAgICAgICAgICB0eXBlOworICAgIFRyaWdnZXJFdmVudCAgICAgICB0Z19ldmVudDsKKyAg ICBSZWxhdGlvbiAgICAgICAgICAgdGdfcmVsYXRpb247CisgICAgSGVhcFR1cGxlICAgICAgICAg IHRnX3RyaWd0dXBsZTsKKyAgICBIZWFwVHVwbGUgICAgICAgICAgdGdfbmV3dHVwbGU7CisgICAg VHJpZ2dlciAgICAgICAgICAgKnRnX3RyaWdnZXI7CisgICAgVHVwbGVUYWJsZVNsb3QgICAgKnRn X3RyaWdzbG90OworICAgIFR1cGxlVGFibGVTbG90ICAgICp0Z19uZXdzbG90OworICAgIFR1cGxl c3RvcmVzdGF0ZSAgICp0Z19vbGR0YWJsZTsKKyAgICBUdXBsZXN0b3Jlc3RhdGUgICAqdGdfbmV3 dGFibGU7CisgICAgY29uc3QgQml0bWFwc2V0ICAgKnRnX3VwZGF0ZWRjb2xzOworICAgIEZvclBv cnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiA8L3Byb2dyYW1saXN0 aW5nPgogCkBAIC04MTMsNiArODE0LDQzIEBAIHR5cGVkZWYgc3RydWN0IFRyaWdnZXIKICAgICAg ICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHN0cnVjdGZpZWxkPnRnX3RlbXBvcmFsPC9z dHJ1Y3RmaWVsZD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIFNldCBmb3IgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+REVMRVRF PC9saXRlcmFsPiBxdWVyaWVzCisgICAgICAgIHRoYXQgdXNlIDxsaXRlcmFsPkZPUiBQT1JUSU9O IE9GPC9saXRlcmFsPiwgb3RoZXJ3aXNlIDxzeW1ib2w+TlVMTDwvc3ltYm9sPi4KKyAgICAgICAg Q29udGFpbnMgYSBwb2ludGVyIHRvIGEgc3RydWN0dXJlIG9mIHR5cGUKKyAgICAgICAgPHN0cnVj dG5hbWU+Rm9yUG9ydGlvbk9mU3RhdGU8L3N0cnVjdG5hbWU+LCBkZWZpbmVkIGluCisgICAgICAg IDxmaWxlbmFtZT5ub2Rlcy9leGVjbm9kZXMuaDwvZmlsZW5hbWU+OgorCis8cHJvZ3JhbWxpc3Rp bmc+Cit0eXBlZGVmIHN0cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworICAgIE5vZGVUYWcgdHlw ZTsKKworICAgIGNoYXIgICAqZnBfcmFuZ2VOYW1lOyAgICAgICAvKiB0aGUgY29sdW1uL1BFUklP RCBuYW1lZCBpbiBGT1IgUE9SVElPTiBPRiAqLworICAgIE9pZCAgICAgZnBfcmFuZ2VUeXBlOyAg ICAgICAvKiB0aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLworICAg IGJvb2wgICAgZnBfaGFzUGVyaW9kOyAgICAgICAvKiB0cnVlIGlmZiB0aGlzIGlzIGEgUEVSSU9E IG5vdCBhIHJhbmdlICovCisgICAgY2hhciAgICpmcF9wZXJpb2RTdGFydE5hbWU7IC8qIHRoZSBQ RVJJT0QncyBzdGFydCBjb2x1bW4gKi8KKyAgICBjaGFyICAgKmZwX3BlcmlvZEVuZE5hbWU7ICAg LyogdGhlIFBFUklPRCdzIGVuZCBjb2x1bW4gKi8KKyAgICBEYXR1bSAgIGZwX3RhcmdldFJhbmdl OyAgICAgLyogdGhlIHJhbmdlIGZyb20gRk9SIFBPUlRJT04gT0YgKi8KK30gRm9yUG9ydGlvbk9m U3RhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgd2hlcmUgPHN0cnVjdGZpZWxkPmZw X3JhbmdlTmFtZTwvc3RydWN0ZmllbGQ+IGlzIHRoZSBwZXJpb2Qgb3IgcmFuZ2UKKyAgICAgICBj b2x1bW4gbmFtZWQgaW4gdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1 c2UsCisgICAgICAgPHN0cnVjdGZpZWxkPmZwX3JhbmdlVHlwZTwvc3RydWN0ZmllbGQ+IGlzIGl0 cyByYW5nZSB0eXBlLAorICAgICAgIDxzdHJ1Y3RmaWVsZD5mcF9oYXNQZXJpb2Q8L3N0cnVjdGZp ZWxkPiBpbmRpY2F0ZXMgd2hldGhlciBhIHBlcmlvZCB3YXMgdXNlZAorICAgICAgIG9yIGEgcmFu Z2UgY29sdW1uLCA8c3RydWN0ZmllbGQ+ZnBfcGVyaW9kU3RhcnROYW1lPC9zdHJ1Y3RmaWVsZD4g YW5kCisgICAgICAgPHN0cnVjdGZpZWxkPmZwX3BlcmlvZEVuZE5hbWU8L3N0cnVjdGZpZWxkPiBh cmUgdGhlIG5hbWVzIG9mIHRoZSBwZXJpb2QncworICAgICAgIHN0YXJ0IGFuZCBlbmQgY29sdW1u cyAob3IgPHN5bWJvbD5OVUxMPC9zeW1ib2w+IGlmIGEgcmFuZ2UgY29sdW1uIHdhcyB1c2VkKSwK KyAgICAgICBhbmQgPHN0cnVjdGZpZWxkPmZwX3RhcmdldFJhbmdlPC9zdHJ1Y3RmaWVsZD4gaXMg YSByYW5nZXR5cGUgdmFsdWUgY3JlYXRlZAorICAgICAgIGJ5IGV2YWx1YXRpbmcgdGhlIDxsaXRl cmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMuCisgICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+ CiAgICA8L3BhcmE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKaW5kZXgg ZTc4MWM0M2Q5OTQuLmI0YjIyZjFmNzUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Z2lzdC9naXN0dmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFs aWRhdGUuYwpAQCAtMjA2LDcgKzIwNiw3IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkK IAkJfQogCiAJCS8qIEdpU1Qgc3VwcG9ydHMgT1JERVIgQlkgb3BlcmF0b3JzICovCi0JCWlmIChv cHJmb3JtLT5hbW9wcHVycG9zZSAhPSBBTU9QX1NFQVJDSCkKKwkJaWYgKG9wcmZvcm0tPmFtb3Bw dXJwb3NlID09IEFNT1BfT1JERVIpCiAJCXsKIAkJCS8qIC4uLiBidXQgbXVzdCBoYXZlIG1hdGNo aW5nIGRpc3RhbmNlIHByb2MgKi8KIAkJCWlmICghT2lkSXNWYWxpZChnZXRfb3BmYW1pbHlfcHJv YyhvcGZhbWlseW9pZCwKQEAgLTIzMywyNCArMjMzLDM4IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3Bj bGFzc29pZCkKIAkJCQlyZXN1bHQgPSBmYWxzZTsKIAkJCX0KIAkJfQotCQllbHNlCisJCWVsc2Ug aWYgKG9wcmZvcm0tPmFtb3BwdXJwb3NlID09IEFNT1BfU0VBUkNIKQogCQl7CiAJCQkvKiBTZWFy Y2ggb3BlcmF0b3JzIG11c3QgYWx3YXlzIHJldHVybiBib29sICovCiAJCQlvcF9yZXR0eXBlID0g Qk9PTE9JRDsKIAkJfQotCi0JCS8qIENoZWNrIG9wZXJhdG9yIHNpZ25hdHVyZSAqLwotCQlpZiAo IWNoZWNrX2Ftb3Bfc2lnbmF0dXJlKG9wcmZvcm0tPmFtb3BvcHIsIG9wX3JldHR5cGUsCi0JCQkJ CQkJCSAgb3ByZm9ybS0+YW1vcGxlZnR0eXBlLAotCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3ByaWdo dHR5cGUpKQorCQllbHNlCiAJCXsKKwkJCS8qIE5vdGhpbmcgZWxzZSBpdCBjb3VsZCBiZSAqLwog CQkJZXJlcG9ydChJTkZPLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLAotCQkJCQkgZXJybXNnKCJvcGVyYXRvciBmYW1pbHkgXCIlc1wiIG9mIGFjY2Vz cyBtZXRob2QgJXMgY29udGFpbnMgb3BlcmF0b3IgJXMgd2l0aCB3cm9uZyBzaWduYXR1cmUiLAot CQkJCQkJCW9wZmFtaWx5bmFtZSwgImdpc3QiLAotCQkJCQkJCWZvcm1hdF9vcGVyYXRvcihvcHJm b3JtLT5hbW9wb3ByKSkpKTsKKwkJCQkJIGVycm1zZygib3BlcmF0b3IgZmFtaWx5IFwiJXNcIiBv ZiBhY2Nlc3MgbWV0aG9kICVzIGNvbnRhaW5zIHVua25vd24gcHVycG9zZSAlYyBmb3Igb3BlcmF0 b3IgJXMiLAorCQkJCQkJIG9wZmFtaWx5bmFtZSwgImdpc3QiLCBvcHJmb3JtLT5hbW9wcHVycG9z ZSwKKwkJCQkJCSBmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1vcG9wcikpKSk7CisJCQlvcF9y ZXR0eXBlID0gSW52YWxpZE9pZDsKIAkJCXJlc3VsdCA9IGZhbHNlOwogCQl9CisKKwkJLyogQ2hl Y2sgb3BlcmF0b3Igc2lnbmF0dXJlICovCisJCWlmIChPaWRJc1ZhbGlkKG9wX3JldHR5cGUpKQor CQl7CisJCQlpZiAoIWNoZWNrX2Ftb3Bfc2lnbmF0dXJlKG9wcmZvcm0tPmFtb3BvcHIsIG9wX3Jl dHR5cGUsCisJCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3BsZWZ0dHlwZSwKKwkJCQkJCQkJCSAgb3By Zm9ybS0+YW1vcHJpZ2h0dHlwZSkpCisJCQl7CisJCQkJZXJlcG9ydChJTkZPLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCSBlcnJtc2co Im9wZXJhdG9yIGZhbWlseSBcIiVzXCIgb2YgYWNjZXNzIG1ldGhvZCAlcyBjb250YWlucyBvcGVy YXRvciAlcyB3aXRoIHdyb25nIHNpZ25hdHVyZSIsCisJCQkJCQkJCW9wZmFtaWx5bmFtZSwgImdp c3QiLAorCQkJCQkJCQlmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1vcG9wcikpKSk7CisJCQkJ cmVzdWx0ID0gZmFsc2U7CisJCQl9CisJCX0KIAl9CiAKIAkvKiBOb3cgY2hlY2sgZm9yIGluY29u c2lzdGVudCBncm91cHMgb2Ygb3BlcmF0b3JzL2Z1bmN0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCmluZGV4IGE5ZDUwNTZhZjQ4Li5mMDFhYTQ0M2FiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YwpAQCAtMzk5NSw3ICszOTk1LDcgQEAgRXhwbGFpblRhcmdldFJlbChQbGFuICpwbGFuLCBJbmRl eCBydGksIEV4cGxhaW5TdGF0ZSAqZXMpCiAKIAkJCQkJCW9iamVjdG5hbWUgPSBnZXRfZnVuY19u YW1lKGZ1bmNpZCk7CiAJCQkJCQlpZiAoZXMtPnZlcmJvc2UpCi0JCQkJCQkJbmFtZXNwYWNlID0g Z2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZ2V0X2Z1bmNfbmFtZXNwYWNlKGZ1bmNpZCkpOwor CQkJCQkJCW5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKGdldF9mdW5jX25h bWVzcGFjZShmdW5jaWQsIHRydWUpKTsKIAkJCQkJfQogCQkJCX0KIAkJCQlvYmplY3R0YWcgPSAi RnVuY3Rpb24gTmFtZSI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDQ4YWE0NWMwYjUx Li4wZmRkODQ2YjdkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEyNTIxLDYgKzEy NTIxLDcgQEAgdmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCQl0 cmlnZGF0YS50Z190cmlndHVwbGUgPSBFeGVjRmV0Y2hTbG90SGVhcFR1cGxlKHNsb3QsIGZhbHNl LCBOVUxMKTsKIAkJdHJpZ2RhdGEudGdfdHJpZ3Nsb3QgPSBzbG90OwogCQl0cmlnZGF0YS50Z190 cmlnZ2VyID0gJnRyaWc7CisJCXRyaWdkYXRhLnRnX3RlbXBvcmFsID0gTlVMTDsKIAogCQlmY2lu Zm8tPmNvbnRleHQgPSAoTm9kZSAqKSAmdHJpZ2RhdGE7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpp bmRleCAzNWViNzE4MGY3ZS4uNTVhZmUwMTk0YjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAg LTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGls cy9hY2wuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2Rh dHVtLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWNf aG9va3MuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgpAQCAtMjYzMSw2ICsyNjMyLDcgQEAg RXhlY0JTRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGlu Zm8pCiAJTG9jVHJpZ2dlckRhdGEudGdfZXZlbnQgPSBUUklHR0VSX0VWRU5UX0RFTEVURSB8CiAJ CVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVs aW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVs aW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCWZvciAoaSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJp Z2dlcnM7IGkrKykKIAl7CiAJCVRyaWdnZXIgICAgKnRyaWdnZXIgPSAmdHJpZ2Rlc2MtPnRyaWdn ZXJzW2ldOwpAQCAtMjczMCw2ICsyNzMyLDcgQEAgRXhlY0JSRGVsZXRlVHJpZ2dlcnMoRVN0YXRl ICplc3RhdGUsIEVQUVN0YXRlICplcHFzdGF0ZSwKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlU UklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGlu Zm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGlu Zm8tPnJpX2ZvclBvcnRpb25PZjsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRyaWdn ZXJzOyBpKyspCiAJewogCQlIZWFwVHVwbGUJbmV3dHVwbGU7CkBAIC0yODIxLDYgKzI4MjQsNyBA QCBFeGVjSVJEZWxldGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVs aW5mbywKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RFQUQ7CiAJ TG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJ TG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAK IAlFeGVjRm9yY2VTdG9yZUhlYXBUdXBsZSh0cmlndHVwbGUsIHNsb3QsIGZhbHNlKTsKIApAQCAt Mjg4NCw2ICsyODg4LDcgQEAgRXhlY0JTVXBkYXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIFJl c3VsdFJlbEluZm8gKnJlbGluZm8pCiAJCVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdn ZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOwogCUxvY1RyaWdn ZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gdXBkYXRlZENvbHM7CisJTG9jVHJpZ2dlckRhdGEudGdf dGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJZm9yIChpID0gMDsgaSA8IHRy aWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQogCXsKIAkJVHJpZ2dlciAgICAqdHJpZ2dlciA9ICZ0 cmlnZGVzYy0+dHJpZ2dlcnNbaV07CkBAIC0zMDE5LDYgKzMwMjQsNyBAQCBFeGVjQlJVcGRhdGVU cmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQlUUklHR0VSX0VW RU5UX1JPVyB8CiAJCVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3Jl bGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3Rl bXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCXVwZGF0ZWRDb2xzID0gRXhlY0dl dEFsbFVwZGF0ZWRDb2xzKHJlbGluZm8sIGVzdGF0ZSk7CiAJTG9jVHJpZ2dlckRhdGEudGdfdXBk YXRlZGNvbHMgPSB1cGRhdGVkQ29sczsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRy aWdnZXJzOyBpKyspCkBAIC0zMTY4LDYgKzMxNzQsNyBAQCBFeGVjSVJVcGRhdGVUcmlnZ2VycyhF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJVFJJR0dFUl9FVkVOVF9S T1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RFQUQ7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRp b24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9y YWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAKIAlFeGVjRm9yY2VTdG9yZUhlYXBUdXBs ZSh0cmlndHVwbGUsIG9sZHNsb3QsIGZhbHNlKTsKIApAQCAtMzYzNCw2ICszNjQxLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgQWZ0ZXJUcmlnZ2VyU2hhcmVkRGF0YQogCU9pZAkJCWF0c190Z29pZDsJCS8q IHRoZSB0cmlnZ2VyJ3MgSUQgKi8KIAlPaWQJCQlhdHNfcmVsaWQ7CQkvKiB0aGUgcmVsYXRpb24g aXQncyBvbiAqLwogCUNvbW1hbmRJZAlhdHNfZmlyaW5nX2lkOwkvKiBJRCBmb3IgZmlyaW5nIGN5 Y2xlICovCisJRm9yUG9ydGlvbk9mU3RhdGUgKmZvcl9wb3J0aW9uX29mOwkvKiB0aGUgRk9SIFBP UlRJT04gT0YgY2xhdXNlICovCiAJc3RydWN0IEFmdGVyVHJpZ2dlcnNUYWJsZURhdGEgKmF0c190 YWJsZTsJLyogdHJhbnNpdGlvbiB0YWJsZSBhY2Nlc3MgKi8KIAlCaXRtYXBzZXQgICphdHNfbW9k aWZpZWRjb2xzOwkvKiBtb2RpZmllZCBjb2x1bW5zICovCiB9IEFmdGVyVHJpZ2dlclNoYXJlZERh dGE7CkBAIC0zOTA3LDYgKzM5MTUsNyBAQCBzdGF0aWMgU2V0Q29uc3RyYWludFN0YXRlIFNldENv bnN0cmFpbnRTdGF0ZUNyZWF0ZShpbnQgbnVtYWxsb2MpOwogc3RhdGljIFNldENvbnN0cmFpbnRT dGF0ZSBTZXRDb25zdHJhaW50U3RhdGVDb3B5KFNldENvbnN0cmFpbnRTdGF0ZSBvcmlnc3RhdGUp Owogc3RhdGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVBZGRJdGVtKFNl dENvbnN0cmFpbnRTdGF0ZSBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlPaWQgdGdvaWQsIGJvb2wgdGdp c2RlZmVycmVkKTsKK3N0YXRpYyBGb3JQb3J0aW9uT2ZTdGF0ZSAqQ29weUZvclBvcnRpb25PZlN0 YXRlKEZvclBvcnRpb25PZlN0YXRlICpzcmMpOwogc3RhdGljIHZvaWQgY2FuY2VsX3ByaW9yX3N0 bXRfdHJpZ2dlcnMoT2lkIHJlbGlkLCBDbWRUeXBlIGNtZFR5cGUsIGludCB0Z2V2ZW50KTsKIAog CkBAIC00MTE2LDYgKzQxMjUsNyBAQCBhZnRlclRyaWdnZXJBZGRFdmVudChBZnRlclRyaWdnZXJF dmVudExpc3QgKmV2ZW50cywKIAkJCW5ld3NoYXJlZC0+YXRzX3JlbGlkID09IGV2dHNoYXJlZC0+ YXRzX3JlbGlkICYmCiAJCQluZXdzaGFyZWQtPmF0c19ldmVudCA9PSBldnRzaGFyZWQtPmF0c19l dmVudCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfdGFibGUgPT0gZXZ0c2hhcmVkLT5hdHNfdGFibGUg JiYKKwkJCW5ld3NoYXJlZC0+Zm9yX3BvcnRpb25fb2YgPT0gZXZ0c2hhcmVkLT5mb3JfcG9ydGlv bl9vZiAmJgogCQkJbmV3c2hhcmVkLT5hdHNfZmlyaW5nX2lkID09IDApCiAJCQlicmVhazsKIAl9 CkBAIC00NDgwLDYgKzQ0OTAsNyBAQCBBZnRlclRyaWdnZXJFeGVjdXRlKEVTdGF0ZSAqZXN0YXRl LAogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsOwogCWlmIChUUklHR0VSX0ZPUl9V UERBVEUoTG9jVHJpZ2dlckRhdGEudGdfdHJpZ2dlci0+dGd0eXBlKSkKIAkJTG9jVHJpZ2dlckRh dGEudGdfdXBkYXRlZGNvbHMgPSBldnRzaGFyZWQtPmF0c19tb2RpZmllZGNvbHM7CisJTG9jVHJp Z2dlckRhdGEudGdfdGVtcG9yYWwgPSBldnRzaGFyZWQtPmZvcl9wb3J0aW9uX29mOwogCiAJTWVt b3J5Q29udGV4dFJlc2V0KHBlcl90dXBsZV9jb250ZXh0KTsKIApAQCAtNjAxNiw2ICs2MDI3LDQz IEBAIEFmdGVyVHJpZ2dlclBlbmRpbmdPblJlbChPaWQgcmVsaWQpCiAJcmV0dXJuIGZhbHNlOwog fQogCisvKiAtLS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZSgpCisgKgorICogQ29weXMg YSBGb3JQb3J0aW9uT2ZTdGF0ZSBpbnRvIHRoZSBjdXJyZW50IG1lbW9yeSBjb250ZXh0LgorICov CitzdGF0aWMgRm9yUG9ydGlvbk9mU3RhdGUgKgorQ29weUZvclBvcnRpb25PZlN0YXRlKEZvclBv cnRpb25PZlN0YXRlICpzcmMpCit7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmRzdCA9IE5VTEw7CisJ aWYgKHNyYykgeworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKwkJUmFuZ2VUeXBlICpyOworCQlU eXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGU7CisKKwkJLyoKKwkJICogTmVlZCB0byBsaWZ0IHRoZSBG T1IgUE9SVElPTiBPRiBkZXRhaWxzIGludG8gYSBoaWdoZXIgbWVtb3J5IGNvbnRleHQKKwkJICog YmVjYXVzZSBjYXNjYWRpbmcgZm9yZWlnbiBrZXkgdXBkYXRlL2RlbGV0ZXMgY2FuIGNhdXNlIHRy aWdnZXJzIHRvIGZpcmUKKwkJICogdHJpZ2dlcnMsIGFuZCB0aGUgQWZ0ZXJUcmlnZ2VyRXZlbnRz IHdpbGwgb3V0bGl2ZSB0aGUgRlBPCisJCSAqIGRldGFpbHMgb2YgdGhlIG9yaWdpbmFsIHF1ZXJ5 LgorCQkgKi8KKwkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRvcFRyYW5zYWN0aW9u Q29udGV4dCk7CisJCWRzdCA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZHN0LT5m cF9yYW5nZU5hbWUgPSBwc3RyZHVwKHNyYy0+ZnBfcmFuZ2VOYW1lKTsKKwkJZHN0LT5mcF9yYW5n ZVR5cGUgPSBzcmMtPmZwX3JhbmdlVHlwZTsKKwkJZHN0LT5mcF9oYXNQZXJpb2QgPSBzcmMtPmZw X2hhc1BlcmlvZDsKKwkJZHN0LT5mcF9yYW5nZUF0dG5vID0gc3JjLT5mcF9yYW5nZUF0dG5vOwor CQlkc3QtPmZwX3BlcmlvZFN0YXJ0QXR0bm8gPSBzcmMtPmZwX3BlcmlvZFN0YXJ0QXR0bm87CisJ CWRzdC0+ZnBfcGVyaW9kRW5kQXR0bm8gPSBzcmMtPmZwX3BlcmlvZEVuZEF0dG5vOworCisJCXIg PSBEYXR1bUdldFJhbmdlVHlwZVAoc3JjLT5mcF90YXJnZXRSYW5nZSk7CisJCXR5cGNhY2hlID0g bG9va3VwX3R5cGVfY2FjaGUoUmFuZ2VUeXBlR2V0T2lkKHIpLCBUWVBFQ0FDSEVfUkFOR0VfSU5G Tyk7CisJCWRzdC0+ZnBfdGFyZ2V0UmFuZ2UgPSBkYXR1bUNvcHkoc3JjLT5mcF90YXJnZXRSYW5n ZSwgdHlwY2FjaGUtPnR5cGJ5dmFsLCB0eXBjYWNoZS0+dHlwbGVuKTsKKwkJTWVtb3J5Q29udGV4 dFN3aXRjaFRvKG9sZGN0eCk7CisJfQorCXJldHVybiBkc3Q7Cit9CisKIC8qIC0tLS0tLS0tLS0K ICAqIEFmdGVyVHJpZ2dlclNhdmVFdmVudCgpCiAgKgpAQCAtNjQzMSw2ICs2NDc5LDcgQEAgQWZ0 ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZv LAogCQllbHNlCiAJCQluZXdfc2hhcmVkLmF0c190YWJsZSA9IE5VTEw7CiAJCW5ld19zaGFyZWQu YXRzX21vZGlmaWVkY29scyA9IGFmdGVyVHJpZ2dlckNvcHlCaXRtYXAobW9kaWZpZWRDb2xzKTsK KwkJbmV3X3NoYXJlZC5mb3JfcG9ydGlvbl9vZiA9IENvcHlGb3JQb3J0aW9uT2ZTdGF0ZShyZWxp bmZvLT5yaV9mb3JQb3J0aW9uT2YpOwogCiAJCWFmdGVyVHJpZ2dlckFkZEV2ZW50KCZhZnRlclRy aWdnZXJzLnF1ZXJ5X3N0YWNrW2FmdGVyVHJpZ2dlcnMucXVlcnlfZGVwdGhdLmV2ZW50cywKIAkJ CQkJCQkgJm5ld19ldmVudCwgJm5ld19zaGFyZWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5k ZXggN2ViMWY3ZDAyMDkuLjhkYzc5OGViZGY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAg LTEyNDgsNiArMTI0OCw3IEBAIEluaXRSZXN1bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3Vs dFJlbEluZm8sCiAJcmVzdWx0UmVsSW5mby0+cmlfcHJvamVjdFJldHVybmluZyA9IE5VTEw7CiAJ cmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0gTklMOwogCXJlc3Vs dFJlbEluZm8tPnJpX29uQ29uZmxpY3QgPSBOVUxMOworCXJlc3VsdFJlbEluZm8tPnJpX2ZvclBv cnRpb25PZiA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfUmV0dXJuaW5nU2xvdCA9IE5VTEw7 CiAJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ09sZFNsb3QgPSBOVUxMOwogCXJlc3VsdFJlbEluZm8t PnJpX1RyaWdOZXdTbG90ID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMKaW5kZXggOTM1MWZiY2Y0OTQuLjk1MzM1MTBhZmZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlTW9kaWZ5VGFibGUuYwpAQCAtNTUsOCArNTUsMTAgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIv b3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAi dXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2luY2x1ZGUgInV0 aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKIApAQCAtMTM3LDYgKzEzOSwxMCBAQCBzdGF0aWMgYm9vbCBFeGVjT25Db25m bGljdFVwZGF0ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSBUdXBsZVRh YmxlU2xvdCAqZXhjbHVkZWRTbG90LAogCQkJCQkJCQkgYm9vbCBjYW5TZXRUYWcsCiAJCQkJCQkJ CSBUdXBsZVRhYmxlU2xvdCAqKnJldHVybmluZyk7CitzdGF0aWMgdm9pZCBFeGVjRm9yUG9ydGlv bk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKKwkJCQkJCQkJCSAgRVN0 YXRlICplc3RhdGUsCisJCQkJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCisJ CQkJCQkJCQkgIEl0ZW1Qb2ludGVyIHR1cGxlaWQpOwogc3RhdGljIFR1cGxlVGFibGVTbG90ICpF eGVjUHJlcGFyZVR1cGxlUm91dGluZyhNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJ CQkJCQkgICBFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCQkJICAgUGFydGl0aW9uVHVwbGVSb3V0 aW5nICpwcm91dGUsCkBAIC0xNTgsNiArMTY0LDcgQEAgc3RhdGljIGJvb2wgRXhlY01lcmdlTWF0 Y2hlZChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiBzdGF0aWMgdm9pZCBFeGVjTWVyZ2VO b3RNYXRjaGVkKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJUmVzdWx0UmVs SW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkJYm9vbCBjYW5TZXRUYWcpOworc3RhdGljIHZv aWQgRXhlY1NldHVwVHJhbnNpdGlvbkNhcHR1cmVTdGF0ZShNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSk7CiAKIAogLyoKQEAgLTEyMDMsNiArMTIxMCwxNjkgQEAgRXhl Y0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoJCUV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMKKyAqCisgKgkJSW5z ZXJ0IHR1cGxlcyBmb3IgdGhlIHVudG91Y2hlZCBwb3J0aW9uIG9mIGEgcm93IGluIGEgRk9SCisg KgkJUE9SVElPTiBPRiBVUERBVEUvREVMRVRFCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lk CitFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwK KwkJCQkJCSAgRVN0YXRlICplc3RhdGUsCisJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8sCisJCQkJCQkgIEl0ZW1Qb2ludGVyIHR1cGxlaWQpCit7CisJTW9kaWZ5VGFibGVTdGF0 ZSAqbXRzdGF0ZSA9IGNvbnRleHQtPm10c3RhdGU7CisJTW9kaWZ5VGFibGUgKm5vZGUgPSAoTW9k aWZ5VGFibGUgKikgbXRzdGF0ZS0+cHMucGxhbjsKKwlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0 aW9uT2YgPSAoRm9yUG9ydGlvbk9mRXhwciAqKSBub2RlLT5mb3JQb3J0aW9uT2Y7CisJQXR0ck51 bWJlcglyYW5nZUF0dG5vOworCURhdHVtCW9sZFJhbmdlOworCWJvb2wgaXNOdWxsID0gZmFsc2U7 CisJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCUZvclBvcnRpb25PZlN0YXRlICpmcG9TdGF0 ZSA9IHJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZjsKKwlUdXBsZVRhYmxlU2xvdCAqb2xk dHVwbGVTbG90ID0gZnBvU3RhdGUtPmZwX0V4aXN0aW5nOworCVR1cGxlVGFibGVTbG90ICpsZWZ0 b3ZlclNsb3QgPSBmcG9TdGF0ZS0+ZnBfTGVmdG92ZXI7CisJVHVwbGVDb252ZXJzaW9uTWFwICpt YXAgPSBOVUxMOworCUhlYXBUdXBsZSBvbGR0dXBsZSA9IE5VTEw7CisJQ21kVHlwZQlvbGRPcGVy YXRpb247CisJVHJhbnNpdGlvbkNhcHR1cmVTdGF0ZSAqb2xkVGNzOworCUZtZ3JJbmZvIGZsaW5m bzsKKwlSZXR1cm5TZXRJbmZvIHJzaTsKKwlib29sIGRpZEluaXQgPSBmYWxzZTsKKwlib29sIHNo b3VsZEZyZWUgPSBmYWxzZTsKKwlMT0NBTF9GQ0lORk8oZmNpbmZvLCAyKTsKKworCS8qCisJICog R2V0IHRoZSByYW5nZSBvZiB0aGUgb2xkIHByZS1VUERBVEUvREVMRVRFIHR1cGxlLAorCSAqIHNv IHdlIGNhbiBpbnRlcnNlY3QgaXQgd2l0aCB0aGUgRk9SIFBPUlRJT04gT0YgdGFyZ2V0CisJICog YW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55ICJsZWZ0b3ZlcnMiIHRvIGluc2VydC4KKwkgKgorCSAq IFdlIGhhdmUgYWxyZWFkeSBsb2NrZWQgdGhlIHR1cGxlIGluIEV4ZWNVcGRhdGUvRXhlY0RlbGV0 ZQorCSAqIGFuZCBpdCBoYXMgcGFzc2VkIEV2YWxQbGFuUXVhbC4KKwkgKiBNYWtlIHN1cmUgd2Un cmUgbG9va2luZyBhdCB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbi4KKwkgKiBPdGhlcndpc2UgY29u Y3VycmVudCB1cGRhdGVzIG9mIHRoZSBzYW1lIHR1cGxlIGluIFJFQUQgQ09NTUlUVEVECisJICog Y291bGQgaW5zZXJ0IGNvbmZsaWN0aW5nICJsZWZ0b3ZlcnMiLgorCSAqLworCWlmICghdGFibGVf dHVwbGVfZmV0Y2hfcm93X3ZlcnNpb24ocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLCB0 dXBsZWlkLCBTbmFwc2hvdEFueSwgb2xkdHVwbGVTbG90KSkKKwkJZWxvZyhFUlJPUiwgImZhaWxl ZCB0byBmZXRjaCB0dXBsZSBmb3IgRk9SIFBPUlRJT04gT0YiKTsKKworCS8qCisJICogR2V0IHRo ZSBvbGQgcmFuZ2Ugb2YgdGhlIHJlY29yZCBiZWluZyB1cGRhdGVkLgorCSAqIE11c3QgcmVhZCB3 aXRoIHRoZSBhdHRubyBvZiB0aGUgbGVhZiBwYXJ0aXRpb24gYmVpbmcgdXBkYXRlZAorCSAqLwor CisJcmFuZ2VBdHRubyA9IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vOworCWlmIChy ZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKKwkJbWFwID0gRXhlY0dldENoaWxk VG9Sb290TWFwKHJlc3VsdFJlbEluZm8pOworCWlmIChtYXAgIT0gTlVMTCkKKwkJcmFuZ2VBdHRu byA9IG1hcC0+YXR0ck1hcC0+YXR0bnVtc1tyYW5nZUF0dG5vIC0gMV07CisJb2xkUmFuZ2UgPSBz bG90X2dldGF0dHIob2xkdHVwbGVTbG90LCByYW5nZUF0dG5vLCAmaXNOdWxsKTsKKworCWlmIChp c051bGwpCisJCWVsb2coRVJST1IsICJmb3VuZCBhIE5VTEwgcmFuZ2UgaW4gYSB0ZW1wb3JhbCB0 YWJsZSIpOworCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdlJ3MgdHlwZSBjYWNoZSBlbnRyeS4gVGhp cyBpcyB3b3J0aCBjYWNoaW5nIGZvciB0aGUgd2hvbGUgVVBEQVRFCisJICogYXMgcmFuZ2UgZnVu Y3Rpb25zIGRvLgorCSAqLworCisJdHlwY2FjaGUgPSBmcG9TdGF0ZS0+ZnBfbGVmdG92ZXJzdHlw Y2FjaGU7CisJaWYgKHR5cGNhY2hlID09IE5VTEwpCisJeworCQl0eXBjYWNoZSA9IGxvb2t1cF90 eXBlX2NhY2hlKGZvclBvcnRpb25PZi0+cmFuZ2VUeXBlLCAwKTsKKwkJZnBvU3RhdGUtPmZwX2xl ZnRvdmVyc3R5cGNhY2hlID0gdHlwY2FjaGU7CisJfQorCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdl cyB0byB0aGUgbGVmdC9yaWdodCBvZiB0aGUgdGFyZ2V0ZWQgcmFuZ2UuCisJICogV2UgY2FsbCBh IFNFVE9GIHN1cHBvcnQgZnVuY3Rpb24gYW5kIGluc2VydCBhcyBtYW55IGxlZnRvdmVycworCSAq IGFzIGl0IGdpdmVzIHVzLiBBbHRob3VnaCByYW5nZXR5cGVzIGhhdmUgMC8xLzIgbGVmdG92ZXJz LAorCSAqIG11bHRpcmFuZ2VzIGhhdmUgMC8xLCBhbmQgb3RoZXIgdHlwZXMgbWF5IGhhdmUgbW9y ZS4KKwkgKi8KKworCWZtZ3JfaW5mbyhmb3JQb3J0aW9uT2YtPndpdGhvdXRQb3J0aW9uUHJvYywg JmZsaW5mbyk7CisJcnNpLnR5cGUgPSBUX1JldHVyblNldEluZm87CisJcnNpLmVjb250ZXh0ID0g bXRzdGF0ZS0+cHMucHNfRXhwckNvbnRleHQ7CisJcnNpLmV4cGVjdGVkRGVzYyA9IE5VTEw7CisJ cnNpLmFsbG93ZWRNb2RlcyA9IChpbnQpIChTRlJNX1ZhbHVlUGVyQ2FsbCk7CisJcnNpLnJldHVy bk1vZGUgPSBTRlJNX1ZhbHVlUGVyQ2FsbDsKKwlyc2kuc2V0UmVzdWx0ID0gTlVMTDsKKwlyc2ku c2V0RGVzYyA9IE5VTEw7CisKKwlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgJmZs aW5mbywgMiwgSW52YWxpZE9pZCwgTlVMTCwgKE5vZGUgKikgJnJzaSk7CisJZmNpbmZvLT5hcmdz WzBdLnZhbHVlID0gb2xkUmFuZ2U7CisJZmNpbmZvLT5hcmdzWzBdLmlzbnVsbCA9IGZhbHNlOwor CWZjaW5mby0+YXJnc1sxXS52YWx1ZSA9IGZwb1N0YXRlLT5mcF90YXJnZXRSYW5nZTsKKwlmY2lu Zm8tPmFyZ3NbMV0uaXNudWxsID0gZmFsc2U7CisKKwl3aGlsZSAodHJ1ZSkKKwl7CisJCURhdHVt IGxlZnRvdmVyID0gRnVuY3Rpb25DYWxsSW52b2tlKGZjaW5mbyk7CisKKwkJLyogQXJlIHdlIGRv bmU/ICovCisJCWlmIChyc2kuaXNEb25lID09IEV4cHJFbmRSZXN1bHQpCisJCQlicmVhazsKKwor CQlpZiAoZmNpbmZvLT5pc251bGwpCisJCQllbG9nKEVSUk9SLCAiR290IGEgbnVsbCBmcm9tIHdp dGhvdXRfcG9ydGlvbiBmdW5jdGlvbiIpOworCisJCWlmICghZGlkSW5pdCkKKwkJeworCQkJLyoK KwkJCSAqIE1ha2UgYSBjb3B5IG9mIHRoZSBwcmUtVVBEQVRFIHJvdy4KKwkJCSAqIFRoZW4gd2Un bGwgb3ZlcndyaXRlIHRoZSByYW5nZSBjb2x1bW4gYmVsb3cuCisJCQkgKiBDb252ZXJ0IG9sZHR1 cGxlIHRvIHRoZSBiYXNlIHRhYmxlJ3MgZm9ybWF0IGlmIG5lY2Vzc2FyeS4KKwkJCSAqIFdlIG5l ZWQgdG8gaW5zZXJ0IGxlZnRvdmVycyB0aHJvdWdoIHRoZSByb290IHBhcnRpdGlvbgorCQkJICog c28gdGhleSBnZXQgcm91dGVkIGNvcnJlY3RseS4KKwkJCSAqLworCQkJaWYgKG1hcCAhPSBOVUxM KQorCQkJCWxlZnRvdmVyU2xvdCA9IGV4ZWN1dGVfYXR0cl9tYXBfc2xvdChtYXAtPmF0dHJNYXAs CisJCQkJCQkJCQkJCQkJIG9sZHR1cGxlU2xvdCwKKwkJCQkJCQkJCQkJCQkgbGVmdG92ZXJTbG90 KTsKKwkJCWVsc2UKKwkJCXsKKwkJCQlvbGR0dXBsZSA9IEV4ZWNGZXRjaFNsb3RIZWFwVHVwbGUo b2xkdHVwbGVTbG90LCBmYWxzZSwgJnNob3VsZEZyZWUpOworCQkJCUV4ZWNGb3JjZVN0b3JlSGVh cFR1cGxlKG9sZHR1cGxlLCBsZWZ0b3ZlclNsb3QsIGZhbHNlKTsKKwkJCX0KKworCQkJLyogU2F2 ZSBzb21lIG10c3RhdGUgdGhpbmdzIHNvIHdlIGNhbiByZXN0b3JlIHRoZW0gYmVsb3cuICovCisJ CQkvLyBUT0RPOiBEbyB3ZSBuZWVkIGEgbW9yZSBzeXN0ZW1hdGljIHdheSBvZiBkb2luZyB0aGlz LAorCQkJLy8gZS5nLiBhIG5ldyBtdHN0YXRlIG9yIGV2ZW4gYSBzZXBhcmF0ZSBGb3JQb3J0aW9u T2ZMZWZ0b3ZlcnMgbm9kZT8KKwkJCW9sZE9wZXJhdGlvbiA9IG10c3RhdGUtPm9wZXJhdGlvbjsK KwkJCW10c3RhdGUtPm9wZXJhdGlvbiA9IENNRF9JTlNFUlQ7CisJCQlvbGRUY3MgPSBtdHN0YXRl LT5tdF90cmFuc2l0aW9uX2NhcHR1cmU7CisKKwkJCWRpZEluaXQgPSB0cnVlOworCQl9CisKKwkJ Lyogc3RvcmUgdGhlIG5ldyByYW5nZSAqLworCQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9y UG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVyOworCQlsZWZ0b3Zl clNsb3QtPnR0c19pc251bGxbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9 IGZhbHNlOworCQlFeGVjTWF0ZXJpYWxpemVTbG90KGxlZnRvdmVyU2xvdCk7CisKKwkJLyoKKwkJ ICogSWYgdGhlcmUgYXJlIHBhcnRpdGlvbnMsIHdlIG11c3QgaW5zZXJ0IGludG8gdGhlIHJvb3Qg dGFibGUsCisJCSAqIHNvIHdlIGdldCB0dXBsZSByb3V0aW5nLiBXZSBhbHJlYWR5IHNldCB1cCBs ZWZ0b3ZlclNsb3QKKwkJICogd2l0aCB0aGUgcm9vdCB0dXBsZSBkZXNjcmlwdG9yLgorCQkgKi8K KwkJaWYgKHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQkJcmVzdWx0UmVs SW5mbyA9IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCisJCUV4ZWNTZXR1 cFRyYW5zaXRpb25DYXB0dXJlU3RhdGUobXRzdGF0ZSwgZXN0YXRlKTsKKwkJRXhlY0luc2VydChj b250ZXh0LCByZXN1bHRSZWxJbmZvLCBsZWZ0b3ZlclNsb3QsIG5vZGUtPmNhblNldFRhZywgTlVM TCwgTlVMTCk7CisJfQorCisJaWYgKGRpZEluaXQpCisJeworCQltdHN0YXRlLT5vcGVyYXRpb24g PSBvbGRPcGVyYXRpb247CisJCW10c3RhdGUtPm10X3RyYW5zaXRpb25fY2FwdHVyZSA9IG9sZFRj czsKKworCQlpZiAoc2hvdWxkRnJlZSkKKwkJCWhlYXBfZnJlZXR1cGxlKG9sZHR1cGxlKTsKKwl9 Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAqCQlFeGVjQmF0Y2hJbnNlcnQKICAqCkBAIC0xMzU1LDcgKzE1 MjUsOCBAQCBFeGVjRGVsZXRlQWN0KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0 UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKICAqCiAgKiBDbG9zaW5nIHN0ZXBzIG9mIHR1cGxlIGRl bGV0aW9uOyB0aGlzIGludm9rZXMgQUZURVIgRk9SIEVBQ0ggUk9XIHRyaWdnZXJzLAogICogaW5j bHVkaW5nIHRoZSBVUERBVEUgdHJpZ2dlcnMgaWYgdGhlIGRlbGV0aW9uIGlzIGJlaW5nIGRvbmUg YXMgcGFydCBvZiBhCi0gKiBjcm9zcy1wYXJ0aXRpb24gdHVwbGUgbW92ZS4KKyAqIGNyb3NzLXBh cnRpdGlvbiB0dXBsZSBtb3ZlLiBJdCBhbHNvIGluc2VydHMgbGVmdG92ZXJzIGZyb20gYSBGT1Ig UE9SVElPTiBPRgorICogZGVsZXRlLgogICovCiBzdGF0aWMgdm9pZAogRXhlY0RlbGV0ZUVwaWxv Z3VlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKQEAgLTEzODgsNiArMTU1OSwxMSBAQCBFeGVjRGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFi bGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQlhcl9k ZWxldGVfdHJpZ190Y3MgPSBOVUxMOwogCX0KIAorCS8qIENvbXB1dGUgbGVmdG92ZXJzIGluIEZP UiBQT1JUSU9OIE9GICovCisJLy8gVE9ETzogU2tpcCB0aGlzIGZvciBGRFcgZGVsZXRlcz8KKwlp ZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+Zm9yUG9ydGlv bk9mKQorCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGVzdGF0ZSwgcmVzdWx0 UmVsSW5mbywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBST1cgREVMRVRFIFRyaWdnZXJzICovCiAJ RXhlY0FSRGVsZXRlVHJpZ2dlcnMoZXN0YXRlLCByZXN1bHRSZWxJbmZvLCB0dXBsZWlkLCBvbGR0 dXBsZSwKIAkJCQkJCSBhcl9kZWxldGVfdHJpZ190Y3MsIGNoYW5naW5nUGFydCk7CkBAIC0xNzY4 LDcgKzE5NDQsMTEgQEAgRXhlY0Nyb3NzUGFydGl0aW9uVXBkYXRlKE1vZGlmeVRhYmxlQ29udGV4 dCAqY29udGV4dCwKIAlpZiAocmVzdWx0UmVsSW5mbyA9PSBtdHN0YXRlLT5yb290UmVzdWx0UmVs SW5mbykKIAkJRXhlY1BhcnRpdGlvbkNoZWNrRW1pdEVycm9yKHJlc3VsdFJlbEluZm8sIHNsb3Qs IGVzdGF0ZSk7CiAKLQkvKiBJbml0aWFsaXplIHR1cGxlIHJvdXRpbmcgaW5mbyBpZiBub3QgYWxy ZWFkeSBkb25lLiAqLworCS8qCisJICogSW5pdGlhbGl6ZSB0dXBsZSByb3V0aW5nIGluZm8gaWYg bm90IGFscmVhZHkgZG9uZS4KKwkgKiBOb3RlIHdoYXRldmVyIHdlIGRvIGhlcmUgbXVzdCBiZSBk b25lIGluIEV4ZWNJbml0TW9kaWZ5VGFibGUKKwkgKiBmb3IgRk9SIFBPUlRJT04gT0YgYXMgd2Vs bC4KKwkgKi8KIAlpZiAobXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPT0gTlVM TCkKIAl7CiAJCVJlbGF0aW9uCXJvb3RSZWwgPSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mby0+ cmlfUmVsYXRpb25EZXNjOwpAQCAtMjEzNCw2ICsyMzE0LDExIEBAIEV4ZWNVcGRhdGVFcGlsb2d1 ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFVwZGF0ZUNvbnRleHQgKnVwZGF0ZUN4dCwK IAkJCQkJCQkJCQkJICAgTlVMTCwgTklMLAogCQkJCQkJCQkJCQkgICAodXBkYXRlQ3h0LT51cGRh dGVJbmRleGVzID09IFRVX1N1bW1hcml6aW5nKSk7CiAKKwkvKiBDb21wdXRlIGxlZnRvdmVycyBp biBGT1IgUE9SVElPTiBPRiAqLworCS8vIFRPRE86IFNraXAgdGhpcyBmb3IgRkRXIHVwZGF0ZXM/ CisJaWYgKCgoTW9kaWZ5VGFibGUgKikgY29udGV4dC0+bXRzdGF0ZS0+cHMucGxhbiktPmZvclBv cnRpb25PZikKKwkJRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhjb250ZXh0LCBjb250ZXh0LT5l c3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1cGxlaWQpOworCiAJLyogQUZURVIgUk9XIFVQREFURSBU cmlnZ2VycyAqLwogCUV4ZWNBUlVwZGF0ZVRyaWdnZXJzKGNvbnRleHQtPmVzdGF0ZSwgcmVzdWx0 UmVsSW5mbywKIAkJCQkJCSBOVUxMLCBOVUxMLApAQCAtNDM5Miw2ICs0NTc3LDExNyBAQCBFeGVj SW5pdE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVm bGFncykKIAkJfQogCX0KIAorCS8qCisJICogSWYgbmVlZGVkLCBpbml0aWFsaXplIHRoZSB0YXJn ZXQgcmFuZ2UgZm9yIEZPUiBQT1JUSU9OIE9GLgorCSAqLworCWlmIChub2RlLT5mb3JQb3J0aW9u T2YpCisJeworCQlUdXBsZURlc2MgdHVwRGVzYzsKKwkJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9y dGlvbk9mOworCQlEYXR1bQl0YXJnZXRSYW5nZTsKKwkJYm9vbAlpc051bGw7CisJCUV4cHJDb250 ZXh0ICplY29udGV4dDsKKwkJRXhwclN0YXRlICpleHByU3RhdGU7CisJCUZvclBvcnRpb25PZlN0 YXRlICpmcG9TdGF0ZTsKKworCQlyZXN1bHRSZWxJbmZvID0gbXRzdGF0ZS0+cmVzdWx0UmVsSW5m bzsKKwkJaWYgKHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQkJcmVzdWx0 UmVsSW5mbyA9IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCisJCXR1cERl c2MgPSByZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MtPnJkX2F0dDsKKwkJZm9yUG9ydGlv bk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZS0+Zm9yUG9ydGlvbk9mOworCisJCS8qIEV2 YWwgdGhlIEZPUiBQT1JUSU9OIE9GIHRhcmdldCAqLworCQlpZiAobXRzdGF0ZS0+cHMucHNfRXhw ckNvbnRleHQgPT0gTlVMTCkKKwkJCUV4ZWNBc3NpZ25FeHByQ29udGV4dChlc3RhdGUsICZtdHN0 YXRlLT5wcyk7CisJCWVjb250ZXh0ID0gbXRzdGF0ZS0+cHMucHNfRXhwckNvbnRleHQ7CisKKwkJ ZXhwclN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGZvclBvcnRpb25PZi0+dGFyZ2V0 UmFuZ2UsIGVzdGF0ZSk7CisJCXRhcmdldFJhbmdlID0gRXhlY0V2YWxFeHByKGV4cHJTdGF0ZSwg ZWNvbnRleHQsICZpc051bGwpOworCQlpZiAoaXNOdWxsKQorCQkJZWxvZyhFUlJPUiwgIkdvdCBh IE5VTEwgRk9SIFBPUlRJT04gT0YgdGFyZ2V0IHJhbmdlIik7CisKKwkJLyogQ3JlYXRlIHN0YXRl IGZvciBGT1IgUE9SVElPTiBPRiBvcGVyYXRpb24gKi8KKworCQlmcG9TdGF0ZSA9IG1ha2VOb2Rl KEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZnBvU3RhdGUtPmZwX3JhbmdlTmFtZSA9IGZvclBvcnRp b25PZi0+cmFuZ2VfbmFtZTsKKwkJZnBvU3RhdGUtPmZwX3JhbmdlVHlwZSA9IGZvclBvcnRpb25P Zi0+cmFuZ2VUeXBlOworCQlmcG9TdGF0ZS0+ZnBfcmFuZ2VBdHRubyA9IGZvclBvcnRpb25PZi0+ cmFuZ2VWYXItPnZhcmF0dG5vOworCQlmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2UgPSB0YXJnZXRS YW5nZTsKKworCQkvKiBJbml0aWFsaXplIHNsb3QgZm9yIHRoZSBleGlzdGluZyB0dXBsZSAqLwor CisJCWZwb1N0YXRlLT5mcF9FeGlzdGluZyA9CisJCQl0YWJsZV9zbG90X2NyZWF0ZShyZXN1bHRS ZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsCisJCQkJCQkJICAmbXRzdGF0ZS0+cHMuc3RhdGUtPmVz X3R1cGxlVGFibGUpOworCisJCS8qIENyZWF0ZSB0aGUgdHVwbGUgc2xvdCBmb3IgSU5TRVJUaW5n IHRoZSBsZWZ0b3ZlcnMgKi8KKworCQlmcG9TdGF0ZS0+ZnBfTGVmdG92ZXIgPQorCQkJRXhlY0lu aXRFeHRyYVR1cGxlU2xvdChtdHN0YXRlLT5wcy5zdGF0ZSwgdHVwRGVzYywgJlRUU09wc1ZpcnR1 YWwpOworCisJCS8qCisJCSAqIFdlIG11c3QgYXR0YWNoIHRoZSBGb3JQb3J0aW9uT2ZTdGF0ZSB0 byBhbGwgcmVzdWx0IHJlbHMsCisJCSAqIGluIGNhc2Ugb2YgYSBjcm9zcy1wYXJ0aXRpb24gdXBk YXRlIG9yIHRyaWdnZXJzIGZpcmluZworCQkgKiBvbiBwYXJ0aXRpb25zLgorCQkgKi8KKwkJZm9y IChpID0gMDsgaSA8IG5yZWxzOyBpKyspCisJCXsKKwkJCUZvclBvcnRpb25PZlN0YXRlCSpsZWFm U3RhdGU7CisJCQlyZXN1bHRSZWxJbmZvID0gJm10c3RhdGUtPnJlc3VsdFJlbEluZm9baV07CisK KwkJCWxlYWZTdGF0ZSA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0YXRlKTsKKwkJCWxlYWZTdGF0 ZS0+ZnBfcmFuZ2VOYW1lID0gZnBvU3RhdGUtPmZwX3JhbmdlTmFtZTsKKwkJCWxlYWZTdGF0ZS0+ ZnBfcmFuZ2VUeXBlID0gZnBvU3RhdGUtPmZwX3JhbmdlVHlwZTsKKwkJCWxlYWZTdGF0ZS0+ZnBf cmFuZ2VBdHRubyA9IGZwb1N0YXRlLT5mcF9yYW5nZUF0dG5vOworCQkJbGVhZlN0YXRlLT5mcF90 YXJnZXRSYW5nZSA9IGZwb1N0YXRlLT5mcF90YXJnZXRSYW5nZTsKKwkJCWxlYWZTdGF0ZS0+ZnBf TGVmdG92ZXIgPSBmcG9TdGF0ZS0+ZnBfTGVmdG92ZXI7CisJCQkvKiBFYWNoIHBhcnRpdGlvbiBu ZWVkcyBhIHNsb3QgbWF0Y2hpbmcgaXRzIHR1cGxlIGRlc2NyaXB0b3IgKi8KKwkJCWxlYWZTdGF0 ZS0+ZnBfRXhpc3RpbmcgPQorCQkJCXRhYmxlX3Nsb3RfY3JlYXRlKHJlc3VsdFJlbEluZm8tPnJp X1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJICAmbXRzdGF0ZS0+cHMuc3RhdGUtPmVzX3R1cGxlVGFi bGUpOworCisJCQlyZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2YgPSBsZWFmU3RhdGU7CisJ CX0KKworCQkvKiBNYWtlIHN1cmUgdGhlIHJvb3QgcmVsYXRpb24gaGFzIHRoZSBGT1IgUE9SVElP TiBPRiBjbGF1c2UgdG9vLiAqLworCQlpZiAobm9kZS0+cm9vdFJlbGF0aW9uID4gMCkKKwkJCW10 c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2YgPSBmcG9TdGF0ZTsKKwor CQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSAm JgorCQkJCW10c3RhdGUtPm10X3BhcnRpdGlvbl90dXBsZV9yb3V0aW5nID09IE5VTEwpCisJCXsK KwkJCS8qCisJCQkgKiBXZSB3aWxsIG5lZWQgdHVwbGUgcm91dGluZyB0byBpbnNlcnQgbGVmdG92 ZXJzLgorCQkJICogU2luY2Ugd2UgYXJlIGluaXRpYWxpemluZyB0aGluZ3MgYmVmb3JlIEV4ZWND cm9zc1BhcnRpdGlvblVwZGF0ZSBydW5zLAorCQkJICogd2UgbXVzdCBkbyBldmVyeXRoaW5nIGl0 IG5lZWRzIGFzIHdlbGwuCisJCQkgKi8KKwkJCWlmIChtdHN0YXRlLT5tdF9wYXJ0aXRpb25fdHVw bGVfcm91dGluZyA9PSBOVUxMKQorCQkJeworCQkJCVJlbGF0aW9uCXJvb3RSZWwgPSBtdHN0YXRl LT5yb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOworCQkJCU1lbW9yeUNvbnRleHQg b2xkY3h0OworCisJCQkJLyogVGhpbmdzIGJ1aWx0IGhlcmUgaGF2ZSB0byBsYXN0IGZvciB0aGUg cXVlcnkgZHVyYXRpb24uICovCisJCQkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVz dGF0ZS0+ZXNfcXVlcnlfY3h0KTsKKworCQkJCW10c3RhdGUtPm10X3BhcnRpdGlvbl90dXBsZV9y b3V0aW5nID0KKwkJCQkJRXhlY1NldHVwUGFydGl0aW9uVHVwbGVSb3V0aW5nKGVzdGF0ZSwgcm9v dFJlbCk7CisKKwkJCQkvKgorCQkJCSAqIEJlZm9yZSBhIHBhcnRpdGlvbidzIHR1cGxlIGNhbiBi ZSByZS1yb3V0ZWQsIGl0IG11c3QgZmlyc3QgYmUKKwkJCQkgKiBjb252ZXJ0ZWQgdG8gdGhlIHJv b3QncyBmb3JtYXQsIHNvIHdlJ2xsIG5lZWQgYSBzbG90IGZvciBzdG9yaW5nCisJCQkJICogc3Vj aCB0dXBsZXMuCisJCQkJICovCisJCQkJQXNzZXJ0KG10c3RhdGUtPm10X3Jvb3RfdHVwbGVfc2xv dCA9PSBOVUxMKTsKKwkJCQltdHN0YXRlLT5tdF9yb290X3R1cGxlX3Nsb3QgPSB0YWJsZV9zbG90 X2NyZWF0ZShyb290UmVsLCBOVUxMKTsKKworCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj eHQpOworCQkJfQorCQl9CisKKwkJLyogRG9uJ3QgZnJlZSB0aGUgRXhwckNvbnRleHQgaGVyZSBi ZWNhdXNlIHRoZSByZXN1bHQgbXVzdCBsYXN0IGZvciB0aGUgd2hvbGUgcXVlcnkgKi8KKwl9CisK IAkvKgogCSAqIElmIHdlIGhhdmUgYW55IHNlY29uZGFyeSByZWxhdGlvbnMgaW4gYW4gVVBEQVRF IG9yIERFTEVURSwgdGhleSBuZWVkIHRvCiAJICogYmUgdHJlYXRlZCBsaWtlIG5vbi1sb2NrZWQg cmVsYXRpb25zIGluIFNFTEVDVCBGT1IgVVBEQVRFLCBpLmUuLCB0aGUKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMKaW5kZXggNmJhOGU3MzI1NjkuLmY3OGI1OWQ0ZjE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpA QCAtMjQ0Myw2ICsyNDQzLDE0IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfRm9yUG9y dGlvbk9mRXhwcjoKKwkJCXsKKwkJCQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YgPSAo Rm9yUG9ydGlvbk9mRXhwciAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoZm9yUG9ydGlvbk9mLT50 YXJnZXRSYW5nZSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2Ug VF9QYXJ0aXRpb25QcnVuZVN0ZXBPcDoKIAkJCXsKIAkJCQlQYXJ0aXRpb25QcnVuZVN0ZXBPcCAq b3BzdGVwID0gKFBhcnRpdGlvblBydW5lU3RlcE9wICopIG5vZGU7CkBAIC0yNTgzLDYgKzI1OTEs OCBAQCBxdWVyeV90cmVlX3dhbGtlcl9pbXBsKFF1ZXJ5ICpxdWVyeSwKIAkJcmV0dXJuIHRydWU7 CiAJaWYgKFdBTEsocXVlcnktPm1lcmdlQWN0aW9uTGlzdCkpCiAJCXJldHVybiB0cnVlOworCWlm IChXQUxLKHF1ZXJ5LT5mb3JQb3J0aW9uT2YpKQorCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FMSyhx dWVyeS0+cmV0dXJuaW5nTGlzdCkpCiAJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1ZXJ5LT5q b2ludHJlZSkpCkBAIC0zNDI5LDYgKzM0MzksMTkgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3Jf aW1wbChOb2RlICpub2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJ YnJlYWs7CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgorCQkJeworCQkJCUZvclBvcnRpb25P ZkV4cHIgKmZwbyA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGU7CisJCQkJRm9yUG9ydGlvbk9m RXhwciAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25vZGUsIGZwbywgRm9yUG9ydGlvbk9m RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnJhbmdlVmFyLCBmcG8tPnJhbmdlVmFyLCBWYXIg Kik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnRhcmdldFJhbmdlLCBmcG8tPnRhcmdldFJhbmdlLCBO b2RlICopOworCQkJCU1VVEFURShuZXdub2RlLT5yYW5nZVRhcmdldExpc3QsIGZwby0+cmFuZ2VU YXJnZXRMaXN0LCBMaXN0ICopOworCisJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJCQl9 CisJCQlicmVhazsKIAkJY2FzZSBUX1BhcnRpdGlvblBydW5lU3RlcE9wOgogCQkJewogCQkJCVBh cnRpdGlvblBydW5lU3RlcE9wICpvcHN0ZXAgPSAoUGFydGl0aW9uUHJ1bmVTdGVwT3AgKikgbm9k ZTsKQEAgLTM2MDcsNiArMzYzMCw3IEBAIHF1ZXJ5X3RyZWVfbXV0YXRvcl9pbXBsKFF1ZXJ5ICpx dWVyeSwKIAlNVVRBVEUocXVlcnktPndpdGhDaGVja09wdGlvbnMsIHF1ZXJ5LT53aXRoQ2hlY2tP cHRpb25zLCBMaXN0ICopOwogCU1VVEFURShxdWVyeS0+b25Db25mbGljdCwgcXVlcnktPm9uQ29u ZmxpY3QsIE9uQ29uZmxpY3RFeHByICopOwogCU1VVEFURShxdWVyeS0+bWVyZ2VBY3Rpb25MaXN0 LCBxdWVyeS0+bWVyZ2VBY3Rpb25MaXN0LCBMaXN0ICopOworCU1VVEFURShxdWVyeS0+Zm9yUG9y dGlvbk9mLCBxdWVyeS0+Zm9yUG9ydGlvbk9mLCBGb3JQb3J0aW9uT2ZFeHByICopOwogCU1VVEFU RShxdWVyeS0+cmV0dXJuaW5nTGlzdCwgcXVlcnktPnJldHVybmluZ0xpc3QsIExpc3QgKik7CiAJ TVVUQVRFKHF1ZXJ5LT5qb2ludHJlZSwgcXVlcnktPmpvaW50cmVlLCBGcm9tRXhwciAqKTsKIAlN VVRBVEUocXVlcnktPnNldE9wZXJhdGlvbnMsIHF1ZXJ5LT5zZXRPcGVyYXRpb25zLCBOb2RlICop OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IDYxMGY0YTU2ZDZi Li41OWRmNDQ3MDJkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3Jl YXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpA QCAtMzExLDcgKzMxMSw4IEBAIHN0YXRpYyBNb2RpZnlUYWJsZSAqbWFrZV9tb2RpZnl0YWJsZShQ bGFubmVySW5mbyAqcm9vdCwgUGxhbiAqc3VicGxhbiwKIAkJCQkJCQkJCSBMaXN0ICp1cGRhdGVD b2xub3NMaXN0cywKIAkJCQkJCQkJCSBMaXN0ICp3aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlzdCAq cmV0dXJuaW5nTGlzdHMsCiAJCQkJCQkJCQkgTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHBy ICpvbmNvbmZsaWN0LAotCQkJCQkJCQkJIExpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIGludCBlcHFQ YXJhbSk7CisJCQkJCQkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgRm9yUG9ydGlvbk9mRXhw ciAqZm9yUG9ydGlvbk9mLAorCQkJCQkJCQkJIGludCBlcHFQYXJhbSk7CiBzdGF0aWMgR2F0aGVy TWVyZ2UgKmNyZWF0ZV9nYXRoZXJfbWVyZ2VfcGxhbihQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJ CQkJCQkJIEdhdGhlck1lcmdlUGF0aCAqYmVzdF9wYXRoKTsKIApAQCAtMjgzNSw2ICsyODM2LDcg QEAgY3JlYXRlX21vZGlmeXRhYmxlX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIE1vZGlmeVRhYmxl UGF0aCAqYmVzdF9wYXRoKQogCQkJCQkJCWJlc3RfcGF0aC0+cm93TWFya3MsCiAJCQkJCQkJYmVz dF9wYXRoLT5vbmNvbmZsaWN0LAogCQkJCQkJCWJlc3RfcGF0aC0+bWVyZ2VBY3Rpb25MaXN0cywK KwkJCQkJCQliZXN0X3BhdGgtPmZvclBvcnRpb25PZiwKIAkJCQkJCQliZXN0X3BhdGgtPmVwcVBh cmFtKTsKIAogCWNvcHlfZ2VuZXJpY19wYXRoX2luZm8oJnBsYW4tPnBsYW4sICZiZXN0X3BhdGgt PnBhdGgpOwpAQCAtNzAxNCw3ICs3MDE2LDggQEAgbWFrZV9tb2RpZnl0YWJsZShQbGFubmVySW5m byAqcm9vdCwgUGxhbiAqc3VicGxhbiwKIAkJCQkgTGlzdCAqdXBkYXRlQ29sbm9zTGlzdHMsCiAJ CQkJIExpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywKIAkJ CQkgTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0LAotCQkJCSBMaXN0 ICptZXJnZUFjdGlvbkxpc3RzLCBpbnQgZXBxUGFyYW0pCisJCQkJIExpc3QgKm1lcmdlQWN0aW9u TGlzdHMsIEZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiwKKwkJCQkgaW50IGVwcVBhcmFt KQogewogCU1vZGlmeVRhYmxlICpub2RlID0gbWFrZU5vZGUoTW9kaWZ5VGFibGUpOwogCUxpc3QJ ICAgKmZkd19wcml2YXRlX2xpc3Q7CkBAIC03MDgwLDYgKzcwODMsNyBAQCBtYWtlX21vZGlmeXRh YmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJwbGFuLAogCQlub2RlLT5leGNsUmVsVGxp c3QgPSBvbmNvbmZsaWN0LT5leGNsUmVsVGxpc3Q7CiAJfQogCW5vZGUtPnVwZGF0ZUNvbG5vc0xp c3RzID0gdXBkYXRlQ29sbm9zTGlzdHM7CisJbm9kZS0+Zm9yUG9ydGlvbk9mID0gKE5vZGUgKikg Zm9yUG9ydGlvbk9mOwogCW5vZGUtPndpdGhDaGVja09wdGlvbkxpc3RzID0gd2l0aENoZWNrT3B0 aW9uTGlzdHM7CiAJbm9kZS0+cmV0dXJuaW5nTGlzdHMgPSByZXR1cm5pbmdMaXN0czsKIAlub2Rl LT5yb3dNYXJrcyA9IHJvd01hcmtzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IDU1NjQ4MjZjYjRhLi45ZmFiZjgwMGE5ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMTk1OSw2ICsxOTU5LDcgQEAgZ3JvdXBpbmdfcGxhbm5lcihQbGFubmVySW5m byAqcm9vdCwgZG91YmxlIHR1cGxlX2ZyYWN0aW9uKQogCQkJCQkJCQkJCXJvd01hcmtzLAogCQkJ CQkJCQkJCXBhcnNlLT5vbkNvbmZsaWN0LAogCQkJCQkJCQkJCW1lcmdlQWN0aW9uTGlzdHMsCisJ CQkJCQkJCQkJcGFyc2UtPmZvclBvcnRpb25PZiwKIAkJCQkJCQkJCQlhc3NpZ25fc3BlY2lhbF9l eGVjX3BhcmFtKHJvb3QpKTsKIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9wYXRobm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUu YwppbmRleCAyNDZjZDhmNzQ3Ni4uMDRkMmRjMWQwYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL3BhdGhub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvcGF0aG5vZGUuYwpAQCAtMzcxMyw3ICszNzEzLDggQEAgY3JlYXRlX21vZGlmeXRhYmxlX3Bh dGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkJCQkJCUxpc3QgKnVwZGF0 ZUNvbG5vc0xpc3RzLAogCQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJl dHVybmluZ0xpc3RzLAogCQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNv bmZsaWN0LAotCQkJCQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgaW50IGVwcVBhcmFtKQorCQkJ CQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9m LAorCQkJCQkJaW50IGVwcVBhcmFtKQogewogCU1vZGlmeVRhYmxlUGF0aCAqcGF0aG5vZGUgPSBt YWtlTm9kZShNb2RpZnlUYWJsZVBhdGgpOwogCkBAIC0zNzc5LDYgKzM3ODAsNyBAQCBjcmVhdGVf bW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCXBh dGhub2RlLT5yZXR1cm5pbmdMaXN0cyA9IHJldHVybmluZ0xpc3RzOwogCXBhdGhub2RlLT5yb3dN YXJrcyA9IHJvd01hcmtzOwogCXBhdGhub2RlLT5vbmNvbmZsaWN0ID0gb25jb25mbGljdDsKKwlw YXRobm9kZS0+Zm9yUG9ydGlvbk9mID0gZm9yUG9ydGlvbk9mOwogCXBhdGhub2RlLT5lcHFQYXJh bSA9IGVwcVBhcmFtOwogCXBhdGhub2RlLT5tZXJnZUFjdGlvbkxpc3RzID0gbWVyZ2VBY3Rpb25M aXN0czsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggN2YyM2QxOGIzNzAuLmVkNTVhMjUyMTk3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMKQEAgLTI0LDcgKzI0LDEwIEBACiAKICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRu dW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf YW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTQ3LDkgKzUwLDExIEBA CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3Bh cnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAi cGFyc2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRl ICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5j bHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAtNTgsMTAgKzYzLDE2IEBACiBwb3N0X3BhcnNl X2FuYWx5emVfaG9va190eXBlIHBvc3RfcGFyc2VfYW5hbHl6ZV9ob29rID0gTlVMTDsKIAogc3Rh dGljIFF1ZXJ5ICp0cmFuc2Zvcm1PcHRpb25hbFNlbGVjdEludG8oUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpwYXJzZVRyZWUpOworc3RhdGljIE5vZGUgKmFkZEZvclBvcnRpb25PZldoZXJlQ29u ZGl0aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwKKwkJ CQkJCQkJCQkJTm9kZSAqd2hlcmVDbGF1c2UpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1EZWxl dGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVl cnkgKnRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpz dG10KTsKIHN0YXRpYyBPbkNvbmZsaWN0RXhwciAqdHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkgT25Db25mbGljdENsYXVzZSAqb25Db25m bGljdENsYXVzZSk7CitzdGF0aWMgRm9yUG9ydGlvbk9mRXhwciAqdHJhbnNmb3JtRm9yUG9ydGlv bk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCQkJCQkgaW50IHJ0aW5kZXgs CisJCQkJCQkJCQkJCQkJIEZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mQ2xhdXNlLAor CQkJCQkJCQkJCQkJCSBib29sIGlzVXBkYXRlKTsKIHN0YXRpYyBpbnQJY291bnRfcm93ZXhwcl9j b2x1bW5zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgUXVlcnkgKnRy YW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KTsK IHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg U2VsZWN0U3RtdCAqc3RtdCk7CkBAIC00NzcsNiArNDg4LDIwIEBAIHN0bXRfcmVxdWlyZXNfcGFy c2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0 YXRpYyBOb2RlICoKK2FkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhRdWVyeSAqcXJ5LCBG b3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwgTm9kZSAqd2hlcmVDbGF1c2UpCit7CisJ aWYgKGZvclBvcnRpb25PZikKKwl7CisJCWlmICh3aGVyZUNsYXVzZSkKKwkJCXJldHVybiAoTm9k ZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIGxpc3RfbWFrZTIocXJ5LT5mb3JQb3J0aW9uT2Yt Pm92ZXJsYXBzRXhwciwgd2hlcmVDbGF1c2UpLCAtMSk7CisJCWVsc2UKKwkJCXJldHVybiBxcnkt PmZvclBvcnRpb25PZi0+b3ZlcmxhcHNFeHByOworCX0KKwllbHNlCisJCXJldHVybiB3aGVyZUNs YXVzZTsKK30KKwogLyoKICAqIGFuYWx5emVfcmVxdWlyZXNfc25hcHNob3QKICAqCQlSZXR1cm5z IHRydWUgaWYgYSBzbmFwc2hvdCBtdXN0IGJlIHNldCBiZWZvcmUgZG9pbmcgcGFyc2UgYW5hbHlz aXMKQEAgLTUxMCw2ICs1MzUsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIHsKIAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVl cnkpOwogCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCU5vZGUJICAgKndoZXJlQ2xhdXNl OwogCU5vZGUJICAgKnF1YWw7CiAKIAlxcnktPmNvbW1hbmRUeXBlID0gQ01EX0RFTEVURTsKQEAg LTU0OCw3ICs1NzQsMTEgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IERlbGV0ZVN0bXQgKnN0bXQpCiAJbnNpdGVtLT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwogCW5z aXRlbS0+cF9sYXRlcmFsX29rID0gdHJ1ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVz ZShwc3RhdGUsIHN0bXQtPndoZXJlQ2xhdXNlLAorCWlmIChzdG10LT5mb3JQb3J0aW9uT2YpCisJ CXFyeS0+Zm9yUG9ydGlvbk9mID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKHBzdGF0ZSwg cXJ5LT5yZXN1bHRSZWxhdGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBmYWxzZSk7CisKKwl3aGVy ZUNsYXVzZSA9IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnksIHN0bXQtPmZvclBv cnRpb25PZiwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVz ZShwc3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJTkRfV0hFUkUsICJXSEVSRSIp OwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3JtUmV0dXJuaW5nTGlzdChwc3RhdGUs IHN0bXQtPnJldHVybmluZ0xpc3QpOwpAQCAtMTE4Miw3ICsxMjEyLDcgQEAgdHJhbnNmb3JtT25D b25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCSAqIE5vdyB0cmFuc2Zvcm0gdGhl IFVQREFURSBzdWJleHByZXNzaW9ucy4KIAkJICovCiAJCW9uQ29uZmxpY3RTZXQgPQotCQkJdHJh bnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIG9uQ29uZmxpY3RDbGF1c2UtPnRhcmdldExp c3QpOworCQkJdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIG9uQ29uZmxpY3RDbGF1 c2UtPnRhcmdldExpc3QsIE5VTEwpOwogCiAJCW9uQ29uZmxpY3RXaGVyZSA9IHRyYW5zZm9ybVdo ZXJlQ2xhdXNlKHBzdGF0ZSwKIAkJCQkJCQkJCQkJICAgb25Db25mbGljdENsYXVzZS0+d2hlcmVD bGF1c2UsCkBAIC0xMjEyLDYgKzEyNDIsMTg3IEBAIHRyYW5zZm9ybU9uQ29uZmxpY3RDbGF1c2Uo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiB0cmFuc2Zv cm1Gb3JQb3J0aW9uT2ZDbGF1c2UKKyAqCisgKgkgIFRyYW5zZm9ybXMgYSBGb3JQb3J0aW9uT2ZD bGF1c2UgaW4gYW4gVVBEQVRFL0RFTEVURSBzdGF0ZW1lbnQuCisgKgorICoJICAtIExvb2sgdXAg dGhlIHJhbmdlL3BlcmlvZCByZXF1ZXN0ZWQuCisgKgkgIC0gQnVpbGQgYSBjb21wYXRpYmxlIHJh bmdlIHZhbHVlIGZyb20gdGhlIEZST00gYW5kIFRPIGV4cHJlc3Npb25zLgorICoJICAtIEJ1aWxk IGFuICJvdmVybGFwcyIgZXhwcmVzc2lvbiBmb3IgZmlsdGVyaW5nLgorICoJICAtIEZvciBVUERB VEVzLCBidWlsZCBhbiAiaW50ZXJzZWN0cyIgZXhwcmVzc2lvbiB0aGUgcmV3cml0ZXIgY2FuIGFk ZAorICoJCXRvIHRoZSB0YXJnZXRMaXN0IHRvIGNoYW5nZSB0aGUgdGVtcG9yYWwgYm91bmRzLgor ICovCitzdGF0aWMgRm9yUG9ydGlvbk9mRXhwciAqCit0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCWludCBydGluZGV4LAorCQkJCQkJCUZvclBv cnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mLAorCQkJCQkJCWJvb2wgaXNVcGRhdGUpCit7CisJ UmVsYXRpb24gdGFyZ2V0cmVsID0gcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbjsKKwlSVEVQZXJt aXNzaW9uSW5mbyAqdGFyZ2V0X3Blcm1pbmZvID0gcHN0YXRlLT5wX3RhcmdldF9uc2l0ZW0tPnBf cGVybWluZm87CisJY2hhciAqcmFuZ2VfbmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VfbmFtZTsK KwljaGFyICpyYW5nZV90eXBlX25hbWVzcGFjZSA9IE5VTEw7CisJY2hhciAqcmFuZ2VfdHlwZV9u YW1lID0gTlVMTDsKKwlpbnQgcmFuZ2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlGb3Jt X3BnX2F0dHJpYnV0ZSBhdHRyOworCU9pZAlvcGNsYXNzOworCU9pZCBvcGZhbWlseTsKKwlPaWQg b3BjaW50eXBlOworCU9pZCBmdW5jaWQgPSBJbnZhbGlkT2lkOworCVN0cmF0ZWd5TnVtYmVyIHN0 cmF0OworCU9pZAlvcGlkOworCUZvclBvcnRpb25PZkV4cHIgKnJlc3VsdDsKKwlWYXIgKnJhbmdl VmFyOworCU5vZGUgKnRhcmdldEV4cHI7CisKKwkvKiBXZSBkb24ndCBzdXBwb3J0IEZPUiBQT1JU SU9OIE9GIEZEVyBxdWVyaWVzLiAqLworCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coImZvcmVpZ24gdGFi bGVzIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YiKSkpOworCisJcmVzdWx0ID0gbWFrZU5v ZGUoRm9yUG9ydGlvbk9mRXhwcik7CisKKwkvKiBMb29rIHVwIHRoZSBGT1IgUE9SVElPTiBPRiBu YW1lIHJlcXVlc3RlZC4gKi8KKwlyYW5nZV9hdHRubyA9IGF0dG5hbWVBdHROdW0odGFyZ2V0cmVs LCByYW5nZV9uYW1lLCBmYWxzZSk7CisJaWYgKHJhbmdlX2F0dG5vID09IEludmFsaWRBdHRyTnVt YmVyKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCisJCQkJIGVycm1zZygiY29sdW1uIG9yIHBlcmlvZCBcIiVzXCIgb2YgcmVsYXRpb24g XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCXJhbmdlX25hbWUsCisJCQkJCQlSZWxhdGlv bkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZm9yUG9ydGlvbk9mLT5sb2NhdGlvbikpKTsKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0 YXJnZXRyZWwtPnJkX2F0dCwgcmFuZ2VfYXR0bm8gLSAxKTsKKworCXJhbmdlVmFyID0gbWFrZVZh cigKKwkJCXJ0aW5kZXgsCisJCQlyYW5nZV9hdHRubywKKwkJCWF0dHItPmF0dHR5cGlkLAorCQkJ YXR0ci0+YXR0dHlwbW9kLAorCQkJYXR0ci0+YXR0Y29sbGF0aW9uLAorCQkJMCk7CisJcmFuZ2VW YXItPmxvY2F0aW9uID0gZm9yUG9ydGlvbk9mLT5sb2NhdGlvbjsKKwlyZXN1bHQtPnJhbmdlVmFy ID0gcmFuZ2VWYXI7CisJcmVzdWx0LT5yYW5nZVR5cGUgPSBhdHRyLT5hdHR0eXBpZDsKKwlpZiAo IWdldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UoYXR0ci0+YXR0dHlwaWQsICZyYW5nZV90eXBlX25h bWUsICZyYW5nZV90eXBlX25hbWVzcGFjZSkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciB0eXBlICV1IiwgYXR0ci0+YXR0dHlwaWQpOworCisKKwlpZiAoZm9yUG9ydGlv bk9mLT50YXJnZXQpCisJCS8qCisJCSAqIFdlIHdlcmUgYWxyZWFkeSBnaXZlbiBhbiBleHByZXNz aW9uIGZvciB0aGUgdGFyZ2V0LAorCQkgKiBzbyB3ZSBkb24ndCBoYXZlIHRvIGJ1aWxkIGFueXRo aW5nLgorCQkgKi8KKwkJdGFyZ2V0RXhwciA9IGZvclBvcnRpb25PZi0+dGFyZ2V0OworCWVsc2UK Kwl7CisJCS8qIE1ha2Ugc3VyZSBpdCdzIGEgcmFuZ2UgY29sdW1uICovCisJCWlmICghdHlwZV9p c19yYW5nZShhdHRyLT5hdHR0eXBpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJCSBlcnJtc2coImNvbHVt biBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHJhbmdlIHR5cGUiLAorCQkJCQkJ CXJhbmdlX25hbWUsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSks CisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2YtPmxvY2F0aW9u KSkpOworCisJCS8qCisJCSAqIEJ1aWxkIGEgcmFuZ2UgZnJvbSB0aGUgRlJPTSAuLi4gVE8gLi4u LiBib3VuZHMuCisJCSAqIFRoaXMgc2hvdWxkIGdpdmUgYSBjb25zdGFudCByZXN1bHQsIHNvIHdl IGFjY2VwdCBmdW5jdGlvbnMgbGlrZSBOT1coKQorCQkgKiBidXQgbm90IGNvbHVtbiByZWZlcmVu Y2VzLCBzdWJxdWVyaWVzLCBldGMuCisJCSAqCisJCSAqIEl0IGFsc28gcGVybWl0cyBVTkJPVU5E RUQgaW4gZWl0aGVyIHBsYWNlLgorCQkgKi8KKwkJdGFyZ2V0RXhwciA9IChOb2RlICopIG1ha2VG dW5jQ2FsbCgKKwkJCQlsaXN0X21ha2UyKG1ha2VTdHJpbmcocmFuZ2VfdHlwZV9uYW1lc3BhY2Up LCBtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZSkpLAorCQkJCWxpc3RfbWFrZTIoZm9yUG9ydGlv bk9mLT50YXJnZXRfc3RhcnQsIGZvclBvcnRpb25PZi0+dGFyZ2V0X2VuZCksCisJCQkJQ09FUkNF X0VYUExJQ0lUX0NBTEwsCisJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7CisJfQorCXJlc3Vs dC0+dGFyZ2V0UmFuZ2UgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgdGFyZ2V0RXhwciwgRVhQUl9L SU5EX1VQREFURV9QT1JUSU9OKTsKKworCS8qCisJICogQnVpbGQgb3ZlcmxhcHNFeHByIHRvIHVz ZSBpbiB0aGUgd2hlcmVDbGF1c2UuCisJICogVGhpcyBtZWFucyB3ZSBvbmx5IGhpdCByb3dzIG1h dGNoaW5nIHRoZSBGUk9NICYgVE8gYm91bmRzLgorCSAqIFdlIG11c3QgbG9vayB1cCB0aGUgb3Zl cmxhcHMgb3BlcmF0b3IgKHVzdWFsbHkgIiYmIikuCisJICovCisJb3BjbGFzcyA9IEdldERlZmF1 bHRPcENsYXNzKGF0dHItPmF0dHR5cGlkLCBHSVNUX0FNX09JRCk7CisJc3RyYXQgPSBSVE92ZXJs YXBTdHJhdGVneU51bWJlcjsKKwlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNs YXNzLCBJbnZhbGlkT2lkLCAmb3BpZCwgJnN0cmF0KTsKKwlyZXN1bHQtPm92ZXJsYXBzRXhwciA9 IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIoQUVYUFJfT1AsIGdldF9vcG5hbWUob3BpZCksCisJ CQkoTm9kZSAqKSBjb3B5T2JqZWN0KHJhbmdlVmFyKSwgdGFyZ2V0RXhwciwKKwkJCWZvclBvcnRp b25PZi0+bG9jYXRpb24pOworCisJLyoKKwkgKiBMb29rIHVwIHRoZSB3aXRob3V0UG9ydGlvbk9w ZXIgc28gd2UgY2FuIGNvbXB1dGUgdGhlIGxlZnRvdmVycy4KKwkgKiBMZWZ0b3ZlcnMgd2lsbCBi ZSBvbGRfcmFuZ2UgQC0gdGFyZ2V0X3JhbmdlCisJICogKG9uZSBwZXIgZWxlbWVudCBvZiB0aGUg cmVzdWx0KS4KKwkgKi8KKwlmdW5jaWQgPSBJbnZhbGlkT2lkOworCWlmIChnZXRfb3BjbGFzc19v cGZhbWlseV9hbmRfaW5wdXRfdHlwZShvcGNsYXNzLCAmb3BmYW1pbHksICZvcGNpbnR5cGUpKQor CQlmdW5jaWQgPSBnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5 cGUsIEdJU1RfV0lUSE9VVF9QT1JUSU9OX1BST0MpOworCisJaWYgKCFPaWRJc1ZhbGlkKGZ1bmNp ZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGEgd2l0aG91dF9vdmVybGFwcyBz dXBwb3J0IGZ1bmN0aW9uIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBlKSks CisJCQkJZXJyaGludCgiRGVmaW5lIGEgd2l0aG91dF9vdmVybGFwcyBzdXBwb3J0IGZ1bmN0aW9u IGZvciBvcGVyYXRvciBjbGFzcyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRob2QgXCIlc1wiLiIsCisJ CQkJCSBvcGNsYXNzLCAiZ2lzdCIpKTsKKworCXJlc3VsdC0+d2l0aG91dFBvcnRpb25Qcm9jID0g ZnVuY2lkOworCisJaWYgKGlzVXBkYXRlKQorCXsKKwkJLyoKKwkJICogTm93IG1ha2Ugc3VyZSB3 ZSB1cGRhdGUgdGhlIHN0YXJ0L2VuZCB0aW1lIG9mIHRoZSByZWNvcmQuCisJCSAqIEZvciBhIHJh bmdlIGNvbCAocikgdGhpcyBpcyBgciA9IHIgKiB0YXJnZXRSYW5nZWAuCisJCSAqLworCQlPaWQg ZnVuY25hbWVzcGFjZTsKKwkJY2hhciAqZnVuY25hbWU7CisJCWNoYXIgKmZ1bmNuYW1lc3BhY2Vu YW1lOworCQlFeHByICpyYW5nZVRMRUV4cHI7CisJCVRhcmdldEVudHJ5ICp0bGU7CisKKwkJZnVu Y2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBH SVNUX0lOVEVSU0VDVF9QUk9DKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGZ1bmNpZCkpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJ CWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGludGVyc2VjdCBzdXBwb3J0IGZ1bmN0aW9u IGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBlKSksCisJCQkJCWVycmhpbnQo IkRlZmluZSBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5jdGlvbiBmb3Igb3BlcmF0b3IgY2xhc3Mg XCIlZFwiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkJIG9wY2xhc3MsICJnaXN0 IikpOworCisJCS8vIFRPRE86IGRvIHdlIHJlYWxseSBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIG5h bWUgaGVyZT8KKwkJZnVuY25hbWUgPSBnZXRfZnVuY19uYW1lKGZ1bmNpZCk7CisJCWlmICghZnVu Y25hbWUpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgZnVuY3Rpb24g JXUiLCBmdW5jaWQpOworCQlmdW5jbmFtZXNwYWNlID0gZ2V0X2Z1bmNfbmFtZXNwYWNlKGZ1bmNp ZCwgZmFsc2UpOworCQlmdW5jbmFtZXNwYWNlbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShmdW5j bmFtZXNwYWNlKTsKKwkJaWYgKCFmdW5jbmFtZXNwYWNlbmFtZSkKKwkJCWVsb2coRVJST1IsICJj YWNoZSBsb29rdXAgZmFpbGVkIGZvciBuYW1lc3BhY2UgJXUiLCBmdW5jbmFtZXNwYWNlKTsKKwor CQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSBtYWtlRnVuY0NhbGwoCisJCQkJbGlzdF9tYWtlMiht YWtlU3RyaW5nKGZ1bmNuYW1lc3BhY2VuYW1lKSwgbWFrZVN0cmluZyhmdW5jbmFtZSkpLAorCQkJ CWxpc3RfbWFrZTIoY29weU9iamVjdChyYW5nZVZhciksIHRhcmdldEV4cHIpLAorCQkJCUNPRVJD RV9FWFBMSUNJVF9DQUxMLAorCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCQlyYW5nZVRM RUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgcmFuZ2VUTEVF eHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOworCisJCS8qIE1ha2UgYSBUTEUgdG8gc2V0 IHRoZSByYW5nZSBjb2x1bW4gKi8KKwkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBOSUw7CisJ CXRsZSA9IG1ha2VUYXJnZXRFbnRyeShyYW5nZVRMRUV4cHIsIHJhbmdlX2F0dG5vLCByYW5nZV9u YW1lLCBmYWxzZSk7CisJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQt PnJhbmdlVGFyZ2V0TGlzdCwgdGxlKTsKKworCQkvKiBNYXJrIHRoZSByYW5nZSBjb2x1bW4gYXMg cmVxdWlyaW5nIHVwZGF0ZSBwZXJtaXNzaW9ucyAqLworCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0 ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywKKwkJ CQkJCQkJCQkJCQkgIHJhbmdlX2F0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51 bWJlcik7CisJfQorCWVsc2UKKwkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBOSUw7CisKKwly ZXN1bHQtPnJhbmdlX25hbWUgPSByYW5nZV9uYW1lOworCisJcmV0dXJuIHJlc3VsdDsKK30KIAog LyoKICAqIEJ1aWxkT25Db25mbGljdEV4Y2x1ZGVkVGFyZ2V0bGlzdApAQCAtMjQxOCw2ICsyNjI5 LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQg KnN0bXQpCiB7CiAJUXVlcnkJICAgKnFyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlQYXJzZU5hbWVz cGFjZUl0ZW0gKm5zaXRlbTsKKwlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlOb2RlCSAgICpxdWFs OwogCiAJcXJ5LT5jb21tYW5kVHlwZSA9IENNRF9VUERBVEU7CkBAIC0yNDM1LDYgKzI2NDcsMTAg QEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0 bXQpCiAJCQkJCQkJCQkJIHN0bXQtPnJlbGF0aW9uLT5pbmgsCiAJCQkJCQkJCQkJIHRydWUsCiAJ CQkJCQkJCQkJIEFDTF9VUERBVEUpOworCisJaWYgKHN0bXQtPmZvclBvcnRpb25PZikKKwkJcXJ5 LT5mb3JQb3J0aW9uT2YgPSB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UocHN0YXRlLCBxcnkt PnJlc3VsdFJlbGF0aW9uLCBzdG10LT5mb3JQb3J0aW9uT2YsIHRydWUpOworCiAJbnNpdGVtID0g cHN0YXRlLT5wX3RhcmdldF9uc2l0ZW07CiAKIAkvKiBzdWJxdWVyaWVzIGluIEZST00gY2Fubm90 IGFjY2VzcyB0aGUgcmVzdWx0IHJlbGF0aW9uICovCkBAIC0yNDUxLDcgKzI2NjcsOCBAQCB0cmFu c2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAlu c2l0ZW0tPnBfbGF0ZXJhbF9vbmx5ID0gZmFsc2U7CiAJbnNpdGVtLT5wX2xhdGVyYWxfb2sgPSB0 cnVlOwogCi0JcXVhbCA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwgc3RtdC0+d2hlcmVD bGF1c2UsCisJd2hlcmVDbGF1c2UgPSBhZGRGb3JQb3J0aW9uT2ZXaGVyZUNvbmRpdGlvbnMocXJ5 LCBzdG10LT5mb3JQb3J0aW9uT2YsIHN0bXQtPndoZXJlQ2xhdXNlKTsKKwlxdWFsID0gdHJhbnNm b3JtV2hlcmVDbGF1c2UocHN0YXRlLCB3aGVyZUNsYXVzZSwKIAkJCQkJCQkJRVhQUl9LSU5EX1dI RVJFLCAiV0hFUkUiKTsKIAogCXFyeS0+cmV0dXJuaW5nTGlzdCA9IHRyYW5zZm9ybVJldHVybmlu Z0xpc3QocHN0YXRlLCBzdG10LT5yZXR1cm5pbmdMaXN0KTsKQEAgLTI0NjAsNyArMjY3Nyw3IEBA IHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10 KQogCSAqIE5vdyB3ZSBhcmUgZG9uZSB3aXRoIFNFTEVDVC1saWtlIHByb2Nlc3NpbmcsIGFuZCBj YW4gZ2V0IG9uIHdpdGgKIAkgKiB0cmFuc2Zvcm1pbmcgdGhlIHRhcmdldCBsaXN0IHRvIG1hdGNo IHRoZSBVUERBVEUgdGFyZ2V0IGNvbHVtbnMuCiAJICovCi0JcXJ5LT50YXJnZXRMaXN0ID0gdHJh bnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIHN0bXQtPnRhcmdldExpc3QpOworCXFyeS0+ dGFyZ2V0TGlzdCA9IHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBzdG10LT50YXJn ZXRMaXN0LCBxcnktPmZvclBvcnRpb25PZik7CiAKIAlxcnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9y dGFibGU7CiAJcXJ5LT5ydGVwZXJtaW5mb3MgPSBwc3RhdGUtPnBfcnRlcGVybWluZm9zOwpAQCAt MjQ3OSw3ICsyNjk2LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IFVwZGF0ZVN0bXQgKnN0bXQpCiAgKgloYW5kbGUgU0VUIGNsYXVzZSBpbiBVUERBVEUvTUVSR0Uv SU5TRVJUIC4uLiBPTiBDT05GTElDVCBVUERBVEUKICAqLwogTGlzdCAqCi10cmFuc2Zvcm1VcGRh dGVUYXJnZXRMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3JpZ1RsaXN0KQordHJhbnNm b3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9yaWdUbGlzdCwg Rm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mKQogewogCUxpc3QJICAgKnRsaXN0ID0gTklM OwogCVJURVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm87CkBAIC0yNTMyLDYgKzI3NDks MjEgQEAgdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg Km9yaWdUbGlzdCkKIAkJCQkJIGVycmhpbnQoIlNFVCB0YXJnZXQgY29sdW1ucyBjYW5ub3QgYmUg cXVhbGlmaWVkIHdpdGggdGhlIHJlbGF0aW9uIG5hbWUuIikgOiAwLAogCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+bG9jYXRpb24pKSk7CiAKKwkJLyoKKwkJICog SWYgdGhpcyBpcyBhIEZPUiBQT1JUSU9OIE9GIHVwZGF0ZSwKKwkJICogZm9yYmlkIGRpcmVjdGx5 IHNldHRpbmcgdGhlIHJhbmdlIGNvbHVtbiwKKwkJICogc2luY2UgdGhhdCB3b3VsZCBjb25mbGlj dCB3aXRoIHRoZSBpbXBsaWNpdCB1cGRhdGVzLgorCQkgKi8KKwkJaWYgKGZvclBvcnRpb25PZiAh PSBOVUxMKQorCQl7CisJCQlpZiAoYXR0cm5vID09IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZh cmF0dG5vKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjYW4ndCBkaXJlY3RseSBhc3NpZ24gdG8gXCIlc1wi IGluIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRlIiwKKwkJCQkJCQkJb3JpZ1RhcmdldC0+bmFtZSks CisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+bG9jYXRpb24p KSk7CisJCX0KKwogCQl1cGRhdGVUYXJnZXRMaXN0RW50cnkocHN0YXRlLCB0bGUsIG9yaWdUYXJn ZXQtPm5hbWUsCiAJCQkJCQkJICBhdHRybm8sCiAJCQkJCQkJICBvcmlnVGFyZ2V0LT5pbmRpcmVj dGlvbiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDdkYTFiNGFjMzJhLi40YmJhZjk5MmJiMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0yNTgsNiArMjU4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlSYW5nZVZh ciAgICpyYW5nZTsKIAlJbnRvQ2xhdXNlICppbnRvOwogCVdpdGhDbGF1c2UgKndpdGg7CisJRm9y UG9ydGlvbk9mQ2xhdXNlICpmb3Jwb3J0aW9ub2Y7CiAJSW5mZXJDbGF1c2UJKmluZmVyOwogCU9u Q29uZmxpY3RDbGF1c2UgKm9uY29uZmxpY3Q7CiAJQV9JbmRpY2VzICAqYWluZDsKQEAgLTU1Miw2 ICs1NTMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPHJhbmdlPglyZWxhdGlv bl9leHByCiAldHlwZSA8cmFuZ2U+CWV4dGVuZGVkX3JlbGF0aW9uX2V4cHIKICV0eXBlIDxyYW5n ZT4JcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMKKyV0eXBlIDxmb3Jwb3J0aW9ub2Y+IGZvcl9wb3J0 aW9uX29mX2NsYXVzZQogJXR5cGUgPG5vZGU+CXRhYmxlc2FtcGxlX2NsYXVzZSBvcHRfcmVwZWF0 YWJsZV9jbGF1c2UKICV0eXBlIDx0YXJnZXQ+CXRhcmdldF9lbCBzZXRfdGFyZ2V0IGluc2VydF9j b2x1bW5faXRlbQogCkBAIC03NDgsNyArNzUwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAogCVBBUkFMTEVMIFBBUkFNRVRFUiBQQVJTRVIgUEFSVElBTCBQQVJUSVRJT04gUEFTU0lORyBQ QVNTV09SRAogCVBFUklPRCBQTEFDSU5HIFBMQU5TIFBPTElDWQotCVBPU0lUSU9OIFBSRUNFRElO RyBQUkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCisJUE9SVElPTiBQ T1NJVElPTiBQUkVDRURJTkcgUFJFQ0lTSU9OIFBSRVNFUlZFIFBSRVBBUkUgUFJFUEFSRUQgUFJJ TUFSWQogCVBSSU9SIFBSSVZJTEVHRVMgUFJPQ0VEVVJBTCBQUk9DRURVUkUgUFJPQ0VEVVJFUyBQ Uk9HUkFNIFBVQkxJQ0FUSU9OCiAKIAlRVU9URQpAQCAtODY2LDYgKzg2OCwxNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogICoganNvbl9wcmVkaWNhdGVfdHlwZV9jb25zdHJhaW50IGFuZCBq c29uX2tleV91bmlxdWVuZXNzX2NvbnN0cmFpbnRfb3B0CiAgKiBwcm9kdWN0aW9ucyAoc2VlIGNv bW1lbnRzIHRoZXJlKS4KICAqLworLyoKKyAqIFdlIG5lZWQgdG8gaGFuZGxlIHRoaXMgc2hpZnQv cmVkdWNlIGNvbmZsaWN0OgorICogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBJTlRFUlZB TCBZRUFSIFRPIE1PTlRIIFRPIGZvby4KKyAqIFRoaXMgaXMgYmFzaWNhbGx5IHRoZSBjbGFzc2lj ICJkYW5nbGluZyBlbHNlIiBwcm9ibGVtLCBhbmQgd2Ugd2FudCBhCisgKiBzaW1pbGFyIHJlc29s dXRpb246IHRyZWF0IHRoZSBUTyBhcyBwYXJ0IG9mIHRoZSBJTlRFUlZBTCwgbm90IGFzIHBhcnQg b2YKKyAqIHRoZSBGUk9NIC4uLiBUTyAuLi4uIFVzZXJzIGNhbiBhZGQgcGFyZW50aGVzZXMgaWYg dGhhdCdzIGEgcHJvYmxlbS4KKyAqIFRPIGp1c3QgbmVlZHMgdG8gYmUgaGlnaGVyIHByZWNlZGVu Y2UgdGhhbiBZRUFSX1AgZXRjLgorICogVE9ETzogSSBuZWVkIHRvIGZpZ3VyZSBvdXQgYSAlcHJl YyBzb2x1dGlvbiBiZWZvcmUgdGhpcyBnZXRzIGNvbW1pdHRlZCEKKyAqLworJW5vbmFzc29jIFlF QVJfUCBNT05USF9QIERBWV9QIEhPVVJfUCBNSU5VVEVfUAorJW5vbmFzc29jIFRPCiAlbm9uYXNz b2MJVU5CT1VOREVECQkvKiBpZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRlbmNlIGFzIElE RU5UICovCiAlbm9uYXNzb2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJPV1MgR1JPVVBTIFBSRUNF RElORyBGT0xMT1dJTkcgQ1VCRSBST0xMVVAKIAkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBW QUxVRV9QIFdJVEggV0lUSE9VVApAQCAtMTIyNDUsMTQgKzEyMjU4LDE2IEBAIHJldHVybmluZ19j bGF1c2U6CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIERlbGV0ZVN0bXQ6IG9wdF93aXRoX2Ns YXVzZSBERUxFVEVfUCBGUk9NIHJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCisJCQlmb3JfcG9ydGlv bl9vZl9jbGF1c2UKIAkJCXVzaW5nX2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZSByZXR1 cm5pbmdfY2xhdXNlCiAJCQkJewogCQkJCQlEZWxldGVTdG10ICpuID0gbWFrZU5vZGUoRGVsZXRl U3RtdCk7CiAKIAkJCQkJbi0+cmVsYXRpb24gPSAkNDsKLQkJCQkJbi0+dXNpbmdDbGF1c2UgPSAk NTsKLQkJCQkJbi0+d2hlcmVDbGF1c2UgPSAkNjsKLQkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ3 OworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAkNTsKKwkJCQkJbi0+dXNpbmdDbGF1c2UgPSAkNjsK KwkJCQkJbi0+d2hlcmVDbGF1c2UgPSAkNzsKKwkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ4Owog CQkJCQluLT53aXRoQ2xhdXNlID0gJDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBA IC0xMjMxNSw2ICsxMjMzMCw3IEBAIG9wdF9ub3dhaXRfb3Jfc2tpcDoKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogVXBkYXRlU3RtdDogb3B0X3dpdGhfY2xhdXNlIFVQREFURSByZWxhdGlvbl9l eHByX29wdF9hbGlhcworCQkJZm9yX3BvcnRpb25fb2ZfY2xhdXNlCiAJCQlTRVQgc2V0X2NsYXVz ZV9saXN0CiAJCQlmcm9tX2NsYXVzZQogCQkJd2hlcmVfb3JfY3VycmVudF9jbGF1c2UKQEAgLTEy MzIzLDEwICsxMjMzOSwxMSBAQCBVcGRhdGVTdG10OiBvcHRfd2l0aF9jbGF1c2UgVVBEQVRFIHJl bGF0aW9uX2V4cHJfb3B0X2FsaWFzCiAJCQkJCVVwZGF0ZVN0bXQgKm4gPSBtYWtlTm9kZShVcGRh dGVTdG10KTsKIAogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwotCQkJCQluLT50YXJnZXRMaXN0ID0g JDU7Ci0JCQkJCW4tPmZyb21DbGF1c2UgPSAkNjsKLQkJCQkJbi0+d2hlcmVDbGF1c2UgPSAkNzsK LQkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ4OworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAkNDsK KwkJCQkJbi0+dGFyZ2V0TGlzdCA9ICQ2OworCQkJCQluLT5mcm9tQ2xhdXNlID0gJDc7CisJCQkJ CW4tPndoZXJlQ2xhdXNlID0gJDg7CisJCQkJCW4tPnJldHVybmluZ0xpc3QgPSAkOTsKIAkJCQkJ bi0+d2l0aENsYXVzZSA9ICQxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtMTM3 NjIsNiArMTM3NzksMjcgQEAgcmVsYXRpb25fZXhwcl9vcHRfYWxpYXM6IHJlbGF0aW9uX2V4cHIJ CQkJCSVwcmVjIFVNSU5VUwogCQkJCX0KIAkJOwogCitmb3JfcG9ydGlvbl9vZl9jbGF1c2U6CisJ CQlGT1IgUE9SVElPTiBPRiBDb2xJZCAnKCcgYV9leHByICcpJworCQkJCXsKKwkJCQkJRm9yUG9y dGlvbk9mQ2xhdXNlICpuID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mQ2xhdXNlKTsKKwkJCQkJbi0+ cmFuZ2VfbmFtZSA9ICQ0OworCQkJCQluLT5sb2NhdGlvbiA9IEA0OworCQkJCQluLT50YXJnZXQg PSAkNjsKKwkJCQkJJCQgPSBuOworCQkJCX0KKwkJCXwgRk9SIFBPUlRJT04gT0YgQ29sSWQgRlJP TSBhX2V4cHIgVE8gYV9leHByCisJCQkJeworCQkJCQlGb3JQb3J0aW9uT2ZDbGF1c2UgKm4gPSBt YWtlTm9kZShGb3JQb3J0aW9uT2ZDbGF1c2UpOworCQkJCQluLT5yYW5nZV9uYW1lID0gJDQ7CisJ CQkJCW4tPmxvY2F0aW9uID0gQDQ7CisJCQkJCW4tPnRhcmdldF9zdGFydCA9ICQ2OworCQkJCQlu LT50YXJnZXRfZW5kID0gJDg7CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8IC8qRU1QVFkqLwkJ CQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICogVEFCTEVTQU1QTEUgZGVjb3JhdGlvbiBp biBhIEZST00gaXRlbQogICovCkBAIC0xNzM1Niw2ICsxNzM5NCw3IEBAIHVucmVzZXJ2ZWRfa2V5 d29yZDoKIAkJCXwgUEVSSU9ECiAJCQl8IFBMQU5TCiAJCQl8IFBPTElDWQorCQkJfCBQT1JUSU9O CiAJCQl8IFBSRUNFRElORwogCQkJfCBQUkVQQVJFCiAJCQl8IFBSRVBBUkVECkBAIC0xNzk1OSw2 ICsxNzk5OCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUExBQ0lORwogCQkJfCBQTEFO UwogCQkJfCBQT0xJQ1kKKwkJCXwgUE9SVElPTgogCQkJfCBQT1NJVElPTgogCQkJfCBQUkVDRURJ TkcKIAkJCXwgUFJFUEFSRQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDlkMTUxYTg4MGI4Li4y NTkxZmZhMzRmNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTc1LDYgKzU3NSwxMyBAQCBj aGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwog CQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJaWYgKGlzQWdn KQorCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZP UiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJCQkJZXJyID0gXygiZ3JvdXBp bmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lv bnMiKTsKKworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5 IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTk2NSw2ICs5NzIsOSBAQCB0 cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndm dW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJ CQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJ3 aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNz aW9ucyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5 IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29s bGF0ZS5jCmluZGV4IDQ0NTI5YmI0OWU2Li4xNGZmYjdiYTY0OSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY29sbGF0ZS5jCkBAIC00ODQsNiArNDg0LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2Vy KE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNhc2Ug VF9Kb2luRXhwcjoKIAkJY2FzZSBUX0Zyb21FeHByOgogCQljYXNlIFRfT25Db25mbGljdEV4cHI6 CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgogCQljYXNlIFRfU29ydEdyb3VwQ2xhdXNlOgog CQljYXNlIFRfTWVyZ2VBY3Rpb246CiAJCQkodm9pZCkgZXhwcmVzc2lvbl90cmVlX3dhbGtlcihu b2RlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggOTMwMGM3YjlhYmMuLmYzYzQ5ZGU4MDk5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTU2Niw2ICs1NjYsOSBAQCB0cmFuc2Zvcm1D b2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQ Ul9LSU5EX1BBUlRJVElPTl9CT1VORDoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2UgY29sdW1uIHJl ZmVyZW5jZSBpbiBwYXJ0aXRpb24gYm91bmQgZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNh c2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBjb2x1 bW4gcmVmZXJlbmNlIGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwog CiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhl cmUsIHNvIHRoYXQgdGhlCkBAIC0xODEzLDYgKzE4MTYsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBh cnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VO RVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1u IGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQ REFURV9QT1JUSU9OOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBGT1IgUE9S VElPTiBPRiBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlz IGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzEw NCw2ICszMTEwLDggQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkK IAkJCXJldHVybiAiVVBEQVRFIjsKIAkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKIAkJCXJl dHVybiAiTUVSR0UgV0hFTiI7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJ cmV0dXJuICJGT1IgUE9SVElPTiBPRiI7CiAJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgogCQkJ cmV0dXJuICJHUk9VUCBCWSI7CiAJCWNhc2UgRVhQUl9LSU5EX09SREVSX0JZOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9mdW5jLmMKaW5kZXggZmRiM2U2ZGYzMzguLmZjMTdkZDdlZGY4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw5IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVu dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwor CQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWVyciA9IF8oInNldC1yZXR1cm5p bmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9u cyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5v IGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMK aW5kZXggYTdkOGJhN2U5OGMuLjhiMjZiNzA0NTlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2Uu YwpAQCAtMzczLDcgKzM3Myw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIE1lcmdlU3RtdCAqc3RtdCkKIAkJCQkJcHN0YXRlLT5wX2lzX2luc2VydCA9IGZhbHNlOwog CQkJCQlhY3Rpb24tPnRhcmdldExpc3QgPQogCQkJCQkJdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlz dChwc3RhdGUsCi0JCQkJCQkJCQkJCQkgIG1lcmdlV2hlbkNsYXVzZS0+dGFyZ2V0TGlzdCk7CisJ CQkJCQkJCQkJCQkgIG1lcmdlV2hlbkNsYXVzZS0+dGFyZ2V0TGlzdCwgTlVMTCk7CiAJCQkJfQog CQkJCWJyZWFrOwogCQkJY2FzZSBDTURfREVMRVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFu ZGxlci5jCmluZGV4IDdhNDZlOGIzNTQxLi5jNzkxZGY1YjlhNyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUv cmV3cml0ZUhhbmRsZXIuYwpAQCAtMzY3Nyw2ICszNjc3LDMwIEBAIHJld3JpdGVUYXJnZXRWaWV3 KFF1ZXJ5ICpwYXJzZXRyZWUsIFJlbGF0aW9uIHZpZXcpCiAJCQkJCQkJCQkgICZwYXJzZXRyZWUt Pmhhc1N1YkxpbmtzKTsKIAl9CiAKKwlpZiAocGFyc2V0cmVlLT5mb3JQb3J0aW9uT2YgJiYgcGFy c2V0cmVlLT5jb21tYW5kVHlwZSA9PSBDTURfVVBEQVRFKQorCXsKKwkJLyoKKwkJICogTGlrZSB0 aGUgSU5TRVJUL1VQREFURSBjb2RlIGFib3ZlLCB1cGRhdGUgdGhlIHJlc25vcyBpbiB0aGUKKwkJ ICogYXV4aWxpYXJ5IFVQREFURSB0YXJnZXRsaXN0IHRvIHJlZmVyIHRvIGNvbHVtbnMgb2YgdGhl IGJhc2UKKwkJICogcmVsYXRpb24uCisJCSAqLworCQlmb3JlYWNoKGxjLCBwYXJzZXRyZWUtPmZv clBvcnRpb25PZi0+cmFuZ2VUYXJnZXRMaXN0KQorCQl7CisJCQlUYXJnZXRFbnRyeSAqdGxlID0g KFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisJCQlUYXJnZXRFbnRyeSAqdmlld190bGU7CisK KwkJCWlmICh0bGUtPnJlc2p1bmspCisJCQkJY29udGludWU7CisKKwkJCXZpZXdfdGxlID0gZ2V0 X3RsZV9ieV9yZXNubyh2aWV3X3RhcmdldGxpc3QsIHRsZS0+cmVzbm8pOworCQkJaWYgKHZpZXdf dGxlICE9IE5VTEwgJiYgIXZpZXdfdGxlLT5yZXNqdW5rICYmIElzQSh2aWV3X3RsZS0+ZXhwciwg VmFyKSkKKwkJCQl0bGUtPnJlc25vID0gKChWYXIgKikgdmlld190bGUtPmV4cHIpLT52YXJhdHRu bzsKKwkJCWVsc2UKKwkJCQllbG9nKEVSUk9SLCAiYXR0cmlidXRlIG51bWJlciAlZCBub3QgZm91 bmQgaW4gdmlldyB0YXJnZXRsaXN0IiwKKwkJCQkJIHRsZS0+cmVzbm8pOworCQl9CisJfQorCiAJ LyoKIAkgKiBGb3IgVVBEQVRFL0RFTEVURS9NRVJHRSwgcHVsbCB1cCBhbnkgV0hFUkUgcXVhbHMg ZnJvbSB0aGUgdmlldy4gIFdlCiAJICoga25vdyB0aGF0IGFueSBWYXJzIGluIHRoZSBxdWFscyBt dXN0IHJlZmVyZW5jZSB0aGUgb25lIGJhc2UgcmVsYXRpb24sCkBAIC00MDE1LDYgKzQwMzksMjIg QEAgUmV3cml0ZVF1ZXJ5KFF1ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKnJld3JpdGVfZXZlbnRzLCBp bnQgb3JpZ19ydF9sZW5ndGgpCiAJCWVsc2UgaWYgKGV2ZW50ID09IENNRF9VUERBVEUpCiAJCXsK IAkJCUFzc2VydChwYXJzZXRyZWUtPm92ZXJyaWRlID09IE9WRVJSSURJTkdfTk9UX1NFVCk7CisJ CQkvKgorCQkJICogVXBkYXRlIEZPUiBQT1JUSU9OIE9GIGNvbHVtbihzKSBhdXRvbWF0aWNhbGx5 LiBEb24ndAorCQkJICogZG8gdGhpcyB1bnRpbCB3ZSdyZSBkb25lIHJld3JpdGluZyBhIHZpZXcg dXBkYXRlLCBzbworCQkJICogdGhhdCB3ZSBkb24ndCBhZGQgdGhlIHNhbWUgdXBkYXRlIG9uIHRo ZSByZWN1cnNpb24uCisJCQkgKi8KKwkJCWlmIChwYXJzZXRyZWUtPmZvclBvcnRpb25PZiAmJgor CQkJCXJ0X2VudHJ5X3JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9WSUVXKQor CQkJeworCQkJCUxpc3RDZWxsICp0bDsKKwkJCQlmb3JlYWNoKHRsLCBwYXJzZXRyZWUtPmZvclBv cnRpb25PZi0+cmFuZ2VUYXJnZXRMaXN0KQorCQkJCXsKKwkJCQkJVGFyZ2V0RW50cnkgKnRsZSA9 IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QodGwpOworCQkJCQlwYXJzZXRyZWUtPnRhcmdldExpc3Qg PSBsYXBwZW5kKHBhcnNldHJlZS0+dGFyZ2V0TGlzdCwgdGxlKTsKKwkJCQl9CisJCQl9CisKIAkJ CXBhcnNldHJlZS0+dGFyZ2V0TGlzdCA9CiAJCQkJcmV3cml0ZVRhcmdldExpc3RJVShwYXJzZXRy ZWUtPnRhcmdldExpc3QsCiAJCQkJCQkJCQlwYXJzZXRyZWUtPmNvbW1hbmRUeXBlLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCBmOWNiODEzNDg0MS4uMjhhYzZjMmIzMmUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBAIC0yMzAsNiArMjMwLDcgQEAgc3RhdGlj IGJvb2wgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJ CQkJCQkJUklfUXVlcnlLZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBsYW4sCiAJCQkJCQkJUmVsYXRp b24gZmtfcmVsLCBSZWxhdGlvbiBwa19yZWwsCiAJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAorCQkJCQkJCWludCBmb3JQb3J0aW9uT2ZQYXJh bSwgRGF0dW0gZm9yUG9ydGlvbk9mLAogCQkJCQkJCWJvb2wgZGV0ZWN0TmV3Um93cywgaW50IGV4 cGVjdF9PSyk7CiBzdGF0aWMgdm9pZCByaV9FeHRyYWN0VmFsdWVzKFJlbGF0aW9uIHJlbCwgVHVw bGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWlu Zm8sIGJvb2wgcmVsX2lzX3BrLApAQCAtMjM5LDYgKzI0MCwxMSBAQCBzdGF0aWMgdm9pZCByaV9S ZXBvcnRWaW9sYXRpb24oY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJCQkJCQkg ICBUdXBsZVRhYmxlU2xvdCAqdmlvbGF0b3JzbG90LCBUdXBsZURlc2MgdHVwZGVzYywKIAkJCQkJ CQkgICBpbnQgcXVlcnlubywgYm9vbCBwYXJ0Z29uZSkgcGdfYXR0cmlidXRlX25vcmV0dXJuKCk7 CiBzdGF0aWMgdm9pZCBsb29rdXBQZXJpb2RSSVByb2MoY29uc3QgUklfQ29uc3RyYWludEluZm8g KnJpaW5mbywgY2hhciAqKmFnZ25hbWUpOworc3RhdGljIGJvb2wgZnBvX3RhcmdldHNfcGtfcmFu Z2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLAorCQkJCQkJCQkgY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7CitzdGF0aWMgRGF0dW0gcmVzdHJpY3RfY2FzY2Fk aW5nX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKKwkJCQkJCQkJ CSAgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKKwkJCQkJCQkJCSAgVHVwbGVUYWJs ZVNsb3QgKm9sZHNsb3QpOwogCiAKIC8qCkBAIC00NTYsNiArNDYyLDcgQEAgUklfRktleV9jaGVj ayhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXks IHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3JlbCwKIAkJCQkJTlVMTCwgbmV3c2xvdCwKKwkJCQkJ LTEsIChEYXR1bSkgMCwKIAkJCQkJcGtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9Q QVJUSVRJT05FRF9UQUJMRSwKIAkJCQkJU1BJX09LX1NFTEVDVCk7CiAKQEAgLTYyNCw2ICs2MzEs NyBAQCByaV9DaGVja19Qa19NYXRjaChSZWxhdGlvbiBwa19yZWwsIFJlbGF0aW9uIGZrX3JlbCwK IAlyZXN1bHQgPSByaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCQkJ IGZrX3JlbCwgcGtfcmVsLAogCQkJCQkJCSBvbGRzbG90LCBOVUxMLAorCQkJCQkJCSAtMSwgKERh dHVtKSAwLAogCQkJCQkJCSB0cnVlLAkvKiB0cmVhdCBsaWtlIHVwZGF0ZSAqLwogCQkJCQkJCSBT UElfT0tfU0VMRUNUKTsKIApAQCAtNzIzLDYgKzczMSw4IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJE YXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3Q7CiAJUklfUXVlcnlLZXkgcWtleTsKIAlTUElQbGFuUHRyCXFwbGFuOworCWludAkJCXRhcmdl dFJhbmdlUGFyYW0gPSAtMTsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2UgPSAoRGF0dW0pIDA7CiAKIAly aWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAogCQkJ CQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsKQEAgLTgxMyw5ICs4MjMsMTYgQEAg cmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAkv KgogCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIGNoZWNrIGZvciBleGlzdGluZyBy ZWZlcmVuY2VzLgogCSAqLworCWlmICh0cmlnZGF0YS0+dGdfdGVtcG9yYWwpCisJeworCQl0YXJn ZXRSYW5nZVBhcmFtID0gcmlpbmZvLT5ua2V5cyAtIDE7CisJCXRhcmdldFJhbmdlID0gcmVzdHJp Y3RfY2FzY2FkaW5nX3JhbmdlKHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90 KTsKKwl9CisKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZr X3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQl0YXJnZXRSYW5nZVBhcmFt LCB0YXJnZXRSYW5nZSwKIAkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJ CQkJCVNQSV9PS19TRUxFQ1QpOwogCkBAIC05MjIsNiArOTM5LDcgQEAgUklfRktleV9jYXNjYWRl X2RlbChQR19GVU5DVElPTl9BUkdTKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBx cGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCS0x LCAoRGF0dW0pIDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwogCQkJ CQlTUElfT0tfREVMRVRFKTsKIApAQCAtMTA0Myw2ICsxMDYxLDcgQEAgUklfRktleV9jYXNjYWRl X3VwZChQR19GVU5DVElPTl9BUkdTKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBx cGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIG5ld3Nsb3QsCisJCQkJ CS0xLCAoRGF0dW0pIDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwog CQkJCQlTUElfT0tfVVBEQVRFKTsKIApAQCAtMTI3NSw2ICsxMjk0LDcgQEAgcmlfc2V0KFRyaWdn ZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCkKIAlyaV9QZXJm b3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJ CQlvbGRzbG90LCBOVUxMLAorCQkJCQktMSwgKERhdHVtKSAwLAogCQkJCQl0cnVlLAkJLyogbXVz dCBkZXRlY3QgbmV3IHJvd3MgKi8KIAkJCQkJU1BJX09LX1VQREFURSk7CiAKQEAgLTI0MjksNiAr MjQ0OSw3IEBAIHJpX1BlcmZvcm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZv LAogCQkJCVJJX1F1ZXJ5S2V5ICpxa2V5LCBTUElQbGFuUHRyIHFwbGFuLAogCQkJCVJlbGF0aW9u IGZrX3JlbCwgUmVsYXRpb24gcGtfcmVsLAogCQkJCVR1cGxlVGFibGVTbG90ICpvbGRzbG90LCBU dXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKKwkJCQlpbnQgZm9yUG9ydGlvbk9mUGFyYW0sIERhdHVt IGZvclBvcnRpb25PZiwKIAkJCQlib29sIGRldGVjdE5ld1Jvd3MsIGludCBleHBlY3RfT0spCiB7 CiAJUmVsYXRpb24JcXVlcnlfcmVsLApAQCAtMjQ4NCw2ICsyNTA1LDEyIEBAIHJpX1BlcmZvcm1D aGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQlyaV9FeHRyYWN0VmFsdWVz KHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJCQkJIHZhbHMs IG51bGxzKTsKIAl9CisJLyogQWRkIG9uZSBtb3JlIHF1ZXJ5IHBhcmFtIGlmIHdlIGFyZSB1c2lu ZyBGT1IgUE9SVElPTiBPRiAqLworCWlmIChmb3JQb3J0aW9uT2YpCisJeworCQl2YWxzW2ZvclBv cnRpb25PZlBhcmFtXSA9IGZvclBvcnRpb25PZjsKKwkJbnVsbHNbZm9yUG9ydGlvbk9mUGFyYW1d ID0gJyAnOworCX0KIAogCS8qCiAJICogSW4gUkVBRCBDT01NSVRURUQgbW9kZSwgd2UganVzdCBu ZWVkIHRvIHVzZSBhbiB1cC10by1kYXRlIHJlZ3VsYXIKQEAgLTMxODcsMyArMzIxNCw1MCBAQCBs b29rdXBQZXJpb2RSSVByb2MoY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgY2hhciAq KmFnZ25hbWUpCiAJcGZyZWUobmFtZXNwKTsKIAlSZWxlYXNlU3lzQ2FjaGUodHApOwogfQorCisv KgorICogZnBvX3RhcmdldHNfcGtfcmFuZ2UKKyAqCisgKiBSZXR1cm5zIHRydWUgaWZmIHRoZSBw cmltYXJ5IGtleSByZWZlcmVuY2VkIGJ5IHJpaW5mbyBpbmNsdWRlcyB0aGUgcmFuZ2UKKyAqIGNv bHVtbiB0YXJnZXRlZCBieSB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlIChhY2NvcmRpbmcgdG8g dGdfdGVtcG9yYWwpLgorICovCitzdGF0aWMgYm9vbAorZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29u c3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5m byAqcmlpbmZvKQoreworCWlmICh0Z190ZW1wb3JhbCA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlyZXR1cm4gcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSA9PSB0Z190 ZW1wb3JhbC0+ZnBfcmFuZ2VBdHRubzsKK30KKworLyoKKyAqIHJlc3RyaWN0X2Nhc2NhZGluZ19y YW5nZSAtCisgKgorICogUmV0dXJucyBhIERhdHVtIG9mIFJhbmdlVHlwZVAgaG9sZGluZyB0aGUg YXBwcm9wcmlhdGUgdGltZXNwYW4KKyAqIHRvIHRhcmdldCBjaGlsZCByZWNvcmRzIHdoZW4gd2Ug Q0FTQ0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4KKyAqCisgKiBJbiBhIG5vcm1hbCBVUERBVEUv REVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSBwYXJlbnQncyBvd24gdmFsaWQgdGltZSwKKyAqIGJ1 dCBpZiB0aGVyZSB3YXMgYSBGT1IgUE9SVElPTiBPRiBjbGF1c2UsIHRoZW4gd2Ugc2hvdWxkIHVz ZSB0aGF0IHRvCisgKiB0cmltIGRvd24gdGhlIHBhcmVudCdzIHNwYW4gZnVydGhlci4KKyAqLwor c3RhdGljIERhdHVtCityZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9m U3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBUdXBs ZVRhYmxlU2xvdCAqb2xkc2xvdCkKK3sKKwlEYXR1bQlwa1JlY29yZFJhbmdlOworCWJvb2wJaXNu dWxsOworCisJcGtSZWNvcmRSYW5nZSA9IHNsb3RfZ2V0YXR0cihvbGRzbG90LCByaWluZm8tPnBr X2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdLCAmaXNudWxsKTsKKwlpZiAoaXNudWxsKQorCQll bG9nKEVSUk9SLCAiYXBwbGljYXRpb24gdGltZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKworCWlm IChmcG9fdGFyZ2V0c19wa19yYW5nZSh0Z190ZW1wb3JhbCwgcmlpbmZvKSkKKwl7CisJCVJhbmdl VHlwZSAqcjEgPSBEYXR1bUdldFJhbmdlVHlwZVAocGtSZWNvcmRSYW5nZSk7CisJCVJhbmdlVHlw ZSAqcjIgPSBEYXR1bUdldFJhbmdlVHlwZVAodGdfdGVtcG9yYWwtPmZwX3RhcmdldFJhbmdlKTsK KwkJT2lkIHJuZ3R5cGlkID0gUmFuZ2VUeXBlR2V0T2lkKHIxKTsKKwkJVHlwZUNhY2hlRW50cnkg KnR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9J TkZPKTsKKwkJcmV0dXJuIFJhbmdlVHlwZVBHZXREYXR1bShyYW5nZV9pbnRlcnNlY3RfaW50ZXJu YWwodHlwY2FjaGUsIHIxLCByMikpOworCX0KKwllbHNlCisJCXJldHVybiBwa1JlY29yZFJhbmdl OworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCA2NDE4ZDFjNmViYS4uZTlh M2MxNDZkMTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0xNjA3LDcgKzE2 MDcsNyBAQCBnZXRfZnVuY19uYW1lKE9pZCBmdW5jaWQpCiAgKgkJUmV0dXJucyB0aGUgcGdfbmFt ZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBmdW5jdGlvbi4KICAqLwogT2lkCi1n ZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCkKK2dldF9mdW5jX25hbWVzcGFjZShPaWQgZnVu Y2lkLCBib29sIG1pc3Npbmdfb2spCiB7CiAJSGVhcFR1cGxlCXRwOwogCkBAIC0xNjIxLDYgKzE2 MjEsOCBAQCBnZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCkKIAkJUmVsZWFzZVN5c0NhY2hl KHRwKTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9CisJZWxzZSBpZiAoIW1pc3Npbmdfb2spCisJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmdW5jdGlvbiAldSIsIGZ1bmNpZCk7 CiAJZWxzZQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KQEAgLTIxNDQsNiArMjE0Niw1OSBAQCBn ZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCkKIAkJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICog Z2V0X3R5cG5hbWUKKyAqCisgKgkgIFJldHVybnMgdGhlIG5hbWUgb2YgYSBnaXZlbiB0eXBlCisg KgorICogUmV0dXJucyBhIHBhbGxvYydkIGNvcHkgb2YgdGhlIHN0cmluZywgb3IgTlVMTCBpZiBu byBzdWNoIHR5cGUuCisgKi8KK2NoYXIgKgorZ2V0X3R5cG5hbWUoT2lkIHR5cGlkKQoreworCUhl YXBUdXBsZSAgIHRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0SWRH ZXREYXR1bSh0eXBpZCkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1f cGdfdHlwZSB0eXB0dXAgPSAoRm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOworCQljaGFyCSAg ICpyZXN1bHQ7CisKKwkJcmVzdWx0ID0gcHN0cmR1cChOYW1lU3RyKHR5cHR1cC0+dHlwbmFtZSkp OworCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwllbHNlCisJ CXJldHVybiBOVUxMOworfQorCisvKgorICogZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZQorICoK KyAqCSAgUmV0dXJucyB0aGUgbmFtZSBhbmQgbmFtZXNwYWNlIG9mIGEgZ2l2ZW4gdHlwZQorICoK KyAqIFJldHVybnMgdHJ1ZSBpZiBvbmUgZm91bmQsIG9yIGZhbHNlIGlmIG5vdC4KKyAqLworYm9v bAorZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNoYXIgKip0eXBuYW1lLCBj aGFyICoqdHlwbmFtZXNwYWNlKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lz Q2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAoSGVhcFR1cGxl SXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZvcm1fcGdfdHlwZSkg R0VUU1RSVUNUKHRwKTsKKworCQkqdHlwbmFtZSA9IHBzdHJkdXAoTmFtZVN0cih0eXB0dXAtPnR5 cG5hbWUpKTsKKwkJKnR5cG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh0eXB0dXAtPnR5 cG5hbWVzcGFjZSk7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCS8qICp0eXBuYW1lc3BhY2Ug aXMgTlVMTCBpZiBpdCB3YXNuJ3QgZm91bmQ6ICovCisJCXJldHVybiAqdHlwbmFtZXNwYWNlOwor CX0KKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAqIGdldF90eXBsZW4KICAqCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9zdHJhdG51bS5oCmluZGV4IDhhNDdkM2M5ZWM4Li5iODAxZWYxZTNjMCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNz L3N0cmF0bnVtLmgKQEAgLTc5LDcgKzc5LDcgQEAgdHlwZWRlZiB1aW50MTYgU3RyYXRlZ3lOdW1i ZXI7CiAjZGVmaW5lIFJUT2xkQmVsb3dTdHJhdGVneU51bWJlcgkJMjkJLyogZm9yIG9sZCBzcGVs bGluZyBvZiA8PHwgKi8KICNkZWZpbmUgUlRPbGRBYm92ZVN0cmF0ZWd5TnVtYmVyCQkzMAkvKiBm b3Igb2xkIHNwZWxsaW5nIG9mIHw+PiAqLwogCi0jZGVmaW5lIFJUTWF4U3RyYXRlZ3lOdW1iZXIJ CQkJMzAKKyNkZWZpbmUgUlRNYXhTdHJhdGVneU51bWJlcgkJCQkzMgogCiAKICNlbmRpZgkJCQkJ CQkvKiBTVFJBVE5VTV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmln Z2VyLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmgKaW5kZXggOGE1YTlmZTY0MjIu LjNkMTU2NDgzMzI1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCkBAIC00MSw2ICs0MSw3IEBAIHR5 cGVkZWYgc3RydWN0IFRyaWdnZXJEYXRhCiAJVHVwbGVzdG9yZXN0YXRlICp0Z19vbGR0YWJsZTsK IAlUdXBsZXN0b3Jlc3RhdGUgKnRnX25ld3RhYmxlOwogCWNvbnN0IEJpdG1hcHNldCAqdGdfdXBk YXRlZGNvbHM7CisJRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsOwogfSBUcmlnZ2VyRGF0 YTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMjc2MTRhYjUwZmIuLjRjNWYyZWZkZjNh IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNDIsMTIgKzQyLDE0IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9jb25kaXRpb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJ1dGlscy9oc2VhcmNoLmgiCiAj aW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgorI2luY2x1ZGUgInV0aWxzL3Jhbmdl dHlwZXMuaCIKICNpbmNsdWRlICJ1dGlscy9yZWx0cmlnZ2VyLmgiCiAjaW5jbHVkZSAidXRpbHMv c2hhcmVkdHVwbGVzdG9yZS5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBzaG90LmgiCiAjaW5jbHVk ZSAidXRpbHMvc29ydHN1cHBvcnQuaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXNvcnQuaCIKICNp bmNsdWRlICJ1dGlscy90dXBsZXN0b3JlLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIK IAogc3RydWN0IFBsYW5TdGF0ZTsJCQkJLyogZm9yd2FyZCByZWZlcmVuY2VzIGluIHRoaXMgZmls ZSAqLwogc3RydWN0IFBhcmFsbGVsSGFzaEpvaW5TdGF0ZTsKQEAgLTQyOCw2ICs0MzAsMjcgQEAg dHlwZWRlZiBzdHJ1Y3QgTWVyZ2VBY3Rpb25TdGF0ZQogCUV4cHJTdGF0ZSAgKm1hc193aGVucXVh bDsJLyogV0hFTiBbTk9UXSBNQVRDSEVEIEFORCBjb25kaXRpb25zICovCiB9IE1lcmdlQWN0aW9u U3RhdGU7CiAKKy8qCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZQorICoKKyAqIEV4ZWN1dG9yIHN0YXRl IG9mIGEgRk9SIFBPUlRJT04gT0Ygb3BlcmF0aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBGb3JQ b3J0aW9uT2ZTdGF0ZQoreworCU5vZGVUYWcJCXR5cGU7CisKKwljaGFyICAgKmZwX3JhbmdlTmFt ZTsJCS8qIHRoZSBjb2x1bW4vUEVSSU9EIG5hbWVkIGluIEZPUiBQT1JUSU9OIE9GICovCisJT2lk CQlmcF9yYW5nZVR5cGU7CQkvKiB0aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVz c2lvbiAqLworCWJvb2wJZnBfaGFzUGVyaW9kOwkJLyogdHJ1ZSBpZmYgdGhpcyBpcyBhIFBFUklP RCBub3QgYSByYW5nZSAqLworCWludAkJZnBfcmFuZ2VBdHRubzsJCS8qIHRoZSBhdHRubyBvZiB0 aGUgcmFuZ2UgY29sdW1uIChvciAwIGZvciBhIFBFUklPRCkgKi8KKwlpbnQJCWZwX3BlcmlvZFN0 YXJ0QXR0bm87CS8qIHRoZSBhdHRubyBvZiB0aGUgUEVSSU9EIHN0YXJ0IGNvbHVtbiAob3IgMCBm b3IgYSByYW5nZSkgKi8KKwlpbnQJCWZwX3BlcmlvZEVuZEF0dG5vOwkJLyogdGhlIGF0dG5vIG9m IHRoZSBQRVJJT0QgZW5kIGNvbHVtbiAob3IgMCBmb3IgYSByYW5nZSkgKi8KKwlEYXR1bQlmcF90 YXJnZXRSYW5nZTsJCS8qIHRoZSByYW5nZSBmcm9tIEZPUiBQT1JUSU9OIE9GICovCisJVHlwZUNh Y2hlRW50cnkgKmZwX2xlZnRvdmVyc3R5cGNhY2hlOwkvKiB0eXBlIGNhY2hlIGVudHJ5IG9mIHRo ZSByYW5nZSAqLworCVR1cGxlVGFibGVTbG90ICpmcF9FeGlzdGluZzsJCS8qIHNsb3QgdG8gc3Rv cmUgZXhpc3RpbmcgdGFyZ2V0IHR1cGxlIGluICovCisJVHVwbGVUYWJsZVNsb3QgKmZwX0xlZnRv dmVyOwkJLyogc2xvdCB0byBzdG9yZSBsZWZ0b3ZlciAqLworfSBGb3JQb3J0aW9uT2ZTdGF0ZTsK KwogLyoKICAqIFJlc3VsdFJlbEluZm8KICAqCkBAIC01NDgsNiArNTcxLDkgQEAgdHlwZWRlZiBz dHJ1Y3QgUmVzdWx0UmVsSW5mbwogCUxpc3QJICAgKnJpX21hdGNoZWRNZXJnZUFjdGlvbjsKIAlM aXN0CSAgICpyaV9ub3RNYXRjaGVkTWVyZ2VBY3Rpb247CiAKKwkvKiBGT1IgUE9SVElPTiBPRiBl dmFsdWF0aW9uIHN0YXRlICovCisJRm9yUG9ydGlvbk9mU3RhdGUgKnJpX2ZvclBvcnRpb25PZjsK KwogCS8qIHBhcnRpdGlvbiBjaGVjayBleHByZXNzaW9uIHN0YXRlIChOVUxMIGlmIG5vdCBzZXQg dXAgeWV0KSAqLwogCUV4cHJTdGF0ZSAgKnJpX1BhcnRpdGlvbkNoZWNrRXhwcjsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGM4NmM2NmUwNGNmLi5jODM5YzhmYjJhNyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICov CiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogCisJLyogRk9SIFBPUlRJT04gT0YgY2xhdXNlIGZvciBVUERBVEUvREVMRVRFICovCisJRm9y UG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mOworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxp c3Qgb3IgaGF2aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0x NTQyLDYgKzE1NDUsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgUm93TWFya0NsYXVzZQogCWJvb2wJCXB1 c2hlZERvd247CQkvKiBwdXNoZWQgZG93biBmcm9tIGhpZ2hlciBxdWVyeSBsZXZlbD8gKi8KIH0g Um93TWFya0NsYXVzZTsKIAorLyoKKyAqIEZvclBvcnRpb25PZkNsYXVzZQorICoJCXJlcHJlc2Vu dGF0aW9uIG9mIEZPUiBQT1JUSU9OIE9GIDxwZXJpb2QtbmFtZT4gRlJPTSA8dHM+IFRPIDx0ZT4K KyAqCQlvciBGT1IgUE9SVElPTiBPRiA8cGVyaW9kLW5hbWU+ICg8dGFyZ2V0PikKKyAqLwordHlw ZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mQ2xhdXNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFy CSAgICpyYW5nZV9uYW1lOworCWludAkJCWxvY2F0aW9uOworCU5vZGUJICAgKnRhcmdldDsKKwlO b2RlCSAgICp0YXJnZXRfc3RhcnQ7CisJTm9kZQkgICAqdGFyZ2V0X2VuZDsKK30gRm9yUG9ydGlv bk9mQ2xhdXNlOworCiAvKgogICogV2l0aENsYXVzZSAtCiAgKgkgICByZXByZXNlbnRhdGlvbiBv ZiBXSVRIIGNsYXVzZQpAQCAtMTkwNSwxMiArMTkyMywxMyBAQCB0eXBlZGVmIHN0cnVjdCBJbnNl cnRTdG10CiAgKi8KIHR5cGVkZWYgc3RydWN0IERlbGV0ZVN0bXQKIHsKLQlOb2RlVGFnCQl0eXBl OwotCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gZGVsZXRlIGZyb20gKi8K LQlMaXN0CSAgICp1c2luZ0NsYXVzZTsJLyogb3B0aW9uYWwgdXNpbmcgY2xhdXNlIGZvciBtb3Jl IHRhYmxlcyAqLwotCU5vZGUJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLwot CUxpc3QJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJu ICovCi0JV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCisJTm9kZVRh ZwkJCQl0eXBlOworCVJhbmdlVmFyCQkgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBkZWxl dGUgZnJvbSAqLworCUZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mOwkvKiBGT1IgUE9S VElPTiBPRiBjbGF1c2UgKi8KKwlMaXN0CQkJICAgKnVzaW5nQ2xhdXNlOwkvKiBvcHRpb25hbCB1 c2luZyBjbGF1c2UgZm9yIG1vcmUgdGFibGVzICovCisJTm9kZQkJCSAgICp3aGVyZUNsYXVzZTsJ LyogcXVhbGlmaWNhdGlvbnMgKi8KKwlMaXN0CQkJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qg b2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJuICovCisJV2l0aENsYXVzZQkJICAgKndpdGhDbGF1c2U7 CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBEZWxldGVTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC0xOTE5LDEzICsxOTM4LDE0IEBAIHR5cGVkZWYgc3RydWN0IERlbGV0ZVN0bXQK ICAqLwogdHlwZWRlZiBzdHJ1Y3QgVXBkYXRlU3RtdAogewotCU5vZGVUYWcJCXR5cGU7Ci0JUmFu Z2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byB1cGRhdGUgKi8KLQlMaXN0CSAgICp0 YXJnZXRMaXN0OwkJLyogdGhlIHRhcmdldCBsaXN0IChvZiBSZXNUYXJnZXQpICovCi0JTm9kZQkg ICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCi0JTGlzdAkgICAqZnJvbUNsYXVz ZTsJCS8qIG9wdGlvbmFsIGZyb20gY2xhdXNlIGZvciBtb3JlIHRhYmxlcyAqLwotCUxpc3QJICAg KnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJuICovCi0JV2l0 aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCisJTm9kZVRhZwkJCQl0eXBl OworCVJhbmdlVmFyCQkgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byB1cGRhdGUgKi8KKwlG b3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZjsJLyogRk9SIFBPUlRJT04gT0YgY2xhdXNl ICovCisJTGlzdAkJCSAgICp0YXJnZXRMaXN0OwkJLyogdGhlIHRhcmdldCBsaXN0IChvZiBSZXNU YXJnZXQpICovCisJTm9kZQkJCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8K KwlMaXN0CQkJICAgKmZyb21DbGF1c2U7CQkvKiBvcHRpb25hbCBmcm9tIGNsYXVzZSBmb3IgbW9y ZSB0YWJsZXMgKi8KKwlMaXN0CQkJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVz c2lvbnMgdG8gcmV0dXJuICovCisJV2l0aENsYXVzZQkJICAgKndpdGhDbGF1c2U7CQkvKiBXSVRI IGNsYXVzZSAqLwogfSBVcGRhdGVTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhdGhub2Rlcy5oCmluZGV4IDUzNDY5MmJlZTE4Li4yY2Q4YzM4OTYyYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGF0aG5vZGVzLmgKQEAgLTIzNjQsNiArMjM2NCw3IEBAIHR5cGVkZWYgc3RydWN0IE1vZGlmeVRh YmxlUGF0aAogCUxpc3QJICAgKnJldHVybmluZ0xpc3RzOyAvKiBwZXItdGFyZ2V0LXRhYmxlIFJF VFVSTklORyB0bGlzdHMgKi8KIAlMaXN0CSAgICpyb3dNYXJrczsJCS8qIFBsYW5Sb3dNYXJrcyAo bm9uLWxvY2tpbmcgb25seSkgKi8KIAlPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdDsgLyogT04g Q09ORkxJQ1QgY2xhdXNlLCBvciBOVUxMICovCisJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlv bk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFURS9ERUxFVEUgKi8KIAlpbnQJ CQllcHFQYXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwgcmUtZXZhbCAqLwog CUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdHM7CS8qIHBlci10YXJnZXQtdGFibGUgbGlzdHMgb2Yg YWN0aW9ucyBmb3IKIAkJCQkJCQkJCSAqIE1FUkdFICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCmluZGV4 IGI0ZWY2YmM0NGM5Li45Y2I5YjE4YTRjMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKQEAgLTI0Myw2 ICsyNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZQogCUxpc3QJICAgKnJvd01hcmtz OwkJLyogUGxhblJvd01hcmtzIChub24tbG9ja2luZyBvbmx5KSAqLwogCWludAkJCWVwcVBhcmFt OwkJLyogSUQgb2YgUGFyYW0gZm9yIEV2YWxQbGFuUXVhbCByZS1ldmFsICovCiAJT25Db25mbGlj dEFjdGlvbiBvbkNvbmZsaWN0QWN0aW9uOwkvKiBPTiBDT05GTElDVCBhY3Rpb24gKi8KKwlOb2Rl CSAgICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RF TEVURSAqLwogCUxpc3QJICAgKmFyYml0ZXJJbmRleGVzOyAvKiBMaXN0IG9mIE9OIENPTkZMSUNU IGFyYml0ZXIgaW5kZXggT0lEcyAgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0U2V0OwkvKiBJTlNF UlQgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KIAlMaXN0CSAgICpvbkNvbmZs aWN0Q29sczsgLyogdGFyZ2V0IGNvbHVtbiBudW1iZXJzIGZvciBvbkNvbmZsaWN0U2V0ICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDRhMTU0NjA2ZDJiLi5lYTY3MDFkODNjYSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKQEAgLTIwNjgsNCArMjA2OCwzMCBAQCB0eXBlZGVmIHN0cnVjdCBPbkNvbmZs aWN0RXhwcgogCUxpc3QJICAgKmV4Y2xSZWxUbGlzdDsJLyogdGxpc3Qgb2YgdGhlIEVYQ0xVREVE IHBzZXVkbyByZWxhdGlvbiAqLwogfSBPbkNvbmZsaWN0RXhwcjsKIAorLyotLS0tLS0tLS0tCisg KiBGb3JQb3J0aW9uT2ZFeHByIC0gcmVwcmVzZW50cyBhIEZPUiBQT1JUSU9OIE9GIC4uLiBleHBy ZXNzaW9uCisgKgorICogV2Ugc2V0IHVwIGFuIGV4cHJlc3Npb24gdG8gbWFrZSBhIHJhbmdlIGZy b20gdGhlIEZST00vVE8gYm91bmRzLAorICogc28gdGhhdCB3ZSBjYW4gdXNlIHJhbmdlIG9wZXJh dG9ycyB3aXRoIGl0LgorICoKKyAqIFRoZW4gd2Ugc2V0IHVwIGFuIG92ZXJsYXBzIGV4cHJlc3Np b24gYmV0d2VlbiB0aGF0IGFuZCB0aGUgcmFuZ2UgY29sdW1uLAorICogc28gdGhhdCB3ZSBjYW4g ZmluZCB0aGUgcm93cyB3ZSBuZWVkIHRvIHVwZGF0ZS9kZWxldGUuCisgKgorICogSW4gdGhlIGV4 ZWN1dG9yIHdlJ2xsIGFsc28gYnVpbGQgYW4gaW50ZXJzZWN0IGV4cHJlc3Npb24gYmV0d2VlbiB0 aGUKKyAqIHRhcmdldGVkIHJhbmdlIGFuZCB0aGUgcmFuZ2UgY29sdW1uLCBzbyB0aGF0IHdlIGNh biB1cGRhdGUgdGhlIHN0YXJ0L2VuZAorICogYm91bmRzIG9mIHRoZSBVUERBVEUnZCByZWNvcmQu CisgKi0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mRXhwcgorewor CU5vZGVUYWcJCXR5cGU7CisJVmFyCQkgICAqcmFuZ2VWYXI7CQkJLyogUmFuZ2UgY29sdW1uICov CisJY2hhcgkgICAqcmFuZ2VfbmFtZTsJCQkvKiBSYW5nZSBuYW1lICovCisJTm9kZQkgICAqdGFy Z2V0UmFuZ2U7CQkvKiBGT1IgUE9SVElPTiBPRiBib3VuZHMgYXMgYSByYW5nZSAqLworCU9pZAkJ CXJhbmdlVHlwZTsJCQkvKiB0eXBlIG9mIHRhcmdldFJhbmdlICovCisJTm9kZQkgICAqb3Zlcmxh cHNFeHByOwkJLyogcmFuZ2UgJiYgdGFyZ2V0UmFuZ2UgKi8KKwlMaXN0CSAgICpyYW5nZVRhcmdl dExpc3Q7CS8qIExpc3Qgb2YgVGFyZ2V0RW50cnlzIHRvIHNldCB0aGUgdGltZSBjb2x1bW4ocykg Ki8KKwlPaWQJCQl3aXRob3V0UG9ydGlvblByb2M7CS8qIHByb2MgZm9yIG9sZF9yYW5nZSBALSB0 YXJnZXRfcmFuZ2UgKi8KK30gRm9yUG9ydGlvbk9mRXhwcjsKKwogI2VuZGlmCQkJCQkJCS8qIFBS SU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUu aCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCmluZGV4IGM0M2Q5N2I0OGE2Li4y MDE0Y2YyMzIzNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgK KysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKQEAgLTI4Myw3ICsyODMsOCBA QCBleHRlcm4gTW9kaWZ5VGFibGVQYXRoICpjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVy SW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCUxpc3QgKnVwZGF0ZUNvbG5vc0xpc3RzLAogCQkJCQkJ CQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3RzLAog CQkJCQkJCQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0LAot CQkJCQkJCQkJCQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgaW50IGVwcVBhcmFtKTsKKwkJCQkJ CQkJCQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsCisJCQkJCQkJCQkJCQlGb3JQb3J0aW9uT2ZF eHByICpmb3JQb3J0aW9uT2YsIGludCBlcHFQYXJhbSk7CiBleHRlcm4gTGltaXRQYXRoICpjcmVh dGVfbGltaXRfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJCQkJ CQkJUGF0aCAqc3VicGF0aCwKIAkJCQkJCQkJCU5vZGUgKmxpbWl0T2Zmc2V0LCBOb2RlICpsaW1p dENvdW50LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXggNWVjZGQxMDk0NjYuLmU1MTJmNGIyNGVhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9hbmFseXplLmgKQEAgLTQzLDcgKzQzLDggQEAgZXh0ZXJuIExpc3QgKnRyYW5zZm9y bUluc2VydFJvdyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCQkJCQkJCQlM aXN0ICpzdG10Y29scywgTGlzdCAqaWNvbHVtbnMsIExpc3QgKmF0dHJub3MsCiAJCQkJCQkJCWJv b2wgc3RyaXBfaW5kaXJlY3Rpb24pOwogZXh0ZXJuIExpc3QgKnRyYW5zZm9ybVVwZGF0ZVRhcmdl dExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJCQkJICAgTGlzdCAqb3JpZ1RsaXN0KTsK KwkJCQkJCQkJCSAgIExpc3QgKm9yaWdUbGlzdCwKKwkJCQkJCQkJCSAgIEZvclBvcnRpb25PZkV4 cHIgKmZvclBvcnRpb25PZik7CiBleHRlcm4gUXVlcnkgKnRyYW5zZm9ybVRvcExldmVsU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIFJhd1N0bXQgKnBhcnNlVHJlZSk7CiBleHRlcm4gUXVlcnkgKnRy YW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpOwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKaW5kZXggZGY1ZTI4ODdiNTIuLjRlOWI0OGZmZjY2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC0zMzAsNiArMzMwLDcgQEAgUEdfS0VZV09SRCgicGVyaW9kIiwgUEVSSU9ELCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lORywg UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW5zIiwgUExBTlMs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBvbGljeSIsIFBP TElDWSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicG9ydGlv biIsIFBPUlRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InBvc2l0aW9uIiwgUE9TSVRJT04sIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJwcmVjZWRpbmciLCBQUkVDRURJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInByZWNpc2lvbiIsIFBSRUNJU0lPTiwgQ09MX05BTUVfS0VZV09S RCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA5OWQ2NTE1NzM2NS4uNWU3 NDBmZWY4ODEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtNTYsNiArNTYsNyBAQCB0eXBl ZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9VUERBVEVfU09VUkNFLAkvKiBVUERB VEUgYXNzaWdubWVudCBzb3VyY2UgaXRlbSAqLwogCUVYUFJfS0lORF9VUERBVEVfVEFSR0VULAkv KiBVUERBVEUgYXNzaWdubWVudCB0YXJnZXQgaXRlbSAqLwogCUVYUFJfS0lORF9NRVJHRV9XSEVO LAkJLyogTUVSR0UgV0hFTiBbTk9UXSBNQVRDSEVEIGNvbmRpdGlvbiAqLworCUVYUFJfS0lORF9V UERBVEVfUE9SVElPTiwJLyogVVBEQVRFIEZPUiBQT1JUSU9OIE9GIGl0ZW0gKi8KIAlFWFBSX0tJ TkRfR1JPVVBfQlksCQkJLyogR1JPVVAgQlkgKi8KIAlFWFBSX0tJTkRfT1JERVJfQlksCQkJLyog T1JERVIgQlkgKi8KIAlFWFBSX0tJTkRfRElTVElOQ1RfT04sCQkvKiBESVNUSU5DVCBPTiAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAppbmRleCBlNGEyMDBiMDBlYy4uNDhkZjEwN2MxY2UgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L2xzeXNjYWNoZS5oCkBAIC0xMTksNyArMTE5LDcgQEAgZXh0ZXJuIE9pZAlnZXRfbmVnYXRvcihP aWQgb3Bubyk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9vcHJyZXN0KE9pZCBvcG5vKTsKIGV4 dGVybiBSZWdQcm9jZWR1cmUgZ2V0X29wcmpvaW4oT2lkIG9wbm8pOwogZXh0ZXJuIGNoYXIgKmdl dF9mdW5jX25hbWUoT2lkIGZ1bmNpZCk7Ci1leHRlcm4gT2lkCWdldF9mdW5jX25hbWVzcGFjZShP aWQgZnVuY2lkKTsKK2V4dGVybiBPaWQJZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQsIGJv b2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9mdW5jX3JldHR5cGUoT2lkIGZ1bmNpZCk7 CiBleHRlcm4gaW50CWdldF9mdW5jX25hcmdzKE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRf ZnVuY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkICoqYXJndHlwZXMsIGludCAqbmFyZ3MpOwpA QCAtMTQyLDYgKzE0Miw4IEBAIGV4dGVybiBjaGFyIGdldF9yZWxfcGVyc2lzdGVuY2UoT2lkIHJl bGlkKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV9mcm9tc3FsKE9pZCB0eXBpZCwgT2lkIGxh bmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX3Rvc3FsKE9p ZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5 cGlzZGVmaW5lZChPaWQgdHlwaWQpOworZXh0ZXJuIGNoYXIgKmdldF90eXBuYW1lKE9pZCB0eXBp ZCk7CitleHRlcm4gYm9vbCBnZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlKE9pZCB0eXBpZCwgY2hh ciAqKnR5cG5hbWUsIGNoYXIgKip0eXBuYW1lc3BhY2UpOwogZXh0ZXJuIGludDE2IGdldF90eXBs ZW4oT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGdldF90eXBieXZhbChPaWQgdHlwaWQpOwogZXh0 ZXJuIHZvaWQgZ2V0X3R5cGxlbmJ5dmFsKE9pZCB0eXBpZCwgaW50MTYgKnR5cGxlbiwgYm9vbCAq dHlwYnl2YWwpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9y dGlvbl9vZi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91 dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWMwYTVjZjRiMWIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29m Lm91dApAQCAtMCwwICsxLDY4NSBAQAorLS0gVGVzdHMgZm9yIFVQREFURS9ERUxFVEUgRk9SIFBP UlRJT04gT0YKKy0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1bW5zCitDUkVBVEUgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAg bmFtZSB0ZXh0IE5PVCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBW QUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSknLCAnb25lJyk7CitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0xNScgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdmb28nOworREVMRVRFIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0xNScgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKyAgaWQg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAg ICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6 MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAxOSIpIHwgZm9vCisgWzEsMikgfCBbIlR1 ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgb25l CisgWzEsMikgfCBbIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAxOSIsIlR1ZSBKYW4gMTUgMDA6MDA6 MDAgMjAxOSIpIHwgb25lCisoMyByb3dzKQorCistLSBXb3JrcyBvbiBtb3JlIHRoYW4gb25lIHJh bmdlCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWQxX2F0IHRzcmFuZ2UsCisg IHZhbGlkMl9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5U TyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKScsICdbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKScsICdvbmUnKTsKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0x NScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdDsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQxX2F0ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkMl9hdCAgICAg ICAgICAgICAgICAgICAgICAgIHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsi TW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiU2F0IEZlYiAwMyAwMDowMDowMCAyMDE4IikgfCBb IlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwg Zm9vCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6 MDA6MDAgMjAxOCIpIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJXZWQgSmFuIDAxIDAw OjAwOjAwIDIwMjUiKSB8IG9uZQorKDIgcm93cykKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitT RVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0OworICBp ZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQyX2F0ICAgICAgICAgICAgICAgICAg ICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAw OjAwOjAwIDIwMTgiLCJTYXQgRmViIDAzIDAwOjAwOjAwIDIwMTgiKSB8IFsiTW9uIEphbiAxNSAw MDowMDowMCAyMDE4IiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikgfCBiYXIKKyBbMSwyKSB8 IFsiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiU2F0IEZlYiAwMyAwMDowMDowMCAyMDE4Iikg fCBbIlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIp IHwgZm9vCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUg MDA6MDA6MDAgMjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJXZWQgSmFuIDAx IDAwOjAwOjAwIDIwMjUiKSB8IGJhcgorIFsxLDIpIHwgWyJUdWUgSmFuIDAyIDAwOjAwOjAwIDIw MTgiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAy MDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBvbmUKKyg0IHJvd3MpCisKK0RFTEVU RSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMV9hdCBGUk9N ICcyMDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQyX2F0ICAgICAgICAgICAg ICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwgWyJUdWUgSmFu IDAyIDAwOjAwOjAwIDIwMTgiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IFsiTW9uIEph biAxNSAwMDowMDowMCAyMDE4IiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikgfCBiYXIKKyBb MSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4IiwiTW9uIEphbiAxNSAwMDowMDowMCAy MDE4IikgfCBbIlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIk1vbiBKYW4gMTUgMDA6MDA6MDAg MjAxOCIpIHwgb25lCisgWzEsMikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIlNhdCBK YW4gMjAgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJXZWQg SmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGJhcgorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAw OjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDow MDowMCAyMDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBmb28KKyg0IHJvd3MpCisK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9h dCBGUk9NICcyMDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQyX2F0ICAgICAg ICAgICAgICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwgWyJU dWUgSmFuIDAyIDAwOjAwOjAwIDIwMTgiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IFsi VGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBv bmUKKyBbMSwyKSB8IFsiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiU2F0IEphbiAyMCAwMDow MDowMCAyMDE4IikgfCBbIlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIk1vbiBKYW4gMTUgMDA6 MDA6MDAgMjAxOCIpIHwgZm9vCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIs Ik1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgi LCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IGJhcgorIFsxLDIpIHwgWyJNb24gSmFuIDE1 IDAwOjAwOjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IFsiTW9uIEphbiAx NSAwMDowMDowMCAyMDE4IiwiU2F0IEphbiAyMCAwMDowMDowMCAyMDE4IikgfCBiYXIKKyg0IHJv d3MpCisKKy0tIFRlc3Qgd2l0aCBOVUxMcyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5z LgorLS0gVGhpcyB3b24ndCBoYXBwZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklR VUUgY29uc3RyYWludAorLS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRo YXQuCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFC TEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNy YW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBW QUxVRVMKKyAgKCdbMSwyKScsIE5VTEwsICcxIG51bGwnKSwKKyAgKCdbMSwyKScsICcoLCknLCAn MSB1bmJvdW5kZWQnKSwKKyAgKCdbMSwyKScsICdlbXB0eScsICcxIGVtcHR5JyksCisgIChOVUxM LCBOVUxMLCBOVUxMKSwKKyAgKE5VTEwsIHRzcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOS0wMS0w MScpLCAnbnVsbCBrZXknKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCisgIFNFVCBuYW1lID0gJ05VTEwgdG8g TlVMTCc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg IG5hbWUgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxIG51bGwKKyBb MSwyKSB8IGVtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxIGVtcHR5CisgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgWzEsMikgfCAoLCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTlVMTCB0byBOVUxMCisgICAg ICAgfCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAx OSIpIHwgTlVMTCB0byBOVUxMCisoNSByb3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29m X3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5n ZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgdHNyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5P VCBOVUxMLAorCUNPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29m X3Rlc3QKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUn KSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIp JywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0w MS0wMSwyMDE4LTAxLTA1KScsICd0d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0 aHJlZScpLAorKCdbNCw1KScsICcoLDIwMTgtMDQtMDEpJywgJ2ZvdXInKSwKKygnWzUsNiknLCAn KCwpJywgJ2ZpdmUnKQorOworLS0KKy0tIFVQREFURSB0ZXN0cworLS0KKy0tIFNldHRpbmcgd2l0 aCBhIG1pc3NpbmcgY29sdW1uIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFt ZSA9ICdmb28nCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJpb2Qg ImludmFsaWRfYXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2VzIG5vdCBl eGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEn IFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0dGluZyB0aGUgcmFuZ2Ug ZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgdmFsaWRfYXQgPSAnWzE5OTAtMDEtMDEs MTk5OS0wMS0wMSknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNhbid0IGRpcmVjdGx5 IGFzc2lnbiB0byAidmFsaWRfYXQiIGluIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRlCitMSU5FIDM6 IFNFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAxKScKKyAgICAgICAgICAgIF4K Ky0tIFRoZSB3cm9uZyB0eXBlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAxIFRPIDQKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVS RSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIGZ1bmN0aW9uIHBnX2NhdGFsb2cudHNyYW5nZShpbnRl Z2VyLCBpbnRlZ2VyKSBkb2VzIG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIDEgVE8gNAorICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgTm8gZnVu Y3Rpb24gbWF0Y2hlcyB0aGUgZ2l2ZW4gbmFtZSBhbmQgYXJndW1lbnQgdHlwZXMuIFlvdSBtaWdo dCBuZWVkIHRvIGFkZCBleHBsaWNpdCB0eXBlIGNhc3RzLgorLS0gU2V0dGluZyB3aXRoIHRpbWVz dGFtcHMgcmV2ZXJzZWQgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAxOC0wMS0wMScKK1NFVCBu YW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIHJhbmdlIGxvd2Vy IGJvdW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5kCist LSBTZXR0aW5nIHdpdGggYSBzdWJxdWVyeSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRP ICcyMDE4LTA2LTAxJworU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VS Uk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uCitM SU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAxOC0wMS0wMScp IFRPICcyMDE4LS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IFNldHRpbmcgd2l0aCBhIGNvbHVtbiBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKK1NF VCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIGNhbm5vdCB1c2Ug Y29sdW1uIHJlZmVyZW5jZSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uCitMSU5FIDI6IEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBTZXR0aW5nIHdpdGgg dGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0w MScKK1NFVCBuYW1lID0gJ3RocmVlXjAnCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGlu ZyBhIGZpbml0ZS9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDYtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7 CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBvcnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0 YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NIE5VTEwgVE8gJzIwMTgtMDMtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUg aWQgPSAnWzMsNCknOworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGFu IG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1lID0gJ2Zv dXJeMScKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGFuIG9wZW4vZmluaXRlIHBv cnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPIE5VTEwKK1NF VCBuYW1lID0gJ2ZvdXJeMicKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGEgZmlu aXRlL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gZXhhY3QgZml0CitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIw MTgtMDItMDEnCitTRVQgbmFtZSA9ICdmb3VyXjMnCitXSEVSRSBpZCA9ICdbNCw1KSc7CistLSBV cGRhdGluZyBhbiBlbmNsb3NlZCBzcGFuCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3R3b14y JworV0hFUkUgaWQgPSAnWzIsMyknOworLS0gVXBkYXRpbmcgYW4gb3Blbi9vcGVuIHBvcnRpb24g d2l0aCBhIGZpbml0ZS9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMScgVE8gJzIwMTktMDEtMDEn CitTRVQgbmFtZSA9ICdmaXZlXjInCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBh biBlbmNsb3NlZCBzcGFuIHdpdGggc2VwYXJhdGUgcHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEt MDEnIFRPICcyMDIwLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUs NiknOworLS0gVXBkYXRpbmcgbXVsdGlwbGUgZW5jbG9zZWQgc3BhbnMKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAor U0VUIG5hbWUgPSAnb25lXjInCitXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBVcGRhdGluZyB3aXRo IGEgc2hpZnQvcmVkdWNlIGNvbmZsaWN0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAnMjAxOC0wMy0wMScgQVQgVElNRSBaT05FIElO VEVSVkFMICcxJyBIT1VSIFRPIE1JTlVURQorICBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0g J29uZV4zJworV0hFUkUgaWQgPSAnWzEsMiknOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9O RSBJTlRFUlZBTCAnMicgSE9VUgorICBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV40 JworV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi JzIwMTktMDEtMDEnIgorTElORSA0OiAgIFRPICcyMDE5LTAxLTAxJworICAgICAgICAgICAgIF4K K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBG Uk9NICgnMjAxOC0wMy0wMScgQVQgVElNRSBaT05FIElOVEVSVkFMICcyJyBIT1VSKQorICBUTyAn MjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV40JworV0hFUkUgaWQgPSAnWzEsMiknOworLS0g V2l0aCBhIGRpcmVjdCB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCAodHNyYW5nZSgnMjAxOC0wMy0xMCcsICcyMDE4LTAzLTE3JykpCitT RVQgbmFtZSA9ICdvbmVeNScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIFVwZGF0aW5nIHRoZSBu b24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0g J1s2LDcpJworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gVVBEQVRFIHdpdGggbm8gV0hFUkUgY2xh dXNlCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAzMC0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSBuYW1lIHx8ICcqJzsKK1NFTEVD VCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlk ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgWzEsMikgfCBbIlR1ZSBKYW4g MDIgMDA6MDA6MDAgMjAxOCIsIlNhdCBGZWIgMDMgMDA6MDA6MDAgMjAxOCIpIHwgb25lXjIKKyBb MSwyKSB8IFsiU2F0IEZlYiAwMyAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAxNSAwMDowMDowMCAy MDE4IikgfCBvbmVeMgorIFsyLDMpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkg SmFuIDA1IDAwOjAwOjAwIDIwMTgiKSB8IHR3b14yCisgWzMsNCkgfCBbIk1vbiBKYW4gMDEgMDA6 MDA6MDAgMjAxOCIsIlRodSBNYXIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgdGhyZWVeMgorIFszLDQp IHwgWyJUaHUgTWFyIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkgSnVuIDAxIDAwOjAwOjAwIDIwMTgi KSB8IHRocmVlCisgWzMsNCkgfCBbIkZyaSBKdW4gMDEgMDA6MDA6MDAgMjAxOCIsIlR1ZSBKYW4g MDEgMDA6MDA6MDAgMjAzMCIpIHwgdGhyZWVeMQorIFszLDQpIHwgWyJUdWUgSmFuIDAxIDAwOjAw OjAwIDIwMzAiLCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlXjEqCisgWzQsNSkg fCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgZm91cl4xCisgWzQsNSkgfCBbIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIsIlRodSBGZWIg MDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4zCisgWzQsNSkgfCBbIlRodSBGZWIgMDEgMDA6MDA6 MDAgMjAxOCIsIlN1biBBcHIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4yCisgWzUsNikgfCAo LCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg Zml2ZQorIFs1LDYpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJNb24gSmFuIDAxIDAw OjAwOjAwIDIwMTgiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIw MTgiLCJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMTkiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJUdWUg SmFuIDAxIDAwOjAwOjAwIDIwMTkiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiKSB8IGZpdmVe MworIFs1LDYpIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAxIDAwOjAw OjAwIDIwMzAiKSB8IGZpdmUKKyBbNSw2KSB8IFsiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIiwp ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmaXZlKgorIFs2LDcpIHwgWyJUaHUgRmViIDE1 IDAwOjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAxIDA4OjAxOjAwIDIwMTgiKSB8IG9uZV4yCisgWzYs NykgfCBbIlRodSBNYXIgMDEgMDg6MDE6MDAgMjAxOCIsIlRodSBNYXIgMDEgMTA6MDA6MDAgMjAx OCIpIHwgb25lXjMKKyBbNiw3KSB8IFsiVGh1IE1hciAwMSAxMDowMDowMCAyMDE4IiwiU2F0IE1h ciAwMyAwMDowMDowMCAyMDE4IikgfCBvbmVeNAorIFs2LDcpIHwgWyJTYXQgTWFyIDAzIDAwOjAw OjAwIDIwMTgiLCJTYXQgTWFyIDEwIDAwOjAwOjAwIDIwMTgiKSB8IG9uZV40CisgWzYsNykgfCBb IlNhdCBNYXIgMTAgMDA6MDA6MDAgMjAxOCIsIlNhdCBNYXIgMTcgMDA6MDA6MDAgMjAxOCIpIHwg b25lXjUKKyBbNiw3KSB8IFsiU2F0IE1hciAxNyAwMDowMDowMCAyMDE4IiwiV2VkIEFwciAwNCAw MDowMDowMCAyMDE4IikgfCBvbmVeNAorKDIyIHJvd3MpCisKKy0tCistLSBERUxFVEUgdGVzdHMK Ky0tCistLSBEZWxldGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK0RFTEVURSBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAx OC0wNi0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICBjb2x1bW4gb3Ig cGVyaW9kICJpbnZhbGlkX2F0IiBvZiByZWxhdGlvbiAiZm9yX3BvcnRpb25fb2ZfdGVzdCIgZG9l cyBub3QgZXhpc3QKK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4 LTA2LTAxJyBUTyBOVUxMCisgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERlbGV0aW5nIHdp dGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMTgt MDEtMDEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIHJhbmdlIGxvd2VyIGJvdW5kIG11 c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5kCistLSBEZWxldGlu ZyB3aXRoIHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBU TyAnMjAxOC0wNC0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIERlbGV0aW5nIHdpdGggYSBj bG9zZWQvY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMjAtMDYtMDEnCitX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0 CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA0LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBEZWxl dGluZyB3aXRoIGFuIG9wZW4vY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTA4 JworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gRGVsZXRpbmcgd2l0aCBhbiBvcGVuL29wZW4gdGFy Z2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gREVMRVRFIHdp dGggbm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAxJyBUTyBOVUxMOworU0VMRUNUICog RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAg fCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbIlRodSBGZWIgMDggMDA6 MDA6MDAgMjAxOCIsIlRodSBGZWIgMTUgMDA6MDA6MDAgMjAxOCIpIHwgb25lXjIKKyBbMiwzKSB8 IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiRnJpIEphbiAwNSAwMDowMDowMCAyMDE4Iikg fCB0d29eMgorIFszLDQpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAx IDAwOjAwOjAwIDIwMTgiKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsiVGh1IE1hciAwMSAwMDowMDow MCAyMDE4IiwiU3VuIEFwciAwMSAwMDowMDowMCAyMDE4IikgfCB0aHJlZQorIFs0LDUpIHwgKCwi U3VuIEphbiAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZv dXJeMQorIFs0LDUpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJUaHUgRmViIDAxIDAw OjAwOjAwIDIwMTgiKSB8IGZvdXJeMworIFs0LDUpIHwgWyJUaHUgRmViIDAxIDAwOjAwOjAwIDIw MTgiLCJTdW4gQXByIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZvdXJeMgorIFs1LDYpIHwgKCwiU3Vu IEphbiAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZpdmUK KyBbNSw2KSB8IFsiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3IiwiTW9uIEphbiAwMSAwMDowMDow MCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4Iiwi RnJpIEp1biAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEp1biAw MSAwMDowMDowMCAyMDIwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikgfCBmaXZlCisoMTEg cm93cykKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5JTkcgcmV0dXJucyBvbmx5IHRoZSB1cGRhdGVk IHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBzaWRlIHZhbHVlcykKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAxJyBUTyAn MjAxOC0wMi0xNScKK1NFVCBuYW1lID0gJ3RocmVlXjMnCitXSEVSRSBpZCA9ICdbMyw0KScKK1JF VFVSTklORyAqOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBbMyw0 KSB8IFsiVGh1IEZlYiAwMSAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAxNSAwMDowMDowMCAyMDE4 IikgfCB0aHJlZV4zCisoMSByb3cpCisKKy0tIHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24g dGhlIFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VSVGVkIHJvd3MKK0NSRUFURSBGVU5D VElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCkKK1JFVFVSTlMgdHJpZ2dlcgorQVMKKyQkCitC RUdJTgorICBSQUlTRSBOT1RJQ0UgJyUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19PUCwgTkVXLnZh bGlkX2F0LCBPTEQudmFsaWRfYXQ7CisgIElGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJF VFVSTiBPTEQ7CisgIEVMU0UKKyAgICBSRVRVUk4gTkVXOworICBFTkQgSUY7CitFTkQ7CiskJAor TEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZv cmUKKyAgQkVGT1JFIElOU0VSVCBPUiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29m X3Rlc3QKKyAgRk9SIEVBQ0ggUk9XCisgIEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2Zf dHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyCisgIEFG VEVSIElOU0VSVCBPUiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAg Rk9SIEVBQ0ggUk9XCisgIEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlcigp OworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV40JworV0hF UkUgaWQgPSAnWzUsNiknOworTk9USUNFOiAgQkVGT1JFIFVQREFURSBbIkZyaSBKYW4gMDEgMDA6 MDA6MDAgMjAyMSIsIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIpIG9mIFsiTW9uIEp1biAwMSAw MDowMDowMCAyMDIwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikKK05PVElDRTogIEJFRk9S RSBJTlNFUlQgWyJNb24gSnVuIDAxIDAwOjAwOjAwIDIwMjAiLCJGcmkgSmFuIDAxIDAwOjAwOjAw IDIwMjEiKSBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBJTlNFUlQgWyJTYXQgSmFuIDAxIDAw OjAwOjAwIDIwMjIiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSBvZiA8TlVMTD4KK05PVElD RTogIEFGVEVSIElOU0VSVCBbIk1vbiBKdW4gMDEgMDA6MDA6MDAgMjAyMCIsIkZyaSBKYW4gMDEg MDA6MDA6MDAgMjAyMSIpIG9mIDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFsiU2F0IEph biAwMSAwMDowMDowMCAyMDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1Iikgb2YgPE5VTEw+ CitOT1RJQ0U6ICBBRlRFUiBVUERBVEUgWyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMjEiLCJTYXQg SmFuIDAxIDAwOjAwOjAwIDIwMjIiKSBvZiBbIk1vbiBKdW4gMDEgMDA6MDA6MDAgMjAyMCIsIldl ZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0w MScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBERUxFVEUgPE5VTEw+IG9m IFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikK K05PVElDRTogIEJFRk9SRSBJTlNFUlQgWyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJTdW4g SmFuIDAxIDAwOjAwOjAwIDIwMjMiKSBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBJTlNFUlQg WyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMjQiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSBv ZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBbIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAy MiIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAyMyIpIG9mIDxOVUxMPgorTk9USUNFOiAgQUZURVIg SU5TRVJUIFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDI0IiwiV2VkIEphbiAwMSAwMDowMDowMCAy MDI1Iikgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBERUxFVEUgPE5VTEw+IG9mIFsiU2F0IEph biAwMSAwMDowMDowMCAyMDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAg IHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWyJUaHUgRmViIDA4IDAw OjAwOjAwIDIwMTgiLCJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiKSB8IG9uZV4yCisgWzIsMykg fCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIkZyaSBKYW4gMDUgMDA6MDA6MDAgMjAxOCIp IHwgdHdvXjIKKyBbMyw0KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAw MSAwMDowMDowMCAyMDE4IikgfCB0aHJlZV4yCisgWzMsNCkgfCBbIlRodSBGZWIgMDEgMDA6MDA6 MDAgMjAxOCIsIlRodSBGZWIgMTUgMDA6MDA6MDAgMjAxOCIpIHwgdGhyZWVeMworIFszLDQpIHwg WyJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAxIDAwOjAwOjAwIDIwMTgiKSB8 IHRocmVlXjIKKyBbMyw0KSB8IFsiVGh1IE1hciAwMSAwMDowMDowMCAyMDE4IiwiU3VuIEFwciAw MSAwMDowMDowMCAyMDE4IikgfCB0aHJlZQorIFs0LDUpIHwgKCwiU3VuIEphbiAwMSAwMDowMDow MCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWyJT dW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZv dXJeMworIFs0LDUpIHwgWyJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiLCJTdW4gQXByIDAxIDAw OjAwOjAwIDIwMTgiKSB8IGZvdXJeMgorIFs1LDYpIHwgKCwiU3VuIEphbiAwMSAwMDowMDowMCAy MDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZpdmUKKyBbNSw2KSB8IFsiU3VuIEph biAwMSAwMDowMDowMCAyMDE3IiwiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMK KyBbNSw2KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiRnJpIEp1biAwMSAwMDowMDow MCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEp1biAwMSAwMDowMDowMCAyMDIwIiwi RnJpIEphbiAwMSAwMDowMDowMCAyMDIxIikgfCBmaXZlCisgWzUsNikgfCBbIkZyaSBKYW4gMDEg MDA6MDA6MDAgMjAyMSIsIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIpIHwgZml2ZV40CisgWzUs NikgfCBbIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAy MyIpIHwgZml2ZQorIFs1LDYpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMjQiLCJXZWQgSmFu IDAxIDAwOjAwOjAwIDIwMjUiKSB8IGZpdmUKKygxNiByb3dzKQorCitEUk9QIEZVTkNUSU9OIGZv cl9wb3J0aW9uX29mX3RyaWdnZXIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g MiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zv cl9wb3J0aW9uX29mX2JlZm9yZSBvbiB0YWJsZSBmb3JfcG9ydGlvbl9vZl90ZXN0Citkcm9wIGNh c2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyIG9uIHRhYmxlIGZvcl9w b3J0aW9uX29mX3Rlc3QKKy0tIFRyaWdnZXJzIHdpdGggYSBjdXN0b20gdHJhbnNpdGlvbiB0YWJs ZSBuYW1lOgorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5n ZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxV RVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKK0NSRUFURSBG VU5DVElPTiBkdW1wX3RyaWdnZXIoKQorUkVUVVJOUyBUUklHR0VSIExBTkdVQUdFIHBscGdzcWwg QVMKKyQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ1RHX09QID0gJScsIFRHX09QOworICBJRiBU R19PUCA9ICdJTlNFUlQnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19M RVZFTCA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxF Q1Qgc3RyaW5nX2FnZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gbmV3 X3RhYmxlKTsKKyAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCisgICAgUkFJU0UgTk9USUNF ICd0cmlnZ2VyID0gJSwgVEdfTEVWRUwgPSAlLCBPTEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAl JywKKyAgICAgIFRHX05BTUUsIFRHX0xFVkVMLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG9s ZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpLAorICAgICAg KFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJP TSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdERUxFVEUnIFRIRU4KKyAgICBSQUlTRSBO T1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUsIE9MRCB0YWJsZSA9ICUnLAorICAgICAg VEdfTkFNRSwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5nX2FnZyhvbGRfdGFibGU6OnRleHQsICcs ICcgT1JERVIgQlkgaWQpIEZST00gb2xkX3RhYmxlKTsKKyAgRU5EIElGOworICBSRVRVUk4gTlVM TDsKK0VORDsKKyQkOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRf dHJpZworQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5F VyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1w X3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3Ry aWdfc3RtdAorQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5H IE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NF RFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3Rf dXBkYXRlX3RyaWcKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVO Q0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBF QUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VS IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdAorQUZURVIgVVBEQVRFIE9OIGZv cl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVX IFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJF IGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxl dGVfdHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5H IE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBk dW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRl X3RyaWdfc3RtdAorQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5D SU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBS T0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTkt MDEtMDEnCisgIFNFVCBuYW1lID0gJzIwMTgtMDEtMTVfdG9fMjAxOS0wMS0wMSc7CitOT1RJQ0U6 ICBUR19PUCA9IElOU0VSVAorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3Rf aW5zZXJ0X3RyaWcsIFRHX0xFVkVMID0gUk9XLCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAx LTIwMTgsMDEtMTUtMjAxOCkiLG9uZSksICgiWzEsMikiLCJbMDEtMDEtMjAxOSwwMS0wMS0yMDIw KSIsb25lKQorTk9USUNFOiAgVEdfT1AgPSBJTlNFUlQKK05PVElDRTogIHRyaWdnZXIgPSBmb3Jf cG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnLCBUR19MRVZFTCA9IFJPVywgTkVXIHRhYmxlID0g KCJbMSwyKSIsIlswMS0wMS0yMDE4LDAxLTE1LTIwMTgpIixvbmUpLCAoIlsxLDIpIiwiWzAxLTAx LTIwMTksMDEtMDEtMjAyMCkiLG9uZSkKK05PVElDRTogIFRHX09QID0gVVBEQVRFCitOT1RJQ0U6 ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZywgVEdfTEVWRUwgPSBS T1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMS0yMDIwKSIsb25lKSwg TkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0xNS0yMDE4LDAxLTAxLTIwMTkpIiwyMDE4LTAxLTE1 X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBUR19PUCA9IFVQREFURQorTk9USUNFOiAgdHJpZ2dl ciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdCwgVEdfTEVWRUwgPSBTVEFU RU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMS0yMDIwKSIsb25l KSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0xNS0yMDE4LDAxLTAxLTIwMTkpIiwyMDE4LTAx LTE1X3RvXzIwMTktMDEtMDEpCitST0xMQkFDSzsKK0JFR0lOOworREVMRVRFIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIw MTgtMDEtMjEnOworTk9USUNFOiAgVEdfT1AgPSBJTlNFUlQKK05PVElDRTogIHRyaWdnZXIgPSBm b3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnLCBUR19MRVZFTCA9IFJPVywgTkVXIHRhYmxl ID0gKCJbMSwyKSIsIlswMS0yMS0yMDE4LDAxLTAxLTIwMjApIixvbmUpCitOT1RJQ0U6ICBUR19P UCA9IERFTEVURQorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRl X3RyaWcsIFRHX0xFVkVMID0gUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgs MDEtMDEtMjAyMCkiLG9uZSkKK05PVElDRTogIFRHX09QID0gREVMRVRFCitOT1RJQ0U6ICB0cmln Z2VyID0gZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10LCBUR19MRVZFTCA9IFNU QVRFTUVOVCwgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlswMS0wMS0yMDE4LDAxLTAxLTIwMjApIixv bmUpCitST0xMQkFDSzsKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTAyJworICBTRVQgbmFt ZSA9ICdOVUxMX3RvXzIwMTgtMDEtMDEnOworTk9USUNFOiAgVEdfT1AgPSBJTlNFUlQKK05PVElD RTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnLCBUR19MRVZFTCA9 IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0wMi0yMDE4LDAxLTAxLTIwMjApIixvbmUp CitOT1RJQ0U6ICBUR19PUCA9IFVQREFURQorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9u X29mX3Rlc3RfdXBkYXRlX3RyaWcsIFRHX0xFVkVMID0gUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIp IiwiWzAxLTAxLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJb MDEtMDEtMjAxOCwwMS0wMi0yMDE4KSIsTlVMTF90b18yMDE4LTAxLTAxKQorTk9USUNFOiAgVEdf T1AgPSBVUERBVEUKK05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0 ZV90cmlnX3N0bXQsIFRHX0xFVkVMID0gU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwi WzAxLTAxLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMDEt MDEtMjAxOCwwMS0wMi0yMDE4KSIsTlVMTF90b18yMDE4LTAxLTAxKQorUk9MTEJBQ0s7CistLSBU ZXN0IHdpdGggbXVsdGlyYW5nZXMKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAo CisgIGlkIGludDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UgTk9U IE5VTEwsCisgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKwlDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29m X3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMpJyksIGRhdGVy YW5nZSgnMjAxOC0wMi0wNCcsICcyMDE4LTAzLTAzJykpLCAnb25lJyksCisoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQpJykpLCAnb25l JyksCisoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDUtMDEpJykpLCAndHdvJyksCisoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgbnVsbCkpLCAndGhyZWUnKTsKKzsKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0xMCcsICcyMDE4LTAyLTEwJyksIGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcy MDE4LTA1LTAxJykpKQorU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitE RUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg KGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRh dGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMykn OworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCB7WzAxLTAyLTIwMTgsMDEtMTAtMjAxOCksWzAy LTEwLTIwMTgsMDMtMDMtMjAxOCl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lCisgWzEs MikgfCB7WzAxLTEwLTIwMTgsMDItMDMtMjAxOCksWzAyLTA0LTIwMTgsMDItMTAtMjAxOCl9ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgb25lXjEKKyBbMSwyKSB8IHtbMDMtMDMtMjAxOCwwMy0w NS0yMDE4KX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBvbmUKKyBbMSwyKSB8IHtbMDMtMDUtMjAxOCwwNC0wNC0yMDE4KX0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvbmVeMQorIFsyLDMpIHwge1swMS0w MS0yMDE4LDAxLTE1LTIwMTgpLFswMi0xNS0yMDE4LDAzLTAxLTIwMTgpLFswMy0xNS0yMDE4LDA1 LTAxLTIwMTgpfSB8IHR3bworIFszLDQpIHwge1swMS0wMS0yMDE4LCl9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlCisoNiBy b3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0gVGVzdCB3aXRoIGEg Y3VzdG9tIHJhbmdlIHR5cGUKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5 cGU9ZGF0ZSk7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0 cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1l IHRleHQgTk9UIE5VTEwsCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8g Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAn b25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdb MiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTA1LTAxKScsICd0d28nKSwKKygnWzMsNCknLCAnWzIw MTgtMDEtMDEsKScsICd0aHJlZScpOworOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcK K1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworU0VMRUNUICogRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFswMS0wMi0yMDE4LDAxLTEwLTIwMTgpIHwgb25lCisg WzEsMikgfCBbMDEtMTAtMjAxOCwwMi0wMy0yMDE4KSB8IG9uZV4xCisgWzEsMikgfCBbMDItMDMt MjAxOCwwMi0xMC0yMDE4KSB8IG9uZV4xCisgWzEsMikgfCBbMDItMTAtMjAxOCwwMy0wMy0yMDE4 KSB8IG9uZQorIFsxLDIpIHwgWzAzLTAzLTIwMTgsMDQtMDQtMjAxOCkgfCBvbmUKKyBbMiwzKSB8 IFswMS0wMS0yMDE4LDAxLTE1LTIwMTgpIHwgdHdvCisgWzIsMykgfCBbMDItMTUtMjAxOCwwNS0w MS0yMDE4KSB8IHR3bworIFszLDQpIHwgWzAxLTAxLTIwMTgsKSAgICAgICAgICAgfCB0aHJlZQor KDggcm93cykKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKK0RST1AgVFlQRSBt eWRhdGVyYW5nZTsKKy0tIFRlc3QgRk9SIFBPUlRJT04gT0YgYWdhaW5zdCBhIHBhcnRpdGlvbmVk IHRhYmxlLgorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBoYXMgdGhlIHNhbWUgYXR0bnVtcyBh cyB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBoYXMgdGhlIGRpZmZlcmVudCBh dHRudW1zIGZyb20gdGhlIHJvb3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgaGFzIHRoZSBk aWZmZXJlbnQgYXR0bnVtcyB0b28sIGJ1dCByZXZlcnNlZAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBu YW1lIHRleHQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3VxIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxf cGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1syLDMpJyk7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9u ZWQgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfNSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZB TFVFUyBJTiAoJ1s1LDYpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzM7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxp ZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgQUREIENPTFVNTiBpZCBp bnQ0cmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxM OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8zIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9w YXJ0aXRpb25lZF81OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBEUk9QIENP TFVNTiBpZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF81IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLCBBREQgQ09M VU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBGT1IgVkFMVUVTIElO ICgnWzUsNiknLCAnWzYsNyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIFZB TFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwg J29uZScpLAorICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEn KSwgJ3RocmVlJyksCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAnZml2ZScpOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAx MCkgfCBvbmUKKyBbMyw0KSB8IFswMS0wMS0yMDAwLDAxLTAxLTIwMTApIHwgdGhyZWUKKyBbNSw2 KSB8IFswMS0wMS0yMDAwLDAxLTAxLTIwMTApIHwgZml2ZQorKDMgcm93cykKKworLS0gVXBkYXRl IHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAw LTA0LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMScKKyAgV0hFUkUgaWQgPSAnWzEsMiknOworLS0g VXBkYXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRP ICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4xJworICBXSEVSRSBpZCA9ICdbMyw0 KSc7CistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiA1CitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0w My0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1lID0gJ2ZpdmVeMScKKyAgV0hFUkUgaWQg PSAnWzUsNiknOworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAxIHRvIHBhcnRpdGlvbiAzCitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ29uZV4yJywKKyAgICAgIGlk ID0gJ1s0LDUpJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBNb3ZlIGZyb20gcGFydGl0aW9u IDMgdG8gcGFydGl0aW9uIDEKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5h bWUgPSAndGhyZWVeMicsCisgICAgICBpZCA9ICdbMiwzKScKKyAgV0hFUkUgaWQgPSAnWzMsNCkn OworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiA1IHRvIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScg VE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ2ZpdmVeMicsCisgICAgICBpZCA9ICdbMyw0 KScKKyAgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gVXBkYXRlIGFsbCBwYXJ0aXRpb25zIGF0IG9u Y2UgKGVhY2ggd2l0aCBsZWZ0b3ZlcnMpCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBbMSwyKSB8IFswMS0wMS0yMDAwLDAzLTAxLTIwMDApIHwgb25lCisgWzEsMikgfCBbMDMt MDEtMjAwMCwwNC0wMS0yMDAwKSB8IG9uZV4xCisgWzEsMikgfCBbMDQtMDEtMjAwMCwwNi0wMS0y MDAwKSB8IG9uZQorIFsxLDIpIHwgWzA3LTAxLTIwMDAsMDEtMDEtMjAxMCkgfCBvbmUKKyBbMiwz KSB8IFswNi0wMS0yMDAwLDA3LTAxLTIwMDApIHwgdGhyZWVeMgorIFszLDQpIHwgWzAxLTAxLTIw MDAsMDMtMDEtMjAwMCkgfCB0aHJlZQorIFszLDQpIHwgWzAzLTAxLTIwMDAsMDQtMDEtMjAwMCkg fCB0aHJlZV4xCisgWzMsNCkgfCBbMDQtMDEtMjAwMCwwNi0wMS0yMDAwKSB8IHRocmVlCisgWzMs NCkgfCBbMDYtMDEtMjAwMCwwNy0wMS0yMDAwKSB8IGZpdmVeMgorIFszLDQpIHwgWzA3LTAxLTIw MDAsMDEtMDEtMjAxMCkgfCB0aHJlZQorIFs0LDUpIHwgWzA2LTAxLTIwMDAsMDctMDEtMjAwMCkg fCBvbmVeMgorIFs1LDYpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBmaXZlCisgWzUsNikg fCBbMDMtMDEtMjAwMCwwNC0wMS0yMDAwKSB8IGZpdmVeMQorIFs1LDYpIHwgWzA0LTAxLTIwMDAs MDYtMDEtMjAwMCkgfCBmaXZlCisgWzUsNikgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IGZp dmUKKygxNSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAg bmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsx LDIpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBvbmUKKyBbMSwyKSB8IFswMy0wMS0yMDAw LDA0LTAxLTIwMDApIHwgb25lXjEKKyBbMSwyKSB8IFswNC0wMS0yMDAwLDA2LTAxLTIwMDApIHwg b25lCisgWzEsMikgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IG9uZQorIFsyLDMpIHwgWzA2 LTAxLTIwMDAsMDctMDEtMjAwMCkgfCB0aHJlZV4yCisoNSByb3dzKQorCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBuYW1lICAg fCAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHRocmVlICAgfCBbMyw0KSB8IFswMS0wMS0yMDAwLDAz LTAxLTIwMDApCisgdGhyZWVeMSB8IFszLDQpIHwgWzAzLTAxLTIwMDAsMDQtMDEtMjAwMCkKKyB0 aHJlZSAgIHwgWzMsNCkgfCBbMDQtMDEtMjAwMCwwNi0wMS0yMDAwKQorIGZpdmVeMiAgfCBbMyw0 KSB8IFswNi0wMS0yMDAwLDA3LTAxLTIwMDApCisgdGhyZWUgICB8IFszLDQpIHwgWzA3LTAxLTIw MDAsMDEtMDEtMjAxMCkKKyBvbmVeMiAgIHwgWzQsNSkgfCBbMDYtMDEtMjAwMCwwNy0wMS0yMDAw KQorKDYgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgbmFtZSAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBp ZCAgIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgZml2ZSAg IHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBbNSw2KQorIGZpdmVeMSB8IFswMy0wMS0yMDAw LDA0LTAxLTIwMDApIHwgWzUsNikKKyBmaXZlICAgfCBbMDQtMDEtMjAwMCwwNi0wMS0yMDAwKSB8 IFs1LDYpCisgZml2ZSAgIHwgWzA3LTAxLTIwMDAsMDEtMDEtMjAxMCkgfCBbNSw2KQorKDQgcm93 cykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IDc2MTBiMDExZDY4Li5lODExMTUzYTQwOSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0xOTQyLDYgKzE5NDIs NyBAQCBXSEVSRSBhMS5hbW9wZmFtaWx5ID0gMCBPUiBhMS5hbW9wbGVmdHR5cGUgPSAwIE9SIGEx LmFtb3ByaWdodHR5cGUgPSAwCiBTRUxFQ1QgYTEuYW1vcGZhbWlseSwgYTEuYW1vcHN0cmF0ZWd5 CiBGUk9NIHBnX2Ftb3AgYXMgYTEKIFdIRVJFIE5PVCAoKGExLmFtb3BwdXJwb3NlID0gJ3MnIEFO RCBhMS5hbW9wc29ydGZhbWlseSA9IDApIE9SCisgICAgICAgICAgIChhMS5hbW9wcHVycG9zZSA9 ICdwJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPSAwKSBPUgogICAgICAgICAgICAoYTEuYW1vcHB1 cnBvc2UgPSAnbycgQU5EIGExLmFtb3Bzb3J0ZmFtaWx5IDw+IDApKTsKICBhbW9wZmFtaWx5IHwg YW1vcHN0cmF0ZWd5IAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dAppbmRleCBlYjRiNzYyZWExMC4uNmQ1MDIwOGIwYzgg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dApAQCAtOTg1LDYgKzk4 NSwyNCBAQCBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZXJy dHN0X3BhcnRfMiIgdmlvbGF0ZXMgbm90LW51bGwgYwogREVUQUlMOiAgRmFpbGluZyByb3cgY29u dGFpbnMgKGEsIGIsIGMpID0gKGFhYWEsIG51bGwsIGNjYykuCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIERST1AgVEFCTEUgZXJydHN0OworLS0gdGVzdCBj b2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyBvbiB0aGUgcmFuZ2UvUEVSSU9EIHVzZWQgaW4gRk9SIFBP UlRJT04gT0YKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwor Q1JFQVRFIFRBQkxFIHQxICgKKyAgYzEgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAor CUNPTlNUUkFJTlQgdDFwayBQUklNQVJZIEtFWSAoYzEsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCispOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5U IFNFTEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitHUkFOVCBVUERBVEUgKGMxKSBP TiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitHUkFOVCBVUERBVEUgKGMxLCB2YWxpZF9hdCkg T04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3ByaXZfdXNlcjI7CitVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB0MQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3ByaXZfdXNlcjM7CitVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKK0RST1AgVEFCTEUgdDE7 CiAtLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxF VEUKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIg VEFCTEUgYXRlc3Q2IEFERCBDT0xVTU4gdGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dAppbmRleCA3OTRjZjljZjkzMC4uYjViZTU1 MzVjY2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3Zp ZXdzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQKQEAgLTM1NDQsNiArMzU0NCwzOCBAQCBzZWxlY3QgKiBmcm9tIHV2X2lvY3VfdGFiOwogCiBk cm9wIHZpZXcgdXZfaW9jdV92aWV3OwogZHJvcCB0YWJsZSB1dl9pb2N1X3RhYjsKKy0tIENoZWNr IFVQREFURSBGT1IgUE9SVElPTiBPRiB3b3JrcyBjb3JyZWN0bHkKK2NyZWF0ZSB0YWJsZSB1dl9m cG9fdGFiIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IHRzcmFuZ2UsIGIgZmxvYXQsCisgICAgY29u c3RyYWludCBwa191dl9mcG9fdGFiIHByaW1hcnkga2V5IChpZCwgdmFsaWRfYXQgd2l0aG91dCBv dmVybGFwcykpOworaW5zZXJ0IGludG8gdXZfZnBvX3RhYiB2YWx1ZXMgKCdbMSwxXScsICdbMjAy MC0wMS0wMSwgMjAzMC0wMS0wMSknLCAwKTsKK2NyZWF0ZSB2aWV3IHV2X2Zwb192aWV3IGFzCisg ICAgc2VsZWN0IGIsIGIrMSBhcyBjLCB2YWxpZF9hdCwgaWQsICcyLjAnOjp0ZXh0IGFzIHR3byBm cm9tIHV2X2Zwb190YWI7CitpbnNlcnQgaW50byB1dl9mcG9fdmlldyAoaWQsIHZhbGlkX2F0LCBi KSB2YWx1ZXMgKCdbMSwxXScsICdbMjAxMC0wMS0wMSwgMjAyMC0wMS0wMSknLCAxKTsKK3NlbGVj dCAqIGZyb20gdXZfZnBvX3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGlkICAgfCB0d28gCistLS0rLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tCisgMCB8IDEgfCBbIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIsIlR1ZSBK YW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikgfCAyLjAKKyAxIHwgMiB8IFsiRnJpIEphbiAw MSAwMDowMDowMCAyMDEwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDIwIikgfCBbMSwyKSB8IDIu MAorKDIgcm93cykKKwordXBkYXRlIHV2X2Zwb192aWV3IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0 IGZyb20gJzIwMTUtMDEtMDEnIHRvICcyMDIwLTAxLTAxJyBzZXQgYiA9IDIgd2hlcmUgaWQgPSAn WzEsMV0nOworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgaWQgICB8IHR3 byAKKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAwIHwgMSB8IFsiV2VkIEphbiAwMSAwMDowMDow MCAyMDIwIiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIikgfCBbMSwyKSB8IDIuMAorIDIgfCAz IHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAi KSB8IFsxLDIpIHwgMi4wCisgMSB8IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAxMCIsIlRo dSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIpIHwgWzEsMikgfCAyLjAKKygzIHJvd3MpCisKK2RlbGV0 ZSBmcm9tIHV2X2Zwb192aWV3IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTctMDEt MDEnIHRvICcyMDIyLTAxLTAxJyB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2 X2Zwb192aWV3OworIGIgfCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LQorIDEgfCAyIHwgWyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMTAiLCJUaHUgSmFuIDAxIDAwOjAw OjAwIDIwMTUiKSB8IFsxLDIpIHwgMi4wCisgMCB8IDEgfCBbIlNhdCBKYW4gMDEgMDA6MDA6MDAg MjAyMiIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikgfCAyLjAKKyAyIHwgMyB8 IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3Iikg fCBbMSwyKSB8IDIuMAorKDMgcm93cykKKwogLS0gVGVzdCB3aG9sZS1yb3cgcmVmZXJlbmNlcyB0 byB0aGUgdmlldwogY3JlYXRlIHRhYmxlIHV2X2lvY3VfdGFiIChhIGludCB1bmlxdWUsIGIgdGV4 dCk7CiBjcmVhdGUgdmlldyB1dl9pb2N1X3ZpZXcgYXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CmluZGV4IGEzZWVjZjFkNzliLi42ZTk2NjAzNjdh YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 CkBAIC0zNjAsNiArMzYwLDM2IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0 LCBpZDIsIG5hbWUpCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAnWzcsOCknLCAnZm9vJyksCiAgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpLCAnWzksMTApJywgJ2JhcicpCiA7CitVUERBVEUgdGVtcG9yYWwz IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDUtMDEnIFRPICcyMDAwLTA3LTAx JworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzEnOworVVBEQVRFIHRlbXBvcmFsMyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA0LTAxJyBUTyAnMjAwMC0wNi0wMScKKyAgU0VUIG5h bWUgPSBuYW1lIHx8ICcyJworICBXSEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8ICBpZDIgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDUtMDEpIHwg WzcsOCkgIHwgZm9vCisgWzEsMikgfCBbMjAwMC0wNS0wMSwyMDAwLTA3LTAxKSB8IFs3LDgpICB8 IGZvbzEKKyBbMSwyKSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgWzcsOCkgIHwgZm9vCisg WzIsMykgfCBbMjAwMC0wMS0wMSwyMDAwLTA0LTAxKSB8IFs5LDEwKSB8IGJhcgorIFsyLDMpIHwg WzIwMDAtMDQtMDEsMjAwMC0wNS0wMSkgfCBbOSwxMCkgfCBiYXIyCisgWzIsMykgfCBbMjAwMC0w NS0wMSwyMDAwLTA2LTAxKSB8IFs5LDEwKSB8IGJhcjEyCisgWzIsMykgfCBbMjAwMC0wNi0wMSwy MDAwLTA3LTAxKSB8IFs5LDEwKSB8IGJhcjEKKyBbMiwzKSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEt MDEpIHwgWzksMTApIHwgYmFyCisoOCByb3dzKQorCistLSBjb25mbGljdGluZyBpZCBvbmx5Ogor SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFMVUVT CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpLCAnWzgs OSknLCAnZm9vMycpOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhj bHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsM19wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDA1LTAxLTAxLDIwMDYtMDEtMDEpKSBjb25mbGljdHMgd2l0aCBleGlz dGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSku CistLSBjb25mbGljdGluZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZh bGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXIzJyk7CitFUlJPUjogIGNvbmZs aWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWwz X3VuaXEiCitERVRBSUw6ICBLZXkgKGlkMiwgdmFsaWRfYXQpPShbOSwxMCksIFsyMDA1LTAxLTAx LDIwMTAtMDEtMDEpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkMiwgdmFsaWRfYXQp PShbOSwxMCksIFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpKS4KIERST1AgVEFCTEUgdGVtcG9yYWwz OwogLS0KIC0tIHRlc3QgY2hhbmdpbmcgdGhlIFBLJ3MgZGVwZW5kZW5jaWVzCkBAIC00MTIsNiAr NDQyLDM2IEBAIFNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICBbMyw0 KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKICgxIHJvdykKIAorVVBEQVRFICB0 ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgU0VUIG5hbWUgPSAnb25lMicKKyAgV0hFUkUgaWQg PSAnWzEsMiknOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDAwLTAyLTIwJyBUTyAnMjAwMC0wMi0yNScKKyAgU0VUIGlkID0g J1s0LDUpJworICBXSEVSRSBuYW1lID0gJ29uZSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlv bmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAz LTAxLTAxJworICBTRVQgaWQgPSAnWzIsMyknCisgIFdIRVJFIG5hbWUgPSAndGhyZWUnOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAw LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDEtMTUsMjAwMC0wMi0wMSkgfCBvbmUyCisg WzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAyLTE1KSB8IG9uZTIKKyBbMSwyKSB8IFsyMDAwLTAy LTE1LDIwMDAtMDItMjApIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMi0yNSwyMDAwLTAzLTAxKSB8 IG9uZQorIFsyLDMpIHwgWzIwMDItMDEtMDEsMjAwMy0wMS0wMSkgfCB0aHJlZQorIFszLDQpIHwg WzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkgfCB0aHJlZQorIFszLDQpIHwgWzIwMDAtMDItMTUsMjAw Mi0wMS0wMSkgfCB0aHJlZQorIFszLDQpIHwgWzIwMDMtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJl ZQorIFs0LDUpIHwgWzIwMDAtMDItMjAsMjAwMC0wMi0yNSkgfCBvbmUKKygxMCByb3dzKQorCiBE Uk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogLS0gdGVtcG9yYWwgVU5JUVVFOgogQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkICgKQEAgLTQ0Nyw2ICs1MDcsMzYgQEAgU0VM RUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogIFszLDQpIHwgWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSkgfCB0aHJlZQogKDEgcm93KQogCitVUERBVEUgIHRlbXBvcmFsX3BhcnRp dGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcy MDAwLTAyLTE1JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitV UERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdI RVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnCisgIFNF VCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAx LTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgb25l CisgWzEsMikgfCBbMjAwMC0wMS0xNSwyMDAwLTAyLTAxKSB8IG9uZTIKKyBbMSwyKSB8IFsyMDAw LTAyLTAxLDIwMDAtMDItMTUpIHwgb25lMgorIFsxLDIpIHwgWzIwMDAtMDItMTUsMjAwMC0wMi0y MCkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAyLTI1LDIwMDAtMDMtMDEpIHwgb25lCisgWzIsMykg fCBbMjAwMi0wMS0wMSwyMDAzLTAxLTAxKSB8IHRocmVlCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwy MDAwLTAxLTE1KSB8IHRocmVlCisgWzMsNCkgfCBbMjAwMC0wMi0xNSwyMDAyLTAxLTAxKSB8IHRo cmVlCisgWzMsNCkgfCBbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgWzQsNSkgfCBb MjAwMC0wMi0yMCwyMDAwLTAyLTI1KSB8IG9uZQorKDEwIHJvd3MpCisKIERST1AgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWQ7CiAtLQogLS0gdGVzdCBGSyBkZXBlbmRlbmNpZXMKQEAgLTc2OSw2 ICs4NTksMTggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZl cmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3 LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6 CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBv cmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpCkBAIC04MDUsNiArOTA3LDE4IEBAIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3 LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf Zmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGNoYW5n aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycK K1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3Qg YSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KIC0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2Vl ZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK IFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAx JywgJzIwMTYtMDItMDEnKQpAQCAtODMyLDkgKzk0NiwyMiBAQCBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w Mi0wMQogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgt MDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIuCistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRl bGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dI RVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVt cG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19y bmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxl dGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVk czoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwog REVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2xlYW4gdXA6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwogLS0KIC0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpAQCAtODU4LDkgKzk4NSwy MiBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMQogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBkZWxldGluZyBhbiB1 bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAx LTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAz LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworLS0gY2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgSU4gKCdbNSw2KScpOwogLS0KIC0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAt LQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMWQ4YTQxNGVlYTcuLjRmZDdmM2Qw YzczIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVz dDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhfaW5j bHVkaW5nIGluZGV4X2luY2x1ZGkKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBh cmFsbGVsIHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGNyZWF0ZV9hZ2dyZWdhdGUgY3JlYXRl X2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50cyB0cmlnZ2VycyBzZWxlY3QgaW5o ZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9leGlzdHMgdXBkYXRhYmxlX3ZpZXdzIHJv bGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1bmMgZXJyb3JzIGluZmluaXRlX3JlY3Vyc2UK K3Rlc3Q6IGNyZWF0ZV9hZ2dyZWdhdGUgY3JlYXRlX2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBj b25zdHJhaW50cyB0cmlnZ2VycyBzZWxlY3QgaW5oZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJv cF9pZl9leGlzdHMgdXBkYXRhYmxlX3ZpZXdzIHJvbGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNo X2Z1bmMgZXJyb3JzIGluZmluaXRlX3JlY3Vyc2UgZm9yX3BvcnRpb25fb2YKIAogIyAtLS0tLS0t LS0tCiAjIHNhbml0eV9jaGVjayBkb2VzIGEgdmFjdXVtLCBhZmZlY3RpbmcgdGhlIHNvcnQgb3Jk ZXIgb2YgU0VMRUNUICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0 aW9uX29mLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTgwMmI1YzY3ZmYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTAs MCArMSw1MzEgQEAKKy0tIFRlc3RzIGZvciBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9GCisK Ky0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1bW5zCitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2Zf dGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0 IE5PVCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygn WzEsMiknLCAnWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSknLCAnb25lJyk7CisKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1 JyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ2Zvbyc7CisKK0RFTEVURSBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMTUn IFRPIE5VTEw7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKworLS0gV29y a3Mgb24gbW9yZSB0aGFuIG9uZSByYW5nZQorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0 OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkMV9hdCB0c3JhbmdlLAorICB2YWxpZDJfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0IE5P VCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygnWzEs MiknLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknLCAnWzIwMTUtMDEtMDEsMjAyNS0wMS0wMSkn LCAnb25lJyk7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NF TEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxM CitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0Owor CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFf YXQgRlJPTSAnMjAxOC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdDsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3Q7CisKKy0tIFRlc3Qgd2l0aCBOVUxMcyBpbiB0aGUgc2NhbGFyL3Jh bmdlIGtleSBjb2x1bW5zLgorLS0gVGhpcyB3b24ndCBoYXBwZW4gaWYgdGhlcmUgaXMgYSBQUklN QVJZIEtFWSBvciBVTklRVUUgY29uc3RyYWludAorLS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3Vs ZG4ndCByZXF1aXJlIHRoYXQuCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVB VEUgVU5MT0dHRUQgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3Bv cnRpb25fb2ZfdGVzdCBWQUxVRVMKKyAgKCdbMSwyKScsIE5VTEwsICcxIG51bGwnKSwKKyAgKCdb MSwyKScsICcoLCknLCAnMSB1bmJvdW5kZWQnKSwKKyAgKCdbMSwyKScsICdlbXB0eScsICcxIGVt cHR5JyksCisgIChOVUxMLCBOVUxMLCBOVUxMKSwKKyAgKE5VTEwsIHRzcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOS0wMS0wMScpLCAnbnVsbCBrZXknKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCisgIFNFVCBu YW1lID0gJ05VTEwgdG8gTlVMTCc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7 CisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9y dGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCB0c3Jh bmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisJQ09OU1RSQUlOVCBmb3JfcG9y dGlvbl9vZl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdAorVkFMVUVTCisoJ1sxLDIpJywgJ1sy MDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMi0wMywy MDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkn LCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpJywgJ3R3bycpLAor KCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVlJyksCisoJ1s0LDUpJywgJygsMjAxOC0w NC0wMSknLCAnZm91cicpLAorKCdbNSw2KScsICcoLCknLCAnZml2ZScpCis7CisKKy0tCistLSBV UERBVEUgdGVzdHMKKy0tCisKKy0tIFNldHRpbmcgd2l0aCBhIG1pc3NpbmcgY29sdW1uIGZhaWxz CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBG Uk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb28nCitXSEVSRSBpZCA9ICdb NSw2KSc7CisKKy0tIFNldHRpbmcgdGhlIHJhbmdlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVM TAorU0VUIHZhbGlkX2F0ID0gJ1sxOTkwLTAxLTAxLDE5OTktMDEtMDEpJworV0hFUkUgaWQgPSAn WzUsNiknOworCistLSBUaGUgd3JvbmcgdHlwZSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBUTyA0CitTRVQgbmFtZSA9ICdu b3BlJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyBy ZXZlcnNlZCBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworU0VUIG5hbWUgPSAn dGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0dGluZyB3aXRoIGEgc3VicXVl cnkgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIChTRUxFQ1QgJzIwMTgtMDEtMDEnKSBUTyAnMjAxOC0wNi0wMScKK1NFVCBuYW1l ID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRpbmcgd2l0aCBhIGNvbHVt biBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVS RSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRpbmcgd2l0aCB0aW1lc3RhbXBzIGVxdWFsIGRvZXMg bm90aGluZworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworU0VUIG5hbWUgPSAndGhyZWVe MCcKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRpbmcgYSBmaW5pdGUvb3BlbiBwb3J0 aW9uIHdpdGggYSBmaW5pdGUvb3BlbiB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQg bmFtZSA9ICd0aHJlZV4xJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBVcGRhdGluZyBhIGZp bml0ZS9vcGVuIHBvcnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIw MTgtMDMtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUgaWQgPSAnWzMsNCknOworCist LSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFy Z2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSBOVUxMIFRPICcyMDE4LTAyLTAxJworU0VUIG5hbWUgPSAnZm91cl4xJworV0hFUkUgaWQg PSAnWzQsNSknOworCistLSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0aW9uIHdpdGggYSBm aW5pdGUvb3BlbiB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb3Vy XjInCitXSEVSRSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5nIGEgZmluaXRlL2Zpbml0ZSBw b3J0aW9uIHdpdGggYW4gZXhhY3QgZml0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMTgtMDItMDEnCitT RVQgbmFtZSA9ICdmb3VyXjMnCitXSEVSRSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5nIGFu IGVuY2xvc2VkIHNwYW4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAndHdvXjInCitXSEVSRSBp ZCA9ICdbMiwzKSc7CisKKy0tIFVwZGF0aW5nIGFuIG9wZW4vb3BlbiBwb3J0aW9uIHdpdGggYSBm aW5pdGUvZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDEnIFRPICcyMDE5LTAxLTAxJworU0VUIG5h bWUgPSAnZml2ZV4yJworV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBVcGRhdGluZyBhbiBlbmNs b3NlZCBzcGFuIHdpdGggc2VwYXJhdGUgcHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRP ICcyMDIwLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUsNiknOwor CistLSBVcGRhdGluZyBtdWx0aXBsZSBlbmNsb3NlZCBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitTRVQg bmFtZSA9ICdvbmVeMicKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gVXBkYXRpbmcgd2l0aCBh IHNoaWZ0L3JlZHVjZSBjb25mbGljdAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9ORSBJTlRF UlZBTCAnMScgSE9VUiBUTyBNSU5VVEUKKyAgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdv bmVeMycKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9O RSBJTlRFUlZBTCAnMicgSE9VUgorICBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV40 JworV0hFUkUgaWQgPSAnWzEsMiknOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAoJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9ORSBJ TlRFUlZBTCAnMicgSE9VUikKKyAgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeNCcK K1dIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gV2l0aCBhIGRpcmVjdCB0YXJnZXQKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAodHNyYW5nZSgnMjAx OC0wMy0xMCcsICcyMDE4LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeNScKK1dIRVJFIGlkID0g J1sxLDIpJzsKKworLS0gVXBkYXRpbmcgdGhlIG5vbi1yYW5nZSBwYXJ0IG9mIHRoZSBQSzoKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTAyLTE1JyBUTyBOVUxMCitTRVQgaWQgPSAnWzYsNyknCitXSEVSRSBpZCA9ICdbMSwyKSc7 CisKKy0tIFVQREFURSB3aXRoIG5vIFdIRVJFIGNsYXVzZQorVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMzAtMDEtMDEnIFRPIE5VTEwK K1NFVCBuYW1lID0gbmFtZSB8fCAnKic7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBERUxFVEUgdGVzdHMKKy0tCisK Ky0tIERlbGV0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscworREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2 LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIERlbGV0aW5nIHdpdGggdGlt ZXN0YW1wcyByZXZlcnNlZCBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMTgtMDEtMDEn CitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVh bCBkb2VzIG5vdGhpbmcKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworV0hFUkUg aWQgPSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL2Nsb3NlZCB0YXJnZXQK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDIwLTA2LTAxJworV0hFUkUgaWQgPSAnWzUsNiknOwor CistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0CitERUxFVEUgRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAx JyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Bl bi9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDgnCitXSEVSRSBpZCA9ICdb MSwyKSc7CisKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Blbi9vcGVuIHRhcmdldAorREVMRVRFIEZS T00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxM IFRPIE5VTEwKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKworLS0gREVMRVRFIHdpdGggbm8gV0hFUkUg Y2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAxJyBUTyBOVUxMOworCitTRUxFQ1QgKiBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLSBVUERBVEUgLi4uIFJF VFVSTklORyByZXR1cm5zIG9ubHkgdGhlIHVwZGF0ZWQgdmFsdWVzIChub3QgdGhlIGluc2VydGVk IHNpZGUgdmFsdWVzKQorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDItMDEnIFRPICcyMDE4LTAyLTE1JworU0VUIG5hbWUgPSAn dGhyZWVeMycKK1dIRVJFIGlkID0gJ1szLDQpJworUkVUVVJOSU5HICo7CisKKy0tIHRlc3QgdGhh dCB3ZSBydW4gdHJpZ2dlcnMgb24gdGhlIFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VS VGVkIHJvd3MKKworQ1JFQVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKQorUkVU VVJOUyB0cmlnZ2VyCitBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlICUgb2YgJScs IFRHX1dIRU4sIFRHX09QLCBORVcudmFsaWRfYXQsIE9MRC52YWxpZF9hdDsKKyAgSUYgVEdfT1Ag PSAnREVMRVRFJyBUSEVOCisgICAgUkVUVVJOIE9MRDsKKyAgRUxTRQorICAgIFJFVFVSTiBORVc7 CisgIEVORCBJRjsKK0VORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVFJJR0dF UiB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9S IERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRF IEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19m b3JfcG9ydGlvbl9vZl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBP TiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9O IGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAx JworU0VUIG5hbWUgPSAnZml2ZV40JworV0hFUkUgaWQgPSAnWzUsNiknOworCitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIz LTAxLTAxJyBUTyAnMjAyNC0wMS0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworU0VMRUNUICog RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgRlVO Q1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlciBDQVNDQURFOworCistLSBUcmlnZ2VycyB3aXRo IGEgY3VzdG9tIHRyYW5zaXRpb24gdGFibGUgbmFtZToKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlv bl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElO VE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKScsICdvbmUnKTsKKworQ1JFQVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRV Uk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnVEdfT1AgPSAlJywgVEdfT1A7CisgIElGIFRHX09QID0gJ0lOU0VSVCcgVEhFTgorICAgIFJB SVNFIE5PVElDRSAndHJpZ2dlciA9ICUsIFRHX0xFVkVMID0gJSwgTkVXIHRhYmxlID0gJScsCisg ICAgICBUR19OQU1FLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4 dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdV UERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUs IE9MRCB0YWJsZSA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUws CisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZ IGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxl Ojp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7CisgIEVMU0lGIFRHX09Q ID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAndHJpZ2dlciA9ICUsIFRHX0xFVkVM ID0gJSwgT0xEIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19MRVZFTCwgKFNFTEVDVCBz dHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFi bGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7CisKK0NSRUFURSBUUklH R0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcKK0FGVEVSIElOU0VSVCBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1Ig RUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFURSBUUklH R0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdAorQUZURVIgSU5TRVJUIE9O IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUK K0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZworQUZURVIgVVBE QVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRf dGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VE VVJFIGR1bXBfdHJpZ2dlcigpOworCitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0 X3VwZGF0ZV90cmlnX3N0bXQKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitS RUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUK K0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZworQUZURVIgREVM RVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRf dGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10CitBRlRF UiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFT IG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJp Z2dlcigpOworCitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworICBTRVQg bmFtZSA9ICcyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEnOworUk9MTEJBQ0s7CisKK0JFR0lOOwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOworUk9MTEJBQ0s7CisKK0JFR0lOOworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxM IFRPICcyMDE4LTAxLTAyJworICBTRVQgbmFtZSA9ICdOVUxMX3RvXzIwMTgtMDEtMDEnOworUk9M TEJBQ0s7CisKKy0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworCitDUkVBVEUgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IGRh dGVtdWx0aXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisJQ09OU1RSQUlO VCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVF UworKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAzKScpLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDQnLCAnMjAxOC0wMy0wMycpKSwgJ29uZScp LAorKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0KScpKSwgJ29uZScpLAorKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTA1LTAxKScpKSwgJ3R3bycpLAorKCdbMyw0KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIG51bGwpKSwgJ3RocmVlJyk7Cis7CisKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xMCcsICcyMDE4LTAyLTEwJyksIGRhdGVyYW5n ZSgnMjAxOC0wMy0wNScsICcyMDE4LTA1LTAxJykpKQorU0VUIG5hbWUgPSAnb25lXjEnCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1 JywgJzIwMTgtMDItMTUnKSwgZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDMtMTUnKSkp CitXSEVSRSBpZCA9ICdbMiwzKSc7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rl c3QyOworCistLSBUZXN0IHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQorCitDUkVBVEUgVFlQRSBt eWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworCitDUkVBVEUgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IG15 ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisJQ09OU1RSQUlOVCBm b3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUwor KCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAn WzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAz LDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTA1LTAx KScsICd0d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpOworOworCitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBp ZCA9ICdbMSwyKSc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dIRVJF IGlkID0gJ1syLDMpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CitE Uk9QIFRZUEUgbXlkYXRlcmFuZ2U7CisKKy0tIFRlc3QgRk9SIFBPUlRJT04gT0YgYWdhaW5zdCBh IHBhcnRpdGlvbmVkIHRhYmxlLgorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBoYXMgdGhlIHNh bWUgYXR0bnVtcyBhcyB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBoYXMgdGhl IGRpZmZlcmVudCBhdHRudW1zIGZyb20gdGhlIHJvb3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVk XzUgaGFzIHRoZSBkaWZmZXJlbnQgYXR0bnVtcyB0b28sIGJ1dCByZXZlcnNlZAorCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRf dXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZ IExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIFBBUlRJVElP TiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMykn KTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIFBBUlRJVElPTiBPRiB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKKworQUxURVIgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF8zOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBEUk9QIENPTFVNTiBpZCwg RFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8z IEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBBREQgQ09MVU1OIHZhbGlkX2F0IGRh dGVyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEFUVEFD SCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBGT1IgVkFMVUVTIElOICgnWzMsNCkn LCAnWzQsNSknKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBB UlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfNSBEUk9QIENPTFVNTiBpZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdl IE5PVCBOVUxMLCBBREQgQ09MVU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9u ZWRfNSBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKKworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWQgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdmaXZlJyk7CisKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWQ7CisKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFy dGl0aW9uIDEKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAnb25l XjEnCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdp dGhpbiBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFt ZSA9ICd0aHJlZV4xJworICBXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFVwZGF0ZSB3aXRob3V0 IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDUKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScK KyAgU0VUIG5hbWUgPSAnZml2ZV4xJworICBXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIE1vdmUg ZnJvbSBwYXJ0aXRpb24gMSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3 LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMicsCisgICAgICBpZCA9ICdbNCw1KScKKyAgV0hFUkUg aWQgPSAnWzEsMiknOworCistLSBNb3ZlIGZyb20gcGFydGl0aW9uIDMgdG8gcGFydGl0aW9uIDEK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVeMicsCisg ICAgICBpZCA9ICdbMiwzKScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBNb3ZlIGZyb20g cGFydGl0aW9uIDUgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScK KyAgU0VUIG5hbWUgPSAnZml2ZV4yJywKKyAgICAgIGlkID0gJ1szLDQpJworICBXSEVSRSBpZCA9 ICdbNSw2KSc7CisKKy0tIFVwZGF0ZSBhbGwgcGFydGl0aW9ucyBhdCBvbmNlIChlYWNoIHdpdGgg bGVmdG92ZXJzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF81IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29wcl9zYW5pdHkuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKaW5kZXggMmZlN2I2ZGNjNDkuLjJk ZmZlN2M1YjZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbApAQCAtMTI0MSw2ICsx MjQxLDcgQEAgV0hFUkUgYTEuYW1vcGZhbWlseSA9IDAgT1IgYTEuYW1vcGxlZnR0eXBlID0gMCBP UiBhMS5hbW9wcmlnaHR0eXBlID0gMAogU0VMRUNUIGExLmFtb3BmYW1pbHksIGExLmFtb3BzdHJh dGVneQogRlJPTSBwZ19hbW9wIGFzIGExCiBXSEVSRSBOT1QgKChhMS5hbW9wcHVycG9zZSA9ICdz JyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPSAwKSBPUgorICAgICAgICAgICAoYTEuYW1vcHB1cnBv c2UgPSAncCcgQU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKICAgICAgICAgICAgKGExLmFt b3BwdXJwb3NlID0gJ28nIEFORCBhMS5hbW9wc29ydGZhbWlseSA8PiAwKSk7CiAKIC0tIGFtb3Bt ZXRob2QgbXVzdCBtYXRjaCBvd25pbmcgb3BmYW1pbHkncyBvcGZtZXRob2QKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHJpdmlsZWdlcy5zcWwKaW5kZXggZWViNGMwMDI5MjYuLjY5ZmI4MzQ3ZDI1IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbApAQCAtNzEzLDYgKzcxMywyNCBAQCBVUERBVEUgZXJy dHN0IFNFVCBhID0gJ2FhYWEnLCBiID0gTlVMTCBXSEVSRSBhID0gJ2FhYSc7CiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIERST1AgVEFCTEUgZXJydHN0Owog CistLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIG9uIHRoZSByYW5nZS9QRVJJT0QgdXNl ZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3By aXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAorICBjMSBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0 IHRzcmFuZ2UsCisJQ09OU1RSQUlOVCB0MXBrIFBSSU1BUlkgS0VZIChjMSwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3Vz ZXIyOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK0dSQU5UIFVQ REFURSAoYzEpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFVQREFURSAoYzEs IHZhbGlkX2F0KSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMp JzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRF IHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAx LTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOworCiAtLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2 aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIgVEFCTEUgYXRlc3Q2IEFERCBDT0xVTU4gdGhy ZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92 aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCmluZGV4 IGFlMTFlNDZkYTI4Li40NDI3ZGI2NzEyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFi bGVfdmlld3Muc3FsCkBAIC0xODI0LDYgKzE4MjQsMjAgQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1 X3RhYjsKIGRyb3AgdmlldyB1dl9pb2N1X3ZpZXc7CiBkcm9wIHRhYmxlIHV2X2lvY3VfdGFiOwog CistLSBDaGVjayBVUERBVEUgRk9SIFBPUlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUg dGFibGUgdXZfZnBvX3RhYiAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0 LAorICAgIGNvbnN0cmFpbnQgcGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0 IHdpdGhvdXQgb3ZlcmxhcHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgnWzEs MV0nLCAnWzIwMjAtMDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1dl9mcG9f dmlldyBhcworICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAnMi4wJzo6dGV4 dCBhcyB0d28gZnJvbSB1dl9mcG9fdGFiOworCitpbnNlcnQgaW50byB1dl9mcG9fdmlldyAoaWQs IHZhbGlkX2F0LCBiKSB2YWx1ZXMgKCdbMSwxXScsICdbMjAxMC0wMS0wMSwgMjAyMC0wMS0wMSkn LCAxKTsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7Cit1cGRhdGUgdXZfZnBvX3ZpZXcgZm9y IHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnIHNl dCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3Owor ZGVsZXRlIGZyb20gdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAx Ny0wMS0wMScgdG8gJzIwMjItMDEtMDEnIHdoZXJlIGlkID0gJ1sxLDFdJzsKK3NlbGVjdCAqIGZy b20gdXZfZnBvX3ZpZXc7CisKIC0tIFRlc3Qgd2hvbGUtcm93IHJlZmVyZW5jZXMgdG8gdGhlIHZp ZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAoYSBpbnQgdW5pcXVlLCBiIHRleHQpOwogY3Jl YXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zl cmxhcHMuc3FsCmluZGV4IDhmOTgzMmJhNzgxLi5hNDE1NmU5OGI0OCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTI1Nyw2ICsyNTcsMjAgQEAgSU5TRVJU IElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKICAg KCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCkn LCAnYmFyJykKIDsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMC0wNS0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMSc7 CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDQt MDEnIFRPICcyMDAwLTA2LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzInCisgIFdIRVJFIGlk ID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScsICdmb28zJyk7CistLSBjb25mbGljdGlu ZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5h bWUpCisgIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMTAt MDEtMDEnKSwgJ1s5LDEwKScsICdiYXIzJyk7CiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIAogLS0K QEAgLTI5NSw2ICszMDksMjIgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlk LCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdI RVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNF VCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9w YXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBU TyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVl JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdb Myw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAKIC0tIHRlbXBvcmFs IFVOSVFVRToKQEAgLTMxMyw2ICszNDMsMjIgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAxIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29u ZTInCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDIt MjUnCisgIFNFVCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0 ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAy LTAxLTAxJyBUTyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1l ID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVS RSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAKIC0t CkBAIC02MDUsNiArNjUxLDE2IEBAIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogLS0gY2hhbmdpbmcgdGhlIHNj YWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEt MTAnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRz OgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBV UERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScs ICcyMDE2LTAyLTAxJykKQEAgLTYzOSw2ICs2OTUsMTYgQEAgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CiAtLSBj aGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBp ZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2Vk IHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJwor V0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERB VEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1 JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK IC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtNjY2LDkgKzczMiwyMCBAQCBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsNCknLCBkYXRlcgogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OwogLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6 CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBkZWxldGluZyBh biB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2Vl ZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK IERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNikn OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0K IC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC02OTIsOSArNzY5LDIw IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyCiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcy MDE4LTAzLTAxJyk7CiAtLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUg cmVmZXJlbmNlZDoKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0t IGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcy MDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQg ZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOwog LS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRl bGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0g Y2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9p ZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2 KScpOwogCiAtLQogLS0gdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKLS0gCjIuNDIuMAoK --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0008-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename="v28-0008-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofd67 RnJvbSBmZTNhMWRkYWEzMGVjYzA4ZmI3OGIzZmQ1MzhlNjNjMDFhODM5YmVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggdjI4IDgvOV0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQgZm9yIHRl bXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJh aW50LmMgICAgICAgICAgIHwgICAyMSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgICAgICAgICAgICAgIHwgICA3MyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMgICAgICAgICAgIHwgIDU3OSArKysrKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29u c3RyYWludC5oICAgICAgICAgICB8ICAgIDcgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgICAgICAgICAgICAgICB8ICAgMjIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i dHJlZV9pbmRleC5vdXQgICAgIHwgICAxOCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQgICAgIHwgMTU1MSArKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDkwMiArKysrKysrKystCiA5IGZp bGVzIGNoYW5nZWQsIDMwNzcgaW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IGRiOTNkMWU1Y2E2Li5hNjQ5ODk4ZmVkNiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0xMjcwLDcgKzEyNzAsOSBAQCBXSVRIICgg TU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAg ICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3Vw cG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoZSBkZWxldGUv dXBkYXRlIHdpbGwgdXNlCisgICAgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVy YWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlCisgICAgICAgICAgZWZmZWN0IHRvIHRoZSBi b3VuZHMgYmVpbmcgZGVsZXRlZC91cGRhdGVkIGluIHRoZSByZWZlcmVuY2VkIHJvdy4KICAgICAg ICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K QEAgLTEyODUsNyArMTI4NywxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAg PC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVp Z24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVt cG9yYWwgZm9yZWlnbiBrZXksIHRoZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVyYWw+Rk9SIFBPUlRJ T04KKyAgICAgICAgICBPRjwvbGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNvbnN0cmFpbiB0aGUgZWZm ZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcKKyAgICAgICAgICBkZWxldGVkL3VwZGF0ZWQgaW4gdGhl IHJlZmVyZW5jZWQgcm93LiBUaGUgY29sdW1uIG1ha2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJh bD5QRVJJT0Q8L2xpdGVyYWw+IHdpbGwgbm90IGJlIHNldCB0byBudWxsLgogICAgICAgICAgPC9w YXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTMw Miw3ICsxMzA3LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgICA8L3BhcmE+ CiAKICAgICAgICAgIDxwYXJhPgotICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXks IHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAgSW4gYSB0ZW1wb3JhbCBm b3JlaWduIGtleSwgdGhlIGNoYW5nZSB3aWxsIHVzZSA8bGl0ZXJhbD5GT1IgUE9SVElPTgorICAg ICAgICAgIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29uc3RyYWluIHRoZSBlZmZlY3QgdG8g dGhlIGJvdW5kcyBiZWluZworICAgICAgICAgIGRlbGV0ZWQvdXBkYXRlZCBpbiB0aGUgcmVmZXJl bmNlZCByb3cuIFRoZSBjb2x1bW4gbWFya2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJhbD5QRVJJ T0Q8L2xpdGVyYWw+IHdpdGggbm90IGJlIHNldCB0byBhIGRlZmF1bHQgdmFsdWUuCiAgICAgICAg ICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCmluZGV4IDZhMDM5YTM1M2NmLi5hMzgxOTJmZTM0 MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTE2MjIsOSArMTYyMiwxMCBA QCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtz LAogICovCiB2b2lkCiBGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKE9pZCBvcGNsYXNzLAotCQkJ CQkJICBPaWQgKnBlcmlvZG9wZXJvaWQsCi0JCQkJCQkgIE9pZCAqYWdnZWRwZXJpb2RvcGVyb2lk LAotCQkJCQkJICBPaWQgKnBlcmlvZHByb2NvaWQpCisJCQkJCQkgIE9pZCAqY29udGFpbmVkYnlv cGVyb2lkLAorCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJICBP aWQgKmFnZ3Byb2NvaWQsCisJCQkJCQkgIE9pZCAqaW50ZXJzZWN0cHJvY29pZCkKIHsKIAlPaWQJ b3BmYW1pbHk7CiAJT2lkCW9wY2ludHlwZTsKQEAgLTE2NDEsNyArMTY0Miw3IEBAIEZpbmRGS1Bl cmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3MsCiAJc3RyYXQgPSBSVENvbnRhaW5lZEJ5U3Ry YXRlZ3lOdW1iZXI7CiAJR2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3BjbGFzcywK IAkJCQkJCQkJCSBJbnZhbGlkT2lkLAotCQkJCQkJCQkJIHBlcmlvZG9wZXJvaWQsCisJCQkJCQkJ CQkgY29udGFpbmVkYnlvcGVyb2lkLAogCQkJCQkJCQkJICZzdHJhdCk7CiAKIAkvKiBOb3cgbG9v ayB1cCB0aGUgc3VwcG9ydCBwcm9jIGZvciBhZ2dyZWdhdGlvbi4gKi8KQEAgLTE2NTQsNyArMTY1 NSw3IEBAIEZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3MsCiAJCQkJIGVycm1z Zygibm8gc3VwcG9ydCBmdW5jICV1IGZvdW5kIGZvciBGT1JFSUdOIEtFWSBjb25zdHJhaW50Iiwg R0lTVF9SRUZFUkVOQ0VEX0FHR19QUk9DKSwKIAkJCQkgZXJyaGludCgiRGVmaW5lIGEgcmVmZXJl bmNlZGFnZyBzdXBwb3J0IGZ1bmN0aW9uIGZvciB5b3VyIEdpU1Qgb3BjbGFzcy4iKSkpOwogCi0J KnBlcmlvZHByb2NvaWQgPSBmdW5jaWQ7CisJKmFnZ3Byb2NvaWQgPSBmdW5jaWQ7CiAKIAkvKiBM b29rIHVwIHRoZSBmdW5jdGlvbidzIHJldHR5cGUuICovCiAJYWdncmV0dHlwZSA9IGdldF9mdW5j X3JldHR5cGUoZnVuY2lkKTsKQEAgLTE2NjcsOCArMTY2OCwxNiBAQCBGaW5kRktQZXJpb2RPcGVy c0FuZFByb2NzKE9pZCBvcGNsYXNzLAogCXN0cmF0ID0gUlRDb250YWluZWRCeVN0cmF0ZWd5TnVt YmVyOwogCUdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KG9wY2xhc3MsCiAJCQkJCQkJ CQkgYWdncmV0dHlwZSwKLQkJCQkJCQkJCSBhZ2dlZHBlcmlvZG9wZXJvaWQsCisJCQkJCQkJCQkg YWdnZWRjb250YWluZWRieW9wZXJvaWQsCiAJCQkJCQkJCQkgJnN0cmF0KTsKKworCS8qCisJICog SWYgdGhlIGNvbW1hbmQgdXNlcyBGT1IgUE9SVElPTiBPRiwKKwkgKiB3ZSB3aWxsIGFsc28gbmVl ZCBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBwcm9jLgorCSAqIElmIHRoaXMgaXMgbWlzc2luZyB3ZSBk b24ndCBuZWVkIHRvIGNvbXBsYWluIGhlcmUsCisJICogYmVjYXVzZSBGT1IgUE9SVElPTiBPRiB3 aWxsIG5vdCBiZSBhbGxvd2VkLgorCSAqLworCSppbnRlcnNlY3Rwcm9jb2lkID0gZ2V0X29wZmFt aWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX0lOVEVSU0VDVF9Q Uk9DKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMGZkZDg0NmI3ZGQu Ljg2ZTcwYmI0MDgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTEwLDcgKzUxMCw3 IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndx dWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhCiAJCQkJCQkJCQkJCWJvb2wgb2xkX2NoZWNrX29r LAogCQkJCQkJCQkJCQlPaWQgcGFyZW50RGVsVHJpZ2dlciwgT2lkIHBhcmVudFVwZFRyaWdnZXIs CiAJCQkJCQkJCQkJCWJvb2wgd2l0aF9wZXJpb2QpOwotc3RhdGljIHZvaWQgdmFsaWRhdGVGa09u RGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAorc3Rh dGljIHZvaWQgdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBp bnQxNiAqZmthdHRudW1zLCBjb25zdCBpbnQxNiBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkJCQkg aW50IG51bWZrc2V0Y29scywgY29uc3QgaW50MTYgKmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJ CQkJIExpc3QgKmZrc2V0Y29scyk7CiBzdGF0aWMgdm9pZCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2lu ZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCkBAIC05ODE5LDYgKzk4 MTksNyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCU9pZAkJCWZmZXFvcGVyYXRvcnNbSU5ERVhf TUFYX0tFWVNdID0gezB9OwogCWludDE2CQlma2RlbHNldGNvbHNbSU5ERVhfTUFYX0tFWVNdID0g ezB9OwogCWJvb2wJCXdpdGhfcGVyaW9kOworCWludDE2CQlma3BlcmlvZGF0dG51bSA9IEludmFs aWRPaWQ7CiAJaW50CQkJaTsKIAlpbnQJCQludW1ma3MsCiAJCQkJbnVtcGtzLApAQCAtOTkzMCwx MiArOTkzMSwxMyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFs dGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfRk9SRUlHTl9LRVkpLAogCQkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVS SU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxl IikpKTsKIAorCQlma3BlcmlvZGF0dG51bSA9IGZrYXR0bnVtW251bWZrcyAtIDFdOwogCX0KIAog CW51bWZrZGVsc2V0Y29scyA9IHRyYW5zZm9ybUNvbHVtbk5hbWVMaXN0KFJlbGF0aW9uR2V0UmVs aWQocmVsKSwKIAkJCQkJCQkJCQkJICBma2NvbnN0cmFpbnQtPmZrX2RlbF9zZXRfY29scywKIAkJ CQkJCQkJCQkJICBma2RlbHNldGNvbHMsIE5VTEwpOwotCXZhbGlkYXRlRmtPbkRlbGV0ZVNldENv bHVtbnMobnVtZmtzLCBma2F0dG51bSwKKwl2YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1bW5zKG51 bWZrcywgZmthdHRudW0sIGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCQkgbnVtZmtkZWxzZXRjb2xz LCBma2RlbHNldGNvbHMsCiAJCQkJCQkJCSBma2NvbnN0cmFpbnQtPmZrX2RlbF9zZXRfY29scyk7 CiAKQEAgLTEwMjU3LDkgKzEwMjU5LDE0IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlz dCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJewogCQlP aWQJCQlwZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlhZ2dlZHBlcmlvZG9wZXJvaWQ7Ci0JCU9pZAkJ CXBlcmlvZHByb2NvaWQ7CisJCU9pZAkJCWFnZ3Byb2NvaWQ7CisJCU9pZAkJCWludGVyc2VjdHBy b2NvaWQ7CiAKLQkJRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhvcGNsYXNzZXNbbnVtcGtzIC0g MV0sICZwZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2RvcGVyb2lkLCAmcGVyaW9kcHJvY29pZCk7 CisJCUZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3Mob3BjbGFzc2VzW251bXBrcyAtIDFdLAorCQkJ CQkJCQkgICZwZXJpb2RvcGVyb2lkLAorCQkJCQkJCQkgICZhZ2dlZHBlcmlvZG9wZXJvaWQsCisJ CQkJCQkJCSAgJmFnZ3Byb2NvaWQsCisJCQkJCQkJCSAgJmludGVyc2VjdHByb2NvaWQpOwogCX0K IAogCS8qCkBAIC0xMDMxMyw2ICsxMDMyMCw3IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQo TGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAgKi8K IHZvaWQKIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3QgaW50 MTYgKmZrYXR0bnVtcywKKwkJCQkJCQkgY29uc3QgaW50MTYgZmtwZXJpb2RhdHRudW0sCiAJCQkJ CQkJIGludCBudW1ma3NldGNvbHMsIGNvbnN0IGludDE2ICpma3NldGNvbHNhdHRudW1zLAogCQkJ CQkJCSBMaXN0ICpma3NldGNvbHMpCiB7CkBAIC0xMDMyMyw2ICsxMDMzMSwxMyBAQCB2YWxpZGF0 ZUZrT25EZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMs CiAKIAkJZm9yIChpbnQgaiA9IDA7IGogPCBudW1ma3M7IGorKykKIAkJeworCQkJaWYgKGZrcGVy aW9kYXR0bnVtID09IHNldGNvbF9hdHRudW0pCisJCQl7CisJCQkJY2hhcgkgICAqY29sID0gc3Ry VmFsKGxpc3RfbnRoKGZrc2V0Y29scywgaSkpOworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90 IGJlIFBFUklPRCIsIGNvbCkpKTsKKwkJCX0KIAkJCWlmIChma2F0dG51bXNbal0gPT0gc2V0Y29s X2F0dG51bSkKIAkJCXsKIAkJCQlzZWVuID0gdHJ1ZTsKQEAgLTEyNjM0LDE2ICsxMjY0OSw2IEBA IGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxP aWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dlci0+dHJhbnNpdGlvblJlbHMgPSBO SUw7CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsKIAotCS8qIEZvcmJpZCBzb21lIGFj dGlvbnMgd2l0aCBQRVJJT0QgZWxlbWVudHMgZm9yIG5vdzogKi8KLQlpZiAoZmtjb25zdHJhaW50 LT5ma193aXRoX3BlcmlvZCAmJiAoCi0JCWZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBG S0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAotCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24g PT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKLQkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0 aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUKSkKLQkJZXJlcG9ydChFUlJPUiwKLQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygi aW52YWxpZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9E IiwKLQkJCQkJCSJPTiBERUxFVEUiKSkpOwotCiAJc3dpdGNoIChma2NvbnN0cmFpbnQtPmZrX2Rl bF9hY3Rpb24pCiAJewogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9OT0FDVElPTjoKQEAgLTEyNjU5 LDE3ICsxMjY2NCwyNiBAQCBjcmVhdGVGb3JlaWduS2V5QWN0aW9uVHJpZ2dlcnMoUmVsYXRpb24g cmVsLCBPaWQgcmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0cgogCQljYXNlIEZLQ09OU1RS X0FDVElPTl9DQVNDQURFOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZhbHNlOwogCQkJ ZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmlnZ2VyLT5mdW5jbmFt ZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfZGVsIik7CisJCQlpZiAoZmtjb25z dHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3Rl bUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbCIpOworCQkJZWxzZQorCQkJCWZr X3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV9kZWwi KTsKIAkJCWJyZWFrOwogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9TRVROVUxMOgogCQkJZmtfdHJp Z2dlci0+ZGVmZXJyYWJsZSA9IGZhbHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0g ZmFsc2U7Ci0JCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5 X3NldG51bGxfZGVsIik7CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJ CQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9z ZXRudWxsX2RlbCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfc2V0bnVsbF9kZWwiKTsKIAkJCWJyZWFrOwogCQljYXNlIEZLQ09O U1RSX0FDVElPTl9TRVRERUZBVUxUOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZhbHNl OwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmlnZ2VyLT5m dW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfZGVsIik7CisJCQlp ZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFt ZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbCIpOworCQkJ ZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlf c2V0ZGVmYXVsdF9kZWwiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBGSyBhY3Rpb24gdHlwZTogJWQiLApAQCAtMTI3MDUsMTYgKzEyNzE5LDYg QEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJlbGF0aW9uIHJlbCwgT2lkIHJlZlJl bE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAlma190cmlnZ2VyLT50cmFuc2l0aW9uUmVscyA9 IE5JTDsKIAlma190cmlnZ2VyLT5jb25zdHJyZWwgPSBOVUxMOwogCi0JLyogRm9yYmlkIHNvbWUg YWN0aW9ucyB3aXRoIFBFUklPRCBlbGVtZW50cyBmb3Igbm93OiAqLwotCWlmIChma2NvbnN0cmFp bnQtPmZrX3dpdGhfcGVyaW9kICYmICgKLQkJZmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uID09 IEZLQ09OU1RSX0FDVElPTl9DQVNDQURFIHx8Ci0JCWZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlv biA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUTlVMTCB8fAotCQlma2NvbnN0cmFpbnQtPmZrX3VwZF9h Y3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQpKQotCQllcmVwb3J0KEVSUk9SLAot CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNn KCJpbnZhbGlkICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJ T0QiLAotCQkJCQkJIk9OIFVQREFURSIpKSk7Ci0KIAlzd2l0Y2ggKGZrY29uc3RyYWludC0+Zmtf dXBkX2FjdGlvbikKIAl7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX05PQUNUSU9OOgpAQCAtMTI3 MzAsMTcgKzEyNzM0LDI2IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlv biByZWwsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJCWNhc2UgRktDT05T VFJfQUNUSU9OX0NBU0NBREU6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJ CQlma190cmlnZ2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNu YW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV91cGQiKTsKKwkJCWlmIChma2Nv bnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lz dGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkIik7CisJCQllbHNlCisJCQkJ ZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRlX3Vw ZCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVE5VTEw6CiAJCQlma190 cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5pbml0ZGVmZXJyZWQg PSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZL ZXlfc2V0bnVsbF91cGQiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQor CQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9k X3NldG51bGxfdXBkIik7CisJCQllbHNlCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0 ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX3VwZCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktD T05TVFJfQUNUSU9OX1NFVERFRkFVTFQ6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFs c2U7CiAJCQlma190cmlnZ2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXIt PmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF91cGQiKTsKKwkJ CWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNu YW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkIik7CisJ CQllbHNlCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktl eV9zZXRkZWZhdWx0X3VwZCIpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIEZLIGFjdGlvbiB0eXBlOiAlZCIsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jCmluZGV4IDI4YWM2YzJiMzJlLi5kNjg4N2U5ZTZkZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3JpX3RyaWdnZXJzLmMKQEAgLTgwLDYgKzgwLDEyIEBACiAjZGVmaW5lIFJJX1BMQU5fU0VU TlVMTF9PTlVQREFURQkJNwogI2RlZmluZSBSSV9QTEFOX1NFVERFRkFVTFRfT05ERUxFVEUJCTgK ICNkZWZpbmUgUklfUExBTl9TRVRERUZBVUxUX09OVVBEQVRFCQk5CisjZGVmaW5lIFJJX1BMQU5f UEVSSU9EX0NBU0NBREVfT05ERUxFVEUJCTEwCisjZGVmaW5lIFJJX1BMQU5fUEVSSU9EX0NBU0NB REVfT05VUERBVEUJCTExCisjZGVmaW5lIFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05VUERBVEUJ CTEyCisjZGVmaW5lIFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05ERUxFVEUJCTEzCisjZGVmaW5l IFJJX1BMQU5fUEVSSU9EX1NFVERFRkFVTFRfT05VUERBVEUJMTQKKyNkZWZpbmUgUklfUExBTl9Q RVJJT0RfU0VUREVGQVVMVF9PTkRFTEVURQkxNQogCiAjZGVmaW5lIE1BWF9RVU9URURfTkFNRV9M RU4gIChOQU1FREFUQUxFTioyKzMpCiAjZGVmaW5lIE1BWF9RVU9URURfUkVMX05BTUVfTEVOICAo TUFYX1FVT1RFRF9OQU1FX0xFTioyKQpAQCAtMTMxLDYgKzEzNyw4IEBAIHR5cGVkZWYgc3RydWN0 IFJJX0NvbnN0cmFpbnRJbmZvCiAJT2lkCQkJcGVyaW9kX3JlZmVyZW5jZWRfYWdnX3Byb2M7CS8q IHJlZmVyZW5jZWRhZ2cgR2lTVCBzdXBwb3J0IHByb2MKIAkJCQkJCQkJCQkJICAgdG8gY29tYmlu ZSBQSyByYW5nZXMgKi8KIAlPaWQJCQlwZXJpb2RfcmVmZXJlbmNlZF9hZ2dfcmV0dHlwZTsJLyog cmV0dHlwZSBmb3IgcHJldmlvdXMgKi8KKwlPaWQJCQlwZXJpb2RfaW50ZXJzZWN0X3Byb2M7CS8q IGFueXJhbmdlICogYW55cmFuZ2UKKwkJCQkJCQkJCQkgICAob3Igd2hhdGV2ZXIgdHlwZSBpcyB1 c2VkKSAqLwogCWRsaXN0X25vZGUJdmFsaWRfbGluazsJCS8qIExpbmsgaW4gbGlzdCBvZiB2YWxp ZCBlbnRyaWVzICovCiB9IFJJX0NvbnN0cmFpbnRJbmZvOwogCkBAIC0xOTQsNiArMjAyLDcgQEAg c3RhdGljIGJvb2wgcmlfQ2hlY2tfUGtfTWF0Y2goUmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBm a19yZWwsCiAJCQkJCQkJICBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvKTsKIHN0YXRp YyBEYXR1bSByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0 aW9uKTsKIHN0YXRpYyBEYXR1bSByaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlz X3NldF9udWxsLCBpbnQgdGdraW5kKTsKK3N0YXRpYyBEYXR1bSB0cmlfc2V0KFRyaWdnZXJEYXRh ICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCk7CiBzdGF0aWMgdm9pZCBx dW90ZU9uZU5hbWUoY2hhciAqYnVmZmVyLCBjb25zdCBjaGFyICpuYW1lKTsKIHN0YXRpYyB2b2lk IHF1b3RlUmVsYXRpb25OYW1lKGNoYXIgKmJ1ZmZlciwgUmVsYXRpb24gcmVsKTsKIHN0YXRpYyB2 b2lkIHJpX0dlbmVyYXRlUXVhbChTdHJpbmdJbmZvIGJ1ZiwKQEAgLTI0Miw3ICsyNTEsNyBAQCBz dGF0aWMgdm9pZCByaV9SZXBvcnRWaW9sYXRpb24oY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJp aW5mbywKIHN0YXRpYyB2b2lkIGxvb2t1cFBlcmlvZFJJUHJvYyhjb25zdCBSSV9Db25zdHJhaW50 SW5mbyAqcmlpbmZvLCBjaGFyICoqYWdnbmFtZSk7CiBzdGF0aWMgYm9vbCBmcG9fdGFyZ2V0c19w a19yYW5nZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsCiAJCQkJCQkJCSBj b25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvKTsKLXN0YXRpYyBEYXR1bSByZXN0cmljdF9j YXNjYWRpbmdfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLAorc3Rh dGljIERhdHVtIHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShSZWxhdGlvbiByZWwsIGNvbnN0IEZv clBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKIAkJCQkJCQkJCSAgY29uc3QgUklfQ29uc3Ry YWludEluZm8gKnJpaW5mbywKIAkJCQkJCQkJCSAgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpOwog CkBAIC04MjYsNyArODM1LDcgQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBi b29sIGlzX25vX2FjdGlvbikKIAlpZiAodHJpZ2RhdGEtPnRnX3RlbXBvcmFsKQogCXsKIAkJdGFy Z2V0UmFuZ2VQYXJhbSA9IHJpaW5mby0+bmtleXMgLSAxOwotCQl0YXJnZXRSYW5nZSA9IHJlc3Ry aWN0X2Nhc2NhZGluZ19yYW5nZSh0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xv dCk7CisJCXRhcmdldFJhbmdlID0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJp Z2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNsb3QpOwogCX0KIAogCXJpX1BlcmZvcm1D aGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKQEAgLTEzMjQsNiArMTMzMyw1MzUgQEAgcmlfc2V0 KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCkKIAl9 CiB9CiAKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbCAtCisgKgorICogQ2FzY2Fk ZWQgZGVsZXRlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMgYXQgZGVsZXRlIGV2ZW50IG9uIHRlbXBv cmFsIFBLIHRhYmxlLgorICovCitEYXR1bQorUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwlUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEgPSAoVHJpZ2dlckRhdGEg KikgZmNpbmZvLT5jb250ZXh0OworCWNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87CisJ UmVsYXRpb24JZmtfcmVsOworCVJlbGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAqb2xk c2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5OworCVNQSVBsYW5QdHIgIHFwbGFuOworCURhdHVtIHRh cmdldFJhbmdlOworCisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxs IG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZv LCAiUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwiLCBSSV9UUklHVFlQRV9ERUxFVEUpOworCisJ cmlpbmZvID0gcmlfRmV0Y2hDb25zdHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJ CQkJCQkJCXRyaWdkYXRhLT50Z19yZWxhdGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUg cmVsYXRpb24gZGVzY3JpcHRvcnMgb2YgdGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBvbGQg dHVwbGUuCisJICoKKwkgKiBma19yZWwgaXMgb3BlbmVkIGluIFJvd0V4Y2x1c2l2ZUxvY2sgbW9k ZSBzaW5jZSB0aGF0J3Mgd2hhdCBvdXIKKwkgKiBldmVudHVhbCBERUxFVEUgd2lsbCBnZXQgb24g aXQuCisJICovCisJZmtfcmVsID0gdGFibGVfb3BlbihyaWluZm8tPmZrX3JlbGlkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKwlwa19yZWwgPSB0cmlnZGF0YS0+dGdfcmVsYXRpb247CisJb2xkc2xvdCA9 IHRyaWdkYXRhLT50Z190cmlnc2xvdDsKKworCS8qCisJICogRG9uJ3QgZGVsZXRlIHRoYW4gbW9y ZSB0aGFuIHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1tZWQgYnkgYW4gb3JpZ2luYWwgRk9S IFBPUlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRhcmdldFJhbmdlID0gcmVzdHJpY3Rf Y2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9s ZHNsb3QpOworCisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJX09LX0NPTk5FQ1QpCisJCWVsb2co RVJST1IsICJTUElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8qIEZldGNoIG9yIHByZXBhcmUgYSBz YXZlZCBwbGFuIGZvciB0aGUgY2FzY2FkZWQgZGVsZXRlICovCisJcmlfQnVpbGRRdWVyeUtleSgm cWtleSwgcmlpbmZvLCBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09OREVMRVRFKTsKKworCWlmICgo cXBsYW4gPSByaV9GZXRjaFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwpCisJeworCQlTdHJp bmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJY2hhcgkJZmtyZWxuYW1lW01BWF9RVU9URURfUkVMX05B TUVfTEVOXTsKKwkJY2hhcgkJYXR0bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOXTsKKwkJY2hhcgkJ cGFyYW1uYW1lWzE2XTsKKwkJY29uc3QgY2hhciAqcXVlcnlzZXA7CisJCU9pZAkJCXF1ZXJ5b2lk c1tSSV9NQVhfTlVNS0VZUyArIDFdOworCQljb25zdCBjaGFyICpma19vbmx5OworCisJCS8qIC0t LS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWlsdCBpcworCQkgKiAgREVMRVRFIEZS T00gW09OTFldIDxma3RhYmxlPgorCQkgKiAgRk9SIFBPUlRJT04gT0YgJGZrYXR0ICgke24rMX0p CisJCSAqICBXSEVSRSAkMSA9IGZrYXR0MSBbQU5EIC4uLl0KKwkJICogVGhlIHR5cGUgaWQncyBm b3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCisJCSAqIGNvcnJlc3BvbmRpbmcg UEsgYXR0cmlidXRlcy4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJaW5pdFN0cmluZ0luZm8o JnF1ZXJ5YnVmKTsKKwkJZmtfb25seSA9IGZrX3JlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUgPworCQkJIiIgOiAiT05MWSAiOworCQlxdW90ZVJlbGF0aW9u TmFtZShma3JlbG5hbWUsIGZrX3JlbCk7CisJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0dE5h bWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJ YXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJERUxFVEUgRlJPTSAlcyVzIEZPUiBQT1JUSU9O IE9GICVzICgkJWQpIiwKKwkJCQkJCSBma19vbmx5LCBma3JlbG5hbWUsIGF0dG5hbWUsIHJpaW5m by0+bmtleXMgKyAxKTsKKwkJcXVlcnlzZXAgPSAiV0hFUkUiOworCQlmb3IgKGludCBpID0gMDsg aSA8IHJpaW5mby0+bmtleXM7IGkrKykKKwkJeworCQkJT2lkIHBrX3R5cGUgPSBSSUF0dFR5cGUo cGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkIHBrX2NvbGwgPSBSSUF0dENv bGxhdGlvbihwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfdHlwZSA9 IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfY29s bCA9IFJJQXR0Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKworCQkJ cXVvdGVPbmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5m a19hdHRudW1zW2ldKSk7CisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIGkgKyAxKTsKKwkJ CXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsIHF1ZXJ5c2VwLAorCQkJCQkJCXBhcmFtbmFtZSwg cGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0sCisJCQkJCQkJYXR0bmFtZSwg ZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xsICYmICFnZXRfY29sbGF0aW9uX2lz ZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9HZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1 ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1ZXJ5c2VwID0gIkFORCI7CisJCQlxdWVyeW9pZHNbaV0g PSBwa190eXBlOworCQl9CisKKwkJLyogU2V0IGEgcGFyYW0gZm9yIEZPUiBQT1JUSU9OIE9GIFRP L0ZST00gKi8KKwkJcXVlcnlvaWRzW3JpaW5mby0+bmtleXNdID0gUklBdHRUeXBlKHBrX3JlbCwg cmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7CisKKwkJLyogUHJlcGFyZSBh bmQgc2F2ZSB0aGUgcGxhbiAqLworCQlxcGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRh LCByaWluZm8tPm5rZXlzICsgMSwgcXVlcnlvaWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBw a19yZWwpOworCX0KKworCS8qCisJICogV2UgaGF2ZSBhIHBsYW4gbm93LiBCdWlsZCB1cCB0aGUg YXJndW1lbnRzIGZyb20gdGhlIGtleSB2YWx1ZXMgaW4gdGhlCisJICogZGVsZXRlZCBQSyB0dXBs ZSBhbmQgZGVsZXRlIHRoZSByZWZlcmVuY2luZyByb3dzCisJICovCisJcmlfUGVyZm9ybUNoZWNr KHJpaW5mbywgJnFrZXksIHFwbGFuLAorCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJb2xkc2xv dCwgTlVMTCwKKwkJCQkJcmlpbmZvLT5ua2V5cywgdGFyZ2V0UmFuZ2UsCisJCQkJCXRydWUsCSAg IC8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19ERUxFVEUpOworCisJaWYg KFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAiU1BJX2Zpbmlz aCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOworfQorCisvKgorICogUklfRktleV9wZXJp b2RfY2FzY2FkZV91cGQgLQorICoKKyAqIENhc2NhZGVkIHVwZGF0ZSBmb3JlaWduIGtleSByZWZl cmVuY2VzIGF0IHVwZGF0ZSBldmVudCBvbiB0ZW1wb3JhbCBQSyB0YWJsZS4KKyAqLworRGF0dW0K K1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJVHJpZ2dl ckRhdGEgKnRyaWdkYXRhID0gKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dDsKKwljb25z dCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvOworCVJlbGF0aW9uCWZrX3JlbDsKKwlSZWxhdGlv bglwa19yZWw7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7CisJVHVwbGVUYWJsZVNsb3QgKm5l d3Nsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlTUElQbGFuUHRyICBxcGxhbjsKKwlEYXR1bSB0 YXJnZXRSYW5nZTsKKworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2Fs bCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5m bywgIlJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkIiwgUklfVFJJR1RZUEVfVVBEQVRFKTsKKwor CXJpaW5mbyA9IHJpX0ZldGNoQ29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCisJ CQkJCQkJCQl0cmlnZGF0YS0+dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkgKiBHZXQgdGhl IHJlbGF0aW9uIGRlc2NyaXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVzIGFuZCB0aGUgbmV3 IGFuZAorCSAqIG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVuZWQgaW4gUm93RXhj bHVzaXZlTG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAqIGV2ZW50dWFsIFVQREFU RSB3aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5mby0+Zmtf cmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRyaWdkYXRhLT50Z19yZWxhdGlv bjsKKwluZXdzbG90ID0gdHJpZ2RhdGEtPnRnX25ld3Nsb3Q7CisJb2xkc2xvdCA9IHRyaWdkYXRh LT50Z190cmlnc2xvdDsKKworCS8qCisJICogRG9uJ3QgZGVsZXRlIHRoYW4gbW9yZSB0aGFuIHRo ZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1tZWQgYnkgYW4gb3JpZ2luYWwgRk9SIFBPUlRJT04g T0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRhcmdldFJhbmdlID0gcmVzdHJpY3RfY2FzY2FkaW5n X3JhbmdlKHBrX3JlbCwgdHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNsb3QpOwor CisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJX09LX0NPTk5FQ1QpCisJCWVsb2coRVJST1IsICJT UElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8qIEZldGNoIG9yIHByZXBhcmUgYSBzYXZlZCBwbGFu IGZvciB0aGUgY2FzY2FkZWQgdXBkYXRlICovCisJcmlfQnVpbGRRdWVyeUtleSgmcWtleSwgcmlp bmZvLCBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09OVVBEQVRFKTsKKworCWlmICgocXBsYW4gPSBy aV9GZXRjaFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwpCisJeworCQlTdHJpbmdJbmZvRGF0 YSBxdWVyeWJ1ZjsKKwkJU3RyaW5nSW5mb0RhdGEgcXVhbGJ1ZjsKKwkJY2hhcgkJZmtyZWxuYW1l W01BWF9RVU9URURfUkVMX05BTUVfTEVOXTsKKwkJY2hhcgkJYXR0bmFtZVtNQVhfUVVPVEVEX05B TUVfTEVOXTsKKwkJY2hhcgkJcGFyYW1uYW1lWzE2XTsKKwkJY29uc3QgY2hhciAqcXVlcnlzZXA7 CisJCWNvbnN0IGNoYXIgKnF1YWxzZXA7CisJCU9pZAkJIHF1ZXJ5b2lkc1syICogUklfTUFYX05V TUtFWVMgKyAxXTsKKwkJY29uc3QgY2hhciAqZmtfb25seTsKKworCQkvKiAtLS0tLS0tLS0tCisJ CSAqIFRoZSBxdWVyeSBzdHJpbmcgYnVpbHQgaXMKKwkJICogIFVQREFURSBbT05MWV0gPGZrdGFi bGU+CisJCSAqCQkgIEZPUiBQT1JUSU9OIE9GICRma2F0dCAoJHsybisxfSkKKwkJICoJCSAgU0VU IGZrYXR0MSA9ICQxLCBbLCAuLi5dCisJCSAqCQkgIFdIRVJFICRuID0gZmthdHQxIFtBTkQgLi4u XQorCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0 aGUKKwkJICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLiAgTm90ZSB0aGF0IHdlIGFyZSBh c3N1bWluZworCQkgKiB0aGVyZSBpcyBhbiBhc3NpZ25tZW50IGNhc3QgZnJvbSB0aGUgUEsgdG8g dGhlIEZLIHR5cGU7CisJCSAqIGVsc2UgdGhlIHBhcnNlciB3aWxsIGZhaWwuCisJCSAqIC0tLS0t LS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJbmZvKCZxdWVyeWJ1Zik7CisJCWluaXRTdHJpbmdJ bmZvKCZxdWFsYnVmKTsKKwkJZmtfb25seSA9IGZrX3JlbC0+cmRfcmVsLT5yZWxraW5kID09IFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPworCQkJIiIgOiAiT05MWSAiOworCQlxdW90ZVJlbGF0 aW9uTmFtZShma3JlbG5hbWUsIGZrX3JlbCk7CisJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0 dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisK KwkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJVUERBVEUgJXMlcyBGT1IgUE9SVElPTiBP RiAlcyAoJCVkKSBTRVQiLAorCQkJCQkJIGZrX29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwgMiAq IHJpaW5mby0+bmtleXMgKyAxKTsKKworCQlxdWVyeXNlcCA9ICIiOworCQlxdWFsc2VwID0gIldI RVJFIjsKKwkJZm9yIChpbnQgaSA9IDAsIGogPSByaWluZm8tPm5rZXlzOyBpIDwgcmlpbmZvLT5u a2V5czsgaSsrLCBqKyspCisJCXsKKwkJCU9pZCBwa190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwg cmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZCBwa19jb2xsID0gUklBdHRDb2xsYXRpb24o cGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX3R5cGUgPSBSSUF0dFR5 cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX2NvbGwgPSBSSUF0 dENvbGxhdGlvbihma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisKKwkJCXF1b3RlT25l TmFtZShhdHRuYW1lLAorCQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVt c1tpXSkpOworCQkJLyoKKwkJCSAqIERvbid0IHNldCB0aGUgdGVtcG9yYWwgY29sdW1uKHMpLgor CQkJICogRk9SIFBPUlRJT04gT0Ygd2lsbCB0YWtlIGNhcmUgb2YgdGhhdC4KKwkJCSAqLworCQkJ aWYgKGkgPCByaWluZm8tPm5rZXlzIC0gMSkKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1 ZiwKKwkJCQkJCQkJICIlcyAlcyA9ICQlZCIsCisJCQkJCQkJCSBxdWVyeXNlcCwgYXR0bmFtZSwg aSArIDEpOworCisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIGogKyAxKTsKKwkJCXJpX0dl bmVyYXRlUXVhbCgmcXVhbGJ1ZiwgcXVhbHNlcCwKKwkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUs CisJCQkJCQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0dG5hbWUsIGZrX3R5cGUp OworCQkJaWYgKHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2NvbGxhdGlvbl9pc2RldGVybWlu aXN0aWMocGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFsQ29sbGF0aW9uKCZxdWVyeWJ1Ziwg cGtfY29sbCk7CisJCQlxdWVyeXNlcCA9ICIsIjsKKwkJCXF1YWxzZXAgPSAiQU5EIjsKKwkJCXF1 ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCQlxdWVyeW9pZHNbal0gPSBwa190eXBlOworCQl9CisJ CWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oJnF1ZXJ5YnVmLCBxdWFsYnVmLmRhdGEsIHF1YWxidWYu bGVuKTsKKworCQkvKiBTZXQgYSBwYXJhbSBmb3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLwor CQlxdWVyeW9pZHNbMiAqIHJpaW5mby0+bmtleXNdID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZv LT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7CisKKwkJLyogUHJlcGFyZSBhbmQgc2F2 ZSB0aGUgcGxhbiAqLworCQlxcGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCAyICog cmlpbmZvLT5ua2V5cyArIDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFrZXksIGZrX3JlbCwgcGtf cmVsKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIHVwZGF0 ZSB0aGUgZXhpc3RpbmcgcmVmZXJlbmNlcy4KKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZv LCAmcWtleSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBuZXdz bG90LAorCQkJCQlyaWluZm8tPm5rZXlzICogMiwgdGFyZ2V0UmFuZ2UsCisJCQkJCXRydWUsCQkv KiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLworCQkJCQlTUElfT0tfVVBEQVRFKTsKKworCWlmIChT UElfZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2gg ZmFpbGVkIik7CisKKwl0YWJsZV9jbG9zZShma19yZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ cmV0dXJuIFBvaW50ZXJHZXREYXR1bShOVUxMKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9k X3NldG51bGxfZGVsIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBOVUxM IHZhbHVlcyBhdCBkZWxldGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9GS2V5 X3BlcmlvZF9zZXRudWxsX2RlbChQR19GVU5DVElPTl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQg dGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQu ICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVs IiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBVUERBVEUgY2Fz ZSAqLworCXJldHVybiB0cmlfc2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIHRy dWUsIFJJX1RSSUdUWVBFX0RFTEVURSk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9zZXRu dWxsX3VwZCAtCisgKgorICogU2V0IGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMgdG8gTlVMTCBhdCB1 cGRhdGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRu dWxsX3VwZChQR19GVU5DVElPTl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZh bGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hl Y2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkIiwgUklfVFJJR1RZ UEVfVVBEQVRFKTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBERUxFVEUgY2FzZSAqLworCXJldHVy biB0cmlfc2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIHRydWUsIFJJX1RSSUdU WVBFX1VQREFURSk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbCAt CisgKgorICogU2V0IGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMgdG8gZGVmYXVsdHMgYXQgZGVsZXRl IGV2ZW50IG9uIFBLIHRhYmxlLgorICovCitEYXR1bQorUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVs dF9kZWwoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxp ZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNr VHJpZ2dlcihmY2luZm8sICJSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbCIsIFJJX1RSSUdU WVBFX0RFTEVURSk7CisKKwkvKiBTaGFyZSBjb2RlIHdpdGggVVBEQVRFIGNhc2UgKi8KKwlyZXR1 cm4gdHJpX3NldCgoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0LCBmYWxzZSwgUklfVFJJ R1RZUEVfREVMRVRFKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBk IC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBkZWZhdWx0cyBhdCB1cGRh dGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRkZWZh dWx0X3VwZChQR19GVU5DVElPTl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZh bGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hl Y2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkIiwgUklfVFJJ R1RZUEVfVVBEQVRFKTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBERUxFVEUgY2FzZSAqLworCXJl dHVybiB0cmlfc2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIGZhbHNlLCBSSV9U UklHVFlQRV9VUERBVEUpOworfQorCisvKgorICogdHJpX3NldCAtCisgKgorICogQ29tbW9uIGNv ZGUgZm9yIHRlbXBvcmFsIE9OIERFTEVURSBTRVQgTlVMTCwgT04gREVMRVRFIFNFVCBERUZBVUxU LCBPTgorICogVVBEQVRFIFNFVCBOVUxMLCBhbmQgT04gVVBEQVRFIFNFVCBERUZBVUxULgorICov CitzdGF0aWMgRGF0dW0KK3RyaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3Nl dF9udWxsLCBpbnQgdGdraW5kKQoreworCWNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87 CisJUmVsYXRpb24JZmtfcmVsOworCVJlbGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAq b2xkc2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5OworCVNQSVBsYW5QdHIJcXBsYW47CisJRGF0dW0J CXRhcmdldFJhbmdlOworCWludDMyCQlxdWVyeW5vOworCisJcmlpbmZvID0gcmlfRmV0Y2hDb25z dHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJCQkJCXRyaWdkYXRhLT50Z19y ZWxhdGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUgcmVsYXRpb24gZGVzY3JpcHRvcnMg b2YgdGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBvbGQgdHVwbGUuCisJICoKKwkgKiBma19y ZWwgaXMgb3BlbmVkIGluIFJvd0V4Y2x1c2l2ZUxvY2sgbW9kZSBzaW5jZSB0aGF0J3Mgd2hhdCBv dXIKKwkgKiBldmVudHVhbCBVUERBVEUgd2lsbCBnZXQgb24gaXQuCisJICovCisJZmtfcmVsID0g dGFibGVfb3BlbihyaWluZm8tPmZrX3JlbGlkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwlwa19yZWwg PSB0cmlnZGF0YS0+dGdfcmVsYXRpb247CisJb2xkc2xvdCA9IHRyaWdkYXRhLT50Z190cmlnc2xv dDsKKworCS8qCisJICogRG9uJ3QgU0VUIE5VTEwvREVGQVVMVCB0aGFuIG1vcmUgdGhhbiB0aGUg UEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9yaWdpbmFsIEZPUiBQT1JUSU9OIE9G IGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0X2Nhc2NhZGluZ19y YW5nZShwa19yZWwsIHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90KTsKKwor CWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9PS19DT05ORUNUKQorCQllbG9nKEVSUk9SLCAiU1BJ X2Nvbm5lY3QgZmFpbGVkIik7CisKKwkvKgorCSAqIEZldGNoIG9yIHByZXBhcmUgYSBzYXZlZCBw bGFuIGZvciB0aGUgdHJpZ2dlci4KKwkgKi8KKwlzd2l0Y2ggKHRna2luZCkKKwl7CisJCWNhc2Ug UklfVFJJR1RZUEVfVVBEQVRFOgorCQkJcXVlcnlubyA9IGlzX3NldF9udWxsCisJCQkJPyBSSV9Q TEFOX1BFUklPRF9TRVROVUxMX09OVVBEQVRFCisJCQkJOiBSSV9QTEFOX1BFUklPRF9TRVRERUZB VUxUX09OVVBEQVRFOworCQkJYnJlYWs7CisJCWNhc2UgUklfVFJJR1RZUEVfREVMRVRFOgorCQkJ cXVlcnlubyA9IGlzX3NldF9udWxsCisJCQkJPyBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OREVM RVRFCisJCQkJOiBSSV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OREVMRVRFOworCQkJYnJlYWs7 CisJCWRlZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCB0Z2tpbmQgcGFzc2VkIHRvIHJp X3NldCIpOworCX0KKworCXJpX0J1aWxkUXVlcnlLZXkoJnFrZXksIHJpaW5mbywgcXVlcnlubyk7 CisKKwlpZiAoKHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBsYW4oJnFrZXkpKSA9PSBOVUxMKQor CXsKKwkJU3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJCVN0cmluZ0luZm9EYXRhIHF1YWxidWY7 CisJCWNoYXIJCWZrcmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJCWNoYXIJCWF0 dG5hbWVbTUFYX1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFtZVsxNl07CisJCWNv bnN0IGNoYXIgKnF1ZXJ5c2VwOworCQljb25zdCBjaGFyICpxdWFsc2VwOworCQlPaWQJCQlxdWVy eW9pZHNbUklfTUFYX05VTUtFWVMgKyAxXTsgLyogKzEgZm9yIEZPUiBQT1JUSU9OIE9GICovCisJ CWNvbnN0IGNoYXIgKmZrX29ubHk7CisJCWludAkJCW51bV9jb2xzX3RvX3NldDsKKwkJY29uc3Qg aW50MTYgKnNldF9jb2xzOworCisJCXN3aXRjaCAodGdraW5kKQorCQl7CisJCQljYXNlIFJJX1RS SUdUWVBFX1VQREFURToKKwkJCQkvKiAtMSBzbyB3ZSBsZXQgRk9SIFBPUlRJT04gT0Ygc2V0IHRo ZSByYW5nZS4gKi8KKwkJCQludW1fY29sc190b19zZXQgPSByaWluZm8tPm5rZXlzIC0gMTsKKwkJ CQlzZXRfY29scyA9IHJpaW5mby0+ZmtfYXR0bnVtczsKKwkJCQlicmVhazsKKwkJCWNhc2UgUklf VFJJR1RZUEVfREVMRVRFOgorCQkJCS8qCisJCQkJICogSWYgY29uZmRlbHNldGNvbHMgYXJlIHBy ZXNlbnQsIHRoZW4gd2Ugb25seSB1cGRhdGUgdGhlCisJCQkJICogY29sdW1ucyBzcGVjaWZpZWQg aW4gdGhhdCBhcnJheSwgb3RoZXJ3aXNlIHdlIHVwZGF0ZSBhbGwKKwkJCQkgKiB0aGUgcmVmZXJl bmNpbmcgY29sdW1ucy4KKwkJCQkgKi8KKwkJCQlpZiAocmlpbmZvLT5uZGVsc2V0Y29scyAhPSAw KQorCQkJCXsKKwkJCQkJbnVtX2NvbHNfdG9fc2V0ID0gcmlpbmZvLT5uZGVsc2V0Y29sczsKKwkJ CQkJc2V0X2NvbHMgPSByaWluZm8tPmNvbmZkZWxzZXRjb2xzOworCQkJCX0KKwkJCQllbHNlCisJ CQkJeworCQkJCQkvKiAtMSBzbyB3ZSBsZXQgRk9SIFBPUlRJT04gT0Ygc2V0IHRoZSByYW5nZS4g Ki8KKwkJCQkJbnVtX2NvbHNfdG9fc2V0ID0gcmlpbmZvLT5ua2V5cyAtIDE7CisJCQkJCXNldF9j b2xzID0gcmlpbmZvLT5ma19hdHRudW1zOworCQkJCX0KKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6 CisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgdGdraW5kIHBhc3NlZCB0byByaV9zZXQiKTsKKwkJ fQorCisJCS8qIC0tLS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWlsdCBpcworCQkg KglVUERBVEUgW09OTFldIDxma3RhYmxlPgorCQkgKgkJCUZPUiBQT1JUSU9OIE9GICRma2F0dCAo JHtuKzF9KQorCQkgKgkJCVNFVCBma2F0dDEgPSB7TlVMTHxERUZBVUxUfSBbLCAuLi5dCisJCSAq CQkJV0hFUkUgJDEgPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9yIHRo ZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5nIFBLIGF0 dHJpYnV0ZXMuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJbmZvKCZxdWVy eWJ1Zik7CisJCWluaXRTdHJpbmdJbmZvKCZxdWFsYnVmKTsKKwkJZmtfb25seSA9IGZrX3JlbC0+ cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPworCQkJIiIgOiAi T05MWSAiOworCQlxdW90ZVJlbGF0aW9uTmFtZShma3JlbG5hbWUsIGZrX3JlbCk7CisJCXF1b3Rl T25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlp bmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJVUERB VEUgJXMlcyBGT1IgUE9SVElPTiBPRiAlcyAoJCVkKSBTRVQiLAorCQkJCQkJIGZrX29ubHksIGZr cmVsbmFtZSwgYXR0bmFtZSwgcmlpbmZvLT5ua2V5cyArIDEpOworCisJCS8qCisJCSAqIEFkZCBh c3NpZ25tZW50IGNsYXVzZXMKKwkJICovCisJCXF1ZXJ5c2VwID0gIiI7CisJCWZvciAoaW50IGkg PSAwOyBpIDwgbnVtX2NvbHNfdG9fc2V0OyBpKyspCisJCXsKKwkJCXF1b3RlT25lTmFtZShhdHRu YW1lLCBSSUF0dE5hbWUoZmtfcmVsLCBzZXRfY29sc1tpXSkpOworCQkJYXBwZW5kU3RyaW5nSW5m bygmcXVlcnlidWYsCisJCQkJCQkJICIlcyAlcyA9ICVzIiwKKwkJCQkJCQkgcXVlcnlzZXAsIGF0 dG5hbWUsCisJCQkJCQkJIGlzX3NldF9udWxsID8gIk5VTEwiIDogIkRFRkFVTFQiKTsKKwkJCXF1 ZXJ5c2VwID0gIiwiOworCQl9CisKKwkJLyoKKwkJICogQWRkIFdIRVJFIGNsYXVzZQorCQkgKi8K KwkJcXVhbHNlcCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5 czsgaSsrKQorCQl7CisJCQlPaWQJcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+ cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQJZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5m by0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQJcGtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKHBrX3Jl bCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZAlma19jb2xsID0gUklBdHRDb2xsYXRp b24oZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCisJCQlxdW90ZU9uZU5hbWUoYXR0 bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pKTsK KworCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7CisJCQlyaV9HZW5lcmF0ZVF1 YWwoJnF1ZXJ5YnVmLCBxdWFsc2VwLAorCQkJCQkJCXBhcmFtbmFtZSwgcGtfdHlwZSwKKwkJCQkJ CQlyaWluZm8tPnBmX2VxX29wcnNbaV0sCisJCQkJCQkJYXR0bmFtZSwgZmtfdHlwZSk7CisJCQlp ZiAocGtfY29sbCAhPSBma19jb2xsICYmICFnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhw a19jb2xsKSkKKwkJCQlyaV9HZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xs KTsKKwkJCXF1YWxzZXAgPSAiQU5EIjsKKwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCX0K KworCQkvKiBTZXQgYSBwYXJhbSBmb3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVy eW9pZHNbcmlpbmZvLT5ua2V5c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51 bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFu ICovCisJCXFwbGFuID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMg KyAxLCBxdWVyeW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJfQorCisJ LyoKKwkgKiBXZSBoYXZlIGEgcGxhbiBub3cuIFJ1biBpdCB0byB1cGRhdGUgdGhlIGV4aXN0aW5n IHJlZmVyZW5jZXMuCisJICovCisJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFu LAorCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJb2xkc2xvdCwgTlVMTCwKKwkJCQkJcmlpbmZv LT5ua2V5cywgdGFyZ2V0UmFuZ2UsCisJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93 cyAqLworCQkJCQlTUElfT0tfVVBEQVRFKTsKKworCWlmIChTUElfZmluaXNoKCkgIT0gU1BJX09L X0ZJTklTSCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2ggZmFpbGVkIik7CisKKwl0YWJsZV9j bG9zZShma19yZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJaWYgKGlzX3NldF9udWxsKQorCQly ZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIHdl IGp1c3QgZGVsZXRlZCBvciB1cGRhdGVkIHRoZSBQSyByb3cgd2hvc2Uga2V5IHdhcyBlcXVhbCB0 byB0aGUKKwkJICogRksgY29sdW1ucycgZGVmYXVsdCB2YWx1ZXMsIGFuZCBhIHJlZmVyZW5jaW5n IHJvdyBleGlzdHMgaW4gdGhlIEZLCisJCSAqIHRhYmxlLCB3ZSB3b3VsZCBoYXZlIHVwZGF0ZWQg dGhhdCByb3cgdG8gdGhlIHNhbWUgdmFsdWVzIGl0IGFscmVhZHkKKwkJICogaGFkIC0tLSBhbmQg UklfRktleV9ma191cGRfY2hlY2tfcmVxdWlyZWQgd291bGQgaGVuY2UgYmVsaWV2ZSBubworCQkg KiBjaGVjayBpcyBuZWNlc3NhcnkuICBTbyB3ZSBuZWVkIHRvIGRvIGFub3RoZXIgbG9va3VwIG5v dyBhbmQgaW4KKwkJICogY2FzZSBhIHJlZmVyZW5jZSBzdGlsbCBleGlzdHMsIGFib3J0IHRoZSBv cGVyYXRpb24uICBUaGF0IGlzCisJCSAqIGFscmVhZHkgaW1wbGVtZW50ZWQgaW4gdGhlIE5PIEFD VElPTiB0cmlnZ2VyLCBzbyBqdXN0IHJ1biBpdC4gKFRoaXMKKwkJICogcmVjaGVjayBpcyBvbmx5 IG5lZWRlZCBpbiB0aGUgU0VUIERFRkFVTFQgY2FzZSwgc2luY2UgQ0FTQ0FERSB3b3VsZAorCQkg KiByZW1vdmUgc3VjaCByb3dzIGluIGNhc2Ugb2YgYSBERUxFVEUgb3BlcmF0aW9uIG9yIHdvdWxk IGNoYW5nZSB0aGUKKwkJICogRksga2V5IHZhbHVlcyBpbiBjYXNlIG9mIGFuIFVQREFURSwgd2hp bGUgU0VUIE5VTEwgaXMgY2VydGFpbiB0bworCQkgKiByZXN1bHQgaW4gcm93cyB0aGF0IHNhdGlz ZnkgdGhlIEZLIGNvbnN0cmFpbnQuKQorCQkgKi8KKwkJcmV0dXJuIHJpX3Jlc3RyaWN0KHRyaWdk YXRhLCB0cnVlKTsKKwl9Cit9CisKIC8qCiAgKiBSSV9GS2V5X3BrX3VwZF9jaGVja19yZXF1aXJl ZCAtCiAgKgpAQCAtMjMwNSw3ICsyODQzLDggQEAgcmlfTG9hZENvbnN0cmFpbnRJbmZvKE9pZCBj b25zdHJhaW50T2lkKQogCQlGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3MsCiAJCQkJ CQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAogCQkJCQkJCQkgICZyaWlu Zm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKLQkJCQkJCQkJICAmcmlpbmZvLT5w ZXJpb2RfcmVmZXJlbmNlZF9hZ2dfcHJvYyk7CisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX3Jl ZmVyZW5jZWRfYWdnX3Byb2MsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9w cm9jKTsKIAkJcmlpbmZvLT5wZXJpb2RfcmVmZXJlbmNlZF9hZ2dfcmV0dHlwZSA9IGdldF9mdW5j X3JldHR5cGUocmlpbmZvLT5wZXJpb2RfcmVmZXJlbmNlZF9hZ2dfcHJvYyk7CiAJfQogCkBAIC0y NDYxLDggKzMwMDAsOCBAQCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8g KnJpaW5mbywKIAlpbnQJCQlzcGlfcmVzdWx0OwogCU9pZAkJCXNhdmVfdXNlcmlkOwogCWludAkJ CXNhdmVfc2VjX2NvbnRleHQ7Ci0JRGF0dW0JCXZhbHNbUklfTUFYX05VTUtFWVMgKiAyXTsKLQlj aGFyCQludWxsc1tSSV9NQVhfTlVNS0VZUyAqIDJdOworCURhdHVtCQl2YWxzW1JJX01BWF9OVU1L RVlTICogMiArIDFdOworCWNoYXIJCW51bGxzW1JJX01BWF9OVU1LRVlTICogMiArIDFdOwogCiAJ LyoKIAkgKiBVc2UgdGhlIHF1ZXJ5IHR5cGUgY29kZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUg cXVlcnkgaXMgcnVuIGFnYWluc3QKQEAgLTI0OTcsOCArMzAzNiwxMCBAQCByaV9QZXJmb3JtQ2hl Y2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJcmlfRXh0cmFjdFZhbHVlcyhz b3VyY2VfcmVsLCBuZXdzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJCQkJCSB2YWxzLCBu dWxscyk7CiAJCWlmIChvbGRzbG90KQorCQl7CiAJCQlyaV9FeHRyYWN0VmFsdWVzKHNvdXJjZV9y ZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJCQkJCSB2YWxzICsgcmlpbmZv LT5ua2V5cywgbnVsbHMgKyByaWluZm8tPm5rZXlzKTsKKwkJfQogCX0KIAllbHNlCiAJewpAQCAt MzE2Nyw2ICszNzA4LDEyIEBAIFJJX0ZLZXlfdHJpZ2dlcl90eXBlKE9pZCB0Z2ZvaWQpCiAJCWNh c2UgRl9SSV9GS0VZX1NFVERFRkFVTFRfVVBEOgogCQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9E RUw6CiAJCWNhc2UgRl9SSV9GS0VZX05PQUNUSU9OX1VQRDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVS SU9EX0NBU0NBREVfREVMOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfQ0FTQ0FERV9VUEQ6CisJ CWNhc2UgRl9SSV9GS0VZX1BFUklPRF9TRVROVUxMX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVS SU9EX1NFVE5VTExfVVBEOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUREVGQVVMVF9ERUw6 CisJCWNhc2UgRl9SSV9GS0VZX1BFUklPRF9TRVRERUZBVUxUX1VQRDoKIAkJCXJldHVybiBSSV9U UklHR0VSX1BLOwogCiAJCWNhc2UgRl9SSV9GS0VZX0NIRUNLX0lOUzoKQEAgLTMyMzMsMzAgKzM3 ODAsMzAgQEAgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRn X3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW4KIC8qCiAgKiByZXN0cmljdF9jYXNjYWRp bmdfcmFuZ2UgLQogICoKLSAqIFJldHVybnMgYSBEYXR1bSBvZiBSYW5nZVR5cGVQIGhvbGRpbmcg dGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCi0gKiB0byB0YXJnZXQgY2hpbGQgcmVjb3JkcyB3aGVu IHdlIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQuCisgKiBSZXR1cm5zIGEgRGF0dW0gaG9s ZGluZyB0aGUgYXBwcm9wcmlhdGUgdGltZXNwYW4KKyAqIHRvIHRhcmdldCByZWZlcmVuY2luZyBy ZWNvcmRzIHdoZW4gd2UgQ0FTQ0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4KICAqCi0gKiBJbiBh IG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSBwYXJlbnQncyBvd24gdmFs aWQgdGltZSwKKyAqIEluIGEgbm9ybWFsIFVQREFURS9ERUxFVEUgdGhpcyBzaG91bGQgYmUgdGhl IHJlZmVyZW5jZWQgcm93J3Mgb3duIHZhbGlkIHRpbWUsCiAgKiBidXQgaWYgdGhlcmUgd2FzIGEg Rk9SIFBPUlRJT04gT0YgY2xhdXNlLCB0aGVuIHdlIHNob3VsZCB1c2UgdGhhdCB0bwotICogdHJp bSBkb3duIHRoZSBwYXJlbnQncyBzcGFuIGZ1cnRoZXIuCisgKiB0cmltIGRvd24gdGhlIHNwYW4g ZnVydGhlci4KICAqLwogc3RhdGljIERhdHVtCi1yZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UoY29u c3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5m byAqcmlpbmZvLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCkKK3Jlc3RyaWN0X2Nhc2NhZGluZ19y YW5nZShSZWxhdGlvbiByZWwsIGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwg Y29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Qp CiB7CiAJRGF0dW0JcGtSZWNvcmRSYW5nZTsKIAlib29sCWlzbnVsbDsKKwlpbnQJCWF0dG5vID0g cmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsKIAotCXBrUmVjb3JkUmFuZ2Ug PSBzbG90X2dldGF0dHIob2xkc2xvdCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMg LSAxXSwgJmlzbnVsbCk7CisJcGtSZWNvcmRSYW5nZSA9IHNsb3RfZ2V0YXR0cihvbGRzbG90LCBh dHRubywgJmlzbnVsbCk7CiAJaWYgKGlzbnVsbCkKIAkJZWxvZyhFUlJPUiwgImFwcGxpY2F0aW9u IHRpbWUgc2hvdWxkIG5vdCBiZSBudWxsIik7CiAKIAlpZiAoZnBvX3RhcmdldHNfcGtfcmFuZ2Uo dGdfdGVtcG9yYWwsIHJpaW5mbykpCiAJewotCQlSYW5nZVR5cGUgKnIxID0gRGF0dW1HZXRSYW5n ZVR5cGVQKHBrUmVjb3JkUmFuZ2UpOwotCQlSYW5nZVR5cGUgKnIyID0gRGF0dW1HZXRSYW5nZVR5 cGVQKHRnX3RlbXBvcmFsLT5mcF90YXJnZXRSYW5nZSk7Ci0JCU9pZCBybmd0eXBpZCA9IFJhbmdl VHlwZUdldE9pZChyMSk7Ci0JCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSA9IGxvb2t1cF90eXBl X2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7Ci0JCXJldHVybiBSYW5nZVR5 cGVQR2V0RGF0dW0ocmFuZ2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsK KwkJaWYgKCFPaWRJc1ZhbGlkKHJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9wcm9jKSkKKwkJCWVs b2coRVJST1IsICJpbnZhbGlkIGludGVyc2VjdCBzdXBwb3J0IGZ1bmN0aW9uIik7CisKKwkJcmV0 dXJuIE9pZEZ1bmN0aW9uQ2FsbDIocmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X3Byb2MsIHBrUmVj b3JkUmFuZ2UsIHRnX3RlbXBvcmFsLT5mcF90YXJnZXRSYW5nZSk7CiAJfQogCWVsc2UKIAkJcmV0 dXJuIHBrUmVjb3JkUmFuZ2U7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bnN0cmFpbnQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IGU0 ZjRjMmZmYWYxLi41MzhlOGU2NDQ2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb25zdHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgK QEAgLTI4NCw5ICsyODQsMTAgQEAgZXh0ZXJuIHZvaWQgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRS b3coSGVhcFR1cGxlIHR1cGxlLCBpbnQgKm51bWZrcywKIAkJCQkJCQkJCSAgIE9pZCAqcGZfZXFf b3BycywgT2lkICpwcF9lcV9vcHJzLCBPaWQgKmZmX2VxX29wcnMsCiAJCQkJCQkJCQkgICBpbnQg Km51bV9ma19kZWxfc2V0X2NvbHMsIEF0dHJOdW1iZXIgKmZrX2RlbF9zZXRfY29scyk7CiBleHRl cm4gdm9pZCBGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKE9pZCBvcGNsYXNzLAotCQkJCQkJCQkJ ICBPaWQgKnBlcmlvZG9wZXJvaWQsCi0JCQkJCQkJCQkgIE9pZCAqYWdnZWRwZXJpb2RvcGVyb2lk LAotCQkJCQkJCQkJICBPaWQgKnBlcmlvZHByb2NvaWQpOworCQkJCQkJCQkJICBPaWQgKmNvbnRh aW5lZGJ5b2RvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lk LAorCQkJCQkJCQkJICBPaWQgKmFnZ3Byb2NvaWQsCisJCQkJCQkJCQkgIE9pZCAqaW50ZXJzZWN0 cHJvY29pZCk7CiAKIGV4dGVybiBib29sIGNoZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJl bGlkLAogCQkJCQkJCQkJICBJbmRleCB2YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCBiYmQzOWRkMGZjNS4uODQyNDVkMDIyODkgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMzk0NSw2ICszOTQ1LDI4IEBACiAgIHByb3JldHR5cGUgPT4gJ3Ry aWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ICdSSV9GS2V5X25vYWN0aW9u X3VwZCcgfSwKIAorIyBUZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgY29uc3RyYWludCB0 cmlnZ2VycworeyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwg aW50ZWdyaXR5IE9OIERFTEVURSBDQVNDQURFJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJp b2RfY2FzY2FkZV9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdn ZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9jYXNj YWRlX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI1JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50 aWFsIGludGVncml0eSBPTiBVUERBVEUgQ0FTQ0FERScsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlf cGVyaW9kX2Nhc2NhZGVfdXBkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0 cmlnZ2VyJywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rf Y2FzY2FkZV91cGQnIH0sCit7IG9pZCA9PiAnNjEyOCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZl cmVudGlhbCBpbnRlZ3JpdHkgT04gREVMRVRFIFNFVCBOVUxMJywKKyAgcHJvbmFtZSA9PiAnUklf RktleV9wZXJpb2Rfc2V0bnVsbF9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUg PT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3Bl cmlvZF9zZXRudWxsX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI5JywgZGVzY3IgPT4gJ3RlbXBvcmFs IHJlZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgU0VUIE5VTEwnLAorICBwcm9uYW1lID0+ ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0 dHlwZSA9PiAndHJpZ2dlcicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ1JJX0ZL ZXlfcGVyaW9kX3NldG51bGxfdXBkJyB9LAoreyBvaWQgPT4gJzYxMzAnLCBkZXNjciA9PiAndGVt cG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBTRVQgREVGQVVMVCcsCisgIHBy b25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsJywgcHJvdm9sYXRpbGUgPT4g J3YnLAorICBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywgcHJvYXJndHlwZXMgPT4gJycsCisgIHBy b3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwnIH0sCit7IG9pZCA9PiAnNjEz MScsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gVVBEQVRFIFNF VCBERUZBVUxUJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQn LCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0 eXBlcyA9PiAnJywKKyAgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCcg fSwKKwogeyBvaWQgPT4gJzE2NjYnLAogICBwcm9uYW1lID0+ICd2YXJiaXRlcScsIHByb2xlYWtw cm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBwcm9hcmd0eXBlcyA9PiAndmFy Yml0IHZhcmJpdCcsIHByb3NyYyA9PiAnYml0ZXEnIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYnRyZWVfaW5kZXgub3V0CmluZGV4IDgzMTFhMDNjM2RmLi5mMTZkYzI4YjRkNCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKQEAgLTIwNiwxNCArMjA2LDE3 IEBAIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxc X0ZLZXklZGVsJyBvcmRlciBieSAxOwogKDMgcm93cykKIAogc2VsZWN0IHByb25hbWUgZnJvbSBw Z19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7Ci0g ICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgcHJvbmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIFJJX0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9GS2V5X25vYWN0aW9uX2RlbAorIFJJX0ZLZXlf cGVyaW9kX2Nhc2NhZGVfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwKKyBSSV9G S2V5X3BlcmlvZF9zZXRudWxsX2RlbAogIFJJX0ZLZXlfcmVzdHJpY3RfZGVsCiAgUklfRktleV9z ZXRkZWZhdWx0X2RlbAogIFJJX0ZLZXlfc2V0bnVsbF9kZWwKLSg1IHJvd3MpCisoOCByb3dzKQog CiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUg cHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBieSAxOwpAQCAtMjUyLDE0ICsyNTUsMTcgQEAg c2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktl eSVkZWwnIG9yZGVyIGJ5IDE7CiAoNiByb3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3By b2Mgd2hlcmUgcHJvbmFtZSBsaWtlIEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKLSAgICAg ICAgcHJvbmFtZSAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICBwcm9uYW1lICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg UklfRktleV9jYXNjYWRlX2RlbAogIFJJX0ZLZXlfbm9hY3Rpb25fZGVsCisgUklfRktleV9wZXJp b2RfY2FzY2FkZV9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAorIFJJX0ZLZXlf cGVyaW9kX3NldG51bGxfZGVsCiAgUklfRktleV9yZXN0cmljdF9kZWwKICBSSV9GS2V5X3NldGRl ZmF1bHRfZGVsCiAgUklfRktleV9zZXRudWxsX2RlbAotKDUgcm93cykKKyg4IHJvd3MpCiAKIGV4 cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9u YW1lIGlsaWtlICcwMCVmb28nIG9yZGVyIGJ5IDE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA2ZTk2NjAzNjdhYy4uYTk3MTI3MjU4MDkg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApA QCAtMiw3ICsyLDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8g dGVzdCBwZ19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRl bXBvcmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJf cm5nMnJuZy4KIFNFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAtLQogLS0gdGVzdCBpbnB1dCBw YXJzZXIKQEAgLTg3MSw2ICs4NzEsMjEgQEAgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAn WzUsNiknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmci IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE2LTAyLTAxLDIwMTYtMDMtMDEpCisgWzUsNikg fCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0w MSkKKyBbNyw4KSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMDMpCisoNCByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMs NCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3Vj Y2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQp JzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAx LTAxJywgJzIwMTYtMDItMDEnKQpAQCAtOTE5LDYgKzkzNCwyMSBAQCBTRVQgaWQgPSAnWzcsOCkn CiBXSEVSRSBpZCA9ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf Zmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTYtMDItMDEsMjAxNi0w My0wMSkKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0w MS0wMywyMDE4LTAyLTAxKQorIFs3LDgpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0wMykKKyg0IHJv d3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1sz LDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJv dykKKwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC05NTYsMTIgKzk4NiwyMiBAQCBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcK IFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGls bCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAx LTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKygyIHJvd3MpCisKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb Myw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhl biBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBz dWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMs NCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotLS0gY2xlYW4g dXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdb NSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwog LS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpAQCAtOTk1LDM5 ICsxMDM1LDIwNiBAQCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBU TyAnMjAxOC0wMS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdb Nyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAx OC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKygy IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAo J1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygx IHJvdykKKwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOwotLS0gY2xlYW4gdXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IHBhcmVudF9pZCA9ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQg SU4gKCdbNSw2KScpOwogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLSBy bmcycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0gcmVm ZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1 YnNldCkKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOwogSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAJCUZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQ REFURSBDQVNDQURFOwotRVJST1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRl czoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0g bm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIw MTktMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4KQorKDMg cm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAn WzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8 IFs5LDEwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygy IHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQor VFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMiBy b3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8 IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygxIHJvdykKKworLS0KIC0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CistLQorVFJVTkNBVEUgdGVtcG9yYWxf cm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n CiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KQogCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICBp bnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcg UEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBv cmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEs MjAyMC0wMS0wMSkgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4 LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5V TEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEp IHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sy MDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcy cm5nOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1st MSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbMTIsMTMpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCiAJ RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCkBAIC0xMDM1LDcgKzEyNDIs NDMyIEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKIAkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQg REVGQVVMVDsKLUVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtl eSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEw MSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFst MSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdb OSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg Wy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIg cm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlcmFu Z2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5 LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSkgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVND QURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9y YWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2Zr CisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQp CisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8 IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9y bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkp Jyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0g J1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSkgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAx OS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBk ZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBp ZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJy bmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBE QVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9y YWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAx LDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8g dXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAs MTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgICAgICAgICAgICB8IAorKDMgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgs OSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJyBX SEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAx OC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg J1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIw MTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAg ICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkp ICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRo ZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBV UERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4g T04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERF TEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgICAgICAgICAg ICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAg ICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8ICAgICAg ICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgWzgsOSkKKyBb MjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxU ICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxf ZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdb LTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0n LAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0 ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBT RVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIw MTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCkn LCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJF IGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBE RUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVt cG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBu dWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n MiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkgICAg IHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkg ICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEs MCkgICAgIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkK KyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5 KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRh dGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNykn KTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQx IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9S RUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBE RUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJP UjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24g Y2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJu ZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQx KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwy MDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1G UE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkg fCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisoMyByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbOCw5KScs IGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgs OSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJl bnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBb LTEsMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwogLS0KIC0tIHRlc3QgRk9SRUlHTiBLRVks IG11bHRpcmFuZ2UgcmVmZXJlbmNlcyBtdWx0aXJhbmdlCiAtLQpAQCAtMTMxMCw2ICsxOTQyLDIy IEBAIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgt MDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAn WzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWls czoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBp ZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAx OC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1 Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCitXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKSk7CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg UkVTVFJJQ1QKIC0tCkBAIC0xMzQyLDYgKzE5OTAsMjIgQEAgVVBEQVRFIHRlbXBvcmFsX21sdHJu ZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24g dGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gY2hhbmdpbmcg YW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDInLCAnMjAxOC0wMS0wMycpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYp JzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJu ZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAn WzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRy bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4 LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksg cmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAx LTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIC0t CiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KIC0tCkBAIC0xMzY1LDYg KzIwMjksMTkgQEAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXQKIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBFUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVu Y2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcy MDE4LTAxLTAzJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBh cnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0w MSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5j ZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRz OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0 KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpA QCAtMTM4OCw2ICsyMDY1LDYzOCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdAogREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIEVSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5j ZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSBkZWxldGluZyBh biB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGlu ZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg e1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxl dGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CistLQorLS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9E RUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3 byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVM VCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkKKygyIHJvd3MpCisKKy0tIG5vbi1G UE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs3LDgpCisgWzEwMCwxMDEpIHwg e1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgp CisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n IFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIw MTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzksMTApCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IFs2LDcpCisoMSByb3cpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRy bmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBF UklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwy MDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAKKyBbMTAwLDEwMSkgfCB7WzIw MTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9 ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEs MjAyMC0wMS0wMSl9IHwgCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcy MDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb Niw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAg ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAg ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1sy MDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IAorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwg bnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQg U0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg ICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYs NykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAg ICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwx MCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0w MS0wMSl9IHwgWy0xLDApCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIw MTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBb MTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7 WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdb Niw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgQ0FT Q0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3 LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAg ICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIw MTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkgICAg ICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAx LTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs3LDgpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAg ICAgICAgICAgICAgfCBbNyw4KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4 LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUg aWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIw MSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNj YWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDEgcm93KQorCistLSBub24t RlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAg ICB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIs IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVM TDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0w MS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb Niw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0g bm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgp JyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAx LDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKygy IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQg aWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAgICAgICAg ICAgIHwgCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n MiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEt MDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAx OS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAgICAgICAgICAgIHwgCisg WzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJl bnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9 IHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCist LQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRo ZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgU0VU IE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFs aWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklP RAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgTlVMTCAo cGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAx LTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCBb Niw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg ICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgICAg ICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAn Wy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisg IEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERB VEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1w b3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScsIGlk MiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFst MSwwKSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRF IHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkgICAgIHwgWy0xLDAp CisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIg U0VUIGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIw MjAtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGws IG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAx LTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKSAgICAgfCBb LTEsMCkKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg ICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEp IHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFst MSwwKSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwg Wy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBz dWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo bnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlv dSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0x LC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVM RVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJST1I6 ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNh bm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFy ZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQg REVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFst MSwwKSAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAg ICAgICAgfCBbLTEsMCkgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1stMSwtMV0nLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgs OSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLSBGSyB3 aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdl KHN1YnR5cGU9ZGF0ZSk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IG15ZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg bXlkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAoaWQs IFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOCw5KQorIFs1 LDYpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworRFJPUCBU QUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKK0RS T1AgVFlQRSBteWRhdGVyYW5nZTsKIC0tCiAtLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxl cwogLS0KQEAgLTEzOTcsOCArMjcwNiw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKAogICBuYW1lIHRleHQsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVk X3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApIFBB UlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1 LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBh cnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMp JywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JF QVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBW QUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAn WzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1sy MSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1 KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdb MTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKIElO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBW QUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyks ICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAx JyksICdvbmUnKSwKQEAgLTE0MTEsOCArMjcyMCw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nICgKIAlDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQog CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRp b24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEs MiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNS RUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAn WzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1sz LDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAn WzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitD UkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4 LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogLS0KIC0tIHBhcnRpdGlv bmVkIEZLIHJlZmVyZW5jaW5nIGluc2VydHMKIC0tCkBAIC0xNDU0LDcgKzI3NjMsNyBAQCBVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx Ni0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZhaWw6CiBVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2 LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUg b24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5j ZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgpAQCAtMTQ2Niw3ICsy Nzc1LDcgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sKIERFTEVURSBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKIC0tIHNob3VsZCBmYWlsOgogREVMRVRFIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2Zr ZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0 X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklD VApAQCAtMTQ4OCw3ICsyNzk3LDcgQEAgVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBT RVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0KIC0tIHNob3Vs ZCBmYWlsOgogVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCiAgIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwot RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lk X3ZhbGlkX2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50 X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBSRVNUUklDVApAQCAtMTUwMCw0OCArMjgwOSwyMzQgQEAgSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sKIERFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KTsKIC0tIHNob3VsZCBmYWlsOgogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOwotRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUs NiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVk IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCU9OIERFTEVURSBDQVNDQURF IE9OIFVQREFURSBDQVNDQURFOwotRVJST1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNCw1 KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs0LDUpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCBbNyw4KQorIFs0LDUpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0w MSkgfCBbNiw3KQorIFs0LDUpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMg cm93cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNCw1KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFs0LDUpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbNyw4KQorIFs0 LDUpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4KQorIFs0LDUpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNyw4KQorKDMgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw LDExKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTUsMTYpJyk7 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVS RSBpZCA9ICdbMTUsMTYpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sx MCwxMSknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwLDEx KSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzE2LDE3KQorIFsxMCwxMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFsxNSwxNikKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25l ZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlk ID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOCw5KQorIFs1LDYpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworREVMRVRFIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisgaWQg fCB2YWxpZF9hdCB8IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAg cm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbMTcsMTgpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzE3LDE4KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKKyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMSwxMikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxNywxOCkKKygx IHJvdykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVM TAogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCiAJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7Ci1FUlJP UjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1 c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdb MTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzYsNykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAor IFs2LDcpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOSwxMCkKKyBbNiw3KSB8IFsyMDIw LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzksMTApCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzYsNykgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs2LDcpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0w MSkgfCAKKyBbNiw3KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzE4LDE5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1sxOCwxOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VU IGlkID0gJ1sxOSwyMCknIFdIRVJFIGlkID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTIsMTMpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTIs MTMpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTgsMTkpCisoMiByb3dzKQorCiAtLQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQorVFJVTkNB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNyw4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbMTEsMTIpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzcsOCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IAorIFs3LDgpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbMTEsMTIpCisgWzcsOCkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxMSwxMikKKygzIHJvd3MpCisKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7 CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs3LDgpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisg WzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwy MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEp JywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEzLDE0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUg aWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTMs MTQpJzsKKyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMywxNCkg fCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMywxNCkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFsyMCwyMSkKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBk YXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTIsMTMpJyk7CiBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCi0gIEFMVEVSIENPTFVNTiBwYXJlbnRf aWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBE RUZBVUxUICdbMCwxKScsCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJF RkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQog CQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwotRVJST1I6ICBp bnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcg UEVSSU9ECitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEzLDE0 KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzgsOSknOworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbOCw5KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzAsMSkK KyBbOCw5KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzEyLDEzKQorIFs4LDkpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTIsMTMpCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbOCw5KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs4LDkp IHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbMCwxKQorIFs4LDkpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbMCwxKQorIFs4LDkpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb MCwxKQorKDMgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOworICAgaWQgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE0LDE1KSB8IFsyMDE4LTAxLTAxLDIw MjAtMDEtMDEpIHwgWzAsMSkKKyBbMTQsMTUpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb MjIsMjMpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZXJhbmdlKG51 bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNCwxNSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8IFswLDEpCisgWzksMTApIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBb MTQsMTUpCisgWzksMTApIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTQsMTUpCisoMyBy b3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAn WzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbOSwxMCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFswLDEpCisgWzksMTApIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbMCwxKQorIFs5LDEwKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzAsMSkKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNSwxNikn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzI0LDI1KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisgICBpZCAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTUsMTYpIHwgWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSkgfCBbMCwxKQorIFsxNSwxNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsy NCwyNSkKKygyIHJvd3MpCisKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nOwogUkVTRVQgZGF0ZXN0 eWxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCBhNDE1 NmU5OGI0OC4uZTYxN2JkMjk0MTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dp dGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zl cmxhcHMuc3FsCkBAIC0yLDcgKzIsNyBAQAogLS0KIC0tIFdlIGxlYXZlIGJlaGluZCBzZXZlcmFs IHRhYmxlcyB0byB0ZXN0IHBnX2R1bXAgZXRjOgogLS0gdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9y bmcyLAotLS0gdGVtcG9yYWxfZmtfcm5nMnJuZy4KKy0tIHRlbXBvcmFsX2ZrX3JuZzJybmcsIHRl bXBvcmFsX2ZrMl9ybmcycm5nLgogCiBTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOwogCkBAIC02 NjEsNiArNjYxLDggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBTRVQgaWQgPSAnWzcsOCknCiBX SEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBp biAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTcwNSw2ICs3MDcsOCBA QCBVUERBVEUgdGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1 LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAn WzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIC0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRh dGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtNzQwLDEyICs3NDQsMTEgQEAgV0hFUkUgaWQg PSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcs OCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIC0tIHRo ZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUg c3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFu IHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAn WzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsK IAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC03NzcsNDEg Kzc4MCwxMzEgQEAgV0hFUkUgaWQgPSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0x MCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRp b25zCistLSBybmcycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQorLS0gVE9D OgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBD QVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNj YWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBz dWJzZXQpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQor LS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBE RUZBVUxUIHN1YnNldCkKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NB REUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxFVEUg Q0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor VVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBp ZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1w b3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCistLQogLS0gdGVz dCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwog CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKIAkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUg dGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCiAKK1RSVU5DQVRF IHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVy YW5nZShudWxsLCBudWxsKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICBBTFRF UiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKIAlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKQEAgLTgxOSw2ICs5MTIsMjUyIEBAIEFMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKIAkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3 LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitV UERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdl KG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJu ZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFU RSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxf cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNF VCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzks MTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNykn LCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAn WzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Ju ZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgU0VUIE5VTEwgT04g VVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVt cG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9y bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEg PSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBv cmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7Cist LSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9O IERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdf ZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9h dCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0 KQorCQlPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwt MV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywg J1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQyIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsK KwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQor CQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4 KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEg PSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBp ZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFy IGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAn WzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRhdGVy YW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsK Ky0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJy bmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxF VEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBvazoK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRf aWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlP TiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hF UkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKIAogLS0KIC0tIHRlc3QgRk9SRUlHTiBLRVksIG11bHRpcmFu Z2UgcmVmZXJlbmNlcyBtdWx0aXJhbmdlCkBAIC0xMDYyLDYgKzE0MDEsMjAgQEAgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAKIC0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKIFVQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1NFVCBpZCA9ICdb Nyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxz OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorU0VUIGlk ID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRF IHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpOwogCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKQEAgLTEw OTIsNiArMTQ0NSwyMCBAQCBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMAogLS0gY2hhbmdpbmcgdGhl IHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcs OCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CistLSBjaGFuZ2luZyBhbiB1bnJl ZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcy MDE4LTAxLTAzJykpKQorU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0g Y2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1 JywgJzIwMTgtMDEtMTAnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7 CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg dXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9 IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCitX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBOTyBBQ1RJT04KQEAgLTExMTUsNiArMTQ4MiwxNyBAQCBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsNCknLAogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKTsKIC0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFy ZSByZWZlcmVuY2VkOgogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpKTsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9r YXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQg dGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogCiAtLQogLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTExMzgsNiArMTUxNiw0MTcgQEAgSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1szLDQpJywKIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKSk7CiAtLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90 aCBhcmUgcmVmZXJlbmNlZDoKIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKSk7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMn KSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorV0hF UkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKworLS0KKy0tIG1sdHJuZzJt bHRybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZl cmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMp CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vi c2V0KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJ CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBDQVNDQURF IE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJF IGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEt MDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlk ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlP TiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkg U0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBp ZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAw LDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9t bHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQor CQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZwor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFy ZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBDQVND QURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERB VEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcs OCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3 LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5 LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs ICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNykn LCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAo cGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRl bXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBT RVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9 ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEg PSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEg PSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAn WzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNF VCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1 c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2Zr CisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQp CisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9h dCkKKwkJT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBOVUxMOwor LS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgTlVMTCAocGFy ZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBz Y2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBT RVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQor CQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgp JyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4 LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEw KScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShu dWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgs OSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU ICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywg J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3 KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0Qg Y29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRf YXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQg J1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19m aywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9O IERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tIEZLIHdpdGggYSBjdXN0b20g cmFuZ2UgdHlwZQorCitDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRh dGUpOworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IG15ZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrM19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgbXlkYXRlcmFu Z2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcy cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBFUklPRCB2 YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5n MyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmc7 CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CiAKIC0t CiAtLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlcwpAQCAtMTE0OSw4ICsxOTM4LDggQEAg Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4dCwKIAlD T05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFU RSBUQUJMRSB0cDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFM VUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sx MSwxMiknKTsKLUNSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSkn LCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywg J1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2 KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUg VEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVF UyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwx MSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEp JywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwogICAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAogICAoJ1sxLDIpJywgZGF0ZXJh bmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLApAQCAtMTE2NCw4ICsxOTUz LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAogCUNP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQp OwotQ1JFQVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4 KScsICdbOSwxMCknLCAnWzExLDEyKScpOwotQ1JFQVRFIFRBQkxFIHRma3AyIHBhcnRpdGlvbiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMiwzKScs ICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknKTsKK0NSRUFU RSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzks MTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCknLCAnWzE5LDIw KScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBQQVJUSVRJT04g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzAsMSkn LCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMp JywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywgJ1syMCwyMSknLCAnWzIyLDIzKScs ICdbMjQsMjUpJyk7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyBpbnNlcnRz CkBAIC0xMjU4LDQ4ICsyMDQ3LDEyNSBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZQogLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCiAKK1RSVU5DQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdf ZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawog CQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxF VEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwLDExKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdbMTUsMTYp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMCwxMSknOwogCiAtLQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKIC0tCiAKK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcs MTgpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJF IGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEx LDEyKSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKIEFMVEVSIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCiAJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUg aWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTgsMTkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4 LDE5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzE4LDE5KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQg PSAnWzE5LDIwKScgV0hFUkUgaWQgPSAnWzE4LDE5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKIAogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbNyw4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTEsMTIp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sx MSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1s3LDgpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBX SEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTMsMTQp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMCwyMSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMjAsMjEpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMywxNCknOworCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCiAtLQogCitUUlVO Q0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzAsMSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb MTIsMTMpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCi0g IEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBD T0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbMCwxKScsCiAJRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNF VCBERUZBVUxUOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1sx MywxNCknIFdIRVJFIGlkID0gJ1sxMiwxMyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxMywxNCknIFdIRVJFIGlkID0gJ1sxMiwxMyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1s4LDkpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzIyLDIzKScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBTRVQgaWQgPSAnWzIzLDI0KScgV0hFUkUgaWQgPSAnWzIyLDIzKScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKIAogLS0KIC0tIHBhcnRpdGlv bmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KIAorVFJVTkNBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1swLDEpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNCwxNSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzE0 LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzksMTApJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBX SEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzE1LDE2 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjQsMjUpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKwogRFJPUCBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOwogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmc7CiAKLS0gCjIuNDIuMAoK --0000000000000093170613cdee62 Content-Type: application/octet-stream; name="v28-0009-Add-PERIODs.patch" Content-Disposition: attachment; filename="v28-0009-Add-PERIODs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltulofd88 RnJvbSAzMzI4ZGFiODAwNmQwNTY4MzgxYjQ1NTNiZDBhMTUzZWM3YWYxYTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggdjI4IDkvOV0gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2luZyBmb3IgU1FMOjIw MTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBFUklPRCBvbiBhCiAgdGFi bGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJMRSkuIE1ha2Ugc3VyZSB3ZSBj cmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJlIGtub3duIChzaW5jZSBQRVJJT0Rz IGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAgY29uc3RyYWludHMgYXJlIGhhbmRsZWQg KHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBE Uk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0gQ3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFi bGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlvbl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBn X2R1bXAgc3VwcG9ydC4KLSBBZGRlZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0 aWNhbGx5IGRlZmluZSBhIGNvbnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUg c3RhcnQgY29sdW1uCiAgdG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3Jl YXRpbmcgYSBQRVJJT0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1 c2UgdG8KICBpbXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9v c2Ugb25lIGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBs ZSByYW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsrCiBkb2Mv c3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDU4ICsKIGRvYy9z cmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbCAgICAgICAgICB8ICAgNjMgKwogZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sICAgICAgICAgICAgIHwgICAyNSArCiBkb2Mvc3Jj L3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAgICAyICsKIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8ICAgNTkgKy0KIGRvYy9zcmMv c2dtbC9yZWYvZGVsZXRlLnNnbWwgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvdXBkYXRlLnNnbWwgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tl bmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDE3ICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICAgICB8ICAgNzUgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsICAgIHwgICAyMyArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgICAgICAgfCAgIDczICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfcGVyaW9kLmMgICAgICAgICAgICAgICB8ICAxMzIgKysKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAgIDIgKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvY29tbWVudC5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgODYzICsrKysrKysrKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8ICAgNDIgKy0KIHNyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA5OSArLQogc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgICA0NSArLQogc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTQ3ICstCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZXJpb2QuYyAgICAgICAgICAgICAgICB8ICAgNTYgKwogc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgICA4NyArCiBzcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMgICAgICAgICAgfCAgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxNzUgKy0KIHNyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv TWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9k ZXBlbmRlbmN5LmggICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2hl YXAuaCAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvbWVz b24uYnVpbGQgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19p bmRleC5oICAgICAgICAgICAgICAgIHwgICAgMSAtCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Bl cmlvZC5oICAgICAgICAgICAgICAgfCAgIDU4ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcmFu Z2UuaCAgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVj bWRzLmggICAgICAgICAgICAgIHwgICAgNCArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oICAgICAgICAgICAgICAgIHwgICA0MCArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmggICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRp bGNtZC5oICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o ICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmggICAg ICAgICAgICAgICAgICAgIHwgICAyMSArCiAuLi4vdGVzdF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9k ZXBhcnNlLmMgICAgICAgfCAgICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3Bv cnRpb25fb2Yub3V0ICB8ICAgMzggKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0 ZWQub3V0ICAgICAgIHwgICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2Rz Lm91dCAgICAgICAgIHwgIDI2NyArKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292 ZXJsYXBzLm91dCAgICAgfCAxNDE5ICsrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgICAyICstCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAgICAgfCAgIDMyICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3BlcmlvZHMuc3FsICAgICAgICAgICAgICB8ICAxNzggKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAgOTE2ICsrKysrKysrKysrCiA2MSBmaWxl cyBjaGFuZ2VkLCA1MjA2IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lu Y2x1ZGUvdXRpbHMvcGVyaW9kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BlcmlvZHMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVz cy9zcWwvcGVyaW9kcy5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDZjYzEyNzYxOGNkLi45NzczMzMz NzBkMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTIzMCw2ICsyMzAsMTEgQEAKICAgICAgIDxlbnRyeT5p bmZvcm1hdGlvbiBhYm91dCBwYXJ0aXRpb24ga2V5IG9mIHRhYmxlczwvZW50cnk+CiAgICAgIDwv cm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wZXJpb2QiPjxzdHJ1Y3RuYW1lPnBnX3BlcmlvZDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT5wZXJpb2RzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJv dz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXBvbGljeSI+PHN0cnVj dG5hbWU+cGdfcG9saWN5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5 PnJvdy1zZWN1cml0eSBwb2xpY2llczwvZW50cnk+CkBAIC01NzM4LDYgKzU3NDMsMTEzIEBAIFND UkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNl YWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAgYXJlIHNpbXBsZSByZWZlcmVuY2VzLgogICAg ICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdy b3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1w ZXJpb2QiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPjwvdGl0 bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLXBlcmlvZCI+CisgICA8cHJpbWFy eT5wZ19wZXJpb2Q8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhl IGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGlu Zm9ybWF0aW9uIGFib3V0IHN5c3RlbSBhbmQgYXBwbGljYXRpb24gdGltZSBwZXJpb2RzLgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBQZXJpb2RzIGFyZSBkZXNjcmliZWQgaW4gPHhyZWYgbGlu a2VuZD0iZGRsLXBlcmlvZHMiLz4uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+ PHN0cnVjdG5hbWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKworICAg PHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wZXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFBlcmlvZCBuYW1lCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnBlcnJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3Mi PjxzdHJ1Y3RuYW1lPnBnX2NsYXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IHRhYmxlIHRoaXMgcGVyaW9kIGJlbG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cGVyc3RhcnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5w Z19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1 Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbnVtYmVy IG9mIHRoZSBzdGFydCBjb2x1bW4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVyZW5k PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MjwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRl PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG51bWJlciBvZiB0aGUgZW5k IGNvbHVtbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJyYW5nZTwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDI8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0i Y2F0YWxvZy1wZy1hdHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFt ZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBudW1iZXIgb2YgdGhlIDxsaXRlcmFsPkdFTkVS QVRFRDwvbGl0ZXJhbD4gY29sdW1uIHRoYXQgaW1wbGVtZW50cyB0aGUgPGxpdGVyYWw+UEVSSU9E PC9saXRlcmFsPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVyY29uc3RyYWludDwv c3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLWNvbnN0cmFpbnQiPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8 L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRoZSBwZXJpb2QncyA8 bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3RyYWludAorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CmluZGV4IDg2MTZhOGU5Y2M5Li42MjY5ZmI3OWI0YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTM3NSw2ICsxMzc1LDY0 IEBAIENSRUFURSBUQUJMRSBjaXJjbGVzICgKICAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCisgPHNl Y3QxIGlkPSJkZGwtcGVyaW9kcyI+CisgIDx0aXRsZT5QZXJpb2RzPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFBlcmlvZHMgYXJlIGRlZmluaXRpb25zIG9uIGEgdGFibGUgdGhhdCBhc3NvY2lhdGUg YSBwZXJpb2QgbmFtZSB3aXRoIGEgc3RhcnQKKyAgIGNvbHVtbiBhbmQgYW4gZW5kIGNvbHVtbi4g IEJvdGggY29sdW1ucyBtdXN0IGJlIG9mIGV4YWN0bHkgdGhlIHNhbWUgdHlwZQorICAgKGluY2x1 ZGluZyBjb2xsYXRpb24pLCBoYXZlIGEgYnRyZWUgb3BlcmF0b3IgY2xhc3MsIGFuZCB0aGUgc3Rh cnQgY29sdW1uCisgICB2YWx1ZSBtdXN0IGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgZW5kIGNv bHVtbiB2YWx1ZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlcmUgYXJlIHR3byB0eXBl cyBvZiBwZXJpb2RzOiBhcHBsaWNhdGlvbiBhbmQgc3lzdGVtLiAgU3lzdGVtIHBlcmlvZHMgYXJl CisgICBkaXN0aW5ndWlzaGVkIGJ5IHRoZWlyIG5hbWUgd2hpY2ggbXVzdCBiZSA8bGl0ZXJhbD5T WVNURU1fVElNRTwvbGl0ZXJhbD4uICBBbnkKKyAgIG90aGVyIG5hbWUgaXMgYW4gYXBwbGljYXRp b24gcGVyaW9kLgorICA8L3BhcmE+CisKKyAgPHNlY3QyIGlkPSJkZGwtcGVyaW9kcy1hcHBsaWNh dGlvbi1wZXJpb2RzIj4KKyAgPHRpdGxlPkFwcGxpY2F0aW9uIFBlcmlvZHM8L3RpdGxlPgorCisg ICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnBlcmlvZDwvcHJpbWFyeT4KKyAgICA8c2Vjb25k YXJ5PmFwcGxpY2F0aW9uPC9zZWNvbmRhcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+ CisgICAgQXBwbGljYXRpb24gcGVyaW9kcyBhcmUgZGVmaW5lZCBvbiBhIHRhYmxlIHVzaW5nIHRo ZSBmb2xsb3dpbmcgc3ludGF4OgorICAgPC9wYXJhPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVB VEUgVEFCTEUgYmlsbGluZ19hZGRyZXNzZXMgKAorICBjdXN0b21lcl9pZCBpbnRlZ2VyLAorICBh ZGRyZXNzX2lkIGludGVnZXIsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdG8gZGF0ZSwK KyAgPGVtcGhhc2lzPlBFUklPRCBGT1IgdmFsaWRpdHkgKHZhbGlkX2Zyb20sIHZhbGlkX3RvKTwv ZW1waGFzaXM+CispOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgPHBhcmE+CisgICAgQXBwbGlj YXRpb24gcGVyaW9kcyBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGVtcG9yYWwgcHJpbWFyeSBhbmQg Zm9yZWlnbiBrZXlzLgorICAgIEFueSB0YWJsZSB3aXRoIGEgdGVtcG9yYWwgcHJpbWFyeSBrZXkg aXMgYSB0ZW1wb3JhbCB0YWJsZSBhbmQgc3VwcG9ydHMgdGVtcG9yYWwgdXBkYXRlIGFuZCBkZWxl dGUgY29tbWFuZHMuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJkZGwt cGVyaW9kcy1zeXN0ZW0tcGVyaW9kcyI+CisgICA8dGl0bGU+U3lzdGVtIFBlcmlvZHM8L3RpdGxl PgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnBlcmlvZDwvcHJpbWFyeT4KKyAgICA8 c2Vjb25kYXJ5PnN5c3RlbTwvc2Vjb25kYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJh PgorICAgIFBlcmlvZHMgZm9yIDxsaXRlcmFsPlNZU1RFTV9USU1FPC9saXRlcmFsPiBhcmUgY3Vy cmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3Qx PgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVtLWNvbHVtbnMiPgogICA8dGl0bGU+U3lzdGVtIENv bHVtbnM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2No ZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKaW5kZXggOWU2 NmJlNGU4M2QuLjU1OGNjN2IzZjE1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRp b25fc2NoZW1hLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21s CkBAIC00MTcxLDYgKzQxNzEsNjkgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICA8 L3RhYmxlPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGVyaW9kcyI+Cisg IDx0aXRsZT48bGl0ZXJhbD5wZXJpb2RzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUaGUgdmlldyA8bGl0ZXJhbD5wYXJhbWV0ZXJzPC9saXRlcmFsPiBjb250YWlucyBpbmZvcm1h dGlvbiBhYm91dCB0aGUKKyAgIHBlcmlvZHMgb2YgYWxsIHRhYmxlcyBpbiB0aGUgY3VycmVudCBk YXRhYmFzZS4gIFRoZSBzdGFydCBhbmQgZW5kIGNvbHVtbgorICAgbmFtZXMgYXJlIG9ubHkgc2hv d24gaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIHRoZW0gKGJ5IHdheSBvZiBiZWlu ZworICAgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwvcGFyYT4KKwor ICA8dGFibGU+CisgICA8dGl0bGU+PGxpdGVyYWw+cGVyaW9kczwvbGl0ZXJhbD4gQ29sdW1uczwv dGl0bGU+CisKKyAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgPHRoZWFkPgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgPGVudHJ5PkRhdGEgVHlwZTwvZW50cnk+ CisgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Ro ZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnRh YmxlX2NhdGFsb2c8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRl bnRpZmllcjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIGRhdGFiYXNl IGNvbnRhaW5pbmcgdGhlIHBlcmlvZCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKTwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+dGFi bGVfc2NoZW1hPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50 aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBzY2hlbWEgY29u dGFpbmluZyB0aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD50YWJsZV9uYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8 ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5O YW1lIG9mIHRoZSB0YWJsZSBjb250YWluaW5nIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnBlcmlvZF9uYW1lPC9saXRl cmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnN0YXJ0X2NvbHVtbl9uYW1l PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5 cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBzdGFydCBjb2x1bW4gZm9yIHRo ZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPmVuZF9jb2x1bW5fbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBv ZiB0aGUgZW5kIGNvbHVtbiBmb3IgdGhlIHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorICAg IDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCiAgPHNlY3Qx IGlkPSJpbmZvc2NoZW1hLXJlZmVyZW50aWFsLWNvbnN0cmFpbnRzIj4KICAgPHRpdGxlPjxsaXRl cmFsPnJlZmVyZW50aWFsX2NvbnN0cmFpbnRzPC9saXRlcmFsPjwvdGl0bGU+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdGFibGUuc2dtbAppbmRleCA5NmUzZDc3NjA1MS4uYWNkMTE5MjJhNGMgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAgLTYxLDYgKzYxLDggQEAgQUxURVIgVEFCTEUgWyBJRiBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ CiAgICAgQUxURVIgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29u c3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFCTEUg XSBbIElOSVRJQUxMWSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQogICAgIFZBTElE QVRFIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRf bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgRFJPUCBDT05TVFJBSU5UIFsgSUYgRVhJU1RTIF0gIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxl PiBbIFJFU1RSSUNUIHwgQ0FTQ0FERSBdCisgICAgQUREIFBFUklPRCBGT1IgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRfY29sdW1uPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfY29sdW1uPC9yZXBsYWNlYWJsZT4gKSBbIFdJVEgg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwvcmVwbGFjZWFi bGU+ID0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT4g WywgLi4uIF0gKSBdCisgICAgRFJPUCBQRVJJT0QgRk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IFsgUkVTVFJJQ1QgfCBDQVNDQURFIF0K ICAgICBESVNBQkxFIFRSSUdHRVIgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJp Z2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gfCBBTEwgfCBVU0VSIF0KICAgICBFTkFCTEUgVFJJR0dF UiBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2Vh YmxlPiB8IEFMTCB8IFVTRVIgXQogICAgIEVOQUJMRSBSRVBMSUNBIFRSSUdHRVIgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC01ODUs NiArNTg3LDI5IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgPC9saXN0aXRlbT4KICAg IDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0ZXJ0YWJsZS1k ZXNjLWFkZC1wZXJpb2QiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkFERCBQRVJJT0QgRk9SPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3Jt IGFkZHMgYSBuZXcgcGVyaW9kIHRvIGEgdGFibGUgdXNpbmcgdGhlIHNhbWUgc3ludGF4IGFzCisg ICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUiLz4uCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1hbHRlcnRhYmxlLWRlc2MtZHJvcC1wZXJpb2QiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkRS T1AgUEVSSU9EIEZPUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoaXMgZm9ybSBkcm9wcyB0aGUgc3BlY2lmaWVkIHBlcmlvZCBvbiBhIHRhYmxl LiAgVGhlIHN0YXJ0IGFuZCBlbmQKKyAgICAgIGNvbHVtbnMgd2lsbCBub3QgYmUgZHJvcHBlZCBi eSB0aGlzIGNvbW1hbmQgYnV0IHRoZQorICAgICAgPGxpdGVyYWw+Q0hFQ0s8L2xpdGVyYWw+IGNv bnN0cmFpbnQgd2lsbCBiZS4gIFlvdSB3aWxsIG5lZWQgdG8gc2F5CisgICAgICA8bGl0ZXJhbD5D QVNDQURFPC9saXRlcmFsPiBpZiBhbnl0aGluZyBvdXRzaWRlIHRoZSB0YWJsZSBkZXBlbmRzIG9u IHRoZQorICAgICAgY29sdW1uLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0ZXJ0YWJsZS1kZXNj LWRpc2FibGUtZW5hYmxlLXRyaWdnZXIiPgogICAgIDx0ZXJtPjxsaXRlcmFsPkRJU0FCTEU8L2xp dGVyYWw+LzxsaXRlcmFsPkVOQUJMRSBbIFJFUExJQ0EgfCBBTFdBWVMgXSBUUklHR0VSPC9saXRl cmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDViNDNj NTZiMTMzLi40OWMyZGY5OTQ0OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKQEAgLTQ0LDYgKzQ0LDcg QEAgQ09NTUVOVCBPTgogICBPUEVSQVRPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b3BlcmF0b3JfbmFtZTwvcmVwbGFjZWFibGU+ICg8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bGVmdF90eXBlPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yaWdodF90eXBlPC9yZXBsYWNlYWJsZT4pIHwKICAgT1BFUkFUT1IgQ0xBU1MgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gVVNJTkcgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IHwK ICAgT1BFUkFUT1IgRkFNSUxZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3Rf bmFtZTwvcmVwbGFjZWFibGU+IFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5p bmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiB8CisgIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cmVsYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUE9MSUNZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wb2xpY3lfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAog ICBbIFBST0NFRFVSQUwgXSBMQU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFBST0NFRFVSRSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHJvY2VkdXJlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSAp IF0gfApAQCAtMzQxLDYgKzM0Miw3IEBAIENPTU1FTlQgT04gT1BFUkFUT1IgXiAodGV4dCwgdGV4 dCkgSVMgJ1BlcmZvcm1zIGludGVyc2VjdGlvbiBvZiB0d28gdGV4dHMnOwogQ09NTUVOVCBPTiBP UEVSQVRPUiAtIChOT05FLCBpbnRlZ2VyKSBJUyAnVW5hcnkgbWludXMnOwogQ09NTUVOVCBPTiBP UEVSQVRPUiBDTEFTUyBpbnQ0b3BzIFVTSU5HIGJ0cmVlIElTICc0IGJ5dGUgaW50ZWdlciBvcGVy YXRvcnMgZm9yIGJ0cmVlcyc7CiBDT01NRU5UIE9OIE9QRVJBVE9SIEZBTUlMWSBpbnRlZ2VyX29w cyBVU0lORyBidHJlZSBJUyAnYWxsIGludGVnZXIgb3BlcmF0b3JzIGZvciBidHJlZXMnOworQ09N TUVOVCBPTiBQRVJJT0QgbXlfdGFibGUubXlfY29sdW1uIElTICdTYWxlcyBwcm9tb3Rpb24gdmFs aWRpdHknOwogQ09NTUVOVCBPTiBQT0xJQ1kgbXlfcG9saWN5IE9OIG15dGFibGUgSVMgJ0ZpbHRl ciByb3dzIGJ5IHVzZXJzJzsKIENPTU1FTlQgT04gUFJPQ0VEVVJFIG15X3Byb2MgKGludGVnZXIs IGludGVnZXIpIElTICdSdW5zIGEgcmVwb3J0JzsKIENPTU1FTlQgT04gUFVCTElDQVRJT04gYWxs dGFibGVzIElTICdQdWJsaXNoZXMgYWxsIG9wZXJhdGlvbnMgb24gYWxsIHRhYmxlcyc7CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCBhNjQ5ODk4ZmVkNi4uNTNmNTZhNmYzZmIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMjMsNiArMjMsNyBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KIDxzeW5vcHNpcz4KIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7 IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiAo IFsKICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNl YWJsZT4gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVYVEVOREVEIHwgTUFJTiB8IERF RkFVTFQgfSBdIFsgQ09NUFJFU1NJT04gPHJlcGxhY2VhYmxlPmNvbXByZXNzaW9uX21ldGhvZDwv cmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxhY2Vh YmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50 PC9yZXBsYWNlYWJsZT4gWyAuLi4gXSBdCisgICAgfCA8cmVwbGFjZWFibGU+cGVyaW9kX2RlZmlu aXRpb248L3JlcGxhY2VhYmxlPgogICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8 L3JlcGxhY2VhYmxlPgogICAgIHwgTElLRSA8cmVwbGFjZWFibGU+c291cmNlX3RhYmxlPC9yZXBs YWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAuLi4gXSB9 CiAgICAgWywgLi4uIF0KQEAgLTM3LDYgKzM4LDcgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NB TCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkK IENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9H R0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPgogICAgIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBbICgKICAgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbIFdJVEggT1BUSU9O UyBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9y ZXBsYWNlYWJsZT4gWyAuLi4gXSBdCisgICAgfCA8cmVwbGFjZWFibGU+cGVyaW9kX2RlZmluaXRp b248L3JlcGxhY2VhYmxlPgogICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8L3Jl cGxhY2VhYmxlPiB9CiAgICAgWywgLi4uIF0KICkgXQpAQCAtNDksNiArNTEsNyBAQCBDUkVBVEUg WyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRB QkxFIFsgSUYgTk9UIEVYSQogQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+CiAgICAgUEFSVElU SU9OIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJlbnRfdGFibGU8L3JlcGxh Y2VhYmxlPiBbICgKICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiBbIFdJVEggT1BUSU9OUyBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gWyAuLi4gXSBdCisgICAg fCA8cmVwbGFjZWFibGU+cGVyaW9kX2RlZmluaXRpb248L3JlcGxhY2VhYmxlPgogICAgIHwgPHJl cGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiB9CiAgICAgWywgLi4uIF0K ICkgXSB7IEZPUiBWQUxVRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlv bl9ib3VuZF9zcGVjPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIH0KQEAgLTczLDYgKzc2LDExIEBA IENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9H R0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiAgICAgWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBV UERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwv cmVwbGFjZWFibGU+IF0gfQogWyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFCTEUgXSBbIElOSVRJ QUxMWSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQogCis8cGhyYXNlPmFuZCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX2RlZmluaXRpb248L3JlcGxhY2VhYmxl PiBpczo8L3BocmFzZT4KKworUEVSSU9EIEZPUiB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IHwgU1lTVEVNX1RJTUUgfSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+LCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiApCitbIFdJ VEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwvcmVwbGFj ZWFibGU+ID0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJs ZT4gWywgLi4uIF0gKSBdCisKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKIFsgQ09O U1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9y ZXBsYWNlYWJsZT4gXQpAQCAtODEsNyArODksNyBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FM IF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQog ICBVTklRVUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VU IE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1l dGVyczwvcmVwbGFjZWFibGU+IHwKICAgUFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VU IE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1l dGVyczwvcmVwbGFjZWFibGU+IHwKICAgRVhDTFVERSBbIFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5pbmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2x1ZGVfZWxlbWVudDwvcmVwbGFjZWFibGU+IFdJVEggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yPC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVw bGFjZWFibGU+IFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJlZGlj YXRlPC9yZXBsYWNlYWJsZT4gKSBdIHwKLSAgRk9SRUlHTiBLRVkgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJ T0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gXSApIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxl PC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1 bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSApIF0KKyAgRk9SRUlHTiBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29s dW1uX25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w ZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gXSApIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJ T0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFj ZWFibGU+IH0gXSApIF0KICAgICBbIE1BVENIIEZVTEwgfCBNQVRDSCBQQVJUSUFMIHwgTUFUQ0gg U0lNUExFIF0gWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlCiBjbGFzcz0icGFyYW1ldGVyIj5yZWZl cmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIH0KIFsg REVGRVJSQUJMRSB8IE5PVCBERUZFUlJBQkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklU SUFMTFkgSU1NRURJQVRFIF0KQEAgLTE0MCw2ICsxNDgsMTQgQEAgV0lUSCAoIE1PRFVMVVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+ LCBSRU0KICAgIG5hbWUgYXMgYW55IGV4aXN0aW5nIGRhdGEgdHlwZSBpbiB0aGUgc2FtZSBzY2hl bWEuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFBlcmlvZHMgbXkgYmUgZGVmaW5lZCBvbiB0 YWJsZXMsIHNwZWNpZnlpbmcgdGhhdCB0d28gZXhpc3RpbmcgY29sdW1ucworICAgcmVwcmVzZW50 IHN0YXJ0IGFuZCBlbmQgdmFsdWVzIGZvciB0aGUgcGVyaW9kLiAgUGVyaW9kcyBtYXkgaGF2ZSBh bnkgbmFtZQorICAgdGhhdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggYSBjb2x1bW4gbmFtZSwgYnV0 IHRoZSBuYW1lCisgICA8bGl0ZXJhbD5TWVNURU1fVElNRTwvbGl0ZXJhbD4gaXMgc3BlY2lhbCwg dXNlZCBmb3IgdmVyc2lvbmluZyB0YWJsZXMuCisgICBTeXN0ZW0gcGVyaW9kcyBhcmUgbm90IHll dCBpbXBsZW1lbnRlZC4gIFNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtcGVyaW9kcyIvPiBmb3IgbW9y ZSBkZXRhaWxzLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgb3B0aW9uYWwgY29uc3Ry YWludCBjbGF1c2VzIHNwZWNpZnkgY29uc3RyYWludHMgKHRlc3RzKSB0aGF0CiAgICBuZXcgb3Ig dXBkYXRlZCByb3dzIG11c3Qgc2F0aXNmeSBmb3IgYW4gaW5zZXJ0IG9yIHVwZGF0ZSBvcGVyYXRp b24KQEAgLTgwMCw2ICs4MTYsMzcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1j cmVhdGV0YWJsZS1wYXJtcy1wZXJpb2QiPgorICAgIDx0ZXJtPjxsaXRlcmFsPlBFUklPRCBGT1Ig PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4g KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gKSBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlv bjwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgQSBwZXJpb2QgZGVmaW5pdGlvbiBnaXZlcyBzZW1hbnRpYyBt ZWFuaW5nIHRvIHR3byBleGlzdGluZyBjb2x1bW5zIG9mCisgICAgICB0aGUgdGFibGUuICBJdCBk ZWZpbmVzIGEgInN0YXJ0IGNvbHVtbiIgYW5kIGFuICJlbmQgY29sdW1uIiB3aGVyZSB0aGUKKyAg ICAgIHN0YXJ0IHZhbHVlIGlzIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgZW5kIHZhbHVlLiAgQQor ICAgICAgPGxpdGVyYWw+Q0hFQ0s8L2xpdGVyYWw+IGNvbnN0cmFpbnQgaXMgYXV0b21hdGljYWxs eSBjcmVhdGVkIHRvIGVuZm9yY2UKKyAgICAgIHRoaXMuIFlvdSBjYW4gc3BlY2lmeSB0aGUgbmFt ZSBvZiB0aGF0IGNvbnN0cmFpbnQgd2l0aCB0aGUKKyAgICAgIDxsaXRlcmFsPmNoZWNrX2NvbnN0 cmFpbnRfbmFtZTwvbGl0ZXJhbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlv ZF9vcHRpb248L3JlcGxhY2VhYmxlPi4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAg ICAgQm90aCBjb2x1bW5zIG11c3QgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIHR5cGUgYW5kIG11c3Qg aGF2ZSBhIHJhbmdlIHR5cGUKKyAgICAgIGRlZmluZWQgZnJvbSB0aGVpciBiYXNlIHR5cGUuICBJ ZiB0aGVyZSBhcmUgc2V2ZXJhbCByYW5nZSB0eXBlcyBmb3IgdGhhdAorICAgICAgYmFzZSB0eXBl LCB5b3UgbXVzdCBzcGVjaWZ5IHdoaWNoIG9uZSB5b3Ugd2FudCBieSB1c2luZyB0aGUKKyAgICAg IDxsaXRlcmFsPnJhbmdldHlwZTwvbGl0ZXJhbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPi4KKyAgICAgIEFueSBiYXNlIHR5cGUgaXMg YWxsb3dlZCwgYXMgbG9uZyBhcyBpdCBoYXMgYSByYW5nZSB0eXBlLCBhbHRob3VnaCBpdCBpcwor ICAgICAgZXhwZWN0ZWQgdGhhdCBtb3N0IHBlcmlvZHMgd2lsbCB1c2UgdGVtcG9yYWwgdHlwZXMg bGlrZSA8bGl0ZXJhbD50aW1lc3RhbXB0ejwvbGl0ZXJhbD4KKyAgICAgIG9yIDxsaXRlcmFsPmRh dGU8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBBIGhpZGRl biA8bGl0ZXJhbD5HRU5FUkFURUQ8L2xpdGVyYWw+IGNvbHVtbiBpcyB1c2VkIHRvIGltcGxlbWVu dCB0aGUgcGVyaW9kLAorICAgICAgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHRoZSBwZXJpb2QuICBJ ZiBzdWNoIGEgY29sdW1uIGFscmVhZHkgZXhpc3RzLCB5b3UKKyAgICAgIGNhbiB1c2UgdGhlIDxs aXRlcmFsPmNvbGV4aXN0czwvbGl0ZXJhbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPgorICAgICAgd2l0aCB2YWx1ZSA8bGl0ZXJhbD50 cnVlPC9saXRlcmFsPiB0byBhdm9pZCBjcmVhdGluZyBpdC4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXRhYmxlLXBhcm1zLWNvbnN0cmFpbnQiPgogICAgIDx0ZXJtPjxsaXRlcmFsPkNPTlNU UkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVw bGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0xMTUyLDggKzEx OTksOCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVt ZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXRhYmxlLXBhcm1zLXJlZmVyZW5jZXMiPgogICAgIDx0ZXJtPjxsaXRlcmFsPlJFRkVS RU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJs ZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2Vh YmxlPiApIF0gWyBNQVRDSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWF0Y2h0eXBl PC9yZXBsYWNlYWJsZT4gXSBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4g XTwvbGl0ZXJhbD4gKGNvbHVtbiBjb25zdHJhaW50KTwvdGVybT4KIAotICAgPHRlcm0+PGxpdGVy YWw+Rk9SRUlHTiBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSApCi0gICAgUkVGRVJFTkNFUyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFss IC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiBdICkgXQorICAgPHRlcm0+PGxpdGVyYWw+Rk9SRUlHTiBLRVkgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBb LCAuLi4gXSBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJp b2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gXSApCisgICAgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBF UklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBs YWNlYWJsZT4gfSBdICkgXQogICAgIFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm1hdGNodHlwZTwvcmVwbGFjZWFibGU+IF0KICAgICBbIE9OIERFTEVURSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXQog ICAgIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlh bF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFsPgpAQCAtMTE3NCw3ICsxMjIxLDcgQEAg V0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAg ICAgSWYgdGhlIGxhc3QgY29sdW1uIGlzIG1hcmtlZCB3aXRoIDxsaXRlcmFsPlBFUklPRDwvbGl0 ZXJhbD4sCisgICAgICBJZiB0aGUgbGFzdCBrZXkgcGFydCBpcyBtYXJrZWQgd2l0aCA8bGl0ZXJh bD5QRVJJT0Q8L2xpdGVyYWw+LAogICAgICAgaXQgaXMgdHJlYXRlZCBpbiBhIHNwZWNpYWwgd2F5 LgogICAgICAgV2hpbGUgdGhlIG5vbi08bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IGNvbHVtbnMg YXJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQogICAgICAgKGFuZCB0aGVyZSBtdXN0IGJlIGF0IGxl YXN0IG9uZSBvZiB0aGVtKSwKQEAgLTExODUsNyArMTIzMiw5IEBAIFdJVEggKCBNT0RVTFVTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxl PiwgUkVNCiAgICAgICB3aG9zZSBjb21iaW5lZCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHZh bHVlcyBjb21wbGV0ZWx5IGNvdmVyCiAgICAgICB0aGUgcmVmZXJlbmNpbmcgcmVjb3JkJ3MuCiAg ICAgICBJbiBvdGhlciB3b3JkcywgdGhlIHJlZmVyZW5jZSBtdXN0IGhhdmUgYSByZWZlcmVudCBm b3IgaXRzIGVudGlyZSBkdXJhdGlvbi4KLSAgICAgIE5vcm1hbGx5IHRoaXMgY29sdW1uIHdvdWxk IGJlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlLAorICAgICAgTm9ybWFsbHkgdGhpcyBwYXJ0 IHdvdWxkIGJlIGVpdGhlciBhCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUt cGFybXMtcGVyaW9kIj48bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPgorICAgICAgb3Ig YSBjb2x1bW4gd2l0aCBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgdHlwZSwKICAgICAgIGFsdGhvdWdo IGFueSB0eXBlIHdob3NlIEdpU1Qgb3BjbGFzcyBoYXMgYSAiY29udGFpbmVkIGJ5IiBvcGVyYXRv cgogICAgICAgYW5kIGEgPGxpdGVyYWw+cmVmZXJlbmNlZGFnZzwvbGl0ZXJhbD4gc3VwcG9ydCBm dW5jdGlvbiBpcyBhbGxvd2VkLgogICAgICAgKFNlZSA8eHJlZiBsaW5rZW5kPSJnaXN0LWV4dGVu c2liaWxpdHkiLz4uKQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKaW5kZXggMWM3Mjc1MzQxZWEuLmIzODhiZTc1 MDhjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKQEAgLTU2LDcgKzU2LDggQEAgREVMRVRFIEZST00gWyBP TkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPiBbICoKICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJh bmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9y IG11bHRpcmFuZ2UgY29sdW1uLCBvciBhCisgICA8bGluayBsaW5rZW5kPSJkZGwtcGVyaW9kcy1h cHBsaWNhdGlvbi1wZXJpb2RzIj48bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPiwKICAg IHlvdSBtYXkgc3VwcGx5IGEgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVz ZSwgYW5kIHlvdXIgZGVsZXRlIHdpbGwKICAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFw IHRoZSBnaXZlbiBpbnRlcnZhbC4gRnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgogICAgZXh0 ZW5kcyBvdXRzaWRlIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRz LCB0aGVuIHlvdXIgZGVsZXRlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbAppbmRleCA3MWEwMjY5N2YyZC4uYTFi ODg1NzFkMGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbApAQCAtNTMsNyArNTMsOCBAQCBVUERBVEUgWyBP TkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPiBbICogXSBbCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIElmIHRoZSB0YWJsZSBoYXMg YSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5n ZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwgb3IgYQorICAgPGxpbmsgbGlua2VuZD0iZGRsLXBlcmlv ZHMtYXBwbGljYXRpb24tcGVyaW9kcyI+PGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPjwvbGluaz4s CiAgICB5b3UgbWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBj bGF1c2UsIGFuZCB5b3VyIHVwZGF0ZSB3aWxsCiAgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3Zl cmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KICAg IGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJv dW5kcywgdGhlbiB5b3VyIHVwZGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9N YWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNTMu LjNiN2FmOTY1MDMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTM5LDYgKzM5LDcgQEAgT0JKUyA9 IFwKIAlwZ19uYW1lc3BhY2UubyBcCiAJcGdfb3BlcmF0b3IubyBcCiAJcGdfcGFyYW1ldGVyX2Fj bC5vIFwKKwlwZ19wZXJpb2QubyBcCiAJcGdfcHJvYy5vIFwKIAlwZ19wdWJsaWNhdGlvbi5vIFwK IAlwZ19yYW5nZS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDdhYmYzYzJhNzRhLi4zZjAzZWZl OWUzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0yODEwLDYgKzI4MTAsNyBAQCBhY2xjaGVja19l cnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JK RUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1Rf RE9NQ09OU1RSQUlOVDoKKwkJCQkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQkJCQljYXNlIE9CSkVD VF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JF TDoKIAkJCQkJY2FzZSBPQkpFQ1RfUk9MRToKQEAgLTI5NTEsNiArMjk1Miw3IEBAIGFjbGNoZWNr X2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBP QkpFQ1RfREVGQUNMOgogCQkJCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgogCQkJCQljYXNl IE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQkJCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCQkJCWNh c2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJCQkJY2FzZSBPQkpFQ1RfUFVCTElD QVRJT05fUkVMOgogCQkJCQljYXNlIE9CSkVDVF9ST0xFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YwppbmRleCBlYWRjZjZhZjBkZi4uNmI3MmYwODQxZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Bh cmFtZXRlcl9hY2wuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtNjIyLDYgKzYyMywxNSBAQCBmaW5k RGVwZW5kZW50T2JqZWN0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJCQlyZXR1 cm47CiAJCQkJCX0KIAorCQkJCQkvKgorCQkJCQkgKiBJZiBhIHRhYmxlIGF0dHJpYnV0ZSBpcyBh biBpbnRlcm5hbCBwYXJ0IG9mIHNvbWV0aGluZyBlbHNlCisJCQkJCSAqIChlLmcuIHRoZSBHRU5F UkFURUQgY29sdW1uIHVzZWQgYnkgYSBQRVJJT0QpLAorCQkJCQkgKiBhbmQgd2UgYXJlIGRlbGV0 aW5nIHRoZSB3aG9sZSB0YWJsZSwKKwkJCQkJICogdGhlbiBpdCdzIG9rYXkuCisJCQkJCSAqLwor CQkJCQlpZiAoZm91bmREZXAtPm9ianN1YmlkICYmICFvYmplY3QtPm9iamVjdFN1YklkKQorCQkJ CQkJYnJlYWs7CisKIAkJCQkJLyoKIAkJCQkJICogV2UgcG9zdHBvbmUgYWN0dWFsbHkgaXNzdWlu ZyB0aGUgZXJyb3IgbWVzc2FnZSB1bnRpbAogCQkJCQkgKiBhZnRlciB0aGlzIGxvb3AsIHNvIHRo YXQgd2UgY2FuIG1ha2UgdGhlIGJlaGF2aW9yCkBAIC0xMzk0LDYgKzE0MDQsMTAgQEAgZG9EZWxl dGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJCVJlbW92ZUNv bnN0cmFpbnRCeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQ0xB U1NfUEVSSU9EOgorCQkJUmVtb3ZlUGVyaW9kQnlJZChvYmplY3QtPm9iamVjdElkKTsKKwkJCWJy ZWFrOworCiAJCWNhc2UgT0NMQVNTX0RFRkFVTFQ6CiAJCQlSZW1vdmVBdHRyRGVmYXVsdEJ5SWQo b2JqZWN0LT5vYmplY3RJZCk7CiAJCQlicmVhazsKQEAgLTI4MTAsNiArMjgyNCw5IEBAIGdldE9i amVjdENsYXNzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCkKIAkJY2FzZSBDb25zdHJhaW50 UmVsYXRpb25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09OU1RSQUlOVDsKIAorCQljYXNlIFBlcmlv ZFJlbGF0aW9uSWQ6CisJCQlyZXR1cm4gT0NMQVNTX1BFUklPRDsKKwogCQljYXNlIENvbnZlcnNp b25SZWxhdGlvbklkOgogCQkJcmV0dXJuIE9DTEFTU19DT05WRVJTSU9OOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CmluZGV4IDVlNzczNzQwZjRkLi5hZWE5NGUwYmNkZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTQ5LDYg KzQ5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcGFydGl0aW9uZWRfdGFi bGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfc3RhdGlzdGljLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCkBAIC0yMDQ0LDYgKzIwNDUsODAg QEAgU2V0QXR0ck1pc3NpbmcoT2lkIHJlbGlkLCBjaGFyICphdHRuYW1lLCBjaGFyICp2YWx1ZSkK IAl0YWJsZV9jbG9zZSh0YWJsZXJlbCwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CiB9CiAKKy8qCisg KiBTdG9yZSBhIHBlcmlvZCBvZiByZWxhdGlvbiByZWwuCisgKgorICogUmV0dXJucyB0aGUgT0lE IG9mIHRoZSBuZXcgcGdfcGVyaW9kIHR1cGxlLgorICovCitPaWQKK1N0b3JlUGVyaW9kKFJlbGF0 aW9uIHJlbCwgY29uc3QgY2hhciAqcGVyaW9kbmFtZSwgQXR0ck51bWJlciBzdGFydG51bSwKKwkJ CUF0dHJOdW1iZXIgZW5kbnVtLCBBdHRyTnVtYmVyIHJhbmdlbnVtLCBPaWQgY29ub2lkKQorewor CURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcGVyaW9kXTsKKwlib29sCQludWxsc1tOYXR0c19wZ19w ZXJpb2RdOworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJ b2lkOworCU5hbWVEYXRhCXBlcm5hbWU7CisJT2JqZWN0QWRkcmVzcwlteXNlbGYsIHJlZmVyZW5j ZWQ7CisKKwlBc3NlcnQocmFuZ2VudW0gIT0gSW52YWxpZEF0dHJOdW1iZXIpOworCisJbmFtZXN0 cmNweSgmcGVybmFtZSwgcGVyaW9kbmFtZSk7CisKKwlNZW1TZXQodmFsdWVzLCAwLCBzaXplb2Yo dmFsdWVzKSk7CisJTWVtU2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisKKwlwZ19w ZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHBnX3BlcmlvZCwgQXR0ckRlZmF1bHRPaWRJbmRl eElkLCBBbnVtX3BnX3BlcmlvZF9vaWQpOworCXZhbHVlc1tBbnVtX3BnX3BlcmlvZF9vaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0ob2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVybmFt ZSAtIDFdID0gTmFtZUdldERhdHVtKCZwZXJuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2Rf cGVycmVsaWQgLSAxXSA9IFJlbGF0aW9uR2V0UmVsaWQocmVsKTsKKwl2YWx1ZXNbQW51bV9wZ19w ZXJpb2RfcGVyc3RhcnQgLSAxXSA9IHN0YXJ0bnVtOworCXZhbHVlc1tBbnVtX3BnX3BlcmlvZF9w ZXJlbmQgLSAxXSA9IGVuZG51bTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVycmFuZ2UgLSAx XSA9IHJhbmdlbnVtOworCXZhbHVlc1tBbnVtX3BnX3BlcmlvZF9wZXJjb25zdHJhaW50IC0gMV0g PSBjb25vaWQ7CisKKwl0dXBsZSA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHBn X3BlcmlvZCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChwZ19wZXJpb2Qs IHR1cGxlKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQZXJpb2RSZWxhdGlvbklkLCBv aWQpOworCisJLyogRHJvcCB0aGUgcGVyaW9kIHdoZW4gdGhlIHRhYmxlIGlzIGRyb3BwZWQuICov CisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBSZWxhdGlvblJlbGF0aW9uSWQsIFJlbGF0 aW9uR2V0UmVsaWQocmVsKSk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVu Y2VkLCBERVBFTkRFTkNZX0FVVE8pOworCisJLyogRm9yYmlkIGRyb3BwaW5nIHRoZSBjb2x1bW5z IG9mIHRoZSBwZXJpb2QuICovCisJT2JqZWN0QWRkcmVzc1N1YlNldChyZWZlcmVuY2VkLCBSZWxh dGlvblJlbGF0aW9uSWQsIFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgc3RhcnRudW0pOworCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOwor CU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxh dGlvbkdldFJlbGlkKHJlbCksIGVuZG51bSk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYs ICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwkvKgorCSAqIFRoZSByYW5nZSBj b2x1bW4gaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLAorCSAqIGJ1dCB3ZSBjYW4ndCB1c2Ug REVQRU5ERU5DWV9JTlRFUk5BTAorCSAqIGJlY2F1c2UgZHJvcHBpbmcgdGhlIHRhYmxlIHdpbGwg Y2hlY2sgZm9yIGRlcGVuZGVuY2llcyBvbiBhbGwgc3Vib2JqZWN0cyB0b28KKwkgKiAoaW4gZmlu ZERlcGVuZGVudE9iamVjdHMpLgorCSAqIEJ1dCBpZiB3ZSBtYWtlIGFuIEFVVE8gZGVwZW5kZW5j eSBvbmUgd2F5IHdlIHdpbGwgYXV0by1kcm9wIHRoZSBjb2x1bW4KKwkgKiB3aGVuIHdlIGRyb3Ag dGhlIFBFUklPRCwKKwkgKiBhbmQgYSBOT1JNQUwgZGVwZW5kZW5jeSB0aGUgb3RoZXIgd2F5IHdl IHdpbGwgZm9yYmlkIGRyb3BwaW5nIHRoZSBjb2x1bW4gZGlyZWN0bHkuCisJICovCisJT2JqZWN0 QWRkcmVzc1N1YlNldChyZWZlcmVuY2VkLCBSZWxhdGlvblJlbGF0aW9uSWQsIFJlbGF0aW9uR2V0 UmVsaWQocmVsKSwgcmFuZ2VudW0pOworCXJlY29yZERlcGVuZGVuY3lPbigmcmVmZXJlbmNlZCwg Jm15c2VsZiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisKKwkvKgorCSAqIFRoZSBjb25zdHJhaW50 IGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgc28gd2UgbWFyayBpdCBhcyBzdWNoLgorCSAq IChOb3RlIHRoYXQgbXlzZWxmIGFuZCByZWZlcmVuY2VkIGFyZSByZXZlcnNlZCBmb3IgdGhpcyBv bmUuKQorCSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgQ29uc3RyYWludFJlbGF0 aW9uSWQsIGNvbm9pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZyZWZlcmVuY2VkLCAmbXlzZWxm LCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgUm93RXhj bHVzaXZlTG9jayk7CisKKwlyZXR1cm4gb2lkOworfQorCiAvKgogICogU3RvcmUgYSBjaGVjay1j b25zdHJhaW50IGV4cHJlc3Npb24gZm9yIHRoZSBnaXZlbiByZWxhdGlvbi4KICAqCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKaW5kZXggYzQwMmFlNzI3NDEuLjUw Y2EwZDA1Zjg3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3Nj aGVtYS5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3Fs CkBAIC0xMjA3LDcgKzEyMDcsMjggQEAgR1JBTlQgU0VMRUNUIE9OIHBhcmFtZXRlcnMgVE8gUFVC TElDOwogICogUEVSSU9EUyB2aWV3CiAgKi8KIAotLS0gZmVhdHVyZSBub3Qgc3VwcG9ydGVkCitD UkVBVEUgVklFVyBwZXJpb2RzIEFTCisgICAgU0VMRUNUIGN1cnJlbnRfZGF0YWJhc2UoKTo6aW5m b3JtYXRpb25fc2NoZW1hLnNxbF9pZGVudGlmaWVyIEFTIHRhYmxlX2NhdGFsb2csCisgICAgICAg ICAgIG5jLm5zcG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyB0YWJs ZV9zY2hlbWEsCisgICAgICAgICAgIGMucmVsbmFtZTo6aW5mb3JtYXRpb25fc2NoZW1hLnNxbF9p ZGVudGlmaWVyIEFTIHRhYmxlX25hbWUsCisgICAgICAgICAgIHAucGVybmFtZTo6aW5mb3JtYXRp b25fc2NoZW1hLnNxbF9pZGVudGlmaWVyIEFTIHBlcmlvZF9uYW1lLAorICAgICAgICAgICBDQVNF IFdIRU4gcGdfaGFzX3JvbGUoYy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgICAg IE9SIGhhc19jb2x1bW5fcHJpdmlsZWdlKHNhLmF0dHJlbGlkLCBzYS5hdHRudW0sICdTRUxFQ1Qs IElOU0VSVCwgVVBEQVRFLCBSRUZFUkVOQ0VTJykKKyAgICAgICAgICAgICAgICBUSEVOIHNhLmF0 dG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllcgorICAgICAgICAgICBFTkQg QVMgc3RhcnRfY29sdW1uX25hbWUsCisgICAgICAgICAgIENBU0UgV0hFTiBwZ19oYXNfcm9sZShj LnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgICAgT1IgaGFzX2NvbHVtbl9wcml2 aWxlZ2UoZWEuYXR0cmVsaWQsIGVhLmF0dG51bSwgJ1NFTEVDVCwgSU5TRVJULCBVUERBVEUsIFJF RkVSRU5DRVMnKQorICAgICAgICAgICAgICAgIFRIRU4gZWEuYXR0bmFtZTo6aW5mb3JtYXRpb25f c2NoZW1hLnNxbF9pZGVudGlmaWVyCisgICAgICAgICAgIEVORCBBUyBlbmRfY29sdW1uX25hbWUK KyAgICBGUk9NIHBnX3BlcmlvZCBBUyBwCisgICAgSk9JTiBwZ19jbGFzcyBBUyBjIE9OIGMub2lk ID0gcC5wZXJyZWxpZAorICAgIEpPSU4gcGdfbmFtZXNwYWNlIEFTIG5jIE9OIG5jLm9pZCA9IGMu cmVsbmFtZXNwYWNlCisgICAgSk9JTiBwZ19hdHRyaWJ1dGUgQVMgc2EgT04gKHNhLmF0dHJlbGlk LCBzYS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyc3RhcnQpCisgICAgSk9JTiBwZ19hdHRy aWJ1dGUgQVMgZWEgT04gKGVhLmF0dHJlbGlkLCBlYS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAu cGVyZW5kKQorICAgIFdIRVJFIE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShuYy5vaWQpCisg ICAgICBBTkQgYy5yZWxraW5kIElOICgncicsICd2Jyk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZXJp b2RzIFRPIFBVQkxJQzsKIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9t ZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMmYzZGVk OGEwZTcuLmEzNzJmYjBhYWU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29u LmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTI2LDYgKzI2 LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncGdfbmFtZXNwYWNlLmMnLAogICAn cGdfb3BlcmF0b3IuYycsCiAgICdwZ19wYXJhbWV0ZXJfYWNsLmMnLAorICAncGdfcGVyaW9kLmMn LAogICAncGdfcHJvYy5jJywKICAgJ3BnX3B1YmxpY2F0aW9uLmMnLAogICAncGdfcmFuZ2UuYycs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDM2MGM2YjJiYTYzLi42NTFhMWMx ODY4NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTQ1LDYgKzQ1LDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19v cGZhbWlseS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcGFyYW1ldGVyX2FjbC5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wb2xpY3kuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmgiCkBAIC03MzMsNiArNzM0LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0 X3R5cGVfbWFwCiAJewogCQkiZG9tYWluIGNvbnN0cmFpbnQiLCBPQkpFQ1RfRE9NQ09OU1RSQUlO VAogCX0sCisJLyogT0NMQVNTX1BFUklPRCAqLworCXsKKwkJInBlcmlvZCIsIE9CSkVDVF9QRVJJ T0QKKwl9LAogCS8qIE9DTEFTU19DT05WRVJTSU9OICovCiAJewogCQkiY29udmVyc2lvbiIsIE9C SkVDVF9DT05WRVJTSU9OCkBAIC0xMDExLDYgKzEwMTYsNyBAQCBnZXRfb2JqZWN0X2FkZHJlc3Mo T2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQljYXNlIE9CSkVDVF9UUklHR0VS OgogCQkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJCWNhc2UgT0JKRUNUX1BPTElDWToK KwkJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJCQlhZGRyZXNzID0gZ2V0X29iamVjdF9hZGRyZXNz X3JlbG9iamVjdChvYmp0eXBlLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpLAogCQkJCQkJCQkJCQkJ CSAgICZyZWxhdGlvbiwgbWlzc2luZ19vayk7CiAJCQkJYnJlYWs7CkBAIC0xNTA5LDYgKzE1MTUs MTMgQEAgZ2V0X29iamVjdF9hZGRyZXNzX3JlbG9iamVjdChPYmplY3RUeXBlIG9ianR5cGUsIExp c3QgKm9iamVjdCwKIAkJCQlJbnZhbGlkT2lkOwogCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7 CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgorCQkJYWRkcmVzcy5jbGFzc0lkID0g UGVyaW9kUmVsYXRpb25JZDsKKwkJCWFkZHJlc3Mub2JqZWN0SWQgPSByZWxhdGlvbiA/CisJCQkJ Z2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQocmVsb2lkLCBkZXBuYW1lLCBtaXNzaW5nX29rKSA6CisJ CQkJSW52YWxpZE9pZDsKKwkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOworCQkJYnJlYWs7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIs IChpbnQpIG9ianR5cGUpOwogCX0KQEAgLTIzMjYsNiArMjMzOSw3IEBAIHBnX2dldF9vYmplY3Rf YWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9SVUxFOgogCQljYXNlIE9C SkVDVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgorCQljYXNlIE9CSkVD VF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZ OgogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CkBAIC0yNDM2LDYgKzI0NTAsNyBAQCBjaGVj a19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0 QWRkcmVzcyBhZGRyZXNzLAogCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9Q T0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CisJCWNhc2UgT0JKRUNUX1BFUklP RDoKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlv bkdldFJlbGlkKHJlbGF0aW9uKSwgcm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVD S19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsYXRpb24pKTsKQEAgLTMwODQsNiArMzA5OSwzOCBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsK IAkJCX0KIAorCQljYXNlIE9DTEFTU19QRVJJT0Q6CisJCQl7CisJCQkJSGVhcFR1cGxlCXBlclR1 cDsKKwkJCQlGb3JtX3BnX3BlcmlvZCBwZXI7CisKKwkJCQlwZXJUdXAgPSBTZWFyY2hTeXNDYWNo ZTEoUEVSSU9ET0lELAorCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0 SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocGVyVHVwKSkKKwkJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsCisJCQkJCQkgb2JqZWN0LT5v YmplY3RJZCk7CisJCQkJcGVyID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwKTsK KworCQkJCWlmIChPaWRJc1ZhbGlkKHBlci0+cGVycmVsaWQpKQorCQkJCXsKKwkJCQkJU3RyaW5n SW5mb0RhdGEgcmVsOworCisJCQkJCWluaXRTdHJpbmdJbmZvKCZyZWwpOworCQkJCQlnZXRSZWxh dGlvbkRlc2NyaXB0aW9uKCZyZWwsIHBlci0+cGVycmVsaWQsIGZhbHNlKTsKKwkJCQkJYXBwZW5k U3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwZXJpb2QgJXMgb24gJXMiKSwKKwkJCQkJCQkJCSBOYW1l U3RyKHBlci0+cGVybmFtZSksIHJlbC5kYXRhKTsKKwkJCQkJcGZyZWUocmVsLmRhdGEpOworCQkJ CX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInBl cmlvZCAlcyIpLAorCQkJCQkJCQkJIE5hbWVTdHIocGVyLT5wZXJuYW1lKSk7CisJCQkJfQorCisJ CQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBP Q0xBU1NfQ09OVkVSU0lPTjoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJY29uVHVwOwpAQCAtNDQ0OCw2 ICs0NDk1LDEwIEBAIGdldE9iamVjdFR5cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNz ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQli cmVhazsKIAorCQljYXNlIE9DTEFTU19QRVJJT0Q6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KCZidWZmZXIsICJwZXJpb2QiKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgT0NMQVNTX0NPTlZFUlNJ T046CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb252ZXJzaW9uIik7CiAJ CQlicmVhazsKQEAgLTQ5NTUsNiArNTAwNiwyOCBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIE9D TEFTU19QRVJJT0Q6CisJCQl7CisJCQkJSGVhcFR1cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3Bl cmlvZCBwZXI7CisKKwkJCQlwZXJUdXAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJ CQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhl YXBUdXBsZUlzVmFsaWQocGVyVHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIHBlcmlvZCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJcGVy ID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwKTsKKworCQkJCWFwcGVuZFN0cmlu Z0luZm8oJmJ1ZmZlciwgIiVzIG9uICIsCisJCQkJCQkJCSBxdW90ZV9pZGVudGlmaWVyKE5hbWVT dHIocGVyLT5wZXJuYW1lKSkpOworCQkJCWdldFJlbGF0aW9uSWRlbnRpdHkoJmJ1ZmZlciwgcGVy LT5wZXJyZWxpZCwgb2JqbmFtZSwgZmFsc2UpOworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2Jq bmFtZSA9IGxhcHBlbmQoKm9iam5hbWUsIHBzdHJkdXAoTmFtZVN0cihwZXItPnBlcm5hbWUpKSk7 CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQlj YXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQkJewogCQkJCUhlYXBUdXBsZQljb25UdXA7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3BlcmlvZC5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wZXJpb2QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NDY1YjViNjc1ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Bl cmlvZC5jCkBAIC0wLDAgKzEsMTMyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19w ZXJpb2QuYworICoJICByb3V0aW5lcyB0byBzdXBwb3J0IG1hbmlwdWxhdGlvbiBvZiB0aGUgcGdf cGVyaW9kIHJlbGF0aW9uCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjEs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICoKKyAqIElERU5USUZJ Q0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nl c3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3BlcmlvZC5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVk ZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisvKgorICogRGVsZXRlIGEgc2luZ2xlIHBlcmlvZCBy ZWNvcmQuCisgKi8KK3ZvaWQKK1JlbW92ZVBlcmlvZEJ5SWQoT2lkIHBlcmlvZElkKQoreworCVJl bGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwOworCisJcGdfcGVyaW9kID0gdGFibGVf b3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJj aFN5c0NhY2hlMShQRVJJT0RPSUQsIE9iamVjdElkR2V0RGF0dW0ocGVyaW9kSWQpKTsKKwlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHVwKSkgLyogc2hvdWxkIG5vdCBoYXBwZW4gKi8KKwkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsIHBlcmlvZElkKTsKKwor CS8qIEZyeSB0aGUgcGVyaW9kIGl0c2VsZiAqLworCUNhdGFsb2dUdXBsZURlbGV0ZShwZ19wZXJp b2QsICZ0dXAtPnRfc2VsZik7CisKKwkvKiBDbGVhbiB1cCAqLworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisKKy8q CisgKiBnZXRfcmVsYXRpb25fcGVyaW9kX29pZAorICoJCUZpbmQgYSBwZXJpb2Qgb24gdGhlIHNw ZWNpZmllZCByZWxhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KKyAqCQlSZXR1cm5zIHBl cmlvZCdzIE9JRC4KKyAqLworT2lkCitnZXRfcmVsYXRpb25fcGVyaW9kX29pZChPaWQgcmVsaWQs IGNvbnN0IGNoYXIgKnBlcm5hbWUsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlSZWxhdGlvbglwZ19w ZXJpb2Q7CisJSGVhcFR1cGxlCXR1cGxlOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURh dGEgc2tleVsyXTsKKwlPaWQJCQlwZXJPaWQgPSBJbnZhbGlkT2lkOworCisJLyogRmV0Y2ggdGhl IHBlcmlvZCB0dXBsZSBmcm9tIHBnX3BlcmlvZC4gKi8KKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVu KFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlTY2FuS2V5SW5pdCgmc2tl eVswXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lO dW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOworCVNjYW5LZXlJ bml0KCZza2V5WzFdLAorCQkJCUFudW1fcGdfcGVyaW9kX3Blcm5hbWUsCisJCQkJQlRFcXVhbFN0 cmF0ZWd5TnVtYmVyLCBGX05BTUVFUSwKKwkJCQlDU3RyaW5nR2V0RGF0dW0ocGVybmFtZSkpOwor CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUlu ZGV4SWQsIHRydWUsCisJCQkJCQkJICBOVUxMLCAyLCBza2V5KTsKKworCS8qIFRoZXJlIGNhbiBi ZSBhdCBtb3N0IG9uZSBtYXRjaGluZyByb3cgKi8KKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBs ZSA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCQlwZXJPaWQgPSAoKEZvcm1fcGdfcGVyaW9k KSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwor CS8qIElmIG5vIHN1Y2ggcGVyaW9kIGV4aXN0cywgY29tcGxhaW4gKi8KKwlpZiAoIU9pZElzVmFs aWQocGVyT2lkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInBlcmlvZCBcIiVzXCIg Zm9yIHRhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlwZXJuYW1lLCBnZXRfcmVs X25hbWUocmVsaWQpKSkpOworCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBBY2Nlc3NTaGFyZUxv Y2spOworCisJcmV0dXJuIHBlck9pZDsKK30KKworLyoKKyAqIGdldF9wZXJpb2RfYXR0bm9zCisg KgkJR2V0IHRoZSBhdHRubyBvZiB0aGUgR0VORVJBVEVEIHJhbmdldHlwZSBjb2x1bW4KKyAqCQlm b3IgYWxsIFBFUklPRHMgaW4gdGhpcyB0YWJsZS4KKyAqLworZXh0ZXJuIEJpdG1hcHNldAorKmdl dF9wZXJpb2RfYXR0bm9zKE9pZCByZWxpZCkKK3sKKwlCaXRtYXBzZXQgKmF0dG5vcyA9IE5VTEw7 CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUhlYXBUdXBsZQl0dXBsZTsKKwlTeXNTY2FuRGVzYyBz Y2FuOworCVNjYW5LZXlEYXRhIHNrZXlbMV07CisKKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBl cmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlTY2FuS2V5SW5pdCgmc2tleVsw XSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOworCisJc2NhbiA9IHN5 c3RhYmxlX2JlZ2luc2NhbihwZ19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUs CisJCQkJCQkJICBOVUxMLCAxLCBza2V5KTsKKworCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1 cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJp b2QgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJYXR0bm9zID0gYm1z X2FkZF9tZW1iZXIoYXR0bm9zLCBwZXJpb2QtPnBlcnJhbmdlKTsKKwl9CisKKwlzeXN0YWJsZV9l bmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgQWNjZXNzU2hhcmVMb2NrKTsK KworCXJldHVybiBhdHRub3M7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Nx bF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5k ZXggOTI1ZDE1YTJjMzguLmM5M2M2OTc1MGFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL3NxbF9mZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVy ZXMudHh0CkBAIC00NDgsNyArNDQ4LDcgQEAgVDE3NglTZXF1ZW5jZSBnZW5lcmF0b3Igc3VwcG9y dAkJCU5PCXN1cHBvcnRlZCBleGNlcHQgZm9yIE5FWFQgVkFMVUUgRk9SCiBUMTc3CVNlcXVlbmNl IGdlbmVyYXRvciBzdXBwb3J0OiBzaW1wbGUgcmVzdGFydCBvcHRpb24JCQlZRVMJCiBUMTc4CUlk ZW50aXR5IGNvbHVtbnM6IHNpbXBsZSByZXN0YXJ0IG9wdGlvbgkJCVlFUwkKIFQxODAJU3lzdGVt LXZlcnNpb25lZCB0YWJsZXMJCQlOTwkKLVQxODEJQXBwbGljYXRpb24tdGltZSBwZXJpb2QgdGFi bGVzCQkJTk8JCitUMTgxCUFwcGxpY2F0aW9uLXRpbWUgcGVyaW9kIHRhYmxlcwkJCVlFUwkKIFQx OTEJUmVmZXJlbnRpYWwgYWN0aW9uIFJFU1RSSUNUCQkJWUVTCQogVDIwMAlUcmlnZ2VyIERETAkJ CU5PCXNpbWlsYXIgYnV0IG5vdCBmdWxseSBjb21wYXRpYmxlCiBUMjAxCUNvbXBhcmFibGUgZGF0 YSB0eXBlcyBmb3IgcmVmZXJlbnRpYWwgY29uc3RyYWludHMJCQlZRVMJCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIu YwppbmRleCBjZDc0MDE0MGZkNy4uMDI3ZDVlYzczMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAt NjY0LDYgKzY2NCw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lk IG9iamlkLCBPaWQgbnNwT2lkLAogCiAJCWNhc2UgT0NMQVNTX0NBU1Q6CiAJCWNhc2UgT0NMQVNT X0NPTlNUUkFJTlQ6CisJCWNhc2UgT0NMQVNTX1BFUklPRDoKIAkJY2FzZSBPQ0xBU1NfREVGQVVM VDoKIAkJY2FzZSBPQ0xBU1NfTEFOR1VBR0U6CiAJCWNhc2UgT0NMQVNTX0xBUkdFT0JKRUNUOgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVudC5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29tbWVudC5jCmluZGV4IGU5ZDUwZmM3ZDg3Li4wNWZlZmI1YjVjZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVudC5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbW1lbnQuYwpAQCAtMTAyLDYgKzEwMiwxNiBAQCBDb21tZW50T2JqZWN0KENvbW1l bnRTdG10ICpzdG10KQogCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikp LAogCQkJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBwb3J0ZWQocmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCkpKTsKIAkJCWJyZWFrOworCisJCWNhc2UgT0JKRUNUX1BFUklPRDoKKwkJCS8q IFBlcmlvZHMgY2FuIG9ubHkgZ28gb24gdGFibGVzICovCisJCQlpZiAocmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJCSBlcnJtc2coIlwi JXNcIiBpcyBub3QgYSB0YWJsZSIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bGF0aW9uKSkpKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYwppbmRleCA4NWVlYzdlMzk0Ny4uM2Q3ODc5ZjkzYzEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYwpAQCAtNTA0LDYgKzUwNCw3IEBAIGRvZXNfbm90X2V4aXN0X3NraXBw aW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQljYXNlIE9CSkVDVF9ET01D T05TVFJBSU5UOgogCQljYXNlIE9CSkVDVF9MQVJHRU9CSkVDVDoKIAkJY2FzZSBPQkpFQ1RfUEFS QU1FVEVSX0FDTDoKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQljYXNlIE9CSkVDVF9QVUJMSUNB VElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJY2FzZSBP QkpFQ1RfVEFCQ09OU1RSQUlOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2 ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwppbmRl eCBjOTVlOWNmNmYwZS4uYzU1NDM0YjYyYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmln Z2VyLmMKQEAgLTExNjUsNiArMTE2NSw3IEBAIEV2ZW50VHJpZ2dlclN1cHBvcnRzT2JqZWN0VHlw ZShPYmplY3RUeXBlIG9idHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpF Q1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9QRVJJ T0Q6CiAJCWNhc2UgT0JKRUNUX1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFJPQ0VEVVJFOgogCQlj YXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKQEAgLTEyMjMsNiArMTIyNCw3IEBAIEV2ZW50VHJpZ2dl clN1cHBvcnRzT2JqZWN0Q2xhc3MoT2JqZWN0Q2xhc3Mgb2JqY2xhc3MpCiAJCWNhc2UgT0NMQVNT X0NBU1Q6CiAJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlO VDoKKwkJY2FzZSBPQ0xBU1NfUEVSSU9EOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQlj YXNlIE9DTEFTU19ERUZBVUxUOgogCQljYXNlIE9DTEFTU19MQU5HVUFHRToKQEAgLTIyNjQsNiAr MjI2Niw3IEBAIHN0cmluZ2lmeV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ Y2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JK RUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNUX1BPTElD WToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O X05BTUVTUEFDRToKQEAgLTIzNDgsNiArMjM1MSw3IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2Jq dHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNl IE9CSkVDVF9PUEZBTUlMWToKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKKwkJY2FzZSBP QkpFQ1RfUEVSSU9EOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1BVQkxJ Q0FUSU9OOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2VjbGFiZWwuYwppbmRleCA1NjA3MjczYmY5Zi4uYWY3MTc3MTc5Y2UgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2VjbGFiZWwuYwpAQCAtNzksNiArNzksNyBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShP YmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNlIE9CSkVD VF9PUEZBTUlMWToKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKKwkJY2FzZSBPQkpFQ1Rf UEVSSU9EOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O X05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwppbmRleCA4NmU3MGJiNDA4Mi4uNTZkNGVlZjU2OGUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJn ZW9iamVjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19vcGNsYXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKQEAgLTE1MCw2 ICsxNTEsMTEgQEAgdHlwZWRlZiBlbnVtIEFsdGVyVGFibGVQYXNzCiAJQVRfUEFTU19PTERfSU5E RVgsCQkJLyogcmUtYWRkIGV4aXN0aW5nIGluZGV4ZXMgKi8KIAlBVF9QQVNTX09MRF9DT05TVFIs CQkJLyogcmUtYWRkIGV4aXN0aW5nIGNvbnN0cmFpbnRzICovCiAJLyogV2UgY291bGQgc3VwcG9y dCBhIFJFTkFNRSBDT0xVTU4gcGFzcyBoZXJlLCBidXQgbm90IGN1cnJlbnRseSB1c2VkICovCisJ LyoKKwkgKiBXZSBtdXN0IGFkZCBQRVJJT0RzIGFmdGVyIGNvbHVtbnMsIGluIGNhc2UgdGhleSBy ZWZlcmVuY2UgYSBuZXdseS1hZGRlZCBjb2x1bW4sCisJICogYW5kIGJlZm9yZSBjb25zdHJhaW50 cywgaW4gY2FzZSBhIG5ld2x5LWFkZGVkIFBLL0ZLIHJlZmVyZW5jZXMgdGhlbS4KKwkgKi8KKwlB VF9QQVNTX0FERF9QRVJJT0QsCQkJLyogQUREIFBFUklPRCAqLwogCUFUX1BBU1NfQUREX0NPTlNU UiwJCQkvKiBBREQgY29uc3RyYWludHMgKGluaXRpYWwgZXhhbWluYXRpb24pICovCiAJQVRfUEFT U19DT0xfQVRUUlMsCQkJLyogc2V0IGNvbHVtbiBhdHRyaWJ1dGVzLCBlZyBOT1QgTlVMTCAqLwog CUFUX1BBU1NfQUREX0lOREVYQ09OU1RSLAkvKiBBREQgaW5kZXgtYmFzZWQgY29uc3RyYWludHMg Ki8KQEAgLTM1Nyw2ICszNjMsNyBAQCBzdGF0aWMgdm9pZCBSYW5nZVZhckNhbGxiYWNrRm9yVHJ1 bmNhdGUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogc3RhdGljIExpc3QgKk1lcmdlQXR0cmli dXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVu Y2UsCiAJCQkJCQkJIGJvb2wgaXNfcGFydGl0aW9uLCBMaXN0ICoqc3VwY29uc3RyLAogCQkJCQkJ CSBMaXN0ICoqc3Vwbm90bnVsbHMpOworc3RhdGljIExpc3QgKk1lcmdlUGVyaW9kcyhjaGFyICpy ZWxuYW1lLCBMaXN0ICpwZXJpb2RzLCBMaXN0ICp0YWJsZUVsdHMsIExpc3QgKnN1cGVycyk7CiBz dGF0aWMgTGlzdCAqTWVyZ2VDaGVja0NvbnN0cmFpbnQoTGlzdCAqY29uc3RyYWludHMsIGNvbnN0 IGNoYXIgKm5hbWUsIE5vZGUgKmV4cHIpOwogc3RhdGljIHZvaWQgTWVyZ2VDaGlsZEF0dHJpYnV0 ZShMaXN0ICppbmhfY29sdW1ucywgaW50IGV4aXN0X2F0dG5vLCBpbnQgbmV3Y29sX2F0dG5vLCBj b25zdCBDb2x1bW5EZWYgKm5ld2RlZik7CiBzdGF0aWMgQ29sdW1uRGVmICpNZXJnZUluaGVyaXRl ZEF0dHJpYnV0ZShMaXN0ICppbmhfY29sdW1ucywgaW50IGV4aXN0X2F0dG5vLCBjb25zdCBDb2x1 bW5EZWYgKm5ld2RlZik7CkBAIC00MzcsNiArNDQ0LDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3Mg QVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJ CQkJCQkJCSBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpOwogc3RhdGljIGJvb2wg Y2hlY2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KmNvbG5hbWUsCiAJCQkJCQkJCQkJCWJvb2wgaWZfbm90X2V4aXN0cyk7CitzdGF0aWMgYm9vbCBj aGVja19mb3JfcGVyaW9kX25hbWVfY29sbGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq cGVybmFtZSwKKwkJCQkJCQkJCQkJYm9vbCBjb2xleGlzdHMsIGJvb2wgaWZfbm90X2V4aXN0cyk7 CiBzdGF0aWMgdm9pZCBhZGRfY29sdW1uX2RhdGF0eXBlX2RlcGVuZGVuY3koT2lkIHJlbGlkLCBp bnQzMiBhdHRudW0sIE9pZCB0eXBpZCk7CiBzdGF0aWMgdm9pZCBhZGRfY29sdW1uX2NvbGxhdGlv bl9kZXBlbmRlbmN5KE9pZCByZWxpZCwgaW50MzIgYXR0bnVtLCBPaWQgY29sbGlkKTsKIHN0YXRp YyBPYmplY3RBZGRyZXNzIEFURXhlY0Ryb3BOb3ROdWxsKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hh ciAqY29sTmFtZSwgYm9vbCByZWN1cnNlLApAQCAtNDU2LDYgKzQ2NSwxMiBAQCBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBBVEV4ZWNDb2x1bW5EZWZhdWx0KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq Y29sTmFtZSwKIAkJCQkJCQkJCQkgTm9kZSAqbmV3RGVmYXVsdCwgTE9DS01PREUgbG9ja21vZGUp Owogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjQ29va2VkQ29sdW1uRGVmYXVsdChSZWxhdGlv biByZWwsIEF0dHJOdW1iZXIgYXR0bnVtLAogCQkJCQkJCQkJCQkgICBOb2RlICpuZXdEZWZhdWx0 KTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0FkZFBlcmlvZChSZWxhdGlvbiByZWwsIFBl cmlvZERlZiAqcGVyaW9kLAorCQkJCQkJCQkJIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29u dGV4dCk7CitzdGF0aWMgdm9pZCBBVEV4ZWNEcm9wUGVyaW9kKFJlbGF0aW9uIHJlbCwgY29uc3Qg Y2hhciAqcGVyaW9kTmFtZSwKKwkJCQkJCQkgRHJvcEJlaGF2aW9yIGJlaGF2aW9yLAorCQkJCQkJ CSBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJzaW5nLAorCQkJCQkJCSBib29sIG1pc3Npbmdfb2sp Owogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjQWRkSWRlbnRpdHkoUmVsYXRpb24gcmVsLCBj b25zdCBjaGFyICpjb2xOYW1lLAogCQkJCQkJCQkJICAgTm9kZSAqZGVmLCBMT0NLTU9ERSBsb2Nr bW9kZSwgYm9vbCByZWN1cnNlLCBib29sIHJlY3Vyc2luZyk7CiBzdGF0aWMgT2JqZWN0QWRkcmVz cyBBVEV4ZWNTZXRJZGVudGl0eShSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCkBA IC02NjMsNiArNjc4LDEwIEBAIHN0YXRpYyBMaXN0ICpHZXRQYXJlbnRlZEZvcmVpZ25LZXlSZWZz KFJlbGF0aW9uIHBhcnRpdGlvbik7CiBzdGF0aWMgdm9pZCBBVERldGFjaENoZWNrTm9Gb3JlaWdu S2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlQ29t cHJlc3Npb24oT2lkIGF0dHR5cGlkLCBjb25zdCBjaGFyICpjb21wcmVzc2lvbik7CiBzdGF0aWMg Y2hhciBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqc3RvcmFn ZW1vZGUpOworc3RhdGljIHZvaWQgQWRkUmVsYXRpb25OZXdQZXJpb2QoUmVsYXRpb24gcmVsLCBQ ZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgdm9pZCBWYWxpZGF0ZVBlcmlvZChSZWxhdGlvbiBy ZWwsIFBlcmlvZERlZiAqcGVyaW9kKTsKK3N0YXRpYyBDb25zdHJhaW50ICptYWtlX2NvbnN0cmFp bnRfZm9yX3BlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERlZiAqcGVyaW9kKTsKK3N0YXRpYyBD b2x1bW5EZWYgKm1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QoUGVyaW9kRGVmICpwZXJpb2Qp OwogCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg5MSw2ICs5MTAsNzkgQEAgRGVmaW5lUmVsYXRpb24oQ3Jl YXRlU3RtdCAqc3RtdCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAkJCQkJCXN0bXQtPnBh cnRib3VuZCAhPSBOVUxMLAogCQkJCQkJJm9sZF9jb25zdHJhaW50cywgJm9sZF9ub3RudWxscyk7 CiAKKwkvKgorCSAqIFVzaW5nIHRoZSBjb2x1bW4gbGlzdCAoaW5jbHVkaW5nIGluaGVyaXRlZCBj b2x1bW5zKSwKKwkgKiBmaW5kIHRoZSBzdGFydC9lbmQgY29sdW1ucyBmb3IgZWFjaCBwZXJpb2Qu CisJICogUEVSSU9EcyBzaG91bGQgYmUgaW5oZXJpdGVkIHRvbyAoYnV0IGFyZW4ndCB5ZXQpLgor CSAqLworCXN0bXQtPnBlcmlvZHMgPSBNZXJnZVBlcmlvZHMocmVsbmFtZSwgc3RtdC0+cGVyaW9k cywgc3RtdC0+dGFibGVFbHRzLCBpbmhlcml0T2lkcyk7CisKKwkvKgorCSAqIEZvciBlYWNoIFBF UklPRCB3ZSBuZWVkIGEgR0VORVJBVEVEIGNvbHVtbi4KKwkgKiBVc3VhbGx5IHdlIG11c3QgY3Jl YXRlIHRoaXMsIHNvIHdlIGFkZCBpdCB0byB0YWJsZUVsdHMuCisJICogSWYgdGhlIHVzZXIgc2F5 cyB0aGUgY29sdW1uIGFscmVhZHkgZXhpc3RzLAorCSAqIG1ha2Ugc3VyZSBpdCBpcyBzZW5zaWJs ZS4KKwkgKiBUaGVzZSBjb2x1bW5zIGFyZSBub3QgaW5oZXJpdGVkLAorCSAqIHNvIHdlIGRvbid0 IHdvcnJ5IGFib3V0IGNvbmZsaWN0cyBpbiB0YWJsZUVsdHMuCisJICoKKwkgKiBXZSBhbGxvdyB0 aGlzIGNvbGV4aXN0cyBvcHRpb24gdG8gc3VwcG9ydCBwZ191cGdyYWRlLAorCSAqIHNvIHdlIGhh dmUgbW9yZSBjb250cm9sIG92ZXIgdGhlIEdFTkVSQVRFRCBjb2x1bW4KKwkgKiAod2hvc2UgYXR0 bnVtIG11c3QgbWF0Y2ggdGhlIG9sZCB2YWx1ZSkuCisJICovCisJZm9yZWFjaChsaXN0cHRyLCBz dG10LT5wZXJpb2RzKQorCXsKKwkJUGVyaW9kRGVmICpwZXJpb2QgPSAoUGVyaW9kRGVmICopIGxm aXJzdChsaXN0cHRyKTsKKworCQlpZiAocGVyaW9kLT5jb2xleGlzdHMpCisJCXsKKwkJCUxpc3RD ZWxsICpjZWxsOworCQkJYm9vbCBmb3VuZCA9IGZhbHNlOworCisJCQlmb3JlYWNoKGNlbGwsIHN0 bXQtPnRhYmxlRWx0cykKKwkJCXsKKwkJCQlDb2x1bW5EZWYgICpjb2xEZWYgPSBsZmlyc3QoY2Vs bCk7CisKKwkJCQlpZiAoc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwgY29sRGVmLT5jb2xuYW1l KSA9PSAwKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTG90cyB0byBjaGVjayBoZXJlOgorCQkJ CQkgKiBJdCBtdXN0IGJlIEdFTkVSQVRFRCBBTFdBWVMsCisJCQkJCSAqIGl0IG11c3QgaGF2ZSB0 aGUgcmlnaHQgZXhwcmVzc2lvbiwKKwkJCQkJICogaXQgbXVzdCBiZSB0aGUgcmlnaHQgdHlwZSwK KwkJCQkJICogaXQgbXVzdCBiZSBOT1QgTlVMTCwKKwkJCQkJICogaXQgbXVzdCBub3QgYmUgaW5o ZXJpdGVkLgorCQkJCQkgKi8KKwkJCQkJaWYgKGNvbERlZi0+Z2VuZXJhdGVkID09ICdcMCcpCisJ CQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIG5vbi1nZW5lcmF0 ZWQgY29sdW1uIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCWlmIChjb2xEZWYtPmdl bmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkJCQkJCWVyZXBvcnQoRVJS T1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIG5v dCBTVE9SRUQiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJLy8gVE9ETzogY2hlY2sg dGhlIEdFTkVSQVRFRCBleHByZXNzaW9uIGFsc28uCisKKwkJCQkJaWYgKCFjb2xEZWYtPmlzX25v dF9udWxsICYmICFJc0JpbmFyeVVwZ3JhZGUpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNn KCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxvd3MgbnVsbHMiLCBw ZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJaWYgKHBlcmlvZC0+cm5ndHlwaWQgIT0gdHlw ZW5hbWVUeXBlSWQoTlVMTCwgY29sRGVmLT50eXBlTmFtZSkpCisJCQkJCQllcmVwb3J0KEVSUk9S LCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0aCB0aGUgd3Jv bmcgdHlwZSIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJCQlpZiAoIWNvbERlZi0+aXNf bG9jYWwpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdl bmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBpbmhlcml0ZWQiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7 CisKKwkJCQkJZm91bmQgPSB0cnVlOworCQkJCX0KKwkJCX0KKworCQkJaWYgKCFmb3VuZCkKKwkJ CQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJObyBjb2x1bW4gZm91bmQgd2l0aCBuYW1lICVzIiwg cGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCQl9CisJCWVsc2UKKwkJeworCQkJQ29sdW1uRGVmICpj b2wgPSBtYWtlX3JhbmdlX2NvbHVtbl9mb3JfcGVyaW9kKHBlcmlvZCk7CisJCQlzdG10LT50YWJs ZUVsdHMgPSBsYXBwZW5kKHN0bXQtPnRhYmxlRWx0cywgY29sKTsKKwkJfQorCX0KKwogCS8qCiAJ ICogQ3JlYXRlIGEgdHVwbGUgZGVzY3JpcHRvciBmcm9tIHRoZSByZWxhdGlvbiBzY2hlbWEuICBO b3RlIHRoYXQgdGhpcwogCSAqIGRlYWxzIHdpdGggY29sdW1uIG5hbWVzLCB0eXBlcywgYW5kIGlu LWRlc2NyaXB0b3IgTk9UIE5VTEwgZmxhZ3MsIGJ1dApAQCAtMTI3Niw2ICsxMzY4LDIxIEBAIERl ZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQs CiAJZm9yZWFjaChsaXN0cHRyLCBubmNvbHMpCiAJCXNldF9hdHRub3RudWxsKE5VTEwsIHJlbCwg bGZpcnN0X2ludChsaXN0cHRyKSwgZmFsc2UsIE5vTG9jayk7CiAKKwkvKgorCSAqIENyZWF0ZSBw ZXJpb2RzIGZvciB0aGUgdGFibGUuIFRoaXMgbXVzdCBjb21lIGFmdGVyIHdlIGNyZWF0ZSBjb2x1 bW5zCisJICogYW5kIGJlZm9yZSB3ZSBjcmVhdGUgaW5kZXggY29uc3RyYWludHMuIEl0IHdpbGwg YXV0b21hdGljYWxseSBjcmVhdGUKKwkgKiBhIENIRUNLIGNvbnN0cmFpbnQgZm9yIHRoZSBwZXJp b2QuCisJICovCisJZm9yZWFjaChsaXN0cHRyLCBzdG10LT5wZXJpb2RzKQorCXsKKwkJUGVyaW9k RGVmICpwZXJpb2QgPSAoUGVyaW9kRGVmICopIGxmaXJzdChsaXN0cHRyKTsKKworCQkvKiBEb24n dCB1cGRhdGUgdGhlIGNvdW50IG9mIGNoZWNrIGNvbnN0cmFpbnRzIHR3aWNlICovCisJCUNvbW1h bmRDb3VudGVySW5jcmVtZW50KCk7CisKKwkJQWRkUmVsYXRpb25OZXdQZXJpb2QocmVsLCBwZXJp b2QpOworCX0KKwogCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgUmVsYXRpb25SZWxhdGlvbklk LCByZWxhdGlvbklkKTsKIAogCS8qCkBAIC0xMzkyLDYgKzE0OTksMzA5IEBAIEJ1aWxkRGVzY0Zv clJlbGF0aW9uKGNvbnN0IExpc3QgKmNvbHVtbnMpCiAJcmV0dXJuIGRlc2M7CiB9CiAKKy8qCisg KiBtYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZAorICoKKyAqIEJ1aWxkcyBhIENIRUNLIENvbnN0 cmFpbnQgdG8gZW5zdXJlIHN0YXJ0IDwgZW5kLgorICogUmV0dXJucyB0aGUgQ0hFQ0sgQ29uc3Ry YWludC4KKyAqIEFsc28gZmlsbHMgaW4gcGVyaW9kLT5jb25zdHJhaW50bmFtZSBpZiBuZWVkZWQu CisgKi8KK3N0YXRpYyBDb25zdHJhaW50ICoKK21ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKFJl bGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpCit7CisJQ29sdW1uUmVmICAqc2NvbCwgKmVj b2w7CisJQ29uc3RyYWludCAqY29uc3RyOworCVR5cGVDYWNoZUVudHJ5ICp0eXBlOworCisJaWYg KHBlcmlvZC0+Y29uc3RyYWludG5hbWUgPT0gTlVMTCkKKwkJcGVyaW9kLT5jb25zdHJhaW50bmFt ZSA9IENob29zZUNvbnN0cmFpbnROYW1lKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCisJ CQkJCQkJCQkJCQkJICBwZXJpb2QtPnBlcmlvZG5hbWUsCisJCQkJCQkJCQkJCQkJICAiY2hlY2si LAorCQkJCQkJCQkJCQkJCSAgUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSwKKwkJCQkJCQkJCQkJ CQkgIE5JTCk7CisJc2NvbCA9IG1ha2VOb2RlKENvbHVtblJlZik7CisJc2NvbC0+ZmllbGRzID0g bGlzdF9tYWtlMShtYWtlU3RyaW5nKHBzdHJkdXAocGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisJ c2NvbC0+bG9jYXRpb24gPSAwOworCisJZWNvbCA9IG1ha2VOb2RlKENvbHVtblJlZik7CisJZWNv bC0+ZmllbGRzID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKHBzdHJkdXAocGVyaW9kLT5lbmRjb2xu YW1lKSkpOworCWVjb2wtPmxvY2F0aW9uID0gMDsKKworCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNo ZShwZXJpb2QtPmNvbHR5cGlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKwlpZiAodHlwZS0+bHRfb3By ID09IEludmFsaWRPaWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgY2Fubm90 IGJlIHVzZWQgaW4gYSBQRVJJT0QgYmVjYXVzZSBpdHMgdHlwZSAlcyBoYXMgbm8gbGVzcyB0aGFu IG9wZXJhdG9yIiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1lLCBmb3JtYXRfdHlwZV9iZShw ZXJpb2QtPmNvbHR5cGlkKSkpKTsKKworCWNvbnN0ciA9IG1ha2VOb2RlKENvbnN0cmFpbnQpOwor CWNvbnN0ci0+Y29udHlwZSA9IENPTlNUUl9DSEVDSzsKKwljb25zdHItPmNvbm5hbWUgPSBwZXJp b2QtPmNvbnN0cmFpbnRuYW1lOworCWNvbnN0ci0+ZGVmZXJyYWJsZSA9IGZhbHNlOworCWNvbnN0 ci0+aW5pdGRlZmVycmVkID0gZmFsc2U7CisJY29uc3RyLT5sb2NhdGlvbiA9IC0xOworCWNvbnN0 ci0+aXNfbm9faW5oZXJpdCA9IGZhbHNlOworCWNvbnN0ci0+cmF3X2V4cHIgPSAoTm9kZSAqKSBt YWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLAorCQkJCQkJCQkJCQkJIGdldF9vcG5hbWUodHlwZS0+ bHRfb3ByKSwKKwkJCQkJCQkJCQkJCSAoTm9kZSAqKSBzY29sLAorCQkJCQkJCQkJCQkJIChOb2Rl ICopIGVjb2wsCisJCQkJCQkJCQkJCQkgMCk7CisJY29uc3RyLT5jb29rZWRfZXhwciA9IE5VTEw7 CisJY29uc3RyLT5za2lwX3ZhbGlkYXRpb24gPSBmYWxzZTsKKwljb25zdHItPmluaXRpYWxseV92 YWxpZCA9IHRydWU7CisKKwlyZXR1cm4gY29uc3RyOworfQorCisvKgorICogbWFrZV9yYW5nZV9j b2x1bW5fZm9yX3BlcmlvZAorICoKKyAqIEJ1aWxkcyBhIEdFTkVSQVRFRCBBTFdBWVMgcmFuZ2Ug Y29sdW1uIGJhc2VkIG9uIHRoZSBQRVJJT0QKKyAqIHN0YXJ0L2VuZCBjb2x1bW5zLiBSZXR1cm5z IHRoZSBDb2x1bW5EZWYuCisgKi8KK0NvbHVtbkRlZiAqCittYWtlX3JhbmdlX2NvbHVtbl9mb3Jf cGVyaW9kKFBlcmlvZERlZiAqcGVyaW9kKQoreworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZXNwYWNl OworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZTsKKwlDb2x1bW5EZWYgKmNvbCA9IG1ha2VOb2RlKENv bHVtbkRlZik7CisJQ29sdW1uUmVmICpzdGFydHZhciwgKmVuZHZhcjsKKwlFeHByICpyYW5nZUNv bnN0cnVjdG9yOworCisJaWYgKCFnZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlKHBlcmlvZC0+cm5n dHlwaWQsICZyYW5nZV90eXBlX25hbWUsICZyYW5nZV90eXBlX25hbWVzcGFjZSkpCisJCWVsb2co RVJST1IsICJtaXNzaW5nIHJhbmdlIHR5cGUgJWQiLCBwZXJpb2QtPnJuZ3R5cGlkKTsKKworCXN0 YXJ0dmFyID0gbWFrZU5vZGUoQ29sdW1uUmVmKTsKKwlzdGFydHZhci0+ZmllbGRzID0gbGlzdF9t YWtlMShtYWtlU3RyaW5nKHBzdHJkdXAocGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisJZW5kdmFy ID0gbWFrZU5vZGUoQ29sdW1uUmVmKTsKKwllbmR2YXItPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFr ZVN0cmluZyhwc3RyZHVwKHBlcmlvZC0+ZW5kY29sbmFtZSkpKTsKKwlyYW5nZUNvbnN0cnVjdG9y ID0gKEV4cHIgKikgbWFrZUZ1bmNDYWxsKAorCQkJbGlzdF9tYWtlMihtYWtlU3RyaW5nKHJhbmdl X3R5cGVfbmFtZXNwYWNlKSwgbWFrZVN0cmluZyhyYW5nZV90eXBlX25hbWUpKSwKKwkJCWxpc3Rf bWFrZTIoc3RhcnR2YXIsIGVuZHZhciksCisJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCXBl cmlvZC0+bG9jYXRpb24pOworCisJY29sLT5jb2xuYW1lID0gcHN0cmR1cChwZXJpb2QtPnBlcmlv ZG5hbWUpOworCWNvbC0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWUocmFuZ2VfdHlwZV9uYW1lKTsK Kwljb2wtPmNvbXByZXNzaW9uID0gTlVMTDsKKwljb2wtPmluaGNvdW50ID0gMDsKKwljb2wtPmlz X2xvY2FsID0gdHJ1ZTsKKwljb2wtPmlzX25vdF9udWxsID0gdHJ1ZTsKKwljb2wtPmlzX2Zyb21f dHlwZSA9IGZhbHNlOworCWNvbC0+c3RvcmFnZSA9IDA7CisJY29sLT5zdG9yYWdlX25hbWUgPSBO VUxMOworCWNvbC0+cmF3X2RlZmF1bHQgPSAoTm9kZSAqKSByYW5nZUNvbnN0cnVjdG9yOworCWNv bC0+Y29va2VkX2RlZmF1bHQgPSBOVUxMOworCWNvbC0+aWRlbnRpdHkgPSAwOworCWNvbC0+Z2Vu ZXJhdGVkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQ7CisJY29sLT5jb2xsQ2xhdXNlID0g TlVMTDsKKwljb2wtPmNvbGxPaWQgPSBJbnZhbGlkT2lkOworCWNvbC0+ZmR3b3B0aW9ucyA9IE5J TDsKKwljb2wtPmxvY2F0aW9uID0gcGVyaW9kLT5sb2NhdGlvbjsKKworCXJldHVybiBjb2w7Cit9 CisKKy8qCisgKiBWYWxpZGF0ZVBlcmlvZAorICoKKyAqIExvb2sgdXAgdGhlIGF0dHJpYnV0ZXMg dXNlZCBieSB0aGUgUEVSSU9ELAorICogbWFrZSBzdXJlIHRoZXkgZXhpc3QsIGFyZSBub3Qgc3lz dGVtIGNvbHVtbnMsCisgKiBhbmQgaGF2ZSB0aGUgc2FtZSB0eXBlIGFuZCBjb2xsYXRpb24uCisg KgorICogWW91IG11c3QgaGF2ZSBhIFJvd0V4Y2x1c2l2ZUxvY2sgb24gcGdfYXR0cmlidXRlCisg KiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIEFkZCBvdXIgZmluZGluZ3Mg dG8gdGhlc2UgUGVyaW9kRGVmIGZpZWxkczoKKyAqCisgKiBjb2x0eXBpZCAtIHRoZSB0eXBlIG9m IFBFUklPRCBjb2x1bW5zLgorICogc3RhcnRhdHRudW0gLSB0aGUgYXR0bnVtIG9mIHRoZSBzdGFy dCBjb2x1bW4uCisgKiBlbmRhdHRudW0gLSB0aGUgYXR0bnVtIG9mIHRoZSBlbmQgY29sdW1uLgor ICogcm5ndHlwaWQgLSB0aGUgcmFuZ2UgdHlwZSB0byB1c2UuCisgKiBybmdhdHRudW0gLSB0aGUg YXR0bnVtIG9mIGEgcHJlLWV4aXN0aW5nIHJhbmdlIGNvbHVtbiwgb3IgSW52YWxpZC4KKyAqLwor c3RhdGljIHZvaWQKK1ZhbGlkYXRlUGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJp b2QpCit7CisJSGVhcFR1cGxlIHN0YXJ0dHVwbGU7CisJSGVhcFR1cGxlIGVuZHR1cGxlOworCUZv cm1fcGdfYXR0cmlidXRlCWF0dHR1cGxlOworCU9pZAlhdHRjb2xsYXRpb247CisKKwkvKiBGaW5k IHRoZSBzdGFydCBjb2x1bW4gKi8KKwlzdGFydHR1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5QXR0 TmFtZShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+c3RhcnRjb2xuYW1lKTsKKwlpZiAo IUhlYXBUdXBsZUlzVmFsaWQoc3RhcnR0dXBsZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlwZXJpb2QtPnN0 YXJ0Y29sbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwlhdHR0dXBsZSA9 IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHN0YXJ0dHVwbGUpOworCXBlcmlvZC0+Y29s dHlwaWQgPSBhdHR0dXBsZS0+YXR0dHlwaWQ7CisJYXR0Y29sbGF0aW9uID0gYXR0dHVwbGUtPmF0 dGNvbGxhdGlvbjsKKwlwZXJpb2QtPnN0YXJ0YXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKwor CS8qIE1ha2Ugc3VyZSBpdCdzIG5vdCBhIHN5c3RlbSBjb2x1bW4gKi8KKwlpZiAocGVyaW9kLT5z dGFydGF0dG51bSA8PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiY2Fubm90IHVzZSBzeXN0 ZW0gY29sdW1uIFwiJXNcIiBpbiBwZXJpb2QiLAorCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUp KSk7CisKKwkvKiBGaW5kIHRoZSBlbmQgY29sdW1uICovCisJZW5kdHVwbGUgPSBTZWFyY2hTeXND YWNoZUNvcHlBdHROYW1lKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5lbmRjb2xuYW1l KTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoZW5kdHVwbGUpKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY29s dW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcGVy aW9kLT5lbmRjb2xuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCWF0dHR1 cGxlID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QoZW5kdHVwbGUpOworCXBlcmlvZC0+ ZW5kYXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKworCS8qIE1ha2Ugc3VyZSBpdCdzIG5vdCBh IHN5c3RlbSBjb2x1bW4gKi8KKwlpZiAocGVyaW9kLT5lbmRhdHRudW0gPD0gMCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04p LAorCQkJCSBlcnJtc2coImNhbm5vdCB1c2Ugc3lzdGVtIGNvbHVtbiBcIiVzXCIgaW4gcGVyaW9k IiwKKwkJCQkJCXBlcmlvZC0+ZW5kY29sbmFtZSkpKTsKKworCS8qIEJvdGggY29sdW1ucyBtdXN0 IGJlIG9mIHNhbWUgdHlwZSAqLworCWlmIChwZXJpb2QtPmNvbHR5cGlkICE9IGF0dHR1cGxlLT5h dHR0eXBpZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBF X01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9k IG11c3QgYmUgb2Ygc2FtZSB0eXBlIikpKTsKKworCS8qIEJvdGggY29sdW1ucyBtdXN0IGhhdmUg dGhlIHNhbWUgY29sbGF0aW9uICovCisJaWYgKGF0dGNvbGxhdGlvbiAhPSBhdHR0dXBsZS0+YXR0 Y29sbGF0aW9uKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ09MTEFU SU9OX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVy aW9kIG11c3QgaGF2ZSBzYW1lIGNvbGxhdGlvbiIpKSk7CisKKwkvKiBHZXQgdGhlIHJhbmdlIHR5 cGUgYmFzZWQgb24gdGhlIHN0YXJ0L2VuZCBjb2xzIG9yIHRoZSB1c2VyJ3MgY2hvaWNlICovCisJ cGVyaW9kLT5ybmd0eXBpZCA9IGNob29zZV9yYW5nZXR5cGVfZm9yX3BlcmlvZChwZXJpb2QpOwor CisJLyogSWYgdGhlIEdFTkVSQVRFRCBjb2x1bW5zIHNob3VsZCBhbHJlYWR5IGV4aXN0LCBtYWtl IHN1cmUgaXQgaXMgc2Vuc2libGUuICovCisJaWYgKHBlcmlvZC0+Y29sZXhpc3RzKQorCXsKKwkJ SGVhcFR1cGxlIHJuZ3R1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5QXR0TmFtZShSZWxhdGlvbkdl dFJlbGlkKHJlbCksIHBlcmlvZC0+cGVyaW9kbmFtZSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxp ZChybmd0dXBsZSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9u IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lLCBSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJp YnV0ZSkgR0VUU1RSVUNUKHJuZ3R1cGxlKTsKKworCQkvKgorCQkgKiBMb3RzIHRvIGNoZWNrIGhl cmU6CisJCSAqIEl0IG11c3QgYmUgR0VORVJBVEVEIEFMV0FZUywKKwkJICogaXQgbXVzdCBoYXZl IHRoZSByaWdodCBleHByZXNzaW9uLAorCQkgKiBpdCBtdXN0IGJlIHRoZSByaWdodCB0eXBlLAor CQkgKiBpdCBtdXN0IGJlIE5PVCBOVUxMLAorCQkgKiBpdCBtdXN0IG5vdCBiZSBpbmhlcml0ZWQu CisJCSAqLworCQlpZiAoYXR0dHVwbGUtPmF0dGdlbmVyYXRlZCA9PSAnXDAnKQorCQkJZXJlcG9y dChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbiIs IHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlpZiAoYXR0dHVwbGUtPmF0dGdlbmVyYXRlZCAh PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2co IlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIG5vdCBTVE9SRUQiLCBw ZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJLy8gVE9ETzogY2hlY2sgdGhlIEdFTkVSQVRFRCBl eHByZXNzaW9uIGFsc28uCisKKwkJaWYgKCFhdHR0dXBsZS0+YXR0bm90bnVsbCAmJiAhSXNCaW5h cnlVcGdyYWRlKQorCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBn ZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkp OworCisJCWlmIChwZXJpb2QtPnJuZ3R5cGlkICE9IGF0dHR1cGxlLT5hdHR0eXBpZCkKKwkJCWVy ZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3 aXRoIHRoZSB3cm9uZyB0eXBlIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWlmICghYXR0 dHVwbGUtPmF0dGlzbG9jYWwpCisJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMg dXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBpbmhlcml0ZWQiLCBwZXJpb2QtPnBlcmlv ZG5hbWUpKSk7CisKKwkJcGVyaW9kLT5ybmdhdHRudW0gPSBhdHR0dXBsZS0+YXR0bnVtOworCisJ CWhlYXBfZnJlZXR1cGxlKHJuZ3R1cGxlKTsKKwl9CisKKwloZWFwX2ZyZWV0dXBsZShzdGFydHR1 cGxlKTsKKwloZWFwX2ZyZWV0dXBsZShlbmR0dXBsZSk7Cit9CisKKy8qCisgKiBjaG9vc2VfcmFu Z2V0eXBlX2Zvcl9wZXJpb2QKKyAqCisgKiBGaW5kIGEgc3VpdGFibGUgcmFuZ2UgdHlwZSBmb3Ig b3BlcmF0aW9ucyBpbnZvbHZpbmcgdGhpcyBwZXJpb2QuCisgKiBVc2UgdGhlIHJhbmdldHlwZSBv cHRpb24gaWYgcHJvdmlkZWQsIG90aGVyd2lzZSB0cnkgdG8gZmluZCBhCisgKiBub24tYW1iaWd1 b3VzIGV4aXN0aW5nIHR5cGUuCisgKi8KK09pZAorY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVyaW9k KFBlcmlvZERlZiAqcGVyaW9kKQoreworCU9pZAlybmd0eXBpZDsKKworCWlmIChwZXJpb2QtPnJh bmdldHlwZW5hbWUgIT0gTlVMTCkKKwl7CisJCS8qIE1ha2Ugc3VyZSBpdCBleGlzdHMgKi8KKwkJ cm5ndHlwaWQgPSBUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQocGVyaW9kLT5yYW5nZXR5cGVuYW1l LCBmYWxzZSk7CisJCWlmIChybmd0eXBpZCA9PSBJbnZhbGlkT2lkKQorCQkJZXJlcG9ydChFUlJP UiwgKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygiUmFu Z2UgdHlwZSAlcyBub3QgZm91bmQiLCBwZXJpb2QtPnJhbmdldHlwZW5hbWUpKSk7CisKKwkJLyog TWFrZSBzdXJlIGl0IGlzIGEgcmFuZ2UgdHlwZSAqLworCQlpZiAoIXR5cGVfaXNfcmFuZ2Uocm5n dHlwaWQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coIlR5cGUgJXMgaXMgbm90IGEgcmFuZ2UgdHlwZSIs IHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSkpKTsKKworCQkvKiBNYWtlIHN1cmUgaXQgbWF0Y2hlcyB0 aGUgY29sdW1uIHR5cGUgKi8KKwkJaWYgKGdldF9yYW5nZV9zdWJ0eXBlKHJuZ3R5cGlkKSAhPSBw ZXJpb2QtPmNvbHR5cGlkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coIlJhbmdlIHR5cGUgJXMgZG9lcyBu b3QgbWF0Y2ggY29sdW1uIHR5cGUgJXMiLAorCQkJCQkJIHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSwK KwkJCQkJCSBmb3JtYXRfdHlwZV9iZShwZXJpb2QtPmNvbHR5cGlkKSkpKTsKKwl9CisJZWxzZQor CXsKKwkJcm5ndHlwaWQgPSBnZXRfc3VidHlwZV9yYW5nZShwZXJpb2QtPmNvbHR5cGlkKTsKKwkJ aWYgKHJuZ3R5cGlkID09IEludmFsaWRPaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJubyByYW5nZSB0 eXBlIGZvciAlcyBmb3VuZCBmb3IgcGVyaW9kICVzIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShw ZXJpb2QtPmNvbHR5cGlkKSwKKwkJCQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUpLAorCQkJCQkgZXJy aGludCgiWW91IGNhbiBkZWZpbmUgYSBjdXN0b20gcmFuZ2UgdHlwZSB3aXRoIENSRUFURSBUWVBF IikpKTsKKworCX0KKworCXJldHVybiBybmd0eXBpZDsKK30KKworc3RhdGljIHZvaWQKK0FkZFJl bGF0aW9uTmV3UGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpCit7CisJUmVs YXRpb24JYXR0cmVsYXRpb247CisJT2lkCQkJY29ub2lkOworCUNvbnN0cmFpbnQgKmNvbnN0cjsK KwlMaXN0CSAgICpuZXdjb25zdHJzOworCisJYXR0cmVsYXRpb24gPSB0YWJsZV9vcGVuKEF0dHJp YnV0ZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyogRmluZCB0aGUgR0VORVJB VEVEIHJhbmdlIGNvbHVtbiAqLworCisJcGVyaW9kLT5ybmdhdHRudW0gPSBnZXRfYXR0bnVtKFJl bGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5wZXJpb2RuYW1lKTsKKwlpZiAocGVyaW9kLT5y bmdhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJCWVsb2coRVJST1IsICJtaXNzaW5nIGF0 dHJpYnV0ZSAlcyIsIHBlcmlvZC0+cGVyaW9kbmFtZSk7CisKKwkvKiBUaGUgcGFyc2VyIGhhcyBh bHJlYWR5IGZvdW5kIHBlcmlvZC0+Y29sdHlwaWQgKi8KKworCWNvbnN0ciA9IG1ha2VfY29uc3Ry YWludF9mb3JfcGVyaW9kKHJlbCwgcGVyaW9kKTsKKwluZXdjb25zdHJzID0gQWRkUmVsYXRpb25O ZXdDb25zdHJhaW50cyhyZWwsIE5JTCwgbGlzdF9tYWtlMShjb25zdHIpLCBmYWxzZSwgdHJ1ZSwg dHJ1ZSwgTlVMTCk7CisJY29ub2lkID0gKChDb29rZWRDb25zdHJhaW50ICopIGxpbml0aWFsKG5l d2NvbnN0cnMpKS0+Y29ub2lkOworCisJLyogU2F2ZSBpdCAqLworCVN0b3JlUGVyaW9kKHJlbCwg cGVyaW9kLT5wZXJpb2RuYW1lLCBwZXJpb2QtPnN0YXJ0YXR0bnVtLCBwZXJpb2QtPmVuZGF0dG51 bSwgcGVyaW9kLT5ybmdhdHRudW0sIGNvbm9pZCk7CisKKwl0YWJsZV9jbG9zZShhdHRyZWxhdGlv biwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisKIC8qCiAgKiBFbWl0IHRoZSByaWdodCBlcnJvciBv ciB3YXJuaW5nIG1lc3NhZ2UgZm9yIGEgIkRST1AiIGNvbW1hbmQgaXNzdWVkIG9uIGEKICAqIG5v bi1leGlzdGVudCByZWxhdGlvbgpAQCAtMzExMyw2ICszNTIzLDE2OCBAQCBNZXJnZUF0dHJpYnV0 ZXMoTGlzdCAqY29sdW1ucywgY29uc3QgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNl LAogfQogCiAKKy8qLS0tLS0tLS0tLQorICogTWVyZ2VQZXJpb2RzCisgKgkJUmV0dXJucyBuZXcg cGVyaW9kIGxpc3QgZ2l2ZW4gaW5pdGlhbCBwZXJpb2RzIGFuZCBzdXBlcmNsYXNzZXMuCisgKgor ICogRm9yIG5vdyB3ZSBkb24ndCBzdXBwb3J0IGluaGVyaXRlbmNlIHdpdGggUEVSSU9EcywKKyAq IGJ1dCB3ZSBtaWdodCBtYWtlIGl0IHdvcmsgZXZlbnR1YWxseS4KKyAqCisgKiBXZSBjYW4gb21p dCBsb3RzIG9mIGNoZWNrcyBoZXJlIGFuZCBhc3N1bWUgTWVyZ2VBdHRyaWJ1dGVzIGFscmVhZHkg ZGlkIHRoZW0sCisgKiBmb3IgZXhhbXBsZSB0aGF0IGNoaWxkICYgcGFyZW50cyBhcmUgbm90IGEg bWl4IG9mIHBlcm1hbmVudCBhbmQgdGVtcC4KKyAqLworc3RhdGljIExpc3QgKgorTWVyZ2VQZXJp b2RzKGNoYXIgKnJlbG5hbWUsIExpc3QgKnBlcmlvZHMsIExpc3QgKnRhYmxlRWx0cywgTGlzdCAq c3VwZXJzKQoreworCUxpc3RDZWxsICAgKmVudHJ5OworCisJLyogSWYgd2UgaGF2ZSBhIFBFUklP RCB0aGVuIHN1cGVycyBtdXN0IGJlIGVtcHR5LiAqLworCisJaWYgKGxpc3RfbGVuZ3RoKHBlcmlv ZHMpID4gMCAmJiBsaXN0X2xlbmd0aChzdXBlcnMpID4gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygi SW5oZXJpdGluZyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QiKSkp OworCisJLyogSWYgYW55IHBhcmVudCB0YWJsZSBoYXMgYSBQRVJJT0QsIHRoZW4gZmFpbC4gKi8K KworCWZvcmVhY2goZW50cnksIHN1cGVycykKKwl7CisJCU9pZAkJCXBhcmVudCA9IGxmaXJzdF9v aWQoZW50cnkpOworCQlSZWxhdGlvbglyZWxhdGlvbjsKKwkJUmVsYXRpb24JcGdfcGVyaW9kOwor CQlTeXNTY2FuRGVzYyBzY2FuOworCQlTY2FuS2V5RGF0YSBza2V5WzFdOworCQlIZWFwVHVwbGUJ dHVwbGU7CisKKwkJLyogY2FsbGVyIGFscmVhZHkgZ290IGxvY2sgKi8KKwkJcmVsYXRpb24gPSB0 YWJsZV9vcGVuKHBhcmVudCwgTm9Mb2NrKTsKKwkJcGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJp b2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCVNjYW5LZXlJbml0KCZza2V5WzBd LAorCQkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVt YmVyLCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERhdHVtKHBhcmVudCkpOworCisJCXNjYW4g PSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfcGVyaW9kLCBQZXJpb2RSZWxpZE5hbWVJbmRleElkLCB0 cnVlLAorCQkJCQkJCQkgIE5VTEwsIDEsIHNrZXkpOworCisJCWlmIChIZWFwVHVwbGVJc1ZhbGlk KHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2co IkluaGVyaXRpbmcgZnJvbSBhIHRhYmxlIHdpdGggYSBQRVJJT0QgaXMgbm90IHN1cHBvcnRlZCIp KSk7CisKKwkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJdGFibGVfY2xvc2UocGdfcGVyaW9k LCBBY2Nlc3NTaGFyZUxvY2spOworCQl0YWJsZV9jbG9zZShyZWxhdGlvbiwgTm9Mb2NrKTsKKwl9 CisKKwkvKgorCSAqIEZpbmQgdGhlIHN0YXJ0ICYgZW5kIGNvbHVtbnMgYW5kIGdldCB0aGVpciBh dHRubyBhbmQgdHlwZS4KKwkgKiBJbiB0aGUgc2FtZSBwYXNzLCBtYWtlIHN1cmUgdGhlIHBlcmlv ZCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggYW55IGNvbHVtbiBuYW1lcy4KKwkgKiBBbHNvIG1ha2Ug c3VyZSB0aGUgc2FtZSBwZXJpb2QgbmFtZSBpc24ndCB1c2VkIG1vcmUgdGhhbiBvbmNlLgorCSAq LworCWZvcmVhY2ggKGVudHJ5LCBwZXJpb2RzKQorCXsKKwkJUGVyaW9kRGVmICpwZXJpb2QgPSBs Zmlyc3QoZW50cnkpOworCQlMaXN0Q2VsbCAqZW50cnkyOworCQlpbnQgaSA9IDE7CisJCU9pZCBz dGFydGNvbHR5cGlkID0gSW52YWxpZE9pZDsKKwkJT2lkIGVuZGNvbHR5cGlkID0gSW52YWxpZE9p ZDsKKwkJT2lkCXN0YXJ0Y29sY29sbGF0aW9uID0gSW52YWxpZE9pZDsKKwkJT2lkCWVuZGNvbGNv bGxhdGlvbiA9IEludmFsaWRPaWQ7CisKKwkJcGVyaW9kLT5zdGFydGF0dG51bSA9IEludmFsaWRB dHRyTnVtYmVyOworCQlwZXJpb2QtPmVuZGF0dG51bSA9IEludmFsaWRBdHRyTnVtYmVyOworCisJ CWlmIChTeXN0ZW1BdHRyaWJ1dGVCeU5hbWUocGVyaW9kLT5wZXJpb2RuYW1lKSAhPSBOVUxMKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1O KSwKKwkJCQkJIGVycm1zZygicGVyaW9kIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgc3lz dGVtIGNvbHVtbiBuYW1lIiwKKwkJCQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJZm9y ZWFjaCAoZW50cnkyLCBwZXJpb2RzKQorCQl7CisJCQlQZXJpb2REZWYgKnBlcmlvZDIgPSBsZmly c3QoZW50cnkyKTsKKworCQkJaWYgKHBlcmlvZCAhPSBwZXJpb2QyICYmIHN0cmNtcChwZXJpb2Qt PnBlcmlvZG5hbWUsIHBlcmlvZDItPnBlcmlvZG5hbWUpID09IDApCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCQkgZXJy bXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlIiwKKwkJCQkJ CQkJcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCQl9CisKKwkJZm9yZWFjaCAoZW50cnkyLCB0YWJs ZUVsdHMpCisJCXsKKwkJCUNvbHVtbkRlZiAqY29sID0gbGZpcnN0KGVudHJ5Mik7CisJCQlpbnQz MglhdHR0eXBtb2Q7CisJCQlBY2xSZXN1bHQgYWNscmVzdWx0OworCisJCQlpZiAoIXBlcmlvZC0+ Y29sZXhpc3RzICYmIHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsIGNvbC0+Y29sbmFtZSkgPT0g MCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVf Q09MVU1OKSwKKwkJCQkJCSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0 aCBhIGNvbHVtbiBuYW1lIiwKKwkJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQlp ZiAoc3RyY21wKHBlcmlvZC0+c3RhcnRjb2xuYW1lLCBjb2wtPmNvbG5hbWUpID09IDApCisJCQl7 CisJCQkJcGVyaW9kLT5zdGFydGF0dG51bSA9IGk7CisKKwkJCQl0eXBlbmFtZVR5cGVJZEFuZE1v ZChOVUxMLCBjb2wtPnR5cGVOYW1lLCAmc3RhcnRjb2x0eXBpZCwgJmF0dHR5cG1vZCk7CisKKwkJ CQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVHlwZVJlbGF0aW9uSWQsIHN0YXJ0Y29sdHlw aWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0LCBzdGFydGNvbHR5cGlk KTsKKworCQkJCXN0YXJ0Y29sY29sbGF0aW9uID0gR2V0Q29sdW1uRGVmQ29sbGF0aW9uKE5VTEws IGNvbCwgc3RhcnRjb2x0eXBpZCk7CisJCQl9CisKKwkJCWlmIChzdHJjbXAocGVyaW9kLT5lbmRj b2xuYW1lLCBjb2wtPmNvbG5hbWUpID09IDApCisJCQl7CisJCQkJcGVyaW9kLT5lbmRhdHRudW0g PSBpOworCisJCQkJdHlwZW5hbWVUeXBlSWRBbmRNb2QoTlVMTCwgY29sLT50eXBlTmFtZSwgJmVu ZGNvbHR5cGlkLCAmYXR0dHlwbW9kKTsKKworCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVj ayhUeXBlUmVsYXRpb25JZCwgZW5kY29sdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOwor CQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yX3R5 cGUoYWNscmVzdWx0LCBlbmRjb2x0eXBpZCk7CisKKwkJCQllbmRjb2xjb2xsYXRpb24gPSBHZXRD b2x1bW5EZWZDb2xsYXRpb24oTlVMTCwgY29sLCBlbmRjb2x0eXBpZCk7CisJCQl9CisKKwkJCWkr KzsKKwkJfQorCisJCS8qIERpZCB3ZSBmaW5kIHRoZSBjb2x1bW5zPyAqLworCQlpZiAocGVyaW9k LT5zdGFydGF0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlw ZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcmVsbmFtZSkpKTsKKwkJaWYgKHBlcmlvZC0+ZW5kYXR0bnVt ID09IEludmFsaWRBdHRyTnVtYmVyKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBv ZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXBlcmlvZC0+ZW5kY29s bmFtZSwgcmVsbmFtZSkpKTsKKworCQkvKiBCb3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBzYW1lIHR5 cGUgKi8KKwkJaWYgKHN0YXJ0Y29sdHlwaWQgIT0gZW5kY29sdHlwaWQpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVy cm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGJlIG9mIHNhbWUgdHlw ZSIpKSk7CisKKwkJLyogQm90aCBjb2x1bW5zIG11c3QgaGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24g Ki8KKwkJaWYgKHN0YXJ0Y29sY29sbGF0aW9uICE9IGVuZGNvbGNvbGxhdGlvbikKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfQ09MTEFUSU9OX01JU01BVENIKSwKKwkJ CQkJIGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGhhdmUgc2Ft ZSBjb2xsYXRpb24iKSkpOworCisJCXBlcmlvZC0+Y29sdHlwaWQgPSBzdGFydGNvbHR5cGlkOwor CQlwZXJpb2QtPnJuZ3R5cGlkID0gY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVyaW9kKHBlcmlvZCk7 CisJfQorCisJcmV0dXJuIHBlcmlvZHM7Cit9CisKIC8qCiAgKiBNZXJnZUNoZWNrQ29uc3RyYWlu dAogICoJCVRyeSB0byBtZXJnZSBhbiBpbmhlcml0ZWQgQ0hFQ0sgY29uc3RyYWludCB3aXRoIHBy ZXZpb3VzIG9uZXMKQEAgLTQ0NDUsMTIgKzUwMTcsMTIgQEAgQWx0ZXJUYWJsZShBbHRlclRhYmxl U3RtdCAqc3RtdCwgTE9DS01PREUgbG9ja21vZGUsCiAgKiBleGlzdGluZyBxdWVyeSBwbGFucy4g IE9uIHRoZSBhc3N1bXB0aW9uIGl0J3Mgbm90IHVzZWQgZm9yIHN1Y2gsIHdlCiAgKiBkb24ndCBo YXZlIHRvIHJlamVjdCBwZW5kaW5nIEFGVEVSIHRyaWdnZXJzLCBlaXRoZXIuCiAgKgotICogQWxz bywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhbiBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQsIHRoaXMg Y2Fubm90IGJlCisgKiBBbHNvLCBpZiB5b3UgZG9uJ3QgcGFzcyBhbiBBbHRlclRhYmxlVXRpbGl0 eUNvbnRleHQsIHRoaXMgY2Fubm90IGJlCiAgKiB1c2VkIGZvciBhbnkgc3ViY29tbWFuZCB0eXBl cyB0aGF0IHJlcXVpcmUgcGFyc2UgdHJhbnNmb3JtYXRpb24gb3IKICAqIGNvdWxkIGdlbmVyYXRl IHN1YmNvbW1hbmRzIHRoYXQgaGF2ZSB0byBiZSBwYXNzZWQgdG8gUHJvY2Vzc1V0aWxpdHkuCiAg Ki8KIHZvaWQKLUFsdGVyVGFibGVJbnRlcm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wg cmVjdXJzZSkKK0FsdGVyVGFibGVJbnRlcm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wg cmVjdXJzZSwgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KQogewogCVJlbGF0aW9u CXJlbDsKIAlMT0NLTU9ERQlsb2NrbW9kZSA9IEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoY21kcyk7 CkBAIC00NDU5LDcgKzUwMzEsNyBAQCBBbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0 ICpjbWRzLCBib29sIHJlY3Vyc2UpCiAKIAlFdmVudFRyaWdnZXJBbHRlclRhYmxlUmVsaWQocmVs aWQpOwogCi0JQVRDb250cm9sbGVyKE5VTEwsIHJlbCwgY21kcywgcmVjdXJzZSwgbG9ja21vZGUs IE5VTEwpOworCUFUQ29udHJvbGxlcihOVUxMLCByZWwsIGNtZHMsIHJlY3Vyc2UsIGxvY2ttb2Rl LCBjb250ZXh0KTsKIH0KIAogLyoKQEAgLTQ1NTIsNiArNTEyNCw4IEBAIEFsdGVyVGFibGVHZXRM b2NrTGV2ZWwoTGlzdCAqY21kcykKIAkJCWNhc2UgQVRfRW5hYmxlUmVwbGljYVJ1bGU6CS8qIG1h eSBjaGFuZ2UgU0VMRUNUIHJ1bGVzICovCiAJCQljYXNlIEFUX0VuYWJsZVJ1bGU6IC8qIG1heSBj aGFuZ2UgU0VMRUNUIHJ1bGVzICovCiAJCQljYXNlIEFUX0Rpc2FibGVSdWxlOgkvKiBtYXkgY2hh bmdlIFNFTEVDVCBydWxlcyAqLworCQkJY2FzZSBBVF9BZGRQZXJpb2Q6IC8qIHNoYXJlcyBuYW1l c3BhY2Ugd2l0aCBjb2x1bW5zLCBhZGRzIGNvbnN0cmFpbnQgKi8KKwkJCWNhc2UgQVRfRHJvcFBl cmlvZDoKIAkJCQljbWRfbG9ja21vZGUgPSBBY2Nlc3NFeGNsdXNpdmVMb2NrOwogCQkJCWJyZWFr OwogCkBAIC00ODY4LDYgKzU0NDIsMTQgQEAgQVRQcmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0 aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJl Y3Vyc2VzICovCiAJCQlwYXNzID0gQVRfUEFTU19BRERfT1RIRVJDT05TVFI7CiAJCQlicmVhazsK KwkJY2FzZSBBVF9BZGRQZXJpb2Q6IC8qIEFMVEVSIFRBQkxFIC4uLiBBREQgUEVSSU9EIEZPUiBu YW1lIChzdGFydCwgZW5kKSAqLworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUs IHJlbCwgQVRUX1RBQkxFKTsKKwkJCXBhc3MgPSBBVF9QQVNTX0FERF9QRVJJT0Q7CisJCQlicmVh azsKKwkJY2FzZSBBVF9Ecm9wUGVyaW9kOiAvKiBBTFRFUiBUQUJMRSAuLi4gRFJPUCBQRVJJT0Qg Rk9SIG5hbWUgKi8KKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsIEFU VF9UQUJMRSk7CisJCQlwYXNzID0gQVRfUEFTU19EUk9QOworCQkJYnJlYWs7CiAJCWNhc2UgQVRf QWRkSWRlbnRpdHk6CiAJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBB VFRfVEFCTEUgfCBBVFRfVklFVyB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKIAkJCS8qIFNldCB1cCBy ZWN1cnNpb24gZm9yIHBoYXNlIDI7IG5vIG90aGVyIHByZXAgbmVlZGVkICovCkBAIC01Mjc1LDYg KzU4NTcsMTQgQEAgQVRFeGVjQ21kKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRh YiwKIAkJY2FzZSBBVF9Db29rZWRDb2x1bW5EZWZhdWx0OgkvKiBhZGQgYSBwcmUtY29va2VkIGRl ZmF1bHQgKi8KIAkJCWFkZHJlc3MgPSBBVEV4ZWNDb29rZWRDb2x1bW5EZWZhdWx0KHJlbCwgY21k LT5udW0sIGNtZC0+ZGVmKTsKIAkJCWJyZWFrOworCQljYXNlIEFUX0FkZFBlcmlvZDoKKwkJCWFk ZHJlc3MgPSBBVEV4ZWNBZGRQZXJpb2QocmVsLCAoUGVyaW9kRGVmICopIGNtZC0+ZGVmLCBjb250 ZXh0KTsKKwkJCWJyZWFrOworCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQlBVEV4ZWNEcm9wUGVy aW9kKHJlbCwgY21kLT5uYW1lLCBjbWQtPmJlaGF2aW9yLAorCQkJCQkJCQkgZmFsc2UsIGZhbHNl LAorCQkJCQkJCQkgY21kLT5taXNzaW5nX29rKTsKKwkJCWJyZWFrOwogCQljYXNlIEFUX0FkZElk ZW50aXR5OgogCQkJY21kID0gQVRQYXJzZVRyYW5zZm9ybUNtZCh3cXVldWUsIHRhYiwgcmVsLCBj bWQsIGZhbHNlLCBsb2NrbW9kZSwKIAkJCQkJCQkJCSAgY3VyX3Bhc3MsIGNvbnRleHQpOwpAQCAt NjQyMiw2ICs3MDEyLDggQEAgYWx0ZXJfdGFibGVfdHlwZV90b19zdHJpbmcoQWx0ZXJUYWJsZVR5 cGUgY21kdHlwZSkKIAkJY2FzZSBBVF9BZGRDb2x1bW46CiAJCWNhc2UgQVRfQWRkQ29sdW1uVG9W aWV3OgogCQkJcmV0dXJuICJBREQgQ09MVU1OIjsKKwkJY2FzZSBBVF9BZGRQZXJpb2Q6CisJCQly ZXR1cm4gIkFERCBQRVJJT0QiOwogCQljYXNlIEFUX0NvbHVtbkRlZmF1bHQ6CiAJCWNhc2UgQVRf Q29va2VkQ29sdW1uRGVmYXVsdDoKIAkJCXJldHVybiAiQUxURVIgQ09MVU1OIC4uLiBTRVQgREVG QVVMVCI7CkBAIC02NDQ3LDYgKzcwMzksOCBAQCBhbHRlcl90YWJsZV90eXBlX3RvX3N0cmluZyhB bHRlclRhYmxlVHlwZSBjbWR0eXBlKQogCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4gLi4uIFNFVCBD T01QUkVTU0lPTiI7CiAJCWNhc2UgQVRfRHJvcENvbHVtbjoKIAkJCXJldHVybiAiRFJPUCBDT0xV TU4iOworCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQlyZXR1cm4gIkRST1AgUEVSSU9EIjsKIAkJ Y2FzZSBBVF9BZGRJbmRleDoKIAkJY2FzZSBBVF9SZUFkZEluZGV4OgogCQkJcmV0dXJuIE5VTEw7 CQkvKiBub3QgcmVhbCBncmFtbWFyICovCkBAIC03NDIwLDE0ICs4MDE0LDI5IEBAIEFURXhlY0Fk ZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIC8qCiAgKiBJZiBhIG5ldyBvciByZW5hbWVkIGNvbHVtbiB3aWxsIGNvbGxpZGUgd2l0aCB0 aGUgbmFtZSBvZiBhbiBleGlzdGluZwogICogY29sdW1uIGFuZCBpZl9ub3RfZXhpc3RzIGlzIGZh bHNlIHRoZW4gZXJyb3Igb3V0LCBlbHNlIGRvIG5vdGhpbmcuCisgKgorICogU2VlIGFsc28gY2hl Y2tfZm9yX3BlcmlvZF9uYW1lX2NvbGxpc2lvbi4KICAqLwogc3RhdGljIGJvb2wKIGNoZWNrX2Zv cl9jb2x1bW5fbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1l LAogCQkJCQkJCQlib29sIGlmX25vdF9leGlzdHMpCiB7Ci0JSGVhcFR1cGxlCWF0dFR1cGxlOwor CUhlYXBUdXBsZQlhdHRUdXBsZSwgcGVyVHVwbGU7CiAJaW50CQkJYXR0bnVtOwogCisJLyogSWYg dGhlIG5hbWUgZXhpc3RzIGFzIGEgcGVyaW9kLCB3ZSdyZSBkb25lLiAqLworCXBlclR1cGxlID0g U2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShS ZWxhdGlvbkdldFJlbGlkKHJlbCkpLAorCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShjb2xuYW1l KSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQocGVyVHVwbGUpKQorCXsKKwkJUmVsZWFzZVN5c0Nh Y2hlKHBlclR1cGxlKTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RV UExJQ0FURV9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvbHVtbiBuYW1lIFwiJXNcIiBjb25mbGlj dHMgd2l0aCBhIHBlcmlvZCBuYW1lIiwKKwkJCQkJCWNvbG5hbWUpKSk7CisJfQorCiAJLyoKIAkg KiB0aGlzIHRlc3QgaXMgZGVsaWJlcmF0ZWx5IG5vdCBhdHRpc2Ryb3BwZWQtYXdhcmUsIHNpbmNl IGlmIG9uZSB0cmllcyB0bwogCSAqIGFkZCBhIGNvbHVtbiBtYXRjaGluZyBhIGRyb3BwZWQgY29s dW1uIG5hbWUsIGl0J3MgZ29ubmEgZmFpbCBhbnl3YXkuCkBAIC03NDcxLDYgKzgwODAsNzcgQEAg Y2hlY2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KmNvbG5hbWUsCiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qCisgKiBJZiBhIG5ldyBwZXJpb2QgbmFt ZSB3aWxsIGNvbGxpZGUgd2l0aCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjb2x1bW4gb3IKKyAq IHBlcmlvZCBbYW5kIGlmX25vdF9leGlzdHMgaXMgZmFsc2VdIHRoZW4gZXJyb3Igb3V0LCBlbHNl IGRvIG5vdGhpbmcuCisgKgorICogU2VlIGFsc28gY2hlY2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxp c2lvbi4KKyAqLworc3RhdGljIGJvb2wKK2NoZWNrX2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24o UmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJuYW1lLAorCQkJCQkJCQlib29sIGNvbGV4aXN0 cywgYm9vbCBpZl9ub3RfZXhpc3RzKQoreworCUhlYXBUdXBsZQlhdHRUdXBsZSwgcGVyVHVwbGU7 CisJaW50CQkJYXR0bnVtOworCisJLyogVE9ETzogaW1wbGVtZW50IElGIFtOT1RdIEVYSVNUUyBm b3IgcGVyaW9kcyAqLworCUFzc2VydCghaWZfbm90X2V4aXN0cyk7CisKKwkvKiBJZiB0aGVyZSBp cyBhbHJlYWR5IGEgcGVyaW9kIHdpdGggdGhpcyBuYW1lLCB0aGVuIHdlJ3JlIGRvbmUuICovCisJ cGVyVHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCQkgICBPYmplY3RJ ZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSksCisJCQkJCQkJICAgUG9pbnRlckdldERh dHVtKHBlcm5hbWUpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZChwZXJUdXBsZSkpCisJeworCQlp ZiAoaWZfbm90X2V4aXN0cykKKwkJeworCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cGxlKTsKKwor CQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVN TiksCisJCQkJCSBlcnJtc2coInBlcmlvZCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGFscmVh ZHkgZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJcGVybmFtZSwgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSkpKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJw ZXJpb2QgXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQlw ZXJuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCX0KKworCS8qCisJICog dGhpcyB0ZXN0IGlzIGRlbGliZXJhdGVseSBub3QgYXR0aXNkcm9wcGVkLWF3YXJlLCBzaW5jZSBp ZiBvbmUgdHJpZXMgdG8KKwkgKiBhZGQgYSBjb2x1bW4gbWF0Y2hpbmcgYSBkcm9wcGVkIGNvbHVt biBuYW1lLCBpdCdzIGdvbm5hIGZhaWwgYW55d2F5LgorCSAqLworCWF0dFR1cGxlID0gU2VhcmNo U3lzQ2FjaGUyKEFUVE5BTUUsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdl dFJlbGlkKHJlbCkpLAorCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShwZXJuYW1lKSk7CisJaWYg KEhlYXBUdXBsZUlzVmFsaWQoYXR0VHVwbGUpKQorCXsKKwkJYXR0bnVtID0gKChGb3JtX3BnX2F0 dHJpYnV0ZSkgR0VUU1RSVUNUKGF0dFR1cGxlKSktPmF0dG51bTsKKwkJUmVsZWFzZVN5c0NhY2hl KGF0dFR1cGxlKTsKKworCQkvKgorCQkgKiBXZSB0aHJvdyBhIGRpZmZlcmVudCBlcnJvciBtZXNz YWdlIGZvciBjb25mbGljdHMgd2l0aCBzeXN0ZW0gY29sdW1uCisJCSAqIG5hbWVzLCBzaW5jZSB0 aGV5IGFyZSBub3JtYWxseSBub3Qgc2hvd24gYW5kIHRoZSB1c2VyIG1pZ2h0IG90aGVyd2lzZQor CQkgKiBiZSBjb25mdXNlZCBhYm91dCB0aGUgcmVhc29uIGZvciB0aGUgY29uZmxpY3QuCisJCSAq LworCQlpZiAoYXR0bnVtIDw9IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVz XCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29sdW1uIG5hbWUiLAorCQkJCQkJCXBlcm5hbWUp KSk7CisJCWlmICghY29sZXhpc3RzKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygicGVyaW9kIG5hbWUgXCIl c1wiIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUiLAorCQkJCQkJCXBlcm5hbWUpKSk7CisJ fQorCisJcmV0dXJuIHRydWU7Cit9CisKIC8qCiAgKiBJbnN0YWxsIGEgY29sdW1uJ3MgZGVwZW5k ZW5jeSBvbiBpdHMgZGF0YXR5cGUuCiAgKi8KQEAgLTgxMjIsNiArODgwMiwxNTcgQEAgQVRFeGVj Q29va2VkQ29sdW1uRGVmYXVsdChSZWxhdGlvbiByZWwsIEF0dHJOdW1iZXIgYXR0bnVtLAogCXJl dHVybiBhZGRyZXNzOwogfQogCisvKgorICogQUxURVIgVEFCTEUgQUREIFBFUklPRAorICoKKyAq IFJldHVybiB0aGUgYWRkcmVzcyBvZiB0aGUgcGVyaW9kLgorICovCitzdGF0aWMgT2JqZWN0QWRk cmVzcworQVRFeGVjQWRkUGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QsIEFs dGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkKK3sKKwlSZWxhdGlvbgkJYXR0cmVsYXRp b247CisJT2JqZWN0QWRkcmVzcwlhZGRyZXNzID0gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJQ29u c3RyYWludAkgICAqY29uc3RyOworCUNvbHVtbkRlZgkgICAqcmFuZ2Vjb2w7CisJT2lkCQkJCWNv bm9pZCwgcGVyaW9kb2lkOworCUxpc3QJCSAgICpjbWRzID0gTklMOworCUFsdGVyVGFibGVDbWQg ICpjbWQ7CisKKwkvKgorCSAqIFBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90IHlldCBpbXBs ZW1lbnRlZCwgYnV0IG1ha2Ugc3VyZSBubyBvbmUgdXNlcworCSAqIHRoZSBuYW1lLgorCSAqLwor CWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCAic3lzdGVtX3RpbWUiKSA9PSAwKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCQkgZXJybXNnKCJQRVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0 ZWQiKSkpOworCisJLyogUGFyc2Ugb3B0aW9ucyAqLworCXRyYW5zZm9ybVBlcmlvZE9wdGlvbnMo cGVyaW9kKTsKKworCS8qIFRoZSBwZXJpb2QgbmFtZSBtdXN0IG5vdCBhbHJlYWR5IGV4aXN0ICov CisJKHZvaWQpIGNoZWNrX2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24ocmVsLCBwZXJpb2QtPnBl cmlvZG5hbWUsIHBlcmlvZC0+Y29sZXhpc3RzLCBmYWxzZSk7CisKKwlhdHRyZWxhdGlvbiA9IHRh YmxlX29wZW4oQXR0cmlidXRlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisJVmFsaWRh dGVQZXJpb2QocmVsLCBwZXJpb2QpOworCisJLyogTWFrZSB0aGUgQ0hFQ0sgY29uc3RyYWludCAq LworCWNvbnN0ciA9IG1ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKHJlbCwgcGVyaW9kKTsKKwlj bWQgPSBtYWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwljbWQtPnN1YnR5cGUgPSBBVF9BZGRDb25z dHJhaW50OworCWNtZC0+ZGVmID0gKE5vZGUgKikgY29uc3RyOworCWNtZHMgPSBsYXBwZW5kKGNt ZHMsIGNtZCk7CisJQWx0ZXJUYWJsZUludGVybmFsKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgY21k cywgdHJ1ZSwgY29udGV4dCk7CisJY29ub2lkID0gZ2V0X3JlbGF0aW9uX2NvbnN0cmFpbnRfb2lk KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5jb25zdHJhaW50bmFtZSwgZmFsc2UpOwor CisJaWYgKCFwZXJpb2QtPmNvbGV4aXN0cykKKwl7CisJCS8qIE1ha2UgdGhlIHJhbmdlIGNvbHVt biAqLworCQlyYW5nZWNvbCA9IG1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QocGVyaW9kKTsK KwkJY21kID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7CisJCWNtZC0+c3VidHlwZSA9IEFUX0Fk ZENvbHVtbjsKKwkJY21kLT5kZWYgPSAoTm9kZSAqKSByYW5nZWNvbDsKKwkJY21kLT5uYW1lID0g cGVyaW9kLT5wZXJpb2RuYW1lOworCQljbWQtPnJlY3Vyc2UgPSBmYWxzZTsgLyogbm8sIGxldCB0 aGUgUEVSSU9EIHJlY3Vyc2UgaW5zdGVhZCAqLworCQlBbHRlclRhYmxlSW50ZXJuYWwoUmVsYXRp b25HZXRSZWxpZChyZWwpLCBsaXN0X21ha2UxKGNtZCksIHRydWUsIGNvbnRleHQpOworCQlwZXJp b2QtPnJuZ2F0dG51bSA9IGdldF9hdHRudW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2Qt PnBlcmlvZG5hbWUpOworCQlpZiAocGVyaW9kLT5ybmdhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1i ZXIpCisJCQllbG9nKEVSUk9SLCAibWlzc2luZyBhdHRyaWJ1dGUgJXMiLCBwZXJpb2QtPnBlcmlv ZG5hbWUpOworCisJfQorCisJLyogU2F2ZSB0aGUgUGVyaW9kICovCisJcGVyaW9kb2lkID0gU3Rv cmVQZXJpb2QocmVsLCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+c3RhcnRhdHRudW0sIHBl cmlvZC0+ZW5kYXR0bnVtLCBwZXJpb2QtPnJuZ2F0dG51bSwgY29ub2lkKTsKKworCU9iamVjdEFk ZHJlc3NTZXQoYWRkcmVzcywgUGVyaW9kUmVsYXRpb25JZCwgcGVyaW9kb2lkKTsKKworCXRhYmxl X2Nsb3NlKGF0dHJlbGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBhZGRyZXNz OworfQorCisvKgorICogQUxURVIgVEFCTEUgRFJPUCBQRVJJT0QKKyAqCisgKiBMaWtlIERST1Ag Q09MVU1OLCB3ZSBjYW4ndCB1c2UgdGhlIG5vcm1hbCBBTFRFUiBUQUJMRSByZWN1cnNpb24gbWVj aGFuaXNtLgorICovCitzdGF0aWMgdm9pZAorQVRFeGVjRHJvcFBlcmlvZChSZWxhdGlvbiByZWws IGNvbnN0IGNoYXIgKnBlcmlvZE5hbWUsCisJCQkJCSBEcm9wQmVoYXZpb3IgYmVoYXZpb3IsCisJ CQkJCSBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJzaW5nLAorCQkJCQkgYm9vbCBtaXNzaW5nX29r KQoreworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlGb3JtX3BnX3BlcmlvZCBwZXJpb2Q7CisJU3lz U2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXk7CisJSGVhcFR1cGxlCXR1cGxlOworCWJv b2wJCWZvdW5kID0gZmFsc2U7CisKKwkvKiBBdCB0b3AgbGV2ZWwsIHBlcm1pc3Npb24gY2hlY2sg d2FzIGRvbmUgaW4gQVRQcmVwQ21kLCBlbHNlIGRvIGl0ICovCisJaWYgKHJlY3Vyc2luZykKKwkJ QVRTaW1wbGVQZXJtaXNzaW9ucyhBVF9Ecm9wUGVyaW9kLCByZWwsIEFUVF9UQUJMRSk7CisKKwlw Z19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2sp OworCisJLyoKKwkgKiBGaW5kIGFuZCBkcm9wIHRoZSB0YXJnZXQgcGVyaW9kCisJICovCisJU2Nh bktleUluaXQoJmtleSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdl dFJlbGlkKHJlbCkpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnX3BlcmlvZCwgUGVy aW9kUmVsaWROYW1lSW5kZXhJZCwKKwkJCQkJCQkgIHRydWUsIE5VTEwsIDEsICZrZXkpOworCisJ d2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkK Kwl7CisJCU9iamVjdEFkZHJlc3MgcGVyb2JqOworCisJCXBlcmlvZCA9IChGb3JtX3BnX3Blcmlv ZCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQlpZiAoc3RyY21wKE5hbWVTdHIocGVyaW9kLT5wZXJu YW1lKSwgcGVyaW9kTmFtZSkgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFBlcmZv cm0gdGhlIGFjdHVhbCBwZXJpb2QgZGVsZXRpb24KKwkJICovCisJCXBlcm9iai5jbGFzc0lkID0g UGVyaW9kUmVsYXRpb25JZDsKKwkJcGVyb2JqLm9iamVjdElkID0gcGVyaW9kLT5vaWQ7CisJCXBl cm9iai5vYmplY3RTdWJJZCA9IDA7CisKKwkJcGVyZm9ybURlbGV0aW9uKCZwZXJvYmosIGJlaGF2 aW9yLCAwKTsKKworCQlmb3VuZCA9IHRydWU7CisKKwkJLyogcGVyaW9kIGZvdW5kIGFuZCBkcm9w cGVkIC0tIG5vIG5lZWQgdG8ga2VlcCBsb29waW5nICovCisJCWJyZWFrOworCX0KKworCXN5c3Rh YmxlX2VuZHNjYW4oc2Nhbik7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJaWYgKCFtaXNzaW5nX29r KQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5F RF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNc IiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJcGVyaW9kTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSkpKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJ CQkoZXJybXNnKCJwZXJpb2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlz dCwgc2tpcHBpbmciLAorCQkJCQkJCXBlcmlvZE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbCkpKSk7CisJCQl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CQkJcmV0dXJuOworCQl9CisJfQorCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNp dmVMb2NrKTsKK30KKwogLyoKICAqIEFMVEVSIFRBQkxFIEFMVEVSIENPTFVNTiBBREQgSURFTlRJ VFkKICAqCkBAIC05OTc2LDggKzEwODA3LDkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChM aXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlmb3Ig KGkgPSAwOyBpIDwgbnVtZmtzOyBpKyspCiAJewogCQljaGFyCQlhdHRnZW5lcmF0ZWQgPSBUdXBs ZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgZmthdHRudW1baV0gLSAxKS0+YXR0Z2Vu ZXJhdGVkOworCQlCaXRtYXBzZXQgICpwZXJpb2RzID0gZ2V0X3BlcmlvZF9hdHRub3MoUmVsYXRp b25HZXRSZWxpZChyZWwpKTsKIAotCQlpZiAoYXR0Z2VuZXJhdGVkKQorCQlpZiAoYXR0Z2VuZXJh dGVkICYmICFibXNfaXNfbWVtYmVyKGZrYXR0bnVtW2ldLCBwZXJpb2RzKSkKIAkJewogCQkJLyoK IAkJCSAqIENoZWNrIHJlc3RyaWN0aW9ucyBvbiBVUERBVEUvREVMRVRFIGFjdGlvbnMsIHBlciBT UUwgc3RhbmRhcmQKQEAgLTE0MDE4LDYgKzE0ODUwLDE2IEBAIFJlbWVtYmVyQWxsRGVwZW5kZW50 Rm9yUmVidWlsZGluZyhBbHRlcmVkVGFibGVJbmZvICp0YWIsIEFsdGVyVGFibGVUeXBlIHN1YnR5 cGUsCiAJCQkJUmVtZW1iZXJDb25zdHJhaW50Rm9yUmVidWlsZGluZyhmb3VuZE9iamVjdC5vYmpl Y3RJZCwgdGFiKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBPQ0xBU1NfUEVSSU9EOgorCQkJCWlm IChzdWJ0eXBlID09IEFUX0FsdGVyQ29sdW1uVHlwZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVy cm1zZygiY2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIHBlcmlvZCIpLAor CQkJCQkJCSBlcnJkZXRhaWwoIiVzIGRlcGVuZHMgb24gY29sdW1uIFwiJXNcIiIsCisJCQkJCQkJ CQkgICBnZXRPYmplY3REZXNjcmlwdGlvbigmZm91bmRPYmplY3QsIGZhbHNlKSwKKwkJCQkJCQkJ CSAgIGNvbE5hbWUpKSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgT0NMQVNTX1JFV1JJVEU6CiAJ CQkJLyogWFhYIHNvbWVkYXkgc2VlIGlmIHdlIGNhbiBjb3BlIHdpdGggcmV2aXNpbmcgdmlld3Mg Ki8KIAkJCQlpZiAoc3VidHlwZSA9PSBBVF9BbHRlckNvbHVtblR5cGUpCkBAIC0xNDA4Miw2ICsx NDkyNCwxNSBAQCBSZW1lbWJlckFsbERlcGVuZGVudEZvclJlYnVpbGRpbmcoQWx0ZXJlZFRhYmxl SW5mbyAqdGFiLCBBbHRlclRhYmxlVHlwZSBzdWJ0eXBlLAogCQkJCQl9CiAJCQkJCWVsc2UKIAkJ CQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIElmIHRoaXMgR0VORVJBVEVEIGNvbHVtbiBpcyBpbXBs ZW1lbnRpbmcgYSBQRVJJT0QsCisJCQkJCQkgKiBrZWVwIGdvaW5nIGFuZCB3ZSdsbCBmYWlsIGZy b20gdGhlIFBFUklPRCBpbnN0ZWFkLgorCQkJCQkJICogVGhpcyBnaXZlcyBhIG1vcmUgY2xlYXIg ZXJyb3IgbWVzc2FnZS4KKwkJCQkJCSAqLworCQkJCQkJQml0bWFwc2V0ICpwZXJpb2RhdHRzID0g Z2V0X3BlcmlvZF9hdHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKKwkJCQkJCWlmIChibXNf aXNfbWVtYmVyKGNvbC5vYmplY3RTdWJJZCwgcGVyaW9kYXR0cykpCisJCQkJCQkJYnJlYWs7CisK IAkJCQkJCS8qCiAJCQkJCQkgKiBUaGlzIG11c3QgYmUgYSByZWZlcmVuY2UgZnJvbSB0aGUgZXhw cmVzc2lvbiBvZiBhCiAJCQkJCQkgKiBnZW5lcmF0ZWQgY29sdW1uIGVsc2V3aGVyZSBpbiB0aGUg c2FtZSB0YWJsZS4KQEAgLTE1ODk2LDcgKzE2NzQ3LDcgQEAgQWx0ZXJUYWJsZU1vdmVBbGwoQWx0 ZXJUYWJsZU1vdmVBbGxTdG10ICpzdG10KQogCiAJCUV2ZW50VHJpZ2dlckFsdGVyVGFibGVTdGFy dCgoTm9kZSAqKSBzdG10KTsKIAkJLyogT0lEIGlzIHNldCBieSBBbHRlclRhYmxlSW50ZXJuYWwg Ki8KLQkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCksIGNtZHMsIGZhbHNlKTsKKwkJ QWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCksIGNtZHMsIGZhbHNlLCBOVUxMKTsKIAkJ RXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZUVuZCgpOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCmluZGV4IGJl Y2MxZmI0NTgzLi42MmM3YjE0Zjc2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtMTY0LDcgKzE2NCw3 IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihSYW5nZVZhciAqcmVsYXRpb24sIExpc3QgKnRsaXN0 LCBib29sIHJlcGxhY2UsCiAJCQl9CiAKIAkJCS8qIEV2ZW50VHJpZ2dlckFsdGVyVGFibGVTdGFy dCBjYWxsZWQgYnkgUHJvY2Vzc1V0aWxpdHlTbG93ICovCi0JCQlBbHRlclRhYmxlSW50ZXJuYWwo dmlld09pZCwgYXRjbWRzLCB0cnVlKTsKKwkJCUFsdGVyVGFibGVJbnRlcm5hbCh2aWV3T2lkLCBh dGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCQkvKiBNYWtlIHRoZSBuZXcgdmlldyBjb2x1bW5zIHZp c2libGUgKi8KIAkJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CkBAIC0xOTYsNyArMTk2LDcg QEAgRGVmaW5lVmlydHVhbFJlbGF0aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3Qs IGJvb2wgcmVwbGFjZSwKIAkJYXRjbWRzID0gbGlzdF9tYWtlMShhdGNtZCk7CiAKIAkJLyogRXZl bnRUcmlnZ2VyQWx0ZXJUYWJsZVN0YXJ0IGNhbGxlZCBieSBQcm9jZXNzVXRpbGl0eVNsb3cgKi8K LQkJQWx0ZXJUYWJsZUludGVybmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1ZSk7CisJCUFsdGVyVGFi bGVJbnRlcm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCS8qCiAJCSAqIFRo ZXJlIGlzIHZlcnkgbGl0dGxlIHRvIGRvIGhlcmUgdG8gdXBkYXRlIHRoZSB2aWV3J3MgZGVwZW5k ZW5jaWVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA5NTMzNTEw YWZmZC4uNmVhNWNiMzRmNDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CkBAIC0xMzQ3LDggKzEzNDcsNDYgQEAgRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhNb2RpZnlU YWJsZUNvbnRleHQgKmNvbnRleHQsCiAJCX0KIAogCQkvKiBzdG9yZSB0aGUgbmV3IHJhbmdlICov Ci0JCWxlZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJh dHRubyAtIDFdID0gbGVmdG92ZXI7Ci0JCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0 aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gZmFsc2U7CisJCWlmIChmb3JQb3J0aW9u T2YtPnN0YXJ0VmFyKQorCQl7CisJCQkvKiBGb3IgUEVSSU9EcyB3ZSBtdXN0IHNwbGl0IHRoZSBy YW5nZSBpbnRvIHN0YXJ0IGFuZCBlbmQgY29sdW1ucyAqLworCisJCQlSYW5nZVR5cGUgICpyID0g RGF0dW1HZXRSYW5nZVR5cGVQKGxlZnRvdmVyKTsKKwkJCVJhbmdlQm91bmQJbG93ZXI7CisJCQlS YW5nZUJvdW5kCXVwcGVyOworCQkJYm9vbAkJZW1wdHk7CisKKwkJCXJhbmdlX2Rlc2VyaWFsaXpl KHR5cGNhY2hlLCByLCAmbG93ZXIsICZ1cHBlciwgJmVtcHR5KTsKKworCQkJaWYgKGxvd2VyLmlu ZmluaXRlKQorCQkJeworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2Yt PnN0YXJ0VmFyLT52YXJhdHRubyAtIDFdID0gMDsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0c19pc251 bGxbZm9yUG9ydGlvbk9mLT5zdGFydFZhci0+dmFyYXR0bm8gLSAxXSA9IHRydWU7CisJCQl9CisJ CQllbHNlCisJCQl7CisJCQkJbGVmdG92ZXJTbG90LT50dHNfdmFsdWVzW2ZvclBvcnRpb25PZi0+ c3RhcnRWYXItPnZhcmF0dG5vIC0gMV0gPSBsb3dlci52YWw7CisJCQkJbGVmdG92ZXJTbG90LT50 dHNfaXNudWxsW2ZvclBvcnRpb25PZi0+c3RhcnRWYXItPnZhcmF0dG5vIC0gMV0gPSBmYWxzZTsK KwkJCX0KKworCQkJaWYgKHVwcGVyLmluZmluaXRlKQorCQkJeworCQkJCWxlZnRvdmVyU2xvdC0+ dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPmVuZFZhci0+dmFyYXR0bm8gLSAxXSA9IDA7CisJCQkJ bGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ZvclBvcnRpb25PZi0+ZW5kVmFyLT52YXJhdHRubyAt IDFdID0gdHJ1ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0c192 YWx1ZXNbZm9yUG9ydGlvbk9mLT5lbmRWYXItPnZhcmF0dG5vIC0gMV0gPSB1cHBlci52YWw7CisJ CQkJbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ZvclBvcnRpb25PZi0+ZW5kVmFyLT52YXJhdHRu byAtIDFdID0gZmFsc2U7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBKdXN0IHN0b3Jl IGludG8gdGhlIHJhbmdlL3doYXRldmVyIGNvbHVtbiAqLworCisJCQlsZWZ0b3ZlclNsb3QtPnR0 c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVy OworCQkJbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZh cmF0dG5vIC0gMV0gPSBmYWxzZTsKKwkJfQogCQlFeGVjTWF0ZXJpYWxpemVTbG90KGxlZnRvdmVy U2xvdCk7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZjc4YjU5ZDRmMTcuLjNkNmI1 NDM0NDkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMTYzOCw2ICsxNjM4LDkgQEAgZXhwckxv Y2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9Db25zdHJhaW50OgogCQkJbG9jID0g KChjb25zdCBDb25zdHJhaW50ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNl IFRfUGVyaW9kRGVmOgorCQkJbG9jID0gKChjb25zdCBQZXJpb2REZWYgKikgZXhwciktPmxvY2F0 aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9GdW5jdGlvblBhcmFtZXRlcjoKIAkJCS8qIGp1c3Qg dXNlIHR5cGVuYW1lJ3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigoTm9kZSAq KSAoKGNvbnN0IEZ1bmN0aW9uUGFyYW1ldGVyICopIGV4cHIpLT5hcmdUeXBlKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCmluZGV4IGVkNTVhMjUyMTk3Li4yYzJmM2M4NThjZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5j CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3N0cmF0bnVtLmgiCiAjaW5jbHVk ZSAiYWNjZXNzL3N5c2F0dHIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK QEAgLTEyNjQsNyArMTI2NSwxMSBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCWNoYXIgKnJhbmdlX25hbWUgPSBmb3JQb3J0aW9uT2YtPnJhbmdlX25h bWU7CiAJY2hhciAqcmFuZ2VfdHlwZV9uYW1lc3BhY2UgPSBOVUxMOwogCWNoYXIgKnJhbmdlX3R5 cGVfbmFtZSA9IE5VTEw7Ci0JaW50IHJhbmdlX2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJ QXR0ck51bWJlciByYW5nZV9hdHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUF0dHJOdW1iZXIg c3RhcnRfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlBdHRyTnVtYmVyIGVuZF9hdHRubyA9 IEludmFsaWRBdHRyTnVtYmVyOworCWNoYXIgKnN0YXJ0Y29sbmFtZSA9IE5VTEw7CisJY2hhciAq ZW5kY29sbmFtZSA9IE5VTEw7CiAJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKIAlPaWQJb3BjbGFz czsKIAlPaWQgb3BmYW1pbHk7CkBAIC0xMzA4LDYgKzEzMTMsNTMgQEAgdHJhbnNmb3JtRm9yUG9y dGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlpZiAoIWdldF90eXBuYW1lX2FuZF9u YW1lc3BhY2UoYXR0ci0+YXR0dHlwaWQsICZyYW5nZV90eXBlX25hbWUsICZyYW5nZV90eXBlX25h bWVzcGFjZSkpCiAJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB0eXBlICV1 IiwgYXR0ci0+YXR0dHlwaWQpOwogCisJLyoKKwkgKiBJZiB3ZSBhcmUgdXNpbmcgYSBQRVJJT0Qs IHdlIG5lZWQgdGhlIHN0YXJ0ICYgZW5kIGNvbHVtbnMuCisJICogSWYgdGhlIGF0dHJpYnV0ZSBp dCBub3QgYSBHRU5FUkFURUQgY29sdW1uLCB3ZSBuZWVkbid0IHF1ZXJ5IHBnX3BlcmlvZC4KKwkg Ki8KKwlpZiAoYXR0ci0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVE KQorCXsKKwkJSGVhcFR1cGxlIHBlclR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUs CisJCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQodGFyZ2V0cmVs KSksCisJCQkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0ocmFuZ2VfbmFtZSkpOworCQlpZiAoSGVh cFR1cGxlSXNWYWxpZChwZXJUdXBsZSkpCisJCXsKKwkJCUZvcm1fcGdfcGVyaW9kIHBlciA9IChG b3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHBlclR1cGxlKTsKKwkJCUZvcm1fcGdfYXR0cmlidXRl IHBlcmF0dHI7CisKKwkJCXN0YXJ0X2F0dG5vID0gcGVyLT5wZXJzdGFydDsKKwkJCWVuZF9hdHRu byA9IHBlci0+cGVyZW5kOworCisJCQlwZXJhdHRyID0gVHVwbGVEZXNjQXR0cih0YXJnZXRyZWwt PnJkX2F0dCwgc3RhcnRfYXR0bm8gLSAxKTsKKwkJCXN0YXJ0Y29sbmFtZSA9IE5hbWVTdHIocGVy YXR0ci0+YXR0bmFtZSk7CisKKwkJCXJlc3VsdC0+c3RhcnRWYXIgPSBtYWtlVmFyKAorCQkJCQly dGluZGV4LAorCQkJCQlzdGFydF9hdHRubywKKwkJCQkJcGVyYXR0ci0+YXR0dHlwaWQsCisJCQkJ CXBlcmF0dHItPmF0dHR5cG1vZCwKKwkJCQkJcGVyYXR0ci0+YXR0Y29sbGF0aW9uLAorCQkJCQkw KTsKKworCQkJcGVyYXR0ciA9IFR1cGxlRGVzY0F0dHIodGFyZ2V0cmVsLT5yZF9hdHQsIGVuZF9h dHRubyAtIDEpOworCQkJZW5kY29sbmFtZSA9IE5hbWVTdHIocGVyYXR0ci0+YXR0bmFtZSk7CisJ CQlyZXN1bHQtPmVuZFZhciA9IG1ha2VWYXIoCisJCQkJCXJ0aW5kZXgsCisJCQkJCWVuZF9hdHRu bywKKwkJCQkJcGVyYXR0ci0+YXR0dHlwaWQsCisJCQkJCXBlcmF0dHItPmF0dHR5cG1vZCwKKwkJ CQkJcGVyYXR0ci0+YXR0Y29sbGF0aW9uLAorCQkJCQkwKTsKKworCQkJUmVsZWFzZVN5c0NhY2hl KHBlclR1cGxlKTsKKwkJfQorCX0KKworCWlmIChzdGFydF9hdHRubyA9PSBJbnZhbGlkQXR0ck51 bWJlcikKKwl7CisJCXJlc3VsdC0+c3RhcnRWYXIgPSBOVUxMOworCQlyZXN1bHQtPmVuZFZhciA9 IE5VTEw7CisJfQogCiAJaWYgKGZvclBvcnRpb25PZi0+dGFyZ2V0KQogCQkvKgpAQCAtMTM3NSw3 ICsxNDI3LDEwIEBAIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsCiAJewogCQkvKgogCQkgKiBOb3cgbWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgc3RhcnQvZW5k IHRpbWUgb2YgdGhlIHJlY29yZC4KLQkJICogRm9yIGEgcmFuZ2UgY29sIChyKSB0aGlzIGlzIGBy ID0gciAqIHRhcmdldFJhbmdlYC4KKwkJICogRm9yIGEgcmFuZ2UvZXRjIGNvbCAocikgdGhpcyBp cyBgciA9IHIgKiB0YXJnZXRSYW5nZWAuCisJCSAqIEZvciBhIFBFUklPRCB3aXRoIGNvbHMgKHMs IGUpIHRoaXMgaXMgYHMgPSBsb3dlcih0c3JhbmdlKHMsIGUpICogdGFyZ2V0UmFuZ2UpYAorCQkg KiBhbmQgYGUgPSB1cHBlcih0c3JhbmdlKHMsIGUpICogdGFyZ2V0UmFuZ2VgIChvZiBjb3Vyc2Ug bm90IG5lY2Vzc2FyaWx5IHdpdGgKKwkJICogdHNyYW5nZSwgYnV0IHdpdGggd2hhdGV2ZXIgcmFu Z2UgdHlwZSBpcyB1c2VkIHRoZXJlKS4KIAkJICovCiAJCU9pZCBmdW5jbmFtZXNwYWNlOwogCQlj aGFyICpmdW5jbmFtZTsKQEAgLTE0MDUsMTIgKzE0NjAsNDQgQEAgdHJhbnNmb3JtRm9yUG9ydGlv bk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQlsaXN0X21ha2UyKGNvcHlPYmplY3Qo cmFuZ2VWYXIpLCB0YXJnZXRFeHByKSwKIAkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKIAkJCQlm b3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKLQkJcmFuZ2VUTEVFeHByID0gKEV4cHIgKikgdHJhbnNm b3JtRXhwcihwc3RhdGUsIChOb2RlICopIHJhbmdlVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9Q T1JUSU9OKTsKIAotCQkvKiBNYWtlIGEgVExFIHRvIHNldCB0aGUgcmFuZ2UgY29sdW1uICovCisJ CS8qIE1ha2UgYSBUTEUgdG8gc2V0IHRoZSByYW5nZSBjb2x1bW4gb3Igc3RhcnQvZW5kIGNvbHVt bnMgKi8KIAkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBOSUw7Ci0JCXRsZSA9IG1ha2VUYXJn ZXRFbnRyeShyYW5nZVRMRUV4cHIsIHJhbmdlX2F0dG5vLCByYW5nZV9uYW1lLCBmYWxzZSk7Ci0J CXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlz dCwgdGxlKTsKKworCQlpZiAocmVzdWx0LT5zdGFydFZhcikKKwkJeworCQkJRXhwciAqYm91bmRU TEVFeHByOworCisJCQkvKiBzZXQgdGhlIHN0YXJ0IGNvbHVtbiAqLworCQkJYm91bmRUTEVFeHBy ID0gKEV4cHIgKikgbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1bmNOYW1lKCJsb3dlciIpLAorCQkJCQls aXN0X21ha2UxKHJhbmdlVExFRXhwciksCisJCQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAorCQkJ CQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKwkJCWJvdW5kVExFRXhwciA9IChFeHByICopIHRy YW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBib3VuZFRMRUV4cHIsIEVYUFJfS0lORF9VUERB VEVfUE9SVElPTik7CisJCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoYm91bmRUTEVFeHByLCBzdGFy dF9hdHRubywgc3RhcnRjb2xuYW1lLCBmYWxzZSk7CisJCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlz dCA9IGxhcHBlbmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3QsIHRsZSk7CisKKwkJCS8qIHNldCB0 aGUgZW5kIGNvbHVtbiAqLworCQkJYm91bmRUTEVFeHByID0gKEV4cHIgKikgbWFrZUZ1bmNDYWxs KFN5c3RlbUZ1bmNOYW1lKCJ1cHBlciIpLAorCQkJCQlsaXN0X21ha2UxKHJhbmdlVExFRXhwciks CisJCQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAorCQkJCQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9u KTsKKwkJCWJvdW5kVExFRXhwciA9IChFeHByICopIHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9k ZSAqKSBib3VuZFRMRUV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CisJCQl0bGUgPSBt YWtlVGFyZ2V0RW50cnkoYm91bmRUTEVFeHByLCBlbmRfYXR0bm8sIGVuZGNvbG5hbWUsIGZhbHNl KTsKKwkJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdlVGFy Z2V0TGlzdCwgdGxlKTsKKworCQkJLyogTWFyayB0aGUgc3RhcnQvZW5kIGNvbHVtbnMgYXMgcmVx dWlyaW5nIHVwZGF0ZSBwZXJtaXNzaW9ucyAqLworCQkJdGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVk Q29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMsCisJCQkJ CQkJCQkJCQkJCSAgc3RhcnRfYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVt YmVyKTsKKwkJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNfYWRkX21lbWJlcih0 YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCQkgIGVuZF9hdHRubyAt IEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQl9CisJCWVsc2UKKwkJewor CQkJcmFuZ2VUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICop IHJhbmdlVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsKKwkJCXRsZSA9IG1ha2VU YXJnZXRFbnRyeShyYW5nZVRMRUV4cHIsIHJhbmdlX2F0dG5vLCByYW5nZV9uYW1lLCBmYWxzZSk7 CisJCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBlbmQocmVzdWx0LT5yYW5nZVRhcmdl dExpc3QsIHRsZSk7CisJCX0KIAogCQkvKiBNYXJrIHRoZSByYW5nZSBjb2x1bW4gYXMgcmVxdWly aW5nIHVwZGF0ZSBwZXJtaXNzaW9ucyAqLwogCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xz ID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CmluZGV4IDRiYmFmOTkyYmIwLi44OGM4YzE1N2M5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01OTYsNyAr NTk2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFt ZV9rZXl3b3JkIHJlc2VydmVkX2tleXdvcmQKICV0eXBlIDxrZXl3b3JkPiBiYXJlX2xhYmVsX2tl eXdvcmQKIAotJXR5cGUgPG5vZGU+CVRhYmxlQ29uc3RyYWludCBUYWJsZUxpa2VDbGF1c2UKKyV0 eXBlIDxub2RlPglUYWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlIFRhYmxlUGVyaW9kCiAl dHlwZSA8aXZhbD4JVGFibGVMaWtlT3B0aW9uTGlzdCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxz dHI+CQljb2x1bW5fY29tcHJlc3Npb24gb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3Rv cmFnZSBvcHRfY29sdW1uX3N0b3JhZ2UKICV0eXBlIDxsaXN0PglDb2xRdWFsTGlzdApAQCAtMjYy Niw2ICsyNjI2LDI0IEBAIGFsdGVyX3RhYmxlX2NtZDoKIAkJCQkJbi0+ZGVmID0gKE5vZGUgKikg JDQ7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQkvKiBBTFRFUiBUQUJMRSA8bmFt ZT4gQUREIFBFUklPRCBGT1IgPG5hbWU+ICg8bmFtZT4sIDxuYW1lPikgKi8KKwkJCXwgQUREX1Ag VGFibGVQZXJpb2QKKwkJCQl7CisJCQkJCUFsdGVyVGFibGVDbWQgKm4gPSBtYWtlTm9kZShBbHRl clRhYmxlQ21kKTsKKwkJCQkJbi0+c3VidHlwZSA9IEFUX0FkZFBlcmlvZDsKKwkJCQkJbi0+ZGVm ID0gJDI7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxu YW1lPiBEUk9QIFBFUklPRCBGT1IgPG5hbWU+IFtSRVNUUklDVHxDQVNDQURFXSAqLworCQkJfCBE Uk9QIFBFUklPRCBGT1IgbmFtZSBvcHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0ZXJU YWJsZUNtZCAqbiA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJCQluLT5zdWJ0eXBlID0g QVRfRHJvcFBlcmlvZDsKKwkJCQkJbi0+bmFtZSA9ICQ0OworCQkJCQluLT5iZWhhdmlvciA9ICQ1 OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KIAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBBREQgQ09OU1RSQUlOVCAuLi4gKi8KIAkJCXwg QUREX1AgVGFibGVDb25zdHJhaW50CiAJCQkJewpAQCAtMzc1NSw4ICszNzczLDEwIEBAIFRhYmxl RWxlbWVudDoKIAkJCWNvbHVtbkRlZgkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFibGVMaWtl Q2xhdXNlCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFibGVDb25zdHJhaW50CQkJCQl7ICQkID0g JDE7IH0KKwkJCXwgVGFibGVQZXJpb2QJCQkJCQl7ICQkID0gJDE7IH0KIAkJOwogCisKIFR5cGVk VGFibGVFbGVtZW50OgogCQkJY29sdW1uT3B0aW9ucwkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBU YWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsgfQpAQCAtNDEwOCw2ICs0MTI4LDE5IEBAIFRh YmxlTGlrZU9wdGlvbjoKIAkJOwogCiAKK1RhYmxlUGVyaW9kOgorCQkJUEVSSU9EIEZPUiBuYW1l ICcoJyBuYW1lICcsJyBuYW1lICcpJyBvcHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJUGVyaW9k RGVmICpuID0gbWFrZU5vZGUoUGVyaW9kRGVmKTsKKwkJCQkJbi0+cGVyaW9kbmFtZSA9ICQzOwor CQkJCQluLT5zdGFydGNvbG5hbWUgPSAkNTsKKwkJCQkJbi0+ZW5kY29sbmFtZSA9ICQ3OworCQkJ CQluLT5vcHRpb25zID0gJDk7CisJCQkJCW4tPmxvY2F0aW9uID0gQDE7CisJCQkJCSQkID0gKE5v ZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyogQ29uc3RyYWludEVsZW0gc3BlY2lmaWVzIGNvbnN0 cmFpbnQgc3ludGF4IHdoaWNoIGlzIG5vdCBlbWJlZGRlZCBpbnRvCiAgKglhIGNvbHVtbiBkZWZp bml0aW9uLiBDb2xDb25zdHJhaW50RWxlbSBzcGVjaWZpZXMgdGhlIGVtYmVkZGVkIGZvcm0uCiAg KiAtIHRob21hcyAxOTk3LTEyLTAzCkBAIC03MTc0LDYgKzcyMDcsMTQgQEAgQ29tbWVudFN0bXQ6 CiAJCQkJCW4tPmNvbW1lbnQgPSAkOTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQ09NTUVOVCBPTiBQRVJJT0QgYW55X25hbWUgSVMgY29tbWVudF90ZXh0CisJCQkJeworCQkJ CQlDb21tZW50U3RtdCAqbiA9IG1ha2VOb2RlKENvbW1lbnRTdG10KTsKKwkJCQkJbi0+b2JqdHlw ZSA9IE9CSkVDVF9QRVJJT0Q7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ0OworCQkJCQlu LT5jb21tZW50ID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IENPTU1F TlQgT04gTEFSR0VfUCBPQkpFQ1RfUCBOdW1lcmljT25seSBJUyBjb21tZW50X3RleHQKIAkJCQl7 CiAJCQkJCUNvbW1lbnRTdG10ICpuID0gbWFrZU5vZGUoQ29tbWVudFN0bXQpOwpAQCAtMTczOTEs NyArMTc0MzIsNiBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFBBUlRJVElPTgogCQkJfCBQ QVNTSU5HCiAJCQl8IFBBU1NXT1JECi0JCQl8IFBFUklPRAogCQkJfCBQTEFOUwogCQkJfCBQT0xJ Q1kKIAkJCXwgUE9SVElPTgpAQCAtMTc2ODUsNiArMTc3MjUsNyBAQCByZXNlcnZlZF9rZXl3b3Jk OgogCQkJfCBPTkxZCiAJCQl8IE9SCiAJCQl8IE9SREVSCisJCQl8IFBFUklPRAogCQkJfCBQTEFD SU5HCiAJCQl8IFBSSU1BUlkKIAkJCXwgUkVGRVJFTkNFUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVs YXRpb24uYwppbmRleCA2ZjVkOWUyNjkyNS4uYTRiMmU2M2YwNWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9oZWFwLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHlwZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVu Y3MuaCIKQEAgLTMxODIsNiArMzE4Myw3IEBAIGV4cGFuZE5TSXRlbUF0dHJzKFBhcnNlU3RhdGUg KnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJICBpbnQgc3VibGV2ZWxz X3VwLCBib29sIHJlcXVpcmVfY29sX3ByaXZzLCBpbnQgbG9jYXRpb24pCiB7CiAJUmFuZ2VUYmxF bnRyeSAqcnRlID0gbnNpdGVtLT5wX3J0ZTsKKwlCaXRtYXBzZXQgICpwZXJpb2RhdHRzID0gTlVM TDsKIAlSVEVQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8gPSBuc2l0ZW0tPnBfcGVybWluZm87CiAJ TGlzdAkgICAqbmFtZXMsCiAJCQkgICAqdmFyczsKQEAgLTMyMDUsMTIgKzMyMDcsMjAgQEAgZXhw YW5kTlNJdGVtQXR0cnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5z aXRlbSwKIAkJcGVybWluZm8tPnJlcXVpcmVkUGVybXMgfD0gQUNMX1NFTEVDVDsKIAl9CiAKKwkv KiBHZXQgUEVSSU9EIGNvbHVtbnMgdG8gZXhjbHVkZSAqLworCWlmIChydGUtPnJ0ZWtpbmQgPT0g UlRFX1JFTEFUSU9OKQorCQlwZXJpb2RhdHRzID0gZ2V0X3BlcmlvZF9hdHRub3MocnRlLT5yZWxp ZCk7CisKIAlmb3Jib3RoKG5hbWUsIG5hbWVzLCB2YXIsIHZhcnMpCiAJewogCQljaGFyCSAgICps YWJlbCA9IHN0clZhbChsZmlyc3QobmFtZSkpOwogCQlWYXIJCSAgICp2YXJub2RlID0gKFZhciAq KSBsZmlyc3QodmFyKTsKIAkJVGFyZ2V0RW50cnkgKnRlOwogCisJCS8qIElmIHRoaXMgY29sdW1u IGlzIGZyb20gYSBQRVJJT0QsIHNraXAgaXQgKi8KKwkJaWYgKGJtc19pc19tZW1iZXIodmFybm9k ZS0+dmFyYXR0bm8sIHBlcmlvZGF0dHMpKQorCQkJCWNvbnRpbnVlOworCiAJCXRlID0gbWFrZVRh cmdldEVudHJ5KChFeHByICopIHZhcm5vZGUsCiAJCQkJCQkJIChBdHRyTnVtYmVyKSBwc3RhdGUt PnBfbmV4dF9yZXNubysrLAogCQkJCQkJCSBsYWJlbCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNt ZC5jCmluZGV4IGM3ZWZkOGQ4Y2VlLi5kMzZjM2I4Mjc3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJh aW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19vcGVyYXRvci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWNfZXh0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgpAQCAtODAsNiArODEsNyBAQCB0eXBl ZGVmIHN0cnVjdAogCWJvb2wJCWlzZm9yZWlnbjsJCS8qIHRydWUgaWYgQ1JFQVRFL0FMVEVSIEZP UkVJR04gVEFCTEUgKi8KIAlib29sCQlpc2FsdGVyOwkJLyogdHJ1ZSBpZiBhbHRlcmluZyBleGlz dGluZyB0YWJsZSAqLwogCUxpc3QJICAgKmNvbHVtbnM7CQkvKiBDb2x1bW5EZWYgaXRlbXMgKi8K KwlMaXN0CSAgICpwZXJpb2RzOwkJLyogUGVyaW9kRGVmIGl0ZW1zICovCiAJTGlzdAkgICAqY2tj b25zdHJhaW50czsJLyogQ0hFQ0sgY29uc3RyYWludHMgKi8KIAlMaXN0CSAgICpubmNvbnN0cmFp bnRzOwkvKiBOT1QgTlVMTCBjb25zdHJhaW50cyAqLwogCUxpc3QJICAgKmZrY29uc3RyYWludHM7 CS8qIEZPUkVJR04gS0VZIGNvbnN0cmFpbnRzICovCkBAIC0xMTEsNiArMTEzLDggQEAgdHlwZWRl ZiBzdHJ1Y3QKIAogc3RhdGljIHZvaWQgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihDcmVhdGVT dG10Q29udGV4dCAqY3h0LAogCQkJCQkJCQkJICBDb2x1bW5EZWYgKmNvbHVtbik7CitzdGF0aWMg dm9pZCB0cmFuc2Zvcm1UYWJsZVBlcmlvZChDcmVhdGVTdG10Q29udGV4dCAqY3h0LAorCQkJCQkJ CQkgUGVyaW9kRGVmICpwZXJpb2QpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFibGVDb25zdHJh aW50KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJCQkJCQkgQ29uc3RyYWludCAqY29uc3Ry YWludCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENv bnRleHQgKmN4dCwKQEAgLTI0MCw2ICsyNDQsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0 ZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCWN4dC5pbmhSZWxhdGlvbnMg PSBzdG10LT5pbmhSZWxhdGlvbnM7CiAJY3h0LmlzYWx0ZXIgPSBmYWxzZTsKIAljeHQuY29sdW1u cyA9IE5JTDsKKwljeHQucGVyaW9kcyA9IE5JTDsKIAljeHQuY2tjb25zdHJhaW50cyA9IE5JTDsK IAljeHQubm5jb25zdHJhaW50cyA9IE5JTDsKIAljeHQuZmtjb25zdHJhaW50cyA9IE5JTDsKQEAg LTI4MCw2ICsyODUsMTAgQEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBj b25zdCBjaGFyICpxdWVyeVN0cmluZykKIAkJCQl0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKCZj eHQsIChDb2x1bW5EZWYgKikgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9QZXJp b2REZWY6CisJCQkJdHJhbnNmb3JtVGFibGVQZXJpb2QoJmN4dCwgKFBlcmlvZERlZiAqKSBlbGVt ZW50KTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBUX0NvbnN0cmFpbnQ6CiAJCQkJdHJhbnNmb3Jt VGFibGVDb25zdHJhaW50KCZjeHQsIChDb25zdHJhaW50ICopIGVsZW1lbnQpOwogCQkJCWJyZWFr OwpAQCAtMzQ3LDYgKzM1Niw3IEBAIHRyYW5zZm9ybUNyZWF0ZVN0bXQoQ3JlYXRlU3RtdCAqc3Rt dCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJICogT3V0cHV0IHJlc3VsdHMuCiAJICovCiAJ c3RtdC0+dGFibGVFbHRzID0gY3h0LmNvbHVtbnM7CisJc3RtdC0+cGVyaW9kcyA9IGN4dC5wZXJp b2RzOwogCXN0bXQtPmNvbnN0cmFpbnRzID0gY3h0LmNrY29uc3RyYWludHM7CiAJc3RtdC0+bm5j b25zdHJhaW50cyA9IGN4dC5ubmNvbnN0cmFpbnRzOwogCkBAIC05MjIsNiArOTMyLDkxIEBAIHRy YW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgQ29sdW1uRGVm ICpjb2x1bW4pCiAJfQogfQogCit2b2lkCit0cmFuc2Zvcm1QZXJpb2RPcHRpb25zKFBlcmlvZERl ZiAqcGVyaW9kKQoreworCUxpc3RDZWxsICAgKm9wdGlvbjsKKwlEZWZFbGVtCSAgICpkY29uc3Ry YWludG5hbWUgPSBOVUxMOworCURlZkVsZW0JICAgKmRyYW5nZXR5cGVuYW1lID0gTlVMTDsKKwlE ZWZFbGVtCSAgICpkY29sZXhpc3RzID0gTlVMTDsKKworCWZvcmVhY2gob3B0aW9uLCBwZXJpb2Qt Pm9wdGlvbnMpCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IChEZWZFbGVtICopIGxmaXJzdChv cHRpb24pOworCisJCWlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJjaGVja19jb25zdHJhaW50 X25hbWUiKSA9PSAwKQorCQl7CisJCQlpZiAoZGNvbnN0cmFpbnRuYW1lKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJy bXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlkY29uc3RyYWlu dG5hbWUgPSBkZWZlbDsKKwkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJy YW5nZXR5cGUiKSA9PSAwKQorCQl7CisJCQlpZiAoZHJhbmdldHlwZW5hbWUpCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBl cnJtc2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWRyYW5nZXR5 cGVuYW1lID0gZGVmZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAi Y29sZXhpc3RzIikgPT0gMCkKKwkJeworCQkJaWYgKGRjb2xleGlzdHMpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJt c2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWRjb2xleGlzdHMg PSBkZWZlbDsKKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coIm9wdGlvbiBcIiVzXCIgbm90IHJl Y29nbml6ZWQiLCBkZWZlbC0+ZGVmbmFtZSkpKTsKKwl9CisKKwlpZiAoZGNvbnN0cmFpbnRuYW1l ICE9IE5VTEwpCisJCXBlcmlvZC0+Y29uc3RyYWludG5hbWUgPSBkZWZHZXRTdHJpbmcoZGNvbnN0 cmFpbnRuYW1lKTsKKwllbHNlCisJCXBlcmlvZC0+Y29uc3RyYWludG5hbWUgPSBOVUxMOworCisJ aWYgKGRyYW5nZXR5cGVuYW1lICE9IE5VTEwpCisJCXBlcmlvZC0+cmFuZ2V0eXBlbmFtZSA9IGRl ZkdldFN0cmluZyhkcmFuZ2V0eXBlbmFtZSk7CisJZWxzZQorCQlwZXJpb2QtPnJhbmdldHlwZW5h bWUgPSBOVUxMOworCisJaWYgKGRjb2xleGlzdHMgIT0gTlVMTCkKKwkJcGVyaW9kLT5jb2xleGlz dHMgPSBkZWZHZXRCb29sZWFuKGRjb2xleGlzdHMpOworCWVsc2UKKwkJcGVyaW9kLT5jb2xleGlz dHMgPSBmYWxzZTsKK30KKworLyoKKyAqIHRyYW5zZm9ybVRhYmxlUGVyaW9kCisgKgkJdHJhbnNm b3JtIGEgUGVyaW9kRGVmIG5vZGUgd2l0aGluIENSRUFURSBUQUJMRQorICovCitzdGF0aWMgdm9p ZAordHJhbnNmb3JtVGFibGVQZXJpb2QoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgUGVyaW9kRGVm ICpwZXJpb2QpCit7CisJaWYgKHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsICJzeXN0ZW1fdGlt ZSIpID09IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIlBFUklPRCBGT1IgU1lTVEVNX1RJTUUg aXMgbm90IHN1cHBvcnRlZCIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRl LAorCQkJCQkJCQkJCXBlcmlvZC0+bG9jYXRpb24pKSk7CisKKwlpZiAoc3RyY21wKHBlcmlvZC0+ c3RhcnRjb2xuYW1lLCBwZXJpb2QtPmVuZGNvbG5hbWUpID09IDApCisJCWVyZXBvcnQoRVJST1Is IChlcnJtc2coImNvbHVtbiBcIiVzXCIgY2FuJ3QgYmUgdGhlIHN0YXJ0IGFuZCBlbmQgY29sdW1u IGZvciBwZXJpb2QgXCIlc1wiIiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1lLCBwZXJpb2Qt PnBlcmlvZG5hbWUpKSk7CisKKwkvKgorCSAqIERldGVybWluZSB0aGUgY29sdW1uIGluZm8gYW5k IHJhbmdlIHR5cGUgc28gdGhhdCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnRzCisJICoga25vd3Mg aG93IHRvIGNyZWF0ZSBQUklNQVJZIEtFWS9VTklRVUUgY29uc3RyYWludHMgdXNpbmcgdGhpcyBQ RVJJT0QuCisJICovCisJdHJhbnNmb3JtUGVyaW9kT3B0aW9ucyhwZXJpb2QpOworCisJY3h0LT5w ZXJpb2RzID0gbGFwcGVuZChjeHQtPnBlcmlvZHMsIHBlcmlvZCk7Cit9CisKIC8qCiAgKiB0cmFu c2Zvcm1UYWJsZUNvbnN0cmFpbnQKICAqCQl0cmFuc2Zvcm0gYSBDb25zdHJhaW50IG5vZGUgd2l0 aGluIENSRUFURSBUQUJMRSBvciBBTFRFUiBUQUJMRQpAQCAtMTAxMiw2ICsxMTA3LDcgQEAgdHJh bnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNs YXVzZSAqdGFibGVfbGlrZV9jbGEKIAlBdHRyTnVtYmVyCXBhcmVudF9hdHRubzsKIAlSZWxhdGlv bglyZWxhdGlvbjsKIAlUdXBsZURlc2MJdHVwbGVEZXNjOworCUJpdG1hcHNldCAgKnBlcmlvZGF0 dHM7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKIAljaGFyCSAgICpjb21tZW50OwogCVBhcnNlQ2Fs bGJhY2tTdGF0ZSBwY2JzdGF0ZTsKQEAgLTEwNjQsNiArMTE2MCw3IEBAIHRyYW5zZm9ybVRhYmxl TGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxl X2xpa2VfY2xhCiAJfQogCiAJdHVwbGVEZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbik7 CisJcGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKFJlbGF0aW9uR2V0UmVsaWQocmVsYXRp b24pKTsKIAogCS8qCiAJICogSW5zZXJ0IHRoZSBjb3BpZWQgYXR0cmlidXRlcyBpbnRvIHRoZSBj eHQgZm9yIHRoZSBuZXcgdGFibGUgZGVmaW5pdGlvbi4KQEAgLTEwNzMsMTAgKzExNzAsMTggQEAg dHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlr ZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlmb3IgKHBhcmVudF9hdHRubyA9IDE7IHBhcmVudF9h dHRubyA8PSB0dXBsZURlc2MtPm5hdHRzOwogCQkgcGFyZW50X2F0dG5vKyspCiAJewotCQlGb3Jt X3BnX2F0dHJpYnV0ZSBhdHRyaWJ1dGUgPSBUdXBsZURlc2NBdHRyKHR1cGxlRGVzYywKLQkJCQkJ CQkJCQkJCQlwYXJlbnRfYXR0bm8gLSAxKTsKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cmlidXRl OwogCQlDb2x1bW5EZWYgICpkZWY7CiAKKwkJLyoKKwkJICogSWYgdGhpcyBjb2x1bW4gaXMgZnJv bSBhIFBFUklPRCwgc2tpcCBpdAorCQkgKiAoc2luY2UgTElLRSBuZXZlciBjb3BpZXMgUEVSSU9E cykuCisJCSAqLworCQlpZiAoYm1zX2lzX21lbWJlcihwYXJlbnRfYXR0bm8sIHBlcmlvZGF0dHMp KQorCQkJY29udGludWU7CisKKwkJYXR0cmlidXRlID0gVHVwbGVEZXNjQXR0cih0dXBsZURlc2Ms IHBhcmVudF9hdHRubyAtIDEpOworCiAJCS8qCiAJCSAqIElnbm9yZSBkcm9wcGVkIGNvbHVtbnMg aW4gdGhlIHBhcmVudC4KIAkJICovCkBAIC0yNTczLDYgKzI2NzgsNyBAQCB0cmFuc2Zvcm1JbmRl eENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4 dCkKIAkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQorCiAJCQlpZiAoZm91bmQpCiAJCQl7CiAJCQkJ LyoKQEAgLTI1ODksNiArMjY5NSwyMiBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3Ry YWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCQkJY29sdW1uLT5p c19ub3RfbnVsbCA9IHRydWU7CiAJCQkJfQogCQkJfQorCQkJZWxzZSBpZiAoY29uc3RyYWludC0+ d2l0aG91dF9vdmVybGFwcyAmJgorCQkJCQkgbGMgPT0gbGlzdF9sYXN0X2NlbGwoY29uc3RyYWlu dC0+a2V5cykpCisJCQl7CisJCQkJLyogSWYgdGhlIGtleSBpcyBXSVRIT1VUIE9WRVJMQVBTLCBh IFBFUklPRCB3aWxsIHdvcmsgdG9vLiAqLworCQkJCVBlcmlvZERlZiAgKnBlcmlvZCA9IE5VTEw7 CisKKwkJCQlmb3JlYWNoKGNvbHVtbnMsIGN4dC0+cGVyaW9kcykKKwkJCQl7CisJCQkJCXBlcmlv ZCA9IGxmaXJzdF9ub2RlKFBlcmlvZERlZiwgY29sdW1ucyk7CisJCQkJCWlmIChzdHJjbXAocGVy aW9kLT5wZXJpb2RuYW1lLCBrZXkpID09IDApCisJCQkJCXsKKwkJCQkJCWZvdW5kID0gdHJ1ZTsK KwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJfQogCQkJZWxzZSBpZiAoU3lzdGVtQXR0 cmlidXRlQnlOYW1lKGtleSkgIT0gTlVMTCkKIAkJCXsKIAkJCQkvKgpAQCAtMzAxNyw2ICszMTM5 LDEwIEBAIHRyYW5zZm9ybUluZGV4U3RtdChPaWQgcmVsaWQsIEluZGV4U3RtdCAqc3RtdCwgY29u c3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJCX0KIAl9CiAKKwkvKiB0YWtlIGNhcmUgb2YgdGhlIHBl cmlvZCAqLworCWlmIChzdG10LT5wZXJpb2QpCisJCXN0bXQtPnBlcmlvZC0+b2lkID0gZ2V0X3Bl cmlvZF9vaWQocmVsaWQsIHN0bXQtPnBlcmlvZC0+cGVyaW9kbmFtZSwgZmFsc2UpOworCiAJLyoK IAkgKiBDaGVjayB0aGF0IG9ubHkgdGhlIGJhc2UgcmVsIGlzIG1lbnRpb25lZC4gIChUaGlzIHNo b3VsZCBiZSBkZWFkIGNvZGUKIAkgKiBub3cgdGhhdCBhZGRfbWlzc2luZ19mcm9tIGlzIGhpc3Rv cnkuKQpAQCAtMzQ3NCw2ICszNjAwLDcgQEAgdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoT2lkIHJl bGlkLCBBbHRlclRhYmxlU3RtdCAqc3RtdCwKIAljeHQuaW5oUmVsYXRpb25zID0gTklMOwogCWN4 dC5pc2FsdGVyID0gdHJ1ZTsKIAljeHQuY29sdW1ucyA9IE5JTDsKKwljeHQucGVyaW9kcyA9IE5J TDsKIAljeHQuY2tjb25zdHJhaW50cyA9IE5JTDsKIAljeHQubm5jb25zdHJhaW50cyA9IE5JTDsK IAljeHQuZmtjb25zdHJhaW50cyA9IE5JTDsKQEAgLTM1MzYsNiArMzY2MywyMiBAQCB0cmFuc2Zv cm1BbHRlclRhYmxlU3RtdChPaWQgcmVsaWQsIEFsdGVyVGFibGVTdG10ICpzdG10LAogCQkJCQkJ IChpbnQpIG5vZGVUYWcoY21kLT5kZWYpKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBBVF9BZGRQ ZXJpb2Q6CisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBXZSBjYW4ndCBjYWxsIHRyYW5zZm9ybVRh YmxlUGVyaW9kIGhlcmUKKwkJCQkJICogYmVjYXVzZSBpdCBsb29rcyBhdCBjeHQtPmNvbHVtbnMK KwkJCQkJICogYW5kIGluIGFuIEFMVEVSIHN0YXRlbWVudCB0aGUgY29sdW1ucyBtaWdodCBhbHJl YWR5IGV4aXN0cworCQkJCQkgKiAob3Igbm90KS4KKwkJCQkJICovCisJCQkJCS8vIFRPRE86IGl0 IGRvZXNuJ3QgbG9vayBhdCBjeHQtPmNvbHVtbnMgYW55IG1vcmUuCisJCQkJCS8vIFNvIHNob3Vs ZCB3ZSBjYWxsIGl0IGhlcmU/IFRvIGRvIHdoYXQ/CisJCQkJCS8vIFdlbGwgaXQgbWlnaHQgYmUg dXNlZnVsIHRvIGtub3cgYWJvdXQgaXQgaW4gY3h0LT5wZXJpb2RzIGF0IGxlYXN0LgorCQkJCQl0 cmFuc2Zvcm1UYWJsZVBlcmlvZCgmY3h0LCBjYXN0Tm9kZShQZXJpb2REZWYsIGNtZC0+ZGVmKSk7 CisJCQkJCW5ld2NtZHMgPSBsYXBwZW5kKG5ld2NtZHMsIGNtZCk7CisJCQkJCWJyZWFrOworCQkJ CX0KKwogCQkJY2FzZSBBVF9BbHRlckNvbHVtblR5cGU6CiAJCQkJewogCQkJCQlDb2x1bW5EZWYg ICpkZWYgPSBjYXN0Tm9kZShDb2x1bW5EZWYsIGNtZC0+ZGVmKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9NYWtlZmls ZQppbmRleCAxOTllYWU1MjVkMS4uZDA0Yzc1YjM5ODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUK QEAgLTc4LDYgKzc4LDcgQEAgT0JKUyA9IFwKIAlvcmFjbGVfY29tcGF0Lm8gXAogCW9yZGVyZWRz ZXRhZ2dzLm8gXAogCXBhcnRpdGlvbmZ1bmNzLm8gXAorCXBlcmlvZC5vIFwKIAlwZ19sb2NhbGUu byBcCiAJcGdfbHNuLm8gXAogCXBnX3VwZ3JhZGVfc3VwcG9ydC5vIFwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJpb2QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJp b2QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGVkNDMwNGUxNmQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMKQEAgLTAs MCArMSw1NiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGVyaW9kLmMKKyAqCSAgRnVu Y3Rpb25zIHRvIHN1cHBvcnQgcGVyaW9kcy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC91 dGlscy9hZHQvcGVyaW9kLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJleGVjdXRvci90dXB0YWJsZS5oIgorI2luY2x1ZGUg ImZtZ3IuaCIKKyNpbmNsdWRlICJub2Rlcy9wcmltbm9kZXMuaCIKKyNpbmNsdWRlICJ1dGlscy9m bWdycHJvdG9zLmgiCisjaW5jbHVkZSAidXRpbHMvcGVyaW9kLmgiCisjaW5jbHVkZSAidXRpbHMv cmFuZ2V0eXBlcy5oIgorCitEYXR1bSBwZXJpb2RfdG9fcmFuZ2UoVHVwbGVUYWJsZVNsb3QgKnNs b3QsIGludCBzdGFydGF0dG5vLCBpbnQgZW5kYXR0bm8sIE9pZCByYW5nZXR5cGUpCit7CisJRGF0 dW0gc3RhcnR2YWx1ZTsKKwlEYXR1bSBlbmR2YWx1ZTsKKwlEYXR1bSByZXN1bHQ7CisJYm9vbAlz dGFydGlzbnVsbDsKKwlib29sCWVuZGlzbnVsbDsKKwlMT0NBTF9GQ0lORk8oZmNpbmZvLCAyKTsK KwlGbWdySW5mbwlmbGluZm87CisJRnVuY0V4cHIgICAqZjsKKworCUluaXRGdW5jdGlvbkNhbGxJ bmZvRGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCBOVUxMKTsKKwlm ID0gbWFrZU5vZGUoRnVuY0V4cHIpOworCWYtPmZ1bmNyZXN1bHR0eXBlID0gcmFuZ2V0eXBlOwor CWZsaW5mby5mbl9leHByID0gKE5vZGUgKikgZjsKKwlmbGluZm8uZm5fZXh0cmEgPSBOVUxMOwor CisJLyogY29tcHV0ZSBvbGR2YWx1ZSAqLworCXN0YXJ0dmFsdWUgPSBzbG90X2dldGF0dHIoc2xv dCwgc3RhcnRhdHRubywgJnN0YXJ0aXNudWxsKTsKKwllbmR2YWx1ZSA9IHNsb3RfZ2V0YXR0cihz bG90LCBlbmRhdHRubywgJmVuZGlzbnVsbCk7CisKKwlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSBz dGFydHZhbHVlOworCWZjaW5mby0+YXJnc1swXS5pc251bGwgPSBzdGFydGlzbnVsbDsKKwlmY2lu Zm8tPmFyZ3NbMV0udmFsdWUgPSBlbmR2YWx1ZTsKKwlmY2luZm8tPmFyZ3NbMV0uaXNudWxsID0g ZW5kaXNudWxsOworCisJcmVzdWx0ID0gcmFuZ2VfY29uc3RydWN0b3IyKGZjaW5mbyk7CisJaWYg KGZjaW5mby0+aXNudWxsKQorCQllbG9nKEVSUk9SLCAiZnVuY3Rpb24gJXUgcmV0dXJuZWQgTlVM TCIsIGZsaW5mby5mbl9vaWQpOworCisJcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvbHN5c2NhY2hlLmMKaW5kZXggZTlhM2MxNDZkMTEuLmYwNzBhOWZhNzk2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9k LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcmFuZ2UuaCIKQEAgLTk5NSw2ICs5 OTYsNjggQEAgZ2V0X2F0dG9wdGlvbnMoT2lkIHJlbGlkLCBpbnQxNiBhdHRudW0pCiAJcmV0dXJu IHJlc3VsdDsKIH0KIAorLyoJCQkJLS0tLS0tLS0tLSBQR19QRVJJT0QgQ0FDSEUgLS0tLS0tLS0t LQkJCQkgKi8KKworLyoKKyAqIGdldF9wZXJpb2RuYW1lIC0gZ2l2ZW4gaXRzIE9JRCwgbG9vayB1 cCBhIHBlcmlvZAorICoKKyAqIElmIG1pc3Npbmdfb2sgaXMgZmFsc2UsIHRocm93IGFuIGVycm9y IGlmIHRoZSBwZXJpb2QgaXMgbm90IGZvdW5kLgorICogSWYgdHJ1ZSwganVzdCByZXR1cm4gSW52 YWxpZE9pZC4KKyAqLworY2hhciAqCitnZXRfcGVyaW9kbmFtZShPaWQgcGVyaW9kaWQsIGJvb2wg bWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHA7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShQ RVJJT0RPSUQsCisJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShwZXJpb2RpZCkpOworCWlmIChIZWFw VHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfcGVyaW9kIHBlcmlvZF90dXAgPSAoRm9y bV9wZ19wZXJpb2QpIEdFVFNUUlVDVCh0cCk7CisJCWNoYXIJICAgKnJlc3VsdDsKKworCQlyZXN1 bHQgPSBwc3RyZHVwKE5hbWVTdHIocGVyaW9kX3R1cC0+cGVybmFtZSkpOworCQlSZWxlYXNlU3lz Q2FjaGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCWlmICghbWlzc2luZ19vaykKKwkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAlZCIsCisJCQkgcGVy aW9kaWQpOworCXJldHVybiBOVUxMOworfQorCisvKgorICogZ2V0X3BlcmlvZF9vaWQgLSBnZXRz IGl0cyByZWxhdGlvbiBhbmQgbmFtZSwgbG9vayB1cCBhIHBlcmlvZAorICoKKyAqIElmIG1pc3Np bmdfb2sgaXMgZmFsc2UsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYXN0IGlzIG5vdCBmb3VuZC4g IElmCisgKiB0cnVlLCBqdXN0IHJldHVybiBJbnZhbGlkT2lkLgorICovCitPaWQKK2dldF9wZXJp b2Rfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hhciAqcGVyaW9kbmFtZSwgYm9vbCBtaXNzaW5nX29r KQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUs CisJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkgUG9pbnRlckdldERhdHVt KHBlcmlvZG5hbWUpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1f cGdfcGVyaW9kIHBlcmlvZF90dXAgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVCh0cCk7CisJ CU9pZCByZXN1bHQ7CisKKwkJcmVzdWx0ID0gcGVyaW9kX3R1cC0+b2lkOworCQlSZWxlYXNlU3lz Q2FjaGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCWlmICghbWlzc2luZ19vaykKKwkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAlcyIsCisJCQkgcGVy aW9kbmFtZSk7CisJcmV0dXJuIEludmFsaWRPaWQ7Cit9CisKIC8qCQkJCS0tLS0tLS0tLS0gUEdf Q0FTVCBDQUNIRSAtLS0tLS0tLS0tCQkJCQkgKi8KIAogLyoKQEAgLTM1MDksNiArMzU3MiwzMCBA QCBnZXRfbXVsdGlyYW5nZV9yYW5nZShPaWQgbXVsdGlyYW5nZU9pZCkKIAkJcmV0dXJuIEludmFs aWRPaWQ7CiB9CiAKK09pZAorZ2V0X3N1YnR5cGVfcmFuZ2UoT2lkIHN1YnR5cGVPaWQpCit7CisJ Q2F0Q0xpc3QgKmNhdGxpc3Q7CisJT2lkCXJlc3VsdCA9IEludmFsaWRPaWQ7CisKKwljYXRsaXN0 ID0gU2VhcmNoU3lzQ2FjaGVMaXN0MShSQU5HRVNVQlRZUEUsIE9iamVjdElkR2V0RGF0dW0oc3Vi dHlwZU9pZCkpOworCisJaWYgKGNhdGxpc3QtPm5fbWVtYmVycyA9PSAxKQorCXsKKwkJSGVhcFR1 cGxlCXR1cGxlID0gJmNhdGxpc3QtPm1lbWJlcnNbMF0tPnR1cGxlOworCQlGb3JtX3BnX3Jhbmdl IHJuZ3R1cCA9IChGb3JtX3BnX3JhbmdlKSBHRVRTVFJVQ1QodHVwbGUpOworCQlyZXN1bHQgPSBy bmd0dXAtPnJuZ3R5cGlkOworCQlSZWxlYXNlQ2F0Q2FjaGVMaXN0KGNhdGxpc3QpOworCX0KKwll bHNlIGlmIChjYXRsaXN0LT5uX21lbWJlcnMgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfSU5ERVRFUk1JTkFURV9EQVRBVFlQRSksCisJCQkJIGVycm1zZygiYW1i aWd1b3VzIHJhbmdlIGZvciB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHN1YnR5cGVP aWQpKSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoJCQkJLS0tLS0tLS0tLSBQR19JTkRF WCBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCmluZGV4IGQ5N2ViYWZmNWI4Li4wZTgzNTVkNjU5ZSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzUxOSw2ICszNTE5LDcgQEAgX2dldE9iamVjdERlc2NyaXB0 aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCQkJIHN0cmNtcCh0eXBl LCAiREFUQUJBU0UgUFJPUEVSVElFUyIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIkRFRkFV TFQiKSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUsICJGSyBDT05TVFJBSU5UIikgPT0gMCB8fAor CQkJIHN0cmNtcCh0eXBlLCAiUEVSSU9EIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiSU5E RVgiKSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUsICJSVUxFIikgPT0gMCB8fAogCQkJIHN0cmNt cCh0eXBlLCAiVFJJR0dFUiIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDE3MWU1OTE2OTY1Li5i YjhhOGNlMTYzMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC02NjI4LDYgKzY2MjgsNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9yZWx0eXBlOwogCWludAkJ CWlfcmVsb3duZXI7CiAJaW50CQkJaV9yZWxjaGVja3M7CisJaW50CQkJaV9ucGVyaW9kOwogCWlu dAkJCWlfcmVsaGFzaW5kZXg7CiAJaW50CQkJaV9yZWxoYXNydWxlczsKIAlpbnQJCQlpX3JlbHBh Z2VzOwpAQCAtNjcwNSw2ICs2NzA2LDE0IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQg Km51bVRhYmxlcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkJICJjLnJl bGhhc29pZHMsICIpOwogCisJLyogSW4gUEcxNyB1cHdhcmRzIHdlIGhhdmUgUEVSSU9Ecy4gKi8K KwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LAorCQkJCQkJCSAiKFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3BlcmlvZCBXSEVS RSBwZXJyZWxpZCA9IGMub2lkKSBBUyBucGVyaW9kcywgIik7CisJZWxzZQorCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIjAgQVMgbnBlcmlvZHMsICIpOworCiAJaWYgKGZv dXQtPnJlbW90ZVZlcnNpb24gPj0gOTAzMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LAogCQkJCQkJCSAiYy5yZWxpc3BvcHVsYXRlZCwgIik7CkBAIC02ODQyLDYgKzY4NTEsNyBAQCBn ZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJaV9yZWx0eXBlID0gUFFm bnVtYmVyKHJlcywgInJlbHR5cGUiKTsKIAlpX3JlbG93bmVyID0gUFFmbnVtYmVyKHJlcywgInJl bG93bmVyIik7CiAJaV9yZWxjaGVja3MgPSBQUWZudW1iZXIocmVzLCAicmVsY2hlY2tzIik7CisJ aV9ucGVyaW9kID0gUFFmbnVtYmVyKHJlcywgIm5wZXJpb2RzIik7CiAJaV9yZWxoYXNpbmRleCA9 IFBRZm51bWJlcihyZXMsICJyZWxoYXNpbmRleCIpOwogCWlfcmVsaGFzcnVsZXMgPSBQUWZudW1i ZXIocmVzLCAicmVsaGFzcnVsZXMiKTsKIAlpX3JlbHBhZ2VzID0gUFFmbnVtYmVyKHJlcywgInJl bHBhZ2VzIik7CkBAIC02OTI1LDYgKzY5MzUsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXMpCiAJCX0KIAkJdGJsaW5mb1tpXS5yZWx0YWJsZXNwYWNlID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbHRhYmxlc3BhY2UpKTsKIAkJdGJsaW5mb1tpXS5o YXNvaWRzID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxoYXNvaWRzKSwgInQiKSA9 PSAwKTsKKwkJdGJsaW5mb1tpXS5ucGVyaW9kID0gYXRvaShQUWdldHZhbHVlKHJlcywgaSwgaV9u cGVyaW9kKSk7CiAJCXRibGluZm9baV0uaGFzdHJpZ2dlcnMgPSAoc3RyY21wKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3JlbGhhc3RyaWdnZXJzKSwgInQiKSA9PSAwKTsKIAkJdGJsaW5mb1tpXS5yZWxw ZXJzaXN0ZW5jZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVscGVyc2lzdGVuY2UpKTsKIAkJ dGJsaW5mb1tpXS5yZWxpc3BvcHVsYXRlZCA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf cmVsaXNwb3B1bGF0ZWQpLCAidCIpID09IDApOwpAQCAtODU4OSw3ICs4NjAwLDcgQEAgZ2V0VHJh bnNmb3JtcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRyYW5zZm9ybXMpCiAvKgogICogZ2V0VGFi bGVBdHRycyAtCiAgKgkgIGZvciBlYWNoIGludGVyZXN0aW5nIHRhYmxlLCByZWFkIGluZm8gYWJv dXQgaXRzIGF0dHJpYnV0ZXMKLSAqCSAgKG5hbWVzLCB0eXBlcywgZGVmYXVsdCB2YWx1ZXMsIENI RUNLIGNvbnN0cmFpbnRzLCBldGMpCisgKgkgIChuYW1lcywgdHlwZXMsIGRlZmF1bHQgdmFsdWVz LCBDSEVDSyBjb25zdHJhaW50cywgUEVSSU9EcywgZXRjKQogICoKICAqCW1vZGlmaWVzIHRibGlu Zm8KICAqLwpAQCAtODY0Miw2ICs4NjUzLDggQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0 LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJZm9yIChpbnQgaSA9IDA7IGkg PCBudW1UYWJsZXM7IGkrKykKIAl7CiAJCVRhYmxlSW5mbyAgKnRiaW5mbyA9ICZ0YmxpbmZvW2ld OworCQlpbnQJCQluZHVtcGFibGVjaGVja3M7CS8qIG51bWJlciBvZiBDSEVDSyBjb25zdHJhaW50 cyB0aGF0IGRvCisJCQkJCQkJCQkJICAgbm90IGJlbG9uZyB0byBhIHBlcmlvZCAqLwogCiAJCS8q IERvbid0IGJvdGhlciB0byBjb2xsZWN0IGluZm8gZm9yIHNlcXVlbmNlcyAqLwogCQlpZiAodGJp bmZvLT5yZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCkBAIC04NjU2LDcgKzg2NjksOCBAQCBn ZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRh YmxlcykKIAkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcih0YmxvaWRzLCAnLCcpOwogCQlhcHBlbmRQ UUV4cEJ1ZmZlcih0YmxvaWRzLCAiJXUiLCB0YmluZm8tPmRvYmouY2F0SWQub2lkKTsKIAotCQlp ZiAodGJpbmZvLT5uY2hlY2sgPiAwKQorCQluZHVtcGFibGVjaGVja3MgPSB0YmluZm8tPm5jaGVj ayAtIHRiaW5mby0+bnBlcmlvZDsKKwkJaWYgKG5kdW1wYWJsZWNoZWNrcyA+IDApCiAJCXsKIAkJ CS8qIEFsc28gbWFrZSBhIGxpc3Qgb2YgdGhlIG9uZXMgd2l0aCBjaGVjayBjb25zdHJhaW50cyAq LwogCQkJaWYgKGNoZWNrb2lkcy0+bGVuID4gMSkgLyogZG8gd2UgaGF2ZSBtb3JlIHRoYW4gdGhl ICd7Jz8gKi8KQEAgLTkxOTUsMTUgKzkyMDksMzYgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCXBnX2xvZ19pbmZvKCJm aW5kaW5nIHRhYmxlIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAKIAkJcmVzZXRQUUV4cEJ1ZmZlcihx KTsKLQkJYXBwZW5kUFFFeHBCdWZmZXIocSwKLQkJCQkJCSAgIlNFTEVDVCBjLnRhYmxlb2lkLCBj Lm9pZCwgY29ucmVsaWQsIGNvbm5hbWUsICIKLQkJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X2Nv bnN0cmFpbnRkZWYoYy5vaWQpIEFTIGNvbnNyYywgIgotCQkJCQkJICAiY29uaXNsb2NhbCwgY29u dmFsaWRhdGVkICIKLQkJCQkJCSAgIkZST00gdW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10p IEFTIHNyYyh0YmxvaWQpXG4iCi0JCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWlu dCBjIE9OIChzcmMudGJsb2lkID0gYy5jb25yZWxpZClcbiIKLQkJCQkJCSAgIldIRVJFIGNvbnR5 cGUgPSAnYycgIgotCQkJCQkJICAiT1JERVIgQlkgYy5jb25yZWxpZCwgYy5jb25uYW1lIiwKLQkJ CQkJCSAgY2hlY2tvaWRzLT5kYXRhKTsKKwkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcw MDAwKQorCQl7CisJCQkvKgorCQkJICogUEVSSU9EcyB3ZXJlIGFkZGVkIGluIHYxNyBhbmQgd2Ug ZG9uJ3QgZHVtcCBDSEVDSworCQkJICogY29uc3RyYWludHMgZm9yIHRoZW0uCisJCQkgKi8KKwkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkJICAiU0VMRUNUIGMudGFibGVvaWQsIGMub2lk LCBjb25yZWxpZCwgY29ubmFtZSwgIgorCQkJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X2NvbnN0 cmFpbnRkZWYoYy5vaWQpIEFTIGNvbnNyYywgIgorCQkJCQkJCSAgImNvbmlzbG9jYWwsIGNvbnZh bGlkYXRlZCAiCisJCQkJCQkJICAiRlJPTSB1bm5lc3QoJyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkg QVMgc3JjKHRibG9pZClcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWlu dCBjIE9OIChzcmMudGJsb2lkID0gYy5jb25yZWxpZClcbiIKKwkJCQkJCQkgICJXSEVSRSBjb250 eXBlID0gJ2MnICIKKwkJCQkJCQkgICIgICBBTkQgTk9UIEVYSVNUUyAoU0VMRUNUIEZST00gcGdf cGVyaW9kICIKKwkJCQkJCQkgICIgICAgICAgICAgICAgICAgICAgV0hFUkUgKHBlcnJlbGlkLCBw ZXJjb25zdHJhaW50KSA9IChjb25yZWxpZCwgYy5vaWQpKSAiCisJCQkJCQkJICAiT1JERVIgQlkg Yy5jb25yZWxpZCwgYy5jb25uYW1lIiwKKwkJCQkJCQkgIGNoZWNrb2lkcy0+ZGF0YSk7CisJCX0K KwkJZWxzZQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLAorCQkJCQkJCSAgIlNFTEVDVCBj LnRhYmxlb2lkLCBjLm9pZCwgY29ucmVsaWQsIGNvbm5hbWUsICIKKwkJCQkJCQkgICJwZ19jYXRh bG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkKSBBUyBjb25zcmMsICIKKwkJCQkJCQkgICJj b25pc2xvY2FsLCBjb252YWxpZGF0ZWQgIgorCQkJCQkJCSAgIkZST00gdW5uZXN0KCclcyc6OnBn X2NhdGFsb2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4iCisJCQkJCQkJICAiSk9JTiBwZ19jYXRh bG9nLnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMuY29ucmVsaWQpXG4iCisJCQkJ CQkJICAiV0hFUkUgY29udHlwZSA9ICdjJyAiCisJCQkJCQkJICAiT1JERVIgQlkgYy5jb25yZWxp ZCwgYy5jb25uYW1lIiwKKwkJCQkJCQkgIGNoZWNrb2lkcy0+ZGF0YSk7CisJCX0KIAogCQlyZXMg PSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKIApAQCAt OTIyNSw2ICs5MjYwLDcgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g KnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQlPaWQJCQljb25yZWxpZCA9IGF0b29pZChQUWdl dHZhbHVlKHJlcywgaiwgaV9jb25yZWxpZCkpOwogCQkJVGFibGVJbmZvICAqdGJpbmZvID0gTlVM TDsKIAkJCWludAkJCW51bWNvbnM7CisJCQlpbnQJCQluZHVtcGFibGVjaGVja3M7CiAKIAkJCS8q IENvdW50IHJvd3MgZm9yIHRoaXMgdGFibGUgKi8KIAkJCWZvciAobnVtY29ucyA9IDE7IG51bWNv bnMgPCBudW1Db25zdHJzIC0gajsgbnVtY29ucysrKQpAQCAtOTI0NCwxMiArOTI4MCwxMyBAQCBn ZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRh YmxlcykKIAkJCWlmIChjdXJ0YmxpbmR4ID49IG51bVRhYmxlcykKIAkJCQlwZ19mYXRhbCgidW5y ZWNvZ25pemVkIHRhYmxlIE9JRCAldSIsIGNvbnJlbGlkKTsKIAotCQkJaWYgKG51bWNvbnMgIT0g dGJpbmZvLT5uY2hlY2spCisJCQluZHVtcGFibGVjaGVja3MgPSB0YmluZm8tPm5jaGVjayAtIHRi aW5mby0+bnBlcmlvZDsKKwkJCWlmIChudW1jb25zICE9IG5kdW1wYWJsZWNoZWNrcykKIAkJCXsK IAkJCQlwZ19sb2dfZXJyb3IobmdldHRleHQoImV4cGVjdGVkICVkIGNoZWNrIGNvbnN0cmFpbnQg b24gdGFibGUgXCIlc1wiIGJ1dCBmb3VuZCAlZCIsCiAJCQkJCQkJCQkgICJleHBlY3RlZCAlZCBj aGVjayBjb25zdHJhaW50cyBvbiB0YWJsZSBcIiVzXCIgYnV0IGZvdW5kICVkIiwKLQkJCQkJCQkJ CSAgdGJpbmZvLT5uY2hlY2spLAotCQkJCQkJCSB0YmluZm8tPm5jaGVjaywgdGJpbmZvLT5kb2Jq Lm5hbWUsIG51bWNvbnMpOworCQkJCQkJCQkJICBuZHVtcGFibGVjaGVja3MpLAorCQkJCQkJCSBu ZHVtcGFibGVjaGVja3MsIHRiaW5mby0+ZG9iai5uYW1lLCBudW1jb25zKTsKIAkJCQlwZ19sb2df ZXJyb3JfaGludCgiVGhlIHN5c3RlbSBjYXRhbG9ncyBtaWdodCBiZSBjb3JydXB0ZWQuIik7CiAJ CQkJZXhpdF9uaWNlbHkoMSk7CiAJCQl9CkBAIC05MzA4LDYgKzkzNDUsODAgQEAgZ2V0VGFibGVB dHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJ CVBRY2xlYXIocmVzKTsKIAl9CiAKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bVRhYmxlczsgaSsr KQorCXsKKwkJVGFibGVJbmZvICAqdGJpbmZvID0gJnRibGluZm9baV07CisKKwkJLyoKKwkJICog R2V0IGluZm8gYWJvdXQgUEVSSU9EIGRlZmluaXRpb25zCisJCSAqLworCQlpZiAodGJpbmZvLT5u cGVyaW9kID4gMCkKKwkJeworCQkJUGVyaW9kSW5mbyAqcGVyaW9kczsKKwkJCWludAkJCW51bVBl cmlvZHM7CisJCQlpbnQJCQlqOworCisJCQkvKiBXZSBzaG91bGRuJ3QgaGF2ZSBhbnkgcGVyaW9k cyBiZWZvcmUgdjE3ICovCisJCQlBc3NlcnQoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDAp OworCisJCQlwZ19sb2dfaW5mbygiZmluZGluZyBwZXJpb2RzIGZvciB0YWJsZSBcIiVzLiVzXCIi LAorCQkJCQkJdGJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJdGJpbmZv LT5kb2JqLm5hbWUpOworCisJCQlyZXNldFBRRXhwQnVmZmVyKHEpOworCQkJYXBwZW5kUFFFeHBC dWZmZXIocSwKKwkJCQkiU0VMRUNUIHAudGFibGVvaWQsIHAub2lkLCBwLnBlcm5hbWUsICIKKwkJ CQkiICAgICAgIHNhLmF0dG5hbWUgQVMgcGVyc3RhcnQsIGVhLmF0dG5hbWUgQVMgcGVyZW5kLCAi CisJCQkJIiAgICAgICByLnR5cG5hbWUgQVMgcm5ndHlwZSwgIgorCQkJCSIgICAgICAgYy5jb25u YW1lIEFTIGNvbm5hbWUgIgorCQkJCSJGUk9NIHBnX2NhdGFsb2cucGdfcGVyaW9kIEFTIHAgIgor CQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIEFTIHNhIE9OIChzYS5hdHRyZWxpZCwg c2EuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnN0YXJ0KSAiCisJCQkJIkpPSU4gcGdfY2F0 YWxvZy5wZ19hdHRyaWJ1dGUgQVMgZWEgT04gKGVhLmF0dHJlbGlkLCBlYS5hdHRudW0pID0gKHAu cGVycmVsaWQsIHAucGVyZW5kKSAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUg QVMgcmEgT04gKHJhLmF0dHJlbGlkLCByYS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVycmFu Z2UpICIKKwkJCQkiSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgQVMgciBPTiByLm9pZCA9IHJhLmF0 dHR5cGlkICIKKwkJCQkiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgQVMgYyBPTiBjLm9p ZCA9IHAucGVyY29uc3RyYWludCAiCisJCQkJIldIRVJFIHAucGVycmVsaWQgPSAnJXUnOjpwZ19j YXRhbG9nLm9pZCAiCisJCQkJIk9SREVSIEJZIHAucGVybmFtZSIsCisJCQkJdGJpbmZvLT5kb2Jq LmNhdElkLm9pZCk7CisKKwkJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxLT5kYXRhLCBQ R1JFU19UVVBMRVNfT0spOworCisJCQkvKgorCQkJICogSWYgd2UgZGlkbid0IGdldCB0aGUgbnVt YmVyIG9mIHJvd3Mgd2UgdGhvdWdodCB3ZSB3ZXJlIGdvaW5nIHRvLAorCQkJICogdGhlbiB0aG9z ZSBKT0lOcyBkaWRuJ3Qgd29yay4KKwkJCSAqLworCQkJbnVtUGVyaW9kcyA9IFBRbnR1cGxlcyhy ZXMpOworCQkJaWYgKG51bVBlcmlvZHMgIT0gdGJpbmZvLT5ucGVyaW9kKQorCQkJeworCQkJCXBn X2xvZ19pbmZvKG5nZXR0ZXh0KCJleHBlY3RlZCAlZCBwZXJpb2Qgb24gdGFibGUgXCIlc1wiIGJ1 dCBmb3VuZCAlZCIsCisJCQkJCQkJCQkgImV4cGVjdGVkICVkIHBlcmlvZHMgb24gdGFibGUgXCIl c1wiIGJ1dCBmb3VuZCAlZCIsCisJCQkJCQkJCQkgdGJpbmZvLT5ucGVyaW9kKSwKKwkJCQkJCQl0 YmluZm8tPm5wZXJpb2QsIHRiaW5mby0+ZG9iai5uYW1lLCBudW1QZXJpb2RzKTsKKwkJCQlwZ19s b2dfaW5mbygiKFRoZSBzeXN0ZW0gY2F0YWxvZ3MgbWlnaHQgYmUgY29ycnVwdGVkLikiKTsKKwkJ CQlleGl0X25pY2VseSgxKTsKKwkJCX0KKworCQkJcGVyaW9kcyA9IChQZXJpb2RJbmZvICopIHBn X21hbGxvYyhudW1QZXJpb2RzICogc2l6ZW9mKFBlcmlvZEluZm8pKTsKKwkJCXRiaW5mby0+cGVy aW9kcyA9IHBlcmlvZHM7CisKKwkJCWZvciAoaiA9IDA7IGogPCBudW1QZXJpb2RzOyBqKyspCisJ CQl7CisJCQkJcGVyaW9kc1tqXS5kb2JqLm9ialR5cGUgPSBET19QRVJJT0Q7CisJCQkJcGVyaW9k c1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBqLCAwKSk7 CisJCQkJcGVyaW9kc1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aiwgMSkpOworCQkJCUFzc2lnbkR1bXBJZCgmcGVyaW9kc1tqXS5kb2JqKTsKKwkJCQlwZXJpb2Rz W2pdLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaiwgMikpOworCQkJCXBl cmlvZHNbal0uZG9iai5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFtZXNwYWNlOworCQkJCXBl cmlvZHNbal0ucGVydGFibGUgPSB0YmluZm87CisJCQkJcGVyaW9kc1tqXS5wZXJzdGFydCA9IHBn X3N0cmR1cChQUWdldHZhbHVlKHJlcywgaiwgMykpOworCQkJCXBlcmlvZHNbal0ucGVyZW5kID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCA0KSk7CisJCQkJcGVyaW9kc1tqXS5ybmd0eXBl ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCA1KSk7CisJCQkJcGVyaW9kc1tqXS5jb25u YW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCA2KSk7CisJCQl9CisJCQlQUWNsZWFy KHJlcyk7CisJCX0KKwl9CisKIAlkZXN0cm95UFFFeHBCdWZmZXIocSk7CiAJZGVzdHJveVBRRXhw QnVmZmVyKHRibG9pZHMpOwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcihjaGVja29pZHMpOwpAQCAtMTA1 NzgsNiArMTA2ODksOCBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFi bGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fRktfQ09OU1RSQUlOVDoKIAkJCWR1bXBDb25zdHJh aW50KGZvdXQsIChjb25zdCBDb25zdHJhaW50SW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQlj YXNlIERPX1BFUklPRDoKKwkJCWJyZWFrOwogCQljYXNlIERPX1BST0NMQU5HOgogCQkJZHVtcFBy b2NMYW5nKGZvdXQsIChjb25zdCBQcm9jTGFuZ0luZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAg LTE2MTMwLDYgKzE2MjQzLDMzIEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25z dCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQl9CiAJCQl9CiAKKwkJCS8qCisJCQkgKiBBZGQgbm9u LWluaGVyaXRlZCBQRVJJT0QgZGVmaW5pdGlvbnMsIGlmIGFueS4KKwkJCSAqLworCQkJZm9yIChq ID0gMDsgaiA8IHRiaW5mby0+bnBlcmlvZDsgaisrKQorCQkJeworCQkJCVBlcmlvZEluZm8gKnBl cmlvZCA9ICYodGJpbmZvLT5wZXJpb2RzW2pdKTsKKworCQkJCWNoYXIJICAgKm5hbWUgPSBwZ19z dHJkdXAoZm10SWQocGVyaW9kLT5kb2JqLm5hbWUpKTsKKwkJCQljaGFyCSAgICpzdGFydCA9IHBn X3N0cmR1cChmbXRJZChwZXJpb2QtPnBlcnN0YXJ0KSk7CisJCQkJY2hhcgkgICAqZW5kID0gcGdf c3RyZHVwKGZtdElkKHBlcmlvZC0+cGVyZW5kKSk7CisJCQkJY2hhcgkgICAqcm5ndHlwZSA9IHBn X3N0cmR1cChmbXRJZChwZXJpb2QtPnJuZ3R5cGUpKTsKKwkJCQljaGFyCSAgICpjb25uYW1lID0g cGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+Y29ubmFtZSkpOworCisJCQkJaWYgKGFjdHVhbF9hdHRz ID09IDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICIgKFxuICAgICIpOworCQkJCWVs c2UKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIixcbiAgICAiKTsKKworCQkJCS8qIEFs d2F5cyBzYXkgY29sZXhpc3RzIHNvIHdlIGNhbiBqdXN0IHByaW50IHRoZSBHRU5FUkFURUQgY29s dW1uICovCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlBFUklPRCBGT1IgJXMgKCVzLCAlcykg IgorCQkJCQkJIldJVEggKHJhbmdldHlwZSA9ICVzLCBjaGVja19jb25zdHJhaW50X25hbWUgPSAl cywgY29sZXhpc3RzID0gdHJ1ZSkiLAorCQkJCQkJCQkgIG5hbWUsIHN0YXJ0LCBlbmQsCisJCQkJ CQkJCSAgcm5ndHlwZSwgY29ubmFtZSk7CisKKwkJCQlhY3R1YWxfYXR0cysrOworCQkJfQorCiAJ CQkvKgogCQkJICogQWRkIG5vbi1pbmhlcml0ZWQgQ0hFQ0sgY29uc3RyYWludHMsIGlmIGFueS4K IAkJCSAqCkBAIC0xNjEzOCw3ICsxNjI3OCw3IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpm b3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCSAqIFBBUlRJVElPTiB0aGF0IHdlJ2xs IGVtaXQgbGF0ZXIgZXhwZWN0cyB0aGUgY29uc3RyYWludCB0byBiZQogCQkJICogdGhlcmUuICAo Tm8gbmVlZCB0byBmaXggY29uaXNsb2NhbDogQVRUQUNIIFBBUlRJVElPTiBkb2VzIHRoYXQpCiAJ CQkgKi8KLQkJCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVjazsgaisrKQorCQkJZm9yIChq ID0gMDsgaiA8IHRiaW5mby0+bmNoZWNrIC0gdGJpbmZvLT5ucGVyaW9kOyBqKyspCiAJCQl7CiAJ CQkJQ29uc3RyYWludEluZm8gKmNvbnN0ciA9ICYodGJpbmZvLT5jaGVja2V4cHJzW2pdKTsKIApA QCAtMTYzNTYsNyArMTY0OTYsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29u c3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkgKiBGb3IgcGFydGl0aW9ucywgdGhleSB3ZXJlIGFs cmVhZHkgZHVtcGVkLCBhbmQgY29uaXNsb2NhbAogCQkJICogZG9lc24ndCBuZWVkIGZpeGluZy4K IAkJCSAqLwotCQkJZm9yIChrID0gMDsgayA8IHRiaW5mby0+bmNoZWNrOyBrKyspCisJCQlmb3Ig KGsgPSAwOyBrIDwgdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7IGsrKykKIAkJCXsK IAkJCQlDb25zdHJhaW50SW5mbyAqY29uc3RyID0gJih0YmluZm8tPmNoZWNrZXhwcnNba10pOwog CkBAIC0xNjY1OCw3ICsxNjc5OCw3IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBj b25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJZHVtcFRhYmxlU2VjTGFiZWwoZm91dCwgdGJpbmZv LCByZWx0eXBlbmFtZSk7CiAKIAkvKiBEdW1wIGNvbW1lbnRzIG9uIGlubGluZWQgdGFibGUgY29u c3RyYWludHMgKi8KLQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5uY2hlY2s7IGorKykKKwlmb3Ig KGogPSAwOyBqIDwgdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7IGorKykKIAl7CiAJ CUNvbnN0cmFpbnRJbmZvICpjb25zdHIgPSAmKHRiaW5mby0+Y2hlY2tleHByc1tqXSk7CiAKQEAg LTE4NjI3LDYgKzE4NzY3LDcgQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmpl Y3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERPX1RSSUdHRVI6CiAJCQljYXNlIERP X0VWRU5UX1RSSUdHRVI6CiAJCQljYXNlIERPX0RFRkFVTFRfQUNMOgorCQkJY2FzZSBET19QRVJJ T0Q6CiAJCQljYXNlIERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CiAJCQljYXNl IERPX1BVQkxJQ0FUSU9OX1JFTDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDliYzkzNTIwYjQ1Li4wNGM5ZjE1 ZjZlYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01OSw2ICs1OSw3IEBAIHR5cGVkZWYgZW51bQogCURPX1RS SUdHRVIsCiAJRE9fQ09OU1RSQUlOVCwKIAlET19GS19DT05TVFJBSU5ULAkJCS8qIHNlZSBub3Rl IGZvciBDb25zdHJhaW50SW5mbyAqLworCURPX1BFUklPRCwKIAlET19QUk9DTEFORywKIAlET19D QVNULAogCURPX1RBQkxFX0RBVEEsCkBAIC0zMDAsMTIgKzMwMSwxNCBAQCB0eXBlZGVmIHN0cnVj dCBfdGFibGVJbmZvCiAJYm9vbAkJcm93c2VjOwkJCS8qIGlzIHJvdyBzZWN1cml0eSBlbmFibGVk PyAqLwogCWJvb2wJCWZvcmNlcm93c2VjOwkvKiBpcyByb3cgc2VjdXJpdHkgZm9yY2VkPyAqLwog CWJvb2wJCWhhc29pZHM7CQkvKiBkb2VzIGl0IGhhdmUgT0lEcz8gKi8KKwlib29sCQloYXNwZXJp b2RzOwkJLyogZG9lcyBpdCBoYXZlIGFueSBwZXJpb2RzPyAqLwogCXVpbnQzMgkJZnJvemVueGlk OwkJLyogdGFibGUncyByZWxmcm96ZW54aWQgKi8KIAl1aW50MzIJCW1pbm14aWQ7CQkvKiB0YWJs ZSdzIHJlbG1pbm14aWQgKi8KIAlPaWQJCQl0b2FzdF9vaWQ7CQkvKiB0b2FzdCB0YWJsZSdzIE9J RCwgb3IgMCBpZiBub25lICovCiAJdWludDMyCQl0b2FzdF9mcm96ZW54aWQ7CS8qIHRvYXN0IHRh YmxlJ3MgcmVsZnJvemVueGlkLCBpZiBhbnkgKi8KIAl1aW50MzIJCXRvYXN0X21pbm14aWQ7CS8q IHRvYXN0IHRhYmxlJ3MgcmVsbWlubXhpZCAqLwogCWludAkJCW5jaGVjazsJCQkvKiAjIG9mIENI RUNLIGV4cHJlc3Npb25zICovCisJaW50CQkJbnBlcmlvZDsJCS8qICMgb2YgUEVSSU9EIGRlZmlu aXRpb25zICovCiAJT2lkCQkJcmVsdHlwZTsJCS8qIE9JRCBvZiB0YWJsZSdzIGNvbXBvc2l0ZSB0 eXBlLCBpZiBhbnkgKi8KIAlPaWQJCQlyZWxvZnR5cGU7CQkvKiB1bmRlcmx5aW5nIHR5cGUgZm9y IHR5cGVkIHRhYmxlICovCiAJT2lkCQkJZm9yZWlnbl9zZXJ2ZXI7IC8qIGZvcmVpZ24gc2VydmVy IG9pZCwgaWYgYXBwbGljYWJsZSAqLwpAQCAtMzM2LDYgKzMzOSw3IEBAIHR5cGVkZWYgc3RydWN0 IF90YWJsZUluZm8KIAljaGFyCSAgICphdHRzdG9yYWdlOwkJLyogYXR0cmlidXRlIHN0b3JhZ2Ug c2NoZW1lICovCiAJY2hhcgkgICAqdHlwc3RvcmFnZTsJCS8qIHR5cGUgc3RvcmFnZSBzY2hlbWUg Ki8KIAlib29sCSAgICphdHRpc2Ryb3BwZWQ7CS8qIHRydWUgaWYgYXR0ciBpcyBkcm9wcGVkOyBk b24ndCBkdW1wIGl0ICovCisJYm9vbAkgICAqYXR0aXNwZXJpb2Q7CS8qIHRydWUgaWYgYXR0ciBp cyBhIFBFUklPRDsgZG9uJ3QgZHVtcCBpdCAqLwogCWNoYXIJICAgKmF0dGlkZW50aXR5OwogCWNo YXIJICAgKmF0dGdlbmVyYXRlZDsKIAlpbnQJCSAgICphdHRsZW47CQkJLyogYXR0cmlidXRlIGxl bmd0aCwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAqLwpAQCAtMzU1LDYgKzM1OSw3IEBAIHR5cGVk ZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29sCSAgICpub3RudWxsX2luaDsJLyogdHJ1ZSBpZiBO T1QgTlVMTCBoYXMgbm8gbG9jYWwgZGVmaW5pdGlvbiAqLwogCXN0cnVjdCBfYXR0ckRlZkluZm8g KiphdHRyZGVmczsgLyogREVGQVVMVCBleHByZXNzaW9ucyAqLwogCXN0cnVjdCBfY29uc3RyYWlu dEluZm8gKmNoZWNrZXhwcnM7IC8qIENIRUNLIGNvbnN0cmFpbnRzICovCisJc3RydWN0IF9wZXJp b2RJbmZvICpwZXJpb2RzOwkvKiBQRVJJT0QgZGVmaW5pdGlvbnMgKi8KIAlib29sCQluZWVkc19v dmVycmlkZTsgLyogaGFzIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgKi8KIAljaGFyCSAg ICphbW5hbWU7CQkJLyogcmVsYXRpb24gYWNjZXNzIG1ldGhvZCAqLwogCkBAIC00ODQsNiArNDg5 LDE2IEBAIHR5cGVkZWYgc3RydWN0IF9jb25zdHJhaW50SW5mbwogCWJvb2wJCXNlcGFyYXRlOwkJ LyogdHJ1ZSBpZiBtdXN0IGR1bXAgYXMgc2VwYXJhdGUgaXRlbSAqLwogfSBDb25zdHJhaW50SW5m bzsKIAordHlwZWRlZiBzdHJ1Y3QgX3BlcmlvZEluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2Jq OworCVRhYmxlSW5mbyAgKnBlcnRhYmxlOworCWNoYXIJICAgKnBlcnN0YXJ0OwkJLyogdGhlIG5h bWUgb2YgdGhlIHN0YXJ0IGNvbHVtbiAqLworCWNoYXIJICAgKnBlcmVuZDsJCQkvKiB0aGUgbmFt ZSBvZiB0aGUgZW5kIGNvbHVtbiAqLworCWNoYXIJICAgKnJuZ3R5cGU7CQkvKiB0aGUgbmFtZSBv ZiB0aGUgcmFuZ2UgdHlwZSAqLworCWNoYXIJICAgKmNvbm5hbWU7CQkvKiB0aGUgbmFtZSBvZiB0 aGUgQ0hFQ0sgY29uc3RyYWludCAqLworfSBQZXJpb2RJbmZvOworCiB0eXBlZGVmIHN0cnVjdCBf cHJvY0xhbmdJbmZvCiB7CiAJRHVtcGFibGVPYmplY3QgZG9iajsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQu YwppbmRleCA0Y2I3NTRjYWE1NS4uNTYwMmNkYTRkNWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK QEAgLTg2LDYgKzg2LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19DT05T VFJBSU5ULAogCVBSSU9fSU5ERVgsCiAJUFJJT19JTkRFWF9BVFRBQ0gsCisJUFJJT19QRVJJT0Qs CiAJUFJJT19TVEFUU0VYVCwKIAlQUklPX1JVTEUsCiAJUFJJT19UUklHR0VSLApAQCAtMTIxLDYg KzEyMiw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RP X0FUVFJERUZdID0gUFJJT19BVFRSREVGLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtE T19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCisJW0RPX1BFUklPRF0gPSBQUklP X1BFUklPRCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFUU0VYVCwKIAlbRE9fUlVMRV0gPSBQ UklPX1JVTEUsCiAJW0RPX1RSSUdHRVJdID0gUFJJT19UUklHR0VSLApAQCAtMTM3MSw2ICsxMzcz LDExIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAq YnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJGSyBDT05TVFJBSU5UICVzICAoSUQgJWQgT0lEICV1 KSIsCiAJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQly ZXR1cm47CisJCWNhc2UgRE9fUEVSSU9EOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJ CQkgIlBFUklPRCAlcyAgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1 bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX1BST0NMQU5HOgog CQkJc25wcmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIlBST0NFRFVSQUwgTEFOR1VBR0UgJXMg IChJRCAlZCBPSUQgJXUpIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggMWFiODBlYjdjYWMuLjZhMzEyZTk5Y2ZlIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwpAQCAtMTk0Nyw2ICsxOTQ3LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbkZS T00gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSIpOwogCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs ICJcbldIRVJFIGEuYXR0cmVsaWQgPSAnJXMnIEFORCBhLmF0dG51bSA+IDAgQU5EIE5PVCBhLmF0 dGlzZHJvcHBlZCIsIG9pZCk7CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTcwMDAwKQorCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5BTkQgTk9UIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBwZ19j YXRhbG9nLnBnX3BlcmlvZCBwIFdIRVJFIHAucGVycmVsaWQgPSBhLmF0dHJlbGlkIEFORCBwLnBl cnJhbmdlID0gYS5hdHRudW0pIik7CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuT1JE RVIgQlkgYS5hdHRudW07Iik7CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CkBAIC0yMzY5 LDYgKzIzNzEsNDAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAkJUEdyZXN1bHQgICAqcmVzdWx0ID0gTlVMTDsKIAkJaW50CQkJdHVwbGVzID0gMDsK IAorCQkvKiBwcmludCBwZXJpb2RzICovCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE3MDAwMCkK KwkJeworCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICJTRUxFQ1QgcXVvdGVf aWRlbnQocC5wZXJuYW1lKSwgcXVvdGVfaWRlbnQocy5hdHRuYW1lKSBBUyBzdGFydGF0dCwgcXVv dGVfaWRlbnQoZS5hdHRuYW1lKSBBUyBlbmRhdHRcbiIKKwkJCQkJCQkgICJGUk9NIHBnX3Blcmlv ZCBBUyBwXG4iCisJCQkJCQkJICAiSk9JTiBwZ19hdHRyaWJ1dGUgQVMgcyBPTiAocy5hdHRyZWxp ZCwgcy5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyc3RhcnQpXG4iCisJCQkJCQkJICAiSk9J TiBwZ19hdHRyaWJ1dGUgQVMgZSBPTiAoZS5hdHRyZWxpZCwgZS5hdHRudW0pID0gKHAucGVycmVs aWQsIHAucGVyZW5kKVxuIgorCQkJCQkJCSAgIldIRVJFIHAucGVycmVsaWQgPSAnJXMnXG4iCisJ CQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCSAgb2lkKTsKKwkJCXJlc3VsdCA9IFBTUUxl eGVjKGJ1Zi5kYXRhKTsKKwkJCWlmICghcmVzdWx0KQorCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwor CQkJZWxzZQorCQkJCXR1cGxlcyA9IFBRbnR1cGxlcyhyZXN1bHQpOworCisJCQlpZiAodHVwbGVz ID4gMCkKKwkJCXsKKwkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQZXJpb2RzOiIp KTsKKwkJCQlmb3IgKGkgPSAwOyBpIDwgdHVwbGVzOyBpKyspCisJCQkJeworCQkJCQkvKiB1bnRy YW5zbGF0ZWQgY29uc3RyYWludCBuYW1lIGFuZCBkZWYgKi8KKwkJCQkJcHJpbnRmUFFFeHBCdWZm ZXIoJmJ1ZiwgIiAgICAlcyAoJXMsICVzKSIsCisJCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0 LCBpLCAwKSwKKwkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDEpLAorCQkJCQkJCQkJ ICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMikpOworCisJCQkJCXByaW50VGFibGVBZGRGb290ZXIo JmNvbnQsIGJ1Zi5kYXRhKTsKKwkJCQl9CisJCQl9CisJCQlQUWNsZWFyKHJlc3VsdCk7CisJCX0K KwogCQkvKiBwcmludCBpbmRleGVzICovCiAJCWlmICh0YWJsZWluZm8uaGFzaW5kZXgpCiAJCXsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi42MmJiNGZjNjNmYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L01ha2VmaWxlCkBAIC02NSw2ICs2NSw3IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfZm9y ZWlnbl9zZXJ2ZXIuaCBcCiAJcGdfdXNlcl9tYXBwaW5nLmggXAogCXBnX2ZvcmVpZ25fdGFibGUu aCBcCisJcGdfcGVyaW9kLmggXAogCXBnX3BvbGljeS5oIFwKIAlwZ19yZXBsaWNhdGlvbl9vcmln aW4uaCBcCiAJcGdfZGVmYXVsdF9hY2wuaCBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL2RlcGVuZGVuY3kuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCmluZGV4 IDQzNmIwODE3MzhiLi40NTYyM2U4NmE0NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9kZXBlbmRlbmN5LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmgKQEAg LTkzLDYgKzkzLDcgQEAgdHlwZWRlZiBlbnVtIE9iamVjdENsYXNzCiAJT0NMQVNTX0NBU1QsCQkJ CS8qIHBnX2Nhc3QgKi8KIAlPQ0xBU1NfQ09MTEFUSU9OLAkJCS8qIHBnX2NvbGxhdGlvbiAqLwog CU9DTEFTU19DT05TVFJBSU5ULAkJCS8qIHBnX2NvbnN0cmFpbnQgKi8KKwlPQ0xBU1NfUEVSSU9E LAkJCQkvKiBwZ19wZXJpb2QgKi8KIAlPQ0xBU1NfQ09OVkVSU0lPTiwJCQkvKiBwZ19jb252ZXJz aW9uICovCiAJT0NMQVNTX0RFRkFVTFQsCQkJCS8qIHBnX2F0dHJkZWYgKi8KIAlPQ0xBU1NfTEFO R1VBR0UsCQkJLyogcGdfbGFuZ3VhZ2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvaGVhcC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgKaW5kZXggMWQ3ZjgzODBkOTAu LjM1OTJhNDQ0YmQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaApAQCAtMTIxLDYgKzEyMSwxMCBAQCBleHRlcm4g TGlzdCAqQWRkUmVsYXRpb25Ob3ROdWxsQ29uc3RyYWludHMoUmVsYXRpb24gcmVsLAogZXh0ZXJu IHZvaWQgUmVsYXRpb25DbGVhck1pc3NpbmcoUmVsYXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIFNl dEF0dHJNaXNzaW5nKE9pZCByZWxpZCwgY2hhciAqYXR0bmFtZSwgY2hhciAqdmFsdWUpOwogCitl eHRlcm4gT2lkIFN0b3JlUGVyaW9kKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqcGVyaW9kLAor CQkJCQkgICBBdHRyTnVtYmVyIHN0YXJ0bnVtLCBBdHRyTnVtYmVyIGVuZG51bSwKKwkJCQkJICAg QXR0ck51bWJlciByYW5nZW51bSwgT2lkIGNvbm9pZCk7CisKIGV4dGVybiBOb2RlICpjb29rRGVm YXVsdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgTm9kZSAqcmF3X2RlZmF1bHQsCiAJCQkJ CQkgT2lkIGF0dHR5cGlkLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZjcwZDFkYWJhNTIu LmQ0NWFhNWZhODYzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxk CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTYxLDYgKzYxLDcgQEAg Y2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfY29sbGF0aW9uLmgnLAogICAncGdfcGFyYW1ldGVy X2FjbC5oJywKICAgJ3BnX3BhcnRpdGlvbmVkX3RhYmxlLmgnLAorICAncGdfcGVyaW9kLmgnLAog ICAncGdfcmFuZ2UuaCcsCiAgICdwZ190cmFuc2Zvcm0uaCcsCiAgICdwZ19zZXF1ZW5jZS5oJywK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfaW5kZXguaAppbmRleCAzNDYyNTcyZWI1NS4uMGEzYzgxMTFiNjcgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2luZGV4LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgQ0FUQUxPRyhwZ19pbmRleCwyNjEw LEluZGV4UmVsYXRpb25JZCkgQktJX1NDSEVNQV9NQUNSTwogCS8qIHZhcmlhYmxlLWxlbmd0aCBm aWVsZHMgc3RhcnQgaGVyZSwgYnV0IHdlIGFsbG93IGRpcmVjdCBhY2Nlc3MgdG8gaW5ka2V5ICov CiAJaW50MnZlY3RvcglpbmRrZXkgQktJX0ZPUkNFX05PVF9OVUxMOwkvKiBjb2x1bW4gbnVtYmVy cyBvZiBpbmRleGVkIGNvbHMsCiAJCQkJCQkJCQkJCSAqIG9yIDAgKi8KLQogI2lmZGVmIENBVEFM T0dfVkFSTEVOCiAJb2lkdmVjdG9yCWluZGNvbGxhdGlvbiBCS0lfTE9PS1VQX09QVChwZ19jb2xs YXRpb24pIEJLSV9GT1JDRV9OT1RfTlVMTDsJLyogY29sbGF0aW9uIGlkZW50aWZpZXJzICovCiAJ b2lkdmVjdG9yCWluZGNsYXNzIEJLSV9MT09LVVAocGdfb3BjbGFzcykgQktJX0ZPUkNFX05PVF9O VUxMOyAvKiBvcGNsYXNzIGlkZW50aWZpZXJzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3BlcmlvZC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjUwOGNkNDVhMDkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oCkBAIC0wLDAgKzEsNTgg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3BlcmlvZC5oCisgKgkgIGRlZmluaXRp b24gb2YgdGhlICJwZXJpb2QiIHN5c3RlbSBjYXRhbG9nIChwZ19wZXJpb2QpCisgKgorICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIxLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmgKKyAq CisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFu ZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworI2lmbmRlZiBQR19QRVJJT0RfSAorI2RlZmluZSBQR19QRVJJT0RfSAorCisjaW5j bHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZF9kLmgi CisjaW5jbHVkZSAibm9kZXMvYml0bWFwc2V0LmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAq CQlwZ19wZXJpb2QgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVm IHN0cnVjdCBGb3JtRGF0YV9wZ19wZXJpb2QKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FU QUxPRyhwZ19wZXJpb2QsODAwMCxQZXJpb2RSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkv KiBPSUQgb2YgdGhlIHBlcmlvZCAqLworCU5hbWVEYXRhCXBlcm5hbWU7CQkvKiBuYW1lIG9mIHBl cmlvZCAqLworCU9pZAkJCXBlcnJlbGlkOwkJLyogT0lEIG9mIHJlbGF0aW9uIGNvbnRhaW5pbmcg dGhpcyBwZXJpb2QgKi8KKwlpbnQxNgkJcGVyc3RhcnQ7CQkvKiBjb2x1bW4gZm9yIHN0YXJ0IHZh bHVlICovCisJaW50MTYJCXBlcmVuZDsJCQkvKiBjb2x1bW4gZm9yIGVuZCB2YWx1ZSAqLworCWlu dDE2CQlwZXJyYW5nZTsJCS8qIGNvbHVtbiBmb3IgcmFuZ2UgdmFsdWUgKi8KKwlPaWQJCQlwZXJj b25zdHJhaW50OwkvKiBPSUQgb2YgKHN0YXJ0IDwgZW5kKSBjb25zdHJhaW50ICovCit9IEZvcm1E YXRhX3BnX3BlcmlvZDsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcGVyaW9k IGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0 IG9mIHBnX3BlcmlvZCByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRl ZiBGb3JtRGF0YV9wZ19wZXJpb2QgKkZvcm1fcGdfcGVyaW9kOworCitERUNMQVJFX1VOSVFVRV9J TkRFWF9QS0VZKHBnX3BlcmlvZF9vaWRfaW5kZXgsIDgwMDEsIFBlcmlvZE9iamVjdEluZGV4SWQs IHBnX3BlcmlvZCwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBn X3BlcmlvZF9wZXJyZWxpZF9wZXJuYW1lX2luZGV4LCA4MDAyLCBQZXJpb2RSZWxpZE5hbWVJbmRl eElkLCBwZ19wZXJpb2QsIGJ0cmVlKHBlcnJlbGlkIG9pZF9vcHMsIHBlcm5hbWUgbmFtZV9vcHMp KTsKKworTUFLRV9TWVNDQUNIRShQRVJJT0RPSUQsIHBnX3BlcmlvZF9vaWRfaW5kZXgsIDMyKTsK K01BS0VfU1lTQ0FDSEUoUEVSSU9ETkFNRSwgcGdfcGVyaW9kX3BlcnJlbGlkX3Blcm5hbWVfaW5k ZXgsIDMyKTsKKworZXh0ZXJuIHZvaWQgUmVtb3ZlUGVyaW9kQnlJZChPaWQgcGVyaW9kSWQpOwor CitleHRlcm4gT2lkIGdldF9yZWxhdGlvbl9wZXJpb2Rfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hh ciAqcGVybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBCaXRtYXBzZXQgKmdldF9wZXJp b2RfYXR0bm9zKE9pZCByZWxpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19QRVJJT0RfSCAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19yYW5nZS5oCmluZGV4IDBiZDNhYjY4OGJkLi4xMGE5NGRkMTFmMSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcmFuZ2UuaApAQCAtNTksOCArNTksMTAgQEAgdHlwZWRlZiBGb3JtRGF0YV9wZ19y YW5nZSAqRm9ybV9wZ19yYW5nZTsKIAogREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19yYW5n ZV9ybmd0eXBpZF9pbmRleCwgMzU0MiwgUmFuZ2VUeXBpZEluZGV4SWQsIHBnX3JhbmdlLCBidHJl ZShybmd0eXBpZCBvaWRfb3BzKSk7CiBERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19yYW5nZV9ybmdt dWx0aXR5cGlkX2luZGV4LCAyMjI4LCBSYW5nZU11bHRpcmFuZ2VUeXBpZEluZGV4SWQsIHBnX3Jh bmdlLCBidHJlZShybmdtdWx0aXR5cGlkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVY KHBnX3JhbmdlX3JuZ3N1YnR5cGVfcm5ndHlwaWRfaW5kZXgsIDgwMDMsIFJhbmdlU3ViVHlwaWRU eXBpZEluZGV4SWQsIHBnX3JhbmdlLCBidHJlZShybmdzdWJ0eXBlIG9pZF9vcHMsIHJuZ3R5cGlk IG9pZF9vcHMpKTsKIAogTUFLRV9TWVNDQUNIRShSQU5HRVRZUEUsIHBnX3JhbmdlX3JuZ3R5cGlk X2luZGV4LCA0KTsKK01BS0VfU1lTQ0FDSEUoUkFOR0VTVUJUWVBFLCBwZ19yYW5nZV9ybmdzdWJ0 eXBlX3JuZ3R5cGlkX2luZGV4LCA0KTsKIE1BS0VfU1lTQ0FDSEUoUkFOR0VNVUxUSVJBTkdFLCBw Z19yYW5nZV9ybmdtdWx0aXR5cGlkX2luZGV4LCA0KTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVj bWRzLmgKaW5kZXggODVjYmFkM2QwYzIuLjYyOGZhNTM3OTZjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJs ZWNtZHMuaApAQCAtNDAsNyArNDAsOCBAQCBleHRlcm4gTE9DS01PREUgQWx0ZXJUYWJsZUdldExv Y2tMZXZlbChMaXN0ICpjbWRzKTsKIAogZXh0ZXJuIHZvaWQgQVRFeGVjQ2hhbmdlT3duZXIoT2lk IHJlbGF0aW9uT2lkLCBPaWQgbmV3T3duZXJJZCwgYm9vbCByZWN1cnNpbmcsIExPQ0tNT0RFIGxv Y2ttb2RlKTsKIAotZXh0ZXJuIHZvaWQgQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlz dCAqY21kcywgYm9vbCByZWN1cnNlKTsKK2V4dGVybiB2b2lkIEFsdGVyVGFibGVJbnRlcm5hbChP aWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSwKKwkJCQkJCQkgICBzdHJ1Y3QgQWx0 ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKIAogZXh0ZXJuIE9pZAlBbHRlclRhYmxl TW92ZUFsbChBbHRlclRhYmxlTW92ZUFsbFN0bXQgKnN0bXQpOwogCkBAIC0xMDYsNSArMTA3LDYg QEAgZXh0ZXJuIHZvaWQgUmFuZ2VWYXJDYWxsYmFja093bnNSZWxhdGlvbihjb25zdCBSYW5nZVZh ciAqcmVsYXRpb24sCiAJCQkJCQkJCQkJIE9pZCByZWxJZCwgT2lkIG9sZFJlbElkLCB2b2lkICph cmcpOwogZXh0ZXJuIGJvb2wgUGFydENvbnN0cmFpbnRJbXBsaWVkQnlSZWxDb25zdHJhaW50KFJl bGF0aW9uIHNjYW5yZWwsCiAJCQkJCQkJCQkJCQkgTGlzdCAqcGFydENvbnN0cmFpbnQpOworZXh0 ZXJuIE9pZCBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9wZXJpb2QoUGVyaW9kRGVmICpwZXJpb2QpOwog CiAjZW5kaWYJCQkJCQkJLyogVEFCTEVDTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCBjODM5YzhmYjJhNy4uOWE0MDI1MWYyNjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIx NTMsNiArMjE1Myw3IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX09QRVJBVE9S LAogCU9CSkVDVF9PUEZBTUlMWSwKIAlPQkpFQ1RfUEFSQU1FVEVSX0FDTCwKKwlPQkpFQ1RfUEVS SU9ELAogCU9CSkVDVF9QT0xJQ1ksCiAJT0JKRUNUX1BST0NFRFVSRSwKIAlPQkpFQ1RfUFVCTElD QVRJT04sCkBAIC0yMjQxLDYgKzIyNDIsOCBAQCB0eXBlZGVmIGVudW0gQWx0ZXJUYWJsZVR5cGUK IAlBVF9WYWxpZGF0ZUNvbnN0cmFpbnQsCQkvKiB2YWxpZGF0ZSBjb25zdHJhaW50ICovCiAJQVRf QWRkSW5kZXhDb25zdHJhaW50LAkJLyogYWRkIGNvbnN0cmFpbnQgdXNpbmcgZXhpc3RpbmcgaW5k ZXggKi8KIAlBVF9Ecm9wQ29uc3RyYWludCwJCQkvKiBkcm9wIGNvbnN0cmFpbnQgKi8KKwlBVF9B ZGRQZXJpb2QsCQkJCS8qIEFERCBQRVJJT0QgKi8KKwlBVF9Ecm9wUGVyaW9kLAkJCQkvKiBEUk9Q IFBFUklPRCAqLwogCUFUX1JlQWRkQ29tbWVudCwJCQkvKiBpbnRlcm5hbCB0byBjb21tYW5kcy90 YWJsZWNtZHMuYyAqLwogCUFUX0FsdGVyQ29sdW1uVHlwZSwJCQkvKiBhbHRlciBjb2x1bW4gdHlw ZSAqLwogCUFUX0FsdGVyQ29sdW1uR2VuZXJpY09wdGlvbnMsCS8qIGFsdGVyIGNvbHVtbiBPUFRJ T05TICguLi4pICovCkBAIC0yNTA3LDExICsyNTEwLDExIEBAIHR5cGVkZWYgc3RydWN0IFZhcmlh YmxlU2hvd1N0bXQKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlDcmVhdGUgVGFibGUg U3RhdGVtZW50CiAgKgotICogTk9URTogaW4gdGhlIHJhdyBncmFtLnkgb3V0cHV0LCBDb2x1bW5E ZWYgYW5kIENvbnN0cmFpbnQgbm9kZXMgYXJlCi0gKiBpbnRlcm1peGVkIGluIHRhYmxlRWx0cywg YW5kIGNvbnN0cmFpbnRzIGFuZCBubmNvbnN0cmFpbnRzIGFyZSBOSUwuICBBZnRlcgotICogcGFy c2UgYW5hbHlzaXMsIHRhYmxlRWx0cyBjb250YWlucyBqdXN0IENvbHVtbkRlZnMsIG5uY29uc3Ry YWludHMgY29udGFpbnMKLSAqIENvbnN0cmFpbnQgbm9kZXMgb2YgQ09OU1RSX05PVE5VTEwgdHlw ZSBmcm9tIHZhcmlvdXMgc291cmNlcywgYW5kCi0gKiBjb25zdHJhaW50cyBjb250YWlucyBqdXN0 IENPTlNUUl9DSEVDSyBDb25zdHJhaW50IG5vZGVzLgorICogTk9URTogaW4gdGhlIHJhdyBncmFt Lnkgb3V0cHV0LCBDb2x1bW5EZWYsIFBlcmlvZERlZiwgYW5kIENvbnN0cmFpbnQgbm9kZXMgYXJl CisgKiBpbnRlcm1peGVkIGluIHRhYmxlRWx0czsgcGVyaW9kcywgY29uc3RyYWludHMsIGFuZCBu bmNvbnN0cmFpbnRzIGFyZSBOSUwuICBBZnRlcgorICogcGFyc2UgYW5hbHlzaXMsIHRhYmxlRWx0 cyBjb250YWlucyBqdXN0IENvbHVtbkRlZnMsIHBlcmlvZHMgY29udGFpbnMganVzdCBQZXJpb2RE ZWZzLAorICogbm5jb25zdHJhaW50cyBjb250YWlucyBDb25zdHJhaW50IG5vZGVzIG9mIENPTlNU Ul9OT1ROVUxMIHR5cGUgZnJvbSB2YXJpb3VzIHNvdXJjZXMsCisgKiBhbmQgY29uc3RyYWludHMg Y29udGFpbnMganVzdCBDT05TVFJfQ0hFQ0sgQ29uc3RyYWludCBub2Rlcy4KICAqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC0yNTIwLDYgKzI1MjMsNyBAQCB0eXBlZGVmIHN0cnVj dCBDcmVhdGVTdG10CiAJTm9kZVRhZwkJdHlwZTsKIAlSYW5nZVZhciAgICpyZWxhdGlvbjsJCS8q IHJlbGF0aW9uIHRvIGNyZWF0ZSAqLwogCUxpc3QJICAgKnRhYmxlRWx0czsJCS8qIGNvbHVtbiBk ZWZpbml0aW9ucyAobGlzdCBvZiBDb2x1bW5EZWYpICovCisJTGlzdAkgICAqcGVyaW9kczsJCS8q IHBlcmlvZHMgKGxpc3Qgb2YgUGVyaW9kRGVmIG5vZGVzKSAqLwogCUxpc3QJICAgKmluaFJlbGF0 aW9uczsJLyogcmVsYXRpb25zIHRvIGluaGVyaXQgZnJvbSAobGlzdCBvZgogCQkJCQkJCQkgKiBS YW5nZVZhcikgKi8KIAlQYXJ0aXRpb25Cb3VuZFNwZWMgKnBhcnRib3VuZDsJLyogRk9SIFZBTFVF UyBjbGF1c2UgKi8KQEAgLTI1MzQsNiArMjUzOCwzMSBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVT dG10CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyoganVzdCBkbyBub3RoaW5nIGlmIGl0IGFscmVh ZHkgZXhpc3RzPyAqLwogfSBDcmVhdGVTdG10OwogCisKKy8qIC0tLS0tLS0tLS0KKyAqIERlZmlu aXRpb25zIGZvciBwZXJpb2RzIGluIENyZWF0ZVN0bXQKKyAqIC0tLS0tLS0tLS0KKyAqLworCit0 eXBlZGVmIHN0cnVjdCBQZXJpb2REZWYKK3sKKwlOb2RlVGFnCQl0eXBlOworCU9pZAkJCW9pZDsJ CQkvKiBwZXJpb2Qgb2lkLCBvbmNlIGl0J3MgdHJhbnNmb3JtZWQgKi8KKwljaGFyCSAgICpwZXJp b2RuYW1lOwkJLyogcGVyaW9kIG5hbWUgKi8KKwljaGFyCSAgICpzdGFydGNvbG5hbWU7CS8qIG5h bWUgb2Ygc3RhcnQgY29sdW1uICovCisJY2hhcgkgICAqZW5kY29sbmFtZTsJCS8qIG5hbWUgb2Yg ZW5kIGNvbHVtbiAqLworCUF0dHJOdW1iZXIJc3RhcnRhdHRudW07CS8qIGF0dG51bSBvZiB0aGUg c3RhcnQgY29sdW1uICovCisJQXR0ck51bWJlcgllbmRhdHRudW07CQkvKiBhdHRudW0gb2YgdGhl IGVuZCBjb2x1bW4gKi8KKwlBdHRyTnVtYmVyCXJuZ2F0dG51bTsJCS8qIGF0dG51bSBvZiB0aGUg R0VORVJBVEVEIHJhbmdlIGNvbHVtbiAqLworCUxpc3QJICAgKm9wdGlvbnM7CQkvKiBvcHRpb25z IGZyb20gV0lUSCBjbGF1c2UgKi8KKwljaGFyCSAgICpjb25zdHJhaW50bmFtZTsJLyogbmFtZSBv ZiB0aGUgQ0hFQ0sgY29uc3RyYWludCAqLworCWNoYXIJICAgKnJhbmdldHlwZW5hbWU7CS8qIG5h bWUgb2YgdGhlIHJhbmdlIHR5cGUgKi8KKwlPaWQJCQljb2x0eXBpZDsJCS8qIHRoZSBzdGFydC9l bmQgY29sIHR5cGUgKi8KKwlPaWQJCQlybmd0eXBpZDsJCS8qIHRoZSByYW5nZSB0eXBlIHRvIHVz ZSAqLworCWJvb2wJCWNvbGV4aXN0czsJCS8qIHVzZSBhbiBleGlzdGluZyBHRU5FUkFURUQgY29s dW1uICovCisJaW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5r bm93biAqLworfSBQZXJpb2REZWY7CisKIC8qIC0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZv ciBjb25zdHJhaW50cyBpbiBDcmVhdGVTdG10CiAgKgpAQCAtMzIyOSw2ICszMjU4LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgSW5kZXhTdG10CiAJTGlzdAkgICAqaW5kZXhQYXJhbXM7CS8qIGNvbHVtbnMg dG8gaW5kZXg6IGEgbGlzdCBvZiBJbmRleEVsZW0gKi8KIAlMaXN0CSAgICppbmRleEluY2x1ZGlu Z1BhcmFtczsJLyogYWRkaXRpb25hbCBjb2x1bW5zIHRvIGluZGV4OiBhIGxpc3QKIAkJCQkJCQkJ CQkgKiBvZiBJbmRleEVsZW0gKi8KKwlQZXJpb2REZWYgICpwZXJpb2Q7CQkJLyogVGhlIHBlcmlv ZCBpbmNsdWRlZCBpbiB0aGUgaW5kZXggKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogV0lUSCBj bGF1c2Ugb3B0aW9uczogYSBsaXN0IG9mIERlZkVsZW0gKi8KIAlOb2RlCSAgICp3aGVyZUNsYXVz ZTsJLyogcXVhbGlmaWNhdGlvbiAocGFydGlhbC1pbmRleCBwcmVkaWNhdGUpICovCiAJTGlzdAkg ICAqZXhjbHVkZU9wTmFtZXM7IC8qIGV4Y2x1c2lvbiBvcGVyYXRvciBuYW1lcywgb3IgTklMIGlm IG5vbmUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggZWE2NzAxZDgzY2EuLmU3Mjk0ZTAzMDI3 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMjA4Niw2ICsyMDg2LDggQEAgdHlwZWRlZiBzdHJ1 Y3QgRm9yUG9ydGlvbk9mRXhwcgogewogCU5vZGVUYWcJCXR5cGU7CiAJVmFyCQkgICAqcmFuZ2VW YXI7CQkJLyogUmFuZ2UgY29sdW1uICovCisJVmFyCQkgICAqc3RhcnRWYXI7CQkJLyogU3RhcnQg Y29sdW1uIGlmIFBFUklPRCAqLworCVZhcgkJICAgKmVuZFZhcjsJCQkJLyogRW5kIGNvbHVtbiBp ZiBQRVJJT0QgKi8KIAljaGFyCSAgICpyYW5nZV9uYW1lOwkJCS8qIFJhbmdlIG5hbWUgKi8KIAlO b2RlCSAgICp0YXJnZXRSYW5nZTsJCS8qIEZPUiBQT1JUSU9OIE9GIGJvdW5kcyBhcyBhIHJhbmdl ICovCiAJT2lkCQkJcmFuZ2VUeXBlOwkJCS8qIHR5cGUgb2YgdGFyZ2V0UmFuZ2UgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaAppbmRleCA0ZTliNDhmZmY2Ni4uNzA3YTUxNzMzOWEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK QEAgLTMyNiw3ICszMjYsNyBAQCBQR19LRVlXT1JEKCJwYXJ0aWFsIiwgUEFSVElBTCwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFydGl0aW9uIiwgUEFSVElU SU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzaW5n IiwgUEFTU0lORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cGFzc3dvcmQiLCBQQVNTV09SRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQotUEdf S0VZV09SRCgicGVyaW9kIiwgUEVSSU9ELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CitQR19LRVlXT1JEKCJwZXJpb2QiLCBQRVJJT0QsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lORywgUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW5zIiwgUExBTlMsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBvbGljeSIsIFBPTElDWSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0 aWxjbWQuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKaW5kZXggMTQwNjU4 OTQ3NzkuLmQ4NGQwMmIwMjgwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKQEAgLTQw LDUgKzQwLDYgQEAgZXh0ZXJuIEluZGV4U3RtdCAqZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoUmFu Z2VWYXIgKmhlYXBSZWwsCiAJCQkJCQkJCQkJICBSZWxhdGlvbiBzb3VyY2VfaWR4LAogCQkJCQkJ CQkJCSAgY29uc3Qgc3RydWN0IEF0dHJNYXAgKmF0dG1hcCwKIAkJCQkJCQkJCQkgIE9pZCAqY29u c3RyYWludE9pZCk7CitleHRlcm4gdm9pZCB0cmFuc2Zvcm1QZXJpb2RPcHRpb25zKFBlcmlvZERl ZiAqcGVyaW9kKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1VUSUxDTURfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaAppbmRleCA0OGRmMTA3YzFjZS4uY2Q5ZmU1Yzk4OGQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNj YWNoZS5oCkBAIC05NSw2ICs5NSw4IEBAIGV4dGVybiBPaWQJZ2V0X2F0dHR5cGUoT2lkIHJlbGlk LCBBdHRyTnVtYmVyIGF0dG51bSk7CiBleHRlcm4gdm9pZCBnZXRfYXR0dHlwZXR5cG1vZGNvbGwo T2lkIHJlbGlkLCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJCQkJICBPaWQgKnR5cGlkLCBpbnQz MiAqdHlwbW9kLCBPaWQgKmNvbGxpZCk7CiBleHRlcm4gRGF0dW0gZ2V0X2F0dG9wdGlvbnMoT2lk IHJlbGlkLCBpbnQxNiBhdHRudW0pOworZXh0ZXJuIGNoYXIgKmdldF9wZXJpb2RuYW1lKE9pZCBw ZXJpb2RpZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X3BlcmlvZF9vaWQoT2lk IHJlbGlkLCBjb25zdCBjaGFyICpwZXJpb2RuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJu IE9pZAlnZXRfY2FzdF9vaWQoT2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwgYm9v bCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfY29sbGF0aW9uX25hbWUoT2lkIGNvbGxv aWQpOwogZXh0ZXJuIGJvb2wgZ2V0X2NvbGxhdGlvbl9pc2RldGVybWluaXN0aWMoT2lkIGNvbGxv aWQpOwpAQCAtMTk2LDYgKzE5OCw3IEBAIGV4dGVybiBPaWQJZ2V0X3JhbmdlX3N1YnR5cGUoT2lk IHJhbmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX2NvbGxhdGlvbihPaWQgcmFuZ2VPaWQp OwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfbXVsdGlyYW5nZShPaWQgcmFuZ2VPaWQpOwogZXh0ZXJu IE9pZAlnZXRfbXVsdGlyYW5nZV9yYW5nZShPaWQgbXVsdGlyYW5nZU9pZCk7CitleHRlcm4gT2lk CWdldF9zdWJ0eXBlX3JhbmdlKE9pZCBzdWJ0eXBlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X2luZGV4 X2NvbHVtbl9vcGNsYXNzKE9pZCBpbmRleF9vaWQsIGludCBhdHRubyk7CiBleHRlcm4gYm9vbCBn ZXRfaW5kZXhfaXNyZXBsaWRlbnQoT2lkIGluZGV4X29pZCk7CiBleHRlcm4gYm9vbCBnZXRfaW5k ZXhfaXN2YWxpZChPaWQgaW5kZXhfb2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxz L3BlcmlvZC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwMmMxNzAzNmZkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgKQEAgLTAsMCArMSwyMSBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogcGVyaW9kLmgKKyAqCSAgc3VwcG9ydCBmb3IgUG9zdGdyZXMgcGVyaW9kcy4K KyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNs dWRlL3V0aWxzL3BlcmlvZC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYg UEVSSU9EX0gKKyNkZWZpbmUgUEVSSU9EX0gKKworI2luY2x1ZGUgImV4ZWN1dG9yL3R1cHRhYmxl LmgiCisKK2V4dGVybiBEYXR1bSBwZXJpb2RfdG9fcmFuZ2UoVHVwbGVUYWJsZVNsb3QgKnNsb3Qs IGludCBzdGFydGF0dG5vLCBpbnQgZW5kYXR0bm8sIE9pZCByYW5nZXR5cGUpOworCisjZW5kaWYJ CQkJCQkJLyogUEVSSU9EX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9k ZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRs X2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jCmluZGV4IDQ4NTYzYjJjZjAxLi5hOTU0ZTcwMzM4 NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRs X2RlcGFyc2UuYworKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9k ZGxfZGVwYXJzZS5jCkBAIC0xODMsNiArMTgzLDEyIEBAIGdldF9hbHRlcnRhYmxlX3N1YmNtZGlu Zm8oUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgQVRfRHJvcENvbnN0cmFpbnQ6CiAJCQkJc3Ry dHlwZSA9ICJEUk9QIENPTlNUUkFJTlQiOwogCQkJCWJyZWFrOworCQkJY2FzZSBBVF9BZGRQZXJp b2Q6CisJCQkJc3RydHlwZSA9ICJBREQgUEVSSU9EIjsKKwkJCQlicmVhazsKKwkJCWNhc2UgQVRf RHJvcFBlcmlvZDoKKwkJCQlzdHJ0eXBlID0gIkRST1AgUEVSSU9EIjsKKwkJCQlicmVhazsKIAkJ CWNhc2UgQVRfUmVBZGRDb21tZW50OgogCQkJCXN0cnR5cGUgPSAiKHJlKSBBREQgQ09NTUVOVCI7 CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9w b3J0aW9uX29mLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yu b3V0CmluZGV4IDVjMGE1Y2Y0YjFiLi5lYmM0M2Y1NWYzMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKQEAgLTUzMiw2ICs1MzIsNDQgQEAgU0VMRUNU ICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgWzMs NCkgfCB7WzAxLTAxLTIwMTgsKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgdGhyZWUKICg2IHJvd3MpCiAKK0RST1AgVEFCTEUgZm9y X3BvcnRpb25fb2ZfdGVzdDI7CistLSBUZXN0IHdpdGggUEVSSU9EcworQ1JFQVRFIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9m cm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCBm b3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUwor KCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnLCAnb25lJyksCisoJ1sxLDIpJywg JzIwMTgtMDItMDQnLCAnMjAxOC0wMy0wMycsICdvbmUnKSwKKygnWzEsMiknLCAnMjAxOC0wMy0w MycsICcyMDE4LTA0LTA0JywgJ29uZScpLAorKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDUtMDEnLCAndHdvJyksCisoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBudWxsLCAndGhyZWUnKTsK KzsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dI RVJFIGlkID0gJ1sxLDIpJzsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dI RVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBu YW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikg fCAwMS0wMi0yMDE4IHwgMDEtMTAtMjAxOCB8IG9uZQorIFsxLDIpIHwgMDEtMTAtMjAxOCB8IDAy LTAzLTIwMTggfCBvbmVeMQorIFsxLDIpIHwgMDItMDQtMjAxOCB8IDAyLTEwLTIwMTggfCBvbmVe MQorIFsxLDIpIHwgMDItMTAtMjAxOCB8IDAzLTAzLTIwMTggfCBvbmUKKyBbMSwyKSB8IDAzLTAz LTIwMTggfCAwNC0wNC0yMDE4IHwgb25lCisgWzIsMykgfCAwMS0wMS0yMDE4IHwgMDEtMTUtMjAx OCB8IHR3bworIFsyLDMpIHwgMDItMTUtMjAxOCB8IDA1LTAxLTIwMTggfCB0d28KKyBbMyw0KSB8 IDAxLTAxLTIwMTggfCAgICAgICAgICAgIHwgdGhyZWUKKyg4IHJvd3MpCisKIERST1AgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDI7CiAtLSBUZXN0IHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQog Q1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dAppbmRleCBhNGYzNzczNjYyMy4uZDljMWY3OGVk OGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQKQEAgLTE5LDcgKzE5 LDkgQEAgU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1uIEZS T00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl8KICB0YWJsZV9uYW1lIHwgY29sdW1uX25hbWUg fCBkZXBlbmRlbnRfY29sdW1uIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tCiAgZ3Rlc3QxICAgICB8IGEgICAgICAgICAgIHwgYgotKDEgcm93KQorIHB0ICAg ICAgICAgfCBkZSAgICAgICAgICB8IHAKKyBwdCAgICAgICAgIHwgZHMgICAgICAgICAgfCBwCiso MyByb3dzKQogCiBcZCBndGVzdDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAi cHVibGljLmd0ZXN0MSIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVy aW9kcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMub3V0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmQzYTg0NmFiOQotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQKQEAgLTAsMCArMSwy NjcgQEAKKy8qIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgaW1wbGVtZW50ZWQgKi8KK2NyZWF0ZSB0 YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBzeXN0ZW1f dGltZSAoZHMsIGRlKSk7CitFUlJPUjogIFBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90IHN1 cHBvcnRlZAorTElORSAyOiBjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRl IGRhdGUsIHBlcmlvZCBmb3Igc3kuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCisvKiBQZXJpb2RzIG11c3Qgc3BlY2lmeSBhY3R1YWwg Y29sdW1ucyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwZXJpb2QgZm9yIHAgKGJvZ3VzLCBkZSkpOworRVJST1I6ICBjb2x1bW4gImJvZ3VzIiBvZiBy ZWxhdGlvbiAicHQiIGRvZXMgbm90IGV4aXN0CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGJvZ3VzKSk7CitFUlJPUjogIGNv bHVtbiAiYm9ndXMiIG9mIHJlbGF0aW9uICJwdCIgZG9lcyBub3QgZXhpc3QKKy8qIERhdGEgdHlw ZXMgbXVzdCBtYXRjaCBleGFjdGx5ICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIHRpbWVzdGFtcCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgc3Rh cnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGJlIG9mIHNhbWUgdHlwZQorY3JlYXRl IHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB0ZXh0IGNvbGxhdGUgIkMiLCBkZSB0ZXh0IGNvbGxh dGUgIlBPU0lYIiwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgc3RhcnQgYW5kIGVu ZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGhhdmUgc2FtZSBjb2xsYXRpb24KKy8qIFBlcmlvZHMg bXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJlZSBvcGVyYXRvciBjbGFzcyAqLworY3JlYXRlIHRhYmxl IHB0IChpZCBpbnRlZ2VyLCBkcyB4bWwsIGRlIHhtbCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsK K0VSUk9SOiAgbm8gcmFuZ2UgdHlwZSBmb3IgeG1sIGZvdW5kIGZvciBwZXJpb2QgcAorSElOVDog IFlvdSBjYW4gZGVmaW5lIGEgY3VzdG9tIHJhbmdlIHR5cGUgd2l0aCBDUkVBVEUgVFlQRQorLyog UGVyaW9kIGFuZCBjb2x1bW4gbmFtZXMgYXJlIGluIHRoZSBzYW1lIG5hbWVzcGFjZSAqLworY3Jl YXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGN0 aWQgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2QgbmFtZSAiY3RpZCIgY29uZmxpY3RzIHdpdGgg YSBzeXN0ZW0gY29sdW1uIG5hbWUKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBpZCAoZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1l ICJpZCIgY29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZQorLyogUGVyaW9kIG5hbWUgY2FuJ3Qg YmUgZ2l2ZW4gbW9yZSB0aGFuIG9uY2UgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpLCBwZXJpb2QgZm9yIHAgKGRz LCBkZSkpOworRVJST1I6ICBwZXJpb2QgbmFtZSAicCIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNl CisvKiBOb3cgbWFrZSBvbmUgdGhhdCB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRl Z2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworLyogU0VMRUNU ICogZXhjbHVkZXMgdGhlIFBFUklPRCAqLworaW5zZXJ0IGludG8gcHQgdmFsdWVzICgxLCAnMjAw MC0wMS0wMScsICcyMDAxLTAxLTAxJyk7CitzZWxlY3QgKiBmcm9tIHB0OworIGlkIHwgICAgIGRz ICAgICB8ICAgICBkZSAgICAgCistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgMSB8 IDAxLTAxLTIwMDAgfCAwMS0wMS0yMDAxCisoMSByb3cpCisKKy8qIFlvdSBjYW4gZ2V0IGl0IGlm IHlvdSB3YW50ICovCitzZWxlY3QgKiwgcCBmcm9tIHB0OworIGlkIHwgICAgIGRzICAgICB8ICAg ICBkZSAgICAgfCAgICAgICAgICAgIHAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDEgfCAwMS0wMS0yMDAwIHwg MDEtMDEtMjAwMSB8IFswMS0wMS0yMDAwLDAxLTAxLTIwMDEpCisoMSByb3cpCisKKy8qIFR3byBh cmUgb2theSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0 ZSwgcGVyaW9kIGZvciBwMSAoZHMsIGRlKSwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7Citkcm9w IHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8K K2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJh bmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9y ZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitcZCBw dDIKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJp b2RzOgorICAgIHAgKGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVj ayIgQ0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBH RU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2wgaXNuJ3QgdGhlcmUgKi8KK2Ny ZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitFUlJPUjogIE5vIGNvbHVtbiBm b3VuZCB3aXRoIG5hbWUgcAorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWls cyBiZWNhdXNlIHRoZSBvcHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSB3aXRoIChjb2xleGlzdHMgPSAnd2hhdGV2ZXInKSk7CitFUlJPUjogIGNvbGV4aXN0cyByZXF1 aXJlcyBhIEJvb2xlYW4gdmFsdWUKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjog ZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdl bmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxvd3MgbnVsbHMKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJB VEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8K K2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJh bmdlIG5vdCBudWxsLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1 ZSkpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4KKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlz IEdFTkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0gVE9ETzoKKy0t IGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJh bmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkZSwgZHMpKSBzdG9y ZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBp cyB0aGUgd3JvbmcgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcCB0c3JhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFu Z2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gdHJ1ZSkpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRo IHRoZSB3cm9uZyB0eXBlCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJl bnQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdl bmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRh YmxlIHB0MiAocGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKSBp bmhlcml0cyAocHQycGFyZW50KTsKK0VSUk9SOiAgSW5oZXJpdGluZyBpcyBub3Qgc3VwcG9ydGVk IHdoZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QKK2Ryb3AgdGFibGUgcHQycGFyZW50OworLyoKKyAq IEFMVEVSIFRBQkxFIHRlc3RzCisgKi8KK2FsdGVyIHRhYmxlIHB0IGRyb3AgcGVyaW9kIGZvciBw OworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3Igc3lzdGVtX3RpbWUgKGRzLCBkZSk7CitF UlJPUjogIFBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90IHN1cHBvcnRlZAorYWx0ZXIgdGFi bGUgcHQgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKKy8qIEFkZGluZyBhIHNlY29uZCBvbmUg Ki8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlv ZCBmb3IgcDEgKGRzLCBkZSkpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAyIChk cywgZGUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4ndCBkcm9wIGl0cyBjb2x1bW5zICovCith bHRlciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkczsKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1u IGRzIG9mIHRhYmxlIHB0IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJ TDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRlcGVuZHMgb24gY29sdW1uIGRzIG9mIHRhYmxlIHB0 CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVj dHMgdG9vLgorYWx0ZXIgdGFibGUgcHQgZHJvcCBjb2x1bW4gZGU7CitFUlJPUjogIGNhbm5vdCBk cm9wIGNvbHVtbiBkZSBvZiB0YWJsZSBwdCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBwZXJpb2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiBkZSBv ZiB0YWJsZSBwdAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVu ZGVudCBvYmplY3RzIHRvby4KKy8qIENhbid0IGNoYW5nZSB0aGUgZGF0YSB0eXBlcyAqLworYWx0 ZXIgdGFibGUgcHQgYWx0ZXIgY29sdW1uIGRzIHR5cGUgdGltZXN0YW1wOworRVJST1I6ICBjYW5u b3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgcGVyaW9kCitERVRBSUw6ICBwZXJp b2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiAiZHMiCithbHRlciB0YWJsZSBwdCBh bHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBl IG9mIGEgY29sdW1uIHVzZWQgYnkgYSBwZXJpb2QKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxl IHB0IGRlcGVuZHMgb24gY29sdW1uICJkcyIKKy8qIGNvbHVtbi9wZXJpb2QgbmFtZXNwYWNlIGNv bmZsaWN0cyAqLworYWx0ZXIgdGFibGUgcHQgYWRkIGNvbHVtbiBwIGludGVnZXI7CitFUlJPUjog IGNvbHVtbiBuYW1lICJwIiBjb25mbGljdHMgd2l0aCBhIHBlcmlvZCBuYW1lCithbHRlciB0YWJs ZSBwdCByZW5hbWUgY29sdW1uIGlkIHRvIHA7CitFUlJPUjogIGNvbHVtbiBuYW1lICJwIiBjb25m bGljdHMgd2l0aCBhIHBlcmlvZCBuYW1lCithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZvciB0 YWJsZW9pZCAoZHMsIGRlKTsKK0VSUk9SOiAgcGVyaW9kIG5hbWUgInRhYmxlb2lkIiBjb25mbGlj dHMgd2l0aCBhIHN5c3RlbSBjb2x1bW4gbmFtZQorYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBm b3IgIi4uLi4uLi4ucGcuZHJvcHBlZC40Li4uLi4uLi4iIChkcywgZGUpOworRVJST1I6ICBwZXJp b2QgbmFtZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjQuLi4uLi4uLiIgY29uZmxpY3RzIHdpdGggYSBj b2x1bW4gbmFtZQorLyogYWRkaW5nIGNvbHVtbnMgYW5kIHRoZSBwZXJpb2QgYXQgdGhlIHNhbWUg dGltZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlcik7CithbHRlciB0YWJsZSBwdDIg YWRkIGNvbHVtbiBkcyBkYXRlLCBhZGQgY29sdW1uIGRlIGRhdGUsIGFkZCBwZXJpb2QgZm9yIHAg KGRzLCBkZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIEFtYmlndW91cyByYW5nZSB0eXBlcyByYWlz ZSBhbiBlcnJvciAqLworY3JlYXRlIHR5cGUgbXlkYXRlcmFuZ2UgYXMgcmFuZ2Uoc3VidHlwZT1k YXRlKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgYW1iaWd1b3VzIHJhbmdlIGZvciB0eXBlIGRhdGUK Ky8qIFlvdSBjYW4gZ2l2ZSBhbiBleHBsaWNpdCByYW5nZSB0eXBlICovCitjcmVhdGUgdGFibGUg cHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRo IChyYW5nZXR5cGUgPSAnbXlkYXRlcmFuZ2UnKSk7Citkcm9wIHR5cGUgbXlkYXRlcmFuZ2U7CitF UlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgbXlkYXRlcmFuZ2UgYmVjYXVzZSBvdGhlciBvYmplY3Rz IGRlcGVuZCBvbiBpdAorREVUQUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQyIGRlcGVuZHMgb24g dHlwZSBteWRhdGVyYW5nZQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhl IGRlcGVuZGVudCBvYmplY3RzIHRvby4KK2Ryb3AgdHlwZSBteWRhdGVyYW5nZSBjYXNjYWRlOwor Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBwZXJpb2QgcCBvbiB0YWJsZSBwdDIKK2Ryb3AgdGFi bGUgcHQyOworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ2RhdGVyYW5nZScpKTsKKy8qIFJh bmdlIHR5cGUgaXMgbm90IGZvdW5kICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRh dGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbm90 YXJhbmdlJykpOworRVJST1I6ICBSYW5nZSB0eXBlIG5vdGFyYW5nZSBub3QgZm91bmQKKy8qIFJh bmdlIHR5cGUgaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9 ICd0c3R6cmFuZ2UnKSk7CitFUlJPUjogIFJhbmdlIHR5cGUgdHN0enJhbmdlIGRvZXMgbm90IG1h dGNoIGNvbHVtbiB0eXBlIGRhdGUKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBH RU5FUkFURUQgY29sdW1uOiB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlv ZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK1xkIHB0MgorICAgICAg ICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBk ZSAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAg cCAoZHMsIGRlKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAo ZHMgPCBkZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBj b2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CithbHRlciB0YWJsZSBwdDIgYWRk IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAg Y29sdW1uICJwIiBvZiByZWxhdGlvbiAicHQyIiBkb2VzIG5vdCBleGlzdAorZHJvcCB0YWJsZSBw dDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhl IG9wdGlvbiBoYXMgYW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRk IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSAnd2hhdGV2ZXInKTsKK0VS Uk9SOiAgY29sZXhpc3RzIHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1ZQorZHJvcCB0YWJsZSBwdDI7 CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNv bHVtbiBpcyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5n ZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRz LCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBn ZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlz IG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVy aW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBQZXJp b2QgcCB1c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4KK2Ryb3AgdGFibGUgcHQyOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMg R0VORVJBVEVEIGJ1dCB3aXRoIHRoZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0g Y3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFu Z2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3Jl ZCk7CistLSBhbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChj b2xleGlzdHMgPSB0cnVlKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFp bHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUg cHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAodHNyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUg cHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitF UlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHdpdGggdGhlIHdyb25nIHR5 cGUKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBm YWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgaW5oZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQy cGFyZW50IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVs bCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0 ZSB0YWJsZSBwdDIgKCkgaW5oZXJpdHMgKHB0MnBhcmVudCk7CithbHRlciB0YWJsZSBwdDIgYWRk IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAg UGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBpbmhlcml0ZWQKK2Ryb3Ag dGFibGUgcHQyOworZHJvcCB0YWJsZSBwdDJwYXJlbnQ7CisvKiBDUkVBVEUgVEFCTEUgKExJS0Ug Li4uKSAqLworLyogUGVyaW9kcyBhcmUgbm90IGNvcGllZCBieSBMSUtFLCBzbyB0aGVpciBjb2x1 bW5zIGFyZW4ndCBlaXRoZXIgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQpOworXGQgcHQy CisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorCitkcm9w IHRhYmxlIHB0MjsKKy8qIENhbiBhZGQgYSBwZXJpb2QgcmVmZXJyaW5nIHRvIExJS0UnZCBjb2x1 bW5zICovCitjcmVhdGUgdGFibGUgbm90X3AgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUp OworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBub3RfcCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsK K1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9w X2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEg cGVyaW9kIHdpdGggdGhlIHNhbWUgbmFtZSAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwg cGVyaW9kIGZvciBwIChkcywgZGUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJw dWJsaWMucHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAg fCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQorQ2hlY2sg Y29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJvcCB0 YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEgcGVyaW9kIHdpdGggYSBkaWZmZXJlbnQgbmFtZSAqLwor Y3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7CitcZCBw dDIKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJp b2RzOgorICAgIHAyIChkcywgZGUpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAicHQyX3AyX2No ZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4ndCBhZGQgYSBw ZXJpb2Qgd2hvc2UgbmFtZSBjb25mbGljdHMgd2l0aCBhIExJS0UnZCBjb2x1bW4gKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGxpa2UgcHQsIHBlcmlvZCBmb3IgaWQgKGRzLCBkZSkpOworRVJST1I6ICBw ZXJpb2QgbmFtZSAiaWQiIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUKKy8qIENSRUFURSBU QUxCRSBJTkhFUklUUyAqLworLyogQ2FuJ3QgaW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBhIHBl cmlvZCAqLworY3JlYXRlIHRhYmxlIHB0MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQpOworRVJS T1I6ICBJbmhlcml0aW5nIGZyb20gYSB0YWJsZSB3aXRoIGEgUEVSSU9EIGlzIG5vdCBzdXBwb3J0 ZWQKKy8qIENhbid0IGluaGVyaXQgd2l0aCBhIHBlcmlvZCAqLworY3JlYXRlIHRhYmxlIHB0MiAo ZDJzIGRhdGUsIGQyZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGQycywgZDJlKSkgaW5oZXJpdHMgKG5v dF9wKTsKK0VSUk9SOiAgSW5oZXJpdGluZyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYSB0YWJsZSBo YXMgYSBQRVJJT0QKK2Ryb3AgdGFibGUgbm90X3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCBhOTcxMjcyNTgwOS4uMThlZGJkNzE3NzEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApA QCAtODksNiArODksNzYgQEAgU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1 ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGUKICBDUkVBVEUgVU5JUVVF IElOREVYIHRlbXBvcmFsX3JuZzJfcGsgT04gdGVtcG9yYWxfcm5nMiBVU0lORyBnaXN0IChpZDEs IGlkMiwgdmFsaWRfYXQpCiAoMSByb3cpCiAKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEg UEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlciAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBv cmFsX3BlcgorICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9wZXIiCisgICBD b2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlk X2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAg fCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVy X3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBj b25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfcGVyX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFs aWRfZnJvbSA8IHZhbGlkX3RpbCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKKyAg ICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVm KGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0 ZW1wb3JhbF9wZXJfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf aW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyX3BrIE9OIHRlbXBvcmFs X3BlciBVU0lORyBnaXN0IChpZCwgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tIFBLIHdpdGggdHdv IGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAg aWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlk MiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIyCisgICAg ICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcGVyMiIKKyAgIENvbHVtbiAgIHwgICBU eXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQxICAgICAgICB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgaWQyICAgICAgICB8IGludDRy YW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9wZXIyX3BrIiBQUklNQVJZIEtFWSAo aWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoK KyAgICAidGVtcG9yYWxfcGVyMl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2 YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjJfcGsnOworICAgICAgICAgICAg ICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZIEtFWSAoaWQxLCBp ZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRf aW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX3BlcjJfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRl bXBvcmFsX3BlcjJfcGsgT04gdGVtcG9yYWxfcGVyMiBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFs aWRfYXQpCisoMSByb3cpCisKIC0tIFBLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToKIENSRUFU RSBUWVBFIHRleHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9uPSJDIik7 CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0yMjQsNiArMjk0LDc4IEBAIFNFTEVD VCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlCiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsK Ky0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCisgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMudGVtcG9yYWxfcGVyMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9wZXIzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX3Bl cjNfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitTRUxF Q1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRl ZiAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1Qg cGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hF UkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3Jh bF9wZXIzX3VxIE9OIHRlbXBvcmFsX3BlcjMgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0KQorKDEg cm93KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjM7CistLSBVTklRVUUgd2l0aCB0d28gY29s dW1ucyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZDEg aW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlk X3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCisgICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcGVyMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQxICAgICAgICB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgaWQyICAgICAgICB8IGludDRyYW5nZSB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp CitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9wZXIzX3VxIiBVTklRVUUgKGlkMSwgaWQyLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFs X3BlcjNfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitT RUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAgICAgICAgICAgICBwZ19nZXRfY29uc3Ry YWludGRlZiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBG Uk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9wZXIzX3VxIE9OIHRlbXBvcmFsX3Bl cjMgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZhbGlkX2F0KQorKDEgcm93KQorCitEUk9QIFRBQkxF IHRlbXBvcmFsX3BlcjM7CiAtLSBVTklRVUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgogQ1JF QVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMi KTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTMwMiw2ICs0NDQsMTA2IEBAIEFM VEVSIFRBQkxFIHRlbXBvcmFsMwogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQogCVVOSVFV RSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7 CistLSBQUklNQVJZIEtFWSB3aXRoIFBFUklPRCBhbHJlYWR5IHRoZXJlCitDUkVBVEUgVEFCTEUg dGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlk X3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp CispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19w aworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVt cG9yYWwzCisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1 bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlk ICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zy b20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBk YXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3BrIiBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJh aW50czoKKyAgICAidGVtcG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8 IHZhbGlkX3RpbCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBQUklNQVJZIEtFWSB3aXRo IFBFUklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUKKyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbDMKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCks CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgICAgVGFi bGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQor SW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWwzX3ZhbGlk X2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworRFJPUCBUQUJMRSB0 ZW1wb3JhbDM7CistLSBVTklRVUUgd2l0aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bDNfdXEKKyAgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1w b3JhbDMKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsMyIKKyAgIENvbHVt biAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQg ICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfZnJv bSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRh dGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbDNfdXEiIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoK KyAgICAidGVtcG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlk X3RpbCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBVTklRVUUgd2l0aCBQRVJJT0QgdG9v CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFE RCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyk7CitcZCB0ZW1wb3JhbDMKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBv cmFsMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg dmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2Rz OgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0 ZW1wb3JhbDNfdXEiIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVj ayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFs aWRfZnJvbSA8IHZhbGlkX3RpbCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAtLQogLS0gdGVz dCBQSyBpbnNlcnRzCiAtLQpAQCAtNTkyLDYgKzgzNCwxOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZyAoCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiApOworXGQgdGVtcG9yYWxfZmtfcm5nMnJuZwor ICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrX3JuZzJybmciCisgIENvbHVtbiAg IHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAg ICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICB8IGRh dGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgcGFyZW50X2lkIHwgaW50NHJhbmdl IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrX3Ju ZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0Zv cmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisKIERST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKIC0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKIC0tIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQpAQCAtMjY2OSw2ICsyOTIz LDExNzEgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWwKICBbMjAwLDIwMSkgfCB7WzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCiAoMiByb3dzKQogCistLQorLS0g dGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5jZXMgUEVSSU9ECistLQorLS0gdGVzdCB0 YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBk YXRlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsK KwlQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworLS0gQ2FuJ3Qg Y3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGludCwKKwl2 YWxpZF90aWwgaW50LAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfcGsyIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrMiBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cGVyMnBlcl9mazIiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVtbnMg InZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiBpbnQ0 cmFuZ2UgYW5kIGRhdGVyYW5nZS4KKy0tIHdvcmtzOiBQRVJJT0QgZm9yIGJvdGggcmVmZXJlbmNl ZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3Jh bF9ma19wZXIycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmtfcGVyMnBl ciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFs aWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lk ICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9m a19wZXIycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcGVyMnBlcl92YWxpZF9hdF9j aGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJh aW50czoKKyAgICAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZh bGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSB3aXRoIG1pc21h dGNoZWQgUEVSSU9EIGNvbHVtbnM6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJF RkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lm eSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQ RVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFi bGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBk YXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQs IHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hv dWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJl bnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcgorKTsKK0VSUk9SOiAgbnVtYmVyIG9mIHJlZmVyZW5jaW5nIGFuZCByZWZl cmVuY2VkIGNvbHVtbnMgZm9yIGZvcmVpZ24ga2V5IGRpc2FncmVlCistLSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGls IGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCkKKyk7CitFUlJPUjogIGZvcmVp Z24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSBy ZWZlcmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRy YW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBF UklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRo ZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRo IGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKFRoaXMgaXMgbm90IHBl cm1pdHRlZCBieSB0aGUgU1FMIHN0YW5kYXJkLiBTZWUgMTEuOCBzeW50YXggcnVsZSA0Yi4pCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIK Kyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0 YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVO Q0VTIFtpbXBsaWNpdF0KKy0tIFRoaXMgZmluZHMgdGhlIFBLIChvbWl0dGluZyB0aGUgV0lUSE9V VCBPVkVSTEFQUyBlbGVtZW50KSwKKy0tIGJ1dCBpdCdzIG5vdCBhIGItdHJlZSBpbmRleCwgc28g aXQgZmFpbHMgYW55d2F5LgorLS0gQW55d2F5IGl0IG11c3QgZmFpbCBiZWNhdXNlIHRoZSB0d28g c2lkZXMgaGF2ZSBhIGRpZmZlcmVudCBkZWZpbml0aW9uIG9mICJ1bmlxdWUiLgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRh dGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKK0VSUk9SOiAgb25seSBiLXRyZWUg aW5kZXhlcyBhcmUgc3VwcG9ydGVkIGZvciBmb3JlaWduIGtleXMKKy0tIHNob3VsZCBmYWlsIGJl Y2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZh bGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgaWQp CispOworRVJST1I6ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5v dCBjb250YWluIGR1cGxpY2F0ZXMKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wZXIyOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjIgKAorCWlkMSBpbnQ0cmFu Z2UsCisJaWQyIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUs CisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX3BlcjJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlciAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJl bnRfaWQxIGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfcGVy MnBlcgorICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9wZXIycGVyIgorICAg Q29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCist LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0K KyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxp ZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwg IHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQxIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdl IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX3Br IiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25z dHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfdmFsaWRfYXRfY2hlY2siIENIRUNL ICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAg InRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIoaWQxLCBpZDIs IFBFUklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKKy0t CistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJ dmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlk X2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdv IHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVu dF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg UEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgICAgICAgICAgIFRh YmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3BlcjJwZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQor SW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1w b3JhbF9mazJfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxp ZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJw ZXJfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMihpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQor CistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9mazIKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50 X2lkKQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKTsKK0VSUk9SOiAg Zm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBs aWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KK0RFTEVURSBGUk9NIHRl bXBvcmFsX2ZrX3BlcjJwZXI7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1sx LDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpLAorICAoJ1sxLDFdJywgJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCcpLAorICAoJ1syLDJdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpLAorICAoJ1szLDNdJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAx JywgJ1sxLDFdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxp ZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZhaWw6CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CitFUlJPUjog IGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6 ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0w MSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gb2theSBhZ2Fp bjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLQorLS0gdGVzdCBwZ19nZXRfY29uc3Ry YWludGRlZgorLS0KK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2ZrX3BlcjJwZXJfZmsnOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZhaWw6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScs ICdbMSwxXScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19wZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxf cGVyIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMi0wMycs ICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEt MDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcg dXBkYXRlcworLS0KK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMScgV0hFUkUgaWQgPSAnWzEsMV0n OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDEnIFdIRVJFIGlkID0g J1sxLDFdJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cGVyMnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVy MnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTA1LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3Bl ciIuCitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0gJ1s4LDhdJyBX SEVSRSBpZCA9ICdbMSwxXSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRl bXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShb OCw5KSwgWzIwMTgtMDEtMDIsMjAxOC0wMy0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0 ZW1wb3JhbF9wZXIiLgorLS0gQUxURVIgRksgREVGRVJSQUJMRQorQkVHSU47CisgIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICAg KCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgICAoJ1s1LDVdJywgJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgn WzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CisgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsgLS1zaG91bGQgbm90IGZhaWwg eWV0LgorQ09NTUlUOyAtLSBzaG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVy IgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBl ciIuCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSBhIFBLIHVwZGF0ZSB0aGF0 IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScg V0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRo b3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0 OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgn WzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIw MTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitX SEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9 ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1 XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAy LTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBw YXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gY2hhbmdpbmcgYW4g dW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlk ID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQg ZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlk ID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxf cGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0wMQorIFs1 LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAyMDE4 LTAyLTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQgcm93cykKKworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBh cmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRl IHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEn LCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0t IHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlPTiBVUERBVEUgUkVTVFJJQ1Q7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNu J3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxp ZF90aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUg dGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyks CisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRf dGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgdXBkYXRl IHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFs X3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDIt MDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0g Y2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQg aWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBl ciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJw ZXIiLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0 ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRP ICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0g Y2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBp ZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIi LgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3 XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAy LTAxIHwgMjAxNi0wMy0wMQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2 KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAyLTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0w MS0wMworKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJF IGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBb NSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxp ZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0g JzIwMTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgTk8gQUNUSU9OCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQp OworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlz bid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJl bmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1 LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgt MDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVy ZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2 YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0 IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0n OworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAx LTEwJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCist LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTgtMDEtMDEgfCAy MDE4LTAxLTAyCisgWzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0wMQorKDIgcm93cykKKwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCist LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVs ZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFO RCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7 CistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorCU9OIERFTEVURSBS RVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUg dGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywg J1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFO RCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7 CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJwZXIiLgorLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2th eToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBk ZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitX SEVSRSBpZCA9ICdbNSw1XSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEt MDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAyLTAxCisoMiByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMs NCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3Vj Y2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNd JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlk X2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tCist LSBwZXIycGVyIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0g cGFyZW50IHVwZGF0ZXMgQ0FTQ0FERQorLS0gcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERQorLS0gcGFy ZW50IHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMCistLSBwYXJl bnQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t IHBhcmVudCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxl dGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxM ICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxh ciBjb2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VU IE5VTEwgc3Vic2V0KQorLS0gcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIg Y29scykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCist LSBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVM VCBzdWJzZXQpCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBDQVNDQURFCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENB U0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5 LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIw MjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzcsOCkKKyBbMTAw LDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAy MC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNyw4KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb OCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0g J1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzksMTApCisgWzIwMCwyMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Blciwg dGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgfCBwYXJl bnRfaWQgCistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygx IHJvdykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIE5VTEwKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy IChpZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNF VCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAx OS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0w MS0wMSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1w b3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAy MDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAw LDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0w MS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQg TlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBX SEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAx IHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93 cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5 LTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAw LDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IAorKDMgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhd JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50 IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFs X2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAs MTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVM VCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwg UEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBE RUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAx OS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUg aWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQor LS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsIG51bGwsIG51bGwp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2 XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAt MDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2 LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0w MS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAy MC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg Wy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJv bSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEt MDEgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkp CisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBDQVNDQURFICh0d28g c2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3Bl cjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQx ID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBT RVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEt MDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0w MS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4 XScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0g J1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIw MjAtMDEtMDEgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0n LCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBk ZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VU IE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIy cGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxp ZF9hdCkKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcs N10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAg ICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAg ICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwg MjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAy MC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0w MS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAw LDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitV UERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0n IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0w MSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRl bGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlk MSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n LCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwg WzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEg fCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBb Niw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTkt MDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEt MDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAK KyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5 KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3 byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl cjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScs ICdbNiw2XScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29s dW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZh bGlkX2F0KQorCQlPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5V TEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNF VCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFy ZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgTlVM TCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAx OC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAy MDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQx ID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwg dmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgWzgsOSkKKyBbMjAwLDIw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2Fs YXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwt MV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJ RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsx MDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCiso MyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBp ZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAx IHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdb OCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDld JywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3Jh bF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51 bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBb MTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAg ICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSww KSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFst MSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAg ICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQg REVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorVFJVTkNB VEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEs LTFdJywgJ1s2LDZdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZd JywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBj b2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVy X2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9h dCkKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZB VUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBT RVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwt MV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCAo cGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAx OC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAy MDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQx ID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWy0xLC0xXScsICdbOCw4XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUg aWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwogLS0gRksg d2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCiBDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5n ZShzdWJ0eXBlPWRhdGUpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggNGZkN2YzZDBjNzMuLjY2ODVjYzM1N2RmIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQzLDcgKzQzLDcgQEAgdGVzdDogY29weSBjb3B5 c2VsZWN0IGNvcHlkbWwgaW5zZXJ0IGluc2VydF9jb25mbGljdAogIyBOb3RlOiBtYW55IG9mIHRo ZSB0ZXN0cyBpbiBsYXRlciBncm91cHMgZGVwZW5kIG9uIGNyZWF0ZV9pbmRleAogIyAtLS0tLS0t LS0tCiB0ZXN0OiBjcmVhdGVfZnVuY3Rpb25fYyBjcmVhdGVfbWlzYyBjcmVhdGVfb3BlcmF0b3Ig Y3JlYXRlX3Byb2NlZHVyZSBjcmVhdGVfdGFibGUgY3JlYXRlX3R5cGUgY3JlYXRlX3NjaGVtYQot dGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhf aW5jbHVkaW5nIGluZGV4X2luY2x1ZGluZ19naXN0Cit0ZXN0OiBjcmVhdGVfaW5kZXggY3JlYXRl X2luZGV4X3NwZ2lzdCBjcmVhdGVfdmlldyBpbmRleF9pbmNsdWRpbmcgaW5kZXhfaW5jbHVkaW5n X2dpc3QgcGVyaW9kcwogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxl bCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCmluZGV4IGU4MDJi NWM2N2ZmLi5lMjUyMTVhM2ZkNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9y X3BvcnRpb25fb2Yuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29m LnNxbApAQCAtNDIzLDYgKzQyMywzOCBAQCBTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAogRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0MjsKIAorLS0gVGVzdCB3aXRoIFBFUklPRHMKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9mcm9tIGRhdGUs CisgIHZhbGlkX3RpbCBkYXRlLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlv bl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnLCAnb25lJyksCisoJ1sxLDIpJywgJzIwMTgtMDIt MDQnLCAnMjAxOC0wMy0wMycsICdvbmUnKSwKKygnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0JywgJ29uZScpLAorKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDUtMDEnLCAn dHdvJyksCisoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBudWxsLCAndGhyZWUnKTsKKzsKKworVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQg PSAnWzEsMiknOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTgtMDItMTUnCitXSEVSRSBp ZCA9ICdbMiwzKSc7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworCiAt LSBUZXN0IHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQogCiBDUkVBVEUgVFlQRSBteWRhdGVyYW5n ZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcGVyaW9kcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWQzOTcxMmQyYjQKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbApAQCAtMCwwICsxLDE3OCBA QAorLyogU3lzdGVtIHBlcmlvZHMgYXJlIG5vdCBpbXBsZW1lbnRlZCAqLworY3JlYXRlIHRhYmxl IHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHN5c3RlbV90aW1l IChkcywgZGUpKTsKKworLyogUGVyaW9kcyBtdXN0IHNwZWNpZnkgYWN0dWFsIGNvbHVtbnMgKi8K K2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZv ciBwIChib2d1cywgZGUpKTsKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwg ZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgYm9ndXMpKTsKKworLyogRGF0YSB0eXBlcyBtdXN0 IG1hdGNoIGV4YWN0bHkgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwg ZGUgdGltZXN0YW1wLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworY3JlYXRlIHRhYmxlIHB0IChp ZCBpbnRlZ2VyLCBkcyB0ZXh0IGNvbGxhdGUgIkMiLCBkZSB0ZXh0IGNvbGxhdGUgIlBPU0lYIiwg cGVyaW9kIGZvciBwIChkcywgZGUpKTsKKworLyogUGVyaW9kcyBtdXN0IGhhdmUgYSBkZWZhdWx0 IEJUcmVlIG9wZXJhdG9yIGNsYXNzICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRz IHhtbCwgZGUgeG1sLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBQZXJpb2QgYW5kIGNv bHVtbiBuYW1lcyBhcmUgaW4gdGhlIHNhbWUgbmFtZXNwYWNlICovCitjcmVhdGUgdGFibGUgcHQg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgY3RpZCAoZHMsIGRlKSk7 CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBm b3IgaWQgKGRzLCBkZSkpOworCisvKiBQZXJpb2QgbmFtZSBjYW4ndCBiZSBnaXZlbiBtb3JlIHRo YW4gb25jZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwZXJpb2QgZm9yIHAgKGRzLCBkZSksIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8qIE5v dyBtYWtlIG9uZSB0aGF0IHdvcmtzICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8qIFNFTEVDVCAqIGV4 Y2x1ZGVzIHRoZSBQRVJJT0QgKi8KK2luc2VydCBpbnRvIHB0IHZhbHVlcyAoMSwgJzIwMDAtMDEt MDEnLCAnMjAwMS0wMS0wMScpOworc2VsZWN0ICogZnJvbSBwdDsKKworLyogWW91IGNhbiBnZXQg aXQgaWYgeW91IHdhbnQgKi8KK3NlbGVjdCAqLCBwIGZyb20gcHQ7CisKKy8qIFR3byBhcmUgb2th eSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVy aW9kIGZvciBwMSAoZHMsIGRlKSwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7Citkcm9wIHRhYmxl IHB0MjsKKworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAqLworY3Jl YXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ug bm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCwg cGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKK1xkIHB0Mgor ZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4 aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMg YmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBpbnZhbGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUg cHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gJ3doYXRldmVyJykpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFU RUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IE5PVCBOVUxMICovCitj cmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5n ZSBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGlu ZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IEdFTkVS QVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwg cCBkYXRlcmFuZ2Ugbm90IG51bGwsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFURUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Np b24gKi8KKy0tIFRPRE86CistLSBjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRl cmFuZ2UoZGUsIGRzKSkgc3RvcmVkLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhp c3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBi ZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBub3QgbnVsbCBnZW5lcmF0 ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVE IGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIGluaGVyaXRlZCAqLworY3JlYXRl IHRhYmxlIHB0MnBhcmVudCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFu Z2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3Jl ZCk7CitjcmVhdGUgdGFibGUgcHQyIChwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhp c3RzID0gdHJ1ZSkpIGluaGVyaXRzIChwdDJwYXJlbnQpOworZHJvcCB0YWJsZSBwdDJwYXJlbnQ7 CisKKworLyoKKyAqIEFMVEVSIFRBQkxFIHRlc3RzCisgKi8KK2FsdGVyIHRhYmxlIHB0IGRyb3Ag cGVyaW9kIGZvciBwOworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3Igc3lzdGVtX3RpbWUg KGRzLCBkZSk7CithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpOworCisv KiBBZGRpbmcgYSBzZWNvbmQgb25lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAxIChkcywgZGUpKTsKK2FsdGVyIHRhYmxlIHB0 MiBhZGQgcGVyaW9kIGZvciBwMiAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworCisvKiBDYW4n dCBkcm9wIGl0cyBjb2x1bW5zICovCithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkczsKK2Fs dGVyIHRhYmxlIHB0IGRyb3AgY29sdW1uIGRlOworCisvKiBDYW4ndCBjaGFuZ2UgdGhlIGRhdGEg dHlwZXMgKi8KK2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsK K2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsKKworLyogY29s dW1uL3BlcmlvZCBuYW1lc3BhY2UgY29uZmxpY3RzICovCithbHRlciB0YWJsZSBwdCBhZGQgY29s dW1uIHAgaW50ZWdlcjsKK2FsdGVyIHRhYmxlIHB0IHJlbmFtZSBjb2x1bW4gaWQgdG8gcDsKK2Fs dGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHRhYmxlb2lkIChkcywgZGUpOworYWx0ZXIgdGFi bGUgcHQgYWRkIHBlcmlvZCBmb3IgIi4uLi4uLi4ucGcuZHJvcHBlZC40Li4uLi4uLi4iIChkcywg ZGUpOworCisvKiBhZGRpbmcgY29sdW1ucyBhbmQgdGhlIHBlcmlvZCBhdCB0aGUgc2FtZSB0aW1l ICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQg Y29sdW1uIGRzIGRhdGUsIGFkZCBjb2x1bW4gZGUgZGF0ZSwgYWRkIHBlcmlvZCBmb3IgcCAoZHMs IGRlKTsKK2Ryb3AgdGFibGUgcHQyOworCisvKiBBbWJpZ3VvdXMgcmFuZ2UgdHlwZXMgcmFpc2Ug YW4gZXJyb3IgKi8KK2NyZWF0ZSB0eXBlIG15ZGF0ZXJhbmdlIGFzIHJhbmdlKHN1YnR5cGU9ZGF0 ZSk7CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSk7CisKKy8qIFlvdSBjYW4gZ2l2ZSBhbiBleHBsaWNpdCByYW5nZSB0eXBl ICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbXlkYXRlcmFuZ2UnKSk7Citkcm9wIHR5 cGUgbXlkYXRlcmFuZ2U7Citkcm9wIHR5cGUgbXlkYXRlcmFuZ2UgY2FzY2FkZTsKK2Ryb3AgdGFi bGUgcHQyOworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ2RhdGVyYW5nZScpKTsKKworLyog UmFuZ2UgdHlwZSBpcyBub3QgZm91bmQgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICdu b3RhcmFuZ2UnKSk7CisKKy8qIFJhbmdlIHR5cGUgaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0 ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKHJhbmdldHlwZSA9ICd0c3R6cmFuZ2UnKSk7Citkcm9wIHRhYmxlIHB0MjsKKwor LyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0 YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVl KTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBj b2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CithbHRlciB0YWJsZSBwdDIgYWRk IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFi bGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNl IHRoZSBvcHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRl ZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQy IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gJ3doYXRldmVyJyk7 Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFp bHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRk IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFi bGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNl IHRoZSBjb2x1bW4gaXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwpOworYWx0ZXIgdGFi bGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7 Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFp bHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhw cmVzc2lvbiAqLworLS0gVE9ETzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMg KGRhdGVyYW5nZShkZSwgZHMpKSBzdG9yZWQpOworLS0gYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CisvKiBTa2lwIGNyZWF0 aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3Jv bmcgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0 ZSwgcCB0c3JhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRl KSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5n IEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQg Ki8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywg ZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAoKSBpbmhlcml0cyAocHQycGFyZW50KTsK K2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0 cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7Citkcm9wIHRhYmxlIHB0MnBhcmVudDsKKworLyog Q1JFQVRFIFRBQkxFIChMSUtFIC4uLikgKi8KKworLyogUGVyaW9kcyBhcmUgbm90IGNvcGllZCBi eSBMSUtFLCBzbyB0aGVpciBjb2x1bW5zIGFyZW4ndCBlaXRoZXIgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGxpa2UgcHQpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBl cmlvZCByZWZlcnJpbmcgdG8gTElLRSdkIGNvbHVtbnMgKi8KK2NyZWF0ZSB0YWJsZSBub3RfcCAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChsaWtlIG5v dF9wLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKwor LyogQ2FuIGFkZCBhIHBlcmlvZCB3aXRoIHRoZSBzYW1lIG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGxpa2UgcHQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUg cHQyOworCisvKiBDYW4gYWRkIGEgcGVyaW9kIHdpdGggYSBkaWZmZXJlbnQgbmFtZSAqLworY3Jl YXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7CitcZCBwdDIK K2Ryb3AgdGFibGUgcHQyOworCisvKiBDYW4ndCBhZGQgYSBwZXJpb2Qgd2hvc2UgbmFtZSBjb25m bGljdHMgd2l0aCBhIExJS0UnZCBjb2x1bW4gKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQs IHBlcmlvZCBmb3IgaWQgKGRzLCBkZSkpOworCisvKiBDUkVBVEUgVEFMQkUgSU5IRVJJVFMgKi8K KworLyogQ2FuJ3QgaW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBhIHBlcmlvZCAqLworY3JlYXRl IHRhYmxlIHB0MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQpOworCisvKiBDYW4ndCBpbmhlcml0 IHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGQycyBkYXRlLCBkMmUgZGF0ZSwg cGVyaW9kIGZvciBwIChkMnMsIGQyZSkpIGluaGVyaXRzIChub3RfcCk7CisKK2Ryb3AgdGFibGUg bm90X3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGU2 MTdiZDI5NDE3Li5jZDU5NmFlMTFlOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwKQEAgLTU4LDYgKzU4LDMxIEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcy ICgKIFNFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOwogU0VMRUNUIHBnX2dldF9pbmRleGRl Zihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAn dGVtcG9yYWxfcm5nMl9wayc7CiAKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEgUEVSSU9E OgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf ZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3Bl cgorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYo Y29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3Blcl9wayc7CisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIyCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYo b2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIyX3Br JzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjJfcGsnOworCiAtLSBQSyB3aXRo IGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChz dWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMg KApAQCAtMTM1LDYgKzE2MCwzMyBAQCBTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBG Uk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybgogU0VMRUNUIHBn X2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7 CiAKKy0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisg IHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCitTRUxFQ1QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0 ZW1wb3JhbF9wZXIzX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRy dWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEn OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCistLSBVTklRVUUgd2l0aCB0d28gY29sdW1u cyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZDEgaW50 NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3Rp bCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCitTRUxFQ1QgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9wZXIzX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLSBVTklRVUUgd2l0aCBhIGN1c3RvbSByYW5n ZSB0eXBlOgogQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBj b2xsYXRpb249IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTIxMiw2ICsy NjQsNTggQEAgQUxURVIgVEFCTEUgdGVtcG9yYWwzCiAJVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyk7CiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIAorLS0gUFJJTUFSWSBLRVkg d2l0aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworRFJPUCBUQUJM RSB0ZW1wb3JhbDM7CisKKy0tIFBSSU1BUlkgS0VZIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWwzX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBVTklRVUUgd2l0aCBQ RVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRy YW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgVU5JUVVFIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwz OworCistLSBVTklRVUUgd2l0aCBQRVJJT0QgdG9vCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKK0RST1Ag VEFCTEUgdGVtcG9yYWwzOworCiAtLQogLS0gdGVzdCBQSyBpbnNlcnRzCiAtLQpAQCAtNDE0LDYg KzUxOCw3IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKIAlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkK ICk7CitcZCB0ZW1wb3JhbF9ma19ybmcycm5nCiBEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmc7CiAKIC0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKQEAgLTE5MDIsNiArMjAw Nyw4MTcgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkEKIERFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAorLS0KKy0tIHRlc3QgRk9SRUlH TiBLRVksIFBFUklPRCByZWZlcmVuY2VzIFBFUklPRAorLS0KKworLS0gdGVzdCB0YWJsZSBzZXR1 cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgK KwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCVBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsKKwlQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworCistLSBDYW4ndCBjcmVhdGUg YSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gaW50LAorCXZhbGlkX3Rp bCBpbnQsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wazIg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsyIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQp CispOworCistLSB3b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5j aW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAor CXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdl LAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcGVyMnBlcgor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVS SU9EIGNvbHVtbnM6CisKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklP RAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2 YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwK KwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5D RVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVj aWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGlu dDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQp IFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lm eSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyCispOworLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFs aWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQpCispOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJ dmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2Us CisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCispOworCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRh YmxlOgorLS0gKFRoaXMgaXMgbm90IHBlcm1pdHRlZCBieSB0aGUgU1FMIHN0YW5kYXJkLiBTZWUg MTEuOCBzeW50YXggcnVsZSA0Yi4pCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAo CisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlw YXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtp bXBsaWNpdF0KKy0tIFRoaXMgZmluZHMgdGhlIFBLIChvbWl0dGluZyB0aGUgV0lUSE9VVCBPVkVS TEFQUyBlbGVtZW50KSwKKy0tIGJ1dCBpdCdzIG5vdCBhIGItdHJlZSBpbmRleCwgc28gaXQgZmFp bHMgYW55d2F5LgorLS0gQW55d2F5IGl0IG11c3QgZmFpbCBiZWNhdXNlIHRoZSB0d28gc2lkZXMg aGF2ZSBhIGRpZmZlcmVudCBkZWZpbml0aW9uIG9mICJ1bmlxdWUiLgorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJ dmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlk X2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQor CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBv ZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGls IGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFy ZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCkKKyk7CisK Ky0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIyOworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BlcjIgKAorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGludDRyYW5nZSwK Kwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjJfcGsg UFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFs aWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAor CXBhcmVudF9pZDIgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVS SU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVyCitEUk9QIFRBQkxFIHRl bXBvcmFsX2ZrMl9wZXIycGVyOworCistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RS QUlOVAorLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGlu dDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlk LCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRl LAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIg aW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCks CisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Bl cjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCUZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFs X2ZrMl9wZXIycGVyCisKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVy ZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrMgorCUZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCBwYXJlbnRfaWQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0Qg aWQpOworCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KKworREVMRVRFIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlcjsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgn WzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyksCisgICgnWzEsMV0nLCAnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0JyksCisgICgnWzIsMl0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1JyksCisgICgnWzMsM10nLCAnMjAxOC0wMS0wMScsIE5VTEwpOworCitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf Zms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMScsICdbMSwxXScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwy XScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWls OgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0g b2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CisKKy0tCistLSB0ZXN0IHBn X2dldF9jb25zdHJhaW50ZGVmCistLQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lk KSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19wZXIycGVy X2ZrJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KKworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEs MV0nKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcy MDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMV0nKTsKKy0tIG5vdyBpdCBzaG91bGQgd29y azoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScp OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCitVUERBVEUgdGVt cG9yYWxfZmtfcGVyMnBlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGls ID0gJzIwMTgtMDMtMDEnIFdIRVJFIGlkID0gJ1sxLDFdJzsKKy0tIHNob3VsZCBmYWlsOgorVVBE QVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZh bGlkX3RpbCA9ICcyMDE4LTA1LTAxJyBXSEVSRSBpZCA9ICdbMSwxXSc7CitVUERBVEUgdGVtcG9y YWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0gJ1s4LDhdJyBXSEVSRSBpZCA9ICdbMSwxXSc7 CisKKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKKworQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICAgKCdbNSw1XScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgICAoJ1s1LDVdJywgJzIwMTgtMDItMDEn LCAnMjAxOC0wMy0wMScpOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsM10nLCAn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitD T01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRh dGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19w ZXIycGVyOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmlj IGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAx JywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsg dXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJl bmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBX SEVSRSBpZCA9ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUs NV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0wMScs IHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9m cm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBhIFBL IHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcy MDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFy IHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2th eToKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAn WzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxf cGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg aW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcy MDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVu dCB1cGRhdGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFs X2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVw ZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNl ZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAx Ni0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVk cyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJh bmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0n LCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sz LDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBv cmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYt MDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScg QU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMg YmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFs aWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2 YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7Cist LSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFs X3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgt MDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2lu ZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3 LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hF UkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFs aWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgTk8gQUNUSU9O CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxp ZF9hdCk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMg aWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0g YSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyBy ZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgt MDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAn MjAxOC0wMy0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUg cmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAx JzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDIn IFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBh IHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUs NV0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdb Nyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g dGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0 ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOwor CistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJT04gREVMRVRF IFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIGRlbGV0 ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQg YmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn LCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAx JzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2Vk OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gZGVs ZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgt MDEtMDMnCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWls czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRz OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSBw ZXIycGVyIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0gcGFy ZW50IHVwZGF0ZXMgQ0FTQ0FERQorLS0gcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERQorLS0gcGFyZW50 IHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMCistLSBwYXJlbnQg dXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHBh cmVudCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxldGVz IENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxMICh0 d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBj b2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5V TEwgc3Vic2V0KQorLS0gcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSBw YXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBz dWJzZXQpCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIENBU0NBREUKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAs MTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBD QVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAn WzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBX SEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgQ0FT Q0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScp OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFy ZW50IHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJ CU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBEQVRF IHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19w ZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn Wy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJ CU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScg V0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywg bnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQor CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJl bnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIENBU0NBREUg T04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFs X3BlcjIgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIg U0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNB VEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2 XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScs ICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhd JywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgs OF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9w ZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlP TiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0 ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxf cGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAs MjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVs ZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0 IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVy CisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9h dCkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCU9OIERFTEVURSBTRVQgTlVMTCAo cGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn WzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlk MSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGws IG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VU IERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVM VCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10n IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0g J1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdb OCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDld JywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb LTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2 LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdb OCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxh ciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIy LCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNl0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAs MTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0t IGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBE RUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJf ZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBERUxFVEUg U0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBvazoKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQx IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9S RUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlPTiBE RUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDhdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy MiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCiAtLSBGSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5 cGUKIAogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKLS0g CjIuNDIuMAoK --0000000000000093170613cdee62--