<?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>296162</bug_id>
          
          <creation_ts>2025-07-17 20:05:00 -0700</creation_ts>
          <short_desc>[Cleanup] shapeImageMarginRect should use helper function to convert physical to logical coordinates</short_desc>
          <delta_ts>2025-07-18 09:52:13 -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>New Bugs</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2131027</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-07-17 20:05:00 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2131028</commentid>
    <comment_count>1</comment_count>
      <attachid>476088</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-17 20:10:35 -0700</bug_when>
    <thetext>Created attachment 476088
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2131179</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-18 09:51:38 -0700</bug_when>
    <thetext>Committed 297599@main (41d71b159bb9): &lt;https://commits.webkit.org/297599@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476088.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2131180</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-18 09:52:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/156155465&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476088</attachid>
            <date>2025-07-17 20:10:35 -0700</date>
            <delta_ts>2025-07-18 09:51:40 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-296162-20250717201034.patch</filename>
            <type>text/plain</type>
            <size>13832</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2NzEyZmE5YzFkNzk5MTY4N2UzZDdhYmU3YjFmMGNhMWJlYTY3ZTgxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMTcgSnVsIDIwMjUgMjA6MDU6MDcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gc2hhcGVJbWFnZU1hcmdpblJlY3Qgc2hvdWxkIHVzZSBoZWxwZXIgZnVuY3Rpb24gdG8KIGNv
bnZlcnQgcGh5c2ljYWwgdG8gbG9naWNhbCBjb29yZGluYXRlcwogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjE2MgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgoxLiBNb3ZlIGV4aXN0aW5nLCBfYmxvY2tfIGRpcmVjdGlvbiBoZWxwZXIgZnVuY3Rpb25zIGFi
b3ZlIHNoYXBlSW1hZ2VNYXJnaW5SZWN0CjIuIEFkZCBhIGZldywgX2lubGluZV8gZGlyZWN0aW9u
IGhlbHBlciBmdW5jdGlvbnMgKGUuZy4gbWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0V2l0aFN0
eWxlRm9yV3JpdGluZ01vZGUpCjMuIFJlbmFtZSBnZXRTaGFwZUltYWdlTWFyZ2luUmVjdCB0byBz
aGFwZUltYWdlTWFyZ2luUmVjdAo0LiBVc2UgbmV3bHkgaW50cm9kdWNlZCBoZWxwZXJzIGluIHNo
YXBlSW1hZ2VNYXJnaW5SZWN0CgpObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcDoKKFdlYkNvcmU6
Om1hcmdpbkJvcmRlckFuZFBhZGRpbmdTdGFydFdpdGhTdHlsZUZvcldyaXRpbmdNb2RlKToKKFdl
YkNvcmU6Om1hcmdpbkJvcmRlckFuZFBhZGRpbmdCZWZvcmVXaXRoU3R5bGVGb3JXcml0aW5nTW9k
ZSk6CihXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjppbnZhbGlkYXRlRm9yU2l6ZUNoYW5nZUlm
TmVlZGVkKToKKFdlYkNvcmU6OnNoYXBlSW1hZ2VNYXJnaW5SZWN0KToKKFdlYkNvcmU6Om1ha2VT
aGFwZUZvclNoYXBlT3V0c2lkZSk6CihXZWJDb3JlOjpjaGVja1NoYXBlSW1hZ2VPcmlnaW4pOgoo
V2ViQ29yZTo6U2hhcGVPdXRzaWRlSW5mbzo6Y29tcHV0ZWRTaGFwZSBjb25zdCk6CihXZWJDb3Jl
OjpnZXRTaGFwZUltYWdlTWFyZ2luUmVjdCk6IERlbGV0ZWQuCi0tLQogLi4uL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAgICAgIHwgMjI4ICsrKysrKysrKy0tLS0tLS0tLQog
MSBmaWxlIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAxMDggZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKaW5kZXggOWYwNGU0N2RkMGU2Li4xODdhZDIwZjFlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcApAQCAtMTA2LDEx
NCArMTA2LDYgQEAgc3RhdGljIExheW91dFNpemUgY29tcHV0ZUxvZ2ljYWxCb3hTaXplKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyZXIsIGJvb2wgaXNIb3Jpem8KICAgICByZXR1cm4gc2l6ZTsKIH0K
IAotdm9pZCBTaGFwZU91dHNpZGVJbmZvOjppbnZhbGlkYXRlRm9yU2l6ZUNoYW5nZUlmTmVlZGVk
KCkKLXsKLSAgICBhdXRvIG5ld1NpemUgPSBjb21wdXRlTG9naWNhbEJveFNpemUobV9yZW5kZXJl
ciwgbV9yZW5kZXJlci5jb250YWluaW5nQmxvY2soKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSk7Ci0gICAgaWYgKG1fY2FjaGVkU2hhcGVMb2dpY2FsU2l6ZSA9PSBuZXdTaXplKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtYXJrU2hhcGVBc0RpcnR5KCk7Ci0gICAgbV9jYWNoZWRTaGFwZUxv
Z2ljYWxTaXplID0gbmV3U2l6ZTsKLX0KLQotc3RhdGljIExheW91dFJlY3QgZ2V0U2hhcGVJbWFn
ZU1hcmdpblJlY3QoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIGNvbnN0IExheW91dFNpemUm
IHJlZmVyZW5jZUJveExvZ2ljYWxTaXplKQotewotICAgIExheW91dFBvaW50IG1hcmdpbkJveE9y
aWdpbigtcmVuZGVyQm94Lm1hcmdpbkxvZ2ljYWxMZWZ0KCkgLSByZW5kZXJCb3guYm9yZGVyQW5k
UGFkZGluZ0xvZ2ljYWxMZWZ0KCksIC1yZW5kZXJCb3gubWFyZ2luQmVmb3JlKCkgLSByZW5kZXJC
b3guYm9yZGVyQmVmb3JlKCkgLSByZW5kZXJCb3gucGFkZGluZ0JlZm9yZSgpKTsKLSAgICBMYXlv
dXRTaXplIG1hcmdpbkJveFNpemVEZWx0YShyZW5kZXJCb3gubWFyZ2luTG9naWNhbFdpZHRoKCkg
KyByZW5kZXJCb3guYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpLCByZW5kZXJCb3gubWFy
Z2luTG9naWNhbEhlaWdodCgpICsgcmVuZGVyQm94LmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVp
Z2h0KCkpOwotICAgIExheW91dFNpemUgbWFyZ2luUmVjdFNpemUocmVmZXJlbmNlQm94TG9naWNh
bFNpemUgKyBtYXJnaW5Cb3hTaXplRGVsdGEpOwotICAgIG1hcmdpblJlY3RTaXplLmNsYW1wTmVn
YXRpdmVUb1plcm8oKTsKLSAgICByZXR1cm4gTGF5b3V0UmVjdChtYXJnaW5Cb3hPcmlnaW4sIG1h
cmdpblJlY3RTaXplKTsKLX0KLQotUmVmPGNvbnN0IExheW91dFNoYXBlPiBtYWtlU2hhcGVGb3JT
aGFwZU91dHNpZGUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKLXsKLSAgICBhdXRvJiBzdHls
ZSA9IHJlbmRlcmVyLnN0eWxlKCk7Ci0gICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gKnJlbmRl
cmVyLmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGF1dG8gd3JpdGluZ01vZGUgPSBjb250YWluaW5n
QmxvY2suc3R5bGUoKS53cml0aW5nTW9kZSgpOwotICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUgPSBjb250YWluaW5nQmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKLSAgICBm
bG9hdCBzaGFwZUltYWdlVGhyZXNob2xkID0gc3R5bGUuc2hhcGVJbWFnZVRocmVzaG9sZCgpOwot
ICAgIGF1dG8mIHNoYXBlVmFsdWUgPSAqc3R5bGUuc2hhcGVPdXRzaWRlKCk7Ci0KLSAgICBhdXRv
IGJveFNpemUgPSBjb21wdXRlTG9naWNhbEJveFNpemUocmVuZGVyZXIsIGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKTsKLQotICAgIGF1dG8gbWFyZ2luID0gWyZdIHsKLSAgICAgICAgYXV0byBzaGFw
ZU1hcmdpbiA9IGZsb2F0VmFsdWVGb3JMZW5ndGgoc3R5bGUuc2hhcGVNYXJnaW4oKSwgY29udGFp
bmluZ0Jsb2NrLmNvbnRlbnRCb3hXaWR0aCgpKTsKLSAgICAgICAgcmV0dXJuIGlzbmFuKHNoYXBl
TWFyZ2luKSA/IDAuMGYgOiBzaGFwZU1hcmdpbjsKLSAgICB9KCk7Ci0KLQotICAgIHN3aXRjaCAo
c2hhcGVWYWx1ZS50eXBlKCkpIHsKLSAgICBjYXNlIFNoYXBlVmFsdWU6OlR5cGU6OlNoYXBlOiB7
Ci0gICAgICAgIEFTU0VSVChzaGFwZVZhbHVlLnNoYXBlKCkpOwotICAgICAgICBhdXRvIG9mZnNl
dCA9IExheW91dFBvaW50IHsgbG9naWNhbExlZnRPZmZzZXQocmVuZGVyZXIpLCBsb2dpY2FsVG9w
T2Zmc2V0KHJlbmRlcmVyKSB9OwotICAgICAgICByZXR1cm4gTGF5b3V0U2hhcGU6OmNyZWF0ZVNo
YXBlKCpzaGFwZVZhbHVlLnNoYXBlKCksIG9mZnNldCwgYm94U2l6ZSwgd3JpdGluZ01vZGUsIG1h
cmdpbik7Ci0gICAgfQotICAgIGNhc2UgU2hhcGVWYWx1ZTo6VHlwZTo6SW1hZ2U6IHsKLSAgICAg
ICAgQVNTRVJUKHNoYXBlVmFsdWUuaXNJbWFnZVZhbGlkKCkpOwotICAgICAgICBhdXRvKiBzdHls
ZUltYWdlID0gc2hhcGVWYWx1ZS5pbWFnZSgpOwotICAgICAgICBhdXRvIGltYWdlU2l6ZSA9IHJl
bmRlcmVyLmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhzdHlsZUltYWdlLCBib3hT
aXplLCBSZW5kZXJJbWFnZTo6U2NhbGVCeVVzZWRab29tOjpZZXMpOwotICAgICAgICBzdHlsZUlt
YWdlLT5zZXRDb250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIocmVuZGVyZXIsIGltYWdlU2l6ZSwg
c3R5bGUudXNlZFpvb20oKSk7Ci0KLSAgICAgICAgYXV0byBtYXJnaW5SZWN0ID0gZ2V0U2hhcGVJ
bWFnZU1hcmdpblJlY3QocmVuZGVyZXIsIGJveFNpemUpOwotICAgICAgICBhdXRvKiByZW5kZXJJ
bWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpOwotICAgICAgICBh
dXRvIGltYWdlUmVjdCA9IHJlbmRlckltYWdlID8gcmVuZGVySW1hZ2UtPnJlcGxhY2VkQ29udGVu
dFJlY3QoKSA6IExheW91dFJlY3QgeyB7IH0sIGltYWdlU2l6ZSB9OwotCi0gICAgICAgIEFTU0VS
VCghc3R5bGVJbWFnZS0+aXNQZW5kaW5nKCkpOwotICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdl
ID0gc3R5bGVJbWFnZS0+aW1hZ2UoY29uc3RfY2FzdDxSZW5kZXJCb3gqPigmcmVuZGVyZXIpLCBp
bWFnZVNpemUpOwotICAgICAgICByZXR1cm4gTGF5b3V0U2hhcGU6OmNyZWF0ZVJhc3RlclNoYXBl
KGltYWdlLmdldCgpLCBzaGFwZUltYWdlVGhyZXNob2xkLCBpbWFnZVJlY3QsIG1hcmdpblJlY3Qs
IHdyaXRpbmdNb2RlLCBtYXJnaW4pOwotICAgIH0KLSAgICBjYXNlIFNoYXBlVmFsdWU6OlR5cGU6
OkJveDogewotICAgICAgICBhdXRvIHNoYXBlUmVjdCA9IGNvbXB1dGVSb3VuZGVkUmVjdEZvckJv
eFNoYXBlKHNoYXBlVmFsdWUuZWZmZWN0aXZlQ1NTQm94KCksIHJlbmRlcmVyKTsKLSAgICAgICAg
YXV0byBmbGlwRm9yV3JpdGluZ0FuZElubGluZURpcmVjdGlvbiA9IFsmXSB7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIHRoaXMgbW92aW5nIHRvIExheW91dFJvdW5k
ZWRSZWN0Ojp0cmFuc3Bvc2VkUmVjdC4KLSAgICAgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUpIHsKLSAgICAgICAgICAgICAgICBzaGFwZVJlY3QgPSBzaGFwZVJlY3QudHJhbnNw
b3NlZFJlY3QoKTsKLSAgICAgICAgICAgICAgICBhdXRvIHJhZGlpRm9yQmxvY2tEaXJlY3Rpb24g
PSBzaGFwZVJlY3QucmFkaWkoKTsKLSAgICAgICAgICAgICAgICBpZiAod3JpdGluZ01vZGUuaXNM
aW5lT3ZlckxlZnQoKSkgLy8gc2lkZXdheXMtbHIKLSAgICAgICAgICAgICAgICAgICAgc2hhcGVS
ZWN0LnNldFJhZGlpKHsgcmFkaWlGb3JCbG9ja0RpcmVjdGlvbi5ib3R0b21MZWZ0KCksIHJhZGlp
Rm9yQmxvY2tEaXJlY3Rpb24udG9wTGVmdCgpLCByYWRpaUZvckJsb2NrRGlyZWN0aW9uLmJvdHRv
bVJpZ2h0KCksIHJhZGlpRm9yQmxvY2tEaXJlY3Rpb24udG9wUmlnaHQoKSB9KTsKLSAgICAgICAg
ICAgICAgICBlbHNlIGlmICh3cml0aW5nTW9kZS5pc0Jsb2NrTGVmdFRvUmlnaHQoKSkgLy8gdmVy
dGljYWwtbHIKLSAgICAgICAgICAgICAgICAgICAgc2hhcGVSZWN0LnNldFJhZGlpKHsgcmFkaWlG
b3JCbG9ja0RpcmVjdGlvbi50b3BMZWZ0KCksIHJhZGlpRm9yQmxvY2tEaXJlY3Rpb24uYm90dG9t
TGVmdCgpLCByYWRpaUZvckJsb2NrRGlyZWN0aW9uLnRvcFJpZ2h0KCksIHJhZGlpRm9yQmxvY2tE
aXJlY3Rpb24uYm90dG9tUmlnaHQoKSB9KTsKLSAgICAgICAgICAgICAgICBlbHNlIC8vIHZlcnRp
Y2FsLXJsLCBzaWRld2F5cy1ybAotICAgICAgICAgICAgICAgICAgICBzaGFwZVJlY3Quc2V0UmFk
aWkoeyByYWRpaUZvckJsb2NrRGlyZWN0aW9uLnRvcFJpZ2h0KCksIHJhZGlpRm9yQmxvY2tEaXJl
Y3Rpb24uYm90dG9tUmlnaHQoKSwgcmFkaWlGb3JCbG9ja0RpcmVjdGlvbi50b3BMZWZ0KCksIHJh
ZGlpRm9yQmxvY2tEaXJlY3Rpb24uYm90dG9tTGVmdCgpIH0pOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKHdyaXRpbmdNb2RlLmlzQmlkaVJUTCgpKSB7Ci0gICAgICAgICAgICAgICAg
YXV0byByYWRpaSA9IHNoYXBlUmVjdC5yYWRpaSgpOwotICAgICAgICAgICAgICAgIHNoYXBlUmVj
dC5zZXRSYWRpaSh7IHJhZGlpLnRvcFJpZ2h0KCksIHJhZGlpLnRvcExlZnQoKSwgcmFkaWkuYm90
dG9tUmlnaHQoKSwgcmFkaWkuYm90dG9tTGVmdCgpIH0pOwotICAgICAgICAgICAgfQotICAgICAg
ICB9OwotICAgICAgICBmbGlwRm9yV3JpdGluZ0FuZElubGluZURpcmVjdGlvbigpOwotICAgICAg
ICByZXR1cm4gTGF5b3V0U2hhcGU6OmNyZWF0ZUJveFNoYXBlKHNoYXBlUmVjdCwgd3JpdGluZ01v
ZGUsIG1hcmdpbik7Ci0gICAgfQotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gTGF5b3V0U2hhcGU6OmNyZWF0ZUJveFNoYXBlKExheW91dFJvdW5kZWRSZWN0IHsg
eyB9IH0sIHdyaXRpbmdNb2RlLCAwKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGNoZWNrU2hh
cGVJbWFnZU9yaWdpbihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0eWxlSW1hZ2UmIHN0eWxl
SW1hZ2UpCi17Ci0gICAgaWYgKHN0eWxlSW1hZ2UuaXNHZW5lcmF0ZWRJbWFnZSgpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgIEFTU0VSVChzdHlsZUltYWdlLmNhY2hlZEltYWdlKCkpOwot
ICAgIENhY2hlZEltYWdlJiBjYWNoZWRJbWFnZSA9ICooc3R5bGVJbWFnZS5jYWNoZWRJbWFnZSgp
KTsKLSAgICBpZiAoY2FjaGVkSW1hZ2UuaXNPcmlnaW5DbGVhbigmZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgY29uc3QgVVJMJiB1cmwgPSBj
YWNoZWRJbWFnZS51cmwoKTsKLSAgICBTdHJpbmcgdXJsU3RyaW5nID0gdXJsLmlzTnVsbCgpID8g
IicnIl9zIDogdXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpOwotICAgIGRvY3Vt
ZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiX3MsIHVy
bFN0cmluZywgJy4nKSk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWNvbnN0IExheW91dFNo
YXBlJiBTaGFwZU91dHNpZGVJbmZvOjpjb21wdXRlZFNoYXBlKCkgY29uc3QKLXsKLSAgICBpZiAo
IW1fc2hhcGUpCi0gICAgICAgIG1fc2hhcGUgPSBtYWtlU2hhcGVGb3JTaGFwZU91dHNpZGUobV9y
ZW5kZXJlcik7Ci0KLSAgICByZXR1cm4gKm1fc2hhcGU7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgTGF5
b3V0VW5pdCBib3JkZXJCZWZvcmVJbldyaXRpbmdNb2RlKGNvbnN0IFJlbmRlckJveCYgcmVuZGVy
ZXIsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHN3aXRjaCAod3JpdGluZ01vZGUu
YmxvY2tEaXJlY3Rpb24oKSkgewpAQCAtMjkzLDYgKzE4NSwxNiBAQCBzdGF0aWMgaW5saW5lIExh
eW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZ1N0YXJ0V2l0aFN0eWxlRm9yV3JpdGluZ01vZGUoY29u
c3QgUmVuZAogICAgIHJldHVybiByZW5kZXJlci5ib3JkZXJCb3R0b20oKSArIHJlbmRlcmVyLnBh
ZGRpbmdCb3R0b20oKTsKIH0KIAorc3RhdGljIGlubGluZSBMYXlvdXRVbml0IG1hcmdpbkJvcmRl
ckFuZFBhZGRpbmdTdGFydFdpdGhTdHlsZUZvcldyaXRpbmdNb2RlKGNvbnN0IFJlbmRlckJveCYg
cmVuZGVyZXIsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQoreworICAgIHJldHVybiAod3JpdGlu
Z01vZGUuaXNIb3Jpem9udGFsKCkgPyByZW5kZXJlci5tYXJnaW5MZWZ0KCkgOiByZW5kZXJlci5t
YXJnaW5Ub3AoKSkgKyBib3JkZXJBbmRQYWRkaW5nU3RhcnRXaXRoU3R5bGVGb3JXcml0aW5nTW9k
ZShyZW5kZXJlciwgd3JpdGluZ01vZGUpOworfQorCitzdGF0aWMgaW5saW5lIExheW91dFVuaXQg
bWFyZ2luQm9yZGVyQW5kUGFkZGluZ0JlZm9yZVdpdGhTdHlsZUZvcldyaXRpbmdNb2RlKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyZXIsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQoreworICAgIHJl
dHVybiAod3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyByZW5kZXJlci5tYXJnaW5Ub3AoKSA6
IHJlbmRlcmVyLm1hcmdpblJpZ2h0KCkpICsgYm9yZGVyQW5kUGFkZGluZ0JlZm9yZUluV3JpdGlu
Z01vZGUocmVuZGVyZXIsIHdyaXRpbmdNb2RlKTsKK30KKwogc3RhdGljIExheW91dFVuaXQgbG9n
aWNhbExlZnRPZmZzZXQoY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKIHsKICAgICBpZiAocmVu
ZGVyZXIuaXNSZW5kZXJGcmFnbWVudENvbnRhaW5lcigpKQpAQCAtMzIxLDYgKzIyMywxMTYgQEAg
c3RhdGljIExheW91dFVuaXQgbG9naWNhbExlZnRPZmZzZXQoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJlcikKICAgICByZXR1cm4gMF9sdTsKIH0KIAordm9pZCBTaGFwZU91dHNpZGVJbmZvOjppbnZh
bGlkYXRlRm9yU2l6ZUNoYW5nZUlmTmVlZGVkKCkKK3sKKyAgICBhdXRvIG5ld1NpemUgPSBjb21w
dXRlTG9naWNhbEJveFNpemUobV9yZW5kZXJlciwgbV9yZW5kZXJlci5jb250YWluaW5nQmxvY2so
KS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CisgICAgaWYgKG1fY2FjaGVkU2hhcGVMb2dp
Y2FsU2l6ZSA9PSBuZXdTaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtYXJrU2hhcGVBc0Rp
cnR5KCk7CisgICAgbV9jYWNoZWRTaGFwZUxvZ2ljYWxTaXplID0gbmV3U2l6ZTsKK30KKworc3Rh
dGljIExheW91dFJlY3Qgc2hhcGVJbWFnZU1hcmdpblJlY3QoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJCb3gsIGNvbnN0IExheW91dFNpemUmIHJlZmVyZW5jZUJveExvZ2ljYWxTaXplKQoreworICAg
IGF1dG8gd3JpdGluZ01vZGUgPSByZW5kZXJCb3guY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdN
b2RlKCk7CisgICAgYXV0byBtYXJnaW5Cb3hPZmZzZXRGcm9tQ29udGVudEJveCA9IExheW91dFBv
aW50IHsgLW1hcmdpbkJvcmRlckFuZFBhZGRpbmdTdGFydFdpdGhTdHlsZUZvcldyaXRpbmdNb2Rl
KHJlbmRlckJveCwgd3JpdGluZ01vZGUpLCAtbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0JlZm9yZVdp
dGhTdHlsZUZvcldyaXRpbmdNb2RlKHJlbmRlckJveCwgd3JpdGluZ01vZGUpIH07CisgICAgYXV0
byBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nU2l6ZSA9IExheW91dFNpemUgeyByZW5kZXJCb3gubWFy
Z2luTG9naWNhbFdpZHRoKCkgKyByZW5kZXJCb3guYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0
aCgpLCByZW5kZXJCb3gubWFyZ2luTG9naWNhbEhlaWdodCgpICsgcmVuZGVyQm94LmJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgfTsKKworICAgIGF1dG8gbWFyZ2luUmVjdFNpemUgPSBM
YXlvdXRTaXplIHsgcmVmZXJlbmNlQm94TG9naWNhbFNpemUgKyBtYXJnaW5Cb3JkZXJBbmRQYWRk
aW5nU2l6ZSB9OworICAgIG1hcmdpblJlY3RTaXplLmNsYW1wTmVnYXRpdmVUb1plcm8oKTsKKyAg
ICByZXR1cm4gTGF5b3V0UmVjdChtYXJnaW5Cb3hPZmZzZXRGcm9tQ29udGVudEJveCwgbWFyZ2lu
UmVjdFNpemUpOworfQorCitSZWY8Y29uc3QgTGF5b3V0U2hhcGU+IG1ha2VTaGFwZUZvclNoYXBl
T3V0c2lkZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyKQoreworICAgIGF1dG8mIHN0eWxlID0g
cmVuZGVyZXIuc3R5bGUoKTsKKyAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSAqcmVuZGVyZXIu
Y29udGFpbmluZ0Jsb2NrKCk7CisgICAgYXV0byB3cml0aW5nTW9kZSA9IGNvbnRhaW5pbmdCbG9j
ay5zdHlsZSgpLndyaXRpbmdNb2RlKCk7CisgICAgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSA9IGNvbnRhaW5pbmdCbG9jay5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgIGZsb2F0
IHNoYXBlSW1hZ2VUaHJlc2hvbGQgPSBzdHlsZS5zaGFwZUltYWdlVGhyZXNob2xkKCk7CisgICAg
YXV0byYgc2hhcGVWYWx1ZSA9ICpzdHlsZS5zaGFwZU91dHNpZGUoKTsKKworICAgIGF1dG8gYm94
U2l6ZSA9IGNvbXB1dGVMb2dpY2FsQm94U2l6ZShyZW5kZXJlciwgaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUpOworCisgICAgYXV0byBtYXJnaW4gPSBbJl0geworICAgICAgICBhdXRvIHNoYXBlTWFy
Z2luID0gZmxvYXRWYWx1ZUZvckxlbmd0aChzdHlsZS5zaGFwZU1hcmdpbigpLCBjb250YWluaW5n
QmxvY2suY29udGVudEJveFdpZHRoKCkpOworICAgICAgICByZXR1cm4gaXNuYW4oc2hhcGVNYXJn
aW4pID8gMC4wZiA6IHNoYXBlTWFyZ2luOworICAgIH0oKTsKKworCisgICAgc3dpdGNoIChzaGFw
ZVZhbHVlLnR5cGUoKSkgeworICAgIGNhc2UgU2hhcGVWYWx1ZTo6VHlwZTo6U2hhcGU6IHsKKyAg
ICAgICAgQVNTRVJUKHNoYXBlVmFsdWUuc2hhcGUoKSk7CisgICAgICAgIGF1dG8gb2Zmc2V0ID0g
TGF5b3V0UG9pbnQgeyBsb2dpY2FsTGVmdE9mZnNldChyZW5kZXJlciksIGxvZ2ljYWxUb3BPZmZz
ZXQocmVuZGVyZXIpIH07CisgICAgICAgIHJldHVybiBMYXlvdXRTaGFwZTo6Y3JlYXRlU2hhcGUo
KnNoYXBlVmFsdWUuc2hhcGUoKSwgb2Zmc2V0LCBib3hTaXplLCB3cml0aW5nTW9kZSwgbWFyZ2lu
KTsKKyAgICB9CisgICAgY2FzZSBTaGFwZVZhbHVlOjpUeXBlOjpJbWFnZTogeworICAgICAgICBB
U1NFUlQoc2hhcGVWYWx1ZS5pc0ltYWdlVmFsaWQoKSk7CisgICAgICAgIGF1dG8qIHN0eWxlSW1h
Z2UgPSBzaGFwZVZhbHVlLmltYWdlKCk7CisgICAgICAgIGF1dG8gaW1hZ2VTaXplID0gcmVuZGVy
ZXIuY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGJveFNpemUs
IFJlbmRlckltYWdlOjpTY2FsZUJ5VXNlZFpvb206Olllcyk7CisgICAgICAgIHN0eWxlSW1hZ2Ut
PnNldENvbnRhaW5lckNvbnRleHRGb3JSZW5kZXJlcihyZW5kZXJlciwgaW1hZ2VTaXplLCBzdHls
ZS51c2VkWm9vbSgpKTsKKworICAgICAgICBhdXRvIG1hcmdpblJlY3QgPSBzaGFwZUltYWdlTWFy
Z2luUmVjdChyZW5kZXJlciwgYm94U2l6ZSk7CisgICAgICAgIGF1dG8qIHJlbmRlckltYWdlID0g
ZHluYW1pY0Rvd25jYXN0PFJlbmRlckltYWdlPihyZW5kZXJlcik7CisgICAgICAgIGF1dG8gaW1h
Z2VSZWN0ID0gcmVuZGVySW1hZ2UgPyByZW5kZXJJbWFnZS0+cmVwbGFjZWRDb250ZW50UmVjdCgp
IDogTGF5b3V0UmVjdCB7IHsgfSwgaW1hZ2VTaXplIH07CisKKyAgICAgICAgQVNTRVJUKCFzdHls
ZUltYWdlLT5pc1BlbmRpbmcoKSk7CisgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBzdHls
ZUltYWdlLT5pbWFnZShjb25zdF9jYXN0PFJlbmRlckJveCo+KCZyZW5kZXJlciksIGltYWdlU2l6
ZSk7CisgICAgICAgIHJldHVybiBMYXlvdXRTaGFwZTo6Y3JlYXRlUmFzdGVyU2hhcGUoaW1hZ2Uu
Z2V0KCksIHNoYXBlSW1hZ2VUaHJlc2hvbGQsIGltYWdlUmVjdCwgbWFyZ2luUmVjdCwgd3JpdGlu
Z01vZGUsIG1hcmdpbik7CisgICAgfQorICAgIGNhc2UgU2hhcGVWYWx1ZTo6VHlwZTo6Qm94OiB7
CisgICAgICAgIGF1dG8gc2hhcGVSZWN0ID0gY29tcHV0ZVJvdW5kZWRSZWN0Rm9yQm94U2hhcGUo
c2hhcGVWYWx1ZS5lZmZlY3RpdmVDU1NCb3goKSwgcmVuZGVyZXIpOworICAgICAgICBhdXRvIGZs
aXBGb3JXcml0aW5nQW5kSW5saW5lRGlyZWN0aW9uID0gWyZdIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgY29uc2lkZXIgdGhpcyBtb3ZpbmcgdG8gTGF5b3V0Um91bmRlZFJlY3Q6
OnRyYW5zcG9zZWRSZWN0LgorICAgICAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9k
ZSkgeworICAgICAgICAgICAgICAgIHNoYXBlUmVjdCA9IHNoYXBlUmVjdC50cmFuc3Bvc2VkUmVj
dCgpOworICAgICAgICAgICAgICAgIGF1dG8gcmFkaWlGb3JCbG9ja0RpcmVjdGlvbiA9IHNoYXBl
UmVjdC5yYWRpaSgpOworICAgICAgICAgICAgICAgIGlmICh3cml0aW5nTW9kZS5pc0xpbmVPdmVy
TGVmdCgpKSAvLyBzaWRld2F5cy1scgorICAgICAgICAgICAgICAgICAgICBzaGFwZVJlY3Quc2V0
UmFkaWkoeyByYWRpaUZvckJsb2NrRGlyZWN0aW9uLmJvdHRvbUxlZnQoKSwgcmFkaWlGb3JCbG9j
a0RpcmVjdGlvbi50b3BMZWZ0KCksIHJhZGlpRm9yQmxvY2tEaXJlY3Rpb24uYm90dG9tUmlnaHQo
KSwgcmFkaWlGb3JCbG9ja0RpcmVjdGlvbi50b3BSaWdodCgpIH0pOworICAgICAgICAgICAgICAg
IGVsc2UgaWYgKHdyaXRpbmdNb2RlLmlzQmxvY2tMZWZ0VG9SaWdodCgpKSAvLyB2ZXJ0aWNhbC1s
cgorICAgICAgICAgICAgICAgICAgICBzaGFwZVJlY3Quc2V0UmFkaWkoeyByYWRpaUZvckJsb2Nr
RGlyZWN0aW9uLnRvcExlZnQoKSwgcmFkaWlGb3JCbG9ja0RpcmVjdGlvbi5ib3R0b21MZWZ0KCks
IHJhZGlpRm9yQmxvY2tEaXJlY3Rpb24udG9wUmlnaHQoKSwgcmFkaWlGb3JCbG9ja0RpcmVjdGlv
bi5ib3R0b21SaWdodCgpIH0pOworICAgICAgICAgICAgICAgIGVsc2UgLy8gdmVydGljYWwtcmws
IHNpZGV3YXlzLXJsCisgICAgICAgICAgICAgICAgICAgIHNoYXBlUmVjdC5zZXRSYWRpaSh7IHJh
ZGlpRm9yQmxvY2tEaXJlY3Rpb24udG9wUmlnaHQoKSwgcmFkaWlGb3JCbG9ja0RpcmVjdGlvbi5i
b3R0b21SaWdodCgpLCByYWRpaUZvckJsb2NrRGlyZWN0aW9uLnRvcExlZnQoKSwgcmFkaWlGb3JC
bG9ja0RpcmVjdGlvbi5ib3R0b21MZWZ0KCkgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAod3JpdGluZ01vZGUuaXNCaWRpUlRMKCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJh
ZGlpID0gc2hhcGVSZWN0LnJhZGlpKCk7CisgICAgICAgICAgICAgICAgc2hhcGVSZWN0LnNldFJh
ZGlpKHsgcmFkaWkudG9wUmlnaHQoKSwgcmFkaWkudG9wTGVmdCgpLCByYWRpaS5ib3R0b21SaWdo
dCgpLCByYWRpaS5ib3R0b21MZWZ0KCkgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07Cisg
ICAgICAgIGZsaXBGb3JXcml0aW5nQW5kSW5saW5lRGlyZWN0aW9uKCk7CisgICAgICAgIHJldHVy
biBMYXlvdXRTaGFwZTo6Y3JlYXRlQm94U2hhcGUoc2hhcGVSZWN0LCB3cml0aW5nTW9kZSwgbWFy
Z2luKTsKKyAgICB9CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBMYXlvdXRTaGFwZTo6Y3JlYXRlQm94U2hhcGUoTGF5b3V0Um91bmRlZFJlY3QgeyB7IH0gfSwg
d3JpdGluZ01vZGUsIDApOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tTaGFwZUltYWdl
T3JpZ2luKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3R5bGVJbWFnZSYgc3R5bGVJbWFnZSkK
K3sKKyAgICBpZiAoc3R5bGVJbWFnZS5pc0dlbmVyYXRlZEltYWdlKCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgQVNTRVJUKHN0eWxlSW1hZ2UuY2FjaGVkSW1hZ2UoKSk7CisgICAgQ2Fj
aGVkSW1hZ2UmIGNhY2hlZEltYWdlID0gKihzdHlsZUltYWdlLmNhY2hlZEltYWdlKCkpOworICAg
IGlmIChjYWNoZWRJbWFnZS5pc09yaWdpbkNsZWFuKCZkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjb25zdCBVUkwmIHVybCA9IGNhY2hlZElt
YWdlLnVybCgpOworICAgIFN0cmluZyB1cmxTdHJpbmcgPSB1cmwuaXNOdWxsKCkgPyAiJyciX3Mg
OiB1cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCk7CisgICAgZG9jdW1lbnQuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsIG1ha2VTdHJpbmcoIlVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMICJfcywgdXJsU3RyaW5n
LCAnLicpKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworY29uc3QgTGF5b3V0U2hhcGUmIFNo
YXBlT3V0c2lkZUluZm86OmNvbXB1dGVkU2hhcGUoKSBjb25zdAoreworICAgIGlmICghbV9zaGFw
ZSkKKyAgICAgICAgbV9zaGFwZSA9IG1ha2VTaGFwZUZvclNoYXBlT3V0c2lkZShtX3JlbmRlcmVy
KTsKKworICAgIHJldHVybiAqbV9zaGFwZTsKK30KKwogYm9vbCBTaGFwZU91dHNpZGVJbmZvOjpp
c0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94JiBib3gpCiB7CiAgICAgU2hhcGVWYWx1ZSogc2hh
cGVWYWx1ZSA9IGJveC5zdHlsZSgpLnNoYXBlT3V0c2lkZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>