<?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>217479</bug_id>
          
          <creation_ts>2020-10-08 09:13:13 -0700</creation_ts>
          <short_desc>Sanitize the usage of override sizes</short_desc>
          <delta_ts>2021-01-13 10:04:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=217898</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=220524</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>191461</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695920</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-10-08 09:13:13 -0700</bug_when>
    <thetext>Sanitize the usage of override sizes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695929</commentid>
    <comment_count>1</comment_count>
      <attachid>410852</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-10-08 09:44:56 -0700</bug_when>
    <thetext>Created attachment 410852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696159</commentid>
    <comment_count>2</comment_count>
      <attachid>410852</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2020-10-09 01:50:30 -0700</bug_when>
    <thetext>Comment on attachment 410852
Patch

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

Thanks for doing this, I believe this was really needed as it was a mess what we were storing on those overrides.

There&apos;s one test failing yet, so we need to check what&apos;s going on before merging this.

&gt; Source/WebCore/rendering/RenderBox.cpp:95
&gt;  // Used by flexible boxes when flexing this element and by table cells.

Nit: Maybe we want to update this comment, as grid layout also uses these.

&gt; Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:170
&gt; +    return std::max&lt;LayoutUnit&gt;(0, widthForChild(child) - child-&gt;borderAndPaddingLogicalWidth());

Don&apos;t we need to subsctract scrollbar sizes here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697268</commentid>
    <comment_count>3</comment_count>
      <attachid>411222</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-10-13 08:53:21 -0700</bug_when>
    <thetext>Created attachment 411222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697270</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-13 09:07:29 -0700</bug_when>
    <thetext>Note the point here, but:

I’m not a big fan of the broken grammar of naming something &quot;override size&quot; or a &quot;size override&quot;. The word &quot;override&quot; is a verb and it’s not very good as a noun. It’s the kind of poor grammar that programmers sometimes use that in the end makes it hard to translate between software and spoken English, making it just that little bit harder to think about a program.

If I was creating something new I might call it an &quot;overriding size&quot; or an &quot;explicitly set size&quot; or an &quot;explicit size&quot; or search for other terminology that matches how people would speak about this if explaining it to another person.

Possibly also some additional consideration needs to be applied since we want this to be English that works well for many different types of English speakers. Sometimes people argue in favor of jargon because of that; not sure if that applies here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697287</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-10-13 09:40:55 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Note the point here, but:
&gt; 
&gt; I’m not a big fan of the broken grammar of naming something &quot;override size&quot;
&gt; or a &quot;size override&quot;. The word &quot;override&quot; is a verb and it’s not very good
&gt; as a noun. It’s the kind of poor grammar that programmers sometimes use that
&gt; in the end makes it hard to translate between software and spoken English,
&gt; making it just that little bit harder to think about a program.
&gt; 
&gt; If I was creating something new I might call it an &quot;overriding size&quot; or an
&gt; &quot;explicitly set size&quot; or an &quot;explicit size&quot; or search for other terminology
&gt; that matches how people would speak about this if explaining it to another
&gt; person.
&gt; 
&gt; Possibly also some additional consideration needs to be applied since we
&gt; want this to be English that works well for many different types of English
&gt; speakers. Sometimes people argue in favor of jargon because of that; not
&gt; sure if that applies here.
Agree and it&apos;s also contagious. I started using it in LFC without even giving it a thought (bug 217657).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697299</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-10-13 10:31:28 -0700</bug_when>
    <thetext>(In reply to zalan from comment #5)
&gt; (In reply to Darin Adler from comment #4)
&gt; &gt; Note the point here, but:
&gt; &gt; 
&gt; &gt; I’m not a big fan of the broken grammar of naming something &quot;override size&quot;
&gt; &gt; or a &quot;size override&quot;. The word &quot;override&quot; is a verb and it’s not very good
&gt; &gt; as a noun. It’s the kind of poor grammar that programmers sometimes use that
&gt; &gt; in the end makes it hard to translate between software and spoken English,
&gt; &gt; making it just that little bit harder to think about a program.
&gt; &gt; 
&gt; &gt; If I was creating something new I might call it an &quot;overriding size&quot; or an
&gt; &gt; &quot;explicitly set size&quot; or an &quot;explicit size&quot; or search for other terminology
&gt; &gt; that matches how people would speak about this if explaining it to another
&gt; &gt; person.
&gt; &gt; 
&gt; &gt; Possibly also some additional consideration needs to be applied since we
&gt; &gt; want this to be English that works well for many different types of English
&gt; &gt; speakers. Sometimes people argue in favor of jargon because of that; not
&gt; &gt; sure if that applies here.
&gt; Agree and it&apos;s also contagious. I started using it in LFC without even
&gt; giving it a thought (bug 217657).

Fair enough. I could replace it to OverriddenXXX to make it consistent with Zalan&apos;s changes but I wonder if we should do it as part of this patch or in a follow up in order not to make it more difficult to understand for future readers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697300</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-13 10:35:07 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #6)
&gt; Fair enough. I could replace it to OverriddenXXX to make it consistent with
&gt; Zalan&apos;s changes but I wonder if we should do it as part of this patch or in
&gt; a follow up in order not to make it more difficult to understand for future
&gt; readers.

I don’t feel strongly about that either way. What I care about is the future, not how quickly we make a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698124</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-15 09:14:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/70338631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698508</commentid>
    <comment_count>9</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-10-16 01:53:27 -0700</bug_when>
    <thetext>(In reply to Manuel Rego Casasnovas from comment #2)
&gt; Comment on attachment 410852 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410852&amp;action=review
&gt; 
&gt; Thanks for doing this, I believe this was really needed as it was a mess
&gt; what we were storing on those overrides.

Thanks for the review!

&gt; There&apos;s one test failing yet, so we need to check what&apos;s going on before
&gt; merging this.

Already fixed in the new patch, I forgot to add the border and padding when storing the overriden size in the case of border-fit: line.

&gt; &gt; Source/WebCore/rendering/RenderBox.cpp:95
&gt; &gt;  // Used by flexible boxes when flexing this element and by table cells.
&gt; 
&gt; Nit: Maybe we want to update this comment, as grid layout also uses these.

I&apos;ve finally decided to remove it. The overriden sizes mechanism shouldn&apos;t be attached to flex or grid, it&apos;s mean to be general usage.

&gt; &gt; Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:170
&gt; &gt; +    return std::max&lt;LayoutUnit&gt;(0, widthForChild(child) - child-&gt;borderAndPaddingLogicalWidth());
&gt; 
&gt; Don&apos;t we need to subsctract scrollbar sizes here?

I wondered the same but the current code does not take scrollbars into account, for example:

static LayoutUnit contentWidthForChild(RenderBox* child)
{
    if (child-&gt;hasOverrideContentLogicalWidth())
        return child-&gt;overrideContentLogicalWidth();
    return child-&gt;logicalWidth() - child-&gt;borderAndPaddingLogicalWidth();
}

so I&apos;m basically respecting that the current code is doing. Maybe there is a bug but that would be orthogonal to this bug IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698515</commentid>
    <comment_count>10</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2020-10-16 02:28:50 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #9)
&gt; &gt; &gt; Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:170
&gt; &gt; &gt; +    return std::max&lt;LayoutUnit&gt;(0, widthForChild(child) - child-&gt;borderAndPaddingLogicalWidth());
&gt; &gt; 
&gt; &gt; Don&apos;t we need to subsctract scrollbar sizes here?
&gt; 
&gt; I wondered the same but the current code does not take scrollbars into
&gt; account, for example:
&gt; 
&gt; static LayoutUnit contentWidthForChild(RenderBox* child)
&gt; {
&gt;     if (child-&gt;hasOverrideContentLogicalWidth())
&gt;         return child-&gt;overrideContentLogicalWidth();
&gt;     return child-&gt;logicalWidth() - child-&gt;borderAndPaddingLogicalWidth();
&gt; }
&gt; 
&gt; so I&apos;m basically respecting that the current code is doing. Maybe there is a
&gt; bug but that would be orthogonal to this bug IMO.

I agree this can be done in a separated issue, so please check if this is a bug or not, and report it if that&apos;s the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698516</commentid>
    <comment_count>11</comment_count>
      <attachid>411222</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2020-10-16 02:29:24 -0700</bug_when>
    <thetext>Comment on attachment 411222
Patch

r=me, but please do the suggested renaming in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699204</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-10-19 02:40:24 -0700</bug_when>
    <thetext>Committed r268666: &lt;https://trac.webkit.org/changeset/268666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718797</commentid>
    <comment_count>13</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-01-11 13:18:59 -0800</bug_when>
    <thetext>This caused the following regression: bug 220524</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719114</commentid>
    <comment_count>14</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-01-12 13:38:13 -0800</bug_when>
    <thetext>We should roll this out until they have a good patch for this. The regression is too severe to keep in the tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719133</commentid>
    <comment_count>15</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-01-12 14:12:06 -0800</bug_when>
    <thetext>auto-revert fails with bunch of conflicts. Sergio could you revert this patch soon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719224</commentid>
    <comment_count>16</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-01-12 23:51:57 -0800</bug_when>
    <thetext>(In reply to zalan from comment #15)
&gt; auto-revert fails with bunch of conflicts. Sergio could you revert this
&gt; patch soon?

I&apos;ll try to fix the regression ASAP. Otherwise I&apos;ll try to revert it indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719246</commentid>
    <comment_count>17</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-01-13 03:55:38 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #16)
&gt; (In reply to zalan from comment #15)
&gt; &gt; auto-revert fails with bunch of conflicts. Sergio could you revert this
&gt; &gt; patch soon?
&gt; 
&gt; I&apos;ll try to fix the regression ASAP. Otherwise I&apos;ll try to revert it indeed.

Should be fixed now. Thanks for reporting!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719327</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-13 10:03:10 -0800</bug_when>
    <thetext>Wanted to figure out what you mean. Are saying you this was fixed by r271436 or by something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719330</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-13 10:04:14 -0800</bug_when>
    <thetext>Oh, I see there’s a reference above to the bug number.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410852</attachid>
            <date>2020-10-08 09:44:56 -0700</date>
            <delta_ts>2020-10-13 08:52:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217479-20201008184453.patch</filename>
            <type>text/plain</type>
            <size>47648</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIyZDllMGNlNmM4NGM4
ZmRkZWM4OGFiNGNiYmJlNDY5MDVhODhiZi4uNTI3NmQ3MzFiOTZiOTZkM2Q3YTUwZjgxYjUwOWUz
Y2IxOGM2Mzk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMC0xMC0wOCAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBTYW5pdGl6
ZSB0aGUgdXNhZ2Ugb2Ygb3ZlcnJpZGUgc2l6ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckJveCBoYWQgdHdvIHZhbHVlcywgb3ZlcnJpZGVD
b250ZW50TG9naWNhbFdpZHRoIGFuZCBvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0IHdoaWNo
IHdlcmUgdXNlZCBieSBhIHZhcmlldHkgb2YKKyAgICAgICAgbGF5b3V0IHN5c3RlbXMgKGxpa2Ug
dGFibGVzLCBncmlkIG9yIGZsZXgpIGluIGRpZmZlcmVudCB3YXlzLiBBbHRob3VnaCBuYW1lcyBj
bGVhcmx5IHN0YXRlZCB0aGF0IHRoZXkgd2VyZSBjb250ZW50IHNpemVzCisgICAgICAgIHRoZSBy
ZWFsaXR5IGlzIHRoYXQgdGhleSB3ZXJlIHVzZWQgYXMgZWl0aGVyIGJvcmRlciBib3ggc2l6ZXMs
IGNvbnRlbnQgYm94IHNpemVzLCBvciBldmVuIGNvbnRlbnQgYm94ICsgc2Nyb2xsYmFyIHNpemVz
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgY29tbWVudCBpbiBSZW5kZXJCb3gg
d2hpY2ggd2FzIHByZWNpc2VseSBhZHZvY2F0aW5nIGZvciB0dXJuaW5nIG92ZXJyaWRlQ29udGVu
dExvZ2ljYWxYWFggYmFjayBpbnRvCisgICAgICAgIG92ZXJyaWRlTG9naWNhbFhYWC4gTW9zdCBv
ZiB0aGUgY2hhbmdlcyBvZiB0aGlzIENMIGFyZSBqdXN0IHJlbmFtZXMgYmVjYXVzZSB0aGUgY29k
ZSBoYXMgc3BlY2lmaWMgYnJhbmNoZXMgdG8gaGFuZGxlIHNwZWNpZmljCisgICAgICAgIHNpdHVh
dGlvbnMgc28gaXQgZGlkbid0IGFjdHVhbGx5IG1hdHRlciB3aGljaCBraW5kIG9mIHNpemUgd2Ug
d2VyZSBhY3R1YWxseSBzdG9yaW5nLiBIb3dldmVyIHRoZXJlIGFyZSBzb21lIHRyaWNreSByZXBs
YWNlbWVudHMKKyAgICAgICAgYXMgaW4gdGhlIGNhc2Ugb2YgZmxleCwgZ3JpZCBhbmQgdGFibGVz
IHRoYXQgcmVxdWlyZWQgY2FyZWZ1bCBtb2RpZmljYXRpb25zLiBJdCdzIGNyaXRpY2FsIGZvciB0
aGVzZSBsYXlvdXQgc3lzdGVtcyB0byBrbm93CisgICAgICAgIHdoaWNoIHNpemUgd2UncmUgc3Rv
cmluZyBpbiB0aGUgb3ZlcnJpZGVzIGJlY2F1c2UgdGhhdCB3b3VsZCBkZXRlcm1pbmUgd2hldGhl
ciBvciBub3Qgd2UgbmVlZCB0byBhZGQvc3Vic3RyYWN0IHRoaW5ncyBsaWtlIGJvcmRlcnMsCisg
ICAgICAgIHBhZGRpbmdzIG9yIHNjcm9sbGJhciBzaXplcyB0byB1c2UgdGhlbS4KKworICAgICAg
ICBOb3RlIHRoYXQgYXBhcnQgZnJvbSByZW5hbWluZyB0aGUgb3ZlcnJpZGVDb250ZW50TG9naWNh
bFhYWCB0byBvdmVycmlkZUxvZ2ljYWxYWFggd2UncmUgImFkZGluZyIgb3ZlcnJpZGVDb250ZW50
TG9naWNhbFhYWCB0byB0aGUKKyAgICAgICAgUmVuZGVyQm94IGludGVyZmFjZSwgc28gaXQgZ2l2
ZXMgdGhlIGltcHJlc3Npb24gdGhhdCB3ZSBhcmUgbm90IHJlbmFtaW5nIGl0LiBIb3dldmVyIHRo
ZSBuZXcgaW1wbGVtZW50YXRpb24gaXMgcXVpdGUgZGlmZmVyZW50LCB0aGV5IAorICAgICAgICBy
ZXRyaWV2ZSB0aGUgY29udGVudCBib3ggc2l6ZXMgZnJvbSB0aGUgb3ZlcnJpZGUgKGJvcmRlciBi
b3gpIHNpemVzIHdlIHN0b3JlLgorCisgICAgICAgIEFzIGEgbmljZSBzaWRlIGVmZmVjdCBhIG5l
dyB0ZXN0IGlzIHBhc3Npbmcgbm93IGFmdGVyIHRoZXNlIGNoYW5nZXMuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxl
eExpbmVMYXlvdXQ6OnVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KTogUmVuYW1lcy4KKyAgICAg
ICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojpsb2dpY2FsSGVpZ2h0Rm9y
Q2hpbGQgY29uc3QpOiBSZW5hbWVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUNoaWxkUHJlZmVycmVk
TG9naWNhbFdpZHRocyBjb25zdCk6IFJlbmFtZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6YXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbiBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpmaXRCb3JkZXJUb0xpbmVzSWZOZWVkZWQp
OiBSZW5hbWVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94OjpoYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQgY29uc3QpOiAgUmVu
YW1lZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6aGFzT3ZlcnJpZGVMb2dpY2FsV2lk
dGggY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0T3ZlcnJp
ZGVMb2dpY2FsSGVpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dE92ZXJyaWRlTG9naWNhbFdpZHRoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OmNsZWFyT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OmNsZWFyT3ZlcnJpZGVMb2dpY2FsV2lkdGgpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y2xlYXJPdmVycmlkZUNvbnRlbnRTaXplKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om92ZXJyaWRlTG9naWNhbFdpZHRoIGNvbnN0KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om92ZXJyaWRlTG9naWNhbEhlaWdo
dCBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwZXJwZW5kaWN1
bGFyQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCBjb25zdCk6IFJlbmFtZXMuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGhJbkZyYWdtZW50IGNvbnN0
KTogUmVuYW1lcyArIHJldHVybiB0aGUgc3RvcmVkIG92ZXJyaWRlIGJvcmRlciBib3ggd2lkdGgg
ZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNhY2hlSW50cmluc2ljQ29u
dGVudExvZ2ljYWxIZWlnaHRGb3JGbGV4SXRlbSBjb25zdCk6IFJlbmFtZXMuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0IGNvbnN0KTogUmVuYW1lcy4g
QXBhcnQgZnJvbSB0aGF0IG1vdmVkIHNvbWUgY29kZSBhcm91bmQgc28gYWxsIGJyYW5jaGVzIHdv
cmsgd2l0aAorICAgICAgICBib3JkZXIgYm94IHNpemVzIGluc3RlYWQgb2YgbWl4aW5nIHRoZW0g
d2l0aCBjb250ZW50IGJveCBzaXplcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29t
cHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0IGNvbnN0KTogUmV0dXJuIHRoZSBjb250ZW50IGJv
eCBzaXplIGFmdGVyIHJlbW92aW5nIGNvbXB1dGVkIHBhZGRpbmdzIGFuZAorICAgICAgICBib3Jk
ZXJzIGZyb20gdGhlIHN0b3JlZCBvdmVycmlkZSBzaXplLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcgY29uc3QpOiBSZW5hbWVz
ICsgY29tcHV0ZSB0aGUgYm9yZGVyYm94IHNpemUgZnJvbSB0aGUgc3RvcmVkCisgICAgICAgIG92
ZXJyaWRlIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2lj
YWxIZWlnaHRVc2luZyBjb25zdCk6IFJldHVybiB0aGUgY29udGVudCBib3ggc2l6ZSBhZnRlciBy
ZW1vdmluZyBjb21wdXRlZCBwYWRkaW5ncyBhbmQKKyAgICAgICAgYm9yZGVycyBmcm9tIHRoZSBz
dG9yZWQgb3ZlcnJpZGUgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6aGFzT3Zl
cnJpZGVDb250ZW50TG9naWNhbEhlaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6Omhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldE92ZXJyaWRlQ29udGVudExv
Z2ljYWxIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRP
dmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjpjbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxX
aWR0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om92ZXJyaWRlQ29u
dGVudExvZ2ljYWxXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6Om92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6b3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoIGNvbnN0KTogIk5ldyIgbWV0aG9kLiBJdCBl
eGlzdGVkIGJlZm9yZSBidXQgaXQgd2FzIHJlbmFtZWQgdG8gb3ZlcnJpZGVMb2dpY2FsV2lkdGgu
CisgICAgICAgIFdlJ3JlIGFkZGluZyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGltcGxlbWVudGF0
aW9uIGZvciB0aGlzIG9uZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b3ZlcnJpZGVD
b250ZW50TG9naWNhbEhlaWdodCBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lkdGhG
b3JDaGlsZCk6IE5ldyBtZXRob2QgdG8gcmV0cmlldmUgdGhlIGJvcmRlciBib3ggd2lkdGguCisg
ICAgICAgIChXZWJDb3JlOjpoZWlnaHRGb3JDaGlsZCk6IE5ldyBtZXRob2QgdG8gcmV0cmlldmUg
dGhlIGJvcmRlciBib3ggaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6Y29udGVudFdpZHRoRm9y
Q2hpbGQpOiBVc2Ugd2lkdGhGb3JDaGlsZCgpIHdoaWNoIGhhbmRsZXMgb3ZlcnJpZGVzLgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGVudEhlaWdodEZvckNoaWxkKTogVXNlIGhlaWdodEZvckNoaWxk
KCkgd2hpY2ggaGFuZGxlcyBvdmVycmlkZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3gpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3gp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
YXBwbHlMaW5lQ2xhbXApOiBEbyBub3Qgc3Vic3RyYWN0IGJvcmRlciBhbmQgcGFkZGluZyBiZWZv
cmUgc2V0dGluZyB0aGUgb3ZlcnJpZGUgYmVjYXVzZQorICAgICAgICB3ZSBub3cgc3RvcmUgdGhl
IGJvcmRlciBib3ggaGVpZ2h0IG5vdCB0aGUgY29udGVudCBib3ggaGVpZ2h0LgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbGV4aWJsZUJveDo6Y2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGggY29uc3QpOiBSZW5hbWVz
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmNyb3NzU2l6ZUZvclBlcmNl
bnRhZ2VSZXNvbHV0aW9uKTogUmV0dXJuIHRoZSBjb250ZW50IGJveCBzaXplIChkb2VzIG5vdCBp
bmNsdWRlIHNjcm9sbGJhcikuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6
bWFpblNpemVGb3JQZXJjZW50YWdlUmVzb2x1dGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxleGlibGVCb3g6OnNldE92ZXJyaWRlTWFpbkF4aXNDb250ZW50U2l6ZUZvckNo
aWxkKTogQWRkIGJvcmRlciBhbmQgcGFkZGluZyBiZWZvcmUgc2V0dGluZyB0aGUgb3ZlcnJpZGUu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6YXBwbHlTdHJldGNoQWxpZ25t
ZW50VG9DaGlsZCk6IERvIG5vdCBzdWJzdHJhY3QgYm9yZGVyIGFuZCBwYWRkaW5nIGJlZm9yZSBz
ZXR0aW5nIHRoZSBvdmVycmlkZSBhcyB3ZSBhcmUKKyAgICAgICAgc3RvcmluZyBib3JkZXIgYm94
IHNpemVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKTogUmVuYW1lcy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvQ2hpbGRJZk5lZWRlZCk6IFJl
bmFtZXMgKyBkbyBub3Qgc3Vic3RyYWN0IGJvcmRlciBhbmQgcGFkZGluZyBiZWZvcmUgc2V0dGlu
ZyB0aGUgb3ZlcnJpZGUgCisgICAgICAgIGFzIHdlIGFyZSBzdG9yaW5nIGJvcmRlciBib3ggc2l6
ZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclJ1YnlCYXNlOjphZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzIGNv
bnN0KTogUmVuYW1lcy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnVwZGF0ZUxvZ2ljYWxXaWR0aCk6IFJlbmFtZXMu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZUNlbGw6OnNldE92ZXJyaWRlTG9naWNhbEhlaWdodEZyb21Sb3dIZWln
aHQpOiBSZW5hbWVzICsgZG8gbm90IHN1YnN0cmFjdCBib3JkZXIgYW5kIHBhZGRpbmcgYmVmb3Jl
IHNldHRpbmcgdGhlIG92ZXJyaWRlIAorICAgICAgICBhcyB3ZSBhcmUgc3RvcmluZyBib3JkZXIg
Ym94IHNpemVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpzZXRPdmVycmlk
ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0RnJvbVJvd0hlaWdodCk6IERlbGV0ZWQuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOiBSZW5hbWVzLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVT
ZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCk6IFJlbmFtZXMuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUYWJsZVNlY3Rpb246OnJlbGF5b3V0Q2VsbElmRmxleGVkKTogRGl0dG8uCisKIDIw
MjAtMTAtMDggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJRkNdIFVzaW5nIHRoZSBtaXh0dXJlIG9mIExheW91dFVuaXQgYW5kIElubGluZUxheW91dFVu
aXQgdHlwZXMgY2F1c2VzIEFTU0VSVCh2ZXJ0aWNhbEdhcCA+PSAwKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKaW5kZXggZTdkMWUzNGU4MGY3MjFm
NWEzNDIxNWU5MmYwYzE5YjdkODc1N2IwYy4uZjMwN2U4NTNkYWRjNjk0MDJlYTZjMWJkNjMzZGJi
Y2Q0N2ZjZGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhM
aW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVM
YXlvdXQuY3BwCkBAIC01OTAsMTEgKzU5MCwxMSBAQCB2b2lkIENvbXBsZXhMaW5lTGF5b3V0Ojp1
cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dChSZW5kZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUgog
ICAgICAgICB0b3RhbE9wcG9ydHVuaXRpZXNJblJ1biArPSBvcHBvcnR1bml0aWVzSW5SdW47CiAg
ICAgfQogCi0gICAgQVNTRVJUKCFydWJ5UnVuLmhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0
aCgpKTsKKyAgICBBU1NFUlQoIXJ1YnlSdW4uaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSk7CiAg
ICAgZmxvYXQgbmV3QmFzZVdpZHRoID0gcnVieVJ1bi5sb2dpY2FsV2lkdGgoKSArIHRvdGFsRXhw
YW5zaW9uICsgbV9mbG93Lm1hcmdpblN0YXJ0Rm9yQ2hpbGQocnVieVJ1bikgKyBtX2Zsb3cubWFy
Z2luRW5kRm9yQ2hpbGQocnVieVJ1bik7CiAgICAgZmxvYXQgbmV3UnVieVJ1bldpZHRoID0gcnVi
eVJ1bi5sb2dpY2FsV2lkdGgoKSArIHRvdGFsRXhwYW5zaW9uOwogICAgIHJ1YnlCYXNlLnNldElu
aXRpYWxPZmZzZXQoKG5ld1J1YnlSdW5XaWR0aCAtIG5ld0Jhc2VXaWR0aCkgLyAyKTsKLSAgICBy
dWJ5UnVuLnNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aChMYXlvdXRVbml0KG5ld1J1YnlS
dW5XaWR0aCkpOworICAgIHJ1YnlSdW4uc2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgoTGF5b3V0VW5p
dChuZXdSdWJ5UnVuV2lkdGgpKTsKICAgICBydWJ5UnVuLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5
VGhpcyk7CiAgICAgcm9vdEJveC5tYXJrRGlydHkoKTsKICAgICBpZiAoUmVuZGVyUnVieVRleHQq
IHJ1YnlUZXh0ID0gcnVieVJ1bi5ydWJ5VGV4dCgpKSB7CkBAIC02MDIsNyArNjAyLDcgQEAgdm9p
ZCBDb21wbGV4TGluZUxheW91dDo6dXBkYXRlUnVieUZvckp1c3RpZmllZFRleHQoUmVuZGVyUnVi
eVJ1biYgcnVieVJ1biwgQmlkaVIKICAgICAgICAgICAgIHRleHRSb290Qm94LT5tYXJrRGlydHko
KTsKICAgICB9CiAgICAgcnVieVJ1bi5sYXlvdXRCbG9jayh0cnVlKTsKLSAgICBydWJ5UnVuLmNs
ZWFyT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCk7CisgICAgcnVieVJ1bi5jbGVhck92ZXJy
aWRlTG9naWNhbFdpZHRoKCk7CiAgICAgci5ib3goKS0+c2V0RXhwYW5zaW9uKG5ld1J1YnlSdW5X
aWR0aCAtIHIuYm94KCktPmxvZ2ljYWxXaWR0aCgpKTsKIAogICAgIHRvdGFsTG9naWNhbFdpZHRo
ICs9IHRvdGFsRXhwYW5zaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAppbmRleCBmMmM2MDU3YmU4YjlhY2QwNzkxMGZh
OWYyODFhZTZmYjg4ODRhYWZhLi5mOTAyMzliNzFlZWNmYWUyMmNkNDdiMDY0ZjVkYTk3ODg1NmFk
Y2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcApAQCAtNzYzLDcgKzc2Myw3IEBAIExheW91dFVuaXQgR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6OmxvZ2ljYWxIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gm
IGNoCiAKICAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIHRoZSBzdHJldGNoZWQgaGVpZ2h0IHRvIHBy
b3Blcmx5IGNvbXB1dGUgbG9naWNhbCBoZWlnaHQgZHVyaW5nIGxheW91dC4KICAgICBpZiAoY2hp
bGQubmVlZHNMYXlvdXQoKSkKLSAgICAgICAgY2hpbGQuY2xlYXJPdmVycmlkZUNvbnRlbnRMb2dp
Y2FsSGVpZ2h0KCk7CisgICAgICAgIGNoaWxkLmNsZWFyT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCk7
CiAKICAgICBjaGlsZC5sYXlvdXRJZk5lZWRlZCgpOwogICAgIHJldHVybiBjaGlsZC5sb2dpY2Fs
SGVpZ2h0KCkgKyBHcmlkTGF5b3V0RnVuY3Rpb25zOjptYXJnaW5Mb2dpY2FsU2l6ZUZvckNoaWxk
KCpyZW5kZXJHcmlkKCksIGNoaWxkQmxvY2tEaXJlY3Rpb24sIGNoaWxkKSArIG1fYWxnb3JpdGht
LmJhc2VsaW5lT2Zmc2V0Rm9yQ2hpbGQoY2hpbGQsIGdyaWRBeGlzRm9yRGlyZWN0aW9uKGRpcmVj
dGlvbigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA0
YmIwMmU5OWUwZjY3ZWNjNTA1NmJiYTk2ZmY5OTJjZTc0MzMwZDU1Li45ZmExYmU0NDAwMGRiMzk4
OWVlMDM4NTU3YWFmYzA2ZjhmZTgyZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKQEAgLTI0MjUsMTAgKzI0MjUsMTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZUNoaWxkUHJlZmVycmVkTG9naWNhbFdpZHRocyhSZW5kZXJPYmplY3QmIGNoaWxkLCBMYXlv
dXQKICAgICBpZiAoY2hpbGQuaXNCb3goKSkgewogICAgICAgICBhdXRvJiBib3ggPSBkb3duY2Fz
dDxSZW5kZXJCb3g+KGNoaWxkKTsKICAgICAgICAgaWYgKGJveC5pc0ZsZXhJdGVtKCkpIHsKLSAg
ICAgICAgICAgIGlmIChib3guaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAg
ICAgICAgICAgICAgIG92ZXJyaWRlSGVpZ2h0ID0gT3B0aW9uYWw8TGF5b3V0VW5pdD4oYm94Lm92
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSk7Ci0gICAgICAgICAgICBpZiAoYm94Lmhhc092
ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpKQotICAgICAgICAgICAgICAgIG92ZXJyaWRlV2lk
dGggPSBPcHRpb25hbDxMYXlvdXRVbml0Pihib3gub3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRo
KCkpOworICAgICAgICAgICAgaWYgKGJveC5oYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSkKKyAg
ICAgICAgICAgICAgICBvdmVycmlkZUhlaWdodCA9IE9wdGlvbmFsPExheW91dFVuaXQ+KGJveC5v
dmVycmlkZUxvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgICAgICBpZiAoYm94Lmhhc092ZXJyaWRl
TG9naWNhbFdpZHRoKCkpCisgICAgICAgICAgICAgICAgb3ZlcnJpZGVXaWR0aCA9IE9wdGlvbmFs
PExheW91dFVuaXQ+KGJveC5vdmVycmlkZUxvZ2ljYWxXaWR0aCgpKTsKICAgICAgICAgICAgIGJv
eC5jbGVhck92ZXJyaWRlQ29udGVudFNpemUoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI0Mzks
OSArMjQzOSw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVDaGlsZFByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoUmVuZGVyT2JqZWN0JiBjaGlsZCwgTGF5b3V0CiAgICAgaWYgKGNoaWxkLmlzQm94
KCkpIHsKICAgICAgICAgYXV0byYgYm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PihjaGlsZCk7CiAg
ICAgICAgIGlmIChvdmVycmlkZUhlaWdodCkKLSAgICAgICAgICAgIGJveC5zZXRPdmVycmlkZUNv
bnRlbnRMb2dpY2FsSGVpZ2h0KG92ZXJyaWRlSGVpZ2h0LnZhbHVlKCkpOworICAgICAgICAgICAg
Ym94LnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChvdmVycmlkZUhlaWdodC52YWx1ZSgpKTsKICAg
ICAgICAgaWYgKG92ZXJyaWRlV2lkdGgpCi0gICAgICAgICAgICBib3guc2V0T3ZlcnJpZGVDb250
ZW50TG9naWNhbFdpZHRoKG92ZXJyaWRlV2lkdGgudmFsdWUoKSk7CisgICAgICAgICAgICBib3gu
c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgob3ZlcnJpZGVXaWR0aC52YWx1ZSgpKTsKICAgICB9CiAK
ICAgICAvLyBGb3Igbm9uLXJlcGxhY2VkIGJsb2NrcyBpZiB0aGUgaW5saW5lIHNpemUgaXMgbWlu
fG1heC1jb250ZW50IG9yIGEgZGVmaW5pdGUKQEAgLTMyMTksOCArMzIxOSw4IEBAIE9wdGlvbmFs
PExheW91dFVuaXQ+IFJlbmRlckJsb2NrOjphdmFpbGFibGVMb2dpY2FsSGVpZ2h0Rm9yUGVyY2Vu
dGFnZUNvbXB1dGF0aW9uCiAgICAgCiAgICAgaWYgKHN0cmV0Y2hlZEZsZXhIZWlnaHQpCiAgICAg
ICAgIGF2YWlsYWJsZUhlaWdodCA9IHN0cmV0Y2hlZEZsZXhIZWlnaHQ7Ci0gICAgZWxzZSBpZiAo
aXNHcmlkSXRlbSgpICYmIGhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAgICAg
ICAgYXZhaWxhYmxlSGVpZ2h0ID0gb3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpOworICAg
IGVsc2UgaWYgKGlzR3JpZEl0ZW0oKSAmJiBoYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSkKKyAg
ICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gb3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgZWxz
ZSBpZiAoc3R5bGVUb1VzZS5sb2dpY2FsSGVpZ2h0KCkuaXNGaXhlZCgpKSB7CiAgICAgICAgIExh
eW91dFVuaXQgY29udGVudEJveEhlaWdodCA9IGFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0
Rm9yQm94U2l6aW5nKChMYXlvdXRVbml0KXN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpLnZhbHVl
KCkpOwogICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBjb25zdHJhaW5D
b250ZW50Qm94TG9naWNhbEhlaWdodEJ5TWluTWF4KGNvbnRlbnRCb3hIZWlnaHQgLSBzY3JvbGxi
YXJMb2dpY2FsSGVpZ2h0KCksIFdURjo6bnVsbG9wdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCBlYjEwYWVhYjg4NWFjMzQ4MTE2YTY1MjRi
YzVhNjUxMmYyMmVhMTY5Li44NmE0OWIwOGJkN2YwOGZmNmJiODMyMWU5M2RmY2RhNWVmZDJlNGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAt
MzA0Myw3ICszMDQzLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEZvckJvcmRlckZp
dChMYXlvdXRVbml0IHgsIExheW91dFVuaXQmIGxlZnQsIExheW91dFUKIAogdm9pZCBSZW5kZXJC
bG9ja0Zsb3c6OmZpdEJvcmRlclRvTGluZXNJZk5lZWRlZCgpCiB7Ci0gICAgaWYgKHN0eWxlKCku
Ym9yZGVyRml0KCkgPT0gQm9yZGVyRml0OjpCb3JkZXIgfHwgaGFzT3ZlcnJpZGVDb250ZW50TG9n
aWNhbFdpZHRoKCkpCisgICAgaWYgKHN0eWxlKCkuYm9yZGVyRml0KCkgPT0gQm9yZGVyRml0OjpC
b3JkZXIgfHwgaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gV2FsayBhbnkgbm9ybWFsIGZsb3cgbGluZXMgdG8gc251Z2x5IGZpdC4KQEAgLTMwNjEs
MTAgKzMwNjEsMTAgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmZpdEJvcmRlclRvTGluZXNJZk5l
ZWRlZCgpCiAgICAgTGF5b3V0VW5pdCBuZXdDb250ZW50V2lkdGggPSByaWdodCAtIGxlZnQ7CiAg
ICAgaWYgKG5ld0NvbnRlbnRXaWR0aCA9PSBvbGRXaWR0aCkKICAgICAgICAgcmV0dXJuOwotICAg
IAotICAgIHNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aChuZXdDb250ZW50V2lkdGgpOwor
CisgICAgc2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgobmV3Q29udGVudFdpZHRoKTsKICAgICBsYXlv
dXRCbG9jayhmYWxzZSk7Ci0gICAgY2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKTsK
KyAgICBjbGVhck92ZXJyaWRlTG9naWNhbFdpZHRoKCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjptYXJrTGluZXNEaXJ0eUluQmxvY2tSYW5nZShMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExh
eW91dFVuaXQgbG9naWNhbEJvdHRvbSwgUm9vdElubGluZUJveCogaGlnaGVzdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggMDQ3Zjg1YzI3NDlmNDVmZGY4MmJlMzgx
MDc4ZDRiNWE5NTA5YzIyYi4uN2VjNWEzNWFlOTM4MzlkZGMyNWNjZDhlYjk0NjNhZmE2ODVlNDJl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTk0LDggKzk0LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVXNlZCBieSBmbGV4aWJsZSBib3hl
cyB3aGVuIGZsZXhpbmcgdGhpcyBlbGVtZW50IGFuZCBieSB0YWJsZSBjZWxscy4KIHR5cGVkZWYg
V1RGOjpIYXNoTWFwPGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQ+IE92ZXJyaWRlU2l6ZU1h
cDsKLXN0YXRpYyBPdmVycmlkZVNpemVNYXAqIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0
TWFwID0gbnVsbHB0cjsKLXN0YXRpYyBPdmVycmlkZVNpemVNYXAqIGdPdmVycmlkZUNvbnRlbnRM
b2dpY2FsV2lkdGhNYXAgPSBudWxscHRyOworc3RhdGljIE92ZXJyaWRlU2l6ZU1hcCogZ092ZXJy
aWRlTG9naWNhbEhlaWdodE1hcCA9IG51bGxwdHI7CitzdGF0aWMgT3ZlcnJpZGVTaXplTWFwKiBn
T3ZlcnJpZGVMb2dpY2FsV2lkdGhNYXAgPSBudWxscHRyOwogCiAvLyBVc2VkIGJ5IGdyaWQgZWxl
bWVudHMgdG8gcHJvcGVybHkgc2l6ZSB0aGVpciBncmlkIGl0ZW1zLgogLy8gRklYTUU6IFdlIHNo
b3VsZCBzdG9yZSB0aGVzZSBiYXNlZCBvbiBwaHlzaWNhbCBkaXJlY3Rpb24uCkBAIC0xMDgyLDU4
ICsxMDgyLDU4IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjptYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGgoKSBjb25zdAogICAgIHJldHVybiBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIH0KIAot
Ym9vbCBSZW5kZXJCb3g6Omhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdAor
Ym9vbCBSZW5kZXJCb3g6Omhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0TWFwICYmIGdPdmVycmlkZUNvbnRl
bnRMb2dpY2FsSGVpZ2h0TWFwLT5jb250YWlucyh0aGlzKTsKKyAgICByZXR1cm4gZ092ZXJyaWRl
TG9naWNhbEhlaWdodE1hcCAmJiBnT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0TWFwLT5jb250YWlucyh0
aGlzKTsKIH0KIAotYm9vbCBSZW5kZXJCb3g6Omhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0
aCgpIGNvbnN0Citib29sIFJlbmRlckJveDo6aGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSBjb25z
dAogewotICAgIHJldHVybiBnT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoTWFwICYmIGdPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsV2lkdGhNYXAtPmNvbnRhaW5zKHRoaXMpOworICAgIHJldHVybiBn
T3ZlcnJpZGVMb2dpY2FsV2lkdGhNYXAgJiYgZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFwLT5jb250
YWlucyh0aGlzKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldE92ZXJyaWRlQ29udGVudExvZ2lj
YWxIZWlnaHQoTGF5b3V0VW5pdCBoZWlnaHQpCit2b2lkIFJlbmRlckJveDo6c2V0T3ZlcnJpZGVM
b2dpY2FsSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KQogewotICAgIGlmICghZ092ZXJyaWRlQ29u
dGVudExvZ2ljYWxIZWlnaHRNYXApCi0gICAgICAgIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVp
Z2h0TWFwID0gbmV3IE92ZXJyaWRlU2l6ZU1hcCgpOwotICAgIGdPdmVycmlkZUNvbnRlbnRMb2dp
Y2FsSGVpZ2h0TWFwLT5zZXQodGhpcywgaGVpZ2h0KTsKKyAgICBpZiAoIWdPdmVycmlkZUxvZ2lj
YWxIZWlnaHRNYXApCisgICAgICAgIGdPdmVycmlkZUxvZ2ljYWxIZWlnaHRNYXAgPSBuZXcgT3Zl
cnJpZGVTaXplTWFwKCk7CisgICAgZ092ZXJyaWRlTG9naWNhbEhlaWdodE1hcC0+c2V0KHRoaXMs
IGhlaWdodCk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRPdmVycmlkZUNvbnRlbnRMb2dpY2Fs
V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKK3ZvaWQgUmVuZGVyQm94OjpzZXRPdmVycmlkZUxvZ2lj
YWxXaWR0aChMYXlvdXRVbml0IHdpZHRoKQogewotICAgIGlmICghZ092ZXJyaWRlQ29udGVudExv
Z2ljYWxXaWR0aE1hcCkKLSAgICAgICAgZ092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aE1hcCA9
IG5ldyBPdmVycmlkZVNpemVNYXAoKTsKLSAgICBnT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRo
TWFwLT5zZXQodGhpcywgd2lkdGgpOworICAgIGlmICghZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFw
KQorICAgICAgICBnT3ZlcnJpZGVMb2dpY2FsV2lkdGhNYXAgPSBuZXcgT3ZlcnJpZGVTaXplTWFw
KCk7CisgICAgZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFwLT5zZXQodGhpcywgd2lkdGgpOwogfQog
Ci12b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkKK3Zv
aWQgUmVuZGVyQm94OjpjbGVhck92ZXJyaWRlTG9naWNhbEhlaWdodCgpCiB7Ci0gICAgaWYgKGdP
dmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0TWFwKQotICAgICAgICBnT3ZlcnJpZGVDb250ZW50
TG9naWNhbEhlaWdodE1hcC0+cmVtb3ZlKHRoaXMpOworICAgIGlmIChnT3ZlcnJpZGVMb2dpY2Fs
SGVpZ2h0TWFwKQorICAgICAgICBnT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0TWFwLT5yZW1vdmUodGhp
cyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpjbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0
aCgpCit2b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVycmlkZUxvZ2ljYWxXaWR0aCgpCiB7Ci0gICAg
aWYgKGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGhNYXApCi0gICAgICAgIGdPdmVycmlkZUNv
bnRlbnRMb2dpY2FsV2lkdGhNYXAtPnJlbW92ZSh0aGlzKTsKKyAgICBpZiAoZ092ZXJyaWRlTG9n
aWNhbFdpZHRoTWFwKQorICAgICAgICBnT3ZlcnJpZGVMb2dpY2FsV2lkdGhNYXAtPnJlbW92ZSh0
aGlzKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OmNsZWFyT3ZlcnJpZGVDb250ZW50U2l6ZSgpCiB7
Ci0gICAgY2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgY2xlYXJPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKKyAgICBjbGVhck92ZXJyaWRlTG9naWNhbEhlaWdo
dCgpOworICAgIGNsZWFyT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJCb3g6Om92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlckJveDo6b3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSBjb25zdAogewotICAgIEFTU0VSVCho
YXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSk7Ci0gICAgcmV0dXJuIGdPdmVycmlkZUNv
bnRlbnRMb2dpY2FsV2lkdGhNYXAtPmdldCh0aGlzKTsKKyAgICBBU1NFUlQoaGFzT3ZlcnJpZGVM
b2dpY2FsV2lkdGgoKSk7CisgICAgcmV0dXJuIGdPdmVycmlkZUxvZ2ljYWxXaWR0aE1hcC0+Z2V0
KHRoaXMpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6b3ZlcnJpZGVDb250ZW50TG9naWNh
bEhlaWdodCgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6b3ZlcnJpZGVMb2dpY2FsSGVp
Z2h0KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdo
dCgpKTsKLSAgICByZXR1cm4gZ092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHRNYXAtPmdldCh0
aGlzKTsKKyAgICBBU1NFUlQoaGFzT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkpOworICAgIHJldHVy
biBnT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0TWFwLT5nZXQodGhpcyk7CiB9CiAKIE9wdGlvbmFsPExh
eW91dFVuaXQ+IFJlbmRlckJveDo6b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50V2lkdGgo
KSBjb25zdApAQCAtMjAyNiw3ICsyMDI2LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBl
bmRpY3VsYXJDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICB9CiAKICAg
ICBSZW5kZXJCbG9jayogY2IgPSBjb250YWluaW5nQmxvY2soKTsKLSAgICBpZiAoY2ItPmhhc092
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKKyAgICBpZiAoY2ItPmhhc092ZXJyaWRlTG9n
aWNhbEhlaWdodCgpKQogICAgICAgICByZXR1cm4gY2ItPm92ZXJyaWRlQ29udGVudExvZ2ljYWxI
ZWlnaHQoKTsKIAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBjb250YWluaW5nQmxvY2tTdHlsZSA9
IGNiLT5zdHlsZSgpOwpAQCAtMjQzMyw4ICsyNDMzLDggQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1
dGVMb2dpY2FsV2lkdGhJbkZyYWdtZW50KExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29t
cHUKICAgICAvLyB3aWR0aC4gIFVzZSB0aGUgd2lkdGggZnJvbSB0aGUgc3R5bGUgY29udGV4dC4K
ICAgICAvLyBGSVhNRTogQWNjb3VudCBmb3IgYmxvY2stZmxvdyBpbiBmbGV4aWJsZSBib3hlcy4K
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MTgKLSAg
ICBpZiAoaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkgJiYgKGlzUnVieVJ1bigpIHx8
IHN0eWxlKCkuYm9yZGVyRml0KCkgPT0gQm9yZGVyRml0OjpMaW5lcyB8fCAocGFyZW50KCktPmlz
RmxleGlibGVCb3hJbmNsdWRpbmdEZXByZWNhdGVkKCkpKSkgewotICAgICAgICBjb21wdXRlZFZh
bHVlcy5tX2V4dGVudCA9IG92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpICsgYm9yZGVyQW5k
UGFkZGluZ0xvZ2ljYWxXaWR0aCgpOworICAgIGlmIChoYXNPdmVycmlkZUxvZ2ljYWxXaWR0aCgp
ICYmIChpc1J1YnlSdW4oKSB8fCBzdHlsZSgpLmJvcmRlckZpdCgpID09IEJvcmRlckZpdDo6TGlu
ZXMgfHwgKHBhcmVudCgpLT5pc0ZsZXhpYmxlQm94SW5jbHVkaW5nRGVwcmVjYXRlZCgpKSkpIHsK
KyAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBvdmVycmlkZUxvZ2ljYWxXaWR0aCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNzc2LDEwICsyNzc2LDEwIEBAIHN0YXRp
YyBib29sIHNob3VsZEZsaXBCZWZvcmVBZnRlck1hcmdpbnMoY29uc3QgUmVuZGVyU3R5bGUmIGNv
bnRhaW5pbmdCbG9ja1N0eWxlCiAKIHZvaWQgUmVuZGVyQm94OjpjYWNoZUludHJpbnNpY0NvbnRl
bnRMb2dpY2FsSGVpZ2h0Rm9yRmxleEl0ZW0oTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0CiB7Ci0g
ICAgLy8gRklYTUU6IGl0IHNob3VsZCBiZSBlbm91Z2ggd2l0aCBjaGVja2luZyBoYXNPdmVycmlk
ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgYXMgdGhpcyBsb2dpYyBjb3VsZCBiZSBzaGFyZWQKKyAg
ICAvLyBGSVhNRTogaXQgc2hvdWxkIGJlIGVub3VnaCB3aXRoIGNoZWNraW5nIGhhc092ZXJyaWRl
TG9naWNhbEhlaWdodCgpIGFzIHRoaXMgbG9naWMgY291bGQgYmUgc2hhcmVkCiAgICAgLy8gYnkg
YW55IGxheW91dCBzeXN0ZW0gdXNpbmcgb3ZlcnJpZGVzIGxpa2UgZ3JpZCBvciBmbGV4LiBIb3dl
dmVyIHRoaXMgY2F1c2VzIGEgbmV2ZXIgZW5kaW5nIHNlcXVlbmNlIG9mIGNhbGxzCiAgICAgLy8g
YmV0d2VlbiBsYXlvdXRCbG9jaygpIDwtPiByZWxheW91dFRvQXZvaWRXaWRvd3MoKS4KLSAgICBp
ZiAoaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8ICFwYXJlbnQoKSB8fCAhcGFy
ZW50KCktPmlzRmxleGlibGVCb3goKSB8fCBoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0
KCkpCisgICAgaWYgKGlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCAhcGFyZW50
KCkgfHwgIXBhcmVudCgpLT5pc0ZsZXhpYmxlQm94KCkgfHwgaGFzT3ZlcnJpZGVMb2dpY2FsSGVp
Z2h0KCkpCiAgICAgICAgIHJldHVybjsKICAgICBkb3duY2FzdDxSZW5kZXJGbGV4aWJsZUJveD4o
cGFyZW50KCkpLT5zZXRDYWNoZWRDaGlsZEludHJpbnNpY0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCp0
aGlzLCBoZWlnaHQpOwogfQpAQCAtMjg0MCwxMCArMjg0MCwxMCBAQCBSZW5kZXJCb3g6OkxvZ2lj
YWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExh
eW91dFVuaQogICAgICAgICAvLyBncmFiIG91ciBjYWNoZWQgZmxleGlibGUgaGVpZ2h0LgogICAg
ICAgICAvLyBGSVhNRTogQWNjb3VudCBmb3IgYmxvY2stZmxvdyBpbiBmbGV4aWJsZSBib3hlcy4K
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NDE4
Ci0gICAgICAgIGlmIChoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgJiYgKHBhcmVu
dCgpLT5pc0ZsZXhpYmxlQm94SW5jbHVkaW5nRGVwcmVjYXRlZCgpIHx8IHBhcmVudCgpLT5pc1Jl
bmRlckdyaWQoKSkpIHsKLSAgICAgICAgICAgIGggPSBMZW5ndGgob3ZlcnJpZGVDb250ZW50TG9n
aWNhbEhlaWdodCgpLCBGaXhlZCk7CisgICAgICAgIGlmIChoYXNPdmVycmlkZUxvZ2ljYWxIZWln
aHQoKSAmJiAocGFyZW50KCktPmlzRmxleGlibGVCb3hJbmNsdWRpbmdEZXByZWNhdGVkKCkgfHwg
cGFyZW50KCktPmlzUmVuZGVyR3JpZCgpKSkgeworICAgICAgICAgICAgaCA9IExlbmd0aChvdmVy
cmlkZUxvZ2ljYWxIZWlnaHQoKSwgRml4ZWQpOwogICAgICAgICB9IGVsc2UgaWYgKHRyZWF0QXNS
ZXBsYWNlZCkKLSAgICAgICAgICAgIGggPSBMZW5ndGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhl
aWdodCgpLCBGaXhlZCk7CisgICAgICAgICAgICBoID0gTGVuZ3RoKGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxIZWlnaHQoKSArIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksIEZpeGVkKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBoID0gc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCk7
CiAgICAgICAgICAgICBjaGVja01pbk1heEhlaWdodCA9IHRydWU7CkBAIC0yODU0LDcgKzI4NTQs
NyBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJCb3g6OmNv
bXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaQogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MTgKICAgICAgICAgaWYgKGguaXNBdXRvKCkgJiYg
aXM8UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94PigqcGFyZW50KCkpICYmIHBhcmVudCgpLT5z
dHlsZSgpLmJveE9yaWVudCgpID09IEJveE9yaWVudDo6SG9yaXpvbnRhbAogICAgICAgICAgICAg
ICAgICYmIGRvd25jYXN0PFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveD4oKnBhcmVudCgpKS5p
c1N0cmV0Y2hpbmdDaGlsZHJlbigpKSB7Ci0gICAgICAgICAgICBoID0gTGVuZ3RoKHBhcmVudEJv
eCgpLT5jb250ZW50TG9naWNhbEhlaWdodCgpIC0gbWFyZ2luQmVmb3JlKCkgLSBtYXJnaW5BZnRl
cigpIC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSwgRml4ZWQpOworICAgICAgICAg
ICAgaCA9IExlbmd0aChwYXJlbnRCb3goKS0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSAtIG1hcmdp
bkJlZm9yZSgpIC0gbWFyZ2luQWZ0ZXIoKSwgRml4ZWQpOwogICAgICAgICAgICAgY2hlY2tNaW5N
YXhIZWlnaHQgPSBmYWxzZTsKICAgICAgICAgfQogCkBAIC0yODY0LDExICsyODY0LDggQEAgUmVu
ZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyQm94Ojpjb21wdXRlTG9n
aWNhbEhlaWdodChMYXlvdXRVbmkKICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IGNvbXB1dGVM
b2dpY2FsSGVpZ2h0VXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS5sb2dpY2FsSGVp
Z2h0KCksIGludHJpbnNpY0hlaWdodCkudmFsdWVPcihjb21wdXRlZFZhbHVlcy5tX2V4dGVudCk7
CiAgICAgICAgICAgICBoZWlnaHRSZXN1bHQgPSBjb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5N
YXgoaGVpZ2h0UmVzdWx0LCBpbnRyaW5zaWNIZWlnaHQpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgLy8gVGhlIG9ubHkgdGltZXMgd2UgZG9uJ3QgY2hlY2sgbWluL21heCBoZWlnaHQg
YXJlIHdoZW4gYSBmaXhlZCBsZW5ndGggaGFzCi0gICAgICAgICAgICAvLyBiZWVuIGdpdmVuIGFz
IGFuIG92ZXJyaWRlLiAgSnVzdCB1c2UgdGhhdC4gIFRoZSB2YWx1ZSBoYXMgYWxyZWFkeSBiZWVu
IGFkanVzdGVkCi0gICAgICAgICAgICAvLyBmb3IgYm94LXNpemluZy4KICAgICAgICAgICAgIEFT
U0VSVChoLmlzRml4ZWQoKSk7Ci0gICAgICAgICAgICBoZWlnaHRSZXN1bHQgPSBoLnZhbHVlKCkg
KyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgaGVpZ2h0UmVz
dWx0ID0gaC52YWx1ZSgpOwogICAgICAgICB9CiAKICAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9l
eHRlbnQgPSBoZWlnaHRSZXN1bHQ7CkBAIC0zMDM1LDEwICszMDMyLDEwIEBAIE9wdGlvbmFsPExh
eW91dFVuaXQ+IFJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0
IExlbmd0aCYgaGVpCiAgICAgICAgICAgICAvLyBUYWJsZSBjZWxscyB2aW9sYXRlIHdoYXQgdGhl
IENTUyBzcGVjIHNheXMgdG8gZG8gd2l0aCBoZWlnaHRzLiBCYXNpY2FsbHkgd2UKICAgICAgICAg
ICAgIC8vIGRvbid0IGNhcmUgaWYgdGhlIGNlbGwgc3BlY2lmaWVkIGEgaGVpZ2h0IG9yIG5vdC4g
V2UganVzdCBhbHdheXMgbWFrZSBvdXJzZWx2ZXMKICAgICAgICAgICAgIC8vIGJlIGEgcGVyY2Vu
dGFnZSBvZiB0aGUgY2VsbCdzIGN1cnJlbnQgY29udGVudCBoZWlnaHQuCi0gICAgICAgICAgICBp
ZiAoIWNiLT5oYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgICAgICBp
ZiAoIWNiLT5oYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdGFibGVDZWxsU2hvdWxkSGF2ZVplcm9Jbml0aWFsU2l6ZSgqY2IsICp0aGlzLCBzY3JvbGxz
T3ZlcmZsb3dZKCkpID8gT3B0aW9uYWw8TGF5b3V0VW5pdD4oMCkgOiBXVEY6Om51bGxvcHQ7CiAK
LSAgICAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGNiLT5vdmVycmlkZUNvbnRlbnRMb2dpY2Fs
SGVpZ2h0KCk7CisgICAgICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBjYi0+b3ZlcnJpZGVMb2dp
Y2FsSGVpZ2h0KCkgLSBjYi0+Y29tcHV0ZWRDU1NQYWRkaW5nQmVmb3JlKCkgLSBjYi0+Y29tcHV0
ZWRDU1NQYWRkaW5nQWZ0ZXIoKSAtIGNiLT5ib3JkZXJCZWZvcmUoKSAtIGNiLT5ib3JkZXJBZnRl
cigpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGNi
LT5hdmFpbGFibGVMb2dpY2FsSGVpZ2h0Rm9yUGVyY2VudGFnZUNvbXB1dGF0aW9uKCk7CkBAIC0z
MDQ4LDEzICszMDQ1LDEzIEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6Y29tcHV0
ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0IExlbmd0aCYgaGVpCiAKICAgICBMYXlvdXRV
bml0IHJlc3VsdCA9IHZhbHVlRm9yTGVuZ3RoKGhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0LnZhbHVl
KCkgLSByb290TWFyZ2luQm9yZGVyUGFkZGluZ0hlaWdodCArIChpc1RhYmxlKCkgJiYgaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkgPyBjYi0+cGFkZGluZ0JlZm9yZSgpICsgY2ItPnBhZGRpbmdBZnRl
cigpIDogMF9sdSkpOwogICAgIAotICAgIC8vIHxvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0
fCBpcyB0aGUgbWF4aW11bSBoZWlnaHQgbWFkZSBhdmFpbGFibGUgYnkgdGhlCisgICAgLy8gfG92
ZXJyaWRlTG9naWNhbEhlaWdodHwgaXMgdGhlIG1heGltdW0gaGVpZ2h0IG1hZGUgYXZhaWxhYmxl
IGJ5IHRoZQogICAgIC8vIGNlbGwgdG8gaXRzIHBlcmNlbnQgaGVpZ2h0IGNoaWxkcmVuIHdoZW4g
d2UgZGVjaWRlIHRoZXkgY2FuIGRldGVybWluZSB0aGUKICAgICAvLyBoZWlnaHQgb2YgdGhlIGNl
bGwuIElmIHRoZSBwZXJjZW50IGhlaWdodCBjaGlsZCBpcyBib3gtc2l6aW5nOmNvbnRlbnQtYm94
CiAgICAgLy8gdGhlbiB3ZSBtdXN0IHN1YnRyYWN0IHRoZSBib3JkZXIgYW5kIHBhZGRpbmcgZnJv
bSB0aGUgY2VsbCdzCi0gICAgLy8gfGF2YWlsYWJsZUhlaWdodHwgKGdpdmVuIGJ5IHxvdmVycmlk
ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0fCkgdG8gYXJyaXZlCisgICAgLy8gfGF2YWlsYWJsZUhlaWdo
dHwgKGdpdmVuIGJ5IHxvdmVycmlkZUxvZ2ljYWxIZWlnaHR8KSB0byBhcnJpdmUKICAgICAvLyBh
dCB0aGUgY2hpbGQncyBjb21wdXRlZCBoZWlnaHQuCi0gICAgYm9vbCBzdWJ0cmFjdEJvcmRlckFu
ZFBhZGRpbmcgPSBpc1RhYmxlKCkgfHwgKGlzPFJlbmRlclRhYmxlQ2VsbD4oKmNiKSAmJiAhc2tp
cHBlZEF1dG9IZWlnaHRDb250YWluaW5nQmxvY2sgJiYgY2ItPmhhc092ZXJyaWRlQ29udGVudExv
Z2ljYWxIZWlnaHQoKSk7CisgICAgYm9vbCBzdWJ0cmFjdEJvcmRlckFuZFBhZGRpbmcgPSBpc1Rh
YmxlKCkgfHwgKGlzPFJlbmRlclRhYmxlQ2VsbD4oKmNiKSAmJiAhc2tpcHBlZEF1dG9IZWlnaHRD
b250YWluaW5nQmxvY2sgJiYgY2ItPmhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKTsKICAgICBp
ZiAoc3VidHJhY3RCb3JkZXJBbmRQYWRkaW5nKSB7CiAgICAgICAgIHJlc3VsdCAtPSBib3JkZXJB
bmRQYWRkaW5nTG9naWNhbEhlaWdodCgpOwogICAgICAgICByZXR1cm4gc3RkOjptYXgoMF9sdSwg
cmVzdWx0KTsKQEAgLTMxOTMsOCArMzE5MCw4IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21w
dXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgaGVpZ2h0VHlwZSwgTGVuCiAg
ICAgICAgICAgICAgICAgYmxvY2stPmFkZFBlcmNlbnRIZWlnaHREZXNjZW5kYW50KCpjb25zdF9j
YXN0PFJlbmRlckJveCo+KHRoaXMpKTsKICAgICAgICAgICAgICAgICBpZiAoYmxvY2stPmlzRmxl
eEl0ZW0oKSkKICAgICAgICAgICAgICAgICAgICAgc3RyZXRjaGVkSGVpZ2h0ID0gZG93bmNhc3Q8
UmVuZGVyRmxleGlibGVCb3g+KGJsb2NrLT5wYXJlbnQoKSktPmNoaWxkTG9naWNhbEhlaWdodEZv
clBlcmNlbnRhZ2VSZXNvbHV0aW9uKCpibG9jayk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAo
YmxvY2stPmlzR3JpZEl0ZW0oKSAmJiBibG9jay0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhl
aWdodCgpKQotICAgICAgICAgICAgICAgICAgICBzdHJldGNoZWRIZWlnaHQgPSBibG9jay0+b3Zl
cnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJs
b2NrLT5pc0dyaWRJdGVtKCkgJiYgYmxvY2stPmhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKQor
ICAgICAgICAgICAgICAgICAgICBzdHJldGNoZWRIZWlnaHQgPSBibG9jay0+b3ZlcnJpZGVMb2dp
Y2FsSGVpZ2h0KCkgLSBibG9jay0+Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY2FsY3VsYXRpb24gaXMg
bm90IHBhdGNoZWQgZm9yIGJsb2NrLWZsb3cgeWV0LgpAQCAtMzI1OSw4ICszMjU2LDggQEAgTGF5
b3V0VW5pdCBSZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyhjb25zdCBMZW5n
dGgmIGgsIEF2YWlsYWJsZUxvZ2kKICAgICAvLyBhcnRpZmljaWFsbHkuICBXZSdyZSBnb2luZyB0
byByZWx5IG9uIHRoaXMgY2VsbCBnZXR0aW5nIGV4cGFuZGVkIHRvIHNvbWUgbmV3CiAgICAgLy8g
aGVpZ2h0LCBhbmQgdGhlbiB3aGVuIHdlIGxheSBvdXQgYWdhaW4gd2UnbGwgdXNlIHRoZSBjYWxj
dWxhdGlvbiBiZWxvdy4KICAgICBpZiAoaXNUYWJsZUNlbGwoKSAmJiAoaC5pc0F1dG8oKSB8fCBo
LmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKSkgewotICAgICAgICBpZiAoaGFzT3ZlcnJpZGVDb250
ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ29udGVudExv
Z2ljYWxIZWlnaHQoKTsKKyAgICAgICAgaWYgKGhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKQor
ICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlTG9naWNhbEhlaWdodCgpIC0gY29tcHV0ZWRDU1NQ
YWRkaW5nQmVmb3JlKCkgLSBjb21wdXRlZENTU1BhZGRpbmdBZnRlcigpIC0gYm9yZGVyQmVmb3Jl
KCkgLSBib3JkZXJBZnRlcigpOwogICAgICAgICByZXR1cm4gbG9naWNhbEhlaWdodCgpIC0gYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaAppbmRleCBkMDg3ZDNmNjRmZDQ3MGI5MTg2MzFlYjY1YjY5MmMyMWJhZmZl
YzdmLi45ZDIwOWQxYmY4NzIwNWE0ZWJjNzNmNGYzZDIwNWM4MTEzNzQyNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0zMDcsMTkgKzMwNywxOCBAQCBwdWJsaWM6CiAg
ICAgTGF5b3V0VW5pdCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBMYXlvdXRVbml0IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByZW5hbWUgdGhlc2UgYmFjayB0byBvdmVycmlk
ZUxvZ2ljYWxIZWlnaHQvV2lkdGggYW5kIGhhdmUgdGhlbSBzdG9yZQotICAgIC8vIHRoZSBib3Jk
ZXItYm94IGhlaWdodC93aWR0aCBsaWtlIHRoZSByZWd1bGFyIGhlaWdodC93aWR0aCBhY2Nlc3Nv
cnMgb24gUmVuZGVyQm94LgotICAgIC8vIFJpZ2h0IG5vdywgdGhlc2UgYXJlIGRpZmZlcmVudCB0
aGFuIGNvbnRlbnRIZWlnaHQvY29udGVudFdpZHRoIGJlY2F1c2UgdGhleSBzdGlsbAotICAgIC8v
IGluY2x1ZGUgdGhlIHNjcm9sbGJhciBoZWlnaHQvd2lkdGguCi0gICAgTGF5b3V0VW5pdCBvdmVy
cmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IG92ZXJyaWRl
Q29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKLSAgICBib29sIGhhc092ZXJyaWRlQ29udGVu
dExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKLSAgICBib29sIGhhc092ZXJyaWRlQ29udGVudExvZ2lj
YWxXaWR0aCgpIGNvbnN0OwotICAgIHZvaWQgc2V0T3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdo
dChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aChM
YXlvdXRVbml0KTsKKyAgICBMYXlvdXRVbml0IG92ZXJyaWRlTG9naWNhbFdpZHRoKCkgY29uc3Q7
CisgICAgTGF5b3V0VW5pdCBvdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSBjb25zdDsKKyAgICBib29s
IGhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpIGNvbnN0OworICAgIGJvb2wgaGFzT3ZlcnJpZGVM
b2dpY2FsV2lkdGgoKSBjb25zdDsKKyAgICB2b2lkIHNldE92ZXJyaWRlTG9naWNhbEhlaWdodChM
YXlvdXRVbml0KTsKKyAgICB2b2lkIHNldE92ZXJyaWRlTG9naWNhbFdpZHRoKExheW91dFVuaXQp
OwogICAgIHZvaWQgY2xlYXJPdmVycmlkZUNvbnRlbnRTaXplKCk7Ci0gICAgdm9pZCBjbGVhck92
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKLSAgICB2b2lkIGNsZWFyT3ZlcnJpZGVDb250
ZW50TG9naWNhbFdpZHRoKCk7CisgICAgdm9pZCBjbGVhck92ZXJyaWRlTG9naWNhbEhlaWdodCgp
OworICAgIHZvaWQgY2xlYXJPdmVycmlkZUxvZ2ljYWxXaWR0aCgpOworCisgICAgTGF5b3V0VW5p
dCBvdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBvdmVycmlkZUxv
Z2ljYWxXaWR0aCgpIC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpIC0gc2Nyb2xsYmFy
TG9naWNhbFdpZHRoKCk7IH0KKyAgICBMYXlvdXRVbml0IG92ZXJyaWRlQ29udGVudExvZ2ljYWxI
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBvdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSAtIGJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgLSBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7IH0KIAog
ICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IG92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudFdp
ZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gb3ZlcnJpZGVD
b250YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwCmluZGV4IDQyMmRjZTFmM2NjYTcyMTg1N2JkOTI2MzZhMGYxYjE5NzMxYjVkZjcuLmY4MGJm
NWU4YWVjZTA0NGE1ZGVjMmE5NTExYWNjODkyZWEwYWI2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBA
IC0xNTEsMTggKzE1MSwyOCBAQCBzdGF0aWMgYm9vbCBjaGlsZERvZXNOb3RBZmZlY3RXaWR0aE9y
RmxleGluZyhSZW5kZXJPYmplY3QqIGNoaWxkKQogICAgIHJldHVybiBjaGlsZC0+aXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgfHwgY2hpbGQtPnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxp
dHk6OkNvbGxhcHNlOwogfQogCitzdGF0aWMgTGF5b3V0VW5pdCB3aWR0aEZvckNoaWxkKFJlbmRl
ckJveCogY2hpbGQpCit7CisgICAgaWYgKGNoaWxkLT5oYXNPdmVycmlkZUxvZ2ljYWxXaWR0aCgp
KQorICAgICAgICByZXR1cm4gY2hpbGQtPm92ZXJyaWRlTG9naWNhbFdpZHRoKCk7CisgICAgcmV0
dXJuIGNoaWxkLT5sb2dpY2FsV2lkdGgoKTsKK30KKworc3RhdGljIExheW91dFVuaXQgaGVpZ2h0
Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkKK3sKKyAgICBpZiAoY2hpbGQtPmhhc092ZXJyaWRl
TG9naWNhbEhlaWdodCgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPm92ZXJyaWRlTG9naWNhbEhl
aWdodCgpOworICAgIHJldHVybiBjaGlsZC0+bG9naWNhbEhlaWdodCgpOworfQorCiBzdGF0aWMg
TGF5b3V0VW5pdCBjb250ZW50V2lkdGhGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKQogewotICAg
IGlmIChjaGlsZC0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkpCi0gICAgICAgIHJl
dHVybiBjaGlsZC0+b3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCk7Ci0gICAgcmV0dXJuIGNo
aWxkLT5sb2dpY2FsV2lkdGgoKSAtIGNoaWxkLT5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRo
KCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIHdpZHRoRm9yQ2hpbGQoY2hp
bGQpIC0gY2hpbGQtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHN0YXRp
YyBMYXlvdXRVbml0IGNvbnRlbnRIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKQogewot
ICAgIGlmIChjaGlsZC0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAg
ICByZXR1cm4gY2hpbGQtPm92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKLSAgICByZXR1
cm4gY2hpbGQtPmxvZ2ljYWxIZWlnaHQoKSAtIGNoaWxkLT5ib3JkZXJBbmRQYWRkaW5nTG9naWNh
bEhlaWdodCgpOworICAgIHJldHVybiBzdGQ6Om1heDxMYXlvdXRVbml0PigwLCBoZWlnaHRGb3JD
aGlsZChjaGlsZCkgLSBjaGlsZC0+Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7CiB9
CiAKIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpzdHlsZVdpbGxDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkKQEAgLTU4NSw3
ICs1OTUsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpv
bnRhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYWxsb3dlZENoaWxkRmxleChjaGlsZCwgZXhwYW5kaW5nLCBpKSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExheW91dFVuaXQgc3BhY2VBZGQgPSBMYXlvdXRVbml0KHNwYWNlQXZh
aWxhYmxlVGhpc1Bhc3MgKiAoY2hpbGQtPnN0eWxlKCkuYm94RmxleCgpIC8gdG90YWxGbGV4KSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwYWNlQWRkKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lk
dGgoY29udGVudFdpZHRoRm9yQ2hpbGQoY2hpbGQpICsgc3BhY2VBZGQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgod2lkdGhG
b3JDaGlsZChjaGlsZCkgKyBzcGFjZUFkZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZsZXhpbmdDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KQEAgLTYwMiw3ICs2MTIsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
bGF5b3V0SG9yaXpvbnRhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgICAgICAg
ICAgICAgICAgICBMYXlvdXRVbml0IHNwYWNlQWRkID0gZ3JvdXBSZW1haW5pbmdTcGFjZSA+IDAg
PyAxIDogLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQg
PSBpdGVyYXRvci5maXJzdCgpOyBjaGlsZCAmJiBncm91cFJlbWFpbmluZ1NwYWNlOyBjaGlsZCA9
IGl0ZXJhdG9yLm5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGxv
d2VkQ2hpbGRGbGV4KGNoaWxkLCBleHBhbmRpbmcsIGkpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoY29udGVu
dFdpZHRoRm9yQ2hpbGQoY2hpbGQpICsgc3BhY2VBZGQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgod2lkdGhGb3JDaGlsZChj
aGlsZCkgKyBzcGFjZUFkZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhp
bmdDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF5
b3V0Q2hpbGRyZW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1h
aW5pbmdTcGFjZSAtPSBzcGFjZUFkZDsKQEAgLTg0Miw3ICs4NTIsNyBAQCB2b2lkIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3goYm9vbCByZWxheW91dENoaWxk
cmVuKQogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRDaGlsZEZsZXgoY2hpbGQs
IGV4cGFuZGluZywgaSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0
IHNwYWNlQWRkIHsgc3BhY2VBdmFpbGFibGVUaGlzUGFzcyAqIChjaGlsZC0+c3R5bGUoKS5ib3hG
bGV4KCkgLyB0b3RhbEZsZXgpIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNw
YWNlQWRkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KGNvbnRlbnRIZWlnaHRGb3JDaGlsZChjaGlsZCkgKyBz
cGFjZUFkZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVy
cmlkZUxvZ2ljYWxIZWlnaHQoaGVpZ2h0Rm9yQ2hpbGQoY2hpbGQpICsgc3BhY2VBZGQpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4aW5nQ2hpbGRyZW4gPSB0cnVlOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CkBAIC04NTksNyArODY5LDcgQEAgdm9pZCBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQgc3BhY2VBZGQgPSBn
cm91cFJlbWFpbmluZ1NwYWNlID4gMCA/IDEgOiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkICYmIGdyb3Vw
UmVtYWluaW5nU3BhY2U7IGNoaWxkID0gaXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRDaGlsZEZsZXgoY2hpbGQsIGV4cGFuZGluZywgaSkp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29u
dGVudExvZ2ljYWxIZWlnaHQoY29udGVudEhlaWdodEZvckNoaWxkKGNoaWxkKSArIHNwYWNlQWRk
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlTG9n
aWNhbEhlaWdodChoZWlnaHRGb3JDaGlsZChjaGlsZCkgKyBzcGFjZUFkZCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZsZXhpbmdDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmdTcGFjZSAtPSBzcGFjZUFkZDsKQEAgLTk3
NCw3ICs5ODQsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5l
Q2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbAogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsK
LSAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQobmV3SGVpZ2h0
IC0gY2hpbGQtPnZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpKTsKKyAgICAgICAgY2hp
bGQtPnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChuZXdIZWlnaHQpOwogICAgICAgICBjaGlsZC0+
bGF5b3V0SWZOZWVkZWQoKTsKIAogICAgICAgICAvLyBGSVhNRTogRm9yIG5vdyBkb24ndCBzdXBw
b3J0IFJUTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
Y3BwCmluZGV4IDNiYmJjZTIyZTAyNGE0MDA1OWZjYjhhMDQyOGU2Y2UyMGMzYzk1ZWQuLjZlNjg4
OTcxODdmYTAwYjFmN2U5YjQ3ODJjY2FiNmE5NTAzOWE1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtNDgwLDE0ICs0ODAsMTQgQEAg
TGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6Y2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGgo
Y29uc3QgUmVuZGVyQm94JiBjaGlsZCkKICAgICAgICAgcmV0dXJuIGNoaWxkLmxvZ2ljYWxXaWR0
aCgpOwogCiAgICAgLy8gVGVtcG9yYXJpbHkgY2xlYXIgcG90ZW50aWFsIG92ZXJyaWRlcyB0byBj
b21wdXRlIHRoZSBsb2dpY2FsIHdpZHRoIG90aGVyd2lzZSBpdCdsbCByZXR1cm4gdGhlIG92ZXJy
aWRlIHNpemUuCi0gICAgYm9vbCBjaGlsZEhhc092ZXJyaWRlV2lkdGggPSBjaGlsZC5oYXNPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKLSAgICBhdXRvIG92ZXJyaWRlV2lkdGggPSBjaGls
ZEhhc092ZXJyaWRlV2lkdGggPyBjaGlsZC5vdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSA6
IC0xX2x1OworICAgIGJvb2wgY2hpbGRIYXNPdmVycmlkZVdpZHRoID0gY2hpbGQuaGFzT3ZlcnJp
ZGVMb2dpY2FsV2lkdGgoKTsKKyAgICBhdXRvIG92ZXJyaWRlV2lkdGggPSBjaGlsZEhhc092ZXJy
aWRlV2lkdGggPyBjaGlsZC5vdmVycmlkZUxvZ2ljYWxXaWR0aCgpIDogLTFfbHU7CiAgICAgaWYg
KGNoaWxkSGFzT3ZlcnJpZGVXaWR0aCkKLSAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJCb3gqPigm
Y2hpbGQpLT5jbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpOworICAgICAgICBjb25z
dF9jYXN0PFJlbmRlckJveCo+KCZjaGlsZCktPmNsZWFyT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKTsK
ICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgdmFsdWVzOwogICAgIGNoaWxkLmNvbXB1
dGVMb2dpY2FsV2lkdGhJbkZyYWdtZW50KHZhbHVlcyk7CiAgICAgaWYgKGNoaWxkSGFzT3ZlcnJp
ZGVXaWR0aCkKLSAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJCb3gqPigmY2hpbGQpLT5zZXRPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgob3ZlcnJpZGVXaWR0aCk7CisgICAgICAgIGNvbnN0X2Nh
c3Q8UmVuZGVyQm94Kj4oJmNoaWxkKS0+c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgob3ZlcnJpZGVX
aWR0aCk7CiAgICAgcmV0dXJuIHZhbHVlcy5tX2V4dGVudDsKIH0KIApAQCAtMTE2OSw5ICsxMTY5
LDkgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyRmxleGlibGVCb3g6OmNyb3NzU2l6ZUZv
clBlcmNlbnRhZ2VSZXNvbHV0aW9uKGNvbnN0IFIKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAogICAgIC8vIEhlcmUgd2UgaW1wbGVtZW50IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3MtZmxleGJveC8jYWxnby1zdHJldGNoCi0gICAgaWYgKGNoaWxkLmhhc092ZXJyaWRlQ29udGVu
dExvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgcmV0dXJuIGNoaWxkLm92ZXJyaWRlQ29udGVudExv
Z2ljYWxIZWlnaHQoKSAtIGNoaWxkLnNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKLSAgICAKKyAg
ICBpZiAoY2hpbGQuaGFzT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgIHJldHVybiBj
aGlsZC5vdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisKICAgICAvLyBXZSBkb24ndCBj
dXJyZW50bHkgaW1wbGVtZW50IHRoZSBvcHRpbWl6YXRpb24gZnJvbQogICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtZmxleGJveC8jZGVmaW5pdGUtc2l6ZXMgY2FzZSAxLiBXaGls
ZSB0aGF0CiAgICAgLy8gY291bGQgc3BlZWQgdXAgYSBzcGVjaWFsaXplZCBjYXNlLCBpdCByZXF1
aXJlcyBkZXRlcm1pbmluZyBpZiB3ZSBoYXZlIGEKQEAgLTExOTAsNyArMTE5MCw3IEBAIE9wdGlv
bmFsPExheW91dFVuaXQ+IFJlbmRlckZsZXhpYmxlQm94OjptYWluU2l6ZUZvclBlcmNlbnRhZ2VS
ZXNvbHV0aW9uKGNvbnN0IFJlCiAgICAgaWYgKCFtYWluQXhpc0xlbmd0aElzRGVmaW5pdGUoY2hp
bGQsIExlbmd0aCgwLCBQZXJjZW50KSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAK
LSAgICByZXR1cm4gY2hpbGQuaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpID8gT3B0
aW9uYWw8TGF5b3V0VW5pdD4oY2hpbGQub3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpIC0g
Y2hpbGQuc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpKSA6IFdURjo6bnVsbG9wdDsKKyAgICByZXR1
cm4gY2hpbGQuaGFzT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkgPyBPcHRpb25hbDxMYXlvdXRVbml0
PihjaGlsZC5vdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpIDogV1RGOjpudWxsb3B0Owog
fQogCiBPcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6Y2hpbGRMb2dpY2Fs
SGVpZ2h0Rm9yUGVyY2VudGFnZVJlc29sdXRpb24oY29uc3QgUmVuZGVyQm94JiBjaGlsZCkKQEAg
LTE0MjQsOSArMTQyNCw5IEBAIHN0YXRpYyBMYXlvdXRVbml0IGFsaWdubWVudE9mZnNldChMYXlv
dXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSwgSXRlbVBvc2l0aW9uIHBvCiB2b2lkIFJlbmRlckZs
ZXhpYmxlQm94OjpzZXRPdmVycmlkZU1haW5BeGlzQ29udGVudFNpemVGb3JDaGlsZChSZW5kZXJC
b3gmIGNoaWxkLCBMYXlvdXRVbml0IGNoaWxkUHJlZmVycmVkU2l6ZSkKIHsKICAgICBpZiAoaGFz
T3J0aG9nb25hbEZsb3coY2hpbGQpKQotICAgICAgICBjaGlsZC5zZXRPdmVycmlkZUNvbnRlbnRM
b2dpY2FsSGVpZ2h0KGNoaWxkUHJlZmVycmVkU2l6ZSk7CisgICAgICAgIGNoaWxkLnNldE92ZXJy
aWRlTG9naWNhbEhlaWdodChjaGlsZFByZWZlcnJlZFNpemUgKyBjaGlsZC5ib3JkZXJBbmRQYWRk
aW5nTG9naWNhbEhlaWdodCgpKTsKICAgICBlbHNlCi0gICAgICAgIGNoaWxkLnNldE92ZXJyaWRl
Q29udGVudExvZ2ljYWxXaWR0aChjaGlsZFByZWZlcnJlZFNpemUpOworICAgICAgICBjaGlsZC5z
ZXRPdmVycmlkZUxvZ2ljYWxXaWR0aChjaGlsZFByZWZlcnJlZFNpemUgKyBjaGlsZC5ib3JkZXJB
bmRQYWRkaW5nTG9naWNhbFdpZHRoKCkpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxl
Qm94OjpzdGF0aWNNYWluQXhpc1Bvc2l0aW9uRm9yUG9zaXRpb25lZENoaWxkKGNvbnN0IFJlbmRl
ckJveCYgY2hpbGQpCkBAIC0xODgzLDggKzE4ODMsOCBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94
OjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkKFJlbmRlckJveCYgY2hpbGQsIExheW91dFVu
aQogICAgICAgICAgICAgLy8gU28sIHJlZG8gaXQgaGVyZS4KICAgICAgICAgICAgIGNoaWxkTmVl
ZHNSZWxheW91dCA9IHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNoaWxkTmVlZHNSZWxh
eW91dCB8fCAhY2hpbGQuaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAg
ICAgICAgY2hpbGQuc2V0T3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodChkZXNpcmVkTG9naWNh
bEhlaWdodCAtIGNoaWxkLmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOworICAgICAg
ICBpZiAoY2hpbGROZWVkc1JlbGF5b3V0IHx8ICFjaGlsZC5oYXNPdmVycmlkZUxvZ2ljYWxIZWln
aHQoKSkKKyAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChkZXNpcmVk
TG9naWNhbEhlaWdodCk7CiAgICAgICAgIGlmIChjaGlsZE5lZWRzUmVsYXlvdXQpIHsKICAgICAg
ICAgICAgIFNldEZvclNjb3BlPGJvb2w+IHJlc2V0Q2hpbGRMb2dpY2FsSGVpZ2h0KG1fc2hvdWxk
UmVzZXRDaGlsZExvZ2ljYWxIZWlnaHRCZWZvcmVMYXlvdXQsIHRydWUpOwogICAgICAgICAgICAg
Ly8gV2UgY2FjaGUgdGhlIGNoaWxkJ3MgaW50cmluc2ljIGNvbnRlbnQgbG9naWNhbCBoZWlnaHQg
dG8gYXZvaWQgaXQgYmVpbmcKQEAgLTE5MDUsNyArMTkwNSw3IEBAIHZvaWQgUmVuZGVyRmxleGli
bGVCb3g6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgTGF5
b3V0VW5pCiAgICAgICAgIGNoaWxkV2lkdGggPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsV2lkdGhJ
bkZyYWdtZW50QnlNaW5NYXgoY2hpbGRXaWR0aCwgY3Jvc3NBeGlzQ29udGVudEV4dGVudCgpLCAq
dGhpcywgbnVsbHB0cik7CiAgICAgICAgIAogICAgICAgICBpZiAoY2hpbGRXaWR0aCAhPSBjaGls
ZC5sb2dpY2FsV2lkdGgoKSkgewotICAgICAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGVDb250ZW50
TG9naWNhbFdpZHRoKGNoaWxkV2lkdGggLSBjaGlsZC5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdp
ZHRoKCkpOworICAgICAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgoY2hpbGRX
aWR0aCk7CiAgICAgICAgICAgICBjaGlsZC5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CiAgICAgICAgICAgICBjaGlsZC5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggOTRmMWE2Y2Q0ZTdiMjY3ZmNh
NDdhYTFmODNkMGM5ZWQ0ODc1NzEwOC4uYmMwYzRlMWIzOThhZWY0YTcwYzAzOTM4YzIzNTNjNzdi
Zjg4NDVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENo
aWxkcmVuLCBMYXlvdXRVbml0KQogICAgICAgICBMYXlvdXRTaXplIHByZXZpb3VzU2l6ZSA9IHNp
emUoKTsKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgUmVuZGVyQmxvY2s6Omhhc0Rl
ZmluaXRlTG9naWNhbEhlaWdodCgpIGJ1dCBpdCBkb2VzIG5vdCB3b3JrIGZvciBwb3NpdGlvbmVk
IHN0dWZmLgogICAgICAgICAvLyBGSVhNRTogQ29uc2lkZXIgY2FjaGluZyB0aGUgaGFzRGVmaW5p
dGVMb2dpY2FsSGVpZ2h0IHZhbHVlIHRocm91Z2hvdXQgdGhlIGxheW91dC4KLSAgICAgICAgYm9v
bCBoYXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQgPSBoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVp
Z2h0KCkgfHwgY29tcHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KE1haW5PclByZWZlcnJlZFNpemUs
IHN0eWxlKCkubG9naWNhbEhlaWdodCgpLCBXVEY6Om51bGxvcHQpOworICAgICAgICBib29sIGhh
c0RlZmluaXRlTG9naWNhbEhlaWdodCA9IGhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpIHx8IGNv
bXB1dGVDb250ZW50TG9naWNhbEhlaWdodChNYWluT3JQcmVmZXJyZWRTaXplLCBzdHlsZSgpLmxv
Z2ljYWxIZWlnaHQoKSwgV1RGOjpudWxsb3B0KTsKIAogICAgICAgICBtX2hhc0FueU9ydGhvZ29u
YWxJdGVtID0gZmFsc2U7CiAgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkQm94
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CkBAIC0yMDIsNyAr
MjAyLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRy
ZW4sIExheW91dFVuaXQpCiAgICAgICAgICAgICAvLyBHcmlkJ3MgbGF5b3V0IGxvZ2ljIGNvbnRy
b2xzIHRoZSBncmlkIGl0ZW0ncyBvdmVycmlkZSBoZWlnaHQsIGhlbmNlIHdlIG5lZWQgdG8KICAg
ICAgICAgICAgIC8vIGNsZWFyIGFueSBvdmVycmlkZSBoZWlnaHQgc2V0IHByZXZpb3VzbHksIHNv
IGl0IGRvZXNuJ3QgaW50ZXJmZXJlIGluIGN1cnJlbnQgbGF5b3V0CiAgICAgICAgICAgICAvLyBl
eGVjdXRpb24uIEdyaWQgbmV2ZXIgdXNlcyB0aGUgb3ZlcnJpZGUgd2lkdGgsIHRoYXQncyB3aHkg
d2UgZG9uJ3QgbmVlZCB0byBjbGVhciAgaXQuCi0gICAgICAgICAgICBjaGlsZC0+Y2xlYXJPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBjaGlsZC0+Y2xlYXJPdmVy
cmlkZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgICAgICAgICAgLy8gV2UgbWF5IG5lZWQgdG8gcmVw
ZWF0IHRoZSB0cmFjayBzaXppbmcgaW4gY2FzZSBvZiBhbnkgZ3JpZCBpdGVtIHdhcyBvcnRob2dv
bmFsLgogICAgICAgICAgICAgaWYgKEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbENo
aWxkKCp0aGlzLCAqY2hpbGQpKQpAQCAtMTEyOSw3ICsxMTI5LDcgQEAgdm9pZCBSZW5kZXJHcmlk
OjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZOZWVkZWQoUmVuZGVyQm94JiBjaGlsZCkK
IAogICAgIC8vIFdlIGNsZWFyIGhlaWdodCBvdmVycmlkZSB2YWx1ZXMgYmVjYXVzZSB3ZSB3aWxs
IGRlY2lkZSBub3cgd2hldGhlciBpdCdzIGFsbG93ZWQgb3IKICAgICAvLyBub3QsIGV2YWx1YXRp
bmcgdGhlIGNvbmRpdGlvbnMgd2hpY2ggbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBvbGQg
dmFsdWVzIHdlcmUgc2V0LgotICAgIGNoaWxkLmNsZWFyT3ZlcnJpZGVDb250ZW50TG9naWNhbEhl
aWdodCgpOworICAgIGNoaWxkLmNsZWFyT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hpbGRCbG9ja0RpcmVjdGlvbiA9IEdyaWRMYXlvdXRG
dW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKCp0aGlzLCBjaGlsZCwgRm9yUm93
cyk7CiAgICAgYm9vbCBibG9ja0Zsb3dJc0NvbHVtbkF4aXMgPSBjaGlsZEJsb2NrRGlyZWN0aW9u
ID09IEZvclJvd3M7CkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmFwcGx5
U3RyZXRjaEFsaWdubWVudFRvQ2hpbGRJZk5lZWRlZChSZW5kZXJCb3gmIGNoaWxkKQogICAgIGlm
IChhbGxvd2VkVG9TdHJldGNoQ2hpbGRCbG9ja1NpemUpIHsKICAgICAgICAgTGF5b3V0VW5pdCBz
dHJldGNoZWRMb2dpY2FsSGVpZ2h0ID0gYXZhaWxhYmxlQWxpZ25tZW50U3BhY2VGb3JDaGlsZEJl
Zm9yZVN0cmV0Y2hpbmcoR3JpZExheW91dEZ1bmN0aW9uczo6b3ZlcnJpZGVDb250YWluaW5nQmxv
Y2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBjaGlsZEJsb2NrRGlyZWN0aW9uKS52YWx1ZSgp
LCBjaGlsZCk7CiAgICAgICAgIExheW91dFVuaXQgZGVzaXJlZExvZ2ljYWxIZWlnaHQgPSBjaGls
ZC5jb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoc3RyZXRjaGVkTG9naWNhbEhlaWdodCwg
LTFfbHUpOwotICAgICAgICBjaGlsZC5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KGRl
c2lyZWRMb2dpY2FsSGVpZ2h0IC0gY2hpbGQuYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQo
KSk7CisgICAgICAgIGNoaWxkLnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChkZXNpcmVkTG9naWNh
bEhlaWdodCk7CiAgICAgICAgIGlmIChkZXNpcmVkTG9naWNhbEhlaWdodCAhPSBjaGlsZC5sb2dp
Y2FsSGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gYXZvaWQgbGF5aW5nIG91
dCBoZXJlIGluIHNvbWUgY2FzZXMuIFNlZSBodHRwczovL3dlYmtpdC5vcmcvYi84NzkwNS4KICAg
ICAgICAgICAgIGNoaWxkLnNldExvZ2ljYWxIZWlnaHQoMF9sdSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcAppbmRleCBmZWY3MWIxZGZkYTg5NjdhOTUyMWRk
Njg4N2ViYTc4YmFiNmVmOTVhLi41YTljMjllZmY3Y2FhOTdhNjgxYWY4NzBlNzE3YjE3M2U2OTE5
YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKQEAg
LTY3LDEzICs2NywxMyBAQCBPcHRpb25hbDxUZXh0QWxpZ25Nb2RlPiBSZW5kZXJSdWJ5QmFzZTo6
b3ZlcnJpZGVUZXh0QWxpZ25tZW50Rm9yTGluZShib29sIC8qIGVuZAogCiB2b2lkIFJlbmRlclJ1
YnlCYXNlOjphZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzKGludCBleHBhbnNpb25PcHBv
cnR1bml0eUNvdW50LCBmbG9hdCYgbG9naWNhbExlZnQsIGZsb2F0JiBsb2dpY2FsV2lkdGgpIGNv
bnN0CiB7Ci0gICAgaWYgKHJ1YnlSdW4oKS0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRo
KCkgJiYgZmlyc3RSb290Qm94KCkgJiYgIWZpcnN0Um9vdEJveCgpLT5uZXh0Um9vdEJveCgpKSB7
CisgICAgaWYgKHJ1YnlSdW4oKS0+aGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSAmJiBmaXJzdFJv
b3RCb3goKSAmJiAhZmlyc3RSb290Qm94KCktPm5leHRSb290Qm94KCkpIHsKICAgICAgICAgbG9n
aWNhbExlZnQgKz0gbV9pbml0aWFsT2Zmc2V0OwogICAgICAgICBsb2dpY2FsV2lkdGggLT0gMiAq
IG1faW5pdGlhbE9mZnNldDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExheW91dFVu
aXQgbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gcnVieVJ1bigpICYmIHJ1YnlSdW4oKS0+aGFz
T3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkgPyBydWJ5UnVuKCktPm92ZXJyaWRlQ29udGVu
dExvZ2ljYWxXaWR0aCgpIDogdGhpcy0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CisgICAg
TGF5b3V0VW5pdCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBydWJ5UnVuKCkgJiYgcnVieVJ1
bigpLT5oYXNPdmVycmlkZUxvZ2ljYWxXaWR0aCgpID8gcnVieVJ1bigpLT5vdmVycmlkZUxvZ2lj
YWxXaWR0aCgpIDogdGhpcy0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKG1h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA+PSBsb2dpY2FsV2lkdGgpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggMjk1MWIyMjQ5
YzUyY2Y1NGMxYmM0YzVkZTdmNzU2NmEwZGM4MTY5Zi4uYmUwNTcxN2JmYWI2MDlhY2YwMTZhN2Mw
ZDRjM2YyZjczODc5ZjE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwCkBAIC0yODIsOCArMjgyLDggQEAgdm9pZCBSZW5kZXJUYWJsZTo6dXBkYXRlTG9naWNhbFdp
ZHRoKCkKIAogICAgIC8vIE91ciBwYXJlbnQgbWlnaHQgaGF2ZSBzZXQgYW4gb3ZlcnJpZGUgY29u
dGVudCBsb2dpY2FsIHdpZHRoIG9uIHVzLCBzbyB3ZSBtdXN0IHJlc3BlY3QgaXQuIFRoaXMKICAg
ICAvLyBpcyBob3cgZmxleGJveCBjb250YWluZXJzIGZsZXggb3Igc3RyZXRjaCB1cy4KLSAgICBp
ZiAoaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkpCi0gICAgICAgIHNldExvZ2ljYWxX
aWR0aChzdGQ6Om1heChsb2dpY2FsV2lkdGgoKSwgb3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRo
KCkpKTsKKyAgICBpZiAoaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSkKKyAgICAgICAgc2V0TG9n
aWNhbFdpZHRoKHN0ZDo6bWF4KGxvZ2ljYWxXaWR0aCgpLCBvdmVycmlkZUxvZ2ljYWxXaWR0aCgp
KSk7CiAKICAgICAvLyBFbnN1cmUgd2UgYXJlbid0IGJpZ2dlciB0aGFuIG91ciBtYXgtd2lkdGgg
c3R5bGUuCiAgICAgTGVuZ3RoIHN0eWxlTWF4TG9naWNhbFdpZHRoID0gc3R5bGUoKS5sb2dpY2Fs
TWF4V2lkdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAKaW5kZXggMDFiYzQ3N2M5NmUzYTY4MjNkYTM5YjMzOGZhNDk2MDMyNWVkMjJlOC4uMWMyZWZm
NzA5ZDVkNGE1MDNhOTdlZGJjZThkMDk2ZmQ4Njc1YTMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTMzMCwxMCArMzMwLDEwIEBAIExheW91
dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQWZ0ZXIoKSBjb25zdAogICAgIHJldHVybiBj
b21wdXRlZENTU1BhZGRpbmdBZnRlcigpICsgaW50cmluc2ljUGFkZGluZ0FmdGVyKCk7CiB9CiAK
LXZvaWQgUmVuZGVyVGFibGVDZWxsOjpzZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0RnJv
bVJvd0hlaWdodChMYXlvdXRVbml0IHJvd0hlaWdodCkKK3ZvaWQgUmVuZGVyVGFibGVDZWxsOjpz
ZXRPdmVycmlkZUxvZ2ljYWxIZWlnaHRGcm9tUm93SGVpZ2h0KExheW91dFVuaXQgcm93SGVpZ2h0
KQogewogICAgIGNsZWFySW50cmluc2ljUGFkZGluZygpOwotICAgIHNldE92ZXJyaWRlQ29udGVu
dExvZ2ljYWxIZWlnaHQoc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgcm93SGVpZ2h0IC0gYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSkpOworICAgIHNldE92ZXJyaWRlTG9naWNhbEhlaWdo
dChyb3dIZWlnaHQpOwogfQogCiBMYXlvdXRTaXplIFJlbmRlclRhYmxlQ2VsbDo6b2Zmc2V0RnJv
bUNvbnRhaW5lcihSZW5kZXJFbGVtZW50JiBjb250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBw
b2ludCwgYm9vbCogb2Zmc2V0RGVwZW5kc09uUG9pbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXggZmRmZjQ1ZDc0NzU0ODUzY2NjNmE4ZmMx
YzhmMTE1YWVmNTZkMWI3Yy4uOTc1ZjNiOWE4MmZlNzQwNGI0YTk2NzEwZWMxNTg2NWRjZDMyN2Ri
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApAQCAtMTAy
LDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IHBhZGRpbmdCZWZvcmUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IHBhZGRpbmdBZnRlcigpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdm9pZCBzZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0RnJvbVJvd0hlaWdo
dChMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNldE92ZXJyaWRlTG9naWNhbEhlaWdodEZyb21Sb3dI
ZWlnaHQoTGF5b3V0VW5pdCk7CiAKICAgICB2b2lkIHNjcm9sbGJhcnNDaGFuZ2VkKGJvb2wgaG9y
aXpvbnRhbFNjcm9sbGJhckNoYW5nZWQsIGJvb2wgdmVydGljYWxTY3JvbGxiYXJDaGFuZ2VkKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcAppbmRleCA1NTY4YTdlNmRkZDlhMDQyYmQ1ZWNmZGM2OGJlZTA3ZGQ1ZDBhOGFlLi4y
YTRlZmE4MjZlYWE3Yzk5YjkyODJmMWQ0ZTMxYzc2YjA0YTg2ZmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtMjgzLDcgKzI4Myw3
IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCgp
CiAgICAgICAgICAgICAgICAgLy8gRm9yIHJvdyBzcGFubmluZyBjZWxscywgfHJ8IGlzIHRoZSBs
YXN0IHJvdyBpbiB0aGUgc3Bhbi4KICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjZWxsU3RhcnRS
b3cgPSBjZWxsLT5yb3dJbmRleCgpOwogCi0gICAgICAgICAgICAgICAgaWYgKGNlbGwtPmhhc092
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjZWxs
LT5oYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSkgewogICAgICAgICAgICAgICAgICAgICBjZWxs
LT5jbGVhckludHJpbnNpY1BhZGRpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgY2VsbC0+Y2xl
YXJPdmVycmlkZUNvbnRlbnRTaXplKCk7CiAgICAgICAgICAgICAgICAgICAgIGNlbGwtPnNldENo
aWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKQEAgLTUyMiw3ICs1MjIsNyBAQCB2b2lkIFJl
bmRlclRhYmxlU2VjdGlvbjo6cmVsYXlvdXRDZWxsSWZGbGV4ZWQoUmVuZGVyVGFibGVDZWxsJiBj
ZWxsLCBpbnQgcm93SW5kZQogICAgICAgICAvLyBBbGlnbm1lbnQgd2l0aGluIGEgY2VsbCBpcyBi
YXNlZCBvZmYgdGhlIGNhbGN1bGF0ZWQKICAgICAvLyBoZWlnaHQsIHdoaWNoIGJlY29tZXMgaXJy
ZWxldmFudCBvbmNlIHRoZSBjZWxsIGhhcwogICAgIC8vIGJlZW4gcmVzaXplZCBiYXNlZCBvZmYg
aXRzIHBlcmNlbnRhZ2UuCi0gICAgY2VsbC5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0
RnJvbVJvd0hlaWdodChyb3dIZWlnaHQpOworICAgIGNlbGwuc2V0T3ZlcnJpZGVMb2dpY2FsSGVp
Z2h0RnJvbVJvd0hlaWdodChyb3dIZWlnaHQpOwogICAgIGNlbGwubGF5b3V0SWZOZWVkZWQoKTsK
ICAgICAKICAgICBpZiAoIWNlbGwuaXNCYXNlbGluZUFsaWduZWQoKSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMzJmY2M4
MjgyZjg4MThkZjMwN2JhYjIwZjQzN2MzYTM2YzE4NWEwLi5hMTFjYmU0NzY1NDMyMWFlNzFlNjgz
YmQ3ZTFkNzdhNmQ3ZjNlYzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMTAtMDggIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2FuaXRp
emUgdGhlIHVzYWdlIG9mIG92ZXJyaWRlIHNpemVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFJlbW92ZWQgYSB0ZXN0
IHRoYXQgcGFzc2VzIG5vdy4KKwogMjAyMC0xMC0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBEZW55IGFjY2VzcyB0byBwZXJmb3JtYW5j
ZSBhbmFseXNpcyBzZXJ2aWNlIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDA5NWU4M2Y0NjljZDNhNzVkYjM1YTVkMDRlNzlmOWViZDRhYjBiMDEuLjAzNGUz
YzcwN2VkZDk4ZTlkOTAxYjEwZTFlZjEyMjAyMWJmY2I3NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMzg4Nyw3ICszODg3LDYgQEAgd2Via2l0Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZmxleGJveC9vdmVyZmxvdy1hcmUKIHdlYmtpdC5vcmcv
Yi8yMTIwNDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZsZXhib3gv
b3ZlcmZsb3ctYXV0by0wMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzIxMjA0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZmxleGJveC9w
ZXJjZW50YWdlLWhlaWdodHMtMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8yMTIwNDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZsZXhi
b3gvcGVyY2VudGFnZS1oZWlnaHRzLTAxNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMjEyMDQ2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1m
bGV4Ym94L3BlcmNlbnRhZ2Utc2l6ZS1zdWJpdGVtcy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZmxleGJveC9zY3JvbGxiYXJzLWF1dG8uaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZmxleGJveC9zY3JvbGxiYXJzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411222</attachid>
            <date>2020-10-13 08:53:21 -0700</date>
            <delta_ts>2020-10-16 02:29:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217479-20201013175319.patch</filename>
            <type>text/plain</type>
            <size>59154</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODljMjJkMmQzZDE0NzBj
Y2Q3ZDkwMjEwOTNjZGIyODgxOTllYmNkZi4uYWIyYmE4NzhhMWQ4YmUwZWMyOGRiNTk1YTBiOTAz
MDQxM2ViNGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMC0xMC0xMyAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBTYW5pdGl6
ZSB0aGUgdXNhZ2Ugb2Ygb3ZlcnJpZGUgc2l6ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckJveCBoYWQgdHdvIHZhbHVlcywgb3ZlcnJpZGVD
b250ZW50TG9naWNhbFdpZHRoIGFuZCBvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0IHdoaWNo
IHdlcmUgdXNlZCBieSBhIHZhcmlldHkgb2YKKyAgICAgICAgbGF5b3V0IHN5c3RlbXMgKGxpa2Ug
dGFibGVzLCBncmlkIG9yIGZsZXgpIGluIGRpZmZlcmVudCB3YXlzLiBBbHRob3VnaCBuYW1lcyBj
bGVhcmx5IHN0YXRlZCB0aGF0IHRoZXkgd2VyZSBjb250ZW50IHNpemVzCisgICAgICAgIHRoZSBy
ZWFsaXR5IGlzIHRoYXQgdGhleSB3ZXJlIHVzZWQgYXMgZWl0aGVyIGJvcmRlciBib3ggc2l6ZXMs
IGNvbnRlbnQgYm94IHNpemVzLCBvciBldmVuIGNvbnRlbnQgYm94ICsgc2Nyb2xsYmFyIHNpemVz
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgY29tbWVudCBpbiBSZW5kZXJCb3gg
d2hpY2ggd2FzIHByZWNpc2VseSBhZHZvY2F0aW5nIGZvciB0dXJuaW5nIG92ZXJyaWRlQ29udGVu
dExvZ2ljYWxYWFggYmFjayBpbnRvCisgICAgICAgIG92ZXJyaWRlTG9naWNhbFhYWC4gTW9zdCBv
ZiB0aGUgY2hhbmdlcyBvZiB0aGlzIENMIGFyZSBqdXN0IHJlbmFtZXMgYmVjYXVzZSB0aGUgY29k
ZSBoYXMgc3BlY2lmaWMgYnJhbmNoZXMgdG8gaGFuZGxlIHNwZWNpZmljCisgICAgICAgIHNpdHVh
dGlvbnMgc28gaXQgZGlkbid0IGFjdHVhbGx5IG1hdHRlciB3aGljaCBraW5kIG9mIHNpemUgd2Ug
d2VyZSBhY3R1YWxseSBzdG9yaW5nLiBIb3dldmVyIHRoZXJlIGFyZSBzb21lIHRyaWNreSByZXBs
YWNlbWVudHMKKyAgICAgICAgYXMgaW4gdGhlIGNhc2Ugb2YgZmxleCwgZ3JpZCBhbmQgdGFibGVz
IHRoYXQgcmVxdWlyZWQgY2FyZWZ1bCBtb2RpZmljYXRpb25zLiBJdCdzIGNyaXRpY2FsIGZvciB0
aGVzZSBsYXlvdXQgc3lzdGVtcyB0byBrbm93CisgICAgICAgIHdoaWNoIHNpemUgd2UncmUgc3Rv
cmluZyBpbiB0aGUgb3ZlcnJpZGVzIGJlY2F1c2UgdGhhdCB3b3VsZCBkZXRlcm1pbmUgd2hldGhl
ciBvciBub3Qgd2UgbmVlZCB0byBhZGQvc3Vic3RyYWN0IHRoaW5ncyBsaWtlIGJvcmRlcnMsCisg
ICAgICAgIHBhZGRpbmdzIG9yIHNjcm9sbGJhciBzaXplcyB0byB1c2UgdGhlbS4KKworICAgICAg
ICBOb3RlIHRoYXQgYXBhcnQgZnJvbSByZW5hbWluZyB0aGUgb3ZlcnJpZGVDb250ZW50TG9naWNh
bFhYWCB0byBvdmVycmlkZUxvZ2ljYWxYWFggd2UncmUgImFkZGluZyIgb3ZlcnJpZGVDb250ZW50
TG9naWNhbFhYWCB0byB0aGUKKyAgICAgICAgUmVuZGVyQm94IGludGVyZmFjZSwgc28gaXQgZ2l2
ZXMgdGhlIGltcHJlc3Npb24gdGhhdCB3ZSBhcmUgbm90IHJlbmFtaW5nIGl0LiBIb3dldmVyIHRo
ZSBuZXcgaW1wbGVtZW50YXRpb24gaXMgcXVpdGUgZGlmZmVyZW50LCB0aGV5IAorICAgICAgICBy
ZXRyaWV2ZSB0aGUgY29udGVudCBib3ggc2l6ZXMgZnJvbSB0aGUgb3ZlcnJpZGUgKGJvcmRlciBi
b3gpIHNpemVzIHdlIHN0b3JlLgorCisgICAgICAgIEFzIGEgbmljZSBzaWRlIGVmZmVjdCBhIG5l
dyB0ZXN0IGlzIHBhc3Npbmcgbm93IGFmdGVyIHRoZXNlIGNoYW5nZXMuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxl
eExpbmVMYXlvdXQ6OnVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KTogUmVuYW1lcy4KKyAgICAg
ICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojpsb2dpY2FsSGVpZ2h0Rm9y
Q2hpbGQgY29uc3QpOiBSZW5hbWVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUNoaWxkUHJlZmVycmVk
TG9naWNhbFdpZHRocyBjb25zdCk6IFJlbmFtZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6YXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbiBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpmaXRCb3JkZXJUb0xpbmVzSWZOZWVkZWQp
OiBSZW5hbWVzICsgc3RvcmUgdGhlIGJvcmRlciBib3ggd2lkdGggaW5zdGVhZCBvZiB0aGUgY29u
dGVudCBib3gncy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6aGFzT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0IGNvbnN0KTogIFJl
bmFtZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Omhhc092ZXJyaWRlTG9naWNhbFdp
ZHRoIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldE92ZXJy
aWRlTG9naWNhbEhlaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpz
ZXRPdmVycmlkZUxvZ2ljYWxXaWR0aCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJyaWRlTG9naWNhbEhlaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpjbGVhck92ZXJyaWRlTG9naWNhbFdpZHRoKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OmNsZWFyT3ZlcnJpZGVDb250ZW50U2l6ZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpvdmVycmlkZUxvZ2ljYWxXaWR0aCBjb25zdCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpvdmVycmlkZUxvZ2ljYWxIZWln
aHQgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGVycGVuZGlj
dWxhckNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQgY29uc3QpOiBSZW5hbWVzLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRoSW5GcmFnbWVudCBjb25z
dCk6IFJlbmFtZXMgKyByZXR1cm4gdGhlIHN0b3JlZCBvdmVycmlkZSBib3JkZXIgYm94IHdpZHRo
IGRpcmVjdGx5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjYWNoZUludHJpbnNpY0Nv
bnRlbnRMb2dpY2FsSGVpZ2h0Rm9yRmxleEl0ZW0gY29uc3QpOiBSZW5hbWVzLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodCBjb25zdCk6IFJlbmFtZXMu
IEFwYXJ0IGZyb20gdGhhdCBtb3ZlZCBzb21lIGNvZGUgYXJvdW5kIHNvIGFsbCBicmFuY2hlcyB3
b3JrIHdpdGgKKyAgICAgICAgYm9yZGVyIGJveCBzaXplcyBpbnN0ZWFkIG9mIG1peGluZyB0aGVt
IHdpdGggY29udGVudCBib3ggc2l6ZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNv
bXB1dGVQZXJjZW50YWdlTG9naWNhbEhlaWdodCBjb25zdCk6IFJldHVybiB0aGUgY29udGVudCBi
b3ggc2l6ZSBhZnRlciByZW1vdmluZyBjb21wdXRlZCBwYWRkaW5ncyBhbmQKKyAgICAgICAgYm9y
ZGVycyBmcm9tIHRoZSBzdG9yZWQgb3ZlcnJpZGUgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nIGNvbnN0KTogUmVuYW1l
cyArIGNvbXB1dGUgdGhlIGJvcmRlcmJveCBzaXplIGZyb20gdGhlIHN0b3JlZAorICAgICAgICBv
dmVycmlkZSBzaXplLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjphdmFpbGFibGVMb2dp
Y2FsSGVpZ2h0VXNpbmcgY29uc3QpOiBSZXR1cm4gdGhlIGNvbnRlbnQgYm94IHNpemUgYWZ0ZXIg
cmVtb3ZpbmcgY29tcHV0ZWQgcGFkZGluZ3MgYW5kCisgICAgICAgIGJvcmRlcnMgZnJvbSB0aGUg
c3RvcmVkIG92ZXJyaWRlIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Omhhc092
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGggY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRPdmVycmlkZUNvbnRlbnRM
b2dpY2FsSGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0
T3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6Y2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2Fs
V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpvdmVycmlkZUNv
bnRlbnRMb2dpY2FsV2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94OjpvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6Om92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCBjb25zdCk6ICJOZXciIG1ldGhvZC4gSXQg
ZXhpc3RlZCBiZWZvcmUgYnV0IGl0IHdhcyByZW5hbWVkIHRvIG92ZXJyaWRlTG9naWNhbFdpZHRo
LgorICAgICAgICBXZSdyZSBhZGRpbmcgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBpbXBsZW1lbnRh
dGlvbiBmb3IgdGhpcyBvbmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om92ZXJyaWRl
Q29udGVudExvZ2ljYWxIZWlnaHQgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpZHRo
Rm9yQ2hpbGQpOiBOZXcgbWV0aG9kIHRvIHJldHJpZXZlIHRoZSBib3JkZXIgYm94IHdpZHRoLgor
ICAgICAgICAoV2ViQ29yZTo6aGVpZ2h0Rm9yQ2hpbGQpOiBOZXcgbWV0aG9kIHRvIHJldHJpZXZl
IHRoZSBib3JkZXIgYm94IGhlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRXaWR0aEZv
ckNoaWxkKTogVXNlIHdpZHRoRm9yQ2hpbGQoKSB3aGljaCBoYW5kbGVzIG92ZXJyaWRlcy4KKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRlbnRIZWlnaHRGb3JDaGlsZCk6IFVzZSBoZWlnaHRGb3JDaGls
ZCgpIHdoaWNoIGhhbmRsZXMgb3ZlcnJpZGVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6
OmFwcGx5TGluZUNsYW1wKTogRG8gbm90IHN1YnN0cmFjdCBib3JkZXIgYW5kIHBhZGRpbmcgYmVm
b3JlIHNldHRpbmcgdGhlIG92ZXJyaWRlIGJlY2F1c2UKKyAgICAgICAgd2Ugbm93IHN0b3JlIHRo
ZSBib3JkZXIgYm94IGhlaWdodCBub3QgdGhlIGNvbnRlbnQgYm94IGhlaWdodC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6OmNoaWxkSW50cmluc2ljTG9naWNhbFdpZHRoIGNvbnN0KTogUmVuYW1l
cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjcm9zc1NpemVGb3JQZXJj
ZW50YWdlUmVzb2x1dGlvbik6IFJldHVybiB0aGUgY29udGVudCBib3ggc2l6ZSAoZG9lcyBub3Qg
aW5jbHVkZSBzY3JvbGxiYXIpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6
Om1haW5TaXplRm9yUGVyY2VudGFnZVJlc29sdXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZsZXhpYmxlQm94OjpzZXRPdmVycmlkZU1haW5BeGlzQ29udGVudFNpemVGb3JD
aGlsZCk6IEFkZCBib3JkZXIgYW5kIHBhZGRpbmcgYmVmb3JlIHNldHRpbmcgdGhlIG92ZXJyaWRl
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmFwcGx5U3RyZXRjaEFsaWdu
bWVudFRvQ2hpbGQpOiBEbyBub3Qgc3Vic3RyYWN0IGJvcmRlciBhbmQgcGFkZGluZyBiZWZvcmUg
c2V0dGluZyB0aGUgb3ZlcnJpZGUgYXMgd2UgYXJlCisgICAgICAgIHN0b3JpbmcgYm9yZGVyIGJv
eCBzaXplcy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayk6IFJlbmFtZXMuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZOZWVkZWQpOiBS
ZW5hbWVzICsgZG8gbm90IHN1YnN0cmFjdCBib3JkZXIgYW5kIHBhZGRpbmcgYmVmb3JlIHNldHRp
bmcgdGhlIG92ZXJyaWRlIAorICAgICAgICBhcyB3ZSBhcmUgc3RvcmluZyBib3JkZXIgYm94IHNp
emVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSdWJ5QmFzZTo6YWRqdXN0SW5saW5lRGlyZWN0aW9uTGluZUJvdW5kcyBj
b25zdCk6IFJlbmFtZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjp1cGRhdGVMb2dpY2FsV2lkdGgpOiBSZW5hbWVz
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGVDZWxsOjpzZXRPdmVycmlkZUxvZ2ljYWxIZWlnaHRGcm9tUm93SGVp
Z2h0KTogUmVuYW1lcyArIGRvIG5vdCBzdWJzdHJhY3QgYm9yZGVyIGFuZCBwYWRkaW5nIGJlZm9y
ZSBzZXR0aW5nIHRoZSBvdmVycmlkZSAKKyAgICAgICAgYXMgd2UgYXJlIHN0b3JpbmcgYm9yZGVy
IGJveCBzaXplcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6c2V0T3ZlcnJp
ZGVDb250ZW50TG9naWNhbEhlaWdodEZyb21Sb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDogUmVuYW1lcy4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
U2VjdGlvbjo6Y2FsY1Jvd0xvZ2ljYWxIZWlnaHQpOiBSZW5hbWVzLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpyZWxheW91dENlbGxJZkZsZXhlZCk6IERpdHRvLgorCiAy
MDIwLTEwLTAxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtXZWJYUl0gTWFrZSBlbnVtZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoKSBhc3luY2hy
b25ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVM
YXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNw
cAppbmRleCBlN2QxZTM0ZTgwZjcyMWY1YTM0MjE1ZTkyZjBjMTliN2Q4NzU3YjBjLi5mMzA3ZTg1
M2RhZGM2OTQwMmVhNmMxYmQ2MzNkYmJjZDQ3ZmNkYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKQEAgLTU5MCwxMSArNTkwLDExIEBAIHZv
aWQgQ29tcGxleExpbmVMYXlvdXQ6OnVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KFJlbmRlclJ1
YnlSdW4mIHJ1YnlSdW4sIEJpZGlSCiAgICAgICAgIHRvdGFsT3Bwb3J0dW5pdGllc0luUnVuICs9
IG9wcG9ydHVuaXRpZXNJblJ1bjsKICAgICB9CiAKLSAgICBBU1NFUlQoIXJ1YnlSdW4uaGFzT3Zl
cnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkpOworICAgIEFTU0VSVCghcnVieVJ1bi5oYXNPdmVy
cmlkZUxvZ2ljYWxXaWR0aCgpKTsKICAgICBmbG9hdCBuZXdCYXNlV2lkdGggPSBydWJ5UnVuLmxv
Z2ljYWxXaWR0aCgpICsgdG90YWxFeHBhbnNpb24gKyBtX2Zsb3cubWFyZ2luU3RhcnRGb3JDaGls
ZChydWJ5UnVuKSArIG1fZmxvdy5tYXJnaW5FbmRGb3JDaGlsZChydWJ5UnVuKTsKICAgICBmbG9h
dCBuZXdSdWJ5UnVuV2lkdGggPSBydWJ5UnVuLmxvZ2ljYWxXaWR0aCgpICsgdG90YWxFeHBhbnNp
b247CiAgICAgcnVieUJhc2Uuc2V0SW5pdGlhbE9mZnNldCgobmV3UnVieVJ1bldpZHRoIC0gbmV3
QmFzZVdpZHRoKSAvIDIpOwotICAgIHJ1YnlSdW4uc2V0T3ZlcnJpZGVDb250ZW50TG9naWNhbFdp
ZHRoKExheW91dFVuaXQobmV3UnVieVJ1bldpZHRoKSk7CisgICAgcnVieVJ1bi5zZXRPdmVycmlk
ZUxvZ2ljYWxXaWR0aChMYXlvdXRVbml0KG5ld1J1YnlSdW5XaWR0aCkpOwogICAgIHJ1YnlSdW4u
c2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKICAgICByb290Qm94Lm1hcmtEaXJ0eSgpOwog
ICAgIGlmIChSZW5kZXJSdWJ5VGV4dCogcnVieVRleHQgPSBydWJ5UnVuLnJ1YnlUZXh0KCkpIHsK
QEAgLTYwMiw3ICs2MDIsNyBAQCB2b2lkIENvbXBsZXhMaW5lTGF5b3V0Ojp1cGRhdGVSdWJ5Rm9y
SnVzdGlmaWVkVGV4dChSZW5kZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUgogICAgICAgICAgICAg
dGV4dFJvb3RCb3gtPm1hcmtEaXJ0eSgpOwogICAgIH0KICAgICBydWJ5UnVuLmxheW91dEJsb2Nr
KHRydWUpOwotICAgIHJ1YnlSdW4uY2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKTsK
KyAgICBydWJ5UnVuLmNsZWFyT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKTsKICAgICByLmJveCgpLT5z
ZXRFeHBhbnNpb24obmV3UnVieVJ1bldpZHRoIC0gci5ib3goKS0+bG9naWNhbFdpZHRoKCkpOwog
CiAgICAgdG90YWxMb2dpY2FsV2lkdGggKz0gdG90YWxFeHBhbnNpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4
IGYyYzYwNTdiZThiOWFjZDA3OTEwZmE5ZjI4MWFlNmZiODg4NGFhZmEuLmY5MDIzOWI3MWVlY2Zh
ZTIyY2Q0N2IwNjRmNWRhOTc4ODU2YWRjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCkBAIC03NjMsNyArNzYzLDcg
QEAgTGF5b3V0VW5pdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6bG9naWNhbEhl
aWdodEZvckNoaWxkKFJlbmRlckJveCYgY2gKIAogICAgIC8vIFdlIG5lZWQgdG8gY2xlYXIgdGhl
IHN0cmV0Y2hlZCBoZWlnaHQgdG8gcHJvcGVybHkgY29tcHV0ZSBsb2dpY2FsIGhlaWdodCBkdXJp
bmcgbGF5b3V0LgogICAgIGlmIChjaGlsZC5uZWVkc0xheW91dCgpKQotICAgICAgICBjaGlsZC5j
bGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgY2hpbGQuY2xlYXJP
dmVycmlkZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgIGNoaWxkLmxheW91dElmTmVlZGVkKCk7CiAg
ICAgcmV0dXJuIGNoaWxkLmxvZ2ljYWxIZWlnaHQoKSArIEdyaWRMYXlvdXRGdW5jdGlvbnM6Om1h
cmdpbkxvZ2ljYWxTaXplRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGRCbG9ja0RpcmVjdGlv
biwgY2hpbGQpICsgbV9hbGdvcml0aG0uYmFzZWxpbmVPZmZzZXRGb3JDaGlsZChjaGlsZCwgZ3Jp
ZEF4aXNGb3JEaXJlY3Rpb24oZGlyZWN0aW9uKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IDRiYjAyZTk5ZTBmNjdlY2M1MDU2YmJhOTZmZjk5MmNlNzQz
MzBkNTUuLjlmYTFiZTQ0MDAwZGIzOTg5ZWUwMzg1NTdhYWZjMDZmOGZlODJlODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjQyNSwxMCArMjQyNSwxMCBA
QCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlQ2hpbGRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKFJl
bmRlck9iamVjdCYgY2hpbGQsIExheW91dAogICAgIGlmIChjaGlsZC5pc0JveCgpKSB7CiAgICAg
ICAgIGF1dG8mIGJveCA9IGRvd25jYXN0PFJlbmRlckJveD4oY2hpbGQpOwogICAgICAgICBpZiAo
Ym94LmlzRmxleEl0ZW0oKSkgewotICAgICAgICAgICAgaWYgKGJveC5oYXNPdmVycmlkZUNvbnRl
bnRMb2dpY2FsSGVpZ2h0KCkpCi0gICAgICAgICAgICAgICAgb3ZlcnJpZGVIZWlnaHQgPSBPcHRp
b25hbDxMYXlvdXRVbml0Pihib3gub3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKTsKLSAg
ICAgICAgICAgIGlmIChib3guaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkpCi0gICAg
ICAgICAgICAgICAgb3ZlcnJpZGVXaWR0aCA9IE9wdGlvbmFsPExheW91dFVuaXQ+KGJveC5vdmVy
cmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSk7CisgICAgICAgICAgICBpZiAoYm94Lmhhc092ZXJy
aWRlTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgICAgIG92ZXJyaWRlSGVpZ2h0ID0gT3B0
aW9uYWw8TGF5b3V0VW5pdD4oYm94Lm92ZXJyaWRlTG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAg
ICAgIGlmIChib3guaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSkKKyAgICAgICAgICAgICAgICBv
dmVycmlkZVdpZHRoID0gT3B0aW9uYWw8TGF5b3V0VW5pdD4oYm94Lm92ZXJyaWRlTG9naWNhbFdp
ZHRoKCkpOwogICAgICAgICAgICAgYm94LmNsZWFyT3ZlcnJpZGVDb250ZW50U2l6ZSgpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMjQzOSw5ICsyNDM5LDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZUNoaWxkUHJlZmVycmVkTG9naWNhbFdpZHRocyhSZW5kZXJPYmplY3QmIGNoaWxkLCBMYXlv
dXQKICAgICBpZiAoY2hpbGQuaXNCb3goKSkgewogICAgICAgICBhdXRvJiBib3ggPSBkb3duY2Fz
dDxSZW5kZXJCb3g+KGNoaWxkKTsKICAgICAgICAgaWYgKG92ZXJyaWRlSGVpZ2h0KQotICAgICAg
ICAgICAgYm94LnNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQob3ZlcnJpZGVIZWlnaHQu
dmFsdWUoKSk7CisgICAgICAgICAgICBib3guc2V0T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KG92ZXJy
aWRlSGVpZ2h0LnZhbHVlKCkpOwogICAgICAgICBpZiAob3ZlcnJpZGVXaWR0aCkKLSAgICAgICAg
ICAgIGJveC5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgob3ZlcnJpZGVXaWR0aC52YWx1
ZSgpKTsKKyAgICAgICAgICAgIGJveC5zZXRPdmVycmlkZUxvZ2ljYWxXaWR0aChvdmVycmlkZVdp
ZHRoLnZhbHVlKCkpOwogICAgIH0KIAogICAgIC8vIEZvciBub24tcmVwbGFjZWQgYmxvY2tzIGlm
IHRoZSBpbmxpbmUgc2l6ZSBpcyBtaW58bWF4LWNvbnRlbnQgb3IgYSBkZWZpbml0ZQpAQCAtMzIx
OSw4ICszMjE5LDggQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmF2YWlsYWJs
ZUxvZ2ljYWxIZWlnaHRGb3JQZXJjZW50YWdlQ29tcHV0YXRpb24KICAgICAKICAgICBpZiAoc3Ry
ZXRjaGVkRmxleEhlaWdodCkKICAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gc3RyZXRjaGVkRmxl
eEhlaWdodDsKLSAgICBlbHNlIGlmIChpc0dyaWRJdGVtKCkgJiYgaGFzT3ZlcnJpZGVDb250ZW50
TG9naWNhbEhlaWdodCgpKQotICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBvdmVycmlkZUNvbnRl
bnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgZWxzZSBpZiAoaXNHcmlkSXRlbSgpICYmIGhhc092ZXJy
aWRlTG9naWNhbEhlaWdodCgpKQorICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBvdmVycmlkZUxv
Z2ljYWxIZWlnaHQoKTsKICAgICBlbHNlIGlmIChzdHlsZVRvVXNlLmxvZ2ljYWxIZWlnaHQoKS5p
c0ZpeGVkKCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBjb250ZW50Qm94SGVpZ2h0ID0gYWRqdXN0
Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoKExheW91dFVuaXQpc3R5bGVUb1Vz
ZS5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSk7CiAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IHN0
ZDo6bWF4KDBfbHUsIGNvbnN0cmFpbkNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0QnlNaW5NYXgoY29u
dGVudEJveEhlaWdodCAtIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSwgV1RGOjpudWxsb3B0KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDRl
NjE1YTVjZjNhNDUyZmJkYzczOTgyMTIyNjE2YTE2YmYzNzQ0ZjUuLjgyOTQxNjhjZWM1ZmNkZmY4
YjdmNjZmMTA2ODc0YjMzZGMxZGE5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0zMDQ1LDcgKzMwNDUsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6YWRqdXN0Rm9yQm9yZGVyRml0KExheW91dFVuaXQgeCwgTGF5b3V0VW5pdCYgbGVmdCwg
TGF5b3V0VQogCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6Zml0Qm9yZGVyVG9MaW5lc0lmTmVlZGVk
KCkKIHsKLSAgICBpZiAoc3R5bGUoKS5ib3JkZXJGaXQoKSA9PSBCb3JkZXJGaXQ6OkJvcmRlciB8
fCBoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSkKKyAgICBpZiAoc3R5bGUoKS5ib3Jk
ZXJGaXQoKSA9PSBCb3JkZXJGaXQ6OkJvcmRlciB8fCBoYXNPdmVycmlkZUxvZ2ljYWxXaWR0aCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBXYWxrIGFueSBub3JtYWwgZmxvdyBsaW5lcyB0
byBzbnVnbHkgZml0LgpAQCAtMzA2MywxMCArMzA2MywxMCBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6Zml0Qm9yZGVyVG9MaW5lc0lmTmVlZGVkKCkKICAgICBMYXlvdXRVbml0IG5ld0NvbnRlbnRX
aWR0aCA9IHJpZ2h0IC0gbGVmdDsKICAgICBpZiAobmV3Q29udGVudFdpZHRoID09IG9sZFdpZHRo
KQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgc2V0T3ZlcnJpZGVDb250ZW50TG9naWNhbFdp
ZHRoKG5ld0NvbnRlbnRXaWR0aCk7CisKKyAgICBzZXRPdmVycmlkZUxvZ2ljYWxXaWR0aChuZXdD
b250ZW50V2lkdGggKyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCkpOwogICAgIGxheW91
dEJsb2NrKGZhbHNlKTsKLSAgICBjbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpOwor
ICAgIGNsZWFyT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9ja0Zs
b3c6Om1hcmtMaW5lc0RpcnR5SW5CbG9ja1JhbmdlKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5
b3V0VW5pdCBsb2dpY2FsQm90dG9tLCBSb290SW5saW5lQm94KiBoaWdoZXN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAwNDdmODVjMjc0OWY0NWZkZjgyYmUzODEw
NzhkNGI1YTk1MDljMjJiLi5jZTBmMzgxNmZhNDU1ZTlhMjZiNzk4YmJjZWE5ZjAzMDdjYTliYWJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtOTIsMTIgKzkyLDEw
IEBAIENPTVBJTEVfQVNTRVJUKHNpemVvZihSZW5kZXJCb3gpID09IHNpemVvZihTYW1lU2l6ZUFz
UmVuZGVyQm94KSwgUmVuZGVyQm94X3Nob3VsCiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKLS8vIFVzZWQgYnkgZmxleGlibGUgYm94ZXMgd2hlbiBmbGV4aW5nIHRoaXMgZWxlbWVudCBh
bmQgYnkgdGFibGUgY2VsbHMuCiB0eXBlZGVmIFdURjo6SGFzaE1hcDxjb25zdCBSZW5kZXJCb3gq
LCBMYXlvdXRVbml0PiBPdmVycmlkZVNpemVNYXA7Ci1zdGF0aWMgT3ZlcnJpZGVTaXplTWFwKiBn
T3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodE1hcCA9IG51bGxwdHI7Ci1zdGF0aWMgT3ZlcnJp
ZGVTaXplTWFwKiBnT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoTWFwID0gbnVsbHB0cjsKK3N0
YXRpYyBPdmVycmlkZVNpemVNYXAqIGdPdmVycmlkZUxvZ2ljYWxIZWlnaHRNYXAgPSBudWxscHRy
Oworc3RhdGljIE92ZXJyaWRlU2l6ZU1hcCogZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFwID0gbnVs
bHB0cjsKIAotLy8gVXNlZCBieSBncmlkIGVsZW1lbnRzIHRvIHByb3Blcmx5IHNpemUgdGhlaXIg
Z3JpZCBpdGVtcy4KIC8vIEZJWE1FOiBXZSBzaG91bGQgc3RvcmUgdGhlc2UgYmFzZWQgb24gcGh5
c2ljYWwgZGlyZWN0aW9uLgogdHlwZWRlZiBXVEY6Okhhc2hNYXA8Y29uc3QgUmVuZGVyQm94Kiwg
T3B0aW9uYWw8TGF5b3V0VW5pdD4+IE92ZXJyaWRlT3B0aW9uYWxTaXplTWFwOwogc3RhdGljIE92
ZXJyaWRlT3B0aW9uYWxTaXplTWFwKiBnT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9n
aWNhbEhlaWdodE1hcCA9IG51bGxwdHI7CkBAIC0xMDgyLDU4ICsxMDgwLDU4IEBAIExheW91dFVu
aXQgUmVuZGVyQm94OjptYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogICAgIHJldHVy
biBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIH0KIAotYm9vbCBSZW5kZXJCb3g6Omhhc092
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdAorYm9vbCBSZW5kZXJCb3g6Omhhc092
ZXJyaWRlTG9naWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdPdmVycmlkZUNvbnRl
bnRMb2dpY2FsSGVpZ2h0TWFwICYmIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0TWFwLT5j
b250YWlucyh0aGlzKTsKKyAgICByZXR1cm4gZ092ZXJyaWRlTG9naWNhbEhlaWdodE1hcCAmJiBn
T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0TWFwLT5jb250YWlucyh0aGlzKTsKIH0KIAotYm9vbCBSZW5k
ZXJCb3g6Omhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0Citib29sIFJlbmRl
ckJveDo6aGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSBjb25zdAogewotICAgIHJldHVybiBnT3Zl
cnJpZGVDb250ZW50TG9naWNhbFdpZHRoTWFwICYmIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lk
dGhNYXAtPmNvbnRhaW5zKHRoaXMpOworICAgIHJldHVybiBnT3ZlcnJpZGVMb2dpY2FsV2lkdGhN
YXAgJiYgZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFwLT5jb250YWlucyh0aGlzKTsKIH0KIAotdm9p
ZCBSZW5kZXJCb3g6OnNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBo
ZWlnaHQpCit2b2lkIFJlbmRlckJveDo6c2V0T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQgaGVpZ2h0KQogewotICAgIGlmICghZ092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHRNYXAp
Ci0gICAgICAgIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0TWFwID0gbmV3IE92ZXJyaWRl
U2l6ZU1hcCgpOwotICAgIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0TWFwLT5zZXQodGhp
cywgaGVpZ2h0KTsKKyAgICBpZiAoIWdPdmVycmlkZUxvZ2ljYWxIZWlnaHRNYXApCisgICAgICAg
IGdPdmVycmlkZUxvZ2ljYWxIZWlnaHRNYXAgPSBuZXcgT3ZlcnJpZGVTaXplTWFwKCk7CisgICAg
Z092ZXJyaWRlTG9naWNhbEhlaWdodE1hcC0+c2V0KHRoaXMsIGhlaWdodCk7CiB9CiAKLXZvaWQg
UmVuZGVyQm94OjpzZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCB3aWR0
aCkKK3ZvaWQgUmVuZGVyQm94OjpzZXRPdmVycmlkZUxvZ2ljYWxXaWR0aChMYXlvdXRVbml0IHdp
ZHRoKQogewotICAgIGlmICghZ092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aE1hcCkKLSAgICAg
ICAgZ092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aE1hcCA9IG5ldyBPdmVycmlkZVNpemVNYXAo
KTsKLSAgICBnT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoTWFwLT5zZXQodGhpcywgd2lkdGgp
OworICAgIGlmICghZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFwKQorICAgICAgICBnT3ZlcnJpZGVM
b2dpY2FsV2lkdGhNYXAgPSBuZXcgT3ZlcnJpZGVTaXplTWFwKCk7CisgICAgZ092ZXJyaWRlTG9n
aWNhbFdpZHRoTWFwLT5zZXQodGhpcywgd2lkdGgpOwogfQogCi12b2lkIFJlbmRlckJveDo6Y2xl
YXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyQm94OjpjbGVhck92
ZXJyaWRlTG9naWNhbEhlaWdodCgpCiB7Ci0gICAgaWYgKGdPdmVycmlkZUNvbnRlbnRMb2dpY2Fs
SGVpZ2h0TWFwKQotICAgICAgICBnT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodE1hcC0+cmVt
b3ZlKHRoaXMpOworICAgIGlmIChnT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0TWFwKQorICAgICAgICBn
T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0TWFwLT5yZW1vdmUodGhpcyk7CiB9CiAKLXZvaWQgUmVuZGVy
Qm94OjpjbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpCit2b2lkIFJlbmRlckJveDo6
Y2xlYXJPdmVycmlkZUxvZ2ljYWxXaWR0aCgpCiB7Ci0gICAgaWYgKGdPdmVycmlkZUNvbnRlbnRM
b2dpY2FsV2lkdGhNYXApCi0gICAgICAgIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGhNYXAt
PnJlbW92ZSh0aGlzKTsKKyAgICBpZiAoZ092ZXJyaWRlTG9naWNhbFdpZHRoTWFwKQorICAgICAg
ICBnT3ZlcnJpZGVMb2dpY2FsV2lkdGhNYXAtPnJlbW92ZSh0aGlzKTsKIH0KIAogdm9pZCBSZW5k
ZXJCb3g6OmNsZWFyT3ZlcnJpZGVDb250ZW50U2l6ZSgpCiB7Ci0gICAgY2xlYXJPdmVycmlkZUNv
bnRlbnRMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgY2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lk
dGgoKTsKKyAgICBjbGVhck92ZXJyaWRlTG9naWNhbEhlaWdodCgpOworICAgIGNsZWFyT3ZlcnJp
ZGVMb2dpY2FsV2lkdGgoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om92ZXJyaWRlQ29u
dGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6b3ZlcnJpZGVM
b2dpY2FsV2lkdGgoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNPdmVycmlkZUNvbnRlbnRMb2dp
Y2FsV2lkdGgoKSk7Ci0gICAgcmV0dXJuIGdPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGhNYXAt
PmdldCh0aGlzKTsKKyAgICBBU1NFUlQoaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSk7CisgICAg
cmV0dXJuIGdPdmVycmlkZUxvZ2ljYWxXaWR0aE1hcC0+Z2V0KHRoaXMpOwogfQogCi1MYXlvdXRV
bml0IFJlbmRlckJveDo6b3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0CitMYXlv
dXRVbml0IFJlbmRlckJveDo6b3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkgY29uc3QKIHsKLSAgICBB
U1NFUlQoaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKTsKLSAgICByZXR1cm4gZ092
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHRNYXAtPmdldCh0aGlzKTsKKyAgICBBU1NFUlQoaGFz
T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkpOworICAgIHJldHVybiBnT3ZlcnJpZGVMb2dpY2FsSGVp
Z2h0TWFwLT5nZXQodGhpcyk7CiB9CiAKIE9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6
b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50V2lkdGgoKSBjb25zdApAQCAtMjAyNiw3ICsy
MDI0LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBlbmRpY3VsYXJDb250YWluaW5nQmxv
Y2tMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICB9CiAKICAgICBSZW5kZXJCbG9jayogY2IgPSBj
b250YWluaW5nQmxvY2soKTsKLSAgICBpZiAoY2ItPmhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxI
ZWlnaHQoKSkKKyAgICBpZiAoY2ItPmhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKQogICAgICAg
ICByZXR1cm4gY2ItPm92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKIAogICAgIGNvbnN0
IFJlbmRlclN0eWxlJiBjb250YWluaW5nQmxvY2tTdHlsZSA9IGNiLT5zdHlsZSgpOwpAQCAtMjQz
Myw4ICsyNDMxLDggQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGhJbkZyYWdt
ZW50KExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHUKICAgICAvLyB3aWR0aC4gIFVz
ZSB0aGUgd2lkdGggZnJvbSB0aGUgc3R5bGUgY29udGV4dC4KICAgICAvLyBGSVhNRTogQWNjb3Vu
dCBmb3IgYmxvY2stZmxvdyBpbiBmbGV4aWJsZSBib3hlcy4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MTgKLSAgICBpZiAoaGFzT3ZlcnJpZGVDb250
ZW50TG9naWNhbFdpZHRoKCkgJiYgKGlzUnVieVJ1bigpIHx8IHN0eWxlKCkuYm9yZGVyRml0KCkg
PT0gQm9yZGVyRml0OjpMaW5lcyB8fCAocGFyZW50KCktPmlzRmxleGlibGVCb3hJbmNsdWRpbmdE
ZXByZWNhdGVkKCkpKSkgewotICAgICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9IG92ZXJy
aWRlQ29udGVudExvZ2ljYWxXaWR0aCgpICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgp
OworICAgIGlmIChoYXNPdmVycmlkZUxvZ2ljYWxXaWR0aCgpICYmIChpc1J1YnlSdW4oKSB8fCBz
dHlsZSgpLmJvcmRlckZpdCgpID09IEJvcmRlckZpdDo6TGluZXMgfHwgKHBhcmVudCgpLT5pc0Zs
ZXhpYmxlQm94SW5jbHVkaW5nRGVwcmVjYXRlZCgpKSkpIHsKKyAgICAgICAgY29tcHV0ZWRWYWx1
ZXMubV9leHRlbnQgPSBvdmVycmlkZUxvZ2ljYWxXaWR0aCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0yNzc2LDEwICsyNzc0LDEwIEBAIHN0YXRpYyBib29sIHNob3VsZEZsaXBCZWZv
cmVBZnRlck1hcmdpbnMoY29uc3QgUmVuZGVyU3R5bGUmIGNvbnRhaW5pbmdCbG9ja1N0eWxlCiAK
IHZvaWQgUmVuZGVyQm94OjpjYWNoZUludHJpbnNpY0NvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yRmxl
eEl0ZW0oTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IGl0IHNob3Vs
ZCBiZSBlbm91Z2ggd2l0aCBjaGVja2luZyBoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0
KCkgYXMgdGhpcyBsb2dpYyBjb3VsZCBiZSBzaGFyZWQKKyAgICAvLyBGSVhNRTogaXQgc2hvdWxk
IGJlIGVub3VnaCB3aXRoIGNoZWNraW5nIGhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpIGFzIHRo
aXMgbG9naWMgY291bGQgYmUgc2hhcmVkCiAgICAgLy8gYnkgYW55IGxheW91dCBzeXN0ZW0gdXNp
bmcgb3ZlcnJpZGVzIGxpa2UgZ3JpZCBvciBmbGV4LiBIb3dldmVyIHRoaXMgY2F1c2VzIGEgbmV2
ZXIgZW5kaW5nIHNlcXVlbmNlIG9mIGNhbGxzCiAgICAgLy8gYmV0d2VlbiBsYXlvdXRCbG9jaygp
IDwtPiByZWxheW91dFRvQXZvaWRXaWRvd3MoKS4KLSAgICBpZiAoaXNGbG9hdGluZ09yT3V0T2ZG
bG93UG9zaXRpb25lZCgpIHx8ICFwYXJlbnQoKSB8fCAhcGFyZW50KCktPmlzRmxleGlibGVCb3go
KSB8fCBoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpCisgICAgaWYgKGlzRmxvYXRp
bmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCAhcGFyZW50KCkgfHwgIXBhcmVudCgpLT5pc0Zs
ZXhpYmxlQm94KCkgfHwgaGFzT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBkb3duY2FzdDxSZW5kZXJGbGV4aWJsZUJveD4ocGFyZW50KCkpLT5zZXRDYWNoZWRD
aGlsZEludHJpbnNpY0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCp0aGlzLCBoZWlnaHQpOwogfQpAQCAt
Mjg0MCwxMCArMjgzOCwxMCBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVl
cyBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaQogICAgICAgICAvLyBn
cmFiIG91ciBjYWNoZWQgZmxleGlibGUgaGVpZ2h0LgogICAgICAgICAvLyBGSVhNRTogQWNjb3Vu
dCBmb3IgYmxvY2stZmxvdyBpbiBmbGV4aWJsZSBib3hlcy4KICAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NDE4Ci0gICAgICAgIGlmIChoYXNPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgJiYgKHBhcmVudCgpLT5pc0ZsZXhpYmxlQm94SW5j
bHVkaW5nRGVwcmVjYXRlZCgpIHx8IHBhcmVudCgpLT5pc1JlbmRlckdyaWQoKSkpIHsKLSAgICAg
ICAgICAgIGggPSBMZW5ndGgob3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpLCBGaXhlZCk7
CisgICAgICAgIGlmIChoYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSAmJiAocGFyZW50KCktPmlz
RmxleGlibGVCb3hJbmNsdWRpbmdEZXByZWNhdGVkKCkgfHwgcGFyZW50KCktPmlzUmVuZGVyR3Jp
ZCgpKSkgeworICAgICAgICAgICAgaCA9IExlbmd0aChvdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSwg
Rml4ZWQpOwogICAgICAgICB9IGVsc2UgaWYgKHRyZWF0QXNSZXBsYWNlZCkKLSAgICAgICAgICAg
IGggPSBMZW5ndGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpLCBGaXhlZCk7CisgICAg
ICAgICAgICBoID0gTGVuZ3RoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSArIGJvcmRl
ckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksIEZpeGVkKTsKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICBoID0gc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBjaGVja01p
bk1heEhlaWdodCA9IHRydWU7CkBAIC0yODU0LDcgKzI4NTIsNyBAQCBSZW5kZXJCb3g6OkxvZ2lj
YWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExh
eW91dFVuaQogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDY0MTgKICAgICAgICAgaWYgKGguaXNBdXRvKCkgJiYgaXM8UmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94PigqcGFyZW50KCkpICYmIHBhcmVudCgpLT5zdHlsZSgpLmJveE9yaWVudCgpID09
IEJveE9yaWVudDo6SG9yaXpvbnRhbAogICAgICAgICAgICAgICAgICYmIGRvd25jYXN0PFJlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveD4oKnBhcmVudCgpKS5pc1N0cmV0Y2hpbmdDaGlsZHJlbigp
KSB7Ci0gICAgICAgICAgICBoID0gTGVuZ3RoKHBhcmVudEJveCgpLT5jb250ZW50TG9naWNhbEhl
aWdodCgpIC0gbWFyZ2luQmVmb3JlKCkgLSBtYXJnaW5BZnRlcigpIC0gYm9yZGVyQW5kUGFkZGlu
Z0xvZ2ljYWxIZWlnaHQoKSwgRml4ZWQpOworICAgICAgICAgICAgaCA9IExlbmd0aChwYXJlbnRC
b3goKS0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSAtIG1hcmdpbkJlZm9yZSgpIC0gbWFyZ2luQWZ0
ZXIoKSwgRml4ZWQpOwogICAgICAgICAgICAgY2hlY2tNaW5NYXhIZWlnaHQgPSBmYWxzZTsKICAg
ICAgICAgfQogCkBAIC0yODY0LDExICsyODYyLDggQEAgUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50
Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbmkK
ICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IGNvbXB1dGVMb2dpY2FsSGVpZ2h0VXNpbmcoTWFp
bk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCksIGludHJpbnNpY0hlaWdo
dCkudmFsdWVPcihjb21wdXRlZFZhbHVlcy5tX2V4dGVudCk7CiAgICAgICAgICAgICBoZWlnaHRS
ZXN1bHQgPSBjb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoaGVpZ2h0UmVzdWx0LCBpbnRy
aW5zaWNIZWlnaHQpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gVGhlIG9ubHkg
dGltZXMgd2UgZG9uJ3QgY2hlY2sgbWluL21heCBoZWlnaHQgYXJlIHdoZW4gYSBmaXhlZCBsZW5n
dGggaGFzCi0gICAgICAgICAgICAvLyBiZWVuIGdpdmVuIGFzIGFuIG92ZXJyaWRlLiAgSnVzdCB1
c2UgdGhhdC4gIFRoZSB2YWx1ZSBoYXMgYWxyZWFkeSBiZWVuIGFkanVzdGVkCi0gICAgICAgICAg
ICAvLyBmb3IgYm94LXNpemluZy4KICAgICAgICAgICAgIEFTU0VSVChoLmlzRml4ZWQoKSk7Ci0g
ICAgICAgICAgICBoZWlnaHRSZXN1bHQgPSBoLnZhbHVlKCkgKyBib3JkZXJBbmRQYWRkaW5nTG9n
aWNhbEhlaWdodCgpOworICAgICAgICAgICAgaGVpZ2h0UmVzdWx0ID0gaC52YWx1ZSgpOwogICAg
ICAgICB9CiAKICAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBoZWlnaHRSZXN1bHQ7
CkBAIC0zMDM1LDEwICszMDMwLDEwIEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6
Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0IExlbmd0aCYgaGVpCiAgICAgICAg
ICAgICAvLyBUYWJsZSBjZWxscyB2aW9sYXRlIHdoYXQgdGhlIENTUyBzcGVjIHNheXMgdG8gZG8g
d2l0aCBoZWlnaHRzLiBCYXNpY2FsbHkgd2UKICAgICAgICAgICAgIC8vIGRvbid0IGNhcmUgaWYg
dGhlIGNlbGwgc3BlY2lmaWVkIGEgaGVpZ2h0IG9yIG5vdC4gV2UganVzdCBhbHdheXMgbWFrZSBv
dXJzZWx2ZXMKICAgICAgICAgICAgIC8vIGJlIGEgcGVyY2VudGFnZSBvZiB0aGUgY2VsbCdzIGN1
cnJlbnQgY29udGVudCBoZWlnaHQuCi0gICAgICAgICAgICBpZiAoIWNiLT5oYXNPdmVycmlkZUNv
bnRlbnRMb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgICAgICBpZiAoIWNiLT5oYXNPdmVycmlkZUxv
Z2ljYWxIZWlnaHQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVDZWxsU2hvdWxkSGF2
ZVplcm9Jbml0aWFsU2l6ZSgqY2IsICp0aGlzLCBzY3JvbGxzT3ZlcmZsb3dZKCkpID8gT3B0aW9u
YWw8TGF5b3V0VW5pdD4oMCkgOiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgICAgIGF2YWlsYWJs
ZUhlaWdodCA9IGNiLT5vdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAg
ICBhdmFpbGFibGVIZWlnaHQgPSBjYi0+b3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkgLSBjYi0+Y29t
cHV0ZWRDU1NQYWRkaW5nQmVmb3JlKCkgLSBjYi0+Y29tcHV0ZWRDU1NQYWRkaW5nQWZ0ZXIoKSAt
IGNiLT5ib3JkZXJCZWZvcmUoKSAtIGNiLT5ib3JkZXJBZnRlcigpOwogICAgICAgICB9CiAgICAg
fSBlbHNlCiAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGNiLT5hdmFpbGFibGVMb2dpY2FsSGVp
Z2h0Rm9yUGVyY2VudGFnZUNvbXB1dGF0aW9uKCk7CkBAIC0zMDQ4LDEzICszMDQzLDEzIEBAIE9w
dGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVp
Z2h0KGNvbnN0IExlbmd0aCYgaGVpCiAKICAgICBMYXlvdXRVbml0IHJlc3VsdCA9IHZhbHVlRm9y
TGVuZ3RoKGhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0LnZhbHVlKCkgLSByb290TWFyZ2luQm9yZGVy
UGFkZGluZ0hlaWdodCArIChpc1RhYmxlKCkgJiYgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgPyBj
Yi0+cGFkZGluZ0JlZm9yZSgpICsgY2ItPnBhZGRpbmdBZnRlcigpIDogMF9sdSkpOwogICAgIAot
ICAgIC8vIHxvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0fCBpcyB0aGUgbWF4aW11bSBoZWln
aHQgbWFkZSBhdmFpbGFibGUgYnkgdGhlCisgICAgLy8gfG92ZXJyaWRlTG9naWNhbEhlaWdodHwg
aXMgdGhlIG1heGltdW0gaGVpZ2h0IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZQogICAgIC8vIGNlbGwg
dG8gaXRzIHBlcmNlbnQgaGVpZ2h0IGNoaWxkcmVuIHdoZW4gd2UgZGVjaWRlIHRoZXkgY2FuIGRl
dGVybWluZSB0aGUKICAgICAvLyBoZWlnaHQgb2YgdGhlIGNlbGwuIElmIHRoZSBwZXJjZW50IGhl
aWdodCBjaGlsZCBpcyBib3gtc2l6aW5nOmNvbnRlbnQtYm94CiAgICAgLy8gdGhlbiB3ZSBtdXN0
IHN1YnRyYWN0IHRoZSBib3JkZXIgYW5kIHBhZGRpbmcgZnJvbSB0aGUgY2VsbCdzCi0gICAgLy8g
fGF2YWlsYWJsZUhlaWdodHwgKGdpdmVuIGJ5IHxvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0
fCkgdG8gYXJyaXZlCisgICAgLy8gfGF2YWlsYWJsZUhlaWdodHwgKGdpdmVuIGJ5IHxvdmVycmlk
ZUxvZ2ljYWxIZWlnaHR8KSB0byBhcnJpdmUKICAgICAvLyBhdCB0aGUgY2hpbGQncyBjb21wdXRl
ZCBoZWlnaHQuCi0gICAgYm9vbCBzdWJ0cmFjdEJvcmRlckFuZFBhZGRpbmcgPSBpc1RhYmxlKCkg
fHwgKGlzPFJlbmRlclRhYmxlQ2VsbD4oKmNiKSAmJiAhc2tpcHBlZEF1dG9IZWlnaHRDb250YWlu
aW5nQmxvY2sgJiYgY2ItPmhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSk7CisgICAg
Ym9vbCBzdWJ0cmFjdEJvcmRlckFuZFBhZGRpbmcgPSBpc1RhYmxlKCkgfHwgKGlzPFJlbmRlclRh
YmxlQ2VsbD4oKmNiKSAmJiAhc2tpcHBlZEF1dG9IZWlnaHRDb250YWluaW5nQmxvY2sgJiYgY2It
Pmhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKTsKICAgICBpZiAoc3VidHJhY3RCb3JkZXJBbmRQ
YWRkaW5nKSB7CiAgICAgICAgIHJlc3VsdCAtPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdo
dCgpOwogICAgICAgICByZXR1cm4gc3RkOjptYXgoMF9sdSwgcmVzdWx0KTsKQEAgLTMxOTMsOCAr
MzE4OCw4IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0VXNpbmcoU2l6ZVR5cGUgaGVpZ2h0VHlwZSwgTGVuCiAgICAgICAgICAgICAgICAgYmxvY2st
PmFkZFBlcmNlbnRIZWlnaHREZXNjZW5kYW50KCpjb25zdF9jYXN0PFJlbmRlckJveCo+KHRoaXMp
KTsKICAgICAgICAgICAgICAgICBpZiAoYmxvY2stPmlzRmxleEl0ZW0oKSkKICAgICAgICAgICAg
ICAgICAgICAgc3RyZXRjaGVkSGVpZ2h0ID0gZG93bmNhc3Q8UmVuZGVyRmxleGlibGVCb3g+KGJs
b2NrLT5wYXJlbnQoKSktPmNoaWxkTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VSZXNvbHV0aW9u
KCpibG9jayk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2stPmlzR3JpZEl0ZW0oKSAm
JiBibG9jay0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAgICAgICAg
ICAgICAgICBzdHJldGNoZWRIZWlnaHQgPSBibG9jay0+b3ZlcnJpZGVDb250ZW50TG9naWNhbEhl
aWdodCgpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLT5pc0dyaWRJdGVtKCkgJiYg
YmxvY2stPmhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgICAgICAgICBz
dHJldGNoZWRIZWlnaHQgPSBibG9jay0+b3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCkgLSBibG9jay0+
Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgY2FsY3VsYXRpb24gaXMgbm90IHBhdGNoZWQgZm9yIGJsb2Nr
LWZsb3cgeWV0LgpAQCAtMzI1OSw4ICszMjU0LDggQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmF2
YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyhjb25zdCBMZW5ndGgmIGgsIEF2YWlsYWJsZUxvZ2kK
ICAgICAvLyBhcnRpZmljaWFsbHkuICBXZSdyZSBnb2luZyB0byByZWx5IG9uIHRoaXMgY2VsbCBn
ZXR0aW5nIGV4cGFuZGVkIHRvIHNvbWUgbmV3CiAgICAgLy8gaGVpZ2h0LCBhbmQgdGhlbiB3aGVu
IHdlIGxheSBvdXQgYWdhaW4gd2UnbGwgdXNlIHRoZSBjYWxjdWxhdGlvbiBiZWxvdy4KICAgICBp
ZiAoaXNUYWJsZUNlbGwoKSAmJiAoaC5pc0F1dG8oKSB8fCBoLmlzUGVyY2VudE9yQ2FsY3VsYXRl
ZCgpKSkgewotICAgICAgICBpZiAoaGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQot
ICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKKyAgICAg
ICAgaWYgKGhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgcmV0dXJuIG92
ZXJyaWRlTG9naWNhbEhlaWdodCgpIC0gY29tcHV0ZWRDU1NQYWRkaW5nQmVmb3JlKCkgLSBjb21w
dXRlZENTU1BhZGRpbmdBZnRlcigpIC0gYm9yZGVyQmVmb3JlKCkgLSBib3JkZXJBZnRlcigpOwog
ICAgICAgICByZXR1cm4gbG9naWNhbEhlaWdodCgpIC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxI
ZWlnaHQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBk
MDg3ZDNmNjRmZDQ3MGI5MTg2MzFlYjY1YjY5MmMyMWJhZmZlYzdmLi45ZDIwOWQxYmY4NzIwNWE0
ZWJjNzNmNGYzZDIwNWM4MTEzNzQyNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCkBAIC0zMDcsMTkgKzMwNywxOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBtaW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IG1heFBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgLy8gRklYTUU6IFdl
IHNob3VsZCByZW5hbWUgdGhlc2UgYmFjayB0byBvdmVycmlkZUxvZ2ljYWxIZWlnaHQvV2lkdGgg
YW5kIGhhdmUgdGhlbSBzdG9yZQotICAgIC8vIHRoZSBib3JkZXItYm94IGhlaWdodC93aWR0aCBs
aWtlIHRoZSByZWd1bGFyIGhlaWdodC93aWR0aCBhY2Nlc3NvcnMgb24gUmVuZGVyQm94LgotICAg
IC8vIFJpZ2h0IG5vdywgdGhlc2UgYXJlIGRpZmZlcmVudCB0aGFuIGNvbnRlbnRIZWlnaHQvY29u
dGVudFdpZHRoIGJlY2F1c2UgdGhleSBzdGlsbAotICAgIC8vIGluY2x1ZGUgdGhlIHNjcm9sbGJh
ciBoZWlnaHQvd2lkdGguCi0gICAgTGF5b3V0VW5pdCBvdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lk
dGgoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IG92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQo
KSBjb25zdDsKLSAgICBib29sIGhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25z
dDsKLSAgICBib29sIGhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0OwotICAg
IHZvaWQgc2V0T3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodChMYXlvdXRVbml0KTsKLSAgICB2
b2lkIHNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aChMYXlvdXRVbml0KTsKKyAgICBMYXlv
dXRVbml0IG92ZXJyaWRlTG9naWNhbFdpZHRoKCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBvdmVy
cmlkZUxvZ2ljYWxIZWlnaHQoKSBjb25zdDsKKyAgICBib29sIGhhc092ZXJyaWRlTG9naWNhbEhl
aWdodCgpIGNvbnN0OworICAgIGJvb2wgaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSBjb25zdDsK
KyAgICB2b2lkIHNldE92ZXJyaWRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0KTsKKyAgICB2b2lk
IHNldE92ZXJyaWRlTG9naWNhbFdpZHRoKExheW91dFVuaXQpOwogICAgIHZvaWQgY2xlYXJPdmVy
cmlkZUNvbnRlbnRTaXplKCk7Ci0gICAgdm9pZCBjbGVhck92ZXJyaWRlQ29udGVudExvZ2ljYWxI
ZWlnaHQoKTsKLSAgICB2b2lkIGNsZWFyT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCk7Cisg
ICAgdm9pZCBjbGVhck92ZXJyaWRlTG9naWNhbEhlaWdodCgpOworICAgIHZvaWQgY2xlYXJPdmVy
cmlkZUxvZ2ljYWxXaWR0aCgpOworCisgICAgTGF5b3V0VW5pdCBvdmVycmlkZUNvbnRlbnRMb2dp
Y2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBvdmVycmlkZUxvZ2ljYWxXaWR0aCgpIC0gYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpIC0gc2Nyb2xsYmFyTG9naWNhbFdpZHRoKCk7IH0KKyAg
ICBMYXlvdXRVbml0IG92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVy
biBvdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSAtIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0
KCkgLSBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7IH0KIAogICAgIE9wdGlvbmFsPExheW91dFVu
aXQ+IG92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gb3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50
SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDQyMmRjZTFmM2Nj
YTcyMTg1N2JkOTI2MzZhMGYxYjE5NzMxYjVkZjcuLmY4MGJmNWU4YWVjZTA0NGE1ZGVjMmE5NTEx
YWNjODkyZWEwYWI2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0xNTEsMTggKzE1MSwyOCBAQCBz
dGF0aWMgYm9vbCBjaGlsZERvZXNOb3RBZmZlY3RXaWR0aE9yRmxleGluZyhSZW5kZXJPYmplY3Qq
IGNoaWxkKQogICAgIHJldHVybiBjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgY2hp
bGQtPnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OkNvbGxhcHNlOwogfQogCitz
dGF0aWMgTGF5b3V0VW5pdCB3aWR0aEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQpCit7CisgICAg
aWYgKGNoaWxkLT5oYXNPdmVycmlkZUxvZ2ljYWxXaWR0aCgpKQorICAgICAgICByZXR1cm4gY2hp
bGQtPm92ZXJyaWRlTG9naWNhbFdpZHRoKCk7CisgICAgcmV0dXJuIGNoaWxkLT5sb2dpY2FsV2lk
dGgoKTsKK30KKworc3RhdGljIExheW91dFVuaXQgaGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94KiBj
aGlsZCkKK3sKKyAgICBpZiAoY2hpbGQtPmhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpKQorICAg
ICAgICByZXR1cm4gY2hpbGQtPm92ZXJyaWRlTG9naWNhbEhlaWdodCgpOworICAgIHJldHVybiBj
aGlsZC0+bG9naWNhbEhlaWdodCgpOworfQorCiBzdGF0aWMgTGF5b3V0VW5pdCBjb250ZW50V2lk
dGhGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKQogewotICAgIGlmIChjaGlsZC0+aGFzT3ZlcnJp
ZGVDb250ZW50TG9naWNhbFdpZHRoKCkpCi0gICAgICAgIHJldHVybiBjaGlsZC0+b3ZlcnJpZGVD
b250ZW50TG9naWNhbFdpZHRoKCk7Ci0gICAgcmV0dXJuIGNoaWxkLT5sb2dpY2FsV2lkdGgoKSAt
IGNoaWxkLT5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCk7CisgICAgcmV0dXJuIHN0ZDo6
bWF4PExheW91dFVuaXQ+KDAsIHdpZHRoRm9yQ2hpbGQoY2hpbGQpIC0gY2hpbGQtPmJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHN0YXRpYyBMYXlvdXRVbml0IGNvbnRlbnRI
ZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKQogewotICAgIGlmIChjaGlsZC0+aGFzT3Zl
cnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAgICByZXR1cm4gY2hpbGQtPm92ZXJy
aWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKLSAgICByZXR1cm4gY2hpbGQtPmxvZ2ljYWxIZWln
aHQoKSAtIGNoaWxkLT5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpOworICAgIHJldHVy
biBzdGQ6Om1heDxMYXlvdXRVbml0PigwLCBoZWlnaHRGb3JDaGlsZChjaGlsZCkgLSBjaGlsZC0+
Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7CiB9CiAKIHZvaWQgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkKQEAgLTU4NSw3ICs1OTUsNyBAQCB2b2lkIFJlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChib29sIHJlbGF5b3V0
Q2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsb3dlZENoaWxkRmxleChj
aGlsZCwgZXhwYW5kaW5nLCBpKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91
dFVuaXQgc3BhY2VBZGQgPSBMYXlvdXRVbml0KHNwYWNlQXZhaWxhYmxlVGhpc1Bhc3MgKiAoY2hp
bGQtPnN0eWxlKCkuYm94RmxleCgpIC8gdG90YWxGbGV4KSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHNwYWNlQWRkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNoaWxkLT5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoY29udGVudFdpZHRoRm9yQ2hp
bGQoY2hpbGQpICsgc3BhY2VBZGQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGlsZC0+c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgod2lkdGhGb3JDaGlsZChjaGlsZCkgKyBzcGFj
ZUFkZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhpbmdDaGlsZHJlbiA9
IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4g
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTYwMiw3ICs2MTIsNyBA
QCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChi
b29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0
IHNwYWNlQWRkID0gZ3JvdXBSZW1haW5pbmdTcGFjZSA+IDAgPyAxIDogLTE7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5maXJzdCgpOyBj
aGlsZCAmJiBncm91cFJlbWFpbmluZ1NwYWNlOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGxvd2VkQ2hpbGRGbGV4KGNoaWxkLCBl
eHBhbmRpbmcsIGkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5z
ZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoY29udGVudFdpZHRoRm9yQ2hpbGQoY2hpbGQp
ICsgc3BhY2VBZGQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC0+c2V0
T3ZlcnJpZGVMb2dpY2FsV2lkdGgod2lkdGhGb3JDaGlsZChjaGlsZCkgKyBzcGFjZUFkZCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhpbmdDaGlsZHJlbiA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmdTcGFjZSAtPSBzcGFjZUFk
ZDsKQEAgLTg0Miw3ICs4NTIsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
bGF5b3V0VmVydGljYWxCb3goYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGFsbG93ZWRDaGlsZEZsZXgoY2hpbGQsIGV4cGFuZGluZywgaSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHNwYWNlQWRkIHsgc3BhY2VBdmFp
bGFibGVUaGlzUGFzcyAqIChjaGlsZC0+c3R5bGUoKS5ib3hGbGV4KCkgLyB0b3RhbEZsZXgpIH07
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwYWNlQWRkKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVp
Z2h0KGNvbnRlbnRIZWlnaHRGb3JDaGlsZChjaGlsZCkgKyBzcGFjZUFkZCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkZUxvZ2ljYWxIZWlnaHQoaGVp
Z2h0Rm9yQ2hpbGQoY2hpbGQpICsgc3BhY2VBZGQpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmbGV4aW5nQ2hpbGRyZW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CkBAIC04NTksNyArODY5LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3g6OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgICAg
ICAgICAgICAgICAgIExheW91dFVuaXQgc3BhY2VBZGQgPSBncm91cFJlbWFpbmluZ1NwYWNlID4g
MCA/IDEgOiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoUmVuZGVyQm94KiBjaGls
ZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkICYmIGdyb3VwUmVtYWluaW5nU3BhY2U7IGNoaWxk
ID0gaXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFs
bG93ZWRDaGlsZEZsZXgoY2hpbGQsIGV4cGFuZGluZywgaSkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoY29u
dGVudEhlaWdodEZvckNoaWxkKGNoaWxkKSArIHNwYWNlQWRkKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChoZWlnaHRGb3JD
aGlsZChjaGlsZCkgKyBzcGFjZUFkZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZsZXhpbmdDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZW1haW5pbmdTcGFjZSAtPSBzcGFjZUFkZDsKQEAgLTk3NCw3ICs5ODQsNyBAQCB2b2lkIFJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9y
JiBpdGVyYXRvciwgYm9vbAogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgY2hpbGQt
PnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKLSAgICAgICAgY2hpbGQtPnNldE92
ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQobmV3SGVpZ2h0IC0gY2hpbGQtPnZlcnRpY2FsQm9y
ZGVyQW5kUGFkZGluZ0V4dGVudCgpKTsKKyAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlTG9naWNh
bEhlaWdodChuZXdIZWlnaHQpOwogICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKIAog
ICAgICAgICAvLyBGSVhNRTogRm9yIG5vdyBkb24ndCBzdXBwb3J0IFJUTC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDNiYmJjZTIyZTAy
NGE0MDA1OWZjYjhhMDQyOGU2Y2UyMGMzYzk1ZWQuLjZlNjg4OTcxODdmYTAwYjFmN2U5YjQ3ODJj
Y2FiNmE5NTAzOWE1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcApAQCAtNDgwLDE0ICs0ODAsMTQgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4
aWJsZUJveDo6Y2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGgoY29uc3QgUmVuZGVyQm94JiBjaGls
ZCkKICAgICAgICAgcmV0dXJuIGNoaWxkLmxvZ2ljYWxXaWR0aCgpOwogCiAgICAgLy8gVGVtcG9y
YXJpbHkgY2xlYXIgcG90ZW50aWFsIG92ZXJyaWRlcyB0byBjb21wdXRlIHRoZSBsb2dpY2FsIHdp
ZHRoIG90aGVyd2lzZSBpdCdsbCByZXR1cm4gdGhlIG92ZXJyaWRlIHNpemUuCi0gICAgYm9vbCBj
aGlsZEhhc092ZXJyaWRlV2lkdGggPSBjaGlsZC5oYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lk
dGgoKTsKLSAgICBhdXRvIG92ZXJyaWRlV2lkdGggPSBjaGlsZEhhc092ZXJyaWRlV2lkdGggPyBj
aGlsZC5vdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lkdGgoKSA6IC0xX2x1OworICAgIGJvb2wgY2hp
bGRIYXNPdmVycmlkZVdpZHRoID0gY2hpbGQuaGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKTsKKyAg
ICBhdXRvIG92ZXJyaWRlV2lkdGggPSBjaGlsZEhhc092ZXJyaWRlV2lkdGggPyBjaGlsZC5vdmVy
cmlkZUxvZ2ljYWxXaWR0aCgpIDogLTFfbHU7CiAgICAgaWYgKGNoaWxkSGFzT3ZlcnJpZGVXaWR0
aCkKLSAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJCb3gqPigmY2hpbGQpLT5jbGVhck92ZXJyaWRl
Q29udGVudExvZ2ljYWxXaWR0aCgpOworICAgICAgICBjb25zdF9jYXN0PFJlbmRlckJveCo+KCZj
aGlsZCktPmNsZWFyT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKTsKICAgICBMb2dpY2FsRXh0ZW50Q29t
cHV0ZWRWYWx1ZXMgdmFsdWVzOwogICAgIGNoaWxkLmNvbXB1dGVMb2dpY2FsV2lkdGhJbkZyYWdt
ZW50KHZhbHVlcyk7CiAgICAgaWYgKGNoaWxkSGFzT3ZlcnJpZGVXaWR0aCkKLSAgICAgICAgY29u
c3RfY2FzdDxSZW5kZXJCb3gqPigmY2hpbGQpLT5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsV2lk
dGgob3ZlcnJpZGVXaWR0aCk7CisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Kj4oJmNoaWxk
KS0+c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgob3ZlcnJpZGVXaWR0aCk7CiAgICAgcmV0dXJuIHZh
bHVlcy5tX2V4dGVudDsKIH0KIApAQCAtMTE2OSw5ICsxMTY5LDkgQEAgT3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyRmxleGlibGVCb3g6OmNyb3NzU2l6ZUZvclBlcmNlbnRhZ2VSZXNvbHV0aW9u
KGNvbnN0IFIKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIC8vIEhlcmUgd2Ug
aW1wbGVtZW50IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZmxleGJveC8jYWxnby1zdHJl
dGNoCi0gICAgaWYgKGNoaWxkLmhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAg
ICAgICAgcmV0dXJuIGNoaWxkLm92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoKSAtIGNoaWxk
LnNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKLSAgICAKKyAgICBpZiAoY2hpbGQuaGFzT3ZlcnJp
ZGVMb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgIHJldHVybiBjaGlsZC5vdmVycmlkZUNvbnRlbnRM
b2dpY2FsSGVpZ2h0KCk7CisKICAgICAvLyBXZSBkb24ndCBjdXJyZW50bHkgaW1wbGVtZW50IHRo
ZSBvcHRpbWl6YXRpb24gZnJvbQogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mt
ZmxleGJveC8jZGVmaW5pdGUtc2l6ZXMgY2FzZSAxLiBXaGlsZSB0aGF0CiAgICAgLy8gY291bGQg
c3BlZWQgdXAgYSBzcGVjaWFsaXplZCBjYXNlLCBpdCByZXF1aXJlcyBkZXRlcm1pbmluZyBpZiB3
ZSBoYXZlIGEKQEAgLTExOTAsNyArMTE5MCw3IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRl
ckZsZXhpYmxlQm94OjptYWluU2l6ZUZvclBlcmNlbnRhZ2VSZXNvbHV0aW9uKGNvbnN0IFJlCiAg
ICAgaWYgKCFtYWluQXhpc0xlbmd0aElzRGVmaW5pdGUoY2hpbGQsIExlbmd0aCgwLCBQZXJjZW50
KSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gY2hpbGQuaGFz
T3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpID8gT3B0aW9uYWw8TGF5b3V0VW5pdD4oY2hp
bGQub3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpIC0gY2hpbGQuc2Nyb2xsYmFyTG9naWNh
bEhlaWdodCgpKSA6IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gY2hpbGQuaGFzT3ZlcnJpZGVM
b2dpY2FsSGVpZ2h0KCkgPyBPcHRpb25hbDxMYXlvdXRVbml0PihjaGlsZC5vdmVycmlkZUNvbnRl
bnRMb2dpY2FsSGVpZ2h0KCkpIDogV1RGOjpudWxsb3B0OwogfQogCiBPcHRpb25hbDxMYXlvdXRV
bml0PiBSZW5kZXJGbGV4aWJsZUJveDo6Y2hpbGRMb2dpY2FsSGVpZ2h0Rm9yUGVyY2VudGFnZVJl
c29sdXRpb24oY29uc3QgUmVuZGVyQm94JiBjaGlsZCkKQEAgLTE0MjQsOSArMTQyNCw5IEBAIHN0
YXRpYyBMYXlvdXRVbml0IGFsaWdubWVudE9mZnNldChMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVT
cGFjZSwgSXRlbVBvc2l0aW9uIHBvCiB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpzZXRPdmVycmlk
ZU1haW5BeGlzQ29udGVudFNpemVGb3JDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0
IGNoaWxkUHJlZmVycmVkU2l6ZSkKIHsKICAgICBpZiAoaGFzT3J0aG9nb25hbEZsb3coY2hpbGQp
KQotICAgICAgICBjaGlsZC5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KGNoaWxkUHJl
ZmVycmVkU2l6ZSk7CisgICAgICAgIGNoaWxkLnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChjaGls
ZFByZWZlcnJlZFNpemUgKyBjaGlsZC5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpKTsK
ICAgICBlbHNlCi0gICAgICAgIGNoaWxkLnNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aChj
aGlsZFByZWZlcnJlZFNpemUpOworICAgICAgICBjaGlsZC5zZXRPdmVycmlkZUxvZ2ljYWxXaWR0
aChjaGlsZFByZWZlcnJlZFNpemUgKyBjaGlsZC5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRo
KCkpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpzdGF0aWNNYWluQXhpc1Bv
c2l0aW9uRm9yUG9zaXRpb25lZENoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQpCkBAIC0xODgz
LDggKzE4ODMsOCBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjphcHBseVN0cmV0Y2hBbGlnbm1l
bnRUb0NoaWxkKFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaQogICAgICAgICAgICAgLy8gU28s
IHJlZG8gaXQgaGVyZS4KICAgICAgICAgICAgIGNoaWxkTmVlZHNSZWxheW91dCA9IHRydWU7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKGNoaWxkTmVlZHNSZWxheW91dCB8fCAhY2hpbGQuaGFzT3Zl
cnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAgICAgICAgY2hpbGQuc2V0T3ZlcnJp
ZGVDb250ZW50TG9naWNhbEhlaWdodChkZXNpcmVkTG9naWNhbEhlaWdodCAtIGNoaWxkLmJvcmRl
ckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICBpZiAoY2hpbGROZWVkc1JlbGF5
b3V0IHx8ICFjaGlsZC5oYXNPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgICAgIGNo
aWxkLnNldE92ZXJyaWRlTG9naWNhbEhlaWdodChkZXNpcmVkTG9naWNhbEhlaWdodCk7CiAgICAg
ICAgIGlmIChjaGlsZE5lZWRzUmVsYXlvdXQpIHsKICAgICAgICAgICAgIFNldEZvclNjb3BlPGJv
b2w+IHJlc2V0Q2hpbGRMb2dpY2FsSGVpZ2h0KG1fc2hvdWxkUmVzZXRDaGlsZExvZ2ljYWxIZWln
aHRCZWZvcmVMYXlvdXQsIHRydWUpOwogICAgICAgICAgICAgLy8gV2UgY2FjaGUgdGhlIGNoaWxk
J3MgaW50cmluc2ljIGNvbnRlbnQgbG9naWNhbCBoZWlnaHQgdG8gYXZvaWQgaXQgYmVpbmcKQEAg
LTE5MDUsNyArMTkwNSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmFwcGx5U3RyZXRjaEFs
aWdubWVudFRvQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0VW5pCiAgICAgICAgIGNoaWxk
V2lkdGggPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50QnlNaW5NYXgoY2hp
bGRXaWR0aCwgY3Jvc3NBeGlzQ29udGVudEV4dGVudCgpLCAqdGhpcywgbnVsbHB0cik7CiAgICAg
ICAgIAogICAgICAgICBpZiAoY2hpbGRXaWR0aCAhPSBjaGlsZC5sb2dpY2FsV2lkdGgoKSkgewot
ICAgICAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKGNoaWxkV2lk
dGggLSBjaGlsZC5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCkpOworICAgICAgICAgICAg
Y2hpbGQuc2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgoY2hpbGRXaWR0aCk7CiAgICAgICAgICAgICBj
aGlsZC5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICBjaGls
ZC5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKaW5kZXggOTRmMWE2Y2Q0ZTdiMjY3ZmNhNDdhYTFmODNkMGM5ZWQ0ODc1NzEw
OC4uYmMwYzRlMWIzOThhZWY0YTcwYzAzOTM4YzIzNTNjNzdiZjg4NDVhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgUmVu
ZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQog
ICAgICAgICBMYXlvdXRTaXplIHByZXZpb3VzU2l6ZSA9IHNpemUoKTsKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCB1c2UgUmVuZGVyQmxvY2s6Omhhc0RlZmluaXRlTG9naWNhbEhlaWdodCgp
IGJ1dCBpdCBkb2VzIG5vdCB3b3JrIGZvciBwb3NpdGlvbmVkIHN0dWZmLgogICAgICAgICAvLyBG
SVhNRTogQ29uc2lkZXIgY2FjaGluZyB0aGUgaGFzRGVmaW5pdGVMb2dpY2FsSGVpZ2h0IHZhbHVl
IHRocm91Z2hvdXQgdGhlIGxheW91dC4KLSAgICAgICAgYm9vbCBoYXNEZWZpbml0ZUxvZ2ljYWxI
ZWlnaHQgPSBoYXNPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgfHwgY29tcHV0ZUNvbnRl
bnRMb2dpY2FsSGVpZ2h0KE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxlKCkubG9naWNhbEhlaWdo
dCgpLCBXVEY6Om51bGxvcHQpOworICAgICAgICBib29sIGhhc0RlZmluaXRlTG9naWNhbEhlaWdo
dCA9IGhhc092ZXJyaWRlTG9naWNhbEhlaWdodCgpIHx8IGNvbXB1dGVDb250ZW50TG9naWNhbEhl
aWdodChNYWluT3JQcmVmZXJyZWRTaXplLCBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKSwgV1RGOjpu
dWxsb3B0KTsKIAogICAgICAgICBtX2hhc0FueU9ydGhvZ29uYWxJdGVtID0gZmFsc2U7CiAgICAg
ICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZ0JveCgpKSB7CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBSZW5kZXJH
cmlkOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAg
ICAgICAgICAvLyBHcmlkJ3MgbGF5b3V0IGxvZ2ljIGNvbnRyb2xzIHRoZSBncmlkIGl0ZW0ncyBv
dmVycmlkZSBoZWlnaHQsIGhlbmNlIHdlIG5lZWQgdG8KICAgICAgICAgICAgIC8vIGNsZWFyIGFu
eSBvdmVycmlkZSBoZWlnaHQgc2V0IHByZXZpb3VzbHksIHNvIGl0IGRvZXNuJ3QgaW50ZXJmZXJl
IGluIGN1cnJlbnQgbGF5b3V0CiAgICAgICAgICAgICAvLyBleGVjdXRpb24uIEdyaWQgbmV2ZXIg
dXNlcyB0aGUgb3ZlcnJpZGUgd2lkdGgsIHRoYXQncyB3aHkgd2UgZG9uJ3QgbmVlZCB0byBjbGVh
ciAgaXQuCi0gICAgICAgICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVp
Z2h0KCk7CisgICAgICAgICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZUxvZ2ljYWxIZWlnaHQoKTsK
IAogICAgICAgICAgICAgLy8gV2UgbWF5IG5lZWQgdG8gcmVwZWF0IHRoZSB0cmFjayBzaXppbmcg
aW4gY2FzZSBvZiBhbnkgZ3JpZCBpdGVtIHdhcyBvcnRob2dvbmFsLgogICAgICAgICAgICAgaWYg
KEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbENoaWxkKCp0aGlzLCAqY2hpbGQpKQpA
QCAtMTEyOSw3ICsxMTI5LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjphcHBseVN0cmV0Y2hBbGlnbm1l
bnRUb0NoaWxkSWZOZWVkZWQoUmVuZGVyQm94JiBjaGlsZCkKIAogICAgIC8vIFdlIGNsZWFyIGhl
aWdodCBvdmVycmlkZSB2YWx1ZXMgYmVjYXVzZSB3ZSB3aWxsIGRlY2lkZSBub3cgd2hldGhlciBp
dCdzIGFsbG93ZWQgb3IKICAgICAvLyBub3QsIGV2YWx1YXRpbmcgdGhlIGNvbmRpdGlvbnMgd2hp
Y2ggbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBvbGQgdmFsdWVzIHdlcmUgc2V0LgotICAg
IGNoaWxkLmNsZWFyT3ZlcnJpZGVDb250ZW50TG9naWNhbEhlaWdodCgpOworICAgIGNoaWxkLmNs
ZWFyT3ZlcnJpZGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24gY2hpbGRCbG9ja0RpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURp
cmVjdGlvbkZvckNoaWxkKCp0aGlzLCBjaGlsZCwgRm9yUm93cyk7CiAgICAgYm9vbCBibG9ja0Zs
b3dJc0NvbHVtbkF4aXMgPSBjaGlsZEJsb2NrRGlyZWN0aW9uID09IEZvclJvd3M7CkBAIC0xMTM3
LDcgKzExMzcsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvQ2hp
bGRJZk5lZWRlZChSZW5kZXJCb3gmIGNoaWxkKQogICAgIGlmIChhbGxvd2VkVG9TdHJldGNoQ2hp
bGRCbG9ja1NpemUpIHsKICAgICAgICAgTGF5b3V0VW5pdCBzdHJldGNoZWRMb2dpY2FsSGVpZ2h0
ID0gYXZhaWxhYmxlQWxpZ25tZW50U3BhY2VGb3JDaGlsZEJlZm9yZVN0cmV0Y2hpbmcoR3JpZExh
eW91dEZ1bmN0aW9uczo6b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxk
KGNoaWxkLCBjaGlsZEJsb2NrRGlyZWN0aW9uKS52YWx1ZSgpLCBjaGlsZCk7CiAgICAgICAgIExh
eW91dFVuaXQgZGVzaXJlZExvZ2ljYWxIZWlnaHQgPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsSGVp
Z2h0QnlNaW5NYXgoc3RyZXRjaGVkTG9naWNhbEhlaWdodCwgLTFfbHUpOwotICAgICAgICBjaGls
ZC5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KGRlc2lyZWRMb2dpY2FsSGVpZ2h0IC0g
Y2hpbGQuYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgIGNoaWxkLnNl
dE92ZXJyaWRlTG9naWNhbEhlaWdodChkZXNpcmVkTG9naWNhbEhlaWdodCk7CiAgICAgICAgIGlm
IChkZXNpcmVkTG9naWNhbEhlaWdodCAhPSBjaGlsZC5sb2dpY2FsSGVpZ2h0KCkpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBDYW4gYXZvaWQgbGF5aW5nIG91dCBoZXJlIGluIHNvbWUgY2FzZXMu
IFNlZSBodHRwczovL3dlYmtpdC5vcmcvYi84NzkwNS4KICAgICAgICAgICAgIGNoaWxkLnNldExv
Z2ljYWxIZWlnaHQoMF9sdSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUnVieUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlC
YXNlLmNwcAppbmRleCBmZWY3MWIxZGZkYTg5NjdhOTUyMWRkNjg4N2ViYTc4YmFiNmVmOTVhLi41
YTljMjllZmY3Y2FhOTdhNjgxYWY4NzBlNzE3YjE3M2U2OTE5YzgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKQEAgLTY3LDEzICs2NywxMyBAQCBPcHRp
b25hbDxUZXh0QWxpZ25Nb2RlPiBSZW5kZXJSdWJ5QmFzZTo6b3ZlcnJpZGVUZXh0QWxpZ25tZW50
Rm9yTGluZShib29sIC8qIGVuZAogCiB2b2lkIFJlbmRlclJ1YnlCYXNlOjphZGp1c3RJbmxpbmVE
aXJlY3Rpb25MaW5lQm91bmRzKGludCBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50LCBmbG9hdCYg
bG9naWNhbExlZnQsIGZsb2F0JiBsb2dpY2FsV2lkdGgpIGNvbnN0CiB7Ci0gICAgaWYgKHJ1YnlS
dW4oKS0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkgJiYgZmlyc3RSb290Qm94KCkg
JiYgIWZpcnN0Um9vdEJveCgpLT5uZXh0Um9vdEJveCgpKSB7CisgICAgaWYgKHJ1YnlSdW4oKS0+
aGFzT3ZlcnJpZGVMb2dpY2FsV2lkdGgoKSAmJiBmaXJzdFJvb3RCb3goKSAmJiAhZmlyc3RSb290
Qm94KCktPm5leHRSb290Qm94KCkpIHsKICAgICAgICAgbG9naWNhbExlZnQgKz0gbV9pbml0aWFs
T2Zmc2V0OwogICAgICAgICBsb2dpY2FsV2lkdGggLT0gMiAqIG1faW5pdGlhbE9mZnNldDsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExheW91dFVuaXQgbWF4UHJlZmVycmVkTG9naWNh
bFdpZHRoID0gcnVieVJ1bigpICYmIHJ1YnlSdW4oKS0+aGFzT3ZlcnJpZGVDb250ZW50TG9naWNh
bFdpZHRoKCkgPyBydWJ5UnVuKCktPm92ZXJyaWRlQ29udGVudExvZ2ljYWxXaWR0aCgpIDogdGhp
cy0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBtYXhQcmVmZXJy
ZWRMb2dpY2FsV2lkdGggPSBydWJ5UnVuKCkgJiYgcnVieVJ1bigpLT5oYXNPdmVycmlkZUxvZ2lj
YWxXaWR0aCgpID8gcnVieVJ1bigpLT5vdmVycmlkZUxvZ2ljYWxXaWR0aCgpIDogdGhpcy0+bWF4
UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKG1heFByZWZlcnJlZExvZ2ljYWxXaWR0
aCA+PSBsb2dpY2FsV2lkdGgpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggMjk1MWIyMjQ5YzUyY2Y1NGMxYmM0YzVkZTdmNzU2
NmEwZGM4MTY5Zi4uYmUwNTcxN2JmYWI2MDlhY2YwMTZhN2MwZDRjM2YyZjczODc5ZjE1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC0yODIsOCArMjgyLDgg
QEAgdm9pZCBSZW5kZXJUYWJsZTo6dXBkYXRlTG9naWNhbFdpZHRoKCkKIAogICAgIC8vIE91ciBw
YXJlbnQgbWlnaHQgaGF2ZSBzZXQgYW4gb3ZlcnJpZGUgY29udGVudCBsb2dpY2FsIHdpZHRoIG9u
IHVzLCBzbyB3ZSBtdXN0IHJlc3BlY3QgaXQuIFRoaXMKICAgICAvLyBpcyBob3cgZmxleGJveCBj
b250YWluZXJzIGZsZXggb3Igc3RyZXRjaCB1cy4KLSAgICBpZiAoaGFzT3ZlcnJpZGVDb250ZW50
TG9naWNhbFdpZHRoKCkpCi0gICAgICAgIHNldExvZ2ljYWxXaWR0aChzdGQ6Om1heChsb2dpY2Fs
V2lkdGgoKSwgb3ZlcnJpZGVDb250ZW50TG9naWNhbFdpZHRoKCkpKTsKKyAgICBpZiAoaGFzT3Zl
cnJpZGVMb2dpY2FsV2lkdGgoKSkKKyAgICAgICAgc2V0TG9naWNhbFdpZHRoKHN0ZDo6bWF4KGxv
Z2ljYWxXaWR0aCgpLCBvdmVycmlkZUxvZ2ljYWxXaWR0aCgpKSk7CiAKICAgICAvLyBFbnN1cmUg
d2UgYXJlbid0IGJpZ2dlciB0aGFuIG91ciBtYXgtd2lkdGggc3R5bGUuCiAgICAgTGVuZ3RoIHN0
eWxlTWF4TG9naWNhbFdpZHRoID0gc3R5bGUoKS5sb2dpY2FsTWF4V2lkdGgoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggMDFiYzQ3N2M5NmUz
YTY4MjNkYTM5YjMzOGZhNDk2MDMyNWVkMjJlOC4uMWMyZWZmNzA5ZDVkNGE1MDNhOTdlZGJjZThk
MDk2ZmQ4Njc1YTMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5jcHAKQEAgLTMzMCwxMCArMzMwLDEwIEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVDZWxs
OjpwYWRkaW5nQWZ0ZXIoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlZENTU1BhZGRpbmdBZnRl
cigpICsgaW50cmluc2ljUGFkZGluZ0FmdGVyKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGFibGVDZWxs
OjpzZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0RnJvbVJvd0hlaWdodChMYXlvdXRVbml0
IHJvd0hlaWdodCkKK3ZvaWQgUmVuZGVyVGFibGVDZWxsOjpzZXRPdmVycmlkZUxvZ2ljYWxIZWln
aHRGcm9tUm93SGVpZ2h0KExheW91dFVuaXQgcm93SGVpZ2h0KQogewogICAgIGNsZWFySW50cmlu
c2ljUGFkZGluZygpOwotICAgIHNldE92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQoc3RkOjpt
YXg8TGF5b3V0VW5pdD4oMCwgcm93SGVpZ2h0IC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWln
aHQoKSkpOworICAgIHNldE92ZXJyaWRlTG9naWNhbEhlaWdodChyb3dIZWlnaHQpOwogfQogCiBM
YXlvdXRTaXplIFJlbmRlclRhYmxlQ2VsbDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJFbGVt
ZW50JiBjb250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgYm9vbCogb2Zmc2V0RGVw
ZW5kc09uUG9pbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmgKaW5kZXggZmRmZjQ1ZDc0NzU0ODUzY2NjNmE4ZmMxYzhmMTE1YWVmNTZkMWI3Yy4uOTc1
ZjNiOWE4MmZlNzQwNGI0YTk2NzEwZWMxNTg2NWRjZDMyN2RiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoK
ICAgICBMYXlvdXRVbml0IHBhZGRpbmdCZWZvcmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlv
dXRVbml0IHBhZGRpbmdBZnRlcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRPdmVy
cmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0RnJvbVJvd0hlaWdodChMYXlvdXRVbml0KTsKKyAgICB2
b2lkIHNldE92ZXJyaWRlTG9naWNhbEhlaWdodEZyb21Sb3dIZWlnaHQoTGF5b3V0VW5pdCk7CiAK
ICAgICB2b2lkIHNjcm9sbGJhcnNDaGFuZ2VkKGJvb2wgaG9yaXpvbnRhbFNjcm9sbGJhckNoYW5n
ZWQsIGJvb2wgdmVydGljYWxTY3JvbGxiYXJDaGFuZ2VkKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCA1NTY4YTdl
NmRkZDlhMDQyYmQ1ZWNmZGM2OGJlZTA3ZGQ1ZDBhOGFlLi4yYTRlZmE4MjZlYWE3Yzk5YjkyODJm
MWQ0ZTMxYzc2YjA0YTg2ZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIExheW91dFVuaXQgUmVuZGVy
VGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCgpCiAgICAgICAgICAgICAgICAgLy8g
Rm9yIHJvdyBzcGFubmluZyBjZWxscywgfHJ8IGlzIHRoZSBsYXN0IHJvdyBpbiB0aGUgc3Bhbi4K
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjZWxsU3RhcnRSb3cgPSBjZWxsLT5yb3dJbmRleCgp
OwogCi0gICAgICAgICAgICAgICAgaWYgKGNlbGwtPmhhc092ZXJyaWRlQ29udGVudExvZ2ljYWxI
ZWlnaHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjZWxsLT5oYXNPdmVycmlkZUxvZ2ljYWxI
ZWlnaHQoKSkgewogICAgICAgICAgICAgICAgICAgICBjZWxsLT5jbGVhckludHJpbnNpY1BhZGRp
bmcoKTsKICAgICAgICAgICAgICAgICAgICAgY2VsbC0+Y2xlYXJPdmVycmlkZUNvbnRlbnRTaXpl
KCk7CiAgICAgICAgICAgICAgICAgICAgIGNlbGwtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09u
bHlUaGlzKTsKQEAgLTUyMiw3ICs1MjIsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cmVs
YXlvdXRDZWxsSWZGbGV4ZWQoUmVuZGVyVGFibGVDZWxsJiBjZWxsLCBpbnQgcm93SW5kZQogICAg
ICAgICAvLyBBbGlnbm1lbnQgd2l0aGluIGEgY2VsbCBpcyBiYXNlZCBvZmYgdGhlIGNhbGN1bGF0
ZWQKICAgICAvLyBoZWlnaHQsIHdoaWNoIGJlY29tZXMgaXJyZWxldmFudCBvbmNlIHRoZSBjZWxs
IGhhcwogICAgIC8vIGJlZW4gcmVzaXplZCBiYXNlZCBvZmYgaXRzIHBlcmNlbnRhZ2UuCi0gICAg
Y2VsbC5zZXRPdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0RnJvbVJvd0hlaWdodChyb3dIZWln
aHQpOworICAgIGNlbGwuc2V0T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0RnJvbVJvd0hlaWdodChyb3dI
ZWlnaHQpOwogICAgIGNlbGwubGF5b3V0SWZOZWVkZWQoKTsKICAgICAKICAgICBpZiAoIWNlbGwu
aXNCYXNlbGluZUFsaWduZWQoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDc3N2Y4YTc0ODA3OTQzNjZhNjM1MGNkY2Ez
MmIzODU1NjYyYWYwLi41MmRjMDg3YzY5N2M5OGYxYmFmNWFlMmE5YzgwNDZjYWE0NWMzMDc3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMTAtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2FuaXRpemUgdGhlIHVzYWdlIG9mIG92ZXJy
aWRlIHNpemVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTc0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgcGVyY2VudGFnZS1zaXplLXN1Yml0ZW1zLTAwMS5odG1sIGlzIHBhc3Npbmcgbm93IGFm
dGVyIG1ha2luZyB0aGUgb3ZlcnJpZGVzIHdvcmsgcHJvcGVybHkuCisKKyAgICAgICAgQXBhcnQg
ZnJvbSB0aGF0IHRoZSBvdmVycmlkZSBzYW5pdGl6YXRpb24gYWxsb3dlZCB1cyB0byByZW1vdmUg
cGxhdGZvcm0gc3BlY2lmaWMgZXhwZWN0YXRpb25zIGZvciB0aGUgYm9yZGVyLWZpdC0yLmh0bWwK
KyAgICAgICAgdGVzdCBldmVuIGZvciB0aGUgR1RLIHBvcnQgd2hpY2ggaXMgd29ya2luZyBmaW5l
IG5vdy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFJlbW92ZWQgYSB0ZXN0IHRoYXQg
cGFzc2VzIG5vdy4KKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvZmxleC1mbG93LWF1dG8tbWFyZ2lu
cy1uby1hdmFpbGFibGUtc3BhY2UtYXNzZXJ0Lmh0bWw6IEZpbmUgdHVuZWQgZXhwZWN0YXRpb25z
LgorICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItZml0LTItZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Zhc3QvYm9yZGVycy9ib3JkZXItZml0
LTItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OiBSZW1vdmVkIHR3byB0ZXN0cyB0aGF0IHBhc3Mgbm93LgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9mYXN0L2JvcmRlcnMvYm9yZGVyLWZpdC0yLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtMi1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vZmFzdC9i
b3JkZXJzL2JvcmRlci1maXQtMi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vd3BlL2Zhc3QvYm9yZGVycy9ib3JkZXItZml0LTItZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorCiAyMDIwLTEwLTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggZm9yIGFjY2Vzc2liaWxpdHkgdGVzdHMga2V5ZXZlbnRzLXBvc3RlZC1m
b3ItaW5jcmVtZW50LWFjdGlvbnMuaHRtbCBhbmQga2V5ZXZlbnRzLWZvci1pbmNyZW1lbnQtYWN0
aW9ucy13aXRoLW5vZGUtcmVtb3ZhbC5odG1sIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGI5ODkwMTFmOTMzNTdjZTUzNDQ1MTc0MTYwMTUyNWRiOGUxZmRkMjYu
LjEzYWM2MDI4NmNiMjQ2NWZmOTllMDRiMzQ3M2EyNDU1ODBmYjRkM2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMzg4Nyw3ICszODg3LDYgQEAgd2Via2l0Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZmxleGJveC9vdmVyZmxvdy1hcmUKIHdlYmtp
dC5vcmcvYi8yMTIwNDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZs
ZXhib3gvb3ZlcmZsb3ctYXV0by0wMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZmxl
eGJveC9wZXJjZW50YWdlLWhlaWdodHMtMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8yMTIwNDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZsZXhib3gvcGVyY2VudGFnZS1oZWlnaHRzLTAxNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMjEyMDQ2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1mbGV4Ym94L3BlcmNlbnRhZ2Utc2l6ZS1zdWJpdGVtcy0wMDEuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZmxleGJveC9zY3JvbGxiYXJzLWF1dG8uaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxMjA0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZmxleGJveC9zY3JvbGxiYXJzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtZmxvdy1hdXRvLW1h
cmdpbnMtbm8tYXZhaWxhYmxlLXNwYWNlLWFzc2VydC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L2ZsZXgtZmxvdy1hdXRvLW1hcmdpbnMtbm8tYXZhaWxhYmxlLXNwYWNlLWFzc2VydC5o
dG1sCmluZGV4IDQ5NDI2ZjQ1MThjYmVmNzUxNTA1YTEyMzVhYWJlYmM0YWUyZDU5NDkuLmMwNDlm
YTc0NmI2MzlmZGY0ODcyMTBlZDA4OTA1MDA3NzZhYWM4ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9mbGV4LWZsb3ctYXV0by1tYXJnaW5zLW5vLWF2YWlsYWJsZS1zcGFj
ZS1hc3NlcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1mbG93LWF1
dG8tbWFyZ2lucy1uby1hdmFpbGFibGUtc3BhY2UtYXNzZXJ0Lmh0bWwKQEAgLTEwLDcgKzEwLDcg
QEAKIH0KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91
dC5qcyI+PC9zY3JpcHQ+Ci08YWJiciBkYXRhLWV4cGVjdGVkLWhlaWdodD0zMDIxMDI2OD4KKzxh
YmJyIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PTMwMjEwMjcyPgogICAgIDxpbnB1dD48L2lucHV0Pgog
PC9hYmJyPgogPHA+IGNyYnVnLmNvbS8zODAyMDE6IERvbid0IHNocmluayBiZWxvdyBib3JkZXIv
cGFkZGluZyB3aGVuIHN0cmV0Y2hpbmcgY2hpbGRyZW4gd2l0aGluIGEgZmxleGJveCB3aXRoIG5v
IGF2YWlsYWJsZSBzcGFjZS48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2JvcmRl
cnMvYm9yZGVyLWZpdC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9i
b3JkZXItZml0LTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyMjE5NjkzMGFjMDg3YzYwMGU4
ZGU2OGEzY2U5MGQyOGM5MzdhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvYm9yZGVyLWZpdC0yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTF4NTEgW2JvcmRl
cjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5vbmUgIzAw
MDAwMCldCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDIxKSBzaXplIDB4MAorICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgNTF4NTEgW2JvcmRlcjogKDIxcHgg
bm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5vbmUgIzAwMDAwMCldCisg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0MSwyMSkgc2l6ZSAweDAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTY5MTFlYzkzYWJjNjEwMTAxMDM4
OTU2OWM3MjVhZDVkMWJlNjAyOC4uMTE4NjQ1YzY1MjI0OGMxZjQ1ZTVmZDYxYTI4MjhhZDRjNDVh
ZjcwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3
MTcsOSArMjcxNyw2IEBAIHdlYmtpdC5vcmcvYi8xMDcxMTggZmFzdC9jYW52YXMvY2FudmFzLXF1
YWRyYXRpYy1zYW1lLWVuZHBvaW50Lmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzEw
OTQ2OSBbIERlYnVnIF0gZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sIFsg
Q3Jhc2ggXQogCi13ZWJraXQub3JnL2IvMTExNjA2IGZhc3QvYm9yZGVycy9ib3JkZXItZml0Lmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTE2MDYgZmFzdC9ib3JkZXJzL2JvcmRlci1m
aXQtMi5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi85OTg5MyBzdmcvYW5pbWF0aW9u
cy9tb3ppbGxhL2FuaW1hdGVNb3Rpb24tbXBhdGgtdGFyZ2V0Q2hhbmdlLTEuc3ZnIFsgSW1hZ2VP
bmx5RmFpbHVyZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzExNzU4MiBmYXN0L2ZsZXhib3gvY2xl
YXItb3ZlcmZsb3ctYmVmb3JlLXNjcm9sbC11cGRhdGUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvYm9yZGVycy9ib3JkZXItZml0LTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvYm9yZGVycy9ib3Jk
ZXItZml0LTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTFl
ZWRlMjAyYWIxMzA4OTQzMWUzYWM0ZjViMWE2ZGFmN2RlZGQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0
L2JvcmRlcnMvYm9yZGVyLWZpdC0yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkg
KzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSA3ODR4NTEgW2JvcmRlcjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDAp
ICgyMXB4IG5vbmUgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDIx
KSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgNzg0eDUx
IFtib3JkZXI6ICgyMXB4IG5vbmUgIzAwMDAwMCkgKDMwcHggbm9uZSAjMDAwMDAwKSAoMjFweCBu
b25lICMwMDAwMDApXQotICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNzc0LDIxKSBzaXpl
IDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvYm9yZGVycy9i
b3JkZXItZml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2Jv
cmRlcnMvYm9yZGVyLWZpdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQwMmU0MGQyYjY1NDEx
MWI3YTU1MTI1NzYwN2I3ZjY1NjIzNGFkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L2JvcmRlcnMvYm9yZGVyLWZpdC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0OCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3NDB4NTMKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNzQweDUz
CisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDM2LDApIHNpemUgNjk2eDUzIFtib3JkZXI6ICgx
MHB4IHNvbGlkICMwMDAwMDAwMCkgKDE4cHggc29saWQgIzAwMDAwMDAwKV0KKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgxOCw1KSBzaXplIDY2OHg0MgorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA2Njh4NDIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA2Njg6ICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dWVyIGFkaXBp
c2NpbmcgZWxpdC4gRG9uZWMgYWMgb2Rpby4gRnVzY2UgZmFjaWxpc2lzLiBQcmFlc2VudCBlbGVp
ZmVuZCBkYXBpYnVzIG1pLiBQcm9pbiIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxNCkgd2lk
dGggNjA0OiAibnVsbGEgbnVsbGEsIGhlbmRyZXJpdCB2aXRhZSwgY29uZGltZW50dW0gbm9uLCBp
YWN1bGlzIHNlZCwgc2VtLiBBbGlxdWFtIGEgdHVycGlzIG5lYyBhbnRlIGVsZW1lbnR1bSBkaWdu
aXNzaW0uIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDI4KSB3aWR0aCAyMzE6ICJTdXNwZW5k
aXNzZSBwb3RlbnRpLiBTdXNwZW5kaXNzZSBwb3RlbnRpLiIKKyAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDI5KSBzaXplIDMyeDMyCisgIFJlbmRl
ckltYWdlIHtJTUd9IGF0ICgwLDIxKSBzaXplIDMyeDMyCitsYXllciBhdCAoNTIsNjUpIHNpemUg
NzQweDMyCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoNDQs
NTcpIHNpemUgNzQweDMyCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDI5OSwwKSBzaXplIDQw
NXgyNSBbYm9yZGVyOiAoMTBweCBzb2xpZCAjMDAwMDAwMDApICgxOHB4IHNvbGlkICMwMDAwMDAw
MCkgKDEwcHggc29saWQgIzAwMDAwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgx
MCw1KSBzaXplIDM3N3gxNAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAzNzd4MTQKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzc6ICJBbGlxdWFt
IGEgdHVycGlzIG5lYyBhbnRlIGVsZW1lbnR1bSBkaWduaXNzaW0uIFN1c3BlbmRpc3NlIHBvdGVu
dGkuIgorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQg
KDc2MCw2NSkgc2l6ZSAzMngzMgorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoNzA4LDApIHNpemUg
MzJ4MzIKK2xheWVyIGF0ICg4LDEwMSkgc2l6ZSA3NDB4MzIKKyAgUmVuZGVyQmxvY2sgKHJlbGF0
aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDkzKSBzaXplIDc0MHgzMgorICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgzNiwwKSBzaXplIDE3OHgyNSBbYm9yZGVyOiAoMTBweCBzb2xpZCAjMDAw
MDAwMDApICgxOHB4IHNvbGlkICMwMDAwMDAwMCldCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMTgsNSkgc2l6ZSAxNTB4MTQKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMTUweDE0CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTUwOiAiTG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQuIgorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsMTAxKSBzaXplIDMyeDMyCisgIFJlbmRlckltYWdlIHtJ
TUd9IGF0ICgwLDApIHNpemUgMzJ4MzIKK2xheWVyIGF0ICg1MiwxMzcpIHNpemUgNzQweDE1Mwor
ICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDQ0LDEyOSkgc2l6
ZSA3NDB4MTUzCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3MDR4MTUzIFti
b3JkZXI6ICgxMHB4IHNvbGlkICMwMDAwMDAwMCkgKDE4cHggc29saWQgIzAwMDAwMDAwKSAoMTBw
eCBzb2xpZCAjMDAwMDAwMDApXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDUpIHNp
emUgNjc2eDE0MgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDY3Nngx
MDAgW2JnY29sb3I9I0VFRUVFRV0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUx
MiwwKSBzaXplIDE2NHgxNAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUxMiwwKSB3aWR0aCAx
NjQ6ICJMb29rIGF0IG1lLCBJJ20gYW4gYXR0YWNobWVudCEiCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoOCwxMDApIHNpemUgNjY4eDQyCisgICAgICAgICAgdGV4dCBydW4gYXQgKDgs
MTAwKSB3aWR0aCA2Njg6ICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dWVy
IGFkaXBpc2NpbmcgZWxpdC4gRG9uZWMgYWMgb2Rpby4gRnVzY2UgZmFjaWxpc2lzLiBQcmFlc2Vu
dCBlbGVpZmVuZCBkYXBpYnVzIG1pLiBQcm9pbiIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzIs
MTE0KSB3aWR0aCA2MDQ6ICJudWxsYSBudWxsYSwgaGVuZHJlcml0IHZpdGFlLCBjb25kaW1lbnR1
bSBub24sIGlhY3VsaXMgc2VkLCBzZW0uIEFsaXF1YW0gYSB0dXJwaXMgbmVjIGFudGUgZWxlbWVu
dHVtIGRpZ25pc3NpbS4iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDQ0NSwxMjgpIHdpZHRoIDIz
MTogIlN1c3BlbmRpc3NlIHBvdGVudGkuIFN1c3BlbmRpc3NlIHBvdGVudGkuIgorICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDc2MCwyNTgpIHNpemUg
MzJ4MzIKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDcwOCwxMjEpIHNpemUgMzJ4MzIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2JvcmRlcnMvYm9yZGVyLWZpdC0y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2JvcmRlcnMvYm9y
ZGVyLWZpdC0yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjIy
MTk2OTMwYWMwODdjNjAwZThkZTY4YTNjZTkwZDI4YzkzN2FjMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvZmFz
dC9ib3JkZXJzL2JvcmRlci1maXQtMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5
ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNTF4NTEgW2JvcmRlcjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDAp
ICgyMXB4IG5vbmUgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDIx
KSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgNTF4NTEg
W2JvcmRlcjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5v
bmUgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0MSwyMSkgc2l6ZSAw
eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2JvcmRlcnMvYm9y
ZGVyLWZpdC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Jv
cmRlcnMvYm9yZGVyLWZpdC0yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjIyMTk2OTMwYWMwODdjNjAwZThkZTY4YTNjZTkwZDI4YzkzN2FjMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw5ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0g
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgNTF4NTEgW2JvcmRlcjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25l
ICMwMDAwMDApICgyMXB4IG5vbmUgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgxLDIxKSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNp
emUgNTF4NTEgW2JvcmRlcjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDAp
ICgyMXB4IG5vbmUgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0MSwy
MSkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL2Zh
c3QvYm9yZGVycy9ib3JkZXItZml0LTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyMjE5NjkzMGFjMDg3YzYwMGU4ZGU2OGEzY2U5MGQy
OGM5MzdhYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtMi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTF4NTEgW2JvcmRlcjogKDIxcHgg
bm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5vbmUgIzAwMDAwMCldCi0g
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDIxKSBzaXplIDB4MAotICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgNTF4NTEgW2JvcmRlcjogKDIxcHggbm9uZSAjMDAw
MDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5vbmUgIzAwMDAwMCldCi0gICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICg0MSwyMSkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dwZS9mYXN0L2JvcmRlcnMvYm9yZGVyLWZpdC0yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9mYXN0L2JvcmRlcnMvYm9yZGVyLWZpdC0yLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjIyMTk2OTMwYWMwODdjNjAw
ZThkZTY4YTNjZTkwZDI4YzkzN2FjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvZmFzdC9ib3JkZXJzL2JvcmRl
ci1maXQtMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLWxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHg1ODQKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTF4NTEgW2JvcmRl
cjogKDIxcHggbm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5vbmUgIzAw
MDAwMCldCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDIxKSBzaXplIDB4MAotICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgNTF4NTEgW2JvcmRlcjogKDIxcHgg
bm9uZSAjMDAwMDAwKSAoMzBweCBub25lICMwMDAwMDApICgyMXB4IG5vbmUgIzAwMDAwMCldCi0g
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0MSwyMSkgc2l6ZSAweDAK
</data>
<flag name="review"
          id="427364"
          type_id="1"
          status="+"
          setter="rego"
    />
          </attachment>
      

    </bug>

</bugzilla>