<?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>70731</bug_id>
          
          <creation_ts>2011-10-24 09:31:36 -0700</creation_ts>
          <short_desc>Translating test configurations to expectation specifiers is slow and inaccurate.</short_desc>
          <delta_ts>2011-10-24 09:33:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>69959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>489368</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-10-24 09:31:36 -0700</bug_when>
    <thetext>Translating test configurations to expectation specifiers is slow and inaccurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489371</commentid>
    <comment_count>1</comment_count>
      <attachid>112199</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-10-24 09:31:58 -0700</bug_when>
    <thetext>Created attachment 112199
WIP: Almost there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489373</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-10-24 09:33:02 -0700</bug_when>
    <thetext>This is complete a rewrite of the logic that was previously there using pivoting tries. It&apos;s faster (no combinatorics!!), but not quite there yet in accuracy.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112199</attachid>
            <date>2011-10-24 09:31:58 -0700</date>
            <delta_ts>2011-10-24 09:31:58 -0700</delta_ts>
            <desc>WIP: Almost there.</desc>
            <filename>bug-70731-20111024093157.patch</filename>
            <type>text/plain</type>
            <size>28160</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc3ODIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YTU2NDM2MmM3ZWViMjI0NzI0OTM4NzJjNjFiYWU4NTMz
YzNmM2RlLi5jOGMyZGYwOTdlNTU4NzZiYzZkMDdhMThlZDJlNTEyYTg1MWNiOGIzIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTEtMTAtMjQgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
KworICAgICAgICBUcmFuc2xhdGluZyB0ZXN0IGNvbmZpZ3VyYXRpb25zIHRvIGV4cGVjdGF0aW9u
IHNwZWNpZmllcnMgaXMgc2xvdyBhbmQgaW5hY2N1cmF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy91aS9yZXN1bHRz
LmpzOgorICAgICAgICAoLik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5w
eToKKwogMjAxMS0xMC0xOCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFNwbGl0IFRlc3RFeHBlY3RhdGlvbnNFZGl0b3IgaW50byBpdHMgb3duIGZp
bGUuCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy91aS9yZXN1bHRzLmpzIGIv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvVGVzdEZhaWx1cmVzL3NjcmlwdHMvdWkvcmVzdWx0cy5qcwppbmRleCAzOGJjNzcwODA1Njlm
NGUyMTQ1NTU0NWY1ZGExM2NlM2E1Njc5NGQ0Li43NzFjYTdhMjM2NjljZjczMjlmMTE3OTcxNGM1
YmY1MTBkN2QxOGJkIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy91aS9yZXN1
bHRzLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29u
ZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9zY3JpcHRzL3VpL3Jlc3VsdHMuanMKQEAgLTE3
Niw2ICsxNzYsNyBAQCB1aS5yZXN1bHRzLlRlc3RTZWxlY3RvciA9IGJhc2UuZXh0ZW5kcygnZGl2
JywgewogICAgICAgICAgICAgdmFyIGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gz
Jyk7CiAgICAgICAgICAgICAkKGhlYWRlcikuYXBwZW5kKG5ldyB1aS5hY3Rpb25zLkxpc3QoWwog
ICAgICAgICAgICAgICAgIG5ldyB1aS5hY3Rpb25zLlJlYmFzZWxpbmUoKS5tYWtlRGVmYXVsdCgp
LAorICAgICAgICAgICAgICAgIG5ldyB1aS5hY3Rpb25zLkV4cGVjdEZhaWx1cmUoKSwKICAgICAg
ICAgICAgIF0pKS5hcHBlbmQobGluayk7CiAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGhl
YWRlcik7CiAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuX2RlbGVnYXRlLmNvbnRl
bnRGb3JUZXN0KHRlc3ROYW1lKSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weQppbmRl
eCBlMDVjMzQzOGY3OTIzY2UxNzI3Y2U5MTNiNDEwZTY0Y2IzZWQyMmIxLi4yNTRkN2ZlZDI0OGVl
ZWNhZTg2YmNiOGE1ZWNiMGYzZmE3YWIxYzBmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRp
b24ucHkKQEAgLTQ5LDYgKzQ5LDkgQEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb24ob2JqZWN0KToK
ICAgICAgICAgIiIiVGhlIG1vc3QgY29tbW9uIGh1bWFuLXJlYWRhYmxlIG9yZGVyIGluIHdoaWNo
IHRoZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgYXJlIGxpc3RlZC4iIiIKICAgICAgICAgcmV0
dXJuIFsndmVyc2lvbicsICdhcmNoaXRlY3R1cmUnLCAnYnVpbGRfdHlwZScsICdncmFwaGljc190
eXBlJ10KIAorICAgIGRlZiBnZXQoc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19k
aWN0X18uZ2V0KGtleSkKKwogICAgIGRlZiBpdGVtcyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuX19kaWN0X18uaXRlbXMoKQogCkBAIC05Niw2ICs5OSwyMiBAQCBjbGFzcyBTcGVjaWZpZXJT
b3J0ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuYWRkX3NwZWNpZmllcihzZWxmLmNhdGVn
b3J5X2Zvcl9zcGVjaWZpZXIoc3BlY2lmaWVyX2xpc3RbMF0pLCBtYWNybykKIAogICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBjYXRlZ29yeV9vcmRlcl9ieV92YXJpYW5jZShjbHMsIGluaXRpYWxf
Y2F0ZWdvcnlfb3JkZXIsIHRlc3RfY29uZmlndXJhdGlvbl9zZXQpOgorICAgICAgICAiIiJPcmRl
ciBjYXRlZ29yaWVzIGJ5IHRoZSBsaWtlbGlob29kIG9mIHRoZWlyIHZhbHVlcyBzcGFubmluZyB0
aGUgZW50aXJlIHNldCBvZiB2YWxpZCB2YWx1ZXMiIiIKKyAgICAgICAgY2F0ZWdvcnlfc2V0ID0g
e30KKyAgICAgICAgZm9yIHRlc3RfY29uZmlndXJhdGlvbiBpbiB0ZXN0X2NvbmZpZ3VyYXRpb25f
c2V0OgorICAgICAgICAgICAgZm9yIGNhdGVnb3J5IGluIGluaXRpYWxfY2F0ZWdvcnlfb3JkZXI6
CisgICAgICAgICAgICAgICAgc3BlY2lmaWVyID0gdGVzdF9jb25maWd1cmF0aW9uLmdldChjYXRl
Z29yeSkKKyAgICAgICAgICAgICAgICBpZiBzcGVjaWZpZXI6CisgICAgICAgICAgICAgICAgICAg
IHNwZWNpZmllcl9zZXQgPSBjYXRlZ29yeV9zZXQuc2V0ZGVmYXVsdChjYXRlZ29yeSwge30pCisg
ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzcGVjaWZpZXJfc2V0LmdldChzcGVjaWZpZXIpOgor
ICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVyX3NldFtzcGVjaWZpZXJdID0gMQorICAg
ICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVy
X3NldFtzcGVjaWZpZXJdICs9IDEKKyAgICAgICAgcHJpbnQgImNhdGVnb3J5X3ZhcmlhbmNlPSVz
IiAlIHNvcnRlZChjYXRlZ29yeV9zZXQuaXRlcml0ZW1zKCksIGtleT1sYW1iZGEgKGtleSwgdmFs
dWUpOiAobGVuKHZhbHVlKSwga2V5KSkKKyAgICAgICAgcmV0dXJuIG1hcChsYW1iZGEgdHVwbGU6
IHR1cGxlWzBdLCBzb3J0ZWQoY2F0ZWdvcnlfc2V0Lml0ZXJpdGVtcygpLCBrZXk9bGFtYmRhIChr
ZXksIHZhbHVlKTogKGxlbih2YWx1ZSksIGtleSkpKQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGNhdGVnb3J5X3ByaW9yaXR5KGNscywgY2F0ZWdvcnkpOgogICAgICAgICByZXR1cm4gVGVz
dENvbmZpZ3VyYXRpb24uY2F0ZWdvcnlfb3JkZXIoKS5pbmRleChjYXRlZ29yeSkKIApAQCAtMTE3
LDYgKzEzNiwyMDMgQEAgY2xhc3MgU3BlY2lmaWVyU29ydGVyKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiByZWR1Y2Uoc29ydF9hbmRfcmV0dXJuLCBjYXRlZ29yeV9zbG90cywgW10pCiAKIAorY2xh
c3MgVHJpZU5vZGUob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNl
bGYuX2NoaWxkcmVuID0ge30KKworICAgIGRlZiBhZGRfY2hpbGQoc2VsZiwgc3BlY2lmaWVyKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NoaWxkcmVuLnNldGRlZmF1bHQoc3BlY2lmaWVyLCBUcmll
Tm9kZSgpKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIlRyaWVO
b2RlKCVzKSIgJSBzZWxmLl9jaGlsZHJlbgorCisgICAgZGVmIGZpbmQoc2VsZiwgc3BlY2lmaWVy
X2xpc3QpOgorICAgICAgICBjdXJyZW50ID0gc2VsZgorICAgICAgICBmb3Igc3BlY2lmaWVyIGlu
IHNwZWNpZmllcl9saXN0OgorICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuX2NoaWxkcmVu
LmdldChzcGVjaWZpZXIpCisgICAgICAgICAgICBpZiBub3QgY3VycmVudDoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gY3VycmVudAorCisgICAgZGVmIHBydW5l
X2xlYWZzKHNlbGYsIGNhbGxiYWNrKToKKyAgICAgICAgcHJ1bmVkID0gW10KKworICAgICAgICBk
ZWYgdHJhdmVyc2VfbGVhZnMobm9kZSwgcGF0aCwgY2FsbGJhY2spOgorICAgICAgICAgICAgaWYg
bm90IG5vZGUuX2NoaWxkcmVuOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAg
ICAgICBmb3Igc3BlY2lmaWVyLCBjaGlsZCBpbiBub2RlLl9jaGlsZHJlbi5pdGVtcygpOgorICAg
ICAgICAgICAgICAgIHBhdGguYXBwZW5kKHNwZWNpZmllcikKKyAgICAgICAgICAgICAgICBhdF9s
ZWFmID0gdHJhdmVyc2VfbGVhZnMoY2hpbGQsIHBhdGgsIGNhbGxiYWNrKQorICAgICAgICAgICAg
ICAgIHBhdGgucG9wKCkKKyAgICAgICAgICAgICAgICBpZiBhdF9sZWFmOgorICAgICAgICAgICAg
ICAgICAgICBpZiBjYWxsYmFjayhwYXRoLCBub2RlLmNoaWxkcmVuKCkpOgorICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZS5fY2hpbGRyZW4gPSB7fQorICAgICAgICAgICAgICAgICAgICAgICAg
cHJ1bmVkLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIHRyYXZlcnNlX2xlYWZzKHNlbGYsIFtdLCBjYWxsYmFjaykK
KyAgICAgICAgcmV0dXJuIHBydW5lZAorCisgICAgZGVmIGNoaWxkcmVuKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2V0KHNlbGYuX2NoaWxkcmVuLmtleXMoKSkKKworICAgIGRlZiB0b19zcGVjaWZp
ZXJzX2xpc3Qoc2VsZik6CisgICAgICAgIHBhdGggPSBbXQorICAgICAgICBzcGVjaWZpZXJzX2xp
c3QgPSBbXQorCisgICAgICAgIGRlZiB0cmF2ZXJzZShub2RlKToKKyAgICAgICAgICAgIGlmIG5v
dCBub2RlLl9jaGlsZHJlbjoKKyAgICAgICAgICAgICAgICBzcGVjaWZpZXJzX2xpc3QuYXBwZW5k
KHNldChwYXRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGZvciBzcGVj
aWZpZXIsIGNoaWxkIGluIG5vZGUuX2NoaWxkcmVuLml0ZW1zKCk6CisgICAgICAgICAgICAgICAg
cGF0aC5hcHBlbmQoc3BlY2lmaWVyKQorICAgICAgICAgICAgICAgIHRyYXZlcnNlKGNoaWxkKQor
ICAgICAgICAgICAgICAgIHBhdGgucG9wKCkKKyAgICAgICAgdHJhdmVyc2Uoc2VsZikKKyAgICAg
ICAgcmV0dXJuIHNwZWNpZmllcnNfbGlzdAorCisgICAgIyBGSVhNRTogVEVNUE9SQVJZIE5BTUUh
ISEhCisgICAgZGVmIHRvX3NldF9vZl9jb25maWdfbGlzdHMoc2VsZiwgY2F0ZWdvcnlfb3JkZXIp
OgorICAgICAgICBwYXRoID0gW10KKyAgICAgICAgcmVzdWx0c19ieV9kZXB0aCA9IHt9CisKKyAg
ICAgICAgZGVmIHRyYXZlcnNlKG5vZGUpOgorICAgICAgICAgICAgaWYgbm90IG5vZGUuX2NoaWxk
cmVuOgorICAgICAgICAgICAgICAgIHRlc3RfY29uZmlndXJhdGlvbiA9IHt9CisgICAgICAgICAg
ICAgICAgZm9yIGluZGV4LCBzcGVjaWZpZXIgaW4gZW51bWVyYXRlKHBhdGgpOgorICAgICAgICAg
ICAgICAgICAgICB0ZXN0X2NvbmZpZ3VyYXRpb25bY2F0ZWdvcnlfb3JkZXJbaW5kZXhdXSA9IHNw
ZWNpZmllcgorICAgICAgICAgICAgICAgIHJlc3VsdHNfYnlfZGVwdGguc2V0ZGVmYXVsdChsZW4o
cGF0aCksIFtdKS5hcHBlbmQodGVzdF9jb25maWd1cmF0aW9uKQorICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICAgICAgZm9yIHNwZWNpZmllciwgY2hpbGQgaW4gbm9kZS5fY2hpbGRyZW4u
aXRlbXMoKToKKyAgICAgICAgICAgICAgICBwYXRoLmFwcGVuZChzcGVjaWZpZXIpCisgICAgICAg
ICAgICAgICAgdHJhdmVyc2UoY2hpbGQpCisgICAgICAgICAgICAgICAgcGF0aC5wb3AoKQorICAg
ICAgICB0cmF2ZXJzZShzZWxmKQorICAgICAgICByZXR1cm4gcmVzdWx0c19ieV9kZXB0aAorCisg
ICAgIyBGSVhNRTogSXQncyBOT1QgUkVBTExZIENPTkZJR19TRVQsIEFOWSBMSVNUIE9GIERJQ1RT
IFdJTEwgRE8uCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRyaWVfZnJvbV9jb25maWdfc2V0
KGNscywgY2F0ZWdvcnlfb3JkZXIsIHRlc3RfY29uZmlndXJhdGlvbl9zZXQpOgorICAgICAgICBy
b290ID0gVHJpZU5vZGUoKQorICAgICAgICBmb3IgdGVzdF9jb25maWd1cmF0aW9uIGluIHRlc3Rf
Y29uZmlndXJhdGlvbl9zZXQ6CisgICAgICAgICAgICBub2RlID0gcm9vdAorICAgICAgICAgICAg
Zm9yIGNhdGVnb3J5IGluIGNhdGVnb3J5X29yZGVyOgorICAgICAgICAgICAgICAgIG5vZGUgPSBu
b2RlLmFkZF9jaGlsZCh0ZXN0X2NvbmZpZ3VyYXRpb24uZ2V0KGNhdGVnb3J5KSkKKyAgICAgICAg
cmV0dXJuIHJvb3QKKworICAgICMgRklYTUU6IFRFTVBPUkFSWSBOQU1FISEhCisgICAgZGVmIGZp
bmRfb3B0aW1pemFibGVfc3BvdHMoc2VsZiwgYWxsX2NvbmZpZ3VyYXRpb25zX3RyaWUsIGNhbGxi
YWNrLCBwYXRoPVtdKToKKyAgICAgICAgZm9yIHNwZWNpZmllciwgY2hpbGQgaW4gc2VsZi5fY2hp
bGRyZW4uaXRlbXMoKToKKyAgICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IHBhdGggKyBbc3BlY2lm
aWVyXQorICAgICAgICAgICAgcG9zc2libGVfYWx0ZXJuYXRpdmVzID0gYWxsX2NvbmZpZ3VyYXRp
b25zX3RyaWUuZmluZChjdXJyZW50X3BhdGgpCisgICAgICAgICAgICBpZiBwb3NzaWJsZV9hbHRl
cm5hdGl2ZXMgYW5kIGxlbihwb3NzaWJsZV9hbHRlcm5hdGl2ZXMuY2hpbGRyZW4oKSkgPiAwIGFu
ZCBsZW4ocG9zc2libGVfYWx0ZXJuYXRpdmVzLmNoaWxkcmVuKCkpID09IGxlbihjaGlsZC5jaGls
ZHJlbigpKToKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhwYXRoKQorICAgICAgICAgICAgY2hp
bGQuZmluZF9vcHRpbWl6YWJsZV9zcG90cyhhbGxfY29uZmlndXJhdGlvbnNfdHJpZSwgY2FsbGJh
Y2ssIGN1cnJlbnRfcGF0aCkKKworICAgICMgRklYTUU6IHJlbW92ZSBiZWZvcmUgbGFuZGluZwor
ICAgIGRlZiBkZWJ1Z19wcmludChzZWxmLCBhbGxfY29uZmlndXJhdGlvbnNfdHJpZSwgcGF0aD1b
XSwgb2Zmc2V0PScgICcpOgorICAgICAgICBmb3Igc3BlY2lmaWVyLCBjaGlsZCBpbiBzZWxmLl9j
aGlsZHJlbi5pdGVtcygpOgorICAgICAgICAgICAgY3VycmVudF9wYXRoID0gcGF0aCArIFtzcGVj
aWZpZXJdCisgICAgICAgICAgICBwb3NzaWJsZV9hbHRlcm5hdGl2ZXMgPSBhbGxfY29uZmlndXJh
dGlvbnNfdHJpZS5maW5kKGN1cnJlbnRfcGF0aCkKKyAgICAgICAgICAgIG9wdGltaXphYmxlID0g
RmFsc2UKKyAgICAgICAgICAgIGlmIHBvc3NpYmxlX2FsdGVybmF0aXZlczoKKyAgICAgICAgICAg
ICAgICBvcHRpbWl6YWJsZSA9IGxlbihwb3NzaWJsZV9hbHRlcm5hdGl2ZXMuY2hpbGRyZW4oKSkg
PiAwIGFuZCBsZW4ocG9zc2libGVfYWx0ZXJuYXRpdmVzLmNoaWxkcmVuKCkpID09IGxlbihjaGls
ZC5jaGlsZHJlbigpKQorICAgICAgICAgICAgcHJpbnQgJyVzJXMgKCVzKTonICUgKG9mZnNldCwg
c3BlY2lmaWVyLCBvcHRpbWl6YWJsZSkKKyAgICAgICAgICAgIGNoaWxkLmRlYnVnX3ByaW50KGFs
bF9jb25maWd1cmF0aW9uc190cmllLCBjdXJyZW50X3BhdGgsIG9mZnNldCArICcgICcpCisKKwor
IyBGSVhNRTogVEVNUE9SQVJZIE5BTUUhISEhCitjbGFzcyBQcnVuaW5nU2V0KG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zLCBjYXRlZ29yeV9v
cmRlciwgdGVzdF9jb25maWd1cmF0aW9uX2xpc3QpOgorICAgICAgICBzZWxmLl9hbGxfY29uZmln
dXJhdGlvbnNfdHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25maWdfc2V0KGNhdGVnb3J5X29y
ZGVyLCBhbGxfdGVzdF9jb25maWd1cmF0aW9ucykKKyAgICAgICAgc2VsZi5fY2F0ZWdvcnlfb3Jk
ZXIgPSBjYXRlZ29yeV9vcmRlcgorICAgICAgICBzZWxmLl90ZXN0X2NvbmZpZ3VyYXRpb25fbGlz
dCA9IHRlc3RfY29uZmlndXJhdGlvbl9saXN0CisKKyAgICBkZWYgYWxsX2NvbmZpZ3VyYXRpb25z
X3RyaWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfY29uZmlndXJhdGlvbnNfdHJp
ZQorCisgICAgIyBGSVhNRTogVEVNUE9SQVJZIE5BTUUhISEhCisgICAgZGVmIHBydW5lKHNlbGYs
IGNhbGxiYWNrKToKKyAgICAgICAgZGVmIHNob3VsZF9jb2xsYXBzZShwYXRoLCBzcGVjaWZpZXJf
bGlzdCk6CisgICAgICAgICAgICBhbGxfc3BlY2lmaWVycyA9IHNlbGYuX2FsbF9jb25maWd1cmF0
aW9uc190cmllLmZpbmQocGF0aCkKKyAgICAgICAgICAgIGlmIG5vdCBhbGxfc3BlY2lmaWVyczoK
KyAgICAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJlY2F1
c2UgdGhlIGRlcHRoIG9mIHRoaXMgdHJpZSBpcyBhbHdheXMgdGhlIHNhbWUKKyAgICAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICMgcHJpbnQgImNoaWxkcmVuICVzLCBzcGVj
aWZpZXJfbGlzdCAlcyIgJSAoYWxsX3NwZWNpZmllcnMuY2hpbGRyZW4oKSwgc3BlY2lmaWVyX2xp
c3QpCisgICAgICAgICAgICBpZiBhbGxfc3BlY2lmaWVycy5jaGlsZHJlbigpID09IHNwZWNpZmll
cl9saXN0OgorICAgICAgICAgICAgICAgICMgcHJpbnQgIllheSwgY2FuIGNvbGxhcHNlOiAlcyIg
JSBzcGVjaWZpZXJfbGlzdAorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAg
dHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25maWdfc2V0KHNlbGYuX2NhdGVnb3J5X29yZGVy
LCBzZWxmLl90ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCkKKyAgICAgICAgcHJpbnQgJ0lOSVRJQUwg
VFJJRTonCisgICAgICAgIHRyaWUuZGVidWdfcHJpbnQoc2VsZi5fYWxsX2NvbmZpZ3VyYXRpb25z
X3RyaWUpCisgICAgICAgIHBydW5lZCA9IEZhbHNlCisgICAgICAgIHdoaWxlIHRyaWUucHJ1bmVf
bGVhZnMoc2hvdWxkX2NvbGxhcHNlKToKKyAgICAgICAgICAgIHBydW5lZCA9IFRydWUKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgcHJpbnQgJ09QVElNSVpFRCBUUklFOicKKyAgICAgICAgdHJp
ZS5kZWJ1Z19wcmludChzZWxmLl9hbGxfY29uZmlndXJhdGlvbnNfdHJpZSkKKyAgICAgICAgZm9y
IGRlcHRoLCBjb25maWdfbGlzdCBpbiB0cmllLnRvX3NldF9vZl9jb25maWdfbGlzdHMoc2VsZi5f
Y2F0ZWdvcnlfb3JkZXIpLml0ZW1zKCk6CisgICAgICAgICAgICBjYWxsYmFjayhzZWxmLl9jYXRl
Z29yeV9vcmRlcls6ZGVwdGhdLCBjb25maWdfbGlzdCkKKyAgICAgICAgcmV0dXJuIHBydW5lZAor
CisKKyMgRklYTUU6IFRlbXBvcmFyeSBOQU1FISEhIQorY2xhc3MgVHJpZVBydW5lcihvYmplY3Qp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfdGVzdF9jb25maWd1cmF0aW9ucywgaW5pdGlh
bF9jYXRlZ29yeV9vcmRlciwgdGVzdF9jb25maWd1cmF0aW9uX2xpc3QpOgorICAgICAgICBzZWxm
Ll9hbGxfdGVzdF9jb25maWd1cmF0aW9ucyA9IGFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zCisgICAg
ICAgIHNlbGYuX3BydW5pbmdfc2V0cyA9IFtQcnVuaW5nU2V0KHNlbGYuX2FsbF90ZXN0X2NvbmZp
Z3VyYXRpb25zLCBpbml0aWFsX2NhdGVnb3J5X29yZGVyLCB0ZXN0X2NvbmZpZ3VyYXRpb25fbGlz
dCldCisKKyAgICBkZWYgX21ha2VfcHJ1bmluZ19wYXNzKHNlbGYpOgorICAgICAgICBuZXdfcHJ1
bmluZ19zZXRzID0gW10KKworICAgICAgICAjIEZJWE1FOiBURU1QT1JBUlkgTkFNRSEhIQorICAg
ICAgICBkZWYgZ2VuZXJhdGVfcHJ1bmluZ19zZXQoY2F0ZWdvcnlfb3JkZXIsIHRlc3RfY29uZmln
dXJhdGlvbl9saXN0KToKKyAgICAgICAgICAgIG5ld19jYXRlZ29yeV9vcmRlciA9IGNhdGVnb3J5
X29yZGVyWzpdCisKKyAgICAgICAgICAgICMgRklYTUU6IFRFTVBPUkFSWSBOQU1FISEhCisgICAg
ICAgICAgICBkZWYgb3B0aW1pemVfc3BvdHMocGF0aCk6CisgICAgICAgICAgICAgICAgY2F0ZWdv
cnkgPSBjYXRlZ29yeV9vcmRlcltsZW4ocGF0aCkgKyAxXQorICAgICAgICAgICAgICAgICMgRklY
TUU6IFNob3VsZCB0aGlzIGJlIGFjY3VtdWxhdGluZyB3ZWlnaHRzIGFuZCB0aGVuIHNvcnRpbmcg
Ynkgd2VpZ2h0PworICAgICAgICAgICAgICAgIG5ld19jYXRlZ29yeV9vcmRlci5yZW1vdmUoY2F0
ZWdvcnkpCisgICAgICAgICAgICAgICAgbmV3X2NhdGVnb3J5X29yZGVyLmFwcGVuZChjYXRlZ29y
eSkKKworICAgICAgICAgICAgd2VpZ2hpbmdfdHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25m
aWdfc2V0KGNhdGVnb3J5X29yZGVyLCB0ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCkKKyAgICAgICAg
ICAgIHdlaWdoaW5nX3RyaWUuZmluZF9vcHRpbWl6YWJsZV9zcG90cyhwcnVuaW5nX3NldC5hbGxf
Y29uZmlndXJhdGlvbnNfdHJpZSgpLCBvcHRpbWl6ZV9zcG90cykKKyAgICAgICAgICAgICMgRklY
TUU6IENoZWNrIHdoZXRoZXIgYW55IG9wdGltaXphdGlvbiBoYXBwZW5lZCwgbWF5YmUgd2UgY2Fu
IHByZXZlbnQgYW5vdGhlciBwYXNzIGVhcmx5LgorICAgICAgICAgICAgbmV3X3BydW5pbmdfc2V0
cy5hcHBlbmQoUHJ1bmluZ1NldChzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucywgbmV3X2Nh
dGVnb3J5X29yZGVyLCB0ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCkpCisKKyAgICAgICAgcHJ1bmVk
ID0gRmFsc2UKKyAgICAgICAgZm9yIHBydW5pbmdfc2V0IGluIHNlbGYuX3BydW5pbmdfc2V0czoK
KyAgICAgICAgICAgIGlmIHBydW5pbmdfc2V0LnBydW5lKGdlbmVyYXRlX3BydW5pbmdfc2V0KToK
KyAgICAgICAgICAgICAgICBwcnVuZWQgPSBUcnVlCisKKyAgICAgICAgc2VsZi5fcHJ1bmluZ19z
ZXRzID0gbmV3X3BydW5pbmdfc2V0cworICAgICAgICByZXR1cm4gcHJ1bmVkCisKKyAgICBkZWYg
cHJ1bmUoc2VsZik6CisgICAgICAgIHNlbGYuX3BydW5lZF9pbl9sYXN0X3Bhc3MgPSBUcnVlCisg
ICAgICAgIHdoaWxlIHNlbGYuX21ha2VfcHJ1bmluZ19wYXNzKCk6CisgICAgICAgICAgICBwYXNz
CisgICAgICAgICMgRklYTUU6IE9wdGltaXplIHRoZSB0cmVlOiByZW9yZ2FuaXplIDEtYXJpdHkg
YnJhbmNoZXMKKyAgICAgICAgcHJpbnQgJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09JworICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICBmb3IgcHJ1bmluZ19zZXQgaW4g
c2VsZi5fcHJ1bmluZ19zZXRzOgorICAgICAgICAgICAgZm9yIHRlc3RfY29uZmlndXJhdGlvbiBp
biBwcnVuaW5nX3NldC5fdGVzdF9jb25maWd1cmF0aW9uX2xpc3Q6CisgICAgICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChzZXQobWFwKGxhbWJkYSB0dXBsZTogdHVwbGVbMV0sIHRlc3RfY29uZmln
dXJhdGlvbi5pdGVtcygpKSkpCisgICAgICAgIHJldHVybiByZXN1bHQKKworCitjbGFzcyBDb252
ZXJ0ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYWxsX3Rlc3RfY29uZmlndXJh
dGlvbnMpOgorICAgICAgICBzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucyA9IGFsbF90ZXN0
X2NvbmZpZ3VyYXRpb25zCisKKyAgICBkZWYgdG9fc3BlY2lmaWVyc19saXN0KHNlbGYsIHRlc3Rf
Y29uZmlndXJhdGlvbl9zZXQpOgorICAgICAgICAjIEZJWE1FOiBUZXN0IGZvciBlYXN5IG91dAor
ICAgICAgICBwcnVuZXIgPSBUcmllUHJ1bmVyKHNlbGYuX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25z
LCBbJ3ZlcnNpb24nLCAnYnVpbGRfdHlwZScsICdncmFwaGljc190eXBlJywgJ2FyY2hpdGVjdHVy
ZSddLCBsaXN0KHRlc3RfY29uZmlndXJhdGlvbl9zZXQpKQorICAgICAgICByZXR1cm4gcHJ1bmVy
LnBydW5lKCkKKworCiBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihvYmplY3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfdGVzdF9jb25maWd1cmF0aW9ucywgY29uZmlndXJh
dGlvbl9tYWNyb3M9Tm9uZSk6CiAgICAgICAgIHNlbGYuX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25z
ID0gYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMKQEAgLTE4NSw2ICs0MDEsNyBAQCBjbGFzcyBUZXN0
Q29uZmlndXJhdGlvbkNvbnZlcnRlcihvYmplY3QpOgogICAgIGRlZiB0b19zcGVjaWZpZXJzX2xp
c3Qoc2VsZiwgdGVzdF9jb25maWd1cmF0aW9uX3NldCk6CiAgICAgICAgICIiIkNvbnZlcnQgYSBz
ZXQgb2YgVGVzdENvbmZpZ3VyYXRpb24gaW5zdGFuY2VzIGludG8gb25lIG9yIG1vcmUgbGlzdCBv
ZiBzcGVjaWZpZXJzLiIiIgogCisgICAgICAgIHByaW50ICJ0ZXN0X2NvbmZpZ3VyYXRpb25fc2V0
ID0gJXMiICUgdGVzdF9jb25maWd1cmF0aW9uX3NldAogICAgICAgICAjIEVhc3kgb3V0OiBpZiB0
aGUgc2V0IGlzIGFsbCBjb25maWd1cmF0aW9ucywgdGhlIG1vZGlmaWVyIGlzIGVtcHR5LgogICAg
ICAgICBpZiBsZW4odGVzdF9jb25maWd1cmF0aW9uX3NldCkgPT0gbGVuKHNlbGYuX2FsbF90ZXN0
X2NvbmZpZ3VyYXRpb25zKToKICAgICAgICAgICAgIHJldHVybiBbW11dCkBAIC0yNjQsNCArNDgx
LDYgQEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIob2JqZWN0KToKICAgICAgICAg
IyAgICh4cCwgdmlzdGEsIHdpbjcsIHJlbGVhc2UpIC0+ICh3aW4sIHJlbGVhc2UpCiAgICAgICAg
IHNlbGYuY29sbGFwc2VfbWFjcm9zKHNlbGYuX2NvbmZpZ3VyYXRpb25fbWFjcm9zLCBzcGVjaWZp
ZXJzX2xpc3QpCiAKKyAgICAgICAgcHJpbnQgInNwZWNpZmllcnNfbGlzdCA9ICVzIiAlIHNwZWNp
ZmllcnNfbGlzdAorICAgICAgICBwcmludCAiPT09PT09PT09PT09PT09PT09PT09PSIKICAgICAg
ICAgcmV0dXJuIHNwZWNpZmllcnNfbGlzdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3Vy
YXRpb25fdW5pdHRlc3QucHkKaW5kZXggYzRkN2U4YWU2YWUyNTgwYzY3ZjljMTBmNDMwOWIxNDZj
Y2M0MWY3MS4uOGM0NDhiNDJjZjUwMjg0YmU5MWI2ZWVkZDc4YTJiYTQyYzhlNTRhMSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29u
ZmlndXJhdGlvbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uX3VuaXR0ZXN0LnB5CkBAIC0zOCw2ICsz
OCw5IEBAIGRlZiBtYWtlX21vY2tfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnNfc2V0KCk6CiAgICAg
ICAgIGZvciBidWlsZF90eXBlIGluICgnZGVidWcnLCAncmVsZWFzZScpOgogICAgICAgICAgICAg
Zm9yIGdyYXBoaWNzX3R5cGUgaW4gKCdjcHUnLCAnZ3B1Jyk6CiAgICAgICAgICAgICAgICAgYWxs
X3Rlc3RfY29uZmlndXJhdGlvbnMuYWRkKFRlc3RDb25maWd1cmF0aW9uKHZlcnNpb24sIGFyY2hp
dGVjdHVyZSwgYnVpbGRfdHlwZSwgZ3JhcGhpY3NfdHlwZSkpCisgICAgICAgICAgICBpZiB2ZXJz
aW9uID09ICdzbm93bGVvcGFyZCc6CisgICAgICAgICAgICAgICAgZm9yIGdyYXBoaWNzX3R5cGUg
aW4gKCdjcHUtY2cnLCAnZ3B1LWNnJyk6CisgICAgICAgICAgICAgICAgICAgIGFsbF90ZXN0X2Nv
bmZpZ3VyYXRpb25zLmFkZChUZXN0Q29uZmlndXJhdGlvbih2ZXJzaW9uLCBhcmNoaXRlY3R1cmUs
IGJ1aWxkX3R5cGUsIGdyYXBoaWNzX3R5cGUpKQogICAgIHJldHVybiBhbGxfdGVzdF9jb25maWd1
cmF0aW9ucwogCiBNT0NLX01BQ1JPUyA9IHsKQEAgLTQ2LDcgKzQ5LDYgQEAgTU9DS19NQUNST1Mg
PSB7CiAgICAgJ2xpbnV4JzogWydsdWNpZCddLAogfQogCi0KIGNsYXNzIFRlc3RDb25maWd1cmF0
aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfaXRlbXMoc2VsZik6CiAg
ICAgICAgIGNvbmZpZyA9IFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScs
ICdjcHUnKQpAQCAtMTM3LDEwICsxMzksMjggQEAgY2xhc3MgU3BlY2lmaWVyU29ydGVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNvcnRlci5jYXRl
Z29yeV9mb3Jfc3BlY2lmaWVyKCd3aW4nKSwgJ3ZlcnNpb24nKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcigneDg2JyksICdhcmNoaXRlY3R1
cmUnKQogCisgICAgZGVmIHRlc3RfY2F0ZWdvcnlfb3JkZXJfYnlfdmFyaWFuY2Uoc2VsZik6Cisg
ICAgICAgIGNvbmZpZ19zZXQgPSBzZXQoWworICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24o
J3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3Vy
YXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycsICdjcHUnKSwKKyAgICAgICAgXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoU3BlY2lmaWVyU29ydGVyLmNhdGVnb3J5X29yZGVyX2J5X3Zhcmlh
bmNlKGNvbmZpZ19zZXQpLCBbJ2FyY2hpdGVjdHVyZScsICdncmFwaGljc190eXBlJywgJ3ZlcnNp
b24nLCAnYnVpbGRfdHlwZSddKQorICAgICAgICBjb25maWdfc2V0ID0gc2V0KFsKKyAgICAgICAg
ICAgIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScsICdjcHUnKSwKKyAg
ICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODZfNjQnLCAnZGVidWcnLCAn
Z3B1JyksCisgICAgICAgIF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFNwZWNpZmllclNv
cnRlci5jYXRlZ29yeV9vcmRlcl9ieV92YXJpYW5jZShjb25maWdfc2V0KSwgWydhcmNoaXRlY3R1
cmUnLCAnYnVpbGRfdHlwZScsICdncmFwaGljc190eXBlJywgJ3ZlcnNpb24nXSkKKyAgICAgICAg
Y29uZmlnX3NldCA9IHNldChbCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAn
eDg2JywgJ3JlbGVhc2UnLCAnY3B1JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbign
eHAnLCAneDg2JywgJ3JlbGVhc2UnLCAnZ3B1JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJh
dGlvbigneHAnLCAneDg2JywgJ2RlYnVnJywgJ2NwdScpLAorICAgICAgICAgICAgVGVzdENvbmZp
Z3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycsICdncHUnKSwKKyAgICAgICAgXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoU3BlY2lmaWVyU29ydGVyLmNhdGVnb3J5X29yZGVyX2J5X3Zh
cmlhbmNlKGNvbmZpZ19zZXQpLCBbJ2FyY2hpdGVjdHVyZScsICd2ZXJzaW9uJywgJ2J1aWxkX3R5
cGUnLCAnZ3JhcGhpY3NfdHlwZSddKQorCiAgICAgZGVmIHRlc3RfY2F0ZWdvcnlfcHJpb3JpdHko
c2VsZik6Ci0gICAgICAgIHNvcnRlciA9IFNwZWNpZmllclNvcnRlcihzZWxmLl9hbGxfdGVzdF9j
b25maWd1cmF0aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29ydGVyLmNhdGVnb3J5
X3ByaW9yaXR5KCd2ZXJzaW9uJyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNvcnRl
ci5jYXRlZ29yeV9wcmlvcml0eSgnYnVpbGRfdHlwZScpLCAyKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhTcGVjaWZpZXJTb3J0ZXIuY2F0ZWdvcnlfcHJpb3JpdHkoJ3ZlcnNpb24nKSwgMCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoU3BlY2lmaWVyU29ydGVyLmNhdGVnb3J5X3ByaW9y
aXR5KCdidWlsZF90eXBlJyksIDIpCiAKICAgICBkZWYgdGVzdF9zcGVjaWZpZXJfcHJpb3JpdHko
c2VsZik6CiAgICAgICAgIHNvcnRlciA9IFNwZWNpZmllclNvcnRlcihzZWxmLl9hbGxfdGVzdF9j
b25maWd1cmF0aW9ucykKQEAgLTE1OCw2ICsxNzgsMTg0IEBAIGNsYXNzIFNwZWNpZmllclNvcnRl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzb3J0
ZXIuc29ydF9zcGVjaWZpZXJzKHNldChbJ2dwdScsICd4ODYnLCAnbWFjJywgJ2RlYnVnJywgJ3dp
bjcnXSkpLCBbJ21hYycsICd3aW43JywgJ3g4NicsICdkZWJ1ZycsICdncHUnXSkKIAogCitjbGFz
cyBUcmllTm9kZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2FkZF9jaGls
ZChzZWxmKToKKyAgICAgICAgdHJpZSA9IFRyaWVOb2RlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc3RyKHRyaWUpLCAiVHJpZU5vZGUoe30pIikKKyAgICAgICAgY2hpbGQgPSB0cmllLmFk
ZF9jaGlsZCgnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3RyKHRyaWUpLCAiVHJp
ZU5vZGUoeydmb28nOiBUcmllTm9kZSh7fSl9KSIpCisgICAgICAgIGNoaWxkID0gY2hpbGQuYWRk
X2NoaWxkKCdiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHIodHJpZSksICJUcmll
Tm9kZSh7J2Zvbyc6IFRyaWVOb2RlKHsnYmFyJzogVHJpZU5vZGUoe30pfSl9KSIpCisgICAgICAg
IGNoaWxkID0gY2hpbGQuYWRkX2NoaWxkKCdiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzdHIodHJpZSksICJUcmllTm9kZSh7J2Zvbyc6IFRyaWVOb2RlKHsnYmFyJzogVHJpZU5vZGUo
eydiYXonOiBUcmllTm9kZSh7fSl9KX0pfSkiKQorICAgICAgICBjaGlsZCA9IHRyaWUuYWRkX2No
aWxkKCdxdXgnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHIodHJpZSksICJUcmllTm9k
ZSh7J3F1eCc6IFRyaWVOb2RlKHt9KSwgJ2Zvbyc6IFRyaWVOb2RlKHsnYmFyJzogVHJpZU5vZGUo
eydiYXonOiBUcmllTm9kZSh7fSl9KX0pfSkiKQorICAgICAgICBjaGlsZCA9IGNoaWxkLmFkZF9j
aGlsZCgnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3RyKHRyaWUpLCAiVHJpZU5v
ZGUoeydxdXgnOiBUcmllTm9kZSh7J2Jhcic6IFRyaWVOb2RlKHt9KX0pLCAnZm9vJzogVHJpZU5v
ZGUoeydiYXInOiBUcmllTm9kZSh7J2Jheic6IFRyaWVOb2RlKHt9KX0pfSl9KSIpCisgICAgICAg
IHRyaWUuYWRkX2NoaWxkKCdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHIodHJp
ZSksICJUcmllTm9kZSh7J3F1eCc6IFRyaWVOb2RlKHsnYmFyJzogVHJpZU5vZGUoe30pfSksICdm
b28nOiBUcmllTm9kZSh7J2Jhcic6IFRyaWVOb2RlKHsnYmF6JzogVHJpZU5vZGUoe30pfSl9KX0p
IikKKworICAgIGRlZiB0ZXN0X2ZpbmQoc2VsZik6CisgICAgICAgIHRyaWUgPSBUcmllTm9kZSgp
CisgICAgICAgIG9uY2UgPSB0cmllLmFkZF9jaGlsZCgnb25jZScpCisgICAgICAgIHVwb24gPSBv
bmNlLmFkZF9jaGlsZCgndXBvbicpCisgICAgICAgIHdoZW4gPSBvbmNlLmFkZF9jaGlsZCgnd2hl
bicpCisgICAgICAgIGkgPSB3aGVuLmFkZF9jaGlsZCgnaScpCisgICAgICAgIGEgPSB1cG9uLmFk
ZF9jaGlsZCgnYScpCisgICAgICAgIHRpbWUgPSBhLmFkZF9jaGlsZCgndGltZScpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHN0cih0cmllLmZpbmQoWydvbmNlJywgJ3Vwb24nLCAnYSddKSks
ICJUcmllTm9kZSh7J3RpbWUnOiBUcmllTm9kZSh7fSl9KSIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHN0cih0cmllLmZpbmQoWydvbmNlJywgJ3Vwb24nLCAnYScsICd0aW1lJ10pKSwgIlRy
aWVOb2RlKHt9KSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0cihhLmZpbmQoWyd0aW1l
J10pKSwgIlRyaWVOb2RlKHt9KSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0cihhLmZp
bmQoW10pKSwgIlRyaWVOb2RlKHsndGltZSc6IFRyaWVOb2RlKHt9KX0pIikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc3RyKHRyaWUuZmluZChbJ29uY2UnLCAnd2hlbiddKSksICJUcmllTm9k
ZSh7J2knOiBUcmllTm9kZSh7fSl9KSIpCisKKyAgICBkZWYgdGVzdF9maW5kX2xlYWZzKHNlbGYp
OgorICAgICAgICB0cmllID0gVHJpZU5vZGUoKQorCisgICAgICAgIGRlZiBwcmludF9sZWFmcyhw
YXRoLCBsZWFmcyk6CisgICAgICAgICAgICBwcmludCAicGF0aD0lcywgbGVhZnM9JXMiICUgKHBh
dGgsIGxlYWZzKQorCisgICAgICAgIGNvbmZpZ19zZXQgPSBzZXQoWworICAgICAgICAgICAgVGVz
dENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLAorICAgICAgICAg
ICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycsICdjcHUnKSwKKyAgICAg
ICAgXSkKKyAgICAgICAgdHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25maWdfc2V0KFRlc3RD
b25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCksIGNvbmZpZ19zZXQpCisgICAgICAgIHRyaWUu
cHJ1bmVfbGVhZnMocHJpbnRfbGVhZnMpCisKKyAgICAgICAgY29uZmlnX3NldCA9IHNldChbCisg
ICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnLCAnY3B1
JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2Un
LCAnZ3B1JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ2Rl
YnVnJywgJ2NwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4Nics
ICdkZWJ1ZycsICdncHUnKSwKKyAgICAgICAgXSkKKyAgICAgICAgdHJpZSA9IFRyaWVOb2RlLnRy
aWVfZnJvbV9jb25maWdfc2V0KFRlc3RDb25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCksIGNv
bmZpZ19zZXQpCisgICAgICAgIHRyaWUucHJ1bmVfbGVhZnMocHJpbnRfbGVhZnMpCisKKyAgICBk
ZWYgdGVzdF9jaGlsZHJlbihzZWxmKToKKyAgICAgICAgdHJpZSA9IFRyaWVOb2RlKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHModHJpZS5jaGlsZHJlbigpLCBzZXQoW10pKQorICAgICAgICB0
cmllLmFkZF9jaGlsZCgnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRyaWUuY2hpbGRy
ZW4oKSwgc2V0KFsnYSddKSkKKyAgICAgICAgdHJpZS5hZGRfY2hpbGQoJ2InKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyh0cmllLmNoaWxkcmVuKCksIHNldChbJ2EnLCAnYiddKSkKKyAgICAg
ICAgdHJpZS5hZGRfY2hpbGQoJ2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0cmllLmNo
aWxkcmVuKCksIHNldChbJ2EnLCAnYicsICdjJ10pKQorCisgICAgZGVmIHRlc3RfdG9fc3BlY2lm
aWVyc19saXN0KHNlbGYpOgorICAgICAgICBjb25maWdfc2V0ID0gc2V0KFsKKyAgICAgICAgICAg
IFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScsICdjcHUnKSwKKyAgICAg
ICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScsICdncHUnKSwK
KyAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcnLCAnY3B1
JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ2RlYnVnJywg
J2dwdScpLAorICAgICAgICBdKQorICAgICAgICB0cmllID0gVHJpZU5vZGUudHJpZV9mcm9tX2Nv
bmZpZ19zZXQoVGVzdENvbmZpZ3VyYXRpb24uY2F0ZWdvcnlfb3JkZXIoKSwgY29uZmlnX3NldCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModHJpZS50b19zcGVjaWZpZXJzX2xpc3QoKSwgW3Nl
dChbJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2dwdSddKSwgc2V0KFsneHAnLCAneDg2JywgJ3Jl
bGVhc2UnLCAnY3B1J10pLCBzZXQoWyd4cCcsICd4ODYnLCAnZGVidWcnLCAnZ3B1J10pLCBzZXQo
Wyd4cCcsICd4ODYnLCAnZGVidWcnLCAnY3B1J10pXSkKKyAgICAgICAgY29uZmlnX3NldCA9IHNl
dChbCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2Un
LCAnY3B1JyksCisgICAgICAgIF0pCisgICAgICAgIHRyaWUgPSBUcmllTm9kZS50cmllX2Zyb21f
Y29uZmlnX3NldChUZXN0Q29uZmlndXJhdGlvbi5jYXRlZ29yeV9vcmRlcigpLCBjb25maWdfc2V0
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0cmllLnRvX3NwZWNpZmllcnNfbGlzdCgpLCBb
c2V0KFsneHAnLCAneDg2JywgJ3JlbGVhc2UnLCAnY3B1J10pXSkKKworICAgIGRlZiB0ZXN0X3Ry
aWVfZnJvbV9jb25maWdfc2V0KHNlbGYpOgorICAgICAgICBjb25maWdfc2V0ID0gc2V0KFsKKyAg
ICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScsICdjcHUn
KSwKKyAgICAgICAgXSkKKyAgICAgICAgdHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25maWdf
c2V0KFRlc3RDb25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCksIGNvbmZpZ19zZXQpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0cih0cmllKSwgIlRyaWVOb2RlKHsneHAnOiBUcmllTm9k
ZSh7J3g4Nic6IFRyaWVOb2RlKHsncmVsZWFzZSc6IFRyaWVOb2RlKHsnY3B1JzogVHJpZU5vZGUo
e30pfSl9KX0pfSkiKQorCisgICAgICAgIGNvbmZpZ19zZXQgPSBzZXQoWworICAgICAgICAgICAg
VGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLAorICAgICAg
ICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycsICdjcHUnKSwKKyAg
ICAgICAgXSkKKyAgICAgICAgdHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25maWdfc2V0KFRl
c3RDb25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCksIGNvbmZpZ19zZXQpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHN0cih0cmllKSwgIlRyaWVOb2RlKHsneHAnOiBUcmllTm9kZSh7J3g4
Nic6IFRyaWVOb2RlKHsncmVsZWFzZSc6IFRyaWVOb2RlKHsnY3B1JzogVHJpZU5vZGUoe30pfSks
ICdkZWJ1Zyc6IFRyaWVOb2RlKHsnY3B1JzogVHJpZU5vZGUoe30pfSl9KX0pfSkiKQorCisgICAg
ICAgIGNvbmZpZ19zZXQgPSBzZXQoWworICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hw
JywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRp
b24oJ2x1Y2lkJywgJ3g4Nl82NCcsICdkZWJ1ZycsICdncHUnKSwKKyAgICAgICAgXSkKKyAgICAg
ICAgdHJpZSA9IFRyaWVOb2RlLnRyaWVfZnJvbV9jb25maWdfc2V0KFRlc3RDb25maWd1cmF0aW9u
LmNhdGVnb3J5X29yZGVyKCksIGNvbmZpZ19zZXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHN0cih0cmllKSwgIlRyaWVOb2RlKHsneHAnOiBUcmllTm9kZSh7J3g4Nic6IFRyaWVOb2RlKHsn
cmVsZWFzZSc6IFRyaWVOb2RlKHsnY3B1JzogVHJpZU5vZGUoe30pfSl9KX0pLCAnbHVjaWQnOiBU
cmllTm9kZSh7J3g4Nl82NCc6IFRyaWVOb2RlKHsnZGVidWcnOiBUcmllTm9kZSh7J2dwdSc6IFRy
aWVOb2RlKHt9KX0pfSl9KX0pIikKKworCitjbGFzcyBDb252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdEZ1bmMpOgorICAgICAgICBzZWxm
Ll9hbGxfdGVzdF9jb25maWd1cmF0aW9ucyA9IG1ha2VfbW9ja19hbGxfdGVzdF9jb25maWd1cmF0
aW9uc19zZXQoKQorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5fX2luaXRfXyhzZWxmLCB0ZXN0
RnVuYykKKworICAgIGRlZiB0ZXN0X3RvX3NwZWNpZmllcl9saXN0cyhzZWxmKToKKyAgICAgICAg
Y29udmVydGVyID0gQ29udmVydGVyKHNlbGYuX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKQorICAg
ICAgICBjb25maWdzX3RvX21hdGNoID0gc2V0KFsKKyAgICAgICAgICAgIFRlc3RDb25maWd1cmF0
aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScsICdncHUnKSwKKyAgICAgICAgICAgIFRlc3RDb25m
aWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScsICdjcHUnKSwKKyAgICAgICAgXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX3NwZWNpZmllcnNfbGlzdChjb25m
aWdzX3RvX21hdGNoKSwgW3NldChbJ3JlbGVhc2UnLCAneHAnXSldKQorCisgICAgICAgIGNvbmZp
Z3NfdG9fbWF0Y2ggPSBzZXQoWworICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywg
J3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24o
J3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3Vy
YXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycsICdncHUnKSwKKyAgICAgICAgICAgIFRlc3RDb25m
aWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcnLCAnY3B1JyksCisgICAgICAgIF0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmln
c190b19tYXRjaCksIFtzZXQoWyd4cCddKV0pCisKKyAgICAgICAgY29uZmlnc190b19tYXRjaCA9
IHNldChbCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVh
c2UnLCAnZ3B1JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2
XzY0JywgJ2RlYnVnJywgJ2NwdScpLAorICAgICAgICBdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhjb252ZXJ0ZXIudG9fc3BlY2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0
KFsncmVsZWFzZScsICdncHUnLCAneHAnXSksIHNldChbJ2RlYnVnJywgJ3g4Nl82NCcsICdsdWNp
ZCcsICdjcHUnXSldKQorCisgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWworICAgICAg
ICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAor
ICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2Nw
dScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4NicsICdkZWJ1
ZycsICdjcHUnKSwKKyAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODYn
LCAncmVsZWFzZScsICdjcHUnKSwKKyAgICAgICAgXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoY29udmVydGVyLnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChb
J3JlbGVhc2UnLCAneHAnXSksIHNldChbJ3g4NicsICdsdWNpZCcsICdjcHUnXSldKQorCisgICAg
ICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWworICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRp
b24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAorICAgICAgICAgICAgVGVzdENvbmZp
Z3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLAorICAgICAgICAgICAgVGVz
dENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4Nl82NCcsICdkZWJ1ZycsICdjcHUnKSwKKyAgICAg
ICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODYnLCAnZGVidWcnLCAnY3B1Jyks
CisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2XzY0JywgJ2RlYnVn
JywgJ2dwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4Nics
ICdkZWJ1ZycsICdncHUnKSwKKyAgICAgICAgXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Y29udmVydGVyLnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3Jl
bGVhc2UnLCAneHAnXSksIHNldChbJ2RlYnVnJywgJ2x1Y2lkJ10pXSkKKworICAgICAgICBjb25m
aWdzX3RvX21hdGNoID0gc2V0KFsKKyAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKHZlcnNp
b249J2x1Y2lkJywgYXJjaGl0ZWN0dXJlPSd4ODZfNjQnLCBidWlsZF90eXBlPSdyZWxlYXNlJywg
Z3JhcGhpY3NfdHlwZT0nY3B1JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbih2ZXJz
aW9uPSdsdWNpZCcsIGFyY2hpdGVjdHVyZT0neDg2JywgYnVpbGRfdHlwZT0ncmVsZWFzZScsIGdy
YXBoaWNzX3R5cGU9J2dwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24odmVyc2lv
bj0nbHVjaWQnLCBhcmNoaXRlY3R1cmU9J3g4Nl82NCcsIGJ1aWxkX3R5cGU9J3JlbGVhc2UnLCBn
cmFwaGljc190eXBlPSdncHUnKSwKKyAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKHZlcnNp
b249J2x1Y2lkJywgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPSdyZWxlYXNlJywgZ3Jh
cGhpY3NfdHlwZT0nY3B1JyksCisgICAgICAgIF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQoWydy
ZWxlYXNlJywgJ2x1Y2lkJ10pXSkKKworICAgICAgICAjIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQo
WworICAgICAgICAjICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2Un
LCAnZ3B1JyksCisgICAgICAgICMgICAgIFRlc3RDb25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcs
ICd4ODYnLCAncmVsZWFzZScsICdncHUnKSwKKyAgICAgICAgIyAgICAgVGVzdENvbmZpZ3VyYXRp
b24oJ3dpbjcnLCAneDg2JywgJ3JlbGVhc2UnLCAnZ3B1JyksCisgICAgICAgICMgICAgIFRlc3RD
b25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODYnLCAncmVsZWFzZScsICdncHUnKSwKKyAgICAgICAg
IyAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4Nl82NCcsICdyZWxlYXNlJywgJ2dw
dScpLAorICAgICAgICAjIF0pCisgICAgICAgICMgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVy
LnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3JlbGVhc2UnLCAn
Z3B1J10pXSkKKworICAgICAgICAjIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWworICAgICAgICAj
ICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnLCAnZ3B1JyksCisg
ICAgICAgICMgICAgIFRlc3RDb25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcsICd4ODYnLCAncmVs
ZWFzZScsICdncHUnKSwKKyAgICAgICAgIyBdKQorICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1YWxz
KGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQoWyd4
cCcsICdzbm93bGVvcGFyZCcsICdyZWxlYXNlJywgJ2dwdSddKV0pCisKKyAgICAgICAgIyBjb25m
aWdzX3RvX21hdGNoID0gc2V0KFsKKyAgICAgICAgIyAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hw
JywgJ3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAorICAgICAgICAjICAgICBUZXN0Q29uZmlndXJh
dGlvbignc25vd2xlb3BhcmQnLCAneDg2JywgJ3JlbGVhc2UnLCAnZ3B1JyksCisgICAgICAgICMg
ICAgIFRlc3RDb25maWd1cmF0aW9uKCd3aW43JywgJ3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAor
ICAgICAgICAjICAgICBUZXN0Q29uZmlndXJhdGlvbignd2luNycsICd4ODYnLCAnZGVidWcnLCAn
Z3B1JyksCisgICAgICAgICMgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODYnLCAn
cmVsZWFzZScsICdncHUnKSwKKyAgICAgICAgIyBdKQorICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1
YWxzKGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQo
WydyZWxlYXNlJywgJ2dwdScsICdsdWNpZCcsICd4ODYnXSksIHNldChbJ2dwdScsICd3aW43J10p
LCBzZXQoWydyZWxlYXNlJywgJ2dwdScsICd4cCcsICdzbm93bGVvcGFyZCddKV0pCisKKwogY2xh
c3MgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgdGVzdEZ1bmMpOgogICAgICAgICBzZWxmLl9hbGxfdGVzdF9j
b25maWd1cmF0aW9ucyA9IG1ha2VfbW9ja19hbGxfdGVzdF9jb25maWd1cmF0aW9uc19zZXQoKQpA
QCAtMjk5LDYgKzQ5NywxNCBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlclRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIu
dG9fc3BlY2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsncmVsZWFzZScsICd4
cCddKSwgc2V0KFsnZGVidWcnLCAnbHVjaWQnXSldKQogCiAgICAgICAgIGNvbmZpZ3NfdG9fbWF0
Y2ggPSBzZXQoWworICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj0nbHVjaWQn
LCBhcmNoaXRlY3R1cmU9J3g4Nl82NCcsIGJ1aWxkX3R5cGU9J3JlbGVhc2UnLCBncmFwaGljc190
eXBlPSdjcHUnKSwKKyAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKHZlcnNpb249J2x1Y2lk
JywgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPSdyZWxlYXNlJywgZ3JhcGhpY3NfdHlw
ZT0nZ3B1JyksCisgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbih2ZXJzaW9uPSdsdWNpZCcs
IGFyY2hpdGVjdHVyZT0neDg2XzY0JywgYnVpbGRfdHlwZT0ncmVsZWFzZScsIGdyYXBoaWNzX3R5
cGU9J2dwdScpLAorICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj0nbHVjaWQn
LCBhcmNoaXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9J3JlbGVhc2UnLCBncmFwaGljc190eXBl
PSdjcHUnKSwKKyAgICAgICAgXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVy
LnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3JlbGVhc2UnLCAn
bHVjaWQnXSldKQorCisgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAg
ICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAogICAg
ICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3Nub3dsZW9wYXJkJywgJ3g4NicsICdyZWxlYXNl
JywgJ2dwdScpLAogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3dpbjcnLCAneDg2Jywg
J3JlbGVhc2UnLCAnZ3B1JyksCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkKaW5kZXggY2UxYmNkZTUyZmUzOWY4MjhjMzM5
OTVmMjIwNWVmZGU3NWVmNjRkMi4uMDI2ZTcyMTE3ZmExZDllMWNhYzIwMjI2ZjZhNzJlYmY5Yjg2
MTNkZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2Fy
ZGVuaW5nc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJz
L2dhcmRlbmluZ3NlcnZlci5weQpAQCAtNzksNiArNzksNyBAQCBjbGFzcyBHYXJkZW5pbmdFeHBl
Y3RhdGlvbnNVcGRhdGVyKEJ1Z01hbmFnZXIpOgogICAgICAgICAgICAgYXNzZXJ0KHRlc3RfbmFt
ZSkKICAgICAgICAgICAgIGJ1aWxkZXJfbmFtZSA9IGZhaWx1cmVfaW5mb1snYnVpbGRlck5hbWUn
XQogICAgICAgICAgICAgYWZmZWN0ZWRfdGVzdF9jb25maWd1cmF0aW9uX3NldCA9IHNlbGYuX2V4
dHJhcG9sYXRvci5leHRyYXBvbGF0ZV90ZXN0X2NvbmZpZ3VyYXRpb25zKGJ1aWxkZXJfbmFtZSkK
KyAgICAgICAgICAgIHByaW50IGFmZmVjdGVkX3Rlc3RfY29uZmlndXJhdGlvbl9zZXQKICAgICAg
ICAgICAgIHVwZGF0ZWRfZXhwZWN0YXRpb25fbGluZXMuZXh0ZW5kKGVkaXRvci51cGRhdGVfZXhw
ZWN0YXRpb24odGVzdF9uYW1lLCBhZmZlY3RlZF90ZXN0X2NvbmZpZ3VyYXRpb25fc2V0LCBleHBl
Y3RhdGlvbl9zZXQpKQogICAgICAgICBzZWxmLl90b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9m
aWxlKHNlbGYuX3BhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSwgVGVzdEV4cGVjdGF0aW9u
U2VyaWFsaXplci5saXN0X3RvX3N0cmluZyhleHBlY3RhdGlvbl9saW5lcywgc2VsZi5fY29udmVy
dGVyLCByZWNvbnN0aXR1dGVfb25seV90aGVzZT11cGRhdGVkX2V4cGVjdGF0aW9uX2xpbmVzKSkK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>