<?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>222701</bug_id>
          
          <creation_ts>2021-03-03 16:42:32 -0800</creation_ts>
          <short_desc>Clean up API::ResourceLoadStatisticsThirdParty / API::ResourceLoadStatisticsFirstParty</short_desc>
          <delta_ts>2021-03-04 15:19:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1735604</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-03 16:42:32 -0800</bug_when>
    <thetext>Clean up API::ResourceLoadStatisticsThirdParty / API::ResourceLoadStatisticsFirstParty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735606</commentid>
    <comment_count>1</comment_count>
      <attachid>422162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-03 16:44:40 -0800</bug_when>
    <thetext>Created attachment 422162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735615</commentid>
    <comment_count>2</comment_count>
      <attachid>422165</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-03 16:58:49 -0800</bug_when>
    <thetext>Created attachment 422165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735997</commentid>
    <comment_count>3</comment_count>
      <attachid>422165</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-04 13:38:07 -0800</bug_when>
    <thetext>Comment on attachment 422165
Patch

r=me

Maybe we should make this a release assert so we can catch it in CrashTracer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735998</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-04 13:39:18 -0800</bug_when>
    <thetext>I think we need to do something more general.  It should be made always OK to deallocate our ObjC objects on a background thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736002</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-04 13:54:05 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; I think we need to do something more general.  It should be made always OK
&gt; to deallocate our ObjC objects on a background thread.

It is a slippery slope. If we start allowing our objects to be destroyed on a background thread, then clients are doing to be tempted to also *USE* these objects on a background thread and our API is currently not thread-safe by any means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736008</commentid>
    <comment_count>6</comment_count>
      <attachid>422282</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-04 14:02:31 -0800</bug_when>
    <thetext>Created attachment 422282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736039</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-04 15:14:35 -0800</bug_when>
    <thetext>Sometimes it can be hard, especially with ARC, to ensure deallocation on the main thread -- even when there is no use on a secondary thread -- just because of the transitive set of pointers in an object graph. In the past, we have sometimes written code to forward the deallocation of an API object to the main thread if needed. It might be something worth considering from some of our API objects. That said, in the cases we know about right now, the bug appears to be *use* on a secondary thread, and not just deallocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736040</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 15:14:59 -0800</bug_when>
    <thetext>Committed r273923: &lt;https://commits.webkit.org/r273923&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422282.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736041</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 15:15:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/75059950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736045</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-04 15:19:34 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #7)
&gt; Sometimes it can be hard, especially with ARC, to ensure deallocation on the
&gt; main thread -- even when there is no use on a secondary thread -- just
&gt; because of the transitive set of pointers in an object graph. In the past,
&gt; we have sometimes written code to forward the deallocation of an API object
&gt; to the main thread if needed. It might be something worth considering from
&gt; some of our API objects. That said, in the cases we know about right now,
&gt; the bug appears to be *use* on a secondary thread, and not just deallocation.

I see, then I agree that it may be nice to make our API objects dispatch to main thread on destruction.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422162</attachid>
            <date>2021-03-03 16:44:40 -0800</date>
            <delta_ts>2021-03-03 16:58:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222701-20210303164440.patch</filename>
            <type>text/plain</type>
            <size>4311</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwZjNiZjgwMGNiMDA0Nzhj
NDgxMTQ5MDIwMzdhYmU4MTc0MGMxOTcuLjc3YTI5ZDFmMWQ1NjBiNGYzYzIzOWJlZGUyNTU0Mzhj
OWJhODE5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDMtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBBUEk6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5IC8gQVBJOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmly
c3RQYXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIyNzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2xlYW4gdXAgQVBJOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eSAvIEFQSTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk6CisgICAgICAgIDEuIE1ha2UgY29uc3RydWN0
b3JzIHByaXZhdGUgc2luY2UgdGhlcmUgaXMgYSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9uCisg
ICAgICAgIDIuIE1hcmsgY29uc3RydWN0b3IgYXMgZXhwbGljaXQgc2luY2UgdGhleSB0YWtlIGEg
c2luZ2xlIHBhcmFtZXRlcgorICAgICAgICAzLiBVcGRhdGUgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZpcnN0UGFydHkgY29uc3RydWN0b3IgdG8gdGFrZSBwYXJhbWV0ZXIgYXMgYSBjb25zdAorICAg
ICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBwYXNzaW5nIGl0IGJ5IHZhbHVlLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJk
UGFydHkuaDoKKwogMjAyMS0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU11bV0syXSBDaGFuZ2luZyB0aGUgc3lzdGVtIGxhbmd1YWdlIGRvZXMg
bm90IHVwZGF0ZSBuYXZpZ2F0b3IubGFuZ3VhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBh
cnR5LmgKaW5kZXggYzhlMjg1OGMwZGM5MGViNTVhN2MwZmVhY2Y3NDk2ZDA4ZmY0Y2VlYi4uYjQy
OTBlYWI1ZWVkMGU2MmM5MDk5OWYyMjllYjFkZDU5YWM3ZmY2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVJlc291cmNlTG9hZFN0YXRp
c3RpY3NGaXJzdFBhcnR5LmgKQEAgLTMzLDIzICszMywyMiBAQCBuYW1lc3BhY2UgQVBJIHsKIAog
Y2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkgZmluYWwgOiBwdWJsaWMgT2Jq
ZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0
eT4gY3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpU
aGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eSBmaXJzdFBhcnR5RGF0YSkKKyAgICBz
dGF0aWMgUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5PiBjcmVhdGUoY29uc3Qg
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhRm9y
U3BlY2lmaWNGaXJzdFBhcnR5JiBmaXJzdFBhcnR5RGF0YSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5KGZpcnN0UGFy
dHlEYXRhKSk7CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHko
Y29uc3QgV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlE
YXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5IGZpcnN0UGFydHlEYXRhKQotICAgICAgICA6IG1fZmly
c3RQYXJ0eURhdGEoZmlyc3RQYXJ0eURhdGEpCi0gICAgewotICAgIH0KLQogICAgIGNvbnN0IFdU
Rjo6U3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFBhcnR5
RGF0YS5maXJzdFBhcnR5RG9tYWluLnN0cmluZygpOyB9CiAgICAgYm9vbCBzdG9yYWdlQWNjZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFBhcnR5RGF0YS5zdG9yYWdlQWNjZXNzR3JhbnRlZDsg
fQogICAgIGRvdWJsZSB0aW1lTGFzdFVwZGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0UGFy
dHlEYXRhLnRpbWVMYXN0VXBkYXRlZC52YWx1ZSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgY29uc3Qg
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhRm9y
U3BlY2lmaWNGaXJzdFBhcnR5IG1fZmlyc3RQYXJ0eURhdGE7CisgICAgZXhwbGljaXQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkoY29uc3QgV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5JiBmaXJz
dFBhcnR5RGF0YSkKKyAgICAgICAgOiBtX2ZpcnN0UGFydHlEYXRhKGZpcnN0UGFydHlEYXRhKQor
ICAgIHsKKyAgICB9CiAKKyAgICBjb25zdCBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHkgbV9maXJzdFBhcnR5
RGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJk
UGFydHkuaAppbmRleCA3NjU2NTgyNTVkY2JlNTFiMzIxM2RiNjU2MGIyMzdlOGFlYjNiMGUyLi42
NWViNTU4Y2QwZGE5YzM3MGZhMTVlZmI1MzczZTFiY2YyMjUwNzA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFy
dHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RoaXJkUGFydHkuaApAQCAtMzgsMTUgKzM4LDE1IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkoV1RG
TW92ZSh0aGlyZFBhcnR5RGF0YSkpKTsKICAgICB9CiAKLSAgICBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGhpcmRQYXJ0eShXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhp
cmRQYXJ0eURhdGEmJiB0aGlyZFBhcnR5RGF0YSkKLSAgICAgICAgOiBtX3RoaXJkUGFydHlEYXRh
KFdURk1vdmUodGhpcmRQYXJ0eURhdGEpKQotICAgIHsKLSAgICB9Ci0KICAgICBjb25zdCBXVEY6
OlN0cmluZyYgdGhpcmRQYXJ0eURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQYXJ0eURh
dGEudGhpcmRQYXJ0eURvbWFpbi5zdHJpbmcoKTsgfQogICAgIGNvbnN0IFZlY3RvcjxXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZp
Y0ZpcnN0UGFydHk+JiB1bmRlckZpcnN0UGFydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQ
YXJ0eURhdGEudW5kZXJGaXJzdFBhcnRpZXM7IH0KIAogcHJpdmF0ZToKKyAgICBleHBsaWNpdCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eShXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGEmJiB0aGlyZFBhcnR5RGF0YSkKKyAgICAgICAg
OiBtX3RoaXJkUGFydHlEYXRhKFdURk1vdmUodGhpcmRQYXJ0eURhdGEpKQorICAgIHsKKyAgICB9
CisKICAgICBjb25zdCBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhp
cmRQYXJ0eURhdGEgbV90aGlyZFBhcnR5RGF0YTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422165</attachid>
            <date>2021-03-03 16:58:49 -0800</date>
            <delta_ts>2021-03-04 14:02:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222701-20210303165849.patch</filename>
            <type>text/plain</type>
            <size>4799</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwZjNiZjgwMGNiMDA0Nzhj
NDgxMTQ5MDIwMzdhYmU4MTc0MGMxOTcuLjJjMGJhZjMwZDYzYTEzNmNlNTgwMzAxZDViMzQ1YmEx
NWJmMzE4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDMtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBBUEk6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5IC8gQVBJOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmly
c3RQYXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIyNzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2xlYW4gdXAgQVBJOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eSAvIEFQSTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk6CisgICAgICAgIDEuIE1ha2UgY29uc3RydWN0
b3JzIHByaXZhdGUgc2luY2UgdGhlcmUgaXMgYSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9uLgor
ICAgICAgICAyLiBNYXJrIGNvbnN0cnVjdG9yIGFzIGV4cGxpY2l0IHNpbmNlIHRoZXkgdGFrZSBh
IHNpbmdsZSBwYXJhbWV0ZXIuCisgICAgICAgIDMuIFVwZGF0ZSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRmlyc3RQYXJ0eSBjb25zdHJ1Y3RvciB0byB0YWtlIHBhcmFtZXRlciBhcyBhIGNvbnN0Cisg
ICAgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgYnkgdmFsdWUuCisgICAg
ICAgIDQuIEFkZCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmUgY29uc3RydWN0ZWQg
YW5kIGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eS5oOgorCiAyMDIx
LTAzLTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09T
XVtXSzJdIENoYW5naW5nIHRoZSBzeXN0ZW0gbGFuZ3VhZ2UgZG9lcyBub3QgdXBkYXRlIG5hdmln
YXRvci5sYW5ndWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkuaAppbmRleCBjOGUy
ODU4YzBkYzkwZWI1NWE3YzBmZWFjZjc0OTZkMDhmZjRjZWViLi5iN2Q3OWYxOGYyYThiYjBiOTQ4
NzMzMTQyZWNmZDdjZjk5MTNjZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHku
aApAQCAtMzMsMTQgKzMzLDE1IEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRmlyc3RQYXJ0eSBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6
VHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5PiBjcmVhdGUoY29uc3Qg
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhRm9y
U3BlY2lmaWNGaXJzdFBhcnR5IGZpcnN0UGFydHlEYXRhKQorICAgIHN0YXRpYyBSZWY8UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk+IGNyZWF0ZShjb25zdCBXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFy
dHkmIGZpcnN0UGFydHlEYXRhKQogICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZpcnN0UGFydHkoZmlyc3RQYXJ0eURhdGEpKTsKICAgICB9CiAKLSAgICBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRmlyc3RQYXJ0eShjb25zdCBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHkgZmlyc3RQYXJ0eURh
dGEpCi0gICAgICAgIDogbV9maXJzdFBhcnR5RGF0YShmaXJzdFBhcnR5RGF0YSkKKyAgICB+UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkoKQogICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICB9CiAKICAgICBjb25zdCBXVEY6OlN0cmluZyYgZmlyc3RQ
YXJ0eURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RQYXJ0eURhdGEuZmlyc3RQYXJ0eURv
bWFpbi5zdHJpbmcoKTsgfQpAQCAtNDgsOCArNDksMTIgQEAgcHVibGljOgogICAgIGRvdWJsZSB0
aW1lTGFzdFVwZGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0UGFydHlEYXRhLnRpbWVMYXN0
VXBkYXRlZC52YWx1ZSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgV2ViS2l0OjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBh
cnR5IG1fZmlyc3RQYXJ0eURhdGE7CisgICAgZXhwbGljaXQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZpcnN0UGFydHkoY29uc3QgV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5JiBmaXJzdFBhcnR5RGF0YSkKKyAg
ICAgICAgOiBtX2ZpcnN0UGFydHlEYXRhKGZpcnN0UGFydHlEYXRhKQorICAgIHsKKyAgICB9CiAK
KyAgICBjb25zdCBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQ
YXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHkgbV9maXJzdFBhcnR5RGF0YTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaAppbmRleCA3
NjU2NTgyNTVkY2JlNTFiMzIxM2RiNjU2MGIyMzdlOGFlYjNiMGUyLi45YWIzZmI5Y2M2NjI4NDA5
MWMzZTEwYmQyMWUwODgyMGIxMWQ4NDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFy
dHkuaApAQCAtMzUsMTggKzM1LDI0IEBAIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGly
ZFBhcnR5IGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpSCiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eT4gY3JlYXRl
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YSYm
IHRoaXJkUGFydHlEYXRhKQogICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Ro
aXJkUGFydHkoV1RGTW92ZSh0aGlyZFBhcnR5RGF0YSkpKTsKICAgICB9CiAKLSAgICBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eShXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6VGhpcmRQYXJ0eURhdGEmJiB0aGlyZFBhcnR5RGF0YSkKLSAgICAgICAgOiBtX3Ro
aXJkUGFydHlEYXRhKFdURk1vdmUodGhpcmRQYXJ0eURhdGEpKQorICAgIH5SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVGhpcmRQYXJ0eSgpCiAgICAgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgIH0KIAogICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0aGlyZFBhcnR5RG9tYWlu
KCkgY29uc3QgeyByZXR1cm4gbV90aGlyZFBhcnR5RGF0YS50aGlyZFBhcnR5RG9tYWluLnN0cmlu
ZygpOyB9CiAgICAgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4mIHVuZGVyRmlyc3RQ
YXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV90aGlyZFBhcnR5RGF0YS51bmRlckZpcnN0UGFydGll
czsgfQogCiBwcml2YXRlOgorICAgIGV4cGxpY2l0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGly
ZFBhcnR5KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5
RGF0YSYmIHRoaXJkUGFydHlEYXRhKQorICAgICAgICA6IG1fdGhpcmRQYXJ0eURhdGEoV1RGTW92
ZSh0aGlyZFBhcnR5RGF0YSkpCisgICAgeworICAgIH0KKwogICAgIGNvbnN0IFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YSBtX3RoaXJkUGFydHlE
YXRhOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422282</attachid>
            <date>2021-03-04 14:02:31 -0800</date>
            <delta_ts>2021-03-04 15:15:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222701-20210304140230.patch</filename>
            <type>text/plain</type>
            <size>4821</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ4YjMxZTI4Yzk3ZjFjNzZj
NDE4ZTQ4NzQ0NGRkM2FkZGYwMzgxYjkuLjc0ODIyNzA2NThiNTQ5ZTg4MTA1MmUyNzVjOWE5ODhj
NWM3YTI2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDMtMDQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBBUEk6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5IC8gQVBJOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmly
c3RQYXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIyNzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAg
Q2xlYW4gdXAgQVBJOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eSAvIEFQSTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk6CisgICAgICAgIDEuIE1ha2UgY29uc3RydWN0
b3JzIHByaXZhdGUgc2luY2UgdGhlcmUgaXMgYSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9uLgor
ICAgICAgICAyLiBNYXJrIGNvbnN0cnVjdG9yIGFzIGV4cGxpY2l0IHNpbmNlIHRoZXkgdGFrZSBh
IHNpbmdsZSBwYXJhbWV0ZXIuCisgICAgICAgIDMuIFVwZGF0ZSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRmlyc3RQYXJ0eSBjb25zdHJ1Y3RvciB0byB0YWtlIHBhcmFtZXRlciBhcyBhIGNvbnN0Cisg
ICAgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgYnkgdmFsdWUuCisgICAg
ICAgIDQuIEFkZCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmUgY29uc3RydWN0ZWQg
YW5kIGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eS5oOgorCiAyMDIx
LTAzLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNl
IHVzZSBvZiBDRlJldGFpbigpIC8gQ0ZSZWxlYXNlKCkgLyBDRkF1dG9SZWxlYXNlKCkgaW4gV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0ZpcnN0UGFydHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5oCmluZGV4IGM4ZTI4NThjMGRjOTBl
YjU1YTdjMGZlYWNmNzQ5NmQwOGZmNGNlZWIuLjk1YmMwNzljNDZlMzU2OTI2MTRkZjRjYWU3ZThk
NTY3ZTA0NzA1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5oCkBAIC0zMywx
NCArMzMsMTUgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NGaXJzdFBhcnR5IGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk+IGNyZWF0ZShjb25zdCBXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0Zp
cnN0UGFydHkgZmlyc3RQYXJ0eURhdGEpCisgICAgc3RhdGljIFJlZjxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRmlyc3RQYXJ0eT4gY3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eSYgZmlyc3RQ
YXJ0eURhdGEpCiAgICAgeworICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlc291cmNlTG9hZFN0YXRpc3RpY3NG
aXJzdFBhcnR5KGZpcnN0UGFydHlEYXRhKSk7CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0ZpcnN0UGFydHkoY29uc3QgV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5IGZpcnN0UGFydHlEYXRh
KQotICAgICAgICA6IG1fZmlyc3RQYXJ0eURhdGEoZmlyc3RQYXJ0eURhdGEpCisgICAgflJlc291
cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5KCkKICAgICB7CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICB9CiAKICAgICBjb25zdCBXVEY6OlN0cmluZyYg
Zmlyc3RQYXJ0eURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RQYXJ0eURhdGEuZmlyc3RQ
YXJ0eURvbWFpbi5zdHJpbmcoKTsgfQpAQCAtNDgsOCArNDksMTIgQEAgcHVibGljOgogICAgIGRv
dWJsZSB0aW1lTGFzdFVwZGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0UGFydHlEYXRhLnRp
bWVMYXN0VXBkYXRlZC52YWx1ZSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNG
aXJzdFBhcnR5IG1fZmlyc3RQYXJ0eURhdGE7CisgICAgZXhwbGljaXQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0ZpcnN0UGFydHkoY29uc3QgV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5JiBmaXJzdFBhcnR5RGF0
YSkKKyAgICAgICAgOiBtX2ZpcnN0UGFydHlEYXRhKGZpcnN0UGFydHlEYXRhKQorICAgIHsKKyAg
ICB9CiAKKyAgICBjb25zdCBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHkgbV9maXJzdFBhcnR5RGF0YTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaApp
bmRleCA3NjU2NTgyNTVkY2JlNTFiMzIxM2RiNjU2MGIyMzdlOGFlYjNiMGUyLi4xYTU5Y2FjMmE2
MTlmNmM1NWRiNmY4MDRiYjJkMTA0NjczNDQwMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Ro
aXJkUGFydHkuaApAQCAtMzUsMTggKzM1LDI0IEBAIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUaGlyZFBhcnR5IGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpSCiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eT4g
Y3JlYXRlKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5
RGF0YSYmIHRoaXJkUGFydHlEYXRhKQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGhpcmRQYXJ0eShXVEZNb3ZlKHRoaXJkUGFydHlEYXRhKSkpOwogICAgIH0K
IAotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5KFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YSYmIHRoaXJkUGFydHlEYXRhKQot
ICAgICAgICA6IG1fdGhpcmRQYXJ0eURhdGEoV1RGTW92ZSh0aGlyZFBhcnR5RGF0YSkpCisgICAg
flJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5KCkKICAgICB7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICB9CiAKICAgICBjb25zdCBXVEY6OlN0
cmluZyYgdGhpcmRQYXJ0eURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQYXJ0eURhdGEu
dGhpcmRQYXJ0eURvbWFpbi5zdHJpbmcoKTsgfQogICAgIGNvbnN0IFZlY3RvcjxXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0Zp
cnN0UGFydHk+JiB1bmRlckZpcnN0UGFydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQYXJ0
eURhdGEudW5kZXJGaXJzdFBhcnRpZXM7IH0KIAogcHJpdmF0ZToKKyAgICBleHBsaWNpdCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eShXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGEmJiB0aGlyZFBhcnR5RGF0YSkKKyAgICAgICAgOiBt
X3RoaXJkUGFydHlEYXRhKFdURk1vdmUodGhpcmRQYXJ0eURhdGEpKQorICAgIHsKKyAgICB9CisK
ICAgICBjb25zdCBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQ
YXJ0eURhdGEgbV90aGlyZFBhcnR5RGF0YTsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>