<?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>64426</bug_id>
          
          <creation_ts>2011-07-12 19:58:50 -0700</creation_ts>
          <short_desc>add a script for crawling the baseline databases</short_desc>
          <delta_ts>2012-04-05 20:46:18 -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>WONTFIX</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436184</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-07-12 19:58:50 -0700</bug_when>
    <thetext>add a script for crawling the baseline databases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436185</commentid>
    <comment_count>1</comment_count>
      <attachid>100610</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-07-12 19:59:56 -0700</bug_when>
    <thetext>Created attachment 100610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436586</commentid>
    <comment_count>2</comment_count>
      <attachid>100701</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-07-13 12:01:25 -0700</bug_when>
    <thetext>Created attachment 100701
fix permissions, rebaseline to HEAD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451962</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-08-16 16:26:03 -0700</bug_when>
    <thetext>Clearing the review? flag and marking as WONTFIX ... I don&apos;t know that there&apos;s any real reason to land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542732</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-25 16:00:55 -0800</bug_when>
    <thetext>I&apos;m not sure what this did, but OK. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579817</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-15 15:35:35 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579818</commentid>
    <comment_count>6</comment_count>
      <attachid>132134</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-15 15:35:40 -0700</bug_when>
    <thetext>Created attachment 132134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581181</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-16 18:24:55 -0700</bug_when>
    <thetext>Could you give me some example usage of this command?  What would I use it for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581236</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-16 20:21:30 -0700</bug_when>
    <thetext>The basic idea is, for some list of ports and some list of tests, show me what the expected result is, and where we find the baselines, for each test. Options are available to filter ports and tests (e.g., all expected crashes).

basically the info you get with run-webkit-tests --print trace-everything, except for the actual result, in a form amenable to human eyes and also a form amenable for further analysis/reporting, e.g., to figure out what happens if chromium-mac-leopard stops falling back to mac-leopard.

In further thinking about it, i think this is probably actually two different commands (one for expectations, one for baselines).

This will also replace the webkit-patch skipped-files command, which is a subset of this information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597179</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-05 20:46:18 -0700</bug_when>
    <thetext>Cancelling r?, I will split this into two separate bugs, bug 83347 for w-p print-expectations and bug 83348 for w-p print-baselines.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100610</attachid>
            <date>2011-07-12 19:59:56 -0700</date>
            <delta_ts>2011-07-13 12:01:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64426-20110712195954.patch</filename>
            <type>text/plain</type>
            <size>6684</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3ODkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMWY1NWVmZWQ1MjIxMjkyNGM5NzNmOTcxZmM1MWFjNzA5
MDAyN2Q3Li45NjJkMjViYWVjNDVmZTk5ZjFhOTFkMzlkZDI2NzFiMWZhYTQwMWU1IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDctMTIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgYWRkIGEgc2NyaXB0IGZvciBjcmF3bGluZyB0aGUgYmFzZWxpbmUgZGF0YWJhc2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQyNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9i
YXNlbGluZV9zY2FubmVyOiBBZGRlZC4KKwogMjAxMS0wNy0xMSAgQWxpY2UgQm94aGFsbCAgPGFi
b3hoYWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb252ZXJ0IGpzb25fcmVzdWx0c19nZW5l
cmF0b3IucHkgdG8gb3V0cHV0IHZlcnNpb24gNCBKU09OLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9iYXNlbGluZV9zY2FubmVyIGIvVG9vbHMvU2NyaXB0cy9iYXNlbGluZV9zY2FubmVyCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM2NzdjYzA1YWY4MmExYjYwZWQxZGViYTRmZGZhYTc1ZjJmYjQzYzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL2Jhc2VsaW5lX3NjYW5uZXIKQEAgLTAsMCArMSwx
NTAgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIkEgc2lt
cGxlIHV0aWxpdHkgZm9yIHJlcG9ydGluZyB3aGljaCBwb3J0cyB1c2Ugd2hpY2ggYmFzZWxpbmVz
IGZvciB3aGljaCB0ZXN0cy4iIiIKKworaW1wb3J0IGNvcHkKK2ltcG9ydCBsb2dnaW5nCitpbXBv
cnQgb3B0cGFyc2UKK2ltcG9ydCBzeXMKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dCBpbXBvcnQgZmFjdG9yeQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9y
dCB0ZXN0X2V4cGVjdGF0aW9ucworCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgb3B0aW9u
cywgYXJncyA9IHBhcnNlX2FyZ3MoYXJndikKKyAgICBjb25maWd1cmVfbG9nZ2luZyhvcHRpb25z
KQorCisgICAgaWYgb3B0aW9ucy5jc3Y6CisgICAgICAgIHNjYW5uZXIgPSBDU1ZTY2FubmVyKG9w
dGlvbnMsIGFyZ3MpCisgICAgZWxzZToKKyAgICAgICAgc2Nhbm5lciA9IEJhc2ljU2Nhbm5lcihv
cHRpb25zLCBhcmdzKQorICAgIHNjYW5uZXIucnVuKCkKKworCitkZWYgcGFyc2VfYXJncyhhcmd2
PU5vbmUpOgorICAgIG9wdGlvbl9wYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorICAg
IGFsbF9wb3J0cyA9IHNvcnRlZChmYWN0b3J5LmFsbF9wb3J0X25hbWVzKCkpCisgICAgYWxsX2V4
dGVuc2lvbnMgPSAoJ3R4dCcsICdwbmcnLCAnd2F2JywgJ2h0bWwnLCAnd2ViYXJjaGl2ZScpCisg
ICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBsYXRmb3JtcycsIGFjdGlvbj0n
YXBwZW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nbGlzdCBvZiBwb3J0
cyB0byBzY2FuIChkZWZhdWx0OiBhbGwgb2YgdGhlbSknKQorICAgIG9wdGlvbl9wYXJzZXIuYWRk
X29wdGlvbignLXgnLCAnLS1leHRlbnNpb25zJywgYWN0aW9uPSdhcHBlbmQnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdsaXN0IG9mIGV4dGVuc2lvbnMgdG8gbG9vayBmb3Ig
KGRlZmF1bHQ6IGFsbCBvZiB0aGVtKScpCisgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCct
dicsICctLXZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgIG9wdGlvbl9wYXJzZXIu
YWRkX29wdGlvbignLS1jc3YnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdwcmludCBvdXRwdXQgYXMgYSBDU1Ygb2YgcG9ydF9uYW1lLHRl
c3RfbmFtZSxleHRlbnNpb24scGF0aF90b19iYXNlbGluZScpCisgICAgb3B0aW9ucywgYXJncyA9
IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncygpCisgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybXMgaXMg
Tm9uZToKKyAgICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMgPSBhbGxfcG9ydHMKKyAgICBpZiBvcHRp
b25zLmV4dGVuc2lvbnMgaXMgTm9uZToKKyAgICAgICAgb3B0aW9ucy5leHRlbnNpb25zID0gYWxs
X2V4dGVuc2lvbnMKKyAgICByZXR1cm4gb3B0aW9ucywgYXJncworCisKK2RlZiBjb25maWd1cmVf
bG9nZ2luZyhvcHRpb25zKToKKyAgICByb290ID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorICAgIGhh
bmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZGVycikKKyAgICBoYW5kbGVyLnNl
dEZvcm1hdHRlcihsb2dnaW5nLkZvcm1hdHRlcignJShsZXZlbG5hbWUpcyAlKG1lc3NhZ2Upcycs
IE5vbmUpKQorICAgIHJvb3QuYWRkSGFuZGxlcihoYW5kbGVyKQorCisgICAgbGV2ZWwgPSBsb2dn
aW5nLldBUk5JTkcKKyAgICBpZiBvcHRpb25zLnZlcmJvc2U6CisgICAgICAgIGxldmVsID0gbG9n
Z2luZy5JTkZPCisgICAgcm9vdC5zZXRMZXZlbChsZXZlbCkKKworCitjbGFzcyBCYXNpY1NjYW5u
ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgYXJncyk6CisgICAg
ICAgIHNlbGYub3B0aW9ucyA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5wYXRocyA9IGFyZ3MKKwor
ICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIGZvciBwb3J0X25hbWUgaW4gc2VsZi5vcHRpb25z
LnBsYXRmb3JtczoKKyAgICAgICAgICAgIHBvcnQgPSBmYWN0b3J5LmdldChwb3J0X25hbWUsIG9w
dGlvbnM9Y29weS5jb3B5KHNlbGYub3B0aW9ucykpCisgICAgICAgICAgICBzZWxmLnNjYW5fcG9y
dChwb3J0KQorCisgICAgZGVmIHNjYW5fcG9ydChzZWxmLCBwb3J0KToKKyAgICAgICAgYWxsX3Rl
c3RzID0gcG9ydC50ZXN0cyhzZWxmLnBhdGhzKQorCisgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNl
bGYuZ2V0X2V4cGVjdGF0aW9ucyhwb3J0LCBhbGxfdGVzdHMpCisgICAgICAgIGlmIG5vdCBleHBl
Y3RhdGlvbnM6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICB0ZXN0c190b19ydW4gPSBh
bGxfdGVzdHMgLSBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9l
eHBlY3RhdGlvbnMuU0tJUCkKKyAgICAgICAgbG9nZ2luZy5pbmZvKCIlczogJWQgdGVzdHMiICUg
KHBvcnQubmFtZSgpLCBsZW4odGVzdHNfdG9fcnVuKSkpCisKKyAgICAgICAgc2VsZi5wcmludF9w
b3J0KHBvcnQubmFtZSgpKQorICAgICAgICBmb3IgdGVzdF9uYW1lIGluIHNvcnRlZCh0ZXN0c190
b19ydW4pOgorICAgICAgICAgICAgYmFzZWxpbmVzID0gc2VsZi5nZXRfYmFzZWxpbmVzKHBvcnQs
IHRlc3RfbmFtZSkKKyAgICAgICAgICAgIHNlbGYucHJpbnRfYmFzZWxpbmUocG9ydC5uYW1lKCks
IHRlc3RfbmFtZSwgYmFzZWxpbmVzKQorCisgICAgZGVmIGdldF9leHBlY3RhdGlvbnMoc2VsZiwg
cG9ydCwgYWxsX3Rlc3RzKToKKyAgICAgICAgbGludF9tb2RlID0gRmFsc2UKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmV0dXJuIHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMo
cG9ydCwKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHMsCisgICAgICAgICAgICAgICAgcG9ydC50
ZXN0X2V4cGVjdGF0aW9ucygpLAorICAgICAgICAgICAgICAgIHBvcnQudGVzdF9jb25maWd1cmF0
aW9uKCksCisgICAgICAgICAgICAgICAgbGludF9tb2RlLAorICAgICAgICAgICAgICAgIHBvcnQu
dGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKCkpCisgICAgICAgIGV4Y2VwdCB0ZXN0X2V4cGVj
dGF0aW9ucy5QYXJzZUVycm9yLCBlOgorICAgICAgICAgICAgbG9nZ2luZy5lcnJvcigiJXM6ICVz
IiAlIChwb3J0Lm5hbWUoKSwgc3RyKGUpKSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICBkZWYgZ2V0X2Jhc2VsaW5lcyhzZWxmLCBwb3J0LCB0ZXN0X25hbWUpOgorICAgICAgICBiYXNl
bGluZV9kaWN0ID0ge30KKyAgICAgICAgZm9yIGV4dGVuc2lvbiBpbiBzZWxmLm9wdGlvbnMuZXh0
ZW5zaW9uczoKKyAgICAgICAgICAgIGJhc2VsaW5lID0gcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0
ZXN0X25hbWUsICcuJyArIGV4dGVuc2lvbikKKyAgICAgICAgICAgIGlmIHBvcnQuX2ZpbGVzeXN0
ZW0uZXhpc3RzKGJhc2VsaW5lKToKKyAgICAgICAgICAgICAgICByZWxwYXRoID0gcG9ydC5yZWxh
dGl2ZV90ZXN0X2ZpbGVuYW1lKGJhc2VsaW5lKQorICAgICAgICAgICAgICAgIGJhc2VsaW5lX2Rp
Y3RbZXh0ZW5zaW9uXSA9IHJlbHBhdGgKKyAgICAgICAgcmV0dXJuIGJhc2VsaW5lX2RpY3QKKwor
ICAgIGRlZiBwcmludF9wb3J0KHNlbGYsIHBvcnRfbmFtZSk6CisgICAgICAgIHByaW50ICJwb3J0
OiAlcyIgJSBwb3J0X25hbWUKKworICAgIGRlZiBwcmludF9iYXNlbGluZShzZWxmLCBwb3J0X25h
bWUsIHRlc3RfbmFtZSwgYmFzZWxpbmVzKToKKyAgICAgICAgcHJpbnQgIiAgdGVzdDogJXMiICUg
dGVzdF9uYW1lCisgICAgICAgIGZvciBleHRlbnNpb24sIHJlbHBhdGggaW4gYmFzZWxpbmVzLml0
ZXJpdGVtcygpOgorICAgICAgICAgICAgcHJpbnQgIiAgJXM6ICVzIiAlIChleHRlbnNpb24sIHJl
bHBhdGgpCisgICAgICAgIHByaW50CisKKworY2xhc3MgQ1NWU2Nhbm5lcihCYXNpY1NjYW5uZXIp
OgorICAgIGRlZiBwcmludF9wb3J0KHNlbGYsIHBvcnRfbmFtZSk6CisgICAgICAgIHBhc3MKKwor
ICAgIGRlZiBwcmludF9iYXNlbGluZShzZWxmLCBwb3J0X25hbWUsIHRlc3RfbmFtZSwgYmFzZWxp
bmVzKToKKyAgICAgICAgZm9yIGV4dGVuc2lvbiwgcmVscGF0aCBpbiBiYXNlbGluZXMuaXRlcml0
ZW1zKCk6CisgICAgICAgICAgICBwcmludCAiJXMsJXMsJXMsJXMiICUgKHBvcnRfbmFtZSwgdGVz
dF9uYW1lLCBleHRlbnNpb24sIHJlbHBhdGgpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9f
JzoKKyAgICBtYWluKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100701</attachid>
            <date>2011-07-13 12:01:25 -0700</date>
            <delta_ts>2012-03-15 15:35:12 -0700</delta_ts>
            <desc>fix permissions, rebaseline to HEAD</desc>
            <filename>bug-64426-20110713120124.patch</filename>
            <type>text/plain</type>
            <size>6657</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5MzYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NGU0M2ZhOTZhMDg1NWQzM2Q4YTNkMGVlNzg4MDUzMmQ4
ZGFmYThkLi44YjM4NDNiOTliOWFjYWIxZmZhNjlkZjdmOWE5NjQ2ODJiMGFiMTJmIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDctMTIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgYWRkIGEgc2NyaXB0IGZvciBjcmF3bGluZyB0aGUgYmFzZWxpbmUgZGF0YWJhc2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQyNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9i
YXNlbGluZV9zY2FubmVyOiBBZGRlZC4KKwogMjAxMS0wNy0xMyAgRGltaXRyaSBHbGF6a292ICA8
ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVsaW1pbmF0ZSBUZXN0RXhwZWN0YXRp
b25zRmlsZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYmFzZWxpbmVfc2Nhbm5lciBiL1Rv
b2xzL1NjcmlwdHMvYmFzZWxpbmVfc2Nhbm5lcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2Y1NzE0NzcwZDcwN2Zl
M2NhZGI2OTlhZTE4YzZhMDIzNjI5Y2E3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0
cy9iYXNlbGluZV9zY2FubmVyCkBAIC0wLDAgKzEsMTUwIEBACisjIS91c3IvYmluL2VudiBweXRo
b24KKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJBIHNpbXBsZSB1dGlsaXR5IGZvciByZXBvcnRpbmcg
d2hpY2ggcG9ydHMgdXNlIHdoaWNoIGJhc2VsaW5lcyBmb3Igd2hpY2ggdGVzdHMuIiIiCisKK2lt
cG9ydCBjb3B5CitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgc3lzCisK
K2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGZhY3RvcnkKK2Zyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKKworCitk
ZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZV9hcmdzKGFyZ3Yp
CisgICAgY29uZmlndXJlX2xvZ2dpbmcob3B0aW9ucykKKworICAgIGlmIG9wdGlvbnMuY3N2Ogor
ICAgICAgICBzY2FubmVyID0gQ1NWU2Nhbm5lcihvcHRpb25zLCBhcmdzKQorICAgIGVsc2U6Cisg
ICAgICAgIHNjYW5uZXIgPSBCYXNpY1NjYW5uZXIob3B0aW9ucywgYXJncykKKyAgICBzY2FubmVy
LnJ1bigpCisKKworZGVmIHBhcnNlX2FyZ3MoYXJndj1Ob25lKToKKyAgICBvcHRpb25fcGFyc2Vy
ID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKKyAgICBhbGxfcG9ydHMgPSBzb3J0ZWQoZmFjdG9y
eS5hbGxfcG9ydF9uYW1lcygpKQorICAgIGFsbF9leHRlbnNpb25zID0gKCd0eHQnLCAncG5nJywg
J3dhdicsICdodG1sJywgJ3dlYmFyY2hpdmUnKQorICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlv
bignLXAnLCAnLS1wbGF0Zm9ybXMnLCBhY3Rpb249J2FwcGVuZCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J2xpc3Qgb2YgcG9ydHMgdG8gc2NhbiAoZGVmYXVsdDogYWxsIG9m
IHRoZW0pJykKKyAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy14JywgJy0tZXh0ZW5zaW9u
cycsIGFjdGlvbj0nYXBwZW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0n
bGlzdCBvZiBleHRlbnNpb25zIHRvIGxvb2sgZm9yIChkZWZhdWx0OiBhbGwgb2YgdGhlbSknKQor
ICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLXYnLCAnLS12ZXJib3NlJywgYWN0aW9uPSdz
dG9yZV90cnVlJykKKyAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy0tY3N2JywgYWN0aW9u
PSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJpbnQg
b3V0cHV0IGFzIGEgQ1NWIG9mIHBvcnRfbmFtZSx0ZXN0X25hbWUsZXh0ZW5zaW9uLHBhdGhfdG9f
YmFzZWxpbmUnKQorICAgIG9wdGlvbnMsIGFyZ3MgPSBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3Mo
KQorICAgIGlmIG9wdGlvbnMucGxhdGZvcm1zIGlzIE5vbmU6CisgICAgICAgIG9wdGlvbnMucGxh
dGZvcm1zID0gYWxsX3BvcnRzCisgICAgaWYgb3B0aW9ucy5leHRlbnNpb25zIGlzIE5vbmU6Cisg
ICAgICAgIG9wdGlvbnMuZXh0ZW5zaW9ucyA9IGFsbF9leHRlbnNpb25zCisgICAgcmV0dXJuIG9w
dGlvbnMsIGFyZ3MKKworCitkZWYgY29uZmlndXJlX2xvZ2dpbmcob3B0aW9ucyk6CisgICAgcm9v
dCA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKyAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5k
bGVyKHN5cy5zdGRlcnIpCisgICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIobG9nZ2luZy5Gb3JtYXR0
ZXIoJyUobGV2ZWxuYW1lKXMgJShtZXNzYWdlKXMnLCBOb25lKSkKKyAgICByb290LmFkZEhhbmRs
ZXIoaGFuZGxlcikKKworICAgIGxldmVsID0gbG9nZ2luZy5XQVJOSU5HCisgICAgaWYgb3B0aW9u
cy52ZXJib3NlOgorICAgICAgICBsZXZlbCA9IGxvZ2dpbmcuSU5GTworICAgIHJvb3Quc2V0TGV2
ZWwobGV2ZWwpCisKKworY2xhc3MgQmFzaWNTY2FubmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG9wdGlvbnMsIGFyZ3MpOgorICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25z
CisgICAgICAgIHNlbGYucGF0aHMgPSBhcmdzCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAg
ICBmb3IgcG9ydF9uYW1lIGluIHNlbGYub3B0aW9ucy5wbGF0Zm9ybXM6CisgICAgICAgICAgICBw
b3J0ID0gZmFjdG9yeS5nZXQocG9ydF9uYW1lLCBvcHRpb25zPWNvcHkuY29weShzZWxmLm9wdGlv
bnMpKQorICAgICAgICAgICAgc2VsZi5zY2FuX3BvcnQocG9ydCkKKworICAgIGRlZiBzY2FuX3Bv
cnQoc2VsZiwgcG9ydCk6CisgICAgICAgIGFsbF90ZXN0cyA9IHBvcnQudGVzdHMoc2VsZi5wYXRo
cykKKworICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLmdldF9leHBlY3RhdGlvbnMocG9ydCwg
YWxsX3Rlc3RzKQorICAgICAgICBpZiBub3QgZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgcmV0
dXJuCisKKyAgICAgICAgdGVzdHNfdG9fcnVuID0gYWxsX3Rlc3RzIC0gZXhwZWN0YXRpb25zLmdl
dF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApCisgICAgICAg
IGxvZ2dpbmcuaW5mbygiJXM6ICVkIHRlc3RzIiAlIChwb3J0Lm5hbWUoKSwgbGVuKHRlc3RzX3Rv
X3J1bikpKQorCisgICAgICAgIHNlbGYucHJpbnRfcG9ydChwb3J0Lm5hbWUoKSkKKyAgICAgICAg
Zm9yIHRlc3RfbmFtZSBpbiBzb3J0ZWQodGVzdHNfdG9fcnVuKToKKyAgICAgICAgICAgIGJhc2Vs
aW5lcyA9IHNlbGYuZ2V0X2Jhc2VsaW5lcyhwb3J0LCB0ZXN0X25hbWUpCisgICAgICAgICAgICBz
ZWxmLnByaW50X2Jhc2VsaW5lKHBvcnQubmFtZSgpLCB0ZXN0X25hbWUsIGJhc2VsaW5lcykKKwor
ICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zKHNlbGYsIHBvcnQsIGFsbF90ZXN0cyk6CisgICAgICAg
IGxpbnRfbW9kZSA9IEZhbHNlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiB0ZXN0
X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zKHBvcnQsCisgICAgICAgICAgICAgICAgYWxs
X3Rlc3RzLAorICAgICAgICAgICAgICAgIHBvcnQudGVzdF9leHBlY3RhdGlvbnMoKSwKKyAgICAg
ICAgICAgICAgICBwb3J0LnRlc3RfY29uZmlndXJhdGlvbigpLAorICAgICAgICAgICAgICAgIGxp
bnRfbW9kZSwKKyAgICAgICAgICAgICAgICBwb3J0LnRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRl
cygpKQorICAgICAgICBleGNlcHQgdGVzdF9leHBlY3RhdGlvbnMuUGFyc2VFcnJvciwgZToKKyAg
ICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoIiVzOiAlcyIgJSAocG9ydC5uYW1lKCksIHN0cihlKSkp
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGdldF9iYXNlbGluZXMoc2VsZiwg
cG9ydCwgdGVzdF9uYW1lKToKKyAgICAgICAgYmFzZWxpbmVfZGljdCA9IHt9CisgICAgICAgIGZv
ciBleHRlbnNpb24gaW4gc2VsZi5vcHRpb25zLmV4dGVuc2lvbnM6CisgICAgICAgICAgICBiYXNl
bGluZSA9IHBvcnQuZXhwZWN0ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLicgKyBleHRlbnNpb24p
CisgICAgICAgICAgICBpZiBwb3J0LmZpbGVzeXN0ZW0uZXhpc3RzKGJhc2VsaW5lKToKKyAgICAg
ICAgICAgICAgICByZWxwYXRoID0gcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGJhc2VsaW5l
KQorICAgICAgICAgICAgICAgIGJhc2VsaW5lX2RpY3RbZXh0ZW5zaW9uXSA9IHJlbHBhdGgKKyAg
ICAgICAgcmV0dXJuIGJhc2VsaW5lX2RpY3QKKworICAgIGRlZiBwcmludF9wb3J0KHNlbGYsIHBv
cnRfbmFtZSk6CisgICAgICAgIHByaW50ICJwb3J0OiAlcyIgJSBwb3J0X25hbWUKKworICAgIGRl
ZiBwcmludF9iYXNlbGluZShzZWxmLCBwb3J0X25hbWUsIHRlc3RfbmFtZSwgYmFzZWxpbmVzKToK
KyAgICAgICAgcHJpbnQgIiAgdGVzdDogJXMiICUgdGVzdF9uYW1lCisgICAgICAgIGZvciBleHRl
bnNpb24sIHJlbHBhdGggaW4gYmFzZWxpbmVzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgcHJp
bnQgIiAgJXM6ICVzIiAlIChleHRlbnNpb24sIHJlbHBhdGgpCisgICAgICAgIHByaW50CisKKwor
Y2xhc3MgQ1NWU2Nhbm5lcihCYXNpY1NjYW5uZXIpOgorICAgIGRlZiBwcmludF9wb3J0KHNlbGYs
IHBvcnRfbmFtZSk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBwcmludF9iYXNlbGluZShzZWxm
LCBwb3J0X25hbWUsIHRlc3RfbmFtZSwgYmFzZWxpbmVzKToKKyAgICAgICAgZm9yIGV4dGVuc2lv
biwgcmVscGF0aCBpbiBiYXNlbGluZXMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBwcmludCAi
JXMsJXMsJXMsJXMiICUgKHBvcnRfbmFtZSwgdGVzdF9uYW1lLCBleHRlbnNpb24sIHJlbHBhdGgp
CisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132134</attachid>
            <date>2012-03-15 15:35:40 -0700</date>
            <delta_ts>2012-04-05 20:44:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64426-20120315153539.patch</filename>
            <type>text/plain</type>
            <size>11803</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTYzYTg2ZWUyMTYwMjVjYWRhNmRlMzY0MGRiOTFlZWFk
NTc3ZWI2YS4uZGE4MmQ3N2ZiMDEyZGI2MmM4ZTNiMGY2ZGQxYThiZjgxN2I1YTZkNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEyLTAzLTE0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIGFkZCBhIHNjcmlwdCBmb3IgcmVwb3J0aW5nIG9uIHRlc3RzLCBleHBlY3RhdGlvbnMs
IGFuZAorICAgICAgICBiYXNlbGluZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY0NDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAgICAgICAg
KiBTY3JpcHRzL2xvb2t1cC13ZWJraXQtdGVzdHM6IEFkZGVkLgorCiAyMDEyLTAzLTE0ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHRoZSBjaHJvbWl1bSBs
aW9uIGJvdCB0byBnYXJkZW4tby1tYXRpYyBhbmQgcmVtb3ZlCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2xvb2t1cC13ZWJraXQtdGVzdHMgYi9Ub29scy9TY3JpcHRzL2xvb2t1cC13ZWJraXQt
dGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWIxNWQxYjRkZGVjZjA4OTI2ODYyYjkwZTUzN2JiNjdlNDUwMGFm
ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvbG9va3VwLXdlYmtpdC10ZXN0cwpA
QCAtMCwwICsxLDI1OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworIiIiQSBzY3JpcHQgZm9yIHJlcG9ydGluZyBpbmZvcm1hdGlvbiBhYm91dCB0ZXN0cy4iIiIK
KworaW1wb3J0IGNvcHkKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBy
ZQoraW1wb3J0IHN5cworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0Citm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0
IFRlc3RFeHBlY3RhdGlvbnMsIFBhcnNlRXJyb3IKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAg
ICBob3N0ID0gSG9zdCgpCisgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlX2FyZ3MoaG9zdCwgYXJn
dikKKyAgICBjb25maWd1cmVfbG9nZ2luZyhvcHRpb25zKQorICAgIGxvZ2dpbmcuZGVidWcoIiVk
IHBsYXRmb3JtcyIgJSBsZW4ob3B0aW9ucy5wbGF0Zm9ybXMpKQorICAgIGlmIG9wdGlvbnMuY3N2
OgorICAgICAgICBzY2FubmVyID0gQ1NWU2Nhbm5lcihob3N0LCBvcHRpb25zKQorICAgIGVsc2U6
CisgICAgICAgIHNjYW5uZXIgPSBTY2FubmVyKGhvc3QsIG9wdGlvbnMpCisgICAgdGVzdHMgPSBz
Y2FubmVyLnRlc3RzKGFyZ3MpCisgICAgaWYgdGVzdHM6CisgICAgICAgIGxvZ2dpbmcuZGVidWco
IiVkIHRlc3RzIiAlIGxlbih0ZXN0cykpCisgICAgICAgIHNjYW5uZXIucnVuKHRlc3RzKQorICAg
IGVsc2U6CisgICAgICAgIHByaW50ICJObyB0ZXN0cyBmb3VuZCIKKworCitkZWYgcGFyc2VfYXJn
cyhob3N0LCBhcmd2PU5vbmUpOgorICAgIG9wdGlvbl9wYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25Q
YXJzZXIoKQorICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLXYnLCAnLS12ZXJib3NlJywg
YWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0ncHJpbnQg
ZGVidWcgbG9nZ2luZyAoZGVmYXVsdDogJWRlZmF1bHQpJyksCisgICAgb3B0aW9uX3BhcnNlci5h
ZGRfb3B0aW9ucyhTY2FubmVyLm9wdGlvbnMoKSkKKyAgICBvcHRpb25fcGFyc2VyLnNldF9kZWZh
dWx0cygqKlNjYW5uZXIuZGVmYXVsdHMoaG9zdCkpCisgICAgb3B0aW9ucywgYXJncyA9IG9wdGlv
bl9wYXJzZXIucGFyc2VfYXJncyhhcmd2KQorICAgIHJldHVybiBTY2FubmVyLnZhbGlkYXRlKG9w
dGlvbnMpLCBhcmdzCisKKworZGVmIGNvbmZpZ3VyZV9sb2dnaW5nKG9wdGlvbnMpOgorICAgIHJv
b3QgPSBsb2dnaW5nLmdldExvZ2dlcigpCisgICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFu
ZGxlcihzeXMuc3RkZXJyKQorICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGxvZ2dpbmcuRm9ybWF0
dGVyKCclKGxldmVsbmFtZSlzICUobWVzc2FnZSlzJywgTm9uZSkpCisgICAgcm9vdC5hZGRIYW5k
bGVyKGhhbmRsZXIpCisKKyAgICBsZXZlbCA9IGxvZ2dpbmcuSU5GTworICAgIGlmIG9wdGlvbnMu
dmVyYm9zZToKKyAgICAgICAgbGV2ZWwgPSBsb2dnaW5nLkRFQlVHCisgICAgcm9vdC5zZXRMZXZl
bChsZXZlbCkKKworCitjbGFzcyBTY2FubmVyKG9iamVjdCk6CisgICAgTU9TVF9LRVlXT1JEUyA9
IHNldCh4LnVwcGVyKCkgZm9yIHggaW4gKFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TLmtl
eXMoKSArIFRlc3RFeHBlY3RhdGlvbnMuTU9ESUZJRVJTLmtleXMoKSkpLmRpZmZlcmVuY2Uoc2V0
KFsnTk9ORSddKSkKKyAgICBBTExfQkFTRUxJTkVfRVhURU5TSU9OUyA9ICgndHh0JywgJ2h0bWwn
LCAncG5nJywgJ3dhdicsICd3ZWJhcmNoaXZlJykKKyAgICBNSVNTSU5HID0gJ01JU1NJTkcnCisg
ICAgR0VORVJJQyA9ICdnZW5lcmljJworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG9wdGlv
bnMoY2xzKToKKyAgICAgICAgbyA9IG9wdHBhcnNlLm1ha2Vfb3B0aW9uCisgICAgICAgIHJldHVy
biBbCisgICAgICAgICAgICBvKCctcCcsICctLXBsYXRmb3JtcycsIGFjdGlvbj0nc3RvcmUnLAor
ICAgICAgICAgICAgICBoZWxwPSdjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwbGF0Zm9ybXMvcG9y
dCBuYW1lcyB0byBpbmNsdWRlIChkZWZhdWx0OiBcJyVkZWZhdWx0XCcpJyksCisgICAgICAgICAg
ICBvKCctYicsICctLWJhc2VsaW5lLWV4dGVuc2lvbnMnLCBhY3Rpb249J3N0b3JlJywKKyAgICAg
ICAgICAgICAgaGVscD0nY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYmFzZWxpbmUgZXh0ZW5zaW9u
cyAodHlwZXMpIHRvIGxvb2sgZm9yIChkZWZhdWx0OiBcJyVkZWZhdWx0XCcpJyksCisgICAgICAg
ICAgICBvKCctaScsICctLWluY2x1ZGVzJywgYWN0aW9uPSdzdG9yZScsCisgICAgICAgICAgICAg
IGhlbHA9J2NvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGV4cGVjdGF0aW9uL21vZGlmaWVyIGtleXdv
cmRzIHRvIGluY2x1ZGUgKGRlZmF1bHQ6IFwnJWRlZmF1bHRcJyknKSwKKyAgICAgICAgICAgIG8o
Jy1lJywgJy0tZXhjbHVkZXMnLCBhY3Rpb249J3N0b3JlJywKKyAgICAgICAgICAgICAgaGVscD0n
Y29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZXhwZWN0YXRpb24vbW9kaWZpZXIga2V5d29yZHMgdG8g
ZXhjbHVkZSAoZGVmYXVsdDogXCclZGVmYXVsdFwnKScpLAorICAgICAgICAgICAgbygnLWcnLCAn
LS1ncm91cCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgIGhlbHA9J3ByaW50
IGNvdW50cyBncm91cGVkIGJ5IDxwb3J0LCB0ZXN0IGxvY2F0aW9uIChnZW5lcmljL3BsYXRmb3Jt
KSwgYmFzZWxpbmVfZXh0ZW5zaW9uLCBiYXNlbGluZSBsb2NhdGlvbj4nKSwKKyAgICAgICAgICAg
IG8oJy0tY3N2JywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgaGVscD0ncHJp
bnQgb3V0cHV0IGFzIGEgQ1NWIG9mIDxwbGF0Zm9ybSwgdGVzdF9uYW1lLCBiYXNlbGluZV9leHRl
bnNpb24sIHBhdGhfdG9fYmFzZWxpbmUsa2V5d29yZHM+JyksCisgICAgICAgICAgICBvKCctLWlu
Y2x1ZGUtdmlydHVhbC10ZXN0cycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAg
IGhlbHA9J2luY2x1ZGUgdmlydHVhbCB0ZXN0cycpLAorICAgICAgICAgICAgbygnLS1pbmNsdWRl
LW1pc3NpbmctYmFzZWxpbmVzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAg
aGVscD0ncHJpbnQgbWlzc2luZyBiYXNlbGluZXMgYXMgd2VsbCBhcyBmb3VuZCBiYXNlbGluZXMn
KSwKKyAgICAgICAgXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRlZmF1bHRzKGNscywg
aG9zdCk6CisgICAgICAgIGRlZiB0b19jc3YodmFsKToKKyAgICAgICAgICAgIHJldHVybiAnLCcu
am9pbih2YWwpCisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICdwbGF0Zm9ybXMnOiB0
b19jc3YoaG9zdC5wb3J0X2ZhY3RvcnkuYWxsX3BvcnRfbmFtZXMoKSksCisgICAgICAgICAgICAn
YmFzZWxpbmVfZXh0ZW5zaW9ucyc6IHRvX2NzdihjbHMuQUxMX0JBU0VMSU5FX0VYVEVOU0lPTlMp
LAorICAgICAgICAgICAgJ2luY2x1ZGVzJzogdG9fY3N2KGNscy5NT1NUX0tFWVdPUkRTKSwKKyAg
ICAgICAgICAgICdleGNsdWRlcyc6ICcnLAorICAgICAgICAgICAgJ2dyb3VwJzogRmFsc2UsCisg
ICAgICAgICAgICAnaW5jbHVkZV92aXJ0dWFsX3Rlc3RzJzogRmFsc2UsCisgICAgICAgICAgICAn
aW5jbHVkZV9taXNzaW5nX2Jhc2VsaW5lcyc6IEZhbHNlLAorICAgICAgICB9CisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgaG9zdCwgb3B0aW9ucyk6CisgICAgICAgIGRlZiBmcm9tX2Nzdih2YWwp
OgorICAgICAgICAgICAgcmV0dXJuIHZhbC5zcGxpdCgnLCcpCisKKyAgICAgICAgc2VsZi5ob3N0
ID0gaG9zdAorICAgICAgICBzZWxmLmJhc2VsaW5lX2V4dGVuc2lvbnMgPSBmcm9tX2NzdihvcHRp
b25zLmJhc2VsaW5lX2V4dGVuc2lvbnMpCisgICAgICAgIHNlbGYuZXhjbHVkZXMgPSBzZXQoZnJv
bV9jc3Yob3B0aW9ucy5leGNsdWRlcy51cHBlcigpKSkKKyAgICAgICAgc2VsZi5pbmNsdWRlcyA9
IHNldChmcm9tX2NzdihvcHRpb25zLmluY2x1ZGVzLnVwcGVyKCkpKQorICAgICAgICBzZWxmLnBs
YXRmb3JtcyA9IGZyb21fY3N2KG9wdGlvbnMucGxhdGZvcm1zKQorICAgICAgICBzZWxmLmdyb3Vw
ID0gb3B0aW9ucy5ncm91cAorICAgICAgICBzZWxmLmluY2x1ZGVfdmlydHVhbF90ZXN0cyA9IG9w
dGlvbnMuaW5jbHVkZV92aXJ0dWFsX3Rlc3RzCisgICAgICAgIHNlbGYuaW5jbHVkZV9taXNzaW5n
X2Jhc2VsaW5lcyA9IG9wdGlvbnMuaW5jbHVkZV9taXNzaW5nX2Jhc2VsaW5lcworCisgICAgICAg
IHNlbGYuZ3JvdXBzID0ge30KKyAgICAgICAgc2VsZi5wbGF0Zm9ybV9yZWdleHAgPSByZS5jb21w
aWxlKCdwbGF0Zm9ybS8oW15cL10rKS8oLispJykKKworICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRo
cyk6CisgICAgICAgIHBvcnQgPSBzZWxmLmhvc3QucG9ydF9mYWN0b3J5LmdldChzZWxmLnBsYXRm
b3Jtc1swXSkKKyAgICAgICAgaWYgc2VsZi5pbmNsdWRlX3ZpcnR1YWxfdGVzdHM6CisgICAgICAg
ICAgICByZXR1cm4gcG9ydC50ZXN0cyhwYXRocykKKyAgICAgICAgcmV0dXJuIHBvcnQuX3JlYWxf
dGVzdHMocGF0aHMpCisKKyAgICBkZWYgcnVuKHNlbGYsIHRlc3RzKToKKyAgICAgICAgbG9nZ2lu
Zy5kZWJ1ZygiJWQgcGxhdGZvcm1zIiAlIGxlbihzZWxmLnBsYXRmb3JtcykpCisgICAgICAgIGZv
ciBwbGF0Zm9ybSBpbiBzZWxmLnBsYXRmb3JtczoKKyAgICAgICAgICAgIHBvcnQgPSBzZWxmLmhv
c3QucG9ydF9mYWN0b3J5LmdldChwbGF0Zm9ybSkKKyAgICAgICAgICAgIHNlbGYuc2Nhbl9wb3J0
KHBvcnQsIHRlc3RzKQorCisgICAgZGVmIHBsYXRmb3JtX2Zvcl9wYXRoKHNlbGYsIHJlbHBhdGgp
OgorICAgICAgICBtID0gc2VsZi5wbGF0Zm9ybV9yZWdleHAubWF0Y2gocmVscGF0aCkKKyAgICAg
ICAgaWYgbToKKyAgICAgICAgICAgIHJldHVybiBtLmdyb3VwKDEpCisgICAgICAgIGlmIHJlbHBh
dGggPT0gc2VsZi5NSVNTSU5HOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuTUlTU0lORworICAg
ICAgICByZXR1cm4gc2VsZi5HRU5FUklDCisKKyAgICBkZWYgc2Nhbl9wb3J0KHNlbGYsIHBvcnQs
IHRlc3RzKToKKyAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5nZXRfZXhwZWN0YXRpb25zKHBv
cnQsIHRlc3RzKQorICAgICAgICBpZiBub3QgZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIGZvciB0ZXN0X25hbWUgaW4gc29ydGVkKHRlc3RzKToKKyAgICAgICAgICAg
IGtleXdvcmRzID0gc2VsZi5rZXl3b3JkcyhleHBlY3RhdGlvbnMsIHRlc3RfbmFtZSkKKyAgICAg
ICAgICAgIGlmIG5vdCBrZXl3b3Jkcy5pbnRlcnNlY3Rpb24oc2VsZi5pbmNsdWRlcykgb3Iga2V5
d29yZHMuaW50ZXJzZWN0aW9uKHNlbGYuZXhjbHVkZXMpOgorICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICBiYXNlbGluZXMgPSBzZWxmLmdldF9iYXNlbGluZXMocG9ydCwgdGVz
dF9uYW1lKQorICAgICAgICAgICAgaWYgc2VsZi5ncm91cDoKKyAgICAgICAgICAgICAgICBzZWxm
LnVwZGF0ZV9ncm91cHMocG9ydCwgdGVzdF9uYW1lLCBiYXNlbGluZXMpCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfYmFzZWxpbmVzKHBvcnQubmFtZSgpLCB0
ZXN0X25hbWUsIGJhc2VsaW5lcywgJyAnLmpvaW4oc29ydGVkKGtleXdvcmRzKSkpCisgICAgICAg
IGlmIHNlbGYuZ3JvdXA6CisgICAgICAgICAgICBzZWxmLnByaW50X2dyb3VwcygpCisKKworICAg
IGRlZiBrZXl3b3JkcyhzZWxmLCBleHBlY3RhdGlvbnMsIHRlc3RfbmFtZSk6CisgICAgICAgIHJl
dHVybiBzZXQoZXhwZWN0YXRpb25zLmdldF9leHBlY3RhdGlvbnNfc3RyaW5nKHRlc3RfbmFtZSku
c3BsaXQoKSkudW5pb24oCisgICAgICAgICAgICAgICBzZXQoeC51cHBlcigpIGZvciB4IGluIGV4
cGVjdGF0aW9ucy5nZXRfbW9kaWZpZXJzKHRlc3RfbmFtZSkgaWYgeC51cHBlcigpIGluIHNlbGYu
QUxMX0tFWVdPUkRTKSkKKworICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zKHNlbGYsIHBvcnQsIHRl
c3RzKToKKyAgICAgICAgbGludF9tb2RlID0gRmFsc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIFRlc3RFeHBlY3RhdGlvbnMocG9ydCwKKyAgICAgICAgICAgICAgICB0ZXN0cywK
KyAgICAgICAgICAgICAgICBwb3J0LnRlc3RfZXhwZWN0YXRpb25zKCksCisgICAgICAgICAgICAg
ICAgcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24oKSwKKyAgICAgICAgICAgICAgICBsaW50X21vZGUs
CisgICAgICAgICAgICAgICAgcG9ydC50ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoKSwKKyAg
ICAgICAgICAgICAgICBwb3J0LnNraXBwZWRfdGVzdHModGVzdHMpKQorICAgICAgICBleGNlcHQg
UGFyc2VFcnJvciwgZToKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoIiVzOiAlcyIgJSAocG9y
dC5uYW1lKCksIHN0cihlKSkpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGdl
dF9iYXNlbGluZXMoc2VsZiwgcG9ydCwgdGVzdF9uYW1lKToKKyAgICAgICAgYmFzZWxpbmVfZGlj
dCA9IHt9CisgICAgICAgIGZvciBleHRlbnNpb24gaW4gc2VsZi5iYXNlbGluZV9leHRlbnNpb25z
OgorICAgICAgICAgICAgYmFzZWxpbmUgPSBwb3J0LmV4cGVjdGVkX2ZpbGVuYW1lKHRlc3RfbmFt
ZSwgJy4nICsgZXh0ZW5zaW9uKQorICAgICAgICAgICAgaWYgc2VsZi5ob3N0LmZpbGVzeXN0ZW0u
ZXhpc3RzKGJhc2VsaW5lKToKKyAgICAgICAgICAgICAgICByZWxwYXRoID0gcG9ydC5yZWxhdGl2
ZV90ZXN0X2ZpbGVuYW1lKGJhc2VsaW5lKQorICAgICAgICAgICAgICAgIGJhc2VsaW5lX2RpY3Rb
ZXh0ZW5zaW9uXSA9IHJlbHBhdGgKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
YmFzZWxpbmVfZGljdFtleHRlbnNpb25dID0gc2VsZi5NSVNTSU5HCisgICAgICAgIHJldHVybiBi
YXNlbGluZV9kaWN0CisKKyAgICBkZWYgdXBkYXRlX2dyb3VwcyhzZWxmLCBwb3J0LCB0ZXN0X25h
bWUsIGJhc2VsaW5lcyk6CisgICAgICAgIHRlc3RfbG9jYXRpb24gPSBzZWxmLnBsYXRmb3JtX2Zv
cl9wYXRoKHRlc3RfbmFtZSkKKyAgICAgICAgZm9yIGV4dGVuc2lvbiwgYmFzZWxpbmVfbG9jYXRp
b24gaW4gYmFzZWxpbmVzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgYmFzZWxpbmVfbG9jYXRp
b24gPSBzZWxmLnBsYXRmb3JtX2Zvcl9wYXRoKGJhc2VsaW5lX2xvY2F0aW9uKQorICAgICAgICAg
ICAga2V5ID0gKHBvcnQubmFtZSgpLCB0ZXN0X2xvY2F0aW9uLCBleHRlbnNpb24sIGJhc2VsaW5l
X2xvY2F0aW9uKQorICAgICAgICAgICAgc2VsZi5ncm91cHNba2V5XSA9IHNlbGYuZ3JvdXBzLmdl
dChrZXksIDApICsgMQorCisgICAgZGVmIHNob3VsZF9pbmNsdWRlKHNlbGYsIGJhc2VsaW5lX2xv
Y2F0aW9uKToKKyAgICAgICAgcmV0dXJuIGJhc2VsaW5lX2xvY2F0aW9uICE9IHNlbGYuTUlTU0lO
RyBvciBzZWxmLmluY2x1ZGVfbWlzc2luZ19iYXNlbGluZXMKKworICAgIGRlZiBwcmludF9iYXNl
bGluZXMoc2VsZiwgcG9ydF9uYW1lLCB0ZXN0X25hbWUsIGJhc2VsaW5lcywgZXhwX3N0cik6Cisg
ICAgICAgIGlmIGxlbihzZWxmLnBsYXRmb3JtcykgPiAxOgorICAgICAgICAgICAgcHJpbnQgInBv
cnQ6ICVzIiAlIHBvcnRfbmFtZQorICAgICAgICBwcmludCAidGVzdDogJXMiICUgdGVzdF9uYW1l
CisgICAgICAgIHByaW50ICJrZXl3b3JkczogJXMiICUgZXhwX3N0cgorICAgICAgICBmb3IgZXh0
ZW5zaW9uLCBiYXNlbGluZV9sb2NhdGlvbiBpbiBiYXNlbGluZXMuaXRlcml0ZW1zKCk6CisgICAg
ICAgICAgICBpZiBzZWxmLnNob3VsZF9pbmNsdWRlKGJhc2VsaW5lX2xvY2F0aW9uKToKKyAgICAg
ICAgICAgICAgICBwcmludCAiJXM6ICVzIiAlIChleHRlbnNpb24sIGJhc2VsaW5lX2xvY2F0aW9u
KQorICAgICAgICBwcmludAorCisgICAgZGVmIHByaW50X2dyb3VwcyhzZWxmKToKKyAgICAgICAg
Zm9yIGdyb3VwLCBjb3VudCBpbiBzZWxmLmdyb3Vwcy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAg
IChwb3J0X25hbWUsIHRlc3RfbG9jYXRpb24sIGV4dGVuc2lvbiwgYmFzZWxpbmVfbG9jYXRpb24p
ID0gZ3JvdXAKKyAgICAgICAgICAgIGlmIHNlbGYuc2hvdWxkX2luY2x1ZGUoYmFzZWxpbmVfbG9j
YXRpb24pOgorICAgICAgICAgICAgICAgIGlmIGxlbihzZWxmLnBsYXRmb3JtcykgPiAxOgorICAg
ICAgICAgICAgICAgICAgICBwcmludCAicG9ydDogJXMiICUgcG9ydF9uYW1lCisgICAgICAgICAg
ICAgICAgcHJpbnQgInRlc3QgbG9jYXRpb246ICVzIiAlIHRlc3RfbG9jYXRpb24KKyAgICAgICAg
ICAgICAgICBwcmludCAiZXh0ZW5zaW9uOiAlcyIgJSBleHRlbnNpb24KKyAgICAgICAgICAgICAg
ICBwcmludCAiYmFzZWxpbmUgbG9jYXRpb246ICVzIiAlIGJhc2VsaW5lX2xvY2F0aW9uCisgICAg
ICAgICAgICAgICAgcHJpbnQgImNvdW50OiAlZCIgJSBjb3VudAorICAgICAgICAgICAgICAgIHBy
aW50CisKKworY2xhc3MgQ1NWU2Nhbm5lcihTY2FubmVyKToKKyAgICBkZWYgcHJpbnRfYmFzZWxp
bmVzKHNlbGYsIHBvcnRfbmFtZSwgdGVzdF9uYW1lLCBiYXNlbGluZXMsIGV4cF9zdHIpOgorICAg
ICAgICBmb3IgZXh0ZW5zaW9uLCBiYXNlbGluZV9sb2NhdGlvbiBpbiBiYXNlbGluZXMuaXRlcml0
ZW1zKCk6CisgICAgICAgICAgICBpZiBzZWxmLnNob3VsZF9pbmNsdWRlKGJhc2VsaW5lX2xvY2F0
aW9uKToKKyAgICAgICAgICAgICAgICBwcmludCAiJXMsJXMsJXMsJXMsJXMiICUgKHBvcnRfbmFt
ZSwgdGVzdF9uYW1lLCBleHRlbnNpb24sIGJhc2VsaW5lX2xvY2F0aW9uLCBleHBfc3RyKQorCisg
ICAgZGVmIHByaW50X2dyb3VwcyhzZWxmKToKKyAgICAgICAgZm9yIGdyb3VwLCBjb3VudCBpbiBz
ZWxmLmdyb3Vwcy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIChwb3J0X25hbWUsIHRlc3RfbG9j
YXRpb24sIGV4dGVuc2lvbiwgYmFzZWxpbmVfbG9jYXRpb24pID0gZ3JvdXAKKyAgICAgICAgICAg
IGlmIHNlbGYuc2hvdWxkX2luY2x1ZGUoYmFzZWxpbmVfbG9jYXRpb24pOgorICAgICAgICAgICAg
ICAgIHByaW50ICIlcywlcywlcywlcywlcyIgJSAocG9ydF9uYW1lLCB0ZXN0X2xvY2F0aW9uLCBl
eHRlbnNpb24sIGJhc2VsaW5lX2xvY2F0aW9uLCBjb3VudCkKKworCitpZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgorICAgIHRyeToKKyAgICAgICAgbWFpbigpCisgICAgZXhjZXB0IEtleWJvYXJk
SW50ZXJydXB0LCBlOgorICAgICAgICBwcmludCAiaW50ZXJydXB0ZWQsIGV4aXRpbmciCisgICAg
ICAgIHN5cy5leGl0KDIpCisgICAgZXhjZXB0IElPRXJyb3IsIGU6CisgICAgICAgIHN5cy5leGl0
KDEpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>