<?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>65206</bug_id>
          
          <creation_ts>2011-07-26 13:54:41 -0700</creation_ts>
          <short_desc>Replace SpecificityCalculator with TestConfiguration-driven logic.</short_desc>
          <delta_ts>2011-07-27 16:50:43 -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>RESOLVED</bug_status>
          <resolution>FIXED</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>
          <dependson>65194</dependson>
    
    <dependson>65242</dependson>
    
    <dependson>65278</dependson>
    
    <dependson>65287</dependson>
    
    <dependson>65291</dependson>
          <blocked>64385</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>abarth</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442508</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-26 13:54:41 -0700</bug_when>
    <thetext>Replace SpecificityCalculator with TestConfiguration-driven logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442515</commentid>
    <comment_count>1</comment_count>
      <attachid>102049</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-26 14:03:43 -0700</bug_when>
    <thetext>Created attachment 102049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442561</commentid>
    <comment_count>2</comment_count>
      <attachid>102049</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-26 15:07:30 -0700</bug_when>
    <thetext>Comment on attachment 102049
Patch

Clearing flags on attachment: 102049

Committed r91792: &lt;http://trac.webkit.org/changeset/91792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442562</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-26 15:07:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442794</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-07-27 02:05:24 -0700</bug_when>
    <thetext>This patch broke expectations parsing in GTK and Qt. Investigating the issue, any hint Dimitri?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442821</commentid>
    <comment_count>5</comment_count>
      <attachid>102116</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-07-27 03:05:47 -0700</bug_when>
    <thetext>Created attachment 102116
proposed GTK follow-up patch

Something similar is needed for Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442822</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-07-27 03:10:44 -0700</bug_when>
    <thetext>Reopening as the patch was rolled out. See Bug 65242.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442823</commentid>
    <comment_count>7</comment_count>
      <attachid>102049</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-07-27 03:12:16 -0700</bug_when>
    <thetext>Comment on attachment 102049
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:777
&gt; +            if self._test_config in expectation_line.matching_configurations:

The root issue of GTK and Qt failure is here. Those ports originally don&apos;t have the version field of their test config set and this test fails for all expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442957</commentid>
    <comment_count>8</comment_count>
      <attachid>102116</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-27 09:02:16 -0700</bug_when>
    <thetext>Comment on attachment 102116
proposed GTK follow-up patch

Your sense of smell is correct, the problem was that GTK actual bot configs aren&apos;t matching anything in the provided all_test_configurations(). The right fix is to teach all ports about all configs that are valid for them. I&apos;ll work on this today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443211</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-27 16:11:09 -0700</bug_when>
    <thetext>Committed r91878: &lt;http://trac.webkit.org/changeset/91878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443222</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-27 16:50:43 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Committed r91878: &lt;http://trac.webkit.org/changeset/91878&gt;

Looks like it worked this time! Phillippe, Ossy, please don&apos;t hesitate to roll out if you find troubles.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102049</attachid>
            <date>2011-07-26 14:03:43 -0700</date>
            <delta_ts>2011-07-27 03:12:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65206-20110726140342.patch</filename>
            <type>text/plain</type>
            <size>25652</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE3NjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMWM3ODFlOTdjMDQ5MjRjY2NjYmUxMWE1M2I1OTZiMjgy
ZTc4NjVkLi43NGYyOGZjY2Q1MmI0NDRmMmJiZTA4NzBkMDBlNzNiNjhlOWY0ZTA3IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcg
QEAKIDIwMTEtMDctMjYgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
IAorICAgICAgICBSZXBsYWNlIFNwZWNpZmljaXR5Q2FsY3VsYXRvciB3aXRoIFRlc3RDb25maWd1
cmF0aW9uLWRyaXZlbiBsb2dpYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1MjA2CisKKyAgICAgICAgVXNlIG91ciBuZXdseS1hY3F1aXJlZCBhYmls
aXR5IHRvIGV4cGFuZCBtb2RpZmllcnMgaW50byBhIHNldCBvZgorICAgICAgICBtYXRjaGluZyBU
ZXN0Q29uZmlndXJhdGlvbiBpbnN0YW5jZXMgdG8gY2FsY3VsYXRlIHNwZWNpZmljaXR5IGFuZAor
ICAgICAgICBkZXRlcm1pbmUgd2hldGhlciBleHBlY3RhdGlvbiBhcHBsaWVzIHRvIGEgZ2l2ZW4g
dGVzdCBjb25maWd1cmF0aW9uLgorCisgICAgICAgIEFsc28sIHN0b3JlIGJ1ZyBtb2RpZmllciBv
biBUZXN0RXhwZWN0YXRpb25zTGluZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2NvbmZpZ3VyYXRpb24ucHk6IEFkZGVkIGEgd2F5IHRvIHJlcG9ydCB1bmtub3duIG1vZGlm
aWVyIGVycm9ycy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9jb25maWd1cmF0aW9uX3VuaXR0ZXN0LnB5OiBBZGRlZCBhIHRlc3QgZm9yIHJlcG9y
dGluZyBlcnJvcnMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OiBSZXBsYWNlZCB0aGUgbG9naWMgb2YgY2FsY3VsYXRp
bmcgc3BlY2lmaWNpdHkgd2l0aAorICAgICAgICAgICAgdGVzdCBjb25maWd1cmF0aW9uIG1hdGNo
aW5nLCByZW1vdmVkIGEgYnVuY2ggb2YgY29kZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6IFJlbW92
ZWQgYSBidW5jaCBvZiB0ZXN0cyB0aGF0IGFyZW4ndCB1c2VmdWwgYW55bW9yZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5
OiBGaXhlZCBhbiBlcnJvciB3aGVyZSBhbiBpbnZhbGlkIFRlc3RDb25maWd1cmF0aW9uIGluc3Rh
bmNlCisgICAgICAgICAgICB3YXMgY3JlYXRlZC4gJ2RlZmF1bHQnIGlzIG5vdCBhIHZhbGlkIGJ1
aWxkIHR5cGUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90
ZXN0LnB5OiBEaXR0by4gJycgaXMgbm90IGEgdmFsaWQgdmVyc2lvbi4KKworMjAxMS0wNy0yNiAg
RGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFRlc3RD
b25maWd1cmF0aW9uQ29udmVydGVyIHNob3VsZCBub3QgYmFyZiBvbiBpbnZhbGlkIHNwZWNpZmll
cnMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTE5
NAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9jb25maWd1cmF0aW9uLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weQppbmRleCBhOTZkN2E3ZmNlMWUxMGQ5
ZmNlODNmMTIyNDhmYjU0MWQ0YWIyZGFiLi41Njc1M2IzYmFlNzIyNWJhNDJjNDg4ZWRlMzAwNTgz
ODYyYTlhNTRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb24ucHkKQEAgLTEzMiw3ICsx
MzIsNyBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcjoKICAgICAgICAgZXhwYW5k
ZWRfc3BlY2lmaWVycyA9IHNlbGYuX2NvbmZpZ3VyYXRpb25fbWFjcm9zLmdldChzcGVjaWZpZXIp
CiAgICAgICAgIHJldHVybiBleHBhbmRlZF9zcGVjaWZpZXJzIG9yIFtzcGVjaWZpZXJdCiAKLSAg
ICBkZWYgdG9fY29uZmlnX3NldChzZWxmLCBzcGVjaWZpZXJfc2V0KToKKyAgICBkZWYgdG9fY29u
ZmlnX3NldChzZWxmLCBzcGVjaWZpZXJfc2V0LCBlcnJvcl9saXN0PU5vbmUpOgogICAgICAgICAi
IiJDb252ZXJ0IGEgbGlzdCBvZiBzcGVjaWZpZXJzIGludG8gYSBzZXQgb2YgVGVzdENvbmZpZ3Vy
YXRpb24gaW5zdGFuY2VzLiIiIgogICAgICAgICBpZiBsZW4oc3BlY2lmaWVyX3NldCkgPT0gMDoK
ICAgICAgICAgICAgIHJldHVybiBzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucwpAQCAtMTQz
LDYgKzE0Myw4IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyOgogICAgICAgICAg
ICAgZm9yIGV4cGFuZGVkX3NwZWNpZmllciBpbiBzZWxmLl9leHBhbmRfbWFjcm9zKHNwZWNpZmll
cik6CiAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnMgPSBzZWxmLl9zcGVjaWZpZXJfdG9f
Y29uZmlndXJhdGlvbl9zZXQuZ2V0KGV4cGFuZGVkX3NwZWNpZmllcikKICAgICAgICAgICAgICAg
ICBpZiBub3QgY29uZmlndXJhdGlvbnM6CisgICAgICAgICAgICAgICAgICAgIGlmIGVycm9yX2xp
c3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9saXN0LmFwcGVu
ZCgiVW5yZWNvZ25pemVkIG1vZGlmaWVyICciICsgZXhwYW5kZWRfc3BlY2lmaWVyICsgIiciKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0KCkKICAgICAgICAgICAgICAgICBjYXRlZ29y
eSA9IHNlbGYuX3NwZWNpZmllcl90b19jYXRlZ29yeVtleHBhbmRlZF9zcGVjaWZpZXJdCiAgICAg
ICAgICAgICAgICAgbWF0Y2hpbmdfc2V0cy5zZXRkZWZhdWx0KGNhdGVnb3J5LCBzZXQoKSkudXBk
YXRlKGNvbmZpZ3VyYXRpb25zKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbl91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb25f
dW5pdHRlc3QucHkKaW5kZXggNGYyOTBmMDVlMWJhNDE5ZWY4ZGEwNTMzNmQ3ZjIxNzMxMTVmNmZh
OS4uMDYxNTc4MjkxZTA4ZjJhNjFlMGI4ODVhZjAyNjA0ZDkzYTVhZjAzZCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJh
dGlvbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uX3VuaXR0ZXN0LnB5CkBAIC0xMTksNiArMTE5LDEw
IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX2NvbmZpZ19zZXQo
c2V0KFsneHAnLCAnZm9vJ10pKSwgc2V0KCkpCiAKKyAgICAgICAgZXJyb3JzID0gW10KKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX2NvbmZpZ19zZXQoc2V0KFsneHAnLCAn
Zm9vJ10pLCBlcnJvcnMpLCBzZXQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3Jz
LCBbIlVucmVjb2duaXplZCBtb2RpZmllciAnZm9vJyJdKQorCiAgICAgICAgIGNvbmZpZ3NfdG9f
bWF0Y2ggPSBzZXQoWwogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oTm9uZSwgJ3hwJywg
J3g4NicsICdyZWxlYXNlJywgJ2dwdScpLAogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24o
Tm9uZSwgJ3hwJywgJ3g4NicsICdyZWxlYXNlJywgJ2NwdScpLApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0
YXRpb25zLnB5CmluZGV4IDdlZjQyODFmYTlhNDU2NWUzMmZjNDJjODNmYWFlYTVkYzA4NjNmY2Uu
LjY3ZDk4Mjc3YTFkOTMxNzQ1MGY2MzA4NzZmNmNkOWYwZGY4MTk3MzAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9u
cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnMucHkKQEAgLTQxLDYgKzQxLDcgQEAgZXhjZXB0IEltcG9ydEVycm9yOgog
ICAgICMgcHl0aG9uIDIuNSBjb21wYXRpYmlsaXR5CiAgICAgaW1wb3J0IHdlYmtpdHB5LnRoaXJk
cGFydHkuc2ltcGxlanNvbiBhcyBqc29uCiAKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1v
ZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uLCBUZXN0Q29u
ZmlndXJhdGlvbkNvbnZlcnRlcgogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CiAKQEAgLTE1NywzMCArMTU4LDQ3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcjoKIAog
ICAgIFRJTUVPVVRfRVhQRUNUQVRJT04gPSAndGltZW91dCcKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0LCB0ZXN0X2NvbmZpZywgZnVsbF90ZXN0X2xpc3QsIGFsbG93X3JlYmFzZWxpbmVf
bW9kaWZpZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBhbGxfdGVzdF9jb25maWd1
cmF0aW9ucywgZnVsbF90ZXN0X2xpc3QsIGFsbG93X3JlYmFzZWxpbmVfbW9kaWZpZXIpOgogICAg
ICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLl9zcGVjaWZpY2l0eV9jYWxjdWxh
dG9yID0gU3BlY2lmaWNpdHlDYWxjdWxhdG9yKHRlc3RfY29uZmlnKQorICAgICAgICBzZWxmLl90
ZXN0X2NvbmZpZ3VyYXRpb25fY29udmVydGVyID0gVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIo
YWxsX3Rlc3RfY29uZmlndXJhdGlvbnMsIFRlc3RFeHBlY3RhdGlvbnMuTUFDUk9TKQogICAgICAg
ICBzZWxmLl9mdWxsX3Rlc3RfbGlzdCA9IGZ1bGxfdGVzdF9saXN0CiAgICAgICAgIHNlbGYuX2Fs
bG93X3JlYmFzZWxpbmVfbW9kaWZpZXIgPSBhbGxvd19yZWJhc2VsaW5lX21vZGlmaWVyCiAKICAg
ICBkZWYgcGFyc2Uoc2VsZiwgZXhwZWN0YXRpb25fbGluZSk6Ci0gICAgICAgIHNlbGYuX3NwZWNp
ZmljaXR5X2NhbGN1bGF0b3IuY2FsY3VsYXRlKGV4cGVjdGF0aW9uX2xpbmUpCi0gICAgICAgIHNl
bGYuX2NoZWNrX3NlbWFudGljcyhleHBlY3RhdGlvbl9saW5lKQotCi0gICAgICAgIGlmIGV4cGVj
dGF0aW9uX2xpbmUuc3BlY2lmaWNpdHkgPT0gU3BlY2lmaWNpdHlDYWxjdWxhdG9yLklOVkFMSUQ6
Ci0gICAgICAgICAgICByZXR1cm4KLQogICAgICAgICBzZWxmLl9jaGVja19tb2RpZmllcnNfYWdh
aW5zdF9leHBlY3RhdGlvbnMoZXhwZWN0YXRpb25fbGluZSkKLQogICAgICAgICBpZiBzZWxmLl9j
aGVja19wYXRoX2RvZXNfbm90X2V4aXN0KGV4cGVjdGF0aW9uX2xpbmUpOgogICAgICAgICAgICAg
cmV0dXJuCiAKICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5wYXRoID0gc2VsZi5fcG9ydC5ub3Jt
YWxpemVfdGVzdF9uYW1lKGV4cGVjdGF0aW9uX2xpbmUubmFtZSkKICAgICAgICAgc2VsZi5fY29s
bGVjdF9tYXRjaGluZ190ZXN0cyhleHBlY3RhdGlvbl9saW5lKQogCi0gICAgICAgIGV4cGVjdGF0
aW9uX2xpbmUucGFyc2VkX21vZGlmaWVycyA9IFttb2RpZmllciBmb3IgbW9kaWZpZXIgaW4gZXhw
ZWN0YXRpb25fbGluZS5tb2RpZmllcnMgaWYgbW9kaWZpZXIgaW4gVGVzdEV4cGVjdGF0aW9ucy5N
T0RJRklFUlNdCisgICAgICAgIHNlbGYuX3BhcnNlX21vZGlmaWVycyhleHBlY3RhdGlvbl9saW5l
KQogICAgICAgICBzZWxmLl9wYXJzZV9leHBlY3RhdGlvbnMoZXhwZWN0YXRpb25fbGluZSkKIAor
ICAgIGRlZiBfcGFyc2VfbW9kaWZpZXJzKHNlbGYsIGV4cGVjdGF0aW9uX2xpbmUpOgorICAgICAg
ICBoYXNfd29udGZpeCA9IEZhbHNlCisgICAgICAgIHBhcnNlZF9zcGVjaWZpZXJzID0gc2V0KCkK
KyAgICAgICAgZm9yIG1vZGlmaWVyIGluIGV4cGVjdGF0aW9uX2xpbmUubW9kaWZpZXJzOgorICAg
ICAgICAgICAgaWYgbW9kaWZpZXIgaW4gVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklFUlM6CisgICAg
ICAgICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5wYXJzZWRfbW9kaWZpZXJzLmFwcGVuZChtb2Rp
ZmllcikKKyAgICAgICAgICAgICAgICBpZiBtb2RpZmllciA9PSBzZWxmLldPTlRGSVhfTU9ESUZJ
RVI6CisgICAgICAgICAgICAgICAgICAgIGhhc193b250Zml4ID0gVHJ1ZQorICAgICAgICAgICAg
ZWxpZiBtb2RpZmllci5zdGFydHN3aXRoKHNlbGYuQlVHX01PRElGSUVSX1BSRUZJWCk6CisgICAg
ICAgICAgICAgICAgaWYgcmUubWF0Y2goc2VsZi5CVUdfTU9ESUZJRVJfUkVHRVgsIG1vZGlmaWVy
KToKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5lcnJvcnMuYXBwZW5kKCdC
VUdcZCsgaXMgbm90IGFsbG93ZWQsIG11c3QgYmUgb25lIG9mIEJVR0NSXGQrLCBCVUdXS1xkKywg
QlVHVjhfXGQrLCBvciBhIG5vbi1udW1lcmljIGJ1ZyBpZGVudGlmaWVyLicpCisgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5wYXJzZWRf
YnVnX21vZGlmaWVyID0gbW9kaWZpZXIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgcGFyc2VkX3NwZWNpZmllcnMuYWRkKG1vZGlmaWVyKQorCisgICAgICAgIGlmIG5vdCBleHBl
Y3RhdGlvbl9saW5lLnBhcnNlZF9idWdfbW9kaWZpZXIgYW5kIG5vdCBoYXNfd29udGZpeDoKKyAg
ICAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUud2FybmluZ3MuYXBwZW5kKCdUZXN0IGxhY2tzIEJV
RyBtb2RpZmllci4nKQorCisgICAgICAgIGlmIHNlbGYuX2FsbG93X3JlYmFzZWxpbmVfbW9kaWZp
ZXIgYW5kIHNlbGYuUkVCQVNFTElORV9NT0RJRklFUiBpbiBleHBlY3RhdGlvbl9saW5lLm1vZGlm
aWVyczoKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUuZXJyb3JzLmFwcGVuZCgnUkVCQVNF
TElORSBzaG91bGQgb25seSBiZSB1c2VkIGZvciBydW5uaW5nIHJlYmFzZWxpbmUucHkuIENhbm5v
dCBiZSBjaGVja2VkIGluLicpCisKKyAgICAgICAgZXhwZWN0YXRpb25fbGluZS5tYXRjaGluZ19j
b25maWd1cmF0aW9ucyA9IHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbl9jb252ZXJ0ZXIudG9fY29u
ZmlnX3NldChwYXJzZWRfc3BlY2lmaWVycywgZXhwZWN0YXRpb25fbGluZS5lcnJvcnMpCisKICAg
ICBkZWYgX3BhcnNlX2V4cGVjdGF0aW9ucyhzZWxmLCBleHBlY3RhdGlvbl9saW5lKToKICAgICAg
ICAgcmVzdWx0ID0gc2V0KCkKICAgICAgICAgZm9yIHBhcnQgaW4gZXhwZWN0YXRpb25fbGluZS5l
eHBlY3RhdGlvbnM6CkBAIC0xOTEsMjEgKzIwOSw2IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBh
cnNlcjoKICAgICAgICAgICAgIHJlc3VsdC5hZGQoZXhwZWN0YXRpb24pCiAgICAgICAgIGV4cGVj
dGF0aW9uX2xpbmUucGFyc2VkX2V4cGVjdGF0aW9ucyA9IHJlc3VsdAogCi0gICAgZGVmIF9jaGVj
a19zZW1hbnRpY3Moc2VsZiwgZXhwZWN0YXRpb25fbGluZSk6Ci0gICAgICAgIGhhc193b250Zml4
ID0gc2VsZi5XT05URklYX01PRElGSUVSIGluIGV4cGVjdGF0aW9uX2xpbmUubW9kaWZpZXJzCi0g
ICAgICAgIGhhc19idWcgPSBGYWxzZQotICAgICAgICBmb3IgbW9kaWZpZXIgaW4gZXhwZWN0YXRp
b25fbGluZS5tb2RpZmllcnM6Ci0gICAgICAgICAgICBpZiBtb2RpZmllci5zdGFydHN3aXRoKHNl
bGYuQlVHX01PRElGSUVSX1BSRUZJWCk6Ci0gICAgICAgICAgICAgICAgaGFzX2J1ZyA9IFRydWUK
LSAgICAgICAgICAgICAgICBpZiByZS5tYXRjaChzZWxmLkJVR19NT0RJRklFUl9SRUdFWCwgbW9k
aWZpZXIpOgotICAgICAgICAgICAgICAgICAgICBleHBlY3RhdGlvbl9saW5lLmVycm9ycy5hcHBl
bmQoJ0JVR1xkKyBpcyBub3QgYWxsb3dlZCwgbXVzdCBiZSBvbmUgb2YgQlVHQ1JcZCssIEJVR1dL
XGQrLCBCVUdWOF9cZCssIG9yIGEgbm9uLW51bWVyaWMgYnVnIGlkZW50aWZpZXIuJykKLQotICAg
ICAgICBpZiBub3QgaGFzX2J1ZyBhbmQgbm90IGhhc193b250Zml4OgotICAgICAgICAgICAgZXhw
ZWN0YXRpb25fbGluZS53YXJuaW5ncy5hcHBlbmQoJ1Rlc3QgbGFja3MgQlVHIG1vZGlmaWVyLicp
Ci0KLSAgICAgICAgaWYgc2VsZi5fYWxsb3dfcmViYXNlbGluZV9tb2RpZmllciBhbmQgc2VsZi5S
RUJBU0VMSU5FX01PRElGSUVSIGluIGV4cGVjdGF0aW9uX2xpbmUubW9kaWZpZXJzOgotICAgICAg
ICAgICAgZXhwZWN0YXRpb25fbGluZS5lcnJvcnMuYXBwZW5kKCdSRUJBU0VMSU5FIHNob3VsZCBv
bmx5IGJlIHVzZWQgZm9yIHJ1bm5pbmcgcmViYXNlbGluZS5weS4gQ2Fubm90IGJlIGNoZWNrZWQg
aW4uJykKLQogICAgIGRlZiBfY2hlY2tfbW9kaWZpZXJzX2FnYWluc3RfZXhwZWN0YXRpb25zKHNl
bGYsIGV4cGVjdGF0aW9uX2xpbmUpOgogICAgICAgICBpZiBzZWxmLlNMT1dfTU9ESUZJRVIgaW4g
ZXhwZWN0YXRpb25fbGluZS5tb2RpZmllcnMgYW5kIHNlbGYuVElNRU9VVF9FWFBFQ1RBVElPTiBp
biBleHBlY3RhdGlvbl9saW5lLmV4cGVjdGF0aW9uczoKICAgICAgICAgICAgIGV4cGVjdGF0aW9u
X2xpbmUuZXJyb3JzLmFwcGVuZCgnQSB0ZXN0IGNhbiBub3QgYmUgYm90aCBTTE9XIGFuZCBUSU1F
T1VULiBJZiBpdCB0aW1lcyBvdXQgaW5kZWZpbml0ZWx5LCB0aGVuIGl0IHNob3VsZCBiZSBqdXN0
IFRJTUVPVVQuJykKQEAgLTMxMywxMCArMzE2LDExIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbkxp
bmU6CiAgICAgICAgIHNlbGYucGF0aCA9IE5vbmUKICAgICAgICAgc2VsZi5tb2RpZmllcnMgPSBb
XQogICAgICAgICBzZWxmLnBhcnNlZF9tb2RpZmllcnMgPSBbXQorICAgICAgICBzZWxmLnBhcnNl
ZF9idWdfbW9kaWZpZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF0Y2hpbmdfY29uZmlndXJhdGlv
bnMgPSBzZXQoKQogICAgICAgICBzZWxmLmV4cGVjdGF0aW9ucyA9IFtdCiAgICAgICAgIHNlbGYu
cGFyc2VkX2V4cGVjdGF0aW9ucyA9IHNldCgpCiAgICAgICAgIHNlbGYuY29tbWVudCA9IE5vbmUK
LSAgICAgICAgc2VsZi5zcGVjaWZpY2l0eSA9IFNwZWNpZmljaXR5Q2FsY3VsYXRvci5JTlZBTElE
CiAgICAgICAgIHNlbGYubWF0Y2hpbmdfdGVzdHMgPSBbXQogICAgICAgICBzZWxmLmVycm9ycyA9
IFtdCiAgICAgICAgIHNlbGYud2FybmluZ3MgPSBbXQpAQCAtNTE1LDE4ICs1MTksMTggQEAgY2xh
c3MgVGVzdEV4cGVjdGF0aW9uc01vZGVsOgogCiAgICAgICAgICMgRklYTUU6IFRoaXMgY29kZSB3
YXMgb3JpZ2luYWxseSBkZXNpZ25lZCB0byBhbGxvdyBsaW5lcyB0aGF0IG1hdGNoZWQKICAgICAg
ICAgIyBtb3JlIG1vZGlmaWVycyB0byBvdmVycmlkZSBsaW5lcyB0aGF0IG1hdGNoZWQgZmV3ZXIg
bW9kaWZpZXJzLgotICAgICAgICAjIEhvd2V2ZXIsIHdlIGN1cnJlbnRseSB2aWV3IHRoZXNlIGFz
IGVycm9ycy4gSWYgd2UgZGVjaWRlIHRvIG1ha2UKLSAgICAgICAgIyB0aGlzIHBvbGljeSBwZXJt
YW5lbnQsIHdlIGNhbiBwcm9iYWJseSBzaW1wbGlmeSB0aGlzIGNvZGUKLSAgICAgICAgIyBhbmQg
dGhlIFNwZWNpZmljaXR5Q2FsY3VsYXRvciBjb2RlIGEgZmFpciBhbW91bnQuCisgICAgICAgICMg
SG93ZXZlciwgd2UgY3VycmVudGx5IHZpZXcgdGhlc2UgYXMgZXJyb3JzLgogICAgICAgICAjCiAg
ICAgICAgICMgVG8gdXNlIHRoZSAibW9yZSBtb2RpZmllcnMgd2lucyIgcG9saWN5LCBjaGFuZ2Ug
dGhlIGVycm9ycyBmb3Igb3ZlcnJpZGVzCiAgICAgICAgICMgdG8gYmUgd2FybmluZ3MgYW5kIHJl
dHVybiBGYWxzZSIuCiAKLSAgICAgICAgaWYgcHJldl9leHBlY3RhdGlvbl9saW5lLnNwZWNpZmlj
aXR5ID09IGV4cGVjdGF0aW9uX2xpbmUuc3BlY2lmaWNpdHk6CisgICAgICAgIHByZXZfc3BlY2lm
aWNpdHkgPSBsZW4ocHJldl9leHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25z
KQorICAgICAgICBzcGVjaWZpY2l0eSA9IGxlbihleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2Nv
bmZpZ3VyYXRpb25zKQorICAgICAgICBpZiBwcmV2X3NwZWNpZmljaXR5ID09IHNwZWNpZmljaXR5
OgogICAgICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5lcnJvcnMuYXBwZW5kKCdEdXBsaWNhdGUg
b3IgYW1iaWd1b3VzICVzLicgJSBleHBlY3RhdGlvbl9zb3VyY2UpCiAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQogCi0gICAgICAgIGlmIHByZXZfZXhwZWN0YXRpb25fbGluZS5zcGVjaWZpY2l0eSA8
IGV4cGVjdGF0aW9uX2xpbmUuc3BlY2lmaWNpdHk6CisgICAgICAgIGlmIHByZXZfc3BlY2lmaWNp
dHkgPCBzcGVjaWZpY2l0eToKICAgICAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUuZXJyb3JzLmFw
cGVuZCgnTW9yZSBzcGVjaWZpYyBlbnRyeSBvbiBsaW5lICVkIG92ZXJyaWRlcyBsaW5lICVkJyAl
IChleHBlY3RhdGlvbl9saW5lLmxpbmVfbnVtYmVyLCBwcmV2X2V4cGVjdGF0aW9uX2xpbmUubGlu
ZV9udW1iZXIpKQogICAgICAgICAgICAgIyBGSVhNRTogcmV0dXJuIEZhbHNlIGlmIHdlIHdhbnQg
bW9yZSBzcGVjaWZpYyB0byB3aW4uCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQpAQCAtNjE0LDYg
KzYxOCwxMiBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgICAgICAgICAgICAgICAgICAn
ZmFpbCc6IEZBSUwsCiAgICAgICAgICAgICAgICAgICAgICdmbGFreSc6IEZMQUtZfQogCisgICAg
TUFDUk9TID0geworICAgICAgICAnbWFjJzogWydsZW9wYXJkJywgJ3Nub3dsZW9wYXJkJ10sCisg
ICAgICAgICd3aW4nOiBbJ3hwJywgJ3Zpc3RhJywgJ3dpbjcnXSwKKyAgICAgICAgJ2xpbnV4Jzog
WydsdWNpZCddLAorICAgIH0KKwogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBleHBlY3RhdGlv
bl9mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CiAgICAgICAgIGFzc2VydCgnICcgbm90IGluIHN0
cmluZykgICMgVGhpcyBvbmx5IGhhbmRsZXMgb25lIGV4cGVjdGF0aW9uIGF0IGEgdGltZS4KQEAg
LTY0MCw3ICs2NTAsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgICAgICBzZWxmLl90
ZXN0X2NvbmZpZyA9IHRlc3RfY29uZmlnCiAgICAgICAgIHNlbGYuX2lzX2xpbnRfbW9kZSA9IGlz
X2xpbnRfbW9kZQogICAgICAgICBzZWxmLl9tb2RlbCA9IFRlc3RFeHBlY3RhdGlvbnNNb2RlbCgp
Ci0gICAgICAgIHNlbGYuX3BhcnNlciA9IFRlc3RFeHBlY3RhdGlvblBhcnNlcihwb3J0LCB0ZXN0
X2NvbmZpZywgdGVzdHMsIGlzX2xpbnRfbW9kZSkKKyAgICAgICAgc2VsZi5fcGFyc2VyID0gVGVz
dEV4cGVjdGF0aW9uUGFyc2VyKHBvcnQsIHBvcnQuYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoKSwg
dGVzdHMsIGlzX2xpbnRfbW9kZSkKIAogICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgPSBUZXN0
RXhwZWN0YXRpb25QYXJzZXIudG9rZW5pemVfbGlzdChleHBlY3RhdGlvbnMpCiAgICAgICAgIHNl
bGYuX2FkZF9leHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zLCBvdmVycmlkZXNfYWxsb3dl
ZD1GYWxzZSkKQEAgLTc2NCwxODQgKzc3NCw1IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnM6CiAg
ICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgc2VsZi5fcGFyc2VyLnBhcnNl
KGV4cGVjdGF0aW9uX2xpbmUpCi0gICAgICAgICAgICBzZWxmLl9tb2RlbC5hZGRfZXhwZWN0YXRp
b25fbGluZShleHBlY3RhdGlvbl9saW5lLCBvdmVycmlkZXNfYWxsb3dlZCkKLQotCi1jbGFzcyBT
cGVjaWZpY2l0eUNhbGN1bGF0aW9uKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1v
ZGlmaWVycyk6Ci0gICAgICAgIHNlbGYuc3BlY2lmaWNpdHkgPSBTcGVjaWZpY2l0eUNhbGN1bGF0
b3IuSU5WQUxJRAotICAgICAgICBzZWxmLl9tb2RpZmllcnMgPSBtb2RpZmllcnMKLSAgICAgICAg
c2VsZi5fbWF0Y2hlZF9tb2RpZmllcnMgPSBbXQotICAgICAgICBzZWxmLl9tYXRjaGVkX3JlZ2V4
ZXMgPSBzZXQoKQotICAgICAgICBzZWxmLl9tYXRjaGVkX21hY3JvcyA9IHNldCgpCi0KLQotY2xh
c3MgU3BlY2lmaWNpdHlDYWxjdWxhdG9yKG9iamVjdCk6Ci0KLSAgICAiIiIKLSAgICBUaGlzIGNs
YXNzIGRldGVybWluZXMgaG93IHNwZWNpZmljIGFyZSB0aGUgbW9kaWZpZXJzIGZvciBhIGdpdmVu
Ci0gICAgVGVzdEV4cGVjdGF0aW9uTGluZS4gU29tZSBtb2RpZmllcnMgZGVzY3JpYmUgYSB0ZXN0
IGNvbmZpZ3VyYXRpb24gZm9yIHdoaWNoIHRoaXMKLSAgICB0ZXN0IGV4cGVjdGF0aW9uIGlzIGFw
cGxpY2FibGUuIFRoZXJlIGlzIGEgZGVncmVlIG9mIHNwZWNpZmljaXR5IGZvciB0aGVzZSBtb2Rp
ZmllcnMuCi0KLSAgICBGb3IgZXhhbXBsZSwgJ1hQIFJFTEVBU0UgQ1BVJyBpcyB2ZXJ5IHNwZWNp
ZmljLCBiZWNhdXNlIGl0IGxpbWl0cyBhcHBsaWNhYmxlIHRlc3QgY29uZmlndXJhdGlvbiB0bwot
ICAgIFdpbmRvd3MgWFAgc3lzdGVtIGluIFJlbGVhc2UgbW9kZSwgd2l0aCBDUFUtYmFja2VkIGdy
YXBoaWNzLgotCi0gICAgT24gdGhlIG90aGVyIGhhbmQsICcnIChlbXB0eSBtb2RpZmllcikgbWFr
ZXMgdGhlIHRlc3QgYXBwbGljYWJsZSB0byBhbnkgdGVzdCBjb25maWd1cmF0aW9uLgotCi0gICAg
VGhpcyBjbGFzcyBmaW5kcyBzdWNoIG1vZGlmaWVycywgaW50ZXJwcmV0cyB0aGVpciBtZWFuaW5n
IGFuZCBkZXRlcm1pbmVzIHNwZWNpZmljaXR5IG9mCi0gICAgYSBnaXZlbiB0ZXN0IGV4cGVjdGF0
aW9uLgotCi0gICAgVGhlIHNwZWNpZmljaXR5IGlzIGRldGVybWluZWQgYXMgYSBjb3VudCBvZiBt
b2RpZmllcnMgdGhhdCBtYXRjaC4gQSBsaW5lIHdpdGggbm8gbW9kaWZpZXJzIG1hdGNoZXMKLSAg
ICBldmVyeXRoaW5nIGFuZCBoYXMgYSBzY29yZSBvZiB6ZXJvLiBBIGxpbmUgd2l0aCBvbmUgbW9k
aWZpZXIgbWF0Y2hlcyBvbmx5Ci0gICAgcG9ydHMgdGhhdCBoYXZlIHRoYXQgbW9kaWZpZXIgYW5k
IGdldHMgYSBzY29yZSBvZiAxLCBhbmQgc28gb25lLiBQb3J0cwotICAgIHRoYXQgZG9uJ3QgbWF0
Y2ggYXQgYWxsIGdldCBhIHNjb3JlIG9mIC0xLgotCi0gICAgR2l2ZW4gdHdvIGxpbmVzIGluIGEg
ZmlsZSB0aGF0IGFwcGx5IHRvIHRoZSBzYW1lIHRlc3QsIGlmIGJvdGggZXhwZWN0YXRpb25zCi0g
ICAgbWF0Y2ggdGhlIGN1cnJlbnQgY29uZmlnLCB0aGVuIHRoZSBleHBlY3RhdGlvbiBpcyBjb25z
aWRlcmVkIGFtYmlndW91cywKLSAgICBldmVuIGlmIG9uZSBleHBlY3RhdGlvbiBtYXRjaGVzIG1v
cmUgb2YgdGhlIGNvbmZpZyB0aGFuIHRoZSBvdGhlci4gRm9yCi0gICAgZXhhbXBsZSwgaW46Ci0K
LSAgICBCVUcxIFJFTEVBU0UgOiBmb28uaHRtbCA9IEZBSUwKLSAgICBCVUcxIFdJTiBSRUxFQVNF
IDogZm9vLmh0bWwgPSBQQVNTCi0gICAgQlVHMiBXSU4gOiBiYXIuaHRtbCA9IEZBSUwKLSAgICBC
VUcyIERFQlVHIDogYmFyLmh0bWwgPSBQQVNTCi0KLSAgICBsaW5lcyAxIGFuZCAyIHdvdWxkIHBy
b2R1Y2UgYW4gZXJyb3Igb24gYSBXaW4gWFAgUmVsZWFzZSBib3QgKHRoZSBzY29yZXMKLSAgICB3
b3VsZCBiZSAxIGFuZCAyLCByZXNwZWN0aXZlbHkpLCBhbmQgbGluZXMgdGhyZWUgYW5kIGZvdXIg
d291bGQgcHJvZHVjZQotICAgIGEgZHVwbGljYXRlIGV4cGVjdGF0aW9uIG9uIGEgV2luIERlYnVn
IGJvdCBzaW5jZSBib3RoIHRoZSAnd2luJyBhbmQgdGhlCi0gICAgJ2RlYnVnJyBleHBlY3RhdGlv
bnMgd291bGQgYXBwbHkgKGJvdGggaGFkIHNjb3JlcyBvZiAxKS4KLQotICAgIEluIGFkZGl0aW9u
IHRvIHRoZSBkZWZpbml0aW9ucyBvZiBhbGwgb2YgdGhlIG1vZGlmaWVycywgdGhlIGNsYXNzCi0g
ICAgc3VwcG9ydHMgIm1hY3JvcyIgdGhhdCBhcmUgZXhwYW5kZWQgcHJpb3IgdG8gaW50ZXJwcmV0
YXRpb24sIGFuZCAiaWdub3JlCi0gICAgcmVnZXhlcyIgdGhhdCBjYW4gYmUgdXNlZCB0byBza2lw
IG92ZXIgbW9kaWZpZXJzIGxpa2UgdGhlIEJVRyogbW9kaWZpZXJzLgotCi0gICAgVGhpcyBjbGFz
cyBhbHNvIGRldGVjdHMgZXJyb3JzIGluIHRoaXMgdGVzdCBleHBlY3RhdGlvbiwgbGlrZSB1bmtu
b3duIG1vZGlmaWVycywKLSAgICBpbnZhbGlkIG1vZGlmaWVyIGNvbWJpbmF0aW9ucywgYW5kIGR1
cGxpY2F0ZSBtb2RpZmllcnMuCi0gICAgIiIiCi0gICAgTUFDUk9TID0gewotICAgICAgICAnbWFj
JzogWydsZW9wYXJkJywgJ3Nub3dsZW9wYXJkJ10sCi0gICAgICAgICd3aW4nOiBbJ3hwJywgJ3Zp
c3RhJywgJ3dpbjcnXSwKLSAgICAgICAgJ2xpbnV4JzogWydsdWNpZCddLAotICAgIH0KLQotICAg
ICMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgIm5vbmUiIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXNuJ3Qg
YWN0dWFsbHkgbGVnYWwuCi0gICAgUkVHRVhFU19UT19JR05PUkUgPSAoWydidWdcdysnXSArCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklFUlMua2V5cygp
WzotMV0pCi0gICAgRFVQTElDQVRFX1JFR0VYRVNfQUxMT1dFRCA9IFsnYnVnXHcrJ10KLQotICAg
ICMgTWFnaWMgdmFsdWUgcmV0dXJuZWQgd2hlbiB0aGUgbW9kaWZpZXJzIGRvbid0IG1hdGNoIHRo
ZSBjb25maWd1cmF0aW9uIGF0IGFsbC4KLSAgICBJTlZBTElEID0gLTEKLQotICAgICMgRklYTUU6
IFRoZSBjb2RlIGN1cnJlbnRseSBkb2Vzbid0IGRldGVjdCBjb21iaW5hdGlvbnMgb2YgbW9kaWZp
ZXJzCi0gICAgIyB0aGF0IGFyZSBzeW50YWN0aWNhbGx5IHZhbGlkIGJ1dCBzZW1hbnRpY2FsbHkg
aW52YWxpZCwgbGlrZQotICAgICMgJ01BQyBYUCcuIFNlZSBTcGVjaWZpY2l0eUNhbGN1bGF0b3JU
ZXN0LnRlc3RfaW52YWxpZF9jb21iaW5hdGlvbnMoKSBpbiB0aGUKLSAgICAjIF91bml0dGVzdC5w
eSBmaWxlLgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfY29uZmlnKToKLSAgICAgICAg
IiIiSW5pdGlhbGl6ZSBhIFNwZWNpZmljaXR5Q2FsY3VsYXRvciBhcmd1bWVudCB3aXRoIHRoZSBU
ZXN0Q29uZmlndXJhdGlvbiBpdAotICAgICAgICBzaG91bGQgYmUgbWF0Y2hlZCBhZ2FpbnN0LiIi
IgotICAgICAgICBzZWxmLnRlc3RfY29uZmlnID0gdGVzdF9jb25maWcKLSAgICAgICAgc2VsZi5h
bGxvd2VkX2NvbmZpZ3VyYXRpb25zID0gdGVzdF9jb25maWcuYWxsX3Rlc3RfY29uZmlndXJhdGlv
bnMoKQotICAgICAgICBzZWxmLm1hY3JvcyA9IHNlbGYuTUFDUk9TCi0KLSAgICAgICAgc2VsZi5y
ZWdleGVzX3RvX2lnbm9yZSA9IHt9Ci0gICAgICAgIGZvciByZWdleF9zdHIgaW4gc2VsZi5SRUdF
WEVTX1RPX0lHTk9SRToKLSAgICAgICAgICAgIHNlbGYucmVnZXhlc190b19pZ25vcmVbcmVnZXhf
c3RyXSA9IHJlLmNvbXBpbGUocmVnZXhfc3RyKQotCi0gICAgICAgICMgS2VlcCBhIHNldCBvZiBh
bGwgb2YgdGhlIGxlZ2FsIG1vZGlmaWVycyBmb3IgcXVpY2sgY2hlY2tpbmcuCi0gICAgICAgIHNl
bGYuX2FsbF9tb2RpZmllcnMgPSBzZXQoKQotCi0gICAgICAgICMgS2VlcCBhIGRpY3QgbWFwcGlu
ZyB2YWx1ZXMgYmFjayB0byB0aGVpciBjYXRlZ29yaWVzLgotICAgICAgICBzZWxmLl9jYXRlZ29y
aWVzX2Zvcl9tb2RpZmllcnMgPSB7fQotICAgICAgICBmb3IgY29uZmlnIGluIHNlbGYuYWxsb3dl
ZF9jb25maWd1cmF0aW9uczoKLSAgICAgICAgICAgIGZvciBjYXRlZ29yeSwgbW9kaWZpZXIgaW4g
Y29uZmlnLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY2F0ZWdvcmllc19mb3JfbW9k
aWZpZXJzW21vZGlmaWVyXSA9IGNhdGVnb3J5Ci0gICAgICAgICAgICAgICAgc2VsZi5fYWxsX21v
ZGlmaWVycy5hZGQobW9kaWZpZXIpCi0KLSAgICBkZWYgY2FsY3VsYXRlKHNlbGYsIGV4cGVjdGF0
aW9uX2xpbmUpOgotICAgICAgICAiIiJDaGVja3MgYSBleHBlY3RhdGlvbi5tb2RpZmllcnMgYWdh
aW5zdCB0aGUgY29uZmlnIHNldCBpbiB0aGUgY29uc3RydWN0b3IuCi0gICAgICAgIE9wdGlvbnMg
bWF5IGJlIGVpdGhlciBhY3R1YWwgbW9kaWZpZXIgc3RyaW5ncywgIm1hY3JvIiBzdHJpbmdzCi0g
ICAgICAgIHRoYXQgZ2V0IGV4cGFuZGVkIHRvIGEgbGlzdCBvZiBtb2RpZmllcnMsIG9yIHN0cmlu
Z3MgdGhhdCBhcmUgYWxsb3dlZAotICAgICAgICB0byBiZSBpZ25vcmVkLiBBbGwgb2YgdGhlIG1v
ZGlmaWVycyBtdXN0IGJlIHBhc3NlZCBpbiBpbiBsb3dlciBjYXNlLgotCi0gICAgICAgIFJldHVy
bnMgc3BlY2lmaWNpdHkgcmVsYXRpdmUgdG8gdGhlIHRlc3QgY29uZmlndXJhdGlvbiwgb3IgSU5W
QUxJRCAoLTEpIGlmIGl0Ci0gICAgICAgIGRvZXNuJ3QgbWF0Y2ggb3IgdGhlcmUgd2VyZSBlcnJv
cnMgZm91bmQuIE1hdGNoZXMgYXJlIHByaW9yaXRpemVkCi0gICAgICAgIGJ5IHRoZSBudW1iZXIg
b2YgbWF0Y2hpbmcgY2F0ZWdvcmllcywgYmVjYXVzZSB0aGUgbW9yZSBzcGVjaWZpYwotICAgICAg
ICB0aGUgbW9kaWZpZXIgbGlzdCwgdGhlIG1vcmUgY2F0ZWdvcmllcyB3aWxsIG1hdGNoLgotICAg
ICAgICAiIiIKLSAgICAgICAgb2xkX2Vycm9yX2NvdW50ID0gbGVuKGV4cGVjdGF0aW9uX2xpbmUu
ZXJyb3JzKQotICAgICAgICByZXN1bHQgPSBTcGVjaWZpY2l0eUNhbGN1bGF0aW9uKGV4cGVjdGF0
aW9uX2xpbmUubW9kaWZpZXJzKQotICAgICAgICBzZWxmLl9wYXJzZShleHBlY3RhdGlvbl9saW5l
LCByZXN1bHQpCi0gICAgICAgIGlmIG9sZF9lcnJvcl9jb3VudCA9PSBsZW4oZXhwZWN0YXRpb25f
bGluZS5lcnJvcnMpOgotICAgICAgICAgICAgc2VsZi5fY291bnRfbWF0Y2hlcyhyZXN1bHQpCi0g
ICAgICAgIGV4cGVjdGF0aW9uX2xpbmUuc3BlY2lmaWNpdHkgPSByZXN1bHQuc3BlY2lmaWNpdHkK
LQotICAgIGRlZiBfcGFyc2Uoc2VsZiwgZXhwZWN0YXRpb25fbGluZSwgcmVzdWx0KToKLSAgICAg
ICAgIyBGSVhNRTogU2hvdWxkIHdlIHdhcm4gYWJvdXQgbGluZXMgaGF2aW5nIGV2ZXJ5IHZhbHVl
IGluIGEgY2F0ZWdvcnk/Ci0gICAgICAgIGZvciBtb2RpZmllciBpbiByZXN1bHQuX21vZGlmaWVy
czoKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlX29uZShleHBlY3RhdGlvbl9saW5lLCBtb2RpZmll
ciwgcmVzdWx0KQotCi0gICAgZGVmIF9wYXJzZV9vbmUoc2VsZiwgZXhwZWN0YXRpb25fbGluZSwg
bW9kaWZpZXIsIHJlc3VsdCk6Ci0gICAgICAgIGlmIG1vZGlmaWVyIGluIHNlbGYuX2FsbF9tb2Rp
ZmllcnM6Ci0gICAgICAgICAgICBzZWxmLl9hZGRfbW9kaWZpZXIoZXhwZWN0YXRpb25fbGluZSwg
bW9kaWZpZXIsIHJlc3VsdCkKLSAgICAgICAgZWxpZiBtb2RpZmllciBpbiBzZWxmLm1hY3JvczoK
LSAgICAgICAgICAgIHNlbGYuX2V4cGFuZF9tYWNybyhleHBlY3RhdGlvbl9saW5lLCBtb2RpZmll
ciwgcmVzdWx0KQotICAgICAgICBlbGlmIG5vdCBzZWxmLl9tYXRjaGVzX2FueV9yZWdleChleHBl
Y3RhdGlvbl9saW5lLCBtb2RpZmllciwgcmVzdWx0KToKLSAgICAgICAgICAgIGV4cGVjdGF0aW9u
X2xpbmUuZXJyb3JzLmFwcGVuZCgiVW5yZWNvZ25pemVkIG1vZGlmaWVyICclcyciICUgbW9kaWZp
ZXIpCi0KLSAgICBkZWYgX2FkZF9tb2RpZmllcihzZWxmLCBleHBlY3RhdGlvbl9saW5lLCBtb2Rp
ZmllciwgcmVzdWx0KToKLSAgICAgICAgaWYgbW9kaWZpZXIgaW4gcmVzdWx0Ll9tYXRjaGVkX21v
ZGlmaWVyczoKLSAgICAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUuZXJyb3JzLmFwcGVuZCgiTW9y
ZSB0aGFuIG9uZSAnJXMnIiAlIG1vZGlmaWVyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmVzdWx0Ll9tYXRjaGVkX21vZGlmaWVycy5hcHBlbmQobW9kaWZpZXIpCi0KLSAgICBkZWYgX2V4
cGFuZF9tYWNybyhzZWxmLCBleHBlY3RhdGlvbl9saW5lLCBtYWNybywgcmVzdWx0KToKLSAgICAg
ICAgaWYgbWFjcm8gaW4gcmVzdWx0Ll9tYXRjaGVkX21hY3JvczoKLSAgICAgICAgICAgIGV4cGVj
dGF0aW9uX2xpbmUuZXJyb3JzLmFwcGVuZCgiTW9yZSB0aGFuIG9uZSAnJXMnIiAlIG1hY3JvKQot
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgbW9kcyA9IFtdCi0gICAgICAgIGZvciBtb2Rp
ZmllciBpbiBzZWxmLm1hY3Jvc1ttYWNyb106Ci0gICAgICAgICAgICBpZiBtb2RpZmllciBpbiBy
ZXN1bHQuX21vZGlmaWVyczoKLSAgICAgICAgICAgICAgICBleHBlY3RhdGlvbl9saW5lLmVycm9y
cy5hcHBlbmQoIkNhbid0IHNwZWNpZnkgYm90aCBtb2RpZmllciAnJXMnIGFuZCBtYWNybyAnJXMn
IiAlIChtb2RpZmllciwgbWFjcm8pKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBtb2RzLmFwcGVuZChtb2RpZmllcikKLSAgICAgICAgcmVzdWx0Ll9tYXRjaGVkX21hY3Jvcy5h
ZGQobWFjcm8pCi0gICAgICAgIHJlc3VsdC5fbWF0Y2hlZF9tb2RpZmllcnMuZXh0ZW5kKG1vZHMp
Ci0KLSAgICBkZWYgX21hdGNoZXNfYW55X3JlZ2V4KHNlbGYsIGV4cGVjdGF0aW9uX2xpbmUsIG1v
ZGlmaWVyLCByZXN1bHQpOgotICAgICAgICBmb3IgcmVnZXhfc3RyLCBwYXR0ZXJuIGluIHNlbGYu
cmVnZXhlc190b19pZ25vcmUuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBwYXR0ZXJuLm1h
dGNoKG1vZGlmaWVyKToKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfcmVnZXhfbWF0Y2go
ZXhwZWN0YXRpb25fbGluZSwgcmVnZXhfc3RyLCByZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgX2hhbmRsZV9yZWdleF9t
YXRjaChzZWxmLCBleHBlY3RhdGlvbl9saW5lLCByZWdleF9zdHIsIHJlc3VsdCk6Ci0gICAgICAg
IGlmIChyZWdleF9zdHIgaW4gcmVzdWx0Ll9tYXRjaGVkX3JlZ2V4ZXMgYW5kCi0gICAgICAgICAg
ICByZWdleF9zdHIgbm90IGluIHNlbGYuRFVQTElDQVRFX1JFR0VYRVNfQUxMT1dFRCk6Ci0gICAg
ICAgICAgICBleHBlY3RhdGlvbl9saW5lLmVycm9ycy5hcHBlbmQoIk1vcmUgdGhhbiBvbmUgbW9k
aWZpZXIgbWF0Y2hpbmcgJyVzJyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVnZXhfc3RyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0Ll9tYXRjaGVkX3Jl
Z2V4ZXMuYWRkKHJlZ2V4X3N0cikKLQotICAgIGRlZiBfY291bnRfbWF0Y2hlcyhzZWxmLCByZXN1
bHQpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBudW1iZXIgb2YgbW9kaWZpZXJzIHRoYXQgbWF0
Y2ggdGhlIHRlc3QgY29uZmlnLiIiIgotICAgICAgICBjYXRlZ29yaXplZF9tb2RpZmllcnMgPSBz
ZWxmLl9ncm91cF9ieV9jYXRlZ29yeShyZXN1bHQuX21hdGNoZWRfbW9kaWZpZXJzKQotICAgICAg
ICByZXN1bHQuc3BlY2lmaWNpdHkgPSAwCi0gICAgICAgIGZvciBjYXRlZ29yeSwgbW9kaWZpZXIg
aW4gc2VsZi50ZXN0X2NvbmZpZy5pdGVtcygpOgotICAgICAgICAgICAgaWYgY2F0ZWdvcnkgaW4g
Y2F0ZWdvcml6ZWRfbW9kaWZpZXJzOgotICAgICAgICAgICAgICAgIGlmIG1vZGlmaWVyIGluIGNh
dGVnb3JpemVkX21vZGlmaWVyc1tjYXRlZ29yeV06Ci0gICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5zcGVjaWZpY2l0eSArPSAxCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LnNwZWNpZmljaXR5ID0gc2VsZi5JTlZBTElECi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybgotCi0gICAgZGVmIF9ncm91cF9ieV9jYXRlZ29yeShzZWxmLCBtb2RpZmllcnMp
OgotICAgICAgICAjIFJldHVybnMgYSBkaWN0IG9mIGNhdGVnb3J5IG5hbWUgLT4gbGlzdCBvZiBt
b2RpZmllcnMuCi0gICAgICAgIG1vZGlmaWVyc19ieV9jYXRlZ29yeSA9IHt9Ci0gICAgICAgIGZv
ciBtIGluIG1vZGlmaWVyczoKLSAgICAgICAgICAgIG1vZGlmaWVyc19ieV9jYXRlZ29yeS5zZXRk
ZWZhdWx0KHNlbGYuX2NhdGVnb3J5KG0pLCBbXSkuYXBwZW5kKG0pCi0gICAgICAgIHJldHVybiBt
b2RpZmllcnNfYnlfY2F0ZWdvcnkKLQotICAgIGRlZiBfY2F0ZWdvcnkoc2VsZiwgbW9kaWZpZXIp
OgotICAgICAgICByZXR1cm4gc2VsZi5fY2F0ZWdvcmllc19mb3JfbW9kaWZpZXJzW21vZGlmaWVy
XQorICAgICAgICAgICAgaWYgc2VsZi5fdGVzdF9jb25maWcgaW4gZXhwZWN0YXRpb25fbGluZS5t
YXRjaGluZ19jb25maWd1cmF0aW9uczoKKyAgICAgICAgICAgICAgICBzZWxmLl9tb2RlbC5hZGRf
ZXhwZWN0YXRpb25fbGluZShleHBlY3RhdGlvbl9saW5lLCBvdmVycmlkZXNfYWxsb3dlZCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCAxNTYxNmEx
ZjIxZDdjZTY5NWQ3NzdkNWJjYmQxNjlkOWZhYmI5ZTUwLi5mM2YzNjI4YWRmYjI1Y2U1MTc2ZTU5
NDc4YTcwYTUwOTUxZWY5YjllIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25z
X3VuaXR0ZXN0LnB5CkBAIC0zNzgsODEgKzM3OCw2IEBAIGNsYXNzIFJlYmFzZWxpbmluZ1Rlc3Qo
QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2V4cC5nZXRfcmViYXNl
bGluaW5nX2ZhaWx1cmVzKCkpLCAwKQogCiAKLWNsYXNzIFNwZWNpZmljaXR5Q2FsY3VsYXRvclRl
c3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHBv
cnRfb2JqID0gcG9ydC5nZXQoJ3Rlc3Qtd2luLXhwJywgTm9uZSkKLSAgICAgICAgc2VsZi5jb25m
aWcgPSBwb3J0X29iai50ZXN0X2NvbmZpZ3VyYXRpb24oKQotICAgICAgICBzZWxmLmNhbGN1bGF0
b3IgPSBTcGVjaWZpY2l0eUNhbGN1bGF0b3Ioc2VsZi5jb25maWcpCi0KLSAgICBkZWYgYXNzZXJ0
X3NwZWNpZmljaXR5KHNlbGYsIG1vZGlmaWVycywgZXhwZWN0ZWRfc3BlY2lmaWNpdHk9LTEsIG51
bV9lcnJvcnM9MCk6Ci0gICAgICAgIGV4cGVjdGF0aW9uID0gVGVzdEV4cGVjdGF0aW9uTGluZSgp
Ci0gICAgICAgIGV4cGVjdGF0aW9uLm1vZGlmaWVycyA9IG1vZGlmaWVycwotICAgICAgICBzZWxm
LmNhbGN1bGF0b3IuY2FsY3VsYXRlKGV4cGVjdGF0aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihleHBlY3RhdGlvbi53YXJuaW5ncyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGVuKGV4cGVjdGF0aW9uLmVycm9ycyksIG51bV9lcnJvcnMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXhwZWN0YXRpb24uc3BlY2lmaWNpdHksIGV4cGVjdGVkX3NwZWNpZmljaXR5LAot
ICAgICAgICAgICAgICdtYXRjaCglcywgJXMpIHJldHVybmVkIC0+ICVkLCBleHBlY3RlZCAlZCcg
JQotICAgICAgICAgICAgIChtb2RpZmllcnMsIHN0cihzZWxmLmNvbmZpZy52YWx1ZXMoKSksCi0g
ICAgICAgICAgICAgIGV4cGVjdGF0aW9uLnNwZWNpZmljaXR5LCBleHBlY3RlZF9zcGVjaWZpY2l0
eSkpCi0KLSAgICBkZWYgdGVzdF9iYWRfbWF0Y2hfbW9kaWZpZXIoc2VsZik6Ci0gICAgICAgIHNl
bGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsnZm9vJ10sIG51bV9lcnJvcnM9MSkKLQotICAgIGRlZiB0
ZXN0X25vbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFtdLCAwKQot
Ci0gICAgZGVmIHRlc3Rfb25lKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0
eShbJ3hwJ10sIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsnd2luJ10sIDEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsncmVsZWFzZSddLCAxKQotICAgICAg
ICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ2NwdSddLCAxKQotICAgICAgICBzZWxmLmFzc2Vy
dF9zcGVjaWZpY2l0eShbJ3g4NiddLCAxKQotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0
eShbJ2xlb3BhcmQnXSwgLTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsnZ3B1
J10sIC0xKQotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ2RlYnVnJ10sIC0xKQot
Ci0gICAgZGVmIHRlc3RfdHdvKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0
eShbJ3hwJywgJ3JlbGVhc2UnXSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRfc3BlY2lmaWNpdHko
Wyd3aW43JywgJ3JlbGVhc2UnXSwgLTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5
KFsnd2luNycsICd4cCddLCAxKQotCi0gICAgZGVmIHRlc3RfdGhyZWUoc2VsZik6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsnd2luNycsICd4cCcsICdyZWxlYXNlJ10sIDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsneHAnLCAnZGVidWcnLCAneDg2J10sIC0x
KQotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ3hwJywgJ3JlbGVhc2UnLCAneDg2
J10sIDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsneHAnLCAnY3B1JywgJ3Jl
bGVhc2UnXSwgMykKLQotICAgIGRlZiB0ZXN0X2ZvdXIoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0X3NwZWNpZmljaXR5KFsneHAnLCAncmVsZWFzZScsICdjcHUnLCAneDg2J10sIDQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsnd2luNycsICd4cCcsICdyZWxlYXNlJywgJ2Nw
dSddLCAzKQotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ3dpbjcnLCAneHAnLCAn
ZGVidWcnLCAnY3B1J10sIC0xKQotCi0gICAgZGVmIHRlc3RfY2FzZV9pbnNlbnNpdGl2aXR5KHNl
bGYpOgotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ1dpbiddLCBudW1fZXJyb3Jz
PTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5KFsnV0lOJ10sIG51bV9lcnJvcnM9
MSkKLSAgICAgICAgc2VsZi5hc3NlcnRfc3BlY2lmaWNpdHkoWyd3aW4nXSwgMSkKLQotICAgIGRl
ZiB0ZXN0X2R1cGxpY2F0ZXMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3NwZWNpZmljaXR5
KFsncmVsZWFzZScsICdyZWxlYXNlJ10sIG51bV9lcnJvcnM9MSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRfc3BlY2lmaWNpdHkoWyd3aW4nLCAneHAnXSwgbnVtX2Vycm9ycz0xKQotICAgICAgICBzZWxm
LmFzc2VydF9zcGVjaWZpY2l0eShbJ3hwJywgJ3hwJ10sIG51bV9lcnJvcnM9MSkKLSAgICAgICAg
c2VsZi5hc3NlcnRfc3BlY2lmaWNpdHkoWyd4cCcsICdyZWxlYXNlJywgJ3hwJywgJ3JlbGVhc2Un
XSwgbnVtX2Vycm9ycz0yKQotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ3JlYmFz
ZWxpbmUnLCAncmViYXNlbGluZSddLCBudW1fZXJyb3JzPTEpCi0KLSAgICBkZWYgdGVzdF91bmtu
b3duX21vZGlmaWVyKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF9zcGVjaWZpY2l0eShbJ3Zt
cyddLCBudW1fZXJyb3JzPTEpCi0KLSAgICBkZWYgdGVzdF9kdXBsaWNhdGVfYnVncyhzZWxmKToK
LSAgICAgICAgIyBCVUcqIHJlZ2V4ZXMgY2FuIGFwcGVhciBtdWx0aXBsZSB0aW1lcy4KLSAgICAg
ICAgc2VsZi5hc3NlcnRfc3BlY2lmaWNpdHkoWydidWdmb28nLCAnYnVnYmFyJ10sIDApCi0KLSAg
ICBkZWYgdGVzdF9yZWdleGVzX2FyZV9pZ25vcmVkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dF9zcGVjaWZpY2l0eShbJ2J1ZzEyM3h5JywgJ3JlYmFzZWxpbmUnLCAnd29udGZpeCcsICdzbG93
JywgJ3NraXAnXSwgMCkKLQotICAgIGRlZiB0ZXN0X25vbmVfaXNfaW52YWxpZChzZWxmKToKLSAg
ICAgICAgc2VsZi5hc3NlcnRfc3BlY2lmaWNpdHkoWydub25lJ10sIG51bV9lcnJvcnM9MSkKLQot
CiBjbGFzcyBUZXN0RXhwZWN0YXRpb25QYXJzZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgZGVmIHRlc3RfdG9rZW5pemVfYmxhbmsoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uID0g
VGVzdEV4cGVjdGF0aW9uUGFyc2VyLnRva2VuaXplKCcnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3Qu
cHkKaW5kZXggMzc5NGFiNDdiODBjN2I3NjEwZWYxNDdmYzQ1M2NmNDQ5ZWUwODE4Yy4uYzMzYmEx
MTM5MTllOTU3YzRjYzhhN2E0ZGZjMDI3YzJmMzg5MTdiZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0
ZXN0LnB5CkBAIC0xNzgsNiArMTc4LDcgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0VGVzdChwb3J0X3Rl
c3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9za2lwcGVkX2xheW91dF90ZXN0
cyhzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMoKQor
ICAgICAgICBtb2NrX29wdGlvbnMuY29uZmlndXJhdGlvbiA9ICdyZWxlYXNlJwogICAgICAgICBw
b3J0ID0gQ2hyb21pdW1Qb3J0VGVzdC5UZXN0TGludXhQb3J0KG9wdGlvbnM9bW9ja19vcHRpb25z
KQogCiAgICAgICAgIGZha2VfdGVzdCA9ICdmYXN0L2pzL25vdC1nb29kLmpzJwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IGU5MTdm
NTI5N2VlZjM3MGNkYmY4MTY0MGUzYzI4NTg4NzEyODEyM2YuLmU0MTg4MGJhODY1NmE3YjM0OTY5
N2EwMjVmZjgxOTRlY2U2N2Q1MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTI4Miw3ICsyODIsNyBAQCBjbGFzcyBUZXN0UG9y
dChQb3J0KToKICAgICAgICAgICAgICd0ZXN0LXdpbi12aXN0YSc6ICd2aXN0YScsCiAgICAgICAg
ICAgICAndGVzdC1tYWMtbGVvcGFyZCc6ICdsZW9wYXJkJywKICAgICAgICAgICAgICd0ZXN0LW1h
Yy1zbm93bGVvcGFyZCc6ICdzbm93bGVvcGFyZCcsCi0gICAgICAgICAgICAndGVzdC1saW51eC14
ODZfNjQnOiAnJywKKyAgICAgICAgICAgICd0ZXN0LWxpbnV4LXg4Nl82NCc6ICdsdWNpZCcsCiAg
ICAgICAgIH0KICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHZlcnNpb25fbWFwW3BvcnRfbmFtZV0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102116</attachid>
            <date>2011-07-27 03:05:47 -0700</date>
            <delta_ts>2011-07-27 09:02:16 -0700</delta_ts>
            <desc>proposed GTK follow-up patch</desc>
            <filename>proposed-GTK-follow-up-patch.patch</filename>
            <type>text/plain</type>
            <size>3183</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0MGM3OTY0NzgxMzczMjMxMGYxYTVhMjM4ZGNmYjljOWFhMzc5YjMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEp1bCAyMDExIDEyOjA3OjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgR1RLIGZvbGxvdy11cCBwYXRjaAoKLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysrKysrCiAuLi4v
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb24ucHkgICAgICB8ICAgIDIgKysK
IC4uLi9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5ICAgICAgIHwgICAg
MiArLQogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkgICAg
fCAgICAzICsrKwogNCBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhYTJmYmVkLi5kNjBiMDZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDctMjcgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlcGxhY2UgU3BlY2lmaWNpdHlD
YWxjdWxhdG9yIHdpdGggVGVzdENvbmZpZ3VyYXRpb24tZHJpdmVuIGxvZ2ljLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEdUSyByZXR1cm4gYSB2
YWxpZCB0ZXN0IGNvbmZpZ3VyYXRpb24uIE91ciBidWlsZHNsYXZlcyBydW4KKyAgICAgICAgZGVi
aWFuLCBzbyBJIGFkZGVkIGl0IGJlc2lkZSBsdWNpZCwgd2hpY2ggaXMgdXNlZCBieSBjaHJvbWl1
bSdzCisgICAgICAgIHRlc3QgY29uZmlndXJhdGlvbi4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb24ucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25z
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5
OgorCiAyMDExLTA3LTI2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgU3dpdGNoIHRvIGFuIG9sZGVyIGlkaW9tIHRoYXQgd29ya3Mgb24gUHl0aG9uIDIuNS4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2NvbmZpZ3VyYXRpb24ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9t
b2RlbHMvdGVzdF9jb25maWd1cmF0aW9uLnB5CmluZGV4IDBlNWYyMmIuLmMyZDE0ZDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Nv
bmZpZ3VyYXRpb24ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weQpAQCAtODQsNiArODQsOCBAQCBjbGFzcyBUZXN0
Q29uZmlndXJhdGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAgICgneHAnLCAneDg2JyksCiAg
ICAgICAgICAgICAgICAgKCd2aXN0YScsICd4ODYnKSwKICAgICAgICAgICAgICAgICAoJ3dpbjcn
LCAneDg2JyksCisgICAgICAgICAgICAgICAgKCdkZWJpYW4nLCAneDg2JyksCisgICAgICAgICAg
ICAgICAgKCdkZWJpYW4nLCAneDg2XzY0JyksCiAgICAgICAgICAgICAgICAgKCdsdWNpZCcsICd4
ODYnKSwKICAgICAgICAgICAgICAgICAoJ2x1Y2lkJywgJ3g4Nl82NCcpKQogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3Rh
dGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnMucHkKaW5kZXggNjdkOTgyNy4uYTg1NzI4YSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25z
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weQpAQCAtNjIxLDcgKzYyMSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
bnM6CiAgICAgTUFDUk9TID0gewogICAgICAgICAnbWFjJzogWydsZW9wYXJkJywgJ3Nub3dsZW9w
YXJkJ10sCiAgICAgICAgICd3aW4nOiBbJ3hwJywgJ3Zpc3RhJywgJ3dpbjcnXSwKLSAgICAgICAg
J2xpbnV4JzogWydsdWNpZCddLAorICAgICAgICAnbGludXgnOiBbJ2x1Y2lkJywgJ2RlYmlhbidd
LAogICAgIH0KIAogICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQppbmRleCAxOTRkMTRhLi5lMTJiMjFiIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQpAQCAtNjcs
NiArNjcsOSBAQCBjbGFzcyBHdGtQb3J0KHdlYmtpdC5XZWJLaXRQb3J0KToKICAgICBkZWYgY3Jl
YXRlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKToKICAgICAgICAgcmV0dXJuIEd0a0RyaXZl
cihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCisgICAgZGVmIHZlcnNpb24oc2VsZik6CisgICAgICAg
IHJldHVybiAnZGViaWFuJworCiAgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxm
LCBzZXJ2ZXJfbmFtZT1Ob25lKToKICAgICAgICAgZW52aXJvbm1lbnQgPSB3ZWJraXQuV2ViS2l0
UG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWUpCiAgICAgICAg
IGVudmlyb25tZW50WydHVEtfTU9EVUxFUyddID0gJ2dhaWwnCi0tIAoxLjcuNS40
</data>
<flag name="review"
          id="97269"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>