<?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>232534</bug_id>
          
          <creation_ts>2021-10-30 14:40:28 -0700</creation_ts>
          <short_desc>Scroll animations should run at 120Hz on 120Hz displays</short_desc>
          <delta_ts>2021-11-02 07:46:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=232077</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=232432</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>clord</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810450</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-30 14:40:28 -0700</bug_when>
    <thetext>Scroll animations should run at 120Hz on 120Hz displays</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810454</commentid>
    <comment_count>1</comment_count>
      <attachid>442920</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-30 14:51:09 -0700</bug_when>
    <thetext>Created attachment 442920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810455</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-30 14:51:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/84843181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810460</commentid>
    <comment_count>3</comment_count>
      <attachid>442921</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-30 15:59:55 -0700</bug_when>
    <thetext>Created attachment 442921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810506</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-31 08:19:02 -0700</bug_when>
    <thetext>Committed r285094 (243736@main): &lt;https://commits.webkit.org/243736@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442921.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442920</attachid>
            <date>2021-10-30 14:51:09 -0700</date>
            <delta_ts>2021-10-30 16:04:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232534-20211030145108.patch</filename>
            <type>text/plain</type>
            <size>27258</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE0MjViMjMwOTMxNjY1
MTJmMzYxMTAyNzhiOTgyN2RiMzI3ZTA5ZC4uNzI0YzU4ZWM2ZTU0MDEzNzY5ZjhmMjhmZDc2MTY0
Yjg4MzgwMWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIxLTEwLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBhbmlt
YXRpb25zIHNob3VsZCBydW4gYXQgMTIwSHogb24gMTIwSHogZGlzcGxheXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjUzNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjcm9sbCBhbmltYXRpb25zIG9u
IHRoZSBzY3JvbGxpbmcgdGhyZWFkIHdlcmUgZHJpdmVuIGJ5IGEgNjBIeiB0aW1lciBpbgorICAg
ICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLiBSZXBsYWNlIHRoYXQg
d2l0aCBhIG1lY2hhbmlzbSB0aGF0IGRyaXZlcyB0aGVtIGZyb20KKyAgICAgICAgVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCksIHdoaWNo
IGlzIGNhbGxlZCBhdCB0aGUgbWF4aW11bQorICAgICAgICBkaXNwbGF5IHJlZnJlc2ggZnJlcXVl
bmN5LgorCisgICAgICAgIFdlIGxldmVyYWdlIHN0YXJ0QW5pbWF0aW9uQ2FsbGJhY2svc3RvcEFu
aW1hdGlvbkNhbGxiYWNrIHdoaWNoIHVwZGF0ZSB0aGUgSGFzaFNldCBvZgorICAgICAgICBhbmlt
YXRpbmcgbm9kZXMgb24gc2Nyb2xsaW5nIHRyZWUsIGFuZCBpdGVyYXRlIHRoaXMgc2V0IGluIHRo
ZSBjYWxsYmFjayB0byBzZXJ2aWNlIHRoZQorICAgICAgICBhbmltYXRpb25zLgorICAgICAgICAK
KyAgICAgICAgQ2hhbmdlIHNvbWUgU2Nyb2xsaW5nVHJlZSB0ZXJtaW5vbG9neSBmcm9tICJBbmlt
YXRlZFNjcm9sbCIgdG8gIlNjcm9sbEFuaW1hdGlvbiIgdG8gaW5kaWNhdGUKKyAgICAgICAgdGhh
dCB0aGV5IGFyZSBhYm91dCBhbGwga2luZHMgb2Ygc2Nyb2xsIGFuaW1hdGlvbnMgKGUuZy4gcnVi
YmVyYmFuZGluZyksIG5vdCBqdXN0IGFuaW1hdGVkCisgICAgICAgIHNjcm9sbHMuCisKKyAgICAg
ICAgQSBzaWRlIGVmZmVjdCBvZiByZW1vdmluZyB0aGUgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYyB3YXMgdGhhdCB0aGVyZSB3YXMgbm8KKyAgICAgICAgY29kZSBwYXRoIHRo
YXQgdHJpZ2dlcmVkIGNvbnRpbnVhbCAiZGlzcGxheURpZFJlZnJlc2giIG5vdGlmaWNhdGlvbnMg
KHdoaWNoIG9yaWdpbmF0ZSBpbiB0aGUKKyAgICAgICAgVUkgcHJvY2VzcykuIFdlIG5lZWQgc29t
ZXRoaW5nIHRvIGtlZXAgdGhlIGRpc3BsYXlEaWRSZWZyZXNoIG5vdGlmaWNhdGlvbnMgY29taW5n
LiBUbyBmaXgKKyAgICAgICAgdGhpcywgaGF2ZSBTY3JvbGxpbmdDb29yZGluYXRvck1hYyBjYWxs
IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgd2hlbiBhbiBhbmltYXRpb24gc3RhcnRzLAorICAg
ICAgICBhbmQgaW4gZWFjaCByZW5kZXJpbmcgdXBkYXRlIHdoaWxlIHRoZXJlIGFyZSBhY3RpdmUg
YW5pbWF0aW9ucy4gVGhpcyBkb2Vzbid0IHRyaWdnZXIKKyAgICAgICAgYWRkaXRpb25hbCByZW5k
ZXJpbmcgdXBkYXRlczsgdGhlc2Ugd2lsbCBoYXBwZW4gYW55d2F5IGFzIGEgc2lkZSBlZmZlY3Qg
b2Ygc2Nyb2xsaW5nIHRyZWUKKyAgICAgICAgc2Nyb2xscyBib3VuY2luZyB0byB0aGUgbWFpbiB0
aHJlYWQuIEFsc28gd29ydGggbm90aW5nIGlzIHRoYXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgd2ls
bCBnZXQKKyAgICAgICAgMTIwSHogdXBkYXRlcywgZXZlbiBpZiB3ZSdyZSBvbmx5IHRyaWdnZXJp
bmcgbWFpbiB0aHJlYWQgcmVuZGVyaW5nIHVwZGF0ZXMsIGJlY2F1c2Ugb2YKKyAgICAgICAgZXhp
c3RpbmcgV2ViUGFnZVByb3h5IGhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xsIHN0YXRlLgorCisgICAg
ICAgIEV4ZXJjaXNlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRm9yTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYXNOb2RlV2l0aEFjdGl2ZVNjcm9sbEFuaW1h
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bm9kZXNXaXRoQWN0aXZl
U2Nyb2xsQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc0Fu
aW1hdGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6c2V0QW5pbWF0ZWRTY3JvbGxJblByb2dyZXNzRm9yTm9kZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYXNOb2RlV2l0aEFjdGl2
ZUFuaW1hdGVkU2Nyb2xsKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OndpbGxTdGFydEFuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpkaWRTdG9wQW5pbWF0ZWRTY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RocmVhZElzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKToKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6ZGlkQ29tcGxldGVSZW5kZXJpbmdV
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhhc05v
ZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RhcnRB
bmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c2VydmljZVNjcm9sbEFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjdXJyZW50U2Ny
b2xsUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6c2Vydmlj
ZVNjcm9sbEFuaW1hdGlvbik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNyZWF0ZVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OnN0YXJ0QW5pbWF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcEFuaW1hdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6
OnNlcnZpY2VTY3JvbGxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVy
RmlyZWQpOiBEZWxldGVkLgorCiAyMDIxLTEwLTI4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgogCiAgICAgICAgIERPTSBHUFVQOiBZYWhvby5jb20gaGFzIGZyYWdtZW50
cyBvZiB3cm9uZ2x5LXNjYWxlZCBjb250ZW50IHRocm91Z2hvdXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2I5NzA2
YmU0ZDZiMTM5ZWJjZGVmYzBjZTdmOWZlZjI5MGU1NjJiOS4uNzg2MDQxNGM2NWMwN2E4YmZmNDMz
NmY5NWU1NjQ3OTdiN2I3NWRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0z
MCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3Jv
bGwgYW5pbWF0aW9ucyBzaG91bGQgcnVuIGF0IDEyMEh6IG9uIDEyMEh6IGRpc3BsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpo
YXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hhbmdlZCk6CisgICAgICAgIENhbGwgdGhlIGJhc2Ug
Y2xhc3MuCisKIDIwMjEtMTAtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRE9NIEdQVVA6IFlhaG9vLmNvbSBoYXMgZnJhZ21lbnRzIG9mIHdyb25n
bHktc2NhbGVkIGNvbnRlbnQgdGhyb3VnaG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCA3ZDVmNzRlZTFmMjVmMjk4MzhjOWQ1Yzk5
MzhlNWE1YmI2MWUxMWUxLi4wMGFiZDdiMWRkOTA0OTg1ZjRjYzVhMmViOTQ5MDQxOTI1MTg0YTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNw
cApAQCAtNTgzLDM4ICs1ODMsNDQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXROb2RlU2Nyb2xs
U25hcEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1MKICAgICAgICAg
bV90cmVlU3RhdGUubm9kZXNXaXRoQWN0aXZlU2Nyb2xsU25hcC5yZW1vdmUobm9kZUlEKTsKIH0K
IAotYm9vbCBTY3JvbGxpbmdUcmVlOjppc0FuaW1hdGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK2Jvb2wgU2Nyb2xsaW5nVHJlZTo6aXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIGlm
ICghbm9kZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsg
bV90cmVlU3RhdGVMb2NrIH07Ci0gICAgcmV0dXJuIG1fdHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2
ZUFuaW1hdGVkU2Nyb2xscy5jb250YWlucyhub2RlSUQpOworICAgIHJldHVybiBtX3RyZWVTdGF0
ZS5ub2Rlc1dpdGhBY3RpdmVTY3JvbGxBbmltYXRpb25zLmNvbnRhaW5zKG5vZGVJRCk7CiB9CiAK
LXZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0QW5pbWF0ZWRTY3JvbGxJblByb2dyZXNzRm9yTm9kZShT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzQW5pbWF0ZWRTY3JvbGxJblByb2dyZXNzKQor
dm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRm9yTm9kZShT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
IHsKICAgICBpZiAoIW5vZGVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTG9ja2VyIGxvY2tl
ciB7IG1fdHJlZVN0YXRlTG9jayB9OwogICAgIAotICAgIGJvb2wgaGFkQW55QW5pbWF0ZWRTY3Jv
bGxpbmdOb2RlcyA9ICFtX3RyZWVTdGF0ZS5ub2Rlc1dpdGhBY3RpdmVBbmltYXRlZFNjcm9sbHMu
aXNFbXB0eSgpOworICAgIGJvb2wgaGFkQW55QW5pbWF0ZWRTY3JvbGxpbmdOb2RlcyA9ICFtX3Ry
ZWVTdGF0ZS5ub2Rlc1dpdGhBY3RpdmVTY3JvbGxBbmltYXRpb25zLmlzRW1wdHkoKTsKICAgICAK
LSAgICBpZiAoaXNBbmltYXRlZFNjcm9sbEluUHJvZ3Jlc3MpCi0gICAgICAgIG1fdHJlZVN0YXRl
Lm5vZGVzV2l0aEFjdGl2ZUFuaW1hdGVkU2Nyb2xscy5hZGQobm9kZUlEKTsKKyAgICBpZiAoaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICBtX3RyZWVTdGF0ZS5ub2Rlc1dpdGhB
Y3RpdmVTY3JvbGxBbmltYXRpb25zLmFkZChub2RlSUQpOwogICAgIGVsc2UKLSAgICAgICAgbV90
cmVlU3RhdGUubm9kZXNXaXRoQWN0aXZlQW5pbWF0ZWRTY3JvbGxzLnJlbW92ZShub2RlSUQpOwor
ICAgICAgICBtX3RyZWVTdGF0ZS5ub2Rlc1dpdGhBY3RpdmVTY3JvbGxBbmltYXRpb25zLnJlbW92
ZShub2RlSUQpOwogCi0gICAgYm9vbCBoYXNBbnlBbmltYXRlZFNjcm9sbGluZ05vZGVzID0gIW1f
dHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2ZUFuaW1hdGVkU2Nyb2xscy5pc0VtcHR5KCk7CisgICAg
Ym9vbCBoYXNBbnlBbmltYXRlZFNjcm9sbGluZ05vZGVzID0gIW1fdHJlZVN0YXRlLm5vZGVzV2l0
aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnMuaXNFbXB0eSgpOwogICAgIGlmIChoYXNBbnlBbmltYXRl
ZFNjcm9sbGluZ05vZGVzICE9IGhhZEFueUFuaW1hdGVkU2Nyb2xsaW5nTm9kZXMpCiAgICAgICAg
IGhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGhhc0FueUFuaW1hdGVkU2Nyb2xsaW5n
Tm9kZXMpOwogfQogCi1ib29sIFNjcm9sbGluZ1RyZWU6Omhhc05vZGVXaXRoQWN0aXZlQW5pbWF0
ZWRTY3JvbGwoKQorYm9vbCBTY3JvbGxpbmdUcmVlOjpoYXNOb2RlV2l0aEFjdGl2ZVNjcm9sbEFu
aW1hdGlvbnMoKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX3RyZWVTdGF0ZUxvY2sgfTsKLSAg
ICByZXR1cm4gIW1fdHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2ZUFuaW1hdGVkU2Nyb2xscy5pc0Vt
cHR5KCk7CisgICAgcmV0dXJuICFtX3RyZWVTdGF0ZS5ub2Rlc1dpdGhBY3RpdmVTY3JvbGxBbmlt
YXRpb25zLmlzRW1wdHkoKTsKK30KKworSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IFNjcm9sbGlu
Z1RyZWU6Om5vZGVzV2l0aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnMoKQoreworICAgIExvY2tlciBs
b2NrZXIgeyBtX3RyZWVTdGF0ZUxvY2sgfTsKKyAgICByZXR1cm4gbV90cmVlU3RhdGUubm9kZXNX
aXRoQWN0aXZlU2Nyb2xsQW5pbWF0aW9uczsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRN
YWluRnJhbWVQaW5uZWRTdGF0ZShSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5pbmdTdGF0ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAzMjAx
NTdhZmMyMzUyMzIzNDYzMzNiNzYyMjMxMjk4NDQyMDU3OWNkLi5jMTgyNDMwMzMzODYyODA4MWJm
ZjJmNDAzZDgxYWM5YWNiNzhiNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xMTMsOCArMTEzLDEwIEBAIHB1YmxpYzoKICAgICBib29s
IGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3NGb3JOb2RlKFNjcm9sbGluZ05vZGVJRCk7CiAgICAgdm9p
ZCBzZXROb2RlU2Nyb2xsU25hcEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlELCBib29sKTsKIAot
ICAgIGJvb2wgaXNBbmltYXRlZFNjcm9sbEluUHJvZ3Jlc3NGb3JOb2RlKFNjcm9sbGluZ05vZGVJ
RCk7Ci0gICAgdm9pZCBzZXRBbmltYXRlZFNjcm9sbEluUHJvZ3Jlc3NGb3JOb2RlKFNjcm9sbGlu
Z05vZGVJRCwgYm9vbCk7CisgICAgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NGb3JO
b2RlKFNjcm9sbGluZ05vZGVJRCk7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQsIGJvb2wpOworCisgICAgYm9vbCBoYXNOb2RlV2l0
aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnMoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
KCkgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlx
dWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4mJik7CkBAIC0yNDcsNyArMjQ5LDggQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBoYXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hhbmdlZChi
b29sIC8qIGhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGwgKi8pIHsgfQogCiAgICAgYm9vbCBoYXNQ
cm9jZXNzZWRXaGVlbEV2ZW50c1JlY2VudGx5KCk7Ci0gICAgYm9vbCBoYXNOb2RlV2l0aEFjdGl2
ZUFuaW1hdGVkU2Nyb2xsKCk7CisKKyAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNX
aXRoQWN0aXZlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgTG9jayBtX3RyZWVMb2NrOyAvLyBQ
cm90ZWN0cyB0aGUgc2Nyb2xsaW5nIHRyZWUuCiAKQEAgLTI5Miw3ICsyOTUsNyBAQCBwcml2YXRl
OgogICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlUnViYmVy
QmFuZGluZzsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2
ZVNjcm9sbFNuYXA7CiAgICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhB
Y3RpdmVVc2VyU2Nyb2xsczsKLSAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVz
V2l0aEFjdGl2ZUFuaW1hdGVkU2Nyb2xsczsKKyAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2Rl
SUQ+IG5vZGVzV2l0aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnM7CiAgICAgfTsKICAgICAKICAgICBM
b2NrIG1fdHJlZVN0YXRlTG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA5MGMyNmEw
MWEyNTc1ZDI2Y2MzNzE1N2Q5YWM0Y2Y3MDI5MzRhZDU0Li4yN2Y4ZTg1MDlmMWYxMjBjNTk0ZmYz
OWJjMDA0ZjYzZTMzYWU5Y2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0yMjUsMTEg
KzIyNSwxOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxTbmFw
SW5Qcm9ncmVzcyhib29sIGlzU25hcHBpbmcpCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE5vZGVT
Y3JvbGxTbmFwSW5Qcm9ncmVzcyhzY3JvbGxpbmdOb2RlSUQoKSwgaXNTbmFwcGluZyk7CiB9CiAK
K3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OndpbGxTdGFydEFuaW1hdGVkU2Nyb2xs
KCkKK3sKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZGlkU3RvcEFuaW1h
dGVkU2Nyb2xsKCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwg
IlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBk
aWRTdG9wQW5pbWF0ZWRTY3JvbGwiKTsKICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTdG9wQW5pbWF0ZWRTY3JvbGwoKnRoaXMpOwotICAgIHNjcm9sbGluZ1RyZWUoKS5z
ZXRBbmltYXRlZFNjcm9sbEluUHJvZ3Jlc3NGb3JOb2RlKHNjcm9sbGluZ05vZGVJRCgpLCBmYWxz
ZSk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoYm9vbCBhbmltYXRpb25JblByb2dyZXNzKQoreworICAgIHNjcm9sbGlu
Z1RyZWUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRm9yTm9kZShzY3JvbGxpbmdOb2Rl
SUQoKSwgYW5pbWF0aW9uSW5Qcm9ncmVzcyk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25zdCBSZXF1ZXN0ZWRTY3Jv
bGxEYXRhJiByZXF1ZXN0ZWRTY3JvbGxEYXRhKQpAQCAtMjYwLDExICsyNjgsNiBAQCBGbG9hdFBv
aW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjphZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmCiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uOwogfQogCi12b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjp3aWxsU3RhcnRBbmltYXRlZFNjcm9sbCgpCi17Ci0g
ICAgc2Nyb2xsaW5nVHJlZSgpLnNldEFuaW1hdGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUoc2Ny
b2xsaW5nTm9kZUlEKCksIHRydWUpOwotfQotCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxDbGFtcGluZyBjbGFt
cCkKIHsKICAgICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3Jv
bGxUeXBlOjpVc2VyLCBjbGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCBjYzU2Yzk0N2M0
YjQ2ZjkwOWQxNzgyMmMyODlhZWYzNjhjNDQ3MzM2Li4xYjRiNmNhODIxMGFkM2Q0YzUyZmI2Mjhl
MDczOWY0ZDljNzQzOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTc1LDYgKzc1LDggQEAg
cHVibGljOgogICAgIGJvb2wgaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0OwogICAgIHZv
aWQgc2V0U2Nyb2xsU25hcEluUHJvZ3Jlc3MoYm9vbCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2Vy
dmljZVNjcm9sbEFuaW1hdGlvbigpIHsgfQorCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7
IHRoZXkgYWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgogICAgIHZvaWQgc2Nyb2xsVG8oY29u
c3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0
IEZsb2F0U2l6ZSYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwpA
QCAtMTMwLDYgKzEzMiw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgd2lsbFN0YXJ0QW5pbWF0
ZWRTY3JvbGwoKTsKICAgICB2b2lkIGRpZFN0b3BBbmltYXRlZFNjcm9sbCgpOworICAgIAorICAg
IHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUsIFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlld3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9zaXRpb24o
c3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+ID0geyB9KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGUuaAppbmRleCA0NTI5NGJlZWYwOGQyNmEzYzRmODM3N2E4MTkxYmY4YzhmYmE3
YmMwLi4xYTcwMjFkNzM4MTU0OTljYTBlNWRmODE3NDM0MzU0NDg5M2JjNzI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbWF0ZWRTY3JvbGwoKSA9IDA7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbigpID0gMDsKKwogcHJvdGVjdGVkOgog
ICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFBvaW50IGxhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlv
bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggOTc4MzE3MjBkOGEwYzE0ZWVhODNlNTQxZTlj
N2Y4MTBlZjFlZTI4My4uOWVjMTAyNzZmNWRiNWMxMDE5YThkZmFjOGNhYTNlZjg3OWQzOTYzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwCkBAIC0zMzAsNyArMzMwLDcgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU6OnNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQs
IHMKIAogYm9vbCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RocmVhZElzQWN0aXZl
KCkKIHsKLSAgICByZXR1cm4gaGFzUHJvY2Vzc2VkV2hlZWxFdmVudHNSZWNlbnRseSgpIHx8IGhh
c05vZGVXaXRoQWN0aXZlQW5pbWF0ZWRTY3JvbGwoKTsKKyAgICByZXR1cm4gaGFzUHJvY2Vzc2Vk
V2hlZWxFdmVudHNSZWNlbnRseSgpIHx8IGhhc05vZGVXaXRoQWN0aXZlU2Nyb2xsQW5pbWF0aW9u
cygpOwogfQogCiB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2lsbFN0YXJ0UmVuZGVyaW5n
VXBkYXRlKCkKQEAgLTM3Miw2ICszNzIsMTkgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGJvb2wgaGFzTm9kZVdpdGhBbmkKICAg
ICB9KTsKIH0KIAordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNlcnZpY2VTY3JvbGxBbmlt
YXRpb25zKCkKK3sKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQo
KSk7CisKKyAgICBmb3IgKGF1dG8gbm9kZUlEIDogbm9kZXNXaXRoQWN0aXZlU2Nyb2xsQW5pbWF0
aW9ucygpKSB7CisgICAgICAgIFJlZlB0ciB0YXJnZXROb2RlID0gbm9kZUZvcklEKG5vZGVJRCk7
CisgICAgICAgIGlmICghaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KHRhcmdldE5vZGUp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZG93bmNhc3Q8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU+KCp0YXJnZXROb2RlKS5zZXJ2aWNlU2Nyb2xsQW5pbWF0aW9uKCk7Cisg
ICAgfQorfQorCiAvLyBUaGlzIGNvZGUgYWxsb3dzIHRoZSBtYWluIHRocmVhZCBhYm91dCBoYWxm
IGEgZnJhbWUgdG8gY29tcGxldGUgaXRzIHJlbmRlcmluZyB1ZHBhdGUuIElmIHRoZSBtYWluIHRo
cmVhZAogLy8gaXMgcmVzcG9uc2l2ZSAoaS5lLiBtYW5hZ2luZyB0byByZW5kZXIgZXZlcnkgZnJh
bWUpLCB0aGVuIHdlIGV4cGVjdCB0byBnZXQgYSBkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgp
CiAvLyB3aXRoaW4gOG1zIG9mIHdpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpLiBXZSB0aW1lIHRo
aXMgdmlhIG1fc3RhdGVDb25kaXRpb24sIHdoaWNoIGJsb2NrcyB0aGUgc2Nyb2xsaW5nCkBAIC00
NDUsNiArNDU4LDggQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZy
ZXNoT25TY3JvbGxpbmdUaHJlYWQoKQogICAgIEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3Vy
cmVudFRocmVhZCgpKTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBtX3RyZWVMb2NrIH07CisgICAg
CisgICAgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIAogICAgIGlmIChtX3N0YXRlICE9IFN5
bmNocm9uaXphdGlvblN0YXRlOjpJZGxlICYmIGNhblVwZGF0ZUxheWVyc09uU2Nyb2xsaW5nVGhy
ZWFkKCkpCiAgICAgICAgIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApp
bmRleCBjNDFjNTQ1YzJkODM5NTc0Yzc5ZjkwYmJhYjIzNDZmZDljMDc0NDMzLi5kNzdkMmQ3ZjRm
ZGI1M2QxZmRkNWZlY2Y2NDMwOTIyZjUwOTNjOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtMTAyLDYgKzEw
Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWxheWVkUmVuZGVyaW5nVXBkYXRlRGV0ZWN0aW9u
VGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBoYXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hhbmdl
ZChib29sKSBmaW5hbDsKKyAgICAKKyAgICB2b2lkIHNlcnZpY2VTY3JvbGxBbmltYXRpb25zKCkg
V1RGX1JFUVVJUkVTX0xPQ0sobV90cmVlTG9jayk7CiAKICAgICBTZWNvbmRzIG1heEFsbG93YWJs
ZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hyb25pemF0aW9uKCk7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5oCmluZGV4IDRjZThkNjVkNDczOTQ5MmFlYzczZDliOTU3Nzk5NDhjN2Jh
Mjg4MWMuLjgyM2U5YTM0YjJjMjgwZTlkYzZjZjhmYjUyMWIzZjQyN2U2YjgzY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5oCkBAIC00NCw2ICs0NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRs
ZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xs
aW5nTm9kZUlELCBzdGQ6Om9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPikgZmluYWw7
CiAgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIHN0ZDo6b3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KSBm
aW5hbDsKIAorcHJvdGVjdGVkOgorICAgIHZvaWQgaGFzTm9kZVdpdGhBbmltYXRlZFNjcm9sbENo
YW5nZWQoYm9vbCkgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVRyZWVT
dGF0ZUNvbW1pdCgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggMjJhMmIy
MzQ0MDQ2NjExYmFjYzNmZmMyOGFkMDE3ZjdiM2JjZGE4NC4uODRiZjQ0N2EyYjJjZDQxOTg0N2Zh
MzJmNmFiZmVkN2FiOGI1NmE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtMTMzLDYg
KzEzMywyMSBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aWxsU3RhcnRSZW5kZXJp
bmdVcGRhdGUoKQogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6ZGlkQ29tcGxldGVSZW5k
ZXJpbmdVcGRhdGUoKQogewogICAgIGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Ny
b2xsaW5nVHJlZSgpKS0+ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKTsKKworICAgIC8vIFdo
ZW4gc2Nyb2xsIGFuaW1hdGlvbnMgYXJlIHJ1bm5pbmcgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQs
IHdlIG5lZWQgc29tZXRoaW5nIHRvIGNvbnRpbnVhbGx5IHRpY2tsZSB0aGUKKyAgICAvLyBEaXNw
bGF5UmVmcmVzaE1vbml0b3Igc28gdGhhdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlE
aWRSZWZyZXNoKCkgd2lsbCBnZXQgY2FsbGVkIHRvIHNlcnZpY2UgdGhvc2UgYW5pbWF0aW9ucy4K
KyAgICAvLyBXZSBjYW4gYWNoaWV2ZSB0aGlzIGJ5IHNjaGVkdWxpbmcgYSByZW5kZXJpbmcgdXBk
YXRlOyB0aGlzIHdvbid0IGNhdXNlIGV4dHJhIHdvcmssIHNpbmNlIHNjcm9sbGluZyB0aHJlYWQg
c2Nyb2xscworICAgIC8vIHdpbGwgZW5kIHVwIHRyaWdnZXJpbmcgdGhlc2UgYW55d2F5LgorICAg
IGlmIChzY3JvbGxpbmdUcmVlKCktPmhhc05vZGVXaXRoQWN0aXZlU2Nyb2xsQW5pbWF0aW9ucygp
KQorICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOworfQorCit2b2lkIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpoYXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hhbmdlZChib29sIGhh
c0FuaW1hdGluZ05vZGUpCit7CisgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgdG8gdHJpZ2dlciBh
IHJlbmRlcmluZyB1cGRhdGUsIGFmdGVyIHdoaWNoIHRoZSBjb2RlIGluCisgICAgLy8gU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkgdHJpZ2dlcnMg
dGhlIHJlc3QuCisgICAgaWYgKGhhc0FuaW1hdGluZ05vZGUpCisgICAgICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnVwZGF0
ZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5oCmluZGV4IGU4Y2Y5NGYyMjY5ODU0ZDAzZmJiOTg2NDU3YjBhNmNlOTlmZDhh
MjguLjYzYmRhNzlhYTYzMDZjYWM0MzZlODU0ZGZhNWMxNzNmM2NmM2M4YjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAtNjgsNiArNjgsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50
KSBmaW5hbDsKICAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOworICAgIHZvaWQg
c2VydmljZVNjcm9sbEFuaW1hdGlvbigpIGZpbmFsOwogCiAgICAgRmxvYXRQb2ludCBhZGp1c3Rl
ZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgY29uc3Qg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5k
ZXggN2U5OWY3ZjRiMmE4ZGQ1NDA2YjQ5ODJiODA5YThmYTQ0OWRhOTdiZi4uYTRiNGYzYmE3OWI4
ZDY4NTk5ODU4YjRjNzgzNjcyNmQ2MjUwOWQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTEyNywxMCArMTI3LDcgQEAgV2hlZWxFdmVudEhhbmRs
aW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQoY28KIAogYm9vbCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpzdGFy
dEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50IGRlc3RpbmF0aW9uUG9zaXRpb24p
CiB7Ci0gICAgYm9vbCBzdGFydGVkID0gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Q
b3NpdGlvbihkZXN0aW5hdGlvblBvc2l0aW9uKTsKLSAgICBpZiAoc3RhcnRlZCkKLSAgICAgICAg
d2lsbFN0YXJ0QW5pbWF0ZWRTY3JvbGwoKTsKLSAgICByZXR1cm4gc3RhcnRlZDsKKyAgICByZXR1
cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihkZXN0aW5hdGlvblBv
c2l0aW9uKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpz
dG9wQW5pbWF0ZWRTY3JvbGwoKQpAQCAtMTM4LDYgKzEzNSwxMSBAQCB2b2lkIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnN0b3BBbmltYXRlZFNjcm9sbCgpCiAgICAgbV9kZWxl
Z2F0ZS5zdG9wQW5pbWF0ZWRTY3JvbGwoKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTWFjOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9uKCkKK3sKKyAgICBtX2RlbGVn
YXRlLnNlcnZpY2VTY3JvbGxBbmltYXRpb24oKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQ
b2ludCYgdGFyZ2V0U2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgbV9kZWxlZ2F0ZS53aWxsRG9Qcm9n
cmFtbWF0aWNTY3JvbGwodGFyZ2V0U2Nyb2xsUG9zaXRpb24pOwpAQCAtMTUxLDcgKzE1Myw3IEBA
IEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6YWRqdXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYzo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxUeXBlIHNjcm9s
bFR5cGUsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gYWN0aW9uKQogewotICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYyAiIDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgY3VycmVudFNjcm9sbFBvc2l0
aW9uQ2hhbmdlZCB0byAiIDw8IGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpIDw8ICIgbWluOiAiIDw8
IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIDw8ICIgbWF4OiAiIDw8IG1heGltdW1TY3JvbGxQb3Np
dGlvbigpIDw8ICIgc3luYzogIiA8PCBoYXNTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSA8
PCAiIGlzIGFuaW1hdGluZzogIiA8PCBzY3JvbGxpbmdUcmVlKCkuaXNBbmltYXRlZFNjcm9sbElu
UHJvZ3Jlc3NGb3JOb2RlKHNjcm9sbGluZ05vZGVJRCgpKSk7CisgICAgTE9HX1dJVEhfU1RSRUFN
KFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFj
ICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
IHRvICIgPDwgY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgPDwgIiBtaW46ICIgPDwgbWluaW11bVNj
cm9sbFBvc2l0aW9uKCkgPDwgIiBtYXg6ICIgPDwgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgPDwg
IiBzeW5jOiAiIDw8IGhhc1N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucygpIDw8ICIgaXMgYW5p
bWF0aW5nOiAiIDw8IHNjcm9sbGluZ1RyZWUoKS5pc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NG
b3JOb2RlKHNjcm9sbGluZ05vZGVJRCgpKSk7CiAKICAgICBtX2RlbGVnYXRlLmN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTWFjLmgKaW5kZXggNzcwY2M0N2MxODExZGVkN2Q5NDRkNTg3MTE2ZmE0ZTY0ODFj
Y2VlZC4uNmIzMWFiODQ4YjU5OTZjYzQzYzI0M2ZiOTcwNTc2ZjU1ZjRhNjc1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC01NCw2ICs1NCw3
IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpIG92
ZXJyaWRlOwogICAgIHZvaWQgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNlcnZpY2VTY3JvbGxBbmltYXRpb24oKSBvdmVycmlkZTsKIAogICAgIFdoZWVsRXZl
bnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIEV2ZW50VGFyZ2V0aW5nKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA0MTBmNjBiODVkYmI5ZmEwYjc0NDgxYmU5
MWNjNGJmMmYzNjRhNGRhLi4xOTQ3OGQzNjcxMzlkZGM4MDhkMjk3N2Y1MzM3Y2UxMTAxMmQzMjI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpA
QCAtODcsNiArODcsMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjOjpzdG9wQW5pbWF0ZWRTY3JvbGwoKQogICAgIG1fZGVsZWdhdGUuc3RvcEFuaW1hdGVkU2Ny
b2xsKCk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6
c2VydmljZVNjcm9sbEFuaW1hdGlvbigpCit7CisgICAgbV9kZWxlZ2F0ZS5zZXJ2aWNlU2Nyb2xs
QW5pbWF0aW9uKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFNj
cm9sbFBvc2l0aW9uKQogewogICAgIG1fZGVsZWdhdGUud2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xs
KHRhcmdldFNjcm9sbFBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IDVkODkxNWNiMzQ1NGFhZWYwMTYwMzFmMDZjZDQ2M2EwNGNk
ODEwOTEuLjI4Mzc4ZjAzZGM2NGNlMTBhNzA5NGE4ZDYwODljNDYzMWIxYjdkMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtNTUsNiArNTUs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9h
dFBvaW50KSBmaW5hbDsKICAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOwogCisg
ICAgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9uKCkgZmluYWw7CisKICAgICB2b2lkIHdpbGxE
b1Byb2dyYW1tYXRpY1Njcm9sbChjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBjdXJyZW50
U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CiAKQEAgLTkyLDcgKzk0LDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpIGZpbmFsOwog
CiAgICAgYm9vbCBzY3JvbGxQb3NpdGlvbklzTm90UnViYmVyYmFuZGluZ0VkZ2UoY29uc3QgRmxv
YXRQb2ludCYpIGNvbnN0OwotICAgIHZvaWQgc2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVy
RmlyZWQoKTsKIAogICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgZmluYWw7CiAg
ICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgZmluYWw7CkBAIC0xMTEsOCArMTEyLDYg
QEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4gbV92ZXJ0aWNhbFNjcm9s
bGVySW1wOwogICAgIFJldGFpblB0cjxOU1Njcm9sbGVySW1wPiBtX2hvcml6b250YWxTY3JvbGxl
ckltcDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxSdW5Mb29wOjpUaW1lcjxTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjPj4gbV9zY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGlt
ZXI7Ci0KICAgICBib29sIG1faW5Nb21lbnR1bVBoYXNlIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggMmI3MGVh
NmM5MGEzMDQ4NmY4OTA5NzI0Yjk1NTU5NWY5NzhkNTRjNi4uZmFjOWJmNTg0NGYyYzI0ZDM3N2Ni
YjljNzBiZTQ1YjFlNGJhNjg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMubW0KQEAgLTE4OCw2ICsxODgsNyBAQCBib29sIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdAog
CiBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXJUaW1lcj4gU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIoRnVuY3Rpb248dm9p
ZCgpPiYmIGZ1bmN0aW9uKQogeworICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIGZvciBhIHNjcm9s
bCBzbmFwIHRpbWVyLgogICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8U2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXJUaW1lcj4oUnVuTG9vcDo6Y3VycmVudCgpLCBbZnVuY3Rpb24gPSBXVEZNb3Zl
KGZ1bmN0aW9uKSwgcHJvdGVjdGVkTm9kZSA9IFJlZiB7IHNjcm9sbGluZ05vZGUoKSB9XSB7CiAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm90ZWN0ZWROb2RlLT5zY3JvbGxpbmdUcmVlKCkudHJl
ZUxvY2soKSB9OwogICAgICAgICBmdW5jdGlvbigpOwpAQCAtMTk2LDIyICsxOTcsMTUgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyVGltZXI+IFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWcKIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjpzdGFydEFuaW1hdGlvbkNhbGxiYWNrKFNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyJikKIHsKLSAgICBpZiAoIW1fc2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyKQotICAg
ICAgICBtX3Njcm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lciA9IFdURjo6bWFrZVVuaXF1ZTxS
dW5Mb29wOjpUaW1lcjxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjPj4oUnVu
TG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYzo6c2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyRmlyZWQpOwotCi0gICAgaWYgKG1f
c2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyLT5pc0FjdGl2ZSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX3Njcm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lci0+c3RhcnRSZXBlYXRp
bmcoMV9zIC8gNjAuKTsKKyAgICBzY3JvbGxpbmdOb2RlKCkuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjpzdG9wQW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIm
KQogewotICAgIGlmIChtX3Njcm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lcikKLSAgICAgICAg
bV9zY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXItPnN0b3AoKTsKKyAgICBzY3JvbGxpbmdO
b2RlKCkuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhmYWxzZSk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2Nyb2xsQ29udHJvbGxlckFuaW1h
dGlvblRpbWVyRmlyZWQoKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9uKCkKIHsKICAgICBtX3Njcm9sbENvbnRyb2xsZXIu
YW5pbWF0aW9uQ2FsbGJhY2soTW9ub3RvbmljVGltZTo6bm93KCkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvblNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IGVkNGY1
Mzg4NzlhNzQ1MTE0OTJhNGZhNzhhY2M5M2Q0YTM0MmVhN2EuLjFmM2NhYTk0MzZmZmEwOTllZjIz
NGU5MGRlYjU4OTBjY2RjNTQxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTQ4LDYgKzQ4LDggQEAgdm9pZCBUaWxlZENv
cmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcjo6cGFnZURlc3Ryb3llZCgpCiAKIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc05vZGVXaXRoQW5pbWF0
ZWRTY3JvbGxDaGFuZ2VkKGJvb2wgaGF2ZUFuaW1hdGVkU2Nyb2xsaW5nTm9kZXMpCiB7CisgICAg
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2Vk
KGhhdmVBbmltYXRlZFNjcm9sbGluZ05vZGVzKTsKKwogICAgIGlmICghbV9wYWdlKQogICAgICAg
ICByZXR1cm47CiAK
</data>
<flag name="commit-queue"
          id="467518"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442921</attachid>
            <date>2021-10-30 15:59:55 -0700</date>
            <delta_ts>2021-10-31 08:19:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232534-20211030155954.patch</filename>
            <type>text/plain</type>
            <size>30740</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE0MjViMjMwOTMxNjY1
MTJmMzYxMTAyNzhiOTgyN2RiMzI3ZTA5ZC4uMWRhNzg5NDVhOTM1NzEyZTczNWJkMmJhY2UwYWNj
ZGEzZTk2ZDYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIxLTEwLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBhbmlt
YXRpb25zIHNob3VsZCBydW4gYXQgMTIwSHogb24gMTIwSHogZGlzcGxheXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjUzNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjcm9sbCBhbmltYXRpb25zIG9u
IHRoZSBzY3JvbGxpbmcgdGhyZWFkIHdlcmUgZHJpdmVuIGJ5IGEgNjBIeiB0aW1lciBpbgorICAg
ICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLiBSZXBsYWNlIHRoYXQg
d2l0aCBhIG1lY2hhbmlzbSB0aGF0IGRyaXZlcyB0aGVtIGZyb20KKyAgICAgICAgVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCksIHdoaWNo
IGlzIGNhbGxlZCBhdCB0aGUgbWF4aW11bQorICAgICAgICBkaXNwbGF5IHJlZnJlc2ggZnJlcXVl
bmN5LgorCisgICAgICAgIFdlIGxldmVyYWdlIHN0YXJ0QW5pbWF0aW9uQ2FsbGJhY2svc3RvcEFu
aW1hdGlvbkNhbGxiYWNrIHdoaWNoIHVwZGF0ZSB0aGUgSGFzaFNldCBvZgorICAgICAgICBhbmlt
YXRpbmcgbm9kZXMgb24gc2Nyb2xsaW5nIHRyZWUsIGFuZCBpdGVyYXRlIHRoaXMgc2V0IGluIHRo
ZSBjYWxsYmFjayB0byBzZXJ2aWNlIHRoZQorICAgICAgICBhbmltYXRpb25zLgorICAgICAgICAK
KyAgICAgICAgQ2hhbmdlIHNvbWUgU2Nyb2xsaW5nVHJlZSB0ZXJtaW5vbG9neSBmcm9tICJBbmlt
YXRlZFNjcm9sbCIgdG8gIlNjcm9sbEFuaW1hdGlvbiIgdG8gaW5kaWNhdGUKKyAgICAgICAgdGhh
dCB0aGV5IGFyZSBhYm91dCBhbGwga2luZHMgb2Ygc2Nyb2xsIGFuaW1hdGlvbnMgKGUuZy4gcnVi
YmVyYmFuZGluZyksIG5vdCBqdXN0IGFuaW1hdGVkCisgICAgICAgIHNjcm9sbHMuCisKKyAgICAg
ICAgQSBzaWRlIGVmZmVjdCBvZiByZW1vdmluZyB0aGUgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYyB3YXMgdGhhdCB0aGVyZSB3YXMgbm8KKyAgICAgICAgY29kZSBwYXRoIHRo
YXQgdHJpZ2dlcmVkIGNvbnRpbnVhbCAiZGlzcGxheURpZFJlZnJlc2giIG5vdGlmaWNhdGlvbnMg
KHdoaWNoIG9yaWdpbmF0ZSBpbiB0aGUKKyAgICAgICAgVUkgcHJvY2VzcykuIFdlIG5lZWQgc29t
ZXRoaW5nIHRvIGtlZXAgdGhlIGRpc3BsYXlEaWRSZWZyZXNoIG5vdGlmaWNhdGlvbnMgY29taW5n
LiBUbyBmaXgKKyAgICAgICAgdGhpcywgaGF2ZSBTY3JvbGxpbmdDb29yZGluYXRvck1hYyBjYWxs
IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgd2hlbiBhbiBhbmltYXRpb24gc3RhcnRzLAorICAg
ICAgICBhbmQgaW4gZWFjaCByZW5kZXJpbmcgdXBkYXRlIHdoaWxlIHRoZXJlIGFyZSBhY3RpdmUg
YW5pbWF0aW9ucy4gVGhpcyBkb2Vzbid0IHRyaWdnZXIKKyAgICAgICAgYWRkaXRpb25hbCByZW5k
ZXJpbmcgdXBkYXRlczsgdGhlc2Ugd2lsbCBoYXBwZW4gYW55d2F5IGFzIGEgc2lkZSBlZmZlY3Qg
b2Ygc2Nyb2xsaW5nIHRyZWUKKyAgICAgICAgc2Nyb2xscyBib3VuY2luZyB0byB0aGUgbWFpbiB0
aHJlYWQuIEFsc28gd29ydGggbm90aW5nIGlzIHRoYXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgd2ls
bCBnZXQKKyAgICAgICAgMTIwSHogdXBkYXRlcywgZXZlbiBpZiB3ZSdyZSBvbmx5IHRyaWdnZXJp
bmcgbWFpbiB0aHJlYWQgcmVuZGVyaW5nIHVwZGF0ZXMsIGJlY2F1c2Ugb2YKKyAgICAgICAgZXhp
c3RpbmcgV2ViUGFnZVByb3h5IGhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xsIHN0YXRlLgorCisgICAg
ICAgIEV4ZXJjaXNlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRm9yTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYXNOb2RlV2l0aEFjdGl2ZVNjcm9sbEFuaW1h
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bm9kZXNXaXRoQWN0aXZl
U2Nyb2xsQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc0Fu
aW1hdGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6c2V0QW5pbWF0ZWRTY3JvbGxJblByb2dyZXNzRm9yTm9kZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYXNOb2RlV2l0aEFjdGl2
ZUFuaW1hdGVkU2Nyb2xsKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OndpbGxTdGFydEFuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpkaWRTdG9wQW5pbWF0ZWRTY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RocmVhZElzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKToKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6ZGlkQ29tcGxldGVSZW5kZXJpbmdV
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhhc05v
ZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RhcnRB
bmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c2VydmljZVNjcm9sbEFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjdXJyZW50U2Ny
b2xsUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6c2Vydmlj
ZVNjcm9sbEFuaW1hdGlvbik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNyZWF0ZVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OnN0YXJ0QW5pbWF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcEFuaW1hdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6
OnNlcnZpY2VTY3JvbGxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWE6OmFuaW1hdGlvblRp
bWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU5pY29zaWE6OnNlcnZpY2VTY3JvbGxBbmltYXRpb24pOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29z
aWEuaDoKKwogMjAyMS0xMC0yOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBET00gR1BVUDogWWFob28uY29tIGhhcyBmcmFnbWVudHMgb2Ygd3Jvbmds
eS1zY2FsZWQgY29udGVudCB0aHJvdWdob3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiOTcwNmJlNGQ2YjEzOWVi
Y2RlZmMwY2U3ZjlmZWYyOTBlNTYyYjkuLmIxNzJmZTBjMmVkNDY1NjlkZDc0MWY0OWFjMTUyYTA4
NWY1MjdiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMzAgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2Nyb2xsIGFuaW1hdGlv
bnMgc2hvdWxkIHJ1biBhdCAxMjBIeiBvbiAxMjBIeiBkaXNwbGF5cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29y
ZGluYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKToKKwogMjAyMS0x
MC0yOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBE
T00gR1BVUDogWWFob28uY29tIGhhcyBmcmFnbWVudHMgb2Ygd3JvbmdseS1zY2FsZWQgY29udGVu
dCB0aHJvdWdob3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCmluZGV4IDdkNWY3NGVlMWYyNWYyOTgzOGM5ZDVjOTkzOGU1YTViYjYxZTExZTEu
LjAwYWJkN2IxZGQ5MDQ5ODVmNGNjNWEyZWI5NDkwNDE5MjUxODRhNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC01ODMsMzggKzU4
Myw0NCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE5vZGVTY3JvbGxTbmFwSW5Qcm9ncmVzcyhT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzUwogICAgICAgICBtX3RyZWVTdGF0ZS5ub2Rl
c1dpdGhBY3RpdmVTY3JvbGxTbmFwLnJlbW92ZShub2RlSUQpOwogfQogCi1ib29sIFNjcm9sbGlu
Z1RyZWU6OmlzQW5pbWF0ZWRTY3JvbGxJblByb2dyZXNzRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQorYm9vbCBTY3JvbGxpbmdUcmVlOjppc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NG
b3JOb2RlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgaWYgKCFub2RlSUQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBtX3RyZWVTdGF0ZUxvY2sg
fTsKLSAgICByZXR1cm4gbV90cmVlU3RhdGUubm9kZXNXaXRoQWN0aXZlQW5pbWF0ZWRTY3JvbGxz
LmNvbnRhaW5zKG5vZGVJRCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2
ZVNjcm9sbEFuaW1hdGlvbnMuY29udGFpbnMobm9kZUlEKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdU
cmVlOjpzZXRBbmltYXRlZFNjcm9sbEluUHJvZ3Jlc3NGb3JOb2RlKFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQsIGJvb2wgaXNBbmltYXRlZFNjcm9sbEluUHJvZ3Jlc3MpCit2b2lkIFNjcm9sbGluZ1Ry
ZWU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NGb3JOb2RlKFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQogewogICAgIGlmICghbm9k
ZUlEKQogICAgICAgICByZXR1cm47CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgbV90cmVlU3RhdGVM
b2NrIH07CiAgICAgCi0gICAgYm9vbCBoYWRBbnlBbmltYXRlZFNjcm9sbGluZ05vZGVzID0gIW1f
dHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2ZUFuaW1hdGVkU2Nyb2xscy5pc0VtcHR5KCk7CisgICAg
Ym9vbCBoYWRBbnlBbmltYXRlZFNjcm9sbGluZ05vZGVzID0gIW1fdHJlZVN0YXRlLm5vZGVzV2l0
aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnMuaXNFbXB0eSgpOwogICAgIAotICAgIGlmIChpc0FuaW1h
dGVkU2Nyb2xsSW5Qcm9ncmVzcykKLSAgICAgICAgbV90cmVlU3RhdGUubm9kZXNXaXRoQWN0aXZl
QW5pbWF0ZWRTY3JvbGxzLmFkZChub2RlSUQpOworICAgIGlmIChpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCisgICAgICAgIG1fdHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2ZVNjcm9sbEFuaW1h
dGlvbnMuYWRkKG5vZGVJRCk7CiAgICAgZWxzZQotICAgICAgICBtX3RyZWVTdGF0ZS5ub2Rlc1dp
dGhBY3RpdmVBbmltYXRlZFNjcm9sbHMucmVtb3ZlKG5vZGVJRCk7CisgICAgICAgIG1fdHJlZVN0
YXRlLm5vZGVzV2l0aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnMucmVtb3ZlKG5vZGVJRCk7CiAKLSAg
ICBib29sIGhhc0FueUFuaW1hdGVkU2Nyb2xsaW5nTm9kZXMgPSAhbV90cmVlU3RhdGUubm9kZXNX
aXRoQWN0aXZlQW5pbWF0ZWRTY3JvbGxzLmlzRW1wdHkoKTsKKyAgICBib29sIGhhc0FueUFuaW1h
dGVkU2Nyb2xsaW5nTm9kZXMgPSAhbV90cmVlU3RhdGUubm9kZXNXaXRoQWN0aXZlU2Nyb2xsQW5p
bWF0aW9ucy5pc0VtcHR5KCk7CiAgICAgaWYgKGhhc0FueUFuaW1hdGVkU2Nyb2xsaW5nTm9kZXMg
IT0gaGFkQW55QW5pbWF0ZWRTY3JvbGxpbmdOb2RlcykKICAgICAgICAgaGFzTm9kZVdpdGhBbmlt
YXRlZFNjcm9sbENoYW5nZWQoaGFzQW55QW5pbWF0ZWRTY3JvbGxpbmdOb2Rlcyk7CiB9CiAKLWJv
b2wgU2Nyb2xsaW5nVHJlZTo6aGFzTm9kZVdpdGhBY3RpdmVBbmltYXRlZFNjcm9sbCgpCitib29s
IFNjcm9sbGluZ1RyZWU6Omhhc05vZGVXaXRoQWN0aXZlU2Nyb2xsQW5pbWF0aW9ucygpCiB7CiAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fdHJlZVN0YXRlTG9jayB9OwotICAgIHJldHVybiAhbV90cmVl
U3RhdGUubm9kZXNXaXRoQWN0aXZlQW5pbWF0ZWRTY3JvbGxzLmlzRW1wdHkoKTsKKyAgICByZXR1
cm4gIW1fdHJlZVN0YXRlLm5vZGVzV2l0aEFjdGl2ZVNjcm9sbEFuaW1hdGlvbnMuaXNFbXB0eSgp
OworfQorCitIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gU2Nyb2xsaW5nVHJlZTo6bm9kZXNXaXRo
QWN0aXZlU2Nyb2xsQW5pbWF0aW9ucygpCit7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fdHJlZVN0
YXRlTG9jayB9OworICAgIHJldHVybiBtX3RyZWVTdGF0ZS5ub2Rlc1dpdGhBY3RpdmVTY3JvbGxB
bmltYXRpb25zOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpbm5lZFN0
YXRlKFJlY3RFZGdlczxib29sPiBlZGdlUGlubmluZ1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDMyMDE1N2FmYzIzNTIzMjM0NjMz
M2I3NjIyMzEyOTg0NDIwNTc5Y2QuLmMxODI0MzAzMzM4NjI4MDgxYmZmMmY0MDNkODFhYzlhY2I3
OGI3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmgKQEAgLTExMyw4ICsxMTMsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNTY3JvbGxTbmFwSW5Q
cm9ncmVzc0Zvck5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKICAgICB2b2lkIHNldE5vZGVTY3JvbGxT
bmFwSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wpOwogCi0gICAgYm9vbCBpc0FuaW1h
dGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKLSAgICB2b2lkIHNl
dEFuaW1hdGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUoU2Nyb2xsaW5nTm9kZUlELCBib29sKTsK
KyAgICBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0Zvck5vZGUoU2Nyb2xsaW5nTm9k
ZUlEKTsKKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NGb3JOb2RlKFNjcm9s
bGluZ05vZGVJRCwgYm9vbCk7CisKKyAgICBib29sIGhhc05vZGVXaXRoQWN0aXZlU2Nyb2xsQW5p
bWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSB7IH0KICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNvbW1pdFRyZWVTdGF0ZShzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5n
U3RhdGVUcmVlPiYmKTsKQEAgLTI0Nyw3ICsyNDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB2b2lkIGhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGJvb2wgLyogaGFzTm9kZVdp
dGhBbmltYXRlZFNjcm9sbCAqLykgeyB9CiAKICAgICBib29sIGhhc1Byb2Nlc3NlZFdoZWVsRXZl
bnRzUmVjZW50bHkoKTsKLSAgICBib29sIGhhc05vZGVXaXRoQWN0aXZlQW5pbWF0ZWRTY3JvbGwo
KTsKKworICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVTY3JvbGxB
bmltYXRpb25zKCk7CiAKICAgICBMb2NrIG1fdHJlZUxvY2s7IC8vIFByb3RlY3RzIHRoZSBzY3Jv
bGxpbmcgdHJlZS4KIApAQCAtMjkyLDcgKzI5NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIEhhc2hT
ZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVSdWJiZXJCYW5kaW5nOwogICAgICAg
ICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlU2Nyb2xsU25hcDsKICAg
ICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVVzZXJTY3JvbGxz
OwotICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlQW5pbWF0
ZWRTY3JvbGxzOworICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0
aXZlU2Nyb2xsQW5pbWF0aW9uczsKICAgICB9OwogICAgIAogICAgIExvY2sgbV90cmVlU3RhdGVM
b2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDkwYzI2YTAxYTI1NzVkMjZjYzM3MTU3
ZDlhYzRjZjcwMjkzNGFkNTQuLjI3ZjhlODUwOWYxZjEyMGM1OTRmZjM5YmMwMDRmNjNlMzNhZTlj
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTIyNSwxMSArMjI1LDE5IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbFNuYXBJblByb2dyZXNzKGJvb2wg
aXNTbmFwcGluZykKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0Tm9kZVNjcm9sbFNuYXBJblByb2dy
ZXNzKHNjcm9sbGluZ05vZGVJRCgpLCBpc1NuYXBwaW5nKTsKIH0KIAordm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6d2lsbFN0YXJ0QW5pbWF0ZWRTY3JvbGwoKQoreworfQorCiB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkaWRTdG9wQW5pbWF0ZWRTY3JvbGwoKQogewog
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIGRpZFN0b3BBbmltYXRlZFNj
cm9sbCIpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFN0b3BBbmlt
YXRlZFNjcm9sbCgqdGhpcyk7Ci0gICAgc2Nyb2xsaW5nVHJlZSgpLnNldEFuaW1hdGVkU2Nyb2xs
SW5Qcm9ncmVzc0Zvck5vZGUoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKK30KKwordm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhi
b29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNldFNjcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NGb3JOb2RlKHNjcm9sbGluZ05vZGVJRCgpLCBhbmltYXRpb25J
blByb2dyZXNzKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aGFuZGxl
U2Nyb2xsUG9zaXRpb25SZXF1ZXN0KGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEmIHJlcXVlc3Rl
ZFNjcm9sbERhdGEpCkBAIC0yNjAsMTEgKzI2OCw2IEBAIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYK
ICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb247CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OndpbGxTdGFydEFuaW1hdGVkU2Nyb2xsKCkKLXsKLSAgICBzY3JvbGxpbmdUcmVl
KCkuc2V0QW5pbWF0ZWRTY3JvbGxJblByb2dyZXNzRm9yTm9kZShzY3JvbGxpbmdOb2RlSUQoKSwg
dHJ1ZSk7Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEJ5KGNv
bnN0IEZsb2F0U2l6ZSYgZGVsdGEsIFNjcm9sbENsYW1waW5nIGNsYW1wKQogewogICAgIHNjcm9s
bFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIsIGNs
YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGNjNTZjOTQ3YzRiNDZmOTA5ZDE3ODIyYzI4
OWFlZjM2OGM0NDczMzYuLjFiNGI2Y2E4MjEwYWQzZDRjNTJmYjYyOGUwNzM5ZjRkOWM3NDM5MTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNzUsNiArNzUsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTY3JvbGxTbmFw
SW5Qcm9ncmVzcyhib29sKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0
aW9uKCkgeyB9CisKICAgICAvLyBUaGVzZSBhcmUgaW1wZXJhdGl2ZTsgdGhleSBhZGp1c3QgdGhl
IHNjcm9sbGluZyBsYXllcnMuCiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50Jiwg
U2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpOwogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiwgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CkBAIC0xMzAsNiArMTMyLDgg
QEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCB3aWxsU3RhcnRBbmltYXRlZFNjcm9sbCgpOwogICAg
IHZvaWQgZGlkU3RvcEFuaW1hdGVkU2Nyb2xsKCk7CisgICAgCisgICAgdm9pZCBzZXRTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKGJvb2wpOwogCiAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xsVHlwZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3NpdGlvbihzdGQ6Om9wdGlvbmFsPEZs
b2F0UmVjdD4gPSB7IH0pIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oCmlu
ZGV4IDQ1Mjk0YmVlZjA4ZDI2YTNjNGY4Mzc3YTgxOTFiZjhjOGZiYTdiYzAuLjFhNzAyMWQ3Mzgx
NTQ5OWNhMGU1ZGY4MTc0MzQzNTQ0ODkzYmM3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
dGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXJ2
aWNlU2Nyb2xsQW5pbWF0aW9uKCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIEZsb2F0UG9pbnQgbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcAppbmRleCA5NzgzMTcyMGQ4YTBjMTRlZWE4M2U1NDFlOWM3ZjgxMGVmMWVlMjgzLi45
ZWMxMDI3NmY1ZGI1YzEwMTlhOGRmYWM4Y2FhM2VmODc5ZDM5NjNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAK
QEAgLTMzMCw3ICszMzAsNyBAQCB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6c2V0QWN0aXZl
U2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgcwogCiBib29sIFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVGhyZWFkSXNBY3RpdmUoKQogewotICAgIHJldHVy
biBoYXNQcm9jZXNzZWRXaGVlbEV2ZW50c1JlY2VudGx5KCkgfHwgaGFzTm9kZVdpdGhBY3RpdmVB
bmltYXRlZFNjcm9sbCgpOworICAgIHJldHVybiBoYXNQcm9jZXNzZWRXaGVlbEV2ZW50c1JlY2Vu
dGx5KCkgfHwgaGFzTm9kZVdpdGhBY3RpdmVTY3JvbGxBbmltYXRpb25zKCk7CiB9CiAKIHZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKQpAQCAtMzcy
LDYgKzM3MiwxOSBAQCB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFzTm9kZVdpdGhBbmlt
YXRlZFNjcm9sbENoYW5nZWQoYm9vbCBoYXNOb2RlV2l0aEFuaQogICAgIH0pOwogfQogCit2b2lk
IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKQoreworICAg
IEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKKworICAgIGZvciAo
YXV0byBub2RlSUQgOiBub2Rlc1dpdGhBY3RpdmVTY3JvbGxBbmltYXRpb25zKCkpIHsKKyAgICAg
ICAgUmVmUHRyIHRhcmdldE5vZGUgPSBub2RlRm9ySUQobm9kZUlEKTsKKyAgICAgICAgaWYgKCFp
czxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4odGFyZ2V0Tm9kZSkpCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICBkb3duY2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4o
KnRhcmdldE5vZGUpLnNlcnZpY2VTY3JvbGxBbmltYXRpb24oKTsKKyAgICB9Cit9CisKIC8vIFRo
aXMgY29kZSBhbGxvd3MgdGhlIG1haW4gdGhyZWFkIGFib3V0IGhhbGYgYSBmcmFtZSB0byBjb21w
bGV0ZSBpdHMgcmVuZGVyaW5nIHVkcGF0ZS4gSWYgdGhlIG1haW4gdGhyZWFkCiAvLyBpcyByZXNw
b25zaXZlIChpLmUuIG1hbmFnaW5nIHRvIHJlbmRlciBldmVyeSBmcmFtZSksIHRoZW4gd2UgZXhw
ZWN0IHRvIGdldCBhIGRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKIC8vIHdpdGhpbiA4bXMg
b2Ygd2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkuIFdlIHRpbWUgdGhpcyB2aWEgbV9zdGF0ZUNv
bmRpdGlvbiwgd2hpY2ggYmxvY2tzIHRoZSBzY3JvbGxpbmcKQEAgLTQ0NSw2ICs0NTgsOCBAQCB2
b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1Ro
cmVhZCgpCiAgICAgQVNTRVJUKFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpOwog
CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fdHJlZUxvY2sgfTsKKyAgICAKKyAgICBzZXJ2aWNlU2Ny
b2xsQW5pbWF0aW9ucygpOwogCiAgICAgaWYgKG1fc3RhdGUgIT0gU3luY2hyb25pemF0aW9uU3Rh
dGU6OklkbGUgJiYgY2FuVXBkYXRlTGF5ZXJzT25TY3JvbGxpbmdUaHJlYWQoKSkKICAgICAgICAg
YXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGM0MWM1NDVjMmQ4
Mzk1NzRjNzlmOTBiYmFiMjM0NmZkOWMwNzQ0MzMuLmQ3N2QyZDdmNGZkYjUzZDFmZGQ1ZmVjZjY0
MzA5MjJmNTA5M2M5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC0xMDIsNiArMTAyLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lckZpcmVkKCk7CiAK
ICAgICB2b2lkIGhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGJvb2wpIGZpbmFsOwor
ICAgIAorICAgIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKSBXVEZfUkVRVUlSRVNfTE9D
SyhtX3RyZWVMb2NrKTsKIAogICAgIFNlY29uZHMgbWF4QWxsb3dhYmxlUmVuZGVyaW5nVXBkYXRl
RHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgK
aW5kZXggNGNlOGQ2NWQ0NzM5NDkyYWVjNzNkOWI5NTc3OTk0OGM3YmEyODgxYy4uODIzZTlhMzRi
MmMyODBlOWRjNmNmOGZiNTIxYjNmNDI3ZTZiODNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgK
QEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNj
cm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQsIHN0ZDo6
b3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KSBmaW5hbDsKICAgICB2b2lkIHdoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jiwg
c3RkOjpvcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4pIGZpbmFsOwogCitwcm90ZWN0
ZWQ6CisgICAgdm9pZCBoYXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hhbmdlZChib29sKSBvdmVy
cmlkZTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCAyMmEyYjIzNDQwNDY2MTFiYWNjM2Zm
YzI4YWQwMTdmN2IzYmNkYTg0Li44NGJmNDQ3YTJiMmNkNDE5ODQ3ZmEzMmY2YWJmZWQ3YWI4YjU2
YTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC0xMzMsNiArMTMzLDIxIEBAIHZvaWQg
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpCiB2b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7
CiAgICAgZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpLT5k
aWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgpOworCisgICAgLy8gV2hlbiBzY3JvbGwgYW5pbWF0
aW9ucyBhcmUgcnVubmluZyBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgd2UgbmVlZCBzb21ldGhp
bmcgdG8gY29udGludWFsbHkgdGlja2xlIHRoZQorICAgIC8vIERpc3BsYXlSZWZyZXNoTW9uaXRv
ciBzbyB0aGF0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2goKSB3aWxs
IGdldCBjYWxsZWQgdG8gc2VydmljZSB0aG9zZSBhbmltYXRpb25zLgorICAgIC8vIFdlIGNhbiBh
Y2hpZXZlIHRoaXMgYnkgc2NoZWR1bGluZyBhIHJlbmRlcmluZyB1cGRhdGU7IHRoaXMgd29uJ3Qg
Y2F1c2UgZXh0cmEgd29yaywgc2luY2Ugc2Nyb2xsaW5nIHRocmVhZCBzY3JvbGxzCisgICAgLy8g
d2lsbCBlbmQgdXAgdHJpZ2dlcmluZyB0aGVzZSBhbnl3YXkuCisgICAgaWYgKHNjcm9sbGluZ1Ry
ZWUoKS0+aGFzTm9kZVdpdGhBY3RpdmVTY3JvbGxBbmltYXRpb25zKCkpCisgICAgICAgIHNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6
Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGJvb2wgaGFzQW5pbWF0aW5nTm9kZSkK
K3sKKyAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byB0cmlnZ2VyIGEgcmVuZGVyaW5nIHVwZGF0
ZSwgYWZ0ZXIgd2hpY2ggdGhlIGNvZGUgaW4KKyAgICAvLyBTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKSB0cmlnZ2VycyB0aGUgcmVzdC4KKyAgICBp
ZiAoaGFzQW5pbWF0aW5nTm9kZSkKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsK
IH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6dXBkYXRlVGlsZWRTY3JvbGxpbmdJ
bmRpY2F0b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5k
ZXggZThjZjk0ZjIyNjk4NTRkMDNmYmI5ODY0NTdiMGE2Y2U5OWZkOGEyOC4uNjNiZGE3OWFhNjMw
NmNhYzQzNmU4NTRkZmE1YzE3M2YzY2YzYzhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC02OCw2ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQpIGZpbmFsOwogICAgIHZv
aWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CisgICAgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5p
bWF0aW9uKCkgZmluYWw7CiAKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24o
Y29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA3ZTk5ZjdmNGIyYThk
ZDU0MDZiNDk4MmI4MDlhOGZhNDQ5ZGE5N2JmLi5hNGI0ZjNiYTc5YjhkNjg1OTk4NThiNGM3ODM2
NzI2ZDYyNTA5ZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5tbQpAQCAtMTI3LDEwICsxMjcsNyBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjbwogCiBib29s
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxU
b1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlvbikKIHsKLSAgICBib29sIHN0
YXJ0ZWQgPSBtX2RlbGVnYXRlLnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0
aW9uUG9zaXRpb24pOwotICAgIGlmIChzdGFydGVkKQotICAgICAgICB3aWxsU3RhcnRBbmltYXRl
ZFNjcm9sbCgpOwotICAgIHJldHVybiBzdGFydGVkOworICAgIHJldHVybiBtX2RlbGVnYXRlLnN0
YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRpb24pOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnN0b3BBbmltYXRlZFNjcm9s
bCgpCkBAIC0xMzgsNiArMTM1LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYzo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKICAgICBtX2RlbGVnYXRlLnN0b3BBbmltYXRl
ZFNjcm9sbCgpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6
OnNlcnZpY2VTY3JvbGxBbmltYXRpb24oKQoreworICAgIG1fZGVsZWdhdGUuc2VydmljZVNjcm9s
bEFuaW1hdGlvbigpOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWM6OndpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbChjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRTY3Jv
bGxQb3NpdGlvbikKIHsKICAgICBtX2RlbGVnYXRlLndpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbCh0
YXJnZXRTY3JvbGxQb3NpdGlvbik7CkBAIC0xNTEsNyArMTUzLDcgQEAgRmxvYXRQb2ludCBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjphZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNv
bnN0IEZsb2EKIAogdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbiBhY3Rpb24pCiB7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjICIgPDwg
c2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkIHRvICIg
PDwgY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgPDwgIiBtaW46ICIgPDwgbWluaW11bVNjcm9sbFBv
c2l0aW9uKCkgPDwgIiBtYXg6ICIgPDwgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgPDwgIiBzeW5j
OiAiIDw8IGhhc1N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucygpIDw8ICIgaXMgYW5pbWF0aW5n
OiAiIDw8IHNjcm9sbGluZ1RyZWUoKS5pc0FuaW1hdGVkU2Nyb2xsSW5Qcm9ncmVzc0Zvck5vZGUo
c2Nyb2xsaW5nTm9kZUlEKCkpKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMgIiA8PCBzY3JvbGxpbmdO
b2RlSUQoKSA8PCAiIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQgdG8gIiA8PCBjdXJyZW50
U2Nyb2xsUG9zaXRpb24oKSA8PCAiIG1pbjogIiA8PCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSA8
PCAiIG1heDogIiA8PCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSA8PCAiIHN5bmM6ICIgPDwgaGFz
U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCkgPDwgIiBpcyBhbmltYXRpbmc6ICIgPDwgc2Ny
b2xsaW5nVHJlZSgpLmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0Zvck5vZGUoc2Nyb2xsaW5n
Tm9kZUlEKCkpKTsKIAogICAgIG1fZGVsZWdhdGUuY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaApp
bmRleCA3NzBjYzQ3YzE4MTFkZWQ3ZDk0NGQ1ODcxMTZmYTRlNjQ4MWNjZWVkLi42YjMxYWI4NDhi
NTk5NmNjNDNjMjQzZmI5NzA1NzZmNTVmNGE2NzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHJvdGVjdGVkOgog
CiAgICAgdm9pZCByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZXBvc2l0aW9uUmVsYXRlZExheWVycygpIG92ZXJyaWRlOworICAgIHZvaWQgc2VydmljZVNj
cm9sbEFuaW1hdGlvbigpIG92ZXJyaWRlOwogCiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0
IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRUYXJnZXRp
bmcpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTWFjLm1tCmluZGV4IDQxMGY2MGI4NWRiYjlmYTBiNzQ0ODFiZTkxY2M0YmYyZjM2NGE0ZGEu
LjE5NDc4ZDM2NzEzOWRkYzgwOGQyOTc3ZjUzMzdjZTExMDEyZDMyMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC04Nyw2ICs4NywxMSBA
QCB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnN0b3BBbmltYXRl
ZFNjcm9sbCgpCiAgICAgbV9kZWxlZ2F0ZS5zdG9wQW5pbWF0ZWRTY3JvbGwoKTsKIH0KIAordm9p
ZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpzZXJ2aWNlU2Nyb2xsQW5p
bWF0aW9uKCkKK3sKKyAgICBtX2RlbGVnYXRlLnNlcnZpY2VTY3JvbGxBbmltYXRpb24oKTsKK30K
Kwogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9n
cmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0U2Nyb2xsUG9zaXRpb24pCiB7
CiAgICAgbV9kZWxlZ2F0ZS53aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwodGFyZ2V0U2Nyb2xsUG9z
aXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgK
aW5kZXggNWQ4OTE1Y2IzNDU0YWFlZjAxNjAzMWYwNmNkNDYzYTA0Y2Q4MTA5MS4uMjgzNzhmMDNk
YzY0Y2UxMGE3MDk0YThkNjA4OWM0NjMxYjFiN2QxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAg
ICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQpIGZpbmFsOwog
ICAgIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CiAKKyAgICB2b2lkIHNlcnZpY2VT
Y3JvbGxBbmltYXRpb24oKSBmaW5hbDsKKwogICAgIHZvaWQgd2lsbERvUHJvZ3JhbW1hdGljU2Ny
b2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNo
YW5nZWQoKTsKIApAQCAtOTIsNyArOTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0U2Ny
b2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgZmluYWw7CiAKICAgICBib29sIHNjcm9s
bFBvc2l0aW9uSXNOb3RSdWJiZXJiYW5kaW5nRWRnZShjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7
Ci0gICAgdm9pZCBzY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJlZCgpOwogCiAgICAg
RmxvYXRQb2ludCBzY3JvbGxPZmZzZXQoKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdCBmaW5hbDsKQEAgLTExMSw4ICsxMTIsNiBAQCBwcml2YXRlOgogICAg
IFJldGFpblB0cjxOU1Njcm9sbGVySW1wPiBtX3ZlcnRpY2FsU2Nyb2xsZXJJbXA7CiAgICAgUmV0
YWluUHRyPE5TU2Nyb2xsZXJJbXA+IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wOwogCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFJ1bkxvb3A6OlRpbWVyPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM+PiBtX3Njcm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lcjsKLQogICAgIGJvb2wg
bV9pbk1vbWVudHVtUGhhc2UgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCAyYjcwZWE2YzkwYTMwNDg2Zjg5MDk3
MjRiOTU1NTk1Zjk3OGQ1NGM2Li5mYWM5YmY1ODQ0ZjJjMjRkMzc3Y2JiOWM3MGJlNDViMWU0YmE2
ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5t
bQpAQCAtMTg4LDYgKzE4OCw3IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0CiAKIHN0ZDo6dW5pcXVlX3B0
cjxTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlclRpbWVyPiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjpjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24p
CiB7CisgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGEgc2Nyb2xsIHNuYXAgdGltZXIuCiAg
ICAgcmV0dXJuIFdURjo6bWFrZVVuaXF1ZTxTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlclRpbWVy
PihSdW5Mb29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pLCBwcm90
ZWN0ZWROb2RlID0gUmVmIHsgc2Nyb2xsaW5nTm9kZSgpIH1dIHsKICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IHByb3RlY3RlZE5vZGUtPnNjcm9sbGluZ1RyZWUoKS50cmVlTG9jaygpIH07CiAgICAg
ICAgIGZ1bmN0aW9uKCk7CkBAIC0xOTYsMjIgKzE5NywxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Ny
b2xsaW5nRWZmZWN0c0NvbnRyb2xsZXJUaW1lcj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZwogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0
QW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXImKQogewotICAgIGlm
ICghbV9zY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXIpCi0gICAgICAgIG1fc2Nyb2xsQ29u
dHJvbGxlckFuaW1hdGlvblRpbWVyID0gV1RGOjptYWtlVW5pcXVlPFJ1bkxvb3A6OlRpbWVyPFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM+PihSdW5Mb29wOjpjdXJyZW50KCks
IHRoaXMsICZTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzY3JvbGxDb250
cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJlZCk7Ci0KLSAgICBpZiAobV9zY3JvbGxDb250cm9sbGVy
QW5pbWF0aW9uVGltZXItPmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2Ny
b2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyLT5zdGFydFJlcGVhdGluZygxX3MgLyA2MC4pOwor
ICAgIHNjcm9sbGluZ05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOwog
fQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0b3BBbmlt
YXRpb25DYWxsYmFjayhTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlciYpCiB7Ci0gICAgaWYgKG1f
c2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyKQotICAgICAgICBtX3Njcm9sbENvbnRyb2xs
ZXJBbmltYXRpb25UaW1lci0+c3RvcCgpOworICAgIHNjcm9sbGluZ05vZGUoKS5zZXRTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjpzY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJlZCgp
Cit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNlcnZpY2VTY3Jv
bGxBbmltYXRpb24oKQogewogICAgIG1fc2Nyb2xsQ29udHJvbGxlci5hbmltYXRpb25DYWxsYmFj
ayhNb25vdG9uaWNUaW1lOjpub3coKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVO
aWNvc2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuY3BwCmluZGV4IDUzNTM2MzcyYWE1
MTkwYmZkOWI2MmEyMTA3NDM0ZWMxNjg4ODdlODQuLjcyZWE0YjdhY2Y0MjczZTliYWE2ZmRkODQx
NjM3YmI1N2Q1NTNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuY3BwCkBAIC04NywxMSArODcsNiBAQCBXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29z
aWE6OmhhbmRsZVdoZWVsRQogICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6Omhh
bmRsZWQoKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmlj
b3NpYTo6YW5pbWF0aW9uVGltZXJGaXJlZCgpCi17Ci0gICAgbV9zY3JvbGxDb250cm9sbGVyLmFu
aW1hdGlvbkNhbGxiYWNrKE1vbm90b25pY1RpbWU6Om5vdygpKTsKLX0KLQogc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyVGltZXI+IFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYgZnVu
Y3Rpb24pCiB7CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xs
ZXJUaW1lcj4oUnVuTG9vcDo6Y3VycmVudCgpLCBbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9u
KSwgcHJvdGVjdGVkTm9kZSA9IFJlZiB7IHNjcm9sbGluZ05vZGUoKSB9XSB7CkBAIC0xMjQsNiAr
MTE5LDE2IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWE6
OnN0b3BBbmltYXRpb25DYWxsYmFjayhTY3JvbGxpbmdFCiAgICAgICAgIG1fYW5pbWF0aW9uVGlt
ZXItPnN0b3AoKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Tmljb3NpYTo6YW5pbWF0aW9uVGltZXJGaXJlZCgpCit7CisgICAgbV9zY3JvbGxDb250cm9sbGVy
LmFuaW1hdGlvbkNhbGxiYWNrKE1vbm90b25pY1RpbWU6Om5vdygpKTsKK30KKwordm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYTo6c2VydmljZVNjcm9sbEFuaW1h
dGlvbigpCit7CisgICAgLy8gRklYTUU6IEluc3RlYWQgb2YgdXNpbmcgbV9hbmltYXRpb25UaW1l
ciwgZHJpdmUgYW5pbWF0aW9ucyB2aWEgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpzZXJ2aWNlU2Ny
b2xsQW5pbWF0aW9ucygpLgorfQorCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVOaWNvc2lhOjphbGxvd3NIb3Jpem9udGFsU2Nyb2xsaW5nKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZTo6YWxsb3dzSG9yaXpvbnRh
bFNjcm9sbGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTmljb3NpYS5oCmluZGV4IGJiNDI1ZDhjNmUyMDM0MzhmYjI2MDYzZDI2ZGNj
MzZiMWEzMDkzNzcuLjgxZWNjZGQ4NTVhNjNmMzA3YzNjNWE1MDMyMWQ0YWFiY2EzNjJiY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVO
aWNvc2lhLmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIGJvb2wgc3RhcnRBbmltYXRl
ZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkgZmluYWw7CiAgICAgdm9pZCBzdG9wQW5pbWF0
ZWRTY3JvbGwoKSBmaW5hbDsKIAorICAgIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbigpIGZp
bmFsOworCiBwcml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5oCmluZGV4IDk5ZDRmNDZhMWFiNDNiMjk3MzQwOGMzMzNhZmFhMDk4ODk1ZDQ2N2EuLmI2
YmRkZTc2NjNhNjBjZDM0ZWE0ZDNhMzYyZDJkOTk3NWQxMjQwODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBA
IC04MSw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bv
c2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQpIGZpbmFsOwogICAgIHZvaWQgc3RvcEFuaW1hdGVk
U2Nyb2xsKCkgZmluYWw7CiAKKyAgICB2b2lkIHNlcnZpY2VTY3JvbGxBbmltYXRpb24oKSBmaW5h
bCB7IH0KKwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9zY3JvbGxMYXllcjsK
ICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXgg
ZWQ0ZjUzODg3OWE3NDUxMTQ5MmE0ZmE3OGFjYzkzZDRhMzQyZWE3YS4uMWYzY2FhOTQzNmZmYTA5
OWVmMjM0ZTkwZGViNTg5MGNjZGM1NDE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5tbQpAQCAtNDgsNiArNDgsOCBAQCB2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpwYWdlRGVzdHJveWVkKCkKIAog
dm9pZCBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcjo6aGFzTm9kZVdpdGhB
bmltYXRlZFNjcm9sbENoYW5nZWQoYm9vbCBoYXZlQW5pbWF0ZWRTY3JvbGxpbmdOb2RlcykKIHsK
KyAgICBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aGFzTm9kZVdpdGhBbmltYXRlZFNjcm9sbENo
YW5nZWQoaGF2ZUFuaW1hdGVkU2Nyb2xsaW5nTm9kZXMpOworCiAgICAgaWYgKCFtX3BhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>