<?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>221996</bug_id>
          
          <creation_ts>2021-02-16 13:44:09 -0800</creation_ts>
          <short_desc>[macOS] Observe system sleep events in the UI process</short_desc>
          <delta_ts>2021-02-18 10:18:40 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222055</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1729913</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-02-16 13:44:09 -0800</bug_when>
    <thetext>System sleep events should be observed in the UI process, which should notify the WebContent process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729936</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-16 14:20:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/74406570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729937</commentid>
    <comment_count>2</comment_count>
      <attachid>420540</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-02-16 14:25:54 -0800</bug_when>
    <thetext>Created attachment 420540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730324</commentid>
    <comment_count>3</comment_count>
      <attachid>420540</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-02-17 09:44:52 -0800</bug_when>
    <thetext>Comment on attachment 420540
Patch

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

I&apos;m worried this change is not right for iOS, since the MediaSessionManagerIOS class is a subclass of MediaSessionManager. I like the idea of the UIProcess handling sleep events, and forwarding them to the WebContent process -- I just think you might need these changes for iOS, too.

&gt; Source/WebKit/UIProcess/WebProcessPool.h:132
&gt; +    , private PAL::SystemSleepListener::Client

MediaSessionManagerIOS *is a* MediaSessionManagerCocoa. Are you sure we don&apos;t need this code in the iOS case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730330</commentid>
    <comment_count>4</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-02-17 09:49:29 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 420540 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420540&amp;action=review
&gt; 
&gt; I&apos;m worried this change is not right for iOS, since the
&gt; MediaSessionManagerIOS class is a subclass of MediaSessionManager. I like
&gt; the idea of the UIProcess handling sleep events, and forwarding them to the
&gt; WebContent process -- I just think you might need these changes for iOS, too.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessPool.h:132
&gt; &gt; +    , private PAL::SystemSleepListener::Client
&gt; 
&gt; MediaSessionManagerIOS *is a* MediaSessionManagerCocoa. Are you sure we
&gt; don&apos;t need this code in the iOS case?

Yes, I believe you are right. I will add it for iOS as well.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730335</commentid>
    <comment_count>5</comment_count>
      <attachid>420540</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-17 09:57:20 -0800</bug_when>
    <thetext>Comment on attachment 420540
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebProcessPool.h:132
&gt;&gt; +    , private PAL::SystemSleepListener::Client
&gt; 
&gt; MediaSessionManagerIOS *is a* MediaSessionManagerCocoa. Are you sure we don&apos;t need this code in the iOS case?

I think this change is ok in practice, agreed it is a bit weird that this code is in Cocoa and not MediaSessionManagerMac, but we do not have any.
I am not sure WebProcessPool is the best choice though.
Maybe there should be a singleton that would be enabled at creation of WebProcessPool for instance and that would send it to all processes of all process pools.

Another approach would be to do this in GPUProcess, since this is only used for media.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730609</commentid>
    <comment_count>6</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-17 15:55:08 -0800</bug_when>
    <thetext>*** Bug 222055 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730663</commentid>
    <comment_count>7</comment_count>
      <attachid>420540</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-17 17:15:52 -0800</bug_when>
    <thetext>Comment on attachment 420540
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730840</commentid>
    <comment_count>8</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-02-18 07:02:03 -0800</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #4)
&gt; (In reply to Brent Fulgham from comment #3)
&gt; &gt; Comment on attachment 420540 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=420540&amp;action=review
&gt; &gt; 
&gt; &gt; I&apos;m worried this change is not right for iOS, since the
&gt; &gt; MediaSessionManagerIOS class is a subclass of MediaSessionManager. I like
&gt; &gt; the idea of the UIProcess handling sleep events, and forwarding them to the
&gt; &gt; WebContent process -- I just think you might need these changes for iOS, too.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebProcessPool.h:132
&gt; &gt; &gt; +    , private PAL::SystemSleepListener::Client
&gt; &gt; 
&gt; &gt; MediaSessionManagerIOS *is a* MediaSessionManagerCocoa. Are you sure we
&gt; &gt; don&apos;t need this code in the iOS case?
&gt; 
&gt; Yes, I believe you are right. I will add it for iOS as well.
&gt; 
&gt; Thanks for reviewing!

Looking closer, it seems that the SystemSleepListener is only an empty implementation on iOS, so it does not seem like it is required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730841</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-02-18 07:07:39 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 420540 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420540&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/WebProcessPool.h:132
&gt; &gt;&gt; +    , private PAL::SystemSleepListener::Client
&gt; &gt; 
&gt; &gt; MediaSessionManagerIOS *is a* MediaSessionManagerCocoa. Are you sure we don&apos;t need this code in the iOS case?
&gt; 
&gt; I think this change is ok in practice, agreed it is a bit weird that this
&gt; code is in Cocoa and not MediaSessionManagerMac, but we do not have any.
&gt; I am not sure WebProcessPool is the best choice though.
&gt; Maybe there should be a singleton that would be enabled at creation of
&gt; WebProcessPool for instance and that would send it to all processes of all
&gt; process pools.
&gt; 
&gt; Another approach would be to do this in GPUProcess, since this is only used
&gt; for media.

These are very good points. In this case, it seems we only create MediaSessionManagerCocoa in the WP process, also with the GPU process enabled, so it seems to be sufficient to only forward these events to the WP process. We may need to forward these events to other WebKit process going forward, though.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730842</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-02-18 07:07:56 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 420540 [details]
&gt; Patch
&gt; 
&gt; r=me

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730909</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-18 10:18:37 -0800</bug_when>
    <thetext>Committed r273082: &lt;https://commits.webkit.org/r273082&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420540.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420540</attachid>
            <date>2021-02-16 14:25:54 -0800</date>
            <delta_ts>2021-02-18 10:18:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221996-20210216142553.patch</filename>
            <type>text/plain</type>
            <size>11744</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjkxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAyLTE2ICBQZXIgQXJu
ZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gT2JzZXJ2ZSBzeXN0ZW0g
c2xlZXAgZXZlbnRzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5OTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0
NDA2NTcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN5c3RlbSBzbGVlcCBldmVudHMgc2hvdWxkIGJlIG9ic2VydmVkIGluIHRoZSBVSSBwcm9jZXNz
LCB3aGljaCBzaG91bGQgbm90aWZ5IHRoZSBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYSk6CisKIDIwMjEtMDItMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGxpYndlYnJ0YyBpbnN0YWxscyBzb21lIGZpbGVzIGludG8gaW5jb3Jy
ZWN0IGxvY2F0aW9ucyBpbiAvdXNyL2xvY2FsL2luY2x1ZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwkocmV2aXNpb24gMjcyOTI4KQorKysgU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTE2ICBQZXIgQXJuZSAgPHB2b2xs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gT2JzZXJ2ZSBzeXN0ZW0gc2xlZXAgZXZl
bnRzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjE5OTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0NDA2NTcwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCBz
eW1ib2xzLCBzaW5jZSB0aGUgc3lzdGVtIHNsZWVwIGxpc3RlbmVyIHdpbGwgYmUgaW5zdGFudGlh
dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogcGFsL3N5c3RlbS9TeXN0ZW1TbGVl
cExpc3RlbmVyLmg6CisKIDIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBBcHBsZSBpbnRlcm5hbCBp
T1MgYnVpbGQgYWZ0ZXIgcjI3Mjg3OApJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0
ZW0vU3lzdGVtU2xlZXBMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3lzdGVtL1N5c3RlbVNsZWVwTGlzdGVuZXIuaAkocmV2aXNpb24gMjcyOTE1KQorKysg
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vU3lzdGVtU2xlZXBMaXN0ZW5lci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHN5c3RlbURpZFdha2UoKSA9IDA7CiAgICAgfTsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U3lzdGVtU2xlZXBMaXN0ZW5lcj4gY3JlYXRlKENsaWVudCYpOworICAgIFBBTF9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTeXN0ZW1TbGVlcExpc3RlbmVyPiBjcmVhdGUoQ2xpZW50
Jik7CiAgICAgdmlydHVhbCB+U3lzdGVtU2xlZXBMaXN0ZW5lcigpID0gZGVmYXVsdDsKIAogICAg
IENsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oCShyZXZpc2lvbiAyNzI5MTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTU3
LDYgKzE1Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VwcG9ydGVkQ29tbWFu
ZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSB7IH07CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Np
b246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkgeyB9OwogCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwcm9jZXNzU3lzdGVtV2lsbFNsZWVwKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
cm9jZXNzU3lzdGVtRGlkV2FrZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIFBs
YXRmb3JtTWVkaWFTZXNzaW9uOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcigpOwpA
QCAtMTg0LDkgKzE4Nyw2IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgY29tcHV0ZVN1cHBvcnRz
U2Vla2luZygpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm9jZXNzU3lzdGVt
V2lsbFNsZWVwKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm9jZXNzU3lzdGVtRGlkV2Fr
ZSgpOwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCShyZXZpc2lvbiAyNzI5MTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJS
ZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKLSNpbmNsdWRlIDxwYWwvc3lzdGVtL1N5c3RlbVNsZWVw
TGlzdGVuZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw3ICszOSw2IEBAIHN0
cnVjdCBOb3dQbGF5aW5nSW5mbzsKIGNsYXNzIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYQogICAg
IDogcHVibGljIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcgogICAgICwgcHJpdmF0ZSBSZW1v
dGVDb21tYW5kTGlzdGVuZXJDbGllbnQKLSAgICAsIHByaXZhdGUgUEFMOjpTeXN0ZW1TbGVlcExp
c3RlbmVyOjpDbGllbnQKICAgICAsIHByaXZhdGUgQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpDbGll
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtMTAwLDEwICs5
OCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdWRpb0hhcmR3YXJlRGlkQmVjb21lSW5hY3RpdmUo
KSBmaW5hbCB7IH0KICAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwog
Ci0gICAgLy8gUEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyCi0gICAgdm9pZCBzeXN0ZW1XaWxsU2xl
ZXAoKSBmaW5hbCB7IHByb2Nlc3NTeXN0ZW1XaWxsU2xlZXAoKTsgfQotICAgIHZvaWQgc3lzdGVt
RGlkV2FrZSgpIGZpbmFsIHsgcHJvY2Vzc1N5c3RlbURpZFdha2UoKTsgfQotCiAgICAgYm9vbCBt
X25vd1BsYXlpbmdBY3RpdmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZWdpc3RlcmVkQXNOb3dQ
bGF5aW5nQXBwbGljYXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlRXZlclJlZ2lzdGVy
ZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiB7IGZhbHNlIH07CkBAIC0xMTcsNyArMTExLDYgQEAg
cHJpdmF0ZToKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IG1fcmVtb3RlQ29tbWFuZExp
c3RlbmVyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OlN5c3RlbVNsZWVwTGlzdGVuZXI+IG1f
c3lzdGVtU2xlZXBMaXN0ZW5lcjsKICAgICBSZWZQdHI8QXVkaW9IYXJkd2FyZUxpc3RlbmVyPiBt
X2F1ZGlvSGFyZHdhcmVMaXN0ZW5lcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EubW0JKHJldmlzaW9uIDI3MjkxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTUsNyArNTUsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hCiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKE1BQykKIAogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2EoKQotICAgIDogbV9zeXN0ZW1TbGVlcExpc3RlbmVyKFBBTDo6
U3lzdGVtU2xlZXBMaXN0ZW5lcjo6Y3JlYXRlKCp0aGlzKSkKIHsKIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3MjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDItMTYgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW21hY09TXSBPYnNlcnZlIHN5c3RlbSBzbGVlcCBldmVudHMgaW4g
dGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTk5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ0MDY1NzA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3lzdGVtIHNsZWVwIGV2
ZW50cyBzaG91bGQgYmUgb2JzZXJ2ZWQgaW4gdGhlIFVJIHByb2Nlc3MsIHdoaWNoIHNob3VsZCBu
b3RpZnkgdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzeXN0ZW1XaWxsU2xlZXApOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c3lzdGVtRGlkV2FrZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpzeXN0ZW1XaWxsU2xlZXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzeXN0
ZW1EaWRXYWtlKToKKwogMjAyMS0wMi0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIGlzIGFj
Y2Vzc2VkIGluIG5vbi10aHJlYWQtc2FmZSBtYW5uZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjcyOTE1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEs
NyBAQCBPQkpDX0NMQVNTIFdLV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9ic2VyCiAKICNpZiBQTEFU
Rk9STShNQUMpCiAjaW1wb3J0IDxXZWJDb3JlL1Bvd2VyT2JzZXJ2ZXJNYWMuaD4KKyNpbXBvcnQg
PHBhbC9zeXN0ZW0vU3lzdGVtU2xlZXBMaXN0ZW5lci5oPgogI2lmIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICNpbmNsdWRlICJEaXNwbGF5TGluay5oIgogI2VuZGlm
CkBAIC0xMjMsNyArMTI0LDE0IEBAIGludCB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygpOwogZW51
bSBjbGFzcyBDYWxsRG93bmxvYWREaWRTdGFydCA6IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwogCi1jbGFzcyBXZWJQcm9jZXNzUG9vbCBmaW5h
bCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlByb2Nlc3NQb29s
PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlByb2Nlc3NQb29sPiwgcHJpdmF0ZSBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJQcm9jZXNzUG9vbCBmaW5hbAorICAgIDogcHVibGlj
IEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6UHJvY2Vzc1Bvb2w+CisgICAgLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViUHJvY2Vzc1Bvb2w+CisgICAgLCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyCisjaWYgUExBVEZPUk0oTUFDKQorICAgICwgcHJpdmF0ZSBQQUw6OlN5
c3RlbVNsZWVwTGlzdGVuZXI6OkNsaWVudAorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxXZWJQcm9jZXNzUG9vbD4gY3JlYXRlKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Jik7CiAKQEAgLTU3OCw2ICs1ODYsMTIgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB2b2lkIHJl
Z2lzdGVySGlnaER5bmFtaWNSYW5nZUNoYW5nZUNhbGxiYWNrKCk7CiAKKyNpZiBQTEFURk9STShN
QUMpCisgICAgLy8gUEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyCisgICAgdm9pZCBzeXN0ZW1XaWxs
U2xlZXAoKSBmaW5hbDsKKyAgICB2b2lkIHN5c3RlbURpZFdha2UoKSBmaW5hbDsKKyNlbmRpZgor
CiAgICAgUmVmPEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247
CiAKICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1hcDsKQEAg
LTc3OCw2ICs3OTIsNyBAQCBwcml2YXRlOgogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UG93ZXJPYnNlcnZlcj4gbV9wb3dlck9ic2VydmVyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OlN5c3RlbVNsZWVwTGlzdGVuZXI+IG1fc3lzdGVtU2xl
ZXBMaXN0ZW5lcjsKICNlbmRpZgogfTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNzI5MTUp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02MzEsNiArNjMxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVnaXN0ZXJOb3RpZmljYXRpbwogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3
ZWFrVGhpcy0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTeXN0ZW1X
aWxsUG93ZXJPbigpKTsKICAgICB9KTsKKyAgICBtX3N5c3RlbVNsZWVwTGlzdGVuZXIgPSBQQUw6
OlN5c3RlbVNsZWVwTGlzdGVuZXI6OmNyZWF0ZSgqdGhpcyk7CiAgICAgLy8gTGlzdGVuIGZvciBl
bmhhbmNlZCBhY2Nlc3NpYmlsaXR5IGNoYW5nZXMgYW5kIHByb3BhZ2F0ZSB0aGVtIHRvIHRoZSBX
ZWJQcm9jZXNzLgogICAgIG1fZW5oYW5jZWRBY2Nlc3NpYmlsaXR5T2JzZXJ2ZXIgPSBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpXZWJLaXRB
cHBsaWNhdGlvbkRpZENoYW5nZUFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VOb3Rp
ZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVd
IHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90ZSkgewogICAgICAgICBzZXRFbmhhbmNl
ZEFjY2Vzc2liaWxpdHkoW1tbbm90ZSB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAiQVhFbmhhbmNl
ZFVzZXJJbnRlcmZhY2UiXSBib29sVmFsdWVdKTsKQEAgLTcyOSw2ICs3MzAsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0CiB7CiAjaWYgIVBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgbV9wb3dlck9ic2VydmVyID0gbnVsbHB0cjsKKyAgICBtX3N5c3RlbVNsZWVw
TGlzdGVuZXIgPSBudWxscHRyOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9lbmhhbmNlZEFjY2Vzc2liaWxpdHlPYnNlcnZlci5nZXQo
KV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNl
cnZlcjptX2F1dG9tYXRpY1RleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbk9ic2VydmVyLmdldCgp
XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOm1fYXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXIuZ2V0
KCldOwpAQCAtOTM4LDYgKzk0MCwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlckhp
Z2hEeW5hbWljCiAgICAgICAgIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9u
Q2VudGVyQWRkTGlzdGVuZXIoY2VudGVyLCBvYmplY3QsIHdlYlByb2Nlc3NQb29sSGlnaER5bmFt
aWNSYW5nZURpZENoYW5nZUNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCwgMCk7CiAgICAg
fSk7CiB9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN5c3RlbVdpbGxTbGVlcCgpCit7CisgICAg
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTeXN0ZW1XaWxsU2xlZXAo
KSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN5c3RlbURpZFdha2UoKQoreworICAgIHNl
bmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U3lzdGVtRGlkV2FrZSgpKTsK
K30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNzI5MTUpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiArNTEzLDgg
QEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHN5c3RlbVdpbGxQb3dl
ck9uKCk7CisgICAgdm9pZCBzeXN0ZW1XaWxsU2xlZXAoKTsKKyAgICB2b2lkIHN5c3RlbURpZFdh
a2UoKTsKICNlbmRpZgogICAgIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhj
b25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjcyOTE1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE5OCw1ICsxOTgsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgU3lz
dGVtV2lsbFBvd2VyT24oKQorICAgIFN5c3RlbVdpbGxTbGVlcCgpCisgICAgU3lzdGVtRGlkV2Fr
ZSgpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjcyOTE1KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTIxNiw2ICsxMjE2LDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6c3lzdGVtV2lsbFBvd2VyT24oKQog
ewogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6cmVzdGFydFNoYXJlZFRpbWVyKCk7CiB9CisK
K3ZvaWQgV2ViUHJvY2Vzczo6c3lzdGVtV2lsbFNsZWVwKCkKK3sKKyAgICBpZiAoUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkKKyAgICAgICAgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucHJvY2Vzc1N5c3RlbVdp
bGxTbGVlcCgpOworfQorCit2b2lkIFdlYlByb2Nlc3M6OnN5c3RlbURpZFdha2UoKQoreworICAg
IGlmIChQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygp
KQorICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5w
cm9jZXNzU3lzdGVtRGlkV2FrZSgpOworfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>