<?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>229632</bug_id>
          
          <creation_ts>2021-08-27 15:15:52 -0700</creation_ts>
          <short_desc>Web Inspector: Refactor `WorkerInspectorAgent` to use weak pointers for `WorkerInspectorProxy`s</short_desc>
          <delta_ts>2021-08-30 18:42:04 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick Angle">pangle</reporter>
          <assigned_to name="Patrick Angle">pangle</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1788198</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-08-27 15:15:52 -0700</bug_when>
    <thetext>&lt;rdar://68207416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788257</commentid>
    <comment_count>1</comment_count>
      <attachid>436698</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-08-27 17:54:52 -0700</bug_when>
    <thetext>Created attachment 436698
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788276</commentid>
    <comment_count>2</comment_count>
      <attachid>436698</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-08-27 22:54:41 -0700</bug_when>
    <thetext>Comment on attachment 436698
Patch v1.0

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

&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:136
&gt; +    ASSERT(!m_connectedProxies.isEmpty());

Oops. Not sure why or how I managed to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788277</commentid>
    <comment_count>3</comment_count>
      <attachid>436705</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-08-27 22:57:37 -0700</bug_when>
    <thetext>Created attachment 436705
Patch v1.1 - Fix erroneous assertion change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788538</commentid>
    <comment_count>4</comment_count>
      <attachid>436705</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-30 09:35:25 -0700</bug_when>
    <thetext>Comment on attachment 436705
Patch v1.1 - Fix erroneous assertion change

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

&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:142
&gt; +        Document&amp; document = downcast&lt;Document&gt;(*proxy.scriptExecutionContext());

auto&amp;

&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:152
&gt; +    for (auto proxy : copyToVector(m_connectedProxies.values())) {

auto&amp; ?

&gt; Source/WebCore/workers/WorkerInspectorProxy.h:44
&gt; +class WorkerInspectorProxy : public RefCounted&lt;WorkerInspectorProxy&gt;, public CanMakeWeakPtr&lt;WorkerInspectorProxy&gt; {

Why did you make this RefCounted? I didn&apos;t see an obvious reason from this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788601</commentid>
    <comment_count>5</comment_count>
      <attachid>436705</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-08-30 11:56:48 -0700</bug_when>
    <thetext>Comment on attachment 436705
Patch v1.1 - Fix erroneous assertion change

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

&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:85
&gt; +    auto proxy = m_connectedProxies.get(workerId);

I think the new rules/guidelines around referencing are that we need to `ref` this so that it&apos;s kept alive in case something inside `resumeWorkerIfPaused` were to cause it to be destroyed.
```
    auto proxy = makeRefPtr(m_connectedProxies.get(workerId).get());
```

&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:99
&gt; +    auto proxy = m_connectedProxies.get(workerId);

ditto (:85)

&gt; Source/WebCore/workers/WorkerInspectorProxy.cpp:42
&gt; +WeakHashSet&lt;WorkerInspectorProxy&gt;&amp; WorkerInspectorProxy::allWorkerInspectorProxies()

this is a bit odd IMO since we already have code to add/remove instances inside the constructor and destructor, so we&apos;re not really taking advantage of the functionality of `WeakPtr`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788604</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-30 12:04:22 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; Comment on attachment 436705 [details]
&gt; Patch v1.1 - Fix erroneous assertion change
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=436705&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:85
&gt; &gt; +    auto proxy = m_connectedProxies.get(workerId);
&gt; 
&gt; I think the new rules/guidelines around referencing are that we need to
&gt; `ref` this so that it&apos;s kept alive in case something inside
&gt; `resumeWorkerIfPaused` were to cause it to be destroyed.
&gt; ```
&gt;     auto proxy = makeRefPtr(m_connectedProxies.get(workerId).get());
&gt; ```
&gt; 
&gt; &gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:99
&gt; &gt; +    auto proxy = m_connectedProxies.get(workerId);
&gt; 
&gt; ditto (:85)
&gt; 
&gt; &gt; Source/WebCore/workers/WorkerInspectorProxy.cpp:42
&gt; &gt; +WeakHashSet&lt;WorkerInspectorProxy&gt;&amp; WorkerInspectorProxy::allWorkerInspectorProxies()
&gt; 
&gt; this is a bit odd IMO since we already have code to add/remove instances
&gt; inside the constructor and destructor, so we&apos;re not really taking advantage
&gt; of the functionality of `WeakPtr`

I don&apos;t think this is odd, this is exactly how we&apos;re supposed to use WeakHashSet.
We don&apos;t want to store raw pointers for security reasons. We still need to remove from the set on destruction because WeakHashSet doesn&apos;t do that for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788607</commentid>
    <comment_count>7</comment_count>
      <attachid>436705</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-30 12:05:48 -0700</bug_when>
    <thetext>Comment on attachment 436705
Patch v1.1 - Fix erroneous assertion change

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

&gt;&gt;&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:85
&gt;&gt;&gt; +    auto proxy = m_connectedProxies.get(workerId);
&gt;&gt; 
&gt;&gt; I think the new rules/guidelines around referencing are that we need to `ref` this so that it&apos;s kept alive in case something inside `resumeWorkerIfPaused` were to cause it to be destroyed.
&gt;&gt; ```
&gt;&gt;     auto proxy = makeRefPtr(m_connectedProxies.get(workerId).get());
&gt;&gt; ```
&gt; 
&gt; I don&apos;t think this is odd, this is exactly how we&apos;re supposed to use WeakHashSet.
&gt; We don&apos;t want to store raw pointers for security reasons. We still need to remove from the set on destruction because WeakHashSet doesn&apos;t do that for you.

Also, please don&apos;t use makeRef() / makeRefPtr() as they are deprecated. You could use this if you wanted to ref:
RefPtr proxy  = m_connectedProxies.get(workerId);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788630</commentid>
    <comment_count>8</comment_count>
      <attachid>436803</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-08-30 13:12:40 -0700</bug_when>
    <thetext>Created attachment 436803
Patch v1.2 - Address review notes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788641</commentid>
    <comment_count>9</comment_count>
      <attachid>436803</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-30 13:34:48 -0700</bug_when>
    <thetext>Comment on attachment 436803
Patch v1.2 - Address review notes

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

r=me with nits.

&gt; Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp:155
&gt; +        if (!proxyWeakPtr)

It looks better do do the null check after assigning to a strong pointer:
```
RefPtr proxy = proxyWeakPtr.get();
if (!proxy)
    continue;
```

&gt; Source/WebCore/workers/WorkerInspectorProxy.h:80
&gt; +    WorkerInspectorProxy(const String&amp; identifier);

Should be marked explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788743</commentid>
    <comment_count>10</comment_count>
      <attachid>436832</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-08-30 17:24:45 -0700</bug_when>
    <thetext>Created attachment 436832
Patch v1.3 - Review nits, add reviewer to Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788764</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-30 18:42:02 -0700</bug_when>
    <thetext>Committed r281787 (241124@main): &lt;https://commits.webkit.org/241124@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436832.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436698</attachid>
            <date>2021-08-27 17:54:52 -0700</date>
            <delta_ts>2021-08-27 22:57:35 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-229632-20210827175451.patch</filename>
            <type>text/plain</type>
            <size>10097</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUxNjc4ZjZmODAyYjAx
NDA1YTZlOTc4MjYxY2M2MTljZmUyY2Y1MS4uZWY5MGRkNjhmYTE0Yjk5MTQ1YTAxNDlkYWI4ZWFi
ZTE4NDliZjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA4LTI3ICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZWZhY3RvciBgV29ya2VySW5zcGVjdG9yQWdlbnRgIHVzZSB3ZWFrIHBvaW50ZXJzIGZvciBgV29y
a2VySW5zcGVjdG9yUHJveHlgcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI5NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivd29ya2VyLyoKKworICAgICAgICBNYWtlIGBXb3JrZXJJbnNwZWN0b3JQcm94eWAgcmVm
ZXJlbmNlIGNvdW50ZWQsIGFuZCB1c2UgYFdlYWtQdHJgcyB0byB0aGVtIGluIGBJbnNwZWN0b3JX
b3JrZXJBZ2VudGAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldvcmtl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50Ojppbml0
aWFsaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1l
c3NhZ2VUb1dvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
Y29ubmVjdFRvQWxsV29ya2VySW5zcGVjdG9yUHJveGllc0ZvclBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2Nvbm5lY3RGcm9tQWxsV29ya2VySW5zcGVj
dG9yUHJveGllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y29u
bmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3BlY3Rv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvclByb3h5OjphbGxX
b3JrZXJJbnNwZWN0b3JQcm94aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3Rv
clByb3h5Ojp3b3JrZXJTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3Rv
clByb3h5Ojp3b3JrZXJUZXJtaW5hdGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3Bl
Y3RvclByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94eSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorCiAyMDIxLTA4LTI0
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5wcmVmaXggLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4
IDMzY2FhMGFhMjA3OWFkNDA4MWNjMjk2MDVhNTM1MzdjMjRkNjZiZWYuLjQwY2UzMGI4MjZhNzVl
MjU2OWExYmRhMGJmYjQ1ZmYwMjkxZWZjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC04Miw3ICs4
Miw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvcldvcmtlckFnZW50
OjpkaXNhYmxlKCkKIAogUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gSW5zcGVjdG9yV29y
a2VyQWdlbnQ6OmluaXRpYWxpemVkKGNvbnN0IFN0cmluZyYgd29ya2VySWQpCiB7Ci0gICAgV29y
a2VySW5zcGVjdG9yUHJveHkqIHByb3h5ID0gbV9jb25uZWN0ZWRQcm94aWVzLmdldCh3b3JrZXJJ
ZCk7CisgICAgYXV0byBwcm94eSA9IG1fY29ubmVjdGVkUHJveGllcy5nZXQod29ya2VySWQpOwog
ICAgIGlmICghcHJveHkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiTWlzc2luZyB3
b3JrZXIgZm9yIGdpdmVuIHdvcmtlcklkIl9zKTsKIApAQCAtOTYsNyArOTYsNyBAQCBQcm90b2Nv
bDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VU
b1dvcmtlcihjb25zdCBTdAogICAgIGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoIldvcmtlciBkb21haW4gbXVzdCBiZSBlbmFibGVkIl9zKTsKIAotICAgIFdv
cmtlckluc3BlY3RvclByb3h5KiBwcm94eSA9IG1fY29ubmVjdGVkUHJveGllcy5nZXQod29ya2Vy
SWQpOworICAgIGF1dG8gcHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKTsK
ICAgICBpZiAoIXByb3h5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1pc3Npbmcg
d29ya2VyIGZvciBnaXZlbiB3b3JrZXJJZCJfcyk7CiAKQEAgLTEzMywyNCArMTMzLDI2IEBAIHZv
aWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OndvcmtlclRlcm1pbmF0ZWQoV29ya2VySW5zcGVjdG9y
UHJveHkmIHByb3h5KQogCiB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojpjb25uZWN0VG9BbGxX
b3JrZXJJbnNwZWN0b3JQcm94aWVzRm9yUGFnZSgpCiB7Ci0gICAgQVNTRVJUKG1fY29ubmVjdGVk
UHJveGllcy5pc0VtcHR5KCkpOworICAgIEFTU0VSVCghbV9jb25uZWN0ZWRQcm94aWVzLmlzRW1w
dHkoKSk7CiAKLSAgICBmb3IgKGF1dG8qIHByb3h5IDogV29ya2VySW5zcGVjdG9yUHJveHk6OmFs
bFdvcmtlckluc3BlY3RvclByb3hpZXMoKSkgewotICAgICAgICBpZiAoIWlzPERvY3VtZW50Pihw
cm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICBmb3IgKGF1dG8mIHByb3h5IDog
V29ya2VySW5zcGVjdG9yUHJveHk6OmFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKSkgeworICAg
ICAgICBpZiAoIWlzPERvY3VtZW50Pihwcm94eS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KCpwcm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAg
ICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpwcm94eS5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwogICAgICAgICBpZiAoZG9jdW1lbnQucGFnZSgpICE9ICZtX3Bh
Z2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBjb25uZWN0VG9Xb3JrZXJJbnNw
ZWN0b3JQcm94eSgqcHJveHkpOworICAgICAgICBjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQcm94
eShwcm94eSk7CiAgICAgfQogfQogCiB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaXNjb25u
ZWN0RnJvbUFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKQogewotICAgIGZvciAoYXV0byogcHJv
eHkgOiBjb3B5VG9WZWN0b3IobV9jb25uZWN0ZWRQcm94aWVzLnZhbHVlcygpKSkKLSAgICAgICAg
cHJveHktPmRpc2Nvbm5lY3RGcm9tV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIGZv
ciAoYXV0byBwcm94eSA6IGNvcHlUb1ZlY3RvcihtX2Nvbm5lY3RlZFByb3hpZXMudmFsdWVzKCkp
KSB7CisgICAgICAgIGlmIChwcm94eSkKKyAgICAgICAgICAgIHByb3h5LT5kaXNjb25uZWN0RnJv
bVdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICB9CiAKICAgICBtX2Nvbm5lY3RlZFBy
b3hpZXMuY2xlYXIoKTsKIH0KQEAgLTE1OSw3ICsxNjEsNyBAQCB2b2lkIEluc3BlY3Rvcldvcmtl
ckFnZW50Ojpjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQcm94eShXb3JrZXJJbnNwZWN0b3JQcm94
eSYgcAogewogICAgIHByb3h5LmNvbm5lY3RUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKnRo
aXMpOwogCi0gICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksICZw
cm94eSk7CisgICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksIG1h
a2VXZWFrUHRyKHByb3h5KSk7CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d29ya2VyQ3Jl
YXRlZChwcm94eS5pZGVudGlmaWVyKCksIHByb3h5LnVybCgpLnN0cmluZygpLCBwcm94eS5uYW1l
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDYzNmJjODFkZDVhNTBhZWUwNTNjMmUwNGU2ODY5OWQz
ZmE2YjY0ZWYuLjkwNTY3YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldvcmtl
ckFnZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNw
ZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcg
KzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlz
cGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAogICAgIFBhZ2UmIG1fcGFnZTsKLSAgICBI
YXNoTWFwPFN0cmluZywgV29ya2VySW5zcGVjdG9yUHJveHkqPiBtX2Nvbm5lY3RlZFByb3hpZXM7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+PiBtX2Nv
bm5lY3RlZFByb3hpZXM7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRleCA2
MzJiODJlMjhiNzJkYTYxMzcxYzI0ZWJmYmFmMmRkNTU5MTBkMDcxLi5iYTExZGRhMTY3ZmUxMGEx
MjFjZDExY2I5YmUyN2Q5MmJjNTE4MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtMzksOSArMzksOSBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAotSGFzaFNldDxXb3JrZXJJbnNw
ZWN0b3JQcm94eSo+JiBXb3JrZXJJbnNwZWN0b3JQcm94eTo6YWxsV29ya2VySW5zcGVjdG9yUHJv
eGllcygpCitXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIFdvcmtlckluc3BlY3Rv
clByb3h5OjphbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eSo+PiBwcm94aWVzOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4+IHBy
b3hpZXM7CiAgICAgcmV0dXJuIHByb3hpZXM7CiB9CiAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBX
b3JrZXJJbnNwZWN0b3JQcm94eTo6d29ya2VyU3RhcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb24KICAgICBtX3VybCA9IHVybDsKICAgICBtX25hbWUgPSBuYW1lOwog
Ci0gICAgYWxsV29ya2VySW5zcGVjdG9yUHJveGllcygpLmFkZCh0aGlzKTsKKyAgICBhbGxXb3Jr
ZXJJbnNwZWN0b3JQcm94aWVzKCkuYWRkKCp0aGlzKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d29ya2VyU3RhcnRlZCgqdGhpcyk7CiB9CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQg
V29ya2VySW5zcGVjdG9yUHJveHk6OndvcmtlclRlcm1pbmF0ZWQoKQogCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKCp0aGlzKTsKIAotICAgIGFsbFdvcmtl
ckluc3BlY3RvclByb3hpZXMoKS5yZW1vdmUodGhpcyk7CisgICAgYWxsV29ya2VySW5zcGVjdG9y
UHJveGllcygpLnJlbW92ZSgqdGhpcyk7CiAKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
PSBudWxscHRyOwogICAgIG1fd29ya2VyVGhyZWFkID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaAppbmRleCA1ZThhMWRjMGVkMGQ5YWE1
MzJjMzY3NDY0Yzg2N2ZiNGY3ZjlhYTVmLi40MjA3YmIzZmU5M2Q3YTdhMjEyNWNkODU1OWNjOGVl
NzE1NDA2NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3Bl
Y3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQ
cm94eS5oCkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAvLyBBbGwgb2YgdGhlc2Ug
bWV0aG9kcyBzaG91bGQgYmUgY2FsbGVkIG9uIHRoZSBNYWluIFRocmVhZC4KQEAgLTQwLDExICs0
MSwxNSBAQCBjbGFzcyBXb3JrZXJUaHJlYWQ7CiAKIGVudW0gY2xhc3MgV29ya2VyVGhyZWFkU3Rh
cnRNb2RlOwogCi1jbGFzcyBXb3JrZXJJbnNwZWN0b3JQcm94eSB7CitjbGFzcyBXb3JrZXJJbnNw
ZWN0b3JQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckluc3BlY3RvclByb3h5PiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFdvcmtlckluc3BlY3RvclByb3h5PiB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV29ya2VySW5zcGVjdG9yUHJveHkpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIFdvcmtlckluc3BlY3RvclByb3h5KGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdvcmtlckluc3BlY3RvclByb3h5KGlkZW50aWZpZXIpKTsKKyAgICB9CisKICAgICB+
V29ya2VySW5zcGVjdG9yUHJveHkoKTsKIAogICAgIC8vIEEgV29ya2VyJ3MgaW5zcGVjdG9yIG1l
c3NhZ2VzIGNvbWUgaW4gYW5kIGdvIG91dCB0aHJvdWdoIHRoZSBQYWdlJ3MgV29ya2VyQWdlbnQu
CkBAIC01NCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNz
YWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBjb25zdCBTdHJp
bmcmKSA9IDA7CiAgICAgfTsKIAotICAgIHN0YXRpYyBIYXNoU2V0PFdvcmtlckluc3BlY3RvclBy
b3h5Kj4mIGFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKTsKKyAgICBzdGF0aWMgV2Vha0hhc2hT
ZXQ8V29ya2VySW5zcGVjdG9yUHJveHk+JiBhbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCk7CiAK
ICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkBAIC03Miw2ICs3Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJik7CiAKIHByaXZhdGU6CisgICAgV29ya2VySW5zcGVjdG9yUHJveHkoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKTsKKwogICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgUmVmUHRyPFdvcmtlclRocmVhZD4gbV93b3Jr
ZXJUaHJlYWQ7CiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggZDZlYTU5MjYxODgyNzgxNjY3
Y2RjY2VkZDIyMTZmOTg5NGVlYTQ4Yy4uMGFkMjBiNWFkM2YxZDE4ZjhkOTA0NTUxOGMwMGFlYmJl
ODQzMWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgV29ya2VyR2xvYmFsU2NvcGVQcm94eSYgV29ya2Vy
R2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKFdvcmtlciYgd29ya2VyKQogCiBXb3JrZXJNZXNzYWdp
bmdQcm94eTo6V29ya2VyTWVzc2FnaW5nUHJveHkoV29ya2VyJiB3b3JrZXJPYmplY3QpCiAgICAg
OiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQod29ya2VyT2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAsIG1faW5zcGVjdG9yUHJveHkobWFrZVVuaXF1ZTxXb3JrZXJJbnNwZWN0
b3JQcm94eT4od29ya2VyT2JqZWN0LmlkZW50aWZpZXIoKSkpCisgICAgLCBtX2luc3BlY3RvclBy
b3h5KFdvcmtlckluc3BlY3RvclByb3h5OjpjcmVhdGUod29ya2VyT2JqZWN0LmlkZW50aWZpZXIo
KSkpCiAgICAgLCBtX3dvcmtlck9iamVjdCgmd29ya2VyT2JqZWN0KQogewogICAgIEFTU0VSVCgo
aXM8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGlzTWFpblRocmVhZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4
IGEzOGNlODZkMDllN2FlOGQwZjc3ODczYjJhOGVjNDExNmM3Nzc3N2EuLjAwNTk0ZjNmNTZiMGZm
MWE3YzQ3NGU2MmQ3YjNmZDI1N2UzMzczZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICBX
b3JrZXIqIHdvcmtlck9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0OyB9CiAK
ICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gbV9pbnNwZWN0
b3JQcm94eTsKKyAgICBSZWZQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+IG1faW5zcGVjdG9yUHJv
eHk7CiAgICAgV29ya2VyKiBtX3dvcmtlck9iamVjdDsKICAgICBib29sIG1fbWF5QmVEZXN0cm95
ZWQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IG1fd29ya2Vy
VGhyZWFkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436705</attachid>
            <date>2021-08-27 22:57:37 -0700</date>
            <delta_ts>2021-08-30 13:12:38 -0700</delta_ts>
            <desc>Patch v1.1 - Fix erroneous assertion change</desc>
            <filename>bug-229632-20210827225736.patch</filename>
            <type>text/plain</type>
            <size>9977</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUxNjc4ZjZmODAyYjAx
NDA1YTZlOTc4MjYxY2M2MTljZmUyY2Y1MS4uZWY5MGRkNjhmYTE0Yjk5MTQ1YTAxNDlkYWI4ZWFi
ZTE4NDliZjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA4LTI3ICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZWZhY3RvciBgV29ya2VySW5zcGVjdG9yQWdlbnRgIHVzZSB3ZWFrIHBvaW50ZXJzIGZvciBgV29y
a2VySW5zcGVjdG9yUHJveHlgcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI5NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivd29ya2VyLyoKKworICAgICAgICBNYWtlIGBXb3JrZXJJbnNwZWN0b3JQcm94eWAgcmVm
ZXJlbmNlIGNvdW50ZWQsIGFuZCB1c2UgYFdlYWtQdHJgcyB0byB0aGVtIGluIGBJbnNwZWN0b3JX
b3JrZXJBZ2VudGAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldvcmtl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50Ojppbml0
aWFsaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1l
c3NhZ2VUb1dvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
Y29ubmVjdFRvQWxsV29ya2VySW5zcGVjdG9yUHJveGllc0ZvclBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2Nvbm5lY3RGcm9tQWxsV29ya2VySW5zcGVj
dG9yUHJveGllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y29u
bmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3BlY3Rv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvclByb3h5OjphbGxX
b3JrZXJJbnNwZWN0b3JQcm94aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3Rv
clByb3h5Ojp3b3JrZXJTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3Rv
clByb3h5Ojp3b3JrZXJUZXJtaW5hdGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3Bl
Y3RvclByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94eSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorCiAyMDIxLTA4LTI0
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5wcmVmaXggLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4
IDMzY2FhMGFhMjA3OWFkNDA4MWNjMjk2MDVhNTM1MzdjMjRkNjZiZWYuLmE5NzIzYTlmODhiMjRi
ZWUyNzE0ZTg5NzFlZjRjM2UwODQxODg1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC04Miw3ICs4
Miw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvcldvcmtlckFnZW50
OjpkaXNhYmxlKCkKIAogUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gSW5zcGVjdG9yV29y
a2VyQWdlbnQ6OmluaXRpYWxpemVkKGNvbnN0IFN0cmluZyYgd29ya2VySWQpCiB7Ci0gICAgV29y
a2VySW5zcGVjdG9yUHJveHkqIHByb3h5ID0gbV9jb25uZWN0ZWRQcm94aWVzLmdldCh3b3JrZXJJ
ZCk7CisgICAgYXV0byBwcm94eSA9IG1fY29ubmVjdGVkUHJveGllcy5nZXQod29ya2VySWQpOwog
ICAgIGlmICghcHJveHkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiTWlzc2luZyB3
b3JrZXIgZm9yIGdpdmVuIHdvcmtlcklkIl9zKTsKIApAQCAtOTYsNyArOTYsNyBAQCBQcm90b2Nv
bDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VU
b1dvcmtlcihjb25zdCBTdAogICAgIGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoIldvcmtlciBkb21haW4gbXVzdCBiZSBlbmFibGVkIl9zKTsKIAotICAgIFdv
cmtlckluc3BlY3RvclByb3h5KiBwcm94eSA9IG1fY29ubmVjdGVkUHJveGllcy5nZXQod29ya2Vy
SWQpOworICAgIGF1dG8gcHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKTsK
ICAgICBpZiAoIXByb3h5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1pc3Npbmcg
d29ya2VyIGZvciBnaXZlbiB3b3JrZXJJZCJfcyk7CiAKQEAgLTEzNSwyMiArMTM1LDI0IEBAIHZv
aWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb0FsbFdvcmtlckluc3BlY3RvclByb3hp
ZXNGb3JQYWdlKCkKIHsKICAgICBBU1NFUlQobV9jb25uZWN0ZWRQcm94aWVzLmlzRW1wdHkoKSk7
CiAKLSAgICBmb3IgKGF1dG8qIHByb3h5IDogV29ya2VySW5zcGVjdG9yUHJveHk6OmFsbFdvcmtl
ckluc3BlY3RvclByb3hpZXMoKSkgewotICAgICAgICBpZiAoIWlzPERvY3VtZW50Pihwcm94eS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICBmb3IgKGF1dG8mIHByb3h5IDogV29ya2Vy
SW5zcGVjdG9yUHJveHk6OmFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKSkgeworICAgICAgICBp
ZiAoIWlzPERvY3VtZW50Pihwcm94eS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCpwcm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpwcm94eS5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwogICAgICAgICBpZiAoZG9jdW1lbnQucGFnZSgpICE9ICZtX3BhZ2UpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQ
cm94eSgqcHJveHkpOworICAgICAgICBjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQcm94eShwcm94
eSk7CiAgICAgfQogfQogCiB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaXNjb25uZWN0RnJv
bUFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKQogewotICAgIGZvciAoYXV0byogcHJveHkgOiBj
b3B5VG9WZWN0b3IobV9jb25uZWN0ZWRQcm94aWVzLnZhbHVlcygpKSkKLSAgICAgICAgcHJveHkt
PmRpc2Nvbm5lY3RGcm9tV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIGZvciAoYXV0
byBwcm94eSA6IGNvcHlUb1ZlY3RvcihtX2Nvbm5lY3RlZFByb3hpZXMudmFsdWVzKCkpKSB7Cisg
ICAgICAgIGlmIChwcm94eSkKKyAgICAgICAgICAgIHByb3h5LT5kaXNjb25uZWN0RnJvbVdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICB9CiAKICAgICBtX2Nvbm5lY3RlZFByb3hpZXMu
Y2xlYXIoKTsKIH0KQEAgLTE1OSw3ICsxNjEsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50
Ojpjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQcm94eShXb3JrZXJJbnNwZWN0b3JQcm94eSYgcAog
ewogICAgIHByb3h5LmNvbm5lY3RUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKnRoaXMpOwog
Ci0gICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksICZwcm94eSk7
CisgICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCksIG1ha2VXZWFr
UHRyKHByb3h5KSk7CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d29ya2VyQ3JlYXRlZChw
cm94eS5pZGVudGlmaWVyKCksIHByb3h5LnVybCgpLnN0cmluZygpLCBwcm94eS5uYW1lKCkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oCmluZGV4IDYzNmJjODFkZDVhNTBhZWUwNTNjMmUwNGU2ODY5OWQzZmE2YjY0
ZWYuLjkwNTY3YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JG
cm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzcxLDcg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hl
cj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAogICAgIFBhZ2UmIG1fcGFnZTsKLSAgICBIYXNoTWFw
PFN0cmluZywgV29ya2VySW5zcGVjdG9yUHJveHkqPiBtX2Nvbm5lY3RlZFByb3hpZXM7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+PiBtX2Nvbm5lY3Rl
ZFByb3hpZXM7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRleCA2MzJiODJl
MjhiNzJkYTYxMzcxYzI0ZWJmYmFmMmRkNTU5MTBkMDcxLi5iYTExZGRhMTY3ZmUxMGExMjFjZDEx
Y2I5YmUyN2Q5MmJjNTE4MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckluc3BlY3RvclByb3h5LmNwcApAQCAtMzksOSArMzksOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAotSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQ
cm94eSo+JiBXb3JrZXJJbnNwZWN0b3JQcm94eTo6YWxsV29ya2VySW5zcGVjdG9yUHJveGllcygp
CitXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIFdvcmtlckluc3BlY3RvclByb3h5
OjphbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eSo+PiBwcm94aWVzOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4+IHByb3hpZXM7
CiAgICAgcmV0dXJuIHByb3hpZXM7CiB9CiAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBXb3JrZXJJ
bnNwZWN0b3JQcm94eTo6d29ya2VyU3RhcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb24KICAgICBtX3VybCA9IHVybDsKICAgICBtX25hbWUgPSBuYW1lOwogCi0gICAg
YWxsV29ya2VySW5zcGVjdG9yUHJveGllcygpLmFkZCh0aGlzKTsKKyAgICBhbGxXb3JrZXJJbnNw
ZWN0b3JQcm94aWVzKCkuYWRkKCp0aGlzKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d29ya2VyU3RhcnRlZCgqdGhpcyk7CiB9CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgV29ya2Vy
SW5zcGVjdG9yUHJveHk6OndvcmtlclRlcm1pbmF0ZWQoKQogCiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKCp0aGlzKTsKIAotICAgIGFsbFdvcmtlckluc3Bl
Y3RvclByb3hpZXMoKS5yZW1vdmUodGhpcyk7CisgICAgYWxsV29ya2VySW5zcGVjdG9yUHJveGll
cygpLnJlbW92ZSgqdGhpcyk7CiAKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBudWxs
cHRyOwogICAgIG1fd29ya2VyVGhyZWFkID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaAppbmRleCA1ZThhMWRjMGVkMGQ5YWE1MzJjMzY3
NDY0Yzg2N2ZiNGY3ZjlhYTVmLi40MjA3YmIzZmU5M2Q3YTdhMjEyNWNkODU1OWNjOGVlNzE1NDA2
NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5o
CkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAvLyBBbGwgb2YgdGhlc2UgbWV0aG9k
cyBzaG91bGQgYmUgY2FsbGVkIG9uIHRoZSBNYWluIFRocmVhZC4KQEAgLTQwLDExICs0MSwxNSBA
QCBjbGFzcyBXb3JrZXJUaHJlYWQ7CiAKIGVudW0gY2xhc3MgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
OwogCi1jbGFzcyBXb3JrZXJJbnNwZWN0b3JQcm94eSB7CitjbGFzcyBXb3JrZXJJbnNwZWN0b3JQ
cm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckluc3BlY3RvclByb3h5PiwgcHVibGljIENh
bk1ha2VXZWFrUHRyPFdvcmtlckluc3BlY3RvclByb3h5PiB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV29ya2VySW5zcGVjdG9yUHJveHkpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIFdvcmtlckluc3BlY3RvclByb3h5KGNvbnN0IFN0cmluZyYgaWRlbnRp
Zmllcik7CisgICAgc3RhdGljIFJlZjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdvcmtlckluc3BlY3RvclByb3h5KGlkZW50aWZpZXIpKTsKKyAgICB9CisKICAgICB+V29ya2Vy
SW5zcGVjdG9yUHJveHkoKTsKIAogICAgIC8vIEEgV29ya2VyJ3MgaW5zcGVjdG9yIG1lc3NhZ2Vz
IGNvbWUgaW4gYW5kIGdvIG91dCB0aHJvdWdoIHRoZSBQYWdlJ3MgV29ya2VyQWdlbnQuCkBAIC01
NCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlRnJv
bVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgfTsKIAotICAgIHN0YXRpYyBIYXNoU2V0PFdvcmtlckluc3BlY3RvclByb3h5Kj4m
IGFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKTsKKyAgICBzdGF0aWMgV2Vha0hhc2hTZXQ8V29y
a2VySW5zcGVjdG9yUHJveHk+JiBhbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCk7CiAKICAgICBj
b25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkBAIC03Miw2ICs3Nyw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5n
Jik7CiAKIHByaXZhdGU6CisgICAgV29ya2VySW5zcGVjdG9yUHJveHkoY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyKTsKKwogICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgUmVmUHRyPFdvcmtlclRocmVhZD4gbV93b3JrZXJUaHJl
YWQ7CiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggZDZlYTU5MjYxODgyNzgxNjY3Y2RjY2Vk
ZDIyMTZmOTg5NGVlYTQ4Yy4uMGFkMjBiNWFkM2YxZDE4ZjhkOTA0NTUxOGMwMGFlYmJlODQzMWMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAKQEAgLTU4LDcgKzU4LDcgQEAgV29ya2VyR2xvYmFsU2NvcGVQcm94eSYgV29ya2VyR2xvYmFs
U2NvcGVQcm94eTo6Y3JlYXRlKFdvcmtlciYgd29ya2VyKQogCiBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6V29ya2VyTWVzc2FnaW5nUHJveHkoV29ya2VyJiB3b3JrZXJPYmplY3QpCiAgICAgOiBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQod29ya2VyT2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKLSAgICAsIG1faW5zcGVjdG9yUHJveHkobWFrZVVuaXF1ZTxXb3JrZXJJbnNwZWN0b3JQcm94
eT4od29ya2VyT2JqZWN0LmlkZW50aWZpZXIoKSkpCisgICAgLCBtX2luc3BlY3RvclByb3h5KFdv
cmtlckluc3BlY3RvclByb3h5OjpjcmVhdGUod29ya2VyT2JqZWN0LmlkZW50aWZpZXIoKSkpCiAg
ICAgLCBtX3dvcmtlck9iamVjdCgmd29ya2VyT2JqZWN0KQogewogICAgIEFTU0VSVCgoaXM8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGlzTWFpblRocmVhZCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGEzOGNl
ODZkMDllN2FlOGQwZjc3ODczYjJhOGVjNDExNmM3Nzc3N2EuLjAwNTk0ZjNmNTZiMGZmMWE3YzQ3
NGU2MmQ3YjNmZDI1N2UzMzczZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICBXb3JrZXIq
IHdvcmtlck9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0OyB9CiAKICAgICBS
ZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0Owot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gbV9pbnNwZWN0b3JQcm94
eTsKKyAgICBSZWZQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+IG1faW5zcGVjdG9yUHJveHk7CiAg
ICAgV29ya2VyKiBtX3dvcmtlck9iamVjdDsKICAgICBib29sIG1fbWF5QmVEZXN0cm95ZWQgeyBm
YWxzZSB9OwogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IG1fd29ya2VyVGhyZWFk
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436803</attachid>
            <date>2021-08-30 13:12:40 -0700</date>
            <delta_ts>2021-08-30 17:24:43 -0700</delta_ts>
            <desc>Patch v1.2 - Address review notes</desc>
            <filename>bug-229632-20210830131239.patch</filename>
            <type>text/plain</type>
            <size>10100</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUxNjc4ZjZmODAyYjAx
NDA1YTZlOTc4MjYxY2M2MTljZmUyY2Y1MS4uMzNiMzJjNzA2OGE1YWE3ZTQwYTU4ZGQxOWZmMDg2
OTViNGE4OTA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA4LTMwICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZWZhY3RvciBgV29ya2VySW5zcGVjdG9yQWdlbnRgIHRvIHVzZSB3ZWFrIHBvaW50ZXJzIGZvciBg
V29ya2VySW5zcGVjdG9yUHJveHlgcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI5NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBMYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivd29ya2VyLyoKKworICAgICAgICBNYWtlIGBXb3JrZXJJbnNwZWN0b3JQcm94eWAg
cmVmZXJlbmNlIGNvdW50ZWQsIGFuZCB1c2UgYFdlYWtQdHJgcyB0byB0aGVtIGluIGBJbnNwZWN0
b3JXb3JrZXJBZ2VudGAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50Ojpp
bml0aWFsaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2Vu
ZE1lc3NhZ2VUb1dvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2Vu
dDo6Y29ubmVjdFRvQWxsV29ya2VySW5zcGVjdG9yUHJveGllc0ZvclBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2Nvbm5lY3RGcm9tQWxsV29ya2VySW5z
cGVjdG9yUHJveGllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
Y29ubmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3Bl
Y3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvclByb3h5Ojph
bGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3Bl
Y3RvclByb3h5Ojp3b3JrZXJTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3Bl
Y3RvclByb3h5Ojp3b3JrZXJUZXJtaW5hdGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlcklu
c3BlY3RvclByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JQcm94eTo6
Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94
eSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorCiAyMDIxLTA4
LTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5wcmVmaXggLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmlu
ZGV4IDMzY2FhMGFhMjA3OWFkNDA4MWNjMjk2MDVhNTM1MzdjMjRkNjZiZWYuLmFkYmJiZGExMTc5
ZmNhMTNkZDAwZTI4ZWI2ZDk4NThlYTk2NmIwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRp
bmdBZ2VudHMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgyLDcgKzg0LDcgQEAgUHJvdG9jb2w6OkVy
cm9yU3RyaW5nT3I8dm9pZD4gSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2FibGUoKQogCiBQcm90
b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6aW5pdGlhbGl6
ZWQoY29uc3QgU3RyaW5nJiB3b3JrZXJJZCkKIHsKLSAgICBXb3JrZXJJbnNwZWN0b3JQcm94eSog
cHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKTsKKyAgICBSZWZQdHIgcHJv
eHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKS5nZXQoKTsKICAgICBpZiAoIXBy
b3h5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1pc3Npbmcgd29ya2VyIGZvciBn
aXZlbiB3b3JrZXJJZCJfcyk7CiAKQEAgLTk2LDcgKzk4LDcgQEAgUHJvdG9jb2w6OkVycm9yU3Ry
aW5nT3I8dm9pZD4gSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9Xb3JrZXIoY29u
c3QgU3QKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KCJXb3JrZXIgZG9tYWluIG11c3QgYmUgZW5hYmxlZCJfcyk7CiAKLSAgICBXb3JrZXJJbnNwZWN0
b3JQcm94eSogcHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKTsKKyAgICBS
ZWZQdHIgcHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKS5nZXQoKTsKICAg
ICBpZiAoIXByb3h5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1pc3Npbmcgd29y
a2VyIGZvciBnaXZlbiB3b3JrZXJJZCJfcyk7CiAKQEAgLTEzNSwyMiArMTM3LDI3IEBAIHZvaWQg
SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb0FsbFdvcmtlckluc3BlY3RvclByb3hpZXNG
b3JQYWdlKCkKIHsKICAgICBBU1NFUlQobV9jb25uZWN0ZWRQcm94aWVzLmlzRW1wdHkoKSk7CiAK
LSAgICBmb3IgKGF1dG8qIHByb3h5IDogV29ya2VySW5zcGVjdG9yUHJveHk6OmFsbFdvcmtlcklu
c3BlY3RvclByb3hpZXMoKSkgeworICAgIGZvciAoUmVmIHByb3h5IDogV29ya2VySW5zcGVjdG9y
UHJveHk6OmFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKSkgewogICAgICAgICBpZiAoIWlzPERv
Y3VtZW50Pihwcm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PigqcHJveHktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGF1dG8mIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpwcm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKICAgICAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSAhPSAmbV9wYWdlKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgY29ubmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkoKnByb3h5
KTsKKyAgICAgICAgY29ubmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkocHJveHkpOwogICAgIH0K
IH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlzY29ubmVjdEZyb21BbGxXb3JrZXJJ
bnNwZWN0b3JQcm94aWVzKCkKIHsKLSAgICBmb3IgKGF1dG8qIHByb3h5IDogY29weVRvVmVjdG9y
KG1fY29ubmVjdGVkUHJveGllcy52YWx1ZXMoKSkpCisgICAgZm9yIChhdXRvJiBwcm94eVdlYWtQ
dHIgOiBjb3B5VG9WZWN0b3IobV9jb25uZWN0ZWRQcm94aWVzLnZhbHVlcygpKSkgeworICAgICAg
ICBpZiAoIXByb3h5V2Vha1B0cikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBSZWYg
cHJveHkgPSAqcHJveHlXZWFrUHRyLmdldCgpOworCiAgICAgICAgIHByb3h5LT5kaXNjb25uZWN0
RnJvbVdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICB9CiAKICAgICBtX2Nvbm5lY3Rl
ZFByb3hpZXMuY2xlYXIoKTsKIH0KQEAgLTE1OSw3ICsxNjYsNyBAQCB2b2lkIEluc3BlY3Rvcldv
cmtlckFnZW50Ojpjb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JQcm94eShXb3JrZXJJbnNwZWN0b3JQ
cm94eSYgcAogewogICAgIHByb3h5LmNvbm5lY3RUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIo
KnRoaXMpOwogCi0gICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCks
ICZwcm94eSk7CisgICAgbV9jb25uZWN0ZWRQcm94aWVzLnNldChwcm94eS5pZGVudGlmaWVyKCks
IG1ha2VXZWFrUHRyKHByb3h5KSk7CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d29ya2Vy
Q3JlYXRlZChwcm94eS5pZGVudGlmaWVyKCksIHByb3h5LnVybCgpLnN0cmluZygpLCBwcm94eS5u
YW1lKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDYzNmJjODFkZDVhNTBhZWUwNTNjMmUwNGU2ODY5
OWQzZmE2YjY0ZWYuLjkwNTY3YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldv
cmtlckFnZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcw
LDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5k
RGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAogICAgIFBhZ2UmIG1fcGFnZTsKLSAg
ICBIYXNoTWFwPFN0cmluZywgV29ya2VySW5zcGVjdG9yUHJveHkqPiBtX2Nvbm5lY3RlZFByb3hp
ZXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+PiBt
X2Nvbm5lY3RlZFByb3hpZXM7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRl
eCA2MzJiODJlMjhiNzJkYTYxMzcxYzI0ZWJmYmFmMmRkNTU5MTBkMDcxLi5iYTExZGRhMTY3ZmUx
MGExMjFjZDExY2I5YmUyN2Q5MmJjNTE4MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtMzksOSArMzksOSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAotSGFzaFNldDxXb3JrZXJJ
bnNwZWN0b3JQcm94eSo+JiBXb3JrZXJJbnNwZWN0b3JQcm94eTo6YWxsV29ya2VySW5zcGVjdG9y
UHJveGllcygpCitXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIFdvcmtlckluc3Bl
Y3RvclByb3h5OjphbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eSo+PiBwcm94aWVzOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4+
IHByb3hpZXM7CiAgICAgcmV0dXJuIHByb3hpZXM7CiB9CiAKQEAgLTcxLDcgKzcxLDcgQEAgdm9p
ZCBXb3JrZXJJbnNwZWN0b3JQcm94eTo6d29ya2VyU3RhcnRlZChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb24KICAgICBtX3VybCA9IHVybDsKICAgICBtX25hbWUgPSBuYW1l
OwogCi0gICAgYWxsV29ya2VySW5zcGVjdG9yUHJveGllcygpLmFkZCh0aGlzKTsKKyAgICBhbGxX
b3JrZXJJbnNwZWN0b3JQcm94aWVzKCkuYWRkKCp0aGlzKTsKIAogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d29ya2VyU3RhcnRlZCgqdGhpcyk7CiB9CkBAIC04Myw3ICs4Myw3IEBAIHZv
aWQgV29ya2VySW5zcGVjdG9yUHJveHk6OndvcmtlclRlcm1pbmF0ZWQoKQogCiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKCp0aGlzKTsKIAotICAgIGFsbFdv
cmtlckluc3BlY3RvclByb3hpZXMoKS5yZW1vdmUodGhpcyk7CisgICAgYWxsV29ya2VySW5zcGVj
dG9yUHJveGllcygpLnJlbW92ZSgqdGhpcyk7CiAKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSBudWxscHRyOwogICAgIG1fd29ya2VyVGhyZWFkID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaAppbmRleCA1ZThhMWRjMGVkMGQ5
YWE1MzJjMzY3NDY0Yzg2N2ZiNGY3ZjlhYTVmLi40MjA3YmIzZmU5M2Q3YTdhMjEyNWNkODU1OWNj
OGVlNzE1NDA2NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlcklu
c3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0
b3JQcm94eS5oCkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAvLyBBbGwgb2YgdGhl
c2UgbWV0aG9kcyBzaG91bGQgYmUgY2FsbGVkIG9uIHRoZSBNYWluIFRocmVhZC4KQEAgLTQwLDEx
ICs0MSwxNSBAQCBjbGFzcyBXb3JrZXJUaHJlYWQ7CiAKIGVudW0gY2xhc3MgV29ya2VyVGhyZWFk
U3RhcnRNb2RlOwogCi1jbGFzcyBXb3JrZXJJbnNwZWN0b3JQcm94eSB7CitjbGFzcyBXb3JrZXJJ
bnNwZWN0b3JQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckluc3BlY3RvclByb3h5Piwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFdvcmtlckluc3BlY3RvclByb3h5PiB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoV29ya2VySW5zcGVjdG9yUHJveHkpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIFdvcmtlckluc3BlY3RvclByb3h5KGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdvcmtlckluc3BlY3RvclByb3h5KGlkZW50aWZpZXIpKTsKKyAgICB9CisKICAg
ICB+V29ya2VySW5zcGVjdG9yUHJveHkoKTsKIAogICAgIC8vIEEgV29ya2VyJ3MgaW5zcGVjdG9y
IG1lc3NhZ2VzIGNvbWUgaW4gYW5kIGdvIG91dCB0aHJvdWdoIHRoZSBQYWdlJ3MgV29ya2VyQWdl
bnQuCkBAIC01NCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRN
ZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBjb25zdCBT
dHJpbmcmKSA9IDA7CiAgICAgfTsKIAotICAgIHN0YXRpYyBIYXNoU2V0PFdvcmtlckluc3BlY3Rv
clByb3h5Kj4mIGFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKTsKKyAgICBzdGF0aWMgV2Vha0hh
c2hTZXQ8V29ya2VySW5zcGVjdG9yUHJveHk+JiBhbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCk7
CiAKICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29u
c3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkBAIC03Miw2ICs3Nyw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29u
c3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CisgICAgV29ya2VySW5zcGVjdG9yUHJveHkoY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyKTsKKwogICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
PiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgUmVmUHRyPFdvcmtlclRocmVhZD4gbV93
b3JrZXJUaHJlYWQ7CiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggZDZlYTU5MjYxODgyNzgx
NjY3Y2RjY2VkZDIyMTZmOTg5NGVlYTQ4Yy4uMGFkMjBiNWFkM2YxZDE4ZjhkOTA0NTUxOGMwMGFl
YmJlODQzMWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgV29ya2VyR2xvYmFsU2NvcGVQcm94eSYgV29y
a2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKFdvcmtlciYgd29ya2VyKQogCiBXb3JrZXJNZXNz
YWdpbmdQcm94eTo6V29ya2VyTWVzc2FnaW5nUHJveHkoV29ya2VyJiB3b3JrZXJPYmplY3QpCiAg
ICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQod29ya2VyT2JqZWN0LnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKLSAgICAsIG1faW5zcGVjdG9yUHJveHkobWFrZVVuaXF1ZTxXb3JrZXJJbnNw
ZWN0b3JQcm94eT4od29ya2VyT2JqZWN0LmlkZW50aWZpZXIoKSkpCisgICAgLCBtX2luc3BlY3Rv
clByb3h5KFdvcmtlckluc3BlY3RvclByb3h5OjpjcmVhdGUod29ya2VyT2JqZWN0LmlkZW50aWZp
ZXIoKSkpCiAgICAgLCBtX3dvcmtlck9iamVjdCgmd29ya2VyT2JqZWN0KQogewogICAgIEFTU0VS
VCgoaXM8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGlzTWFpblRocmVh
ZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmlu
ZGV4IGEzOGNlODZkMDllN2FlOGQwZjc3ODczYjJhOGVjNDExNmM3Nzc3N2EuLjAwNTk0ZjNmNTZi
MGZmMWE3YzQ3NGU2MmQ3YjNmZDI1N2UzMzczZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAg
ICBXb3JrZXIqIHdvcmtlck9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0OyB9
CiAKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gbV9pbnNw
ZWN0b3JQcm94eTsKKyAgICBSZWZQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+IG1faW5zcGVjdG9y
UHJveHk7CiAgICAgV29ya2VyKiBtX3dvcmtlck9iamVjdDsKICAgICBib29sIG1fbWF5QmVEZXN0
cm95ZWQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IG1fd29y
a2VyVGhyZWFkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436832</attachid>
            <date>2021-08-30 17:24:45 -0700</date>
            <delta_ts>2021-08-30 18:42:03 -0700</delta_ts>
            <desc>Patch v1.3 - Review nits, add reviewer to Changelog</desc>
            <filename>bug-229632-20210830172444.patch</filename>
            <type>text/plain</type>
            <size>10101</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUxNjc4ZjZmODAyYjAx
NDA1YTZlOTc4MjYxY2M2MTljZmUyY2Y1MS4uZjJiN2RjNWE3M2NlNDRjZGUwODllZDc1ZjdkOTBk
YTI0YjZjYzFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA4LTMwICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZWZhY3RvciBgV29ya2VySW5zcGVjdG9yQWdlbnRgIHRvIHVzZSB3ZWFrIHBvaW50ZXJzIGZvciBg
V29ya2VySW5zcGVjdG9yUHJveHlgcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI5NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXou
CisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivd29ya2VyLyoKKworICAgICAgICBNYWtlIGBXb3JrZXJJbnNwZWN0b3JQcm94eWAgcmVm
ZXJlbmNlIGNvdW50ZWQsIGFuZCB1c2UgYFdlYWtQdHJgcyB0byB0aGVtIGluIGBJbnNwZWN0b3JX
b3JrZXJBZ2VudGAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldvcmtl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50Ojppbml0
aWFsaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1l
c3NhZ2VUb1dvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
Y29ubmVjdFRvQWxsV29ya2VySW5zcGVjdG9yUHJveGllc0ZvclBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2Nvbm5lY3RGcm9tQWxsV29ya2VySW5zcGVj
dG9yUHJveGllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y29u
bmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3BlY3Rv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvclByb3h5OjphbGxX
b3JrZXJJbnNwZWN0b3JQcm94aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3Rv
clByb3h5Ojp3b3JrZXJTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3Rv
clByb3h5Ojp3b3JrZXJUZXJtaW5hdGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckluc3Bl
Y3RvclByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpXb3JrZXJNZXNzYWdpbmdQcm94eSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorCiAyMDIxLTA4LTI0
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5wcmVmaXggLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4
IDMzY2FhMGFhMjA3OWFkNDA4MWNjMjk2MDVhNTM1MzdjMjRkNjZiZWYuLmNjODY2N2MxMDRkMzdh
ZTIxZDgwMTU0NDBlY2FjMDFjMWM3NGRjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdB
Z2VudHMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgyLDcgKzg0LDcgQEAgUHJvdG9jb2w6OkVycm9y
U3RyaW5nT3I8dm9pZD4gSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2FibGUoKQogCiBQcm90b2Nv
bDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6aW5pdGlhbGl6ZWQo
Y29uc3QgU3RyaW5nJiB3b3JrZXJJZCkKIHsKLSAgICBXb3JrZXJJbnNwZWN0b3JQcm94eSogcHJv
eHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKTsKKyAgICBSZWZQdHIgcHJveHkg
PSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKS5nZXQoKTsKICAgICBpZiAoIXByb3h5
KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1pc3Npbmcgd29ya2VyIGZvciBnaXZl
biB3b3JrZXJJZCJfcyk7CiAKQEAgLTk2LDcgKzk4LDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5n
T3I8dm9pZD4gSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9Xb3JrZXIoY29uc3Qg
U3QKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJX
b3JrZXIgZG9tYWluIG11c3QgYmUgZW5hYmxlZCJfcyk7CiAKLSAgICBXb3JrZXJJbnNwZWN0b3JQ
cm94eSogcHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKTsKKyAgICBSZWZQ
dHIgcHJveHkgPSBtX2Nvbm5lY3RlZFByb3hpZXMuZ2V0KHdvcmtlcklkKS5nZXQoKTsKICAgICBp
ZiAoIXByb3h5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1pc3Npbmcgd29ya2Vy
IGZvciBnaXZlbiB3b3JrZXJJZCJfcyk7CiAKQEAgLTEzNSwyMiArMTM3LDI3IEBAIHZvaWQgSW5z
cGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb0FsbFdvcmtlckluc3BlY3RvclByb3hpZXNGb3JQ
YWdlKCkKIHsKICAgICBBU1NFUlQobV9jb25uZWN0ZWRQcm94aWVzLmlzRW1wdHkoKSk7CiAKLSAg
ICBmb3IgKGF1dG8qIHByb3h5IDogV29ya2VySW5zcGVjdG9yUHJveHk6OmFsbFdvcmtlckluc3Bl
Y3RvclByb3hpZXMoKSkgeworICAgIGZvciAoUmVmIHByb3h5IDogV29ya2VySW5zcGVjdG9yUHJv
eHk6OmFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKSkgewogICAgICAgICBpZiAoIWlzPERvY3Vt
ZW50Pihwcm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
cHJveHktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGF1dG8mIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpwcm94eS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
ICAgICAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSAhPSAmbV9wYWdlKQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgY29ubmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkoKnByb3h5KTsK
KyAgICAgICAgY29ubmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkocHJveHkpOwogICAgIH0KIH0K
IAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlzY29ubmVjdEZyb21BbGxXb3JrZXJJbnNw
ZWN0b3JQcm94aWVzKCkKIHsKLSAgICBmb3IgKGF1dG8qIHByb3h5IDogY29weVRvVmVjdG9yKG1f
Y29ubmVjdGVkUHJveGllcy52YWx1ZXMoKSkpCisgICAgZm9yIChhdXRvJiBwcm94eVdlYWtQdHIg
OiBjb3B5VG9WZWN0b3IobV9jb25uZWN0ZWRQcm94aWVzLnZhbHVlcygpKSkgeworICAgICAgICBS
ZWZQdHIgcHJveHkgPSBwcm94eVdlYWtQdHIuZ2V0KCk7CisgICAgICAgIGlmICghcHJveHkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBwcm94eS0+ZGlzY29ubmVjdEZyb21Xb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CisgICAgfQogCiAgICAgbV9jb25uZWN0ZWRQcm94aWVz
LmNsZWFyKCk7CiB9CkBAIC0xNTksNyArMTY2LDcgQEAgdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dDo6Y29ubmVjdFRvV29ya2VySW5zcGVjdG9yUHJveHkoV29ya2VySW5zcGVjdG9yUHJveHkmIHAK
IHsKICAgICBwcm94eS5jb25uZWN0VG9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCp0aGlzKTsK
IAotICAgIG1fY29ubmVjdGVkUHJveGllcy5zZXQocHJveHkuaWRlbnRpZmllcigpLCAmcHJveHkp
OworICAgIG1fY29ubmVjdGVkUHJveGllcy5zZXQocHJveHkuaWRlbnRpZmllcigpLCBtYWtlV2Vh
a1B0cihwcm94eSkpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndvcmtlckNyZWF0ZWQo
cHJveHkuaWRlbnRpZmllcigpLCBwcm94eS51cmwoKS5zdHJpbmcoKSwgcHJveHkubmFtZSgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuaAppbmRleCA2MzZiYzgxZGQ1YTUwYWVlMDUzYzJlMDRlNjg2OTlkM2ZhNmI2
NGVmLi45MDU2N2JiMDIxMGVkZTlkM2Q3MmQ4ZDAyNTM0OTczNzM3YzBhNmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs3MSw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6V29ya2VyQmFja2VuZERpc3BhdGNo
ZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAKICAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIFdvcmtlckluc3BlY3RvclByb3h5Kj4gbV9jb25uZWN0ZWRQcm94aWVzOworICAg
IEhhc2hNYXA8U3RyaW5nLCBXZWFrUHRyPFdvcmtlckluc3BlY3RvclByb3h5Pj4gbV9jb25uZWN0
ZWRQcm94aWVzOwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggNjMyYjgy
ZTI4YjcyZGE2MTM3MWMyNGViZmJhZjJkZDU1OTEwZDA3MS4uYmExMWRkYTE2N2ZlMTBhMTIxY2Qx
MWNiOWJlMjdkOTJiYzUxODJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTM5LDkgKzM5LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKLUhhc2hTZXQ8V29ya2VySW5zcGVjdG9y
UHJveHkqPiYgV29ya2VySW5zcGVjdG9yUHJveHk6OmFsbFdvcmtlckluc3BlY3RvclByb3hpZXMo
KQorV2Vha0hhc2hTZXQ8V29ya2VySW5zcGVjdG9yUHJveHk+JiBXb3JrZXJJbnNwZWN0b3JQcm94
eTo6YWxsV29ya2VySW5zcGVjdG9yUHJveGllcygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hTZXQ8V29ya2VySW5zcGVjdG9yUHJveHkqPj4gcHJveGllczsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8V2Vha0hhc2hTZXQ8V29ya2VySW5zcGVjdG9yUHJveHk+PiBwcm94aWVz
OwogICAgIHJldHVybiBwcm94aWVzOwogfQogCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgV29ya2Vy
SW5zcGVjdG9yUHJveHk6OndvcmtlclN0YXJ0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uCiAgICAgbV91cmwgPSB1cmw7CiAgICAgbV9uYW1lID0gbmFtZTsKIAotICAg
IGFsbFdvcmtlckluc3BlY3RvclByb3hpZXMoKS5hZGQodGhpcyk7CisgICAgYWxsV29ya2VySW5z
cGVjdG9yUHJveGllcygpLmFkZCgqdGhpcyk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndvcmtlclN0YXJ0ZWQoKnRoaXMpOwogfQpAQCAtODMsNyArODMsNyBAQCB2b2lkIFdvcmtl
ckluc3BlY3RvclByb3h5Ojp3b3JrZXJUZXJtaW5hdGVkKCkKIAogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d29ya2VyVGVybWluYXRlZCgqdGhpcyk7CiAKLSAgICBhbGxXb3JrZXJJbnNw
ZWN0b3JQcm94aWVzKCkucmVtb3ZlKHRoaXMpOworICAgIGFsbFdvcmtlckluc3BlY3RvclByb3hp
ZXMoKS5yZW1vdmUoKnRoaXMpOwogCiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVs
bHB0cjsKICAgICBtX3dvcmtlclRocmVhZCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmgKaW5kZXggNWU4YTFkYzBlZDBkOWFhNTMyYzM2
NzQ2NGM4NjdmYjRmN2Y5YWE1Zi4uODMzNGQ0N2QzNGRlZjc1ZDRiYmNlMzM2ZTI4ZWJmZThkNzZi
MjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHku
aApAQCAtMjUsOSArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogLy8gQWxsIG9mIHRoZXNlIG1ldGhv
ZHMgc2hvdWxkIGJlIGNhbGxlZCBvbiB0aGUgTWFpbiBUaHJlYWQuCkBAIC00MCwxMSArNDEsMTUg
QEAgY2xhc3MgV29ya2VyVGhyZWFkOwogCiBlbnVtIGNsYXNzIFdvcmtlclRocmVhZFN0YXJ0TW9k
ZTsKIAotY2xhc3MgV29ya2VySW5zcGVjdG9yUHJveHkgeworY2xhc3MgV29ya2VySW5zcGVjdG9y
UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJJbnNwZWN0b3JQcm94eT4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxXb3JrZXJJbnNwZWN0b3JQcm94eT4gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFdvcmtlckluc3BlY3RvclByb3h5KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBXb3JrZXJJbnNwZWN0b3JQcm94eShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIpOworICAgIHN0YXRpYyBSZWY8V29ya2VySW5zcGVjdG9yUHJveHk+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXb3JrZXJJbnNwZWN0b3JQcm94eShpZGVudGlmaWVyKSk7CisgICAgfQorCiAgICAgfldvcmtl
ckluc3BlY3RvclByb3h5KCk7CiAKICAgICAvLyBBIFdvcmtlcidzIGluc3BlY3RvciBtZXNzYWdl
cyBjb21lIGluIGFuZCBnbyBvdXQgdGhyb3VnaCB0aGUgUGFnZSdzIFdvcmtlckFnZW50LgpAQCAt
NTQsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZUZy
b21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiwgY29uc3QgU3RyaW5nJikg
PSAwOwogICAgIH07CiAKLSAgICBzdGF0aWMgSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eSo+
JiBhbGxXb3JrZXJJbnNwZWN0b3JQcm94aWVzKCk7CisgICAgc3RhdGljIFdlYWtIYXNoU2V0PFdv
cmtlckluc3BlY3RvclByb3h5PiYgYWxsV29ya2VySW5zcGVjdG9yUHJveGllcygpOwogCiAgICAg
Y29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIGNvbnN0IFN0cmlu
ZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQpAQCAtNzIsNiArNzcsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmlu
ZyYpOwogCiBwcml2YXRlOgorICAgIGV4cGxpY2l0IFdvcmtlckluc3BlY3RvclByb3h5KGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllcik7CisKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIFJlZlB0cjxXb3JrZXJUaHJlYWQ+IG1f
d29ya2VyVGhyZWFkOwogICAgIFN0cmluZyBtX2lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IGQ2ZWE1OTI2MTg4Mjc4
MTY2N2NkY2NlZGQyMjE2Zjk4OTRlZWE0OGMuLjBhZDIwYjVhZDNmMWQxOGY4ZDkwNDU1MThjMDBh
ZWJiZTg0MzFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwCkBAIC01OCw3ICs1OCw3IEBAIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIFdv
cmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZShXb3JrZXImIHdvcmtlcikKIAogV29ya2VyTWVz
c2FnaW5nUHJveHk6Oldvcmtlck1lc3NhZ2luZ1Byb3h5KFdvcmtlciYgd29ya2VyT2JqZWN0KQog
ICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHdvcmtlck9iamVjdC5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgLCBtX2luc3BlY3RvclByb3h5KG1ha2VVbmlxdWU8V29ya2VySW5z
cGVjdG9yUHJveHk+KHdvcmtlck9iamVjdC5pZGVudGlmaWVyKCkpKQorICAgICwgbV9pbnNwZWN0
b3JQcm94eShXb3JrZXJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlKHdvcmtlck9iamVjdC5pZGVudGlm
aWVyKCkpKQogICAgICwgbV93b3JrZXJPYmplY3QoJndvcmtlck9iamVjdCkKIHsKICAgICBBU1NF
UlQoKGlzPERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBpc01haW5UaHJl
YWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApp
bmRleCBhMzhjZTg2ZDA5ZTdhZThkMGY3Nzg3M2IyYThlYzQxMTZjNzc3NzdhLi4wMDU5NGYzZjU2
YjBmZjFhN2M0NzRlNjJkN2IzZmQyNTdlMzM3M2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAg
ICAgV29ya2VyKiB3b3JrZXJPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdDsg
fQogCiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VySW5zcGVjdG9yUHJveHk+IG1faW5z
cGVjdG9yUHJveHk7CisgICAgUmVmUHRyPFdvcmtlckluc3BlY3RvclByb3h5PiBtX2luc3BlY3Rv
clByb3h5OwogICAgIFdvcmtlciogbV93b3JrZXJPYmplY3Q7CiAgICAgYm9vbCBtX21heUJlRGVz
dHJveWVkIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBtX3dv
cmtlclRocmVhZDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>