<?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>246099</bug_id>
          
          <creation_ts>2022-10-05 11:57:54 -0700</creation_ts>
          <short_desc>[Outline] Move inline-box outline painting logic under BorderPainter</short_desc>
          <delta_ts>2022-10-12 15:29:55 -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>Layout and Rendering</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>
          
          <blocked>20807</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1903483</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-05 11:57:54 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903485</commentid>
    <comment_count>1</comment_count>
      <attachid>462814</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-05 12:01:44 -0700</bug_when>
    <thetext>Created attachment 462814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904085</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-07 10:47:38 -0700</bug_when>
    <thetext>Committed 255280@main (ac4cebfbe41a): &lt;https://commits.webkit.org/255280@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 462814.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904088</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-07 10:48:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/100904478&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462814</attachid>
            <date>2022-10-05 12:01:44 -0700</date>
            <delta_ts>2022-10-07 10:47:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246099-20221005120143.patch</filename>
            <type>text/plain</type>
            <size>19609</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4ZmRlNWZiNTJhZjk4MDc1ODNjY2NmYmFjYmJiZGRhODIyMjU4YTU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDUgT2N0IDIwMjIgMTE6NTg6MDcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
TW92ZSBpbmxpbmUtYm94IG91dGxpbmUgcGFpbnRpbmcgbG9naWMgdW5kZXIKIEJvcmRlclBhaW50
ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NjA5OQoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0
aW5nIG91dGxpbmUgd2l0aCBib3JkZXItcmFkaXVzLgoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQm9yZGVyUGFpbnRlci5jcHA6CihXZWJDb3JlOjpCb3JkZXJQYWludGVyOjpwYWludE91dGxp
bmUpOgooV2ViQ29yZTo6Qm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lRm9yTGluZSk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cGFpbnRP
dXRsaW5lKToKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lRm9yTGluZSk6IERl
bGV0ZWQuCi0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwIHwg
MTYwICsrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRl
clBhaW50ZXIuaCAgIHwgICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwICB8IDE1MyArLS0tLS0tLS0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oICAgIHwgICAyIC0KIDQgZmlsZXMgY2hhbmdlZCwgMTYzIGluc2Vy
dGlvbnMoKyksIDE1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9y
ZGVyUGFpbnRlci5jcHAKaW5kZXggNzExZDY2NzAxYTVhLi4wMTE1YmEwNmU1MzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAKQEAgLTI0OSw2ICsyNDksMTY2
IEBAIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lKGNvbnN0IExheW91dFJlY3QmIHBh
aW50UmVjdCkKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7
CiB9CiAKKwordm9pZCBCb3JkZXJQYWludGVyOjpwYWludE91dGxpbmUoY29uc3QgTGF5b3V0UG9p
bnQmIHBhaW50T2Zmc2V0LCBjb25zdCBWZWN0b3I8TGF5b3V0UmVjdD4mIGxpbmVSZWN0cykKK3sK
KyAgICBhdXRvJiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CisgICAg
YXV0byYgc3R5bGVUb1VzZSA9IG1fcmVuZGVyZXIuc3R5bGUoKTsKKyAgICBhdXRvIG91dGxpbmVD
b2xvciA9IHN0eWxlVG9Vc2UudmlzaXRlZERlcGVuZGVudENvbG9yV2l0aENvbG9yRmlsdGVyKENT
U1Byb3BlcnR5T3V0bGluZUNvbG9yKTsKKyAgICBib29sIHVzZVRyYW5zcGFyZW5jeUxheWVyID0g
IW91dGxpbmVDb2xvci5pc09wYXF1ZSgpOworICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikg
eworICAgICAgICBncmFwaGljc0NvbnRleHQuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihvdXRsaW5l
Q29sb3IuYWxwaGFBc0Zsb2F0KCkpOworICAgICAgICBvdXRsaW5lQ29sb3IgPSBvdXRsaW5lQ29s
b3Iub3BhcXVlQ29sb3IoKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGxp
bmVSZWN0cy5zaXplKCkgLSAxOyBpKyspCisgICAgICAgIHBhaW50T3V0bGluZUZvckxpbmUocGFp
bnRPZmZzZXQsIGxpbmVSZWN0c1tpIC0gMV0sIGxpbmVSZWN0c1tpXSwgbGluZVJlY3RzW2kgKyAx
XSwgb3V0bGluZUNvbG9yKTsKKworICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikKKyAgICAg
ICAgZ3JhcGhpY3NDb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9CisKK3ZvaWQgQm9y
ZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lRm9yTGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIHByZXZpb3VzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYg
Y3VycmVudExpbmUsIGNvbnN0IExheW91dFJlY3QmIG5leHRMaW5lLCBjb25zdCBDb2xvciYgb3V0
bGluZUNvbG9yKQoreworICAgIGF1dG8mIHN0eWxlVG9Vc2UgPSBtX3JlbmRlcmVyLnN0eWxlKCk7
CisgICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0gbV9wYWludEluZm8uY29udGV4dCgpOworCisg
ICAgZmxvYXQgb3V0bGluZU9mZnNldCA9IHN0eWxlVG9Vc2Uub3V0bGluZU9mZnNldCgpOworICAg
IExheW91dFJlY3Qgb3V0bGluZUJveFJlY3QgPSBjdXJyZW50TGluZTsKKyAgICBvdXRsaW5lQm94
UmVjdC5pbmZsYXRlKG91dGxpbmVPZmZzZXQpOworICAgIG91dGxpbmVCb3hSZWN0Lm1vdmVCeShw
YWludE9mZnNldCk7CisgICAgaWYgKG91dGxpbmVCb3hSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byYgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGZs
b2F0IG91dGxpbmVXaWR0aCA9IHN0eWxlVG9Vc2Uub3V0bGluZVdpZHRoKCk7CisgICAgQm9yZGVy
U3R5bGUgb3V0bGluZVN0eWxlID0gc3R5bGVUb1VzZS5vdXRsaW5lU3R5bGUoKTsKKyAgICBib29s
IGFudGlhbGlhcyA9IHNob3VsZEFudGlhbGlhc0xpbmVzKGdyYXBoaWNzQ29udGV4dCk7CisKKyAg
ICBhdXRvIGFkanVzdGVkUHJldmlvdXNMaW5lID0gcHJldmlvdXNMaW5lOworICAgIGFkanVzdGVk
UHJldmlvdXNMaW5lLm1vdmVCeShwYWludE9mZnNldCk7CisgICAgYXV0byBhZGp1c3RlZE5leHRM
aW5lID0gbmV4dExpbmU7CisgICAgYWRqdXN0ZWROZXh0TGluZS5tb3ZlQnkocGFpbnRPZmZzZXQp
OworICAgIAorICAgIGZsb2F0IGFkamFjZW50V2lkdGgxID0gMDsKKyAgICBmbG9hdCBhZGphY2Vu
dFdpZHRoMiA9IDA7CisgICAgLy8gbGVmdCBlZGdlCisgICAgYXV0byB0b3BMZWZ0ID0gb3V0bGlu
ZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKKyAgICBpZiAocHJldmlvdXNMaW5lLmlzRW1wdHko
KSB8fCBjdXJyZW50TGluZS54KCkgPCBwcmV2aW91c0xpbmUueCgpIHx8IChwcmV2aW91c0xpbmUu
bWF4WCgpKSA8PSBjdXJyZW50TGluZS54KCkpIHsKKyAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRs
aW5lV2lkdGgsIC1vdXRsaW5lV2lkdGgpOworICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxp
bmVXaWR0aDsKKyAgICB9IGVsc2UgeworICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0
aCwgMiAqIG91dGxpbmVPZmZzZXQpOworICAgICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRsaW5l
V2lkdGg7CisgICAgfQorICAgIGF1dG8gYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5taW5Y
TWF4WUNvcm5lcigpOworICAgIGlmIChuZXh0TGluZS5pc0VtcHR5KCkgfHwgY3VycmVudExpbmUu
eCgpIDw9IG5leHRMaW5lLngoKSB8fCAobmV4dExpbmUubWF4WCgpKSA8PSBjdXJyZW50TGluZS54
KCkpIHsKKyAgICAgICAgYm90dG9tUmlnaHQubW92ZSgwLCBvdXRsaW5lV2lkdGgpOworICAgICAg
ICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBi
b3R0b21SaWdodC5tb3ZlKDAsIC0yICogb3V0bGluZU9mZnNldCk7CisgICAgICAgIGFkamFjZW50
V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKKyAgICB9CisgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCks
IEJveFNpZGU6OkxlZnQsIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRo
MSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7CisgICAgCisgICAgLy8gcmlnaHQgZWRnZQor
ICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigpOworICAgIGlmIChw
cmV2aW91c0xpbmUuaXNFbXB0eSgpIHx8IHByZXZpb3VzTGluZS5tYXhYKCkgPCBjdXJyZW50TGlu
ZS5tYXhYKCkgfHwgY3VycmVudExpbmUubWF4WCgpIDw9IHByZXZpb3VzTGluZS54KCkpIHsKKyAg
ICAgICAgdG9wTGVmdC5tb3ZlKDAsIC1vdXRsaW5lV2lkdGgpOworICAgICAgICBhZGphY2VudFdp
ZHRoMSA9IG91dGxpbmVXaWR0aDsKKyAgICB9IGVsc2UgeworICAgICAgICB0b3BMZWZ0Lm1vdmUo
MCwgMiAqIG91dGxpbmVPZmZzZXQpOworICAgICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRsaW5l
V2lkdGg7CisgICAgfQorICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1heFlD
b3JuZXIoKTsKKyAgICBpZiAobmV4dExpbmUuaXNFbXB0eSgpIHx8IG5leHRMaW5lLm1heFgoKSA8
PSBjdXJyZW50TGluZS5tYXhYKCkgfHwgY3VycmVudExpbmUubWF4WCgpIDw9IG5leHRMaW5lLngo
KSkgeworICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRo
KTsKKyAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIC0yICogb3V0bGluZU9mZnNl
dCk7CisgICAgICAgIGFkamFjZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKKyAgICB9CisgICAg
ZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0
b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OlJpZ2h0LCBvdXRsaW5lQ29sb3IsIG91dGxp
bmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOworCisg
ICAgLy8gdXBwZXIgZWRnZQorICAgIGlmIChjdXJyZW50TGluZS54KCkgPCBwcmV2aW91c0xpbmUu
eCgpKSB7CisgICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5taW5YTWluWUNvcm5lcigp
OworICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwgLW91dGxpbmVXaWR0aCk7Cisg
ICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOworICAgICAgICBib3R0b21SaWdo
dCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29ybmVyKCk7CisgICAgICAgIGJvdHRvbVJpZ2h0
Lm1vdmUob3V0bGluZVdpZHRoLCAwKTsKKyAgICAgICAgaWYgKCFwcmV2aW91c0xpbmUuaXNFbXB0
eSgpICYmIGFkanVzdGVkUHJldmlvdXNMaW5lLngoKSA8IGJvdHRvbVJpZ2h0LngoKSkgeworICAg
ICAgICAgICAgYm90dG9tUmlnaHQuc2V0WChhZGp1c3RlZFByZXZpb3VzTGluZS54KCkgLSBvdXRs
aW5lT2Zmc2V0KTsKKyAgICAgICAgICAgIGFkamFjZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0
aDsKKyAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQs
IEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNv
bG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFs
aWFzKTsKKyAgICB9CisgICAgCisgICAgaWYgKHByZXZpb3VzTGluZS5tYXhYKCkgPCBjdXJyZW50
TGluZS5tYXhYKCkpIHsKKyAgICAgICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5Z
Q29ybmVyKCk7CisgICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdp
ZHRoKTsKKyAgICAgICAgaWYgKCFwcmV2aW91c0xpbmUuaXNFbXB0eSgpICYmIGFkanVzdGVkUHJl
dmlvdXNMaW5lLm1heFgoKSA+IHRvcExlZnQueCgpKSB7CisgICAgICAgICAgICB0b3BMZWZ0LnNl
dFgoYWRqdXN0ZWRQcmV2aW91c0xpbmUubWF4WCgpICsgb3V0bGluZU9mZnNldCk7CisgICAgICAg
ICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRsaW5lV2lkdGg7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7CisgICAgICAgIGJvdHRvbVJp
Z2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllDb3JuZXIoKTsKKyAgICAgICAgYm90dG9tUmln
aHQubW92ZShvdXRsaW5lV2lkdGgsIDApOworICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxp
bmVXaWR0aDsKKyAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9j
dW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OlRvcCwgb3V0
bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwg
YW50aWFsaWFzKTsKKyAgICB9CisKKyAgICBpZiAoY3VycmVudExpbmUueCgpID09IGN1cnJlbnRM
aW5lLm1heFgoKSkgeworICAgICAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWluWE1pbllD
b3JuZXIoKTsKKyAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIC1vdXRsaW5lV2lk
dGgpOworICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKKyAgICAgICAgYm90
dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigpOworICAgICAgICBib3R0
b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgMCk7CisgICAgICAgIGFkamFjZW50V2lkdGgyID0g
b3V0bGluZVdpZHRoOworICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0
LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6VG9w
LCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lk
dGgyLCBhbnRpYWxpYXMpOworICAgIH0KKworICAgIC8vIGxvd2VyIGVkZ2UKKyAgICBpZiAoY3Vy
cmVudExpbmUueCgpIDwgbmV4dExpbmUueCgpKSB7CisgICAgICAgIHRvcExlZnQgPSBvdXRsaW5l
Qm94UmVjdC5taW5YTWF4WUNvcm5lcigpOworICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVX
aWR0aCwgMCk7CisgICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOworICAgICAg
ICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CisgICAgICAg
IGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCBvdXRsaW5lV2lkdGgpOworICAgICAgICBp
ZiAoIW5leHRMaW5lLmlzRW1wdHkoKSAmJiAoYWRqdXN0ZWROZXh0TGluZS54KCkgPCBib3R0b21S
aWdodC54KCkpKSB7CisgICAgICAgICAgICBib3R0b21SaWdodC5zZXRYKGFkanVzdGVkTmV4dExp
bmUueCgpIC0gb3V0bGluZU9mZnNldCk7CisgICAgICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1v
dXRsaW5lV2lkdGg7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIg
PSBvdXRsaW5lV2lkdGg7CisgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRl
eHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpC
b3R0b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNl
bnRXaWR0aDIsIGFudGlhbGlhcyk7CisgICAgfQorICAgIAorICAgIGlmIChuZXh0TGluZS5tYXhY
KCkgPCBjdXJyZW50TGluZS5tYXhYKCkpIHsKKyAgICAgICAgdG9wTGVmdCA9IG91dGxpbmVCb3hS
ZWN0Lm1pblhNYXhZQ29ybmVyKCk7CisgICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRo
LCAwKTsKKyAgICAgICAgaWYgKCFuZXh0TGluZS5pc0VtcHR5KCkgJiYgYWRqdXN0ZWROZXh0TGlu
ZS5tYXhYKCkgPiB0b3BMZWZ0LngoKSkgeworICAgICAgICAgICAgdG9wTGVmdC5zZXRYKGFkanVz
dGVkTmV4dExpbmUubWF4WCgpICsgb3V0bGluZU9mZnNldCk7CisgICAgICAgICAgICBhZGphY2Vu
dFdpZHRoMSA9IC1vdXRsaW5lV2lkdGg7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYWRq
YWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7CisgICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGlu
ZUJveFJlY3QubWF4WE1heFlDb3JuZXIoKTsKKyAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRs
aW5lV2lkdGgsIG91dGxpbmVXaWR0aCk7CisgICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGlu
ZVdpZHRoOworICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1
bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6Qm90dG9tLCBv
dXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgy
LCBhbnRpYWxpYXMpOworICAgIH0KKworICAgIGlmIChjdXJyZW50TGluZS54KCkgPT0gY3VycmVu
dExpbmUubWF4WCgpKSB7CisgICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5taW5YTWF4
WUNvcm5lcigpOworICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwgMCk7CisgICAg
ICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOworICAgICAgICBib3R0b21SaWdodCA9
IG91dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CisgICAgICAgIGJvdHRvbVJpZ2h0Lm1v
dmUob3V0bGluZVdpZHRoLCBvdXRsaW5lV2lkdGgpOworICAgICAgICBhZGphY2VudFdpZHRoMiA9
IG91dGxpbmVXaWR0aDsKKyAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4
dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OkJv
dHRvbSwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2Vu
dFdpZHRoMiwgYW50aWFsaWFzKTsKKyAgICB9Cit9CisKIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFp
bnRTaWRlcyhjb25zdCBTaWRlcyYgc2lkZXMpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0JiBncmFw
aGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0JvcmRlclBhaW50ZXIuaAppbmRleCBlODY1YzFlZDk2ZDQuLjc3NGM5OTIyODU3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oCkBAIC0zMyw2ICszMyw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnRCb3JkZXIoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0
IFJlbmRlclN0eWxlJiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVk
Tm9uZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSA9IHRydWUpOwogICAgIHZvaWQgcGFpbnRPdXRsaW5lKGNvbnN0IExheW91
dFJlY3QmKTsKKyAgICB2b2lkIHBhaW50T3V0bGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQsIGNvbnN0IFZlY3RvcjxMYXlvdXRSZWN0PiYgbGluZVJlY3RzKTsKIAogICAgIGJvb2wg
cGFpbnROaW5lUGllY2VJbWFnZShjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBjb25zdCBOaW5lUGllY2VJbWFnZSYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3Bl
cmF0b3I6OlNvdXJjZU92ZXIpOwogICAgIHN0cnVjdCBTaWRlcyB7CkBAIC01Nyw2ICs1OCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgQ29sb3IgY2FsY3VsYXRlQm9yZGVyU3R5bGVDb2xvcihjb25z
dCBCb3JkZXJTdHlsZSYsIGNvbnN0IEJveFNpZGUmLCBjb25zdCBDb2xvciYpOwogCiBwcml2YXRl
OgorICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9yTGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIHByZXZpb3VzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYg
Y3VycmVudExpbmUsIGNvbnN0IExheW91dFJlY3QmIG5leHRMaW5lLCBjb25zdCBDb2xvciYgb3V0
bGluZUNvbG9yKTsKICAgICB2b2lkIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhjb25zdCBS
b3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwg
Y29uc3QgSW50UG9pbnQmIGlubmVyQm9yZGVyQWRqdXN0bWVudCwKICAgICAgICAgY29uc3QgQm9y
ZGVyRWRnZXMmLCBCb3hTaWRlU2V0IGVkZ2VzVG9EcmF3LCBzdGQ6Om9wdGlvbmFsPEJvcmRlckRh
dGE6OlJhZGlpPiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2Fs
TGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBi
b29sIGlzSG9yaXpvbnRhbCk7CiAgICAgdm9pZCBwYWludEJvcmRlclNpZGVzKGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25z
dCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBCb3JkZXJFZGdlcyYsIEJv
eFNpZGVTZXQgZWRnZVNldCwgc3RkOjpvcHRpb25hbDxCb3JkZXJEYXRhOjpSYWRpaT4sIEJhY2tn
cm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgYm9vbCBpc0hvcml6b250YWws
IGNvbnN0IENvbG9yKiBvdmVycmlkZUNvbG9yID0gbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGQxY2EyYTIwMTE0MC4uODA1NDUyNzUxNGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtOTY4LDE1
OCArOTY4LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZShQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICB9CiAgICAgcmVjdHMuYXBw
ZW5kKExheW91dFJlY3QoKSk7CiAKLSAgICBDb2xvciBvdXRsaW5lQ29sb3IgPSBzdHlsZVRvVXNl
LnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eU91dGxpbmVD
b2xvcik7Ci0gICAgYm9vbCB1c2VUcmFuc3BhcmVuY3lMYXllciA9ICFvdXRsaW5lQ29sb3IuaXNP
cGFxdWUoKTsKLSAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsKLSAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3V0bGluZUNvbG9yLmFscGhhQXNGbG9h
dCgpKTsKLSAgICAgICAgb3V0bGluZUNvbG9yID0gb3V0bGluZUNvbG9yLm9wYXF1ZUNvbG9yKCk7
Ci0gICAgfQotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHJlY3RzLnNpemUoKSAtIDE7
IGkrKykKLSAgICAgICAgcGFpbnRPdXRsaW5lRm9yTGluZShncmFwaGljc0NvbnRleHQsIHBhaW50
T2Zmc2V0LCByZWN0cy5hdChpIC0gMSksIHJlY3RzLmF0KGkpLCByZWN0cy5hdChpICsgMSksIG91
dGxpbmVDb2xvcik7Ci0KLSAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCi0gICAgICAgIGdy
YXBoaWNzQ29udGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwotfQotCi12b2lkIFJlbmRlcklu
bGluZTo6cGFpbnRPdXRsaW5lRm9yTGluZShHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4
dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAotICAgIGNvbnN0IExheW91dFJlY3Qm
IHByZXZpb3VzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYgdGhpc0xpbmUsIGNvbnN0IExheW91dFJl
Y3QmIG5leHRMaW5lLCBjb25zdCBDb2xvciYgb3V0bGluZUNvbG9yKQotewotICAgIGNvbnN0IGF1
dG8mIHN0eWxlVG9Vc2UgPSBzdHlsZSgpOwotICAgIGZsb2F0IG91dGxpbmVPZmZzZXQgPSBzdHls
ZVRvVXNlLm91dGxpbmVPZmZzZXQoKTsKLSAgICBMYXlvdXRSZWN0IG91dGxpbmVCb3hSZWN0ID0g
dGhpc0xpbmU7Ci0gICAgb3V0bGluZUJveFJlY3QuaW5mbGF0ZShvdXRsaW5lT2Zmc2V0KTsKLSAg
ICBvdXRsaW5lQm94UmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwotICAgIGlmIChvdXRsaW5lQm94
UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBmbG9hdCBvdXRsaW5lV2lkdGggPSBzdHlsZVRvVXNlLm91
dGxpbmVXaWR0aCgpOwotICAgIEJvcmRlclN0eWxlIG91dGxpbmVTdHlsZSA9IHN0eWxlVG9Vc2Uu
b3V0bGluZVN0eWxlKCk7Ci0gICAgYm9vbCBhbnRpYWxpYXMgPSBCb3JkZXJQYWludGVyOjpzaG91
bGRBbnRpYWxpYXNMaW5lcyhncmFwaGljc0NvbnRleHQpOwotCi0gICAgYXV0byBhZGp1c3RlZFBy
ZXZpb3VzTGluZSA9IHByZXZpb3VzTGluZTsKLSAgICBhZGp1c3RlZFByZXZpb3VzTGluZS5tb3Zl
QnkocGFpbnRPZmZzZXQpOwotICAgIGF1dG8gYWRqdXN0ZWROZXh0TGluZSA9IG5leHRMaW5lOwot
ICAgIGFkanVzdGVkTmV4dExpbmUubW92ZUJ5KHBhaW50T2Zmc2V0KTsKLSAgICAKLSAgICBmbG9h
dCBhZGphY2VudFdpZHRoMSA9IDA7Ci0gICAgZmxvYXQgYWRqYWNlbnRXaWR0aDIgPSAwOwotICAg
IC8vIGxlZnQgZWRnZQotICAgIGF1dG8gdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5Z
Q29ybmVyKCk7Ci0gICAgaWYgKHByZXZpb3VzTGluZS5pc0VtcHR5KCkgfHwgdGhpc0xpbmUueCgp
IDwgcHJldmlvdXNMaW5lLngoKSB8fCAocHJldmlvdXNMaW5lLm1heFgoKSkgPD0gdGhpc0xpbmUu
eCgpKSB7Ci0gICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRo
KTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIDIgKiBvdXRsaW5lT2Zmc2V0KTsK
LSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBhdXRv
IGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICBpZiAo
bmV4dExpbmUuaXNFbXB0eSgpIHx8IHRoaXNMaW5lLngoKSA8PSBuZXh0TGluZS54KCkgfHwgKG5l
eHRMaW5lLm1heFgoKSkgPD0gdGhpc0xpbmUueCgpKSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1v
dmUoMCwgb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lk
dGg7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZSgwLCAtMiAqIG91dGxp
bmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRsaW5lV2lkdGg7Ci0gICAg
fQotICAgIEJvcmRlclBhaW50ZXI6OmRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQs
IGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpMZWZ0
LCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lk
dGgyLCBhbnRpYWxpYXMpOwotICAgIAotICAgIC8vIHJpZ2h0IGVkZ2UKLSAgICB0b3BMZWZ0ID0g
b3V0bGluZUJveFJlY3QubWF4WE1pbllDb3JuZXIoKTsKLSAgICBpZiAocHJldmlvdXNMaW5lLmlz
RW1wdHkoKSB8fCBwcmV2aW91c0xpbmUubWF4WCgpIDwgdGhpc0xpbmUubWF4WCgpIHx8IHRoaXNM
aW5lLm1heFgoKSA8PSBwcmV2aW91c0xpbmUueCgpKSB7Ci0gICAgICAgIHRvcExlZnQubW92ZSgw
LCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKDAsIDIgKiBvdXRsaW5lT2Zmc2V0
KTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBi
b3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAgaWYgKG5l
eHRMaW5lLmlzRW1wdHkoKSB8fCBuZXh0TGluZS5tYXhYKCkgPD0gdGhpc0xpbmUubWF4WCgpIHx8
IHRoaXNMaW5lLm1heFgoKSA8PSBuZXh0TGluZS54KCkpIHsKLSAgICAgICAgYm90dG9tUmlnaHQu
bW92ZShvdXRsaW5lV2lkdGgsIG91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgy
ID0gb3V0bGluZVdpZHRoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUo
b3V0bGluZVdpZHRoLCAtMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRo
MiA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgfQotICAgIEJvcmRlclBhaW50ZXI6OmRyYXdMaW5lRm9y
Qm94U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90
dG9tUmlnaHQpLCBCb3hTaWRlOjpSaWdodCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFk
amFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLQotICAgIC8vIHVwcGVy
IGVkZ2UKLSAgICBpZiAodGhpc0xpbmUueCgpIDwgcHJldmlvdXNMaW5lLngoKSkgewotICAgICAg
ICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKLSAgICAgICAgdG9w
TGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2Vu
dFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94
UmVjdC5tYXhYTWluWUNvcm5lcigpOwotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVX
aWR0aCwgMCk7Ci0gICAgICAgIGlmICghcHJldmlvdXNMaW5lLmlzRW1wdHkoKSAmJiBhZGp1c3Rl
ZFByZXZpb3VzTGluZS54KCkgPCBib3R0b21SaWdodC54KCkpIHsKLSAgICAgICAgICAgIGJvdHRv
bVJpZ2h0LnNldFgoYWRqdXN0ZWRQcmV2aW91c0xpbmUueCgpIC0gb3V0bGluZU9mZnNldCk7Ci0g
ICAgICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIEJv
cmRlclBhaW50ZXI6OmRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50
LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpUb3AsIG91dGxpbmVD
b2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlh
bGlhcyk7Ci0gICAgfQotICAgIAotICAgIGlmIChwcmV2aW91c0xpbmUubWF4WCgpIDwgdGhpc0xp
bmUubWF4WCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5taW5YTWluWUNv
cm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwgLW91dGxpbmVXaWR0
aCk7Ci0gICAgICAgIGlmICghcHJldmlvdXNMaW5lLmlzRW1wdHkoKSAmJiBhZGp1c3RlZFByZXZp
b3VzTGluZS5tYXhYKCkgPiB0b3BMZWZ0LngoKSkgewotICAgICAgICAgICAgdG9wTGVmdC5zZXRY
KGFkanVzdGVkUHJldmlvdXNMaW5lLm1heFgoKSArIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAg
ICAgYWRqYWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOwotICAgICAgICBib3R0b21SaWdo
dCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIGJvdHRvbVJpZ2h0
Lm1vdmUob3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5l
V2lkdGg7Ci0gICAgICAgIEJvcmRlclBhaW50ZXI6OmRyYXdMaW5lRm9yQm94U2lkZShncmFwaGlj
c0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hT
aWRlOjpUb3AsIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRq
YWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgfQotCi0gICAgaWYgKHRoaXNMaW5lLngoKSA9
PSB0aGlzTGluZS5tYXhYKCkpIHsKLSAgICAgICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1p
blhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0
bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAg
ICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllDb3JuZXIoKTsKLSAgICAg
ICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdp
ZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgQm9yZGVyUGFpbnRlcjo6ZHJhd0xpbmVGb3JC
b3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0
b21SaWdodCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFj
ZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICB9Ci0KLSAgICAvLyBs
b3dlciBlZGdlCi0gICAgaWYgKHRoaXNMaW5lLngoKSA8IG5leHRMaW5lLngoKSkgewotICAgICAg
ICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9w
TGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91
dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4
WUNvcm5lcigpOwotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGlu
ZVdpZHRoKTsKLSAgICAgICAgaWYgKCFuZXh0TGluZS5pc0VtcHR5KCkgJiYgKGFkanVzdGVkTmV4
dExpbmUueCgpIDwgYm90dG9tUmlnaHQueCgpKSkgewotICAgICAgICAgICAgYm90dG9tUmlnaHQu
c2V0WChhZGp1c3RlZE5leHRMaW5lLngoKSAtIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAg
YWRqYWNlbnRXaWR0aDIgPSAtb3V0bGluZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgICAgICBCb3JkZXJQYWludGVy
OjpkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0
KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6Qm90dG9tLCBvdXRsaW5lQ29sb3IsIG91
dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOwot
ICAgIH0KLSAgICAKLSAgICBpZiAobmV4dExpbmUubWF4WCgpIDwgdGhpc0xpbmUubWF4WCgpKSB7
Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5taW5YTWF4WUNvcm5lcigpOwotICAg
ICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwgMCk7Ci0gICAgICAgIGlmICghbmV4dExp
bmUuaXNFbXB0eSgpICYmIGFkanVzdGVkTmV4dExpbmUubWF4WCgpID4gdG9wTGVmdC54KCkpIHsK
LSAgICAgICAgICAgIHRvcExlZnQuc2V0WChhZGp1c3RlZE5leHRMaW5lLm1heFgoKSArIG91dGxp
bmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwot
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRo
OwotICAgICAgICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7
Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCBvdXRsaW5lV2lkdGgpOwot
ICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgQm9yZGVyUGFp
bnRlcjo6ZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0
UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OkJvdHRvbSwgb3V0bGluZUNvbG9y
LCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFz
KTsKLSAgICB9Ci0KLSAgICBpZiAodGhpc0xpbmUueCgpID09IHRoaXNMaW5lLm1heFgoKSkgewot
ICAgICAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAg
ICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRo
MSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5t
YXhYTWF4WUNvcm5lcigpOwotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwg
b3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0g
ICAgICAgIEJvcmRlclBhaW50ZXI6OmRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQs
IGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpCb3R0
b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRX
aWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgfQorICAgIEJvcmRlclBhaW50ZXIgeyAqdGhpcywgcGFp
bnRJbmZvIH0ucGFpbnRPdXRsaW5lKHBhaW50T2Zmc2V0LCByZWN0cyk7CiB9CiAKIGJvb2wgaXNF
bXB0eUlubGluZShjb25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oCmluZGV4IDkyMzFlM2Y1MzZmMy4uYzA0YzM4NGQ2YmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC0xNDAsOCArMTQwLDYg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29u
c3QgSW50UmVjdCogPSAwKSBmaW5hbDsKIAotICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9yTGluZShH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IExheW91dFJlY3QmIHBy
ZXZMaW5lLCBjb25zdCBMYXlvdXRSZWN0JiB0aGlzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYgbmV4
dExpbmUsIGNvbnN0IENvbG9yJik7Ci0KICAgICBib29sIHdpbGxDaGFuZ2VDcmVhdGVzU3RhY2tp
bmdDb250ZXh0KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBzdHlsZSgpLndpbGxDaGFu
Z2UoKSAmJiBzdHlsZSgpLndpbGxDaGFuZ2UoKS0+Y2FuQ3JlYXRlU3RhY2tpbmdDb250ZXh0KCk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>