<?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>228852</bug_id>
          
          <creation_ts>2021-08-05 18:12:12 -0700</creation_ts>
          <short_desc>Add deduction guide to RetainPtr, use constexpr a bit more, and streamline the implementation</short_desc>
          <delta_ts>2021-08-12 08:54:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782415</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-08-05 18:12:12 -0700</bug_when>
    <thetext>Add deduction guide to RetainPtr, use constexpr a bit more, and streamline the implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782416</commentid>
    <comment_count>1</comment_count>
      <attachid>435044</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-08-05 18:21:16 -0700</bug_when>
    <thetext>Created attachment 435044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782996</commentid>
    <comment_count>2</comment_count>
      <attachid>435044</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-08-09 15:33:21 -0700</bug_when>
    <thetext>Comment on attachment 435044
Patch

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

&gt; Source/WebKit/UIProcess/mac/WKTextFinderClient.mm:230
&gt;      _findReplyCallbacks.append([progress, copiedResultCollector] (NSArray *matches, bool didWrap) {

Just realized this should move the progress in, instead of copying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783709</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-11 19:08:15 -0700</bug_when>
    <thetext>Committed r280952 (240458@main): &lt;https://commits.webkit.org/240458@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435044.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783710</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-11 19:09:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/81824803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783841</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-12 08:54:31 -0700</bug_when>
    <thetext>Follow-up build fix: https://commits.webkit.org/240475@main</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435044</attachid>
            <date>2021-08-05 18:21:16 -0700</date>
            <delta_ts>2021-08-11 19:08:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228852-20210805182115.patch</filename>
            <type>text/plain</type>
            <size>16894</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiMmExZGEyMDk2ZTExZDQ5NmRiNWEz
ZjI5NGQ0Zjg4MGJjOGU1YjMuLjU0ODg4NTRiYmQ2MzVlZGZmZWE5ZGM1OWU5YWRlNjQyNTBlZmE0
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDgtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBkZWR1Y3Rpb24gZ3VpZGUgdG8gUmV0YWluUHRyLCB1
c2UgY29uc3RleHByIGEgYml0IG1vcmUsIGFuZCBzdHJlYW1saW5lIHRoZSBpbXBsZW1lbnRhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODUy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
UmV0YWluUHRyLmg6IFNvcnQgaW5jbHVkZXMuIE1hZGUgbWFueSBmdW5jdGlvbnMgY29uc3RleHBy
IGluY2x1ZGluZyB0aGUgbW92ZQorICAgICAgICBjb25zdHJ1Y3RvcnMgYW5kIGFkb3B0Q0YuIFVz
ZSB1c2luZyBpbnN0ZWFkIG9mIHR5cGVkZWYgaW4gbW9zdCBwbGFjZXMuIFVzZQorICAgICAgICBy
ZW1vdmVfcG9pbnRlcl90LCBjb25kaXRpb25hbF90LCBpc19jb252ZXJ0aWJsZV92LCBpc19zYW1l
X3YsIGFuZCBvdGhlciBzdWNoIHRlbXBsYXRlcworICAgICAgICB0byBzaW1wbGlmeSBleHByZXNz
aW9ucy4gSW5pdGlhbGl6ZSB0aGUgbV9wdHIgZGF0YSBtZW1iZXIgYW5kIHVzZSB0aGUgZGVmYXVs
dCBjb25zdHJ1Y3Rvci4KKyAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBTdG9yYWdlVHlwZSBzeW5v
bnltIGZvciBDRlR5cGVSZWYuIE1vdmUgc29tZSBpbmxpbmUgZnVuY3Rpb24gYm9kaWVzIG91dAor
ICAgICAgICBvZiB0aGUgY2xhc3MgdGVtcGxhdGUgZGVmaW5pdGlvbi4gVXNlIGlmIGNvbnN0ZXhw
ciB0byBnZXQgcmlkIG9mIHRoZSBuZWVkIGZvciB0aGUgb3ZlcmxvYWRlZAorICAgICAgICBhdXRv
cmVsZWFzZUhlbHBlciBmdW5jdGlvbi4gQWRkZWQgYSBkZWR1Y3Rpb24gZ3VpZGUgc28gd2UgY2Fu
IHVzZSBleHByZXNzaW9ucyB3aXRoIHRoZQorICAgICAgICB0eXBlIFJldGFpblB0ciBvbiB0aGUg
bGVmdCBzaWRlLCBhbmQgYW4gT2JqZWN0aXZlLUMgcG9pbnRlciBvciBDRlR5cGVSZWYgb24gdGhl
IHJpZ2h0IHNpZGUsCisgICAgICAgIGFuZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBSZXRhaW5QdHIg
dHlwZSBkZWR1Y2VkLgorCiAyMDIxLTA4LTA1ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnph
cm9AZ25vbWUub3JnPgogCiAgICAgICAgIEdDQyAxMSBidWlsZHMgc2hvdWxkIHVzZSAtV25vLWFy
cmF5LWJvdW5kcywgLVduby1ub25udWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1MGUzMGE0MjZjY2FmZGE0Mjk0
ODM4NWU5ZjIxNTEwMGMwNzhiMzcuLmVmN2E0ODE5NzNkNzk4NGNhM2QyNjc1MzMxMjcxMTZhYzEw
NTdkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMDUgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBkZWR1Y3Rpb24gZ3VpZGUgdG8gUmV0
YWluUHRyLCB1c2UgY29uc3RleHByIGEgYml0IG1vcmUsIGFuZCBzdHJlYW1saW5lIHRoZSBpbXBs
ZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI4ODUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbToKKyAgICAgICAgKC1bV0tU
ZXh0RmluZGVyQ2xpZW50IGZpbmRNYXRjaGVzRm9yU3RyaW5nOnJlbGF0aXZlVG9NYXRjaDpmaW5k
T3B0aW9uczptYXhSZXN1bHRzOnJlc3VsdENvbGxlY3RvcjpdKToKKyAgICAgICAgVGVzdCB0aGUg
ZGVkdWN0aW9uIGd1aWRlIGJ5IHdyaXRpbmcgUmV0YWluUHRyIGluc3RlYWQgb2YgUmV0YWluUHRy
PE5TUHJvZ3Jlc3M+LgorCiAyMDIxLTA4LTA1ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIExvYWRXZWJBcmNoaXZlLkZhaWxOYXZpZ2F0aW9uMSB0
ZXN0IGlzIGEgZmFsc2UgcG9zaXRpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JldGFp
blB0ci5oIGIvU291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKaW5kZXggNGM1OTg0ZWZkNjAxN2Ey
YzY4ZTUyNjJmOGNlY2I1ZGEyNTgzZTkyMC4uYjcyYTdlYTVkNWE3N2IxZTFlNTUzOGY5M2I3ZDVj
NmM3YmViOGQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKKysrIGIv
U291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHly
aWdodCAoQykgMjAwNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDUtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsOSArMjQsMTAgQEAKIAogI2lmIFVTRShDRikgfHwg
ZGVmaW5lZChfX09CSkNfXykKIAotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFp
dHMuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIFVTRShDRikKICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgpAQCAtNjUsNTcgKzY2LDU4
IEBAIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZXRhaW5Q
dHI7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IFJldGFpblB0cjxUPiBhZG9wdENGKFQgQ0ZfUkVM
RUFTRVNfQVJHVU1FTlQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IGNvbnN0ZXhwciBSZXRhaW5QdHI8VD4gYWRvcHRDRihUIENGX1JFTEVBU0VTX0FSR1VNRU5UKSBX
QVJOX1VOVVNFRF9SRVRVUk47CisKICNpZmRlZiBfX09CSkNfXwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gUmV0YWluUHRyPHR5cGVuYW1lIFJldGFpblB0cjxUPjo6SGVscGVyUHRyVHlwZT4gYWRvcHRO
UyhUIE5TX1JFTEVBU0VTX0FSR1VNRU5UKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAjZW5kaWYKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmV0YWluUHRyIHsKIHB1YmxpYzoKLSAgICB0eXBl
ZGVmIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8VD46OnR5cGUgVmFsdWVUeXBlOwotICAg
IHR5cGVkZWYgVmFsdWVUeXBlKiBQdHJUeXBlOwotICAgIHR5cGVkZWYgQ0ZUeXBlUmVmIFN0b3Jh
Z2VUeXBlOworICAgIHVzaW5nIFZhbHVlVHlwZSA9IHN0ZDo6cmVtb3ZlX3BvaW50ZXJfdDxUPjsK
KyAgICB1c2luZyBQdHJUeXBlID0gVmFsdWVUeXBlKjsKIAogI2lmZGVmIF9fT0JKQ19fCi0gICAg
dHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfY29udmVydGlibGU8VCwg
aWQ+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIGlkPjo6dmFsdWUsIHR5cGVuYW1lIHN0ZDo6
cmVtb3ZlX3BvaW50ZXI8VD46OnR5cGUsIFQ+Ojp0eXBlIEhlbHBlclB0clR5cGU7CisgICAgdXNp
bmcgSGVscGVyUHRyVHlwZSA9IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX2Nv
bnZlcnRpYmxlX3Y8VCwgaWQ+ICYmICFzdGQ6OmlzX3NhbWVfdjxULCBpZD4sIHN0ZDo6cmVtb3Zl
X3BvaW50ZXJfdDxUPiwgVD47CiAjZWxzZQotICAgIHR5cGVkZWYgVCBIZWxwZXJQdHJUeXBlOwor
ICAgIHVzaW5nIEhlbHBlclB0clR5cGUgPSBQdHJUeXBlOwogI2VuZGlmCiAKLSAgICBSZXRhaW5Q
dHIoKSA6IG1fcHRyKG51bGxwdHIpIHsgfQotICAgIFJldGFpblB0cihQdHJUeXBlIHB0cikgOiBt
X3B0cih0b1N0b3JhZ2VUeXBlKHB0cikpIHsgaWYgKG1fcHRyKSBDRlJldGFpbihtX3B0cik7IH0K
KyAgICBSZXRhaW5QdHIoKSA9IGRlZmF1bHQ7CisgICAgUmV0YWluUHRyKFB0clR5cGUpOwogCi0g
ICAgUmV0YWluUHRyKGNvbnN0IFJldGFpblB0ciYgbykgOiBtX3B0cihvLm1fcHRyKSB7IGlmIChT
dG9yYWdlVHlwZSBwdHIgPSBtX3B0cikgQ0ZSZXRhaW4ocHRyKTsgfQorICAgIFJldGFpblB0cihj
b25zdCBSZXRhaW5QdHImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZXRhaW5QdHIoY29u
c3QgUmV0YWluUHRyPFU+Jik7CiAKLSAgICBSZXRhaW5QdHIoUmV0YWluUHRyJiYgbykgOiBtX3B0
cih0b1N0b3JhZ2VUeXBlKG8ubGVha1JlZigpKSkgeyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gUmV0YWluUHRyKFJldGFpblB0cjxVPiYmIG8pIDogbV9wdHIodG9TdG9yYWdlVHlwZShvLmxl
YWtSZWYoKSkpIHsgfQorICAgIGNvbnN0ZXhwciBSZXRhaW5QdHIoUmV0YWluUHRyJiYgbykgOiBt
X3B0cih0b1N0b3JhZ2VUeXBlKG8ubGVha1JlZigpKSkgeyB9CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4gY29uc3RleHByIFJldGFpblB0cihSZXRhaW5QdHI8VT4mJiBvKSA6IG1fcHRyKHRvU3Rv
cmFnZVR5cGUoby5sZWFrUmVmKCkpKSB7IH0KIAogICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2
YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVz
dHJveWVkLgotICAgIFJldGFpblB0cihIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRy
KGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7
IH0KLSAgICAKKyAgICBjb25zdGV4cHIgUmV0YWluUHRyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5
cGUpIDogbV9wdHIoaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpIHsgfQorICAgIGNvbnN0ZXhwciBi
b29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPT0gaGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKwogICAgIH5SZXRhaW5QdHIoKTsKLSAgICAKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZXRhaW5QdHIoY29uc3QgUmV0YWluUHRyPFU+Jik7CiAKICAg
ICB2b2lkIGNsZWFyKCk7CiAgICAgUHRyVHlwZSBsZWFrUmVmKCkgV0FSTl9VTlVTRURfUkVUVVJO
OwogICAgIFB0clR5cGUgYXV0b3JlbGVhc2UoKTsKKwogI2lmZGVmIF9fT0JKQ19fCiAgICAgaWQg
YnJpZGdpbmdBdXRvcmVsZWFzZSgpOwogI2VuZGlmCiAKLSAgICBQdHJUeXBlIGdldCgpIGNvbnN0
IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZShtX3B0cik7IH0KLSAgICBQdHJUeXBlIG9wZXJhdG9y
LT4oKSBjb25zdCB7IHJldHVybiBmcm9tU3RvcmFnZVR5cGUobV9wdHIpOyB9Ci0gICAgZXhwbGlj
aXQgb3BlcmF0b3IgUHRyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZShtX3B0
cik7IH0KLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9wdHI7
IH0KKyAgICBjb25zdGV4cHIgUHRyVHlwZSBnZXQoKSBjb25zdCB7IHJldHVybiBmcm9tU3RvcmFn
ZVR5cGUobV9wdHIpOyB9CisgICAgY29uc3RleHByIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0
IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZShtX3B0cik7IH0KKyAgICBjb25zdGV4cHIgZXhwbGlj
aXQgb3BlcmF0b3IgUHRyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZShtX3B0
cik7IH0KKyAgICBjb25zdGV4cHIgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0
dXJuIG1fcHRyOyB9CiAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0
cjsgfQorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0
cjsgfQogCiAgICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBj
b252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgotICAgIHR5
cGVkZWYgU3RvcmFnZVR5cGUgUmV0YWluUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZTsKKyAgICAv
LyBGSVhNRTogRXZlbnR1YWxseSB3ZSBzaG91bGQgcmVtb3ZlIHRoaXM7IGl0J3MgYW4gb3V0ZGF0
ZWQgdGVjaG5pcXVlIGFuZCBsZXNzIG5lZWRlZCBzaW5jZSB3ZSBoYXZlIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2wuCisgICAgdHlwZWRlZiBDRlR5cGVSZWYgUmV0YWluUHRyOjoqVW5zcGVjaWZpZWRC
b29sVHlwZTsKICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9wdHIgPyAmUmV0YWluUHRyOjptX3B0ciA6IG51bGxwdHI7IH0KLSAgICAKKwogICAgIFJl
dGFpblB0ciYgb3BlcmF0b3I9KGNvbnN0IFJldGFpblB0ciYpOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFU+IFJldGFpblB0ciYgb3BlcmF0b3I9KGNvbnN0IFJldGFpblB0cjxVPiYpOwogICAgIFJl
dGFpblB0ciYgb3BlcmF0b3I9KFB0clR5cGUpOwpAQCAtMTI2LDEwNyArMTI4LDk0IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc3dhcChSZXRhaW5QdHImKTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IGZyaWVuZCBSZXRhaW5QdHI8VT4gYWRvcHRDRihVIENGX1JFTEVBU0VTX0FSR1VNRU5UKSBX
QVJOX1VOVVNFRF9SRVRVUk47CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIGNvbnN0
ZXhwciBSZXRhaW5QdHI8VT4gYWRvcHRDRihVIENGX1JFTEVBU0VTX0FSR1VNRU5UKSBXQVJOX1VO
VVNFRF9SRVRVUk47CisKICNpZmRlZiBfX09CSkNfXwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+
IGZyaWVuZCBSZXRhaW5QdHI8dHlwZW5hbWUgUmV0YWluUHRyPFU+OjpIZWxwZXJQdHJUeXBlPiBh
ZG9wdE5TKFUgTlNfUkVMRUFTRVNfQVJHVU1FTlQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKICNlbmRp
ZgogCiBwcml2YXRlOgogICAgIGVudW0gQWRvcHRUYWcgeyBBZG9wdCB9OwotICAgIFJldGFpblB0
cihQdHJUeXBlIHB0ciwgQWRvcHRUYWcpIDogbV9wdHIodG9TdG9yYWdlVHlwZShwdHIpKSB7IH0K
KyAgICBjb25zdGV4cHIgUmV0YWluUHRyKFB0clR5cGUgcHRyLCBBZG9wdFRhZykgOiBtX3B0cih0
b1N0b3JhZ2VUeXBlKHB0cikpIHsgfQogCi0gICAgc3RhdGljIFB0clR5cGUgaGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdHJUeXBlPigtMSk7IH0KKyAg
ICBzdGF0aWMgY29uc3RleHByIFB0clR5cGUgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgeyByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxQdHJUeXBlPigtMSk7IH0KIAogI2lmZGVmIF9fT0JKQ19fCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6
OmlzX2NvbnZlcnRpYmxlPFUsIGlkPjo6dmFsdWUsIFB0clR5cGU+Ojp0eXBlCi0gICAgZnJvbVN0
b3JhZ2VUeXBlSGVscGVyKFN0b3JhZ2VUeXBlIHB0cikgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiBjb25zdGV4cHIgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2NvbnZlcnRpYmxlX3Y8
VSwgaWQ+LCBQdHJUeXBlPiBmcm9tU3RvcmFnZVR5cGVIZWxwZXIoQ0ZUeXBlUmVmIHB0cikgY29u
c3QKICAgICB7CiAgICAgICAgIHJldHVybiAoX19icmlkZ2UgUHRyVHlwZSljb25zdF9jYXN0PENG
X0JSSURHRURfVFlQRShpZCkgdm9pZCo+KHB0cik7CiAgICAgfQotCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4KLSAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19jb252ZXJ0aWJs
ZTxVLCBpZD46OnZhbHVlLCBQdHJUeXBlPjo6dHlwZQotICAgIGZyb21TdG9yYWdlVHlwZUhlbHBl
cihTdG9yYWdlVHlwZSBwdHIpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gY29uc3Rl
eHByIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfY29udmVydGlibGVfdjxVLCBpZD4sIFB0clR5
cGU+IGZyb21TdG9yYWdlVHlwZUhlbHBlcihDRlR5cGVSZWYgcHRyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIChQdHJUeXBlKWNvbnN0X2Nhc3Q8Q0ZfQlJJREdFRF9UWVBFKGlkKSB2b2lk
Kj4ocHRyKTsKICAgICB9Ci0KLSAgICBQdHJUeXBlIGZyb21TdG9yYWdlVHlwZShTdG9yYWdlVHlw
ZSBwdHIpIGNvbnN0IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZUhlbHBlcjxQdHJUeXBlPihwdHIp
OyB9Ci0gICAgU3RvcmFnZVR5cGUgdG9TdG9yYWdlVHlwZShpZCBwdHIpIGNvbnN0IHsgcmV0dXJu
IChfX2JyaWRnZSBTdG9yYWdlVHlwZSlwdHI7IH0KLSAgICBTdG9yYWdlVHlwZSB0b1N0b3JhZ2VU
eXBlKENGVHlwZVJlZiBwdHIpIGNvbnN0IHsgcmV0dXJuIChTdG9yYWdlVHlwZSlwdHI7IH0KKyAg
ICBjb25zdGV4cHIgUHRyVHlwZSBmcm9tU3RvcmFnZVR5cGUoQ0ZUeXBlUmVmIHB0cikgY29uc3Qg
eyByZXR1cm4gZnJvbVN0b3JhZ2VUeXBlSGVscGVyPFB0clR5cGU+KHB0cik7IH0KKyAgICBjb25z
dGV4cHIgQ0ZUeXBlUmVmIHRvU3RvcmFnZVR5cGUoaWQgcHRyKSBjb25zdCB7IHJldHVybiAoX19i
cmlkZ2UgQ0ZUeXBlUmVmKXB0cjsgfQorICAgIGNvbnN0ZXhwciBDRlR5cGVSZWYgdG9TdG9yYWdl
VHlwZShDRlR5cGVSZWYgcHRyKSBjb25zdCB7IHJldHVybiAoQ0ZUeXBlUmVmKXB0cjsgfQogI2Vs
c2UKLSAgICBQdHJUeXBlIGZyb21TdG9yYWdlVHlwZShTdG9yYWdlVHlwZSBwdHIpIGNvbnN0Cisg
ICAgY29uc3RleHByIFB0clR5cGUgZnJvbVN0b3JhZ2VUeXBlKENGVHlwZVJlZiBwdHIpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gKFB0clR5cGUpY29uc3RfY2FzdDxDRl9CUklER0VEX1RZ
UEUoaWQpIHZvaWQqPihwdHIpOwogICAgIH0KLSAgICBTdG9yYWdlVHlwZSB0b1N0b3JhZ2VUeXBl
KFB0clR5cGUgcHRyKSBjb25zdCB7IHJldHVybiAoU3RvcmFnZVR5cGUpcHRyOyB9CisgICAgY29u
c3RleHByIENGVHlwZVJlZiB0b1N0b3JhZ2VUeXBlKFB0clR5cGUgcHRyKSBjb25zdCB7IHJldHVy
biAoQ0ZUeXBlUmVmKXB0cjsgfQogI2VuZGlmCiAKLSNpZmRlZiBfX09CSkNfXwotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19jb252ZXJ0aWJsZTxVLCBp
ZD46OnZhbHVlLCBQdHJUeXBlPiBhdXRvcmVsZWFzZUhlbHBlcigpOwotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFU+IHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfY29udmVydGlibGU8VSwgaWQ+Ojp2
YWx1ZSwgUHRyVHlwZT4gYXV0b3JlbGVhc2VIZWxwZXIoKTsKLSNlbmRpZgotCi0gICAgU3RvcmFn
ZVR5cGUgbV9wdHI7CisgICAgQ0ZUeXBlUmVmIG1fcHRyIHsgbnVsbHB0ciB9OwogfTsKIAordGVt
cGxhdGU8dHlwZW5hbWUgVD4gUmV0YWluUHRyKFQpIC0+IFJldGFpblB0cjxzdGQ6OnJlbW92ZV9w
b2ludGVyX3Q8VD4+OworCiAvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgUmV0YWlu
UHRyIHVzaW5nIHRlbXBsYXRlIGFyZ3VtZW50IGRlZHVjdGlvbi4KIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IFJldGFpblB0cjx0eXBlbmFtZSBSZXRhaW5QdHI8VD46OkhlbHBlclB0clR5cGU+IHJldGFp
blB0cihUKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGlu
ZSBSZXRhaW5QdHI8VD46On5SZXRhaW5QdHIoKQogewotICAgIGlmIChTdG9yYWdlVHlwZSBwdHIg
PSBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSkKKyAgICBpZiAoYXV0byBwdHIgPSBzdGQ6
OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSkKICAgICAgICAgQ0ZSZWxlYXNlKHB0cik7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBSZXRhaW5Q
dHI8VD46OlJldGFpblB0cihjb25zdCBSZXRhaW5QdHI8VT4mIG8pCi0gICAgOiBtX3B0cih0b1N0
b3JhZ2VUeXBlKG8uZ2V0KCkpKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFpblB0
cjxUPjo6UmV0YWluUHRyKFB0clR5cGUgcHRyKQorICAgIDogbV9wdHIodG9TdG9yYWdlVHlwZShw
dHIpKQogewotICAgIGlmIChTdG9yYWdlVHlwZSBwdHIgPSBtX3B0cikKLSAgICAgICAgQ0ZSZXRh
aW4ocHRyKTsKKyAgICBpZiAobV9wdHIpCisgICAgICAgIENGUmV0YWluKG1fcHRyKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgUmV0YWluUHRyPFQ+OjpjbGVhcigpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmV0YWluUHRyPFQ+OjpSZXRhaW5QdHIoY29uc3Qg
UmV0YWluUHRyJiBvKQorICAgIDogUmV0YWluUHRyKG8uZ2V0KCkpCiB7Ci0gICAgaWYgKFN0b3Jh
Z2VUeXBlIHB0ciA9IHN0ZDo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpKQotICAgICAgICBDRlJl
bGVhc2UocHRyKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGF1dG8gUmV0YWlu
UHRyPFQ+OjpsZWFrUmVmKCkgLT4gUHRyVHlwZQordGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxh
dGU8dHlwZW5hbWUgVT4gaW5saW5lIFJldGFpblB0cjxUPjo6UmV0YWluUHRyKGNvbnN0IFJldGFp
blB0cjxVPiYgbykKKyAgICA6IFJldGFpblB0cihvLmdldCgpKQogewotICAgIHJldHVybiBmcm9t
U3RvcmFnZVR5cGUoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwogfQogCi0jaWZuZGVm
IF9fT0JKQ19fCi0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIFJldGFpblB0cjxU
Pjo6YXV0b3JlbGVhc2UoKSAtPiBQdHJUeXBlCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
dm9pZCBSZXRhaW5QdHI8VD46OmNsZWFyKCkKIHsKLSAgICBpZiAobV9wdHIpCi0gICAgICAgIENG
QXV0b3JlbGVhc2UobV9wdHIpOwotICAgIHJldHVybiBsZWFrUmVmKCk7CisgICAgaWYgKGF1dG8g
cHRyID0gc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpCisgICAgICAgIENGUmVsZWFzZShw
dHIpOwogfQogCi0jZWxzZQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBpbmxpbmUgYXV0byBSZXRhaW5QdHI8VD46OmF1dG9yZWxlYXNlSGVscGVyKCkgLT4gc3Rk
OjplbmFibGVfaWZfdDxzdGQ6OmlzX2NvbnZlcnRpYmxlPFUsIGlkPjo6dmFsdWUsIFB0clR5cGU+
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBSZXRhaW5QdHI8VD46OmxlYWtSZWYo
KSAtPiBQdHJUeXBlCiB7Ci0gICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHN0ZDo6ZXhjaGFu
Z2UobV9wdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gZnJvbVN0b3JhZ2VUeXBlKHN0ZDo6ZXhj
aGFuZ2UobV9wdHIsIG51bGxwdHIpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxh
dGU8dHlwZW5hbWUgVT4gaW5saW5lIGF1dG8gUmV0YWluUHRyPFQ+OjphdXRvcmVsZWFzZUhlbHBl
cigpIC0+IHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfY29udmVydGlibGU8VSwgaWQ+Ojp2YWx1
ZSwgUHRyVHlwZT4KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIFJldGFpblB0cjxU
Pjo6YXV0b3JlbGVhc2UoKSAtPiBQdHJUeXBlCiB7CisjaWZkZWYgX19PQkpDX18KKyAgICBpZiBj
b25zdGV4cHIgKHN0ZDo6aXNfY29udmVydGlibGVfdjxQdHJUeXBlLCBpZD4pCisgICAgICAgIHJl
dHVybiBDRkJyaWRnaW5nUmVsZWFzZShzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7Cisj
ZW5kaWYKICAgICBpZiAobV9wdHIpCiAgICAgICAgIENGQXV0b3JlbGVhc2UobV9wdHIpOwogICAg
IHJldHVybiBsZWFrUmVmKCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRv
IFJldGFpblB0cjxUPjo6YXV0b3JlbGVhc2UoKSAtPiBQdHJUeXBlCi17Ci0gICAgcmV0dXJuIGF1
dG9yZWxlYXNlSGVscGVyPFB0clR5cGU+KCk7Ci19CisjaWZkZWYgX19PQkpDX18KIAotLy8gRklY
TUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgYmFzZSB0aGUgcmV0dXJuIHR5cGUgb24g
dGhlIHR5cGUgdGhhdCBpcyB0b2xsLWZyZWUgYnJpZGdlZCB3aXRoIFQgcmF0aGVyIHRoYW4gdXNp
bmcgaWQuCisvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIHdlIGNvdWxkIGJhc2UgdGhl
IHJldHVybiB0eXBlIG9uIHRoZSB0eXBlIHRoYXQgaXMgdG9sbC1mcmVlIGJyaWRnZWQgd2l0aCBU
IHJhdGhlciB0aGFuIHVzaW5nIGlkLgogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGlkIFJl
dGFpblB0cjxUPjo6YnJpZGdpbmdBdXRvcmVsZWFzZSgpCiB7CiAgICAgc3RhdGljX2Fzc2VydCgo
IXN0ZDo6aXNfY29udmVydGlibGU8UHRyVHlwZSwgaWQ+Ojp2YWx1ZSksICJEb24ndCB1c2UgYnJp
ZGdpbmdBdXRvcmVsZWFzZSBmb3IgT2JqZWN0aXZlLUMgcG9pbnRlciB0eXBlcy4iKTsKQEAgLTI4
NywzNyArMjc2LDM3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIHN3YXAoUmV0
YWluUHRyPFQ+JiBhLCBSZXRhaW5QdHI8VD4mIGIpCiAgICAgYS5zd2FwKGIpOwogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFJldGFpblB0cjxUPiYgYSwgY29uc3QgUmV0YWluUHRyPFU+JiBiKQordGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXRhaW5Q
dHI8VD4mIGEsIGNvbnN0IFJldGFpblB0cjxVPiYgYikKIHsgCiAgICAgcmV0dXJuIGEuZ2V0KCkg
PT0gYi5nZXQoKTsgCiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUmV0YWluUHRyPFQ+JiBhLCBVKiBiKQordGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBS
ZXRhaW5QdHI8VD4mIGEsIFUqIGIpCiB7CiAgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsgCiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0o
VCogYSwgY29uc3QgUmV0YWluUHRyPFU+JiBiKSAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oVCogYSwgY29uc3QgUmV0YWluUHRyPFU+
JiBiKQogewogICAgIHJldHVybiBhID09IGIuZ2V0KCk7IAogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJldGFpblB0cjxU
PiYgYSwgY29uc3QgUmV0YWluUHRyPFU+JiBiKQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4gY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXRhaW5QdHI8VD4mIGEsIGNv
bnN0IFJldGFpblB0cjxVPiYgYikKIHsgCiAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsg
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJh
dG9yIT0oY29uc3QgUmV0YWluUHRyPFQ+JiBhLCBVKiBiKQordGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4gY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXRhaW5QdHI8VD4m
IGEsIFUqIGIpCiB7CiAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYjsgCiB9CiAKLXRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oVCogYSwgY29uc3Qg
UmV0YWluUHRyPFU+JiBiKQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gY29uc3Rl
eHByIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBSZXRhaW5QdHI8VT4mIGIpCiB7IAogICAg
IHJldHVybiBhICE9IGIuZ2V0KCk7IAogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
UmV0YWluUHRyPFQ+IGFkb3B0Q0YoVCBDRl9SRUxFQVNFU19BUkdVTUVOVCBwdHIpCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgUmV0YWluUHRyPFQ+IGFkb3B0Q0YoVCBDRl9SRUxFQVNF
U19BUkdVTUVOVCBwdHIpCiB7CiAjaWZkZWYgX19PQkpDX18KICAgICBzdGF0aWNfYXNzZXJ0KCgh
c3RkOjppc19jb252ZXJ0aWJsZTxULCBpZD46OnZhbHVlKSwgIkRvbid0IHVzZSBhZG9wdENGIHdp
dGggT2JqZWN0aXZlLUMgcG9pbnRlciB0eXBlcywgdXNlIGFkb3B0TlMuIik7CkBAIC0zMzEsNyAr
MzIwLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFpblB0cjx0eXBlbmFtZSBS
ZXRhaW5QdHI8VD46OkhlbHBlclB0clR5cGU+IGFkb3AKICNpZiBfX2hhc19mZWF0dXJlKG9iamNf
YXJjKQogICAgIHJldHVybiBwdHI7CiAjZWxpZiBkZWZpbmVkKE9CSkNfTk9fR0MpCi0gICAgcmV0
dXJuIFJldGFpblB0cjx0eXBlbmFtZSBSZXRhaW5QdHI8VD46OkhlbHBlclB0clR5cGU+KHB0ciwg
UmV0YWluUHRyPHR5cGVuYW1lIFJldGFpblB0cjxUPjo6SGVscGVyUHRyVHlwZT46OkFkb3B0KTsK
KyAgICB1c2luZyBSZXR1cm5UeXBlID0gUmV0YWluUHRyPHR5cGVuYW1lIFJldGFpblB0cjxUPjo6
SGVscGVyUHRyVHlwZT47CisgICAgcmV0dXJuIFJldHVyblR5cGUgeyBwdHIsIFJldHVyblR5cGU6
OkFkb3B0IH07CiAjZWxzZQogICAgIFJldGFpblB0cjx0eXBlbmFtZSBSZXRhaW5QdHI8VD46Okhl
bHBlclB0clR5cGU+IHJlc3VsdCA9IHB0cjsKICAgICBbcHRyIHJlbGVhc2VdOwpAQCAtMzQ1LDcg
KzMzNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZXRhaW5QdHI8dHlwZW5hbWUg
UmV0YWluUHRyPFQ+OjpIZWxwZXJQdHJUeXBlPiByZXRhCiAgICAgcmV0dXJuIHB0cjsKIH0KIAot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1NtYXJ0UHRyPFJldGFpblB0cjxUPj4gewor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHI8UmV0YWluUHRyPFQ+PiB7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gdHJ1ZTsKIH07CiAKQEAgLTM1NCwxNyAr
MzQ0LDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBIYXNoVHJhaXRzPFJldGFpblB0
cjxQPj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8UmV0CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFA+
IHN0cnVjdCBEZWZhdWx0SGFzaDxSZXRhaW5QdHI8UD4+IDogUHRySGFzaDxSZXRhaW5QdHI8UD4+
IHsgfTsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFA+Ci1zdHJ1Y3QgUmV0YWluUHRyT2JqZWN0SGFz
aFRyYWl0cyA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxSZXRhaW5QdHI8UD4+IHsKK3RlbXBsYXRl
PHR5cGVuYW1lIFA+IHN0cnVjdCBSZXRhaW5QdHJPYmplY3RIYXNoVHJhaXRzIDogU2ltcGxlQ2xh
c3NIYXNoVHJhaXRzPFJldGFpblB0cjxQPj4gewogICAgIHN0YXRpYyBjb25zdCBSZXRhaW5QdHI8
UD4mIGVtcHR5VmFsdWUoKQogICAgIHsKLSAgICAgICAgc3RhdGljIFJldGFpblB0cjxQPiYgbnVs
bCA9ICoobmV3IFJldGFpblB0cjxQPik7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZXRhaW5QdHI8UD4+IG51bGw7CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KIH07CiAKLXRl
bXBsYXRlIDx0eXBlbmFtZSBQPgotc3RydWN0IFJldGFpblB0ck9iamVjdEhhc2ggewordGVtcGxh
dGU8dHlwZW5hbWUgUD4gc3RydWN0IFJldGFpblB0ck9iamVjdEhhc2ggewogICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IFJldGFpblB0cjxQPiYgbykKICAgICB7CiAgICAgICAgIEFTU0VS
VF9XSVRIX01FU1NBR0Uoby5nZXQoKSwgImF0dGVtcHQgdG8gdXNlIG51bGwgUmV0YWluUHRyIGlu
IEhhc2hUYWJsZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dEZpbmRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRG
aW5kZXJDbGllbnQubW0KaW5kZXggMjk0M2ViNmFlYTBkODljNGJjYjE1OTk5M2ZkMmFkMzc2NzEx
ZjYxOC4uYzAzN2Q2NWIyYmMwZjNjMGExZWExMjZlZmQyMTgyN2RhMjFhYWJiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCkBAIC0y
MjUsNyArMjI1LDcgQEAgLSAodm9pZClmaW5kTWF0Y2hlc0ZvclN0cmluZzooTlNTdHJpbmcgKil0
YXJnZXRTdHJpbmcgcmVsYXRpdmVUb01hdGNoOihpZCA8TlNUZXgKICAgICAgICAga2l0RmluZE9w
dGlvbnMuYWRkKFdlYktpdDo6RmluZE9wdGlvbnM6OkRldGVybWluZU1hdGNoSW5kZXgpOwogICAg
IH0KIAotICAgIFJldGFpblB0cjxOU1Byb2dyZXNzPiBwcm9ncmVzcyA9IFtOU1Byb2dyZXNzIHBy
b2dyZXNzV2l0aFRvdGFsVW5pdENvdW50OjFdOworICAgIFJldGFpblB0ciBwcm9ncmVzcyA9IFtO
U1Byb2dyZXNzIHByb2dyZXNzV2l0aFRvdGFsVW5pdENvdW50OjFdOwogICAgIGF1dG8gY29waWVk
UmVzdWx0Q29sbGVjdG9yID0gQmxvY2tfY29weShyZXN1bHRDb2xsZWN0b3IpOwogICAgIF9maW5k
UmVwbHlDYWxsYmFja3MuYXBwZW5kKFtwcm9ncmVzcywgY29waWVkUmVzdWx0Q29sbGVjdG9yXSAo
TlNBcnJheSAqbWF0Y2hlcywgYm9vbCBkaWRXcmFwKSB7CiAgICAgICAgIFtwcm9ncmVzcyBzZXRD
b21wbGV0ZWRVbml0Q291bnQ6MV07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>