<?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>198757</bug_id>
          
          <creation_ts>2019-06-11 10:16:32 -0700</creation_ts>
          <short_desc>[ Mojave+ ] Layout Test compositing/fixed-with-main-thread-scrolling.html is a flaky timeout</short_desc>
          <delta_ts>2019-10-17 15:15:16 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=197819</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="Shawn Roberts">sroberts</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>jlewis3</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1543741</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-06-11 10:16:32 -0700</bug_when>
    <thetext>The following layout test is flaky on Mojave WK2 Release and Debug

compositing/fixed-with-main-thread-scrolling.html

Probable cause:

Appears to have been flaky its entire history since its last change in r238883 . 

Local testing I verified flaky behavior from current revision all the way back to 238883, but flaky behavior did seem to get worse around r244215 but I cannot verify completely since results are very sporadic. 

Verified with :

run-webkit-tests compositing/fixed-with-main-thread-scrolling.html --iter 500 -f

Flakiness Dashboard:

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=compositing%2Ffixed-with-main-thread-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543742</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-11 10:17:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/51628629&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543754</commentid>
    <comment_count>2</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-06-11 10:25:56 -0700</bug_when>
    <thetext>Updated expectations in https://trac.webkit.org/changeset/246323/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580371</commentid>
    <comment_count>3</comment_count>
      <attachid>381037</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-15 16:40:36 -0700</bug_when>
    <thetext>Created attachment 381037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580404</commentid>
    <comment_count>4</comment_count>
      <attachid>381043</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-15 17:45:18 -0700</bug_when>
    <thetext>Created attachment 381043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580663</commentid>
    <comment_count>5</comment_count>
      <attachid>381105</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-16 13:51:19 -0700</bug_when>
    <thetext>Created attachment 381105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581108</commentid>
    <comment_count>6</comment_count>
      <attachid>381218</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-17 13:17:40 -0700</bug_when>
    <thetext>Created attachment 381218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581181</commentid>
    <comment_count>7</comment_count>
      <attachid>381218</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-17 15:15:16 -0700</bug_when>
    <thetext>Comment on attachment 381218
Patch

Clearing flags on attachment: 381218

Committed r251262: &lt;https://trac.webkit.org/changeset/251262&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381037</attachid>
            <date>2019-10-15 16:40:36 -0700</date>
            <delta_ts>2019-10-15 16:45:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198757-20191015164035.patch</filename>
            <type>text/plain</type>
            <size>18128</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY0Y2JjMDVkNmYxNDkw
OGRhNDA0YjQyNzRjNDI3ZGMzN2MyYTAwMi4uNDVmOWRhOTMxYmEyYjRlZDg5NWQ2MTczYWIwZGJl
ZDQ5NjBjODUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEwLTE1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFsgTW9qYXZlKyBd
IExheW91dCBUZXN0IGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5n
Lmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTg3NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciBkZXBlbmRzIG9u
ICJkZWZlcnJhbCByZWFzb25zIiBnZXR0aW5nIGFkZGVkIGFuZCByZW1vdmVkLCBzdWNoIHRoYXQg
dGhlcmUgaXMgYWx3YXlzCisgICAgICAgIGF0IGxlYXN0IG9uZSByZWFzb24gYWN0aXZlIHVudGls
IHNjcm9sbGluZyBxdWllc2Nlcy4KKworICAgICAgICBXaGVlbEV2ZW50VGVzdE1vbml0b3IgbWFk
ZSB0aGUgaW5jb3JyZWN0IGFzc3VtcHRpb24gdGhhdCBldmVyeSBjYWxsIGludG8gU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCgpCisgICAgICAg
IHdvdWxkIHJlc3VsdCBpbiBhIHNjcm9sbCBjaGFuZ2UgbWFraW5nIGl0IHRvIHRoZSBtYWluIHRo
cmVhZCwgc28gaXQgd291bGQgZGVmZXIgIlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQiIHRoZXJl
LAorICAgICAgICBhbmQgcmVseSBvbiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoKSB0byByZW1vdmUgdGhhdCBkZWZlcnJhbCBy
ZWFzb24uCisgICAgICAgIFRoYXQgYXNzdW1wdGlvbiBpcyB3cm9uZywgYmVjYXVzZSB3aGVlbCBl
dmVudHMgbWF5IGNvYWxlc2NlLCBvciBoYXZlIG5vIGltcGFjdCBvbiBzY3JvbGwgcG9zaXRpb24g
aWYgYWxyZWFkeSBzY3JvbGxlZAorICAgICAgICB0byB0aGUgbWF4L21pbiBleHRlbnQgKGUuZy4g
d2hlbiBydWJiZXIgYmFuZGluZykuCisgICAgICAgIAorICAgICAgICBGaXggYnkgYWRkaW5nIGEg
bmV3ICJIYW5kbGluZ1doZWVsRXZlbnQiIGRlZmVycmFsIHJlYXNvbiBmb3IgdGhlIGR1cmF0aW9u
IHRoYXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgaXMgcHJvY2Vzc2luZyBhbiB3aGVlbCBldmVudCwK
KyAgICAgICAgYW5kIHRoZW4gaGF2aW5nIFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQganVzdCBy
ZXByZXNlbnQgdGhlIHBoYXNlIHdoZXJlIGFueSByZXN1bHRpbmcgc2Nyb2xsIGlzIGJlaW5nIHNl
bnQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoZXNlIHBoYXNlcyBzaG91bGQgYWx3YXlz
IG92ZXJsYXAuCisgICAgICAgIAorICAgICAgICBUaGlzIHJlcXVpcmVkIG1vdmluZyBpc01vbml0
b3JpbmdXaGVlbEV2ZW50cygpIGZyb20gdGhlIHJvb3Qgc2Nyb2xsaW5nIG5vZGUgdG8gdGhlIFNj
cm9sbGluZ1RyZWUuCisKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZl
bnRUZXN0TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKToKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNNb25pdG9y
aW5nV2hlZWxFdmVudHMgY29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25Gb3JSZWFzb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6cmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJy
YWxGb3JSZWFzb24gY29uc3QpOgorCiAyMDE5LTEwLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciBkb2Vzbid0
IG5lZWQgdG8gYmUgdGhyZWFkc2FmZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
aGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50
VGVzdE1vbml0b3IuY3BwCmluZGV4IDFiNjgzMDMwYmU1MTcyYjczZDBhMTg5OTgyMDEwMjIzNWEz
ZTY4MmMuLjEwM2VmOWZhYzNlNjc1OGVhZWM2ZjM3YWZiZTJmNTY5NWZmNjM2MjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKQEAgLTEwNSw2ICsx
MDUsNyBAQCB2b2lkIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6dHJpZ2dlclRlc3RUaW1lckZpcmVk
KCkKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uKQogewogICAgIHN3aXRjaCAocmVhc29uKSB7Cisg
ICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudDogdHMgPDwg
ImhhbmRsaW5nIHdoZWVsIGV2ZW50IjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1v
bml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJyZWFr
OwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVzczog
dHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RN
b25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVh
ZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
aGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRl
c3RNb25pdG9yLmgKaW5kZXggYjA3OTNhMzgxYjhmMjA4YzJiYmM2M2EzNjVkOTgwMjQxMTc5MmM4
Zi4uZjlkODYxYWJhYWE2NTgyNzk5MGRkYThmYWMyNjA0MWZhM2Y2MjRiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00NywxMCArNDcsMTEgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7
CiAgICAgCiAgICAgZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dy
ZXNzICAgICAgICA9IDEgPDwgMCwKLSAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAg
ID0gMSA8PCAxLAotICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgPSAxIDw8IDIs
Ci0gICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICA9IDEgPDwgMworICAgICAgICBI
YW5kbGluZ1doZWVsRXZlbnQgICAgICAgICAgPSAxIDw8IDAsCisgICAgICAgIFJ1YmJlcmJhbmRJ
blByb2dyZXNzICAgICAgICA9IDEgPDwgMSwKKyAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3Mg
ICAgICAgID0gMSA8PCAyLAorICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgPSAx
IDw8IDMsCisgICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICA9IDEgPDwgNCwKICAg
ICB9OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDVmMGE5NzYzZTczZTE1MGRlMDlmZjAwZDgwYzhh
NDZiNWMwMjQ5M2QuLmJiMGRmMWJjOGRhNDU5MzgwMGU3YmQyMWUyZTA1ZDFmYTcyNDZkNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zNTAsMTUgKzM1MCw2IEBAIHZvaWQgQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNj
cm9sbGluZ05vCiAKICAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZyYW1lVmlldy5zY3JvbGxp
bmdOb2RlSUQoKSkgewogICAgICAgICByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcs
IHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsVHlwZSwgVmlld3Bv
cnRSZWN0U3RhYmlsaXR5OjpTdGFibGUsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwot
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGlmIChtX3BhZ2UtPmlzTW9uaXRvcmluZ1do
ZWVsRXZlbnRzKCkpIHsKLSAgICAgICAgICAgIGZyYW1lVmlldy5zY3JvbGxBbmltYXRvcigpLnNl
dFdoZWVsRXZlbnRUZXN0TW9uaXRvcihtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsK
LSAgICAgICAgICAgIGlmIChjb25zdCBhdXRvJiBtb25pdG9yID0gbV9wYWdlLT53aGVlbEV2ZW50
VGVzdE1vbml0b3IoKSkKLSAgICAgICAgICAgICAgICBtb25pdG9yLT5yZW1vdmVEZWZlcnJhbEZv
clJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJs
ZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlSUQpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6
OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAg
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM3MSwxNCArMzYyLDYgQEAgdm9pZCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3Jv
bGwoU2Nyb2xsaW5nTm8KIAogICAgICAgICBpZiAoc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpCiAgICAgICAgICAgICBtX3Bh
Z2UtPmVkaXRvckNsaWVudCgpLm92ZXJmbG93U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7Ci0KLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgaWYgKG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxF
dmVudHMoKSkgewotICAgICAgICAgICAgZnJhbWVWaWV3LnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hl
ZWxFdmVudFRlc3RNb25pdG9yKG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAg
ICAgICAgICAgaWYgKGNvbnN0IGF1dG8mIG1vbml0b3IgPSBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0
TW9uaXRvcigpKQotICAgICAgICAgICAgICAgIG1vbml0b3ItPnJlbW92ZURlZmVycmFsRm9yUmVh
c29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJl
YUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Ny
b2xsaW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgICAgIH0KLSNlbmRpZgogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRl
eCAzN2NjNzJhNjViZWQ2OTI2YmYyNzhiYzNmM2IwZDJhY2MxYTI1YzVkLi4wMjIzYjUwZTRmOGZi
MzFjYzEyMTUwZTBhNzJiNjMyMWZlYmYxZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTUxLDcgKzE1MSw4IEBAIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0
ZVRyZWU+IHNjcm9sbGluCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZAogICAgICAg
ICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZTo6RXZlbnRUcmFja2luZ1JlZ2lvbikKICAgICAgICAgICAgIHx8IHJvb3RO
b2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxlZENvbnRlbnRzTGF5ZXIpCi0gICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpBc3luY0ZyYW1lT3JPdmVy
Zmxvd1Njcm9sbGluZ0VuYWJsZWQpKSkgeworICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6QXN5bmNGcmFt
ZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKQorICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25p
dG9yaW5nV2hlZWxFdmVudHMpKSkgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3Rh
dGVNdXRleCk7CiAKICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2Rl
LT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxl
ZENvbnRlbnRzTGF5ZXIpKQpAQCAtMTYyLDYgKzE2Myw5IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9s
bGluCiAKICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkFzeW5jRnJh
bWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCkpCiAgICAgICAgICAgICBtX2FzeW5jRnJhbWVP
ck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRl
Tm9kZSgpLT5hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKTsKKworICAgICAg
ICBpZiAocm9vdFN0YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMpKQorICAgICAgICAgICAgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyA9IHNjcm9sbGluZ1N0
YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpOwogICAg
IH0KICAgICAKICAgICAvLyB1bnZpc2l0ZWROb2RlcyBzdGFydHMgd2l0aCBhbGwgbm9kZXMgaW4g
dGhlIG1hcDsgd2UgcmVtb3ZlIG5vZGVzIGFzIHdlIHZpc2l0IHRoZW0uIEF0IHRoZSBlbmQsIGl0
J3MgdGhlIHVudmlzaXRlZCBub2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAppbmRleCBhMTkyYTJhNDIwMDJmZjFlYjdhOWI2M2JhNDcwYTExZDA1
NTYxMTEwLi45MjIxYzM2MzVhYjgwM2MxZWRmMTBjMDAyMzJmMWZiZTc5ZTE0MTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTgsNiAr
MTU4LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNjcm9sbGluZ1Ry
ZWVBc1RleHQoU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgPSBTY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCk7CiAKKyAgICBib29sIGlzTW9uaXRvcmluZ1doZWVs
RXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50
KTsKIApAQCAtMjExLDYgKzIxMyw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX2ZpeGVk
T3JTdGlja3lOb2RlQ291bnQgeyAwIH07CiAgICAgYm9vbCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0
aWNTY3JvbGwgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5n
U2luY2VQcmV2aW91c0NvbW1pdCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5k
ZXggZDY0N2I5MjYwYmI0NmRlYmEwN2NjODQ4MTQ4OTljM2M4OTUwMmJlMC4uNzNkY2EyOGVmMWUz
YzJkNTVhOTUzZmM1ZTQwNjc2YzM3MWFlZDllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApA
QCAtOTcsOSArOTcsNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRT
dGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogICAgIGlmIChzdGF0ZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxl
QXJlYVBhcmFtcykpCiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzID0gc3RhdGUu
c2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCk7CiAKLSAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMpKQotICAgICAgICBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzID0gc3RhdGUuaXNNb25pdG9y
aW5nV2hlZWxFdmVudHMoKTsKLQogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAg
IG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXIgPSBzdGF0ZS5zY3JvbGxDb250YWluZXJMYXllcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCBhZTg2ZjMzZDg1MDI5NWVlOWZjNzk1MDNiNmY0Mzdj
MmY4MjBhNjk2Li40Y2JmNGQxYWYwZGNmNDcwMTM0ZjRiNzI2NGYyMGRiN2I5NWVjOWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
YWJsZUFyZWFQYXJhbWV0ZXJzLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyOyB9CiAgICAg
Ym9vbCBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVycy5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXI7IH0KIAotICAg
IGJvb2wgaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRv
cmluZ1doZWVsRXZlbnRzOyB9Ci0KICAgICBMYXlvdXRQb2ludCBwYXJlbnRUb0xvY2FsUG9pbnQo
TGF5b3V0UG9pbnQpIGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFBvaW50IGxvY2FsVG9Db250
ZW50c1BvaW50KExheW91dFBvaW50KSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTQ4LDcgKzE0Niw2
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRl
eCB7IDAgfTsKICNlbmRpZgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFi
bGVBcmVhUGFyYW1ldGVyczsKLSAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCiAgICAgTGF5ZXJS
ZXByZXNlbnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXgg
MTlhNjgxZmZkZWVhYmU1ZGY3MDQwZDlhM2YxODIwZTA4MTM5YTgwMS4uY2ExNDliMTk0ZDY4NTM0
MzJkNzllMWIxYmZhZDA5YmMwMjE2ZjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsOCArMTEw
LDE1IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9
IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZp
ZXdwb3J0KCkubG9jYXRpb24oKTsKIAotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc2Ny
b2xsaW5nQ29vcmRpbmF0b3IgPSBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLCBub2RlSUQgPSBub2Rl
LnNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxQb3NpdGlvbiwgbGF5b3V0Vmlld3BvcnRPcmlnaW4s
IHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb25dIHsKKyAgICBib29sIG1vbml0b3JpbmdXaGVl
bEV2ZW50cyA9IGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCk7CisgICAgaWYgKG1vbml0b3JpbmdX
aGVlbEV2ZW50cykKKyAgICAgICAgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFz
b24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVh
SWRlbnRpZmllcj4obm9kZS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0TW9uaXRv
cjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7CisKKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9zY3JvbGxpbmdDb29yZGluYXRvciwgbm9k
ZUlEID0gbm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgc2Nyb2xsUG9zaXRpb24sIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBtb25pdG9yaW5nV2hlZWxF
dmVudHNdIHsKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNjaGVkdWxlVXBkYXRlU2Ny
b2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKworICAgICAg
ICBpZiAobW9uaXRvcmluZ1doZWVsRXZlbnRzKQorICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKHJl
aW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50
aWZpZXI+KG5vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3lu
Y05lZWRlZCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMubW0KaW5kZXggZGE2ZDEzYjZjYWQ2MmNiZTQyY2Q5NzAxZjcyOWFhNDMw
NjNlYjFkYS4uZjdhYzc5MmI0YTYxNzdlZGQ1MTE4NDcwZWM3MzJiM2RjMzA4NWQ5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KQEAgLTkwLDE1
ICs5MCwxOCBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbAogICAgIH0KIAogI2lmIEVOQUJMRShD
U1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICBpZiAoc2Nyb2xs
aW5nTm9kZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpIHsKLSAgICAgICAgaWYgKHNjcm9s
bGluZ1RyZWUoKS5zaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseSh3aGVlbEV2ZW50
KSkKLSAgICAgICAgICAgIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKHJl
aW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50
aWZpZXI+KHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgfQorICAgIGlmIChzY3Jv
bGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKKyAgICAgICAgZGVmZXJXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNj
cm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpIYW5kbGluZ1doZWVsRXZl
bnQpOworI2VuZGlmCisKKyAgICBhdXRvIGhhbmRsZWQgPSBtX3Njcm9sbENvbnRyb2xsZXIuaGFu
ZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
IHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLmlzTW9u
aXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAgICAgIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxl
dGlvbkRlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25p
dG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdO
b2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50KTsKICNl
bmRpZgogCi0gICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5oYW5kbGVXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQpOworICAgIHJldHVybiBoYW5kbGVkOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApA
QCAtMzAxLDcgKzMwNCw3IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjp2aWV3cG9ydFNpemUoKSBjb25zdAogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OmRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVh
c29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uKSBjb25zdAog
ewotICAgIGlmICghc2Nyb2xsaW5nTm9kZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisg
ICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVsRXZlbnRUZXN0TW9uaXRvciwg
c3RyZWFtIDw8IGlzTWFpblRocmVhZCgpIDw8ICIgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWM6OmRlZmVyRm9yUmVhc29uOiBTVEFSVElORyBkZWZlcnJhbCBmb3IgIiA8PCBp
ZGVudGlmaWVyIDw8ICIgYmVjYXVzZSBvZiAiIDw8IHJlYXNvbik7CkBAIC0zMTAsNyArMzEzLDcg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlcldoZWVs
RXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXMKICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6cmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJy
YWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiByZWFzb24p
IGNvbnN0CiB7Ci0gICAgaWYgKCFzY3JvbGxpbmdOb2RlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMoKSkKKyAgICBpZiAoIXNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygp
KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVsRXZlbnRU
ZXN0TW9uaXRvciwgc3RyZWFtIDw8IGlzTWFpblRocmVhZCgpIDw8ICIgIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmRlZmVyRm9yUmVhc29uOiBFTkRJTkcgZGVmZXJyYWwg
Zm9yICIgPDwgaWRlbnRpZmllciA8PCAiIGJlY2F1c2Ugb2YgIiA8PCByZWFzb24pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDBlYjkyNGY1M2QzMDkzZTJjZTRkOTI2M2JhZjE3OGZhOGRmNzM0OGIuLmI0NDQ3Mjk2N2I4OWYz
M2I2MDUxMGQzMGNmMDViNjY0ZjdjMDQ1N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0x
MC0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBb
IE1vamF2ZSsgXSBMYXlvdXQgVGVzdCBjb21wb3NpdGluZy9maXhlZC13aXRoLW1haW4tdGhyZWFk
LXNjcm9sbGluZy5odG1sIGlzIGEgZmxha3kgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBSZW1vdmUgZXhwZWN0YXRpb24gZm9y
IGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5nLmh0bWwuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMTAtMTUg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTjogZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLWludGVyZmFjZXMuaHRtbCBp
cyBmYWlsaW5nIGluIFdlYktpdDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAzOTYxZGIxYzQzZDk0YmIzZGI0YzdlYzhlYWYzZWVlNzBjYzM1
NmYwLi4yNDQxMTg4YjUyM2JjYzM3MGMzNzk0ZWM2ZTZmMWFhMTlkMzk0YTA0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC05MTgsOCArOTE4
LDYgQEAgd2Via2l0Lm9yZy9iLzE5ODY2MSBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbmVzdGVk
LXN0aWNreS5odG1sIFsgUGFzcyBJbWFnZU9ubHkKIAogd2Via2l0Lm9yZy9iLzE5ODY2MyBodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdh
dGUtc2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAot
d2Via2l0Lm9yZy9iLzE5ODc1NyBbIE1vamF2ZSsgXSBjb21wb3NpdGluZy9maXhlZC13aXRoLW1h
aW4tdGhyZWFkLXNjcm9sbGluZy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KLQogd2Via2l0Lm9yZy9i
LzE5ODc3NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvYnVmZmVy
ZWRBbW91bnQtdW5jaGFuZ2VkLWJ5LXN5bmMteGhyLmFueS53b3JrZXIuaHRtbCBbIEZhaWx1cmUg
XQogCiB3ZWJraXQub3JnL2IvMTc2MDMwIFsgRGVidWcgXSBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNoZWNrLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQo=
</data>
<flag name="review"
          id="396805"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381043</attachid>
            <date>2019-10-15 17:45:18 -0700</date>
            <delta_ts>2019-10-16 13:45:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198757-20191015174517.patch</filename>
            <type>text/plain</type>
            <size>44035</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIwYjgyY2VmNmFkY2Q4
YjY1YjAyMjcxMTY0ZmNmMzhiNmY3OGJhOC4uY2U2M2VmNTViM2E0YjY4M2MzZmVmNzA2ODdhMGI4
N2JhMWQ5MzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNSBAQAorMjAxOS0xMC0xNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbIE1vamF2ZSsg
XSBMYXlvdXQgVGVzdCBjb21wb3NpdGluZy9maXhlZC13aXRoLW1haW4tdGhyZWFkLXNjcm9sbGlu
Zy5odG1sIGlzIGEgZmxha3kgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRv
bi4KKyAgICAgICAgCisgICAgICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciBkZXBlbmRzIG9uICJk
ZWZlcnJhbCByZWFzb25zIiBnZXR0aW5nIGFkZGVkIGFuZCByZW1vdmVkLCBzdWNoIHRoYXQgdGhl
cmUgaXMgYWx3YXlzCisgICAgICAgIGF0IGxlYXN0IG9uZSByZWFzb24gYWN0aXZlIHVudGlsIHNj
cm9sbGluZyBxdWllc2Nlcy4KKworICAgICAgICBXaGVlbEV2ZW50VGVzdE1vbml0b3IgbWFkZSB0
aGUgaW5jb3JyZWN0IGFzc3VtcHRpb24gdGhhdCBldmVyeSBjYWxsIGludG8gU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCgpCisgICAgICAgIHdv
dWxkIHJlc3VsdCBpbiBhIHNjcm9sbCBjaGFuZ2UgbWFraW5nIGl0IHRvIHRoZSBtYWluIHRocmVh
ZCwgc28gaXQgd291bGQgZGVmZXIgIlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQiIHRoZXJlLAor
ICAgICAgICBhbmQgcmVseSBvbiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3Jv
bGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoKSB0byByZW1vdmUgdGhhdCBkZWZlcnJhbCByZWFz
b24uCisgICAgICAgIFRoYXQgYXNzdW1wdGlvbiBpcyB3cm9uZywgYmVjYXVzZSB3aGVlbCBldmVu
dHMgbWF5IGNvYWxlc2NlLCBvciBoYXZlIG5vIGltcGFjdCBvbiBzY3JvbGwgcG9zaXRpb24gaWYg
YWxyZWFkeSBzY3JvbGxlZAorICAgICAgICB0byB0aGUgbWF4L21pbiBleHRlbnQgKGUuZy4gd2hl
biBydWJiZXIgYmFuZGluZykuCisgICAgICAgIAorICAgICAgICBGaXggYnkgYWRkaW5nIGEgbmV3
ICJIYW5kbGluZ1doZWVsRXZlbnQiIGRlZmVycmFsIHJlYXNvbiBmb3IgdGhlIGR1cmF0aW9uIHRo
YXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgaXMgcHJvY2Vzc2luZyBhbiB3aGVlbCBldmVudCwKKyAg
ICAgICAgYW5kIHRoZW4gaGF2aW5nIFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQganVzdCByZXBy
ZXNlbnQgdGhlIHBoYXNlIHdoZXJlIGFueSByZXN1bHRpbmcgc2Nyb2xsIGlzIGJlaW5nIHNlbnQg
dG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoZXNlIHBoYXNlcyBzaG91bGQgYWx3YXlzIG92
ZXJsYXAuCisgICAgICAgIAorICAgICAgICBUaGlzIHJlcXVpcmVkIG1vdmluZyBpc01vbml0b3Jp
bmdXaGVlbEV2ZW50cygpIGZyb20gdGhlIHJvb3Qgc2Nyb2xsaW5nIG5vZGUgdG8gdGhlIFNjcm9s
bGluZ1RyZWUuCisKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRU
ZXN0TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNNb25pdG9yaW5n
V2hlZWxFdmVudHMgY29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25G
b3JSZWFzb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYzo6cmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxG
b3JSZWFzb24gY29uc3QpOgorCisyMDE5LTEwLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciBkb2Vzbid0IG5l
ZWQgdG8gYmUgdGhyZWFkc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlZWxFdmVudFRlc3RNb25pdG9yIGlzIG9ubHkgY2FsbGVkIG9uIHRoZSBt
YWluIHRocmVhZCwgc28gZG9lc24ndCBuZWVkIGEgbG9jayB0byBwcm90ZWN0CisgICAgICAgIG1f
ZGVmZXJDb21wbGV0aW9uUmVhc29ucywgYW5kIGFkZCBtYWluIHRocmVhZCBhc3NlcnRpb25zLgor
CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2hlZWxFdmVudFRlc3RNb25pdG9yOjpjbGVhckFsbFRlc3REZWZlcnJhbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudFRlc3RNb25pdG9yOjpzZXRUZXN0Q2FsbGJhY2tBbmRT
dGFydE5vdGlmaWNhdGlvblRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6ZGVmZXJGb3JSZWFzb24pOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudFRl
c3RNb25pdG9yOjpyZW1vdmVEZWZlcnJhbEZvclJlYXNvbik6CisgICAgICAgIChXZWJDb3JlOjpX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OnRyaWdnZXJUZXN0VGltZXJGaXJlZCk6CisgICAgICAgICog
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaDoKKworMjAxOS0xMC0xNSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjpzdHJldGNoQW1vdW50KCkgc2hvdWxkIG5vdCBoYXZlIHNpZGUg
ZWZmZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2FsbGluZyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzdHJldGNoQW1v
dW50KCkgaGFkIHRoZSBzaWRlIGVmZmVjdCBvZiBjYWxsaW5nCisgICAgICAgIHNldE1haW5GcmFt
ZUlzUnViYmVyQmFuZGluZygpIG9uIHRoZSBzY3JvbGxpbmcgdHJlZS4KKyAgICAgICAgCisgICAg
ICAgIFJlbW92ZSB0aGlzIGJhZG5lc3MgYW5kIHJlcGxhY2UgaXQgYnkgbW9kaWZ5aW5nIHVwZGF0
ZU1haW5GcmFtZVBpblN0YXRlKCkgKHdoaWNoIGlzIGNhbGxlZCBldmVyeSB0aW1lCisgICAgICAg
IHRoZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlcykgdG8gYWxzbyBjb21wdXRlIGlmIHdlJ3JlIHJ1
YmJlci1iYW5kaW5nLgorICAgICAgICAKKyAgICAgICAgQWxzbyBtYWtlIGEgYnVuY2ggb2YgbWV0
aG9kcyBvbiBTY3JvbGxDb250cm9sbGVyQ2xpZW50IGNvbnN0LCB3aGljaCBtYWtlcyBpdCBjbGVh
ciB0aGF0CisgICAgICAgIHRoZXkgZG9uJ3QgaGF2ZSBzaWRlIGVmZmVjdHMuCisKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmN1cnJlbnRTY3JvbGxQb3NpdGlv
bkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYzo6dXBkYXRlTWFpbkZyYW1lUGluQW5kUnViYmVyYmFuZFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnVwZGF0ZU1haW5G
cmFtZVBpblN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aXNB
bHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0
cmV0Y2hBbW91bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y2FuU2Nyb2xs
SG9yaXpvbnRhbGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNhblNjcm9sbFZlcnRpY2FsbHkgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9u
T2ZHZXN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OmFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzdHJldGNoQW1vdW50KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM6OnBpbm5lZEluRGlyZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNhblNjcm9sbEhvcml6b250
YWxseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjpjYW5TY3JvbGxWZXJ0aWNhbGx5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRv
ck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRGb3J3YXJkV2hlZWxFdmVu
dHNUb1BhcmVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
cGlubmVkSW5EaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmFsbG93c0hvcml6
b250YWxTdHJldGNoaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TWFjOjpzdHJldGNoQW1vdW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjpjYW5TY3JvbGxIb3Jpem9udGFsbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmNhblNjcm9sbFZlcnRpY2FsbHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxkRm9yd2Fy
ZFdoZWVsRXZlbnRzVG9QYXJlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNYWM6OnBpbm5lZEluRGlyZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjppc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVy
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6YWxsb3dz
VmVydGljYWxTdHJldGNoaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjOjphbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c3RyZXRjaEFtb3VudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y2FuU2Nyb2xsSG9yaXpvbnRhbGx5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpjYW5TY3Jv
bGxWZXJ0aWNhbGx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TWFjOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmg6CisKIDIwMTktMTAtMTUgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIFVzZSA8Y29sPiB0
byBhZGp1c3QgdGhlIHByZWZlcnJlZCBjb2x1bW4gd2lkdGguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggMDYxZmYxMWE1MTk4NTI4NzQ4NzAx
YzVmMTUwYjNlN2NkMzM1Yzc0Ny4uMTAzZWY5ZmFjM2U2NzU4ZWFlYzZmMzdhZmJlMmY1Njk1ZmY2
MzYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OldoZWVsRXZlbnRUZXN0
TW9uaXRvcigpCiAKIHZvaWQgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpjbGVhckFsbFRlc3REZWZl
cnJhbHMoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcmVhc29uc0xvY2sp
OworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9kZWZlckNvbXBsZXRpb25SZWFz
b25zLmNsZWFyKCk7CiAgICAgbV9jb21wbGV0aW9uQ2FsbGJhY2sgPSBudWxscHRyOwogICAgIG1f
dGVzdEZvckNvbXBsZXRpb25UaW1lci5zdG9wKCk7CkBAIC01NSwxMCArNTUsOCBAQCB2b2lkIFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6Y2xlYXJBbGxUZXN0RGVmZXJyYWxzKCkKIAogdm9pZCBXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OnNldFRlc3RDYWxsYmFja0FuZFN0YXJ0Tm90aWZpY2F0aW9uVGlt
ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb25DYWxsYmFjaykKIHsKLSAgICB7Ci0g
ICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcmVhc29uc0xvY2spOwotICAgICAg
ICBtX2NvbXBsZXRpb25DYWxsYmFjayA9IFdURk1vdmUoZnVuY3Rpb25DYWxsYmFjayk7Ci0gICAg
fQorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9jb21wbGV0aW9uQ2FsbGJhY2sg
PSBXVEZNb3ZlKGZ1bmN0aW9uQ2FsbGJhY2spOwogICAgIAogICAgIGlmICghbV90ZXN0Rm9yQ29t
cGxldGlvblRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fdGVzdEZvckNvbXBsZXRpb25UaW1l
ci5zdGFydFJlcGVhdGluZygxX3MgLyA2MC4pOwpAQCAtNjYsNyArNjQsNyBAQCB2b2lkIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6c2V0VGVzdENhbGxiYWNrQW5kU3RhcnROb3RpZmljYXRpb25UaW1l
cihXVEY6OkZ1bmN0aQogCiB2b2lkIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6ZGVmZXJGb3JSZWFz
b24oU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIERlZmVyUmVhc29uIHJlYXNv
bikKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtX3JlYXNvbnNMb2NrKTsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fZGVmZXJDb21wbGV0aW9uUmVhc29ucy5l
bnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gT3B0aW9uU2V0PERlZmVyUmVh
c29uPigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQocmVhc29uKTsKQEAgLTc2LDcgKzc0
LDcgQEAgdm9pZCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OmRlZmVyRm9yUmVhc29uKFNjcm9sbGFi
bGVBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLAogCiB2b2lkIFdoZWVsRXZlbnRUZXN0TW9uaXRv
cjo6cmVtb3ZlRGVmZXJyYWxGb3JSZWFzb24oU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyIGlkZW50
aWZpZXIsIERlZmVyUmVhc29uIHJlYXNvbikKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4g
bG9jayhtX3JlYXNvbnNMb2NrKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGF1
dG8gaXQgPSBtX2RlZmVyQ29tcGxldGlvblJlYXNvbnMuZmluZChpZGVudGlmaWVyKTsKICAgICBp
ZiAoaXQgPT0gbV9kZWZlckNvbXBsZXRpb25SZWFzb25zLmVuZCgpKQogICAgICAgICByZXR1cm47
CkBAIC05MCwxOCArODgsMTMgQEAgdm9pZCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OnJlbW92ZURl
ZmVycmFsRm9yUmVhc29uKFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGUKICAgICAKIHZvaWQg
V2hlZWxFdmVudFRlc3RNb25pdG9yOjp0cmlnZ2VyVGVzdFRpbWVyRmlyZWQoKQogewotICAgIFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbkNhbGxiYWNrOwotCi0gICAgewotICAgICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtX3JlYXNvbnNMb2NrKTsKLSAgICAgICAgaWYgKCFt
X2RlZmVyQ29tcGxldGlvblJlYXNvbnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBMT0dfV0lU
SF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjp0cmlnZ2VyVGVzdFRpbWVyRmlyZWQgLSBzY3JvbGxpbmcgc3RpbGwgYWN0aXZl
LCByZWFzb25zICIgPDwgbV9kZWZlckNvbXBsZXRpb25SZWFzb25zKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uQ2FsbGJhY2sgPSBXVEZNb3ZlKG1f
Y29tcGxldGlvbkNhbGxiYWNrKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlm
ICghbV9kZWZlckNvbXBsZXRpb25SZWFzb25zLmlzRW1wdHkoKSkgeworICAgICAgICBMT0dfV0lU
SF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjp0cmlnZ2VyVGVzdFRpbWVyRmlyZWQgLSBzY3JvbGxpbmcgc3RpbGwgYWN0aXZl
LCByZWFzb25zICIgPDwgbV9kZWZlckNvbXBsZXRpb25SZWFzb25zKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIGF1dG8gZnVuY3Rpb25DYWxsYmFjayA9IFdURk1vdmUobV9jb21wbGV0
aW9uQ2FsbGJhY2spOwogICAgIG1fdGVzdEZvckNvbXBsZXRpb25UaW1lci5zdG9wKCk7CiAKICAg
ICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJlYW0gPDwgIiAgV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjp0cmlnZ2VyVGVzdFRpbWVyRmlyZWQ6IHNjcm9sbGluZyBpcyBp
ZGxlLCBGSVJJTkcgVEVTVCIpOwpAQCAtMTEyLDYgKzEwNSw3IEBAIHZvaWQgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjp0cmlnZ2VyVGVzdFRpbWVyRmlyZWQoKQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiByZWFz
b24pCiB7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBi
cmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVyYmFuZEluUHJvZ3Jl
c3M6IHRzIDw8ICJydWJiZXJiYW5kaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OlNjcm9sbFNuYXBJblByb2dyZXNzOiB0cyA8PCAic2Nyb2xsLXNuYXBwaW5nIjsg
YnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5
bmNOZWVkZWQ6IHRzIDw8ICJzY3JvbGxpbmcgdGhyZWFkIHN5bmMgbmVlZGVkIjsgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAppbmRleCAwY2RjZTVj
MjBmZmYxNDc4NWMwZmM4MzgxOTIwMGJhNTZmZTIwODEwLi5mOWQ4NjFhYmFhYTY1ODI3OTkwZGRh
OGZhYzI2MDQxZmEzZjYyNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0TW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRl
c3RNb25pdG9yLmgKQEAgLTQ3LDEwICs0NywxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjbGVhckFsbFRlc3REZWZlcnJhbHMoKTsKICAgICAKICAgICBlbnVtIERlZmVyUmVh
c29uIHsKLSAgICAgICAgUnViYmVyYmFuZEluUHJvZ3Jlc3MgICAgICAgID0gMSA8PCAwLAotICAg
ICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAgPSAxIDw8IDEsCi0gICAgICAgIFNjcm9s
bGluZ1RocmVhZFN5bmNOZWVkZWQgICA9IDEgPDwgMiwKLSAgICAgICAgQ29udGVudFNjcm9sbElu
UHJvZ3Jlc3MgICAgID0gMSA8PCAzCisgICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAg
ICA9IDEgPDwgMCwKKyAgICAgICAgUnViYmVyYmFuZEluUHJvZ3Jlc3MgICAgICAgID0gMSA8PCAx
LAorICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAgPSAxIDw8IDIsCisgICAgICAg
IFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICA9IDEgPDwgMywKKyAgICAgICAgQ29udGVudFNj
cm9sbEluUHJvZ3Jlc3MgICAgID0gMSA8PCA0LAogICAgIH07CiAgICAgdHlwZWRlZiBjb25zdCB2
b2lkKiBTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI7CiAKQEAgLTY1LDcgKzY2LDYgQEAgcHJpdmF0
ZToKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9jb21wbGV0aW9uQ2FsbGJhY2s7CiAgICAg
UnVuTG9vcDo6VGltZXI8V2hlZWxFdmVudFRlc3RNb25pdG9yPiBtX3Rlc3RGb3JDb21wbGV0aW9u
VGltZXI7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9yZWFzb25zTG9jazsKICAgICBTY3JvbGxhYmxl
QXJlYVJlYXNvbk1hcCBtX2RlZmVyQ29tcGxldGlvblJlYXNvbnM7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCmluZGV4IDVmMGE5NzYzZTczZTE1MGRlMDlmZjAwZDgwYzhhNDZiNWMwMjQ5M2Qu
LmJiMGRmMWJjOGRhNDU5MzgwMGU3YmQyMWUyZTA1ZDFmYTcyNDZkNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0zNTAsMTUgKzM1MCw2IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAK
ICAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZyYW1lVmlldy5zY3JvbGxpbmdOb2RlSUQoKSkg
ewogICAgICAgICByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0
aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsVHlwZSwgVmlld3BvcnRSZWN0U3RhYmls
aXR5OjpTdGFibGUsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgICAgIGlmIChtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkp
IHsKLSAgICAgICAgICAgIGZyYW1lVmlldy5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcihtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICAgICAgICAg
IGlmIChjb25zdCBhdXRvJiBtb25pdG9yID0gbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3Io
KSkKLSAgICAgICAgICAgICAgICBtb25pdG9yLT5yZW1vdmVEZWZlcnJhbEZvclJlYXNvbihyZWlu
dGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyPihzY3JvbGxpbmdOb2RlSUQpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1Ro
cmVhZFN5bmNOZWVkZWQpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTM3MSwxNCArMzYyLDYgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5n
Tm8KIAogICAgICAgICBpZiAoc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpCiAgICAgICAgICAgICBtX3BhZ2UtPmVkaXRvckNs
aWVudCgpLm92ZXJmbG93U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7Ci0KLSNpZiBQTEFURk9STShD
T0NPQSkKLSAgICAgICAgaWYgKG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewot
ICAgICAgICAgICAgZnJhbWVWaWV3LnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RN
b25pdG9yKG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAgICAgICAgICAgaWYg
KGNvbnN0IGF1dG8mIG1vbml0b3IgPSBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKQot
ICAgICAgICAgICAgICAgIG1vbml0b3ItPnJlbW92ZURlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJw
cmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+
KHNjcm9sbGluZ05vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFk
U3luY05lZWRlZCk7Ci0gICAgICAgIH0KLSNlbmRpZgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzN2NjNzJhNjVi
ZWQ2OTI2YmYyNzhiYzNmM2IwZDJhY2MxYTI1YzVkLi45MGRmMjFmNjg2Y2VjODJhZGMwMTUwYjYw
MmJkMDAwY2RmNzcyZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcApAQCAtMTUxLDcgKzE1MSw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9s
bGluCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZAogICAgICAgICAgICAgfHwgcm9v
dE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6RXZlbnRUcmFja2luZ1JlZ2lvbikKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRz
TGF5ZXIpCi0gICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpBc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQpKSkgeworICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6QXN5bmNGcmFtZU9yT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkKQorICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxF
dmVudHMpKSkgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CiAK
ICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRzTGF5
ZXIpKQpAQCAtMTYyLDggKzE2MywxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVT
dGF0ZShzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiBzY3JvbGxpbgogCiAgICAg
ICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpBc3luY0ZyYW1lT3JPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQpKQogICAgICAgICAgICAgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Nj
cm9sbGluZ0VuYWJsZWQgPSBzY3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKS0+YXN5
bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCk7CisKKyAgICAgICAgaWYgKHJvb3RT
dGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OklzTW9uaXRvcmluZ1doZWVsRXZlbnRzKSkKKyAgICAg
ICAgICAgIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMgPSBzY3JvbGxpbmdTdGF0ZVRyZWUtPnJv
b3RTdGF0ZU5vZGUoKS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKTsKICAgICB9Ci0gICAgCisK
ICAgICAvLyB1bnZpc2l0ZWROb2RlcyBzdGFydHMgd2l0aCBhbGwgbm9kZXMgaW4gdGhlIG1hcDsg
d2UgcmVtb3ZlIG5vZGVzIGFzIHdlIHZpc2l0IHRoZW0uIEF0IHRoZSBlbmQsIGl0J3MgdGhlIHVu
dmlzaXRlZCBub2Rlcy4KICAgICAvLyBXZSBjYW4ndCB1c2Ugb3JwaGFuTm9kZXMgZm9yIHRoaXMs
IGJlY2F1c2Ugb3JwaGFuTm9kZXMgd29uJ3QgY29udGFpbiBkZXNjZW5kYW50cyBvZiByZW1vdmVk
IG5vZGVzLgogICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiB1bnZpc2l0ZWROb2RlczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBhMTky
YTJhNDIwMDJmZjFlYjdhOWI2M2JhNDcwYTExZDA1NTYxMTEwLi4yNGIwZjU3Y2UzYjE3NjM4ZjA5
MTJlZjM0NTliNmM1NDU1MjUwMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
UnViYmVyQmFuZEluUHJvZ3Jlc3MoKTsKICAgICB2b2lkIHNldE1haW5GcmFtZUlzU2Nyb2xsU25h
cHBpbmcoYm9vbCk7CiAgICAgYm9vbCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKCk7CisgICAgYm9v
bCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25pdG9yaW5n
V2hlZWxFdmVudHM7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCkgeyB9CiAgICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZShzdGQ6OnVuaXF1ZV9w
dHI8U2Nyb2xsaW5nU3RhdGVUcmVlPik7CkBAIC0yMTQsNiArMjE1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2FzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3dhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmdTaW5jZVByZXZpb3Vz
Q29tbWl0IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMgeyBm
YWxzZSB9OwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcAppbmRleCBkNjQ3YjkyNjBiYjQ2ZGViYTA3Y2M4NDgxNDg5OWMzYzg5NTAyYmUwLi43
M2RjYTI4ZWYxZTNjMmQ1NWE5NTNmYzVlNDA2NzZjMzcxYWVkOWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwCkBAIC05Nyw5ICs5Nyw2IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOCiAgICAg
aWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlNjcm9sbGFibGVBcmVhUGFyYW1zKSkKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMgPSBzdGF0ZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKTsKIAotICAgIGlmIChzdGF0ZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpJc01vbml0b3Jp
bmdXaGVlbEV2ZW50cykpCi0gICAgICAgIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMgPSBzdGF0
ZS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpOwotCiAgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVy
KSkKICAgICAgICAgbV9zY3JvbGxDb250YWluZXJMYXllciA9IHN0YXRlLnNjcm9sbENvbnRhaW5l
ckxheWVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGFlODZmMzNkODUwMjk1ZWU5ZmM3
OTUwM2I2ZjQzN2MyZjgyMGE2OTYuLjRjYmY0ZDFhZjBkY2Y0NzAxMzRmNGI3MjY0ZjIwZGI3Yjk1
ZWM5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtMTI2LDggKzEyNiw2IEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxi
YXI7IH0KICAgICBib29sIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJh
cjsgfQogCi0gICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHM7IH0KLQogICAgIExheW91dFBvaW50IHBhcmVudFRv
TG9jYWxQb2ludChMYXlvdXRQb2ludCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0UG9pbnQg
bG9jYWxUb0NvbnRlbnRzUG9pbnQoTGF5b3V0UG9pbnQpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0x
NDgsNyArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNu
YXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
IG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwotICAgIGJvb2wgbV9pc01vbml0b3JpbmdXaGVl
bEV2ZW50cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRmlyc3RDb21taXQgeyB0cnVlIH07CiAK
ICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmNwcAppbmRleCAxOWE2ODFmZmRlZWFiZTVkZjcwNDBkOWEzZjE4MjBlMDgxMzlhODAxLi40MWY2
MDBmNTIwNWQ5Y2ZjNzczZWQwYjg4OGI4OTlmYzNlZmQ5ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAg
LTExMCw4ICsxMTAsMjEgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2QKICAgICBpZiAoaXM8U2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgIGxheW91dFZpZXdw
b3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9k
ZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IsIG5v
ZGVJRCA9IG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbl0geworICAgIGJvb2wgbW9u
aXRvcmluZ1doZWVsRXZlbnRzID0gZmFsc2U7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1vbml0
b3JpbmdXaGVlbEV2ZW50cyA9IGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCk7CisgICAgaWYgKG1v
bml0b3JpbmdXaGVlbEV2ZW50cykKKyAgICAgICAgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25Gb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllcj4obm9kZS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7CisjZW5kaWYKKyAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9zY3JvbGxpbmdD
b29yZGluYXRvciwgbm9kZUlEID0gbm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgc2Nyb2xsUG9zaXRp
b24sIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBt
b25pdG9yaW5nV2hlZWxFdmVudHNdIHsKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNj
aGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG5vZGVJRCwgc2Nyb2xs
UG9zaXRpb24sIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uKTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgaWYgKG1vbml0b3JpbmdXaGVlbEV2
ZW50cykKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZW1vdmVXaGVlbEV2ZW50
VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihub2RlSUQpLCBXaGVlbEV2
ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOworI2Vsc2UKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKG1vbml0b3JpbmdXaGVlbEV2ZW50cyk7CisjZW5kaWYKICAgICB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5kZXggYjBl
YzIxMTJlMWQ5ZDZjNDM1MTk0MjcwY2U2NzFlMTIyZDAyNWQ5MS4uOGZhNWRlMzQzNmMwMjVlN2Ri
MWU4ZTRjMGY3YWMyM2Q2NWQzNWI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5oCkBAIC01Niw3ICs1Niw3IEBAIHByb3RlY3RlZDoKICAgICBGbG9hdFBvaW50
IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIEZsb2F0UG9pbnQg
bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHVwZGF0
ZU1haW5GcmFtZVBpblN0YXRlKCk7CisgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVQaW5BbmRSdWJi
ZXJiYW5kU3RhdGUoKTsKIAogICAgIHVuc2lnbmVkIGV4cG9zZWRVbmZpbGxlZEFyZWEoKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCBk
NjMzZGZjODAxY2JhMDIxMTZmMTA1YzNmODY5YmNhNzZiZGIyYTg2Li4wNTMzZTMyZTc0ZDhkZDk0
ZWUyNjJiZjg1ZGRjZmZkMjlmYTU4MmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYy5tbQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9s
bGluCiAgICAgICAgICYmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKQogICAgICAg
ICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxhYmxlQXJlYVNpemUpKSkKLSAgICAgICAgdXBkYXRlTWFpbkZyYW1lUGluU3RhdGUoKTsK
KyAgICAgICAgdXBkYXRlTWFpbkZyYW1lUGluQW5kUnViYmVyYmFuZFN0YXRlKCk7CiB9CiAKIFNj
cm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQpAQCAt
MTgwLDcgKzE4MCw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkIHRvICIgPDwgY3VycmVudFNjcm9sbFBvc2l0aW9uKCkg
PDwgIiBtaW46ICIgPDwgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgPDwgIiBtYXg6ICIgPDwgbWF4
aW11bVNjcm9sbFBvc2l0aW9uKCkgPDwgIiBzeW5jOiAiIDw8IHNob3VsZFVwZGF0ZVNjcm9sbExh
eWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpOwogCiAgICAgaWYgKGlzUm9vdE5vZGUoKSkKLSAg
ICAgICAgdXBkYXRlTWFpbkZyYW1lUGluU3RhdGUoKTsKKyAgICAgICAgdXBkYXRlTWFpbkZyYW1l
UGluQW5kUnViYmVyYmFuZFN0YXRlKCk7CiAKICAgICBpZiAoc2hvdWxkVXBkYXRlU2Nyb2xsTGF5
ZXJQb3NpdGlvblN5bmNocm9ub3VzbHkoKSkKICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
OjpTZXQpOwpAQCAtMjU2LDcgKzI1Niw3IEBAIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKICAgICByZXR1
cm4gcG9zaXRpb247CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUoKQordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjOjp1cGRhdGVNYWluRnJhbWVQaW5BbmRSdWJiZXJiYW5kU3RhdGUoKQogewog
ICAgIEFTU0VSVChpc1Jvb3ROb2RlKCkpOwogCkBAIC0yNjcsNiArMjY3LDEzIEBAIHZvaWQgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUo
KQogICAgIGJvb2wgcGlubmVkVG9UaGVCb3R0b20gPSBzY3JvbGxQb3NpdGlvbi55KCkgPj0gbWF4
aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5G
cmFtZVBpblN0YXRlKHBpbm5lZFRvVGhlTGVmdCwgcGlubmVkVG9UaGVSaWdodCwgcGlubmVkVG9U
aGVUb3AsIHBpbm5lZFRvVGhlQm90dG9tKTsKKworICAgIGJvb2wgcnViYmVyYmFuZGluZyA9IHNj
cm9sbFBvc2l0aW9uLngoKSA8IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKQorICAgICAgICB8
fCBzY3JvbGxQb3NpdGlvbi54KCkgPiBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCkKKyAgICAg
ICAgfHwgc2Nyb2xsUG9zaXRpb24ueSgpIDwgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpCisg
ICAgICAgIHx8IHNjcm9sbFBvc2l0aW9uLnkoKSA+IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLnko
KTsKKyAgICAKKyAgICBzY3JvbGxpbmdUcmVlKCkuc2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5n
KHJ1YmJlcmJhbmRpbmcpOwogfQogCiB1bnNpZ25lZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpleHBvc2VkVW5maWxsZWRBcmVhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IDYyODEzYTYxYWZlYzEyNmYzMDZi
ODg3MWI1MjlkNjJiZGQ4OWQ5NjEuLmY1ZDRkZTU4N2Y5ZTlhM2QzNDY4NTU0ZDU2NjU0YzA5MTli
ZDkwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMu
aApAQCAtNjQsMTYgKzY0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRU
ZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Ny
b2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29u
KSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzQWxyZWFkeVBpbm5lZElu
RGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50
QXhpcyk7CisgICAgYm9vbCBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwogCiAgICAgLy8g
U2Nyb2xsQ29udHJvbGxlckNsaWVudC4KLSAgICBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNo
aW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwotICAgIGJvb2wgYWxsb3dz
VmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwot
ICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIG92ZXJyaWRlOwotICAgIGJvb2wgcGlubmVkSW5E
aXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TY3JvbGxI
b3Jpem9udGFsbHkoKSBvdmVycmlkZTsKLSAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBv
dmVycmlkZTsKLSAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJl
Y3Rpb24pIG92ZXJyaWRlOworICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBhbGxvd3NW
ZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
Y2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBpbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKICAgICB2
b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3Qg
RmxvYXRTaXplJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yy5tbQppbmRleCA3MDIxOTRmYTZjMTMyOGE1NDI5OGZkZTY3YTE2ZmE3ZTBmNWJhODA4Li5mN2Fj
NzkyYjRhNjE3N2VkZDUxMTg0NzBlYzczMmIzZGMzMDg1ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQpAQCAtOTAsMTUgKzkwLDE4IEBAIGJv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsCiAgICAgfQogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05B
UCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIGlmIChzY3JvbGxpbmdOb2RlKCkuaXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLnNo
b3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KHdoZWVsRXZlbnQpKQotICAgICAgICAg
ICAgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24ocmVpbnRl
cnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmll
cj4oc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVudFRlc3RNb25p
dG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24ocmVpbnRlcnByZXRfY2Fz
dDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xs
aW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKLSAgICB9CisgICAgaWYgKHNjcm9sbGluZ1RyZWUoKS5p
c01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQorICAgICAgICBkZWZlcldoZWVsRXZlbnRUZXN0Q29t
cGxldGlvbkZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlE
KCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudCk7CiAjZW5kaWYK
IAotICAgIHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2
ZW50KTsKKyAgICBhdXRvIGhhbmRsZWQgPSBtX3Njcm9sbENvbnRyb2xsZXIuaGFuZGxlV2hlZWxF
dmVudCh3aGVlbEV2ZW50KTsKKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJM
RShSVUJCRVJfQkFORElORykKKyAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLmlzTW9uaXRvcmluZ1do
ZWVsRXZlbnRzKCkpCisgICAgICAgIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVy
cmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSks
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50KTsKKyNlbmRpZgorCisg
ICAgcmV0dXJuIGhhbmRsZWQ7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0CkBAIC0xMTMsNyArMTE2
LDcgQEAgc3RhdGljIGJvb2wgbmV3R2VzdHVyZUlzU3RhcnRpbmcoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIHJldHVybiB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbjsKIH0KIAotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjppc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpcyBheGlz
KQorYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc0FscmVhZHlQ
aW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQsIFNjcm9sbEV2ZW50QXhpcyBheGlzKSBjb25zdAogewogICAgIGF1dG8gc2Nyb2xsUG9z
aXRpb24gPSBjdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKICAgICBzd2l0Y2ggKGF4aXMpIHsKQEAg
LTEyNyw3ICsxMzAsNyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxv
d3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hv
cml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkg
Y29uc3QKIHsKICAgICBzd2l0Y2ggKGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAg
ICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsKQEAgLTE0NSw3ICsxNDgsNyBAQCBi
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6b250
YWxTdHJldGNoaW5nKGNvbnN0IFBsYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hp
bmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAogewogICAgIHN3aXRjaCAo
dmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlB
dXRvbWF0aWM6IHsKQEAgLTE2Myw3ICsxNjYsNyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zgog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotSW50U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjOjpzdHJldGNoQW1vdW50KCkKK0ludFNpemUgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RyZXRjaEFtb3VudCgpIGNvbnN0CiB7CiAgICAgSW50U2l6
ZSBzdHJldGNoOwogICAgIGF1dG8gc2Nyb2xsUG9zaXRpb24gPSBjdXJyZW50U2Nyb2xsUG9zaXRp
b24oKTsKQEAgLTE3OCwxOCArMTgxLDEwIEBAIEludFNpemUgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYzo6c3RyZXRjaEFtb3VudCgpCiAgICAgZWxzZSBpZiAoc2Nyb2xsUG9z
aXRpb24ueCgpID4gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueCgpKQogICAgICAgICBzdHJldGNo
LnNldFdpZHRoKHNjcm9sbFBvc2l0aW9uLngoKSAtIG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngo
KSk7CiAKLSAgICAvLyBGSVhNRTogY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgaGF2
ZSB0aGVzZSBzaWRlLWVmZmVjdHMuCi0gICAgaWYgKHNjcm9sbGluZ05vZGUoKS5pc1Jvb3ROb2Rl
KCkpIHsKLSAgICAgICAgaWYgKHN0cmV0Y2guaXNaZXJvKCkpCi0gICAgICAgICAgICBzY3JvbGxp
bmdUcmVlKCkuc2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGZhbHNlKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5GcmFtZUlzUnViYmVyQmFuZGlu
Zyh0cnVlKTsKLSAgICB9Ci0KICAgICByZXR1cm4gc3RyZXRjaDsKIH0KIAotYm9vbCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBG
bG9hdFNpemUmIGRlbHRhKQorYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjpwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmIGRlbHRhKSBjb25zdAogewog
ICAgIEZsb2F0U2l6ZSBsaW1pdERlbHRhOwogICAgIGF1dG8gc2Nyb2xsUG9zaXRpb24gPSBjdXJy
ZW50U2Nyb2xsUG9zaXRpb24oKTsKQEAgLTIxOCwxNyArMjEzLDE3IEBAIGJvb2wgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxv
YXRTaXplJiBkCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNhblNjcm9sbEhvcml6b250YWxseSgpCitib29sIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNhblNjcm9sbEhvcml6b250YWxseSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CiB9
CiAKLWJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y2FuU2Nyb2xs
VmVydGljYWxseSgpCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6
OmNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdAogewogICAgIHJldHVybiBoYXNFbmFibGVkVmVy
dGljYWxTY3JvbGxiYXIoKTsKIH0KIAotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKQor
Ym9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdAogewogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzA5LDcgKzMwNCw3IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjp2aWV3cG9ydFNpemUoKSBjb25zdAogCiB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
Rm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uKSBj
b25zdAogewotICAgIGlmICghc2Nyb2xsaW5nTm9kZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRz
KCkpCisgICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVsRXZlbnRUZXN0TW9u
aXRvciwgc3RyZWFtIDw8IGlzTWFpblRocmVhZCgpIDw8ICIgIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OmRlZmVyRm9yUmVhc29uOiBTVEFSVElORyBkZWZlcnJhbCBmb3Ig
IiA8PCBpZGVudGlmaWVyIDw8ICIgYmVjYXVzZSBvZiAiIDw8IHJlYXNvbik7CkBAIC0zMTgsNyAr
MzEzLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZl
cldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXMKICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6cmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
RGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiBy
ZWFzb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFzY3JvbGxpbmdOb2RlKCkuaXNNb25pdG9yaW5nV2hl
ZWxFdmVudHMoKSkKKyAgICBpZiAoIXNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3JpbmdXaGVlbEV2
ZW50cygpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVs
RXZlbnRUZXN0TW9uaXRvciwgc3RyZWFtIDw8IGlzTWFpblRocmVhZCgpIDw8ICIgIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmRlZmVyRm9yUmVhc29uOiBFTkRJTkcgZGVm
ZXJyYWwgZm9yICIgPDwgaWRlbnRpZmllciA8PCAiIGJlY2F1c2Ugb2YgIiA8PCByZWFzb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCmlu
ZGV4IGZkOGZlNGUzMTRmN2ZiNzA4NjMzOTdjZjFmOTRlMWMzMjc3ZGZiYWMuLjY5NjA3Y2RjYTlk
NGQ5YjVhNTkzZDBhNjlhMTMyNGZlMjg2NjYxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNjcm9sbENvbnRy
b2xsZXJfaAotI2RlZmluZSBTY3JvbGxDb250cm9sbGVyX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKSB8fCBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogCkBAIC01
MywxMyArNTIsMTMgQEAgcHJvdGVjdGVkOgogCiBwdWJsaWM6CiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQotICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGFsbG93c1ZlcnRp
Y2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSA9IDA7Ci0gICAgdmlydHVh
bCBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHBpbm5lZElu
RGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2Ny
b2xsSG9yaXpvbnRhbGx5KCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TY3JvbGxWZXJ0aWNh
bGx5KCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
U2Nyb2xsRGlyZWN0aW9uKSA9IDA7CisgICAgdmlydHVhbCBib29sIGFsbG93c0hvcml6b250YWxT
dHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXpl
JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxE
aXJlY3Rpb24pIGNvbnN0ID0gMDsKIAogICAgIC8vIEZJWE1FOiB1c2UgU2Nyb2xsQ2xhbXBpbmcg
dG8gY29sbGFwc2UgdGhlc2UgdG8gb25lLgogICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlhdGVTY3Jv
bGxCeShjb25zdCBGbG9hdFNpemUmKSA9IDA7CkBAIC0yMTIsNSArMjExLDMgQEAgcHJpdmF0ZToK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShSVUJCRVJfQkFORElO
RykKLQotI2VuZGlmIC8vIFNjcm9sbENvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCBmZjczM2MxOTg1YTYwMDQyMzNj
ZDA0OGExNTAzZmVlMTg1MWM4MzIxLi44Nzk1Y2Y4MTVhNGRiZjY2ZTRlOGZmNDU5ZDg1Y2QzNWI0
NjY1MzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsVG9PZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgb3Zl
cnJpZGU7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgYm9vbCBzaG91bGRGb3J3
YXJkV2hlZWxFdmVudHNUb1BhcmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKKyAgICBi
b29sIHNob3VsZEZvcndhcmRXaGVlbEV2ZW50c1RvUGFyZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0OwogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKSBvdmVycmlkZTsKICNlbmRpZgogCkBAIC0xNDAsMTggKzE0MCwxOCBAQCBwcml2
YXRlOgogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIC8vLyBTY3JvbGxDb250cm9s
bGVyQ2xpZW50IG1lbWJlciBmdW5jdGlvbnMuCi0gICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKLSAgICBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRj
aGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKLSAgICBib29sIHBpbm5l
ZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlOwotICAgIGJvb2wgY2FuU2Ny
b2xsSG9yaXpvbnRhbGx5KCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TY3JvbGxWZXJ0aWNhbGx5
KCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xs
RGlyZWN0aW9uKSBvdmVycmlkZTsKKyAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxT
dHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IG92ZXJyaWRlOworICAg
IGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhj
b25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKICAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNv
bnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25U
b0JvdW5kc0lmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGlzQWxyZWFkeVBpbm5l
ZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2
ZW50QXhpcyk7CisgICAgYm9vbCBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwogI2VuZGlm
CiAKICAgICBib29sIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBkMTIzNGYxZTZk
ZDgwZWQ0YjNkYWRhNjljOGZhMWMwZDI2YmZjOWE3Li43ZjRlNGJmMWVkOWFmYjIzODc1OGFkY2Iw
YmRkNzI1MWU2ZGE1ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhh
c2UpCiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAKLWJvb2wgU2Nyb2xsQW5pbWF0b3JN
YWM6OnNob3VsZEZvcndhcmRXaGVlbEV2ZW50c1RvUGFyZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZEZvcndhcmRX
aGVlbEV2ZW50c1RvUGFyZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkg
Y29uc3QKIHsKICAgICBpZiAoc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkgPj0gc3RkOjph
YnMod2hlZWxFdmVudC5kZWx0YVgoKSkpCiAgICAgICAgIHJldHVybiAhYWxsb3dzVmVydGljYWxT
dHJldGNoaW5nKHdoZWVsRXZlbnQpOwpAQCAtMTIxMyw3ICsxMjEzLDcgQEAgYm9vbCBTY3JvbGxB
bmltYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQpCiAgICAgcmV0dXJuIGRpZEhhbmRsZUV2ZW50OwogfQogCi1ib29sIFNjcm9sbEFu
aW1hdG9yTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmIGRpcmVjdGlvbikK
K2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6
ZSYgZGlyZWN0aW9uKSBjb25zdAogewogICAgIEZsb2F0U2l6ZSBsaW1pdERlbHRhOwogICAgIGlm
IChmYWJzZihkaXJlY3Rpb24uaGVpZ2h0KCkpID49IGZhYnNmKGRpcmVjdGlvbi53aWR0aCgpKSkg
ewpAQCAtMTI0Niw3ICsxMjQ2LDcgQEAgc3RhdGljIGJvb2wgbmV3R2VzdHVyZUlzU3RhcnRpbmco
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIHJldHVybiB3aGVlbEV2
ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VNYXlCZWdpbiB8fCB3aGVlbEV2
ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbjsKIH0KIAotYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6aXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxFdmVudEF4aXMgYXhpcykK
K2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0
dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlz
IGF4aXMpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChheGlzKSB7CiAgICAgY2FzZSBTY3JvbGxFdmVu
dEF4aXM6OlZlcnRpY2FsOgpAQCAtMTI3Miw3ICsxMjcyLDcgQEAgc3RhdGljIGJvb2wgZ2VzdHVy
ZVNob3VsZEJlZ2luU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNv
bnN0IFYKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjphbGxvd3NWZXJ0aWNh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fc2Nyb2xsYWJs
ZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0
aWNpdHlBdXRvbWF0aWM6IHsKQEAgLTEyOTYsNyArMTI5Niw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0
b3JNYWM6OmFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjph
bGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpCitib29sIFNjcm9sbEFuaW1hdG9yTWFjOjphbGxvd3NIb3Jpem9udGFsU3RyZXRjaGlu
Zyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CiAgICAgc3dp
dGNoIChtX3Njcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAg
ICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsKQEAgLTEzMjAsMTIgKzEzMjAsMTIg
QEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6YWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUludFNp
emUgU2Nyb2xsQW5pbWF0b3JNYWM6OnN0cmV0Y2hBbW91bnQoKQorSW50U2l6ZSBTY3JvbGxBbmlt
YXRvck1hYzo6c3RyZXRjaEFtb3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Nyb2xsYWJs
ZUFyZWEub3ZlcmhhbmdBbW91bnQoKTsKIH0KIAotYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6Y2Fu
U2Nyb2xsSG9yaXpvbnRhbGx5KCkKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhblNjcm9sbEhv
cml6b250YWxseSgpIGNvbnN0CiB7CiAgICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSBtX3Njcm9s
bGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICBpZiAoIXNjcm9sbGJhcikKQEAg
LTEzMzMsNyArMTMzMyw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhblNjcm9sbEhvcml6
b250YWxseSgpCiAgICAgcmV0dXJuIHNjcm9sbGJhci0+ZW5hYmxlZCgpOwogfQogCi1ib29sIFNj
cm9sbEFuaW1hdG9yTWFjOjpjYW5TY3JvbGxWZXJ0aWNhbGx5KCkKK2Jvb2wgU2Nyb2xsQW5pbWF0
b3JNYWM6OmNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdAogewogICAgIFNjcm9sbGJhciogc2Ny
b2xsYmFyID0gbV9zY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNjcm9sbGJhcigpOwogICAgIGlmICgh
c2Nyb2xsYmFyKQpAQCAtMTM0MSw3ICsxMzQxLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6
Y2FuU2Nyb2xsVmVydGljYWxseSgpCiAgICAgcmV0dXJuIHNjcm9sbGJhci0+ZW5hYmxlZCgpOwog
fQogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
U2Nyb2xsRGlyZWN0aW9uKQorYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1h
dG9yTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1v
Y2suaAppbmRleCAyNTYzMjEzOWQyN2M4MGY1OGIwNGUzMDRhZjM4YmMwYTgyOTVmYmQ4Li5mNDcw
OWYwZjliNWY1NjdkMGE0MjEwOTBlZGVhZThiZWJmZTE4YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmgKQEAgLTQ1LDEzICs0NSwx
MyBAQCBwdWJsaWM6CiBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAg
IGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
Jikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGFsbG93c1ZlcnRpY2FsU3Ry
ZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEludFNp
emUoKTsgfQotICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgp
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBjYW5TY3JvbGxWZXJ0aWNhbGx5
KCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgYWxsb3dzVmVy
dGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gSW50U2l6ZSgpOyB9CisgICAgYm9vbCBwaW5uZWRJbkRpcmVjdGlvbihj
b25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJv
b2wgY2FuU2Nyb2xsSG9yaXpvbnRhbGx5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERp
cmVjdGlvbikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGltbWVk
aWF0ZVNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgaW1t
ZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFNp
emUmKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJ
Zk5lY2Vzc2FyeSgpIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBlYjkyNGY1M2QzMDkzZTJjZTRkOTI2
M2JhZjE3OGZhOGRmNzM0OGIuLmNhN2JlOTBiNjM3Mzc4NzZiZjY5OTkzN2VlNzgyMTVlNmViMjll
M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMC0xNSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbIE1vamF2ZSsgXSBMYXlvdXQgVGVzdCBj
b21wb3NpdGluZy9maXhlZC13aXRoLW1haW4tdGhyZWFkLXNjcm9sbGluZy5odG1sIGlzIGEgZmxh
a3kgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk4NzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKyAgICAgICAgCisg
ICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbiBmb3IgY29tcG9zaXRpbmcvZml4ZWQtd2l0aC1tYWlu
LXRocmVhZC1zY3JvbGxpbmcuaHRtbC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAxOS0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBlZGl0aW5nL2FzeW5jLWNsaXBib2Fy
ZC9jbGlwYm9hcmQtaW50ZXJmYWNlcy5odG1sIGlzIGZhaWxpbmcgaW4gV2ViS2l0MQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM5NjFkYjFj
NDNkOTRiYjNkYjRjN2VjOGVhZjNlZWU3MGNjMzU2ZjAuLjI0NDExODhiNTIzYmNjMzcwYzM3OTRl
YzZlNmYxYWExOWQzOTRhMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTkxOCw4ICs5MTgsNiBAQCB3ZWJraXQub3JnL2IvMTk4NjYxIHNj
cm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9uZXN0ZWQtc3RpY2t5Lmh0bWwgWyBQYXNzIEltYWdlT25s
eQogCiB3ZWJraXQub3JnL2IvMTk4NjYzIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNj
ZXNzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCi13ZWJraXQub3JnL2IvMTk4NzU3IFsgTW9qYXZl
KyBdIGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5nLmh0bWwgWyBQ
YXNzIFRpbWVvdXQgXQotCiB3ZWJraXQub3JnL2IvMTk4Nzc0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2Vic29ja2V0cy9idWZmZXJlZEFtb3VudC11bmNoYW5nZWQtYnktc3luYy14
aHIuYW55Lndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzYwMzAgWyBE
ZWJ1ZyBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1vYmplY3QtdG9zdHJp
bmctY2hlY2suaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381105</attachid>
            <date>2019-10-16 13:51:19 -0700</date>
            <delta_ts>2019-10-17 13:25:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198757-20191016135118.patch</filename>
            <type>text/plain</type>
            <size>18169</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJlMjQzNzI4M2NkYWZm
OTU2M2EwMDQ0MjJlZTU5ZjUzYmI1NzA2Ni4uMDBkNmE0MTMwNjk3ZTJmNDRkZGJmZDE3MDczMTg3
Nzk2MDU5MzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEwLTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFsgTW9qYXZlKyBd
IExheW91dCBUZXN0IGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5n
Lmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTg3NTcKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorICAgICAgICAKKyAgICAgICAgV2hlZWxFdmVudFRlc3RNb25pdG9yIGRlcGVuZHMgb24gImRl
ZmVycmFsIHJlYXNvbnMiIGdldHRpbmcgYWRkZWQgYW5kIHJlbW92ZWQsIHN1Y2ggdGhhdCB0aGVy
ZSBpcyBhbHdheXMKKyAgICAgICAgYXQgbGVhc3Qgb25lIHJlYXNvbiBhY3RpdmUgdW50aWwgc2Ny
b2xsaW5nIHF1aWVzY2VzLgorCisgICAgICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciBtYWRlIHRo
ZSBpbmNvcnJlY3QgYXNzdW1wdGlvbiB0aGF0IGV2ZXJ5IGNhbGwgaW50byBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KCkKKyAgICAgICAgd291
bGQgcmVzdWx0IGluIGEgc2Nyb2xsIGNoYW5nZSBtYWtpbmcgaXQgdG8gdGhlIG1haW4gdGhyZWFk
LCBzbyBpdCB3b3VsZCBkZWZlciAiU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCIgdGhlcmUsCisg
ICAgICAgIGFuZCByZWx5IG9uIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9s
bFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCgpIHRvIHJlbW92ZSB0aGF0IGRlZmVycmFsIHJlYXNv
bi4KKyAgICAgICAgVGhhdCBhc3N1bXB0aW9uIGlzIHdyb25nLCBiZWNhdXNlIHdoZWVsIGV2ZW50
cyBtYXkgY29hbGVzY2UsIG9yIGhhdmUgbm8gaW1wYWN0IG9uIHNjcm9sbCBwb3NpdGlvbiBpZiBh
bHJlYWR5IHNjcm9sbGVkCisgICAgICAgIHRvIHRoZSBtYXgvbWluIGV4dGVudCAoZS5nLiB3aGVu
IHJ1YmJlciBiYW5kaW5nKS4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSBhZGRpbmcgYSBuZXcg
IkhhbmRsaW5nV2hlZWxFdmVudCIgZGVmZXJyYWwgcmVhc29uIGZvciB0aGUgZHVyYXRpb24gdGhh
dCB0aGUgc2Nyb2xsaW5nIHRocmVhZCBpcyBwcm9jZXNzaW5nIGFuIHdoZWVsIGV2ZW50LAorICAg
ICAgICBhbmQgdGhlbiBoYXZpbmcgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCBqdXN0IHJlcHJl
c2VudCB0aGUgcGhhc2Ugd2hlcmUgYW55IHJlc3VsdGluZyBzY3JvbGwgaXMgYmVpbmcgc2VudCB0
byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlc2UgcGhhc2VzIHNob3VsZCBhbHdheXMgb3Zl
cmxhcC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcmVxdWlyZWQgbW92aW5nIGlzTW9uaXRvcmlu
Z1doZWVsRXZlbnRzKCkgZnJvbSB0aGUgcm9vdCBzY3JvbGxpbmcgbm9kZSB0byB0aGUgU2Nyb2xs
aW5nVHJlZS4KKworICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRl
c3RNb25pdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc01vbml0b3JpbmdX
aGVlbEV2ZW50cyBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZv
clJlYXNvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjpyZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZv
clJlYXNvbiBjb25zdCk6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBEcm9wIHVudXNlZCBXS1BhZ2VTZXRSZXNvdXJjZUNhY2hpbmdEaXNh
YmxlZCgpIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVz
dE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3Iu
Y3BwCmluZGV4IDFiNjgzMDMwYmU1MTcyYjczZDBhMTg5OTgyMDEwMjIzNWEzZTY4MmMuLjEwM2Vm
OWZhYzNlNjc1OGVhZWM2ZjM3YWZiZTJmNTY5NWZmNjM2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKQEAgLTEwNSw2ICsxMDUsNyBAQCB2b2lk
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6dHJpZ2dlclRlc3RUaW1lckZpcmVkKCkKIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVm
ZXJSZWFzb24gcmVhc29uKQogewogICAgIHN3aXRjaCAocmVhc29uKSB7CisgICAgY2FzZSBXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudDogdHMgPDwgImhhbmRsaW5nIHdo
ZWVsIGV2ZW50IjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1YmJl
cmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJyZWFrOwogICAgIGNhc2Ug
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVzczogdHMgPDwgInNjcm9s
bC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCBzeW5jIG5lZWRl
ZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVz
dE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgK
aW5kZXggYjA3OTNhMzgxYjhmMjA4YzJiYmM2M2EzNjVkOTgwMjQxMTc5MmM4Zi4uZjlkODYxYWJh
YWE2NTgyNzk5MGRkYThmYWMyNjA0MWZhM2Y2MjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00NywxMCArNDcsMTEgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiAgICAgCiAgICAg
ZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICA9
IDEgPDwgMCwKLSAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAgID0gMSA8PCAxLAot
ICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgPSAxIDw8IDIsCi0gICAgICAgIENv
bnRlbnRTY3JvbGxJblByb2dyZXNzICAgICA9IDEgPDwgMworICAgICAgICBIYW5kbGluZ1doZWVs
RXZlbnQgICAgICAgICAgPSAxIDw8IDAsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAg
ICAgICA9IDEgPDwgMSwKKyAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAgID0gMSA8
PCAyLAorICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgPSAxIDw8IDMsCisgICAg
ICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICA9IDEgPDwgNCwKICAgICB9OwogICAgIHR5
cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCmluZGV4IDVmMGE5NzYzZTczZTE1MGRlMDlmZjAwZDgwYzhhNDZiNWMwMjQ5M2Qu
LmJiMGRmMWJjOGRhNDU5MzgwMGU3YmQyMWUyZTA1ZDFmYTcyNDZkNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0zNTAsMTUgKzM1MCw2IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAK
ICAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZyYW1lVmlldy5zY3JvbGxpbmdOb2RlSUQoKSkg
ewogICAgICAgICByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0
aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsVHlwZSwgVmlld3BvcnRSZWN0U3RhYmls
aXR5OjpTdGFibGUsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgICAgIGlmIChtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkp
IHsKLSAgICAgICAgICAgIGZyYW1lVmlldy5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcihtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICAgICAgICAg
IGlmIChjb25zdCBhdXRvJiBtb25pdG9yID0gbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3Io
KSkKLSAgICAgICAgICAgICAgICBtb25pdG9yLT5yZW1vdmVEZWZlcnJhbEZvclJlYXNvbihyZWlu
dGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyPihzY3JvbGxpbmdOb2RlSUQpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1Ro
cmVhZFN5bmNOZWVkZWQpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTM3MSwxNCArMzYyLDYgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5n
Tm8KIAogICAgICAgICBpZiAoc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpCiAgICAgICAgICAgICBtX3BhZ2UtPmVkaXRvckNs
aWVudCgpLm92ZXJmbG93U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7Ci0KLSNpZiBQTEFURk9STShD
T0NPQSkKLSAgICAgICAgaWYgKG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewot
ICAgICAgICAgICAgZnJhbWVWaWV3LnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RN
b25pdG9yKG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAgICAgICAgICAgaWYg
KGNvbnN0IGF1dG8mIG1vbml0b3IgPSBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKQot
ICAgICAgICAgICAgICAgIG1vbml0b3ItPnJlbW92ZURlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJw
cmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+
KHNjcm9sbGluZ05vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFk
U3luY05lZWRlZCk7Ci0gICAgICAgIH0KLSNlbmRpZgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzN2NjNzJhNjVi
ZWQ2OTI2YmYyNzhiYzNmM2IwZDJhY2MxYTI1YzVkLi4wMjIzYjUwZTRmOGZiMzFjYzEyMTUwZTBh
NzJiNjMyMWZlYmYxZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcApAQCAtMTUxLDcgKzE1MSw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9s
bGluCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZAogICAgICAgICAgICAgfHwgcm9v
dE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6RXZlbnRUcmFja2luZ1JlZ2lvbikKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRz
TGF5ZXIpCi0gICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpBc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQpKSkgeworICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6QXN5bmNGcmFtZU9yT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkKQorICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxF
dmVudHMpKSkgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CiAK
ICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRzTGF5
ZXIpKQpAQCAtMTYyLDYgKzE2Myw5IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0
YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9sbGluCiAKICAgICAg
ICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkFzeW5jRnJhbWVPck92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZCkpCiAgICAgICAgICAgICBtX2FzeW5jRnJhbWVPck92ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZCA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpLT5hc3lu
Y0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKTsKKworICAgICAgICBpZiAocm9vdFN0
YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxFdmVudHMpKQorICAgICAg
ICAgICAgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+cm9v
dFN0YXRlTm9kZSgpLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpOwogICAgIH0KICAgICAKICAg
ICAvLyB1bnZpc2l0ZWROb2RlcyBzdGFydHMgd2l0aCBhbGwgbm9kZXMgaW4gdGhlIG1hcDsgd2Ug
cmVtb3ZlIG5vZGVzIGFzIHdlIHZpc2l0IHRoZW0uIEF0IHRoZSBlbmQsIGl0J3MgdGhlIHVudmlz
aXRlZCBub2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAppbmRleCBhMTkyYTJhNDIwMDJmZjFlYjdhOWI2M2JhNDcwYTExZDA1NTYxMTEwLi45MjIx
YzM2MzVhYjgwM2MxZWRmMTBjMDAyMzJmMWZiZTc5ZTE0MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTgsNiArMTU4LDggQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNjcm9sbGluZ1RyZWVBc1RleHQoU2Ny
b2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgPSBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvck5vcm1hbCk7CiAKKyAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKIApAQCAtMjEx
LDYgKzIxMyw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX2ZpeGVkT3JTdGlja3lOb2Rl
Q291bnQgeyAwIH07CiAgICAgYm9vbCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV93YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nU2luY2VQcmV2aW91
c0NvbW1pdCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggZDY0N2I5MjYw
YmI0NmRlYmEwN2NjODQ4MTQ4OTljM2M4OTUwMmJlMC4uNzNkY2EyOGVmMWUzYzJkNTVhOTUzZmM1
ZTQwNjc2YzM3MWFlZDllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtOTcsOSArOTcs
NiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykp
CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzID0gc3RhdGUuc2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzKCk7CiAKLSAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxFdmVudHMpKQotICAgICAg
ICBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzID0gc3RhdGUuaXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMoKTsKLQogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIG1fc2Nyb2xsQ29u
dGFpbmVyTGF5ZXIgPSBzdGF0ZS5zY3JvbGxDb250YWluZXJMYXllcigpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuaAppbmRleCBhZTg2ZjMzZDg1MDI5NWVlOWZjNzk1MDNiNmY0MzdjMmY4MjBhNjk2Li40
Y2JmNGQxYWYwZGNmNDcwMTM0ZjRiNzI2NGYyMGRiN2I5NWVjOWRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBoYXNFbmFibGVk
SG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyOyB9CiAgICAgYm9vbCBoYXNFbmFi
bGVkVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycy5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXI7IH0KIAotICAgIGJvb2wgaXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVsRXZl
bnRzOyB9Ci0KICAgICBMYXlvdXRQb2ludCBwYXJlbnRUb0xvY2FsUG9pbnQoTGF5b3V0UG9pbnQp
IGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFBvaW50IGxvY2FsVG9Db250ZW50c1BvaW50KExh
eW91dFBvaW50KSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTQ4LDcgKzE0Niw2IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICNl
bmRpZgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1l
dGVyczsKLSAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlv
biBtX3Njcm9sbENvbnRhaW5lckxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMTlhNjgxZmZkZWVh
YmU1ZGY3MDQwZDlhM2YxODIwZTA4MTM5YTgwMS4uNzlhZTYzZmY3ZTMzMmJiYWFjNjc4NGUxNjk1
NzRhNjE2NzViM2U2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsOCArMTEwLDE5IEBAIHZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9j
YXRpb24oKTsKIAotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc2Nyb2xsaW5nQ29vcmRp
bmF0b3IgPSBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLCBub2RlSUQgPSBub2RlLnNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxQb3NpdGlvbiwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb25dIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgYm9vbCBtb25pdG9y
aW5nV2hlZWxFdmVudHMgPSBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpOworICAgIGlmIChtb25p
dG9yaW5nV2hlZWxFdmVudHMpCisgICAgICAgIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
Rm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxh
YmxlQXJlYUlkZW50aWZpZXI+KG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOworI2VuZGlmCisgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3IsIG5vZGVJRCA9IG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9u
LCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgbW9u
aXRvcmluZ1doZWVsRXZlbnRzXSB7CiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zY2hl
ZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChub2RlSUQsIHNjcm9sbFBv
c2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bik7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBpZiAobW9uaXRvcmluZ1doZWVsRXZlbnRz
KQorICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlbW92ZVdoZWVsRXZlbnRUZXN0
Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRl
c3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KG5vZGVJRCksIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7CisjZWxzZQorICAgICAgICBV
TlVTRURfUEFSQU0obW9uaXRvcmluZ1doZWVsRXZlbnRzKTsKKyNlbmRpZgogICAgIH0pOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4
IGRhNmQxM2I2Y2FkNjJjYmU0MmNkOTcwMWY3MjlhYTQzMDYzZWIxZGEuLmY3YWM3OTJiNGE2MTc3
ZWRkNTExODQ3MGVjNzMyYjNkYzMwODVkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCkBAIC05MCwxNSArOTAsMTggQEAgYm9vbCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWwKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFC
TEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKHNjcm9sbGluZ05vZGUoKS5pc01vbml0b3JpbmdX
aGVlbEV2ZW50cygpKSB7Ci0gICAgICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuc2hvdWxkSGFuZGxl
V2hlZWxFdmVudFN5bmNocm9ub3VzbHkod2hlZWxFdmVudCkpCi0gICAgICAgICAgICByZW1vdmVX
aGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0
PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxp
bmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGluZ1RocmVhZFN5bmNOZWVkZWQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZWZlcldo
ZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlKCku
c2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVh
ZFN5bmNOZWVkZWQpOwotICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLmlzTW9uaXRvcmlu
Z1doZWVsRXZlbnRzKCkpCisgICAgICAgIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50KTsKKyNlbmRpZgorCisgICAgYXV0
byBoYW5kbGVkID0gbV9zY3JvbGxDb250cm9sbGVyLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVu
dCk7CisKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJ
TkcpCisgICAgaWYgKHNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQor
ICAgICAgICByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihy
ZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVu
dGlmaWVyPihzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBtX3Nj
cm9sbENvbnRyb2xsZXIuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4g
aGFuZGxlZDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Ojppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QKQEAgLTMwMSw3ICszMDQsNyBAQCBGbG9h
dFNpemUgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6dmlld3BvcnRTaXpl
KCkgY29uc3QKIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpk
ZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0
b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1v
bml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbikgY29uc3QKIHsKLSAgICBpZiAoIXNjcm9sbGluZ05v
ZGUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQorICAgIGlmICghc2Nyb2xsaW5nVHJlZSgp
LmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPR19X
SVRIX1NUUkVBTShXaGVlbEV2ZW50VGVzdE1vbml0b3IsIHN0cmVhbSA8PCBpc01haW5UaHJlYWQo
KSA8PCAiICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlckZvclJl
YXNvbjogU1RBUlRJTkcgZGVmZXJyYWwgZm9yICIgPDwgaWRlbnRpZmllciA8PCAiIGJlY2F1c2Ug
b2YgIiA8PCByZWFzb24pOwpAQCAtMzEwLDcgKzMxMyw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JS
ZWFzCiAgICAgCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJl
bW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uKSBjb25zdAogewotICAgIGlmICghc2Ny
b2xsaW5nTm9kZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAgaWYgKCFzY3JvbGxp
bmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIExPR19XSVRIX1NUUkVBTShXaGVlbEV2ZW50VGVzdE1vbml0b3IsIHN0cmVhbSA8PCBp
c01haW5UaHJlYWQoKSA8PCAiICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
OjpkZWZlckZvclJlYXNvbjogRU5ESU5HIGRlZmVycmFsIGZvciAiIDw8IGlkZW50aWZpZXIgPDwg
IiBiZWNhdXNlIG9mICIgPDwgcmVhc29uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZDllMWM4Y2E1MjgyOTRiODIyOTM2
Mjc0Yzg3OWM4OGRjYTQ5MzBlLi4xMTdjNjY3ZTVhMjE3ZTlmMmIzMTY5ZDQ0MDU2YjlhMmVlNjRh
ODVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTAtMTYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgWyBNb2phdmUrIF0gTGF5b3V0IFRlc3Qg
Y29tcG9zaXRpbmcvZml4ZWQtd2l0aC1tYWluLXRocmVhZC1zY3JvbGxpbmcuaHRtbCBpcyBhIGZs
YWt5IHRpbWVvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5ODc1NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisgICAgICAgIAor
ICAgICAgICBSZW1vdmUgZXhwZWN0YXRpb24gZm9yIGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFp
bi10aHJlYWQtc2Nyb2xsaW5nLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMTAtMTYgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb3JyZWN0IFRlc3RFeHBlY3RhdGlvbnMgZnJvbSByMjUx
MTE5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGZkZGVjNzBkMzBmYWZhOGEwMzg1ZDUyNzhmYjMwMzZkNmE3Y2IxYzEuLmZiZTc0NWJhYTVm
YThmZDg5ODZmYmExNjE1NWNlODY0MTUwNTg0NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkxNiw4ICs5MTYsNiBAQCB3ZWJraXQub3Jn
L2IvMTk4NjYxIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9uZXN0ZWQtc3RpY2t5Lmh0bWwgWyBQ
YXNzIEltYWdlT25seQogCiB3ZWJraXQub3JnL2IvMTk4NjYzIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hv
dWxkLWhhdmUtYWNjZXNzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCi13ZWJraXQub3JnL2IvMTk4
NzU3IFsgTW9qYXZlKyBdIGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xs
aW5nLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQotCiB3ZWJraXQub3JnL2IvMTk4Nzc0IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9idWZmZXJlZEFtb3VudC11bmNoYW5n
ZWQtYnktc3luYy14aHIuYW55Lndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcv
Yi8xNzYwMzAgWyBEZWJ1ZyBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1v
YmplY3QtdG9zdHJpbmctY2hlY2suaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381218</attachid>
            <date>2019-10-17 13:17:40 -0700</date>
            <delta_ts>2019-10-17 15:15:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198757-20191017131739.patch</filename>
            <type>text/plain</type>
            <size>18205</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJlMjQzNzI4M2NkYWZm
OTU2M2EwMDQ0MjJlZTU5ZjUzYmI1NzA2Ni4uNWNkYzUyYzA4MjQ3NzBhMDhiMThjOGYwYzJmZDJh
ZjUzMzcyYzRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEwLTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFsgTW9qYXZlKyBd
IExheW91dCBUZXN0IGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5n
Lmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTg3NTcKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorICAgICAgICAKKyAgICAgICAgV2hlZWxFdmVudFRlc3RNb25pdG9yIGRlcGVuZHMgb24gImRl
ZmVycmFsIHJlYXNvbnMiIGdldHRpbmcgYWRkZWQgYW5kIHJlbW92ZWQsIHN1Y2ggdGhhdCB0aGVy
ZSBpcyBhbHdheXMKKyAgICAgICAgYXQgbGVhc3Qgb25lIHJlYXNvbiBhY3RpdmUgdW50aWwgc2Ny
b2xsaW5nIHF1aWVzY2VzLgorCisgICAgICAgIFdoZWVsRXZlbnRUZXN0TW9uaXRvciBtYWRlIHRo
ZSBpbmNvcnJlY3QgYXNzdW1wdGlvbiB0aGF0IGV2ZXJ5IGNhbGwgaW50byBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KCkKKyAgICAgICAgd291
bGQgcmVzdWx0IGluIGEgc2Nyb2xsIGNoYW5nZSBtYWtpbmcgaXQgdG8gdGhlIG1haW4gdGhyZWFk
LCBzbyBpdCB3b3VsZCBkZWZlciAiU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCIgdGhlcmUsCisg
ICAgICAgIGFuZCByZWx5IG9uIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9s
bFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCgpIHRvIHJlbW92ZSB0aGF0IGRlZmVycmFsIHJlYXNv
bi4KKyAgICAgICAgVGhhdCBhc3N1bXB0aW9uIGlzIHdyb25nLCBiZWNhdXNlIHdoZWVsIGV2ZW50
cyBtYXkgY29hbGVzY2UsIG9yIGhhdmUgbm8gaW1wYWN0IG9uIHNjcm9sbCBwb3NpdGlvbiBpZiBh
bHJlYWR5IHNjcm9sbGVkCisgICAgICAgIHRvIHRoZSBtYXgvbWluIGV4dGVudCAoZS5nLiB3aGVu
IHJ1YmJlciBiYW5kaW5nKS4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSBhZGRpbmcgYSBuZXcg
IkhhbmRsaW5nV2hlZWxFdmVudCIgZGVmZXJyYWwgcmVhc29uIGZvciB0aGUgZHVyYXRpb24gdGhh
dCB0aGUgc2Nyb2xsaW5nIHRocmVhZCBpcyBwcm9jZXNzaW5nIGFuIHdoZWVsIGV2ZW50LAorICAg
ICAgICBhbmQgdGhlbiBoYXZpbmcgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCBqdXN0IHJlcHJl
c2VudCB0aGUgcGhhc2Ugd2hlcmUgYW55IHJlc3VsdGluZyBzY3JvbGwgaXMgYmVpbmcgc2VudCB0
byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlc2UgcGhhc2VzIHNob3VsZCBhbHdheXMgb3Zl
cmxhcC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcmVxdWlyZWQgbW92aW5nIGlzTW9uaXRvcmlu
Z1doZWVsRXZlbnRzKCkgZnJvbSB0aGUgcm9vdCBzY3JvbGxpbmcgbm9kZSB0byB0aGUgU2Nyb2xs
aW5nVHJlZS4KKworICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRl
c3RNb25pdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc01vbml0b3JpbmdX
aGVlbEV2ZW50cyBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZv
clJlYXNvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjpyZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZv
clJlYXNvbiBjb25zdCk6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBEcm9wIHVudXNlZCBXS1BhZ2VTZXRSZXNvdXJjZUNhY2hpbmdEaXNh
YmxlZCgpIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVz
dE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3Iu
Y3BwCmluZGV4IDFiNjgzMDMwYmU1MTcyYjczZDBhMTg5OTgyMDEwMjIzNWEzZTY4MmMuLjEwM2Vm
OWZhYzNlNjc1OGVhZWM2ZjM3YWZiZTJmNTY5NWZmNjM2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKQEAgLTEwNSw2ICsxMDUsNyBAQCB2b2lk
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6dHJpZ2dlclRlc3RUaW1lckZpcmVkKCkKIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVm
ZXJSZWFzb24gcmVhc29uKQogewogICAgIHN3aXRjaCAocmVhc29uKSB7CisgICAgY2FzZSBXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudDogdHMgPDwgImhhbmRsaW5nIHdo
ZWVsIGV2ZW50IjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1YmJl
cmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJyZWFrOwogICAgIGNhc2Ug
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVzczogdHMgPDwgInNjcm9s
bC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCBzeW5jIG5lZWRl
ZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVz
dE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgK
aW5kZXggYjA3OTNhMzgxYjhmMjA4YzJiYmM2M2EzNjVkOTgwMjQxMTc5MmM4Zi4uZjlkODYxYWJh
YWE2NTgyNzk5MGRkYThmYWMyNjA0MWZhM2Y2MjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00NywxMCArNDcsMTEgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiAgICAgCiAgICAg
ZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICA9
IDEgPDwgMCwKLSAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAgID0gMSA8PCAxLAot
ICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgPSAxIDw8IDIsCi0gICAgICAgIENv
bnRlbnRTY3JvbGxJblByb2dyZXNzICAgICA9IDEgPDwgMworICAgICAgICBIYW5kbGluZ1doZWVs
RXZlbnQgICAgICAgICAgPSAxIDw8IDAsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAg
ICAgICA9IDEgPDwgMSwKKyAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAgID0gMSA8
PCAyLAorICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgPSAxIDw8IDMsCisgICAg
ICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICA9IDEgPDwgNCwKICAgICB9OwogICAgIHR5
cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCmluZGV4IDVmMGE5NzYzZTczZTE1MGRlMDlmZjAwZDgwYzhhNDZiNWMwMjQ5M2Qu
LmJiMGRmMWJjOGRhNDU5MzgwMGU3YmQyMWUyZTA1ZDFmYTcyNDZkNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0zNTAsMTUgKzM1MCw2IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAK
ICAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZyYW1lVmlldy5zY3JvbGxpbmdOb2RlSUQoKSkg
ewogICAgICAgICByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0
aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsVHlwZSwgVmlld3BvcnRSZWN0U3RhYmls
aXR5OjpTdGFibGUsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgICAgIGlmIChtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkp
IHsKLSAgICAgICAgICAgIGZyYW1lVmlldy5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcihtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICAgICAgICAg
IGlmIChjb25zdCBhdXRvJiBtb25pdG9yID0gbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3Io
KSkKLSAgICAgICAgICAgICAgICBtb25pdG9yLT5yZW1vdmVEZWZlcnJhbEZvclJlYXNvbihyZWlu
dGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyPihzY3JvbGxpbmdOb2RlSUQpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1Ro
cmVhZFN5bmNOZWVkZWQpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTM3MSwxNCArMzYyLDYgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5n
Tm8KIAogICAgICAgICBpZiAoc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpCiAgICAgICAgICAgICBtX3BhZ2UtPmVkaXRvckNs
aWVudCgpLm92ZXJmbG93U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7Ci0KLSNpZiBQTEFURk9STShD
T0NPQSkKLSAgICAgICAgaWYgKG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewot
ICAgICAgICAgICAgZnJhbWVWaWV3LnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RN
b25pdG9yKG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAgICAgICAgICAgaWYg
KGNvbnN0IGF1dG8mIG1vbml0b3IgPSBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKQot
ICAgICAgICAgICAgICAgIG1vbml0b3ItPnJlbW92ZURlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJw
cmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+
KHNjcm9sbGluZ05vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFk
U3luY05lZWRlZCk7Ci0gICAgICAgIH0KLSNlbmRpZgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzN2NjNzJhNjVi
ZWQ2OTI2YmYyNzhiYzNmM2IwZDJhY2MxYTI1YzVkLi4wMjIzYjUwZTRmOGZiMzFjYzEyMTUwZTBh
NzJiNjMyMWZlYmYxZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcApAQCAtMTUxLDcgKzE1MSw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9s
bGluCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZAogICAgICAgICAgICAgfHwgcm9v
dE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6RXZlbnRUcmFja2luZ1JlZ2lvbikKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRz
TGF5ZXIpCi0gICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpBc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQpKSkgeworICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6QXN5bmNGcmFtZU9yT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkKQorICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxF
dmVudHMpKSkgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CiAK
ICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRzTGF5
ZXIpKQpAQCAtMTYyLDYgKzE2Myw5IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0
YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9sbGluCiAKICAgICAg
ICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkFzeW5jRnJhbWVPck92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZCkpCiAgICAgICAgICAgICBtX2FzeW5jRnJhbWVPck92ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZCA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpLT5hc3lu
Y0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKTsKKworICAgICAgICBpZiAocm9vdFN0
YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxFdmVudHMpKQorICAgICAg
ICAgICAgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+cm9v
dFN0YXRlTm9kZSgpLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpOwogICAgIH0KICAgICAKICAg
ICAvLyB1bnZpc2l0ZWROb2RlcyBzdGFydHMgd2l0aCBhbGwgbm9kZXMgaW4gdGhlIG1hcDsgd2Ug
cmVtb3ZlIG5vZGVzIGFzIHdlIHZpc2l0IHRoZW0uIEF0IHRoZSBlbmQsIGl0J3MgdGhlIHVudmlz
aXRlZCBub2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAppbmRleCBhMTkyYTJhNDIwMDJmZjFlYjdhOWI2M2JhNDcwYTExZDA1NTYxMTEwLi45MjIx
YzM2MzVhYjgwM2MxZWRmMTBjMDAyMzJmMWZiZTc5ZTE0MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTgsNiArMTU4LDggQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNjcm9sbGluZ1RyZWVBc1RleHQoU2Ny
b2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgPSBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvck5vcm1hbCk7CiAKKyAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKIApAQCAtMjEx
LDYgKzIxMyw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX2ZpeGVkT3JTdGlja3lOb2Rl
Q291bnQgeyAwIH07CiAgICAgYm9vbCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV93YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nU2luY2VQcmV2aW91
c0NvbW1pdCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggZDY0N2I5MjYw
YmI0NmRlYmEwN2NjODQ4MTQ4OTljM2M4OTUwMmJlMC4uNzNkY2EyOGVmMWUzYzJkNTVhOTUzZmM1
ZTQwNjc2YzM3MWFlZDllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtOTcsOSArOTcs
NiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykp
CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzID0gc3RhdGUuc2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzKCk7CiAKLSAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SXNNb25pdG9yaW5nV2hlZWxFdmVudHMpKQotICAgICAg
ICBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzID0gc3RhdGUuaXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMoKTsKLQogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIG1fc2Nyb2xsQ29u
dGFpbmVyTGF5ZXIgPSBzdGF0ZS5zY3JvbGxDb250YWluZXJMYXllcigpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuaAppbmRleCBhZTg2ZjMzZDg1MDI5NWVlOWZjNzk1MDNiNmY0MzdjMmY4MjBhNjk2Li40
Y2JmNGQxYWYwZGNmNDcwMTM0ZjRiNzI2NGYyMGRiN2I5NWVjOWRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBoYXNFbmFibGVk
SG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyOyB9CiAgICAgYm9vbCBoYXNFbmFi
bGVkVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycy5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXI7IH0KIAotICAgIGJvb2wgaXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVsRXZl
bnRzOyB9Ci0KICAgICBMYXlvdXRQb2ludCBwYXJlbnRUb0xvY2FsUG9pbnQoTGF5b3V0UG9pbnQp
IGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFBvaW50IGxvY2FsVG9Db250ZW50c1BvaW50KExh
eW91dFBvaW50KSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTQ4LDcgKzE0Niw2IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICNl
bmRpZgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1l
dGVyczsKLSAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlv
biBtX3Njcm9sbENvbnRhaW5lckxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMTlhNjgxZmZkZWVh
YmU1ZGY3MDQwZDlhM2YxODIwZTA4MTM5YTgwMS4uN2Q4OWExNTc0NjRlNzQxYTQ3ZDNlODBlZTM1
OTMyOGViZTRkZDA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsOCArMTEwLDIwIEBAIHZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9j
YXRpb24oKTsKIAotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc2Nyb2xsaW5nQ29vcmRp
bmF0b3IgPSBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLCBub2RlSUQgPSBub2RlLnNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxQb3NpdGlvbiwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb25dIHsKKyAgICBib29sIG1vbml0b3JpbmdXaGVlbEV2ZW50cyA9IGZh
bHNlOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBtb25pdG9yaW5nV2hlZWxFdmVudHMgPSBpc01v
bml0b3JpbmdXaGVlbEV2ZW50cygpOworICAgIGlmIChtb25pdG9yaW5nV2hlZWxFdmVudHMpCisg
ICAgICAgIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKHJlaW50ZXJwcmV0
X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1Ro
cmVhZFN5bmNOZWVkZWQpOworI2VuZGlmCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtz
Y3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IsIG5vZGVJRCA9IG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgbW9uaXRvcmluZ1doZWVsRXZlbnRzXSB7
CiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0
aW9uQWZ0ZXJBc3luY1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CisjaWYgUExBVEZPUk0oTUFD
KQorICAgICAgICBpZiAobW9uaXRvcmluZ1doZWVsRXZlbnRzKQorICAgICAgICAgICAgc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KG5vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5n
VGhyZWFkU3luY05lZWRlZCk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obW9uaXRvcmlu
Z1doZWVsRXZlbnRzKTsKKyNlbmRpZgogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IGRhNmQxM2I2Y2FkNjJjYmU0MmNk
OTcwMWY3MjlhYTQzMDYzZWIxZGEuLmY3YWM3OTJiNGE2MTc3ZWRkNTExODQ3MGVjNzMyYjNkYzMw
ODVkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tCkBAIC05MCwxNSArOTAsMTggQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWwKICAgICB9CiAK
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0g
ICAgaWYgKHNjcm9sbGluZ05vZGUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKSB7Ci0gICAg
ICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkod2hlZWxFdmVudCkpCi0gICAgICAgICAgICByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRv
cjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9k
ZUlEKCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlv
bkZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCkpLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOwotICAgIH0K
KyAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAg
ICAgIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nh
c3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFu
ZGxpbmdXaGVlbEV2ZW50KTsKKyNlbmRpZgorCisgICAgYXV0byBoYW5kbGVkID0gbV9zY3JvbGxD
b250cm9sbGVyLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisKKyNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisgICAgaWYgKHNjcm9sbGlu
Z1RyZWUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQorICAgICAgICByZW1vdmVXaGVlbEV2
ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2Rl
KCkuc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hl
ZWxFdmVudCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIuaGFuZGxl
V2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gaGFuZGxlZDsKIH0KIAogYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc1Njcm9sbFNuYXBJblByb2dy
ZXNzKCkgY29uc3QKQEAgLTMwMSw3ICszMDQsNyBAQCBGbG9hdFNpemUgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6dmlld3BvcnRTaXplKCkgY29uc3QKIAogdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29t
cGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJl
YXNvbikgY29uc3QKIHsKLSAgICBpZiAoIXNjcm9sbGluZ05vZGUoKS5pc01vbml0b3JpbmdXaGVl
bEV2ZW50cygpKQorICAgIGlmICghc2Nyb2xsaW5nVHJlZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZl
bnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPR19XSVRIX1NUUkVBTShXaGVlbEV2ZW50
VGVzdE1vbml0b3IsIHN0cmVhbSA8PCBpc01haW5UaHJlYWQoKSA8PCAiICBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlckZvclJlYXNvbjogU1RBUlRJTkcgZGVmZXJy
YWwgZm9yICIgPDwgaWRlbnRpZmllciA8PCAiIGJlY2F1c2Ugb2YgIiA8PCByZWFzb24pOwpAQCAt
MzEwLDcgKzMxMyw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzCiAgICAgCiB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29t
cGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJs
ZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJS
ZWFzb24gcmVhc29uKSBjb25zdAogewotICAgIGlmICghc2Nyb2xsaW5nTm9kZSgpLmlzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKCkpCisgICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5n
V2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIExPR19XSVRIX1NUUkVB
TShXaGVlbEV2ZW50VGVzdE1vbml0b3IsIHN0cmVhbSA8PCBpc01haW5UaHJlYWQoKSA8PCAiICBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlckZvclJlYXNvbjogRU5E
SU5HIGRlZmVycmFsIGZvciAiIDw8IGlkZW50aWZpZXIgPDwgIiBiZWNhdXNlIG9mICIgPDwgcmVh
c29uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBjZDllMWM4Y2E1MjgyOTRiODIyOTM2Mjc0Yzg3OWM4OGRjYTQ5MzBlLi5h
YWYzNzk4Nzc5YTA0ZDRiMDM4NTE3MWQ4OTY4MDE2MzJiMzYyOGY1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMTAtMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgWyBNb2phdmUrIF0gTGF5b3V0IFRlc3QgY29tcG9zaXRpbmcvZml4ZWQtd2l0
aC1tYWluLXRocmVhZC1zY3JvbGxpbmcuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc1NworCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisgICAgICAgIAorICAgICAgICBSZW1vdmUgZXhwZWN0
YXRpb24gZm9yIGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5nLmh0
bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTktMTAtMTYgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDb3JyZWN0IFRlc3RFeHBlY3RhdGlvbnMgZnJvbSByMjUxMTE5LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZkZGVjNzBkMzBmYWZhOGEw
Mzg1ZDUyNzhmYjMwMzZkNmE3Y2IxYzEuLmZiZTc0NWJhYTVmYThmZDg5ODZmYmExNjE1NWNlODY0
MTUwNTg0NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTkxNiw4ICs5MTYsNiBAQCB3ZWJraXQub3JnL2IvMTk4NjYxIHNjcm9sbGluZ2Nv
b3JkaW5hdG9yL21hYy9uZXN0ZWQtc3RpY2t5Lmh0bWwgWyBQYXNzIEltYWdlT25seQogCiB3ZWJr
aXQub3JnL2IvMTk4NjYzIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFu
dC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwg
WyBQYXNzIFRpbWVvdXQgXQogCi13ZWJraXQub3JnL2IvMTk4NzU3IFsgTW9qYXZlKyBdIGNvbXBv
c2l0aW5nL2ZpeGVkLXdpdGgtbWFpbi10aHJlYWQtc2Nyb2xsaW5nLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQotCiB3ZWJraXQub3JnL2IvMTk4Nzc0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2Vic29ja2V0cy9idWZmZXJlZEFtb3VudC11bmNoYW5nZWQtYnktc3luYy14aHIuYW55Lndv
cmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzYwMzAgWyBEZWJ1ZyBdIGh0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1vYmplY3QtdG9zdHJpbmctY2hlY2su
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>