<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>46676</bug_id>
          
          <creation_ts>2010-09-27 16:56:30 -0700</creation_ts>
          <short_desc>HTMLTreeBuilder&apos;s InForeignContent code needs a re-write</short_desc>
          <delta_ts>2010-10-21 22:49:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>47706</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simonjam</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>285909</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-27 16:56:30 -0700</bug_when>
    <thetext>HTMLTreeBuilder&apos;s InForeignContent code will needs a re-write

The spec was just overhauled:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10314

CCing folks who have some knowledge of the new parser.  I&apos;ll eventually get around to doing this if no one else does.  We&apos;ll need to sync the libhtml5 test suite again too I&apos;m sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293793</commentid>
    <comment_count>1</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-13 16:09:13 -0700</bug_when>
    <thetext>I&apos;ll take a look at this. I&apos;m new though, so I might be a bit slow.

I did sync the html5lib test suite, but there don&apos;t seem to be any new tests due to this change. I&apos;ll add new ones to the webkit tests instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293798</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-13 16:12:29 -0700</bug_when>
    <thetext>A good place to start is to add tests for this, even if they fail.

You may need to turn this into a master bug and have dependent bugs for the individual changes.  Happy to talk about this more over IRC too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297667</commentid>
    <comment_count>3</comment_count>
      <attachid>71497</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-21 14:58:23 -0700</bug_when>
    <thetext>Created attachment 71497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297668</commentid>
    <comment_count>4</comment_count>
      <attachid>71497</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-21 14:59:33 -0700</bug_when>
    <thetext>Comment on attachment 71497
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71497&amp;action=review

&gt; WebCore/html/parser/HTMLElementStack.cpp:73
&gt; +#if ENABLE(SVG_FOREIGN_OBJECT)
&gt; +        || element-&gt;hasTagName(SVGNames::foreignObjectTag)
&gt; +#endif

Given that the other MathML and SVG names are handled even if the language is not compiled in, should this really be ifdef&apos;d?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297686</commentid>
    <comment_count>5</comment_count>
      <attachid>71502</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-21 15:28:54 -0700</bug_when>
    <thetext>Created attachment 71502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297688</commentid>
    <comment_count>6</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-21 15:31:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 71497 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71497&amp;action=review
&gt; 
&gt; &gt; WebCore/html/parser/HTMLElementStack.cpp:73
&gt; &gt; +#if ENABLE(SVG_FOREIGN_OBJECT)
&gt; &gt; +        || element-&gt;hasTagName(SVGNames::foreignObjectTag)
&gt; &gt; +#endif
&gt; 
&gt; Given that the other MathML and SVG names are handled even if the language is not compiled in, should this really be ifdef&apos;d?

Good point. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297760</commentid>
    <comment_count>7</comment_count>
      <attachid>71502</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 17:57:50 -0700</bug_when>
    <thetext>Comment on attachment 71502
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71502&amp;action=review

This looks generally good.  Just some stylistic comments.  Eric should look at this too because he did most of the mixed content work.

&gt; LayoutTests/ChangeLog:19
&gt; +        * html5lib/runner-expected.txt: Since the behavior of InForeignContentMode has changed, the expectations need to be updated. These have been manually verified.

At some point we&apos;ll sync with html5lib and rebaseline the expected results.

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:1141
&gt;          defaultForInitial();
&gt; +        prepareToReprocessToken();

Should we just make the prepare call part of the default call?

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:1234
&gt; +            prepareToReprocessToken();
&gt;              processStartTag(token);

Can we combine these as reprocessStartTag(token) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297812</commentid>
    <comment_count>8</comment_count>
      <attachid>71523</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-21 21:18:20 -0700</bug_when>
    <thetext>Created attachment 71523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297813</commentid>
    <comment_count>9</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-21 21:19:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 71502 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71502&amp;action=review
&gt; &gt; WebCore/html/parser/HTMLTreeBuilder.cpp:1141
&gt; &gt;          defaultForInitial();
&gt; &gt; +        prepareToReprocessToken();
&gt; 
&gt; Should we just make the prepare call part of the default call?

Sure. Done.
 
&gt; &gt; WebCore/html/parser/HTMLTreeBuilder.cpp:1234
&gt; &gt; +            prepareToReprocessToken();
&gt; &gt;              processStartTag(token);
&gt; 
&gt; Can we combine these as reprocessStartTag(token) ?

Yep. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297824</commentid>
    <comment_count>10</comment_count>
      <attachid>71523</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 22:04:09 -0700</bug_when>
    <thetext>Comment on attachment 71523
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71523&amp;action=review

Quite nice.  Thanks!

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2616
&gt; +        setInsertionMode(InBodyMode);
&gt;          processEndOfFile(token);

No prepareToReprocess here?

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2629
&gt; +        prepareToReprocessToken();
&gt;          processEndOfFile(token);

We could have added a reprocessEndOfFile call for symmetry, but I can see why you skipped it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297835</commentid>
    <comment_count>11</comment_count>
      <attachid>71523</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 22:49:23 -0700</bug_when>
    <thetext>Comment on attachment 71523
Patch

Clearing flags on attachment: 71523

Committed r70293: &lt;http://trac.webkit.org/changeset/70293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297837</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 22:49:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71497</attachid>
            <date>2010-10-21 14:58:23 -0700</date>
            <delta_ts>2010-10-21 15:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46676-20101021145821.patch</filename>
            <type>text/plain</type>
            <size>45708</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNWVkYTJjZjE2NDc4MzI0N2FjMDIwNGRkYTc5MDNiNWIxMWVhN2U2Li41M2U2OWE1
NDU3YWJkMzcxMjM5MDc0NmNlMzI1YmY2YzQxMDNlYmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTAtMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUcmVlQnVp
bGRlcidzIEluRm9yZWlnbkNvbnRlbnQgY29kZSBuZWVkcyBhIHJlLXdyaXRlCisKKyAgICAgICAg
Rm9yZWlnbiBDb250ZW50IG1vZGUgd2FzIGNoYW5nZWQgc2lnbmlmaWNhbnRseSBieToKKyAgICAg
ICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMzE0CisK
KyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGNhbiBiZSBzZWVuIGhlcmU6CisgICAgICAgIGh0dHA6
Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcj9mcm9tPTU1MjAmdG89NTUyMgorCisg
ICAgICAgIFRoaXMgYnVnIGFkZHJlc3NlcyBhbGwgc3BlYyBjaGFuZ2VzIGluIHRoZSBkaWZmIGV4
Y2VwdCB0aGUgc2VsZWN0IHNjb3BlCisgICAgICAgIGNoYW5nZXMsIHdoaWNoIGhhdmUgYWxyZWFk
eSBiZWVuIGZpeGVkIGluIGEgc2VwYXJhdGUgYnVnLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY3NgorCisgICAgICAgICogaHRtbDVsaWIvcmVz
b3VyY2VzL3dlYmtpdDAxLmRhdDogQWRkZWQgdGhlIGRlbW8gY2FzZSBmb3IgdGhlIG5ldyBjb2Rl
LiBBZGRlZCBhIGNhc2UgdGhhdCBleHBvc2VzIGNyYXNoIHdoZW4gbm90IHVzaW5nIGhhc1RhZ05h
bWUoKS4KKyAgICAgICAgKiBodG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OiBTaW5jZSB0aGUg
YmVoYXZpb3Igb2YgSW5Gb3JlaWduQ29udGVudE1vZGUgaGFzIGNoYW5nZWQsIHRoZSBleHBlY3Rh
dGlvbnMgbmVlZCB0byBiZSB1cGRhdGVkLiBUaGVzZSBoYXZlIGJlZW4gbWFudWFsbHkgdmVyaWZp
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVk
LnR4dDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL2h0bWw1bGliL3J1bm5lci1leHBl
Y3RlZC50eHQ6IERpdHRvLgorCiAyMDEwLTEwLTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0IGIvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAppbmRleCBjZjE4OTI1YWE3MTMx
NWRiMjc0OGNmNGY2YmNmMGM3YmE1MWVkNWY5Li45ODY5NDU0ZTdkZTZiODdjMGUzMDJlZjc0MmE0
MTY4ZTg0NTQ2NDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMv
d2Via2l0MDEuZGF0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQw
MS5kYXQKQEAgLTUzNSwzICs1MzUsNDAgQEAgY29uc29sZS5sb2coIkZPTzxzcGFuPkJBUjwvc3Bh
bj5CQVoiKTsKIHwgICAgICAgICAiQiIKIHwgICAgICAgICA8ZGl2PgogfCAgICAgICAgICAgIkMi
CisKKyNkYXRhCis8c3ZnPjxlbT48ZGVzYz48L2VtPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICA8ZW0+
Cit8ICAgICAgIDxkZXNjPgorCisjZGF0YQorPHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+
PC9kZXNjPjxjaXJjbGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAg
ICAgICAgIDxzdmcgZGVzYz4KK3wgICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KKworI2RhdGEK
Kzxzdmc+PHRmb290PjwvbWk+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgdGZvb3Q+
Cit8ICAgICAgICAgPHN2ZyB0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0CmluZGV4IGIyNGMzYWRiZmVjNGE4ZjU0NjM3NmU5ZmU1MDEwMmRhY2MzN2E5ZjcuLjFkZDk1
YTFmNDAwOWM4NDM5MGQ4ZjUzZjU5YzBlMmYwODE4OTBjMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLnR4dApAQCAtNTIsMTMgKzUyLDEwNiBAQCBFeHBlY3RlZDoKIHwg
ICAgIDxrZXlnZW4+CiByZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVz
dHM5LmRhdDogUEFTUworcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6CisxNgogCitUZXN0IDE2IG9mIDI3
IGluIHJlc291cmNlcy90ZXN0czkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgaHRtbD48
Ym9keT48dGFibGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90
YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAg
ICAgPG1hdGggbWF0aD4KK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9v
IgorfCAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAg
ICAiYmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wg
PCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBt
aT4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wg
ICAgICAgInF1dXgiCiByZXNvdXJjZXMvdGVzdHMxMC5kYXQ6CisxNQorMzYKIDM4CiA1MQogNTIK
IAorVGVzdCAxNSBvZiA1MiBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoK
KzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5i
YXI8L2c+YmF6PC90YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRp
b24+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAg
ICAgICJmb28iCit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAg
ICAgICAgICAiYmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3Rl
ZDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wg
ICAgICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcg
Zz4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wg
ICAgICAgInF1dXgiCisKK1Rlc3QgMzYgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZh
aWxlZC4gSW5wdXQ6Cis8bWF0aD48bWk+PGRpdj48b2JqZWN0PjxkaXY+PHNwYW4+PC9zcGFuPjwv
ZGl2Pjwvb2JqZWN0PjwvZGl2PjwvbWk+PG1pPgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAg
ICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAg
ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWF0aCBtaT4KK0V4cGVjdGVkOgorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxt
YXRoIG1pPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAg
ICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWk+CisKIFRlc3Qg
Mzggb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8c3ZnPjxz
Y3JpcHQ+PC9zY3JpcHQ+PHBhdGg+CiBHb3Q6CkBAIC0xNTQsNyArMjQ3LDU2IEBAIHJlc291cmNl
cy90ZXN0czE3LmRhdDogUEFTUwogcmVzb3VyY2VzL3Rlc3RzMTguZGF0OiBQQVNTCiAKIHJlc291
cmNlcy90ZXN0czE5LmRhdDoKKzMxCiszMgogNjMKKzc4CisKK1Rlc3QgMzEgb2YgOTcgaW4gcmVz
b3VyY2VzL3Rlc3RzMTkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IWRvY3R5cGUgaHRtbD48cD48bWF0
aD48bWk+PHA+PGgxPgorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAg
ICA8bWF0aCBtaT4KK3wgICAgICAgICAgIDxwPgorfCAgICAgICAgICAgPGgxPgorRXhwZWN0ZWQ6
Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAg
PHA+Cit8ICAgICA8aDE+CisKK1Rlc3QgMzIgb2YgOTcgaW4gcmVzb3VyY2VzL3Rlc3RzMTkuZGF0
IGZhaWxlZC4gSW5wdXQ6Cis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bWk+PHA+PGgxPgorR290
OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAg
ICAgICAgIDxwPgorfCAgICAgICAgICAgPGgxPgorRXhwZWN0ZWQ6Cit8IDwhRE9DVFlQRSBodG1s
PgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8
bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgPHA+Cit8ICAgICA8aDE+CiAK
IFRlc3QgNjMgb2YgOTcgaW4gcmVzb3VyY2VzL3Rlc3RzMTkuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8
IWRvY3R5cGUgaHRtbD48a2V5Z2VuPjxmcmFtZXNldD4KQEAgLTE3Niw2ICszMTgsMzAgQEAgRXhw
ZWN0ZWQ6CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8a2V5Z2VuPgorCitUZXN0IDc4
IG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBl
IGh0bWw+PHA+PG1hdGg+PG1uPjxzcGFuPjwvcD5hCitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0
aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1uPgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAg
ICAgICAgIDxwPgorfCAgICAgICAgICAgICAiYSIKK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUgaHRt
bD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAg
PG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgImEiCiByZXNvdXJjZXMvdGVzdHMyMC5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMjEu
ZGF0OiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1s
NWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCBhZTA4YmJlZDMxZTQ2ZGEyZmVlMzcz
MjRlMmJjMjUzZGVmYzNmMWIyLi5mMjRiNzkwYTJiY2NiMWZlZDRkMWY2NWEzYjY3MWVhZGYxMWMx
OWRhIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKQEAgLTUwLDEzICs1MCwxMDYgQEAgRXhwZWN0ZWQ6
CiB8ICAgICA8a2V5Z2VuPgogcmVzb3VyY2VzL3Rlc3RzOC5kYXQ6IFBBU1MKIAotcmVzb3VyY2Vz
L3Rlc3RzOS5kYXQ6IFBBU1MKK3Jlc291cmNlcy90ZXN0czkuZGF0OgorMTYKIAorVGVzdCAxNiBv
ZiAyNyBpbiByZXNvdXJjZXMvdGVzdHM5LmRhdCBmYWlsZWQuIElucHV0OgorPCFET0NUWVBFIGh0
bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPmJh
ejwvdGFibGU+PHA+cXV1eAorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjYXB0aW9uPgorfCAg
ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAg
ImZvbyIKK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiYmFyIgorfCAgICAg
ICAgICAgImJheiIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJxdXV4IgorRXhwZWN0ZWQ6
Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPG1hdGggbWF0aD4KK3wg
ICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPG1h
dGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+
Cit8ICAgICAgICJxdXV4IgogcmVzb3VyY2VzL3Rlc3RzMTAuZGF0OgorMTUKKzM2CiAzOAogNTEK
IDUyCiAKK1Rlc3QgMTUgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5w
dXQ6Cis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNhcHRpb24+PHN2Zz48Zz5mb288L2c+
PGc+YmFyPC9nPmJhejwvdGFibGU+PHA+cXV1eAorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxj
YXB0aW9uPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAg
ICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAiYmFyIgor
fCAgICAgICAgICAgImJheiIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJxdXV4IgorRXhw
ZWN0ZWQ6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHN2ZyBzdmc+
Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8
c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+
Cit8ICAgICAgICJxdXV4IgorCitUZXN0IDM2IG9mIDUyIGluIHJlc291cmNlcy90ZXN0czEwLmRh
dCBmYWlsZWQuIElucHV0OgorPG1hdGg+PG1pPjxkaXY+PG9iamVjdD48ZGl2PjxzcGFuPjwvc3Bh
bj48L2Rpdj48L29iamVjdD48L2Rpdj48L21pPjxtaT4KK0dvdDoKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wg
ICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAgICAgICAgICAgPGRpdj4K
K3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1hdGggbWk+CitFeHBlY3RlZDoKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAg
ICA8bWF0aCBtaT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAg
ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1pPgorCiBU
ZXN0IDM4IG9mIDUyIGluIHJlc291cmNlcy90ZXN0czEwLmRhdCBmYWlsZWQuIElucHV0OgogPHN2
Zz48c2NyaXB0Pjwvc2NyaXB0PjxwYXRoPgogR290OgpAQCAtMTUyLDcgKzI0NSw1NiBAQCByZXNv
dXJjZXMvdGVzdHMxNy5kYXQ6IFBBU1MKIHJlc291cmNlcy90ZXN0czE4LmRhdDogUEFTUwogCiBy
ZXNvdXJjZXMvdGVzdHMxOS5kYXQ6CiszMQorMzIKIDYzCis3OAorCitUZXN0IDMxIG9mIDk3IGlu
IHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBlIGh0bWw+PHA+
PG1hdGg+PG1pPjxwPjxoMT4KK0dvdDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxoMT4KK0V4cGVj
dGVkOgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wg
ICAgIDxwPgorfCAgICAgPGgxPgorCitUZXN0IDMyIG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5
LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBlIGh0bWw+PHA+PG1hdGg+PG1pPjxwPjxoMT4K
K0dvdDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbWk+Cit8
ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxoMT4KK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUg
aHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAg
ICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAgIDxwPgorfCAgICAgPGgx
PgogCiBUZXN0IDYzIG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0
OgogPCFkb2N0eXBlIGh0bWw+PGtleWdlbj48ZnJhbWVzZXQ+CkBAIC0xNzIsNiArMzE0LDMwIEBA
IEV4cGVjdGVkOgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgogfCAgICAgPGtleWdlbj4KKworVGVz
dCA3OCBvZiA5NyBpbiByZXNvdXJjZXMvdGVzdHMxOS5kYXQgZmFpbGVkLiBJbnB1dDoKKzwhZG9j
dHlwZSBodG1sPjxwPjxtYXRoPjxtbj48c3Bhbj48L3A+YQorR290OgorfCA8IURPQ1RZUEUgaHRt
bD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAg
PG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgImEiCitFeHBlY3RlZDoKK3wgPCFET0NUWVBF
IGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAg
ICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbW4+Cit8ICAgICAgICAgICA8c3Bhbj4K
K3wgICAgICJhIgogcmVzb3VyY2VzL3Rlc3RzMjAuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0
czIxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2h0bWw1
bGliL3J1bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCBlNjI1OWM4ZTJhNTQ1NGJjNDIyODRjYjY2N2E5
YzgyNTdjYjQyMmI4Li5hNzIzMmFlNDQxZDcwYjAwMDIzMThhODVhMjA3NTEwODNhYmJlMzBjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVsaWIvcnVubmVyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVsaWIvcnVubmVyLWV4
cGVjdGVkLnR4dApAQCAtMzEsMTMgKzMxLDEwNiBAQCByZXNvdXJjZXMvdGVzdHM3LmRhdDogUEFT
UwogCiByZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVzdHM5LmRhdDog
UEFTUworcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6CisxNgogCitUZXN0IDE2IG9mIDI3IGluIHJlc291
cmNlcy90ZXN0czkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFi
bGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90YWJsZT48cD5x
dXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPG1hdGgg
bWF0aD4KK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6Igor
fCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wgPCFET0NUWVBF
IGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgPG1h
dGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAg
ICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1
dXgiCiByZXNvdXJjZXMvdGVzdHMxMC5kYXQ6CisxNQorMzYKIDM4CiA1MQogNTIKIAorVGVzdCAx
NSBvZiA1MiBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoKKzwhRE9DVFlQ
RSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+YmF6
PC90YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAg
ICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28i
Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAi
YmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wgPCFE
T0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAg
IDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcgZz4KK3wgICAg
ICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1
dXgiCisKK1Rlc3QgMzYgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5w
dXQ6Cis8bWF0aD48bWk+PGRpdj48b2JqZWN0PjxkaXY+PHNwYW4+PC9zcGFuPjwvZGl2Pjwvb2Jq
ZWN0PjwvZGl2PjwvbWk+PG1pPgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgIDxkaXY+
Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAg
ICAgIDxzcGFuPgorfCAgICAgICA8bWF0aCBtaT4KK0V4cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgor
fCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2
PgorfCAgICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWk+CisKIFRlc3QgMzggb2YgNTIg
aW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8c3ZnPjxzY3JpcHQ+PC9z
Y3JpcHQ+PHBhdGg+CiBHb3Q6CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDg2MTgyNWU1NTc0OWY3OWMxNmUxODQzZDdiMjI5YTBhOTYwMzhh
MjguLjVlYzA3ZTI3ZDJlMmJmYmViZGZjODQyNzViNjkyNTkzOTk2ZGVkMjUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTAtMTAtMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUcmVl
QnVpbGRlcidzIEluRm9yZWlnbkNvbnRlbnQgY29kZSBuZWVkcyBhIHJlLXdyaXRlCisKKyAgICAg
ICAgRm9yZWlnbiBDb250ZW50IG1vZGUgd2FzIGNoYW5nZWQgc2lnbmlmaWNhbnRseSBieToKKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMzE0
CisKKyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGNhbiBiZSBzZWVuIGhlcmU6CisgICAgICAgIGh0
dHA6Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcj9mcm9tPTU1MjAmdG89NTUyMgor
CisgICAgICAgIFRoaXMgYnVnIGFkZHJlc3NlcyBhbGwgc3BlYyBjaGFuZ2VzIGluIHRoZSBkaWZm
IGV4Y2VwdCB0aGUgc2VsZWN0IHNjb3BlCisgICAgICAgIGNoYW5nZXMsIHdoaWNoIGhhdmUgYWxy
ZWFkeSBiZWVuIGZpeGVkIGluIGEgc2VwYXJhdGUgYnVnLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY3NgorCisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6Omlz
U2NvcGVNYXJrZXIpOiBBZGQgZm9yZWlnbiBlbGVtZW50cyB0byBsaXN0LgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NEb2N0eXBlVG9rZW4pOiBTd2l0Y2ggbW9kZSBiZWZvcmUgcmVwcm9jZXNz
aW5nIGFueSB0b2tlbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZ0ZvckluQm9keSk6IERpdHRvLiBSZW1vdmUgc2Vjb25kYXJ5IGluc2VydGlvbiBt
b2RlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdG
b3JJblRhYmxlKTogU3dpdGNoIG1vZGUgYmVmb3JlIHJlcHJvY2Vzc2luZyBhbnkgdG9rZW5zLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcpOiBEaXR0
by4gUmVtb3ZlIHNlY29uZGFyeSBpbnNlcnRpb24gbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6IFJlbW92ZSBm
b3JlaWduIHZhci4gVXNlIGhhc1RhZ05hbWUoKSBpbnN0ZWFkIG9mID09IGxvY2FsTmFtZSgpIHRv
IGZpeCBidWcgd2l0aCBmb3JlaWduIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJsZUJvZHkpOiBTd2l0Y2ggbW9kZSBiZWZv
cmUgcmVwcm9jZXNzaW5nIGFueSB0b2tlbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRSZXNldE1vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cmVzZXRGb3JlaWduSW5zZXJ0aW9uTW9k
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29t
bWVudCk6IFN3aXRjaCBtb2RlIGJlZm9yZSByZXByb2Nlc3NpbmcgYW55IHRva2Vucy4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxl
KTogRGl0dG8uCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6IEZ1bmN0
aW9ucyBhbmQgbWVtYmVyIGZvciB0cmFja2luZyBwb3RlbnRpYWwgc3dpdGNoIGZyb20gSW5Gb3Jl
aWduQ29udGVudE1vZGUuCisKIDIwMTAtMTAtMjEgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9z
ZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IDZiOTYyOTFkYzI5
OWFhMjY1OWJmMDUwYTQwY2RlOTA5NjU5MzMwZWIuLjFmOTJiZTQ1ZmU4OGFiYjMwNDdmYTUyNGVh
NjI1ZTU4NjllODc5ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5jcHAKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNw
cApAQCAtNTYsMTUgKzU2LDIzIEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoRWxlbWVudCog
ZWxlbWVudCkKIHsKICAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpCiAg
ICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykKLSNpZiBFTkFCTEUoU1ZH
X0ZPUkVJR05fT0JKRUNUKQotICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVz
Ojpmb3JlaWduT2JqZWN0VGFnKQotI2VuZGlmCiAgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05h
bWUoaHRtbFRhZykKICAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShtYXJxdWVlVGFnKQog
ICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykKICAgICAgICAgfHwgZWxl
bWVudC0+aGFzVGFnTmFtZSh0YWJsZVRhZykKICAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFt
ZSh0ZFRhZykKLSAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZSh0aFRhZyk7CisgICAgICAg
IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUodGhUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1Rh
Z05hbWUoTWF0aE1MTmFtZXM6Om1pVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptb1RhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRo
TUxOYW1lczo6bW5UYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFt
ZXM6Om1zVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjpt
dGV4dFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6YW5u
b3RhdGlvbl94bWxUYWcpCisjaWYgRU5BQkxFKFNWR19GT1JFSUdOX09CSkVDVCkKKyAgICAgICAg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykKKyNlbmRp
ZgorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQorICAg
ICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZyk7CiB9CiAKIGlu
bGluZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihFbGVtZW50KiBlbGVtZW50KQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDVmOTAyODVkNWE3ZDA3NDM0Yzgx
YjQ3YmNlZjc1NzRmYzA3ZjZlMGEuLmI1ODJhZTU2YWEzOWJkZjAwYmIyMzhjMTdiNmM4MzRlODJm
MTM1ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTEwNSw3
ICsxMDUsMTUgQEAgYm9vbCBpc1RhYmxlQm9keUNvbnRleHRUYWcoY29uc3QgQXRvbWljU3RyaW5n
JiB0YWdOYW1lKQogLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3NwZWNpYWwKIGJvb2wgaXNTcGVjaWFsTm9k
ZShOb2RlKiBub2RlKQogewotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3Jl
aWduT2JqZWN0VGFnKSkKKyAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bWlU
YWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKQorICAg
ICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptblRhZykKKyAgICAgICAgfHwg
bm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXNUYWcpCisgICAgICAgIHx8IG5vZGUtPmhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10ZXh0VGFnKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdO
YW1lKE1hdGhNTE5hbWVzOjphbm5vdGF0aW9uX3htbFRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFz
VGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFz
VGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShT
VkdOYW1lczo6dGl0bGVUYWcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobm9kZS0+
bmFtZXNwYWNlVVJJKCkgIT0geGh0bWxOYW1lc3BhY2VVUkkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTMzMSwxMSArMzM5LDExIEBAIEhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVy
KEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwgSFRNTERvY3VtZW50KiBkb2N1bWVuCiAgICAgLCBt
X2lzUGF1c2VkKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQogICAg
ICwgbV9vcmlnaW5hbEluc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUpCi0gICAgLCBtX3NlY29uZGFy
eUluc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUpCiAgICAgLCBtX3Rva2VuaXplcih0b2tlbml6ZXIp
CiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJl
clZhbHVlKQogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVk
TGluZU51bWJlclZhbHVlKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVI
VE1MNVBhcnNlclF1aXJrcykKKyAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2Rl
U3RlcHMoZmFsc2UpCiB7CiB9CiAKQEAgLTM1MCwxMSArMzU4LDExIEBAIEhUTUxUcmVlQnVpbGRl
cjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwgRG9jdW1lbnRGcmFn
bWVudCogZnJhCiAgICAgLCBtX2lzUGF1c2VkKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Nb2Rl
KEluaXRpYWxNb2RlKQogICAgICwgbV9vcmlnaW5hbEluc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUp
Ci0gICAgLCBtX3NlY29uZGFyeUluc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUpCiAgICAgLCBtX3Rv
a2VuaXplcih0b2tlbml6ZXIpCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmlu
aXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0
TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV91c2VQcmVIVE1MNVBh
cnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKKyAgICAsIG1faGFzUGVuZGluZ0Zv
cmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiAgICAgaWYgKGNvbnRleHRFbGVtZW50
KSB7CiAgICAgICAgIC8vIFN0ZXBzIDQuMi00LjYgb2YgdGhlIEhUTUw1IEZyYWdtZW50IENhc2Ug
cGFyc2luZyBhbGdvcml0aG06CkBAIC00ODEsNiArNDg5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NEb2N0eXBlVG9rZW4oQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICB9CiAg
ICAgaWYgKG1faW5zZXJ0aW9uTW9kZSA9PSBJblRhYmxlVGV4dE1vZGUpIHsKICAgICAgICAgZGVm
YXVsdEZvckluVGFibGVUZXh0KCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7
CiAgICAgICAgIHByb2Nlc3NEb2N0eXBlVG9rZW4odG9rZW4pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtODE1LDYgKzgyNCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgaWYgKG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aW5TY29wZShidXR0b25UYWcpKSB7CiAgICAgICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKGJ1dHRvblRhZyk7
CisgICAgICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgcHJv
Y2Vzc1N0YXJ0VGFnKHRva2VuKTsgLy8gRklYTUU6IENvdWxkIHdlIGp1c3QgZmFsbCB0aHJvdWdo
IGhlcmU/CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTg3Miw2ICs4ODIsNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAvLyBB
cHBhcmVudGx5IHdlJ3JlIG5vdCBzdXBwb3NlZCB0byBhc2suCiAgICAgICAgIHRva2VuLnNldE5h
bWUoaW1nVGFnLmxvY2FsTmFtZSgpKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4o
KTsKICAgICAgICAgLy8gTm90ZSB0aGUgZmFsbCB0aHJvdWdoIHRvIHRoZSBpbWdUYWcgaGFuZGxp
bmcgYmVsb3chCiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYXJlYVRhZwpAQCAtOTcx
LDEwICs5ODIsOCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5C
b2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGFkanVzdE1hdGhNTEF0dHJpYnV0
ZXModG9rZW4pOwogICAgICAgICBhZGp1c3RGb3JlaWduQXR0cmlidXRlcyh0b2tlbik7CiAgICAg
ICAgIG1fdHJlZS5pbnNlcnRGb3JlaWduRWxlbWVudCh0b2tlbiwgTWF0aE1MTmFtZXM6Om1hdGht
bE5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIGlmIChtX2luc2VydGlvbk1vZGUgIT0gSW5Gb3JlaWdu
Q29udGVudE1vZGUpIHsKLSAgICAgICAgICAgIHNldFNlY29uZGFyeUluc2VydGlvbk1vZGUobV9p
bnNlcnRpb25Nb2RlKTsKKyAgICAgICAgaWYgKG1faW5zZXJ0aW9uTW9kZSAhPSBJbkZvcmVpZ25D
b250ZW50TW9kZSkKICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVu
dE1vZGUpOwotICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2Vu
Lm5hbWUoKSA9PSBTVkdOYW1lczo6c3ZnVGFnLmxvY2FsTmFtZSgpKSB7CkBAIC05ODIsMTAgKzk5
MSw4IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7
CiAgICAgICAgIGFkanVzdEZvcmVpZ25BdHRyaWJ1dGVzKHRva2VuKTsKICAgICAgICAgbV90cmVl
Lmluc2VydEZvcmVpZ25FbGVtZW50KHRva2VuLCBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKTsK
LSAgICAgICAgaWYgKG1faW5zZXJ0aW9uTW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSkgewot
ICAgICAgICAgICAgc2V0U2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShtX2luc2VydGlvbk1vZGUpOwor
ICAgICAgICBpZiAobV9pbnNlcnRpb25Nb2RlICE9IEluRm9yZWlnbkNvbnRlbnRNb2RlKQogICAg
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkZvcmVpZ25Db250ZW50TW9kZSk7Ci0gICAgICAg
IH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91
cFRhZyh0b2tlbi5uYW1lKCkpCkBAIC0xMDQ2LDYgKzEwNTMsNyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQog
ICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gY29sVGFnKSB7CiAgICAgICAgIHByb2Nlc3NGYWtlU3Rh
cnRUYWcoY29sZ3JvdXBUYWcpOwogICAgICAgICBBU1NFUlQoSW5Db2x1bW5Hcm91cE1vZGUpOwor
ICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBwcm9jZXNzU3RhcnRU
YWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTA1OSw2ICsxMDY3LDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHRyVGFnKSB7CiAgICAg
ICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcodGJvZHlUYWcpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vz
c1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0xMDY4LDYgKzEwNzcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nl
c3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDk5LDcgKzEx
MDksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQogCiBuYW1lc3BhY2UgewogCi1ib29sIHNob3VsZFByb2Nl
c3NVc2luZ1NlY29uZGFyeUluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbiwgRWxl
bWVudCogY3VycmVudEVsZW1lbnQpCitib29sIHNob3VsZFByb2Nlc3NGb3JlaWduQ29udGVudFVz
aW5nSW5Cb2R5SW5zZXJ0aW9uTW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2VuLCBFbGVtZW50KiBj
dXJyZW50RWxlbWVudCkKIHsKICAgICBBU1NFUlQodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6
U3RhcnRUYWcpOwogICAgIGlmIChjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bWlUYWcpCkBAIC0xMTI4LDYgKzExMzgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgY2FzZSBJbml0aWFsTW9k
ZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbml0aWFsTW9kZSk7CiAgICAg
ICAgIGRlZmF1bHRGb3JJbml0aWFsKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEJlZm9yZUhUTUxNb2RlOgog
ICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEJlZm9yZUhUTUxNb2RlKTsKQEAgLTEx
MzcsNiArMTE0OCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0Rm9yQmVmb3JlSFRNTCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NU
b2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBCZWZvcmVIZWFkTW9k
ZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBCZWZvcmVIZWFkTW9kZSk7CkBA
IC0xMTUwLDEyICsxMTYyLDE0IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRU
YWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0Rm9yQmVmb3JlSGVhZCgpOworICAgICAgICBwcmVwYXJlVG9SZXBy
b2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhlYWRN
b2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOwogICAg
ICAgICBpZiAocHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKSkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgZGVmYXVsdEZvckluSGVhZCgpOworICAgICAgICBwcmVwYXJlVG9SZXBy
b2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBBZnRlckhl
YWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVySGVhZE1vZGUp
OwpAQCAtMTE5NSw2ICsxMjA5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFy
dFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHRGb3JBZnRlckhlYWQoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVw
cm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoCiAgICAgY2FzZSBJbkJvZHlN
b2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUpOwpAQCAt
MTIxNSw2ICsxMjMwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTIzNCw2
ICsxMjUwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSW5UYWJsZUJvZHlNb2RlOgpAQCAtMTI0OCw2ICsxMjY1LDcgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBwcm9jZXNzRmFr
ZVN0YXJ0VGFnKHRyVGFnKTsKICAgICAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5Sb3dNb2RlKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAg
ICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CkBAIC0xMjYxLDYgKzEyNzksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnBvcFVudGlsVGFibGVCb2R5U2NvcGVNYXJrZXIoKTsKICAgICAgICAgICAg
IEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmxv
Y2FsTmFtZSgpKSk7CiAgICAgICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyhtX3RyZWUuY3VycmVu
dEVsZW1lbnQoKS0+dGFnUU5hbWUoKSk7CisgICAgICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NU
b2tlbigpOwogICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMTI4Myw2ICsxMzAyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMzAxLDYgKzEzMjEsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2xvc2VUaGVD
ZWxsKCk7CisgICAgICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAg
ICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpAQCAtMTMxNCw2ICsxMzM1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFy
dFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgpAQCAtMTMzNyw2ICsx
MzU5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGRl
ZmF1bHRGb3JJbkhlYWROb3NjcmlwdCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tl
bigpOwogICAgICAgICBwcm9jZXNzVG9rZW4odG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEluRnJhbWVzZXRNb2RlOgpAQCAtMTM4Miw2ICsxNDA1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBBdG9taWNIVE1MVG9rZW4gZW5kU2Vs
ZWN0KEhUTUxUb2tlbjo6RW5kVGFnLCBzZWxlY3RUYWcubG9jYWxOYW1lKCkpOwogICAgICAgICAg
ICAgcHJvY2Vzc0VuZFRhZyhlbmRTZWxlY3QpOworICAgICAgICAgICAgcHJlcGFyZVRvUmVwcm9j
ZXNzVG9rZW4oKTsKICAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE0MjgsNiArMTQ1Miw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRTZWxlY3QoSFRNTFRva2Vu
OjpFbmRUYWcsIHNlbGVjdFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICBwcm9jZXNzRW5k
VGFnKGVuZFNlbGVjdCk7CisgICAgICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwog
ICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtMTQzOSwxMSArMTQ2NCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQo
KTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkZvcmVpZ25Db250ZW50
TW9kZTogewotICAgICAgICBpZiAoc2hvdWxkUHJvY2Vzc1VzaW5nU2Vjb25kYXJ5SW5zZXJ0aW9u
TW9kZSh0b2tlbiwgbV90cmVlLmN1cnJlbnRFbGVtZW50KCkpKSB7Ci0gICAgICAgICAgICBwcm9j
ZXNzVXNpbmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlQW5kQWRqdXN0SW5zZXJ0aW9uTW9kZSh0b2tl
bik7CisgICAgICAgIGlmIChzaG91bGRQcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keUlu
c2VydGlvbk1vZGUodG9rZW4sIG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKSkgeworICAgICAgICAg
ICAgcHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKHRva2Vu
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAodG9rZW4ubmFt
ZSgpID09IGJUYWcKQEAgLTE0ODgsMTUgKzE1MTQsMTUgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgfHwg
KHRva2VuLm5hbWUoKSA9PSBmb250VGFnICYmICh0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGNvbG9y
QXR0cikgfHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShmYWNlQXR0cikgfHwgdG9rZW4uZ2V0QXR0
cmlidXRlSXRlbShzaXplQXR0cikpKSkgewogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7
CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsRm9yZWlnbkNvbnRl
bnRTY29wZU1hcmtlcigpOwotICAgICAgICAgICAgaWYgKGluc2VydGlvbk1vZGUoKSA9PSBJbkZv
cmVpZ25Db250ZW50TW9kZSAmJiBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlIVE1MRWxl
bWVudHNJblNjb3BlKCkpCi0gICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX3NlY29u
ZGFyeUluc2VydGlvbk1vZGUpOworICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9w
cmlhdGVseSgpOworICAgICAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAg
ICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjdXJyZW50TmFtZXNwYWNlID0gbV90
cmVlLmN1cnJlbnRFbGVtZW50KCktPm5hbWVzcGFjZVVSSSgpOwogICAgICAgICBpZiAoY3VycmVu
dE5hbWVzcGFjZSA9PSBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKQogICAgICAgICAg
ICAgYWRqdXN0TWF0aE1MQXR0cmlidXRlcyh0b2tlbik7Ci0gICAgICAgICBpZiAoY3VycmVudE5h
bWVzcGFjZSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKSB7CisgICAgICAgIGlmIChjdXJy
ZW50TmFtZXNwYWNlID09IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkpIHsKICAgICAgICAgICAg
IGFkanVzdFNWR1RhZ05hbWVDYXNlKHRva2VuKTsKICAgICAgICAgICAgIGFkanVzdFNWR0F0dHJp
YnV0ZXModG9rZW4pOwogICAgICAgICB9CkBAIC0xNjc5LDI2ICsxNzA1LDEwIEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpjYWxsVGhlQWRvcHRpb25BZ2VuY3koQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKICAgICB9CiB9CiAKLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpzZXRTZWNvbmRhcnlJbnNlcnRp
b25Nb2RlKEluc2VydGlvbk1vZGUgbW9kZSkKLXsKLSAgICBBU1NFUlQobW9kZSAhPSBJbkZvcmVp
Z25Db250ZW50TW9kZSk7Ci0gICAgbV9zZWNvbmRhcnlJbnNlcnRpb25Nb2RlID0gbW9kZTsKLX0K
LQotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5zZXJ0aW9u
TW9kZSBuZXdJbnNlcnRpb25Nb2RlLCBib29sIGZvcmVpZ24pCi17Ci0gICAgc2V0SW5zZXJ0aW9u
TW9kZShuZXdJbnNlcnRpb25Nb2RlKTsKLSAgICBpZiAoZm9yZWlnbikgewotICAgICAgICBzZXRT
ZWNvbmRhcnlJbnNlcnRpb25Nb2RlKG1faW5zZXJ0aW9uTW9kZSk7Ci0gICAgICAgIHNldEluc2Vy
dGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwotICAgIH0KLX0KLQogdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogewogICAgIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L3BhcnNpbmcuaHRtbCNyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseQogICAg
IGJvb2wgbGFzdCA9IGZhbHNlOwotICAgIGJvb2wgZm9yZWlnbiA9IGZhbHNlOwogICAgIEhUTUxF
bGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIG5vZGVSZWNvcmQgPSBtX3RyZWUub3BlbkVsZW1l
bnRzKCktPnRvcFJlY29yZCgpOwogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIEVsZW1lbnQqIG5v
ZGUgPSBub2RlUmVjb3JkLT5lbGVtZW50KCk7CkBAIC0xNzA5LDQyICsxNzE5LDQyIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAgICAg
ICAgfQogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7CiAgICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc2V0
SW5zZXJ0aW9uTW9kZUFuZEVuZChJblNlbGVjdE1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAg
cmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5TZWxlY3RNb2RlKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0ZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJbkNlbGxNb2RlLCBm
b3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQ2VsbE1vZGUp
OwogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0clRhZykpCi0gICAgICAgICAgICByZXR1
cm4gc2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJblJvd01vZGUsIGZvcmVpZ24pOwotICAgICAgICBp
ZiAoaXNUYWJsZUJvZHlDb250ZXh0VGFnKG5vZGUtPmxvY2FsTmFtZSgpKSkKLSAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluVGFibGVCb2R5TW9kZSwgZm9yZWlnbik7
CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOworICAgICAg
ICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0Ym9keVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aGVh
ZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykpCisgICAgICAgICAgICByZXR1cm4g
c2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlQm9keU1vZGUpOwogICAgICAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
QW5kRW5kKEluQ2FwdGlvbk1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGUoSW5DYXB0aW9uTW9kZSk7CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KGNvbGdyb3VwVGFnKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OwotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5Db2x1bW5Hcm91
cE1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5D
b2x1bW5Hcm91cE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KHRhYmxlVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKElu
VGFibGVNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
KEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaGVhZFRhZykpIHsK
ICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKLSAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluQm9keU1vZGUsIGZvcmVpZ24pOworICAgICAg
ICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoYm9keVRhZykpCi0gICAgICAgICAgICByZXR1cm4g
c2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJbkJvZHlNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAgICAgICBpZiAobm9kZS0+
aGFzVGFnTmFtZShmcmFtZXNldFRhZykpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKElu
RnJhbWVzZXRNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25N
b2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobm9kZS0+aGFzVGFn
TmFtZShodG1sVGFnKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OwotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoQmVmb3JlSGVhZE1v
ZGUsIGZvcmVpZ24pOworICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoQmVmb3Jl
SGVhZE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5uYW1lc3BhY2VVUkkoKSA9
PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJCiAgICAgICAgICAgICB8fCBub2RlLT5uYW1lc3Bh
Y2VVUkkoKSA9PSBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKQotICAgICAgICAgICAg
Zm9yZWlnbiA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZv
cmVpZ25Db250ZW50TW9kZSk7CiAgICAgICAgIGlmIChsYXN0KSB7CiAgICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9u
TW9kZUFuZEVuZChJbkJvZHlNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAgICAgICB9CiAgICAgICAgIG5vZGVSZWNvcmQg
PSBub2RlUmVjb3JkLT5uZXh0KCk7CiAgICAgfQpAQCAtMTc3Myw2ICsxNzgzLDcgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9taWNIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsVGFibGVC
b2R5U2NvcGVNYXJrZXIoKTsKICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyht
X3RyZWUuY3VycmVudEVsZW1lbnQoKS0+bG9jYWxOYW1lKCkpKTsKICAgICAgICAgcHJvY2Vzc0Zh
a2VFbmRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPnRhZ1FOYW1lKCkpOworICAgICAgICBw
cmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4MDAsNiArMTgxMSw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Sb3coQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9u
TW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rv
a2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTgxMCw2ICsxODIyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NF
bmRUYWdGb3JJblJvdyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9CiAgICAgICAg
IHByb2Nlc3NGYWtlRW5kVGFnKHRyVGFnKTsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUo
KSA9PSBJblRhYmxlQm9keU1vZGUpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwogICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTE4NTQsNiArMTg2Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
Rm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgY2xvc2VUaGVDZWxsKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMTg2OSw4ICsxODgzLDEwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogICAg
IGlmICh0b2tlbi5uYW1lKCkgPT0gaHRtbFRhZykgewogICAgICAgICBBdG9taWNIVE1MVG9rZW4g
ZW5kQm9keShIVE1MVG9rZW46OkVuZFRhZywgYm9keVRhZy5sb2NhbE5hbWUoKSk7Ci0gICAgICAg
IGlmIChwcm9jZXNzQm9keUVuZFRhZ0ZvckluQm9keShlbmRCb2R5KSkKKyAgICAgICAgaWYgKHBy
b2Nlc3NCb2R5RW5kVGFnRm9ySW5Cb2R5KGVuZEJvZHkpKSB7CisgICAgICAgICAgICBwcmVwYXJl
VG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09
IGFkZHJlc3NUYWcKQEAgLTE5MjMsNiArMTkzOSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAg
ICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcocFRh
Zyk7CiAgICAgICAgICAgICBBU1NFUlQobV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKHRv
a2VuLm5hbWUoKSkpOworICAgICAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAg
ICAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CkBAIC0yMDYxLDYgKzIwNzgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIGNhc2UgSW5pdGlhbE1vZGU6CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5pdGlhbE1vZGUpOwogICAgICAgICBk
ZWZhdWx0Rm9ySW5pdGlhbCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwog
ICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBCZWZvcmVIVE1MTW9kZToKICAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBCZWZvcmVIVE1MTW9kZSk7CkBAIC0yMDY5LDYg
KzIwODcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGRl
ZmF1bHRGb3JCZWZvcmVIVE1MKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7
CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEJlZm9yZUhlYWRNb2RlOgogICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEJlZm9yZUhlYWRNb2RlKTsKQEAgLTIwNzcs
NiArMjA5Niw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
ZGVmYXVsdEZvckJlZm9yZUhlYWQoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4o
KTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKQEAgLTIwOTAsNiArMjEx
MCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dEZvckluSGVhZCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAg
ICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBBZnRlckhlYWRNb2RlOgogICAgICAgICBBU1NF
UlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVySGVhZE1vZGUpOwpAQCAtMjA5OCw2ICsyMTE5LDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0Rm9y
QWZ0ZXJIZWFkKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAg
IC8vIEZhbGwgdGhyb3VnaAogICAgIGNhc2UgSW5Cb2R5TW9kZToKICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlKTsKQEAgLTIxMTksNiArMjE0MSw3IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vz
c1Rva2VuKCk7CiAgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMjE0OCw2ICsyMTcxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQorICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBwcm9jZXNz
RW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblJvd01vZGU6CkBAIC0y
MTcyLDExICsyMTk2LDEzIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEFmdGVy
QWZ0ZXJCb2R5TW9kZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAg
cHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAg
IGNhc2UgQWZ0ZXJBZnRlckJvZHlNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgp
ID09IEFmdGVyQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyQWZ0ZXJCb2R5TW9k
ZSk7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEluQm9keU1vZGUpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAg
ICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkhlYWRO
b3NjcmlwdE1vZGU6CkBAIC0yMTkzLDYgKzIyMTksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHRGb3JJbkhlYWROb3NjcmlwdCgpOworICAgICAg
ICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBwcm9jZXNzVG9rZW4odG9rZW4p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRNb2RlOgpAQCAtMjI1Myw2ICsyMjgwLDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIGlmIChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29w
ZSh0b2tlbi5uYW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgQXRvbWljSFRNTFRva2VuIGVuZFNl
bGVjdChIVE1MVG9rZW46OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAg
ICAgICAgICBwcm9jZXNzRW5kVGFnKGVuZFNlbGVjdCk7CisgICAgICAgICAgICAgICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2Vu
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKQEAgLTIyOTEsNiArMjMxOSw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAg
ICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSW5Gb3JlaWduQ29udGVudE1vZGU6CkBAIC0yMzE0LDcgKzIzNDMsNyBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIC8vIEFueSBvdGhlciBlbmQgdGFnIChhbHNv
IHRoZSBsYXN0IHR3byBzdGVwcyBvZiAiQW4gZW5kIHRhZywgaWYgdGhlIGN1cnJlbnQgbm9kZSBp
cyBub3QgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBuYW1lc3BhY2UuIgotICAgICAgICBwcm9jZXNz
VXNpbmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlQW5kQWRqdXN0SW5zZXJ0aW9uTW9kZSh0b2tlbik7
CisgICAgICAgIHByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0TW9k
ZSh0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIzMzksMTggKzIzNjgsMjkg
QEAgcHJpdmF0ZToKICAgICBJbnNlcnRpb25Nb2RlIG1fb3JpZ2luYWxNb2RlOwogfTsKIAotLy8g
VGhpcyBoYW5kbGVzIGJvdGggc2Vjb25kYXJ5IGluc2VydGlvbiBtb2RlIHByb2Nlc3NpbmcsIGFz
IHdlbGwgYXMgdXBkYXRpbmcKLS8vIHRoZSBpbnNlcnRpb24gbW9kZS4gIFRoZXNlIGFyZSBzZXBh
cmF0ZSBzdGVwcyBpbiB0aGUgc3BlYywgYnV0IGFsd2F5cyBvY2N1cgotLy8gcmlnaHQgYWZ0ZXIg
b25lIGFub3RoZXIuCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1VzaW5nU2Vjb25kYXJ5
SW5zZXJ0aW9uTW9kZUFuZEFkanVzdEluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpCiB7Ci0g
ICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnIHx8IHRva2VuLnR5
cGUoKSA9PSBIVE1MVG9rZW46OkVuZFRhZyk7CisgICAgaWYgKG1faGFzUGVuZGluZ0ZvcmVpZ25J
bnNlcnRpb25Nb2RlU3RlcHMpIHsKKyAgICAgICAgcmVzZXRGb3JlaWduSW5zZXJ0aW9uTW9kZSgp
OworICAgICAgICBtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0ZXBzID0gZmFsc2U7
CisgICAgfQorfQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0ZvcmVpZ25Db250ZW50
VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7Cisg
ICAgbV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcyA9IHRydWU7CiAgICAgewot
ICAgICAgICBGYWtlSW5zZXJ0aW9uTW9kZSBmYWtlTW9kZSh0aGlzLCBtX3NlY29uZGFyeUluc2Vy
dGlvbk1vZGUpOworICAgICAgICBGYWtlSW5zZXJ0aW9uTW9kZSBmYWtlTW9kZSh0aGlzLCBJbkJv
ZHlNb2RlKTsKICAgICAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKICAgICB9Ci0gICAgaWYgKGlu
c2VydGlvbk1vZGUoKSA9PSBJbkZvcmVpZ25Db250ZW50TW9kZSAmJiBtX3RyZWUub3BlbkVsZW1l
bnRzKCktPmhhc09ubHlIVE1MRWxlbWVudHNJblNjb3BlKCkpCi0gICAgICAgIHNldEluc2VydGlv
bk1vZGUobV9zZWNvbmRhcnlJbnNlcnRpb25Nb2RlKTsKKyAgICBpZiAobV9oYXNQZW5kaW5nRm9y
ZWlnbkluc2VydGlvbk1vZGVTdGVwcykKKyAgICAgICAgcmVzZXRGb3JlaWduSW5zZXJ0aW9uTW9k
ZSgpOworfQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRGb3JlaWduSW5zZXJ0aW9uTW9k
ZSgpCit7CisgICAgaWYgKGluc2VydGlvbk1vZGUoKSA9PSBJbkZvcmVpZ25Db250ZW50TW9kZSkK
KyAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogfQogCiB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NvbW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKQEAg
LTIzNjksNiArMjQwOSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29tbWVudChB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIH0KICAgICBpZiAobV9pbnNlcnRpb25Nb2RlID09
IEluVGFibGVUZXh0TW9kZSkgewogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKKyAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc0NvbW1lbnQo
dG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjM5Miw2ICsyNDMzLDcgQEAgUmVw
cm9jZXNzQnVmZmVyOgogICAgICAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgZGVmYXVsdEZvckluaXRpYWwoKTsKKyAgICAgICAgcHJlcGFyZVRv
UmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIH0KICAgICBj
YXNlIEJlZm9yZUhUTUxNb2RlOiB7CkBAIC0yNDAwLDYgKzI0NDIsNyBAQCBSZXByb2Nlc3NCdWZm
ZXI6CiAgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBkZWZhdWx0Rm9yQmVmb3JlSFRNTCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgfQogICAgIGNhc2UgQmVm
b3JlSGVhZE1vZGU6IHsKQEAgLTI0MDgsNiArMjQ1MSw3IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAg
ICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGRlZmF1bHRGb3JCZWZvcmVIZWFkKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICB9CiAgICAgY2FzZSBJbkhlYWRNb2Rl
OiB7CkBAIC0yNDE4LDYgKzI0NjIsNyBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIGlmIChi
dWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWZhdWx0Rm9y
SW5IZWFkKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8v
IEZhbGwgdGhyb3VnaC4KICAgICB9CiAgICAgY2FzZSBBZnRlckhlYWRNb2RlOiB7CkBAIC0yNDI4
LDYgKzI0NzMsNyBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIGlmIChidWZmZXIuaXNFbXB0
eSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWZhdWx0Rm9yQWZ0ZXJIZWFkKCk7
CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhy
b3VnaC4KICAgICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgpAQCAtMjQ0OCw2ICsyNDk0LDcgQEAg
UmVwcm9jZXNzQnVmZmVyOgogICAgICAgICBBU1NFUlQobV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJz
LmlzRW1wdHkoKSk7CiAgICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRp
b25Nb2RlOwogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVUZXh0TW9kZSk7CisgICAg
ICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4K
ICAgICB9CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6IHsKQEAgLTI0NjgsNiArMjUxNSw3IEBA
IFJlcHJvY2Vzc0J1ZmZlcjoKICAgICAgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwogICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsKICAgICB9CiAgICAgY2Fz
ZSBBZnRlckJvZHlNb2RlOgpAQCAtMjQ3NSw2ICsyNTIzLDcgQEAgUmVwcm9jZXNzQnVmZmVyOgog
ICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyQm9keU1vZGUgfHwgaW5zZXJ0
aW9uTW9kZSgpID09IEFmdGVyQWZ0ZXJCb2R5TW9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJz
ZSBlcnJvcgogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworICAgICAgICBw
cmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjUzOCwyMiArMjU4NywyNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAg
IGNhc2UgSW5pdGlhbE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5p
dGlhbE1vZGUpOwogICAgICAgICBkZWZhdWx0Rm9ySW5pdGlhbCgpOworICAgICAgICBwcmVwYXJl
VG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBC
ZWZvcmVIVE1MTW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBCZWZvcmVI
VE1MTW9kZSk7CiAgICAgICAgIGRlZmF1bHRGb3JCZWZvcmVIVE1MKCk7CisgICAgICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNl
IEJlZm9yZUhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEJlZm9y
ZUhlYWRNb2RlKTsKICAgICAgICAgZGVmYXVsdEZvckJlZm9yZUhlYWQoKTsKKyAgICAgICAgcHJl
cGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNh
c2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRN
b2RlKTsKICAgICAgICAgZGVmYXVsdEZvckluSGVhZCgpOworICAgICAgICBwcmVwYXJlVG9SZXBy
b2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBBZnRlckhl
YWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVySGVhZE1vZGUp
OwogICAgICAgICBkZWZhdWx0Rm9yQWZ0ZXJIZWFkKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaAogICAgIGNhc2UgSW5Cb2R5TW9k
ZToKICAgICBjYXNlIEluQ2VsbE1vZGU6CkBAIC0yNTY5LDYgKzI2MjMsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAg
IGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgp
ID09IEluSGVhZE5vc2NyaXB0TW9kZSk7CiAgICAgICAgIGRlZmF1bHRGb3JJbkhlYWROb3Njcmlw
dCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBwcm9jZXNz
RW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNl
dE1vZGU6CkBAIC0yNTkzLDIwICsyNjQ4LDE2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmls
ZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2Rl
OgotICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50
cygpLT5wb3BVbnRpbEZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoKTsKLSAgICAgICAgLy8gRklY
TUU6IFRoZSBzcGVjIGFkZHMgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gYmVmb3JlIHNldHRpbmcg
dGhlCi0gICAgICAgIC8vICAgICAgICBpbnNlcnRpb24gbW9kZS4gIEhvd2V2ZXIsIHRoaXMgY29u
ZGl0aW9uIGNhdXNlcyBhbiBpbmZpbml0ZSBsb29wLgotICAgICAgICAvLyAgICAgICAgU2VlIGh0
dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0xMDYyMQotICAgICAg
ICAvLyAgICAgICAgaWYgKGluc2VydGlvbk1vZGUoKSA9PSBJbkZvcmVpZ25Db250ZW50TW9kZSAm
JiBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlIVE1MRWxlbWVudHNJblNjb3BlKCkpCi0g
ICAgICAgIHNldEluc2VydGlvbk1vZGUobV9zZWNvbmRhcnlJbnNlcnRpb25Nb2RlKTsKKyAgICAg
ICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmls
ZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluVGFibGVUZXh0TW9kZToKICAg
ICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vz
c1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBUZXh0TW9kZToKQEAgLTI2MTUsNiArMjY2Niw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBtYXJrIHRoZSBzY3JpcHQgZWxlbWVudCBhcyAi
YWxyZWFkeSBzdGFydGVkIi4KICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsK
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CisgICAg
ICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUo
dG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmgKaW5kZXggZTYxZmU3MzQ2NmRhMTc4ZDMzMTFkMjc2MjBlNDZiODI4MWMxZTQ1NS4u
Zjk0NzliMGU1YzEzMzI1OWY4M2RkN2Y0ZTIxZDRmODY2NjYyYTU0YyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC0xOTQsMTEgKzE5NCwxMyBAQCBwcml2YXRlOgogICAg
ICAgICBtX2lzRmFrZUluc2VydGlvbk1vZGUgPSB0cnVlOwogICAgIH0KIAotICAgIHZvaWQgc2V0
U2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShJbnNlcnRpb25Nb2RlKTsKLQotICAgIHZvaWQgc2V0SW5z
ZXJ0aW9uTW9kZUFuZEVuZChJbnNlcnRpb25Nb2RlLCBib29sIGZvcmVpZ24pOyAvLyBIZWxwZXIg
Zm9yIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkKICAgICB2b2lkIHJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIAorICAgIHZvaWQgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKKworICAgIHZvaWQgcHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlNb2RlQW5k
UmVzZXRNb2RlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pOworICAgIHZvaWQgcmVzZXRGb3JlaWdu
SW5zZXJ0aW9uTW9kZSgpOworCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgogICAgICAgICBGcmFnbWVudFBhcnNpbmdD
b250ZXh0KCk7CkBAIC0yMzYsNyArMjM4LDYgQEAgcHJpdmF0ZToKICAgICAvLyBzZXRJbnNlcnRp
b25Nb2RlIGFuZCBuZXZlciBzZXQgbV9pbnNlcnRpb25Nb2RlIGRpcmVjdGx5LgogICAgIEluc2Vy
dGlvbk1vZGUgbV9pbnNlcnRpb25Nb2RlOwogICAgIEluc2VydGlvbk1vZGUgbV9vcmlnaW5hbElu
c2VydGlvbk1vZGU7Ci0gICAgSW5zZXJ0aW9uTW9kZSBtX3NlY29uZGFyeUluc2VydGlvbk1vZGU7
CiAKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCNwZW5kaW5nLXRhYmxlLWNoYXJhY3Rlci10
b2tlbnMKICAgICBWZWN0b3I8VUNoYXI+IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVyczsKQEAgLTI1
Miw4ICsyNTMsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBjcmVhdGVkIHRvIHNlcnZpY2UgdGhlIGxl
Z2FjeSB0cmVlIGJ1aWxkZXIsIGJ1dCBpdCBzZWVtcyB0byBiZSB1c2VkIGZvcgogICAgIC8vIHNv
bWUgb3RoZXIgdGhpbmdzIG5vdy4KICAgICBpbnQgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGlu
ZTsKLSAgICAKKwogICAgIGJvb2wgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrczsKKworICAgIGJv
b2wgbV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwczsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71502</attachid>
            <date>2010-10-21 15:28:54 -0700</date>
            <delta_ts>2010-10-21 21:18:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46676-20101021152853.patch</filename>
            <type>text/plain</type>
            <size>45842</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNWVkYTJjZjE2NDc4MzI0N2FjMDIwNGRkYTc5MDNiNWIxMWVhN2U2Li41M2U2OWE1
NDU3YWJkMzcxMjM5MDc0NmNlMzI1YmY2YzQxMDNlYmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTAtMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUcmVlQnVp
bGRlcidzIEluRm9yZWlnbkNvbnRlbnQgY29kZSBuZWVkcyBhIHJlLXdyaXRlCisKKyAgICAgICAg
Rm9yZWlnbiBDb250ZW50IG1vZGUgd2FzIGNoYW5nZWQgc2lnbmlmaWNhbnRseSBieToKKyAgICAg
ICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMzE0CisK
KyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGNhbiBiZSBzZWVuIGhlcmU6CisgICAgICAgIGh0dHA6
Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcj9mcm9tPTU1MjAmdG89NTUyMgorCisg
ICAgICAgIFRoaXMgYnVnIGFkZHJlc3NlcyBhbGwgc3BlYyBjaGFuZ2VzIGluIHRoZSBkaWZmIGV4
Y2VwdCB0aGUgc2VsZWN0IHNjb3BlCisgICAgICAgIGNoYW5nZXMsIHdoaWNoIGhhdmUgYWxyZWFk
eSBiZWVuIGZpeGVkIGluIGEgc2VwYXJhdGUgYnVnLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY3NgorCisgICAgICAgICogaHRtbDVsaWIvcmVz
b3VyY2VzL3dlYmtpdDAxLmRhdDogQWRkZWQgdGhlIGRlbW8gY2FzZSBmb3IgdGhlIG5ldyBjb2Rl
LiBBZGRlZCBhIGNhc2UgdGhhdCBleHBvc2VzIGNyYXNoIHdoZW4gbm90IHVzaW5nIGhhc1RhZ05h
bWUoKS4KKyAgICAgICAgKiBodG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OiBTaW5jZSB0aGUg
YmVoYXZpb3Igb2YgSW5Gb3JlaWduQ29udGVudE1vZGUgaGFzIGNoYW5nZWQsIHRoZSBleHBlY3Rh
dGlvbnMgbmVlZCB0byBiZSB1cGRhdGVkLiBUaGVzZSBoYXZlIGJlZW4gbWFudWFsbHkgdmVyaWZp
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVk
LnR4dDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL2h0bWw1bGliL3J1bm5lci1leHBl
Y3RlZC50eHQ6IERpdHRvLgorCiAyMDEwLTEwLTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0IGIvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAppbmRleCBjZjE4OTI1YWE3MTMx
NWRiMjc0OGNmNGY2YmNmMGM3YmE1MWVkNWY5Li45ODY5NDU0ZTdkZTZiODdjMGUzMDJlZjc0MmE0
MTY4ZTg0NTQ2NDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMv
d2Via2l0MDEuZGF0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQw
MS5kYXQKQEAgLTUzNSwzICs1MzUsNDAgQEAgY29uc29sZS5sb2coIkZPTzxzcGFuPkJBUjwvc3Bh
bj5CQVoiKTsKIHwgICAgICAgICAiQiIKIHwgICAgICAgICA8ZGl2PgogfCAgICAgICAgICAgIkMi
CisKKyNkYXRhCis8c3ZnPjxlbT48ZGVzYz48L2VtPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICA8ZW0+
Cit8ICAgICAgIDxkZXNjPgorCisjZGF0YQorPHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+
PC9kZXNjPjxjaXJjbGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAg
ICAgICAgIDxzdmcgZGVzYz4KK3wgICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KKworI2RhdGEK
Kzxzdmc+PHRmb290PjwvbWk+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgdGZvb3Q+
Cit8ICAgICAgICAgPHN2ZyB0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0CmluZGV4IGIyNGMzYWRiZmVjNGE4ZjU0NjM3NmU5ZmU1MDEwMmRhY2MzN2E5ZjcuLjFkZDk1
YTFmNDAwOWM4NDM5MGQ4ZjUzZjU5YzBlMmYwODE4OTBjMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLnR4dApAQCAtNTIsMTMgKzUyLDEwNiBAQCBFeHBlY3RlZDoKIHwg
ICAgIDxrZXlnZW4+CiByZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVz
dHM5LmRhdDogUEFTUworcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6CisxNgogCitUZXN0IDE2IG9mIDI3
IGluIHJlc291cmNlcy90ZXN0czkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgaHRtbD48
Ym9keT48dGFibGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90
YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAg
ICAgPG1hdGggbWF0aD4KK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9v
IgorfCAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAg
ICAiYmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wg
PCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBt
aT4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wg
ICAgICAgInF1dXgiCiByZXNvdXJjZXMvdGVzdHMxMC5kYXQ6CisxNQorMzYKIDM4CiA1MQogNTIK
IAorVGVzdCAxNSBvZiA1MiBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoK
KzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5i
YXI8L2c+YmF6PC90YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRp
b24+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAg
ICAgICJmb28iCit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAg
ICAgICAgICAiYmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3Rl
ZDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wg
ICAgICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcg
Zz4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wg
ICAgICAgInF1dXgiCisKK1Rlc3QgMzYgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZh
aWxlZC4gSW5wdXQ6Cis8bWF0aD48bWk+PGRpdj48b2JqZWN0PjxkaXY+PHNwYW4+PC9zcGFuPjwv
ZGl2Pjwvb2JqZWN0PjwvZGl2PjwvbWk+PG1pPgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAg
ICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAg
ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWF0aCBtaT4KK0V4cGVjdGVkOgorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxt
YXRoIG1pPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAg
ICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWk+CisKIFRlc3Qg
Mzggb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8c3ZnPjxz
Y3JpcHQ+PC9zY3JpcHQ+PHBhdGg+CiBHb3Q6CkBAIC0xNTQsNyArMjQ3LDU2IEBAIHJlc291cmNl
cy90ZXN0czE3LmRhdDogUEFTUwogcmVzb3VyY2VzL3Rlc3RzMTguZGF0OiBQQVNTCiAKIHJlc291
cmNlcy90ZXN0czE5LmRhdDoKKzMxCiszMgogNjMKKzc4CisKK1Rlc3QgMzEgb2YgOTcgaW4gcmVz
b3VyY2VzL3Rlc3RzMTkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IWRvY3R5cGUgaHRtbD48cD48bWF0
aD48bWk+PHA+PGgxPgorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAg
ICA8bWF0aCBtaT4KK3wgICAgICAgICAgIDxwPgorfCAgICAgICAgICAgPGgxPgorRXhwZWN0ZWQ6
Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAg
PHA+Cit8ICAgICA8aDE+CisKK1Rlc3QgMzIgb2YgOTcgaW4gcmVzb3VyY2VzL3Rlc3RzMTkuZGF0
IGZhaWxlZC4gSW5wdXQ6Cis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bWk+PHA+PGgxPgorR290
OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAg
ICAgICAgIDxwPgorfCAgICAgICAgICAgPGgxPgorRXhwZWN0ZWQ6Cit8IDwhRE9DVFlQRSBodG1s
PgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8
bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgPHA+Cit8ICAgICA8aDE+CiAK
IFRlc3QgNjMgb2YgOTcgaW4gcmVzb3VyY2VzL3Rlc3RzMTkuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8
IWRvY3R5cGUgaHRtbD48a2V5Z2VuPjxmcmFtZXNldD4KQEAgLTE3Niw2ICszMTgsMzAgQEAgRXhw
ZWN0ZWQ6CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8a2V5Z2VuPgorCitUZXN0IDc4
IG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBl
IGh0bWw+PHA+PG1hdGg+PG1uPjxzcGFuPjwvcD5hCitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0
aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1uPgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAg
ICAgICAgIDxwPgorfCAgICAgICAgICAgICAiYSIKK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUgaHRt
bD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAg
PG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgImEiCiByZXNvdXJjZXMvdGVzdHMyMC5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMjEu
ZGF0OiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1s
NWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCBhZTA4YmJlZDMxZTQ2ZGEyZmVlMzcz
MjRlMmJjMjUzZGVmYzNmMWIyLi5mMjRiNzkwYTJiY2NiMWZlZDRkMWY2NWEzYjY3MWVhZGYxMWMx
OWRhIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKQEAgLTUwLDEzICs1MCwxMDYgQEAgRXhwZWN0ZWQ6
CiB8ICAgICA8a2V5Z2VuPgogcmVzb3VyY2VzL3Rlc3RzOC5kYXQ6IFBBU1MKIAotcmVzb3VyY2Vz
L3Rlc3RzOS5kYXQ6IFBBU1MKK3Jlc291cmNlcy90ZXN0czkuZGF0OgorMTYKIAorVGVzdCAxNiBv
ZiAyNyBpbiByZXNvdXJjZXMvdGVzdHM5LmRhdCBmYWlsZWQuIElucHV0OgorPCFET0NUWVBFIGh0
bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPmJh
ejwvdGFibGU+PHA+cXV1eAorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjYXB0aW9uPgorfCAg
ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAg
ImZvbyIKK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiYmFyIgorfCAgICAg
ICAgICAgImJheiIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJxdXV4IgorRXhwZWN0ZWQ6
Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPG1hdGggbWF0aD4KK3wg
ICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPG1h
dGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+
Cit8ICAgICAgICJxdXV4IgogcmVzb3VyY2VzL3Rlc3RzMTAuZGF0OgorMTUKKzM2CiAzOAogNTEK
IDUyCiAKK1Rlc3QgMTUgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5w
dXQ6Cis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNhcHRpb24+PHN2Zz48Zz5mb288L2c+
PGc+YmFyPC9nPmJhejwvdGFibGU+PHA+cXV1eAorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxj
YXB0aW9uPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAg
ICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAiYmFyIgor
fCAgICAgICAgICAgImJheiIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJxdXV4IgorRXhw
ZWN0ZWQ6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHN2ZyBzdmc+
Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8
c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+
Cit8ICAgICAgICJxdXV4IgorCitUZXN0IDM2IG9mIDUyIGluIHJlc291cmNlcy90ZXN0czEwLmRh
dCBmYWlsZWQuIElucHV0OgorPG1hdGg+PG1pPjxkaXY+PG9iamVjdD48ZGl2PjxzcGFuPjwvc3Bh
bj48L2Rpdj48L29iamVjdD48L2Rpdj48L21pPjxtaT4KK0dvdDoKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wg
ICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAgICAgICAgICAgPGRpdj4K
K3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1hdGggbWk+CitFeHBlY3RlZDoKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAg
ICA8bWF0aCBtaT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAg
ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1pPgorCiBU
ZXN0IDM4IG9mIDUyIGluIHJlc291cmNlcy90ZXN0czEwLmRhdCBmYWlsZWQuIElucHV0OgogPHN2
Zz48c2NyaXB0Pjwvc2NyaXB0PjxwYXRoPgogR290OgpAQCAtMTUyLDcgKzI0NSw1NiBAQCByZXNv
dXJjZXMvdGVzdHMxNy5kYXQ6IFBBU1MKIHJlc291cmNlcy90ZXN0czE4LmRhdDogUEFTUwogCiBy
ZXNvdXJjZXMvdGVzdHMxOS5kYXQ6CiszMQorMzIKIDYzCis3OAorCitUZXN0IDMxIG9mIDk3IGlu
IHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBlIGh0bWw+PHA+
PG1hdGg+PG1pPjxwPjxoMT4KK0dvdDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxoMT4KK0V4cGVj
dGVkOgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wg
ICAgIDxwPgorfCAgICAgPGgxPgorCitUZXN0IDMyIG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5
LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBlIGh0bWw+PHA+PG1hdGg+PG1pPjxwPjxoMT4K
K0dvdDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbWk+Cit8
ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxoMT4KK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUg
aHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAg
ICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAgIDxwPgorfCAgICAgPGgx
PgogCiBUZXN0IDYzIG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0
OgogPCFkb2N0eXBlIGh0bWw+PGtleWdlbj48ZnJhbWVzZXQ+CkBAIC0xNzIsNiArMzE0LDMwIEBA
IEV4cGVjdGVkOgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgogfCAgICAgPGtleWdlbj4KKworVGVz
dCA3OCBvZiA5NyBpbiByZXNvdXJjZXMvdGVzdHMxOS5kYXQgZmFpbGVkLiBJbnB1dDoKKzwhZG9j
dHlwZSBodG1sPjxwPjxtYXRoPjxtbj48c3Bhbj48L3A+YQorR290OgorfCA8IURPQ1RZUEUgaHRt
bD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAg
PG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgImEiCitFeHBlY3RlZDoKK3wgPCFET0NUWVBF
IGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAg
ICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbW4+Cit8ICAgICAgICAgICA8c3Bhbj4K
K3wgICAgICJhIgogcmVzb3VyY2VzL3Rlc3RzMjAuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0
czIxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2h0bWw1
bGliL3J1bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCBlNjI1OWM4ZTJhNTQ1NGJjNDIyODRjYjY2N2E5
YzgyNTdjYjQyMmI4Li5hNzIzMmFlNDQxZDcwYjAwMDIzMThhODVhMjA3NTEwODNhYmJlMzBjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVsaWIvcnVubmVyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVsaWIvcnVubmVyLWV4
cGVjdGVkLnR4dApAQCAtMzEsMTMgKzMxLDEwNiBAQCByZXNvdXJjZXMvdGVzdHM3LmRhdDogUEFT
UwogCiByZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVzdHM5LmRhdDog
UEFTUworcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6CisxNgogCitUZXN0IDE2IG9mIDI3IGluIHJlc291
cmNlcy90ZXN0czkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFi
bGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90YWJsZT48cD5x
dXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPG1hdGgg
bWF0aD4KK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6Igor
fCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wgPCFET0NUWVBF
IGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgPG1h
dGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAg
ICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1
dXgiCiByZXNvdXJjZXMvdGVzdHMxMC5kYXQ6CisxNQorMzYKIDM4CiA1MQogNTIKIAorVGVzdCAx
NSBvZiA1MiBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoKKzwhRE9DVFlQ
RSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+YmF6
PC90YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAg
ICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28i
Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAi
YmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wgPCFE
T0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAg
IDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcgZz4KK3wgICAg
ICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1
dXgiCisKK1Rlc3QgMzYgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5w
dXQ6Cis8bWF0aD48bWk+PGRpdj48b2JqZWN0PjxkaXY+PHNwYW4+PC9zcGFuPjwvZGl2Pjwvb2Jq
ZWN0PjwvZGl2PjwvbWk+PG1pPgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgIDxkaXY+
Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAg
ICAgIDxzcGFuPgorfCAgICAgICA8bWF0aCBtaT4KK0V4cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgor
fCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2
PgorfCAgICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWk+CisKIFRlc3QgMzggb2YgNTIg
aW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8c3ZnPjxzY3JpcHQ+PC9z
Y3JpcHQ+PHBhdGg+CiBHb3Q6CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDg2MTgyNWU1NTc0OWY3OWMxNmUxODQzZDdiMjI5YTBhOTYwMzhh
MjguLjVlYzA3ZTI3ZDJlMmJmYmViZGZjODQyNzViNjkyNTkzOTk2ZGVkMjUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTAtMTAtMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUcmVl
QnVpbGRlcidzIEluRm9yZWlnbkNvbnRlbnQgY29kZSBuZWVkcyBhIHJlLXdyaXRlCisKKyAgICAg
ICAgRm9yZWlnbiBDb250ZW50IG1vZGUgd2FzIGNoYW5nZWQgc2lnbmlmaWNhbnRseSBieToKKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMzE0
CisKKyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGNhbiBiZSBzZWVuIGhlcmU6CisgICAgICAgIGh0
dHA6Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcj9mcm9tPTU1MjAmdG89NTUyMgor
CisgICAgICAgIFRoaXMgYnVnIGFkZHJlc3NlcyBhbGwgc3BlYyBjaGFuZ2VzIGluIHRoZSBkaWZm
IGV4Y2VwdCB0aGUgc2VsZWN0IHNjb3BlCisgICAgICAgIGNoYW5nZXMsIHdoaWNoIGhhdmUgYWxy
ZWFkeSBiZWVuIGZpeGVkIGluIGEgc2VwYXJhdGUgYnVnLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY3NgorCisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6Omlz
U2NvcGVNYXJrZXIpOiBBZGQgZm9yZWlnbiBlbGVtZW50cyB0byBsaXN0LgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NEb2N0eXBlVG9rZW4pOiBTd2l0Y2ggbW9kZSBiZWZvcmUgcmVwcm9jZXNz
aW5nIGFueSB0b2tlbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZ0ZvckluQm9keSk6IERpdHRvLiBSZW1vdmUgc2Vjb25kYXJ5IGluc2VydGlvbiBt
b2RlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdG
b3JJblRhYmxlKTogU3dpdGNoIG1vZGUgYmVmb3JlIHJlcHJvY2Vzc2luZyBhbnkgdG9rZW5zLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcpOiBEaXR0
by4gUmVtb3ZlIHNlY29uZGFyeSBpbnNlcnRpb24gbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6IFJlbW92ZSBm
b3JlaWduIHZhci4gVXNlIGhhc1RhZ05hbWUoKSBpbnN0ZWFkIG9mID09IGxvY2FsTmFtZSgpIHRv
IGZpeCBidWcgd2l0aCBmb3JlaWduIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJsZUJvZHkpOiBTd2l0Y2ggbW9kZSBiZWZv
cmUgcmVwcm9jZXNzaW5nIGFueSB0b2tlbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRSZXNldE1vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cmVzZXRGb3JlaWduSW5zZXJ0aW9uTW9k
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29t
bWVudCk6IFN3aXRjaCBtb2RlIGJlZm9yZSByZXByb2Nlc3NpbmcgYW55IHRva2Vucy4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxl
KTogRGl0dG8uCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6IEZ1bmN0
aW9ucyBhbmQgbWVtYmVyIGZvciB0cmFja2luZyBwb3RlbnRpYWwgc3dpdGNoIGZyb20gSW5Gb3Jl
aWduQ29udGVudE1vZGUuCisKIDIwMTAtMTAtMjEgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9z
ZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IDZiOTYyOTFkYzI5
OWFhMjY1OWJmMDUwYTQwY2RlOTA5NjU5MzMwZWIuLjZhYWIwZjdjMzdmYmJmYzczZmU0YjI4NjRl
MjBiZDYzMWVmOWMyMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5jcHAKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNw
cApAQCAtMzIsMTAgKzMyLDYgQEAKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlNWR05hbWVzLmgi
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwpAQCAtNTYsMTUgKzUyLDIxIEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoRWxlbWVu
dCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcp
CiAgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykKLSNpZiBFTkFCTEUo
U1ZHX0ZPUkVJR05fT0JKRUNUKQotICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05h
bWVzOjpmb3JlaWduT2JqZWN0VGFnKQotI2VuZGlmCiAgICAgICAgIHx8IGVsZW1lbnQtPmhhc1Rh
Z05hbWUoaHRtbFRhZykKICAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShtYXJxdWVlVGFn
KQogICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykKICAgICAgICAgfHwg
ZWxlbWVudC0+aGFzVGFnTmFtZSh0YWJsZVRhZykKICAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFn
TmFtZSh0ZFRhZykKLSAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZSh0aFRhZyk7CisgICAg
ICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUodGhUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1pVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKE1hdGhNTE5hbWVzOjptb1RhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bW5UYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1M
TmFtZXM6Om1zVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVz
OjptdGV4dFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6
YW5ub3RhdGlvbl94bWxUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OmZvcmVpZ25PYmplY3RUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmRlc2NUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OnRpdGxlVGFnKTsKIH0KIAogaW5saW5lIGJvb2wgaXNMaXN0SXRlbVNjb3BlTWFya2VyKEVsZW1l
bnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXgg
NWY5MDI4NWQ1YTdkMDc0MzRjODFiNDdiY2VmNzU3NGZjMDdmNmUwYS4uYjU4MmFlNTZhYTM5YmRm
MDBiYjIzOGMxN2I2YzgzNGU4MmYxMzVmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcApAQCAtMTA1LDcgKzEwNSwxNSBAQCBib29sIGlzVGFibGVCb2R5Q29udGV4dFRh
Zyhjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCiAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjc3BlY2lh
bAogYm9vbCBpc1NwZWNpYWxOb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKG5vZGUtPmhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKQorICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKE1hdGhNTE5hbWVzOjptaVRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRo
TUxOYW1lczo6bW9UYWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6
Om1uVGFnKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykK
KyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcpCisgICAg
ICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25feG1sVGFnKQor
ICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQor
ICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQorICAgICAgICB8
fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmIChub2RlLT5uYW1lc3BhY2VVUkkoKSAhPSB4aHRtbE5hbWVzcGFjZVVSSSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzMxLDExICszMzksMTEgQEAgSFRNTFRyZWVCdWls
ZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciogdG9rZW5pemVyLCBIVE1MRG9jdW1l
bnQqIGRvY3VtZW4KICAgICAsIG1faXNQYXVzZWQoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvbk1v
ZGUoSW5pdGlhbE1vZGUpCiAgICAgLCBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZShJbml0aWFsTW9k
ZSkKLSAgICAsIG1fc2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShJbml0aWFsTW9kZSkKICAgICAsIG1f
dG9rZW5pemVyKHRva2VuaXplcikKICAgICAsIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRMaW5lKHVu
aW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3Rh
cnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCiAgICAgLCBtX3VzZVByZUhUTUw1
UGFyc2VyUXVpcmtzKHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQorICAgICwgbV9oYXNQZW5kaW5n
Rm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcyhmYWxzZSkKIHsKIH0KIApAQCAtMzUwLDExICszNTgs
MTEgQEAgSFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciogdG9r
ZW5pemVyLCBEb2N1bWVudEZyYWdtZW50KiBmcmEKICAgICAsIG1faXNQYXVzZWQoZmFsc2UpCiAg
ICAgLCBtX2luc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUpCiAgICAgLCBtX29yaWdpbmFsSW5zZXJ0
aW9uTW9kZShJbml0aWFsTW9kZSkKLSAgICAsIG1fc2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShJbml0
aWFsTW9kZSkKICAgICAsIG1fdG9rZW5pemVyKHRva2VuaXplcikKICAgICAsIG1fc2NyaXB0VG9Q
cm9jZXNzU3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCiAgICAgLCBtX2xh
c3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCiAg
ICAgLCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzKHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQor
ICAgICwgbV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcyhmYWxzZSkKIHsKICAg
ICBpZiAoY29udGV4dEVsZW1lbnQpIHsKICAgICAgICAgLy8gU3RlcHMgNC4yLTQuNiBvZiB0aGUg
SFRNTDUgRnJhZ21lbnQgQ2FzZSBwYXJzaW5nIGFsZ29yaXRobToKQEAgLTQ4MSw2ICs0ODksNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0RvY3R5cGVUb2tlbihBdG9taWNIVE1MVG9r
ZW4mIHRva2VuKQogICAgIH0KICAgICBpZiAobV9pbnNlcnRpb25Nb2RlID09IEluVGFibGVUZXh0
TW9kZSkgewogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKKyAgICAgICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc0RvY3R5cGVUb2tlbih0b2tlbik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MTUsNiArODI0LDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKGJ1dHRvblRhZykp
IHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcHJvY2Vzc0Zh
a2VFbmRUYWcoYnV0dG9uVGFnKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOyAvLyBGSVhNRTogQ291bGQg
d2UganVzdCBmYWxsIHRocm91Z2ggaGVyZT8KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpAQCAtODcyLDYgKzg4Miw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRU
YWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgcGFyc2VFcnJvcih0
b2tlbik7CiAgICAgICAgIC8vIEFwcGFyZW50bHkgd2UncmUgbm90IHN1cHBvc2VkIHRvIGFzay4K
ICAgICAgICAgdG9rZW4uc2V0TmFtZShpbWdUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBwcmVw
YXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBOb3RlIHRoZSBmYWxsIHRocm91Z2gg
dG8gdGhlIGltZ1RhZyBoYW5kbGluZyBiZWxvdyEKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUo
KSA9PSBhcmVhVGFnCkBAIC05NzEsMTAgKzk4Miw4IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAg
YWRqdXN0TWF0aE1MQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIGFkanVzdEZvcmVpZ25BdHRy
aWJ1dGVzKHRva2VuKTsKICAgICAgICAgbV90cmVlLmluc2VydEZvcmVpZ25FbGVtZW50KHRva2Vu
LCBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKTsKLSAgICAgICAgaWYgKG1faW5zZXJ0
aW9uTW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSkgewotICAgICAgICAgICAgc2V0U2Vjb25k
YXJ5SW5zZXJ0aW9uTW9kZShtX2luc2VydGlvbk1vZGUpOworICAgICAgICBpZiAobV9pbnNlcnRp
b25Nb2RlICE9IEluRm9yZWlnbkNvbnRlbnRNb2RlKQogICAgICAgICAgICAgc2V0SW5zZXJ0aW9u
TW9kZShJbkZvcmVpZ25Db250ZW50TW9kZSk7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzdmdUYWcubG9jYWxOYW1l
KCkpIHsKQEAgLTk4MiwxMCArOTkxLDggQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBhZGp1c3RT
VkdBdHRyaWJ1dGVzKHRva2VuKTsKICAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9r
ZW4pOwogICAgICAgICBtX3RyZWUuaW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIFNWR05hbWVz
OjpzdmdOYW1lc3BhY2VVUkkpOwotICAgICAgICBpZiAobV9pbnNlcnRpb25Nb2RlICE9IEluRm9y
ZWlnbkNvbnRlbnRNb2RlKSB7Ci0gICAgICAgICAgICBzZXRTZWNvbmRhcnlJbnNlcnRpb25Nb2Rl
KG1faW5zZXJ0aW9uTW9kZSk7CisgICAgICAgIGlmIChtX2luc2VydGlvbk1vZGUgIT0gSW5Gb3Jl
aWduQ29udGVudE1vZGUpCiAgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRm9yZWlnbkNv
bnRlbnRNb2RlKTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChp
c0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLm5hbWUoKSkKQEAgLTEwNDYsNiArMTA1Myw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21p
Y0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBjb2xUYWcpIHsKICAg
ICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhjb2xncm91cFRhZyk7CiAgICAgICAgIEFTU0VSVChJ
bkNvbHVtbkdyb3VwTW9kZSk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAg
ICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMDU5LDYgKzEwNjcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFn
Rm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB8fCB0b2tlbi5uYW1l
KCkgPT0gdHJUYWcpIHsKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyh0Ym9keVRhZyk7CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAg
ICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRv
a2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwNjgsNiArMTA3Nyw3IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTEwOTksNyArMTEwOSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAKIG5hbWVzcGFjZSB7
CiAKLWJvb2wgc2hvdWxkUHJvY2Vzc1VzaW5nU2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShBdG9taWNI
VE1MVG9rZW4mIHRva2VuLCBFbGVtZW50KiBjdXJyZW50RWxlbWVudCkKK2Jvb2wgc2hvdWxkUHJv
Y2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlJbnNlcnRpb25Nb2RlKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4sIEVsZW1lbnQqIGN1cnJlbnRFbGVtZW50KQogewogICAgIEFTU0VSVCh0b2tlbi50
eXBlKCkgPT0gSFRNTFRva2VuOjpTdGFydFRhZyk7CiAgICAgaWYgKGN1cnJlbnRFbGVtZW50LT5o
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykKQEAgLTExMjgsNiArMTEzOCw3IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
ICAgICBjYXNlIEluaXRpYWxNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEluaXRpYWxNb2RlKTsKICAgICAgICAgZGVmYXVsdEZvckluaXRpYWwoKTsKKyAgICAgICAgcHJl
cGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNh
c2UgQmVmb3JlSFRNTE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQmVm
b3JlSFRNTE1vZGUpOwpAQCAtMTEzNyw2ICsxMTQ4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHRGb3JCZWZvcmVIVE1MKCk7CisgICAgICAg
IHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAg
ICBjYXNlIEJlZm9yZUhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEJlZm9yZUhlYWRNb2RlKTsKQEAgLTExNTAsMTIgKzExNjIsMTQgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHRGb3JCZWZvcmVIZWFkKCk7Cisg
ICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3Vn
aC4KICAgICBjYXNlIEluSGVhZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkg
PT0gSW5IZWFkTW9kZSk7CiAgICAgICAgIGlmIChwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9r
ZW4pKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWZhdWx0Rm9ySW5IZWFkKCk7Cisg
ICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3Vn
aC4KICAgICBjYXNlIEFmdGVySGVhZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gQWZ0ZXJIZWFkTW9kZSk7CkBAIC0xMTk1LDYgKzEyMDksNyBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckFmdGVySGVhZCgpOwor
ICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91
Z2gKICAgICBjYXNlIEluQm9keU1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkg
PT0gSW5Cb2R5TW9kZSk7CkBAIC0xMjE1LDYgKzEyMzAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAg
ICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CkBAIC0xMjM0LDYgKzEyNTAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFn
KHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlQm9keU1vZGU6CkBAIC0x
MjQ4LDYgKzEyNjUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcodHJUYWcpOwogICAgICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUpOworICAgICAgICAgICAgcHJlcGFyZVRvUmVw
cm9jZXNzVG9rZW4oKTsKICAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEyNjEsNiArMTI3OSw3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxUYWJsZUJvZHlTY29wZU1h
cmtlcigpOwogICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyhtX3RyZWUu
Y3VycmVudEVsZW1lbnQoKS0+bG9jYWxOYW1lKCkpKTsKICAgICAgICAgICAgIHByb2Nlc3NGYWtl
RW5kVGFnKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT50YWdRTmFtZSgpKTsKKyAgICAgICAgICAg
IHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWco
dG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjgzLDYgKzEzMDIs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOworICAgICAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgICAgIHByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEzMDEsNiAr
MTMyMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBjbG9zZVRoZUNlbGwoKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vz
c1Rva2VuKCk7CiAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMzE0LDYgKzEzMzUsNyBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlN
b2RlKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vz
c1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkhlYWROb3Njcmlw
dE1vZGU6CkBAIC0xMzM3LDYgKzEzNTksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckluSGVhZE5vc2NyaXB0KCk7CisgICAgICAgIHBy
ZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NUb2tlbih0b2tlbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5GcmFtZXNldE1vZGU6CkBAIC0xMzgyLDYgKzE0MDUs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIEF0
b21pY0hUTUxUb2tlbiBlbmRTZWxlY3QoSFRNTFRva2VuOjpFbmRUYWcsIHNlbGVjdFRhZy5sb2Nh
bE5hbWUoKSk7CiAgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKGVuZFNlbGVjdCk7CisgICAgICAg
ICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0
VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTQyOCw2ICsx
NDUyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQXRvbWljSFRNTFRva2Vu
IGVuZFNlbGVjdChIVE1MVG9rZW46OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgpKTsKICAg
ICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKKyAgICAgICAgICAgIHByZXBhcmVU
b1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNDM5LDExICsxNDY0LDEyIEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRl
ZmF1bHRGb3JJblRhYmxlVGV4dCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOiB7Ci0gICAgICAgIGlmIChzaG91bGRQcm9jZXNzVXNp
bmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlKHRva2VuLCBtX3RyZWUuY3VycmVudEVsZW1lbnQoKSkp
IHsKLSAgICAgICAgICAgIHByb2Nlc3NVc2luZ1NlY29uZGFyeUluc2VydGlvbk1vZGVBbmRBZGp1
c3RJbnNlcnRpb25Nb2RlKHRva2VuKTsKKyAgICAgICAgaWYgKHNob3VsZFByb2Nlc3NGb3JlaWdu
Q29udGVudFVzaW5nSW5Cb2R5SW5zZXJ0aW9uTW9kZSh0b2tlbiwgbV90cmVlLmN1cnJlbnRFbGVt
ZW50KCkpKSB7CisgICAgICAgICAgICBwcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1v
ZGVBbmRSZXNldE1vZGUodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYlRhZwpAQCAtMTQ4OCwxNSArMTUxNCwxNSBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9r
ZW4pCiAgICAgICAgICAgICB8fCAodG9rZW4ubmFtZSgpID09IGZvbnRUYWcgJiYgKHRva2VuLmdl
dEF0dHJpYnV0ZUl0ZW0oY29sb3JBdHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGZhY2VB
dHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKHNpemVBdHRyKSkpKSB7CiAgICAgICAgICAg
ICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cG9wVW50aWxGb3JlaWduQ29udGVudFNjb3BlTWFya2VyKCk7Ci0gICAgICAgICAgICBpZiAoaW5z
ZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2RlICYmIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aGFzT25seUhUTUxFbGVtZW50c0luU2NvcGUoKSkKLSAgICAgICAgICAgICAgICBzZXRJ
bnNlcnRpb25Nb2RlKG1fc2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZSk7CisgICAgICAgICAgICByZXNl
dEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgICAgICAgICBwcmVwYXJlVG9SZXBy
b2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGN1
cnJlbnROYW1lc3BhY2UgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+bmFtZXNwYWNlVVJJKCk7
CiAgICAgICAgIGlmIChjdXJyZW50TmFtZXNwYWNlID09IE1hdGhNTE5hbWVzOjptYXRobWxOYW1l
c3BhY2VVUkkpCiAgICAgICAgICAgICBhZGp1c3RNYXRoTUxBdHRyaWJ1dGVzKHRva2VuKTsKLSAg
ICAgICAgIGlmIChjdXJyZW50TmFtZXNwYWNlID09IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkp
IHsKKyAgICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFj
ZVVSSSkgewogICAgICAgICAgICAgYWRqdXN0U1ZHVGFnTmFtZUNhc2UodG9rZW4pOwogICAgICAg
ICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIH0KQEAgLTE2NzksMjYg
KzE3MDUsMTAgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNhbGxUaGVBZG9wdGlvbkFnZW5jeShB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIH0KIH0KIAotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnNldFNlY29uZGFyeUluc2VydGlvbk1vZGUoSW5zZXJ0aW9uTW9kZSBtb2RlKQotewotICAgIEFT
U0VSVChtb2RlICE9IEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKLSAgICBtX3NlY29uZGFyeUluc2Vy
dGlvbk1vZGUgPSBtb2RlOwotfQotCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6c2V0SW5zZXJ0aW9u
TW9kZUFuZEVuZChJbnNlcnRpb25Nb2RlIG5ld0luc2VydGlvbk1vZGUsIGJvb2wgZm9yZWlnbikK
LXsKLSAgICBzZXRJbnNlcnRpb25Nb2RlKG5ld0luc2VydGlvbk1vZGUpOwotICAgIGlmIChmb3Jl
aWduKSB7Ci0gICAgICAgIHNldFNlY29uZGFyeUluc2VydGlvbk1vZGUobV9pbnNlcnRpb25Nb2Rl
KTsKLSAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkZvcmVpZ25Db250ZW50TW9kZSk7Ci0gICAg
fQotfQotCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlh
dGVseSgpCiB7CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3Jlc2V0LXRoZS1pbnNlcnRpb24tbW9k
ZS1hcHByb3ByaWF0ZWx5CiAgICAgYm9vbCBsYXN0ID0gZmFsc2U7Ci0gICAgYm9vbCBmb3JlaWdu
ID0gZmFsc2U7CiAgICAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbm9kZVJlY29y
ZCA9IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9wUmVjb3JkKCk7CiAgICAgd2hpbGUgKDEpIHsK
ICAgICAgICAgRWxlbWVudCogbm9kZSA9IG5vZGVSZWNvcmQtPmVsZW1lbnQoKTsKQEAgLTE3MDks
NDIgKzE3MTksNDIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFw
cHJvcHJpYXRlbHkoKQogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHNl
bGVjdFRhZykpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKLSAg
ICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluU2VsZWN0TW9kZSwgZm9y
ZWlnbik7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNlbGVjdE1vZGUp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2Rl
LT5oYXNUYWdOYW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
QW5kRW5kKEluQ2VsbE1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAgcmV0dXJuIHNldEluc2Vy
dGlvbk1vZGUoSW5DZWxsTW9kZSk7CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRyVGFn
KSkKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluUm93TW9kZSwg
Zm9yZWlnbik7Ci0gICAgICAgIGlmIChpc1RhYmxlQm9keUNvbnRleHRUYWcobm9kZS0+bG9jYWxO
YW1lKCkpKQotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5UYWJs
ZUJvZHlNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
KEluUm93TW9kZSk7CisgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBu
b2RlLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHRmb290VGFnKSkK
KyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVCb2R5TW9kZSk7CiAg
ICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQotICAgICAgICAgICAgcmV0
dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5DYXB0aW9uTW9kZSwgZm9yZWlnbik7CisgICAg
ICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkNhcHRpb25Nb2RlKTsKICAgICAgICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9k
ZUFuZEVuZChJbkNvbHVtbkdyb3VwTW9kZSwgZm9yZWlnbik7CisgICAgICAgICAgICByZXR1cm4g
c2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUodGFibGVUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGVBbmRFbmQoSW5UYWJsZU1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAgcmV0
dXJuIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZU1vZGUpOwogICAgICAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShoZWFkVGFnKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOwotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5Cb2R5TW9k
ZSwgZm9yZWlnbik7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlN
b2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkK
LSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluQm9keU1vZGUsIGZv
cmVpZ24pOworICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7
CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSkgewogICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwotICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGVBbmRFbmQoSW5GcmFtZXNldE1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAg
cmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5GcmFtZXNldE1vZGUpOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGh0bWxUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9k
ZUFuZEVuZChCZWZvcmVIZWFkTW9kZSwgZm9yZWlnbik7CisgICAgICAgICAgICByZXR1cm4gc2V0
SW5zZXJ0aW9uTW9kZShCZWZvcmVIZWFkTW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5v
ZGUtPm5hbWVzcGFjZVVSSSgpID09IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkKICAgICAgICAg
ICAgIHx8IG5vZGUtPm5hbWVzcGFjZVVSSSgpID09IE1hdGhNTE5hbWVzOjptYXRobWxOYW1lc3Bh
Y2VVUkkpCi0gICAgICAgICAgICBmb3JlaWduID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBz
ZXRJbnNlcnRpb25Nb2RlKEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKICAgICAgICAgaWYgKGxhc3Qp
IHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKLSAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluQm9keU1vZGUsIGZvcmVpZ24pOworICAg
ICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0K
ICAgICAgICAgbm9kZVJlY29yZCA9IG5vZGVSZWNvcmQtPm5leHQoKTsKICAgICB9CkBAIC0xNzcz
LDYgKzE3ODMsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluVGFi
bGVCb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cG9wVW50aWxUYWJsZUJvZHlTY29wZU1hcmtlcigpOwogICAgICAgICBBU1NFUlQoaXNU
YWJsZUJvZHlDb250ZXh0VGFnKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5sb2NhbE5hbWUoKSkp
OwogICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyhtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+dGFn
UU5hbWUoKSk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHBy
b2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTgwMCw2ICsx
ODExLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyhBdG9t
aWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAg
cHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODEwLDYgKzE4MjIsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluUm93KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcodHJUYWcpOwogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CisgICAgICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTg1NCw2ICsxODY3LDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNlbGwoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBjbG9zZVRoZUNlbGwoKTsKKyAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0
b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODY5LDggKzE4ODMsMTAgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2Vu
JiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBodG1sVGFnKSB7CiAgICAg
ICAgIEF0b21pY0hUTUxUb2tlbiBlbmRCb2R5KEhUTUxUb2tlbjo6RW5kVGFnLCBib2R5VGFnLmxv
Y2FsTmFtZSgpKTsKLSAgICAgICAgaWYgKHByb2Nlc3NCb2R5RW5kVGFnRm9ySW5Cb2R5KGVuZEJv
ZHkpKQorICAgICAgICBpZiAocHJvY2Vzc0JvZHlFbmRUYWdGb3JJbkJvZHkoZW5kQm9keSkpIHsK
KyAgICAgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGlmICh0b2tlbi5uYW1lKCkgPT0gYWRkcmVzc1RhZwpAQCAtMTkyMyw2ICsxOTM5LDcgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2Vu
JiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcHJv
Y2Vzc0Zha2VTdGFydFRhZyhwVGFnKTsKICAgICAgICAgICAgIEFTU0VSVChtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmluU2NvcGUodG9rZW4ubmFtZSgpKSk7CisgICAgICAgICAgICBwcmVwYXJlVG9S
ZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTIwNjEsNiArMjA3OCw3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAg
Y2FzZSBJbml0aWFsTW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbml0
aWFsTW9kZSk7CiAgICAgICAgIGRlZmF1bHRGb3JJbml0aWFsKCk7CisgICAgICAgIHByZXBhcmVU
b1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEJl
Zm9yZUhUTUxNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEJlZm9yZUhU
TUxNb2RlKTsKQEAgLTIwNjksNiArMjA4Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckJlZm9yZUhUTUwoKTsKKyAgICAgICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2Ug
QmVmb3JlSGVhZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQmVmb3Jl
SGVhZE1vZGUpOwpAQCAtMjA3Nyw2ICsyMDk2LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBkZWZhdWx0Rm9yQmVmb3JlSGVhZCgpOworICAgICAgICBwcmVw
YXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2Fz
ZSBJbkhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE1v
ZGUpOwpAQCAtMjA5MCw2ICsyMTEwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NF
bmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0Rm9ySW5IZWFkKCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEFmdGVySGVh
ZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJIZWFkTW9kZSk7
CkBAIC0yMDk4LDYgKzIxMTksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
ZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIGRlZmF1bHRGb3JBZnRlckhlYWQoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9j
ZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoCiAgICAgY2FzZSBJbkJvZHlNb2Rl
OgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUpOwpAQCAtMjEx
OSw2ICsyMTQxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWlj
SFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWco
dG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yMTQ4LDYgKzIxNzEs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEluUm93TW9kZToKQEAgLTIxNzIsMTEgKzIxOTYsMTMgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHNl
dEluc2VydGlvbk1vZGUoQWZ0ZXJBZnRlckJvZHlNb2RlKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAv
LyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBBZnRlckFmdGVyQm9keU1vZGU6CiAgICAgICAgIEFT
U0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkg
PT0gQWZ0ZXJBZnRlckJvZHlNb2RlKTsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAg
ICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEluSGVhZE5vc2NyaXB0TW9kZToKQEAgLTIxOTMsNiArMjIxOSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckluSGVh
ZE5vc2NyaXB0KCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAg
IHByb2Nlc3NUb2tlbih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dE1vZGU6
CkBAIC0yMjUzLDYgKzIyODAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
ZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgaWYgKG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLm5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICBB
dG9taWNIVE1MVG9rZW4gZW5kU2VsZWN0KEhUTUxUb2tlbjo6RW5kVGFnLCBzZWxlY3RUYWcubG9j
YWxOYW1lKCkpOwogICAgICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKKyAg
ICAgICAgICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgICAg
IHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMjI5MSw2ICsyMzE5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRU
YWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRh
YmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOworICAgICAgICBw
cmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkZvcmVpZ25Db250ZW50TW9kZToKQEAgLTIzMTQs
NyArMjM0Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgLy8gQW55
IG90aGVyIGVuZCB0YWcgKGFsc28gdGhlIGxhc3QgdHdvIHN0ZXBzIG9mICJBbiBlbmQgdGFnLCBp
ZiB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFj
ZS4iCi0gICAgICAgIHByb2Nlc3NVc2luZ1NlY29uZGFyeUluc2VydGlvbk1vZGVBbmRBZGp1c3RJ
bnNlcnRpb25Nb2RlKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJ
bkJvZHlNb2RlQW5kUmVzZXRNb2RlKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjMzOSwxOCArMjM2OCwyOSBAQCBwcml2YXRlOgogICAgIEluc2VydGlvbk1vZGUgbV9vcmln
aW5hbE1vZGU7CiB9OwogCi0vLyBUaGlzIGhhbmRsZXMgYm90aCBzZWNvbmRhcnkgaW5zZXJ0aW9u
IG1vZGUgcHJvY2Vzc2luZywgYXMgd2VsbCBhcyB1cGRhdGluZwotLy8gdGhlIGluc2VydGlvbiBt
b2RlLiAgVGhlc2UgYXJlIHNlcGFyYXRlIHN0ZXBzIGluIHRoZSBzcGVjLCBidXQgYWx3YXlzIG9j
Y3VyCi0vLyByaWdodCBhZnRlciBvbmUgYW5vdGhlci4KLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzVXNpbmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlQW5kQWRqdXN0SW5zZXJ0aW9uTW9kZShB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByZXBhcmVUb1Jl
cHJvY2Vzc1Rva2VuKCkKIHsKLSAgICBBU1NFUlQodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6
U3RhcnRUYWcgfHwgdG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6RW5kVGFnKTsKKyAgICBpZiAo
bV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcykgeworICAgICAgICByZXNldEZv
cmVpZ25JbnNlcnRpb25Nb2RlKCk7CisgICAgICAgIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRp
b25Nb2RlU3RlcHMgPSBmYWxzZTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRSZXNldE1vZGUoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKK3sKKyAgICBtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0
ZXBzID0gdHJ1ZTsKICAgICB7Ci0gICAgICAgIEZha2VJbnNlcnRpb25Nb2RlIGZha2VNb2RlKHRo
aXMsIG1fc2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZSk7CisgICAgICAgIEZha2VJbnNlcnRpb25Nb2Rl
IGZha2VNb2RlKHRoaXMsIEluQm9keU1vZGUpOwogICAgICAgICBwcm9jZXNzVG9rZW4odG9rZW4p
OwogICAgIH0KLSAgICBpZiAoaW5zZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2Rl
ICYmIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seUhUTUxFbGVtZW50c0luU2NvcGUoKSkK
LSAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX3NlY29uZGFyeUluc2VydGlvbk1vZGUpOworICAg
IGlmIChtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0ZXBzKQorICAgICAgICByZXNl
dEZvcmVpZ25JbnNlcnRpb25Nb2RlKCk7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNl
dEZvcmVpZ25JbnNlcnRpb25Nb2RlKCkKK3sKKyAgICBpZiAoaW5zZXJ0aW9uTW9kZSgpID09IElu
Rm9yZWlnbkNvbnRlbnRNb2RlKQorICAgICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0
ZWx5KCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29tbWVudChBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQpAQCAtMjM2OSw2ICsyNDA5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NDb21tZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogICAgIGlm
IChtX2luc2VydGlvbk1vZGUgPT0gSW5UYWJsZVRleHRNb2RlKSB7CiAgICAgICAgIGRlZmF1bHRG
b3JJblRhYmxlVGV4dCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAg
ICAgICBwcm9jZXNzQ29tbWVudCh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0y
MzkyLDYgKzI0MzMsNyBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIGlmIChidWZmZXIuaXNF
bXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWZhdWx0Rm9ySW5pdGlhbCgp
OworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRo
cm91Z2guCiAgICAgfQogICAgIGNhc2UgQmVmb3JlSFRNTE1vZGU6IHsKQEAgLTI0MDAsNiArMjQ0
Miw3IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRlZmF1bHRGb3JCZWZvcmVIVE1MKCk7CisgICAg
ICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4K
ICAgICB9CiAgICAgY2FzZSBCZWZvcmVIZWFkTW9kZTogewpAQCAtMjQwOCw2ICsyNDUxLDcgQEAg
UmVwcm9jZXNzQnVmZmVyOgogICAgICAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgZGVmYXVsdEZvckJlZm9yZUhlYWQoKTsKKyAgICAgICAgcHJl
cGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIH0K
ICAgICBjYXNlIEluSGVhZE1vZGU6IHsKQEAgLTI0MTgsNiArMjQ2Miw3IEBAIFJlcHJvY2Vzc0J1
ZmZlcjoKICAgICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGRlZmF1bHRGb3JJbkhlYWQoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNz
VG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIH0KICAgICBjYXNlIEFmdGVy
SGVhZE1vZGU6IHsKQEAgLTI0MjgsNiArMjQ3Myw3IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICAg
ICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRl
ZmF1bHRGb3JBZnRlckhlYWQoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsK
ICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIH0KICAgICBjYXNlIEluQm9keU1vZGU6CkBA
IC0yNDQ4LDYgKzI0OTQsNyBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIEFTU0VSVChtX3Bl
bmRpbmdUYWJsZUNoYXJhY3RlcnMuaXNFbXB0eSgpKTsKICAgICAgICAgbV9vcmlnaW5hbEluc2Vy
dGlvbk1vZGUgPSBtX2luc2VydGlvbk1vZGU7CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5U
YWJsZVRleHRNb2RlKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAg
ICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIH0KICAgICBjYXNlIEluVGFibGVUZXh0TW9kZTogewpA
QCAtMjQ2OCw2ICsyNTE1LDcgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAgICAgICAgICAgaWYgKGJ1
ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAg
ICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIGdvdG8gUmVwcm9jZXNzQnVm
ZmVyOwogICAgIH0KICAgICBjYXNlIEFmdGVyQm9keU1vZGU6CkBAIC0yNDc1LDYgKzI1MjMsNyBA
QCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0
ZXJCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJBZnRlckJvZHlNb2RlKTsKICAg
ICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5C
b2R5TW9kZSk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIGdv
dG8gUmVwcm9jZXNzQnVmZmVyOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0yNTM4LDIyICsy
NTg3LDI3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgY2FzZSBJbml0aWFsTW9kZToKICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJbml0aWFsTW9kZSk7CiAgICAgICAgIGRlZmF1bHRGb3JJbml0aWFs
KCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwg
dGhyb3VnaC4KICAgICBjYXNlIEJlZm9yZUhUTUxNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEJlZm9yZUhUTUxNb2RlKTsKICAgICAgICAgZGVmYXVsdEZvckJlZm9yZUhU
TUwoKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFs
bCB0aHJvdWdoLgogICAgIGNhc2UgQmVmb3JlSGVhZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNl
cnRpb25Nb2RlKCkgPT0gQmVmb3JlSGVhZE1vZGUpOwogICAgICAgICBkZWZhdWx0Rm9yQmVmb3Jl
SGVhZCgpOworICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBG
YWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOwogICAgICAgICBkZWZhdWx0Rm9ySW5IZWFkKCk7Cisg
ICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3Vn
aC4KICAgICBjYXNlIEFmdGVySGVhZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gQWZ0ZXJIZWFkTW9kZSk7CiAgICAgICAgIGRlZmF1bHRGb3JBZnRlckhlYWQoKTsKKyAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdo
CiAgICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DZWxsTW9kZToKQEAgLTI1NjksNiAr
MjYyMyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgY2FzZSBJbkhlYWROb3NjcmlwdE1vZGU6CiAgICAgICAgIEFT
U0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTm9zY3JpcHRNb2RlKTsKICAgICAgICAgZGVm
YXVsdEZvckluSGVhZE5vc2NyaXB0KCk7CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZToKQEAgLTI1OTMsMjAgKzI2NDgsMTYgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQorICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAg
ICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5Gb3JlaWduQ29udGVudE1vZGU6Ci0gICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAg
ICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtl
cigpOwotICAgICAgICAvLyBGSVhNRTogVGhlIHNwZWMgYWRkcyB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbiBiZWZvcmUgc2V0dGluZyB0aGUKLSAgICAgICAgLy8gICAgICAgIGluc2VydGlvbiBtb2Rl
LiAgSG93ZXZlciwgdGhpcyBjb25kaXRpb24gY2F1c2VzIGFuIGluZmluaXRlIGxvb3AuCi0gICAg
ICAgIC8vICAgICAgICBTZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcu
Y2dpP2lkPTEwNjIxCi0gICAgICAgIC8vICAgICAgICBpZiAoaW5zZXJ0aW9uTW9kZSgpID09IElu
Rm9yZWlnbkNvbnRlbnRNb2RlICYmIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seUhUTUxF
bGVtZW50c0luU2NvcGUoKSkKLSAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX3NlY29uZGFyeUlu
c2VydGlvbk1vZGUpOworICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAg
ICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKKyAgICAg
ICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0
b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFRleHRNb2RlOgpAQCAtMjYxNSw2ICsy
NjY2LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIG1hcmsgdGhl
IHNjcmlwdCBlbGVtZW50IGFzICJhbHJlYWR5IHN0YXJ0ZWQiLgogICAgICAgICBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJ
bnNlcnRpb25Nb2RlKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAg
ICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCBlNjFmZTczNDY2ZGExNzhkMzMxMWQy
NzYyMGU0NmI4MjgxYzFlNDU1Li5mOTQ3OWIwZTVjMTMzMjU5ZjgzZGQ3ZjRlMjFkNGY4NjY2NjJh
NTRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisr
KyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTE5NCwxMSArMTk0
LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIG1faXNGYWtlSW5zZXJ0aW9uTW9kZSA9IHRydWU7CiAg
ICAgfQogCi0gICAgdm9pZCBzZXRTZWNvbmRhcnlJbnNlcnRpb25Nb2RlKEluc2VydGlvbk1vZGUp
OwotCi0gICAgdm9pZCBzZXRJbnNlcnRpb25Nb2RlQW5kRW5kKEluc2VydGlvbk1vZGUsIGJvb2wg
Zm9yZWlnbik7IC8vIEhlbHBlciBmb3IgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseQog
ICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisgICAgdm9pZCBw
cmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOworCisgICAgdm9pZCBwcm9jZXNzRm9yZWlnbkNvbnRl
bnRVc2luZ0luQm9keU1vZGVBbmRSZXNldE1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbik7Cisg
ICAgdm9pZCByZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCk7CisKICAgICBjbGFzcyBGcmFnbWVu
dFBhcnNpbmdDb250ZXh0IDogcHVibGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIEZyYWdtZW50UGFyc2luZ0NvbnRleHQoKTsKQEAgLTIzNiw3ICsyMzgsNiBAQCBwcml2YXRl
OgogICAgIC8vIHNldEluc2VydGlvbk1vZGUgYW5kIG5ldmVyIHNldCBtX2luc2VydGlvbk1vZGUg
ZGlyZWN0bHkuCiAgICAgSW5zZXJ0aW9uTW9kZSBtX2luc2VydGlvbk1vZGU7CiAgICAgSW5zZXJ0
aW9uTW9kZSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKLSAgICBJbnNlcnRpb25Nb2RlIG1fc2Vj
b25kYXJ5SW5zZXJ0aW9uTW9kZTsKIAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI3BlbmRp
bmctdGFibGUtY2hhcmFjdGVyLXRva2VucwogICAgIFZlY3RvcjxVQ2hhcj4gbV9wZW5kaW5nVGFi
bGVDaGFyYWN0ZXJzOwpAQCAtMjUyLDggKzI1MywxMCBAQCBwcml2YXRlOgogICAgIC8vIGNyZWF0
ZWQgdG8gc2VydmljZSB0aGUgbGVnYWN5IHRyZWUgYnVpbGRlciwgYnV0IGl0IHNlZW1zIHRvIGJl
IHVzZWQgZm9yCiAgICAgLy8gc29tZSBvdGhlciB0aGluZ3Mgbm93LgogICAgIGludCBtX2xhc3RT
Y3JpcHRFbGVtZW50U3RhcnRMaW5lOwotICAgIAorCiAgICAgYm9vbCBtX3VzZVByZUhUTUw1UGFy
c2VyUXVpcmtzOworCisgICAgYm9vbCBtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0
ZXBzOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71523</attachid>
            <date>2010-10-21 21:18:20 -0700</date>
            <delta_ts>2010-10-21 22:49:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46676-20101021211819.patch</filename>
            <type>text/plain</type>
            <size>42777</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNWVkYTJjZjE2NDc4MzI0N2FjMDIwNGRkYTc5MDNiNWIxMWVhN2U2Li41M2U2OWE1
NDU3YWJkMzcxMjM5MDc0NmNlMzI1YmY2YzQxMDNlYmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTAtMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUcmVlQnVp
bGRlcidzIEluRm9yZWlnbkNvbnRlbnQgY29kZSBuZWVkcyBhIHJlLXdyaXRlCisKKyAgICAgICAg
Rm9yZWlnbiBDb250ZW50IG1vZGUgd2FzIGNoYW5nZWQgc2lnbmlmaWNhbnRseSBieToKKyAgICAg
ICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMzE0CisK
KyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGNhbiBiZSBzZWVuIGhlcmU6CisgICAgICAgIGh0dHA6
Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcj9mcm9tPTU1MjAmdG89NTUyMgorCisg
ICAgICAgIFRoaXMgYnVnIGFkZHJlc3NlcyBhbGwgc3BlYyBjaGFuZ2VzIGluIHRoZSBkaWZmIGV4
Y2VwdCB0aGUgc2VsZWN0IHNjb3BlCisgICAgICAgIGNoYW5nZXMsIHdoaWNoIGhhdmUgYWxyZWFk
eSBiZWVuIGZpeGVkIGluIGEgc2VwYXJhdGUgYnVnLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY3NgorCisgICAgICAgICogaHRtbDVsaWIvcmVz
b3VyY2VzL3dlYmtpdDAxLmRhdDogQWRkZWQgdGhlIGRlbW8gY2FzZSBmb3IgdGhlIG5ldyBjb2Rl
LiBBZGRlZCBhIGNhc2UgdGhhdCBleHBvc2VzIGNyYXNoIHdoZW4gbm90IHVzaW5nIGhhc1RhZ05h
bWUoKS4KKyAgICAgICAgKiBodG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OiBTaW5jZSB0aGUg
YmVoYXZpb3Igb2YgSW5Gb3JlaWduQ29udGVudE1vZGUgaGFzIGNoYW5nZWQsIHRoZSBleHBlY3Rh
dGlvbnMgbmVlZCB0byBiZSB1cGRhdGVkLiBUaGVzZSBoYXZlIGJlZW4gbWFudWFsbHkgdmVyaWZp
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVk
LnR4dDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL2h0bWw1bGliL3J1bm5lci1leHBl
Y3RlZC50eHQ6IERpdHRvLgorCiAyMDEwLTEwLTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0IGIvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAppbmRleCBjZjE4OTI1YWE3MTMx
NWRiMjc0OGNmNGY2YmNmMGM3YmE1MWVkNWY5Li45ODY5NDU0ZTdkZTZiODdjMGUzMDJlZjc0MmE0
MTY4ZTg0NTQ2NDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMv
d2Via2l0MDEuZGF0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQw
MS5kYXQKQEAgLTUzNSwzICs1MzUsNDAgQEAgY29uc29sZS5sb2coIkZPTzxzcGFuPkJBUjwvc3Bh
bj5CQVoiKTsKIHwgICAgICAgICAiQiIKIHwgICAgICAgICA8ZGl2PgogfCAgICAgICAgICAgIkMi
CisKKyNkYXRhCis8c3ZnPjxlbT48ZGVzYz48L2VtPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICA8ZW0+
Cit8ICAgICAgIDxkZXNjPgorCisjZGF0YQorPHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+
PC9kZXNjPjxjaXJjbGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAg
ICAgICAgIDxzdmcgZGVzYz4KK3wgICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KKworI2RhdGEK
Kzxzdmc+PHRmb290PjwvbWk+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgdGZvb3Q+
Cit8ICAgICAgICAgPHN2ZyB0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0CmluZGV4IGIyNGMzYWRiZmVjNGE4ZjU0NjM3NmU5ZmU1MDEwMmRhY2MzN2E5ZjcuLjFkZDk1
YTFmNDAwOWM4NDM5MGQ4ZjUzZjU5YzBlMmYwODE4OTBjMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLnR4dApAQCAtNTIsMTMgKzUyLDEwNiBAQCBFeHBlY3RlZDoKIHwg
ICAgIDxrZXlnZW4+CiByZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVz
dHM5LmRhdDogUEFTUworcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6CisxNgogCitUZXN0IDE2IG9mIDI3
IGluIHJlc291cmNlcy90ZXN0czkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgaHRtbD48
Ym9keT48dGFibGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90
YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAg
ICAgPG1hdGggbWF0aD4KK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9v
IgorfCAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAg
ICAiYmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wg
PCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBt
aT4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wg
ICAgICAgInF1dXgiCiByZXNvdXJjZXMvdGVzdHMxMC5kYXQ6CisxNQorMzYKIDM4CiA1MQogNTIK
IAorVGVzdCAxNSBvZiA1MiBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoK
KzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5i
YXI8L2c+YmF6PC90YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRp
b24+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAg
ICAgICJmb28iCit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAg
ICAgICAgICAiYmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3Rl
ZDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wg
ICAgICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcg
Zz4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wg
ICAgICAgInF1dXgiCisKK1Rlc3QgMzYgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZh
aWxlZC4gSW5wdXQ6Cis8bWF0aD48bWk+PGRpdj48b2JqZWN0PjxkaXY+PHNwYW4+PC9zcGFuPjwv
ZGl2Pjwvb2JqZWN0PjwvZGl2PjwvbWk+PG1pPgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAg
ICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAg
ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWF0aCBtaT4KK0V4cGVjdGVkOgorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxt
YXRoIG1pPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAg
ICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWk+CisKIFRlc3Qg
Mzggb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8c3ZnPjxz
Y3JpcHQ+PC9zY3JpcHQ+PHBhdGg+CiBHb3Q6CkBAIC0xNTQsNyArMjQ3LDU2IEBAIHJlc291cmNl
cy90ZXN0czE3LmRhdDogUEFTUwogcmVzb3VyY2VzL3Rlc3RzMTguZGF0OiBQQVNTCiAKIHJlc291
cmNlcy90ZXN0czE5LmRhdDoKKzMxCiszMgogNjMKKzc4CisKK1Rlc3QgMzEgb2YgOTcgaW4gcmVz
b3VyY2VzL3Rlc3RzMTkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IWRvY3R5cGUgaHRtbD48cD48bWF0
aD48bWk+PHA+PGgxPgorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAg
ICA8bWF0aCBtaT4KK3wgICAgICAgICAgIDxwPgorfCAgICAgICAgICAgPGgxPgorRXhwZWN0ZWQ6
Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAg
PHA+Cit8ICAgICA8aDE+CisKK1Rlc3QgMzIgb2YgOTcgaW4gcmVzb3VyY2VzL3Rlc3RzMTkuZGF0
IGZhaWxlZC4gSW5wdXQ6Cis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bWk+PHA+PGgxPgorR290
OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAg
ICAgICAgIDxwPgorfCAgICAgICAgICAgPGgxPgorRXhwZWN0ZWQ6Cit8IDwhRE9DVFlQRSBodG1s
PgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8
bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgPHA+Cit8ICAgICA8aDE+CiAK
IFRlc3QgNjMgb2YgOTcgaW4gcmVzb3VyY2VzL3Rlc3RzMTkuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8
IWRvY3R5cGUgaHRtbD48a2V5Z2VuPjxmcmFtZXNldD4KQEAgLTE3Niw2ICszMTgsMzAgQEAgRXhw
ZWN0ZWQ6CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8a2V5Z2VuPgorCitUZXN0IDc4
IG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBl
IGh0bWw+PHA+PG1hdGg+PG1uPjxzcGFuPjwvcD5hCitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0
aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1uPgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAg
ICAgICAgIDxwPgorfCAgICAgICAgICAgICAiYSIKK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUgaHRt
bD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAg
PG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgImEiCiByZXNvdXJjZXMvdGVzdHMyMC5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMjEu
ZGF0OiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1s
NWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCBhZTA4YmJlZDMxZTQ2ZGEyZmVlMzcz
MjRlMmJjMjUzZGVmYzNmMWIyLi5mMjRiNzkwYTJiY2NiMWZlZDRkMWY2NWEzYjY3MWVhZGYxMWMx
OWRhIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKQEAgLTUwLDEzICs1MCwxMDYgQEAgRXhwZWN0ZWQ6
CiB8ICAgICA8a2V5Z2VuPgogcmVzb3VyY2VzL3Rlc3RzOC5kYXQ6IFBBU1MKIAotcmVzb3VyY2Vz
L3Rlc3RzOS5kYXQ6IFBBU1MKK3Jlc291cmNlcy90ZXN0czkuZGF0OgorMTYKIAorVGVzdCAxNiBv
ZiAyNyBpbiByZXNvdXJjZXMvdGVzdHM5LmRhdCBmYWlsZWQuIElucHV0OgorPCFET0NUWVBFIGh0
bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPmJh
ejwvdGFibGU+PHA+cXV1eAorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjYXB0aW9uPgorfCAg
ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAg
ImZvbyIKK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiYmFyIgorfCAgICAg
ICAgICAgImJheiIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJxdXV4IgorRXhwZWN0ZWQ6
Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPG1hdGggbWF0aD4KK3wg
ICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPG1h
dGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+
Cit8ICAgICAgICJxdXV4IgogcmVzb3VyY2VzL3Rlc3RzMTAuZGF0OgorMTUKKzM2CiAzOAogNTEK
IDUyCiAKK1Rlc3QgMTUgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5w
dXQ6Cis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNhcHRpb24+PHN2Zz48Zz5mb288L2c+
PGc+YmFyPC9nPmJhejwvdGFibGU+PHA+cXV1eAorR290OgorfCA8IURPQ1RZUEUgaHRtbD4KK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxj
YXB0aW9uPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAg
ICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAiYmFyIgor
fCAgICAgICAgICAgImJheiIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJxdXV4IgorRXhw
ZWN0ZWQ6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHN2ZyBzdmc+
Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8
c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+
Cit8ICAgICAgICJxdXV4IgorCitUZXN0IDM2IG9mIDUyIGluIHJlc291cmNlcy90ZXN0czEwLmRh
dCBmYWlsZWQuIElucHV0OgorPG1hdGg+PG1pPjxkaXY+PG9iamVjdD48ZGl2PjxzcGFuPjwvc3Bh
bj48L2Rpdj48L29iamVjdD48L2Rpdj48L21pPjxtaT4KK0dvdDoKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wg
ICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAgICAgICAgICAgPGRpdj4K
K3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1hdGggbWk+CitFeHBlY3RlZDoKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAg
ICA8bWF0aCBtaT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAg
ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1pPgorCiBU
ZXN0IDM4IG9mIDUyIGluIHJlc291cmNlcy90ZXN0czEwLmRhdCBmYWlsZWQuIElucHV0OgogPHN2
Zz48c2NyaXB0Pjwvc2NyaXB0PjxwYXRoPgogR290OgpAQCAtMTUyLDcgKzI0NSw1NiBAQCByZXNv
dXJjZXMvdGVzdHMxNy5kYXQ6IFBBU1MKIHJlc291cmNlcy90ZXN0czE4LmRhdDogUEFTUwogCiBy
ZXNvdXJjZXMvdGVzdHMxOS5kYXQ6CiszMQorMzIKIDYzCis3OAorCitUZXN0IDMxIG9mIDk3IGlu
IHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBlIGh0bWw+PHA+
PG1hdGg+PG1pPjxwPjxoMT4KK0dvdDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxoMT4KK0V4cGVj
dGVkOgorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wg
ICAgIDxwPgorfCAgICAgPGgxPgorCitUZXN0IDMyIG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5
LmRhdCBmYWlsZWQuIElucHV0OgorPCFkb2N0eXBlIGh0bWw+PHA+PG1hdGg+PG1pPjxwPjxoMT4K
K0dvdDoKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbWk+Cit8
ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxoMT4KK0V4cGVjdGVkOgorfCA8IURPQ1RZUEUg
aHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAg
ICAgPG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAgIDxwPgorfCAgICAgPGgx
PgogCiBUZXN0IDYzIG9mIDk3IGluIHJlc291cmNlcy90ZXN0czE5LmRhdCBmYWlsZWQuIElucHV0
OgogPCFkb2N0eXBlIGh0bWw+PGtleWdlbj48ZnJhbWVzZXQ+CkBAIC0xNzIsNiArMzE0LDMwIEBA
IEV4cGVjdGVkOgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgogfCAgICAgPGtleWdlbj4KKworVGVz
dCA3OCBvZiA5NyBpbiByZXNvdXJjZXMvdGVzdHMxOS5kYXQgZmFpbGVkLiBJbnB1dDoKKzwhZG9j
dHlwZSBodG1sPjxwPjxtYXRoPjxtbj48c3Bhbj48L3A+YQorR290OgorfCA8IURPQ1RZUEUgaHRt
bD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAg
PG1hdGggbWF0aD4KK3wgICAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgImEiCitFeHBlY3RlZDoKK3wgPCFET0NUWVBF
IGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAg
ICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbW4+Cit8ICAgICAgICAgICA8c3Bhbj4K
K3wgICAgICJhIgogcmVzb3VyY2VzL3Rlc3RzMjAuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0
czIxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2h0bWw1
bGliL3J1bm5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCBlNjI1OWM4ZTJhNTQ1NGJjNDIyODRjYjY2N2E5
YzgyNTdjYjQyMmI4Li5hNzIzMmFlNDQxZDcwYjAwMDIzMThhODVhMjA3NTEwODNhYmJlMzBjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVsaWIvcnVubmVyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHRtbDVsaWIvcnVubmVyLWV4
cGVjdGVkLnR4dApAQCAtMzEsMTMgKzMxLDEwNiBAQCByZXNvdXJjZXMvdGVzdHM3LmRhdDogUEFT
UwogCiByZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVzdHM5LmRhdDog
UEFTUworcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6CisxNgogCitUZXN0IDE2IG9mIDI3IGluIHJlc291
cmNlcy90ZXN0czkuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFi
bGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90YWJsZT48cD5x
dXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPG1hdGgg
bWF0aD4KK3wgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAg
ICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAiYmF6Igor
fCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wgPCFET0NUWVBF
IGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgPG1h
dGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAg
ICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1
dXgiCiByZXNvdXJjZXMvdGVzdHMxMC5kYXQ6CisxNQorMzYKIDM4CiA1MQogNTIKIAorVGVzdCAx
NSBvZiA1MiBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoKKzwhRE9DVFlQ
RSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+YmF6
PC90YWJsZT48cD5xdXV4CitHb3Q6Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAg
ICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28i
Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAi
YmF6IgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgInF1dXgiCitFeHBlY3RlZDoKK3wgPCFE
T0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAg
IDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcgZz4KK3wgICAg
ICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1
dXgiCisKK1Rlc3QgMzYgb2YgNTIgaW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5w
dXQ6Cis8bWF0aD48bWk+PGRpdj48b2JqZWN0PjxkaXY+PHNwYW4+PC9zcGFuPjwvZGl2Pjwvb2Jq
ZWN0PjwvZGl2PjwvbWk+PG1pPgorR290OgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgIDxkaXY+
Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAg
ICAgIDxzcGFuPgorfCAgICAgICA8bWF0aCBtaT4KK0V4cGVjdGVkOgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgor
fCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2
PgorfCAgICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8bWk+CisKIFRlc3QgMzggb2YgNTIg
aW4gcmVzb3VyY2VzL3Rlc3RzMTAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8c3ZnPjxzY3JpcHQ+PC9z
Y3JpcHQ+PHBhdGg+CiBHb3Q6CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDg2MTgyNWU1NTc0OWY3OWMxNmUxODQzZDdiMjI5YTBhOTYwMzhh
MjguLjhjZWEwM2MxNTc3ZGQ1MTUzYzMxNjlhMGEyMTE1YTkzMGU4NzgwMDUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTAtMTAtMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUcmVl
QnVpbGRlcidzIEluRm9yZWlnbkNvbnRlbnQgY29kZSBuZWVkcyBhIHJlLXdyaXRlCisKKyAgICAg
ICAgRm9yZWlnbiBDb250ZW50IG1vZGUgd2FzIGNoYW5nZWQgc2lnbmlmaWNhbnRseSBieToKKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMzE0
CisKKyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGNhbiBiZSBzZWVuIGhlcmU6CisgICAgICAgIGh0
dHA6Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcj9mcm9tPTU1MjAmdG89NTUyMgor
CisgICAgICAgIFRoaXMgYnVnIGFkZHJlc3NlcyBhbGwgc3BlYyBjaGFuZ2VzIGluIHRoZSBkaWZm
IGV4Y2VwdCB0aGUgc2VsZWN0IHNjb3BlCisgICAgICAgIGNoYW5nZXMsIHdoaWNoIGhhdmUgYWxy
ZWFkeSBiZWVuIGZpeGVkIGluIGEgc2VwYXJhdGUgYnVnLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY3NgorCisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6Omlz
U2NvcGVNYXJrZXIpOiBBZGQgZm9yZWlnbiBlbGVtZW50cyB0byBsaXN0LgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NEb2N0eXBlVG9rZW4pOiBTd2l0Y2ggbW9kZSBiZWZvcmUgcmVwcm9jZXNz
aW5nIGFueSB0b2tlbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZ0ZvckluQm9keSk6IERpdHRvLiBSZW1vdmUgc2Vjb25kYXJ5IGluc2VydGlvbiBt
b2RlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdG
b3JJblRhYmxlKTogU3dpdGNoIG1vZGUgYmVmb3JlIHJlcHJvY2Vzc2luZyBhbnkgdG9rZW5zLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcpOiBEaXR0
by4gUmVtb3ZlIHNlY29uZGFyeSBpbnNlcnRpb24gbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6IFJlbW92ZSBm
b3JlaWduIHZhci4gVXNlIGhhc1RhZ05hbWUoKSBpbnN0ZWFkIG9mID09IGxvY2FsTmFtZSgpIHRv
IGZpeCBidWcgd2l0aCBmb3JlaWduIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJsZUJvZHkpOiBTd2l0Y2ggbW9kZSBiZWZv
cmUgcmVwcm9jZXNzaW5nIGFueSB0b2tlbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXBy
b2Nlc3NTdGFydFRhZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVy
OjpyZXByb2Nlc3NFbmRUYWcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0Rm9yZWlnbklu
c2VydGlvbk1vZGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0NvbW1lbnQpOiBTd2l0Y2ggbW9kZSBiZWZvcmUgcmVwcm9jZXNzaW5nIGFueSB0b2tl
bnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDaGFyYWN0ZXJC
dWZmZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0VuZE9mRmlsZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oOiBGdW5jdGlvbnMgYW5kIG1lbWJlciBmb3IgdHJhY2tpbmcgcG90ZW50aWFsIHN3aXRjaCBm
cm9tIEluRm9yZWlnbkNvbnRlbnRNb2RlLgorCiAyMDEwLTEwLTIxICBObydhbSBSb3NlbnRoYWwg
IDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
SGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3Rh
Y2suY3BwIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRleCA2
Yjk2MjkxZGMyOTlhYTI2NTliZjA1MGE0MGNkZTkwOTY1OTMzMGViLi42YWFiMGY3YzM3ZmJiZmM3
M2ZlNGIyODY0ZTIwYmQ2MzFlZjljMjBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxFbGVtZW50U3RhY2suY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5jcHAKQEAgLTMyLDEwICszMiw2IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJT
VkdOYW1lcy5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKQEAgLTU2LDE1ICs1MiwyMSBAQCBpbmxpbmUgYm9vbCBpc1Njb3BlTWFy
a2VyKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUo
YXBwbGV0VGFnKQogICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpCi0j
aWYgRU5BQkxFKFNWR19GT1JFSUdOX09CSkVDVCkKLSAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFn
TmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykKLSNlbmRpZgogICAgICAgICB8fCBlbGVt
ZW50LT5oYXNUYWdOYW1lKGh0bWxUYWcpCiAgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUo
bWFycXVlZVRhZykKICAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpCiAg
ICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUodGFibGVUYWcpCiAgICAgICAgIHx8IGVsZW1l
bnQtPmhhc1RhZ05hbWUodGRUYWcpCi0gICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUodGhU
YWcpOworICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKHRoVGFnKQorICAgICAgICB8fCBl
bGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykKKyAgICAgICAgfHwgZWxlbWVu
dC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW9UYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1uVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKE1hdGhNTE5hbWVzOjptc1RhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bXRleHRUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6OmFubm90YXRpb25feG1sVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNU
YWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1l
KFNWR05hbWVzOjp0aXRsZVRhZyk7CiB9CiAKIGlubGluZSBib29sIGlzTGlzdEl0ZW1TY29wZU1h
cmtlcihFbGVtZW50KiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwCmluZGV4IDVmOTAyODVkNWE3ZDA3NDM0YzgxYjQ3YmNlZjc1NzRmYzA3ZjZlMGEuLjMxMGZm
NjAxMjEzYWEwMGExYzQwOWU0ZGE5NGRmMjkxODAyMGE4MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTEwNSw3ICsxMDUsMTUgQEAgYm9vbCBpc1RhYmxlQm9k
eUNvbnRleHRUYWcoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQogLy8gaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5o
dG1sI3NwZWNpYWwKIGJvb2wgaXNTcGVjaWFsTm9kZShOb2RlKiBub2RlKQogewotICAgIGlmIChu
b2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKSkKKyAgICBpZiAobm9k
ZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bWlUYWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1Rh
Z05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1h
dGhNTE5hbWVzOjptblRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bXNUYWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10ZXh0
VGFnKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjphbm5vdGF0aW9u
X3htbFRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9i
amVjdFRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykK
KyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobm9kZS0+bmFtZXNwYWNlVVJJKCkgIT0geGh0bWxOYW1l
c3BhY2VVUkkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMzMSwxMSArMzM5LDExIEBAIEhU
TUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwg
SFRNTERvY3VtZW50KiBkb2N1bWVuCiAgICAgLCBtX2lzUGF1c2VkKGZhbHNlKQogICAgICwgbV9p
bnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQogICAgICwgbV9vcmlnaW5hbEluc2VydGlvbk1vZGUo
SW5pdGlhbE1vZGUpCi0gICAgLCBtX3NlY29uZGFyeUluc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUp
CiAgICAgLCBtX3Rva2VuaXplcih0b2tlbml6ZXIpCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0
YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV9sYXN0U2NyaXB0
RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV91
c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKKyAgICAsIG1f
aGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiB9CiAKQEAgLTM1
MCwxMSArMzU4LDExIEBAIEhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2tl
bml6ZXIqIHRva2VuaXplciwgRG9jdW1lbnRGcmFnbWVudCogZnJhCiAgICAgLCBtX2lzUGF1c2Vk
KGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQogICAgICwgbV9vcmln
aW5hbEluc2VydGlvbk1vZGUoSW5pdGlhbE1vZGUpCi0gICAgLCBtX3NlY29uZGFyeUluc2VydGlv
bk1vZGUoSW5pdGlhbE1vZGUpCiAgICAgLCBtX3Rva2VuaXplcih0b2tlbml6ZXIpCiAgICAgLCBt
X3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQog
ICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJl
clZhbHVlKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNl
clF1aXJrcykKKyAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFs
c2UpCiB7CiAgICAgaWYgKGNvbnRleHRFbGVtZW50KSB7CiAgICAgICAgIC8vIFN0ZXBzIDQuMi00
LjYgb2YgdGhlIEhUTUw1IEZyYWdtZW50IENhc2UgcGFyc2luZyBhbGdvcml0aG06CkBAIC04MTUs
NyArODIzLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9k
eShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50
cygpLT5pblNjb3BlKGJ1dHRvblRhZykpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcoYnV0dG9uVGFnKTsKLSAgICAgICAgICAg
IHByb2Nlc3NTdGFydFRhZyh0b2tlbik7IC8vIEZJWE1FOiBDb3VsZCB3ZSBqdXN0IGZhbGwgdGhy
b3VnaCBoZXJlPworICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOyAvLyBGSVhN
RTogQ291bGQgd2UganVzdCBmYWxsIHRocm91Z2ggaGVyZT8KICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5n
RWxlbWVudHMoKTsKQEAgLTg3Miw2ICs4ODAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIHBh
cnNlRXJyb3IodG9rZW4pOwogICAgICAgICAvLyBBcHBhcmVudGx5IHdlJ3JlIG5vdCBzdXBwb3Nl
ZCB0byBhc2suCiAgICAgICAgIHRva2VuLnNldE5hbWUoaW1nVGFnLmxvY2FsTmFtZSgpKTsKKyAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gTm90ZSB0aGUgZmFs
bCB0aHJvdWdoIHRvIHRoZSBpbWdUYWcgaGFuZGxpbmcgYmVsb3chCiAgICAgfQogICAgIGlmICh0
b2tlbi5uYW1lKCkgPT0gYXJlYVRhZwpAQCAtOTcxLDEwICs5ODAsOCBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgIGFkanVzdE1hdGhNTEF0dHJpYnV0ZXModG9rZW4pOwogICAgICAgICBhZGp1c3RG
b3JlaWduQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIG1fdHJlZS5pbnNlcnRGb3JlaWduRWxl
bWVudCh0b2tlbiwgTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIGlm
IChtX2luc2VydGlvbk1vZGUgIT0gSW5Gb3JlaWduQ29udGVudE1vZGUpIHsKLSAgICAgICAgICAg
IHNldFNlY29uZGFyeUluc2VydGlvbk1vZGUobV9pbnNlcnRpb25Nb2RlKTsKKyAgICAgICAgaWYg
KG1faW5zZXJ0aW9uTW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSkKICAgICAgICAgICAgIHNl
dEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwotICAgICAgICB9CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBTVkdOYW1lczo6c3ZnVGFn
LmxvY2FsTmFtZSgpKSB7CkBAIC05ODIsMTAgKzk4OSw4IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIGFkanVzdEZvcmVpZ25BdHRy
aWJ1dGVzKHRva2VuKTsKICAgICAgICAgbV90cmVlLmluc2VydEZvcmVpZ25FbGVtZW50KHRva2Vu
LCBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKTsKLSAgICAgICAgaWYgKG1faW5zZXJ0aW9uTW9k
ZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSkgewotICAgICAgICAgICAgc2V0U2Vjb25kYXJ5SW5z
ZXJ0aW9uTW9kZShtX2luc2VydGlvbk1vZGUpOworICAgICAgICBpZiAobV9pbnNlcnRpb25Nb2Rl
ICE9IEluRm9yZWlnbkNvbnRlbnRNb2RlKQogICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJ
bkZvcmVpZ25Db250ZW50TW9kZSk7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi5uYW1lKCkpCkBAIC0xMDQ2
LDcgKzEwNTEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5U
YWJsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gY29s
VGFnKSB7CiAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcoY29sZ3JvdXBUYWcpOwogICAgICAg
ICBBU1NFUlQoSW5Db2x1bW5Hcm91cE1vZGUpOwotICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9r
ZW4pOworICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1lKCkpKSB7CkBA
IC0xMDU5LDcgKzEwNjQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFn
Rm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB8fCB0b2tlbi5uYW1l
KCkgPT0gdHJUYWcpIHsKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyh0Ym9keVRhZyk7CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKLSAgICAg
ICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9r
ZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGFi
bGVUYWcpIHsKQEAgLTEwNjgsNyArMTA3Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmVwcm9jZXNz
U3RhcnRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5u
YW1lKCkgPT0gc3R5bGVUYWcgfHwgdG9rZW4ubmFtZSgpID09IHNjcmlwdFRhZykgewpAQCAtMTA5
OSw3ICsxMTA0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zvcklu
VGFibGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKIAogbmFtZXNwYWNlIHsKIAotYm9vbCBzaG91
bGRQcm9jZXNzVXNpbmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlKEF0b21pY0hUTUxUb2tlbiYgdG9r
ZW4sIEVsZW1lbnQqIGN1cnJlbnRFbGVtZW50KQorYm9vbCBzaG91bGRQcm9jZXNzRm9yZWlnbkNv
bnRlbnRVc2luZ0luQm9keUluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbiwgRWxl
bWVudCogY3VycmVudEVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW46OlN0YXJ0VGFnKTsKICAgICBpZiAoY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6Om1pVGFnKQpAQCAtMTIxNSw3ICsxMjIwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAg
ICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0x
MjM0LDcgKzEyMzksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEluVGFibGVCb2R5TW9kZToKICAgICAgICAgQVNTRVJUKGluc2Vy
dGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTI0OCw3ICsxMjUzLDcgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBwcm9jZXNzRmFr
ZVN0YXJ0VGFnKHRyVGFnKTsKICAgICAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5Sb3dNb2RlKTsKLSAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAg
ICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4ubmFtZSgp
KSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4ubmFtZSgpKSkgewpAQCAtMTI2MSw3ICsx
MjY2LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRp
bFRhYmxlQm9keVNjb3BlTWFya2VyKCk7CiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlD
b250ZXh0VGFnKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5sb2NhbE5hbWUoKSkpOwogICAgICAg
ICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPnRhZ1FOYW1l
KCkpOwotICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJl
cHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKHRva2VuKTsKQEAgLTEyODMsNyArMTI4
OCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRv
a2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7Ci0gICAg
ICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmVwcm9jZXNzU3Rh
cnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHBy
b2Nlc3NTdGFydFRhZ0ZvckluVGFibGUodG9rZW4pOwpAQCAtMTMwMSw3ICsxMzA2LDcgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNs
b3NlVGhlQ2VsbCgpOwotICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAg
ICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTMx
NCw3ICsxMzE5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9t
aWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7Ci0gICAgICAgIHByb2Nlc3NTdGFydFRh
Zyh0b2tlbik7CisgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBJbkhlYWROb3NjcmlwdE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgPT0gSW5IZWFkTm9zY3JpcHRNb2RlKTsKQEAgLTEzODIsNyArMTM4Nyw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgQXRvbWljSFRN
TFRva2VuIGVuZFNlbGVjdChIVE1MVG9rZW46OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgp
KTsKICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKLSAgICAgICAgICAgIHBy
b2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tl
bik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLy8gRmFsbCB0aHJv
dWdoCkBAIC0xNDI4LDcgKzE0MzMsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBBdG9taWNIVE1MVG9rZW4gZW5kU2VsZWN0KEhUTUxUb2tlbjo6RW5kVGFnLCBzZWxlY3RUYWcu
bG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyhlbmRTZWxlY3QpOwotICAg
ICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJlcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBp
ZiAodG9rZW4ubmFtZSgpID09IHNjcmlwdFRhZykgewpAQCAtMTQ0Miw4ICsxNDQ3LDggQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOiB7Ci0gICAgICAgIGlmIChzaG91bGRQcm9jZXNzVXNp
bmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlKHRva2VuLCBtX3RyZWUuY3VycmVudEVsZW1lbnQoKSkp
IHsKLSAgICAgICAgICAgIHByb2Nlc3NVc2luZ1NlY29uZGFyeUluc2VydGlvbk1vZGVBbmRBZGp1
c3RJbnNlcnRpb25Nb2RlKHRva2VuKTsKKyAgICAgICAgaWYgKHNob3VsZFByb2Nlc3NGb3JlaWdu
Q29udGVudFVzaW5nSW5Cb2R5SW5zZXJ0aW9uTW9kZSh0b2tlbiwgbV90cmVlLmN1cnJlbnRFbGVt
ZW50KCkpKSB7CisgICAgICAgICAgICBwcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1v
ZGVBbmRSZXNldE1vZGUodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYlRhZwpAQCAtMTQ4OCwxNSArMTQ5MywxNCBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9r
ZW4pCiAgICAgICAgICAgICB8fCAodG9rZW4ubmFtZSgpID09IGZvbnRUYWcgJiYgKHRva2VuLmdl
dEF0dHJpYnV0ZUl0ZW0oY29sb3JBdHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGZhY2VB
dHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKHNpemVBdHRyKSkpKSB7CiAgICAgICAgICAg
ICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cG9wVW50aWxGb3JlaWduQ29udGVudFNjb3BlTWFya2VyKCk7Ci0gICAgICAgICAgICBpZiAoaW5z
ZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2RlICYmIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aGFzT25seUhUTUxFbGVtZW50c0luU2NvcGUoKSkKLSAgICAgICAgICAgICAgICBzZXRJ
bnNlcnRpb25Nb2RlKG1fc2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZSk7Ci0gICAgICAgICAgICBwcm9j
ZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9w
cmlhdGVseSgpOworICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY3Vy
cmVudE5hbWVzcGFjZSA9IG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5uYW1lc3BhY2VVUkkoKTsK
ICAgICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0gTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVz
cGFjZVVSSSkKICAgICAgICAgICAgIGFkanVzdE1hdGhNTEF0dHJpYnV0ZXModG9rZW4pOwotICAg
ICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkg
eworICAgICAgICBpZiAoY3VycmVudE5hbWVzcGFjZSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNl
VVJJKSB7CiAgICAgICAgICAgICBhZGp1c3RTVkdUYWdOYW1lQ2FzZSh0b2tlbik7CiAgICAgICAg
ICAgICBhZGp1c3RTVkdBdHRyaWJ1dGVzKHRva2VuKTsKICAgICAgICAgfQpAQCAtMTY3OSwyNiAr
MTY4MywxMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y2FsbFRoZUFkb3B0aW9uQWdlbmN5KEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogfQogCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6
c2V0U2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShJbnNlcnRpb25Nb2RlIG1vZGUpCi17Ci0gICAgQVNT
RVJUKG1vZGUgIT0gSW5Gb3JlaWduQ29udGVudE1vZGUpOwotICAgIG1fc2Vjb25kYXJ5SW5zZXJ0
aW9uTW9kZSA9IG1vZGU7Ci19Ci0KLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpzZXRJbnNlcnRpb25N
b2RlQW5kRW5kKEluc2VydGlvbk1vZGUgbmV3SW5zZXJ0aW9uTW9kZSwgYm9vbCBmb3JlaWduKQot
ewotICAgIHNldEluc2VydGlvbk1vZGUobmV3SW5zZXJ0aW9uTW9kZSk7Ci0gICAgaWYgKGZvcmVp
Z24pIHsKLSAgICAgICAgc2V0U2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShtX2luc2VydGlvbk1vZGUp
OwotICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKLSAgICB9
Ci19Ci0KIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0
ZWx5KCkKIHsKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3Vy
cmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcmVzZXQtdGhlLWluc2VydGlvbi1tb2Rl
LWFwcHJvcHJpYXRlbHkKICAgICBib29sIGxhc3QgPSBmYWxzZTsKLSAgICBib29sIGZvcmVpZ24g
PSBmYWxzZTsKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBub2RlUmVjb3Jk
ID0gbV90cmVlLm9wZW5FbGVtZW50cygpLT50b3BSZWNvcmQoKTsKICAgICB3aGlsZSAoMSkgewog
ICAgICAgICBFbGVtZW50KiBub2RlID0gbm9kZVJlY29yZC0+ZWxlbWVudCgpOwpAQCAtMTcwOSw0
MiArMTY5Nyw0MiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBw
cm9wcmlhdGVseSgpCiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc2Vs
ZWN0VGFnKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwotICAg
ICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5TZWxlY3RNb2RlLCBmb3Jl
aWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGRUYWcpIHx8IG5vZGUt
Pmhhc1RhZ05hbWUodGhUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVB
bmRFbmQoSW5DZWxsTW9kZSwgZm9yZWlnbik7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0
aW9uTW9kZShJbkNlbGxNb2RlKTsKICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodHJUYWcp
KQotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5Sb3dNb2RlLCBm
b3JlaWduKTsKLSAgICAgICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyhub2RlLT5sb2NhbE5h
bWUoKSkpCi0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJblRhYmxl
Qm9keU1vZGUsIGZvcmVpZ24pOworICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUo
SW5Sb3dNb2RlKTsKKyAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IG5v
ZGUtPmhhc1RhZ05hbWUodGhlYWRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGZvb3RUYWcpKQor
ICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKICAg
ICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykpCi0gICAgICAgICAgICByZXR1
cm4gc2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJbkNhcHRpb25Nb2RlLCBmb3JlaWduKTsKKyAgICAg
ICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQ2FwdGlvbk1vZGUpOwogICAgICAgICBp
ZiAobm9kZS0+aGFzVGFnTmFtZShjb2xncm91cFRhZykpIHsKICAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
QW5kRW5kKEluQ29sdW1uR3JvdXBNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBz
ZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKICAgICAgICAgfQogICAgICAgICBp
ZiAobm9kZS0+aGFzVGFnTmFtZSh0YWJsZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gc2V0SW5z
ZXJ0aW9uTW9kZUFuZEVuZChJblRhYmxlTW9kZSwgZm9yZWlnbik7CisgICAgICAgICAgICByZXR1
cm4gc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CiAgICAgICAgIGlmIChub2RlLT5oYXNU
YWdOYW1lKGhlYWRUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQo
KSk7Ci0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJbkJvZHlNb2Rl
LCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1v
ZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5Cb2R5TW9kZSwgZm9y
ZWlnbik7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsK
ICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZnJhbWVzZXRUYWcpKSB7CiAgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc2V0SW5z
ZXJ0aW9uTW9kZUFuZEVuZChJbkZyYW1lc2V0TW9kZSwgZm9yZWlnbik7CisgICAgICAgICAgICBy
ZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykpIHsKICAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
QW5kRW5kKEJlZm9yZUhlYWRNb2RlLCBmb3JlaWduKTsKKyAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKEJlZm9yZUhlYWRNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobm9k
ZS0+bmFtZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSQogICAgICAgICAg
ICAgfHwgbm9kZS0+bmFtZXNwYWNlVVJJKCkgPT0gTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFj
ZVVSSSkKLSAgICAgICAgICAgIGZvcmVpZ24gPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwogICAgICAgICBpZiAobGFzdCkg
ewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwotICAgICAgICAgICAg
cmV0dXJuIHNldEluc2VydGlvbk1vZGVBbmRFbmQoSW5Cb2R5TW9kZSwgZm9yZWlnbik7CisgICAg
ICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgfQog
ICAgICAgICBub2RlUmVjb3JkID0gbm9kZVJlY29yZC0+bmV4dCgpOwogICAgIH0KQEAgLTE3NzMs
NyArMTc2MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJs
ZUJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50
cygpLT5wb3BVbnRpbFRhYmxlQm9keVNjb3BlTWFya2VyKCk7CiAgICAgICAgIEFTU0VSVChpc1Rh
YmxlQm9keUNvbnRleHRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmxvY2FsTmFtZSgpKSk7
CiAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT50YWdR
TmFtZSgpKTsKLSAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgIHJlcHJvY2Vz
c0VuZFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5h
bWUoKSA9PSBib2R5VGFnCkBAIC0xODAwLDcgKzE3ODgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluUm93KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9
PSBJblRhYmxlQm9keU1vZGUpOwotICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAg
ICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBp
ZiAoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLm5hbWUoKSkpIHsKQEAgLTE4MTAsNyArMTc5
OCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Sb3coQXRvbWlj
SFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyh0
clRhZyk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2Rl
KTsKLSAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgIHJlcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9
PSBib2R5VGFnCkBAIC0xODU0LDcgKzE4NDIsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNsb3NlVGhlQ2VsbCgpOwotICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KHRva2VuKTsKQEAg
LTE4NzAsNyArMTg1OCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBo
dG1sVGFnKSB7CiAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRCb2R5KEhUTUxUb2tlbjo6RW5k
VGFnLCBib2R5VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAgaWYgKHByb2Nlc3NCb2R5RW5kVGFn
Rm9ySW5Cb2R5KGVuZEJvZHkpKQotICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7Cisg
ICAgICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYWRkcmVzc1RhZwpAQCAtMTkyMyw3ICsxOTExLDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAg
ICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhwVGFnKTsKICAgICAgICAgICAgIEFTU0VSVChtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4ubmFtZSgpKSk7Ci0gICAgICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV90cmVlLmdlbmVyYXRlSW1w
bGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRva2VuLm5hbWUoKSk7CkBAIC0yMTE5LDcgKzIxMDcs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9jZXNz
RW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBi
b2R5VGFnCkBAIC0yMTQ4LDcgKzIxMzYsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IHByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEluUm93TW9kZToKICAgICAgICAgQVNTRVJUKGluc2Vy
dGlvbk1vZGUoKSA9PSBJblJvd01vZGUpOwpAQCAtMjE3MiwxMiArMjE2MCwxMyBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAg
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckFmdGVyQm9keU1vZGUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7
CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEFmdGVyQWZ0ZXJCb2R5TW9kZToK
ICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckJvZHlNb2RlIHx8IGluc2Vy
dGlvbk1vZGUoKSA9PSBBZnRlckFmdGVyQm9keU1vZGUpOwogICAgICAgICBwYXJzZUVycm9yKHRv
a2VuKTsKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKLSAgICAgICAgcHJv
Y2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgogICAgICAgICBBU1NFUlQo
aW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE5vc2NyaXB0TW9kZSk7CkBAIC0yMjUzLDcgKzIyNDIs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNj
b3BlKHRva2VuLm5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICBBdG9taWNIVE1MVG9rZW4gZW5k
U2VsZWN0KEhUTUxUb2tlbjo6RW5kVGFnLCBzZWxlY3RUYWcubG9jYWxOYW1lKCkpOwogICAgICAg
ICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKLSAgICAgICAgICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4p
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yMzE0
LDExICsyMzAzLDMxIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21p
Y0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgLy8g
QW55IG90aGVyIGVuZCB0YWcgKGFsc28gdGhlIGxhc3QgdHdvIHN0ZXBzIG9mICJBbiBlbmQgdGFn
LCBpZiB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVz
cGFjZS4iCi0gICAgICAgIHByb2Nlc3NVc2luZ1NlY29uZGFyeUluc2VydGlvbk1vZGVBbmRBZGp1
c3RJbnNlcnRpb25Nb2RlKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNp
bmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQogCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKQorewor
ICAgIGlmIChtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0ZXBzKSB7CisgICAgICAg
IHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKTsKKyAgICAgICAgbV9oYXNQZW5kaW5nRm9yZWln
bkluc2VydGlvbk1vZGVTdGVwcyA9IGZhbHNlOworICAgIH0KK30KKwordm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnJlcHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CisgICAg
cHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKKyAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwor
fQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCit7CisgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKKyAgICBwcm9jZXNz
RW5kVGFnKHRva2VuKTsKK30KKwogY2xhc3MgSFRNTFRyZWVCdWlsZGVyOjpGYWtlSW5zZXJ0aW9u
TW9kZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgRmFrZUluc2VydGlvbk1v
ZGUoSFRNTFRyZWVCdWlsZGVyKiB0cmVlQnVpbGRlciwgSW5zZXJ0aW9uTW9kZSBtb2RlKQpAQCAt
MjMzOSwxOCArMjM0OCwyMSBAQCBwcml2YXRlOgogICAgIEluc2VydGlvbk1vZGUgbV9vcmlnaW5h
bE1vZGU7CiB9OwogCi0vLyBUaGlzIGhhbmRsZXMgYm90aCBzZWNvbmRhcnkgaW5zZXJ0aW9uIG1v
ZGUgcHJvY2Vzc2luZywgYXMgd2VsbCBhcyB1cGRhdGluZwotLy8gdGhlIGluc2VydGlvbiBtb2Rl
LiAgVGhlc2UgYXJlIHNlcGFyYXRlIHN0ZXBzIGluIHRoZSBzcGVjLCBidXQgYWx3YXlzIG9jY3Vy
Ci0vLyByaWdodCBhZnRlciBvbmUgYW5vdGhlci4KLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzVXNpbmdTZWNvbmRhcnlJbnNlcnRpb25Nb2RlQW5kQWRqdXN0SW5zZXJ0aW9uTW9kZShBdG9t
aWNIVE1MVG9rZW4mIHRva2VuKQordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NGb3JlaWdu
Q29udGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KQogewotICAgIEFTU0VSVCh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpTdGFydFRhZyB8fCB0
b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpFbmRUYWcpOworICAgIG1faGFzUGVuZGluZ0ZvcmVp
Z25JbnNlcnRpb25Nb2RlU3RlcHMgPSB0cnVlOwogICAgIHsKLSAgICAgICAgRmFrZUluc2VydGlv
bk1vZGUgZmFrZU1vZGUodGhpcywgbV9zZWNvbmRhcnlJbnNlcnRpb25Nb2RlKTsKKyAgICAgICAg
RmFrZUluc2VydGlvbk1vZGUgZmFrZU1vZGUodGhpcywgSW5Cb2R5TW9kZSk7CiAgICAgICAgIHBy
b2Nlc3NUb2tlbih0b2tlbik7CiAgICAgfQotICAgIGlmIChpbnNlcnRpb25Nb2RlKCkgPT0gSW5G
b3JlaWduQ29udGVudE1vZGUgJiYgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5SFRNTEVs
ZW1lbnRzSW5TY29wZSgpKQotICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fc2Vjb25kYXJ5SW5z
ZXJ0aW9uTW9kZSk7CisgICAgaWYgKG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3Rl
cHMpCisgICAgICAgIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKTsKK30KKwordm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKQoreworICAgIGlmIChpbnNl
cnRpb25Nb2RlKCkgPT0gSW5Gb3JlaWduQ29udGVudE1vZGUpCisgICAgICAgIHJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NDb21tZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCkBAIC0yNDQ4LDYgKzI0NjAsNyBAQCBS
ZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMu
aXNFbXB0eSgpKTsKICAgICAgICAgbV9vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBtX2luc2VydGlv
bk1vZGU7CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZVRleHRNb2RlKTsKKyAgICAg
ICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgog
ICAgIH0KICAgICBjYXNlIEluVGFibGVUZXh0TW9kZTogewpAQCAtMjQ2OCw2ICsyNDgxLDcgQEAg
UmVwcm9jZXNzQnVmZmVyOgogICAgICAgICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIHByZXBhcmVUb1JlcHJvY2Vz
c1Rva2VuKCk7CiAgICAgICAgIGdvdG8gUmVwcm9jZXNzQnVmZmVyOwogICAgIH0KICAgICBjYXNl
IEFmdGVyQm9keU1vZGU6CkBAIC0yNDc1LDYgKzI0ODksNyBAQCBSZXByb2Nlc3NCdWZmZXI6CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJCb2R5TW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gQWZ0ZXJBZnRlckJvZHlNb2RlKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNl
IGVycm9yCiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgIHBy
ZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIGdvdG8gUmVwcm9jZXNzQnVmZmVyOwog
ICAgICAgICBicmVhazsKICAgICB9CkBAIC0yNTkzLDE2ICsyNjA4LDExIEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAg
cHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluRm9y
ZWlnbkNvbnRlbnRNb2RlOgotICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgbV90
cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbEZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoKTsK
LSAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVjIGFkZHMgdGhlIGZvbGxvd2luZyBjb25kaXRpb24g
YmVmb3JlIHNldHRpbmcgdGhlCi0gICAgICAgIC8vICAgICAgICBpbnNlcnRpb24gbW9kZS4gIEhv
d2V2ZXIsIHRoaXMgY29uZGl0aW9uIGNhdXNlcyBhbiBpbmZpbml0ZSBsb29wLgotICAgICAgICAv
LyAgICAgICAgU2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9p
ZD0xMDYyMQotICAgICAgICAvLyAgICAgICAgaWYgKGluc2VydGlvbk1vZGUoKSA9PSBJbkZvcmVp
Z25Db250ZW50TW9kZSAmJiBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlIVE1MRWxlbWVu
dHNJblNjb3BlKCkpCi0gICAgICAgIHNldEluc2VydGlvbk1vZGUobV9zZWNvbmRhcnlJbnNlcnRp
b25Nb2RlKTsKKyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAg
cHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluVGFi
bGVUZXh0TW9kZToKQEAgLTI2MTUsNiArMjYyNSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBub3RJ
bXBsZW1lbnRlZCgpOyAvLyBtYXJrIHRoZSBzY3JpcHQgZWxlbWVudCBhcyAiYWxyZWFkeSBzdGFy
dGVkIi4KICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CisgICAgICAgIHByZXBhcmVU
b1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjYyOSw2ICsyNjQwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OmRlZmF1bHRGb3JJbml0aWFsKCkKICAgICAgICAgbV9kb2N1bWVudC0+c2V0Q29tcGF0
aWJpbGl0eU1vZGUoRG9jdW1lbnQ6OlF1aXJrc01vZGUpOwogICAgIC8vIEZJWE1FOiBwYXJzZSBl
cnJvcgogICAgIHNldEluc2VydGlvbk1vZGUoQmVmb3JlSFRNTE1vZGUpOworICAgIHByZXBhcmVU
b1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9y
QmVmb3JlSFRNTCgpCkBAIC0yNjM2LDI0ICsyNjQ4LDI4IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9yQmVmb3JlSFRNTCgpCiAgICAgQXRvbWljSFRNTFRva2VuIHN0YXJ0SFRNTChI
VE1MVG9rZW46OlN0YXJ0VGFnLCBodG1sVGFnLmxvY2FsTmFtZSgpKTsKICAgICBtX3RyZWUuaW5z
ZXJ0SFRNTEh0bWxTdGFydFRhZ0JlZm9yZUhUTUwoc3RhcnRIVE1MKTsKICAgICBzZXRJbnNlcnRp
b25Nb2RlKEJlZm9yZUhlYWRNb2RlKTsKKyAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwog
fQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckJlZm9yZUhlYWQoKQogewogICAg
IEF0b21pY0hUTUxUb2tlbiBzdGFydEhlYWQoSFRNTFRva2VuOjpTdGFydFRhZywgaGVhZFRhZy5s
b2NhbE5hbWUoKSk7CiAgICAgcHJvY2Vzc1N0YXJ0VGFnKHN0YXJ0SGVhZCk7CisgICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRG
b3JJbkhlYWQoKQogewogICAgIEF0b21pY0hUTUxUb2tlbiBlbmRIZWFkKEhUTUxUb2tlbjo6RW5k
VGFnLCBoZWFkVGFnLmxvY2FsTmFtZSgpKTsKICAgICBwcm9jZXNzRW5kVGFnKGVuZEhlYWQpOwor
ICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9ySW5IZWFkTm9zY3JpcHQoKQogewogICAgIEF0b21pY0hUTUxUb2tlbiBlbmRO
b3NjcmlwdChIVE1MVG9rZW46OkVuZFRhZywgbm9zY3JpcHRUYWcubG9jYWxOYW1lKCkpOwogICAg
IHByb2Nlc3NFbmRUYWcoZW5kTm9zY3JpcHQpOworICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9yQWZ0ZXJIZWFkKCkKQEAg
LTI2NjEsNiArMjY3Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9yQWZ0ZXJI
ZWFkKCkKICAgICBBdG9taWNIVE1MVG9rZW4gc3RhcnRCb2R5KEhUTUxUb2tlbjo6U3RhcnRUYWcs
IGJvZHlUYWcubG9jYWxOYW1lKCkpOwogICAgIHByb2Nlc3NTdGFydFRhZyhzdGFydEJvZHkpOwog
ICAgIG1fZnJhbWVzZXRPayA9IHRydWU7CisgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsK
IH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJblRhYmxlVGV4dCgpCkBAIC0y
NjczLDEwICsyNjkwLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5UYWJs
ZVRleHQoKQogICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7CiAgICAg
ICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3Jp
Z2luYWxJbnNlcnRpb25Nb2RlKTsKKyAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFj
dGVycyk7CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7Cisg
ICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKaW5kZXggZTYxZmU3MzQ2NmRhMTc4ZDMzMTFkMjc2
MjBlNDZiODI4MWMxZTQ1NS4uYzZmY2RmZDk4YmUzNmMyOGE2MmNkYTA0ZDJlMzAwOGQ5OGJiYzcx
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysg
Yi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC0xNjMsNyArMTYzLDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWZhdWx0Rm9yQWZ0ZXJIZWFkKCk7CiAgICAgdm9pZCBk
ZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKIAotICAgIHZvaWQgcHJvY2Vzc1VzaW5nU2Vjb25kYXJ5
SW5zZXJ0aW9uTW9kZUFuZEFkanVzdEluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJik7Cisg
ICAgdm9pZCBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOworCisgICAgdm9pZCByZXByb2Nlc3NT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKKyAgICB2b2lkIHJlcHJvY2Vzc0VuZFRhZyhBdG9t
aWNIVE1MVG9rZW4mKTsKIAogICAgIFBhc3NSZWZQdHI8TmFtZWROb2RlTWFwPiBhdHRyaWJ1dGVz
Rm9ySXNpbmRleElucHV0KEF0b21pY0hUTUxUb2tlbiYpOwogCkBAIC0xOTQsMTEgKzE5NywxMSBA
QCBwcml2YXRlOgogICAgICAgICBtX2lzRmFrZUluc2VydGlvbk1vZGUgPSB0cnVlOwogICAgIH0K
IAotICAgIHZvaWQgc2V0U2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShJbnNlcnRpb25Nb2RlKTsKLQot
ICAgIHZvaWQgc2V0SW5zZXJ0aW9uTW9kZUFuZEVuZChJbnNlcnRpb25Nb2RlLCBib29sIGZvcmVp
Z24pOyAvLyBIZWxwZXIgZm9yIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkKICAgICB2
b2lkIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIAorICAgIHZvaWQgcHJvY2Vz
c0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pOworICAgIHZvaWQgcmVzZXRGb3JlaWduSW5zZXJ0aW9uTW9kZSgpOworCiAgICAg
Y2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAg
cHVibGljOgogICAgICAgICBGcmFnbWVudFBhcnNpbmdDb250ZXh0KCk7CkBAIC0yMzYsNyArMjM5
LDYgQEAgcHJpdmF0ZToKICAgICAvLyBzZXRJbnNlcnRpb25Nb2RlIGFuZCBuZXZlciBzZXQgbV9p
bnNlcnRpb25Nb2RlIGRpcmVjdGx5LgogICAgIEluc2VydGlvbk1vZGUgbV9pbnNlcnRpb25Nb2Rl
OwogICAgIEluc2VydGlvbk1vZGUgbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7Ci0gICAgSW5zZXJ0
aW9uTW9kZSBtX3NlY29uZGFyeUluc2VydGlvbk1vZGU7CiAKICAgICAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRp
b24uaHRtbCNwZW5kaW5nLXRhYmxlLWNoYXJhY3Rlci10b2tlbnMKICAgICBWZWN0b3I8VUNoYXI+
IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVyczsKQEAgLTI1Miw4ICsyNTQsMTAgQEAgcHJpdmF0ZToK
ICAgICAvLyBjcmVhdGVkIHRvIHNlcnZpY2UgdGhlIGxlZ2FjeSB0cmVlIGJ1aWxkZXIsIGJ1dCBp
dCBzZWVtcyB0byBiZSB1c2VkIGZvcgogICAgIC8vIHNvbWUgb3RoZXIgdGhpbmdzIG5vdy4KICAg
ICBpbnQgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZTsKLSAgICAKKwogICAgIGJvb2wgbV91
c2VQcmVIVE1MNVBhcnNlclF1aXJrczsKKworICAgIGJvb2wgbV9oYXNQZW5kaW5nRm9yZWlnbklu
c2VydGlvbk1vZGVTdGVwczsKIH07CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>