<?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>223890</bug_id>
          
          <creation_ts>2021-03-29 11:44:19 -0700</creation_ts>
          <short_desc>[ews] Add build step to find list of layout tests modified by a patch</short_desc>
          <delta_ts>2022-10-10 23:11:56 -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>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=246323</see_also>
          <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>223938</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744807</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-29 11:44:19 -0700</bug_when>
    <thetext>Add build step to find list of layout tests modified by a patch. This list would be used by Stress test EWS in subsequent patches, to run those layout-tests large number of times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744811</commentid>
    <comment_count>1</comment_count>
      <attachid>424556</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-29 11:48:44 -0700</bug_when>
    <thetext>Created attachment 424556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744864</commentid>
    <comment_count>2</comment_count>
      <attachid>424556</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-29 13:20:51 -0700</bug_when>
    <thetext>Comment on attachment 424556
Patch

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

If we want EWS to own this task without running run-webkit-tests (which is a reasonable requirement), look through layout_test_finder.py to make sure we duplicate all of the required logic.

&gt; Tools/CISupport/ews-build/steps.py:463
&gt; +    RE_LAYOUT_TEST = b&apos;^(\+\+\+).*(LayoutTests.*.html)&apos;

The logic for determining what is and is not a layout test are more complicated than this. Layout tests can be the following extensions (as per layout_test_finder.py):
    &apos;.html&apos;, &apos;.shtml&apos;, &apos;.xml&apos;, &apos;.xhtml&apos;, &apos;.pl&apos;, &apos;.py&apos;, &apos;.htm&apos;, &apos;.php&apos;, &apos;.svg&apos;, &apos;.mht&apos;, &apos;.xht&apos;
We also need exclude the following directories:
    &apos;resources&apos;, &apos;support&apos;, &apos;script-tests&apos;, &apos;tools&apos;, &apos;reference&apos;, &apos;reftest&apos;

&gt; Tools/CISupport/ews-build/steps.py:469
&gt; +            if match and (b&apos;-expected.html&apos; not in line):

Suffix exclusions include:
    &apos;-expected&apos;, &apos;-expected-mismatch&apos;, &apos;-ref&apos;, &apos;-notref&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744912</commentid>
    <comment_count>3</comment_count>
      <attachid>424578</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-29 14:18:52 -0700</bug_when>
    <thetext>Created attachment 424578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744935</commentid>
    <comment_count>4</comment_count>
      <attachid>424578</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-29 14:54:10 -0700</bug_when>
    <thetext>Comment on attachment 424578
Patch

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

Aakash wants to get this running in production and add additional extensions in a later patch

&gt; Tools/CISupport/ews-build/steps.py:463
&gt; +    RE_LAYOUT_TEST = b&apos;^(\+\+\+).*(LayoutTests.*.html)&apos;

I think this might should be:
    b&apos;^(\+\+\+).* LayoutTests/(.*.html)&apos;
although we might want to save that change for later, since based on some of the staging instance behavior, that may end up changing the behavior of skipped tests.

&gt; Tools/CISupport/ews-build/steps.py:472
&gt; +                if any((suffix + &apos;.html&apos;).encode(&apos;utf-8&apos;) in line for suffix in self.SUFFIXES_TO_IGNORE):

We probably don&apos;t actually need to add .html here, although that will be more relevant when more extensions are added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745148</commentid>
    <comment_count>5</comment_count>
      <attachid>424578</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-30 09:29:43 -0700</bug_when>
    <thetext>Comment on attachment 424578
Patch

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

&gt;&gt; Tools/CISupport/ews-build/steps.py:472
&gt;&gt; +                if any((suffix + &apos;.html&apos;).encode(&apos;utf-8&apos;) in line for suffix in self.SUFFIXES_TO_IGNORE):
&gt; 
&gt; We probably don&apos;t actually need to add .html here, although that will be more relevant when more extensions are added.

This would be more relevant when more extensions are added. Currently it&apos;s better to have .html as well here, so that we don&apos;t match in case these suffixes are in between, not at the end of the file name/path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745150</commentid>
    <comment_count>6</comment_count>
      <attachid>424651</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-30 09:31:46 -0700</bug_when>
    <thetext>Created attachment 424651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745154</commentid>
    <comment_count>7</comment_count>
      <attachid>424651</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-30 09:36:57 -0700</bug_when>
    <thetext>Comment on attachment 424651
Patch

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

&gt; Tools/CISupport/ews-build/steps.py:463
&gt; +    RE_LAYOUT_TEST = b&apos;^(\+\+\+).*(LayoutTests.*\.html)&apos;

Modified this regular expression little bit to avoid matching any file when the file path contains a directory named html. 
For e.g. in https://ews-build.webkit-uat.org/#/builders/71/builds/229, this RE matched couple of directories (named html) instead of specific layout-tests.
Tested the change in https://ews-build.webkit-uat.org/#/builders/71/builds/241
Also added unit-test for this scenario (test_ignore_non_layout_test_in_html_directory).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745168</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-30 10:14:03 -0700</bug_when>
    <thetext>Committed r275211: &lt;https://commits.webkit.org/r275211&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424651.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745170</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-30 10:15:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/76008872&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424556</attachid>
            <date>2021-03-29 11:48:44 -0700</date>
            <delta_ts>2021-03-29 14:18:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223890-20210329144843.patch</filename>
            <type>text/plain</type>
            <size>8220</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3NTE2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIxLTAzLTI5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzXSBBZGQgYnVpbGQgc3RlcCB0byBmaW5kIGxpc3Qgb2YgbGF5b3V0
IHRlc3RzIG1vZGlmaWVkIGJ5IGEgcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMzg5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKyAgICAg
ICAgKEFuYWx5emVQYXRjaCk6IENyZWF0ZWQgY29tbW9uIGJhc2UgY2xhc3MgZm9yIENoZWNrUGF0
Y2hSZWxldmFuY2UgYW5kIEZpbmRNb2RpZmllZExheW91dFRlc3RzLgorICAgICAgICAoQW5hbHl6
ZVBhdGNoLl9nZXRfcGF0Y2gpOiBNb3ZlZCB0byBiYXNlIGNsYXNzLgorICAgICAgICAoQW5hbHl6
ZVBhdGNoLl9hZGRUb0xvZyk6IERpdHRvLgorICAgICAgICAoQW5hbHl6ZVBhdGNoLmdldFJlc3Vs
dFN1bW1hcnkpOiBEaXR0by4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UpOgorICAgICAg
ICAoRmluZE1vZGlmaWVkTGF5b3V0VGVzdHMpOiBCdWlsZCBzdGVwIHRvIGZpbmQgbGlzdCBvZiBs
YXlvdXQgdGVzdHMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoIGJlaW5nIHByb2Nlc3NlZC4KKyAgICAg
ICAgKEZpbmRNb2RpZmllZExheW91dFRlc3RzLmZpbmRfdGVzdF9uYW1lc19mcm9tX3BhdGNoKToK
KyAgICAgICAgKEZpbmRNb2RpZmllZExheW91dFRlc3RzLnN0YXJ0KToKKyAgICAgICAgKiBDSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5OiBBZGRlZCB1bml0LXRlc3RzLgorCiAy
MDIxLTAzLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWlncmF0ZSBfV0tVc2VyQ29udGVudEV4dGVuc2lvbiBhbmQgb2xkZXIgdmVyc2lv
bnMgb2YgV0tDb250ZW50UnVsZUxpc3QgdG8gV0tDb250ZW50UnVsZUxpc3QgZHVyaW5nIGxvb2t1
cApJbmRleDogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CShyZXZpc2lvbiAyNzUxNjYpCisr
KyBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
MzMsMTIgKzMzMywzNiBAQCBjbGFzcyBBcHBseVBhdGNoKHNoZWxsLlNoZWxsQ29tbWFuZCwgQ29t
CiAgICAgICAgIHJldHVybiByYwogCiAKLWNsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoYnVpbGRz
dGVwLkJ1aWxkU3RlcCk6CitjbGFzcyBBbmFseXplUGF0Y2goYnVpbGRzdGVwLkJ1aWxkU3RlcCk6
CisgICAgZmx1bmtPbkZhaWx1cmUgPSBUcnVlCisgICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKKwor
ICAgIGRlZiBfZ2V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzb3VyY2VzdGFtcCA9IHNlbGYuYnVp
bGQuZ2V0U291cmNlU3RhbXAoc2VsZi5nZXRQcm9wZXJ0eSgnY29kZWJhc2UnLCAnJykpCisgICAg
ICAgIGlmIG5vdCBzb3VyY2VzdGFtcCBvciBub3Qgc291cmNlc3RhbXAucGF0Y2g6CisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gc291cmNlc3RhbXAucGF0Y2hbMV0KKwor
ICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKKyAgICBkZWYgX2FkZFRvTG9nKHNlbGYsIGxvZ05h
bWUsIG1lc3NhZ2UpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBsb2cgPSBzZWxmLmdldExv
Zyhsb2dOYW1lKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBsb2cgPSB5
aWVsZCBzZWxmLmFkZExvZyhsb2dOYW1lKQorICAgICAgICBsb2cuYWRkU3Rkb3V0KG1lc3NhZ2Up
CisKKyAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5yZXN1
bHRzID09IEZBSUxVUkU6CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ1BhdGNoIGRvZXNu
XCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcyd9CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBT
VUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdQYXRjaCBjb250YWlucyByZWxl
dmFudCBjaGFuZ2VzJ30KKyAgICAgICAgcmV0dXJuIGJ1aWxkc3RlcC5CdWlsZFN0ZXAuZ2V0UmVz
dWx0U3VtbWFyeShzZWxmKQorCisKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQW5hbHl6ZVBh
dGNoKToKICAgICBuYW1lID0gJ2NoZWNrLXBhdGNoLXJlbGV2YW5jZScKICAgICBkZXNjcmlwdGlv
biA9IFsnY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHJ1bm5pbmcnXQogICAgIGRlc2NyaXB0aW9uRG9u
ZSA9IFsnUGF0Y2ggY29udGFpbnMgcmVsZXZhbnQgY2hhbmdlcyddCi0gICAgZmx1bmtPbkZhaWx1
cmUgPSBUcnVlCi0gICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKIAogICAgIGJpbmRpbmdzX3BhdGhz
ID0gWwogICAgICAgICAnU291cmNlL1dlYkNvcmUnLApAQCAtNDE1LDIwICs0MzksNiBAQCBjbGFz
cyBDaGVja1BhdGNoUmVsZXZhbmNlKGJ1aWxkc3RlcC5CdWlsCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgZGVmIF9nZXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHNvdXJjZXN0YW1wID0gc2VsZi5idWlsZC5nZXRTb3VyY2VTdGFtcChz
ZWxmLmdldFByb3BlcnR5KCdjb2RlYmFzZScsICcnKSkKLSAgICAgICAgaWYgbm90IHNvdXJjZXN0
YW1wIG9yIG5vdCBzb3VyY2VzdGFtcC5wYXRjaDoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIHJldHVybiBzb3VyY2VzdGFtcC5wYXRjaFsxXQotCi0gICAgQGRlZmVyLmlubGluZUNh
bGxiYWNrcwotICAgIGRlZiBfYWRkVG9Mb2coc2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGxvZyA9IHNlbGYuZ2V0TG9nKGxvZ05hbWUpCi0gICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGxvZyA9IHlpZWxkIHNlbGYuYWRkTG9nKGxv
Z05hbWUpCi0gICAgICAgIGxvZy5hZGRTdGRvdXQobWVzc2FnZSkKLQogICAgIGRlZiBzdGFydChz
ZWxmKToKICAgICAgICAgcGF0Y2ggPSBzZWxmLl9nZXRfcGF0Y2goKQogICAgICAgICBpZiBub3Qg
cGF0Y2g6CkBAIC00NDcsMTAgKzQ1Nyw0MCBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKGJ1
aWxkc3RlcC5CdWlsCiAgICAgICAgIHNlbGYuYnVpbGQuYnVpbGRGaW5pc2hlZChbJ1BhdGNoIHt9
IGRvZXNuXCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcycuZm9ybWF0KHNlbGYuZ2V0UHJvcGVydHko
J3BhdGNoX2lkJywgJycpKV0sIFNLSVBQRUQpCiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBk
ZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09IEZB
SUxVUkU6Ci0gICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ1BhdGNoIGRvZXNuXCd0IGhhdmUg
cmVsZXZhbnQgY2hhbmdlcyd9Ci0gICAgICAgIHJldHVybiBzdXBlcihDaGVja1BhdGNoUmVsZXZh
bmNlLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKKworY2xhc3MgRmluZE1vZGlmaWVkTGF5b3V0
VGVzdHMoQW5hbHl6ZVBhdGNoKToKKyAgICBuYW1lID0gJ2ZpbmQtbW9kaWZpZWQtbGF5b3V0LXRl
c3RzJworICAgIFJFX0xBWU9VVF9URVNUID0gYideKFwrXCtcKykuKihMYXlvdXRUZXN0cy4qLmh0
bWwpJworCisgICAgZGVmIGZpbmRfdGVzdF9uYW1lc19mcm9tX3BhdGNoKHNlbGYsIHBhdGNoKToK
KyAgICAgICAgdGVzdHMgPSBbXQorICAgICAgICBmb3IgbGluZSBpbiBwYXRjaC5zcGxpdGxpbmVz
KCk6CisgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChzZWxmLlJFX0xBWU9VVF9URVNULCBs
aW5lLCByZS5JR05PUkVDQVNFKQorICAgICAgICAgICAgaWYgbWF0Y2ggYW5kIChiJy1leHBlY3Rl
ZC5odG1sJyBub3QgaW4gbGluZSk6CisgICAgICAgICAgICAgICAgdGVzdF9uYW1lID0gbWF0Y2gu
Z3JvdXAoMikuZGVjb2RlKCd1dGYtOCcpCisgICAgICAgICAgICAgICAgaWYgJ3Jlc291cmNlcycg
bm90IGluIHRlc3RfbmFtZS5zcGxpdCgnLycpOgorICAgICAgICAgICAgICAgICAgICB0ZXN0cy5h
cHBlbmQodGVzdF9uYW1lKQorICAgICAgICByZXR1cm4gbGlzdChzZXQodGVzdHMpKQorCisgICAg
ZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICBwYXRjaCA9IHNlbGYuX2dldF9wYXRjaCgpCisgICAg
ICAgIGlmIG5vdCBwYXRjaDoKKyAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoU1VDQ0VTUykKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdGVzdHMgPSBzZWxmLmZpbmRfdGVzdF9u
YW1lc19mcm9tX3BhdGNoKHBhdGNoKQorCisgICAgICAgIGlmIHRlc3RzOgorICAgICAgICAgICAg
c2VsZi5fYWRkVG9Mb2coJ3N0ZGlvJywgJ1RoaXMgcGF0Y2ggbW9kaWZpZXMgZm9sbG93aW5nIHRl
c3RzOiB7fScuZm9ybWF0KHRlc3RzKSkKKyAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ21v
ZGlmaWVkX3Rlc3RzJywgdGVzdHMpCisgICAgICAgICAgICBzZWxmLmZpbmlzaGVkKFNVQ0NFU1Mp
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRp
bycsICdUaGlzIHBhdGNoIGRvZXMgbm90IG1vZGlmeSBhbnkgbGF5b3V0IHRlc3RzJykKKyAgICAg
ICAgc2VsZi5maW5pc2hlZChGQUlMVVJFKQorICAgICAgICBzZWxmLmJ1aWxkLnJlc3VsdHMgPSBT
S0lQUEVECisgICAgICAgIHNlbGYuYnVpbGQuYnVpbGRGaW5pc2hlZChbJ1BhdGNoIHt9IGRvZXNu
XCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcycuZm9ybWF0KHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNo
X2lkJywgJycpKV0sIFNLSVBQRUQpCisgICAgICAgIHJldHVybiBOb25lCiAKIAogY2xhc3MgQnVn
emlsbGEob2JqZWN0KToKSW5kZXg6IFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5p
dHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191
bml0dGVzdC5weQkocmV2aXNpb24gMjc1MTY2KQorKysgVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9zdGVwc191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsOCBAQCBmcm9t
IHN0ZXBzIGltcG9ydCAoQW5hbHl6ZUFQSVRlc3RzUmVzdWx0CiAgICAgICAgICAgICAgICAgICAg
Q2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5LCBD
b21waWxlSlNDLCBDb21waWxlSlNDV2l0aG91dFBhdGNoLCBDb21waWxlV2ViS2l0LAogICAgICAg
ICAgICAgICAgICAgIENvbXBpbGVXZWJLaXRXaXRob3V0UGF0Y2gsIENvbmZpZ3VyZUJ1aWxkLCBD
cmVhdGVMb2NhbEdJVENvbW1pdCwKICAgICAgICAgICAgICAgICAgICBEb3dubG9hZEJ1aWx0UHJv
ZHVjdCwgRG93bmxvYWRCdWlsdFByb2R1Y3RGcm9tTWFzdGVyLCBFV1NfQlVJTERfSE9TVE5BTUUs
IEV4dHJhY3RCdWlsdFByb2R1Y3QsIEV4dHJhY3RUZXN0UmVzdWx0cywKLSAgICAgICAgICAgICAg
ICAgICBGZXRjaEJyYW5jaGVzLCBGaW5kTW9kaWZpZWRDaGFuZ2VMb2dzLCBJbnN0YWxsR3RrRGVw
ZW5kZW5jaWVzLCBJbnN0YWxsV3BlRGVwZW5kZW5jaWVzLCBLaWxsT2xkUHJvY2Vzc2VzLAotICAg
ICAgICAgICAgICAgICAgIFByaW50Q29uZmlndXJhdGlvbiwgUHVzaENvbW1pdFRvV2ViS2l0UmVw
bywgUmVSdW5BUElUZXN0cywgUmVSdW5KYXZhU2NyaXB0Q29yZVRlc3RzLCBSZVJ1bldlYktpdFBl
cmxUZXN0cywKKyAgICAgICAgICAgICAgICAgICBGZXRjaEJyYW5jaGVzLCBGaW5kTW9kaWZpZWRD
aGFuZ2VMb2dzLCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cywgSW5zdGFsbEd0a0RlcGVuZGVuY2ll
cywgSW5zdGFsbFdwZURlcGVuZGVuY2llcywKKyAgICAgICAgICAgICAgICAgICBLaWxsT2xkUHJv
Y2Vzc2VzLCBQcmludENvbmZpZ3VyYXRpb24sIFB1c2hDb21taXRUb1dlYktpdFJlcG8sIFJlUnVu
QVBJVGVzdHMsIFJlUnVuSmF2YVNjcmlwdENvcmVUZXN0cywgUmVSdW5XZWJLaXRQZXJsVGVzdHMs
CiAgICAgICAgICAgICAgICAgICAgUmVSdW5XZWJLaXRUZXN0cywgUnVuQVBJVGVzdHMsIFJ1bkFQ
SVRlc3RzV2l0aG91dFBhdGNoLCBSdW5CaW5kaW5nc1Rlc3RzLCBSdW5CdWlsZFdlYktpdE9yZ1Vu
aXRUZXN0cywKICAgICAgICAgICAgICAgICAgICBSdW5CdWlsZGJvdENoZWNrQ29uZmlnRm9yQnVp
bGRXZWJLaXQsIFJ1bkJ1aWxkYm90Q2hlY2tDb25maWdGb3JFV1MsIFJ1bkVXU1VuaXRUZXN0cywg
UnVuUmVzdWx0c2RicHlUZXN0cywKICAgICAgICAgICAgICAgICAgICBSdW5KYXZhU2NyaXB0Q29y
ZVRlc3RzLCBSdW5KU0NUZXN0c1dpdGhvdXRQYXRjaCwgUnVuV2ViS2l0MVRlc3RzLCBSdW5XZWJL
aXRQZXJsVGVzdHMsIFJ1bldlYktpdFB5UHl0aG9uMlRlc3RzLApAQCAtMjYzNyw2ICsyNjM3LDMz
IEBAIGNsYXNzIFRlc3RDaGVja1BhdGNoUmVsZXZhbmNlKEJ1aWxkU3RlcE0KICAgICAgICAgcmV0
dXJuIHJjCiAKIAorY2xhc3MgVGVzdEZpbmRNb2RpZmllZExheW91dFRlc3RzKEJ1aWxkU3RlcE1p
eGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgor
ICAgICAgICBzZWxmLmxvbmdNZXNzYWdlID0gVHJ1ZQorICAgICAgICByZXR1cm4gc2VsZi5zZXRV
cEJ1aWxkU3RlcCgpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLnRlYXJEb3duQnVpbGRTdGVwKCkKKworICAgIGRlZiB0ZXN0X3JlbGV2YW50X3BhdGNoKHNl
bGYpOgorICAgICAgICBzZWxmLnNldHVwU3RlcChGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cygpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZpbmRNb2RpZmllZExheW91dFRlc3RzLmhhbHRPbkZh
aWx1cmUsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmluZE1vZGlmaWVkTGF5b3V0
VGVzdHMuZmx1bmtPbkZhaWx1cmUsIFRydWUpCisgICAgICAgIEZpbmRNb2RpZmllZExheW91dFRl
c3RzLl9nZXRfcGF0Y2ggPSBsYW1iZGEgeDogYicrKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwnCisgICAgICAgIHNlbGYu
ZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdQYXRjaCBjb250YWlu
cyByZWxldmFudCBjaGFuZ2VzJykKKyAgICAgICAgcmMgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZ2V0UHJvcGVydHkoJ21vZGlmaWVkX3Rlc3RzJyksIFsn
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwnXSkKKyAgICAgICAgcmV0dXJuIHJjCisKKyAgICBkZWYgdGVzdF9ub25fcmVsZXZh
bnRfcGF0Y2goc2VsZik6CisgICAgICAgIHNlbGYuc2V0dXBTdGVwKEZpbmRNb2RpZmllZExheW91
dFRlc3RzKCkpCisgICAgICAgIEZpbmRNb2RpZmllZExheW91dFRlc3RzLl9nZXRfcGF0Y2ggPSBs
YW1iZGEgeDogYidTYW1wbGUgcGF0Y2ggd2hpY2ggZG9lcyBub3QgbW9kaWZ5IGFueSBsYXlvdXQg
dGVzdCcKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9z
dHJpbmc9J1BhdGNoIGRvZXNuXCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcycpCisgICAgICAgIHJj
ID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmdldFByb3Bl
cnR5KCdtb2RpZmllZF90ZXN0cycpLCBOb25lKQorICAgICAgICByZXR1cm4gcmMKKworCiBjbGFz
cyBUZXN0QXJjaGl2ZUJ1aWx0UHJvZHVjdChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRl
c3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5sb25nTWVz
c2FnZSA9IFRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424578</attachid>
            <date>2021-03-29 14:18:52 -0700</date>
            <delta_ts>2021-03-30 09:31:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223890-20210329171851.patch</filename>
            <type>text/plain</type>
            <size>9766</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3NTE2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIxLTAzLTI5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzXSBBZGQgYnVpbGQgc3RlcCB0byBmaW5kIGxpc3Qgb2YgbGF5b3V0
IHRlc3RzIG1vZGlmaWVkIGJ5IGEgcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMzg5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKyAgICAg
ICAgKEFuYWx5emVQYXRjaCk6IENyZWF0ZWQgY29tbW9uIGJhc2UgY2xhc3MgZm9yIENoZWNrUGF0
Y2hSZWxldmFuY2UgYW5kIEZpbmRNb2RpZmllZExheW91dFRlc3RzLgorICAgICAgICAoQW5hbHl6
ZVBhdGNoLl9nZXRfcGF0Y2gpOiBNb3ZlZCB0byBiYXNlIGNsYXNzLgorICAgICAgICAoQW5hbHl6
ZVBhdGNoLl9hZGRUb0xvZyk6IERpdHRvLgorICAgICAgICAoQW5hbHl6ZVBhdGNoLmdldFJlc3Vs
dFN1bW1hcnkpOiBEaXR0by4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UpOgorICAgICAg
ICAoRmluZE1vZGlmaWVkTGF5b3V0VGVzdHMpOiBCdWlsZCBzdGVwIHRvIGZpbmQgbGlzdCBvZiBs
YXlvdXQgdGVzdHMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoIGJlaW5nIHByb2Nlc3NlZC4KKyAgICAg
ICAgKEZpbmRNb2RpZmllZExheW91dFRlc3RzLmZpbmRfdGVzdF9uYW1lc19mcm9tX3BhdGNoKToK
KyAgICAgICAgKEZpbmRNb2RpZmllZExheW91dFRlc3RzLnN0YXJ0KToKKyAgICAgICAgKiBDSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5OiBBZGRlZCB1bml0LXRlc3RzLgorCiAy
MDIxLTAzLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWlncmF0ZSBfV0tVc2VyQ29udGVudEV4dGVuc2lvbiBhbmQgb2xkZXIgdmVyc2lv
bnMgb2YgV0tDb250ZW50UnVsZUxpc3QgdG8gV0tDb250ZW50UnVsZUxpc3QgZHVyaW5nIGxvb2t1
cApJbmRleDogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CShyZXZpc2lvbiAyNzUxNjYpCisr
KyBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
MzMsMTIgKzMzMywzNiBAQCBjbGFzcyBBcHBseVBhdGNoKHNoZWxsLlNoZWxsQ29tbWFuZCwgQ29t
CiAgICAgICAgIHJldHVybiByYwogCiAKLWNsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoYnVpbGRz
dGVwLkJ1aWxkU3RlcCk6CitjbGFzcyBBbmFseXplUGF0Y2goYnVpbGRzdGVwLkJ1aWxkU3RlcCk6
CisgICAgZmx1bmtPbkZhaWx1cmUgPSBUcnVlCisgICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKKwor
ICAgIGRlZiBfZ2V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzb3VyY2VzdGFtcCA9IHNlbGYuYnVp
bGQuZ2V0U291cmNlU3RhbXAoc2VsZi5nZXRQcm9wZXJ0eSgnY29kZWJhc2UnLCAnJykpCisgICAg
ICAgIGlmIG5vdCBzb3VyY2VzdGFtcCBvciBub3Qgc291cmNlc3RhbXAucGF0Y2g6CisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gc291cmNlc3RhbXAucGF0Y2hbMV0KKwor
ICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKKyAgICBkZWYgX2FkZFRvTG9nKHNlbGYsIGxvZ05h
bWUsIG1lc3NhZ2UpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBsb2cgPSBzZWxmLmdldExv
Zyhsb2dOYW1lKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBsb2cgPSB5
aWVsZCBzZWxmLmFkZExvZyhsb2dOYW1lKQorICAgICAgICBsb2cuYWRkU3Rkb3V0KG1lc3NhZ2Up
CisKKyAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5yZXN1
bHRzID09IEZBSUxVUkU6CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ1BhdGNoIGRvZXNu
XCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcyd9CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBT
VUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdQYXRjaCBjb250YWlucyByZWxl
dmFudCBjaGFuZ2VzJ30KKyAgICAgICAgcmV0dXJuIGJ1aWxkc3RlcC5CdWlsZFN0ZXAuZ2V0UmVz
dWx0U3VtbWFyeShzZWxmKQorCisKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQW5hbHl6ZVBh
dGNoKToKICAgICBuYW1lID0gJ2NoZWNrLXBhdGNoLXJlbGV2YW5jZScKICAgICBkZXNjcmlwdGlv
biA9IFsnY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHJ1bm5pbmcnXQogICAgIGRlc2NyaXB0aW9uRG9u
ZSA9IFsnUGF0Y2ggY29udGFpbnMgcmVsZXZhbnQgY2hhbmdlcyddCi0gICAgZmx1bmtPbkZhaWx1
cmUgPSBUcnVlCi0gICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKIAogICAgIGJpbmRpbmdzX3BhdGhz
ID0gWwogICAgICAgICAnU291cmNlL1dlYkNvcmUnLApAQCAtNDE1LDIwICs0MzksNiBAQCBjbGFz
cyBDaGVja1BhdGNoUmVsZXZhbmNlKGJ1aWxkc3RlcC5CdWlsCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgZGVmIF9nZXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHNvdXJjZXN0YW1wID0gc2VsZi5idWlsZC5nZXRTb3VyY2VTdGFtcChz
ZWxmLmdldFByb3BlcnR5KCdjb2RlYmFzZScsICcnKSkKLSAgICAgICAgaWYgbm90IHNvdXJjZXN0
YW1wIG9yIG5vdCBzb3VyY2VzdGFtcC5wYXRjaDoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIHJldHVybiBzb3VyY2VzdGFtcC5wYXRjaFsxXQotCi0gICAgQGRlZmVyLmlubGluZUNh
bGxiYWNrcwotICAgIGRlZiBfYWRkVG9Mb2coc2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGxvZyA9IHNlbGYuZ2V0TG9nKGxvZ05hbWUpCi0gICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGxvZyA9IHlpZWxkIHNlbGYuYWRkTG9nKGxv
Z05hbWUpCi0gICAgICAgIGxvZy5hZGRTdGRvdXQobWVzc2FnZSkKLQogICAgIGRlZiBzdGFydChz
ZWxmKToKICAgICAgICAgcGF0Y2ggPSBzZWxmLl9nZXRfcGF0Y2goKQogICAgICAgICBpZiBub3Qg
cGF0Y2g6CkBAIC00NDcsMTAgKzQ1Nyw0NiBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKGJ1
aWxkc3RlcC5CdWlsCiAgICAgICAgIHNlbGYuYnVpbGQuYnVpbGRGaW5pc2hlZChbJ1BhdGNoIHt9
IGRvZXNuXCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcycuZm9ybWF0KHNlbGYuZ2V0UHJvcGVydHko
J3BhdGNoX2lkJywgJycpKV0sIFNLSVBQRUQpCiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBk
ZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09IEZB
SUxVUkU6Ci0gICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ1BhdGNoIGRvZXNuXCd0IGhhdmUg
cmVsZXZhbnQgY2hhbmdlcyd9Ci0gICAgICAgIHJldHVybiBzdXBlcihDaGVja1BhdGNoUmVsZXZh
bmNlLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKKworY2xhc3MgRmluZE1vZGlmaWVkTGF5b3V0
VGVzdHMoQW5hbHl6ZVBhdGNoKToKKyAgICBuYW1lID0gJ2ZpbmQtbW9kaWZpZWQtbGF5b3V0LXRl
c3RzJworICAgIFJFX0xBWU9VVF9URVNUID0gYideKFwrXCtcKykuKihMYXlvdXRUZXN0cy4qLmh0
bWwpJworICAgIERJUkVDVE9SSUVTX1RPX0lHTk9SRSA9IFsncmVmZXJlbmNlJywgJ3JlZnRlc3Qn
LCAncmVzb3VyY2VzJywgJ3N1cHBvcnQnLCAnc2NyaXB0LXRlc3RzJywgJ3Rvb2xzJ10KKyAgICBT
VUZGSVhFU19UT19JR05PUkUgPSBbJy1leHBlY3RlZCcsICctZXhwZWN0ZWQtbWlzbWF0Y2gnLCAn
LXJlZicsICctbm90cmVmJ10KKworICAgIGRlZiBmaW5kX3Rlc3RfbmFtZXNfZnJvbV9wYXRjaChz
ZWxmLCBwYXRjaCk6CisgICAgICAgIHRlc3RzID0gW10KKyAgICAgICAgZm9yIGxpbmUgaW4gcGF0
Y2guc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goc2VsZi5SRV9M
QVlPVVRfVEVTVCwgbGluZSwgcmUuSUdOT1JFQ0FTRSkKKyAgICAgICAgICAgIGlmIG1hdGNoOgor
ICAgICAgICAgICAgICAgIGlmIGFueSgoc3VmZml4ICsgJy5odG1sJykuZW5jb2RlKCd1dGYtOCcp
IGluIGxpbmUgZm9yIHN1ZmZpeCBpbiBzZWxmLlNVRkZJWEVTX1RPX0lHTk9SRSk6CisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICB0ZXN0X25hbWUgPSBtYXRj
aC5ncm91cCgyKS5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAgICAgICBpZiBhbnkoZGlyZWN0
b3J5IGluIHRlc3RfbmFtZS5zcGxpdCgnLycpIGZvciBkaXJlY3RvcnkgaW4gc2VsZi5ESVJFQ1RP
UklFU19UT19JR05PUkUpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgICAgIHRlc3RzLmFwcGVuZCh0ZXN0X25hbWUpCisgICAgICAgIHJldHVybiBsaXN0KHNldCh0
ZXN0cykpCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgIHBhdGNoID0gc2VsZi5fZ2V0
X3BhdGNoKCkKKyAgICAgICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgc2VsZi5maW5pc2hl
ZChTVUNDRVNTKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB0ZXN0cyA9IHNl
bGYuZmluZF90ZXN0X25hbWVzX2Zyb21fcGF0Y2gocGF0Y2gpCisKKyAgICAgICAgaWYgdGVzdHM6
CisgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnVGhpcyBwYXRjaCBtb2RpZmll
cyBmb2xsb3dpbmcgdGVzdHM6IHt9Jy5mb3JtYXQodGVzdHMpKQorICAgICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnbW9kaWZpZWRfdGVzdHMnLCB0ZXN0cykKKyAgICAgICAgICAgIHNlbGYuZmlu
aXNoZWQoU1VDQ0VTUykKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgc2VsZi5f
YWRkVG9Mb2coJ3N0ZGlvJywgJ1RoaXMgcGF0Y2ggZG9lcyBub3QgbW9kaWZ5IGFueSBsYXlvdXQg
dGVzdHMnKQorICAgICAgICBzZWxmLmZpbmlzaGVkKEZBSUxVUkUpCisgICAgICAgIHNlbGYuYnVp
bGQucmVzdWx0cyA9IFNLSVBQRUQKKyAgICAgICAgc2VsZi5idWlsZC5idWlsZEZpbmlzaGVkKFsn
UGF0Y2gge30gZG9lc25cJ3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzJy5mb3JtYXQoc2VsZi5nZXRQ
cm9wZXJ0eSgncGF0Y2hfaWQnLCAnJykpXSwgU0tJUFBFRCkKKyAgICAgICAgcmV0dXJuIE5vbmUK
IAogCiBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgpJbmRleDogVG9vbHMvQ0lTdXBwb3J0L2V3cy1i
dWlsZC9zdGVwc191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DSVN1cHBvcnQvZXdz
LWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzUxNjYpCisrKyBUb29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Niw4
ICs0Niw4IEBAIGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHQKICAgICAg
ICAgICAgICAgICAgICBDbGVhbkJ1aWxkLCBDbGVhblVwR2l0SW5kZXhMb2NrLCBDbGVhbldvcmtp
bmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gsIENvbXBpbGVX
ZWJLaXQsCiAgICAgICAgICAgICAgICAgICAgQ29tcGlsZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29u
ZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAogICAgICAgICAgICAgICAgICAgIERv
d25sb2FkQnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19C
VUlMRF9IT1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAot
ICAgICAgICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3Ms
IEluc3RhbGxHdGtEZXBlbmRlbmNpZXMsIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMsIEtpbGxPbGRQ
cm9jZXNzZXMsCi0gICAgICAgICAgICAgICAgICAgUHJpbnRDb25maWd1cmF0aW9uLCBQdXNoQ29t
bWl0VG9XZWJLaXRSZXBvLCBSZVJ1bkFQSVRlc3RzLCBSZVJ1bkphdmFTY3JpcHRDb3JlVGVzdHMs
IFJlUnVuV2ViS2l0UGVybFRlc3RzLAorICAgICAgICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMs
IEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmllZExheW91dFRlc3RzLCBJbnN0YWxs
R3RrRGVwZW5kZW5jaWVzLCBJbnN0YWxsV3BlRGVwZW5kZW5jaWVzLAorICAgICAgICAgICAgICAg
ICAgIEtpbGxPbGRQcm9jZXNzZXMsIFByaW50Q29uZmlndXJhdGlvbiwgUHVzaENvbW1pdFRvV2Vi
S2l0UmVwbywgUmVSdW5BUElUZXN0cywgUmVSdW5KYXZhU2NyaXB0Q29yZVRlc3RzLCBSZVJ1bldl
YktpdFBlcmxUZXN0cywKICAgICAgICAgICAgICAgICAgICBSZVJ1bldlYktpdFRlc3RzLCBSdW5B
UElUZXN0cywgUnVuQVBJVGVzdHNXaXRob3V0UGF0Y2gsIFJ1bkJpbmRpbmdzVGVzdHMsIFJ1bkJ1
aWxkV2ViS2l0T3JnVW5pdFRlc3RzLAogICAgICAgICAgICAgICAgICAgIFJ1bkJ1aWxkYm90Q2hl
Y2tDb25maWdGb3JCdWlsZFdlYktpdCwgUnVuQnVpbGRib3RDaGVja0NvbmZpZ0ZvckVXUywgUnVu
RVdTVW5pdFRlc3RzLCBSdW5SZXN1bHRzZGJweVRlc3RzLAogICAgICAgICAgICAgICAgICAgIFJ1
bkphdmFTY3JpcHRDb3JlVGVzdHMsIFJ1bkpTQ1Rlc3RzV2l0aG91dFBhdGNoLCBSdW5XZWJLaXQx
VGVzdHMsIFJ1bldlYktpdFBlcmxUZXN0cywgUnVuV2ViS2l0UHlQeXRob24yVGVzdHMsCkBAIC0y
NjM3LDYgKzI2MzcsNTMgQEAgY2xhc3MgVGVzdENoZWNrUGF0Y2hSZWxldmFuY2UoQnVpbGRTdGVw
TQogICAgICAgICByZXR1cm4gcmMKIAogCitjbGFzcyBUZXN0RmluZE1vZGlmaWVkTGF5b3V0VGVz
dHMoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYg
c2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYubG9uZ01lc3NhZ2UgPSBUcnVlCisgICAgICAgIHJl
dHVybiBzZWxmLnNldFVwQnVpbGRTdGVwKCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQorCisgICAgZGVmIHRlc3RfcmVs
ZXZhbnRfcGF0Y2goc2VsZik6CisgICAgICAgIHNlbGYuc2V0dXBTdGVwKEZpbmRNb2RpZmllZExh
eW91dFRlc3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmluZE1vZGlmaWVkTGF5b3V0
VGVzdHMuaGFsdE9uRmFpbHVyZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGaW5k
TW9kaWZpZWRMYXlvdXRUZXN0cy5mbHVua09uRmFpbHVyZSwgVHJ1ZSkKKyAgICAgICAgRmluZE1v
ZGlmaWVkTGF5b3V0VGVzdHMuX2dldF9wYXRjaCA9IGxhbWJkYSB4OiBiJysrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLWluc2VjdXJlLWNv
bnRleHQuaHRtbCcKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBz
dGF0ZV9zdHJpbmc9J1BhdGNoIGNvbnRhaW5zIHJlbGV2YW50IGNoYW5nZXMnKQorICAgICAgICBy
YyA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9w
ZXJ0eSgnbW9kaWZpZWRfdGVzdHMnKSwgWydMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9k
ZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLWluc2VjdXJlLWNvbnRleHQuaHRtbCddKQorICAgICAg
ICByZXR1cm4gcmMKKworICAgIGRlZiB0ZXN0X2lnbm9yZV9jZXJ0YWluX2RpcmVjdG9yaWVzKHNl
bGYpOgorICAgICAgICBzZWxmLnNldHVwU3RlcChGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cygpKQor
ICAgICAgICBkaXJfbmFtZXMgPSBbJ3JlZmVyZW5jZScsICdyZWZ0ZXN0JywgJ3Jlc291cmNlcycs
ICdzdXBwb3J0JywgJ3NjcmlwdC10ZXN0cycsICd0b29scyddCisgICAgICAgIGZvciBkaXJfbmFt
ZSBpbiBkaXJfbmFtZXM6CisgICAgICAgICAgICBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy5fZ2V0
X3BhdGNoID0gbGFtYmRhIHg6ICcrKysgTGF5b3V0VGVzdHMve30vdGVzdC1uYW1lLmh0bWwnLmZv
cm1hdChkaXJfbmFtZSkuZW5jb2RlKCd1dGYtOCcpCisgICAgICAgICAgICBzZWxmLmV4cGVjdE91
dGNvbWUocmVzdWx0PUZBSUxVUkUsIHN0YXRlX3N0cmluZz0nUGF0Y2ggZG9lc25cJ3QgaGF2ZSBy
ZWxldmFudCBjaGFuZ2VzJykKKyAgICAgICAgICAgIHJjID0gc2VsZi5ydW5TdGVwKCkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9wZXJ0eSgnbW9kaWZpZWRfdGVzdHMn
KSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIHJjCisKKyAgICBkZWYgdGVzdF9pZ25vcmVfY2VydGFp
bl9zdWZmaXhlcyhzZWxmKToKKyAgICAgICAgc2VsZi5zZXR1cFN0ZXAoRmluZE1vZGlmaWVkTGF5
b3V0VGVzdHMoKSkKKyAgICAgICAgc3VmZml4ZXMgPSBbJy1leHBlY3RlZCcsICctZXhwZWN0ZWQt
bWlzbWF0Y2gnLCAnLXJlZicsICctbm90cmVmJ10KKyAgICAgICAgZm9yIHN1ZmZpeCBpbiBzdWZm
aXhlczoKKyAgICAgICAgICAgIEZpbmRNb2RpZmllZExheW91dFRlc3RzLl9nZXRfcGF0Y2ggPSBs
YW1iZGEgeDogJysrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2UtbW90aW9u
LXt9Lmh0bWwnLmZvcm1hdChzdWZmaXgpLmVuY29kZSgndXRmLTgnKQorICAgICAgICAgICAgc2Vs
Zi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J1BhdGNoIGRvZXNu
XCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcycpCisgICAgICAgICAgICByYyA9IHNlbGYucnVuU3Rl
cCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZ2V0UHJvcGVydHkoJ21vZGlm
aWVkX3Rlc3RzJyksIE5vbmUpCisgICAgICAgIHJldHVybiByYworCisgICAgZGVmIHRlc3Rfbm9u
X3JlbGV2YW50X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLnNldHVwU3RlcChGaW5kTW9kaWZp
ZWRMYXlvdXRUZXN0cygpKQorICAgICAgICBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy5fZ2V0X3Bh
dGNoID0gbGFtYmRhIHg6IGInU2FtcGxlIHBhdGNoIHdoaWNoIGRvZXMgbm90IG1vZGlmeSBhbnkg
bGF5b3V0IHRlc3QnCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwg
c3RhdGVfc3RyaW5nPSdQYXRjaCBkb2VzblwndCBoYXZlIHJlbGV2YW50IGNoYW5nZXMnKQorICAg
ICAgICByYyA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5n
ZXRQcm9wZXJ0eSgnbW9kaWZpZWRfdGVzdHMnKSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIHJjCisK
KwogY2xhc3MgVGVzdEFyY2hpdmVCdWlsdFByb2R1Y3QoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMs
IHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYu
bG9uZ01lc3NhZ2UgPSBUcnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424651</attachid>
            <date>2021-03-30 09:31:46 -0700</date>
            <delta_ts>2021-03-30 10:14:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223890-20210330123145.patch</filename>
            <type>text/plain</type>
            <size>10198</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3NTE2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIxLTAzLTI5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzXSBBZGQgYnVpbGQgc3RlcCB0byBmaW5kIGxpc3Qgb2YgbGF5b3V0
IHRlc3RzIG1vZGlmaWVkIGJ5IGEgcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMzg5MAorCisgICAgICAgIFJldmlld2VkIGJ5IEpvbmF0aGFu
IEJlZGFyZC4KKworICAgICAgICAqIENJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHk6CisgICAg
ICAgIChBbmFseXplUGF0Y2gpOiBDcmVhdGVkIGNvbW1vbiBiYXNlIGNsYXNzIGZvciBDaGVja1Bh
dGNoUmVsZXZhbmNlIGFuZCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy4KKyAgICAgICAgKEFuYWx5
emVQYXRjaC5fZ2V0X3BhdGNoKTogTW92ZWQgdG8gYmFzZSBjbGFzcy4KKyAgICAgICAgKEFuYWx5
emVQYXRjaC5fYWRkVG9Mb2cpOiBEaXR0by4KKyAgICAgICAgKEFuYWx5emVQYXRjaC5nZXRSZXN1
bHRTdW1tYXJ5KTogRGl0dG8uCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKToKKyAgICAg
ICAgKEZpbmRNb2RpZmllZExheW91dFRlc3RzKTogQnVpbGQgc3RlcCB0byBmaW5kIGxpc3Qgb2Yg
bGF5b3V0IHRlc3RzIG1vZGlmaWVkIGJ5IHRoZSBwYXRjaCBiZWluZyBwcm9jZXNzZWQuCisgICAg
ICAgIChGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy5maW5kX3Rlc3RfbmFtZXNfZnJvbV9wYXRjaCk6
CisgICAgICAgIChGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy5zdGFydCk6CisgICAgICAgICogQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weTogQWRkZWQgdW5pdC10ZXN0cy4KKwog
MjAyMS0wMy0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIE1pZ3JhdGUgX1dLVXNlckNvbnRlbnRFeHRlbnNpb24gYW5kIG9sZGVyIHZlcnNp
b25zIG9mIFdLQ29udGVudFJ1bGVMaXN0IHRvIFdLQ29udGVudFJ1bGVMaXN0IGR1cmluZyBsb29r
dXAKSW5kZXg6IFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQkocmV2aXNpb24gMjc1MTY2KQor
KysgVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQkod29ya2luZyBjb3B5KQpAQCAt
MzMzLDEyICszMzMsMzYgQEAgY2xhc3MgQXBwbHlQYXRjaChzaGVsbC5TaGVsbENvbW1hbmQsIENv
bQogICAgICAgICByZXR1cm4gcmMKIAogCi1jbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKGJ1aWxk
c3RlcC5CdWlsZFN0ZXApOgorY2xhc3MgQW5hbHl6ZVBhdGNoKGJ1aWxkc3RlcC5CdWlsZFN0ZXAp
OgorICAgIGZsdW5rT25GYWlsdXJlID0gVHJ1ZQorICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCisK
KyAgICBkZWYgX2dldF9wYXRjaChzZWxmKToKKyAgICAgICAgc291cmNlc3RhbXAgPSBzZWxmLmJ1
aWxkLmdldFNvdXJjZVN0YW1wKHNlbGYuZ2V0UHJvcGVydHkoJ2NvZGViYXNlJywgJycpKQorICAg
ICAgICBpZiBub3Qgc291cmNlc3RhbXAgb3Igbm90IHNvdXJjZXN0YW1wLnBhdGNoOgorICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNvdXJjZXN0YW1wLnBhdGNoWzFdCisK
KyAgICBAZGVmZXIuaW5saW5lQ2FsbGJhY2tzCisgICAgZGVmIF9hZGRUb0xvZyhzZWxmLCBsb2dO
YW1lLCBtZXNzYWdlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9nID0gc2VsZi5nZXRM
b2cobG9nTmFtZSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgbG9nID0g
eWllbGQgc2VsZi5hZGRMb2cobG9nTmFtZSkKKyAgICAgICAgbG9nLmFkZFN0ZG91dChtZXNzYWdl
KQorCisgICAgZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CisgICAgICAgIGlmIHNlbGYucmVz
dWx0cyA9PSBGQUlMVVJFOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdQYXRjaCBkb2Vz
blwndCBoYXZlIHJlbGV2YW50IGNoYW5nZXMnfQorICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0g
U1VDQ0VTUzoKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnUGF0Y2ggY29udGFpbnMgcmVs
ZXZhbnQgY2hhbmdlcyd9CisgICAgICAgIHJldHVybiBidWlsZHN0ZXAuQnVpbGRTdGVwLmdldFJl
c3VsdFN1bW1hcnkoc2VsZikKKworCitjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFuYWx5emVQ
YXRjaCk6CiAgICAgbmFtZSA9ICdjaGVjay1wYXRjaC1yZWxldmFuY2UnCiAgICAgZGVzY3JpcHRp
b24gPSBbJ2NoZWNrLXBhdGNoLXJlbGV2YW5jZSBydW5uaW5nJ10KICAgICBkZXNjcmlwdGlvbkRv
bmUgPSBbJ1BhdGNoIGNvbnRhaW5zIHJlbGV2YW50IGNoYW5nZXMnXQotICAgIGZsdW5rT25GYWls
dXJlID0gVHJ1ZQotICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCiAKICAgICBiaW5kaW5nc19wYXRo
cyA9IFsKICAgICAgICAgJ1NvdXJjZS9XZWJDb3JlJywKQEAgLTQxNSwyMCArNDM5LDYgQEAgY2xh
c3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShidWlsZHN0ZXAuQnVpbAogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBfZ2V0X3BhdGNo
KHNlbGYpOgotICAgICAgICBzb3VyY2VzdGFtcCA9IHNlbGYuYnVpbGQuZ2V0U291cmNlU3RhbXAo
c2VsZi5nZXRQcm9wZXJ0eSgnY29kZWJhc2UnLCAnJykpCi0gICAgICAgIGlmIG5vdCBzb3VyY2Vz
dGFtcCBvciBub3Qgc291cmNlc3RhbXAucGF0Y2g6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQot
ICAgICAgICByZXR1cm4gc291cmNlc3RhbXAucGF0Y2hbMV0KLQotICAgIEBkZWZlci5pbmxpbmVD
YWxsYmFja3MKLSAgICBkZWYgX2FkZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBsb2cgPSBzZWxmLmdldExvZyhsb2dOYW1lKQotICAgICAg
ICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBsb2cgPSB5aWVsZCBzZWxmLmFkZExvZyhs
b2dOYW1lKQotICAgICAgICBsb2cuYWRkU3Rkb3V0KG1lc3NhZ2UpCi0KICAgICBkZWYgc3RhcnQo
c2VsZik6CiAgICAgICAgIHBhdGNoID0gc2VsZi5fZ2V0X3BhdGNoKCkKICAgICAgICAgaWYgbm90
IHBhdGNoOgpAQCAtNDQ3LDEwICs0NTcsNDUgQEAgY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShi
dWlsZHN0ZXAuQnVpbAogICAgICAgICBzZWxmLmJ1aWxkLmJ1aWxkRmluaXNoZWQoWydQYXRjaCB7
fSBkb2VzblwndCBoYXZlIHJlbGV2YW50IGNoYW5nZXMnLmZvcm1hdChzZWxmLmdldFByb3BlcnR5
KCdwYXRjaF9pZCcsICcnKSldLCBTS0lQUEVEKQogICAgICAgICByZXR1cm4gTm9uZQogCi0gICAg
ZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBG
QUlMVVJFOgotICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdQYXRjaCBkb2VzblwndCBoYXZl
IHJlbGV2YW50IGNoYW5nZXMnfQotICAgICAgICByZXR1cm4gc3VwZXIoQ2hlY2tQYXRjaFJlbGV2
YW5jZSwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCisKK2NsYXNzIEZpbmRNb2RpZmllZExheW91
dFRlc3RzKEFuYWx5emVQYXRjaCk6CisgICAgbmFtZSA9ICdmaW5kLW1vZGlmaWVkLWxheW91dC10
ZXN0cycKKyAgICBSRV9MQVlPVVRfVEVTVCA9IGInXihcK1wrXCspLiooTGF5b3V0VGVzdHMuKlwu
aHRtbCknCisgICAgRElSRUNUT1JJRVNfVE9fSUdOT1JFID0gWydyZWZlcmVuY2UnLCAncmVmdGVz
dCcsICdyZXNvdXJjZXMnLCAnc3VwcG9ydCcsICdzY3JpcHQtdGVzdHMnLCAndG9vbHMnXQorICAg
IFNVRkZJWEVTX1RPX0lHTk9SRSA9IFsnLWV4cGVjdGVkJywgJy1leHBlY3RlZC1taXNtYXRjaCcs
ICctcmVmJywgJy1ub3RyZWYnXQorCisgICAgZGVmIGZpbmRfdGVzdF9uYW1lc19mcm9tX3BhdGNo
KHNlbGYsIHBhdGNoKToKKyAgICAgICAgdGVzdHMgPSBbXQorICAgICAgICBmb3IgbGluZSBpbiBw
YXRjaC5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChzZWxmLlJF
X0xBWU9VVF9URVNULCBsaW5lLCByZS5JR05PUkVDQVNFKQorICAgICAgICAgICAgaWYgbWF0Y2g6
CisgICAgICAgICAgICAgICAgaWYgYW55KChzdWZmaXggKyAnLmh0bWwnKS5lbmNvZGUoJ3V0Zi04
JykgaW4gbGluZSBmb3Igc3VmZml4IGluIHNlbGYuU1VGRklYRVNfVE9fSUdOT1JFKToKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICB0ZXN0X25hbWUgPSBtYXRj
aC5ncm91cCgyKS5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAgICAgICBpZiBhbnkoZGlyZWN0
b3J5IGluIHRlc3RfbmFtZS5zcGxpdCgnLycpIGZvciBkaXJlY3RvcnkgaW4gc2VsZi5ESVJFQ1RP
UklFU19UT19JR05PUkUpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgICAgIHRlc3RzLmFwcGVuZCh0ZXN0X25hbWUpCisgICAgICAgIHJldHVybiBsaXN0KHNldCh0
ZXN0cykpCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgIHBhdGNoID0gc2VsZi5fZ2V0
X3BhdGNoKCkKKyAgICAgICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgc2VsZi5maW5pc2hl
ZChTVUNDRVNTKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB0ZXN0cyA9IHNl
bGYuZmluZF90ZXN0X25hbWVzX2Zyb21fcGF0Y2gocGF0Y2gpCisKKyAgICAgICAgaWYgdGVzdHM6
CisgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnVGhpcyBwYXRjaCBtb2RpZmll
cyBmb2xsb3dpbmcgdGVzdHM6IHt9Jy5mb3JtYXQodGVzdHMpKQorICAgICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnbW9kaWZpZWRfdGVzdHMnLCB0ZXN0cykKKyAgICAgICAgICAgIHNlbGYuZmlu
aXNoZWQoU1VDQ0VTUykKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgc2VsZi5f
YWRkVG9Mb2coJ3N0ZGlvJywgJ1RoaXMgcGF0Y2ggZG9lcyBub3QgbW9kaWZ5IGFueSBsYXlvdXQg
dGVzdHMnKQorICAgICAgICBzZWxmLmZpbmlzaGVkKEZBSUxVUkUpCisgICAgICAgIHNlbGYuYnVp
bGQucmVzdWx0cyA9IFNLSVBQRUQKKyAgICAgICAgc2VsZi5idWlsZC5idWlsZEZpbmlzaGVkKFsn
UGF0Y2gge30gZG9lc25cJ3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzJy5mb3JtYXQoc2VsZi5nZXRQ
cm9wZXJ0eSgncGF0Y2hfaWQnLCAnJykpXSwgU0tJUFBFRCkKKyAgICAgICAgcmV0dXJuIE5vbmUK
IAogCiBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgpJbmRleDogVG9vbHMvQ0lTdXBwb3J0L2V3cy1i
dWlsZC9zdGVwc191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DSVN1cHBvcnQvZXdz
LWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzUxNjYpCisrKyBUb29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Niw4
ICs0Niw4IEBAIGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHQKICAgICAg
ICAgICAgICAgICAgICBDbGVhbkJ1aWxkLCBDbGVhblVwR2l0SW5kZXhMb2NrLCBDbGVhbldvcmtp
bmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gsIENvbXBpbGVX
ZWJLaXQsCiAgICAgICAgICAgICAgICAgICAgQ29tcGlsZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29u
ZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAogICAgICAgICAgICAgICAgICAgIERv
d25sb2FkQnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19C
VUlMRF9IT1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAot
ICAgICAgICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3Ms
IEluc3RhbGxHdGtEZXBlbmRlbmNpZXMsIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMsIEtpbGxPbGRQ
cm9jZXNzZXMsCi0gICAgICAgICAgICAgICAgICAgUHJpbnRDb25maWd1cmF0aW9uLCBQdXNoQ29t
bWl0VG9XZWJLaXRSZXBvLCBSZVJ1bkFQSVRlc3RzLCBSZVJ1bkphdmFTY3JpcHRDb3JlVGVzdHMs
IFJlUnVuV2ViS2l0UGVybFRlc3RzLAorICAgICAgICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMs
IEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmllZExheW91dFRlc3RzLCBJbnN0YWxs
R3RrRGVwZW5kZW5jaWVzLCBJbnN0YWxsV3BlRGVwZW5kZW5jaWVzLAorICAgICAgICAgICAgICAg
ICAgIEtpbGxPbGRQcm9jZXNzZXMsIFByaW50Q29uZmlndXJhdGlvbiwgUHVzaENvbW1pdFRvV2Vi
S2l0UmVwbywgUmVSdW5BUElUZXN0cywgUmVSdW5KYXZhU2NyaXB0Q29yZVRlc3RzLCBSZVJ1bldl
YktpdFBlcmxUZXN0cywKICAgICAgICAgICAgICAgICAgICBSZVJ1bldlYktpdFRlc3RzLCBSdW5B
UElUZXN0cywgUnVuQVBJVGVzdHNXaXRob3V0UGF0Y2gsIFJ1bkJpbmRpbmdzVGVzdHMsIFJ1bkJ1
aWxkV2ViS2l0T3JnVW5pdFRlc3RzLAogICAgICAgICAgICAgICAgICAgIFJ1bkJ1aWxkYm90Q2hl
Y2tDb25maWdGb3JCdWlsZFdlYktpdCwgUnVuQnVpbGRib3RDaGVja0NvbmZpZ0ZvckVXUywgUnVu
RVdTVW5pdFRlc3RzLCBSdW5SZXN1bHRzZGJweVRlc3RzLAogICAgICAgICAgICAgICAgICAgIFJ1
bkphdmFTY3JpcHRDb3JlVGVzdHMsIFJ1bkpTQ1Rlc3RzV2l0aG91dFBhdGNoLCBSdW5XZWJLaXQx
VGVzdHMsIFJ1bldlYktpdFBlcmxUZXN0cywgUnVuV2ViS2l0UHlQeXRob24yVGVzdHMsCkBAIC0y
NjM3LDYgKzI2MzcsNjEgQEAgY2xhc3MgVGVzdENoZWNrUGF0Y2hSZWxldmFuY2UoQnVpbGRTdGVw
TQogICAgICAgICByZXR1cm4gcmMKIAogCitjbGFzcyBUZXN0RmluZE1vZGlmaWVkTGF5b3V0VGVz
dHMoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYg
c2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYubG9uZ01lc3NhZ2UgPSBUcnVlCisgICAgICAgIHJl
dHVybiBzZWxmLnNldFVwQnVpbGRTdGVwKCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQorCisgICAgZGVmIHRlc3RfcmVs
ZXZhbnRfcGF0Y2goc2VsZik6CisgICAgICAgIHNlbGYuc2V0dXBTdGVwKEZpbmRNb2RpZmllZExh
eW91dFRlc3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmluZE1vZGlmaWVkTGF5b3V0
VGVzdHMuaGFsdE9uRmFpbHVyZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGaW5k
TW9kaWZpZWRMYXlvdXRUZXN0cy5mbHVua09uRmFpbHVyZSwgVHJ1ZSkKKyAgICAgICAgRmluZE1v
ZGlmaWVkTGF5b3V0VGVzdHMuX2dldF9wYXRjaCA9IGxhbWJkYSB4OiBiJysrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLWluc2VjdXJlLWNv
bnRleHQuaHRtbCcKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBz
dGF0ZV9zdHJpbmc9J1BhdGNoIGNvbnRhaW5zIHJlbGV2YW50IGNoYW5nZXMnKQorICAgICAgICBy
YyA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9w
ZXJ0eSgnbW9kaWZpZWRfdGVzdHMnKSwgWydMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9k
ZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLWluc2VjdXJlLWNvbnRleHQuaHRtbCddKQorICAgICAg
ICByZXR1cm4gcmMKKworICAgIGRlZiB0ZXN0X2lnbm9yZV9jZXJ0YWluX2RpcmVjdG9yaWVzKHNl
bGYpOgorICAgICAgICBzZWxmLnNldHVwU3RlcChGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cygpKQor
ICAgICAgICBkaXJfbmFtZXMgPSBbJ3JlZmVyZW5jZScsICdyZWZ0ZXN0JywgJ3Jlc291cmNlcycs
ICdzdXBwb3J0JywgJ3NjcmlwdC10ZXN0cycsICd0b29scyddCisgICAgICAgIGZvciBkaXJfbmFt
ZSBpbiBkaXJfbmFtZXM6CisgICAgICAgICAgICBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy5fZ2V0
X3BhdGNoID0gbGFtYmRhIHg6ICcrKysgTGF5b3V0VGVzdHMve30vdGVzdC1uYW1lLmh0bWwnLmZv
cm1hdChkaXJfbmFtZSkuZW5jb2RlKCd1dGYtOCcpCisgICAgICAgICAgICBzZWxmLmV4cGVjdE91
dGNvbWUocmVzdWx0PUZBSUxVUkUsIHN0YXRlX3N0cmluZz0nUGF0Y2ggZG9lc25cJ3QgaGF2ZSBy
ZWxldmFudCBjaGFuZ2VzJykKKyAgICAgICAgICAgIHJjID0gc2VsZi5ydW5TdGVwKCkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9wZXJ0eSgnbW9kaWZpZWRfdGVzdHMn
KSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIHJjCisKKyAgICBkZWYgdGVzdF9pZ25vcmVfY2VydGFp
bl9zdWZmaXhlcyhzZWxmKToKKyAgICAgICAgc2VsZi5zZXR1cFN0ZXAoRmluZE1vZGlmaWVkTGF5
b3V0VGVzdHMoKSkKKyAgICAgICAgc3VmZml4ZXMgPSBbJy1leHBlY3RlZCcsICctZXhwZWN0ZWQt
bWlzbWF0Y2gnLCAnLXJlZicsICctbm90cmVmJ10KKyAgICAgICAgZm9yIHN1ZmZpeCBpbiBzdWZm
aXhlczoKKyAgICAgICAgICAgIEZpbmRNb2RpZmllZExheW91dFRlc3RzLl9nZXRfcGF0Y2ggPSBs
YW1iZGEgeDogJysrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2UtbW90aW9u
LXt9Lmh0bWwnLmZvcm1hdChzdWZmaXgpLmVuY29kZSgndXRmLTgnKQorICAgICAgICAgICAgc2Vs
Zi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J1BhdGNoIGRvZXNu
XCd0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcycpCisgICAgICAgICAgICByYyA9IHNlbGYucnVuU3Rl
cCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZ2V0UHJvcGVydHkoJ21vZGlm
aWVkX3Rlc3RzJyksIE5vbmUpCisgICAgICAgIHJldHVybiByYworCisgICAgZGVmIHRlc3RfaWdu
b3JlX25vbl9sYXlvdXRfdGVzdF9pbl9odG1sX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgc2Vs
Zi5zZXR1cFN0ZXAoRmluZE1vZGlmaWVkTGF5b3V0VGVzdHMoKSkKKyAgICAgICAgRmluZE1vZGlm
aWVkTGF5b3V0VGVzdHMuX2dldF9wYXRjaCA9IGxhbWJkYSB4OiAnKysrIExheW91dFRlc3RzL2h0
bWwvdGVzdC50eHQnLmVuY29kZSgndXRmLTgnKQorICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUo
cmVzdWx0PUZBSUxVUkUsIHN0YXRlX3N0cmluZz0nUGF0Y2ggZG9lc25cJ3QgaGF2ZSByZWxldmFu
dCBjaGFuZ2VzJykKKyAgICAgICAgcmMgPSBzZWxmLnJ1blN0ZXAoKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuZ2V0UHJvcGVydHkoJ21vZGlmaWVkX3Rlc3RzJyksIE5vbmUpCisgICAg
ICAgIHJldHVybiByYworCisgICAgZGVmIHRlc3Rfbm9uX3JlbGV2YW50X3BhdGNoKHNlbGYpOgor
ICAgICAgICBzZWxmLnNldHVwU3RlcChGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cygpKQorICAgICAg
ICBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cy5fZ2V0X3BhdGNoID0gbGFtYmRhIHg6IGInU2FtcGxl
IHBhdGNoIHdoaWNoIGRvZXMgbm90IG1vZGlmeSBhbnkgbGF5b3V0IHRlc3QnCisgICAgICAgIHNl
bGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdQYXRjaCBkb2Vz
blwndCBoYXZlIHJlbGV2YW50IGNoYW5nZXMnKQorICAgICAgICByYyA9IHNlbGYucnVuU3RlcCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9wZXJ0eSgnbW9kaWZpZWRfdGVz
dHMnKSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIHJjCisKKwogY2xhc3MgVGVzdEFyY2hpdmVCdWls
dFByb2R1Y3QoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYubG9uZ01lc3NhZ2UgPSBUcnVlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>