<?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>232778</bug_id>
          
          <creation_ts>2021-11-05 19:34:49 -0700</creation_ts>
          <short_desc>Make it possible to avoid retargeting a ScrollingMomentumCalculator</short_desc>
          <delta_ts>2021-11-05 23:54:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812319</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-05 19:34:49 -0700</bug_when>
    <thetext>Make it possible to avoid retargeting a ScrollingMomentumCalculator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812320</commentid>
    <comment_count>1</comment_count>
      <attachid>443464</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-05 19:42:50 -0700</bug_when>
    <thetext>Created attachment 443464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812329</commentid>
    <comment_count>2</comment_count>
      <attachid>443464</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-05 20:12:21 -0700</bug_when>
    <thetext>Comment on attachment 443464
Patch

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

r=mews

&gt; Source/WebCore/ChangeLog:10
&gt; +        avoid. However, ScrollingMomentumCalculator is structure to expect that

&quot;is structured&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812332</commentid>
    <comment_count>3</comment_count>
      <attachid>443469</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-05 20:26:38 -0700</bug_when>
    <thetext>Created attachment 443469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812356</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-05 23:53:34 -0700</bug_when>
    <thetext>Committed r285366 (243924@main): &lt;https://commits.webkit.org/243924@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443469.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812357</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-05 23:54:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/85097041&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443464</attachid>
            <date>2021-11-05 19:42:50 -0700</date>
            <delta_ts>2021-11-05 20:12:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232778-20211105194249.patch</filename>
            <type>text/plain</type>
            <size>18621</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmYmUxZDRjZjQyZDU2
NTk1NGY4YjIxOWQwMWFmZDY0OTI0OGVkMy4uYjNjMDM1YmJkZmMwNWVjZTdiMWZlMGE1NDRiNTQw
ZmI2YWY1OThiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTExLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gYXZvaWQgcmV0YXJnZXRpbmcgYSBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjc3OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAg
Q2FsbGluZyAtW19OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciBzZXREZXN0aW5hdGlvbk9y
aWdpbjpdIHRvIHRoZSBzYW1lIG9yaWdpbiBpdCdzCisgICAgICAgIGFscmVhZHkgdGFyZ2V0aW5n
IGhhcyBzaWRlIGVmZmVjdHMgcmVsYXRlZCB0byBydWJiZXItYmFuZGluZyB3aGljaCBhIGZ1dHVy
ZSBwYXRjaCBuZWVkcyB0bworICAgICAgICBhdm9pZC4gSG93ZXZlciwgU2Nyb2xsaW5nTW9tZW50
dW1DYWxjdWxhdG9yIGlzIHN0cnVjdHVyZSB0byBleHBlY3QgdGhhdAorICAgICAgICBzZXRSZXRh
cmdldGVkU2Nyb2xsT2Zmc2V0KCkgaXMgY2FsbGVkLCBvdGhlcndpc2UgbV9yZXRhcmdldGVkU2Ny
b2xsT2Zmc2V0IGlzIGxlZnQgdW5zZXQuCisKKyAgICAgICAgRml4IHNvIHRoYXQgaWYgdGhlIFNj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcidzIGRlc3RpbmF0aW9uIGlzIGFscmVhZHkgY29ycmVj
dCBubworICAgICAgICByZXRhcmdldGluZyBpcyBuZWNlc3NhcnkuIFdlIGNvbnRpbnVlIHRvIHN0
b3JlIHRoZSBzdGQ6Om9wdGlvbmFsIG1fcmV0YXJnZXRlZFNjcm9sbE9mZnNldCwKKyAgICAgICAg
YnV0IGFsd2F5cyBpbml0aWFsaXplIG1faW5pdGlhbERlc3RpbmF0aW9uT2Zmc2V0LgorCisgICAg
ICAgIE5vdyBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJ
bml0aWFsVmVsb2NpdHkoKSBjYW4gYXZvaWQKKyAgICAgICAgY2FsbGluZyBzZXRSZXRhcmdldGVk
U2Nyb2xsT2Zmc2V0KCkgaWYgdGhlIG1vZGlmaWVyIGZ1bmN0aW9uIGRvZXNuJ3QgYWx0ZXIgdGhl
CisgICAgICAgIHRhcmdldCBzY3JvbGwgb2Zmc2V0LgorCisgICAgICAgIFNjcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYyBoYWQgc29tZSB1bmRlc2lyYWJsZSBiZWhhdmlvciBpbiB0aGUKKyAg
ICAgICAgIWdFbmFibGVQbGF0Zm9ybU1vbWVudHVtU2Nyb2xsaW5nUHJlZGljdGlvbiBjb2RlIHBh
dGg7IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQKKyAgICAgICAgX05TU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yIGFncmVlcyBhYm91dCB0aGUgcHJlZGljdGVkIGRlc3RpbmF0aW9uLgorCisgICAg
ICAgIFRlc3RlZCBieSBleGlzdGluZyBzY3JvbGwgc25hcCB0ZXN0cy4KKworICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdGlvbk1vbWVudHVtOjpzdGFydEFuaW1hdGVkU2Nyb2xsV2l0aEluaXRpYWxWZWxv
Y2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6dXBkYXRl
U2Nyb2xsRXh0ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6
OnN0YXJ0TW9tZW50dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpzZXRSZXRhcmdldGVkU2Nyb2xsT2Zmc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpCYXNp
Y1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6bGluZWFybHlJbnRlcnBvbGF0ZWRPZmZzZXRBdFBy
b2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yOjppbml0aWFsaXplSW50ZXJwb2xhdGlvbkNvZWZmaWNpZW50c0lmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjppbml0aWFs
aXplU25hcFByb2dyZXNzQ3VydmUpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yOjpkZXN0aW5hdGlvblNjcm9sbE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0RGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6
cmV0YXJnZXRlZFNjcm9sbE9mZnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnJldGFyZ2V0ZWRTY3JvbGxPZmZzZXREaWRD
aGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9tZW50
dW1DYWxjdWxhdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yTWFjOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjpzY3JvbGxPZmZzZXRBZnRl
ckVsYXBzZWRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3Vs
YXRvck1hYzo6cHJlZGljdGVkRGVzdGluYXRpb25PZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjpkZXN0aW5hdGlvblNjcm9sbE9mZnNldERp
ZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWM6OnNldE1vbWVudHVtQ2FsY3VsYXRvckRlc3RpbmF0aW9uT2Zmc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6cmVxdWlyZXNNb21lbnR1bVNj
cm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWM6OmVuc3VyZVBsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6cmV0YXJnZXRlZFNjcm9sbE9mZnNldERp
ZENoYW5nZSk6IERlbGV0ZWQuCisKIDIwMjEtMTAtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgY29kZSB0aGF0IG1ha2VzIHVzZSBv
ZiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcAppbmRleCAwODkzZjdlNzVhZWE2YmUyNGQzOTll
ODZmY2E4MmI3MTY4ZDVlNjBkLi5lMGUwYTVkNmMxODkzOTRkNDQwYzg0OGY2YzFlYjczYTE3Yjhm
YzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25N
b21lbnR1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW0uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDE2ICs0MSwy
MSBAQCBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6flNjcm9sbEFuaW1hdGlvbk1vbWVudHVtKCkg
PSBkZWZhdWx0OwogYm9vbCBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RhcnRBbmltYXRlZFNj
cm9sbFdpdGhJbml0aWFsVmVsb2NpdHkoY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwg
Y29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlh
bERlbHRhLCBjb25zdCBGdW5jdGlvbjxGbG9hdFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmKT4mIGRl
c3RpbmF0aW9uTW9kaWZpZXIpCiB7CiAgICAgYXV0byBleHRlbnRzID0gbV9jbGllbnQuc2Nyb2xs
RXh0ZW50c0ZvckFuaW1hdGlvbigqdGhpcyk7CisgICAgbV9jdXJyZW50T2Zmc2V0ID0gaW5pdGlh
bE9mZnNldDsKIAogICAgIG1fbW9tZW50dW1DYWxjdWxhdG9yID0gU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yOjpjcmVhdGUoZXh0ZW50cywgaW5pdGlhbE9mZnNldCwgaW5pdGlhbERlbHRhLCBp
bml0aWFsVmVsb2NpdHkpOwotICAgIGF1dG8gcHJlZGljdGVkU2Nyb2xsT2Zmc2V0ID0gbV9tb21l
bnR1bUNhbGN1bGF0b3ItPnByZWRpY3RlZERlc3RpbmF0aW9uT2Zmc2V0KCk7CisgICAgYXV0byBk
ZXN0aW5hdGlvblNjcm9sbE9mZnNldCA9IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5kZXN0aW5hdGlv
blNjcm9sbE9mZnNldCgpOwogCiAgICAgaWYgKGRlc3RpbmF0aW9uTW9kaWZpZXIpIHsKLSAgICAg
ICAgcHJlZGljdGVkU2Nyb2xsT2Zmc2V0ID0gZGVzdGluYXRpb25Nb2RpZmllcihwcmVkaWN0ZWRT
Y3JvbGxPZmZzZXQpOwotICAgICAgICBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2V0UmV0YXJnZXRl
ZFNjcm9sbE9mZnNldChwcmVkaWN0ZWRTY3JvbGxPZmZzZXQpOworICAgICAgICBhdXRvIG1vZGlm
aWVkT2Zmc2V0ID0gZGVzdGluYXRpb25Nb2RpZmllcihkZXN0aW5hdGlvblNjcm9sbE9mZnNldCk7
CisgICAgICAgIGlmIChtb2RpZmllZE9mZnNldCAhPSBkZXN0aW5hdGlvblNjcm9sbE9mZnNldCkg
eworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8
PCAiU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gIiA8PCB0aGlzIDw8ICIgc3RhcnRBbmltYXRlZFNj
cm9sbFdpdGhJbml0aWFsVmVsb2NpdHkgLSBwcmVkaWN0ZWQgb2Zmc2V0ICIgPDwgZGVzdGluYXRp
b25TY3JvbGxPZmZzZXQgPDwgIiBtb2RpZmllZCB0byAiIDw8IG1vZGlmaWVkT2Zmc2V0KTsKKyAg
ICAgICAgICAgIGRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0ID0gbW9kaWZpZWRPZmZzZXQ7CisgICAg
ICAgICAgICBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2V0UmV0YXJnZXRlZFNjcm9sbE9mZnNldChk
ZXN0aW5hdGlvblNjcm9sbE9mZnNldCk7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAocHJl
ZGljdGVkU2Nyb2xsT2Zmc2V0ID09IGluaXRpYWxPZmZzZXQpIHsKKyAgICBpZiAoZGVzdGluYXRp
b25TY3JvbGxPZmZzZXQgPT0gaW5pdGlhbE9mZnNldCkgewogICAgICAgICBtX21vbWVudHVtQ2Fs
Y3VsYXRvciA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC05OSw3
ICsxMDUsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpzZXJ2aWNlQW5pbWF0aW9u
KE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUpCiB2b2lkIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVt
Ojp1cGRhdGVTY3JvbGxFeHRlbnRzKCkKIHsKICAgICBhdXRvIGV4dGVudHMgPSBtX2NsaWVudC5z
Y3JvbGxFeHRlbnRzRm9yQW5pbWF0aW9uKCp0aGlzKTsKLSAgICBhdXRvIHByZWRpY3RlZFNjcm9s
bE9mZnNldCA9IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNl
dCgpOworICAgIGF1dG8gcHJlZGljdGVkU2Nyb2xsT2Zmc2V0ID0gbV9tb21lbnR1bUNhbGN1bGF0
b3ItPmRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0KCk7CiAgICAgYXV0byBjb25zdHJhaW5lZE9mZnNl
dCA9IHByZWRpY3RlZFNjcm9sbE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4oZXh0ZW50cy5taW5p
bXVtU2Nyb2xsT2Zmc2V0KCksIGV4dGVudHMubWF4aW11bVNjcm9sbE9mZnNldCgpKTsKICAgICBp
ZiAoY29uc3RyYWluZWRPZmZzZXQgIT0gcHJlZGljdGVkU2Nyb2xsT2Zmc2V0KQogICAgICAgICBy
ZXRhcmdldEFjdGl2ZUFuaW1hdGlvbihjb25zdHJhaW5lZE9mZnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKaW5k
ZXggNDc2OWYxZDU4ZjhiYzNjYjQyZjhjYzI0ZTdkNThhYjAyMzlmOTdkZS4uYjFjMzY2MmNkY2Ez
NTdlMDdjZDNkNWY4MTQ3YjY4NjdlN2ZlNzNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcApAQCAtMTUwLDcgKzE1
MCw3IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0TW9tZW50dW1TY3Jv
bGxXaXRoSW5pdGlhbFZlbG9jaXR5KGNvbnN0IEZsCiAgICAgaWYgKCFtX2N1cnJlbnRBbmltYXRp
b24pCiAgICAgICAgIG1fY3VycmVudEFuaW1hdGlvbiA9IG1ha2VVbmlxdWU8U2Nyb2xsQW5pbWF0
aW9uTW9tZW50dW0+KCp0aGlzKTsKIAotICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmltYXRp
b25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyICIgPDwgdGhpcyA8PCAi
IHN0YXJ0TW9tZW50dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5ICIgPDwgaW5pdGlhbFZlbG9j
aXR5IDw8ICIgZnJvbSAiIDw8IGluaXRpYWxPZmZzZXQpOworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyICIg
PDwgdGhpcyA8PCAiIHN0YXJ0TW9tZW50dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5ICIgPDwg
aW5pdGlhbFZlbG9jaXR5IDw8ICIgaW5pdGlhbERlbHRhICIgPDwgaW5pdGlhbERlbHRhIDw8ICIg
ZnJvbSAiIDw8IGluaXRpYWxPZmZzZXQpOwogICAgIHJldHVybiBkb3duY2FzdDxTY3JvbGxBbmlt
YXRpb25Nb21lbnR1bT4oKm1fY3VycmVudEFuaW1hdGlvbikuc3RhcnRBbmltYXRlZFNjcm9sbFdp
dGhJbml0aWFsVmVsb2NpdHkoaW5pdGlhbE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBpbml0aWFs
RGVsdGEsIGRlc3RpbmF0aW9uTW9kaWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcAppbmRleCA1MmU5
OTc5ZmNmMGI3Yzg3ODdlODNiNzliMTZiZTA3MWIwMGU3NjJiLi44NGFiZmNjM2YwMmNlYTU1OWFh
YTM0MjI4YjczMDU2NDQ1NTI1ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAKQEAgLTUyLDExICs1MiwxMSBA
QCBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRv
cihjb25zdCBTY3JvbGxFeHRlbnRzJiBzYwogCiB2b2lkIFNjcm9sbGluZ01vbWVudHVtQ2FsY3Vs
YXRvcjo6c2V0UmV0YXJnZXRlZFNjcm9sbE9mZnNldChjb25zdCBGbG9hdFBvaW50JiB0YXJnZXQp
CiB7Ci0gICAgaWYgKG1fcmV0YXJnZXRlZFNjcm9sbE9mZnNldCAmJiBtX3JldGFyZ2V0ZWRTY3Jv
bGxPZmZzZXQgPT0gdGFyZ2V0KQotICAgICAgICByZXR1cm47Ci0KKyAgICBhdXRvIGN1cnJlbnRE
ZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0KCk7CiAgICAgbV9yZXRhcmdldGVk
U2Nyb2xsT2Zmc2V0ID0gdGFyZ2V0OwotICAgIHJldGFyZ2V0ZWRTY3JvbGxPZmZzZXREaWRDaGFu
Z2UoKTsKKyAgICAKKyAgICBpZiAoY3VycmVudERlc3RpbmF0aW9uICE9IGRlc3RpbmF0aW9uU2Ny
b2xsT2Zmc2V0KCkpCisgICAgICAgIGRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0RGlkQ2hhbmdlKCk7
CiB9CiAKIEZsb2F0UG9pbnQgU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpwcmVkaWN0ZWRE
ZXN0aW5hdGlvbk9mZnNldCgpCkBAIC04NSwxMSArODUsMTIgQEAgdm9pZCBTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3I6OnNldFBsYXRmb3JtTW9tZW50dW1TY3JvbGxpbmdQcmVkaWN0aW9uRW5h
YmxlZCgKIEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpCYXNpY1Njcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvcihjb25zdCBTY3JvbGxFeHRlbnRzJiBzY3JvbGxFeHRlbnRzLCBjb25z
dCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0
YSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVsb2NpdHkpCiAgICAgOiBTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3Ioc2Nyb2xsRXh0ZW50cywgaW5pdGlhbE9mZnNldCwgaW5pdGlhbERlbHRh
LCBpbml0aWFsVmVsb2NpdHkpCiB7CisgICAgbV9pbml0aWFsRGVzdGluYXRpb25PZmZzZXQgPSBw
cmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNldCgpOwogfQogCiBGbG9hdFBvaW50IEJhc2ljU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yOjpsaW5lYXJseUludGVycG9sYXRlZE9mZnNldEF0UHJvZ3Jl
c3MoZmxvYXQgcHJvZ3Jlc3MpCiB7Ci0gICAgcmV0dXJuIG1faW5pdGlhbFNjcm9sbE9mZnNldCAr
IHByb2dyZXNzICogKHJldGFyZ2V0ZWRTY3JvbGxPZmZzZXQoKSAtIG1faW5pdGlhbFNjcm9sbE9m
ZnNldCk7CisgICAgcmV0dXJuIG1faW5pdGlhbFNjcm9sbE9mZnNldCArIHByb2dyZXNzICogKGRl
c3RpbmF0aW9uU2Nyb2xsT2Zmc2V0KCkgLSBtX2luaXRpYWxTY3JvbGxPZmZzZXQpOwogfQogCiBG
bG9hdFBvaW50IEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpjdWJpY2FsbHlJbnRl
cnBvbGF0ZWRPZmZzZXRBdFByb2dyZXNzKGZsb2F0IHByb2dyZXNzKSBjb25zdApAQCAtMTQ5LDcg
KzE1MCw3IEBAIHZvaWQgQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmluaXRpYWxp
emVJbnRlcnBvbGF0aW9uQ29lZmZpY2llbnRzSWZOZWNlCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBGbG9hdFNpemUgc3RhcnRUb0VuZFZlY3RvciA9IHJldGFyZ2V0ZWRTY3JvbGxPZmZz
ZXQoKSAtIG1faW5pdGlhbFNjcm9sbE9mZnNldDsKKyAgICBGbG9hdFNpemUgc3RhcnRUb0VuZFZl
Y3RvciA9IGRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0KCkgLSBtX2luaXRpYWxTY3JvbGxPZmZzZXQ7
CiAgICAgZmxvYXQgc3RhcnRUb0VuZERpc3RhbmNlID0gc3RhcnRUb0VuZFZlY3Rvci5kaWFnb25h
bExlbmd0aCgpOwogICAgIGlmICghc3RhcnRUb0VuZERpc3RhbmNlKSB7CiAgICAgICAgIC8vIFRo
ZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucyBhcmUgdGhlIHNhbWUsIHNvIHdlIHNob3VsZG4ndCB0
cnkgdG8gaW50ZXJwb2xhdGUgYSBwYXRoLgpAQCAtMTcwLDcgKzE3MSw3IEBAIHZvaWQgQmFzaWNT
Y3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmluaXRpYWxpemVJbnRlcnBvbGF0aW9uQ29lZmZp
Y2llbnRzSWZOZWNlCiAgICAgbV9zbmFwQW5pbWF0aW9uQ3VydmVDb2VmZmljaWVudHNbMF0gPSBp
bml0aWFsT2Zmc2V0QXNTaXplOwogICAgIG1fc25hcEFuaW1hdGlvbkN1cnZlQ29lZmZpY2llbnRz
WzFdID0gMyAqIChjb250cm9sVmVjdG9yMSAtIGluaXRpYWxPZmZzZXRBc1NpemUpOwogICAgIG1f
c25hcEFuaW1hdGlvbkN1cnZlQ29lZmZpY2llbnRzWzJdID0gMyAqIChpbml0aWFsT2Zmc2V0QXNT
aXplIC0gMiAqIGNvbnRyb2xWZWN0b3IxICsgY29udHJvbFZlY3RvcjIpOwotICAgIG1fc25hcEFu
aW1hdGlvbkN1cnZlQ29lZmZpY2llbnRzWzNdID0gMyAqIChjb250cm9sVmVjdG9yMSAtIGNvbnRy
b2xWZWN0b3IyKSAtIGluaXRpYWxPZmZzZXRBc1NpemUgKyB0b0Zsb2F0U2l6ZShyZXRhcmdldGVk
U2Nyb2xsT2Zmc2V0KCkpOworICAgIG1fc25hcEFuaW1hdGlvbkN1cnZlQ29lZmZpY2llbnRzWzNd
ID0gMyAqIChjb250cm9sVmVjdG9yMSAtIGNvbnRyb2xWZWN0b3IyKSAtIGluaXRpYWxPZmZzZXRB
c1NpemUgKyB0b0Zsb2F0U2l6ZShkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpKTsKICAgICBtX2Zv
cmNlTGluZWFyQW5pbWF0aW9uQ3VydmUgPSBmYWxzZTsKIH0KIApAQCAtMjA5LDEwICsyMTAsMTAg
QEAgdm9pZCBCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6aW5pdGlhbGl6ZVNuYXBQ
cm9ncmVzc0N1cnZlKCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgbWluU2Nyb2xsU25hcEluaXRp
YWxQcm9ncmVzcyA9IDAuMTsKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgbWF4U2Nyb2xsU25hcElu
aXRpYWxQcm9ncmVzcyA9IDAuNTsKIAotICAgIEZsb2F0U2l6ZSBhbGlnbm1lbnRWZWN0b3IgPSBt
X2luaXRpYWxEZWx0YSAqIChyZXRhcmdldGVkU2Nyb2xsT2Zmc2V0KCkgLSBtX2luaXRpYWxTY3Jv
bGxPZmZzZXQpOworICAgIEZsb2F0U2l6ZSBhbGlnbm1lbnRWZWN0b3IgPSBtX2luaXRpYWxEZWx0
YSAqIChkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpIC0gbV9pbml0aWFsU2Nyb2xsT2Zmc2V0KTsK
ICAgICBmbG9hdCBpbml0aWFsUHJvZ3Jlc3M7CiAgICAgaWYgKGFsaWdubWVudFZlY3Rvci53aWR0
aCgpICsgYWxpZ25tZW50VmVjdG9yLmhlaWdodCgpID4gMCkKLSAgICAgICAgaW5pdGlhbFByb2dy
ZXNzID0gY2xhbXBUbyhtX2luaXRpYWxEZWx0YS5kaWFnb25hbExlbmd0aCgpIC8gKHJldGFyZ2V0
ZWRTY3JvbGxPZmZzZXQoKSAtIG1faW5pdGlhbFNjcm9sbE9mZnNldCkuZGlhZ29uYWxMZW5ndGgo
KSwgbWluU2Nyb2xsU25hcEluaXRpYWxQcm9ncmVzcywgbWF4U2Nyb2xsU25hcEluaXRpYWxQcm9n
cmVzcyk7CisgICAgICAgIGluaXRpYWxQcm9ncmVzcyA9IGNsYW1wVG8obV9pbml0aWFsRGVsdGEu
ZGlhZ29uYWxMZW5ndGgoKSAvIChkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpIC0gbV9pbml0aWFs
U2Nyb2xsT2Zmc2V0KS5kaWFnb25hbExlbmd0aCgpLCBtaW5TY3JvbGxTbmFwSW5pdGlhbFByb2dy
ZXNzLCBtYXhTY3JvbGxTbmFwSW5pdGlhbFByb2dyZXNzKTsKICAgICBlbHNlCiAgICAgICAgIGlu
aXRpYWxQcm9ncmVzcyA9IG1pblNjcm9sbFNuYXBJbml0aWFsUHJvZ3Jlc3M7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgK
aW5kZXggODE3ZGViOWVlMmM0ZTc2YjE5NjA5ODE2NjhjMmRjMDUwMjhmOTMxZC4uY2FhNDdhMWQ2
NDhlZjZkM2QwNTg2MGQ1MTRhNTJmN2M4NGMyZGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgKQEAgLTQ3LDE2ICs0
NywyMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0QWZ0
ZXJFbGFwc2VkVGltZShTZWNvbmRzKSA9IDA7CiAgICAgdmlydHVhbCBTZWNvbmRzIGFuaW1hdGlv
bkR1cmF0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwgRmxvYXRQb2ludCBwcmVkaWN0ZWREZXN0aW5h
dGlvbk9mZnNldCgpOworCisgICAgRmxvYXRQb2ludCBkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmV0YXJnZXRlZFNjcm9sbE9mZnNldC52YWx1ZV9vcihtX2luaXRp
YWxEZXN0aW5hdGlvbk9mZnNldCk7IH0KKwogICAgIHZvaWQgc2V0UmV0YXJnZXRlZFNjcm9sbE9m
ZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAKIHByb3RlY3RlZDoKLSAgICBjb25zdCBGbG9hdFBv
aW50JiByZXRhcmdldGVkU2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9yZXRhcmdldGVk
U2Nyb2xsT2Zmc2V0LnZhbHVlKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmV0YXJnZXRlZFNjcm9s
bE9mZnNldERpZENoYW5nZSgpIHsgfQorICAgIHZpcnR1YWwgRmxvYXRQb2ludCBwcmVkaWN0ZWRE
ZXN0aW5hdGlvbk9mZnNldCgpOworCisgICAgdmlydHVhbCB2b2lkIGRlc3RpbmF0aW9uU2Nyb2xs
T2Zmc2V0RGlkQ2hhbmdlKCkgeyB9CiAKICAgICBGbG9hdFNpemUgbV9pbml0aWFsRGVsdGE7CiAg
ICAgRmxvYXRTaXplIG1faW5pdGlhbFZlbG9jaXR5OwogICAgIEZsb2F0UG9pbnQgbV9pbml0aWFs
U2Nyb2xsT2Zmc2V0OworICAgIEZsb2F0UG9pbnQgbV9pbml0aWFsRGVzdGluYXRpb25PZmZzZXQ7
CiAgICAgU2Nyb2xsRXh0ZW50cyBtX3Njcm9sbEV4dGVudHM7CiAKIHByaXZhdGU6CkBAIC03MCw5
ICs3NCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0
QWZ0ZXJFbGFwc2VkVGltZShTZWNvbmRzKSBmaW5hbDsKICAgICBTZWNvbmRzIGFuaW1hdGlvbkR1
cmF0aW9uKCkgZmluYWw7CisKICAgICB2b2lkIGluaXRpYWxpemVJbnRlcnBvbGF0aW9uQ29lZmZp
Y2llbnRzSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIGluaXRpYWxpemVTbmFwUHJvZ3Jlc3NDdXJ2
ZSgpOwogICAgIGZsb2F0IGFuaW1hdGlvblByb2dyZXNzQWZ0ZXJFbGFwc2VkVGltZShTZWNvbmRz
KSBjb25zdDsKKwogICAgIEZsb2F0UG9pbnQgbGluZWFybHlJbnRlcnBvbGF0ZWRPZmZzZXRBdFBy
b2dyZXNzKGZsb2F0IHByb2dyZXNzKTsKICAgICBGbG9hdFBvaW50IGN1YmljYWxseUludGVycG9s
YXRlZE9mZnNldEF0UHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpIGNvbnN0OwogCkBAIC04MSw3ICs4
Nyw2IEBAIHByaXZhdGU6CiAgICAgRmxvYXRTaXplIG1fc25hcEFuaW1hdGlvbkN1cnZlQ29lZmZp
Y2llbnRzWzRdIHsgfTsKICAgICBib29sIG1fZm9yY2VMaW5lYXJBbmltYXRpb25DdXJ2ZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX21vbWVudHVtQ2FsY3VsYXRvclJlcXVpcmVzSW5pdGlhbGl6YXRp
b24geyB0cnVlIH07Ci0gICAgc3RkOjpvcHRpb25hbDxGbG9hdFNpemU+IG1fcHJlZGljdGVkRGVz
dGluYXRpb25PZmZzZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9y
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yTWFjLmgKaW5kZXggYTVjMGNlZDBhZjcwOTY1YjY2NDlkMzAwNDlkMjg5MDgzNTY3YTdj
NC4uZWFkMDEwZjAxMzBlZDI2N2IyOGExNmY5YjU0NjhjNjQ3ZDkzOTk5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3JNYWMuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHByaXZhdGU6CiAgICAgRmxvYXRQb2lu
dCBzY3JvbGxPZmZzZXRBZnRlckVsYXBzZWRUaW1lKFNlY29uZHMpIGZpbmFsOwogICAgIFNlY29u
ZHMgYW5pbWF0aW9uRHVyYXRpb24oKSBmaW5hbDsKICAgICBGbG9hdFBvaW50IHByZWRpY3RlZERl
c3RpbmF0aW9uT2Zmc2V0KCkgZmluYWw7Ci0gICAgdm9pZCByZXRhcmdldGVkU2Nyb2xsT2Zmc2V0
RGlkQ2hhbmdlKCkgZmluYWw7CisgICAgdm9pZCBkZXN0aW5hdGlvblNjcm9sbE9mZnNldERpZENo
YW5nZSgpIGZpbmFsOwogCiAgICAgX05TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yICplbnN1
cmVQbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvcigpOwogICAgIGJvb2wgcmVxdWlyZXNNb21lbnR1
bVNjcm9sbGluZygpOworICAgIHZvaWQgc2V0TW9tZW50dW1DYWxjdWxhdG9yRGVzdGluYXRpb25P
ZmZzZXQoRmxvYXRQb2ludCk7CiAKICAgICBSZXRhaW5QdHI8X05TU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yPiBtX3BsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yOwogICAgIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gbV9yZXF1aXJlc01vbWVudHVtU2Nyb2xsaW5nOwotICAgIEZsb2F0UG9pbnQgbV9p
bml0aWFsRGVzdGluYXRpb25PcmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvck1hYy5tbQppbmRleCA1ZGUwNzY1OTdlMjI4MzE4ZWZiNTg4MDI0YmJk
MzEzNzVlNjFmYWY5Li4zYWNjNTE3NTU5ZDU1Y2M0NGU0ODhkOGRlMGFlYWNkNTA3NzkzNWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxp
bmdNb21lbnR1bUNhbGN1bGF0b3JNYWMubW0KQEAgLTQ3LDI5ICs0Nyw0MyBAQCB2b2lkIFNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6c2V0UGxhdGZvcm1Nb21lbnR1bVNjcm9sbGluZ1ByZWRp
Y3Rpb25FbmFibGVkKAogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjpTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3JNYWMoY29uc3QgU2Nyb2xsRXh0ZW50cyYgc2Nyb2xsRXh0ZW50cywg
Y29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFs
RGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5KQogICAgIDogU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG9yKHNjcm9sbEV4dGVudHMsIGluaXRpYWxPZmZzZXQsIGluaXRpYWxE
ZWx0YSwgaW5pdGlhbFZlbG9jaXR5KQogeworICAgIG1faW5pdGlhbERlc3RpbmF0aW9uT2Zmc2V0
ID0gcHJlZGljdGVkRGVzdGluYXRpb25PZmZzZXQoKTsKKyAgICAvLyBXZSBjb3VsZCBjb21wdXRl
IG1fcmVxdWlyZXNNb21lbnR1bVNjcm9sbGluZyBoZXJlLCBiYXNlZCBvbiB3aGV0aGVyIGluaXRp
YWxEZWx0YSBpcyBub24temVybyBvciB3ZSBhcmUgaW4gYSBydWJiZXItYmFuZGVkIHN0YXRlLgog
fQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6c2Nyb2xsT2Zm
c2V0QWZ0ZXJFbGFwc2VkVGltZShTZWNvbmRzIGVsYXBzZWRUaW1lKQogewogICAgIGlmICghcmVx
dWlyZXNNb21lbnR1bVNjcm9sbGluZygpKQotICAgICAgICByZXR1cm4gcmV0YXJnZXRlZFNjcm9s
bE9mZnNldCgpOworICAgICAgICByZXR1cm4gZGVzdGluYXRpb25TY3JvbGxPZmZzZXQoKTsKIAog
ICAgIHJldHVybiBbZW5zdXJlUGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3IoKSBwb3NpdGlvbkFm
dGVyRHVyYXRpb246ZWxhcHNlZFRpbWUudmFsdWUoKV07CiB9CiAKIEZsb2F0UG9pbnQgU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjpwcmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNldCgpCiB7
Ci0gICAgaWYgKCFnRW5hYmxlUGxhdGZvcm1Nb21lbnR1bVNjcm9sbGluZ1ByZWRpY3Rpb24pCi0g
ICAgICAgIHJldHVybiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnByZWRpY3RlZERlc3Rp
bmF0aW9uT2Zmc2V0KCk7Ci0KICAgICBlbnN1cmVQbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvcigp
OwotICAgIHJldHVybiB7IG1faW5pdGlhbERlc3RpbmF0aW9uT3JpZ2luLngoKSwgbV9pbml0aWFs
RGVzdGluYXRpb25PcmlnaW4ueSgpIH07CisKKyAgICBpZiAoIWdFbmFibGVQbGF0Zm9ybU1vbWVu
dHVtU2Nyb2xsaW5nUHJlZGljdGlvbikgeworICAgICAgICBhdXRvIG5vblBsYXRmb3JtUHJlZGlj
dGVkT2Zmc2V0ID0gU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpwcmVkaWN0ZWREZXN0aW5h
dGlvbk9mZnNldCgpOworICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgX05TU2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yIGhhcyB0aGUgc2FtZSBpZGVhIG9mIHdoYXQgb2Zmc2V0
IHdlJ3JlIHNob290aW5nIGZvci4KKyAgICAgICAgaWYgKG5vblBsYXRmb3JtUHJlZGljdGVkT2Zm
c2V0ICE9IG1faW5pdGlhbERlc3RpbmF0aW9uT2Zmc2V0KQorICAgICAgICAgICAgc2V0TW9tZW50
dW1DYWxjdWxhdG9yRGVzdGluYXRpb25PZmZzZXQobm9uUGxhdGZvcm1QcmVkaWN0ZWRPZmZzZXQp
OworCisgICAgICAgIHJldHVybiBub25QbGF0Zm9ybVByZWRpY3RlZE9mZnNldDsKKyAgICB9CisK
KyAgICByZXR1cm4gbV9pbml0aWFsRGVzdGluYXRpb25PZmZzZXQ7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjpkZXN0aW5hdGlvblNjcm9sbE9mZnNldERpZENoYW5n
ZSgpCit7CisgICAgc2V0TW9tZW50dW1DYWxjdWxhdG9yRGVzdGluYXRpb25PZmZzZXQoZGVzdGlu
YXRpb25TY3JvbGxPZmZzZXQoKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yTWFjOjpyZXRhcmdldGVkU2Nyb2xsT2Zmc2V0RGlkQ2hhbmdlKCkKK3ZvaWQgU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG9yTWFjOjpzZXRNb21lbnR1bUNhbGN1bGF0b3JEZXN0aW5hdGlvbk9m
ZnNldChGbG9hdFBvaW50IHNjcm9sbE9mZnNldCkKIHsKICAgICBfTlNTY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3IgKmNhbGN1bGF0b3IgPSBlbnN1cmVQbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRv
cigpOwotICAgIGNhbGN1bGF0b3IuZGVzdGluYXRpb25PcmlnaW4gPSByZXRhcmdldGVkU2Nyb2xs
T2Zmc2V0KCk7CisgICAgY2FsY3VsYXRvci5kZXN0aW5hdGlvbk9yaWdpbiA9IHNjcm9sbE9mZnNl
dDsKICAgICBbY2FsY3VsYXRvciBjYWxjdWxhdGVUb1JlYWNoRGVzdGluYXRpb25dOwogfQogCkBA
IC04NCw3ICs5OCw3IEBAIFNlY29uZHMgU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjph
bmltYXRpb25EdXJhdGlvbigpCiBib29sIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6
cmVxdWlyZXNNb21lbnR1bVNjcm9sbGluZygpCiB7CiAgICAgaWYgKG1fcmVxdWlyZXNNb21lbnR1
bVNjcm9sbGluZyA9PSBzdGQ6Om51bGxvcHQpCi0gICAgICAgIG1fcmVxdWlyZXNNb21lbnR1bVNj
cm9sbGluZyA9IG1faW5pdGlhbFNjcm9sbE9mZnNldCAhPSByZXRhcmdldGVkU2Nyb2xsT2Zmc2V0
KCkgfHwgbV9pbml0aWFsVmVsb2NpdHkuYXJlYSgpOworICAgICAgICBtX3JlcXVpcmVzTW9tZW50
dW1TY3JvbGxpbmcgPSBtX2luaXRpYWxTY3JvbGxPZmZzZXQgIT0gZGVzdGluYXRpb25TY3JvbGxP
ZmZzZXQoKSB8fCBtX2luaXRpYWxWZWxvY2l0eS5hcmVhKCk7CiAgICAgcmV0dXJuIG1fcmVxdWly
ZXNNb21lbnR1bVNjcm9sbGluZy52YWx1ZSgpOwogfQogCkBAIC05Nyw3ICsxMTEsNyBAQCBfTlNT
Y3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IgKlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1h
Yzo6ZW5zdXJlUGxhdGZvcm1NbwogICAgIE5TUmVjdCBjb250ZW50RnJhbWUgPSBOU01ha2VSZWN0
KDAsIDAsIG1fc2Nyb2xsRXh0ZW50cy5jb250ZW50c1NpemUud2lkdGgoKSwgbV9zY3JvbGxFeHRl
bnRzLmNvbnRlbnRzU2l6ZS5oZWlnaHQoKSk7CiAgICAgTlNQb2ludCB2ZWxvY2l0eSA9IE5TTWFr
ZVBvaW50KG1faW5pdGlhbFZlbG9jaXR5LndpZHRoKCksIG1faW5pdGlhbFZlbG9jaXR5LmhlaWdo
dCgpKTsKICAgICBtX3BsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yID0gYWRvcHROUyhbW19OU1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciBhbGxvY10gaW5pdFdpdGhJbml0aWFsT3JpZ2luOm9y
aWdpbiB2ZWxvY2l0eTp2ZWxvY2l0eSBkb2N1bWVudEZyYW1lOmNvbnRlbnRGcmFtZSBjb25zdHJh
aW5lZENsaXBwaW5nT3JpZ2luOk5TWmVyb1BvaW50IGNsaXBwaW5nU2l6ZTptX3Njcm9sbEV4dGVu
dHMudmlld3BvcnRTaXplIHRvbGVyYW5jZTpOU01ha2VTaXplKDEsIDEpXSk7Ci0gICAgbV9pbml0
aWFsRGVzdGluYXRpb25PcmlnaW4gPSBbbV9wbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvciBkZXN0
aW5hdGlvbk9yaWdpbl07CisgICAgbV9pbml0aWFsRGVzdGluYXRpb25PZmZzZXQgPSBbbV9wbGF0
Zm9ybU1vbWVudHVtQ2FsY3VsYXRvciBkZXN0aW5hdGlvbk9yaWdpbl07CiAgICAgcmV0dXJuIG1f
cGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3IuZ2V0KCk7CiB9CiAK
</data>
<flag name="review"
          id="468199"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443469</attachid>
            <date>2021-11-05 20:26:38 -0700</date>
            <delta_ts>2021-11-05 23:53:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232778-20211105202637.patch</filename>
            <type>text/plain</type>
            <size>18625</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmYmUxZDRjZjQyZDU2
NTk1NGY4YjIxOWQwMWFmZDY0OTI0OGVkMy4uOTM2Zjk0OTNjYmZlYmE2NzZkNjEzMzEwOTAxMWEz
MTZjNmE4NWFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTExLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gYXZvaWQgcmV0YXJnZXRpbmcgYSBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjc3OAor
CisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKyAgICAgICAgCisgICAgICAgIENh
bGxpbmcgLVtfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3Igc2V0RGVzdGluYXRpb25Pcmln
aW46XSB0byB0aGUgc2FtZSBvcmlnaW4gaXQncworICAgICAgICBhbHJlYWR5IHRhcmdldGluZyBo
YXMgc2lkZSBlZmZlY3RzIHJlbGF0ZWQgdG8gcnViYmVyLWJhbmRpbmcgd2hpY2ggYSBmdXR1cmUg
cGF0Y2ggbmVlZHMgdG8KKyAgICAgICAgYXZvaWQuIEhvd2V2ZXIsIFNjcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvciBpcyBzdHJ1Y3R1cmVkIHRvIGV4cGVjdCB0aGF0CisgICAgICAgIHNldFJldGFy
Z2V0ZWRTY3JvbGxPZmZzZXQoKSBpcyBjYWxsZWQsIG90aGVyd2lzZSBtX3JldGFyZ2V0ZWRTY3Jv
bGxPZmZzZXQgaXMgbGVmdCB1bnNldC4KKworICAgICAgICBGaXggc28gdGhhdCBpZiB0aGUgU2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yJ3MgZGVzdGluYXRpb24gaXMgYWxyZWFkeSBjb3JyZWN0
IHdoZW4gbm8KKyAgICAgICAgcmV0YXJnZXRpbmcgaXMgbmVjZXNzYXJ5LiBXZSBjb250aW51ZSB0
byBzdG9yZSB0aGUgc3RkOjpvcHRpb25hbCBtX3JldGFyZ2V0ZWRTY3JvbGxPZmZzZXQsCisgICAg
ICAgIGJ1dCBhbHdheXMgaW5pdGlhbGl6ZSBtX2luaXRpYWxEZXN0aW5hdGlvbk9mZnNldC4KKwor
ICAgICAgICBOb3cgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0ZWRTY3JvbGxX
aXRoSW5pdGlhbFZlbG9jaXR5KCkgY2FuIGF2b2lkCisgICAgICAgIGNhbGxpbmcgc2V0UmV0YXJn
ZXRlZFNjcm9sbE9mZnNldCgpIGlmIHRoZSBtb2RpZmllciBmdW5jdGlvbiBkb2Vzbid0IGFsdGVy
IHRoZQorICAgICAgICB0YXJnZXQgc2Nyb2xsIG9mZnNldC4KKworICAgICAgICBTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3JNYWMgaGFkIHNvbWUgdW5kZXNpcmFibGUgYmVoYXZpb3IgaW4gdGhl
CisgICAgICAgICFnRW5hYmxlUGxhdGZvcm1Nb21lbnR1bVNjcm9sbGluZ1ByZWRpY3Rpb24gY29k
ZSBwYXRoOyB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0CisgICAgICAgIF9OU1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvciBhZ3JlZXMgYWJvdXQgdGhlIHByZWRpY3RlZCBkZXN0aW5hdGlvbi4KKwor
ICAgICAgICBUZXN0ZWQgYnkgZXhpc3Rpbmcgc2Nyb2xsIHNuYXAgdGVzdHMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJbml0aWFs
VmVsb2NpdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnVw
ZGF0ZVNjcm9sbEV4dGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHND
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyOjpzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSk6CisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6c2V0UmV0YXJnZXRlZFNjcm9sbE9mZnNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6
QmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6QmFz
aWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmxpbmVhcmx5SW50ZXJwb2xhdGVkT2Zmc2V0
QXRQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2Fs
Y3VsYXRvcjo6aW5pdGlhbGl6ZUludGVycG9sYXRpb25Db2VmZmljaWVudHNJZk5lY2Vzc2FyeSk6
CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6aW5p
dGlhbGl6ZVNuYXBQcm9ncmVzc0N1cnZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvcjo6ZGVzdGluYXRpb25TY3JvbGxPZmZzZXQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpkZXN0aW5hdGlvblNjcm9sbE9mZnNl
dERpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3I6OnJldGFyZ2V0ZWRTY3JvbGxPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpyZXRhcmdldGVkU2Nyb2xsT2Zmc2V0
RGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYzo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6c2Nyb2xsT2Zmc2V0
QWZ0ZXJFbGFwc2VkVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3JNYWM6OnByZWRpY3RlZERlc3RpbmF0aW9uT2Zmc2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6ZGVzdGluYXRpb25TY3JvbGxPZmZz
ZXREaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yTWFjOjpzZXRNb21lbnR1bUNhbGN1bGF0b3JEZXN0aW5hdGlvbk9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6OnJlcXVpcmVzTW9tZW50
dW1TY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yTWFjOjplbnN1cmVQbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6OnJldGFyZ2V0ZWRTY3JvbGxPZmZz
ZXREaWRDaGFuZ2UpOiBEZWxldGVkLgorCiAyMDIxLTEwLTMwICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGNvZGUgdGhhdCBtYWtlcyB1
c2Ugb2YgV2hlZWxFdmVudERlbHRhRmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAKaW5kZXggMDg5M2Y3ZTc1YWVhNmJlMjRk
Mzk5ZTg2ZmNhODJiNzE2OGQ1ZTYwZC4uZTBlMGE1ZDZjMTg5Mzk0ZDQ0MGM4NDhmNmMxZWI3M2Ex
N2I4ZmM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uTW9tZW50dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvbk1vbWVudHVtLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCwxNiAr
NDEsMjEgQEAgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06On5TY3JvbGxBbmltYXRpb25Nb21lbnR1
bSgpID0gZGVmYXVsdDsKIGJvb2wgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0
ZWRTY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KGNvbnN0IEZsb2F0UG9pbnQmIGluaXRpYWxPZmZz
ZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5LCBjb25zdCBGbG9hdFNpemUmIGlu
aXRpYWxEZWx0YSwgY29uc3QgRnVuY3Rpb248RmxvYXRQb2ludChjb25zdCBGbG9hdFBvaW50Jik+
JiBkZXN0aW5hdGlvbk1vZGlmaWVyKQogewogICAgIGF1dG8gZXh0ZW50cyA9IG1fY2xpZW50LnNj
cm9sbEV4dGVudHNGb3JBbmltYXRpb24oKnRoaXMpOworICAgIG1fY3VycmVudE9mZnNldCA9IGlu
aXRpYWxPZmZzZXQ7CiAKICAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IFNjcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKGV4dGVudHMsIGluaXRpYWxPZmZzZXQsIGluaXRpYWxEZWx0
YSwgaW5pdGlhbFZlbG9jaXR5KTsKLSAgICBhdXRvIHByZWRpY3RlZFNjcm9sbE9mZnNldCA9IG1f
bW9tZW50dW1DYWxjdWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNldCgpOworICAgIGF1
dG8gZGVzdGluYXRpb25TY3JvbGxPZmZzZXQgPSBtX21vbWVudHVtQ2FsY3VsYXRvci0+ZGVzdGlu
YXRpb25TY3JvbGxPZmZzZXQoKTsKIAogICAgIGlmIChkZXN0aW5hdGlvbk1vZGlmaWVyKSB7Ci0g
ICAgICAgIHByZWRpY3RlZFNjcm9sbE9mZnNldCA9IGRlc3RpbmF0aW9uTW9kaWZpZXIocHJlZGlj
dGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgbV9tb21lbnR1bUNhbGN1bGF0b3ItPnNldFJldGFy
Z2V0ZWRTY3JvbGxPZmZzZXQocHJlZGljdGVkU2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgYXV0byBt
b2RpZmllZE9mZnNldCA9IGRlc3RpbmF0aW9uTW9kaWZpZXIoZGVzdGluYXRpb25TY3JvbGxPZmZz
ZXQpOworICAgICAgICBpZiAobW9kaWZpZWRPZmZzZXQgIT0gZGVzdGluYXRpb25TY3JvbGxPZmZz
ZXQpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJl
YW0gPDwgIlNjcm9sbEFuaW1hdGlvbk1vbWVudHVtICIgPDwgdGhpcyA8PCAiIHN0YXJ0QW5pbWF0
ZWRTY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5IC0gcHJlZGljdGVkIG9mZnNldCAiIDw8IGRlc3Rp
bmF0aW9uU2Nyb2xsT2Zmc2V0IDw8ICIgbW9kaWZpZWQgdG8gIiA8PCBtb2RpZmllZE9mZnNldCk7
CisgICAgICAgICAgICBkZXN0aW5hdGlvblNjcm9sbE9mZnNldCA9IG1vZGlmaWVkT2Zmc2V0Owor
ICAgICAgICAgICAgbV9tb21lbnR1bUNhbGN1bGF0b3ItPnNldFJldGFyZ2V0ZWRTY3JvbGxPZmZz
ZXQoZGVzdGluYXRpb25TY3JvbGxPZmZzZXQpOworICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KHByZWRpY3RlZFNjcm9sbE9mZnNldCA9PSBpbml0aWFsT2Zmc2V0KSB7CisgICAgaWYgKGRlc3Rp
bmF0aW9uU2Nyb2xsT2Zmc2V0ID09IGluaXRpYWxPZmZzZXQpIHsKICAgICAgICAgbV9tb21lbnR1
bUNhbGN1bGF0b3IgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAt
OTksNyArMTA1LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c2VydmljZUFuaW1h
dGlvbihNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lKQogdm9pZCBTY3JvbGxBbmltYXRpb25Nb21l
bnR1bTo6dXBkYXRlU2Nyb2xsRXh0ZW50cygpCiB7CiAgICAgYXV0byBleHRlbnRzID0gbV9jbGll
bnQuc2Nyb2xsRXh0ZW50c0ZvckFuaW1hdGlvbigqdGhpcyk7Ci0gICAgYXV0byBwcmVkaWN0ZWRT
Y3JvbGxPZmZzZXQgPSBtX21vbWVudHVtQ2FsY3VsYXRvci0+cHJlZGljdGVkRGVzdGluYXRpb25P
ZmZzZXQoKTsKKyAgICBhdXRvIHByZWRpY3RlZFNjcm9sbE9mZnNldCA9IG1fbW9tZW50dW1DYWxj
dWxhdG9yLT5kZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpOwogICAgIGF1dG8gY29uc3RyYWluZWRP
ZmZzZXQgPSBwcmVkaWN0ZWRTY3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKGV4dGVudHMu
bWluaW11bVNjcm9sbE9mZnNldCgpLCBleHRlbnRzLm1heGltdW1TY3JvbGxPZmZzZXQoKSk7CiAg
ICAgaWYgKGNvbnN0cmFpbmVkT2Zmc2V0ICE9IHByZWRpY3RlZFNjcm9sbE9mZnNldCkKICAgICAg
ICAgcmV0YXJnZXRBY3RpdmVBbmltYXRpb24oY29uc3RyYWluZWRPZmZzZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3Bw
CmluZGV4IDQ3NjlmMWQ1OGY4YmMzY2I0MmY4Y2MyNGU3ZDU4YWIwMjM5Zjk3ZGUuLmIxYzM2NjJj
ZGNhMzU3ZTA3Y2QzZDVmODE0N2I2ODY3ZTdmZTczYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKQEAgLTE1MCw3
ICsxNTAsNyBAQCBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydE1vbWVudHVt
U2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eShjb25zdCBGbAogICAgIGlmICghbV9jdXJyZW50QW5p
bWF0aW9uKQogICAgICAgICBtX2N1cnJlbnRBbmltYXRpb24gPSBtYWtlVW5pcXVlPFNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtPigqdGhpcyk7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsQW5p
bWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlciAiIDw8IHRoaXMg
PDwgIiBzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSAiIDw8IGluaXRpYWxW
ZWxvY2l0eSA8PCAiIGZyb20gIiA8PCBpbml0aWFsT2Zmc2V0KTsKKyAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxl
ciAiIDw8IHRoaXMgPDwgIiBzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSAi
IDw8IGluaXRpYWxWZWxvY2l0eSA8PCAiIGluaXRpYWxEZWx0YSAiIDw8IGluaXRpYWxEZWx0YSA8
PCAiIGZyb20gIiA8PCBpbml0aWFsT2Zmc2V0KTsKICAgICByZXR1cm4gZG93bmNhc3Q8U2Nyb2xs
QW5pbWF0aW9uTW9tZW50dW0+KCptX2N1cnJlbnRBbmltYXRpb24pLnN0YXJ0QW5pbWF0ZWRTY3Jv
bGxXaXRoSW5pdGlhbFZlbG9jaXR5KGluaXRpYWxPZmZzZXQsIGluaXRpYWxWZWxvY2l0eSwgaW5p
dGlhbERlbHRhLCBkZXN0aW5hdGlvbk1vZGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAKaW5kZXgg
NTJlOTk3OWZjZjBiN2M4Nzg3ZTgzYjc5YjE2YmUwNzFiMDBlNzYyYi4uODRhYmZjYzNmMDJjZWE1
NTlhYWEzNDIyOGI3MzA1NjQ0NTUyNWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwCkBAIC01MiwxMSArNTIs
MTEgQEAgU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3IoY29uc3QgU2Nyb2xsRXh0ZW50cyYgc2MKIAogdm9pZCBTY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3I6OnNldFJldGFyZ2V0ZWRTY3JvbGxPZmZzZXQoY29uc3QgRmxvYXRQb2ludCYgdGFy
Z2V0KQogewotICAgIGlmIChtX3JldGFyZ2V0ZWRTY3JvbGxPZmZzZXQgJiYgbV9yZXRhcmdldGVk
U2Nyb2xsT2Zmc2V0ID09IHRhcmdldCkKLSAgICAgICAgcmV0dXJuOwotCisgICAgYXV0byBjdXJy
ZW50RGVzdGluYXRpb24gPSBkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpOwogICAgIG1fcmV0YXJn
ZXRlZFNjcm9sbE9mZnNldCA9IHRhcmdldDsKLSAgICByZXRhcmdldGVkU2Nyb2xsT2Zmc2V0RGlk
Q2hhbmdlKCk7CisgICAgCisgICAgaWYgKGN1cnJlbnREZXN0aW5hdGlvbiAhPSBkZXN0aW5hdGlv
blNjcm9sbE9mZnNldCgpKQorICAgICAgICBkZXN0aW5hdGlvblNjcm9sbE9mZnNldERpZENoYW5n
ZSgpOwogfQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6cHJlZGlj
dGVkRGVzdGluYXRpb25PZmZzZXQoKQpAQCAtODUsMTEgKzg1LDEyIEBAIHZvaWQgU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG9yOjpzZXRQbGF0Zm9ybU1vbWVudHVtU2Nyb2xsaW5nUHJlZGljdGlv
bkVuYWJsZWQoCiBCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6QmFzaWNTY3JvbGxp
bmdNb21lbnR1bUNhbGN1bGF0b3IoY29uc3QgU2Nyb2xsRXh0ZW50cyYgc2Nyb2xsRXh0ZW50cywg
Y29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFs
RGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5KQogICAgIDogU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG9yKHNjcm9sbEV4dGVudHMsIGluaXRpYWxPZmZzZXQsIGluaXRpYWxE
ZWx0YSwgaW5pdGlhbFZlbG9jaXR5KQogeworICAgIG1faW5pdGlhbERlc3RpbmF0aW9uT2Zmc2V0
ID0gcHJlZGljdGVkRGVzdGluYXRpb25PZmZzZXQoKTsKIH0KIAogRmxvYXRQb2ludCBCYXNpY1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6bGluZWFybHlJbnRlcnBvbGF0ZWRPZmZzZXRBdFBy
b2dyZXNzKGZsb2F0IHByb2dyZXNzKQogewotICAgIHJldHVybiBtX2luaXRpYWxTY3JvbGxPZmZz
ZXQgKyBwcm9ncmVzcyAqIChyZXRhcmdldGVkU2Nyb2xsT2Zmc2V0KCkgLSBtX2luaXRpYWxTY3Jv
bGxPZmZzZXQpOworICAgIHJldHVybiBtX2luaXRpYWxTY3JvbGxPZmZzZXQgKyBwcm9ncmVzcyAq
IChkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpIC0gbV9pbml0aWFsU2Nyb2xsT2Zmc2V0KTsKIH0K
IAogRmxvYXRQb2ludCBCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6Y3ViaWNhbGx5
SW50ZXJwb2xhdGVkT2Zmc2V0QXRQcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykgY29uc3QKQEAgLTE0
OSw3ICsxNTAsNyBAQCB2b2lkIEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjppbml0
aWFsaXplSW50ZXJwb2xhdGlvbkNvZWZmaWNpZW50c0lmTmVjZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgRmxvYXRTaXplIHN0YXJ0VG9FbmRWZWN0b3IgPSByZXRhcmdldGVkU2Nyb2xs
T2Zmc2V0KCkgLSBtX2luaXRpYWxTY3JvbGxPZmZzZXQ7CisgICAgRmxvYXRTaXplIHN0YXJ0VG9F
bmRWZWN0b3IgPSBkZXN0aW5hdGlvblNjcm9sbE9mZnNldCgpIC0gbV9pbml0aWFsU2Nyb2xsT2Zm
c2V0OwogICAgIGZsb2F0IHN0YXJ0VG9FbmREaXN0YW5jZSA9IHN0YXJ0VG9FbmRWZWN0b3IuZGlh
Z29uYWxMZW5ndGgoKTsKICAgICBpZiAoIXN0YXJ0VG9FbmREaXN0YW5jZSkgewogICAgICAgICAv
LyBUaGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMgYXJlIHRoZSBzYW1lLCBzbyB3ZSBzaG91bGRu
J3QgdHJ5IHRvIGludGVycG9sYXRlIGEgcGF0aC4KQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lkIEJh
c2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjppbml0aWFsaXplSW50ZXJwb2xhdGlvbkNv
ZWZmaWNpZW50c0lmTmVjZQogICAgIG1fc25hcEFuaW1hdGlvbkN1cnZlQ29lZmZpY2llbnRzWzBd
ID0gaW5pdGlhbE9mZnNldEFzU2l6ZTsKICAgICBtX3NuYXBBbmltYXRpb25DdXJ2ZUNvZWZmaWNp
ZW50c1sxXSA9IDMgKiAoY29udHJvbFZlY3RvcjEgLSBpbml0aWFsT2Zmc2V0QXNTaXplKTsKICAg
ICBtX3NuYXBBbmltYXRpb25DdXJ2ZUNvZWZmaWNpZW50c1syXSA9IDMgKiAoaW5pdGlhbE9mZnNl
dEFzU2l6ZSAtIDIgKiBjb250cm9sVmVjdG9yMSArIGNvbnRyb2xWZWN0b3IyKTsKLSAgICBtX3Nu
YXBBbmltYXRpb25DdXJ2ZUNvZWZmaWNpZW50c1szXSA9IDMgKiAoY29udHJvbFZlY3RvcjEgLSBj
b250cm9sVmVjdG9yMikgLSBpbml0aWFsT2Zmc2V0QXNTaXplICsgdG9GbG9hdFNpemUocmV0YXJn
ZXRlZFNjcm9sbE9mZnNldCgpKTsKKyAgICBtX3NuYXBBbmltYXRpb25DdXJ2ZUNvZWZmaWNpZW50
c1szXSA9IDMgKiAoY29udHJvbFZlY3RvcjEgLSBjb250cm9sVmVjdG9yMikgLSBpbml0aWFsT2Zm
c2V0QXNTaXplICsgdG9GbG9hdFNpemUoZGVzdGluYXRpb25TY3JvbGxPZmZzZXQoKSk7CiAgICAg
bV9mb3JjZUxpbmVhckFuaW1hdGlvbkN1cnZlID0gZmFsc2U7CiB9CiAKQEAgLTIwOSwxMCArMjEw
LDEwIEBAIHZvaWQgQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmluaXRpYWxpemVT
bmFwUHJvZ3Jlc3NDdXJ2ZSgpCiAgICAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblNjcm9sbFNuYXBJ
bml0aWFsUHJvZ3Jlc3MgPSAwLjE7CiAgICAgc3RhdGljIGNvbnN0IGZsb2F0IG1heFNjcm9sbFNu
YXBJbml0aWFsUHJvZ3Jlc3MgPSAwLjU7CiAKLSAgICBGbG9hdFNpemUgYWxpZ25tZW50VmVjdG9y
ID0gbV9pbml0aWFsRGVsdGEgKiAocmV0YXJnZXRlZFNjcm9sbE9mZnNldCgpIC0gbV9pbml0aWFs
U2Nyb2xsT2Zmc2V0KTsKKyAgICBGbG9hdFNpemUgYWxpZ25tZW50VmVjdG9yID0gbV9pbml0aWFs
RGVsdGEgKiAoZGVzdGluYXRpb25TY3JvbGxPZmZzZXQoKSAtIG1faW5pdGlhbFNjcm9sbE9mZnNl
dCk7CiAgICAgZmxvYXQgaW5pdGlhbFByb2dyZXNzOwogICAgIGlmIChhbGlnbm1lbnRWZWN0b3Iu
d2lkdGgoKSArIGFsaWdubWVudFZlY3Rvci5oZWlnaHQoKSA+IDApCi0gICAgICAgIGluaXRpYWxQ
cm9ncmVzcyA9IGNsYW1wVG8obV9pbml0aWFsRGVsdGEuZGlhZ29uYWxMZW5ndGgoKSAvIChyZXRh
cmdldGVkU2Nyb2xsT2Zmc2V0KCkgLSBtX2luaXRpYWxTY3JvbGxPZmZzZXQpLmRpYWdvbmFsTGVu
Z3RoKCksIG1pblNjcm9sbFNuYXBJbml0aWFsUHJvZ3Jlc3MsIG1heFNjcm9sbFNuYXBJbml0aWFs
UHJvZ3Jlc3MpOworICAgICAgICBpbml0aWFsUHJvZ3Jlc3MgPSBjbGFtcFRvKG1faW5pdGlhbERl
bHRhLmRpYWdvbmFsTGVuZ3RoKCkgLyAoZGVzdGluYXRpb25TY3JvbGxPZmZzZXQoKSAtIG1faW5p
dGlhbFNjcm9sbE9mZnNldCkuZGlhZ29uYWxMZW5ndGgoKSwgbWluU2Nyb2xsU25hcEluaXRpYWxQ
cm9ncmVzcywgbWF4U2Nyb2xsU25hcEluaXRpYWxQcm9ncmVzcyk7CiAgICAgZWxzZQogICAgICAg
ICBpbml0aWFsUHJvZ3Jlc3MgPSBtaW5TY3JvbGxTbmFwSW5pdGlhbFByb2dyZXNzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRv
ci5oCmluZGV4IDgxN2RlYjllZTJjNGU3NmIxOTYwOTgxNjY4YzJkYzA1MDI4ZjkzMWQuLmNhYTQ3
YTFkNjQ4ZWY2ZDNkMDU4NjBkNTE0YTUyZjdjODRjMmRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oCkBAIC00Nywx
NiArNDcsMjAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBGbG9hdFBvaW50IHNjcm9sbE9mZnNl
dEFmdGVyRWxhcHNlZFRpbWUoU2Vjb25kcykgPSAwOwogICAgIHZpcnR1YWwgU2Vjb25kcyBhbmlt
YXRpb25EdXJhdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIEZsb2F0UG9pbnQgcHJlZGljdGVkRGVz
dGluYXRpb25PZmZzZXQoKTsKKworICAgIEZsb2F0UG9pbnQgZGVzdGluYXRpb25TY3JvbGxPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX3JldGFyZ2V0ZWRTY3JvbGxPZmZzZXQudmFsdWVfb3IobV9p
bml0aWFsRGVzdGluYXRpb25PZmZzZXQpOyB9CisKICAgICB2b2lkIHNldFJldGFyZ2V0ZWRTY3Jv
bGxPZmZzZXQoY29uc3QgRmxvYXRQb2ludCYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgY29uc3QgRmxv
YXRQb2ludCYgcmV0YXJnZXRlZFNjcm9sbE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcmV0YXJn
ZXRlZFNjcm9sbE9mZnNldC52YWx1ZSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJldGFyZ2V0ZWRT
Y3JvbGxPZmZzZXREaWRDaGFuZ2UoKSB7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UG9pbnQgcHJlZGlj
dGVkRGVzdGluYXRpb25PZmZzZXQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkZXN0aW5hdGlvblNj
cm9sbE9mZnNldERpZENoYW5nZSgpIHsgfQogCiAgICAgRmxvYXRTaXplIG1faW5pdGlhbERlbHRh
OwogICAgIEZsb2F0U2l6ZSBtX2luaXRpYWxWZWxvY2l0eTsKICAgICBGbG9hdFBvaW50IG1faW5p
dGlhbFNjcm9sbE9mZnNldDsKKyAgICBGbG9hdFBvaW50IG1faW5pdGlhbERlc3RpbmF0aW9uT2Zm
c2V0OwogICAgIFNjcm9sbEV4dGVudHMgbV9zY3JvbGxFeHRlbnRzOwogCiBwcml2YXRlOgpAQCAt
NzAsOSArNzQsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGbG9hdFBvaW50IHNjcm9sbE9m
ZnNldEFmdGVyRWxhcHNlZFRpbWUoU2Vjb25kcykgZmluYWw7CiAgICAgU2Vjb25kcyBhbmltYXRp
b25EdXJhdGlvbigpIGZpbmFsOworCiAgICAgdm9pZCBpbml0aWFsaXplSW50ZXJwb2xhdGlvbkNv
ZWZmaWNpZW50c0lmTmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBpbml0aWFsaXplU25hcFByb2dyZXNz
Q3VydmUoKTsKICAgICBmbG9hdCBhbmltYXRpb25Qcm9ncmVzc0FmdGVyRWxhcHNlZFRpbWUoU2Vj
b25kcykgY29uc3Q7CisKICAgICBGbG9hdFBvaW50IGxpbmVhcmx5SW50ZXJwb2xhdGVkT2Zmc2V0
QXRQcm9ncmVzcyhmbG9hdCBwcm9ncmVzcyk7CiAgICAgRmxvYXRQb2ludCBjdWJpY2FsbHlJbnRl
cnBvbGF0ZWRPZmZzZXRBdFByb2dyZXNzKGZsb2F0IHByb2dyZXNzKSBjb25zdDsKIApAQCAtODEs
NyArODcsNiBAQCBwcml2YXRlOgogICAgIEZsb2F0U2l6ZSBtX3NuYXBBbmltYXRpb25DdXJ2ZUNv
ZWZmaWNpZW50c1s0XSB7IH07CiAgICAgYm9vbCBtX2ZvcmNlTGluZWFyQW5pbWF0aW9uQ3VydmUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb21lbnR1bUNhbGN1bGF0b3JSZXF1aXJlc0luaXRpYWxp
emF0aW9uIHsgdHJ1ZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBtX3ByZWRpY3Rl
ZERlc3RpbmF0aW9uT2Zmc2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3Vs
YXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvck1hYy5oCmluZGV4IGE1YzBjZWQwYWY3MDk2NWI2NjQ5ZDMwMDQ5ZDI4OTA4MzU2
N2E3YzQuLmVhZDAxMGYwMTMwZWQyNjdiMjhhMTZmOWI1NDY4YzY0N2Q5Mzk5OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nTW9tZW50
dW1DYWxjdWxhdG9yTWFjLmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwcml2YXRlOgogICAgIEZsb2F0
UG9pbnQgc2Nyb2xsT2Zmc2V0QWZ0ZXJFbGFwc2VkVGltZShTZWNvbmRzKSBmaW5hbDsKICAgICBT
ZWNvbmRzIGFuaW1hdGlvbkR1cmF0aW9uKCkgZmluYWw7CiAgICAgRmxvYXRQb2ludCBwcmVkaWN0
ZWREZXN0aW5hdGlvbk9mZnNldCgpIGZpbmFsOwotICAgIHZvaWQgcmV0YXJnZXRlZFNjcm9sbE9m
ZnNldERpZENoYW5nZSgpIGZpbmFsOworICAgIHZvaWQgZGVzdGluYXRpb25TY3JvbGxPZmZzZXRE
aWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIF9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciAq
ZW5zdXJlUGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3IoKTsKICAgICBib29sIHJlcXVpcmVzTW9t
ZW50dW1TY3JvbGxpbmcoKTsKKyAgICB2b2lkIHNldE1vbWVudHVtQ2FsY3VsYXRvckRlc3RpbmF0
aW9uT2Zmc2V0KEZsb2F0UG9pbnQpOwogCiAgICAgUmV0YWluUHRyPF9OU1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvcj4gbV9wbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvcjsKICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IG1fcmVxdWlyZXNNb21lbnR1bVNjcm9sbGluZzsKLSAgICBGbG9hdFBvaW50
IG1faW5pdGlhbERlc3RpbmF0aW9uT3JpZ2luOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxp
bmdNb21lbnR1bUNhbGN1bGF0b3JNYWMubW0KaW5kZXggNWRlMDc2NTk3ZTIyODMxOGVmYjU4ODAy
NGJiZDMxMzc1ZTYxZmFmOS4uM2FjYzUxNzU1OWQ1NWNjNDRlNDg4ZDhkZTBhZWFjZDUwNzc5MzVj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLm1tCkBAIC00NywyOSArNDcsNDMgQEAgdm9pZCBT
Y3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnNldFBsYXRmb3JtTW9tZW50dW1TY3JvbGxpbmdQ
cmVkaWN0aW9uRW5hYmxlZCgKIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6U2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjKGNvbnN0IFNjcm9sbEV4dGVudHMmIHNjcm9sbEV4dGVu
dHMsIGNvbnN0IEZsb2F0UG9pbnQmIGluaXRpYWxPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5p
dGlhbERlbHRhLCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxWZWxvY2l0eSkKICAgICA6IFNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvcihzY3JvbGxFeHRlbnRzLCBpbml0aWFsT2Zmc2V0LCBpbml0
aWFsRGVsdGEsIGluaXRpYWxWZWxvY2l0eSkKIHsKKyAgICBtX2luaXRpYWxEZXN0aW5hdGlvbk9m
ZnNldCA9IHByZWRpY3RlZERlc3RpbmF0aW9uT2Zmc2V0KCk7CisgICAgLy8gV2UgY291bGQgY29t
cHV0ZSBtX3JlcXVpcmVzTW9tZW50dW1TY3JvbGxpbmcgaGVyZSwgYmFzZWQgb24gd2hldGhlciBp
bml0aWFsRGVsdGEgaXMgbm9uLXplcm8gb3Igd2UgYXJlIGluIGEgcnViYmVyLWJhbmRlZCBzdGF0
ZS4KIH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6OnNjcm9s
bE9mZnNldEFmdGVyRWxhcHNlZFRpbWUoU2Vjb25kcyBlbGFwc2VkVGltZSkKIHsKICAgICBpZiAo
IXJlcXVpcmVzTW9tZW50dW1TY3JvbGxpbmcoKSkKLSAgICAgICAgcmV0dXJuIHJldGFyZ2V0ZWRT
Y3JvbGxPZmZzZXQoKTsKKyAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0KCk7
CiAKICAgICByZXR1cm4gW2Vuc3VyZVBsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yKCkgcG9zaXRp
b25BZnRlckR1cmF0aW9uOmVsYXBzZWRUaW1lLnZhbHVlKCldOwogfQogCiBGbG9hdFBvaW50IFNj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6cHJlZGljdGVkRGVzdGluYXRpb25PZmZzZXQo
KQogewotICAgIGlmICghZ0VuYWJsZVBsYXRmb3JtTW9tZW50dW1TY3JvbGxpbmdQcmVkaWN0aW9u
KQotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpwcmVkaWN0ZWRE
ZXN0aW5hdGlvbk9mZnNldCgpOwotCiAgICAgZW5zdXJlUGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0
b3IoKTsKLSAgICByZXR1cm4geyBtX2luaXRpYWxEZXN0aW5hdGlvbk9yaWdpbi54KCksIG1faW5p
dGlhbERlc3RpbmF0aW9uT3JpZ2luLnkoKSB9OworCisgICAgaWYgKCFnRW5hYmxlUGxhdGZvcm1N
b21lbnR1bVNjcm9sbGluZ1ByZWRpY3Rpb24pIHsKKyAgICAgICAgYXV0byBub25QbGF0Zm9ybVBy
ZWRpY3RlZE9mZnNldCA9IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6cHJlZGljdGVkRGVz
dGluYXRpb25PZmZzZXQoKTsKKyAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIF9O
U1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciBoYXMgdGhlIHNhbWUgaWRlYSBvZiB3aGF0IG9m
ZnNldCB3ZSdyZSBzaG9vdGluZyBmb3IuCisgICAgICAgIGlmIChub25QbGF0Zm9ybVByZWRpY3Rl
ZE9mZnNldCAhPSBtX2luaXRpYWxEZXN0aW5hdGlvbk9mZnNldCkKKyAgICAgICAgICAgIHNldE1v
bWVudHVtQ2FsY3VsYXRvckRlc3RpbmF0aW9uT2Zmc2V0KG5vblBsYXRmb3JtUHJlZGljdGVkT2Zm
c2V0KTsKKworICAgICAgICByZXR1cm4gbm9uUGxhdGZvcm1QcmVkaWN0ZWRPZmZzZXQ7CisgICAg
fQorCisgICAgcmV0dXJuIG1faW5pdGlhbERlc3RpbmF0aW9uT2Zmc2V0OworfQorCit2b2lkIFNj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6ZGVzdGluYXRpb25TY3JvbGxPZmZzZXREaWRD
aGFuZ2UoKQoreworICAgIHNldE1vbWVudHVtQ2FsY3VsYXRvckRlc3RpbmF0aW9uT2Zmc2V0KGRl
c3RpbmF0aW9uU2Nyb2xsT2Zmc2V0KCkpOwogfQogCi12b2lkIFNjcm9sbGluZ01vbWVudHVtQ2Fs
Y3VsYXRvck1hYzo6cmV0YXJnZXRlZFNjcm9sbE9mZnNldERpZENoYW5nZSgpCit2b2lkIFNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6c2V0TW9tZW50dW1DYWxjdWxhdG9yRGVzdGluYXRp
b25PZmZzZXQoRmxvYXRQb2ludCBzY3JvbGxPZmZzZXQpCiB7CiAgICAgX05TU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yICpjYWxjdWxhdG9yID0gZW5zdXJlUGxhdGZvcm1Nb21lbnR1bUNhbGN1
bGF0b3IoKTsKLSAgICBjYWxjdWxhdG9yLmRlc3RpbmF0aW9uT3JpZ2luID0gcmV0YXJnZXRlZFNj
cm9sbE9mZnNldCgpOworICAgIGNhbGN1bGF0b3IuZGVzdGluYXRpb25PcmlnaW4gPSBzY3JvbGxP
ZmZzZXQ7CiAgICAgW2NhbGN1bGF0b3IgY2FsY3VsYXRlVG9SZWFjaERlc3RpbmF0aW9uXTsKIH0K
IApAQCAtODQsNyArOTgsNyBAQCBTZWNvbmRzIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1h
Yzo6YW5pbWF0aW9uRHVyYXRpb24oKQogYm9vbCBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWM6OnJlcXVpcmVzTW9tZW50dW1TY3JvbGxpbmcoKQogewogICAgIGlmIChtX3JlcXVpcmVzTW9t
ZW50dW1TY3JvbGxpbmcgPT0gc3RkOjpudWxsb3B0KQotICAgICAgICBtX3JlcXVpcmVzTW9tZW50
dW1TY3JvbGxpbmcgPSBtX2luaXRpYWxTY3JvbGxPZmZzZXQgIT0gcmV0YXJnZXRlZFNjcm9sbE9m
ZnNldCgpIHx8IG1faW5pdGlhbFZlbG9jaXR5LmFyZWEoKTsKKyAgICAgICAgbV9yZXF1aXJlc01v
bWVudHVtU2Nyb2xsaW5nID0gbV9pbml0aWFsU2Nyb2xsT2Zmc2V0ICE9IGRlc3RpbmF0aW9uU2Ny
b2xsT2Zmc2V0KCkgfHwgbV9pbml0aWFsVmVsb2NpdHkuYXJlYSgpOwogICAgIHJldHVybiBtX3Jl
cXVpcmVzTW9tZW50dW1TY3JvbGxpbmcudmFsdWUoKTsKIH0KIApAQCAtOTcsNyArMTExLDcgQEAg
X05TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yICpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3JNYWM6OmVuc3VyZVBsYXRmb3JtTW8KICAgICBOU1JlY3QgY29udGVudEZyYW1lID0gTlNNYWtl
UmVjdCgwLCAwLCBtX3Njcm9sbEV4dGVudHMuY29udGVudHNTaXplLndpZHRoKCksIG1fc2Nyb2xs
RXh0ZW50cy5jb250ZW50c1NpemUuaGVpZ2h0KCkpOwogICAgIE5TUG9pbnQgdmVsb2NpdHkgPSBO
U01ha2VQb2ludChtX2luaXRpYWxWZWxvY2l0eS53aWR0aCgpLCBtX2luaXRpYWxWZWxvY2l0eS5o
ZWlnaHQoKSk7CiAgICAgbV9wbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvciA9IGFkb3B0TlMoW1tf
TlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IgYWxsb2NdIGluaXRXaXRoSW5pdGlhbE9yaWdp
bjpvcmlnaW4gdmVsb2NpdHk6dmVsb2NpdHkgZG9jdW1lbnRGcmFtZTpjb250ZW50RnJhbWUgY29u
c3RyYWluZWRDbGlwcGluZ09yaWdpbjpOU1plcm9Qb2ludCBjbGlwcGluZ1NpemU6bV9zY3JvbGxF
eHRlbnRzLnZpZXdwb3J0U2l6ZSB0b2xlcmFuY2U6TlNNYWtlU2l6ZSgxLCAxKV0pOwotICAgIG1f
aW5pdGlhbERlc3RpbmF0aW9uT3JpZ2luID0gW21fcGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3Ig
ZGVzdGluYXRpb25PcmlnaW5dOworICAgIG1faW5pdGlhbERlc3RpbmF0aW9uT2Zmc2V0ID0gW21f
cGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3IgZGVzdGluYXRpb25PcmlnaW5dOwogICAgIHJldHVy
biBtX3BsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yLmdldCgpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>