<?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>246051</bug_id>
          
          <creation_ts>2022-10-04 17:14:28 -0700</creation_ts>
          <short_desc>[Outline] Outline painting should be able to call BorderPainter with border-radius info</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>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</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>1903279</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-04 17:14:28 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903293</commentid>
    <comment_count>1</comment_count>
      <attachid>462800</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-04 17:29:11 -0700</bug_when>
    <thetext>Created attachment 462800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903425</commentid>
    <comment_count>2</comment_count>
      <attachid>462800</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-10-05 07:52:52 -0700</bug_when>
    <thetext>Comment on attachment 462800
Patch

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

&gt; Source/WebCore/rendering/BorderPainter.h:47
&gt; +    struct Sides {
&gt; +        RoundedRect outerBorder;
&gt; +        RoundedRect innerBorder;
&gt; +        RoundedRect unadjustedInnerBorder;
&gt; +        std::optional&lt;BorderData::Radii&gt; radii { };
&gt; +        const BorderEdges&amp; edges;
&gt; +        bool haveAllSolidEdges { true };
&gt; +        BackgroundBleedAvoidance bleedAvoidance { BackgroundBleedNone };
&gt; +        bool includeLogicalLeftEdge { true };
&gt; +        bool includeLogicalRightEdge { true };
&gt; +        bool appliedClipAlready { false };
&gt; +    };

&quot;Sides&quot; seems like a strange name for this. I&apos;d expect it would have four sides as a member or something. I don&apos;t have a suggestion though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903661</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-05 20:29:40 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 462800 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=462800&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/BorderPainter.h:47
&gt; &gt; +    struct Sides {
&gt; &gt; +        RoundedRect outerBorder;
&gt; &gt; +        RoundedRect innerBorder;
&gt; &gt; +        RoundedRect unadjustedInnerBorder;
&gt; &gt; +        std::optional&lt;BorderData::Radii&gt; radii { };
&gt; &gt; +        const BorderEdges&amp; edges;
&gt; &gt; +        bool haveAllSolidEdges { true };
&gt; &gt; +        BackgroundBleedAvoidance bleedAvoidance { BackgroundBleedNone };
&gt; &gt; +        bool includeLogicalLeftEdge { true };
&gt; &gt; +        bool includeLogicalRightEdge { true };
&gt; &gt; +        bool appliedClipAlready { false };
&gt; &gt; +    };
&gt; 
&gt; &quot;Sides&quot; seems like a strange name for this. I&apos;d expect it would have four
&gt; sides as a member or something. I don&apos;t have a suggestion though.
I&apos;ll try to think of a better name -will come back to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903667</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-05 21:19:36 -0700</bug_when>
    <thetext>Committed 255207@main (dfee462561b1): &lt;https://commits.webkit.org/255207@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 462800.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903668</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-05 21:20:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/100836548&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462800</attachid>
            <date>2022-10-04 17:29:11 -0700</date>
            <delta_ts>2022-10-05 21:19:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246051-20221004172910.patch</filename>
            <type>text/plain</type>
            <size>16291</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MDJkYzc3Njc5YjI2OWZhOGFlOGI3NTMxODgwYjgwOTdiNTEwMTYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
dWUsIDQgT2N0IDIwMjIgMTc6MjM6MjggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
T3V0bGluZSBwYWludGluZyBzaG91bGQgYmUgYWJsZSB0byBjYWxsCiBCb3JkZXJQYWludGVyIHdp
dGggYm9yZGVyLXJhZGl1cyBpbmZvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjQ2MDUxCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgaW4gcHJl
cGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgb3V0bGluZSB3aXRoIGJvcmRlci1yYWRpdXMuCihCb3Jk
ZXJQYWludGVyOjpwYWludEJvcmRlciBjYWxscyBCb3JkZXJQYWludGVyOjpwYWludFNpZGVzIHdp
dGggYm9yZGVyIGNvbnRlbnQgd2hpbGUgUmVuZGVyRWxlbWVudDo6cGFpbnRPdXRsaW5lIGlzIGdv
aW5nIHRvIGNhbGwgaXQgd2l0aCBvdXRsaW5lIGNvbnRlbnQuKQoKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHA6CihXZWJDb3JlOjpCb3JkZXJQYWludGVyOjpwYWlu
dEJvcmRlcik6CihXZWJDb3JlOjpCb3JkZXJQYWludGVyOjpwYWludFNpZGVzKToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgooV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmJvcmRlclJh
ZGlpIGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5j
cHAgICB8IDExOCArKysrKysrKysrKystLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Qm9yZGVyUGFpbnRlci5oICAgICB8ICAxMyArKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmggfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25z
KCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQm9yZGVyUGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFp
bnRlci5jcHAKaW5kZXggNjg1Yjk4MjVhYjZlLi41NTM2ZTExN2IyMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAKQEAgLTE0NCwyNCArMTQ0LDYxIEBAIHZv
aWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRCb3JkZXIoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlCiAgICAgYXV0byBlZGdlcyA9IGJvcmRlckVkZ2VzKHN0eWxl
LCBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2Us
IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKICAgICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9
IHN0eWxlLmdldFJvdW5kZWRCb3JkZXJGb3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogICAgIFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyID0g
c3R5bGUuZ2V0Um91bmRlZElubmVyQm9yZGVyRm9yKGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9y
QmxlZWRBdm9pZGFuY2UocmVjdCwgYmxlZWRBdm9pZGFuY2UpLCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAgUm91bmRlZFJlY3QgdW5hZGp1c3Rl
ZElubmVyQm9yZGVyID0gKGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91
bmRPdmVyQm9yZGVyKSA/IHN0eWxlLmdldFJvdW5kZWRJbm5lckJvcmRlckZvcihyZWN0LCBpbmNs
dWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgOiBpbm5lckJvcmRl
cjsKKworICAgIGF1dG8gaGF2ZUFsbFNvbGlkRWRnZXMgPSB0cnVlOworICAgIGZvciAoYXV0byBz
aWRlIDogYWxsQm94U2lkZXMpIHsKKyAgICAgICAgYXV0byYgY3VyckVkZ2UgPSBlZGdlcy5hdChz
aWRlKTsKKworICAgICAgICBpZiAoY3VyckVkZ2UucHJlc2VudEJ1dEludmlzaWJsZSgpIHx8ICFj
dXJyRWRnZS53aWR0aEZvclBhaW50aW5nKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBpZiAoY3VyckVkZ2Uuc3R5bGUoKSAhPSBCb3JkZXJTdHlsZTo6U29saWQpIHsKKyAgICAg
ICAgICAgIGhhdmVBbGxTb2xpZEVkZ2VzID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmIChoYXZlQWxsU29saWRFZGdlcyAmJiBvdXRlckJvcmRl
ci5pc1JvdW5kZWQoKSAmJiBhbGxDb3JuZXJzQ2xpcHBlZE91dChvdXRlckJvcmRlciwgbV9wYWlu
dEluZm8ucmVjdCkpCisgICAgICAgIG91dGVyQm9yZGVyLnNldFJhZGlpKFJvdW5kZWRSZWN0OjpS
YWRpaSgpKTsKKworICAgIGF1dG8gc2lkZXMgPSBTaWRlcyB7CisgICAgICAgIG91dGVyQm9yZGVy
LAorICAgICAgICBpbm5lckJvcmRlciwKKyAgICAgICAgdW5hZGp1c3RlZElubmVyQm9yZGVyLAor
ICAgICAgICBzdHlsZS5oYXNCb3JkZXJSYWRpdXMoKSA/IHN0ZDo6bWFrZV9vcHRpb25hbChzdHls
ZS5ib3JkZXJSYWRpaSgpKSA6IHN0ZDo6bnVsbG9wdCwKKyAgICAgICAgZWRnZXMsCisgICAgICAg
IGhhdmVBbGxTb2xpZEVkZ2VzLAorICAgICAgICBibGVlZEF2b2lkYW5jZSwKKyAgICAgICAgaW5j
bHVkZUxvZ2ljYWxMZWZ0RWRnZSwKKyAgICAgICAgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsCisg
ICAgICAgIGFwcGxpZWRDbGlwQWxyZWFkeQorICAgIH07CisgICAgcGFpbnRTaWRlcyhzaWRlcywg
c3R5bGUpOworfQorCit2b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50U2lkZXMoY29uc3QgU2lkZXMm
IHNpZGVzLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCit7CisgICAgR3JhcGhpY3NDb250ZXh0
JiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CisKKyAgICBBU1NFUlQo
IWdyYXBoaWNzQ29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpOwogCi0gICAgLy8gSWYgbm8gYm9y
ZGVycyBpbnRlcnNlY3RzIHdpdGggdGhlIGRpcnR5IGFyZWEsIHdlIGNhbiBza2lwIHRoZSBib3Jk
ZXIgcGFpbnRpbmcuCi0gICAgaWYgKGlubmVyQm9yZGVyLmNvbnRhaW5zKG1fcGFpbnRJbmZvLnJl
Y3QpKQorICAgIC8vIElmIG5vIGJvcmRlcnMgaW50ZXJzZWN0cyB3aXRoIHRoZSBkaXJ0eSBhcmVh
LCB3ZSBjYW4gc2tpcCB0aGUgcGFpbnRpbmcuCisgICAgaWYgKHNpZGVzLmlubmVyQm9yZGVyLmNv
bnRhaW5zKG1fcGFpbnRJbmZvLnJlY3QpKQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIGhh
dmVBbHBoYUNvbG9yID0gZmFsc2U7Ci0gICAgYm9vbCBoYXZlQWxsU29saWRFZGdlcyA9IHRydWU7
CiAgICAgYm9vbCBoYXZlQWxsRG91YmxlRWRnZXMgPSB0cnVlOwogICAgIGludCBudW1FZGdlc1Zp
c2libGUgPSA0OwogICAgIGJvb2wgYWxsRWRnZXNTaGFyZUNvbG9yID0gdHJ1ZTsKICAgICBzdGQ6
Om9wdGlvbmFsPEJveFNpZGU+IGZpcnN0VmlzaWJsZVNpZGU7CiAgICAgQm94U2lkZVNldCBlZGdl
c1RvRHJhdzsKIAotICAgIGZvciAoYXV0byBzaWRlIDogYWxsQm94U2lkZXMpIHsKLSAgICAgICAg
YXV0byYgY3VyckVkZ2UgPSBlZGdlcy5hdChzaWRlKTsKKyAgICBmb3IgKGF1dG8gYm94U2lkZSA6
IGFsbEJveFNpZGVzKSB7CisgICAgICAgIGF1dG8mIGN1cnJFZGdlID0gc2lkZXMuZWRnZXMuYXQo
Ym94U2lkZSk7CiAKICAgICAgICAgaWYgKGN1cnJFZGdlLnNob3VsZFJlbmRlcigpKQotICAgICAg
ICAgICAgZWRnZXNUb0RyYXcuYWRkKGVkZ2VGbGFnRm9yU2lkZShzaWRlKSk7CisgICAgICAgICAg
ICBlZGdlc1RvRHJhdy5hZGQoZWRnZUZsYWdGb3JTaWRlKGJveFNpZGUpKTsKIAogICAgICAgICBp
ZiAoY3VyckVkZ2UucHJlc2VudEJ1dEludmlzaWJsZSgpKSB7CiAgICAgICAgICAgICAtLW51bUVk
Z2VzVmlzaWJsZTsKQEAgLTE3NSw0NiArMjEyLDM4IEBAIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFp
bnRCb3JkZXIoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWZpcnN0VmlzaWJsZVNpZGUpCi0gICAgICAgICAg
ICBmaXJzdFZpc2libGVTaWRlID0gc2lkZTsKLSAgICAgICAgZWxzZSBpZiAoY3VyckVkZ2UuY29s
b3IoKSAhPSBlZGdlcy5hdCgqZmlyc3RWaXNpYmxlU2lkZSkuY29sb3IoKSkKKyAgICAgICAgICAg
IGZpcnN0VmlzaWJsZVNpZGUgPSBib3hTaWRlOworICAgICAgICBlbHNlIGlmIChjdXJyRWRnZS5j
b2xvcigpICE9IHNpZGVzLmVkZ2VzLmF0KCpmaXJzdFZpc2libGVTaWRlKS5jb2xvcigpKQogICAg
ICAgICAgICAgYWxsRWRnZXNTaGFyZUNvbG9yID0gZmFsc2U7CiAKICAgICAgICAgaWYgKCFjdXJy
RWRnZS5jb2xvcigpLmlzT3BhcXVlKCkpCiAgICAgICAgICAgICBoYXZlQWxwaGFDb2xvciA9IHRy
dWU7CiAKLSAgICAgICAgaWYgKGN1cnJFZGdlLnN0eWxlKCkgIT0gQm9yZGVyU3R5bGU6OlNvbGlk
KQotICAgICAgICAgICAgaGF2ZUFsbFNvbGlkRWRnZXMgPSBmYWxzZTsKLQogICAgICAgICBpZiAo
Y3VyckVkZ2Uuc3R5bGUoKSAhPSBCb3JkZXJTdHlsZTo6RG91YmxlKQogICAgICAgICAgICAgaGF2
ZUFsbERvdWJsZUVkZ2VzID0gZmFsc2U7CiAgICAgfQogCi0gICAgLy8gSWYgbm8gY29ybmVyIGlu
dGVyc2VjdHMgdGhlIGNsaXAgcmVnaW9uLCB3ZSBjYW4gcHJldGVuZCBvdXRlckJvcmRlciBpcwot
ICAgIC8vIHJlY3Rhbmd1bGFyIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuCi0gICAgaWYgKGhhdmVB
bGxTb2xpZEVkZ2VzICYmIG91dGVyQm9yZGVyLmlzUm91bmRlZCgpICYmIGFsbENvcm5lcnNDbGlw
cGVkT3V0KG91dGVyQm9yZGVyLCBtX3BhaW50SW5mby5yZWN0KSkKLSAgICAgICAgb3V0ZXJCb3Jk
ZXIuc2V0UmFkaWkoUm91bmRlZFJlY3Q6OlJhZGlpKCkpOwotCi0gICAgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IgPSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgYXV0byBkZXZp
Y2VTY2FsZUZhY3RvciA9IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICAvLyBp
c1JlbmRlcmFibGUoKSBjaGVjayBhdm9pZHMgaXNzdWUgZGVzY3JpYmVkIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODc4NwotICAgIGlmICgoaGF2ZUFsbFNvbGlk
RWRnZXMgfHwgaGF2ZUFsbERvdWJsZUVkZ2VzKSAmJiBhbGxFZGdlc1NoYXJlQ29sb3IgJiYgaW5u
ZXJCb3JkZXIuaXNSZW5kZXJhYmxlKCkpIHsKKyAgICBpZiAoKHNpZGVzLmhhdmVBbGxTb2xpZEVk
Z2VzIHx8IGhhdmVBbGxEb3VibGVFZGdlcykgJiYgYWxsRWRnZXNTaGFyZUNvbG9yICYmIHNpZGVz
LmlubmVyQm9yZGVyLmlzUmVuZGVyYWJsZSgpKSB7CiAgICAgICAgIC8vIEZhc3QgcGF0aCBmb3Ig
ZHJhd2luZyBhbGwgc29saWQgZWRnZXMgYW5kIGFsbCB1bnJvdW5kZWQgZG91YmxlIGVkZ2VzCi0g
ICAgICAgIGlmIChudW1FZGdlc1Zpc2libGUgPT0gNCAmJiAob3V0ZXJCb3JkZXIuaXNSb3VuZGVk
KCkgfHwgaGF2ZUFscGhhQ29sb3IpCi0gICAgICAgICAgICAmJiAoaGF2ZUFsbFNvbGlkRWRnZXMg
fHwgKCFvdXRlckJvcmRlci5pc1JvdW5kZWQoKSAmJiAhaW5uZXJCb3JkZXIuaXNSb3VuZGVkKCkp
KSkgeworICAgICAgICBpZiAobnVtRWRnZXNWaXNpYmxlID09IDQgJiYgKHNpZGVzLm91dGVyQm9y
ZGVyLmlzUm91bmRlZCgpIHx8IGhhdmVBbHBoYUNvbG9yKQorICAgICAgICAgICAgJiYgKHNpZGVz
LmhhdmVBbGxTb2xpZEVkZ2VzIHx8ICghc2lkZXMub3V0ZXJCb3JkZXIuaXNSb3VuZGVkKCkgJiYg
IXNpZGVzLmlubmVyQm9yZGVyLmlzUm91bmRlZCgpKSkpIHsKICAgICAgICAgICAgIFBhdGggcGF0
aDsKIAotICAgICAgICAgICAgRmxvYXRSb3VuZGVkUmVjdCBwaXhlbFNuYXBwZWRPdXRlckJvcmRl
ciA9IG91dGVyQm9yZGVyLnBpeGVsU25hcHBlZFJvdW5kZWRSZWN0Rm9yUGFpbnRpbmcoZGV2aWNl
U2NhbGVGYWN0b3IpOwotICAgICAgICAgICAgaWYgKHBpeGVsU25hcHBlZE91dGVyQm9yZGVyLmlz
Um91bmRlZCgpICYmIGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFy
ZW5jeUxheWVyKQorICAgICAgICAgICAgRmxvYXRSb3VuZGVkUmVjdCBwaXhlbFNuYXBwZWRPdXRl
ckJvcmRlciA9IHNpZGVzLm91dGVyQm9yZGVyLnBpeGVsU25hcHBlZFJvdW5kZWRSZWN0Rm9yUGFp
bnRpbmcoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaWYgKHBpeGVsU25hcHBlZE91
dGVyQm9yZGVyLmlzUm91bmRlZCgpICYmIHNpZGVzLmJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91
bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQogICAgICAgICAgICAgICAgIHBhdGguYWRkUm91
bmRlZFJlY3QocGl4ZWxTbmFwcGVkT3V0ZXJCb3JkZXIpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIHBhdGguYWRkUmVjdChwaXhlbFNuYXBwZWRPdXRlckJvcmRlci5yZWN0KCkp
OwogCiAgICAgICAgICAgICBpZiAoaGF2ZUFsbERvdWJsZUVkZ2VzKSB7Ci0gICAgICAgICAgICAg
ICAgTGF5b3V0UmVjdCBpbm5lclRoaXJkUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAg
ICAgICAgICAgICBMYXlvdXRSZWN0IG91dGVyVGhpcmRSZWN0ID0gb3V0ZXJCb3JkZXIucmVjdCgp
OworICAgICAgICAgICAgICAgIExheW91dFJlY3QgaW5uZXJUaGlyZFJlY3QgPSBzaWRlcy5vdXRl
ckJvcmRlci5yZWN0KCk7CisgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBvdXRlclRoaXJkUmVj
dCA9IHNpZGVzLm91dGVyQm9yZGVyLnJlY3QoKTsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8g
c2lkZSA6IGFsbEJveFNpZGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQgb3V0
ZXJXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBpbm5lcldpZHRoOwotICAg
ICAgICAgICAgICAgICAgICBlZGdlcy5hdChzaWRlKS5nZXREb3VibGVCb3JkZXJTdHJpcGVXaWR0
aHMob3V0ZXJXaWR0aCwgaW5uZXJXaWR0aCk7CisgICAgICAgICAgICAgICAgICAgIHNpZGVzLmVk
Z2VzLmF0KHNpZGUpLmdldERvdWJsZUJvcmRlclN0cmlwZVdpZHRocyhvdXRlcldpZHRoLCBpbm5l
cldpZHRoKTsKICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzaWRlKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgQm94U2lkZTo6VG9wOgogICAgICAgICAgICAgICAgICAgICAgICAgaW5u
ZXJUaGlyZFJlY3Quc2hpZnRZRWRnZVRvKGlubmVyVGhpcmRSZWN0LnkoKSArIGlubmVyV2lkdGgp
OwpAQCAtMjM1LDcxICsyNjQsNzAgQEAgdm9pZCBCb3JkZXJQYWludGVyOjpwYWludEJvcmRlcihj
b25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIEZsb2F0
Um91bmRlZFJlY3QgcGl4ZWxTbmFwcGVkT3V0ZXJUaGlyZCA9IG91dGVyQm9yZGVyLnBpeGVsU25h
cHBlZFJvdW5kZWRSZWN0Rm9yUGFpbnRpbmcoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAg
ICAgICAgIEZsb2F0Um91bmRlZFJlY3QgcGl4ZWxTbmFwcGVkT3V0ZXJUaGlyZCA9IHNpZGVzLm91
dGVyQm9yZGVyLnBpeGVsU25hcHBlZFJvdW5kZWRSZWN0Rm9yUGFpbnRpbmcoZGV2aWNlU2NhbGVG
YWN0b3IpOwogICAgICAgICAgICAgICAgIHBpeGVsU25hcHBlZE91dGVyVGhpcmQuc2V0UmVjdChz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyVGhpcmRSZWN0LCBkZXZpY2VTY2FsZUZhY3Rvcikp
OwogCi0gICAgICAgICAgICAgICAgaWYgKHBpeGVsU25hcHBlZE91dGVyVGhpcmQuaXNSb3VuZGVk
KCkgJiYgYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5
ZXIpCisgICAgICAgICAgICAgICAgaWYgKHBpeGVsU25hcHBlZE91dGVyVGhpcmQuaXNSb3VuZGVk
KCkgJiYgc2lkZXMuYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJl
bmN5TGF5ZXIpCiAgICAgICAgICAgICAgICAgICAgIHBhdGguYWRkUm91bmRlZFJlY3QocGl4ZWxT
bmFwcGVkT3V0ZXJUaGlyZCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBwYXRoLmFkZFJlY3QocGl4ZWxTbmFwcGVkT3V0ZXJUaGlyZC5yZWN0KCkpOwogCi0gICAg
ICAgICAgICAgICAgRmxvYXRSb3VuZGVkUmVjdCBwaXhlbFNuYXBwZWRJbm5lclRoaXJkID0gaW5u
ZXJCb3JkZXIucGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWludGluZyhkZXZpY2VTY2FsZUZh
Y3Rvcik7CisgICAgICAgICAgICAgICAgRmxvYXRSb3VuZGVkUmVjdCBwaXhlbFNuYXBwZWRJbm5l
clRoaXJkID0gc2lkZXMuaW5uZXJCb3JkZXIucGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWlu
dGluZyhkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgICAgICAgICAgICAgcGl4ZWxTbmFwcGVkSW5u
ZXJUaGlyZC5zZXRSZWN0KHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXJUaGlyZFJlY3QsIGRl
dmljZVNjYWxlRmFjdG9yKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBpeGVsU25hcHBlZElubmVy
VGhpcmQuaXNSb3VuZGVkKCkgJiYgYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkVXNl
VHJhbnNwYXJlbmN5TGF5ZXIpCisgICAgICAgICAgICAgICAgaWYgKHBpeGVsU25hcHBlZElubmVy
VGhpcmQuaXNSb3VuZGVkKCkgJiYgc2lkZXMuYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJs
ZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpCiAgICAgICAgICAgICAgICAgICAgIHBhdGguYWRkUm91
bmRlZFJlY3QocGl4ZWxTbmFwcGVkSW5uZXJUaGlyZCk7CiAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICBwYXRoLmFkZFJlY3QocGl4ZWxTbmFwcGVkSW5uZXJUaGlyZC5y
ZWN0KCkpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBGbG9hdFJvdW5kZWRSZWN0IHBp
eGVsU25hcHBlZElubmVyQm9yZGVyID0gaW5uZXJCb3JkZXIucGl4ZWxTbmFwcGVkUm91bmRlZFJl
Y3RGb3JQYWludGluZyhkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBGbG9hdFJvdW5k
ZWRSZWN0IHBpeGVsU25hcHBlZElubmVyQm9yZGVyID0gc2lkZXMuaW5uZXJCb3JkZXIucGl4ZWxT
bmFwcGVkUm91bmRlZFJlY3RGb3JQYWludGluZyhkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgICAg
ICAgICBpZiAocGl4ZWxTbmFwcGVkSW5uZXJCb3JkZXIuaXNSb3VuZGVkKCkpCiAgICAgICAgICAg
ICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChwaXhlbFNuYXBwZWRJbm5lckJvcmRlcik7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcGF0aC5hZGRSZWN0KHBpeGVsU25hcHBlZElu
bmVyQm9yZGVyLnJlY3QoKSk7CiAKICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRGaWxs
UnVsZShXaW5kUnVsZTo6RXZlbk9kZCk7Ci0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0
RmlsbENvbG9yKGVkZ2VzLmF0KCpmaXJzdFZpc2libGVTaWRlKS5jb2xvcigpKTsKKyAgICAgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC5zZXRGaWxsQ29sb3Ioc2lkZXMuZWRnZXMuYXQoKmZpcnN0Vmlz
aWJsZVNpZGUpLmNvbG9yKCkpOwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmZpbGxQYXRo
KHBhdGgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIEF2b2lk
IGNyZWF0aW5nIHRyYW5zcGFyZW50IGxheWVycwotICAgICAgICBpZiAoaGF2ZUFsbFNvbGlkRWRn
ZXMgJiYgbnVtRWRnZXNWaXNpYmxlICE9IDQgJiYgIW91dGVyQm9yZGVyLmlzUm91bmRlZCgpICYm
IGhhdmVBbHBoYUNvbG9yKSB7CisgICAgICAgIGlmIChzaWRlcy5oYXZlQWxsU29saWRFZGdlcyAm
JiBudW1FZGdlc1Zpc2libGUgIT0gNCAmJiAhc2lkZXMub3V0ZXJCb3JkZXIuaXNSb3VuZGVkKCkg
JiYgaGF2ZUFscGhhQ29sb3IpIHsKICAgICAgICAgICAgIFBhdGggcGF0aDsKIAogICAgICAgICAg
ICAgZm9yIChhdXRvIHNpZGUgOiBhbGxCb3hTaWRlcykgewotICAgICAgICAgICAgICAgIGlmIChl
ZGdlcy5hdChzaWRlKS5zaG91bGRSZW5kZXIoKSkgewotICAgICAgICAgICAgICAgICAgICBhdXRv
IHNpZGVSZWN0ID0gY2FsY3VsYXRlU2lkZVJlY3Qob3V0ZXJCb3JkZXIsIGVkZ2VzLCBzaWRlKTsK
KyAgICAgICAgICAgICAgICBpZiAoc2lkZXMuZWRnZXMuYXQoc2lkZSkuc2hvdWxkUmVuZGVyKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBzaWRlUmVjdCA9IGNhbGN1bGF0ZVNpZGVSZWN0
KHNpZGVzLm91dGVyQm9yZGVyLCBzaWRlcy5lZGdlcywgc2lkZSk7CiAgICAgICAgICAgICAgICAg
ICAgIHBhdGguYWRkUmVjdChzaWRlUmVjdCk7IC8vIEZJWE1FOiBOZWVkIHBpeGVsIHNuYXBwaW5n
IGhlcmUuCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBn
cmFwaGljc0NvbnRleHQuc2V0RmlsbFJ1bGUoV2luZFJ1bGU6Ok5vblplcm8pOwotICAgICAgICAg
ICAgZ3JhcGhpY3NDb250ZXh0LnNldEZpbGxDb2xvcihlZGdlcy5hdCgqZmlyc3RWaXNpYmxlU2lk
ZSkuY29sb3IoKSk7CisgICAgICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0RmlsbENvbG9yKHNp
ZGVzLmVkZ2VzLmF0KCpmaXJzdFZpc2libGVTaWRlKS5jb2xvcigpKTsKICAgICAgICAgICAgIGdy
YXBoaWNzQ29udGV4dC5maWxsUGF0aChwYXRoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGJvb2wgY2xpcFRvT3V0ZXJCb3JkZXIgPSBvdXRlckJvcmRlci5p
c1JvdW5kZWQoKTsKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3Jh
cGhpY3NDb250ZXh0LCBjbGlwVG9PdXRlckJvcmRlciAmJiAhYXBwbGllZENsaXBBbHJlYWR5KTsK
KyAgICBib29sIGNsaXBUb091dGVyQm9yZGVyID0gc2lkZXMub3V0ZXJCb3JkZXIuaXNSb3VuZGVk
KCk7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBoaWNzQ29u
dGV4dCwgY2xpcFRvT3V0ZXJCb3JkZXIgJiYgIXNpZGVzLmFwcGxpZWRDbGlwQWxyZWFkeSk7CiAg
ICAgaWYgKGNsaXBUb091dGVyQm9yZGVyKSB7CiAgICAgICAgIC8vIENsaXAgdG8gdGhlIGlubmVy
IGFuZCBvdXRlciByYWRpaSByZWN0cy4KLSAgICAgICAgaWYgKGJsZWVkQXZvaWRhbmNlICE9IEJh
Y2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQotICAgICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LmNsaXBSb3VuZGVkUmVjdChvdXRlckJvcmRlci5waXhlbFNuYXBwZWRSb3VuZGVkUmVj
dEZvclBhaW50aW5nKGRldmljZVNjYWxlRmFjdG9yKSk7CisgICAgICAgIGlmIChzaWRlcy5ibGVl
ZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcikKKyAgICAg
ICAgICAgIGdyYXBoaWNzQ29udGV4dC5jbGlwUm91bmRlZFJlY3Qoc2lkZXMub3V0ZXJCb3JkZXIu
cGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWludGluZyhkZXZpY2VTY2FsZUZhY3RvcikpOwog
ICAgICAgICAvLyBpc1JlbmRlcmFibGUoKSBjaGVjayBhdm9pZHMgaXNzdWUgZGVzY3JpYmVkIGlu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODc4NwogICAgICAgICAv
LyBUaGUgaW5zaWRlIHdpbGwgYmUgY2xpcHBlZCBvdXQgbGF0ZXIgKGluIGNsaXBCb3JkZXJTaWRl
Rm9yQ29tcGxleElubmVyUGF0aCkKLSAgICAgICAgaWYgKGlubmVyQm9yZGVyLmlzUmVuZGVyYWJs
ZSgpKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmNsaXBPdXRSb3VuZGVkUmVjdChpbm5l
ckJvcmRlci5waXhlbFNuYXBwZWRSb3VuZGVkUmVjdEZvclBhaW50aW5nKGRldmljZVNjYWxlRmFj
dG9yKSk7CisgICAgICAgIGlmIChzaWRlcy5pbm5lckJvcmRlci5pc1JlbmRlcmFibGUoKSkKKyAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC5jbGlwT3V0Um91bmRlZFJlY3Qoc2lkZXMuaW5uZXJC
b3JkZXIucGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWludGluZyhkZXZpY2VTY2FsZUZhY3Rv
cikpOwogICAgIH0KIAogICAgIC8vIElmIG9ubHkgb25lIGVkZ2UgdmlzaWJsZSBhbnRpYWxpYXNp
bmcgZG9lc24ndCBjcmVhdGUgc2VhbXMKICAgICBib29sIGFudGlhbGlhcyA9IHNob3VsZEFudGlh
bGlhc0xpbmVzKGdyYXBoaWNzQ29udGV4dCkgfHwgbnVtRWRnZXNWaXNpYmxlID09IDE7Ci0gICAg
Um91bmRlZFJlY3QgdW5hZGp1c3RlZElubmVyQm9yZGVyID0gKGJsZWVkQXZvaWRhbmNlID09IEJh
Y2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyKSA/IHN0eWxlLmdldFJvdW5kZWRJbm5l
ckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSkgOiBpbm5lckJvcmRlcjsKLSAgICBJbnRQb2ludCBpbm5lckJvcmRlckFkanVzdG1l
bnQoaW5uZXJCb3JkZXIucmVjdCgpLngoKSAtIHVuYWRqdXN0ZWRJbm5lckJvcmRlci5yZWN0KCku
eCgpLCBpbm5lckJvcmRlci5yZWN0KCkueSgpIC0gdW5hZGp1c3RlZElubmVyQm9yZGVyLnJlY3Qo
KS55KCkpOworICAgIEludFBvaW50IGlubmVyQm9yZGVyQWRqdXN0bWVudChzaWRlcy5pbm5lckJv
cmRlci5yZWN0KCkueCgpIC0gc2lkZXMudW5hZGp1c3RlZElubmVyQm9yZGVyLnJlY3QoKS54KCks
IHNpZGVzLmlubmVyQm9yZGVyLnJlY3QoKS55KCkgLSBzaWRlcy51bmFkanVzdGVkSW5uZXJCb3Jk
ZXIucmVjdCgpLnkoKSk7CiAgICAgaWYgKGhhdmVBbHBoYUNvbG9yKQotICAgICAgICBwYWludFRy
YW5zbHVjZW50Qm9yZGVyU2lkZXMoc3R5bGUsIG91dGVyQm9yZGVyLCB1bmFkanVzdGVkSW5uZXJC
b3JkZXIsIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgZWRnZXMsIGVkZ2VzVG9EcmF3LCBibGVlZEF2
b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Us
IGFudGlhbGlhcyk7CisgICAgICAgIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhzdHlsZSwg
c2lkZXMub3V0ZXJCb3JkZXIsIHNpZGVzLnVuYWRqdXN0ZWRJbm5lckJvcmRlciwgaW5uZXJCb3Jk
ZXJBZGp1c3RtZW50LCBzaWRlcy5lZGdlcywgZWRnZXNUb0RyYXcsIHNpZGVzLmJsZWVkQXZvaWRh
bmNlLCBzaWRlcy5pbmNsdWRlTG9naWNhbExlZnRFZGdlLCBzaWRlcy5pbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSwgYW50aWFsaWFzKTsKICAgICBlbHNlCi0gICAgICAgIHBhaW50Qm9yZGVyU2lkZXMo
c3R5bGUsIG91dGVyQm9yZGVyLCB1bmFkanVzdGVkSW5uZXJCb3JkZXIsIGlubmVyQm9yZGVyQWRq
dXN0bWVudCwgZWRnZXMsIGVkZ2VzVG9EcmF3LCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7CisgICAgICAg
IHBhaW50Qm9yZGVyU2lkZXMoc3R5bGUsIHNpZGVzLm91dGVyQm9yZGVyLCBzaWRlcy51bmFkanVz
dGVkSW5uZXJCb3JkZXIsIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgc2lkZXMuZWRnZXMsIGVkZ2Vz
VG9EcmF3LCBzaWRlcy5ibGVlZEF2b2lkYW5jZSwgc2lkZXMuaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSwgc2lkZXMuaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7CiB9CiAKIGJvb2wg
Qm9yZGVyUGFpbnRlcjo6cGFpbnROaW5lUGllY2VJbWFnZShjb25zdCBMYXlvdXRSZWN0JiByZWN0
LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IE5pbmVQaWVjZUltYWdlJiBuaW5lUGll
Y2VJbWFnZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Jv
cmRlclBhaW50ZXIuaAppbmRleCA0YzJhNGJjMGVhYTYuLjZlMzRhMWI3NTI2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oCkBAIC0zMyw2ICszMywxOSBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHBhaW50Qm9yZGVyKGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5k
ZXJTdHlsZSYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSA9IEJhY2tncm91bmRCbGVlZE5vbmUs
IGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UgPSB0cnVlKTsKICAgICBib29sIHBhaW50TmluZVBpZWNlSW1hZ2UoY29uc3QgTGF5
b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgTmluZVBpZWNlSW1hZ2UmLCBDb21w
b3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKTsKKyAgICBzdHJ1
Y3QgU2lkZXMgeworICAgICAgICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlcjsKKyAgICAgICAgUm91
bmRlZFJlY3QgaW5uZXJCb3JkZXI7CisgICAgICAgIFJvdW5kZWRSZWN0IHVuYWRqdXN0ZWRJbm5l
ckJvcmRlcjsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxCb3JkZXJEYXRhOjpSYWRpaT4gcmFkaWkg
eyB9OworICAgICAgICBjb25zdCBCb3JkZXJFZGdlcyYgZWRnZXM7CisgICAgICAgIGJvb2wgaGF2
ZUFsbFNvbGlkRWRnZXMgeyB0cnVlIH07CisgICAgICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSBibGVlZEF2b2lkYW5jZSB7IEJhY2tncm91bmRCbGVlZE5vbmUgfTsKKyAgICAgICAgYm9vbCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlIHsgdHJ1ZSB9OworICAgICAgICBib29sIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlIHsgdHJ1ZSB9OworICAgICAgICBib29sIGFwcGxpZWRDbGlwQWxyZWFkeSB7
IGZhbHNlIH07CisgICAgfTsKKyAgICB2b2lkIHBhaW50U2lkZXMoY29uc3QgU2lkZXMmLCBjb25z
dCBSZW5kZXJTdHlsZSYpOwogCiAgICAgc3RhdGljIHZvaWQgZHJhd0xpbmVGb3JCb3hTaWRlKEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IERvY3VtZW50JiwgY29uc3QgRmxvYXRSZWN0JiwgQm94U2lk
ZSwgQ29sb3IsIEJvcmRlclN0eWxlLCBmbG9hdCBhZGphY2VudFdpZHRoMSwgZmxvYXQgYWRqYWNl
bnRXaWR0aDIsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQ5MGVkNDZlY2JiYi4uNThkMjAzZTE1
MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApA
QCAtMzA4LDYgKzMwOCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBMZW5ndGhTaXplJiBib3JkZXJU
b3BSaWdodFJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIudG9w
UmlnaHRSYWRpdXMoKTsgfQogICAgIGNvbnN0IExlbmd0aFNpemUmIGJvcmRlckJvdHRvbUxlZnRS
YWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3N1cnJvdW5kRGF0YS0+Ym9yZGVyLmJvdHRvbUxlZnRS
YWRpdXMoKTsgfQogICAgIGNvbnN0IExlbmd0aFNpemUmIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVz
KCkgY29uc3QgeyByZXR1cm4gbV9zdXJyb3VuZERhdGEtPmJvcmRlci5ib3R0b21SaWdodFJhZGl1
cygpOyB9CisgICAgY29uc3QgQm9yZGVyRGF0YTo6UmFkaWkmIGJvcmRlclJhZGlpKCkgY29uc3Qg
eyByZXR1cm4gbV9zdXJyb3VuZERhdGEtPmJvcmRlci5tX3JhZGlpOyB9CiAgICAgYm9vbCBoYXNC
b3JkZXJSYWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3N1cnJvdW5kRGF0YS0+Ym9yZGVyLmhhc0Jv
cmRlclJhZGl1cygpOyB9CiAgICAgYm9vbCBoYXNFeHBsaWNpdGx5U2V0Qm9yZGVyQm90dG9tTGVm
dFJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIG1fbm9uSW5oZXJpdGVkRmxhZ3MuaGFzRXhwbGljaXRs
eVNldEJvcmRlckJvdHRvbUxlZnRSYWRpdXM7IH0KICAgICBib29sIGhhc0V4cGxpY2l0bHlTZXRC
b3JkZXJCb3R0b21SaWdodFJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIG1fbm9uSW5oZXJpdGVkRmxh
Z3MuaGFzRXhwbGljaXRseVNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>