<?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>233244</bug_id>
          
          <creation_ts>2021-11-16 23:57:47 -0800</creation_ts>
          <short_desc>[TextureMapper][GraphicsLayerTextureMapper][GraphicsLayerWC] setBackgroundColor support</short_desc>
          <delta_ts>2022-01-12 13:51:23 -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>Compositing</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=235152</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815844</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-16 23:57:47 -0800</bug_when>
    <thetext>[TextureMapper][GraphicsLayerTextureMapper][GraphicsLayerWC] setBackgroundColor support

TextureMapper, GraphicsLayerTextureMapper and GraphicsLayerWC don&apos;t support setBackgroundColor now.
setBackgroundColor is used for &quot;painting flush&quot; of Web Inspector Elements tab.

1. Start WinCairo MiniBrowser
2. Open Web Inspector
3. Push &quot;Enable painting flush&quot; brush icon button
4. Browsing some web sites

No repaint rect is painted with semi-transparent red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815845</commentid>
    <comment_count>1</comment_count>
      <attachid>444488</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-17 00:03:39 -0800</bug_when>
    <thetext>Created attachment 444488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816129</commentid>
    <comment_count>2</comment_count>
      <attachid>444488</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-11-17 14:30:01 -0800</bug_when>
    <thetext>Comment on attachment 444488
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperSolidColorLayer.h:36
&gt; +    static Color blendWithOpacity(const Color&amp; color, float opacity)

This seems more like a utility method for Color. Anything like this already exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816192</commentid>
    <comment_count>3</comment_count>
      <attachid>444488</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-11-17 16:25:39 -0800</bug_when>
    <thetext>Comment on attachment 444488
Patch

This patch causes 161 unexpected failures on GTK.

This was reported by the GTK EWS Layout Test bot (still not public, is in testing phase)

I tested it locally and I confirm the failures are new.

Results here: https://people.igalia.com/clopez/wkbug/233244/layout-test-results/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816205</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-17 16:39:16 -0800</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #3)

Thank you very much! I will test it and fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816215</commentid>
    <comment_count>5</comment_count>
      <attachid>444488</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-17 16:49:06 -0800</bug_when>
    <thetext>Comment on attachment 444488
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/texmap/TextureMapperSolidColorLayer.h:36
&gt;&gt; +    static Color blendWithOpacity(const Color&amp; color, float opacity)
&gt; 
&gt; This seems more like a utility method for Color. Anything like this already exist?

Color::colorWithAlphaMultipliedBy is the one.
By grepping WebKit source with colorWithAlphaMultipliedBy, some code use colorWithAlphaMultipliedBy directly.
I think this color calculation for solid color layers isn&apos;t performance critical.
I think we can simply use Color::colorWithAlphaMultipliedBy here. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816328</commentid>
    <comment_count>6</comment_count>
      <attachid>444643</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-17 23:41:27 -0800</bug_when>
    <thetext>Created attachment 444643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816437</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-11-18 08:20:28 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #6)
&gt; Created attachment 444643 [details]
&gt; Patch

This last version of the patch passed just fine on the beta GTK EWS. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816745</commentid>
    <comment_count>8</comment_count>
      <attachid>444643</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-18 22:26:59 -0800</bug_when>
    <thetext>Comment on attachment 444643
Patch

Clearing flags on attachment: 444643

Committed r286046 (244433@main): &lt;https://commits.webkit.org/244433@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816746</commentid>
    <comment_count>9</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-11-18 22:27:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816747</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-18 22:28:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/85587165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830323</commentid>
    <comment_count>11</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-01-12 13:51:23 -0800</bug_when>
    <thetext>It introduced a bug.
Filed: Bug 235152 – [WinCairo] REGRESSION(r286046): WebInspector doesn&apos;t render element highlight</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444488</attachid>
            <date>2021-11-17 00:03:39 -0800</date>
            <delta_ts>2021-11-17 23:41:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233244-20211117170338.patch</filename>
            <type>text/plain</type>
            <size>19519</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmZDIwMmI4ODY4NzI5
YzliNWE1YjM0N2MyZWE0ZGEyNGIxZTE4OS4uNjRhZDQ5Nzg4OWY0ZDliNGY5Yjg3NjgzZWFlMTU3
NWU3YjlhNzkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTExLTE2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtUZXh0dXJl
TWFwcGVyXVtHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcl1bR3JhcGhpY3NMYXllcldDXSBzZXRC
YWNrZ3JvdW5kQ29sb3Igc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzMjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGV4dHVyZU1hcHBlciwgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIg
YW5kIEdyYXBoaWNzTGF5ZXJXQworICAgICAgICBkaWRuJ3Qgc3VwcG9ydCBzZXRCYWNrZ3JvdW5k
Q29sb3IuIHNldEJhY2tncm91bmRDb2xvciBpcyB1c2VkIGZvcgorICAgICAgICAicGFpbnRpbmcg
Zmx1c2giIGZlYXR1cmUgb2YgV2ViIEluc3BlY3RvciBFbGVtZW50cyB0YWIuCisKKyAgICAgICAg
QWRkZWQgYSBuZXcgY2xhc3MgVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllciB0byBkcmF3IGEg
c29saWQKKyAgICAgICAgbGF5ZXIgZm9yIHRoZSBwcmltYXJ5IGxheWVyIGFuZCBjb250ZW50cyBs
YXllci4KKworICAgICAgICAqIHBsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2U6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRCYWNr
Z3JvdW5kQ29sb3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvU29saWRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5ZXJDaGFuZ2VzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6Y29tcHV0ZU92ZXJsYXBSZWdpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6c2V0U29saWRDb2xvcik6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEJhY2tncm91bmRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpibGVuZFdpdGhPcGFjaXR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTb2xpZENvbG9yTGF5
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU29saWRDb2xvckxh
eWVyOjpzZXRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU29saWRDb2xv
ckxheWVyOjpibGVuZFdpdGhPcGFjaXR5KToKKwogMjAyMS0xMS0xNSAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHIyODUyMzUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmZmMDgzODQwMDRkNjViZDg1NGNhZWQ1ZGQxZDA3MDM3YzRmN2FlNy4uYTA1OGNiMzAyNDMxNzk0
YmRmMTNjYzBmYzQzMTc0ZDEzOTk0NjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAy
MS0xMS0xNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAg
ICAgICBbVGV4dHVyZU1hcHBlcl1bR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXJdW0dyYXBoaWNz
TGF5ZXJXQ10gc2V0QmFja2dyb3VuZENvbG9yIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzI0NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1Nj
ZW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V0NTY2VuZTo6dXBkYXRlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvR3JhcGhpY3NMYXllcldDLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6R3JhcGhpY3NMYXllcldDOjpzZXRCYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViS2l0
OjpHcmFwaGljc0xheWVyV0M6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93Yy9HcmFwaGljc0xheWVyV0MuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvV0NVcGF0ZUluZm8uaDoKKyAgICAgICAgKFdl
YktpdDo6V0NMYXllclVwYXRlSW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V0NMYXllclVwYXRlSW5mbzo6ZGVjb2RlKToKKwogMjAyMS0xMS0xNSAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBNYWtlIHZhbGdyaW5kIHdvcmsg
cHJvcGVybHkgd2l0aG91dCBleHRyYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCmluZGV4IDU1M2I1YWU3NTZkYmZlYWNh
ODljNDYyYWM1ZTkwMDM5MzUxMTEzMDcuLmFmZGE4YTQyYTFkMDFlY2JjODc3YWI4MGQxOGJhYzQ1
YWQ3ZGYxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBw
ZXIuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFr
ZQpAQCAtMzUsNiArMzUsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eVByb3ZpZGVyLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmgKICkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDU4MDgwZDRlMWFkNDExOGM3NTIzZTQ3M2Yw
NjgwNjMwZmEzYmFiYTkuLjNkN2I4NjM5NjZkN2E5NzRiMDEzNjBhM2M1MmFjY2NlMTNjNjBjNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMjU1LDYg
KzI1NSwxNCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRCYWNrZmFjZVZp
c2liaWxpdHkoYm9vbCB2YWx1ZSkKICAgICBub3RpZnlDaGFuZ2UoQmFja2ZhY2VWaXNpYmlsaXR5
Q2hhbmdlKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0QmFja2dy
b3VuZENvbG9yKGNvbnN0IENvbG9yJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gYmFja2dy
b3VuZENvbG9yKCkpCisgICAgICAgIHJldHVybjsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRCYWNr
Z3JvdW5kQ29sb3IodmFsdWUpOworICAgIG5vdGlmeUNoYW5nZShCYWNrZ3JvdW5kQ29sb3JDaGFu
Z2UpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRPcGFjaXR5KGZs
b2F0IHZhbHVlKQogewogICAgIGlmICh2YWx1ZSA9PSBvcGFjaXR5KCkpCkBAIC0yODYsNyArMjk0
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb1NvbGlk
Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3NvbGlk
Q29sb3IgPSBjb2xvcjsKLSAgICBub3RpZnlDaGFuZ2UoQmFja2dyb3VuZENvbG9yQ2hhbmdlKTsK
KyAgICBub3RpZnlDaGFuZ2UoU29saWRDb2xvckNoYW5nZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCkBAIC00
NzUsMTAgKzQ4MywxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRM
YXllckNoYW5nZXMoKQogICAgIGlmIChtX2NoYW5nZU1hc2sgJiBCYWNrZmFjZVZpc2liaWxpdHlD
aGFuZ2UpCiAgICAgICAgIG1fbGF5ZXIuc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJhY2tmYWNlVmlz
aWJpbGl0eSgpKTsKIAorICAgIGlmIChtX2NoYW5nZU1hc2sgJiBCYWNrZ3JvdW5kQ29sb3JDaGFu
Z2UpCisgICAgICAgIG1fbGF5ZXIuc2V0QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRDb2xvcigp
KTsKKwogICAgIGlmIChtX2NoYW5nZU1hc2sgJiBPcGFjaXR5Q2hhbmdlKQogICAgICAgICBtX2xh
eWVyLnNldE9wYWNpdHkob3BhY2l0eSgpKTsKIAotICAgIGlmIChtX2NoYW5nZU1hc2sgJiBCYWNr
Z3JvdW5kQ29sb3JDaGFuZ2UpCisgICAgaWYgKG1fY2hhbmdlTWFzayAmIFNvbGlkQ29sb3JDaGFu
Z2UpCiAgICAgICAgIG1fbGF5ZXIuc2V0U29saWRDb2xvcihtX3NvbGlkQ29sb3IpOwogCiAgICAg
aWYgKG1fY2hhbmdlTWFzayAmIEZpbHRlckNoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmgKaW5kZXggZTgwY2FhMGFjODkwOTE5YTg0MzNhMDVkMjA5MDIyMzc3ZTQy
ODhkNy4uYTEwMzRkYTRhOGI0ZDIzNGEzZjQxZDFiYTMxN2NmZmFhMTg2MTI5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q29udGVudHNWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0Q29udGVudHNPcGFxdWUoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRCYWNrZmFjZVZp
c2liaWxpdHkoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29u
c3QgQ29sb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpIG92ZXJyaWRl
OwogICAgIGJvb2wgc2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBzZXRCYWNrZHJvcEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92
ZXJyaWRlOwpAQCAtMTQ5LDYgKzE1MCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgQW5pbWF0aW9u
U3RhcnRlZCA9ICAgICAgICAgICgxTCA8PCAyNiksCiAgICAgICAgIEJhY2tkcm9wTGF5ZXJDaGFu
Z2UgPSAgICAgICAoMUwgPDwgMjcpLAorICAgICAgICBTb2xpZENvbG9yQ2hhbmdlID0gICAgICAg
ICAgKDFMIDw8IDI4KSwKICAgICB9OwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2sp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDE3NjhkYjRjNDYzZTQyYzFjNmJh
MGE0YjFhMTU2NzJhM2MwN2JiYTYuLjllMzFkOWQ4OTI4ZDQ1NGUzYmFhYTRkYjc0MTA4MDE4NWY5
MDFhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0xNDQsMTggKzE0NCwxMyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnQoVGV4dHVyZU1hcHBlciYgdGV4dHVyZU1h
cHBlcikKICAgICBwYWludFJlY3Vyc2l2ZShvcHRpb25zKTsKIH0KIAotc3RhdGljIENvbG9yIGJs
ZW5kV2l0aE9wYWNpdHkoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBvcGFjaXR5KQotewotICAg
IGlmIChjb2xvci5pc09wYXF1ZSgpICYmIG9wYWNpdHkgPT0gMS4pCi0gICAgICAgIHJldHVybiBj
b2xvcjsKLQotICAgIHJldHVybiBjb2xvci5jb2xvcldpdGhBbHBoYU11bHRpcGxpZWRCeShvcGFj
aXR5KTsKLX0KLQogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZihUZXh0dXJlTWFw
cGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmICghbV9zdGF0ZS52aXNpYmxlIHx8
ICFtX3N0YXRlLmNvbnRlbnRzVmlzaWJsZSkKICAgICAgICAgcmV0dXJuOworICAgIGF1dG8gdGFy
Z2V0UmVjdCA9IGxheWVyUmVjdCgpOworICAgIGlmICh0YXJnZXRSZWN0LmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gV2UgYXBwbHkgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm0g
dG8gY29tcGVuc2F0ZSBmb3IgcGFpbnRpbmcgaW50byBhIHN1cmZhY2UsIGFuZCB0aGVuIGFwcGx5
IHRoZSBvZmZzZXQgc28gdGhhdCB0aGUgcGFpbnRpbmcgZml0cyBpbiB0aGUgdGFyZ2V0IHJlY3Qu
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwpAQCAtMTYzLDE5ICsxNTgsMTAg
QEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZihUZXh0dXJlTWFwcGVyUGFpbnRP
cHRpb25zJiBvcHRpb25zKQogICAgIHRyYW5zZm9ybS5tdWx0aXBseShvcHRpb25zLnRyYW5zZm9y
bSk7CiAgICAgdHJhbnNmb3JtLm11bHRpcGx5KG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkKTsK
IAotICAgIGlmIChtX3N0YXRlLnNvbGlkQ29sb3IuaXNWYWxpZCgpICYmICFtX3N0YXRlLmNvbnRl
bnRzUmVjdC5pc0VtcHR5KCkgJiYgbV9zdGF0ZS5zb2xpZENvbG9yLmlzVmlzaWJsZSgpKSB7Ci0g
ICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5kcmF3U29saWRDb2xvcihtX3N0YXRlLmNvbnRl
bnRzUmVjdCwgdHJhbnNmb3JtLCBibGVuZFdpdGhPcGFjaXR5KG1fc3RhdGUuc29saWRDb2xvciwg
b3B0aW9ucy5vcGFjaXR5KSwgdHJ1ZSk7Ci0gICAgICAgIGlmIChtX3N0YXRlLnNob3dEZWJ1Z0Jv
cmRlcnMpCi0gICAgICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuZHJhd0JvcmRlcihtX3N0
YXRlLmRlYnVnQm9yZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgbGF5ZXJSZWN0
KCksIHRyYW5zZm9ybSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBvcHRpb25zLnRl
eHR1cmVNYXBwZXIuc2V0V3JhcE1vZGUoVGV4dHVyZU1hcHBlcjo6U3RyZXRjaFdyYXApOwogICAg
IG9wdGlvbnMudGV4dHVyZU1hcHBlci5zZXRQYXR0ZXJuVHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4KCkpOwogCiAgICAgaWYgKG1fYmFja2luZ1N0b3JlKSB7Ci0gICAgICAgIEZsb2F0UmVj
dCB0YXJnZXRSZWN0ID0gbGF5ZXJSZWN0KCk7Ci0gICAgICAgIEFTU0VSVCghdGFyZ2V0UmVjdC5p
c0VtcHR5KCkpOwogICAgICAgICBtX2JhY2tpbmdTdG9yZS0+cGFpbnRUb1RleHR1cmVNYXBwZXIo
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLCB0YXJnZXRSZWN0LCB0cmFuc2Zvcm0sIG9wdGlvbnMub3Bh
Y2l0eSk7CiAgICAgICAgIGlmIChtX3N0YXRlLnNob3dEZWJ1Z0JvcmRlcnMpCiAgICAgICAgICAg
ICBtX2JhY2tpbmdTdG9yZS0+ZHJhd0JvcmRlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIG1fc3Rh
dGUuZGVidWdCb3JkZXJDb2xvciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoLCB0YXJnZXRSZWN0
LCB0cmFuc2Zvcm0pOwpAQCAtMTk1LDggKzE4MSw2IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVy
OjpwYWludFNlbGYoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLnNldFBhdHRlcm5UcmFuc2Zvcm0ocGF0dGVyblRyYW5zZm9y
bSk7CiAgICAgfQogCi0gICAgQVNTRVJUKCFsYXllclJlY3QoKS5pc0VtcHR5KCkpOwotCiAgICAg
Ym9vbCBzaG91bGRDbGlwID0gbV9zdGF0ZS5jb250ZW50c0NsaXBwaW5nUmVjdC5pc1JvdW5kZWQo
KSB8fCAhbV9zdGF0ZS5jb250ZW50c0NsaXBwaW5nUmVjdC5yZWN0KCkuY29udGFpbnMobV9zdGF0
ZS5jb250ZW50c1JlY3QpOwogICAgIGlmIChzaG91bGRDbGlwKSB7CiAgICAgICAgIG9wdGlvbnMu
dGV4dHVyZU1hcHBlci5iZWdpbkNsaXAodHJhbnNmb3JtLCBtX3N0YXRlLmNvbnRlbnRzQ2xpcHBp
bmdSZWN0KTsKQEAgLTM0Niw3ICszMzAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Y29t
cHV0ZU92ZXJsYXBSZWdpb25zKENvbXB1dGVPdmVybGFwUmVnaW9uRGF0YSYgZGF0YSwgYwogICAg
IEZsb2F0UmVjdCBsb2NhbEJvdW5kaW5nUmVjdDsKICAgICBpZiAobV9iYWNraW5nU3RvcmUgfHwg
bV9zdGF0ZS5tYXNrc1RvQm91bmRzIHx8IG1fc3RhdGUubWFza0xheWVyIHx8IGhhc0ZpbHRlcnMo
KSkKICAgICAgICAgbG9jYWxCb3VuZGluZ1JlY3QgPSBsYXllclJlY3QoKTsKLSAgICBlbHNlIGlm
IChtX2NvbnRlbnRzTGF5ZXIgfHwgbV9zdGF0ZS5zb2xpZENvbG9yLmlzVmlzaWJsZSgpKQorICAg
IGVsc2UgaWYgKG1fY29udGVudHNMYXllcikKICAgICAgICAgbG9jYWxCb3VuZGluZ1JlY3QgPSBt
X3N0YXRlLmNvbnRlbnRzUmVjdDsKIAogICAgIGlmIChtX2N1cnJlbnRGaWx0ZXJzLmhhc091dHNl
dHMoKSAmJiAhbV9zdGF0ZS5iYWNrZHJvcExheWVyKSB7CkBAIC02NzYsNyArNjYwLDE0IEBAIHZv
aWQgVGV4dHVyZU1hcHBlckxheWVyOjpzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpCiAKIHZvaWQg
VGV4dHVyZU1hcHBlckxheWVyOjpzZXRTb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsK
LSAgICBtX3N0YXRlLnNvbGlkQ29sb3IgPSBjb2xvcjsKKyAgICBtX2NvbnRlbnRzQ29sb3Iuc2V0
Q29sb3IoY29sb3IpOworICAgIG1fY29udGVudHNMYXllciA9IGNvbG9yLmlzVmFsaWQoKSA/ICZt
X2NvbnRlbnRzQ29sb3IgOiBudWxscHRyOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6
c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX2JhY2tncm91
bmRDb2xvci5zZXRDb2xvcihjb2xvcik7CisgICAgbV9iYWNraW5nU3RvcmUgPSBjb2xvci5pc1Zh
bGlkKCkgPyAmbV9iYWNrZ3JvdW5kQ29sb3IgOiBudWxscHRyOwogfQogCiB2b2lkIFRleHR1cmVN
YXBwZXJMYXllcjo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oCmluZGV4IDEwYzVkMzk4NmIxMTAyODBlOTFjZTAxOGUxNjg1
NmI5NTI1ODFlNzcuLmQ3M2MxNGVkOTZhMWU0MTM3YmQ4YmM4ODRiZGQzZjFlNjUwNjc0YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmgKQEAgLTIzLDcgKzIzLDcgQEAKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlci5oIgotI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIKKyNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyU29saWRDb2xvckxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTc3LDYgKzc3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJvb2wpOwogICAgIHZvaWQg
c2V0T3BhY2l0eShmbG9hdCk7CiAgICAgdm9pZCBzZXRTb2xpZENvbG9yKGNvbnN0IENvbG9yJik7
CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2b2lkIHNl
dENvbnRlbnRzVGlsZVNpemUoY29uc3QgRmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRDb250ZW50
c1RpbGVQaGFzZShjb25zdCBGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldENvbnRlbnRzQ2xpcHBp
bmdSZWN0KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKTsKQEAgLTE1Nyw2ICsxNTgsOCBAQCBwcml2
YXRlOgogICAgIFdlYWtQdHI8VGV4dHVyZU1hcHBlckxheWVyPiBtX2VmZmVjdFRhcmdldDsKICAg
ICBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlKiBtX2JhY2tpbmdTdG9yZSB7IG51bGxwdHIgfTsK
ICAgICBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbV9jb250ZW50c0xheWVyIHsgbnVsbHB0
ciB9OworICAgIFRleHR1cmVNYXBwZXJTb2xpZENvbG9yTGF5ZXIgbV9iYWNrZ3JvdW5kQ29sb3I7
CisgICAgVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllciBtX2NvbnRlbnRzQ29sb3I7CiAgICAg
ZmxvYXQgbV9jdXJyZW50T3BhY2l0eSB7IDEuMCB9OwogICAgIEZpbHRlck9wZXJhdGlvbnMgbV9j
dXJyZW50RmlsdGVyczsKICAgICBmbG9hdCBtX2NlbnRlclogeyAwIH07CkBAIC0xNzcsNyArMTgw
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgV2Vha1B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IHJlcGxp
Y2FMYXllcjsKICAgICAgICAgV2Vha1B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IGJhY2tkcm9wTGF5
ZXI7CiAgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgYmFja2Ryb3BGaWx0ZXJzUmVjdDsKLSAgICAg
ICAgQ29sb3Igc29saWRDb2xvcjsKICAgICAgICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJzOwog
ICAgICAgICBDb2xvciBkZWJ1Z0JvcmRlckNvbG9yOwogICAgICAgICBmbG9hdCBkZWJ1Z0JvcmRl
cldpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTb2xpZENvbG9yTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU29saWRDb2xvckxheWVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzQyNGUzMzM1ZDNhNTdiYWEyZDIwZGZjM2FlY2Q4NGQ1NGRhYmFiMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyU29saWRDb2xvckxheWVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0dXJlTWFwcGVyU29saWRDb2xvckxh
eWVyIDogcHVibGljIFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgeworcHVibGljOgorICAgIHZv
aWQgc2V0Q29sb3IoQ29sb3IgY29sb3IpIHsgbV9jb2xvciA9IGNvbG9yOyB9CisKKyAgICBzdGF0
aWMgQ29sb3IgYmxlbmRXaXRoT3BhY2l0eShjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IG9wYWNp
dHkpCisgICAgeworICAgICAgICBpZiAoY29sb3IuaXNPcGFxdWUoKSAmJiBvcGFjaXR5ID09IDEp
CisgICAgICAgICAgICByZXR1cm4gY29sb3I7CisgICAgICAgIHJldHVybiBjb2xvci5jb2xvcldp
dGhBbHBoYU11bHRpcGxpZWRCeShvcGFjaXR5KTsKKyAgICB9CisKKyAgICB2b2lkIHBhaW50VG9U
ZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxv
YXQgb3BhY2l0eSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHRleHR1cmVNYXBwZXIuZHJhd1Nv
bGlkQ29sb3IodGFyZ2V0UmVjdCwgdHJhbnNmb3JtLCBibGVuZFdpdGhPcGFjaXR5KG1fY29sb3Is
IG9wYWNpdHkpLCB0cnVlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ29sb3IgbV9jb2xvcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNwcAppbmRleCA4MDRlOTBiZjFjNjMyMDhjM2I1Mzc2
YWU2NzIzNWM3YzY4OTIwMDA5Li5iMzU3NDVjZDVlYWM5YWNjN2MzZDEwMWEzOTgwOGNiMWViMTY2
ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NT
Y2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2Nl
bmUuY3BwCkBAIC0xMzcsNiArMTM3LDggQEAgdm9pZCBXQ1NjZW5lOjp1cGRhdGUoV0NVcGF0ZUlu
Zm8mJiB1cGRhdGUsIFZlY3RvcjxSZWZQdHI8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wKICAgICAg
ICAgICAgIGxheWVyLT50ZXhtYXBMYXllci5zZXREZWJ1Z1Zpc3VhbHMobGF5ZXJVcGRhdGUuc2hv
d0RlYnVnQm9yZGVyLCBsYXllclVwZGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBsYXllclVwZGF0ZS5k
ZWJ1Z0JvcmRlcldpZHRoKTsKICAgICAgICAgaWYgKGxheWVyVXBkYXRlLmNoYW5nZXMgJiBXQ0xh
eWVyQ2hhbmdlOjpSZXBhaW50Q291bnQpCiAgICAgICAgICAgICBsYXllci0+dGV4bWFwTGF5ZXIu
c2V0UmVwYWludENvdW50ZXIobGF5ZXJVcGRhdGUuc2hvd1JlcGFpbnRDb3VudGVyLCBsYXllclVw
ZGF0ZS5yZXBhaW50Q291bnQpOworICAgICAgICBpZiAobGF5ZXJVcGRhdGUuY2hhbmdlcyAmIFdD
TGF5ZXJDaGFuZ2U6OkJhY2tncm91bmRDb2xvcikKKyAgICAgICAgICAgIGxheWVyLT50ZXhtYXBM
YXllci5zZXRCYWNrZ3JvdW5kQ29sb3IobGF5ZXJVcGRhdGUuYmFja2dyb3VuZENvbG9yKTsKICAg
ICAgICAgaWYgKGxheWVyVXBkYXRlLmNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpPcGFjaXR5KQog
ICAgICAgICAgICAgbGF5ZXItPnRleG1hcExheWVyLnNldE9wYWNpdHkobGF5ZXJVcGRhdGUub3Bh
Y2l0eSk7CiAgICAgICAgIGlmIChsYXllclVwZGF0ZS5jaGFuZ2VzICYgV0NMYXllckNoYW5nZTo6
VHJhbnNmb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2MvR3JhcGhpY3NMYXllcldDLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L3djL0dyYXBoaWNzTGF5ZXJXQy5jcHAKaW5kZXggMzlkZTVlOTZkOGU2NjIzYzcwZTkwMDZhMDcy
OTI3YjNmYzFjNjhlZC4uMGY3ZmMxYjU5MGVmYTAzZWI0ZjYwNmFjY2MwNGM2MWQwZDBkMDVmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvR3JhcGhpY3NM
YXllcldDLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9HcmFw
aGljc0xheWVyV0MuY3BwCkBAIC0yMTYsNiArMjE2LDE0IEBAIHZvaWQgR3JhcGhpY3NMYXllcldD
OjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgdmFsdWUpCiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3Jz
KCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllcldDOjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3Qg
V2ViQ29yZTo6Q29sb3ImIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9PSBiYWNrZ3JvdW5kQ29s
b3IoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEdyYXBoaWNzTGF5ZXI6OnNldEJhY2tncm91bmRD
b2xvcih2YWx1ZSk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKFdDTGF5ZXJDaGFuZ2U6
OkJhY2tncm91bmRDb2xvcik7Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllcldDOjpzZXRPcGFjaXR5
KGZsb2F0IHZhbHVlKQogewogICAgIGlmICh2YWx1ZSA9PSBvcGFjaXR5KCkpCkBAIC00NDYsNiAr
NDU0LDggQEAgdm9pZCBHcmFwaGljc0xheWVyV0M6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKQogICAgICAgICB1cGRhdGUuc2hvd1JlcGFpbnRDb3VudGVyID0gaXNTaG93
aW5nUmVwYWludENvdW50ZXIoKTsKICAgICAgICAgdXBkYXRlLnJlcGFpbnRDb3VudCA9IHJlcGFp
bnRDb3VudCgpOwogICAgIH0KKyAgICBpZiAodXBkYXRlLmNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdl
OjpCYWNrZ3JvdW5kQ29sb3IpCisgICAgICAgIHVwZGF0ZS5iYWNrZ3JvdW5kQ29sb3IgPSBiYWNr
Z3JvdW5kQ29sb3IoKTsKICAgICBpZiAodXBkYXRlLmNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpP
cGFjaXR5KQogICAgICAgICB1cGRhdGUub3BhY2l0eSA9IG9wYWNpdHkoKTsKICAgICBpZiAodXBk
YXRlLmNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpUcmFuc2Zvcm0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9HcmFwaGljc0xheWVyV0MuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0dyYXBoaWNzTGF5ZXJXQy5oCmluZGV4IGFi
NWVjNDcwOTExMmU4ZDZhNWIxZTczZTQ3NTFkZGI4M2FkNzA0ZjcuLjk2Mjc0MWZkZDAxNWEyMzhk
NDhkNDU3MDRjNTY2ZjZhMDk4NWViZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3djL0dyYXBoaWNzTGF5ZXJXQy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3djL0dyYXBoaWNzTGF5ZXJXQy5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENoaWxkcmVuVHJhbnNmb3JtKGNvbnN0IFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXMzRChib29s
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q29u
dGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0Q29udGVudHNDbGlwcGluZ1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2MvV0NVcGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL1dD
VXBhdGVJbmZvLmgKaW5kZXggNDk0YzZmMDU4ZWUwM2E2MzkxNmMxNjM1OTg2ODYxOGY1MTYwMThk
Ny4uYzdiNGRkODFiN2UxNzdlZTY3NjdhYWE3NTViZmU4OTA0NTlmZWZjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvV0NVcGF0ZUluZm8uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9XQ1VwYXRlSW5mby5oCkBAIC01NSw2
ICs1NSw3IEBAIGVudW0gY2xhc3MgV0NMYXllckNoYW5nZSA6IHVpbnQzMl90IHsKICAgICBGaWx0
ZXJzICAgICAgICAgICAgICAgICA9IDEgPDwgMTcsCiAgICAgQmFja2Ryb3BGaWx0ZXJzICAgICAg
ICAgPSAxIDw8IDE4LAogICAgIFBsYXRmb3JtTGF5ZXIgICAgICAgICAgID0gMSA8PCAxOSwKKyAg
ICBCYWNrZ3JvdW5kQ29sb3IgICAgICAgICA9IDEgPDwgMjAsCiB9OwogCiBzdHJ1Y3QgV0NMYXll
clVwYXRlSW5mbyB7CkBAIC03NCw2ICs3NSw3IEBAIHN0cnVjdCBXQ0xheWVyVXBhdGVJbmZvIHsK
ICAgICBib29sIGJhY2tmYWNlVmlzaWJpbGl0eTsKICAgICBib29sIHByZXNlcnZlczNEOwogICAg
IFdlYkNvcmU6OkNvbG9yIHNvbGlkQ29sb3I7CisgICAgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3Vu
ZENvbG9yOwogICAgIFdlYkNvcmU6OkNvbG9yIGRlYnVnQm9yZGVyQ29sb3I7CiAgICAgZmxvYXQg
b3BhY2l0eTsKICAgICBmbG9hdCBkZWJ1Z0JvcmRlcldpZHRoOwpAQCAtMTE5LDYgKzEyMSw4IEBA
IHN0cnVjdCBXQ0xheWVyVXBhdGVJbmZvIHsKICAgICAgICAgICAgIGVuY29kZXIgPDwgY29udGVu
dHNSZWN0OwogICAgICAgICBpZiAoY2hhbmdlcyAmIFdDTGF5ZXJDaGFuZ2U6OkNvbnRlbnRzQ2xp
cHBpbmdSZWN0KQogICAgICAgICAgICAgZW5jb2RlciA8PCBjb250ZW50c0NsaXBwaW5nUmVjdDsK
KyAgICAgICAgaWYgKGNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpCYWNrZ3JvdW5kQ29sb3IpCisg
ICAgICAgICAgICBlbmNvZGVyIDw8IGJhY2tncm91bmRDb2xvcjsKICAgICAgICAgaWYgKGNoYW5n
ZXMgJiBXQ0xheWVyQ2hhbmdlOjpPcGFjaXR5KQogICAgICAgICAgICAgZW5jb2RlciA8PCBvcGFj
aXR5OwogICAgICAgICBpZiAoY2hhbmdlcyAmIFdDTGF5ZXJDaGFuZ2U6OkJhY2tpbmdTdG9yZSkK
QEAgLTIwNiw2ICsyMTAsMTAgQEAgc3RydWN0IFdDTGF5ZXJVcGF0ZUluZm8gewogICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGVudHNDbGlwcGluZ1JlY3QpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0
LmNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpCYWNrZ3JvdW5kQ29sb3IpIHsKKyAgICAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmJhY2tncm91bmRDb2xvcikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgICAgIGlmIChyZXN1bHQuY2hhbmdl
cyAmIFdDTGF5ZXJDaGFuZ2U6Ok9wYWNpdHkpIHsKICAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lm9wYWNpdHkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTI5Niw3ICszMDQsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V0NM
YXllckNoYW5nZT4gewogICAgICAgICBXZWJLaXQ6OldDTGF5ZXJDaGFuZ2U6OkNoaWxkcmVuVHJh
bnNmb3JtLAogICAgICAgICBXZWJLaXQ6OldDTGF5ZXJDaGFuZ2U6OkZpbHRlcnMsCiAgICAgICAg
IFdlYktpdDo6V0NMYXllckNoYW5nZTo6QmFja2Ryb3BGaWx0ZXJzLAotICAgICAgICBXZWJLaXQ6
OldDTGF5ZXJDaGFuZ2U6OlBsYXRmb3JtTGF5ZXIKKyAgICAgICAgV2ViS2l0OjpXQ0xheWVyQ2hh
bmdlOjpQbGF0Zm9ybUxheWVyLAorICAgICAgICBXZWJLaXQ6OldDTGF5ZXJDaGFuZ2U6OkJhY2tn
cm91bmRDb2xvcgogICAgID47CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444643</attachid>
            <date>2021-11-17 23:41:27 -0800</date>
            <delta_ts>2021-11-18 22:26:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233244-20211118164125.patch</filename>
            <type>text/plain</type>
            <size>20024</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmZDIwMmI4ODY4NzI5
YzliNWE1YjM0N2MyZWE0ZGEyNGIxZTE4OS4uY2JlMGMwYjU5Mjk1ZjczYWIyMWY2NGM5NjNmZmYw
YWQ2MGZmNmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTExLTE3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtUZXh0dXJl
TWFwcGVyXVtHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcl1bR3JhcGhpY3NMYXllcldDXSBzZXRC
YWNrZ3JvdW5kQ29sb3Igc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzMjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGV4dHVyZU1hcHBlciwgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIg
YW5kIEdyYXBoaWNzTGF5ZXJXQworICAgICAgICBkaWRuJ3Qgc3VwcG9ydCBzZXRCYWNrZ3JvdW5k
Q29sb3IuIHNldEJhY2tncm91bmRDb2xvciBpcyB1c2VkIGZvcgorICAgICAgICAicGFpbnRpbmcg
Zmx1c2giIGZlYXR1cmUgb2YgV2ViIEluc3BlY3RvciBFbGVtZW50cyB0YWIuCisKKyAgICAgICAg
QWRkZWQgYSBuZXcgY2xhc3MgVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllciB0byBkcmF3IGEg
c29saWQKKyAgICAgICAgbGF5ZXIgZm9yIHRoZSBwcmltYXJ5IGxheWVyIGFuZCBjb250ZW50cyBs
YXllci4KKworICAgICAgICAqIHBsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2U6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRCYWNr
Z3JvdW5kQ29sb3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvU29saWRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5ZXJDaGFuZ2VzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmJsZW5kV2l0aE9wYWNpdHkpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTb2xpZENvbG9yTGF5ZXI6
OnNldENvbG9yKToKKwogMjAyMS0xMS0xNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2ZXJ0IHIyODUyMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmZmMDgzODQwMDRkNjVi
ZDg1NGNhZWQ1ZGQxZDA3MDM3YzRmN2FlNy4uMmZlZWZmOTk0YTQ2OGM2YTQ0OGIyMzUzZmMxMzY5
MmYyOGNlODI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMS0xNyAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbVGV4dHVyZU1h
cHBlcl1bR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXJdW0dyYXBoaWNzTGF5ZXJXQ10gc2V0QmFj
a2dyb3VuZENvbG9yIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMzI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V0NTY2VuZTo6dXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2Uvd2MvR3JhcGhpY3NMYXllcldDLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R3JhcGhpY3NMYXll
cldDOjpzZXRCYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpHcmFwaGljc0xheWVy
V0M6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS93Yy9HcmFwaGljc0xheWVyV0MuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd2MvV0NVcGF0ZUluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6V0NMYXllclVw
YXRlSW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V0NMYXllclVwYXRlSW5m
bzo6ZGVjb2RlKToKKwogMjAyMS0xMS0xNSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGdub21lLm9yZz4KIAogICAgICAgICBNYWtlIHZhbGdyaW5kIHdvcmsgcHJvcGVybHkgd2l0aG91
dCBleHRyYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
ZXh0dXJlTWFwcGVyLmNtYWtlCmluZGV4IDU1M2I1YWU3NTZkYmZlYWNhODljNDYyYWM1ZTkwMDM5
MzUxMTEzMDcuLmFmZGE4YTQyYTFkMDFlY2JjODc3YWI4MGQxOGJhYzQ1YWQ3ZGYxMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZQpAQCAtMzUsNiArMzUs
NyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eVByb3ZpZGVyLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclNvbGlkQ29sb3JMYXllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJUaWxlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmgKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwCmluZGV4IDU4MDgwZDRlMWFkNDExOGM3NTIzZTQ3M2YwNjgwNjMwZmEzYmFiYTku
LjNkN2I4NjM5NjZkN2E5NzRiMDEzNjBhM2M1MmFjY2NlMTNjNjBjNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMjU1LDYgKzI1NSwxNCBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkoYm9vbCB2
YWx1ZSkKICAgICBub3RpZnlDaGFuZ2UoQmFja2ZhY2VWaXNpYmlsaXR5Q2hhbmdlKTsKIH0KIAor
dm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gYmFja2dyb3VuZENvbG9yKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRCYWNrZ3JvdW5kQ29sb3IodmFs
dWUpOworICAgIG5vdGlmeUNoYW5nZShCYWNrZ3JvdW5kQ29sb3JDaGFuZ2UpOworfQorCiB2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRPcGFjaXR5KGZsb2F0IHZhbHVlKQogewog
ICAgIGlmICh2YWx1ZSA9PSBvcGFjaXR5KCkpCkBAIC0yODYsNyArMjk0LDcgQEAgdm9pZCBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3NvbGlkQ29sb3IgPSBjb2xvcjsK
LSAgICBub3RpZnlDaGFuZ2UoQmFja2dyb3VuZENvbG9yQ2hhbmdlKTsKKyAgICBub3RpZnlDaGFu
Z2UoU29saWRDb2xvckNoYW5nZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCkBAIC00NzUsMTAgKzQ4MywxMyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMoKQog
ICAgIGlmIChtX2NoYW5nZU1hc2sgJiBCYWNrZmFjZVZpc2liaWxpdHlDaGFuZ2UpCiAgICAgICAg
IG1fbGF5ZXIuc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJhY2tmYWNlVmlzaWJpbGl0eSgpKTsKIAor
ICAgIGlmIChtX2NoYW5nZU1hc2sgJiBCYWNrZ3JvdW5kQ29sb3JDaGFuZ2UpCisgICAgICAgIG1f
bGF5ZXIuc2V0QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRDb2xvcigpKTsKKwogICAgIGlmICht
X2NoYW5nZU1hc2sgJiBPcGFjaXR5Q2hhbmdlKQogICAgICAgICBtX2xheWVyLnNldE9wYWNpdHko
b3BhY2l0eSgpKTsKIAotICAgIGlmIChtX2NoYW5nZU1hc2sgJiBCYWNrZ3JvdW5kQ29sb3JDaGFu
Z2UpCisgICAgaWYgKG1fY2hhbmdlTWFzayAmIFNvbGlkQ29sb3JDaGFuZ2UpCiAgICAgICAgIG1f
bGF5ZXIuc2V0U29saWRDb2xvcihtX3NvbGlkQ29sb3IpOwogCiAgICAgaWYgKG1fY2hhbmdlTWFz
ayAmIEZpbHRlckNoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgK
aW5kZXggZTgwY2FhMGFjODkwOTE5YTg0MzNhMDVkMjA5MDIyMzc3ZTQyODhkNy4uYTEwMzRkYTRh
OGI0ZDIzNGEzZjQxZDFiYTMxN2NmZmFhMTg2MTI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Q29udGVudHNWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q29udGVudHNPcGFx
dWUoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRCYWNrZmFjZVZpc2liaWxpdHkoYm9vbCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQpIG92ZXJyaWRlOwogICAgIGJvb2wgc2V0
RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZXRC
YWNrZHJvcEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwpAQCAtMTQ5
LDYgKzE1MCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgQW5pbWF0aW9uU3RhcnRlZCA9ICAgICAg
ICAgICgxTCA8PCAyNiksCiAgICAgICAgIEJhY2tkcm9wTGF5ZXJDaGFuZ2UgPSAgICAgICAoMUwg
PDwgMjcpLAorICAgICAgICBTb2xpZENvbG9yQ2hhbmdlID0gICAgICAgICAgKDFMIDw8IDI4KSwK
ICAgICB9OwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuY3BwCmluZGV4IDE3NjhkYjRjNDYzZTQyYzFjNmJhMGE0YjFhMTU2NzJhM2Mw
N2JiYTYuLjI5NGRhZGY4YzhjODVkZTVkODkyNWQyYTFiZjcwZmY5YzVkMmRmNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0xNDQsMTggKzE0NCwxMyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJMYXllcjo6cGFpbnQoVGV4dHVyZU1hcHBlciYgdGV4dHVyZU1hcHBlcikKICAgICBwYWlu
dFJlY3Vyc2l2ZShvcHRpb25zKTsKIH0KIAotc3RhdGljIENvbG9yIGJsZW5kV2l0aE9wYWNpdHko
Y29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBvcGFjaXR5KQotewotICAgIGlmIChjb2xvci5pc09w
YXF1ZSgpICYmIG9wYWNpdHkgPT0gMS4pCi0gICAgICAgIHJldHVybiBjb2xvcjsKLQotICAgIHJl
dHVybiBjb2xvci5jb2xvcldpdGhBbHBoYU11bHRpcGxpZWRCeShvcGFjaXR5KTsKLX0KLQogdm9p
ZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZihUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25z
JiBvcHRpb25zKQogewogICAgIGlmICghbV9zdGF0ZS52aXNpYmxlIHx8ICFtX3N0YXRlLmNvbnRl
bnRzVmlzaWJsZSkKICAgICAgICAgcmV0dXJuOworICAgIGF1dG8gdGFyZ2V0UmVjdCA9IGxheWVy
UmVjdCgpOworICAgIGlmICh0YXJnZXRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gV2UgYXBwbHkgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm0gdG8gY29tcGVuc2F0ZSBm
b3IgcGFpbnRpbmcgaW50byBhIHN1cmZhY2UsIGFuZCB0aGVuIGFwcGx5IHRoZSBvZmZzZXQgc28g
dGhhdCB0aGUgcGFpbnRpbmcgZml0cyBpbiB0aGUgdGFyZ2V0IHJlY3QuCiAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggdHJhbnNmb3JtOwpAQCAtMTYzLDI4ICsxNTgsMzEgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnBhaW50U2VsZihUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25z
KQogICAgIHRyYW5zZm9ybS5tdWx0aXBseShvcHRpb25zLnRyYW5zZm9ybSk7CiAgICAgdHJhbnNm
b3JtLm11bHRpcGx5KG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkKTsKIAotICAgIGlmIChtX3N0
YXRlLnNvbGlkQ29sb3IuaXNWYWxpZCgpICYmICFtX3N0YXRlLmNvbnRlbnRzUmVjdC5pc0VtcHR5
KCkgJiYgbV9zdGF0ZS5zb2xpZENvbG9yLmlzVmlzaWJsZSgpKSB7Ci0gICAgICAgIG9wdGlvbnMu
dGV4dHVyZU1hcHBlci5kcmF3U29saWRDb2xvcihtX3N0YXRlLmNvbnRlbnRzUmVjdCwgdHJhbnNm
b3JtLCBibGVuZFdpdGhPcGFjaXR5KG1fc3RhdGUuc29saWRDb2xvciwgb3B0aW9ucy5vcGFjaXR5
KSwgdHJ1ZSk7Ci0gICAgICAgIGlmIChtX3N0YXRlLnNob3dEZWJ1Z0JvcmRlcnMpCi0gICAgICAg
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuZHJhd0JvcmRlcihtX3N0YXRlLmRlYnVnQm9yZGVy
Q29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgbGF5ZXJSZWN0KCksIHRyYW5zZm9ybSk7
Ci0gICAgICAgIHJldHVybjsKKyAgICBUZXh0dXJlTWFwcGVyU29saWRDb2xvckxheWVyIHNvbGlk
Q29sb3JMYXllcjsKKyAgICBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUg
PSBtX2JhY2tpbmdTdG9yZTsKKyAgICBpZiAobV9zdGF0ZS5iYWNrZ3JvdW5kQ29sb3IuaXNWYWxp
ZCgpKSB7CisgICAgICAgIHNvbGlkQ29sb3JMYXllci5zZXRDb2xvcihtX3N0YXRlLmJhY2tncm91
bmRDb2xvcik7CisgICAgICAgIGJhY2tpbmdTdG9yZSA9ICZzb2xpZENvbG9yTGF5ZXI7CiAgICAg
fQogCiAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLnNldFdyYXBNb2RlKFRleHR1cmVNYXBwZXI6
OlN0cmV0Y2hXcmFwKTsKICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuc2V0UGF0dGVyblRyYW5z
Zm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsKIAotICAgIGlmIChtX2JhY2tpbmdTdG9yZSkg
ewotICAgICAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdCA9IGxheWVyUmVjdCgpOwotICAgICAgICBB
U1NFUlQoIXRhcmdldFJlY3QuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9iYWNraW5nU3RvcmUtPnBh
aW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgdGFyZ2V0UmVjdCwgdHJh
bnNmb3JtLCBvcHRpb25zLm9wYWNpdHkpOworICAgIGlmIChiYWNraW5nU3RvcmUpIHsKKyAgICAg
ICAgYmFja2luZ1N0b3JlLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRpb25zLnRleHR1cmVNYXBw
ZXIsIHRhcmdldFJlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5KTsKICAgICAgICAgaWYg
KG1fc3RhdGUuc2hvd0RlYnVnQm9yZGVycykKLSAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5k
cmF3Qm9yZGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9y
LCBtX3N0YXRlLmRlYnVnQm9yZGVyV2lkdGgsIHRhcmdldFJlY3QsIHRyYW5zZm9ybSk7CisgICAg
ICAgICAgICBiYWNraW5nU3RvcmUtPmRyYXdCb3JkZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBt
X3N0YXRlLmRlYnVnQm9yZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgdGFyZ2V0
UmVjdCwgdHJhbnNmb3JtKTsKICAgICAgICAgLy8gT25seSBkcmF3IHJlcGFpbnQgY291bnQgZm9y
IHRoZSBtYWluIGJhY2tpbmcgc3RvcmUuCiAgICAgICAgIGlmIChtX3N0YXRlLnNob3dSZXBhaW50
Q291bnRlcikKLSAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5kcmF3UmVwYWludENvdW50ZXIo
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLnJlcGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1
Z0JvcmRlckNvbG9yLCB0YXJnZXRSZWN0LCB0cmFuc2Zvcm0pOworICAgICAgICAgICAgYmFja2lu
Z1N0b3JlLT5kcmF3UmVwYWludENvdW50ZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRl
LnJlcGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCB0YXJnZXRSZWN0LCB0cmFu
c2Zvcm0pOwogICAgIH0KIAotICAgIGlmICghbV9jb250ZW50c0xheWVyKQorICAgIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyKiBjb250ZW50c0xheWVyID0gbV9jb250ZW50c0xheWVyOworICAg
IGlmIChtX3N0YXRlLnNvbGlkQ29sb3IuaXNWYWxpZCgpICYmIG1fc3RhdGUuc29saWRDb2xvci5p
c1Zpc2libGUoKSkgeworICAgICAgICBzb2xpZENvbG9yTGF5ZXIuc2V0Q29sb3IobV9zdGF0ZS5z
b2xpZENvbG9yKTsKKyAgICAgICAgY29udGVudHNMYXllciA9ICZzb2xpZENvbG9yTGF5ZXI7Cisg
ICAgfQorICAgIGlmICghY29udGVudHNMYXllcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFtX3N0YXRlLmNvbnRlbnRzVGlsZVNpemUuaXNFbXB0eSgpKSB7CkBAIC0xOTUsMjAgKzE5Mywx
OCBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmKFRleHR1cmVNYXBwZXJQYWlu
dE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5zZXRQYXR0
ZXJuVHJhbnNmb3JtKHBhdHRlcm5UcmFuc2Zvcm0pOwogICAgIH0KIAotICAgIEFTU0VSVCghbGF5
ZXJSZWN0KCkuaXNFbXB0eSgpKTsKLQogICAgIGJvb2wgc2hvdWxkQ2xpcCA9IG1fc3RhdGUuY29u
dGVudHNDbGlwcGluZ1JlY3QuaXNSb3VuZGVkKCkgfHwgIW1fc3RhdGUuY29udGVudHNDbGlwcGlu
Z1JlY3QucmVjdCgpLmNvbnRhaW5zKG1fc3RhdGUuY29udGVudHNSZWN0KTsKICAgICBpZiAoc2hv
dWxkQ2xpcCkgewogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuYmVnaW5DbGlwKHRyYW5z
Zm9ybSwgbV9zdGF0ZS5jb250ZW50c0NsaXBwaW5nUmVjdCk7CiAgICAgfQogCi0gICAgbV9jb250
ZW50c0xheWVyLT5wYWludFRvVGV4dHVyZU1hcHBlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIG1f
c3RhdGUuY29udGVudHNSZWN0LCB0cmFuc2Zvcm0sIG9wdGlvbnMub3BhY2l0eSk7CisgICAgY29u
dGVudHNMYXllci0+cGFpbnRUb1RleHR1cmVNYXBwZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBt
X3N0YXRlLmNvbnRlbnRzUmVjdCwgdHJhbnNmb3JtLCBvcHRpb25zLm9wYWNpdHkpOwogCiAgICAg
aWYgKHNob3VsZENsaXApCiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5lbmRDbGlwKCk7
CiAKICAgICBpZiAobV9zdGF0ZS5zaG93RGVidWdCb3JkZXJzKQotICAgICAgICBtX2NvbnRlbnRz
TGF5ZXItPmRyYXdCb3JkZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLmRlYnVnQm9y
ZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgbV9zdGF0ZS5jb250ZW50c1JlY3Qs
IHRyYW5zZm9ybSk7CisgICAgICAgIGNvbnRlbnRzTGF5ZXItPmRyYXdCb3JkZXIob3B0aW9ucy50
ZXh0dXJlTWFwcGVyLCBtX3N0YXRlLmRlYnVnQm9yZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3Jk
ZXJXaWR0aCwgbV9zdGF0ZS5jb250ZW50c1JlY3QsIHRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgVGV4
dHVyZU1hcHBlckxheWVyOjpzb3J0QnlaT3JkZXIoVmVjdG9yPFRleHR1cmVNYXBwZXJMYXllciog
PiYgYXJyYXkpCkBAIC02NzksNiArNjc1LDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpz
ZXRTb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBtX3N0YXRlLnNvbGlkQ29sb3Ig
PSBjb2xvcjsKIH0KIAordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEJhY2tncm91bmRDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgbV9zdGF0ZS5iYWNrZ3JvdW5kQ29sb3IgPSBj
b2xvcjsKK30KKwogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldEZpbHRlcnMoY29uc3QgRmls
dGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBtX3N0YXRlLmZpbHRlcnMgPSBmaWx0ZXJz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCmluZGV4IDEwYzVkMzk4NmIxMTAyODBlOTFjZTAxOGUx
Njg1NmI5NTI1ODFlNzcuLjNjOWQzN2U2MDhkZmZmMzgyYTI2NDY3NzIwODQ1MzgzMzY1YTBiNzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKQEAgLTIzLDcgKzIzLDcgQEAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4
dHVyZU1hcHBlci5oIgotI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIKKyNp
bmNsdWRlICJUZXh0dXJlTWFwcGVyU29saWRDb2xvckxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTc3LDYgKzc3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJvb2wpOwogICAgIHZv
aWQgc2V0T3BhY2l0eShmbG9hdCk7CiAgICAgdm9pZCBzZXRTb2xpZENvbG9yKGNvbnN0IENvbG9y
Jik7CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2b2lk
IHNldENvbnRlbnRzVGlsZVNpemUoY29uc3QgRmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRDb250
ZW50c1RpbGVQaGFzZShjb25zdCBGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldENvbnRlbnRzQ2xp
cHBpbmdSZWN0KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKTsKQEAgLTE3OCw2ICsxNzksNyBAQCBw
cml2YXRlOgogICAgICAgICBXZWFrUHRyPFRleHR1cmVNYXBwZXJMYXllcj4gYmFja2Ryb3BMYXll
cjsKICAgICAgICAgRmxvYXRSb3VuZGVkUmVjdCBiYWNrZHJvcEZpbHRlcnNSZWN0OwogICAgICAg
ICBDb2xvciBzb2xpZENvbG9yOworICAgICAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CiAgICAg
ICAgIEZpbHRlck9wZXJhdGlvbnMgZmlsdGVyczsKICAgICAgICAgQ29sb3IgZGVidWdCb3JkZXJD
b2xvcjsKICAgICAgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU29saWRDb2xv
ckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNvbGlkQ29sb3JMYXllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1NjI5NjFkZDA1ZWI3MDVmNzJj
NDVmMTMyYmI4ZGRiN2Y1NzFiYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllci5oCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgU29ueSBJbnRlcmFjdGl2
ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVGV4dHVyZU1hcHBlclNvbGlkQ29sb3JMYXllciA6IHB1YmxpYyBUZXh0dXJlTWFwcGVy
QmFja2luZ1N0b3JlIHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldENvbG9yKENvbG9yIGNvbG9yKSB7
IG1fY29sb3IgPSBjb2xvcjsgfQorCisgICAgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0
dXJlTWFwcGVyJiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHkpIG92ZXJy
aWRlCisgICAgeworICAgICAgICB0ZXh0dXJlTWFwcGVyLmRyYXdTb2xpZENvbG9yKHRhcmdldFJl
Y3QsIHRyYW5zZm9ybSwgbV9jb2xvci5jb2xvcldpdGhBbHBoYU11bHRpcGxpZWRCeShvcGFjaXR5
KSwgdHJ1ZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIENvbG9yIG1fY29sb3I7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3Mvd2MvV0NTY2VuZS5jcHAKaW5kZXggODA0ZTkwYmYxYzYzMjA4YzNiNTM3NmFlNjcyMzVj
N2M2ODkyMDAwOS4uYjM1NzQ1Y2Q1ZWFjOWFjYzdjM2QxMDFhMzk4MDhjYjFlYjE2NmYzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNwcApA
QCAtMTM3LDYgKzEzNyw4IEBAIHZvaWQgV0NTY2VuZTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBk
YXRlLCBWZWN0b3I8UmVmUHRyPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMCiAgICAgICAgICAgICBs
YXllci0+dGV4bWFwTGF5ZXIuc2V0RGVidWdWaXN1YWxzKGxheWVyVXBkYXRlLnNob3dEZWJ1Z0Jv
cmRlciwgbGF5ZXJVcGRhdGUuZGVidWdCb3JkZXJDb2xvciwgbGF5ZXJVcGRhdGUuZGVidWdCb3Jk
ZXJXaWR0aCk7CiAgICAgICAgIGlmIChsYXllclVwZGF0ZS5jaGFuZ2VzICYgV0NMYXllckNoYW5n
ZTo6UmVwYWludENvdW50KQogICAgICAgICAgICAgbGF5ZXItPnRleG1hcExheWVyLnNldFJlcGFp
bnRDb3VudGVyKGxheWVyVXBkYXRlLnNob3dSZXBhaW50Q291bnRlciwgbGF5ZXJVcGRhdGUucmVw
YWludENvdW50KTsKKyAgICAgICAgaWYgKGxheWVyVXBkYXRlLmNoYW5nZXMgJiBXQ0xheWVyQ2hh
bmdlOjpCYWNrZ3JvdW5kQ29sb3IpCisgICAgICAgICAgICBsYXllci0+dGV4bWFwTGF5ZXIuc2V0
QmFja2dyb3VuZENvbG9yKGxheWVyVXBkYXRlLmJhY2tncm91bmRDb2xvcik7CiAgICAgICAgIGlm
IChsYXllclVwZGF0ZS5jaGFuZ2VzICYgV0NMYXllckNoYW5nZTo6T3BhY2l0eSkKICAgICAgICAg
ICAgIGxheWVyLT50ZXhtYXBMYXllci5zZXRPcGFjaXR5KGxheWVyVXBkYXRlLm9wYWNpdHkpOwog
ICAgICAgICBpZiAobGF5ZXJVcGRhdGUuY2hhbmdlcyAmIFdDTGF5ZXJDaGFuZ2U6OlRyYW5zZm9y
bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0dyYXBo
aWNzTGF5ZXJXQy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9HcmFw
aGljc0xheWVyV0MuY3BwCmluZGV4IDM5ZGU1ZTk2ZDhlNjYyM2M3MGU5MDA2YTA3MjkyN2IzZmMx
YzY4ZWQuLjBmN2ZjMWI1OTBlZmEwM2ViNGY2MDZhY2NjMDRjNjFkMGQwZDA1ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0dyYXBoaWNzTGF5ZXJXQy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvR3JhcGhpY3NMYXll
cldDLmNwcApAQCAtMjE2LDYgKzIxNiwxNCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJXQzo6c2V0TWFz
a3NUb0JvdW5kcyhib29sIHZhbHVlKQogICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogfQog
Cit2b2lkIEdyYXBoaWNzTGF5ZXJXQzo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gYmFja2dyb3VuZENvbG9yKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRCYWNrZ3JvdW5kQ29sb3IodmFs
dWUpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChXQ0xheWVyQ2hhbmdlOjpCYWNrZ3Jv
dW5kQ29sb3IpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJXQzo6c2V0T3BhY2l0eShmbG9hdCB2
YWx1ZSkKIHsKICAgICBpZiAodmFsdWUgPT0gb3BhY2l0eSgpKQpAQCAtNDQ2LDYgKzQ1NCw4IEBA
IHZvaWQgR3JhcGhpY3NMYXllcldDOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCkKICAgICAgICAgdXBkYXRlLnNob3dSZXBhaW50Q291bnRlciA9IGlzU2hvd2luZ1JlcGFp
bnRDb3VudGVyKCk7CiAgICAgICAgIHVwZGF0ZS5yZXBhaW50Q291bnQgPSByZXBhaW50Q291bnQo
KTsKICAgICB9CisgICAgaWYgKHVwZGF0ZS5jaGFuZ2VzICYgV0NMYXllckNoYW5nZTo6QmFja2dy
b3VuZENvbG9yKQorICAgICAgICB1cGRhdGUuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZENv
bG9yKCk7CiAgICAgaWYgKHVwZGF0ZS5jaGFuZ2VzICYgV0NMYXllckNoYW5nZTo6T3BhY2l0eSkK
ICAgICAgICAgdXBkYXRlLm9wYWNpdHkgPSBvcGFjaXR5KCk7CiAgICAgaWYgKHVwZGF0ZS5jaGFu
Z2VzICYgV0NMYXllckNoYW5nZTo6VHJhbnNmb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvR3JhcGhpY3NMYXllcldDLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9HcmFwaGljc0xheWVyV0MuaAppbmRleCBhYjVlYzQ3MDkx
MTJlOGQ2YTViMWU3M2U0NzUxZGRiODNhZDcwNGY3Li45NjI3NDFmZGQwMTVhMjM4ZDQ4ZDQ1NzA0
YzU2NmY2YTA5ODVlYmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS93Yy9HcmFwaGljc0xheWVyV0MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS93Yy9HcmFwaGljc0xheWVyV0MuaApAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRDaGlsZHJlblRyYW5zZm9ybShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UHJlc2VydmVzM0QoYm9vbCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXRNYXNrc1RvQm91bmRzKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzZXRPcGFjaXR5KGZsb2F0KSBvdmVycmlkZTsKICAgICB2b2lkIHNldENvbnRlbnRzUmVj
dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldENvbnRl
bnRzQ2xpcHBpbmdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL1dDVXBh
dGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9XQ1VwYXRlSW5m
by5oCmluZGV4IDQ5NGM2ZjA1OGVlMDNhNjM5MTZjMTYzNTk4Njg2MThmNTE2MDE4ZDcuLmM3YjRk
ZDgxYjdlMTc3ZWU2NzY3YWFhNzU1YmZlODkwNDU5ZmVmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL1dDVXBhdGVJbmZvLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvV0NVcGF0ZUluZm8uaApAQCAtNTUsNiArNTUsNyBA
QCBlbnVtIGNsYXNzIFdDTGF5ZXJDaGFuZ2UgOiB1aW50MzJfdCB7CiAgICAgRmlsdGVycyAgICAg
ICAgICAgICAgICAgPSAxIDw8IDE3LAogICAgIEJhY2tkcm9wRmlsdGVycyAgICAgICAgID0gMSA8
PCAxOCwKICAgICBQbGF0Zm9ybUxheWVyICAgICAgICAgICA9IDEgPDwgMTksCisgICAgQmFja2dy
b3VuZENvbG9yICAgICAgICAgPSAxIDw8IDIwLAogfTsKIAogc3RydWN0IFdDTGF5ZXJVcGF0ZUlu
Zm8gewpAQCAtNzQsNiArNzUsNyBAQCBzdHJ1Y3QgV0NMYXllclVwYXRlSW5mbyB7CiAgICAgYm9v
bCBiYWNrZmFjZVZpc2liaWxpdHk7CiAgICAgYm9vbCBwcmVzZXJ2ZXMzRDsKICAgICBXZWJDb3Jl
OjpDb2xvciBzb2xpZENvbG9yOworICAgIFdlYkNvcmU6OkNvbG9yIGJhY2tncm91bmRDb2xvcjsK
ICAgICBXZWJDb3JlOjpDb2xvciBkZWJ1Z0JvcmRlckNvbG9yOwogICAgIGZsb2F0IG9wYWNpdHk7
CiAgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKQEAgLTExOSw2ICsxMjEsOCBAQCBzdHJ1Y3Qg
V0NMYXllclVwYXRlSW5mbyB7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IGNvbnRlbnRzUmVjdDsK
ICAgICAgICAgaWYgKGNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpDb250ZW50c0NsaXBwaW5nUmVj
dCkKICAgICAgICAgICAgIGVuY29kZXIgPDwgY29udGVudHNDbGlwcGluZ1JlY3Q7CisgICAgICAg
IGlmIChjaGFuZ2VzICYgV0NMYXllckNoYW5nZTo6QmFja2dyb3VuZENvbG9yKQorICAgICAgICAg
ICAgZW5jb2RlciA8PCBiYWNrZ3JvdW5kQ29sb3I7CiAgICAgICAgIGlmIChjaGFuZ2VzICYgV0NM
YXllckNoYW5nZTo6T3BhY2l0eSkKICAgICAgICAgICAgIGVuY29kZXIgPDwgb3BhY2l0eTsKICAg
ICAgICAgaWYgKGNoYW5nZXMgJiBXQ0xheWVyQ2hhbmdlOjpCYWNraW5nU3RvcmUpCkBAIC0yMDYs
NiArMjEwLDEwIEBAIHN0cnVjdCBXQ0xheWVyVXBhdGVJbmZvIHsKICAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbnRlbnRzQ2xpcHBpbmdSZWN0KSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdC5jaGFuZ2Vz
ICYgV0NMYXllckNoYW5nZTo6QmFja2dyb3VuZENvbG9yKSB7CisgICAgICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5iYWNrZ3JvdW5kQ29sb3IpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgICAgICBpZiAocmVzdWx0LmNoYW5nZXMgJiBXQ0xh
eWVyQ2hhbmdlOjpPcGFjaXR5KSB7CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5vcGFjaXR5KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yOTYsNyAr
MzA0LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldDTGF5ZXJDaGFu
Z2U+IHsKICAgICAgICAgV2ViS2l0OjpXQ0xheWVyQ2hhbmdlOjpDaGlsZHJlblRyYW5zZm9ybSwK
ICAgICAgICAgV2ViS2l0OjpXQ0xheWVyQ2hhbmdlOjpGaWx0ZXJzLAogICAgICAgICBXZWJLaXQ6
OldDTGF5ZXJDaGFuZ2U6OkJhY2tkcm9wRmlsdGVycywKLSAgICAgICAgV2ViS2l0OjpXQ0xheWVy
Q2hhbmdlOjpQbGF0Zm9ybUxheWVyCisgICAgICAgIFdlYktpdDo6V0NMYXllckNoYW5nZTo6UGxh
dGZvcm1MYXllciwKKyAgICAgICAgV2ViS2l0OjpXQ0xheWVyQ2hhbmdlOjpCYWNrZ3JvdW5kQ29s
b3IKICAgICA+OwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>