<?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>228577</bug_id>
          
          <creation_ts>2021-07-28 22:02:57 -0700</creation_ts>
          <short_desc>Make it possible to cancel an EventLoopTask and use in HTMLDetailsElement</short_desc>
          <delta_ts>2022-01-19 21:21:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228863</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ntim</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780310</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-28 22:02:57 -0700</bug_when>
    <thetext>Add an identifier for each task so that we can use it to cancel the task later.
Migrate HTMLDetailsElement&apos;s toggle event to the event loop using that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780313</commentid>
    <comment_count>1</comment_count>
      <attachid>434494</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-28 22:18:44 -0700</bug_when>
    <thetext>Created attachment 434494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780317</commentid>
    <comment_count>2</comment_count>
      <attachid>434496</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-28 22:52:55 -0700</bug_when>
    <thetext>Created attachment 434496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780335</commentid>
    <comment_count>3</comment_count>
      <attachid>434504</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-29 02:04:12 -0700</bug_when>
    <thetext>Created attachment 434504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780342</commentid>
    <comment_count>4</comment_count>
      <attachid>434509</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-29 03:15:02 -0700</bug_when>
    <thetext>Created attachment 434509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780407</commentid>
    <comment_count>5</comment_count>
      <attachid>434509</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-29 09:47:25 -0700</bug_when>
    <thetext>Comment on attachment 434509
Patch

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

&gt; Source/WebCore/dom/EventLoop.h:76
&gt; +    enum class TaskIdentifier : uint64_t { Invalid = 0 };

Is there a reason not to use ObjectIdentifier&lt;&gt; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780578</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-29 14:49:56 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Comment on attachment 434509 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434509&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/EventLoop.h:76
&gt; &gt; +    enum class TaskIdentifier : uint64_t { Invalid = 0 };
&gt; 
&gt; Is there a reason not to use ObjectIdentifier&lt;&gt; ?

ObjectIdentifier will increase the size of EventLoopTask by 8 bytes. I&apos;m avoiding that by using the combination of the pointer value &amp; 16-bit salting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782139</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-04 22:03:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/81549670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831994</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-01-19 05:19:52 -0800</bug_when>
    <thetext>Does bug 228863 somewhat solve this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832346</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-19 21:21:06 -0800</bug_when>
    <thetext>(In reply to Tim Nguyen (:ntim) from comment #8)
&gt; Does bug 228863 somewhat solve this?

It doesn&apos;t since the main point of this patch is to add the ability to cancel a task in the event loop but Chris sort of fixed that by adding CancelableTask in https://trac.webkit.org/r278543.

Let&apos;s defer this to later.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434494</attachid>
            <date>2021-07-28 22:18:44 -0700</date>
            <delta_ts>2021-07-28 22:52:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228577-20210728221843.patch</filename>
            <type>text/plain</type>
            <size>12427</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1NzMwOWNiMjZjMzY4
MmEyMjZlZmU4ZjU0Y2U3N2E5ZGFiMDExYi4uMWRiY2YwZDA2NGEwZWQwOTI1ZTgxNGUzNGY2OTg3
MzMxMTYwNzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA3LTI4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gY2FuY2VsIGFuIEV2ZW50TG9vcFRhc2sgYW5kIHVzZSBpbiBIVE1MRGV0YWlsc0VsZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlcyBhIHVpbnQ2NF90IGlkZW50aWZpZXIgZm9yIGVhY2ggZXZlbnQgbG9vcCB0
YXNrIGFuZCBhIG1lbWJlciBmdW5jdGlvbiBpbiBFdmVudExvb3AgYW5kCisgICAgICAgIEV2ZW50
TG9vcFRhc2tHcm91cCB0byBjYW5jZWwgdGhlIHRhc2sgdXNpbmcgdGhlIGlkZW50aWZpZXIsIGFu
ZCBkZXBsb3lzIGl0IGluIEhUTUxEZXRhaWxzRWxlbWVudCB0byBtaWdyYXRlCisgICAgICAgIEhU
TUxEZXRhaWxzRWxlbWVudCdzIHRvZ2dsZSBldmVudCB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBvYnNl
cnZhYmxlIGJlaGF2aW9yIGRpZmZlcmVuY2VzIGJleW9uZCB0aGUgZXZlbnQgbG9vcCBpbnRlZ3Jh
dGlvbi4KKworICAgICAgICAqIGRvbS9FdmVudExvb3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjppZGVudGlmaWVyRm9yVGFzayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjpxdWV1ZVRhc2spOiBSZXR1cm4gdGhlIGlkZW50aWZpZXIuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3A6OmNhbmNlbFRhc2spOiBBZGRlZC4gQ2FuY2VscyB0aGUgc3BlY2lm
aWVkIHRhc2suCisgICAgICAgIChXZWJDb3JlOjpFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlVGFz
ayk6IFJldHVybnMgdGhlIGluZGVudGlmaWVyLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29w
VGFza0dyb3VwOjpjYW5jZWxUYXNrKTogQWRkZWQuIENhbmNlbHMgdGhlIHNwZWNpZmllZCB0YXNr
LgorICAgICAgICAqIGRvbS9FdmVudExvb3AuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRhaWxUb2dnbGVFdmVudFNlbmRlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6On5IVE1MRGV0
YWlsc0VsZW1lbnQpOiBVc2UgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiBub3cgdGhhdCB3ZSBkb24n
dCBoYXZlIHRvCisgICAgICAgIGV4cGxpY2l0bHkgY2FuY2VsIHRoZSB0YXNrLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6aXNBY3RpdmVTdW1tYXJ5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6ZGlzcGF0Y2hQZW5k
aW5nRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoK
KwogMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCBp
bnZhbGlkIHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3Au
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKaW5kZXggZjFlMTQwMTliZGU4
NzY5NjM4NTVlYTI0ZWZkMmRlYmRjMTZiYWI2Zi4uODZlYzM4Y2VmMWNiNTQzZTNlNzdiMTZhYmNh
MDI4M2Y2NTVkNjY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKQEAgLTMwLDEzICszMCwz
MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgRXZlbnRMb29wOjpxdWV1ZVRhc2so
c3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYgdGFzaykKK2F1dG8gRXZlbnRMb29wOjpp
ZGVudGlmaWVyRm9yVGFzayhFdmVudExvb3BUYXNrJiB0YXNrKSAtPiBUYXNrSWRlbnRpZmllcgor
eworICAgIENvbXBhY3RQb2ludGVyVHVwbGU8RXZlbnRMb29wVGFzayosIHVpbnQxNl90PiBwb2lu
dGVyV2l0aFNhbHQgPSB7ICZ0YXNrLCB0YXNrLm1faWRlbnRpZmllclNhbHQgfTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RXZlbnRMb29wOjpUYXNrSWRlbnRpZmllcj4ocG9pbnRlcldpdGhTYWx0
LmRhdGEoKSk7Cit9CisKK2F1dG8gRXZlbnRMb29wOjpxdWV1ZVRhc2soc3RkOjp1bmlxdWVfcHRy
PEV2ZW50TG9vcFRhc2s+JiYgdGFzaykgLT4gVGFza0lkZW50aWZpZXIKIHsKICAgICBBU1NFUlQo
dGFzay0+dGFza1NvdXJjZSgpICE9IFRhc2tTb3VyY2U6Ok1pY3JvdGFzayk7CiAgICAgQVNTRVJU
KHRhc2stPmdyb3VwKCkpOwogICAgIEFTU0VSVChpc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgc2No
ZWR1bGVUb1J1bklmTmVlZGVkKCk7CisgICAgYXV0byBzYWx0ID0gKyttX2N1cnJlbnRUYXNrSWRl
bnRpZmllclNhbHQ7CisgICAgaWYgKFVOTElLRUxZKCFzYWx0KSkgLy8gQWxsb3cgbV9jdXJyZW50
VGFza0lkZW50aWZpZXJTYWx0IHRvIG92ZXJmbG93ICYgd3JhcCBhcm91bmQgYnV0IG5vdCB6ZXJv
LgorICAgICAgICBzYWx0ID0gKyttX2N1cnJlbnRUYXNrSWRlbnRpZmllclNhbHQ7CisgICAgdGFz
ay0+bV9pZGVudGlmaWVyU2FsdCA9IHNhbHQ7CisgICAgYXV0byBpZGVudGlmaWVyID0gaWRlbnRp
ZmllckZvclRhc2soKnRhc2spOwogICAgIG1fdGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOwor
ICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitib29sIEV2ZW50TG9vcDo6Y2FuY2VsVGFzayhU
YXNrSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIC8vIEZJWE1FOiBDb25zaWRlciBhIG1v
cmUgZWZmaWNpZW50IGFwcHJvYWNoIHdoZW4gdGhlcmUgaXMgYSBsb3Qgb2YgdGFza3MuCisgICAg
cmV0dXJuIG1fdGFza3MucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0oYXV0byYgdGFzaykgeworICAg
ICAgICByZXR1cm4gaWRlbnRpZmllckZvclRhc2soKnRhc2spID09IGlkZW50aWZpZXI7CisgICAg
fSk7CiB9CiAKIHZvaWQgRXZlbnRMb29wOjpxdWV1ZU1pY3JvdGFzayhzdGQ6OnVuaXF1ZV9wdHI8
RXZlbnRMb29wVGFzaz4mJiBtaWNyb3Rhc2spCkBAIC0xNDAsMTIgKzE2MCwxMiBAQCB2b2lkIEV2
ZW50TG9vcDo6Y2xlYXJBbGxUYXNrcygpCiAgICAgbV9ncm91cHNXaXRoU3VzcGVuZWRUYXNrcy5j
bGVhcigpOwogfQogCi12b2lkIEV2ZW50TG9vcFRhc2tHcm91cDo6cXVldWVUYXNrKHN0ZDo6dW5p
cXVlX3B0cjxFdmVudExvb3BUYXNrPiYmIHRhc2spCithdXRvIEV2ZW50TG9vcFRhc2tHcm91cDo6
cXVldWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmIHRhc2spIC0+IFRhc2tJ
ZGVudGlmaWVyCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwZWQgfHwgIW1fZXZl
bnRMb29wKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBUYXNrSWRlbnRpZmllcjo6
SW52YWxpZDsKICAgICBBU1NFUlQodGFzay0+Z3JvdXAoKSA9PSB0aGlzKTsKLSAgICBtX2V2ZW50
TG9vcC0+cXVldWVUYXNrKFdURk1vdmUodGFzaykpOworICAgIHJldHVybiBtX2V2ZW50TG9vcC0+
cXVldWVUYXNrKFdURk1vdmUodGFzaykpOwogfQogCiBjbGFzcyBFdmVudExvb3BGdW5jdGlvbkRp
c3BhdGNoVGFzayA6IHB1YmxpYyBFdmVudExvb3BUYXNrIHsKQEAgLTE2MiwxMSArMTgyLDE5IEBA
IHByaXZhdGU6CiAgICAgRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24gbV9mdW5jdGlvbjsKIH07CiAK
LXZvaWQgRXZlbnRMb29wVGFza0dyb3VwOjpxdWV1ZVRhc2soVGFza1NvdXJjZSBzb3VyY2UsIEV2
ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYgZnVuY3Rpb24pCithdXRvIEV2ZW50TG9vcFRhc2tHcm91
cDo6cXVldWVUYXNrKFRhc2tTb3VyY2Ugc291cmNlLCBFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYm
IGZ1bmN0aW9uKSAtPiBUYXNrSWRlbnRpZmllcgogewogICAgIHJldHVybiBxdWV1ZVRhc2sobWFr
ZVVuaXF1ZTxFdmVudExvb3BGdW5jdGlvbkRpc3BhdGNoVGFzaz4oc291cmNlLCAqdGhpcywgV1RG
TW92ZShmdW5jdGlvbikpKTsKIH0KIAorYm9vbCBFdmVudExvb3BUYXNrR3JvdXA6OmNhbmNlbFRh
c2soVGFza0lkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGV2ZW50TG9vcCA9IG1h
a2VSZWZQdHIobV9ldmVudExvb3AuZ2V0KCkpOworICAgIGlmICghZXZlbnRMb29wKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGV2ZW50TG9vcC0+Y2FuY2VsVGFzayhpZGVudGlm
aWVyKTsKK30KKwogdm9pZCBFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlTWljcm90YXNrKEV2ZW50
TG9vcDo6VGFza0Z1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gU3Rh
dGU6OlN0b3BwZWQgfHwgIW1fZXZlbnRMb29wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TG9vcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCmluZGV4IGJh
NDYyNWFiZDZjOWNhNzE4MTlkMzg0NTI3NWIwZWM2ZjEzNjEzNjIuLjk2OGYwMWFiZGE4MWFkM2Iy
NzQzMDZhOWMwOGJhNzc0NmFlNWVmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudExvb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMb29wLmgKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIlRhc2tTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrSGFzaFNldC5oPgpAQCAtNTgsNyArNTksMTEgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRl
OgogICAgIGNvbnN0IFRhc2tTb3VyY2UgbV90YXNrU291cmNlOworICAgIC8vIEZyZWUgOCBiaXRz
LgorICAgIHVpbnQxNl90IG1faWRlbnRpZmllclNhbHQ7IC8vIEF2b2lkcyByZWFsbG9jYXRpb24g
b2YgdGhlIHNhbWUgbWVtb3J5IGFkZHJlc3MgdG8gZXJyb25lb3VzbHkgaWRlbnRpZnlpbmcgdGhl
IHNhbWUgdGFzay4KICAgICBXZWFrUHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9ncm91cDsKKwor
ICAgIGZyaWVuZCBjbGFzcyBFdmVudExvb3A7CiB9OwogCiAvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZXZlbnQtbG9vcApAQCAtNjcsNyAr
NzIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkV2ZW50TG9vcCgpID0gZGVmYXVsdDsKIAog
ICAgIHR5cGVkZWYgRnVuY3Rpb248dm9pZCAoKT4gVGFza0Z1bmN0aW9uOwotICAgIHZvaWQgcXVl
dWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmKTsKKworICAgIGVudW0gY2xh
c3MgVGFza0lkZW50aWZpZXIgOiB1aW50NjRfdCB7IEludmFsaWQgPSAwIH07CisKKyAgICBUYXNr
SWRlbnRpZmllciBxdWV1ZVRhc2soc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYpOwor
ICAgIGJvb2wgY2FuY2VsVGFzayhUYXNrSWRlbnRpZmllcik7CiAKICAgICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcXVldWUtYS1taWNy
b3Rhc2sKICAgICB2b2lkIHF1ZXVlTWljcm90YXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BU
YXNrPiYmKTsKQEAgLTg5LDYgKzk4LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJBbGxU
YXNrcygpOwogCiBwcml2YXRlOgorICAgIFRhc2tJZGVudGlmaWVyIGlkZW50aWZpZXJGb3JUYXNr
KEV2ZW50TG9vcFRhc2smKTsKKwogICAgIHZvaWQgc2NoZWR1bGVUb1J1bklmTmVlZGVkKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVG9SdW4oKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlz
Q29udGV4dFRocmVhZCgpIGNvbnN0ID0gMDsKQEAgLTk4LDYgKzEwOSw3IEBAIHByaXZhdGU6CiAg
ICAgV2Vha0hhc2hTZXQ8RXZlbnRMb29wVGFza0dyb3VwPiBtX2Fzc29jaWF0ZWRHcm91cHM7CiAg
ICAgV2Vha0hhc2hTZXQ8RXZlbnRMb29wVGFza0dyb3VwPiBtX2dyb3Vwc1dpdGhTdXNwZW5lZFRh
c2tzOwogICAgIGJvb2wgbV9pc1NjaGVkdWxlZFRvUnVuIHsgZmFsc2UgfTsKKyAgICB1aW50MTZf
dCBtX2N1cnJlbnRUYXNrSWRlbnRpZmllclNhbHQgeyAxIH07CiB9OwogCiBjbGFzcyBFdmVudExv
b3BUYXNrR3JvdXAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RXZlbnRMb29wVGFza0dyb3VwPiB7
CkBAIC0xNzIsOCArMTg0LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzU3VzcGVuZGVkKCkgeyBy
ZXR1cm4gbV9zdGF0ZSA9PSBTdGF0ZTo6U3VzcGVuZGVkOyB9CiAgICAgYm9vbCBpc1JlYWR5VG9T
dG9wKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSA9PSBTdGF0ZTo6UmVhZHlUb1N0b3A7IH0KIAot
ICAgIHZvaWQgcXVldWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHF1ZXVlVGFzayhUYXNrU291cmNlLCBFdmVudExvb3A6OlRh
c2tGdW5jdGlvbiYmKTsKKyAgICB1c2luZyBUYXNrSWRlbnRpZmllciA9IEV2ZW50TG9vcDo6VGFz
a0lkZW50aWZpZXI7CisKKyAgICBUYXNrSWRlbnRpZmllciBxdWV1ZVRhc2soc3RkOjp1bmlxdWVf
cHRyPEV2ZW50TG9vcFRhc2s+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFRhc2tJZGVudGlmaWVy
IHF1ZXVlVGFzayhUYXNrU291cmNlLCBFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYmKTsKKyAgICBi
b29sIGNhbmNlbFRhc2soVGFza0lkZW50aWZpZXIpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBxdWV1ZUNhbmNlbGFibGVUYXNrKFRhc2tTb3VyY2UsIEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9u
JiYpOwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vi
YXBwYXBpcy5odG1sI3F1ZXVlLWEtbWljcm90YXNrCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBx
dWV1ZU1pY3JvdGFzayhFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCAwN2NiMTY0YWVlMWFlMDgxNmJjZDE1
NjQ0MzQzOGRlMGVmNTY5MGFiLi41NjhiNjVkMTBjZGI3NTMwZGM3NGU0NWU4MDQ5ZGQ4ZWIxYTY1
NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0y
NSw3ICsyNSw2IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJFdmVudFNl
bmRlci5oIgogI2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdW1t
YXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTQzLDEyICs0
Miw2IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MRGV0YWlsc0VsZW1lbnQpOwog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgRGV0YWlsRXZlbnRTZW5kZXIm
IGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
RGV0YWlsRXZlbnRTZW5kZXI+IHNoYXJlZFRvZ2dsZUV2ZW50U2VuZGVyKGV2ZW50TmFtZXMoKS50
b2dnbGVFdmVudCk7Ci0gICAgcmV0dXJuIHNoYXJlZFRvZ2dsZUV2ZW50U2VuZGVyOwotfQotCiBz
dGF0aWMgY29uc3QgQXRvbVN0cmluZyYgc3VtbWFyeVNsb3ROYW1lKCkKIHsKICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1bW1hcnlTbG90KCJz
dW1tYXJ5U2xvdCIpOwpAQCAtOTgsMTAgKzkxLDcgQEAgSFRNTERldGFpbHNFbGVtZW50OjpIVE1M
RGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGQK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShkZXRhaWxzVGFnKSk7CiB9CiAKLUhUTUxEZXRhaWxzRWxl
bWVudDo6fkhUTUxEZXRhaWxzRWxlbWVudCgpCi17Ci0gICAgZGV0YWlsVG9nZ2xlRXZlbnRTZW5k
ZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7Ci19CitIVE1MRGV0YWlsc0VsZW1lbnQ6On5IVE1MRGV0
YWlsc0VsZW1lbnQoKSA9IGRlZmF1bHQ7CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
RGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewpAQCAtMTEyLDExICsxMDIsMTEgQEAgdm9p
ZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9v
dCYgcm9vdCkKIHsKICAgICBhdXRvIHN1bW1hcnlTbG90ID0gSFRNTFNsb3RFbGVtZW50OjpjcmVh
dGUoc2xvdFRhZywgZG9jdW1lbnQoKSk7CiAgICAgc3VtbWFyeVNsb3QtPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24obmFtZUF0dHIsIHN1bW1hcnlTbG90TmFtZSgpKTsKLSAgICBt
X3N1bW1hcnlTbG90ID0gc3VtbWFyeVNsb3QucHRyKCk7CisgICAgbV9zdW1tYXJ5U2xvdCA9IG1h
a2VXZWFrUHRyKHN1bW1hcnlTbG90KTsKIAogICAgIGF1dG8gZGVmYXVsdFN1bW1hcnkgPSBIVE1M
U3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCgpKTsKICAgICBkZWZh
dWx0U3VtbWFyeS0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIGRlZmF1bHRE
ZXRhaWxzU3VtbWFyeVRleHQoKSkpOwotICAgIG1fZGVmYXVsdFN1bW1hcnkgPSBkZWZhdWx0U3Vt
bWFyeS5wdHIoKTsKKyAgICBtX2RlZmF1bHRTdW1tYXJ5ID0gbWFrZVdlYWtQdHIoZGVmYXVsdFN1
bW1hcnkpOwogCiAgICAgc3VtbWFyeVNsb3QtPmFwcGVuZENoaWxkKGRlZmF1bHRTdW1tYXJ5KTsK
ICAgICByb290LmFwcGVuZENoaWxkKHN1bW1hcnlTbG90KTsKQEAgLTEzNiwxMyArMTI2LDcgQEAg
Ym9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3VtbWFy
eUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICBhdXRvIHNsb3QgPSBtYWtlUmVmUHRyKHNoYWRv
d1Jvb3QoKS0+ZmluZEFzc2lnbmVkU2xvdChzdW1tYXJ5KSk7CiAgICAgaWYgKCFzbG90KQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHNsb3QgPT0gbV9zdW1tYXJ5U2xvdDsKLX0K
LQotdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmRpc3BhdGNoUGVuZGluZ0V2ZW50KERldGFpbEV2
ZW50U2VuZGVyKiBldmVudFNlbmRlcikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGV2ZW50U2VuZGVy
LCBldmVudFNlbmRlciA9PSAmZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKSk7Ci0gICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS50b2dnbGVFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisgICAgcmV0dXJuIHNsb3Qg
PT0gbV9zdW1tYXJ5U2xvdC5nZXQoKTsKIH0KIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQpAQCAtMTU5LDggKzE0MywxMiBAQCB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAg
ICAgICAgICAgICAgIHJvb3QtPnJlbW92ZUNoaWxkKCptX2RlZmF1bHRTbG90KTsKIAogICAgICAg
ICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZGV0YWlscy1ub3RpZmljYXRp
b24tdGFzay1zdGVwcy4KLSAgICAgICAgICAgIGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkuY2Fu
Y2VsRXZlbnQoKnRoaXMpOwotICAgICAgICAgICAgZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKS5k
aXNwYXRjaEV2ZW50U29vbigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9vcGVuRXZlbnRUYXNr
ICE9IEV2ZW50TG9vcDo6VGFza0lkZW50aWZpZXI6OkludmFsaWQpCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5jYW5jZWxUYXNrKG1fb3BlbkV2ZW50VGFzayk7CisKKyAg
ICAgICAgICAgIG1fb3BlbkV2ZW50VGFzayA9IGRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVU
YXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3Byb3RlY3RlZFRoaXMgPSBHQ1JlYWNo
YWJsZVJlZiB7ICp0aGlzIH1dKCkgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudG9nZ2xlRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5oCmluZGV4IGEwZTAxMDVlZDJkZTA1ZWYzNWI1MGFhZGRjZWJmMTMzNTBjMWU5NmUuLjdkY2I4
ZWEzNzNiOTFhODAwMTAzNjA0ZGEwZTM0OTNhMDZiMTM5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtMjEsMTUgKzIxLDEzIEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIEV2ZW50U2VuZGVyOwotdXNpbmcgRGV0YWlsRXZlbnRTZW5kZXIg
PSBFdmVudFNlbmRlcjxIVE1MRGV0YWlsc0VsZW1lbnQ+OwotCiBjbGFzcyBIVE1MRGV0YWlsc0Vs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoSFRNTERldGFpbHNFbGVtZW50KTsKIHB1YmxpYzoKQEAgLTQwLDggKzM4LDYgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBpc09wZW4oKSBjb25zdCB7IHJldHVybiBtX2lzT3BlbjsgfQogICAg
IGJvb2wgaXNBY3RpdmVTdW1tYXJ5KGNvbnN0IEhUTUxTdW1tYXJ5RWxlbWVudCYpIGNvbnN0Owot
Ci0gICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdFdmVudChEZXRhaWxFdmVudFNlbmRlciopOwogICAg
IAogcHJpdmF0ZToKICAgICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CkBAIC01NCw5ICs1MCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNJbnRl
cmFjdGl2ZUNvbnRlbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29s
IG1faXNPcGVuIHsgZmFsc2UgfTsKLSAgICBIVE1MU2xvdEVsZW1lbnQqIG1fc3VtbWFyeVNsb3Qg
eyBudWxscHRyIH07Ci0gICAgSFRNTFN1bW1hcnlFbGVtZW50KiBtX2RlZmF1bHRTdW1tYXJ5IHsg
bnVsbHB0ciB9OworICAgIFdlYWtQdHI8SFRNTFNsb3RFbGVtZW50PiBtX3N1bW1hcnlTbG90Owor
ICAgIFdlYWtQdHI8SFRNTFN1bW1hcnlFbGVtZW50PiBtX2RlZmF1bHRTdW1tYXJ5OwogICAgIFJl
ZlB0cjxIVE1MU2xvdEVsZW1lbnQ+IG1fZGVmYXVsdFNsb3Q7CisgICAgRXZlbnRMb29wOjpUYXNr
SWRlbnRpZmllciBtX29wZW5FdmVudFRhc2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434496</attachid>
            <date>2021-07-28 22:52:55 -0700</date>
            <delta_ts>2021-07-29 02:04:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228577-20210728225255.patch</filename>
            <type>text/plain</type>
            <size>12516</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1NzMwOWNiMjZjMzY4
MmEyMjZlZmU4ZjU0Y2U3N2E5ZGFiMDExYi4uMWRiY2YwZDA2NGEwZWQwOTI1ZTgxNGUzNGY2OTg3
MzMxMTYwNzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA3LTI4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gY2FuY2VsIGFuIEV2ZW50TG9vcFRhc2sgYW5kIHVzZSBpbiBIVE1MRGV0YWlsc0VsZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlcyBhIHVpbnQ2NF90IGlkZW50aWZpZXIgZm9yIGVhY2ggZXZlbnQgbG9vcCB0
YXNrIGFuZCBhIG1lbWJlciBmdW5jdGlvbiBpbiBFdmVudExvb3AgYW5kCisgICAgICAgIEV2ZW50
TG9vcFRhc2tHcm91cCB0byBjYW5jZWwgdGhlIHRhc2sgdXNpbmcgdGhlIGlkZW50aWZpZXIsIGFu
ZCBkZXBsb3lzIGl0IGluIEhUTUxEZXRhaWxzRWxlbWVudCB0byBtaWdyYXRlCisgICAgICAgIEhU
TUxEZXRhaWxzRWxlbWVudCdzIHRvZ2dsZSBldmVudCB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBvYnNl
cnZhYmxlIGJlaGF2aW9yIGRpZmZlcmVuY2VzIGJleW9uZCB0aGUgZXZlbnQgbG9vcCBpbnRlZ3Jh
dGlvbi4KKworICAgICAgICAqIGRvbS9FdmVudExvb3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjppZGVudGlmaWVyRm9yVGFzayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjpxdWV1ZVRhc2spOiBSZXR1cm4gdGhlIGlkZW50aWZpZXIuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3A6OmNhbmNlbFRhc2spOiBBZGRlZC4gQ2FuY2VscyB0aGUgc3BlY2lm
aWVkIHRhc2suCisgICAgICAgIChXZWJDb3JlOjpFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlVGFz
ayk6IFJldHVybnMgdGhlIGluZGVudGlmaWVyLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29w
VGFza0dyb3VwOjpjYW5jZWxUYXNrKTogQWRkZWQuIENhbmNlbHMgdGhlIHNwZWNpZmllZCB0YXNr
LgorICAgICAgICAqIGRvbS9FdmVudExvb3AuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRhaWxUb2dnbGVFdmVudFNlbmRlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6On5IVE1MRGV0
YWlsc0VsZW1lbnQpOiBVc2UgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiBub3cgdGhhdCB3ZSBkb24n
dCBoYXZlIHRvCisgICAgICAgIGV4cGxpY2l0bHkgY2FuY2VsIHRoZSB0YXNrLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6aXNBY3RpdmVTdW1tYXJ5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6ZGlzcGF0Y2hQZW5k
aW5nRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoK
KwogMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCBp
bnZhbGlkIHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3Au
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKaW5kZXggZjFlMTQwMTliZGU4
NzY5NjM4NTVlYTI0ZWZkMmRlYmRjMTZiYWI2Zi4uYWJjMTY2ZWQ5OGM5Mjk1OGZlNjM0MWE5MTNh
ZGU4ODQ1YTYwYjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKQEAgLTI3LDE2ICsyNywz
NyBAQAogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogCiAjaW5jbHVkZSAiTWljcm90YXNrcy5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wYWN0UG9pbnRlclR1cGxlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBFdmVudExvb3A6OnF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29w
VGFzaz4mJiB0YXNrKQorYXV0byBFdmVudExvb3A6OmlkZW50aWZpZXJGb3JUYXNrKEV2ZW50TG9v
cFRhc2smIHRhc2spIC0+IFRhc2tJZGVudGlmaWVyCit7CisgICAgQ29tcGFjdFBvaW50ZXJUdXBs
ZTxFdmVudExvb3BUYXNrKiwgdWludDE2X3Q+IHBvaW50ZXJXaXRoU2FsdCA9IHsgJnRhc2ssIHRh
c2subV9pZGVudGlmaWVyU2FsdCB9OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmVudExvb3A6
OlRhc2tJZGVudGlmaWVyPihwb2ludGVyV2l0aFNhbHQuZGF0YSgpKTsKK30KKworYXV0byBFdmVu
dExvb3A6OnF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJiB0YXNrKSAt
PiBUYXNrSWRlbnRpZmllcgogewogICAgIEFTU0VSVCh0YXNrLT50YXNrU291cmNlKCkgIT0gVGFz
a1NvdXJjZTo6TWljcm90YXNrKTsKICAgICBBU1NFUlQodGFzay0+Z3JvdXAoKSk7CiAgICAgQVNT
RVJUKGlzQ29udGV4dFRocmVhZCgpKTsKICAgICBzY2hlZHVsZVRvUnVuSWZOZWVkZWQoKTsKKyAg
ICBhdXRvIHNhbHQgPSArK21fY3VycmVudFRhc2tJZGVudGlmaWVyU2FsdDsKKyAgICBpZiAoVU5M
SUtFTFkoIXNhbHQpKSAvLyBBbGxvdyBtX2N1cnJlbnRUYXNrSWRlbnRpZmllclNhbHQgdG8gb3Zl
cmZsb3cgJiB3cmFwIGFyb3VuZCBidXQgbm90IHplcm8uCisgICAgICAgIHNhbHQgPSArK21fY3Vy
cmVudFRhc2tJZGVudGlmaWVyU2FsdDsKKyAgICB0YXNrLT5tX2lkZW50aWZpZXJTYWx0ID0gc2Fs
dDsKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyRm9yVGFzaygqdGFzayk7CiAgICAg
bV90YXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CisgICAgcmV0dXJuIGlkZW50aWZpZXI7Cit9
CisKK2Jvb2wgRXZlbnRMb29wOjpjYW5jZWxUYXNrKFRhc2tJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgLy8gRklYTUU6IENvbnNpZGVyIGEgbW9yZSBlZmZpY2llbnQgYXBwcm9hY2ggd2hl
biB0aGVyZSBpcyBhIGxvdCBvZiB0YXNrcy4KKyAgICByZXR1cm4gbV90YXNrcy5yZW1vdmVGaXJz
dE1hdGNoaW5nKFsmXShhdXRvJiB0YXNrKSB7CisgICAgICAgIHJldHVybiBpZGVudGlmaWVyRm9y
VGFzaygqdGFzaykgPT0gaWRlbnRpZmllcjsKKyAgICB9KTsKIH0KIAogdm9pZCBFdmVudExvb3A6
OnF1ZXVlTWljcm90YXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmIG1pY3JvdGFz
aykKQEAgLTE0MCwxMiArMTYxLDEyIEBAIHZvaWQgRXZlbnRMb29wOjpjbGVhckFsbFRhc2tzKCkK
ICAgICBtX2dyb3Vwc1dpdGhTdXNwZW5lZFRhc2tzLmNsZWFyKCk7CiB9CiAKLXZvaWQgRXZlbnRM
b29wVGFza0dyb3VwOjpxdWV1ZVRhc2soc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYg
dGFzaykKK2F1dG8gRXZlbnRMb29wVGFza0dyb3VwOjpxdWV1ZVRhc2soc3RkOjp1bmlxdWVfcHRy
PEV2ZW50TG9vcFRhc2s+JiYgdGFzaykgLT4gVGFza0lkZW50aWZpZXIKIHsKICAgICBpZiAobV9z
dGF0ZSA9PSBTdGF0ZTo6U3RvcHBlZCB8fCAhbV9ldmVudExvb3ApCi0gICAgICAgIHJldHVybjsK
KyAgICAgICAgcmV0dXJuIFRhc2tJZGVudGlmaWVyOjpJbnZhbGlkOwogICAgIEFTU0VSVCh0YXNr
LT5ncm91cCgpID09IHRoaXMpOwotICAgIG1fZXZlbnRMb29wLT5xdWV1ZVRhc2soV1RGTW92ZSh0
YXNrKSk7CisgICAgcmV0dXJuIG1fZXZlbnRMb29wLT5xdWV1ZVRhc2soV1RGTW92ZSh0YXNrKSk7
CiB9CiAKIGNsYXNzIEV2ZW50TG9vcEZ1bmN0aW9uRGlzcGF0Y2hUYXNrIDogcHVibGljIEV2ZW50
TG9vcFRhc2sgewpAQCAtMTYyLDExICsxODMsMTkgQEAgcHJpdmF0ZToKICAgICBFdmVudExvb3A6
OlRhc2tGdW5jdGlvbiBtX2Z1bmN0aW9uOwogfTsKIAotdm9pZCBFdmVudExvb3BUYXNrR3JvdXA6
OnF1ZXVlVGFzayhUYXNrU291cmNlIHNvdXJjZSwgRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24mJiBm
dW5jdGlvbikKK2F1dG8gRXZlbnRMb29wVGFza0dyb3VwOjpxdWV1ZVRhc2soVGFza1NvdXJjZSBz
b3VyY2UsIEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYgZnVuY3Rpb24pIC0+IFRhc2tJZGVudGlm
aWVyCiB7CiAgICAgcmV0dXJuIHF1ZXVlVGFzayhtYWtlVW5pcXVlPEV2ZW50TG9vcEZ1bmN0aW9u
RGlzcGF0Y2hUYXNrPihzb3VyY2UsICp0aGlzLCBXVEZNb3ZlKGZ1bmN0aW9uKSkpOwogfQogCiti
b29sIEV2ZW50TG9vcFRhc2tHcm91cDo6Y2FuY2VsVGFzayhUYXNrSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGF1dG8gZXZlbnRMb29wID0gbWFrZVJlZlB0cihtX2V2ZW50TG9vcC5nZXQo
KSk7CisgICAgaWYgKCFldmVudExvb3ApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gZXZlbnRMb29wLT5jYW5jZWxUYXNrKGlkZW50aWZpZXIpOworfQorCiB2b2lkIEV2ZW50TG9v
cFRhc2tHcm91cDo6cXVldWVNaWNyb3Rhc2soRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24mJiBmdW5j
dGlvbikKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBlZCB8fCAhbV9ldmVudExv
b3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMb29wLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRMb29wLmgKaW5kZXggYmE0NjI1YWJkNmM5Y2E3MTgxOWQzODQ1Mjc1
YjBlYzZmMTM2MTM2Mi4uOTY4ZjAxYWJkYTgxYWQzYjI3NDMwNmE5YzA4YmE3NzQ2YWU1ZWZmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudExvb3AuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiVGFz
a1NvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CkBAIC01OCw3
ICs1OSwxMSBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgY29uc3QgVGFza1NvdXJjZSBt
X3Rhc2tTb3VyY2U7CisgICAgLy8gRnJlZSA4IGJpdHMuCisgICAgdWludDE2X3QgbV9pZGVudGlm
aWVyU2FsdDsgLy8gQXZvaWRzIHJlYWxsb2NhdGlvbiBvZiB0aGUgc2FtZSBtZW1vcnkgYWRkcmVz
cyB0byBlcnJvbmVvdXNseSBpZGVudGlmeWluZyB0aGUgc2FtZSB0YXNrLgogICAgIFdlYWtQdHI8
RXZlbnRMb29wVGFza0dyb3VwPiBtX2dyb3VwOworCisgICAgZnJpZW5kIGNsYXNzIEV2ZW50TG9v
cDsKIH07CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFw
cGFwaXMuaHRtbCNldmVudC1sb29wCkBAIC02Nyw3ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+RXZlbnRMb29wKCkgPSBkZWZhdWx0OwogCiAgICAgdHlwZWRlZiBGdW5jdGlvbjx2b2lk
ICgpPiBUYXNrRnVuY3Rpb247Ci0gICAgdm9pZCBxdWV1ZVRhc2soc3RkOjp1bmlxdWVfcHRyPEV2
ZW50TG9vcFRhc2s+JiYpOworCisgICAgZW51bSBjbGFzcyBUYXNrSWRlbnRpZmllciA6IHVpbnQ2
NF90IHsgSW52YWxpZCA9IDAgfTsKKworICAgIFRhc2tJZGVudGlmaWVyIHF1ZXVlVGFzayhzdGQ6
OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJik7CisgICAgYm9vbCBjYW5jZWxUYXNrKFRhc2tJ
ZGVudGlmaWVyKTsKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dlYmFwcGFwaXMuaHRtbCNxdWV1ZS1hLW1pY3JvdGFzawogICAgIHZvaWQgcXVldWVNaWNy
b3Rhc2soc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYpOwpAQCAtODksNiArOTgsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjbGVhckFsbFRhc2tzKCk7CiAKIHByaXZhdGU6CisgICAg
VGFza0lkZW50aWZpZXIgaWRlbnRpZmllckZvclRhc2soRXZlbnRMb29wVGFzayYpOworCiAgICAg
dm9pZCBzY2hlZHVsZVRvUnVuSWZOZWVkZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVU
b1J1bigpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgPSAw
OwpAQCAtOTgsNiArMTA5LDcgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxFdmVudExvb3BU
YXNrR3JvdXA+IG1fYXNzb2NpYXRlZEdyb3VwczsKICAgICBXZWFrSGFzaFNldDxFdmVudExvb3BU
YXNrR3JvdXA+IG1fZ3JvdXBzV2l0aFN1c3BlbmVkVGFza3M7CiAgICAgYm9vbCBtX2lzU2NoZWR1
bGVkVG9SdW4geyBmYWxzZSB9OworICAgIHVpbnQxNl90IG1fY3VycmVudFRhc2tJZGVudGlmaWVy
U2FsdCB7IDEgfTsKIH07CiAKIGNsYXNzIEV2ZW50TG9vcFRhc2tHcm91cCA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxFdmVudExvb3BUYXNrR3JvdXA+IHsKQEAgLTE3Miw4ICsxODQsMTMgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSB7IHJldHVybiBtX3N0YXRlID09IFN0YXRlOjpT
dXNwZW5kZWQ7IH0KICAgICBib29sIGlzUmVhZHlUb1N0b3AoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlID09IFN0YXRlOjpSZWFkeVRvU3RvcDsgfQogCi0gICAgdm9pZCBxdWV1ZVRhc2soc3RkOjp1
bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcXVl
dWVUYXNrKFRhc2tTb3VyY2UsIEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYpOworICAgIHVzaW5n
IFRhc2tJZGVudGlmaWVyID0gRXZlbnRMb29wOjpUYXNrSWRlbnRpZmllcjsKKworICAgIFRhc2tJ
ZGVudGlmaWVyIHF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgVGFza0lkZW50aWZpZXIgcXVldWVUYXNrKFRhc2tTb3VyY2UsIEV2
ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYpOworICAgIGJvb2wgY2FuY2VsVGFzayhUYXNrSWRlbnRp
Zmllcik7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHF1ZXVlQ2FuY2VsYWJsZVRhc2soVGFz
a1NvdXJjZSwgRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24mJik7CiAKICAgICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcXVldWUtYS1taWNy
b3Rhc2sKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHF1ZXVlTWljcm90YXNrKEV2ZW50TG9vcDo6
VGFza0Z1bmN0aW9uJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
Y3BwCmluZGV4IDA3Y2IxNjRhZWUxYWUwODE2YmNkMTU2NDQzNDM4ZGUwZWY1NjkwYWIuLjU2OGI2
NWQxMGNkYjc1MzBkYzc0ZTQ1ZTgwNDlkZDhlYjFhNjU2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiSFRNTFNs
b3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50LmgiCiAjaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNDMsMTIgKzQyLDYgQEAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKEhUTUxEZXRhaWxzRWxlbWVudCk7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLXN0YXRpYyBEZXRhaWxFdmVudFNlbmRlciYgZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIo
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEZXRhaWxFdmVudFNlbmRlcj4gc2hhcmVk
VG9nZ2xlRXZlbnRTZW5kZXIoZXZlbnROYW1lcygpLnRvZ2dsZUV2ZW50KTsKLSAgICByZXR1cm4g
c2hhcmVkVG9nZ2xlRXZlbnRTZW5kZXI7Ci19Ci0KIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBz
dW1tYXJ5U2xvdE5hbWUoKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlTbG90Iik7CkBAIC05OCwxMCAr
OTEsNyBAQCBIVE1MRGV0YWlsc0VsZW1lbnQ6OkhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZAogICAgIEFTU0VSVChoYXNUYWdOYW1lKGRl
dGFpbHNUYWcpKTsKIH0KIAotSFRNTERldGFpbHNFbGVtZW50Ojp+SFRNTERldGFpbHNFbGVtZW50
KCkKLXsKLSAgICBkZXRhaWxUb2dnbGVFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsK
LX0KK0hUTUxEZXRhaWxzRWxlbWVudDo6fkhUTUxEZXRhaWxzRWxlbWVudCgpID0gZGVmYXVsdDsK
IAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CkBAIC0xMTIsMTEgKzEwMiwxMSBAQCB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6ZGlk
QWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogewogICAgIGF1dG8gc3Vt
bWFyeVNsb3QgPSBIVE1MU2xvdEVsZW1lbnQ6OmNyZWF0ZShzbG90VGFnLCBkb2N1bWVudCgpKTsK
ICAgICBzdW1tYXJ5U2xvdC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihuYW1l
QXR0ciwgc3VtbWFyeVNsb3ROYW1lKCkpOwotICAgIG1fc3VtbWFyeVNsb3QgPSBzdW1tYXJ5U2xv
dC5wdHIoKTsKKyAgICBtX3N1bW1hcnlTbG90ID0gbWFrZVdlYWtQdHIoc3VtbWFyeVNsb3QpOwog
CiAgICAgYXV0byBkZWZhdWx0U3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKHN1
bW1hcnlUYWcsIGRvY3VtZW50KCkpOwogICAgIGRlZmF1bHRTdW1tYXJ5LT5hcHBlbmRDaGlsZChU
ZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpKSk7Ci0g
ICAgbV9kZWZhdWx0U3VtbWFyeSA9IGRlZmF1bHRTdW1tYXJ5LnB0cigpOworICAgIG1fZGVmYXVs
dFN1bW1hcnkgPSBtYWtlV2Vha1B0cihkZWZhdWx0U3VtbWFyeSk7CiAKICAgICBzdW1tYXJ5U2xv
dC0+YXBwZW5kQ2hpbGQoZGVmYXVsdFN1bW1hcnkpOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoc3Vt
bWFyeVNsb3QpOwpAQCAtMTM2LDEzICsxMjYsNyBAQCBib29sIEhUTUxEZXRhaWxzRWxlbWVudDo6
aXNBY3RpdmVTdW1tYXJ5KGNvbnN0IEhUTUxTdW1tYXJ5RWxlbWVudCYgc3VtbWFyeSkgY29ucwog
ICAgIGF1dG8gc2xvdCA9IG1ha2VSZWZQdHIoc2hhZG93Um9vdCgpLT5maW5kQXNzaWduZWRTbG90
KHN1bW1hcnkpKTsKICAgICBpZiAoIXNsb3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBy
ZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlTbG90OwotfQotCi12b2lkIEhUTUxEZXRhaWxzRWxlbWVu
dDo6ZGlzcGF0Y2hQZW5kaW5nRXZlbnQoRGV0YWlsRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQot
ewotICAgIEFTU0VSVF9VTlVTRUQoZXZlbnRTZW5kZXIsIGV2ZW50U2VuZGVyID09ICZkZXRhaWxU
b2dnbGVFdmVudFNlbmRlcigpKTsKLSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnRvZ2dsZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKKyAgICByZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlTbG90LmdldCgpOwog
fQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC0xNTksOCArMTQzLDEy
IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgICAgICAgICAgcm9vdC0+cmVtb3Zl
Q2hpbGQoKm1fZGVmYXVsdFNsb3QpOwogCiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnLyNkZXRhaWxzLW5vdGlmaWNhdGlvbi10YXNrLXN0ZXBzLgotICAgICAgICAg
ICAgZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7Ci0gICAgICAg
ICAgICBkZXRhaWxUb2dnbGVFdmVudFNlbmRlcigpLmRpc3BhdGNoRXZlbnRTb29uKCp0aGlzKTsK
KyAgICAgICAgICAgIGlmIChtX29wZW5FdmVudFRhc2sgIT0gRXZlbnRMb29wOjpUYXNrSWRlbnRp
Zmllcjo6SW52YWxpZCkKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmV2ZW50TG9vcCgpLmNh
bmNlbFRhc2sobV9vcGVuRXZlbnRUYXNrKTsKKworICAgICAgICAgICAgbV9vcGVuRXZlbnRUYXNr
ID0gZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1
bGF0aW9uLCBbcHJvdGVjdGVkVGhpcyA9IEdDUmVhY2hhYmxlUmVmIHsgKnRoaXMgfV0oKSB7Cisg
ICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS50b2dnbGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vKSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0gZWxz
ZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggYTBlMDEwNWVkMmRlMDVl
ZjM1YjUwYWFkZGNlYmYxMzM1MGMxZTk2ZS4uN2RjYjhlYTM3M2I5MWE4MDAxMDM2MDRkYTBlMzQ5
M2EwNmIxMzllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCkBA
IC0yMSwxNSArMjEsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJFdmVudExvb3Au
aCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEhUTUxTbG90RWxlbWVudDsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRXZlbnRT
ZW5kZXI7Ci11c2luZyBEZXRhaWxFdmVudFNlbmRlciA9IEV2ZW50U2VuZGVyPEhUTUxEZXRhaWxz
RWxlbWVudD47Ci0KIGNsYXNzIEhUTUxEZXRhaWxzRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MRGV0YWlsc0VsZW1lbnQp
OwogcHVibGljOgpAQCAtNDAsOCArMzgsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzT3Blbigp
IGNvbnN0IHsgcmV0dXJuIG1faXNPcGVuOyB9CiAgICAgYm9vbCBpc0FjdGl2ZVN1bW1hcnkoY29u
c3QgSFRNTFN1bW1hcnlFbGVtZW50JikgY29uc3Q7Ci0KLSAgICB2b2lkIGRpc3BhdGNoUGVuZGlu
Z0V2ZW50KERldGFpbEV2ZW50U2VuZGVyKik7CiAgICAgCiBwcml2YXRlOgogICAgIEhUTUxEZXRh
aWxzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKQEAgLTU0LDkgKzUw
LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0ludGVyYWN0aXZlQ29udGVudCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgbV9pc09wZW4geyBmYWxzZSB9OwotICAg
IEhUTUxTbG90RWxlbWVudCogbV9zdW1tYXJ5U2xvdCB7IG51bGxwdHIgfTsKLSAgICBIVE1MU3Vt
bWFyeUVsZW1lbnQqIG1fZGVmYXVsdFN1bW1hcnkgeyBudWxscHRyIH07CisgICAgV2Vha1B0cjxI
VE1MU2xvdEVsZW1lbnQ+IG1fc3VtbWFyeVNsb3Q7CisgICAgV2Vha1B0cjxIVE1MU3VtbWFyeUVs
ZW1lbnQ+IG1fZGVmYXVsdFN1bW1hcnk7CiAgICAgUmVmUHRyPEhUTUxTbG90RWxlbWVudD4gbV9k
ZWZhdWx0U2xvdDsKKyAgICBFdmVudExvb3A6OlRhc2tJZGVudGlmaWVyIG1fb3BlbkV2ZW50VGFz
azsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434504</attachid>
            <date>2021-07-29 02:04:12 -0700</date>
            <delta_ts>2021-07-29 03:15:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228577-20210729020411.patch</filename>
            <type>text/plain</type>
            <size>12716</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1NzMwOWNiMjZjMzY4
MmEyMjZlZmU4ZjU0Y2U3N2E5ZGFiMDExYi4uMWRiY2YwZDA2NGEwZWQwOTI1ZTgxNGUzNGY2OTg3
MzMxMTYwNzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA3LTI4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gY2FuY2VsIGFuIEV2ZW50TG9vcFRhc2sgYW5kIHVzZSBpbiBIVE1MRGV0YWlsc0VsZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlcyBhIHVpbnQ2NF90IGlkZW50aWZpZXIgZm9yIGVhY2ggZXZlbnQgbG9vcCB0
YXNrIGFuZCBhIG1lbWJlciBmdW5jdGlvbiBpbiBFdmVudExvb3AgYW5kCisgICAgICAgIEV2ZW50
TG9vcFRhc2tHcm91cCB0byBjYW5jZWwgdGhlIHRhc2sgdXNpbmcgdGhlIGlkZW50aWZpZXIsIGFu
ZCBkZXBsb3lzIGl0IGluIEhUTUxEZXRhaWxzRWxlbWVudCB0byBtaWdyYXRlCisgICAgICAgIEhU
TUxEZXRhaWxzRWxlbWVudCdzIHRvZ2dsZSBldmVudCB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBvYnNl
cnZhYmxlIGJlaGF2aW9yIGRpZmZlcmVuY2VzIGJleW9uZCB0aGUgZXZlbnQgbG9vcCBpbnRlZ3Jh
dGlvbi4KKworICAgICAgICAqIGRvbS9FdmVudExvb3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjppZGVudGlmaWVyRm9yVGFzayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjpxdWV1ZVRhc2spOiBSZXR1cm4gdGhlIGlkZW50aWZpZXIuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3A6OmNhbmNlbFRhc2spOiBBZGRlZC4gQ2FuY2VscyB0aGUgc3BlY2lm
aWVkIHRhc2suCisgICAgICAgIChXZWJDb3JlOjpFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlVGFz
ayk6IFJldHVybnMgdGhlIGluZGVudGlmaWVyLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29w
VGFza0dyb3VwOjpjYW5jZWxUYXNrKTogQWRkZWQuIENhbmNlbHMgdGhlIHNwZWNpZmllZCB0YXNr
LgorICAgICAgICAqIGRvbS9FdmVudExvb3AuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRhaWxUb2dnbGVFdmVudFNlbmRlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6On5IVE1MRGV0
YWlsc0VsZW1lbnQpOiBVc2UgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiBub3cgdGhhdCB3ZSBkb24n
dCBoYXZlIHRvCisgICAgICAgIGV4cGxpY2l0bHkgY2FuY2VsIHRoZSB0YXNrLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6aXNBY3RpdmVTdW1tYXJ5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6ZGlzcGF0Y2hQZW5k
aW5nRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoK
KwogMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCBp
bnZhbGlkIHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3Au
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKaW5kZXggZjFlMTQwMTliZGU4
NzY5NjM4NTVlYTI0ZWZkMmRlYmRjMTZiYWI2Zi4uMTAxZjg0MzhiZmEzNGQxMzFhMTg3N2FkNjA0
YWI2YmNmMWIyMmRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKQEAgLTI3LDE2ICsyNyw0
MyBAQAogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogCiAjaW5jbHVkZSAiTWljcm90YXNrcy5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wYWN0UG9pbnRlclR1cGxlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBFdmVudExvb3A6OnF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29w
VGFzaz4mJiB0YXNrKQorYXV0byBFdmVudExvb3A6OmlkZW50aWZpZXJGb3JUYXNrKEV2ZW50TG9v
cFRhc2smIHRhc2spIC0+IFRhc2tJZGVudGlmaWVyCit7CisjaWYgQ1BVKEFERFJFU1M2NCkKKyAg
ICBDb21wYWN0UG9pbnRlclR1cGxlPEV2ZW50TG9vcFRhc2sqLCB1aW50MTZfdD4gcG9pbnRlcldp
dGhTYWx0ID0geyAmdGFzaywgdGFzay5tX2lkZW50aWZpZXJTYWx0IH07CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEV2ZW50TG9vcDo6VGFza0lkZW50aWZpZXI+KHBvaW50ZXJXaXRoU2FsdC5kYXRh
KCkpOworI2Vsc2UKKyAgICB1aW50NjRfdCByZXN1bHQgPSB0YXNrLm1faWRlbnRpZmllclNhbHQ7
CisgICAgcmVzdWx0ID0gcmVzdWx0IDw8IDMyIHwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KCZ0YXNr
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXZlbnRMb29wOjpUYXNrSWRlbnRpZmllcj4ocmVz
dWx0KTsKKyNlbmRpZgorfQorCithdXRvIEV2ZW50TG9vcDo6cXVldWVUYXNrKHN0ZDo6dW5pcXVl
X3B0cjxFdmVudExvb3BUYXNrPiYmIHRhc2spIC0+IFRhc2tJZGVudGlmaWVyCiB7CiAgICAgQVNT
RVJUKHRhc2stPnRhc2tTb3VyY2UoKSAhPSBUYXNrU291cmNlOjpNaWNyb3Rhc2spOwogICAgIEFT
U0VSVCh0YXNrLT5ncm91cCgpKTsKICAgICBBU1NFUlQoaXNDb250ZXh0VGhyZWFkKCkpOwogICAg
IHNjaGVkdWxlVG9SdW5JZk5lZWRlZCgpOworICAgIGF1dG8gc2FsdCA9ICsrbV9jdXJyZW50VGFz
a0lkZW50aWZpZXJTYWx0OworICAgIGlmIChVTkxJS0VMWSghc2FsdCkpIC8vIEFsbG93IG1fY3Vy
cmVudFRhc2tJZGVudGlmaWVyU2FsdCB0byBvdmVyZmxvdyAmIHdyYXAgYXJvdW5kIGJ1dCBub3Qg
emVyby4KKyAgICAgICAgc2FsdCA9ICsrbV9jdXJyZW50VGFza0lkZW50aWZpZXJTYWx0OworICAg
IHRhc2stPm1faWRlbnRpZmllclNhbHQgPSBzYWx0OworICAgIGF1dG8gaWRlbnRpZmllciA9IGlk
ZW50aWZpZXJGb3JUYXNrKCp0YXNrKTsKICAgICBtX3Rhc2tzLmFwcGVuZChXVEZNb3ZlKHRhc2sp
KTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KKworYm9vbCBFdmVudExvb3A6OmNhbmNlbFRh
c2soVGFza0lkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICAvLyBGSVhNRTogQ29uc2lkZXIg
YSBtb3JlIGVmZmljaWVudCBhcHByb2FjaCB3aGVuIHRoZXJlIGlzIGEgbG90IG9mIHRhc2tzLgor
ICAgIHJldHVybiBtX3Rhc2tzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZdKGF1dG8mIHRhc2spIHsK
KyAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJGb3JUYXNrKCp0YXNrKSA9PSBpZGVudGlmaWVyOwor
ICAgIH0pOwogfQogCiB2b2lkIEV2ZW50TG9vcDo6cXVldWVNaWNyb3Rhc2soc3RkOjp1bmlxdWVf
cHRyPEV2ZW50TG9vcFRhc2s+JiYgbWljcm90YXNrKQpAQCAtMTQwLDEyICsxNjcsMTIgQEAgdm9p
ZCBFdmVudExvb3A6OmNsZWFyQWxsVGFza3MoKQogICAgIG1fZ3JvdXBzV2l0aFN1c3BlbmVkVGFz
a3MuY2xlYXIoKTsKIH0KIAotdm9pZCBFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlVGFzayhzdGQ6
OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJiB0YXNrKQorYXV0byBFdmVudExvb3BUYXNrR3Jv
dXA6OnF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJiB0YXNrKSAtPiBU
YXNrSWRlbnRpZmllcgogewogICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdG9wcGVkIHx8ICFt
X2V2ZW50TG9vcCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gVGFza0lkZW50aWZp
ZXI6OkludmFsaWQ7CiAgICAgQVNTRVJUKHRhc2stPmdyb3VwKCkgPT0gdGhpcyk7Ci0gICAgbV9l
dmVudExvb3AtPnF1ZXVlVGFzayhXVEZNb3ZlKHRhc2spKTsKKyAgICByZXR1cm4gbV9ldmVudExv
b3AtPnF1ZXVlVGFzayhXVEZNb3ZlKHRhc2spKTsKIH0KIAogY2xhc3MgRXZlbnRMb29wRnVuY3Rp
b25EaXNwYXRjaFRhc2sgOiBwdWJsaWMgRXZlbnRMb29wVGFzayB7CkBAIC0xNjIsMTEgKzE4OSwx
OSBAQCBwcml2YXRlOgogICAgIEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9uIG1fZnVuY3Rpb247CiB9
OwogCi12b2lkIEV2ZW50TG9vcFRhc2tHcm91cDo6cXVldWVUYXNrKFRhc2tTb3VyY2Ugc291cmNl
LCBFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYmIGZ1bmN0aW9uKQorYXV0byBFdmVudExvb3BUYXNr
R3JvdXA6OnF1ZXVlVGFzayhUYXNrU291cmNlIHNvdXJjZSwgRXZlbnRMb29wOjpUYXNrRnVuY3Rp
b24mJiBmdW5jdGlvbikgLT4gVGFza0lkZW50aWZpZXIKIHsKICAgICByZXR1cm4gcXVldWVUYXNr
KG1ha2VVbmlxdWU8RXZlbnRMb29wRnVuY3Rpb25EaXNwYXRjaFRhc2s+KHNvdXJjZSwgKnRoaXMs
IFdURk1vdmUoZnVuY3Rpb24pKSk7CiB9CiAKK2Jvb2wgRXZlbnRMb29wVGFza0dyb3VwOjpjYW5j
ZWxUYXNrKFRhc2tJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBldmVudExvb3Ag
PSBtYWtlUmVmUHRyKG1fZXZlbnRMb29wLmdldCgpKTsKKyAgICBpZiAoIWV2ZW50TG9vcCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBldmVudExvb3AtPmNhbmNlbFRhc2soaWRl
bnRpZmllcik7Cit9CisKIHZvaWQgRXZlbnRMb29wVGFza0dyb3VwOjpxdWV1ZU1pY3JvdGFzayhF
dmVudExvb3A6OlRhc2tGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGlmIChtX3N0YXRlID09
IFN0YXRlOjpTdG9wcGVkIHx8ICFtX2V2ZW50TG9vcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudExvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3AuaAppbmRl
eCBiYTQ2MjVhYmQ2YzljYTcxODE5ZDM4NDUyNzViMGVjNmYxMzYxMzYyLi45NjhmMDFhYmRhODFh
ZDNiMjc0MzA2YTljMDhiYTc3NDZhZTVlZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRMb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJUYXNrU291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha0hhc2hTZXQuaD4KQEAgLTU4LDcgKzU5LDExIEBAIHByb3RlY3RlZDoKIAogcHJp
dmF0ZToKICAgICBjb25zdCBUYXNrU291cmNlIG1fdGFza1NvdXJjZTsKKyAgICAvLyBGcmVlIDgg
Yml0cy4KKyAgICB1aW50MTZfdCBtX2lkZW50aWZpZXJTYWx0OyAvLyBBdm9pZHMgcmVhbGxvY2F0
aW9uIG9mIHRoZSBzYW1lIG1lbW9yeSBhZGRyZXNzIHRvIGVycm9uZW91c2x5IGlkZW50aWZ5aW5n
IHRoZSBzYW1lIHRhc2suCiAgICAgV2Vha1B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZ3JvdXA7
CisKKyAgICBmcmllbmQgY2xhc3MgRXZlbnRMb29wOwogfTsKIAogLy8gaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2V2ZW50LWxvb3AKQEAgLTY3
LDcgKzcyLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5FdmVudExvb3AoKSA9IGRlZmF1bHQ7
CiAKICAgICB0eXBlZGVmIEZ1bmN0aW9uPHZvaWQgKCk+IFRhc2tGdW5jdGlvbjsKLSAgICB2b2lk
IHF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJik7CisKKyAgICBlbnVt
IGNsYXNzIFRhc2tJZGVudGlmaWVyIDogdWludDY0X3QgeyBJbnZhbGlkID0gMCB9OworCisgICAg
VGFza0lkZW50aWZpZXIgcXVldWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYm
KTsKKyAgICBib29sIGNhbmNlbFRhc2soVGFza0lkZW50aWZpZXIpOwogCiAgICAgLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3F1ZXVlLWEt
bWljcm90YXNrCiAgICAgdm9pZCBxdWV1ZU1pY3JvdGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRM
b29wVGFzaz4mJik7CkBAIC04OSw2ICs5OCw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFy
QWxsVGFza3MoKTsKIAogcHJpdmF0ZToKKyAgICBUYXNrSWRlbnRpZmllciBpZGVudGlmaWVyRm9y
VGFzayhFdmVudExvb3BUYXNrJik7CisKICAgICB2b2lkIHNjaGVkdWxlVG9SdW5JZk5lZWRlZCgp
OwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRvUnVuKCkgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCA9IDA7CkBAIC05OCw2ICsxMDksNyBAQCBwcml2YXRl
OgogICAgIFdlYWtIYXNoU2V0PEV2ZW50TG9vcFRhc2tHcm91cD4gbV9hc3NvY2lhdGVkR3JvdXBz
OwogICAgIFdlYWtIYXNoU2V0PEV2ZW50TG9vcFRhc2tHcm91cD4gbV9ncm91cHNXaXRoU3VzcGVu
ZWRUYXNrczsKICAgICBib29sIG1faXNTY2hlZHVsZWRUb1J1biB7IGZhbHNlIH07CisgICAgdWlu
dDE2X3QgbV9jdXJyZW50VGFza0lkZW50aWZpZXJTYWx0IHsgMSB9OwogfTsKIAogY2xhc3MgRXZl
bnRMb29wVGFza0dyb3VwIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEV2ZW50TG9vcFRhc2tHcm91
cD4gewpAQCAtMTcyLDggKzE4NCwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N1c3BlbmRlZCgp
IHsgcmV0dXJuIG1fc3RhdGUgPT0gU3RhdGU6OlN1c3BlbmRlZDsgfQogICAgIGJvb2wgaXNSZWFk
eVRvU3RvcCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gU3RhdGU6OlJlYWR5VG9TdG9wOyB9
CiAKLSAgICB2b2lkIHF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBxdWV1ZVRhc2soVGFza1NvdXJjZSwgRXZlbnRMb29w
OjpUYXNrRnVuY3Rpb24mJik7CisgICAgdXNpbmcgVGFza0lkZW50aWZpZXIgPSBFdmVudExvb3A6
OlRhc2tJZGVudGlmaWVyOworCisgICAgVGFza0lkZW50aWZpZXIgcXVldWVUYXNrKHN0ZDo6dW5p
cXVlX3B0cjxFdmVudExvb3BUYXNrPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBUYXNrSWRlbnRp
ZmllciBxdWV1ZVRhc2soVGFza1NvdXJjZSwgRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24mJik7Cisg
ICAgYm9vbCBjYW5jZWxUYXNrKFRhc2tJZGVudGlmaWVyKTsKKworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcXVldWVDYW5jZWxhYmxlVGFzayhUYXNrU291cmNlLCBFdmVudExvb3A6OlRhc2tGdW5j
dGlvbiYmKTsKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3dlYmFwcGFwaXMuaHRtbCNxdWV1ZS1hLW1pY3JvdGFzawogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcXVldWVNaWNyb3Rhc2soRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggMDdjYjE2NGFlZTFhZTA4MTZi
Y2QxNTY0NDM0MzhkZTBlZjU2OTBhYi4uNTY4YjY1ZDEwY2RiNzUzMGRjNzRlNDVlODA0OWRkOGVi
MWE2NTY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApA
QCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJF
bGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRXZl
bnRTZW5kZXIuaCIKICNpbmNsdWRlICJIVE1MU2xvdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
U3VtbWFyeUVsZW1lbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC00Mywx
MiArNDIsNiBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTERldGFpbHNFbGVtZW50
KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotc3RhdGljIERldGFpbEV2ZW50U2Vu
ZGVyJiBkZXRhaWxUb2dnbGVFdmVudFNlbmRlcigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPERldGFpbEV2ZW50U2VuZGVyPiBzaGFyZWRUb2dnbGVFdmVudFNlbmRlcihldmVudE5hbWVz
KCkudG9nZ2xlRXZlbnQpOwotICAgIHJldHVybiBzaGFyZWRUb2dnbGVFdmVudFNlbmRlcjsKLX0K
LQogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHN1bW1hcnlTbG90TmFtZSgpCiB7CiAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW1tYXJ5U2xv
dCgic3VtbWFyeVNsb3QiKTsKQEAgLTk4LDEwICs5MSw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudDo6
SFRNTERldGFpbHNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZGV0YWlsc1RhZykpOwogfQogCi1IVE1MRGV0YWls
c0VsZW1lbnQ6On5IVE1MRGV0YWlsc0VsZW1lbnQoKQotewotICAgIGRldGFpbFRvZ2dsZUV2ZW50
U2VuZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwotfQorSFRNTERldGFpbHNFbGVtZW50Ojp+SFRN
TERldGFpbHNFbGVtZW50KCkgPSBkZWZhdWx0OwogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKQEAgLTExMiwxMSArMTAyLDExIEBA
IHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRv
d1Jvb3QmIHJvb3QpCiB7CiAgICAgYXV0byBzdW1tYXJ5U2xvdCA9IEhUTUxTbG90RWxlbWVudDo6
Y3JlYXRlKHNsb3RUYWcsIGRvY3VtZW50KCkpOwogICAgIHN1bW1hcnlTbG90LT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKG5hbWVBdHRyLCBzdW1tYXJ5U2xvdE5hbWUoKSk7Ci0g
ICAgbV9zdW1tYXJ5U2xvdCA9IHN1bW1hcnlTbG90LnB0cigpOworICAgIG1fc3VtbWFyeVNsb3Qg
PSBtYWtlV2Vha1B0cihzdW1tYXJ5U2xvdCk7CiAKICAgICBhdXRvIGRlZmF1bHRTdW1tYXJ5ID0g
SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoc3VtbWFyeVRhZywgZG9jdW1lbnQoKSk7CiAgICAg
ZGVmYXVsdFN1bW1hcnktPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCBkZWZh
dWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkpKTsKLSAgICBtX2RlZmF1bHRTdW1tYXJ5ID0gZGVmYXVs
dFN1bW1hcnkucHRyKCk7CisgICAgbV9kZWZhdWx0U3VtbWFyeSA9IG1ha2VXZWFrUHRyKGRlZmF1
bHRTdW1tYXJ5KTsKIAogICAgIHN1bW1hcnlTbG90LT5hcHBlbmRDaGlsZChkZWZhdWx0U3VtbWFy
eSk7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChzdW1tYXJ5U2xvdCk7CkBAIC0xMzYsMTMgKzEyNiw3
IEBAIGJvb2wgSFRNTERldGFpbHNFbGVtZW50Ojppc0FjdGl2ZVN1bW1hcnkoY29uc3QgSFRNTFN1
bW1hcnlFbGVtZW50JiBzdW1tYXJ5KSBjb25zCiAgICAgYXV0byBzbG90ID0gbWFrZVJlZlB0cihz
aGFkb3dSb290KCktPmZpbmRBc3NpZ25lZFNsb3Qoc3VtbWFyeSkpOwogICAgIGlmICghc2xvdCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBzbG90ID09IG1fc3VtbWFyeVNsb3Q7
Ci19Ci0KLXZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpkaXNwYXRjaFBlbmRpbmdFdmVudChEZXRh
aWxFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChldmVudFNl
bmRlciwgZXZlbnRTZW5kZXIgPT0gJmRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkpOwotICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudG9nZ2xlRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgIHJldHVybiBz
bG90ID09IG1fc3VtbWFyeVNsb3QuZ2V0KCk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKQEAgLTE1OSw4ICsxNDMsMTIgQEAgdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIK
ICAgICAgICAgICAgICAgICByb290LT5yZW1vdmVDaGlsZCgqbV9kZWZhdWx0U2xvdCk7CiAKICAg
ICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RldGFpbHMtbm90aWZp
Y2F0aW9uLXRhc2stc3RlcHMuCi0gICAgICAgICAgICBkZXRhaWxUb2dnbGVFdmVudFNlbmRlcigp
LmNhbmNlbEV2ZW50KCp0aGlzKTsKLSAgICAgICAgICAgIGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVy
KCkuZGlzcGF0Y2hFdmVudFNvb24oKnRoaXMpOworICAgICAgICAgICAgaWYgKG1fb3BlbkV2ZW50
VGFzayAhPSBFdmVudExvb3A6OlRhc2tJZGVudGlmaWVyOjpJbnZhbGlkKQorICAgICAgICAgICAg
ICAgIGRvY3VtZW50KCkuZXZlbnRMb29wKCkuY2FuY2VsVGFzayhtX29wZW5FdmVudFRhc2spOwor
CisgICAgICAgICAgICBtX29wZW5FdmVudFRhc2sgPSBkb2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1
ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFtwcm90ZWN0ZWRUaGlzID0gR0NS
ZWFjaGFibGVSZWYgeyAqdGhpcyB9XSgpIHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnRvZ2dsZUV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICAgICAg
ICAgIH0pOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuaAppbmRleCBhMGUwMTA1ZWQyZGUwNWVmMzViNTBhYWRkY2ViZjEzMzUwYzFlOTZlLi43
ZGNiOGVhMzczYjkxYTgwMDEwMzYwNGRhMGUzNDkzYTA2YjEzOWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTIxLDE1ICsyMSwxMyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFNsb3RFbGVtZW50OwogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBFdmVudFNlbmRlcjsKLXVzaW5nIERldGFpbEV2ZW50U2Vu
ZGVyID0gRXZlbnRTZW5kZXI8SFRNTERldGFpbHNFbGVtZW50PjsKLQogY2xhc3MgSFRNTERldGFp
bHNFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEhUTUxEZXRhaWxzRWxlbWVudCk7CiBwdWJsaWM6CkBAIC00MCw4ICszOCw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNPcGVuKCkgY29uc3QgeyByZXR1cm4gbV9pc09wZW47IH0K
ICAgICBib29sIGlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3VtbWFyeUVsZW1lbnQmKSBjb25z
dDsKLQotICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nRXZlbnQoRGV0YWlsRXZlbnRTZW5kZXIqKTsK
ICAgICAKIHByaXZhdGU6CiAgICAgSFRNTERldGFpbHNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwpAQCAtNTQsOSArNTAsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIGlz
SW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
Ym9vbCBtX2lzT3BlbiB7IGZhbHNlIH07Ci0gICAgSFRNTFNsb3RFbGVtZW50KiBtX3N1bW1hcnlT
bG90IHsgbnVsbHB0ciB9OwotICAgIEhUTUxTdW1tYXJ5RWxlbWVudCogbV9kZWZhdWx0U3VtbWFy
eSB7IG51bGxwdHIgfTsKKyAgICBXZWFrUHRyPEhUTUxTbG90RWxlbWVudD4gbV9zdW1tYXJ5U2xv
dDsKKyAgICBXZWFrUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gbV9kZWZhdWx0U3VtbWFyeTsKICAg
ICBSZWZQdHI8SFRNTFNsb3RFbGVtZW50PiBtX2RlZmF1bHRTbG90OworICAgIEV2ZW50TG9vcDo6
VGFza0lkZW50aWZpZXIgbV9vcGVuRXZlbnRUYXNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434509</attachid>
            <date>2021-07-29 03:15:02 -0700</date>
            <delta_ts>2022-01-19 21:21:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228577-20210729031501.patch</filename>
            <type>text/plain</type>
            <size>12721</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1NzMwOWNiMjZjMzY4
MmEyMjZlZmU4ZjU0Y2U3N2E5ZGFiMDExYi4uMWRiY2YwZDA2NGEwZWQwOTI1ZTgxNGUzNGY2OTg3
MzMxMTYwNzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA3LTI4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gY2FuY2VsIGFuIEV2ZW50TG9vcFRhc2sgYW5kIHVzZSBpbiBIVE1MRGV0YWlsc0VsZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlcyBhIHVpbnQ2NF90IGlkZW50aWZpZXIgZm9yIGVhY2ggZXZlbnQgbG9vcCB0
YXNrIGFuZCBhIG1lbWJlciBmdW5jdGlvbiBpbiBFdmVudExvb3AgYW5kCisgICAgICAgIEV2ZW50
TG9vcFRhc2tHcm91cCB0byBjYW5jZWwgdGhlIHRhc2sgdXNpbmcgdGhlIGlkZW50aWZpZXIsIGFu
ZCBkZXBsb3lzIGl0IGluIEhUTUxEZXRhaWxzRWxlbWVudCB0byBtaWdyYXRlCisgICAgICAgIEhU
TUxEZXRhaWxzRWxlbWVudCdzIHRvZ2dsZSBldmVudCB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBvYnNl
cnZhYmxlIGJlaGF2aW9yIGRpZmZlcmVuY2VzIGJleW9uZCB0aGUgZXZlbnQgbG9vcCBpbnRlZ3Jh
dGlvbi4KKworICAgICAgICAqIGRvbS9FdmVudExvb3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjppZGVudGlmaWVyRm9yVGFzayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRMb29wOjpxdWV1ZVRhc2spOiBSZXR1cm4gdGhlIGlkZW50aWZpZXIuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3A6OmNhbmNlbFRhc2spOiBBZGRlZC4gQ2FuY2VscyB0aGUgc3BlY2lm
aWVkIHRhc2suCisgICAgICAgIChXZWJDb3JlOjpFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlVGFz
ayk6IFJldHVybnMgdGhlIGluZGVudGlmaWVyLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29w
VGFza0dyb3VwOjpjYW5jZWxUYXNrKTogQWRkZWQuIENhbmNlbHMgdGhlIHNwZWNpZmllZCB0YXNr
LgorICAgICAgICAqIGRvbS9FdmVudExvb3AuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRhaWxUb2dnbGVFdmVudFNlbmRlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6On5IVE1MRGV0
YWlsc0VsZW1lbnQpOiBVc2UgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiBub3cgdGhhdCB3ZSBkb24n
dCBoYXZlIHRvCisgICAgICAgIGV4cGxpY2l0bHkgY2FuY2VsIHRoZSB0YXNrLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6aXNBY3RpdmVTdW1tYXJ5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6ZGlzcGF0Y2hQZW5k
aW5nRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoK
KwogMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCBp
bnZhbGlkIHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3Au
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKaW5kZXggZjFlMTQwMTliZGU4
NzY5NjM4NTVlYTI0ZWZkMmRlYmRjMTZiYWI2Zi4uNWI4Zjc5MGEwYmRkOWVhYTBmNDIxMTNkNjZl
YjQ4ZDI0NjczNTAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKQEAgLTI3LDE2ICsyNyw0
MyBAQAogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogCiAjaW5jbHVkZSAiTWljcm90YXNrcy5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wYWN0UG9pbnRlclR1cGxlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBFdmVudExvb3A6OnF1ZXVlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29w
VGFzaz4mJiB0YXNrKQorYXV0byBFdmVudExvb3A6OmlkZW50aWZpZXJGb3JUYXNrKEV2ZW50TG9v
cFRhc2smIHRhc2spIC0+IFRhc2tJZGVudGlmaWVyCit7CisjaWYgQ1BVKEFERFJFU1M2NCkKKyAg
ICBDb21wYWN0UG9pbnRlclR1cGxlPEV2ZW50TG9vcFRhc2sqLCB1aW50MTZfdD4gcG9pbnRlcldp
dGhTYWx0ID0geyAmdGFzaywgdGFzay5tX2lkZW50aWZpZXJTYWx0IH07CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEV2ZW50TG9vcDo6VGFza0lkZW50aWZpZXI+KHBvaW50ZXJXaXRoU2FsdC5kYXRh
KCkpOworI2Vsc2UKKyAgICB1aW50NjRfdCByZXN1bHQgPSB0YXNrLm1faWRlbnRpZmllclNhbHQ7
CisgICAgcmVzdWx0ID0gcmVzdWx0IDw8IDMyIHwgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4o
JnRhc2spOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmVudExvb3A6OlRhc2tJZGVudGlmaWVy
PihyZXN1bHQpOworI2VuZGlmCit9CisKK2F1dG8gRXZlbnRMb29wOjpxdWV1ZVRhc2soc3RkOjp1
bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYgdGFzaykgLT4gVGFza0lkZW50aWZpZXIKIHsKICAg
ICBBU1NFUlQodGFzay0+dGFza1NvdXJjZSgpICE9IFRhc2tTb3VyY2U6Ok1pY3JvdGFzayk7CiAg
ICAgQVNTRVJUKHRhc2stPmdyb3VwKCkpOwogICAgIEFTU0VSVChpc0NvbnRleHRUaHJlYWQoKSk7
CiAgICAgc2NoZWR1bGVUb1J1bklmTmVlZGVkKCk7CisgICAgYXV0byBzYWx0ID0gKyttX2N1cnJl
bnRUYXNrSWRlbnRpZmllclNhbHQ7CisgICAgaWYgKFVOTElLRUxZKCFzYWx0KSkgLy8gQWxsb3cg
bV9jdXJyZW50VGFza0lkZW50aWZpZXJTYWx0IHRvIG92ZXJmbG93ICYgd3JhcCBhcm91bmQgYnV0
IG5vdCB6ZXJvLgorICAgICAgICBzYWx0ID0gKyttX2N1cnJlbnRUYXNrSWRlbnRpZmllclNhbHQ7
CisgICAgdGFzay0+bV9pZGVudGlmaWVyU2FsdCA9IHNhbHQ7CisgICAgYXV0byBpZGVudGlmaWVy
ID0gaWRlbnRpZmllckZvclRhc2soKnRhc2spOwogICAgIG1fdGFza3MuYXBwZW5kKFdURk1vdmUo
dGFzaykpOworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitib29sIEV2ZW50TG9vcDo6Y2Fu
Y2VsVGFzayhUYXNrSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIC8vIEZJWE1FOiBDb25z
aWRlciBhIG1vcmUgZWZmaWNpZW50IGFwcHJvYWNoIHdoZW4gdGhlcmUgaXMgYSBsb3Qgb2YgdGFz
a3MuCisgICAgcmV0dXJuIG1fdGFza3MucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0oYXV0byYgdGFz
aykgeworICAgICAgICByZXR1cm4gaWRlbnRpZmllckZvclRhc2soKnRhc2spID09IGlkZW50aWZp
ZXI7CisgICAgfSk7CiB9CiAKIHZvaWQgRXZlbnRMb29wOjpxdWV1ZU1pY3JvdGFzayhzdGQ6OnVu
aXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJiBtaWNyb3Rhc2spCkBAIC0xNDAsMTIgKzE2NywxMiBA
QCB2b2lkIEV2ZW50TG9vcDo6Y2xlYXJBbGxUYXNrcygpCiAgICAgbV9ncm91cHNXaXRoU3VzcGVu
ZWRUYXNrcy5jbGVhcigpOwogfQogCi12b2lkIEV2ZW50TG9vcFRhc2tHcm91cDo6cXVldWVUYXNr
KHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmIHRhc2spCithdXRvIEV2ZW50TG9vcFRh
c2tHcm91cDo6cXVldWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmIHRhc2sp
IC0+IFRhc2tJZGVudGlmaWVyCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwZWQg
fHwgIW1fZXZlbnRMb29wKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBUYXNrSWRl
bnRpZmllcjo6SW52YWxpZDsKICAgICBBU1NFUlQodGFzay0+Z3JvdXAoKSA9PSB0aGlzKTsKLSAg
ICBtX2V2ZW50TG9vcC0+cXVldWVUYXNrKFdURk1vdmUodGFzaykpOworICAgIHJldHVybiBtX2V2
ZW50TG9vcC0+cXVldWVUYXNrKFdURk1vdmUodGFzaykpOwogfQogCiBjbGFzcyBFdmVudExvb3BG
dW5jdGlvbkRpc3BhdGNoVGFzayA6IHB1YmxpYyBFdmVudExvb3BUYXNrIHsKQEAgLTE2MiwxMSAr
MTg5LDE5IEBAIHByaXZhdGU6CiAgICAgRXZlbnRMb29wOjpUYXNrRnVuY3Rpb24gbV9mdW5jdGlv
bjsKIH07CiAKLXZvaWQgRXZlbnRMb29wVGFza0dyb3VwOjpxdWV1ZVRhc2soVGFza1NvdXJjZSBz
b3VyY2UsIEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYgZnVuY3Rpb24pCithdXRvIEV2ZW50TG9v
cFRhc2tHcm91cDo6cXVldWVUYXNrKFRhc2tTb3VyY2Ugc291cmNlLCBFdmVudExvb3A6OlRhc2tG
dW5jdGlvbiYmIGZ1bmN0aW9uKSAtPiBUYXNrSWRlbnRpZmllcgogewogICAgIHJldHVybiBxdWV1
ZVRhc2sobWFrZVVuaXF1ZTxFdmVudExvb3BGdW5jdGlvbkRpc3BhdGNoVGFzaz4oc291cmNlLCAq
dGhpcywgV1RGTW92ZShmdW5jdGlvbikpKTsKIH0KIAorYm9vbCBFdmVudExvb3BUYXNrR3JvdXA6
OmNhbmNlbFRhc2soVGFza0lkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGV2ZW50
TG9vcCA9IG1ha2VSZWZQdHIobV9ldmVudExvb3AuZ2V0KCkpOworICAgIGlmICghZXZlbnRMb29w
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGV2ZW50TG9vcC0+Y2FuY2VsVGFz
ayhpZGVudGlmaWVyKTsKK30KKwogdm9pZCBFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlTWljcm90
YXNrKEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKG1fc3Rh
dGUgPT0gU3RhdGU6OlN0b3BwZWQgfHwgIW1fZXZlbnRMb29wKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5o
CmluZGV4IGJhNDYyNWFiZDZjOWNhNzE4MTlkMzg0NTI3NWIwZWM2ZjEzNjEzNjIuLjk2OGYwMWFi
ZGE4MWFkM2IyNzQzMDZhOWMwOGJhNzc0NmFlNWVmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudExvb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMb29wLmgK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlRhc2tTb3VyY2UuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgpAQCAtNTgsNyArNTksMTEgQEAgcHJvdGVjdGVkOgog
CiBwcml2YXRlOgogICAgIGNvbnN0IFRhc2tTb3VyY2UgbV90YXNrU291cmNlOworICAgIC8vIEZy
ZWUgOCBiaXRzLgorICAgIHVpbnQxNl90IG1faWRlbnRpZmllclNhbHQ7IC8vIEF2b2lkcyByZWFs
bG9jYXRpb24gb2YgdGhlIHNhbWUgbWVtb3J5IGFkZHJlc3MgdG8gZXJyb25lb3VzbHkgaWRlbnRp
ZnlpbmcgdGhlIHNhbWUgdGFzay4KICAgICBXZWFrUHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9n
cm91cDsKKworICAgIGZyaWVuZCBjbGFzcyBFdmVudExvb3A7CiB9OwogCiAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZXZlbnQtbG9vcApA
QCAtNjcsNyArNzIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkV2ZW50TG9vcCgpID0gZGVm
YXVsdDsKIAogICAgIHR5cGVkZWYgRnVuY3Rpb248dm9pZCAoKT4gVGFza0Z1bmN0aW9uOwotICAg
IHZvaWQgcXVldWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmKTsKKworICAg
IGVudW0gY2xhc3MgVGFza0lkZW50aWZpZXIgOiB1aW50NjRfdCB7IEludmFsaWQgPSAwIH07CisK
KyAgICBUYXNrSWRlbnRpZmllciBxdWV1ZVRhc2soc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRh
c2s+JiYpOworICAgIGJvb2wgY2FuY2VsVGFzayhUYXNrSWRlbnRpZmllcik7CiAKICAgICAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcXVl
dWUtYS1taWNyb3Rhc2sKICAgICB2b2lkIHF1ZXVlTWljcm90YXNrKHN0ZDo6dW5pcXVlX3B0cjxF
dmVudExvb3BUYXNrPiYmKTsKQEAgLTg5LDYgKzk4LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
Y2xlYXJBbGxUYXNrcygpOwogCiBwcml2YXRlOgorICAgIFRhc2tJZGVudGlmaWVyIGlkZW50aWZp
ZXJGb3JUYXNrKEV2ZW50TG9vcFRhc2smKTsKKwogICAgIHZvaWQgc2NoZWR1bGVUb1J1bklmTmVl
ZGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVG9SdW4oKSA9IDA7CiAgICAgdmlydHVh
bCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0ID0gMDsKQEAgLTk4LDYgKzEwOSw3IEBAIHBy
aXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8RXZlbnRMb29wVGFza0dyb3VwPiBtX2Fzc29jaWF0ZWRH
cm91cHM7CiAgICAgV2Vha0hhc2hTZXQ8RXZlbnRMb29wVGFza0dyb3VwPiBtX2dyb3Vwc1dpdGhT
dXNwZW5lZFRhc2tzOwogICAgIGJvb2wgbV9pc1NjaGVkdWxlZFRvUnVuIHsgZmFsc2UgfTsKKyAg
ICB1aW50MTZfdCBtX2N1cnJlbnRUYXNrSWRlbnRpZmllclNhbHQgeyAxIH07CiB9OwogCiBjbGFz
cyBFdmVudExvb3BUYXNrR3JvdXAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RXZlbnRMb29wVGFz
a0dyb3VwPiB7CkBAIC0xNzIsOCArMTg0LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzU3VzcGVu
ZGVkKCkgeyByZXR1cm4gbV9zdGF0ZSA9PSBTdGF0ZTo6U3VzcGVuZGVkOyB9CiAgICAgYm9vbCBp
c1JlYWR5VG9TdG9wKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSA9PSBTdGF0ZTo6UmVhZHlUb1N0
b3A7IH0KIAotICAgIHZvaWQgcXVldWVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNr
PiYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHF1ZXVlVGFzayhUYXNrU291cmNlLCBFdmVu
dExvb3A6OlRhc2tGdW5jdGlvbiYmKTsKKyAgICB1c2luZyBUYXNrSWRlbnRpZmllciA9IEV2ZW50
TG9vcDo6VGFza0lkZW50aWZpZXI7CisKKyAgICBUYXNrSWRlbnRpZmllciBxdWV1ZVRhc2soc3Rk
Ojp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFRhc2tJ
ZGVudGlmaWVyIHF1ZXVlVGFzayhUYXNrU291cmNlLCBFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYm
KTsKKyAgICBib29sIGNhbmNlbFRhc2soVGFza0lkZW50aWZpZXIpOworCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBxdWV1ZUNhbmNlbGFibGVUYXNrKFRhc2tTb3VyY2UsIEV2ZW50TG9vcDo6VGFz
a0Z1bmN0aW9uJiYpOwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3F1ZXVlLWEtbWljcm90YXNrCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBxdWV1ZU1pY3JvdGFzayhFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCAwN2NiMTY0YWVlMWFl
MDgxNmJjZDE1NjQ0MzQzOGRlMGVmNTY5MGFiLi41NjhiNjVkMTBjZGI3NTMwZGM3NGU0NWU4MDQ5
ZGQ4ZWIxYTY1NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
Y3BwCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRl
ICJFdmVudFNlbmRlci5oIgogI2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxTdW1tYXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAg
LTQzLDEyICs0Miw2IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MRGV0YWlsc0Vs
ZW1lbnQpOwogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgRGV0YWlsRXZl
bnRTZW5kZXImIGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8RGV0YWlsRXZlbnRTZW5kZXI+IHNoYXJlZFRvZ2dsZUV2ZW50U2VuZGVyKGV2ZW50
TmFtZXMoKS50b2dnbGVFdmVudCk7Ci0gICAgcmV0dXJuIHNoYXJlZFRvZ2dsZUV2ZW50U2VuZGVy
OwotfQotCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgc3VtbWFyeVNsb3ROYW1lKCkKIHsKICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1bW1h
cnlTbG90KCJzdW1tYXJ5U2xvdCIpOwpAQCAtOTgsMTAgKzkxLDcgQEAgSFRNTERldGFpbHNFbGVt
ZW50OjpIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGQKICAgICBBU1NFUlQoaGFzVGFnTmFtZShkZXRhaWxzVGFnKSk7CiB9CiAKLUhUTUxE
ZXRhaWxzRWxlbWVudDo6fkhUTUxEZXRhaWxzRWxlbWVudCgpCi17Ci0gICAgZGV0YWlsVG9nZ2xl
RXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7Ci19CitIVE1MRGV0YWlsc0VsZW1lbnQ6
On5IVE1MRGV0YWlsc0VsZW1lbnQoKSA9IGRlZmF1bHQ7CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHls
ZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewpAQCAtMTEyLDExICsxMDIs
MTEgQEAgdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3Qo
U2hhZG93Um9vdCYgcm9vdCkKIHsKICAgICBhdXRvIHN1bW1hcnlTbG90ID0gSFRNTFNsb3RFbGVt
ZW50OjpjcmVhdGUoc2xvdFRhZywgZG9jdW1lbnQoKSk7CiAgICAgc3VtbWFyeVNsb3QtPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24obmFtZUF0dHIsIHN1bW1hcnlTbG90TmFtZSgp
KTsKLSAgICBtX3N1bW1hcnlTbG90ID0gc3VtbWFyeVNsb3QucHRyKCk7CisgICAgbV9zdW1tYXJ5
U2xvdCA9IG1ha2VXZWFrUHRyKHN1bW1hcnlTbG90KTsKIAogICAgIGF1dG8gZGVmYXVsdFN1bW1h
cnkgPSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCgpKTsK
ICAgICBkZWZhdWx0U3VtbWFyeS0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCks
IGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSkpOwotICAgIG1fZGVmYXVsdFN1bW1hcnkgPSBk
ZWZhdWx0U3VtbWFyeS5wdHIoKTsKKyAgICBtX2RlZmF1bHRTdW1tYXJ5ID0gbWFrZVdlYWtQdHIo
ZGVmYXVsdFN1bW1hcnkpOwogCiAgICAgc3VtbWFyeVNsb3QtPmFwcGVuZENoaWxkKGRlZmF1bHRT
dW1tYXJ5KTsKICAgICByb290LmFwcGVuZENoaWxkKHN1bW1hcnlTbG90KTsKQEAgLTEzNiwxMyAr
MTI2LDcgQEAgYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBI
VE1MU3VtbWFyeUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICBhdXRvIHNsb3QgPSBtYWtlUmVm
UHRyKHNoYWRvd1Jvb3QoKS0+ZmluZEFzc2lnbmVkU2xvdChzdW1tYXJ5KSk7CiAgICAgaWYgKCFz
bG90KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHNsb3QgPT0gbV9zdW1tYXJ5
U2xvdDsKLX0KLQotdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmRpc3BhdGNoUGVuZGluZ0V2ZW50
KERldGFpbEV2ZW50U2VuZGVyKiBldmVudFNlbmRlcikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGV2
ZW50U2VuZGVyLCBldmVudFNlbmRlciA9PSAmZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKSk7Ci0g
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS50b2dnbGVFdmVudCwg
RXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisgICAgcmV0
dXJuIHNsb3QgPT0gbV9zdW1tYXJ5U2xvdC5nZXQoKTsKIH0KIAogdm9pZCBIVE1MRGV0YWlsc0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQpAQCAtMTU5LDggKzE0MywxMiBAQCB2b2lkIEhUTUxEZXRhaWxzRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cgogICAgICAgICAgICAgICAgIHJvb3QtPnJlbW92ZUNoaWxkKCptX2RlZmF1bHRTbG90KTsK
IAogICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZGV0YWlscy1u
b3RpZmljYXRpb24tdGFzay1zdGVwcy4KLSAgICAgICAgICAgIGRldGFpbFRvZ2dsZUV2ZW50U2Vu
ZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwotICAgICAgICAgICAgZGV0YWlsVG9nZ2xlRXZlbnRT
ZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9vcGVu
RXZlbnRUYXNrICE9IEV2ZW50TG9vcDo6VGFza0lkZW50aWZpZXI6OkludmFsaWQpCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQoKS5ldmVudExvb3AoKS5jYW5jZWxUYXNrKG1fb3BlbkV2ZW50VGFz
ayk7CisKKyAgICAgICAgICAgIG1fb3BlbkV2ZW50VGFzayA9IGRvY3VtZW50KCkuZXZlbnRMb29w
KCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3Byb3RlY3RlZFRoaXMg
PSBHQ1JlYWNoYWJsZVJlZiB7ICp0aGlzIH1dKCkgeworICAgICAgICAgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudG9nZ2xlRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgSFRNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRh
aWxzRWxlbWVudC5oCmluZGV4IGEwZTAxMDVlZDJkZTA1ZWYzNWI1MGFhZGRjZWJmMTMzNTBjMWU5
NmUuLjdkY2I4ZWEzNzNiOTFhODAwMTAzNjA0ZGEwZTM0OTNhMDZiMTM5ZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtMjEsMTUgKzIxLDEzIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1l
bnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEV2ZW50U2VuZGVyOwotdXNpbmcgRGV0YWlsRXZl
bnRTZW5kZXIgPSBFdmVudFNlbmRlcjxIVE1MRGV0YWlsc0VsZW1lbnQ+OwotCiBjbGFzcyBIVE1M
RGV0YWlsc0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSFRNTERldGFpbHNFbGVtZW50KTsKIHB1YmxpYzoKQEAgLTQwLDggKzM4
LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc09wZW4oKSBjb25zdCB7IHJldHVybiBtX2lzT3Bl
bjsgfQogICAgIGJvb2wgaXNBY3RpdmVTdW1tYXJ5KGNvbnN0IEhUTUxTdW1tYXJ5RWxlbWVudCYp
IGNvbnN0OwotCi0gICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdFdmVudChEZXRhaWxFdmVudFNlbmRl
ciopOwogICAgIAogcHJpdmF0ZToKICAgICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC01NCw5ICs1MCwxMCBAQCBwcml2YXRlOgogICAgIGJv
b2wgaXNJbnRlcmFjdGl2ZUNvbnRlbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICBib29sIG1faXNPcGVuIHsgZmFsc2UgfTsKLSAgICBIVE1MU2xvdEVsZW1lbnQqIG1fc3Vt
bWFyeVNsb3QgeyBudWxscHRyIH07Ci0gICAgSFRNTFN1bW1hcnlFbGVtZW50KiBtX2RlZmF1bHRT
dW1tYXJ5IHsgbnVsbHB0ciB9OworICAgIFdlYWtQdHI8SFRNTFNsb3RFbGVtZW50PiBtX3N1bW1h
cnlTbG90OworICAgIFdlYWtQdHI8SFRNTFN1bW1hcnlFbGVtZW50PiBtX2RlZmF1bHRTdW1tYXJ5
OwogICAgIFJlZlB0cjxIVE1MU2xvdEVsZW1lbnQ+IG1fZGVmYXVsdFNsb3Q7CisgICAgRXZlbnRM
b29wOjpUYXNrSWRlbnRpZmllciBtX29wZW5FdmVudFRhc2s7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCg==
</data>
<flag name="commit-queue"
          id="457139"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>