<?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>235216</bug_id>
          
          <creation_ts>2022-01-13 19:28:18 -0800</creation_ts>
          <short_desc>Web Inspector: add a contextmenu item to create a URL Breakpoint for resources initiated by script</short_desc>
          <delta_ts>2022-01-14 13:36:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>dino</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1830795</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-13 19:28:18 -0800</bug_when>
    <thetext>this would also help expose the fact that URL Breakpoints exist :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830796</commentid>
    <comment_count>1</comment_count>
      <attachid>449127</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-13 19:30:46 -0800</bug_when>
    <thetext>Created attachment 449127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830913</commentid>
    <comment_count>2</comment_count>
      <attachid>449127</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-01-14 08:14:58 -0800</bug_when>
    <thetext>Comment on attachment 449127
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:470
&gt; +            .filter((urlBreakpoint) =&gt; {

Is it normal style to wrap a single parameter in ()?

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:487
&gt; +                const typeRankings = [
&gt; +                    WI.URLBreakpoint.Type.Text,
&gt; +                    WI.URLBreakpoint.Type.RegularExpression,
&gt; +                ];
&gt; +                return typeRankings.indexOf(a.type) - typeRankings.indexOf(b.type);

This is cute.

&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:138
&gt; +            contextMenu.appendItem(existingURLBreakpoints.length === 1 ? WI.UIString(&quot;Delete URL Breakpoint&quot;) : WI.UIString(&quot;Delete URL Breakpoints&quot;), () =&gt; {

Do you really need === here, when checking against a literal number?

&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:140
&gt; +                for (let urlBreakpoint of existingURLBreakpoints)
&gt; +                    WI.domDebuggerManager.removeURLBreakpoint(urlBreakpoint);

Why not this shorter code?

existingURLBreakpoints.forEach(WI.domDebuggerManager.removeURLBreakpoint)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831045</commentid>
    <comment_count>3</comment_count>
      <attachid>449127</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-14 13:09:47 -0800</bug_when>
    <thetext>Comment on attachment 449127
Patch

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

Thanks for the review! =D

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:470
&gt;&gt; +            .filter((urlBreakpoint) =&gt; {
&gt; 
&gt; Is it normal style to wrap a single parameter in ()?

Technically it&apos;s not necessary, but it is Web Inspector style to always add the `(` `)` &lt;https://trac.webkit.org/wiki/WebInspectorCodingStyleGuide#ArrowFunctions&gt;

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:487
&gt;&gt; +                return typeRankings.indexOf(a.type) - typeRankings.indexOf(b.type);
&gt; 
&gt; This is cute.

:)

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:138
&gt;&gt; +            contextMenu.appendItem(existingURLBreakpoints.length === 1 ? WI.UIString(&quot;Delete URL Breakpoint&quot;) : WI.UIString(&quot;Delete URL Breakpoints&quot;), () =&gt; {
&gt; 
&gt; Do you really need === here, when checking against a literal number?

Do you mean using `==` instead?  It&apos;s generally a bad idea to use `==` (even with a constant) in JS cause it doesn&apos;t also check the type (e.g. `&quot;1&quot; == 1` is true whereas `&quot;1&quot; === 1` is not).  The ESLint config for Web Inspector will warn you if you try to use `==` instead of `===` for that reason.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:140
&gt;&gt; +                    WI.domDebuggerManager.removeURLBreakpoint(urlBreakpoint);
&gt; 
&gt; Why not this shorter code?
&gt; 
&gt; existingURLBreakpoints.forEach(WI.domDebuggerManager.removeURLBreakpoint)

We typically only use `forEach` when doing functional-style chaining.  Also, it makes it harder to find callsites of functions (and could possibly cause unintended side effects if the expected parameters of the passed in callback don&apos;t match `(item, index, array)`).  &lt;https://trac.webkit.org/wiki/WebInspectorCodingStyleGuide#APIpreferences&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831059</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-14 13:35:53 -0800</bug_when>
    <thetext>Committed r288029 (246055@main): &lt;https://commits.webkit.org/246055@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449127.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831061</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-14 13:36:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/87616390&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449127</attachid>
            <date>2022-01-13 19:30:46 -0800</date>
            <delta_ts>2022-01-14 13:35:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235216-20220113203045.patch</filename>
            <type>text/plain</type>
            <size>10604</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDVlMTQyZDY2MGMzOThiZTBiM2UzMmMzZjA2Yjky
MzE4NzQ2Y2JlYWUuLjNiN2E1ODVlNjkyNDc1NWEwYWRkYzMwODBkZmUzMjI2MjI1OWU5ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIyLTAxLTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYSBjb250ZXh0bWVudSBpdGVtIHRvIGNyZWF0ZSBhIFVSTCBCcmVha3BvaW50IGZvciByZXNv
dXJjZXMgaW5pdGlhdGVkIGJ5IHNjcmlwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0
aWVzLmpzOgorICAgICAgICAoV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvclNvdXJjZUNvZGUp
OgorICAgICAgICBTaW5jZSBVUkwgQnJlYWtwb2ludHMgb25seSB3b3JrIHdpdGggWEhSL2BmZXRj
aGAsIG9ubHkgb2ZmZXIgdG8gY3JlYXRlIGEgVVJMIEJyZWFrcG9pbnQgaWYKKyAgICAgICAgdGhl
IGBXSS5Tb3VyY2VDb2RlYCBoYXMgYGluaXRpYXRvckNhbGxGcmFtZXNgLCBtZWFuaW5nIGl0IHdh
cyB0cmlnZ2VyZWQgYnkgSlMuIFdlIGNvdWxkCisgICAgICAgIG9mZmVyIHRoaXMgY29udGV4dG1l
bnUgaXRlbSBmb3IgX2FsbF8gcmVzb3VyY2VzLCBidXQgdGhlcmUgYXJlIG1hbnkgZGlmZmVyZW50
IHJlc291cmNlIHR5cGVzCisgICAgICAgIHRoYXQgYXJlIHVubGlrZWx5IChpZiBldmVyKSB0byBi
ZSBsb2FkZWQgdmlhIFhIUi9gZmV0Y2hgIChlLmcuIGZhdmljb25zLCBtYW5pZmVzdHMsIGZvbnRz
LAorICAgICAgICBpbml0aWFsIEpTL0NTUyBmaWxlcywgZXRjLikgdGhhdCBpdCB3b3VsZCBsaWtl
bHkgYWRkIGNsdXR0ZXIgYW5kIHBvc3NpYmx5IGNvbmZ1c2UgZGV2ZWxvcGVycworICAgICAgICBp
bnRvIHRoaW5raW5nIHRoYXQgVVJMIEJyZWFrcG9pbnRzIGNhbiBzb21laG93IHBhdXNlIHRoaW5n
cyBvdGhlciB0aGFuIEpTLiBQbHVzLCB0aGlzIGNhbgorICAgICAgICBhbHdheXMgYmUgY2hhbmdl
ZCBpbiBhIGZvbGxvd3VwLCBzbyBiZXR0ZXIgdG8gZG8gc29tZXRoaW5nIG1pbmltYWwgZmlyc3Qu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdl
ci5qczoKKyAgICAgICAgKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUudXJsQnJlYWtw
b2ludHNNYXRjaGluZ1VSTCk6IEFkZGVkLgorICAgICAgICBIZWxwZXIgbWV0aG9kIHRvIGZpbmQg
YWxsIGBXSS5VUkxCcmVha3BvaW50YCB0aGF0IG1hdGNoIGEgZ2l2ZW4gVVJMLCBzb3J0ZWQgYnkg
aG93IGV4YWN0CisgICAgICAgIHRoZXkgd291bGQgbWF0Y2ggKGUuZy4gYSByZWdleCBtYXRjaCBp
cyBsZXNzIGV4YWN0IHRoYW4gYD09PWApLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCiAyMDIyLTAxLTEzICBFbGxpb3R0IFdpbGxpYW1z
ICA8ZW13QGFwcGxlLmNvbT4KIAogICAgICAgICBbWENCdWlsZF0gQWRkICJwcm9kdWN0IGRlcGVu
ZGVuY2llcyIgd2hpY2ggaW5mbHVlbmNlIHdvcmtzcGFjZSBidWlsZCBvcmRlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggMmU4NjUyZmFlYjNiMTdhNTZlMjQ2MjM1MjMyNjVi
YTU5OTgwMjVlYS4uYmEyZWY2MTdiNmMwNTIyYzA5YzBiZmE0Y2VmNDFiZTdjNDczZmYwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xMTUsNiArMTE1LDcgQEAgbG9jYWxp
emVkU3RyaW5nc1siQWRkIEJyZWFrcG9pbnQiXSA9ICJBZGQgQnJlYWtwb2ludCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJBZGQgQnJlYWtwb2ludHMiXSA9ICJBZGQgQnJlYWtwb2ludHMiOwogbG9jYWxp
emVkU3RyaW5nc1siQWRkIENvb2tpZSJdID0gIkFkZCBDb29raWUiOwogbG9jYWxpemVkU3RyaW5n
c1siQWRkIEhlYWRlciJdID0gIkFkZCBIZWFkZXIiOworbG9jYWxpemVkU3RyaW5nc1siQWRkIEph
dmFTY3JpcHQgQnJlYWtwb2ludCJdID0gIkFkZCBKYXZhU2NyaXB0IEJyZWFrcG9pbnQiOwogbG9j
YWxpemVkU3RyaW5nc1siQWRkIE5ldyJdID0gIkFkZCBOZXciOwogbG9jYWxpemVkU3RyaW5nc1si
QWRkIE5ldyBDbGFzcyJdID0gIkFkZCBOZXcgQ2xhc3MiOwogbG9jYWxpemVkU3RyaW5nc1siQWRk
IE5ldyBQcm9iZSBFeHByZXNzaW9uIl0gPSAiQWRkIE5ldyBQcm9iZSBFeHByZXNzaW9uIjsKQEAg
LTEyMiw2ICsxMjMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBZGQgTmV3IFdhdGNoIEV4cHJlc3Np
b24iXSA9ICJBZGQgTmV3IFdhdGNoIEV4cHJlc3Npb24iOwogbG9jYWxpemVkU3RyaW5nc1siQWRk
IFBhdHRlcm4iXSA9ICJBZGQgUGF0dGVybiI7CiAvKiBUZXh0IG9mIGJ1dHRvbiB0byBhZGQgYSBu
ZXcgYXVkaXQgdGVzdCBjYXNlIHRvIHRoZSBjdXJyZW50bHkgc2hvd24gYXVkaXQgZ3JvdXAuICov
CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGQgVGVzdCBDYXNlIEAgQXVkaXQgVGFiIC0gR3JvdXAiXSA9
ICJBZGQgVGVzdCBDYXNlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFkZCBVUkwgQnJlYWtwb2ludCJd
ID0gIkFkZCBVUkwgQnJlYWtwb2ludCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGQgYSBDbGFzcyJd
ID0gIkFkZCBhIENsYXNzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCBuZXcgYnJlYWtwb2ludCBh
Y3Rpb24gYWZ0ZXIgdGhpcyBhY3Rpb24iXSA9ICJBZGQgbmV3IGJyZWFrcG9pbnQgYWN0aW9uIGFm
dGVyIHRoaXMgYWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCBuZXcgcnVsZSJdID0gIkFk
ZCBuZXcgcnVsZSI7CkBAIC0zNjEsMTMgKzM2MywxMyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDb21w
dXRlIFNoYWRlciJdID0gIkNvbXB1dGUgU2hhZGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXB1
dGVkIl0gPSAiQ29tcHV0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29uZGl0aW9uIl0gPSAiQ29u
ZGl0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbmRpdGlvbmFsIGV4cHJlc3Npb24iXSA9ICJD
b25kaXRpb25hbCBleHByZXNzaW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNvbmljIEdyYWRpZW50
Il0gPSAiQ29uaWMgR3JhZGllbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29ubmVjdGluZyJdID0g
IkNvbm5lY3RpbmciOwogbG9jYWxpemVkU3RyaW5nc1siQ29ubmVjdGlvbiJdID0gIkNvbm5lY3Rp
b24iOwogbG9jYWxpemVkU3RyaW5nc1siQ29ubmVjdGlvbiBDbG9zZSBGcmFtZSJdID0gIkNvbm5l
Y3Rpb24gQ2xvc2UgRnJhbWUiOwogbG9jYWxpemVkU3RyaW5nc1siQ29ubmVjdGlvbiBDbG9zZWQi
XSA9ICJDb25uZWN0aW9uIENsb3NlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb25uZWN0aW9uIElE
Il0gPSAiQ29ubmVjdGlvbiBJRCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb25uZWN0aW9uOiJdID0g
IkNvbm5lY3Rpb246IjsKLWxvY2FsaXplZFN0cmluZ3NbIkNvbmljIEdyYWRpZW50Il0gPSAiQ29u
aWMgR3JhZGllbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29uc29sZSJdID0gIkNvbnNvbGUiOwog
bG9jYWxpemVkU3RyaW5nc1siQ29uc29sZSBFdmFsdWF0aW9uIl0gPSAiQ29uc29sZSBFdmFsdWF0
aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbnNvbGUgRXZhbHVhdGlvbiAlZCJdID0gIkNvbnNv
bGUgRXZhbHVhdGlvbiAlZCI7CkBAIC00NTQsNyArNDU2LDEwIEBAIGxvY2FsaXplZFN0cmluZ3Nb
IkRlbGV0ZSBCcmVha3BvaW50Il0gPSAiRGVsZXRlIEJyZWFrcG9pbnQiOwogbG9jYWxpemVkU3Ry
aW5nc1siRGVsZXRlIEJyZWFrcG9pbnRzIl0gPSAiRGVsZXRlIEJyZWFrcG9pbnRzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkRlbGV0ZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIl0gPSAiRGVsZXRlIERl
c2NlbmRhbnQgQnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRGVsZXRlIEluc3BlY3Rv
ciBCb290c3RyYXAgU2NyaXB0Il0gPSAiRGVsZXRlIEluc3BlY3RvciBCb290c3RyYXAgU2NyaXB0
IjsKK2xvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBKYXZhU2NyaXB0IEJyZWFrcG9pbnQiXSA9ICJE
ZWxldGUgSmF2YVNjcmlwdCBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBM
b2NhbCBPdmVycmlkZSJdID0gIkRlbGV0ZSBMb2NhbCBPdmVycmlkZSI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJEZWxldGUgVVJMIEJyZWFrcG9pbnQiXSA9ICJEZWxldGUgVVJMIEJyZWFrcG9pbnQiOwor
bG9jYWxpemVkU3RyaW5nc1siRGVsZXRlIFVSTCBCcmVha3BvaW50cyJdID0gIkRlbGV0ZSBVUkwg
QnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRGVsZXRlIFdhdGNoIEV4cHJlc3Npb24i
XSA9ICJEZWxldGUgV2F0Y2ggRXhwcmVzc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZWxldGUg
cHJvYmUiXSA9ICJEZWxldGUgcHJvYmUiOwogbG9jYWxpemVkU3RyaW5nc1siRGVsZXRlIHRoaXMg
YnJlYWtwb2ludCBhY3Rpb24iXSA9ICJEZWxldGUgdGhpcyBicmVha3BvaW50IGFjdGlvbiI7CkBA
IC0xMTgyLDkgKzExODcsOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmVkIGFuY2VzdG9yICJd
ID0gIlJlbW92ZWQgYW5jZXN0b3IgIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZWQgZGVzY2Vu
ZGFudCAiXSA9ICJSZW1vdmVkIGRlc2NlbmRhbnQgIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbmRl
ciBQaXBlbGluZSAlZCJdID0gIlJlbmRlciBQaXBlbGluZSAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJSZW5kZXJpbmcgRnJhbWVzIl0gPSAiUmVuZGVyaW5nIEZyYW1lcyI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJSZXBlYXRpbmcgQ29uaWMgR3JhZGllbnQiXSA9ICJSZXBlYXRpbmcgQ29uaWMgR3JhZGll
bnQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVwZWF0aW5nIExpbmVhciBHcmFkaWVudCJdID0gIlJl
cGVhdGluZyBMaW5lYXIgR3JhZGllbnQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVwZWF0aW5nIFJh
ZGlhbCBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBSYWRpYWwgR3JhZGllbnQiOwotbG9jYWxpemVk
U3RyaW5nc1siUmVwZWF0aW5nIENvbmljIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5nIENvbmljIEdy
YWRpZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcXVlc3QiXSA9ICJSZXF1ZXN0IjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlcXVlc3QgJiBSZXNwb25zZSJdID0gIlJlcXVlc3QgJiBSZXNwb25zZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXF1ZXN0IChET00gVHJlZSkiXSA9ICJSZXF1ZXN0IChET00g
VHJlZSkiOwpAQCAtMTYwMyw4ICsxNjA4LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siVW5jYXVnaHQg
RXhjZXB0aW9ucyBAIEphdmFTY3JpcHQgQnJlYWtwb2ludCJdID0gIlVuY2F1Z2h0IEV4Y2UKIGxv
Y2FsaXplZFN0cmluZ3NbIlVuZGVmaW5lZCBjdXN0b20gZWxlbWVudCJdID0gIlVuZGVmaW5lZCBj
dXN0b20gZWxlbWVudCI7CiAvKiBMYWJlbCBmb3IgYnV0dG9uIHRvIHNob3cgQ1NTIHZhcmlhYmxl
cyB1bmdyb3VwZWQgKi8KIGxvY2FsaXplZFN0cmluZ3NbIlVuZ3JvdXBlZCBAIENvbXB1dGVkIFN0
eWxlIHZhcmlhYmxlcyBncm91cGluZyBtb2RlIl0gPSAiVW5ncm91cGVkIjsKLS8qIFNlY3Rpb24g
aGVhZGVyIGZvciB1bmdyb3VwZWQgQ1NTIHZhcmlhYmxlcyAqLwotbG9jYWxpemVkU3RyaW5nc1si
VW5ncm91cGVkIEAgQ29tcHV0ZWQgU3R5bGUgdmFyaWFibGVzIHNlY3Rpb24iXSA9ICJVbmdyb3Vw
ZWQiOwogLyogUHJvcGVydHkgdmFsdWUgZm9yIGBmb250LXZhcmlhbnQtY2FwaXRhbHM6IHVuaWNh
c2VgLiAqLwogbG9jYWxpemVkU3RyaW5nc1siVW5pY2FzZSBAIEZvbnQgRGV0YWlscyBTaWRlYmFy
IFByb3BlcnR5IFZhbHVlIl0gPSAiVW5pY2FzZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJVbmlxdWUi
XSA9ICJVbmlxdWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzCmlu
ZGV4IDJmMjcyNmVmODUwZDJiMmFlYWZlZDY2YzcyZDQ3MDQ4MzA2YjY5MTYuLmVlMjJmMzZlMzlk
MzRjZDNhYTFjYjczZTQ3ZTRjMzg2OGY3MGE3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01E
ZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTQ2NCw2ICs0NjQsMzAgQEAgV0kuRE9NRGVidWdnZXJNYW5h
Z2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHJldHVybiB0aGlzLl91cmxCcmVha3BvaW50cy5maW5kKChicmVha3BvaW50KSA9PiBicmVha3Bv
aW50LnVybCA9PT0gdXJsKSB8fCBudWxsOwogICAgIH0KIAorICAgIHVybEJyZWFrcG9pbnRzTWF0
Y2hpbmdVUkwodXJsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3VybEJyZWFrcG9pbnRz
CisgICAgICAgICAgICAuZmlsdGVyKCh1cmxCcmVha3BvaW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgc3dpdGNoICh1cmxCcmVha3BvaW50LnR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFdJ
LlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJs
QnJlYWtwb2ludC51cmwudG9Mb3dlckNhc2UoKSA9PT0gdXJsLnRvTG93ZXJDYXNlKCk7CisKKyAg
ICAgICAgICAgICAgICBjYXNlIFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5SZWd1bGFyRXhwcmVzc2lv
bjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuZXcgUmVnRXhwKHVybEJyZWFrcG9pbnQu
dXJsLCAiaSIpKS50ZXN0KHVybCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC5zb3J0KChhLCBi
KSA9PiB7CisgICAgICAgICAgICAgICAgLy8gT3JkZXIgVVJMIGJyZWFrcG9pbnRzIGJhc2VkIG9u
IGhvdyBjbG9zZWx5IHRoZXkgbWF0Y2ggdGhlIGdpdmVuIFVSTC4KKyAgICAgICAgICAgICAgICBj
b25zdCB0eXBlUmFua2luZ3MgPSBbCisgICAgICAgICAgICAgICAgICAgIFdJLlVSTEJyZWFrcG9p
bnQuVHlwZS5UZXh0LAorICAgICAgICAgICAgICAgICAgICBXSS5VUkxCcmVha3BvaW50LlR5cGUu
UmVndWxhckV4cHJlc3Npb24sCisgICAgICAgICAgICAgICAgXTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHlwZVJhbmtpbmdzLmluZGV4T2YoYS50eXBlKSAtIHR5cGVSYW5raW5ncy5pbmRleE9m
KGIudHlwZSk7CisgICAgICAgICAgICB9KTsKKyAgICB9CisKICAgICBhZGRVUkxCcmVha3BvaW50
KGJyZWFrcG9pbnQpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50IGlu
c3RhbmNlb2YgV0kuVVJMQnJlYWtwb2ludCwgYnJlYWtwb2ludCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGll
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRN
ZW51VXRpbGl0aWVzLmpzCmluZGV4IDJlMDE1MjQ0NGIzNjU5NmZiMjA2YjE2Y2EyNjZlZmU0MDM2
ZTNlZTMuLjBkZDNjNzk3ZmZhMDIxYjZjNzdmMmViOThlZDMwNTc5NjkwNTk0NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51
VXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCkBAIC0xMjAsMTggKzEyMCwzMiBAQCBXSS5hcHBl
bmRDb250ZXh0TWVudUl0ZW1zRm9yU291cmNlQ29kZSA9IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBz
b3VyY2VDb2RlT3JMb2NhdAogICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCiAg
ICAgaWYgKGxvY2F0aW9uICYmIChzb3VyY2VDb2RlIGluc3RhbmNlb2YgV0kuU2NyaXB0IHx8IChz
b3VyY2VDb2RlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UgJiYgc291cmNlQ29kZS50eXBlID09PSBX
SS5SZXNvdXJjZS5UeXBlLlNjcmlwdCAmJiAhc291cmNlQ29kZS5sb2NhbFJlc291cmNlT3ZlcnJp
ZGUpKSkgewotICAgICAgICBsZXQgZXhpc3RpbmdCcmVha3BvaW50ID0gV0kuZGVidWdnZXJNYW5h
Z2VyLmJyZWFrcG9pbnRGb3JTb3VyY2VDb2RlTG9jYXRpb24obG9jYXRpb24pOwotICAgICAgICBp
ZiAoZXhpc3RpbmdCcmVha3BvaW50KSB7Ci0gICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJ
dGVtKFdJLlVJU3RyaW5nKCJEZWxldGUgQnJlYWtwb2ludCIpLCAoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQoZXhpc3RpbmdCcmVha3Bv
aW50KTsKKyAgICAgICAgbGV0IGV4aXN0aW5nSmF2YVNjcmlwdEJyZWFrcG9pbnQgPSBXSS5kZWJ1
Z2dlck1hbmFnZXIuYnJlYWtwb2ludEZvclNvdXJjZUNvZGVMb2NhdGlvbihsb2NhdGlvbik7Cisg
ICAgICAgIGlmIChleGlzdGluZ0phdmFTY3JpcHRCcmVha3BvaW50KSB7CisgICAgICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJEZWxldGUgSmF2YVNjcmlwdCBCcmVh
a3BvaW50IiksICgpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVt
b3ZlQnJlYWtwb2ludChleGlzdGluZ0phdmFTY3JpcHRCcmVha3BvaW50KTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRl
bShXSS5VSVN0cmluZygiQWRkIEJyZWFrcG9pbnQiKSwgKCkgPT4geworICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQWRkIEphdmFTY3JpcHQgQnJlYWtwb2lu
dCIpLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFr
cG9pbnQobmV3IFdJLkphdmFTY3JpcHRCcmVha3BvaW50KGxvY2F0aW9uKSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChzb3VyY2VDb2RlPy5pbml0aWF0b3JD
YWxsRnJhbWVzKSB7CisgICAgICAgIGxldCBleGlzdGluZ1VSTEJyZWFrcG9pbnRzID0gV0kuZG9t
RGVidWdnZXJNYW5hZ2VyLnVybEJyZWFrcG9pbnRzTWF0Y2hpbmdVUkwoc291cmNlQ29kZS51cmwp
OworICAgICAgICBpZiAoZXhpc3RpbmdVUkxCcmVha3BvaW50cy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oZXhpc3RpbmdVUkxCcmVha3BvaW50cy5sZW5ndGgg
PT09IDEgPyBXSS5VSVN0cmluZygiRGVsZXRlIFVSTCBCcmVha3BvaW50IikgOiBXSS5VSVN0cmlu
ZygiRGVsZXRlIFVSTCBCcmVha3BvaW50cyIpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgZm9y
IChsZXQgdXJsQnJlYWtwb2ludCBvZiBleGlzdGluZ1VSTEJyZWFrcG9pbnRzKQorICAgICAgICAg
ICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIucmVtb3ZlVVJMQnJlYWtwb2ludCh1cmxC
cmVha3BvaW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQWRkIFVSTCBCcmVha3BvaW50
IiksICgpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWRkVVJM
QnJlYWtwb2ludChuZXcgV0kuVVJMQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4
dCwgc291cmNlQ29kZS51cmwpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQor
CiAgICAgaWYgKHNvdXJjZUNvZGUuc3VwcG9ydHNTY3JpcHRCbGFja2JveGluZykgewogICAgICAg
ICBsZXQgYmxhY2tib3hEYXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmJsYWNrYm94RGF0YUZvclNv
dXJjZUNvZGUoc291cmNlQ29kZSk7CiAgICAgICAgIGlmIChibGFja2JveERhdGEgJiYgYmxhY2ti
b3hEYXRhLnR5cGUgPT09IFdJLkRlYnVnZ2VyTWFuYWdlci5CbGFja2JveFR5cGUuUGF0dGVybikg
ewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>