<?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>237245</bug_id>
          
          <creation_ts>2022-02-27 03:02:50 -0800</creation_ts>
          <short_desc>Trigger PDF download in captive portal mode instead of using PDF viewer</short_desc>
          <delta_ts>2022-03-18 12:12:28 -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>PDF</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Nguyen (:ntim)">ntim</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>pascoe</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846400</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 03:02:50 -0800</bug_when>
    <thetext>I think that was the decision taken since PDF.js is not in a good enough state atm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846401</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-27 03:03:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/89525531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850863</commentid>
    <comment_count>2</comment_count>
      <attachid>454590</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-03-14 07:04:26 -0700</bug_when>
    <thetext>Created attachment 454590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852334</commentid>
    <comment_count>3</comment_count>
      <attachid>454982</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-17 09:50:11 -0700</bug_when>
    <thetext>Created attachment 454982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852362</commentid>
    <comment_count>4</comment_count>
      <attachid>454982</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-17 10:36:00 -0700</bug_when>
    <thetext>Comment on attachment 454982
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3466
&gt; +        auto mimeType = MIMETypeRegistry::mimeTypeForPath(navigation-&gt;currentRequest().url().path().toString());

This seems a little light weight.  Don&apos;t we even want to look at the mime type of the response?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852418</commentid>
    <comment_count>5</comment_count>
      <attachid>454982</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-03-17 12:32:10 -0700</bug_when>
    <thetext>Comment on attachment 454982
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3466
&gt;&gt; +        auto mimeType = MIMETypeRegistry::mimeTypeForPath(navigation-&gt;currentRequest().url().path().toString());
&gt; 
&gt; This seems a little light weight.  Don&apos;t we even want to look at the mime type of the response?

There&apos;s no access to the response at this point. Do you have a suggestion of a good place to put this where there is access to the response?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852419</commentid>
    <comment_count>6</comment_count>
      <attachid>454982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-17 12:36:31 -0700</bug_when>
    <thetext>Comment on attachment 454982
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3466
&gt;&gt;&gt; +        auto mimeType = MIMETypeRegistry::mimeTypeForPath(navigation-&gt;currentRequest().url().path().toString());
&gt;&gt; 
&gt;&gt; This seems a little light weight.  Don&apos;t we even want to look at the mime type of the response?
&gt; 
&gt; There&apos;s no access to the response at this point. Do you have a suggestion of a good place to put this where there is access to the response?

WebPageProxy::receivedPolicyDecision or WebPageProxy::decidePolicyForResponseShared. This is always frequently where we trigger downloads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852420</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-17 12:38:10 -0700</bug_when>
    <thetext>(In reply to Tim Nguyen (:ntim) from comment #5)
&gt; Comment on attachment 454982 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=454982&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3466
&gt; &gt;&gt; +        auto mimeType = MIMETypeRegistry::mimeTypeForPath(navigation-&gt;currentRequest().url().path().toString());
&gt; &gt; 
&gt; &gt; This seems a little light weight.  Don&apos;t we even want to look at the mime type of the response?
&gt; 
&gt; There&apos;s no access to the response at this point. Do you have a suggestion of
&gt; a good place to put this where there is access to the response?

Purely relying on the URL ending with .pdf is weak and will miss plenty of cases where we&apos;re actually loading a PDF. Like Alex says, we need to check the content type in the resource response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852466</commentid>
    <comment_count>8</comment_count>
      <attachid>455019</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-17 13:48:59 -0700</bug_when>
    <thetext>Created attachment 455019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852497</commentid>
    <comment_count>9</comment_count>
      <attachid>455019</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-03-17 14:43:31 -0700</bug_when>
    <thetext>Comment on attachment 455019
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5735
&gt; +        auto captivePortalMode = (policies ? policies-&gt;captivePortalModeEnabled() : shouldEnableCaptivePortalMode()) ? WebProcessProxy::CaptivePortalMode::Enabled : WebProcessProxy::CaptivePortalMode::Disabled;
&gt; +        if (captivePortalMode == WebProcessProxy::CaptivePortalMode::Enabled &amp;&amp; MIMETypeRegistry::isPDFOrPostScriptMIMEType(navigationResponse-&gt;response().mimeType()))

I&apos;m not sure if this works, but I think you can do:

```
if (process-&gt;captivePortalMode() == WebProcessProxy::CaptivePortalMode::Enabled)
```

directly, instead of checking through policies. Though I might be wrong :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852701</commentid>
    <comment_count>10</comment_count>
      <attachid>455019</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-18 07:18:20 -0700</bug_when>
    <thetext>Comment on attachment 455019
Patch

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

r=me with Tim&apos;s proposed change.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5735
&gt;&gt; +        if (captivePortalMode == WebProcessProxy::CaptivePortalMode::Enabled &amp;&amp; MIMETypeRegistry::isPDFOrPostScriptMIMEType(navigationResponse-&gt;response().mimeType()))
&gt; 
&gt; I&apos;m not sure if this works, but I think you can do:
&gt; 
&gt; ```
&gt; if (process-&gt;captivePortalMode() == WebProcessProxy::CaptivePortalMode::Enabled)
&gt; ```
&gt; 
&gt; directly, instead of checking through policies. Though I might be wrong :)

I agree with Tim here. His proposal is simpler and I believe it would work since we would have already switched to a captive-portal-mode process earlier (during navigation policy decision).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852722</commentid>
    <comment_count>11</comment_count>
      <attachid>455095</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-18 08:36:44 -0700</bug_when>
    <thetext>Created attachment 455095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852724</commentid>
    <comment_count>12</comment_count>
      <attachid>455095</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-03-18 08:41:25 -0700</bug_when>
    <thetext>Comment on attachment 455095
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5726
&gt; +        process, navigationResponse] (PolicyAction policyAction, API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient, RefPtr&lt;SafeBrowsingWarning&gt;&amp;&amp; safeBrowsingWarning, std::optional&lt;NavigatingToAppBoundDomain&gt; isNavigatingToAppBoundDomain) mutable {

nit: please undo this change, which should no longer be necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852728</commentid>
    <comment_count>13</comment_count>
      <attachid>455096</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-18 08:44:31 -0700</bug_when>
    <thetext>Created attachment 455096
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852729</commentid>
    <comment_count>14</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-18 08:45:30 -0700</bug_when>
    <thetext>Thank you Tim, Chris, and Alex for the comments and review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852797</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-18 12:12:22 -0700</bug_when>
    <thetext>Committed r291491 (248603@main): &lt;https://commits.webkit.org/248603@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455096.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454590</attachid>
            <date>2022-03-14 07:04:26 -0700</date>
            <delta_ts>2022-03-17 09:50:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237245-20220314150425.patch</filename>
            <type>text/plain</type>
            <size>4257</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwNDk0ZjUwYWM4YTEwNjVk
MjZlYjIxNzVlODcyOTY3N2Y2MzY0N2QuLjkyYWIwYTA2YzYyMjcyOTU4ZDUzZTc4MWZlZGUzYjJk
NGI2NGNiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMTQgIFRpbSBOZ3V5
ZW4gIDxudGltQGFwcGxlLmNvbT4KKworICAgICAgICBUcmlnZ2VyIFBERiBkb3dubG9hZCBpbiBj
YXB0aXZlIHBvcnRhbCBtb2RlIGluc3RlYWQgb2YgdXNpbmcgUERGIHZpZXdlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjQ1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0b3BnYXAg
c29sdXRpb24gc2luY2UgUERGLmpzIG5lZWRzIG1vcmUgY3ljbGVzIHRvIHBvbGlzaC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMi0wMy0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSwg
Z3JvdXAgbWFrZUZyb250QnVmZmVyTm9uVm9sYXRpbGUoKSBhbmQgc3dhcFRvVmFsaWRGcm9udEJ1
ZmZlcigpIGludG8gYSBzaW5nbGUgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDQwZGJkYTRmODI1YWIxNzQ0NDA2ODk4NTcyNTg5MGQ0MjcxMGI0
NjQuLmQ0YzFkZjBkZmRmYWZkNzEzMjU1ODZmYTE4M2FjNDk3ZDQxYjZlMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzQ2MSw2ICszNDYxLDEzIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBBCiAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rp
b246OlVzZSAmJiBuYXZpZ2F0aW9uICYmIChuYXZpZ2F0aW9uLT5pc1N5c3RlbVByZXZpZXcoKSB8
fCAoZm9yY2VEb3dubG9hZEZyb21Eb3dubG9hZEF0dHJpYnV0ZSAmJiBuYXZpZ2F0aW9uLT5zaG91
bGRQZXJmb3JtRG93bmxvYWQoKSkpKQogICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rp
b246OkRvd25sb2FkOwogCisgICAgYXV0byBjYXB0aXZlUG9ydGFsTW9kZSA9IChwb2xpY2llcyA/
IHBvbGljaWVzLT5jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQoKSA6IHNob3VsZEVuYWJsZUNhcHRp
dmVQb3J0YWxNb2RlKCkpID8gV2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RW5h
YmxlZCA6IFdlYlByb2Nlc3NQcm94eTo6Q2FwdGl2ZVBvcnRhbE1vZGU6OkRpc2FibGVkOworICAg
IGlmIChuYXZpZ2F0aW9uICYmIGNhcHRpdmVQb3J0YWxNb2RlID09IFdlYlByb2Nlc3NQcm94eTo6
Q2FwdGl2ZVBvcnRhbE1vZGU6OkVuYWJsZWQpIHsKKyAgICAgICAgYXV0byBtaW1lVHlwZSA9IE1J
TUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aChuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVz
dCgpLnVybCgpLnBhdGgoKS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKE1JTUVUeXBlUmVnaXN0
cnk6OmlzUERGT3JQb3N0U2NyaXB0TUlNRVR5cGUobWltZVR5cGUpKQorICAgICAgICAgICAgcG9s
aWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpEb3dubG9hZDsKKyAgICB9CisKICAgICBpZiAocG9s
aWN5QWN0aW9uICE9IFBvbGljeUFjdGlvbjo6VXNlIHx8ICFmcmFtZS5pc01haW5GcmFtZSgpIHx8
ICFuYXZpZ2F0aW9uKSB7CiAgICAgICAgIHJlY2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0
aW9uLCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHBvbGljaWVzKSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0
aW9uKSwgV1RGTW92ZShzZW5kZXIpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ3Niw3ICszNDgz
LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICB9CiAKICAgICBtX2lzQ2FwdGl2ZVBv
cnRhbE1vZGVFeHBsaWNpdGx5U2V0ID0gKHBvbGljaWVzICYmIHBvbGljaWVzLT5pc0NhcHRpdmVQ
b3J0YWxNb2RlRXhwbGljaXRseVNldCgpKSB8fCBtX2NvbmZpZ3VyYXRpb24tPmlzQ2FwdGl2ZVBv
cnRhbE1vZGVFeHBsaWNpdGx5U2V0KCk7Ci0gICAgYXV0byBjYXB0aXZlUG9ydGFsTW9kZSA9IChw
b2xpY2llcyA/IHBvbGljaWVzLT5jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQoKSA6IHNob3VsZEVu
YWJsZUNhcHRpdmVQb3J0YWxNb2RlKCkpID8gV2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFs
TW9kZTo6RW5hYmxlZCA6IFdlYlByb2Nlc3NQcm94eTo6Q2FwdGl2ZVBvcnRhbE1vZGU6OkRpc2Fi
bGVkOwogICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0
aGlzLCAqbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY2FwdGl2ZVBvcnRhbE1vZGUsIGZyYW1lSW5mbywg
V1RGTW92ZSh3ZWJzaXRlRGF0YVN0b3JlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24gPSBSZWYgeyAqbmF2aWdhdGlvbiB9LCBu
YXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgc291cmNlUHJvY2Vz
cyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLAogICAgICAgICBwb2xpY2llcyA9IFdURk1vdmUo
cG9saWNpZXMpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnRdIChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLCBT
dXNwZW5kZWRQYWdlUHJveHkqIGRlc3RpbmF0aW9uU3VzcGVuZGVkUGFnZSwgY29uc3QgU3RyaW5n
JiByZWFzb24pIG11dGFibGUgewogICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBoYXMgYmVl
biBkZXN0cm95ZWQsIHRoZW4gbm8gbmVlZCB0byBwcm9jZWVkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlYjQ4YzdiMmQxMzgzOTJhYmJmMTQx
MThmOGUyNTNjMGFlOWY0ZTIyLi45NjJiNGJhNWI3MjJlMmEzNjQyNTNjMDQyNTVmMjlkMTgxNGY0
MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtNDExMyw3ICs0MTEzLDYgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICNpZiBFTkFCTEUoTUFUSE1MKQogICAgICAg
ICBzZXR0aW5ncy5zZXRNYXRoTUxFbmFibGVkKGZhbHNlKTsKICNlbmRpZgotICAgICAgICBzZXR0
aW5ncy5zZXRQZGZKU1ZpZXdlckVuYWJsZWQodHJ1ZSk7CiAKICAgICAgICAgc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6Om1lZGlhQ29udGFpbmVyVHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFs
TW9kZUtleSgpKSk7CiAgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
c3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhQ29kZWNU
eXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454982</attachid>
            <date>2022-03-17 09:50:11 -0700</date>
            <delta_ts>2022-03-17 13:48:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237245-20220317095010.patch</filename>
            <type>text/plain</type>
            <size>8500</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1YTM1Mzc3YjJlZjY4MTZm
N2UwNzJmMGQ4ZjkzOGMxZDdmZTg2NTQuLmQ4ZTM4NGIyMmI0YjZiMGFmZTNlYTUzY2IxNjI1ZDU2
NTgxOTNlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMTcgIEogUGFzY29l
ICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFRyaWdnZXIgUERGIGRvd25sb2FkIGlu
IGNhcHRpdmUgcG9ydGFsIG1vZGUgaW5zdGVhZCBvZiB1c2luZyBQREYgdmlld2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNDUKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vODk1MjU1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RvcGdhcCBzb2x1dGlvbiBzaW5jZSBQREYuanMg
bmVlZHMgbW9yZSBjeWNsZXMgdG8gcG9saXNoLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdL
RG93bmxvYWQuQ2FwdGl2ZVBvcnRhbFBERi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwog
MjAyMi0wMy0xNyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBCdWlsZCBicm9rZW4gb24gbWFjT1MgTW9udGVyZXkgMTIuMyAtIFBhc3NLaXRT
UEkgcmVsYXRlZCBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggODg2ZTdiZWMyMTMxZGI3Njg4NmFjNjlhM2E2YWI3MjE3OWZmYjZiNy4uOTNiODZlYjNm
NDZjM2NlZThjMzJkMzhjNmEzYTMyNGI0NTEwY2E0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNDYxLDYgKzM0NjEsMTMgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lB
Y3Rpb24sIEEKICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIG5h
dmlnYXRpb24gJiYgKG5hdmlnYXRpb24tPmlzU3lzdGVtUHJldmlldygpIHx8IChmb3JjZURvd25s
b2FkRnJvbURvd25sb2FkQXR0cmlidXRlICYmIG5hdmlnYXRpb24tPnNob3VsZFBlcmZvcm1Eb3du
bG9hZCgpKSkpCiAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6RG93bmxvYWQ7
CiAKKyAgICBhdXRvIGNhcHRpdmVQb3J0YWxNb2RlID0gKHBvbGljaWVzID8gcG9saWNpZXMtPmNh
cHRpdmVQb3J0YWxNb2RlRW5hYmxlZCgpIDogc2hvdWxkRW5hYmxlQ2FwdGl2ZVBvcnRhbE1vZGUo
KSkgPyBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpFbmFibGVkIDogV2ViUHJv
Y2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RGlzYWJsZWQ7CisgICAgaWYgKG5hdmlnYXRp
b24gJiYgY2FwdGl2ZVBvcnRhbE1vZGUgPT0gV2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFs
TW9kZTo6RW5hYmxlZCkgeworICAgICAgICBhdXRvIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3Ry
eTo6bWltZVR5cGVGb3JQYXRoKG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkudXJsKCkucGF0
aCgpLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBv
c3RTY3JpcHRNSU1FVHlwZShtaW1lVHlwZSkpCisgICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQ
b2xpY3lBY3Rpb246OkRvd25sb2FkOworICAgIH0KKwogICAgIGlmIChwb2xpY3lBY3Rpb24gIT0g
UG9saWN5QWN0aW9uOjpVc2UgfHwgIWZyYW1lLmlzTWFpbkZyYW1lKCkgfHwgIW5hdmlnYXRpb24p
IHsKICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRp
b24sIFdURk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBXVEZNb3Zl
KHNlbmRlcikpOwogICAgICAgICByZXR1cm47CkBAIC0zNDc2LDcgKzM0ODMsNiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbiwgQQogICAgIH0KIAogICAgIG1faXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxp
Y2l0bHlTZXQgPSAocG9saWNpZXMgJiYgcG9saWNpZXMtPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBs
aWNpdGx5U2V0KCkpIHx8IG1fY29uZmlndXJhdGlvbi0+aXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxp
Y2l0bHlTZXQoKTsKLSAgICBhdXRvIGNhcHRpdmVQb3J0YWxNb2RlID0gKHBvbGljaWVzID8gcG9s
aWNpZXMtPmNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZCgpIDogc2hvdWxkRW5hYmxlQ2FwdGl2ZVBv
cnRhbE1vZGUoKSkgPyBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpFbmFibGVk
IDogV2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RGlzYWJsZWQ7CiAgICAgcHJv
Y2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0
aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBjYXB0aXZlUG9ydGFsTW9kZSwgZnJhbWVJbmZvLCBXVEZNb3ZlKHdlYnNp
dGVEYXRhU3RvcmUpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBvbGlj
eUFjdGlvbiwgbmF2aWdhdGlvbiA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25BY3Rp
b24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJv
Y2Vzcy5jb3B5UmVmKCksCiAgICAgICAgIHBvbGljaWVzID0gV1RGTW92ZShwb2xpY2llcyksIHNl
bmRlciA9IFdURk1vdmUoc2VuZGVyKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudF0gKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzc0Zvck5hdmlnYXRpb24sIFN1c3BlbmRlZFBhZ2VQ
cm94eSogZGVzdGluYXRpb25TdXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0
YWJsZSB7CiAgICAgICAgIC8vIElmIHRoZSBuYXZpZ2F0aW9uIGhhcyBiZWVuIGRlc3Ryb3llZCwg
dGhlbiBubyBuZWVkIHRvIHByb2NlZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IGViNDhjN2IyZDEzODM5MmFiYmYxNDExOGY4ZTI1M2MwYWU5
ZjRlMjIuLjk2MmI0YmE1YjcyMmUyYTM2NDI1M2MwNDI1NWYyOWQxODE0ZjQxYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MTEzLDcgKzQx
MTMsNiBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlKQogI2lmIEVOQUJMRShNQVRITUwpCiAgICAgICAgIHNldHRpbmdzLnNl
dE1hdGhNTEVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCi0gICAgICAgIHNldHRpbmdzLnNldFBkZkpT
Vmlld2VyRW5hYmxlZCh0cnVlKTsKIAogICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6bWVkaWFDb250YWluZXJUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsK
ICAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhzdG9yZS5nZXRTdHJp
bmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb2RlY1R5cGVzQWxsb3dlZElu
Q2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdjMTE0NmJjYTU5OTM3NTJjZDZmOTAwZjQ0ZTVlZjNjMWRk
OTc1Y2MuLjZiNDM1YjUyMjRjODZlYjA5NmY4NjMxOTk4NmFiYTg0YThkYzM1NmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMi0wMy0xNyAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAg
VHJpZ2dlciBQREYgZG93bmxvYWQgaW4gY2FwdGl2ZSBwb3J0YWwgbW9kZSBpbnN0ZWFkIG9mIHVz
aW5nIFBERiB2aWV3ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzI0NQorICAgICAgICByZGFyOi8vcHJvYmxlbS84OTUyNTUzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBmb3Ig
Y2FwdGl2ZSBwb3J0YWwgcGRmIGJlaGF2aW9yLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbToKKyAgICAgICAgKHRlbXBQREZUaGF0RG9lc05v
dEV4aXN0KToKKwogMjAyMi0wMy0xNyAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIENsYXJpZnkgY29kZSBmb3IgbG9naWNhbC10by1waHlzaWNhbCBtYXBwaW5n
cywgYW5kIGFkZCBwaHlzaWNhbC10by1sb2dpY2FsIG1hcHBpbmdzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQppbmRleCA3MDBkOTRiMjhh
NzM4YjJhYmNlMjAzMDQzMzJhZjQ3ZDY5NTBhMjMzLi5hY2I3ZTQxYmI2NGJmM2Y2OTdkYzhiYTkx
MzliMTlmODJjNDBjOWE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRG93bmxvYWQubW0KQEAgLTQ1LDYgKzQ1LDggQEAKICNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFn
ZVByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9y
ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tEb3dubG9hZC5oPgogI2ltcG9ydCA8V2Vi
S2l0L19XS0Rvd25sb2FkRGVsZWdhdGUuaD4KQEAgLTEyNjQsNiArMTI2NiwxNSBAQCBzdGF0aWMg
TlNVUkwgKnRlbXBGaWxlVGhhdERvZXNOb3RFeGlzdCgpCiAgICAgcmV0dXJuIGZpbGU7CiB9CiAK
K3N0YXRpYyBOU1VSTCAqdGVtcFBERlRoYXREb2VzTm90RXhpc3QoKQoreworICAgIE5TVVJMICp0
ZW1wRGlyID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJEb3dubG9hZFRlc3QiXSBpc0RpcmVjdG9y
eTpZRVNdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0
b3J5QXRVUkw6dGVtcERpciB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0
ZXM6bmlsIGVycm9yOm5pbF07CisgICAgTlNVUkwgKmZpbGUgPSBbdGVtcERpciBVUkxCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJleGFtcGxlLnBkZiJdOworICAgIFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmZpbGUgZXJyb3I6bmlsXTsKKyAgICByZXR1
cm4gZmlsZTsKK30KKwogVEVTVChfV0tEb3dubG9hZCwgUmVzdW1lKQogewogICAgIHVzaW5nIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJOwpAQCAtMjYxNyw0ICsyNjI4LDUzIEBAIFRFU1QoV0tEb3du
bG9hZCwgU3ViZnJhbWVPcmlnaW5hdG9yKQogICAgIH0pOwogfQogCisKK3N0YXRpYyBUZXN0V2Vi
S2l0QVBJOjpIVFRQU2VydmVyIHNpbXBsZVBERlRlc3RTZXJ2ZXIoKQoreworICAgIHJldHVybiB7
IFtdKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb24gY29ubmVjdGlvbikgeworICAgICAgICBjb25u
ZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbY29ubmVjdGlvbl0oVmVjdG9yPGNoYXI+JiYpIHsK
KyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChtYWtlU3RyaW5nKAorICAgICAgICAgICAgICAg
ICJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAgICAgICAgICAgICJjb250ZW50LXR5cGU6IGFw
cGxpY2F0aW9uL3BkZlxyXG4iCisgICAgICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiA1MDAw
XHJcbiIKKyAgICAgICAgICAgICAgICAiXHJcbiIsIGxvbmdTdHJpbmc8NTAwMD4oJ2EnKQorICAg
ICAgICAgICAgKSk7CisgICAgICAgIH0pOworICAgIH0gfTsKK30KKworVEVTVChXS0Rvd25sb2Fk
LCBDYXB0aXZlUG9ydGFsUERGKQoreworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIFt3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzIF9zZXRDYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbVGVzdERvd25sb2FkRGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBhdXRvIHNlcnZlciA9IHNpbXBs
ZVBERlRlc3RTZXJ2ZXIoKTsKKyAgICBOU1VSTCAqZXhwZWN0ZWREb3dubG9hZEZpbGUgPSB0ZW1w
UERGVGhhdERvZXNOb3RFeGlzdCgpOworCisgICAgZGVsZWdhdGUuZ2V0KCkubmF2aWdhdGlvblJl
c3BvbnNlRGlkQmVjb21lRG93bmxvYWQgPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb25SZXNw
b25zZSAqLCBXS0Rvd25sb2FkICpkb3dubG9hZCkgeworICAgICAgICBkb3dubG9hZC5kZWxlZ2F0
ZSA9IGRlbGVnYXRlLmdldCgpOworICAgICAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVEZXN0aW5h
dGlvblVzaW5nUmVzcG9uc2UgPSBeKFdLRG93bmxvYWQgKmRvd25sb2FkLCBOU1VSTFJlc3BvbnNl
ICosIE5TU3RyaW5nICosIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNVUkwgKikpIHsKKyAg
ICAgICAgICAgIEVYUEVDVF9OVUxMKGRvd25sb2FkLnByb2dyZXNzLmZpbGVVUkwpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZXhwZWN0ZWREb3dubG9hZEZpbGUpOworICAgICAgICAg
ICAgRVhQRUNUX05PVF9OVUxMKGRvd25sb2FkLnByb2dyZXNzLmZpbGVVUkwpOworICAgICAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKGRvd25sb2FkLnByb2dyZXNzLmZpbGVVUkwuYWJzb2x1dGVTdHJp
bmcsIGV4cGVjdGVkRG93bmxvYWRGaWxlLmFic29sdXRlU3RyaW5nKTsKKyAgICAgICAgfTsKKyAg
ICB9OworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAg
W2RlbGVnYXRlIHdhaXRGb3JEb3dubG9hZERpZEZpbmlzaF07CisKKyAgICBjaGVja0ZpbGVDb250
ZW50cyhleHBlY3RlZERvd25sb2FkRmlsZSwgbG9uZ1N0cmluZzw1MDAwPignYScpKTsKKworICAg
IGNoZWNrQ2FsbGJhY2tSZWNvcmQoZGVsZWdhdGUuZ2V0KCksIHsKKyAgICAgICAgRG93bmxvYWRD
YWxsYmFjazo6TmF2aWdhdGlvbkFjdGlvbiwKKyAgICAgICAgRG93bmxvYWRDYWxsYmFjazo6TmF2
aWdhdGlvblJlc3BvbnNlLAorICAgICAgICBEb3dubG9hZENhbGxiYWNrOjpOYXZpZ2F0aW9uUmVz
cG9uc2VCZWNhbWVEb3dubG9hZCwKKyAgICAgICAgRG93bmxvYWRDYWxsYmFjazo6RGVjaWRlRGVz
dGluYXRpb24sCisgICAgICAgIERvd25sb2FkQ2FsbGJhY2s6OkRpZEZpbmlzaAorICAgIH0pOwor
fQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455019</attachid>
            <date>2022-03-17 13:48:59 -0700</date>
            <delta_ts>2022-03-18 08:36:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237245-20220317134858.patch</filename>
            <type>text/plain</type>
            <size>8578</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxY2IyOWUzYTY4ZDAwNGFk
OWM5OWE5ZmY3MjcwMTJlYjQyZDRkZGEuLmYwODRkY2U1NGY5NGExZWIyYzQwMGZlM2M4ODg4YjUw
OWM1NzI1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMTcgIEogUGFzY29l
ICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFRyaWdnZXIgUERGIGRvd25sb2FkIGlu
IGNhcHRpdmUgcG9ydGFsIG1vZGUgaW5zdGVhZCBvZiB1c2luZyBQREYgdmlld2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNDUKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vODk1MjU1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RvcGdhcCBzb2x1dGlvbiBzaW5jZSBQREYuanMg
bmVlZHMgbW9yZSBjeWNsZXMgdG8gcG9saXNoLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdL
RG93bmxvYWQuQ2FwdGl2ZVBvcnRhbFBERi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAy
Mi0wMy0xNyAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBwdXNo
IHByZWZlcmVuY2UgdG8gYmUgc2V0IHByb2dyYW1hdGljYWxseQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZmQwYmZiMmE1MTJkODA1ODM5OTUxZTdkOGQ1NmYy
ZDY2OWI3YmVlMy4uOWZjZmMzMTA4YWU4ODJmMjA1YWQ3YWE4NzQ1NDIzOWRhNTlmYjU4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NzIzLDcgKzU3MjMs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNl
ID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRl
KFdURk1vdmUoZnJhbWVJbmZvKSwgdGhpcykuZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5T
aG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlKTsKIAogICAgIFJlZiBsaXN0ZW5lciA9IGZy
YW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCB3ZWJQYWdlSUQsIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5h
dmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAotICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0
aW9uUmVzcG9uc2VdIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xp
Y2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2Fybmlu
Zywgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbikgbXV0YWJsZSB7CisgICAgICAgIHByb2Nlc3MsIG5hdmlnYXRpb25S
ZXNwb25zZV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVz
KiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdX
YXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2Vy
dCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMg
b2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93
c2luZ1dhcm5pbmcsICFzYWZlQnJvd3NpbmdXYXJuaW5nKTsKQEAgLTU3MzEsNiArNTczMSw5IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVj
aXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0
ZW5lcklELCBwcm9jZXNzXSAoY29uc3QgYXV0byYgcG9saWN5RGVjaXNpb24pIHsKICAgICAgICAg
ICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNp
c2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBwb2xpY3lEZWNpc2lvbiwgY3JlYXRlTmV0d29ya0V4
dGVuc2lvbnNTYW5kYm94RXh0ZW5zaW9ucyhwcm9jZXNzKSksIHdlYlBhZ2VJRCk7CiAgICAgICAg
IH0pOworICAgICAgICBhdXRvIGNhcHRpdmVQb3J0YWxNb2RlID0gKHBvbGljaWVzID8gcG9saWNp
ZXMtPmNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZCgpIDogc2hvdWxkRW5hYmxlQ2FwdGl2ZVBvcnRh
bE1vZGUoKSkgPyBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpFbmFibGVkIDog
V2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RGlzYWJsZWQ7CisgICAgICAgIGlm
IChjYXB0aXZlUG9ydGFsTW9kZSA9PSBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2Rl
OjpFbmFibGVkICYmIE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0U2NyaXB0TUlNRVR5cGUo
bmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCkpKQorICAgICAgICAgICAg
cG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpEb3dubG9hZDsKICAgICAgICAgCiAgICAgICAg
IHJlY2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBu
dWxscHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSk7CiAg
ICAgfSwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBw
Qm91bmREb21haW5SZXN1bHQ6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggZWI0OGM3YjJkMTM4MzkyYWJiZjE0MTE4ZjhlMjUzYzBhZTlm
NGUyMi4uOTYyYjRiYTViNzIyZTJhMzY0MjUzYzA0MjU1ZjI5ZDE4MTRmNDFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQxMTMsNyArNDEx
Myw2IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgc3RvcmUpCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAgICAgc2V0dGluZ3Muc2V0
TWF0aE1MRW5hYmxlZChmYWxzZSk7CiAjZW5kaWYKLSAgICAgICAgc2V0dGluZ3Muc2V0UGRmSlNW
aWV3ZXJFbmFibGVkKHRydWUpOwogCiAgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjptZWRpYUNvbnRhaW5lclR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOwog
ICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0b3JlLmdldFN0cmlu
Z1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYUNvZGVjVHlwZXNBbGxvd2VkSW5D
YXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNDA4MzRmNTJhYmJmODljNTEzYTk4MzIzOTk3YjNkZDM3MTli
NzYwMi4uZmJhN2RjNWY4YWM3NDA5NmY2OTI3OTQ1MWE0MjIzNDU2OTNmMjg4OCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIyLTAzLTE3ICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBU
cmlnZ2VyIFBERiBkb3dubG9hZCBpbiBjYXB0aXZlIHBvcnRhbCBtb2RlIGluc3RlYWQgb2YgdXNp
bmcgUERGIHZpZXdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3MjQ1CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzg5NTI1NTMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGZvciBj
YXB0aXZlIHBvcnRhbCBwZGYgYmVoYXZpb3IuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOgorICAgICAgICAodGVtcFBERlRoYXREb2VzTm90
RXhpc3QpOgorCiAyMDIyLTAzLTE3ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIE9ubHkgc2hvdyBub3RpZmljYXRpb24gcGVybWlzc2lvbiBwcm9tcHQgb24gdXNlciBnZXN0
dXJlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rv
d25sb2FkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9h
ZC5tbQppbmRleCA3MDBkOTRiMjhhNzM4YjJhYmNlMjAzMDQzMzJhZjQ3ZDY5NTBhMjMzLi5hY2I3
ZTQxYmI2NGJmM2Y2OTdkYzhiYTkxMzliMTlmODJjNDBjOWE4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KQEAgLTQ1LDYgKzQ1LDgg
QEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlv
blByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tEb3du
bG9hZC5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0Rvd25sb2FkRGVsZWdhdGUuaD4KQEAgLTEyNjQs
NiArMTI2NiwxNSBAQCBzdGF0aWMgTlNVUkwgKnRlbXBGaWxlVGhhdERvZXNOb3RFeGlzdCgpCiAg
ICAgcmV0dXJuIGZpbGU7CiB9CiAKK3N0YXRpYyBOU1VSTCAqdGVtcFBERlRoYXREb2VzTm90RXhp
c3QoKQoreworICAgIE5TVVJMICp0ZW1wRGlyID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbTlNU
ZW1wb3JhcnlEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJEb3du
bG9hZFRlc3QiXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6dGVtcERpciB3aXRoSW50ZXJtZWRpYXRlRGly
ZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisgICAgTlNVUkwgKmZpbGUg
PSBbdGVtcERpciBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJleGFtcGxlLnBkZiJdOwor
ICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmZpbGUg
ZXJyb3I6bmlsXTsKKyAgICByZXR1cm4gZmlsZTsKK30KKwogVEVTVChfV0tEb3dubG9hZCwgUmVz
dW1lKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwpAQCAtMjYxNyw0ICsy
NjI4LDUzIEBAIFRFU1QoV0tEb3dubG9hZCwgU3ViZnJhbWVPcmlnaW5hdG9yKQogICAgIH0pOwog
fQogCisKK3N0YXRpYyBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNpbXBsZVBERlRlc3RTZXJ2
ZXIoKQoreworICAgIHJldHVybiB7IFtdKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb24gY29ubmVj
dGlvbikgeworICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbY29ubmVjdGlv
bl0oVmVjdG9yPGNoYXI+JiYpIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChtYWtlU3Ry
aW5nKAorICAgICAgICAgICAgICAgICJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAgICAgICAg
ICAgICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3BkZlxyXG4iCisgICAgICAgICAgICAgICAg
IkNvbnRlbnQtTGVuZ3RoOiA1MDAwXHJcbiIKKyAgICAgICAgICAgICAgICAiXHJcbiIsIGxvbmdT
dHJpbmc8NTAwMD4oJ2EnKQorICAgICAgICAgICAgKSk7CisgICAgICAgIH0pOworICAgIH0gfTsK
K30KKworVEVTVChXS0Rvd25sb2FkLCBDYXB0aXZlUG9ydGFsUERGKQoreworICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10p
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVu
Y2VzIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdERvd25sb2FkRGVsZWdhdGUgbmV3XSk7
CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAg
ICBhdXRvIHNlcnZlciA9IHNpbXBsZVBERlRlc3RTZXJ2ZXIoKTsKKyAgICBOU1VSTCAqZXhwZWN0
ZWREb3dubG9hZEZpbGUgPSB0ZW1wUERGVGhhdERvZXNOb3RFeGlzdCgpOworCisgICAgZGVsZWdh
dGUuZ2V0KCkubmF2aWdhdGlvblJlc3BvbnNlRGlkQmVjb21lRG93bmxvYWQgPSBeKFdLV2ViVmll
dyAqLCBXS05hdmlnYXRpb25SZXNwb25zZSAqLCBXS0Rvd25sb2FkICpkb3dubG9hZCkgeworICAg
ICAgICBkb3dubG9hZC5kZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOworICAgICAgICBkZWxlZ2F0
ZS5nZXQoKS5kZWNpZGVEZXN0aW5hdGlvblVzaW5nUmVzcG9uc2UgPSBeKFdLRG93bmxvYWQgKmRv
d25sb2FkLCBOU1VSTFJlc3BvbnNlICosIE5TU3RyaW5nICosIHZvaWQgKF5jb21wbGV0aW9uSGFu
ZGxlcikoTlNVUkwgKikpIHsKKyAgICAgICAgICAgIEVYUEVDVF9OVUxMKGRvd25sb2FkLnByb2dy
ZXNzLmZpbGVVUkwpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZXhwZWN0ZWREb3du
bG9hZEZpbGUpOworICAgICAgICAgICAgRVhQRUNUX05PVF9OVUxMKGRvd25sb2FkLnByb2dyZXNz
LmZpbGVVUkwpOworICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGRvd25sb2FkLnByb2dyZXNz
LmZpbGVVUkwuYWJzb2x1dGVTdHJpbmcsIGV4cGVjdGVkRG93bmxvYWRGaWxlLmFic29sdXRlU3Ry
aW5nKTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2Vy
dmVyLnJlcXVlc3QoKV07CisgICAgW2RlbGVnYXRlIHdhaXRGb3JEb3dubG9hZERpZEZpbmlzaF07
CisKKyAgICBjaGVja0ZpbGVDb250ZW50cyhleHBlY3RlZERvd25sb2FkRmlsZSwgbG9uZ1N0cmlu
Zzw1MDAwPignYScpKTsKKworICAgIGNoZWNrQ2FsbGJhY2tSZWNvcmQoZGVsZWdhdGUuZ2V0KCks
IHsKKyAgICAgICAgRG93bmxvYWRDYWxsYmFjazo6TmF2aWdhdGlvbkFjdGlvbiwKKyAgICAgICAg
RG93bmxvYWRDYWxsYmFjazo6TmF2aWdhdGlvblJlc3BvbnNlLAorICAgICAgICBEb3dubG9hZENh
bGxiYWNrOjpOYXZpZ2F0aW9uUmVzcG9uc2VCZWNhbWVEb3dubG9hZCwKKyAgICAgICAgRG93bmxv
YWRDYWxsYmFjazo6RGVjaWRlRGVzdGluYXRpb24sCisgICAgICAgIERvd25sb2FkQ2FsbGJhY2s6
OkRpZEZpbmlzaAorICAgIH0pOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455095</attachid>
            <date>2022-03-18 08:36:44 -0700</date>
            <delta_ts>2022-03-18 08:44:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237245-20220318083643.patch</filename>
            <type>text/plain</type>
            <size>7619</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNDRhNzY4MjZhYWI5NzBl
ZTFmZDIwMWE5NDQwNGE5NzA4NjAxYTEuLmIxZjI4NzFmNDI5NWE4OGI4NTdmNjA2YTQ3NzVhMGQ4
NDY1ZjRmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMTggIEogUGFzY29l
ICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFRyaWdnZXIgUERGIGRvd25sb2FkIGlu
IGNhcHRpdmUgcG9ydGFsIG1vZGUgaW5zdGVhZCBvZiB1c2luZyBQREYgdmlld2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNDUKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vODk1MjU1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1l
ei4KKworICAgICAgICBUaGlzIGlzIGEgc3RvcGdhcCBzb2x1dGlvbiBzaW5jZSBQREYuanMgbmVl
ZHMgbW9yZSBjeWNsZXMgdG8gcG9saXNoLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdLRG93
bmxvYWQuQ2FwdGl2ZVBvcnRhbFBERi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMi0w
My0xOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
Y3ljbGluZyBhIHdlYmdsIGNvbnRleHQgd2hlbiBpdCBoYXMgYmVlbiBsb3N0IGFuZCByZXN0b3Jl
ZCBjYXVzZXMgYSBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggZmQwYmZiMmE1MTJkODA1ODM5OTUxZTdkOGQ1NmYyZDY2OWI3YmVlMy4uYTg0ODJiNzkz
NzJjNGJkY2FhYTI3ZGZjNjBhMWMxN2NiMDhlYmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NzIzLDcgKzU3MjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLAogICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVz
cG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwg
dGhpcykuZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2Fk
QXR0cmlidXRlKTsKIAogICAgIFJlZiBsaXN0ZW5lciA9IGZyYW1lLT5zZXRVcFBvbGljeUxpc3Rl
bmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWJQYWdlSUQs
IGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5h
dmlnYXRpb24pLAotICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2VdIChQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVC
cm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikgbXV0
YWJsZSB7CisgICAgICAgIHByb2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBvbGljeUFjdGlv
biBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8
U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFs
PE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9s
aWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6
Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93c2luZ1dhcm5pbmcsICFzYWZlQnJv
d3NpbmdXYXJuaW5nKTsKQEAgLTU3MzEsNiArNTczMSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsCiAgICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShp
ZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzXSAoY29u
c3QgYXV0byYgcG9saWN5RGVjaXNpb24pIHsKICAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5l
cklELCBwb2xpY3lEZWNpc2lvbiwgY3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5z
aW9ucyhwcm9jZXNzKSksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0pOworICAgICAgICBpZiAocHJv
Y2Vzcy0+Y2FwdGl2ZVBvcnRhbE1vZGUoKSA9PSBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0
YWxNb2RlOjpFbmFibGVkICYmIE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0U2NyaXB0TUlN
RVR5cGUobmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCkpKQorICAgICAg
ICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpEb3dubG9hZDsKICAgICAgICAgCiAg
ICAgICAgIHJlY2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdl
dCgpLCBudWxscHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVy
KSk7CiAgICAgfSwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhw
ZWN0QXBwQm91bmREb21haW5SZXN1bHQ6Ok5vKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMDM4ZGM0M2NmNDA5NDViOTA4OTY4NzZjMzVmODgw
ZDk1YzkwNzkzLi41M2U2ZGZhMjkyNzkzYjhiODhmYzNkZWIyODEzNDY2NDJkZDMxNjM4IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjItMDMtMTggIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAg
ICAgIFRyaWdnZXIgUERGIGRvd25sb2FkIGluIGNhcHRpdmUgcG9ydGFsIG1vZGUgaW5zdGVhZCBv
ZiB1c2luZyBQREYgdmlld2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcyNDUKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vODk1MjU1MzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBBZGQgQVBJIHRlc3QgZm9y
IGNhcHRpdmUgcG9ydGFsIHBkZiBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW06CisgICAgICAgICh0ZW1wUERGVGhhdERvZXNO
b3RFeGlzdCk6CisKIDIwMjItMDMtMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEluaXRpYWwgaW1wb3J0IG9mIHRoZSBHc3RX
ZWJSVEMgYmFja2VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb3dubG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRG93bmxvYWQubW0KaW5kZXggNzAwZDk0YjI4YTczOGIyYWJjZTIwMzA0MzMyYWY0N2Q2OTUw
YTIzMy4uYWNiN2U0MWJiNjRiZjNmNjk3ZGM4YmE5MTM5YjE5ZjgyYzQwYzlhOCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCkBAIC00
NSw2ICs0NSw4IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJwYWdlUHJlZmVyZW5j
ZXMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvX1dLRG93bmxvYWQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tEb3dubG9hZERlbGVnYXRlLmg+
CkBAIC0xMjY0LDYgKzEyNjYsMTUgQEAgc3RhdGljIE5TVVJMICp0ZW1wRmlsZVRoYXREb2VzTm90
RXhpc3QoKQogICAgIHJldHVybiBmaWxlOwogfQogCitzdGF0aWMgTlNVUkwgKnRlbXBQREZUaGF0
RG9lc05vdEV4aXN0KCkKK3sKKyAgICBOU1VSTCAqdGVtcERpciA9IFtOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6W05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9u
ZW50OkAiRG93bmxvYWRUZXN0Il0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIGNyZWF0ZURpcmVjdG9yeUF0VVJMOnRlbXBEaXIgd2l0aEludGVy
bWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBlcnJvcjpuaWxdOworICAgIE5T
VVJMICpmaWxlID0gW3RlbXBEaXIgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiZXhhbXBs
ZS5wZGYiXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1B
dFVSTDpmaWxlIGVycm9yOm5pbF07CisgICAgcmV0dXJuIGZpbGU7Cit9CisKIFRFU1QoX1dLRG93
bmxvYWQsIFJlc3VtZSkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKQEAg
LTI2MTcsNCArMjYyOCw1MyBAQCBURVNUKFdLRG93bmxvYWQsIFN1YmZyYW1lT3JpZ2luYXRvcikK
ICAgICB9KTsKIH0KIAorCitzdGF0aWMgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzaW1wbGVQ
REZUZXN0U2VydmVyKCkKK3sKKyAgICByZXR1cm4geyBbXShUZXN0V2ViS2l0QVBJOjpDb25uZWN0
aW9uIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3Qo
W2Nvbm5lY3Rpb25dKFZlY3RvcjxjaGFyPiYmKSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNl
bmQobWFrZVN0cmluZygKKyAgICAgICAgICAgICAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAg
ICAgICAgICAgICAgICAiY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9wZGZcclxuIgorICAgICAg
ICAgICAgICAgICJDb250ZW50LUxlbmd0aDogNTAwMFxyXG4iCisgICAgICAgICAgICAgICAgIlxy
XG4iLCBsb25nU3RyaW5nPDUwMDA+KCdhJykKKyAgICAgICAgICAgICkpOworICAgICAgICB9KTsK
KyAgICB9IH07Cit9CisKK1RFU1QoV0tEb3dubG9hZCwgQ2FwdGl2ZVBvcnRhbFBERikKK3sKKyAg
ICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBuZXddKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlcyBfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkOllFU107CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9u
LmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3REb3dubG9hZERlbGVn
YXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CisgICAgYXV0byBzZXJ2ZXIgPSBzaW1wbGVQREZUZXN0U2VydmVyKCk7CisgICAgTlNV
UkwgKmV4cGVjdGVkRG93bmxvYWRGaWxlID0gdGVtcFBERlRoYXREb2VzTm90RXhpc3QoKTsKKwor
ICAgIGRlbGVnYXRlLmdldCgpLm5hdmlnYXRpb25SZXNwb25zZURpZEJlY29tZURvd25sb2FkID0g
XihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiwgV0tEb3dubG9hZCAqZG93bmxv
YWQpIHsKKyAgICAgICAgZG93bmxvYWQuZGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKyAgICAg
ICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlRGVzdGluYXRpb25Vc2luZ1Jlc3BvbnNlID0gXihXS0Rv
d25sb2FkICpkb3dubG9hZCwgTlNVUkxSZXNwb25zZSAqLCBOU1N0cmluZyAqLCB2b2lkICheY29t
cGxldGlvbkhhbmRsZXIpKE5TVVJMICopKSB7CisgICAgICAgICAgICBFWFBFQ1RfTlVMTChkb3du
bG9hZC5wcm9ncmVzcy5maWxlVVJMKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGV4
cGVjdGVkRG93bmxvYWRGaWxlKTsKKyAgICAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChkb3dubG9h
ZC5wcm9ncmVzcy5maWxlVVJMKTsKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShkb3dubG9h
ZC5wcm9ncmVzcy5maWxlVVJMLmFic29sdXRlU3RyaW5nLCBleHBlY3RlZERvd25sb2FkRmlsZS5h
YnNvbHV0ZVN0cmluZyk7CisgICAgICAgIH07CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yRG93bmxvYWRE
aWRGaW5pc2hdOworCisgICAgY2hlY2tGaWxlQ29udGVudHMoZXhwZWN0ZWREb3dubG9hZEZpbGUs
IGxvbmdTdHJpbmc8NTAwMD4oJ2EnKSk7CisKKyAgICBjaGVja0NhbGxiYWNrUmVjb3JkKGRlbGVn
YXRlLmdldCgpLCB7CisgICAgICAgIERvd25sb2FkQ2FsbGJhY2s6Ok5hdmlnYXRpb25BY3Rpb24s
CisgICAgICAgIERvd25sb2FkQ2FsbGJhY2s6Ok5hdmlnYXRpb25SZXNwb25zZSwKKyAgICAgICAg
RG93bmxvYWRDYWxsYmFjazo6TmF2aWdhdGlvblJlc3BvbnNlQmVjYW1lRG93bmxvYWQsCisgICAg
ICAgIERvd25sb2FkQ2FsbGJhY2s6OkRlY2lkZURlc3RpbmF0aW9uLAorICAgICAgICBEb3dubG9h
ZENhbGxiYWNrOjpEaWRGaW5pc2gKKyAgICB9KTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455096</attachid>
            <date>2022-03-18 08:44:31 -0700</date>
            <delta_ts>2022-03-18 12:12:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237245-20220318084431.patch</filename>
            <type>text/plain</type>
            <size>6312</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNDRhNzY4MjZhYWI5NzBl
ZTFmZDIwMWE5NDQwNGE5NzA4NjAxYTEuLmIxZjI4NzFmNDI5NWE4OGI4NTdmNjA2YTQ3NzVhMGQ4
NDY1ZjRmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMTggIEogUGFzY29l
ICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFRyaWdnZXIgUERGIGRvd25sb2FkIGlu
IGNhcHRpdmUgcG9ydGFsIG1vZGUgaW5zdGVhZCBvZiB1c2luZyBQREYgdmlld2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNDUKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vODk1MjU1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1l
ei4KKworICAgICAgICBUaGlzIGlzIGEgc3RvcGdhcCBzb2x1dGlvbiBzaW5jZSBQREYuanMgbmVl
ZHMgbW9yZSBjeWNsZXMgdG8gcG9saXNoLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdLRG93
bmxvYWQuQ2FwdGl2ZVBvcnRhbFBERi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMi0w
My0xOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
Y3ljbGluZyBhIHdlYmdsIGNvbnRleHQgd2hlbiBpdCBoYXMgYmVlbiBsb3N0IGFuZCByZXN0b3Jl
ZCBjYXVzZXMgYSBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggZmQwYmZiMmE1MTJkODA1ODM5OTUxZTdkOGQ1NmYyZDY2OWI3YmVlMy4uZjZiNDQwNjQ1
NjBkNTBlNjM3ODhjZDM3YTEyZDhhNWMwODQ2YjJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NzMxLDYgKzU3MzEsOCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLAogICAgICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVh
dGUoaWRlbnRpZmllciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2Vzc10g
KGNvbnN0IGF1dG8mIHBvbGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBwcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlz
dGVuZXJJRCwgcG9saWN5RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4
dGVuc2lvbnMocHJvY2VzcykpLCB3ZWJQYWdlSUQpOwogICAgICAgICB9KTsKKyAgICAgICAgaWYg
KHByb2Nlc3MtPmNhcHRpdmVQb3J0YWxNb2RlKCkgPT0gV2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZl
UG9ydGFsTW9kZTo6RW5hYmxlZCAmJiBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk9yUG9zdFNjcmlw
dE1JTUVUeXBlKG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpKSkKKyAg
ICAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6RG93bmxvYWQ7CiAgICAgICAg
IAogICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlv
bi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNl
bmRlcikpOwogICAgIH0sIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm8sIFNob3Vs
ZEV4cGVjdEFwcEJvdW5kRG9tYWluUmVzdWx0OjpObyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzAzOGRjNDNjZjQwOTQ1YjkwODk2ODc2YzM1
Zjg4MGQ5NWM5MDc5My4uNTNlNmRmYTI5Mjc5M2I4Yjg4ZmMzZGViMjgxMzQ2NjQyZGQzMTYzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIyLTAzLTE4ICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKwor
ICAgICAgICBUcmlnZ2VyIFBERiBkb3dubG9hZCBpbiBjYXB0aXZlIHBvcnRhbCBtb2RlIGluc3Rl
YWQgb2YgdXNpbmcgUERGIHZpZXdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3MjQ1CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzg5NTI1NTMxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0
IGZvciBjYXB0aXZlIHBvcnRhbCBwZGYgYmVoYXZpb3IuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOgorICAgICAgICAodGVtcFBERlRoYXRE
b2VzTm90RXhpc3QpOgorCiAyMDIyLTAzLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBJbml0aWFsIGltcG9ydCBvZiB0aGUg
R3N0V2ViUlRDIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Rvd25sb2FkLm1tCmluZGV4IDcwMGQ5NGIyOGE3MzhiMmFiY2UyMDMwNDMzMmFmNDdk
Njk1MGEyMzMuLmFjYjdlNDFiYjY0YmYzZjY5N2RjOGJhOTEzOWIxOWY4MmM0MGM5YTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQpA
QCAtNDUsNiArNDUsOCBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZl
cmVuY2VzLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L19XS0Rvd25sb2FkLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRG93bmxvYWREZWxlZ2F0
ZS5oPgpAQCAtMTI2NCw2ICsxMjY2LDE1IEBAIHN0YXRpYyBOU1VSTCAqdGVtcEZpbGVUaGF0RG9l
c05vdEV4aXN0KCkKICAgICByZXR1cm4gZmlsZTsKIH0KIAorc3RhdGljIE5TVVJMICp0ZW1wUERG
VGhhdERvZXNOb3RFeGlzdCgpCit7CisgICAgTlNVUkwgKnRlbXBEaXIgPSBbTlNVUkwgZmlsZVVS
TFdpdGhQYXRoOltOU1RlbXBvcmFyeURpcmVjdG9yeSgpIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIkRvd25sb2FkVGVzdCJdIGlzRGlyZWN0b3J5OllFU107CisgICAgW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjcmVhdGVEaXJlY3RvcnlBdFVSTDp0ZW1wRGlyIHdpdGhJ
bnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKKyAg
ICBOU1VSTCAqZmlsZSA9IFt0ZW1wRGlyIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImV4
YW1wbGUucGRmIl07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJ
dGVtQXRVUkw6ZmlsZSBlcnJvcjpuaWxdOworICAgIHJldHVybiBmaWxlOworfQorCiBURVNUKF9X
S0Rvd25sb2FkLCBSZXN1bWUpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7
CkBAIC0yNjE3LDQgKzI2MjgsNTMgQEAgVEVTVChXS0Rvd25sb2FkLCBTdWJmcmFtZU9yaWdpbmF0
b3IpCiAgICAgfSk7CiB9CiAKKworc3RhdGljIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2lt
cGxlUERGVGVzdFNlcnZlcigpCit7CisgICAgcmV0dXJuIHsgW10oVGVzdFdlYktpdEFQSTo6Q29u
bmVjdGlvbiBjb25uZWN0aW9uKSB7CisgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1
ZXN0KFtjb25uZWN0aW9uXShWZWN0b3I8Y2hhcj4mJikgeworICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKG1ha2VTdHJpbmcoCisgICAgICAgICAgICAgICAgIkhUVFAvMS4xIDIwMCBPS1xyXG4i
CisgICAgICAgICAgICAgICAgImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vcGRmXHJcbiIKKyAg
ICAgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDUwMDBcclxuIgorICAgICAgICAgICAgICAg
ICJcclxuIiwgbG9uZ1N0cmluZzw1MDAwPignYScpCisgICAgICAgICAgICApKTsKKyAgICAgICAg
fSk7CisgICAgfSB9OworfQorCitURVNUKFdLRG93bmxvYWQsIENhcHRpdmVQb3J0YWxQREYpCit7
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gbmV3XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1bHRX
ZWJwYWdlUHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZDpZRVNdOworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0RG93bmxvYWRE
ZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdh
dGUuZ2V0KCldOworICAgIGF1dG8gc2VydmVyID0gc2ltcGxlUERGVGVzdFNlcnZlcigpOworICAg
IE5TVVJMICpleHBlY3RlZERvd25sb2FkRmlsZSA9IHRlbXBQREZUaGF0RG9lc05vdEV4aXN0KCk7
CisKKyAgICBkZWxlZ2F0ZS5nZXQoKS5uYXZpZ2F0aW9uUmVzcG9uc2VEaWRCZWNvbWVEb3dubG9h
ZCA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvblJlc3BvbnNlICosIFdLRG93bmxvYWQgKmRv
d25sb2FkKSB7CisgICAgICAgIGRvd25sb2FkLmRlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7Cisg
ICAgICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZURlc3RpbmF0aW9uVXNpbmdSZXNwb25zZSA9IF4o
V0tEb3dubG9hZCAqZG93bmxvYWQsIE5TVVJMUmVzcG9uc2UgKiwgTlNTdHJpbmcgKiwgdm9pZCAo
XmNvbXBsZXRpb25IYW5kbGVyKShOU1VSTCAqKSkgeworICAgICAgICAgICAgRVhQRUNUX05VTEwo
ZG93bmxvYWQucHJvZ3Jlc3MuZmlsZVVSTCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihleHBlY3RlZERvd25sb2FkRmlsZSk7CisgICAgICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZG93
bmxvYWQucHJvZ3Jlc3MuZmlsZVVSTCk7CisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoZG93
bmxvYWQucHJvZ3Jlc3MuZmlsZVVSTC5hYnNvbHV0ZVN0cmluZywgZXhwZWN0ZWREb3dubG9hZEZp
bGUuYWJzb2x1dGVTdHJpbmcpOworICAgICAgICB9OworICAgIH07CisKKyAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBbZGVsZWdhdGUgd2FpdEZvckRvd25s
b2FkRGlkRmluaXNoXTsKKworICAgIGNoZWNrRmlsZUNvbnRlbnRzKGV4cGVjdGVkRG93bmxvYWRG
aWxlLCBsb25nU3RyaW5nPDUwMDA+KCdhJykpOworCisgICAgY2hlY2tDYWxsYmFja1JlY29yZChk
ZWxlZ2F0ZS5nZXQoKSwgeworICAgICAgICBEb3dubG9hZENhbGxiYWNrOjpOYXZpZ2F0aW9uQWN0
aW9uLAorICAgICAgICBEb3dubG9hZENhbGxiYWNrOjpOYXZpZ2F0aW9uUmVzcG9uc2UsCisgICAg
ICAgIERvd25sb2FkQ2FsbGJhY2s6Ok5hdmlnYXRpb25SZXNwb25zZUJlY2FtZURvd25sb2FkLAor
ICAgICAgICBEb3dubG9hZENhbGxiYWNrOjpEZWNpZGVEZXN0aW5hdGlvbiwKKyAgICAgICAgRG93
bmxvYWRDYWxsYmFjazo6RGlkRmluaXNoCisgICAgfSk7Cit9CisKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>