<?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>238765</bug_id>
          
          <creation_ts>2022-04-04 14:07:12 -0700</creation_ts>
          <short_desc>Remove lots of WebCore:: in RemoteLayerBackingStore</short_desc>
          <delta_ts>2022-04-04 19:05:18 -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>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>
          
          
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1858054</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-04 14:07:12 -0700</bug_when>
    <thetext>Remove lots of WebCore:: in RemoteLayerBackingStore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858055</commentid>
    <comment_count>1</comment_count>
      <attachid>456628</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-04 14:07:55 -0700</bug_when>
    <thetext>Created attachment 456628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858194</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-04 19:04:23 -0700</bug_when>
    <thetext>Committed r292363 (249228@main): &lt;https://commits.webkit.org/249228@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456628.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858195</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-04 19:05:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/91272903&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456628</attachid>
            <date>2022-04-04 14:07:55 -0700</date>
            <delta_ts>2022-04-04 19:04:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238765-20220404140754.patch</filename>
            <type>text/plain</type>
            <size>20926</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMzY2VhMjRlMTc5YjgwMmNj
OTNiNzg3NGFlMmEyNzlkMmIxMDY5MDAuLjcyZGVmMDUyN2E4NDUyYzZjMGZkZjg3YWZlNmM1MTcz
MjdhMWEzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDQgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGxvdHMgb2Yg
V2ViQ29yZTo6IGluIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg3NjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmVgIHRvIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLiBXZWJDb3JlOjpJT1N1cmZhY2Ugc3RpbGwg
bmVlZHMgcXVhbGlmaWNhdGlvbi4KKworICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjplbnN1cmVCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldE5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRlc1BlclBpeGVsIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN3YXBUb1ZhbGlkRnJvbnRC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlT
d2FwcGVkQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpwcmVwYXJlVG9EaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OmRpcnR5UmVwYWludENvdW50ZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbnN1cmVGcm9udEJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwcmVwYXJlQnVmZmVycyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwYWludENvbnRlbnRzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRyYXdJbkNvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW51bWVyYXRlUmVjdHNCZWlu
Z0RyYXduKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5
QmFja2luZ1N0b3JlVG9MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOjp0YWtlUGVuZGluZ0ZsdXNoZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlclZvbGF0aWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlck5vblZvbGF0aWxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEZyb250QnVmZmVyTm9uVm9sYXRpbGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YnVmZmVyRm9yVHlw
ZSBjb25zdCk6CisKIDIwMjItMDQtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGxvdHMgb2YgV2ViQ29yZTo6IGluIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBkOTk5MTBjYjk0
ZGNhOWNhNDkzOWEwMzgzNGFmZmViYjA0ZTFmOTRiLi5jNjUxNWYzZTIwZjk0ZTQxMzExM2UxZWFm
NmJkODNlYmE2M2ZhNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC01NSw2
ICs1NSw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKwogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlKFBs
YXRmb3JtQ0FMYXllclJlbW90ZSogbGF5ZXIpCiAgICAgOiBtX2xheWVyKGxheWVyKQogICAgICwg
bV9sYXN0RGlzcGxheVRpbWUoLU1vbm90b25pY1RpbWU6OmluZmluaXR5KCkpCkBAIC04NSw3ICs4
Nyw3IEBAIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbiogUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OmJhY2tpbmdTdG9yZUNvbGxlY3RpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuc3VyZUJhY2tpbmdTdG9yZShUeXBlIHR5
cGUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBkZWVwQ29sb3Is
IGJvb2wgaXNPcGFxdWUsIEluY2x1ZGVEaXNwbGF5TGlzdCBpbmNsdWRlRGlzcGxheUxpc3QpCit2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbnN1cmVCYWNraW5nU3RvcmUoVHlwZSB0eXBl
LCBGbG9hdFNpemUgc2l6ZSwgZmxvYXQgc2NhbGUsIGJvb2wgZGVlcENvbG9yLCBib29sIGlzT3Bh
cXVlLCBJbmNsdWRlRGlzcGxheUxpc3QgaW5jbHVkZURpc3BsYXlMaXN0KQogewogICAgIGlmICht
X3R5cGUgPT0gdHlwZSAmJiBtX3NpemUgPT0gc2l6ZSAmJiBtX3NjYWxlID09IHNjYWxlICYmIG1f
ZGVlcENvbG9yID09IGRlZXBDb2xvciAmJiBtX2lzT3BhcXVlID09IGlzT3BhcXVlICYmIG1faW5j
bHVkZURpc3BsYXlMaXN0ID09IGluY2x1ZGVEaXNwbGF5TGlzdCkKICAgICAgICAgcmV0dXJuOwpA
QCAtMTE2LDcgKzExOCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmNsZWFyQmFj
a2luZ1N0b3JlKCkKIAogdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBhdXRvIGhhbmRsZUZyb21CdWZmZXIgPSBb
XShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgYnVmZmVyKSAtPiBzdGQ6Om9wdGlvbmFsPEltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZT4geworICAgIGF1dG8gaGFuZGxlRnJvbUJ1ZmZlciA9IFtdKEltYWdl
QnVmZmVyJiBidWZmZXIpIC0+IHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
PiB7CiAgICAgICAgIGF1dG8qIGJhY2tlbmQgPSBidWZmZXIuZW5zdXJlQmFja2VuZENyZWF0ZWQo
KTsKICAgICAgICAgaWYgKCFiYWNrZW5kKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKQEAgLTE5Myw0MCArMTk1LDQwIEBAIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6Omxh
eWVyV2lsbEJlRGlzcGxheWVkKCkKICAgICByZXR1cm4gY29sbGVjdGlvbi0+YmFja2luZ1N0b3Jl
V2lsbEJlRGlzcGxheWVkKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZTo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QgcmVjdCkKK3ZvaWQgUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldE5lZWRzRGlzcGxheShjb25zdCBJbnRSZWN0IHJlY3Qp
CiB7CiAgICAgbV9kaXJ0eVJlZ2lvbi51bml0ZShyZWN0KTsKIH0KIAogdm9pZCBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKLSAgICBzZXROZWVkc0Rpc3BsYXko
V2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgpLCBXZWJDb3JlOjpleHBhbmRlZElu
dFNpemUobV9zaXplKSkpOworICAgIHNldE5lZWRzRGlzcGxheShJbnRSZWN0KEludFBvaW50KCks
IGV4cGFuZGVkSW50U2l6ZShtX3NpemUpKSk7CiB9CiAKLVdlYkNvcmU6OlBpeGVsRm9ybWF0IFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpwaXhlbEZvcm1hdCgpIGNvbnN0CitQaXhlbEZvcm1hdCBS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6cGl4ZWxGb3JtYXQoKSBjb25zdAogewogI2lmIEhBVkUo
SU9TVVJGQUNFX1JHQjEwKQogICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6SU9TdXJmYWNlICYmIG1f
ZGVlcENvbG9yKQotICAgICAgICByZXR1cm4gbV9pc09wYXF1ZSA/IFdlYkNvcmU6OlBpeGVsRm9y
bWF0OjpSR0IxMCA6IFdlYkNvcmU6OlBpeGVsRm9ybWF0OjpSR0IxMEE4OworICAgICAgICByZXR1
cm4gbV9pc09wYXF1ZSA/IFBpeGVsRm9ybWF0OjpSR0IxMCA6IFBpeGVsRm9ybWF0OjpSR0IxMEE4
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gV2ViQ29yZTo6UGl4ZWxGb3JtYXQ6OkJHUkE4OworICAg
IHJldHVybiBQaXhlbEZvcm1hdDo6QkdSQTg7CiB9CiAKIHVuc2lnbmVkIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpieXRlc1BlclBpeGVsKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHBpeGVsRm9y
bWF0KCkpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlBpeGVsRm9ybWF0OjpSR0JBODogcmV0dXJuIDQ7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQaXhlbEZvcm1hdDo6QkdSQTg6IHJldHVybiA0OwotICAgIGNh
c2UgV2ViQ29yZTo6UGl4ZWxGb3JtYXQ6OlJHQjEwOiByZXR1cm4gNDsKLSAgICBjYXNlIFdlYkNv
cmU6OlBpeGVsRm9ybWF0OjpSR0IxMEE4OiByZXR1cm4gNTsKKyAgICBjYXNlIFBpeGVsRm9ybWF0
OjpSR0JBODogcmV0dXJuIDQ7CisgICAgY2FzZSBQaXhlbEZvcm1hdDo6QkdSQTg6IHJldHVybiA0
OworICAgIGNhc2UgUGl4ZWxGb3JtYXQ6OlJHQjEwOiByZXR1cm4gNDsKKyAgICBjYXNlIFBpeGVs
Rm9ybWF0OjpSR0IxMEE4OiByZXR1cm4gNTsKICAgICB9CiAgICAgcmV0dXJuIDQ7CiB9CiAKLVdl
YkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2Fw
VG9WYWxpZEZyb250QnVmZmVyKCkKK1NldE5vblZvbGF0aWxlUmVzdWx0IFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyKCkKIHsKLSAgICBBU1NFUlQoIVdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihXZWJDb3JlOjpS
ZW5kZXJpbmdQdXJwb3NlOjpET00pKTsKKyAgICBBU1NFUlQoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlOjpET00pKTsK
IAogICAgIC8vIFNvbWV0aW1lcywgd2UgY2FuIGdldCB0d28gc3dhcHMgYWhlYWQgb2YgdGhlIHJl
bmRlciBzZXJ2ZXIuCiAgICAgLy8gSWYgd2UncmUgdXNpbmcgc2hhcmVkIElPU3VyZmFjZXMsIHdl
IG11c3Qgd2FpdCB0byBtb2RpZnkKQEAgLTI0OSw5ICsyNTEsOSBAQCBXZWJDb3JlOjpTZXROb25W
b2xhdGlsZVJlc3VsdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3dhcFRvVmFsaWRGcm9udEJ1
ZmZlcigpCiB9CiAKIC8vIENhbGxlZCBhZnRlciBidWZmZXIgc3dhcHBpbmcgaW4gdGhlIEdQVSBw
cm9jZXNzLgotdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlTd2FwcGVkQnVmZmVy
cyhSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+JiYgZnJvbnQsIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcj4mJiBiYWNrLCBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+JiYgc2Vjb25k
YXJ5QmFjaywgU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQgZGlzcGxheVJlcXVpcmVtZW50
KQordm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlTd2FwcGVkQnVmZmVycyhSZWZQ
dHI8SW1hZ2VCdWZmZXI+JiYgZnJvbnQsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4mJiBiYWNrLCBSZWZQ
dHI8SW1hZ2VCdWZmZXI+JiYgc2Vjb25kYXJ5QmFjaywgU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWly
ZW1lbnQgZGlzcGxheVJlcXVpcmVtZW50KQogewotICAgIEFTU0VSVChXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IoV2ViQ29yZTo6UmVuZGVyaW5nUHVy
cG9zZTo6RE9NKSk7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVz
ZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlOjpET00pKTsKICAgICBtX2NvbnRl
bnRzQnVmZmVySGFuZGxlID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9mcm9udEJ1ZmZlci5pbWFn
ZUJ1ZmZlciA9IFdURk1vdmUoZnJvbnQpOwpAQCAtMzE1LDcgKzMxNyw3IEBAIGJvb2wgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OnBlcmZvcm1EZWxlZ2F0ZWRMYXllckRpc3BsYXkoKQogCiB2b2lk
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwcmVwYXJlVG9EaXNwbGF5KCkKIHsKLSAgICBBU1NF
UlQoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihX
ZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlOjpET00pKTsKKyAgICBBU1NFUlQoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3Nl
OjpET00pKTsKICAgICBBU1NFUlQoIW1fZnJvbnRCdWZmZXJGbHVzaGVycy5zaXplKCkpOwogCiAg
ICAgYXV0byogY29sbGVjdGlvbiA9IGJhY2tpbmdTdG9yZUNvbGxlY3Rpb24oKTsKQEAgLTM0NSw3
ICszNDcsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwcmVwYXJlVG9EaXNwbGF5
KCkKIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpcnR5UmVwYWludENvdW50ZXJJZk5l
Y2Vzc2FyeSgpCiB7CiAgICAgaWYgKG1fbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllclNo
b3dSZXBhaW50Q291bnRlcihtX2xheWVyKSkgewotICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGlu
ZGljYXRvclJlY3QoMCwgMCwgNTIsIDI3KTsKKyAgICAgICAgSW50UmVjdCBpbmRpY2F0b3JSZWN0
KDAsIDAsIDUyLCAyNyk7CiAgICAgICAgIG1fZGlydHlSZWdpb24udW5pdGUoaW5kaWNhdG9yUmVj
dCk7CiAgICAgfQogfQpAQCAtMzY1LDcgKzM2Nyw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OmVuc3VyZUZyb250QnVmZmVyKCkKIAogI2lmIEVOQUJMRShDR19ESVNQTEFZX0xJU1Rf
QkFDS0VEX0lNQUdFX0JVRkZFUikKICAgICBpZiAobV9pbmNsdWRlRGlzcGxheUxpc3QgPT0gSW5j
bHVkZURpc3BsYXlMaXN0OjpZZXMpCi0gICAgICAgIG1fZnJvbnRCdWZmZXIuZGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8Q0dEaXNwbGF5TGlzdElt
YWdlQnVmZmVyQmFja2VuZD46OmNyZWF0ZShtX3NpemUsIG1fc2NhbGUsIFdlYkNvcmU6OkRlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBwaXhlbEZvcm1hdCgpKTsKKyAgICAgICAgbV9mcm9u
dEJ1ZmZlci5kaXNwbGF5TGlzdEltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFnZUJ1ZmZlcjxDR0Rp
c3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kPjo6Y3JlYXRlKG1fc2l6ZSwgbV9zY2FsZSwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIHBpeGVsRm9ybWF0KCkpOwogI2VuZGlmCiB9CiAK
QEAgLTM4MywxMyArMzg1LDEzIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudCByZXN1CiAKIFN3YXBCdWZm
ZXJzRGlzcGxheVJlcXVpcmVtZW50IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwcmVwYXJlQnVm
ZmVycygpCiB7Ci0gICAgQVNTRVJUKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRVc2VS
ZW1vdGVSZW5kZXJpbmdGb3IoV2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZTo6RE9NKSk7CisgICAg
QVNTRVJUKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdG
b3IoUmVuZGVyaW5nUHVycG9zZTo6RE9NKSk7CiAgICAgbV9jb250ZW50c0J1ZmZlckhhbmRsZSA9
IHN0ZDo6bnVsbG9wdDsKIAogICAgIGF1dG8gZGlzcGxheVJlcXVpcmVtZW50ID0gU3dhcEJ1ZmZl
cnNEaXNwbGF5UmVxdWlyZW1lbnQ6Ok5lZWRzTm9EaXNwbGF5OwogCiAgICAgLy8gTWFrZSB0aGUg
cHJldmlvdXMgZnJvbnQgYnVmZmVyIG5vbi12b2xhdGlsZSBlYXJseSwgc28gdGhhdCB3ZSBjYW4g
ZGlydHkgdGhlIHdob2xlIGxheWVyIGlmIGl0IGNvbWVzIGJhY2sgZW1wdHkuCi0gICAgaWYgKCFo
YXNGcm9udEJ1ZmZlcigpIHx8IHNldEZyb250QnVmZmVyTm9uVm9sYXRpbGUoKSA9PSBXZWJDb3Jl
OjpTZXROb25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkpCisgICAgaWYgKCFoYXNGcm9udEJ1ZmZlcigp
IHx8IHNldEZyb250QnVmZmVyTm9uVm9sYXRpbGUoKSA9PSBTZXROb25Wb2xhdGlsZVJlc3VsdDo6
RW1wdHkpCiAgICAgICAgIGRpc3BsYXlSZXF1aXJlbWVudCA9IFN3YXBCdWZmZXJzRGlzcGxheVJl
cXVpcmVtZW50OjpOZWVkc0Z1bGxEaXNwbGF5OwogICAgIGVsc2UgaWYgKCFoYXNFbXB0eURpcnR5
UmVnaW9uKCkpCiAgICAgICAgIGRpc3BsYXlSZXF1aXJlbWVudCA9IFN3YXBCdWZmZXJzRGlzcGxh
eVJlcXVpcmVtZW50OjpOZWVkc05vcm1hbERpc3BsYXk7CkBAIC00MDEsNyArNDAzLDcgQEAgU3dh
cEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnByZXBh
cmVCdWZmZXJzKCkKICAgICAgICAgZGlzcGxheVJlcXVpcmVtZW50ID0gU3dhcEJ1ZmZlcnNEaXNw
bGF5UmVxdWlyZW1lbnQ6Ok5lZWRzRnVsbERpc3BsYXk7CiAKICAgICBhdXRvIHJlc3VsdCA9IHN3
YXBUb1ZhbGlkRnJvbnRCdWZmZXIoKTsKLSAgICBpZiAoIWhhc0Zyb250QnVmZmVyKCkgfHwgcmVz
dWx0ID09IFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpFbXB0eSkKKyAgICBpZiAoIWhh
c0Zyb250QnVmZmVyKCkgfHwgcmVzdWx0ID09IFNldE5vblZvbGF0aWxlUmVzdWx0OjpFbXB0eSkK
ICAgICAgICAgZGlzcGxheVJlcXVpcmVtZW50ID0gU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1l
bnQ6Ok5lZWRzRnVsbERpc3BsYXk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVy
aW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZSAi
IDw8IG1fbGF5ZXItPmxheWVySUQoKSA8PCAiIHByZXBhcmVCdWZmZXJzKCkgLSAiIDw8IGRpc3Bs
YXlSZXF1aXJlbWVudCk7CkBAIC00MjcsMjQgKzQyOSwyNCBAQCB2b2lkIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpwYWludENvbnRlbnRzKCkKIAogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgd2hlbiA8cmRhcjovL3Byb2JsZW0vODA0ODc2OTc+IGlzIGZpeGVkLgogICAgICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxib29sPiBuZWVkc01pc3NpbmdGbGlwV29ya2Fyb3VuZDsKLSAgICAg
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciB3b3JrYXJvdW5kU3RhdGVTYXZl
cihkaXNwbGF5TGlzdENvbnRleHQsIGZhbHNlKTsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGVTYXZlciB3b3JrYXJvdW5kU3RhdGVTYXZlcihkaXNwbGF5TGlzdENvbnRleHQsIGZhbHNlKTsK
ICAgICAgICAgaWYgKCFuZWVkc01pc3NpbmdGbGlwV29ya2Fyb3VuZCkgewogICAgICAgICAgICAg
aWQgZGVmYXVsdFZhbHVlID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
b2JqZWN0Rm9yS2V5OkAiV2ViS2l0TmVlZHNXb3JrYXJvdW5kRm9yODA0ODc2OTciXTsKICAgICAg
ICAgICAgIG5lZWRzTWlzc2luZ0ZsaXBXb3JrYXJvdW5kID0gZGVmYXVsdFZhbHVlID8gW2RlZmF1
bHRWYWx1ZSBib29sVmFsdWVdIDogdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBpZiAobmVlZHNN
aXNzaW5nRmxpcFdvcmthcm91bmQudmFsdWUoKSkgewogICAgICAgICAgICAgd29ya2Fyb3VuZFN0
YXRlU2F2ZXIuc2F2ZSgpOwotICAgICAgICAgICAgZGlzcGxheUxpc3RDb250ZXh0LnNjYWxlKFdl
YkNvcmU6OkZsb2F0U2l6ZSgxLCAtMSkpOworICAgICAgICAgICAgZGlzcGxheUxpc3RDb250ZXh0
LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgICAgICAgICAgZGlzcGxheUxpc3RDb250ZXh0
LnRyYW5zbGF0ZSgwLCAtbV9zaXplLmhlaWdodCgpKTsKICAgICAgICAgfQogCi0gICAgICAgIFdl
YkNvcmU6OkJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgY29udGV4dChtX2Zyb250QnVmZmVyLmlt
YWdlQnVmZmVyLT5jb250ZXh0KCksIGRpc3BsYXlMaXN0Q29udGV4dCk7CisgICAgICAgIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQgY29udGV4dChtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyLT5j
b250ZXh0KCksIGRpc3BsYXlMaXN0Q29udGV4dCk7CiAjZWxzZQotICAgICAgICBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyLT5jb250
ZXh0KCk7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IG1fZnJvbnRCdWZmZXIu
aW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKICNlbmRpZgogICAgICAgICBkcmF3SW5Db250ZXh0KGNv
bnRleHQpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCA9IG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICAgICAg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci0+Y29u
dGV4dCgpOwogICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQpOyAgICAKICAgICB9CiAKQEAg
LTQ2Miw0MCArNDY0LDQwIEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnBhaW50Q29u
dGVudHMoKQogI2VuZGlmCiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRyYXdJ
bkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQordm9pZCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6ZHJhd0luQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
CiB7Ci0gICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNv
bnRleHQpOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0
KTsKIAogICAgIC8vIElmIHdlIGhhdmUgbGVzcyB0aGFuIHdlYkxheWVyTWF4UmVjdHNUb1BhaW50
IHJlY3RzIHRvIHBhaW50IGFuZCB0aGV5IGNvdmVyIGxlc3MKICAgICAvLyB0aGFuIHdlYkxheWVy
V2FzdGVkU3BhY2VUaHJlc2hvbGQgb2YgdGhlIHRvdGFsIGRpcnR5IGFyZWEsIHdlJ2xsIHJlcGFp
bnQgZWFjaCByZWN0IHNlcGFyYXRlbHkuCiAgICAgLy8gT3RoZXJ3aXNlLCByZXBhaW50IHRoZSBl
bnRpcmUgYm91bmRpbmcgYm94IG9mIHRoZSBkaXJ0eSByZWdpb24uCi0gICAgV2ViQ29yZTo6SW50
UmVjdCBkaXJ0eUJvdW5kcyA9IG1fZGlydHlSZWdpb24uYm91bmRzKCk7CisgICAgSW50UmVjdCBk
aXJ0eUJvdW5kcyA9IG1fZGlydHlSZWdpb24uYm91bmRzKCk7CiAKICAgICBhdXRvIGRpcnR5UmVj
dHMgPSBtX2RpcnR5UmVnaW9uLnJlY3RzKCk7Ci0gICAgaWYgKGRpcnR5UmVjdHMuc2l6ZSgpID4g
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjp3ZWJMYXllck1heFJlY3RzVG9QYWludCB8fCBtX2Rp
cnR5UmVnaW9uLnRvdGFsQXJlYSgpID4gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjp3ZWJMYXll
cldhc3RlZFNwYWNlVGhyZXNob2xkICogZGlydHlCb3VuZHMud2lkdGgoKSAqIGRpcnR5Qm91bmRz
LmhlaWdodCgpKSB7CisgICAgaWYgKGRpcnR5UmVjdHMuc2l6ZSgpID4gUGxhdGZvcm1DQUxheWVy
Ojp3ZWJMYXllck1heFJlY3RzVG9QYWludCB8fCBtX2RpcnR5UmVnaW9uLnRvdGFsQXJlYSgpID4g
UGxhdGZvcm1DQUxheWVyOjp3ZWJMYXllcldhc3RlZFNwYWNlVGhyZXNob2xkICogZGlydHlCb3Vu
ZHMud2lkdGgoKSAqIGRpcnR5Qm91bmRzLmhlaWdodCgpKSB7CiAgICAgICAgIGRpcnR5UmVjdHMu
Y2xlYXIoKTsKICAgICAgICAgZGlydHlSZWN0cy5hcHBlbmQoZGlydHlCb3VuZHMpOwogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBmaW5kIGEgY29uc2lzdGVudCB3YXkgdG8gc2NhbGUgYW5kIHNuYXAg
ZGlydHkgYW5kIENHIGNsaXAgcmVjdHMuCiAgICAgZm9yIChjb25zdCBhdXRvJiByZWN0IDogZGly
dHlSZWN0cykgewotICAgICAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2NhbGVkUmVjdChyZWN0KTsK
KyAgICAgICAgRmxvYXRSZWN0IHNjYWxlZFJlY3QocmVjdCk7CiAgICAgICAgIHNjYWxlZFJlY3Qu
c2NhbGUobV9zY2FsZSk7Ci0gICAgICAgIHNjYWxlZFJlY3QgPSBXZWJDb3JlOjplbmNsb3NpbmdJ
bnRSZWN0KHNjYWxlZFJlY3QpOworICAgICAgICBzY2FsZWRSZWN0ID0gZW5jbG9zaW5nSW50UmVj
dChzY2FsZWRSZWN0KTsKICAgICAgICAgc2NhbGVkUmVjdC5zY2FsZSgxIC8gbV9zY2FsZSk7CiAg
ICAgICAgIG1fcGFpbnRpbmdSZWN0cy5hcHBlbmQoc2NhbGVkUmVjdCk7CiAgICAgfQogCi0gICAg
V2ViQ29yZTo6SW50UmVjdCBsYXllckJvdW5kcyhXZWJDb3JlOjpJbnRQb2ludCgpLCBXZWJDb3Jl
OjpleHBhbmRlZEludFNpemUobV9zaXplKSk7CisgICAgSW50UmVjdCBsYXllckJvdW5kcyhJbnRQ
b2ludCgpLCBleHBhbmRlZEludFNpemUobV9zaXplKSk7CiAgICAgaWYgKCFtX2RpcnR5UmVnaW9u
LmNvbnRhaW5zKGxheWVyQm91bmRzKSkgewogICAgICAgICBBU1NFUlQobV9iYWNrQnVmZmVyLmlt
YWdlQnVmZmVyKTsKLSAgICAgICAgY29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKm1fYmFja0J1ZmZl
ci5pbWFnZUJ1ZmZlciwgeyAwLCAwIH0sIHsgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3I6OkNv
cHkgfSk7CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCptX2JhY2tCdWZmZXIuaW1h
Z2VCdWZmZXIsIHsgMCwgMCB9LCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5IH0pOwogICAgIH0K
IAogICAgIGlmIChtX3BhaW50aW5nUmVjdHMuc2l6ZSgpID09IDEpCiAgICAgICAgIGNvbnRleHQu
Y2xpcChtX3BhaW50aW5nUmVjdHNbMF0pOwogICAgIGVsc2UgewotICAgICAgICBXZWJDb3JlOjpQ
YXRoIGNsaXBQYXRoOworICAgICAgICBQYXRoIGNsaXBQYXRoOwogICAgICAgICBmb3IgKGF1dG8g
cmVjdCA6IG1fcGFpbnRpbmdSZWN0cykKICAgICAgICAgICAgIGNsaXBQYXRoLmFkZFJlY3QocmVj
dCk7CiAgICAgICAgIGNvbnRleHQuY2xpcFBhdGgoY2xpcFBhdGgpOwpAQCAtNTA2LDQ3ICs1MDgs
NDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZHJhd0luQ29udGV4dChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAKICNpZm5kZWYgTkRFQlVHCiAgICAgaWYgKG1f
aXNPcGFxdWUpCi0gICAgICAgIGNvbnRleHQuZmlsbFJlY3QobGF5ZXJCb3VuZHMsIFdlYkNvcmU6
OlNSR0JBPHVpbnQ4X3Q+IHsgMjU1LCA0NywgMTQ2IH0pOworICAgICAgICBjb250ZXh0LmZpbGxS
ZWN0KGxheWVyQm91bmRzLCBTUkdCQTx1aW50OF90PiB7IDI1NSwgNDcsIDE0NiB9KTsKICNlbmRp
ZgogCi0gICAgLy8gRklYTUU6IENsYXJpZnkgdGhhdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFp
bnRTbmFwc2hvdHRpbmcgaXMganVzdCBhYm91dCBpbWFnZSBkZWNvZGluZy4KLSAgICBhdXRvIGZs
YWdzID0gbV9sYXllci0+Y29udGV4dCgpICYmIG1fbGF5ZXItPmNvbnRleHQoKS0+bmV4dFJlbmRl
cmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKCkgPyBXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFp
bnROb3JtYWw7CisgICAgLy8gRklYTUU6IENsYXJpZnkgdGhhdCBHcmFwaGljc0xheWVyUGFpbnRT
bmFwc2hvdHRpbmcgaXMganVzdCBhYm91dCBpbWFnZSBkZWNvZGluZy4KKyAgICBhdXRvIGZsYWdz
ID0gbV9sYXllci0+Y29udGV4dCgpICYmIG1fbGF5ZXItPmNvbnRleHQoKS0+bmV4dFJlbmRlcmlu
Z1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKCkgPyBHcmFwaGljc0xheWVy
UGFpbnRTbmFwc2hvdHRpbmcgOiBHcmFwaGljc0xheWVyUGFpbnROb3JtYWw7CiAgICAgCiAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBm
b3IgYmV0dGVyIGxheWVyaW5nLgogICAgIHN3aXRjaCAobV9sYXllci0+bGF5ZXJUeXBlKCkpIHsK
LSAgICBjYXNlIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2ltcGxlTGF5ZXI6
Ci0gICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2lu
Z1RpbGVMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2ltcGxlTGF5
ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVM
YXllcjoKICAgICAgICAgbV9sYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyUGFpbnRDb250
ZW50cyhtX2xheWVyLCBjb250ZXh0LCBkaXJ0eUJvdW5kcywgZmxhZ3MpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlV2ViTGF5ZXI6
Ci0gICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUJhY2tkcm9wTGF5
ZXI6Ci0gICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29udGVudHMo
Y29udGV4dCwgbV9sYXllciwgbV9wYWludGluZ1JlY3RzLCBmbGFncyk7CisgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVCYWNrZHJvcExheWVyOgorICAgICAgICBQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdM
YXllckNvbnRlbnRzKGNvbnRleHQsIG1fbGF5ZXIsIG1fcGFpbnRpbmdSZWN0cywgZmxhZ3MpOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlRGFya1N5c3RlbUJhY2tkcm9wTGF5ZXI6Ci0gICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZUxpZ2h0U3lzdGVtQmFja2Ryb3BMYXllcjoKKyAgICBjYXNlIFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlRGFya1N5c3RlbUJhY2tkcm9wTGF5ZXI6CisgICAgY2FzZSBQ
bGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxpZ2h0U3lzdGVtQmFja2Ryb3BMYXllcjoKICAgICAg
ICAgLy8gRklYTUU6IFRoZXNlIGhhdmUgYSBtb3JlIGNvbXBsaWNhdGVkIGxheWVyIGhpZXJhcmNo
eS4gV2UgbmVlZCB0byBwYWludCBpbnRvCiAgICAgICAgIC8vIGEgY2hpbGQgbGF5ZXIgaW4gb3Jk
ZXIgdG8gc2VlIHRoZSByZW5kZXJlZCByZXN1bHRzLgotICAgICAgICBXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKGNvbnRleHQsIG1fbGF5ZXIsIG1fcGFpbnRpbmdS
ZWN0cywgZmxhZ3MpOworICAgICAgICBQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRz
KGNvbnRleHQsIG1fbGF5ZXIsIG1fcGFpbnRpbmdSZWN0cywgZmxhZ3MpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXI6Ci0g
ICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRyYW5zZm9ybUxheWVy
OgotICAgIGNhc2UgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tp
bmdMYXllcjoKLSAgICBjYXNlIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFn
ZVRpbGVkQmFja2luZ0xheWVyOgotICAgIGNhc2UgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVSb290TGF5ZXI6Ci0gICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZUFWUGxheWVyTGF5ZXI6Ci0gICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZUNvbnRlbnRzUHJvdmlkZWRMYXllcjoKLSAgICBjYXNlIFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2hhcGVMYXllcjoKLSAgICBjYXNlIFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXI6CisgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVUcmFuc2Zvcm1MYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlVGlsZWRCYWNraW5nTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZVBhZ2VUaWxlZEJhY2tpbmdMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlUm9vdExheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVBVlBsYXll
ckxheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVDb250ZW50c1Byb3Zp
ZGVkTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5ZXI6
CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNjcm9sbENvbnRhaW5lckxheWVy
OgogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQotICAgIGNhc2UgV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyOjpMYXllclR5cGVNb2RlbExheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVNb2RlbExheWVyOgogI2VuZGlmCi0gICAgY2FzZSBXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZUN1c3RvbToKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlQ3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfTsKIH0KIAotdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW51bWVyYXRlUmVj
dHNCZWluZ0RyYXduKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgdm9pZCAoXmJs
b2NrKShXZWJDb3JlOjpGbG9hdFJlY3QpKQordm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6
ZW51bWVyYXRlUmVjdHNCZWluZ0RyYXduKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgdm9pZCAo
XmJsb2NrKShGbG9hdFJlY3QpKQogewogICAgIENHQWZmaW5lVHJhbnNmb3JtIGludmVyc2VUcmFu
c2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUludmVydChjb250ZXh0LmdldENUTSgpKTsKIApAQCAt
NTc2LDcgKzU3OCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2lu
Z1N0b3JlVG9MYXllcihDQUxheWVyICpsYXllciwgTGF5ZXJDb250CiAgICAgICAgICAgICBBU1NF
UlQobV90eXBlID09IFR5cGU6OklPU3VyZmFjZSk7CiAgICAgICAgICAgICBzd2l0Y2ggKGNvbnRl
bnRzVHlwZSkgewogICAgICAgICAgICAgY2FzZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6TGF5
ZXJDb250ZW50c1R5cGU6OklPU3VyZmFjZTogewotICAgICAgICAgICAgICAgIGF1dG8gc3VyZmFj
ZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKG1hY2hT
ZW5kUmlnaHQpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CisgICAg
ICAgICAgICAgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9t
U2VuZFJpZ2h0KFdURk1vdmUobWFjaFNlbmRSaWdodCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
U1JHQigpKTsKICAgICAgICAgICAgICAgICBjb250ZW50cyA9IHN1cmZhY2UgPyBzdXJmYWNlLT5h
c0xheWVyQ29udGVudHMoKSA6IG5pbDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTYxNCw3ICs2MTYsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjph
cHBseUJhY2tpbmdTdG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIExheWVyQ29udAogICAgIGxh
eWVyLmNvbnRlbnRzID0gY29udGVudHMuZ2V0KCk7CiB9CiAKLVZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6VGhyZWFkU2FmZUltYWdlQnVmZmVyRmx1c2hlcj4+IFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjp0YWtlUGVuZGluZ0ZsdXNoZXJzKCkKK1ZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
VGhyZWFkU2FmZUltYWdlQnVmZmVyRmx1c2hlcj4+IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjp0
YWtlUGVuZGluZ0ZsdXNoZXJzKCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVy
aW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZSAi
IDw8IG1fbGF5ZXItPmxheWVySUQoKSA8PCAiIHRha2VQZW5kaW5nRmx1c2hlcnMoKSIpOwogICAg
IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fZnJvbnRCdWZmZXJGbHVzaGVycywgeyB9KTsKQEAgLTYy
MiwyMiArNjI0LDIyIEBAIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGhyZWFkU2Fm
ZUltYWdlQnVmZmVyRmx1c2hlcj4+IFJlbW90ZUxheWVyQmFja2luCiAKIGJvb2wgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlclZvbGF0aWxlKEJ1ZmZlciYgYnVmZmVyKQogewotICAg
IGlmICghYnVmZmVyLmltYWdlQnVmZmVyIHx8IGJ1ZmZlci5pbWFnZUJ1ZmZlci0+dm9sYXRpbGl0
eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpWb2xhdGlsZSkKKyAgICBpZiAo
IWJ1ZmZlci5pbWFnZUJ1ZmZlciB8fCBidWZmZXIuaW1hZ2VCdWZmZXItPnZvbGF0aWxpdHlTdGF0
ZSgpID09IFZvbGF0aWxpdHlTdGF0ZTo6Vm9sYXRpbGUpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgYnVmZmVyLmltYWdlQnVmZmVyLT5yZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7CiAgICAg
cmV0dXJuIGJ1ZmZlci5pbWFnZUJ1ZmZlci0+c2V0Vm9sYXRpbGUoKTsKIH0KIAotV2ViQ29yZTo6
U2V0Tm9uVm9sYXRpbGVSZXN1bHQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlck5v
blZvbGF0aWxlKEJ1ZmZlciYgYnVmZmVyKQorU2V0Tm9uVm9sYXRpbGVSZXN1bHQgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlck5vblZvbGF0aWxlKEJ1ZmZlciYgYnVmZmVyKQogewot
ICAgIEFTU0VSVCghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVy
aW5nRm9yKFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2U6OkRPTSkpOworICAgIEFTU0VSVCghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKFJlbmRlcmlu
Z1B1cnBvc2U6OkRPTSkpOwogCiAgICAgaWYgKCFidWZmZXIuaW1hZ2VCdWZmZXIpCi0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdDo6VmFsaWQ7IC8vIE5vdCByZWFs
bHkgdmFsaWQgYnV0IHRoZSBjYWxsZXIgb25seSBjaGVja2VkIHRoZSBFbXB0eSBzdGF0ZS4KKyAg
ICAgICAgcmV0dXJuIFNldE5vblZvbGF0aWxlUmVzdWx0OjpWYWxpZDsgLy8gTm90IHJlYWxseSB2
YWxpZCBidXQgdGhlIGNhbGxlciBvbmx5IGNoZWNrZWQgdGhlIEVtcHR5IHN0YXRlLgogCi0gICAg
aWYgKGJ1ZmZlci5pbWFnZUJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9s
YXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSkKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNldE5v
blZvbGF0aWxlUmVzdWx0OjpWYWxpZDsKKyAgICBpZiAoYnVmZmVyLmltYWdlQnVmZmVyLT52b2xh
dGlsaXR5U3RhdGUoKSA9PSBWb2xhdGlsaXR5U3RhdGU6Ok5vblZvbGF0aWxlKQorICAgICAgICBy
ZXR1cm4gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwogCiAgICAgcmV0dXJuIGJ1ZmZlci5p
bWFnZUJ1ZmZlci0+c2V0Tm9uVm9sYXRpbGUoKTsKIH0KQEAgLTY2MSwxNSArNjYzLDE1IEBAIGJv
b2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlclZvbGF0aWxlKEJ1ZmZlclR5cGUg
YnVmZmVyVHlwZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViQ29yZTo6U2V0Tm9uVm9sYXRp
bGVSZXN1bHQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEZyb250QnVmZmVyTm9uVm9sYXRp
bGUoKQorU2V0Tm9uVm9sYXRpbGVSZXN1bHQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEZy
b250QnVmZmVyTm9uVm9sYXRpbGUoKQogewogICAgIGlmIChtX3R5cGUgIT0gVHlwZTo6SU9TdXJm
YWNlKQotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlk
OworICAgICAgICByZXR1cm4gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwogCiAgICAgcmV0
dXJuIHNldEJ1ZmZlck5vblZvbGF0aWxlKG1fZnJvbnRCdWZmZXIpOwogfQogCi1SZWZQdHI8V2Vi
Q29yZTo6SW1hZ2VCdWZmZXI+IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpidWZmZXJGb3JUeXBl
KEJ1ZmZlclR5cGUgYnVmZmVyVHlwZSkgY29uc3QKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OmJ1ZmZlckZvclR5cGUoQnVmZmVyVHlwZSBidWZmZXJUeXBlKSBj
b25zdAogewogICAgIHN3aXRjaCAoYnVmZmVyVHlwZSkgewogICAgIGNhc2UgQnVmZmVyVHlwZTo6
RnJvbnQ6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>