<?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>64190</bug_id>
          
          <creation_ts>2011-07-08 11:27:18 -0700</creation_ts>
          <short_desc>garden-o-matic should be able to determine when compile breaks</short_desc>
          <delta_ts>2011-07-18 11:18:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>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>64588</dependson>
          <blocked>64188</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>434185</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-08 11:27:18 -0700</bug_when>
    <thetext>Compile breaks are high-priority failures because they prevent the gardener from getting test coverage while the compile is broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437643</commentid>
    <comment_count>1</comment_count>
      <attachid>100951</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 03:13:05 -0700</bug_when>
    <thetext>Created attachment 100951
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438043</commentid>
    <comment_count>2</comment_count>
      <attachid>101062</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 16:03:09 -0700</bug_when>
    <thetext>Created attachment 101062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438044</commentid>
    <comment_count>3</comment_count>
      <attachid>101062</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-15 16:07:17 -0700</bug_when>
    <thetext>Comment on attachment 101062
Patch

I assume you already have the Python code to supply breakage info in place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438045</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 16:08:39 -0700</bug_when>
    <thetext>&gt; I assume you already have the Python code to supply breakage info in place?

Yes.  Eric reviewed that patch already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438046</commentid>
    <comment_count>5</comment_count>
      <attachid>101063</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 16:10:43 -0700</bug_when>
    <thetext>Created attachment 101063
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438047</commentid>
    <comment_count>6</comment_count>
      <attachid>101064</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 16:11:11 -0700</bug_when>
    <thetext>Created attachment 101064
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438093</commentid>
    <comment_count>7</comment_count>
      <attachid>101064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-15 18:12:34 -0700</bug_when>
    <thetext>Comment on attachment 101064
Patch for landing

Rejecting attachment 101064 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-02&apos;, &apos;--port...&quot; exit_code: 1

Last 500 characters of output:
3db9c0907c35169d12d473037cbe22b315c96bc3
r91136 = 56184685e69fdba85512030fe4b830960645853c
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/9095523</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438593</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-18 11:18:52 -0700</bug_when>
    <thetext>Committed r91196: &lt;http://trac.webkit.org/changeset/91196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100951</attachid>
            <date>2011-07-15 03:13:05 -0700</date>
            <delta_ts>2011-07-15 16:03:06 -0700</delta_ts>
            <desc>Needs tests</desc>
            <filename>bug-64190-20110715031304.patch</filename>
            <type>text/plain</type>
            <size>10226</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NvbmZpZy5qcyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NvbmZp
Zy5qcwppbmRleCA3NDNhMjdkNWM5ZDRmM2QxYTBiN2MwNDY4MjY5M2MxMGJkMjk0MjBkLi5lNTAz
Y2M4ZTBiNTk5ODM4YmE2OTJmYmU0MTYyMTU2NDU1YzUxNTY2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcu
anMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5p
bmdzZXJ2ZXIvY29uZmlnLmpzCkBAIC0zLDI1ICszLDM5IEBAIHZhciBjb25maWcgPSBjb25maWcg
fHwge307CiAoZnVuY3Rpb24oKSB7CiAKIGNvbmZpZy5idWlsZGVycyA9IFsKLSAgJ1dlYmtpdCBX
aW4nLAotICAnV2Via2l0IFZpc3RhJywKLSAgLy8gJ1dlYmtpdCBXaW43JywKLSAgJ1dlYmtpdCBX
aW4gKGRiZykoMSknLAotICAnV2Via2l0IFdpbiAoZGJnKSgyKScsCi0gICdXZWJraXQgTGludXgn
LAotICAnV2Via2l0IExpbnV4IDMyJywKLSAgJ1dlYmtpdCBMaW51eCAoZGJnKSgxKScsCi0gICdX
ZWJraXQgTGludXggKGRiZykoMiknLAotICAnV2Via2l0IE1hYzEwLjUnLAotICAnV2Via2l0IE1h
YzEwLjUgKGRiZykoMSknLAotICAnV2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAotICAnV2Via2l0
IE1hYzEwLjYnLAotICAnV2Via2l0IE1hYzEwLjYgKGRiZyknLAorICAgICdXZWJraXQgV2luJywK
KyAgICAnV2Via2l0IFZpc3RhJywKKyAgICAvLyAnV2Via2l0IFdpbjcnLAorICAgICdXZWJraXQg
V2luIChkYmcpKDEpJywKKyAgICAnV2Via2l0IFdpbiAoZGJnKSgyKScsCisgICAgJ1dlYmtpdCBM
aW51eCcsCisgICAgJ1dlYmtpdCBMaW51eCAzMicsCisgICAgJ1dlYmtpdCBMaW51eCAoZGJnKSgx
KScsCisgICAgJ1dlYmtpdCBMaW51eCAoZGJnKSgyKScsCisgICAgJ1dlYmtpdCBNYWMxMC41JywK
KyAgICAnV2Via2l0IE1hYzEwLjUgKGRiZykoMSknLAorICAgICdXZWJraXQgTWFjMTAuNSAoZGJn
KSgyKScsCisgICAgJ1dlYmtpdCBNYWMxMC42JywKKyAgICAnV2Via2l0IE1hYzEwLjYgKGRiZykn
LAorXTsKKworY29uZmlnLmJ1aWxkZXJzVGhhdE9ubHlDb21waWxlID0gWworICAgICdXZWJraXQg
V2luIEJ1aWxkZXInLAorICAgICdXZWJraXQgV2luIEJ1aWxkZXIgKGRiZyknLAorICAgIC8vIEZJ
WE1FOiBXaGVyZSBpcyB0aGUgTGludXggQnVpbGRlcj8KKyAgICAnV2Via2l0IE1hYyBCdWlsZGVy
JywKKyAgICAnV2Via2l0IE1hYyBCdWlsZGVyIChkYmcpJywKKyAgICAnV2luIEJ1aWxkZXInLAor
ICAgICdNYWMgQ2xhbmcgQnVpbGRlciAoZGJnKScsCiBdOwogCiBjb25maWcua1Rlc3ROYW1lQXR0
ciA9ICdkYXRhLXRlc3QtbmFtZSc7CiBjb25maWcua0J1aWxkZXJOYW1lQXR0ciA9ICdkYXRhLWJ1
aWxkZXItbmFtZSc7CiBjb25maWcua0ZhaWx1cmVDb3VudEF0dHIgPSAnZGF0YS1mYWlsdXJlLWNv
dW50JzsKIGNvbmZpZy5rRmFpbHVyZVR5cGVzQXR0ciA9ICdkYXRhLWZhaWx1cmUtdHlwZXMnOwor
Y29uZmlnLmtBbGVydFR5cGVBdHRyID0gJ2RhdGEtYWxlcnQtdHlwZSc7CisKK3ZhciBrVGVuTWlu
dXRlc0luTWlsbGlzZWNvbmRzID0gMTAgKiA2MCAqIDEwMDA7Citjb25maWcua1VwZGF0ZUZyZXF1
ZW5jeSA9IGtUZW5NaW51dGVzSW5NaWxsaXNlY29uZHM7CiAKIH0pKCk7CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9p
bmRleC5odG1sIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvaW5kZXguaHRtbAppbmRleCA3MmExY2I5ZTdjYWRmZDc3MDYwMmM4ZjIwYWVi
MDJhMDEyMDhjODBiLi43M2I3ZTk3YzgxZTE2Y2ZjNDc5OGZkNDM1Yzc2Y2ZkNzdjMmFiYTNmIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRl
bmluZ3NlcnZlci9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwKQEAgLTExLDYgKzExLDcgQEAK
IDwvaGVhZD4KIDxib2R5PgogPGRpdiBjbGFzcz0iYnV0dGVyYmFyIj48c3BhbiBjbGFzcz0ic3Rh
dHVzIj5Mb2FkaW5nLi4uPC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz0iYWxlcnQiPjxzcGFuIGNs
YXNzPSJzdGF0dXMiPjwvc3Bhbj48L2Rpdj4KIDxkaXYgY2xhc3M9InJlc3VsdHMiPjwvZGl2Pgog
PGRpdiBjbGFzcz0icmVzdWx0cy1kZXRhaWwiPgogICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvbWFpbi5jc3MgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwppbmRleCAzZjFlOThjMGQzNTFiOWE0NTRi
MjhiY2U1NmUxOGQzNzNiNDQ2YzFhLi5jYTkxNTljOWI1NzlkM2MyZWNlOWNmZjY3OTk4OTVhZWM4
NTFhNDQwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9k
YXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwpAQCAtMzgsNiArMzgs
MzQgQEAgdGQ6bGFzdC1vZi10eXBlIHsKICAgICBtYXJnaW4tbGVmdDogMjBweDsKIH0KIAorLmFs
ZXJ0IHsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IENvcm5zaWxr
OworICAgIGJvcmRlcjogNXB4IHNvbGlkIFRvbWF0bzsKKyAgICBwYWRkaW5nOiAxMHB4OworICAg
IG1hcmdpbjogNXB4IGF1dG87CisgICAgZm9udC1zaXplOiAxNXB4OworICAgIHdpZHRoOiA3NSU7
CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisuYWxlcnQgLnN0YXR1cyBhIHsKKyAgICBm
b250LXdlaWdodDogbm9ybWFsOworfQorCisuYWxlcnQgLnN0YXR1cyB1bCB7CisgICAgbWFyZ2lu
OiAwOworICAgIHBhZGRpbmc6IDA7CisgICAgbGlzdC1zdHlsZTogbm9uZTsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgcGFkZGluZzogMCAwIDAgMTBweDsKK30KKworLmFsZXJ0IC5z
dGF0dXMgbGkgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBtYXJnaW46IDBweCA1
cHg7Cit9CisKIC8qIElmIHdlJ3ZlIG9ubHkgc2VlbiBhIGdpdmVuIHRlc3QgZmFpbHVyZSBvbmNl
LCB3ZSBkaW0gaXQgc28gYXMgbm90IHRvIGRpc3RyYWN0IHRoZSBnYXJkZW5lci4gKi8KIC50ZXN0
W2RhdGEtZmFpbHVyZS1jb3VudD0iMSJdW2RhdGEtbmV3LXRlc3Q9ImZhbHNlIl0gewogICAgIC13
ZWJraXQtdHJhbnNpdGlvbjogMXMgb3BhY2l0eTsKQEAgLTY0LDYgKzkyLDggQEAgdGQ6bGFzdC1v
Zi10eXBlIHsKIH0KIAogLnJlZ3Jlc3Npb24gbGkgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9j
azsKKyAgICBtYXJnaW46IDBweCA1cHg7CiB9CiAKIC5yZWdyZXNzaW9uIGEgewpAQCAtMTk4LDYg
KzIyOCw3IEBAIHRkOmxhc3Qtb2YtdHlwZSB7CiAucmVzdWx0cy1kZXRhaWwgLmZhaWx1cmUtZGV0
YWlscyAubWlzc2luZy1kYXRhIHsKICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgdGV4dC1h
bGlnbjogY2VudGVyOworICAgIGNvbG9yOiAjNTU1OwogfQogCiAucmVzdWx0cy1kZXRhaWwgLmZh
aWx1cmUtZGV0YWlscyB7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwppbmRleCA3MmY3
YWVjODJlNWI5MmI1MTcwMjY4MDQ1MzNiYTk4MGRiYzhmODBlLi4yYTAxMzhmYzk3NjVkYzU5OWQ3
ZGVmMzE1N2JkNWMzMThmZjI2ODhkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMK
QEAgLTEsNSArMSw5IEBACiAoZnVuY3Rpb24oKSB7CiAKK3ZhciBnX3VwZGF0ZVRpbWVySWQgPSAw
OworCit2YXIga0J1aWxkRmFpbGVkQWxlcnRUeXBlID0gJ2J1aWxkLWZhaWxlZCc7CisKIGZ1bmN0
aW9uIGRpc21pc3NCdXR0ZXJiYXIoKQogewogICAgICQoJy5idXR0ZXJiYXInKS5mYWRlT3V0KCdm
YXN0Jyk7CkBAIC0xMSw2ICsxNSwzMiBAQCBmdW5jdGlvbiBkaXNwbGF5T25CdXR0ZXJiYXIobWVz
c2FnZSkKICAgICAkKCcuYnV0dGVyYmFyJykuZmFkZUluKCk7CiB9CiAKK2Z1bmN0aW9uIGhpZGVB
bGVydCgpCit7CisgICAgJCgnLmFsZXJ0JykuYW5pbWF0ZSh7CisgICAgICAgIG9wYWNpdHk6ICd0
b2dnbGUnLAorICAgICAgICBoZWlnaHQ6ICd0b2dnbGUnLAorICAgIH0pOworfQorCitmdW5jdGlv
biBoaWRlQWxlcnRJZk9mVHlwZSh0eXBlKQoreworICAgIGlmICghJCgnLmFsZXJ0IC5zdGF0dXMn
KS5pcygnOnZpc2libGUnKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICgkKCcuYWxlcnQgLnN0
YXR1cycpLmF0dHIoY29uZmlnLmtBbGVydFR5cGVBdHRyKSAhPSB0eXBlKQorICAgICAgICByZXR1
cm47CisgICAgaGlkZUFsZXJ0KCk7Cit9CisKK2Z1bmN0aW9uIGRpc3BsYXlBbGVydChtZXNzYWdl
LCB0eXBlKQoreworICAgICQoJy5hbGVydCAuc3RhdHVzJykuZW1wdHkoKS5hdHRyKGNvbmZpZy5r
QWxlcnRUeXBlQXR0ciwgdHlwZSkuYXBwZW5kKG1lc3NhZ2UpOworICAgICQoJy5hbGVydCcpLmFu
aW1hdGUoeworICAgICAgICBvcGFjaXR5OiAndG9nZ2xlJywKKyAgICAgICAgaGVpZ2h0OiAndG9n
Z2xlJywKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gc2V0SWNvblN0YXRlKGhhc0ZhaWx1cmVzKQog
ewogICAgIHZhciBmYXZpY29uVVJMID0gJ2Zhdmljb24tJyArIChoYXNGYWlsdXJlcyA/ICdyZWQn
IDogJ2dyZWVuJykgKyAnLnBuZyc7CkBAIC0xMjIsNiArMTUyLDIyIEBAIGZ1bmN0aW9uIHJlYmFz
ZWxpbmVSZXN1bHRzKCkKICAgICBjaGVja291dC5yZWJhc2VsaW5lKGJ1aWxkZXJOYW1lLCB0ZXN0
TmFtZSwgZmFpbHVyZVR5cGVMaXN0LCBkaXNtaXNzQnV0dGVyYmFyKTsKIH0KIAorZnVuY3Rpb24g
Y2hlY2tCdWlsZGVyU3RhdHVzZXMoKQoreworICAgIHJlc3VsdHMuZmV0Y2hCdWlsZGVyc1dpdGhD
b21waWxlRXJyb3JzKGZ1bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCkgeworICAgICAgICBpZiAoIWJ1
aWxkZXJOYW1lTGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgIGhpZGVBbGVydElmT2ZUeXBlKGtC
dWlsZEZhaWxlZEFsZXJ0VHlwZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgZGlzcGxheUFsZXJ0KHVpLmFsZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMoYnVpbGRl
ck5hbWVMaXN0KSwga0J1aWxkRmFpbGVkQWxlcnRUeXBlKTsKKyAgICB9KTsKK30KKworZnVuY3Rp
b24gdXBkYXRlKCkKK3sKKyAgICBjaGVja0J1aWxkZXJTdGF0dXNlcygpOworfQorCiAkKCcucmVn
cmVzc2lvbiAud2hlcmUgYScpLmxpdmUoJ2NsaWNrJywgc2hvd1Jlc3VsdHNEZXRhaWwpOwogJCgn
LnJlc3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNtaXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVz
dWx0c0RldGFpbCk7CiAkKCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS5s
aXZlKCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRzKTsKQEAgLTEzMCw2ICsxNzYsOCBAQCAkKGRv
Y3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICBzaG93UmVzdWx0cyhmdW5jdGlvbigpIHsK
ICAgICAgICAgJCgnLmJ1dHRlcmJhcicpLmZhZGVPdXQoKTsKICAgICB9KTsKKyAgICBnX3VwZGF0
ZVRpbWVySWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwodXBkYXRlLCBjb25maWcua1VwZGF0ZUZyZXF1
ZW5jeSk7CisgICAgdXBkYXRlKCk7CiB9KTsKIAogfSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMu
anMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9yZXN1bHRzLmpzCmluZGV4IDY2ZDJiNDUwMmJiZDUyN2MwOTE2MmNmZTY0N2YzMTczNzU1
ZjE3Y2EuLjY4N2IzNzVmNDg2MjliYjI2Mjg4YzFlZmJjNDNjZGQyNWYwYzRjYWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2Vy
dmVyL3Jlc3VsdHMuanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMv
ZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcwpAQCAtNDgyLDE0ICs0ODIsMzUgQEAgcmVz
dWx0cy5mZXRjaFJlc3VsdHNVUkxzID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBm
YWlsdXJlVHlwZUxpc3QsIGNhbGwKICAgICB9KTsKIH07CiAKLXJlc3VsdHMuZmV0Y2hSZXN1bHRz
Rm9yQnVpbGRlciA9IGZ1bmN0aW9uKGJ1aWxkZXJOYW1lLCBvbnN1Y2Nlc3MpCitmdW5jdGlvbiBp
c0J1aWxkZXJUaGF0T25seUNvbXBpbGVzKGJ1aWxkZXJOYW1lKQoreworICAgIHJldHVybiBjb25m
aWcuYnVpbGRlcnNUaGF0T25seUNvbXBpbGUuaW5kZXhPZihidWlsZGVyTmFtZSkgIT0gLTE7Cit9
CisKK3Jlc3VsdHMuZmV0Y2hCdWlsZGVyc1dpdGhDb21waWxlRXJyb3JzID0gZnVuY3Rpb24oY2Fs
bGJhY2spIHsKKyAgICAkLmdldCgnL2J1aWxkYm90JywgZnVuY3Rpb24oYnVpbGRlclN0YXR1c2Vz
KSB7CisgICAgICAgIHZhciBicm9rZW5CdWlsZGVycyA9IFtdOworCisgICAgICAgICQuZWFjaChi
dWlsZGVyU3RhdHVzZXMsIGZ1bmN0aW9uKGluZGV4LCBidWlsZGVyU3RhdHVzKSB7CisgICAgICAg
ICAgICBpZiAoYnVpbGRlclN0YXR1c1snaXNfZ3JlZW4nXSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB2YXIgYnVpbGRlck5hbWUgPSBidWlsZGVyU3RhdHVzWyduYW1lJ107
CisgICAgICAgICAgICBpZiAoaXNCdWlsZGVyVGhhdE9ubHlDb21waWxlcyhidWlsZGVyTmFtZSkp
CisgICAgICAgICAgICAgICAgYnJva2VuQnVpbGRlcnMucHVzaChidWlsZGVyTmFtZSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGNhbGxiYWNrKGJyb2tlbkJ1aWxkZXJzKTsKKyAgICB9KTsKK307
CisKK3Jlc3VsdHMuZmV0Y2hSZXN1bHRzRm9yQnVpbGRlciA9IGZ1bmN0aW9uKGJ1aWxkZXJOYW1l
LCBjYWxsYmFjaykKIHsKICAgICBiYXNlLmpzb25wKHJlc3VsdHNTdW1tYXJ5VVJMKGJ1aWxkZXJO
YW1lLCBrUmVzdWx0c05hbWUpLCBmdW5jdGlvbihyZXN1bHRzVHJlZSkgewotICAgICAgICBvbnN1
Y2Nlc3MobmV3IHJlc3VsdHMuQnVpbGRlclJlc3VsdHMocmVzdWx0c1RyZWUpKTsKKyAgICAgICAg
Y2FsbGJhY2sobmV3IHJlc3VsdHMuQnVpbGRlclJlc3VsdHMocmVzdWx0c1RyZWUpKTsKICAgICB9
KTsKIH07CiAKLXJlc3VsdHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVyID0gZnVuY3Rpb24oYnVpbGRl
ck5hbWVMaXN0LCBvbnN1Y2Nlc3MpCityZXN1bHRzLmZldGNoUmVzdWx0c0J5QnVpbGRlciA9IGZ1
bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCwgY2FsbGJhY2spCiB7CiAgICAgdmFyIHJlc3VsdHNCeUJ1
aWxkZXIgPSB7fQogICAgIHZhciByZXF1ZXN0c0luRmxpZ2h0ID0gYnVpbGRlck5hbWVMaXN0Lmxl
bmd0aDsKQEAgLTQ5OCw3ICs1MTksNyBAQCByZXN1bHRzLmZldGNoUmVzdWx0c0J5QnVpbGRlciA9
IGZ1bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCwgb25zdWNjZXNzKQogICAgICAgICAgICAgcmVzdWx0
c0J5QnVpbGRlcltidWlsZGVyTmFtZV0gPSByZXN1bHRzVHJlZTsKICAgICAgICAgICAgIC0tcmVx
dWVzdHNJbkZsaWdodDsKICAgICAgICAgICAgIGlmICghcmVxdWVzdHNJbkZsaWdodCkKLSAgICAg
ICAgICAgICAgICBvbnN1Y2Nlc3MocmVzdWx0c0J5QnVpbGRlcik7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2socmVzdWx0c0J5QnVpbGRlcik7CiAgICAgICAgIH0pOwogICAgIH0pOwogfTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVu
aW5nc2VydmVyL3VpLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0
YS9nYXJkZW5pbmdzZXJ2ZXIvdWkuanMKaW5kZXggZWM2OWQxOWU3MmI1ZjQzYTZhZGJjMGM3YzUy
Nzg0ZTg0YTM2ZDcyOC4uODhmZmE5YmRkZTkzYzE1ZTE2Mzk4NWQ0NzBjODRkOGFjZGViM2IzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvdWkuanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZl
cnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWkuanMKQEAgLTIsNiArMiwxMyBAQCB2YXIgdWkgPSB1
aSB8fCB7fTsKIAogKGZ1bmN0aW9uICgpIHsKIAorZnVuY3Rpb24gZGlzcGxheVVSTEZvckJ1aWxk
ZXIoYnVpbGRlck5hbWUpCit7CisgICAgcmV0dXJuICdodHRwOi8vYnVpbGQuY2hyb21pdW0ub3Jn
L3AvY2hyb21pdW0ud2Via2l0L3dhdGVyZmFsbD8nICsgJC5wYXJhbSh7CisgICAgICAgICdidWls
ZGVyJzogYnVpbGRlck5hbWUKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gZGlzcGxheU5hbWVGb3JC
dWlsZGVyKGJ1aWxkZXJOYW1lKQogewogICAgIHJldHVybiBidWlsZGVyTmFtZS5yZXBsYWNlKC9X
ZWJraXQgLywgJycpOwpAQCAtNDIsNyArNDksOSBAQCB1aS5zdW1tYXJpemVUZXN0ID0gZnVuY3Rp
b24odGVzdE5hbWUsIHJlc3VsdE5vZGVzQnlCdWlsZGVyKQogCiAgICAgdmFyIHdoZXJlID0gJCgn
LndoZXJlJywgYmxvY2spOwogICAgICQuZWFjaChyZXN1bHROb2Rlc0J5QnVpbGRlciwgZnVuY3Rp
b24oYnVpbGRlck5hbWUsIHJlc3VsdE5vZGUpIHsKLSAgICAgICAgd2hlcmUuYXBwZW5kKCQoJ2En
LCAnPGxpPjxhIGhyZWY9IiMiPjwvYT48L2xpPicpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0
dHIsIGJ1aWxkZXJOYW1lKS50ZXh0KGRpc3BsYXlOYW1lRm9yQnVpbGRlcihidWlsZGVyTmFtZSkp
KTsKKyAgICAgICAgdmFyIGxpc3RFbGVtZW50ID0gJCgnPGxpPjxhIGhyZWY9IiMiPjwvYT48L2xp
PicpOworICAgICAgICB3aGVyZS5hcHBlbmQobGlzdEVsZW1lbnQpOworICAgICAgICAkKCdhJywg
bGlzdEVsZW1lbnQpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0dHIsIGJ1aWxkZXJOYW1lKS50
ZXh0KGRpc3BsYXlOYW1lRm9yQnVpbGRlcihidWlsZGVyTmFtZSkpOwogICAgIH0pOwogCiAgICAg
cmV0dXJuIGJsb2NrOwpAQCAtNjUsNiArNzQsMjAgQEAgdWkuc3VtbWFyaXplUmVncmVzc2lvblJh
bmdlID0gZnVuY3Rpb24ob2xkZXN0RmFpbGluZ1JldmlzaW9uLCBuZXdlc3RQYXNzaW5nUmV2aXMK
ICAgICByZXR1cm4gYmxvY2s7CiB9OwogCit1aS5hbGVydE1lc3NhZ2VGb3JDb21waWxlRXJyb3Jz
ID0gZnVuY3Rpb24oYnVpbGRlck5hbWVMaXN0KQoreworICAgIHZhciBibG9jayA9ICQoJzxkaXYg
Y2xhc3M9ImNvbXBpbGUtZXJyb3JzIj5Db21waWxlIEVycm9yczo8dWw+PC91bD48L2Rpdj4nKTsK
KworICAgIHZhciBsaXN0ID0gJCgndWwnLCBibG9jayk7CisgICAgJC5lYWNoKGJ1aWxkZXJOYW1l
TGlzdCwgZnVuY3Rpb24oaW5kZXgsIGJ1aWxkZXJOYW1lKSB7CisgICAgICAgIHZhciBsaXN0RWxl
bWVudCA9ICQoJzxsaT48YSB0YXJnZXQ9Il9ibGFuayI+PC9hPjwvbGk+Jyk7CisgICAgICAgIGxp
c3QuYXBwZW5kKGxpc3RFbGVtZW50KTsKKyAgICAgICAgJCgnYScsIGxpc3RFbGVtZW50KS5hdHRy
KCdocmVmJywgZGlzcGxheVVSTEZvckJ1aWxkZXIoYnVpbGRlck5hbWUpKS50ZXh0KGRpc3BsYXlO
YW1lRm9yQnVpbGRlcihidWlsZGVyTmFtZSkpOworICAgIH0pOworCisgICAgcmV0dXJuIGJsb2Nr
OworfTsKKwogdWkuZmFpbHVyZUNvdW50ID0gZnVuY3Rpb24oZmFpbHVyZUNvdW50KQogewogICAg
IGlmIChmYWlsdXJlQ291bnQgPCAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101062</attachid>
            <date>2011-07-15 16:03:09 -0700</date>
            <delta_ts>2011-07-15 16:10:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64190-20110715160308.patch</filename>
            <type>text/plain</type>
            <size>13698</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNDVlNzVkOTgyNjBhNTU0MTFkMGQ2OGUwNTk1YmMzZjg1
YjY0MWZlLi40NzlhMDYzZTlkMTk2MzRhZDBjYmMxNDBiNmUwZjViNjBjYTkwZjQxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKIDIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgYmUgYWJsZSB0byBkZXRlcm1pbmUgd2hlbiBjb21waWxl
IGJyZWFrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgYSByZWQtaXNoIGJveCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlIHdoZW5l
dmVyIHRoZXJlIGlzCisgICAgICAgIGEgY29tcGlsZSBlcnJvciBvbiB0aGUgYm90cy4gIFRoZSBi
b3ggYXV0b21hdGljYWxseSBvcGVucyBhbmQgY2xvc2VzIGFzCisgICAgICAgIGFwcHJvcHJpYXRl
IGFuZCBsaW5rcyB0byB0aGUgd2F0ZXJmYWxsIGRpc3BsYXkuICBJbiB0aGUgZnV0dXJlLCB3ZQor
ICAgICAgICBtaWdodCB3YW50IHRvIGNvbXB1dGUgYSByZWdyZXNzaW9uIHJhbmdlLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIv
Y29uZmlnLmpzOgorICAgICAgICAgICAgLSBBZGQgdGhlIGJ1aWxkLW9ubHkgYm90cyB0byB0aGUg
Y29uZmlnLiAgV2UgdXNlIHRoZXNlIHRvIGNoZWNrCisgICAgICAgICAgICAgIHdoZXRoZXIgdGhl
IGJ1aWxkIGZhaWxlZCwgd2hpY2ggaXMgZmFzdGVyIHRoYW4gd2FpdGluZyBmb3IgdGhlCisgICAg
ICAgICAgICAgIHRlc3RlciBib3RzIHRvIGN5Y2xlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWw6CisgICAgICAg
ICAgICAtIEFkZCBET00gZm9yIHRoZSBhbGVydCBiYXIuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3M6CisgICAgICAg
ICAgICAtIENTUyB0byBzdXBwb3J0IHRoZSBhbGVydCBiYXIuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qczoKKyAgICAg
ICAgICAgIC0gV2lyaW5nIHVwIGV2ZW50cyB0byBwb2xsIHRoZSBidWlsZGJvdCB0byBzZWUgd2hl
dGhlciBjb21waWxlIGhhcworICAgICAgICAgICAgICBmYWlsZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qczoK
KyAgICAgICAgICAgIC0gSW5mcmFzdHJ1Y3R1cmUgZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHRo
ZSBidWlsZGJvdCBzdGF0dXMgSlNPTgorICAgICAgICAgICAgICBibG9iLiAgVGhpcyBjb2RlIGNv
dWxkIGJlIGJldHRlciBmYWN0b3JlZCBmb3IgdGVzdGFiaWxpdHkuICA6KAorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgor
ICAgICAgICAgICAgLSBVSSBmb3IgZGlzcGxheWluZyBjb21waWxlIGVycm9ycy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aV91
bml0dGVzdHMuanM6CisKKzIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKwogICAgICAgICBnYXJkZW5pbmcgc2VydmVyIHNob3VsZCBwcm94eSBidWlsZGJvdCBzdGF0
dXMgZm9yIGdhcmRlbi1vLW1hdGljCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDU4OAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcuanMgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcuanMK
aW5kZXggNzQzYTI3ZDVjOWQ0ZjNkMWEwYjdjMDQ2ODI2OTNjMTBiZDI5NDIwZC4uYTcyOWQ3NGY0
NDZlYzZjNTc3ZmVhZTk3NTFkZGIyNmI2NGRiNDAwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvY29uZmlnLmpzCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2Vy
dmVyL2NvbmZpZy5qcwpAQCAtMiwyNiArMiw0MCBAQCB2YXIgY29uZmlnID0gY29uZmlnIHx8IHt9
OwogCiAoZnVuY3Rpb24oKSB7CiAKLWNvbmZpZy5idWlsZGVycyA9IFsKLSAgJ1dlYmtpdCBXaW4n
LAotICAnV2Via2l0IFZpc3RhJywKLSAgLy8gJ1dlYmtpdCBXaW43JywKLSAgJ1dlYmtpdCBXaW4g
KGRiZykoMSknLAotICAnV2Via2l0IFdpbiAoZGJnKSgyKScsCi0gICdXZWJraXQgTGludXgnLAot
ICAnV2Via2l0IExpbnV4IDMyJywKLSAgJ1dlYmtpdCBMaW51eCAoZGJnKSgxKScsCi0gICdXZWJr
aXQgTGludXggKGRiZykoMiknLAotICAnV2Via2l0IE1hYzEwLjUnLAotICAnV2Via2l0IE1hYzEw
LjUgKGRiZykoMSknLAotICAnV2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAotICAnV2Via2l0IE1h
YzEwLjYnLAotICAnV2Via2l0IE1hYzEwLjYgKGRiZyknLAorY29uZmlnLmtCdWlsZGVycyA9IFsK
KyAgICAnV2Via2l0IFdpbicsCisgICAgJ1dlYmtpdCBWaXN0YScsCisgICAgLy8gJ1dlYmtpdCBX
aW43JywKKyAgICAnV2Via2l0IFdpbiAoZGJnKSgxKScsCisgICAgJ1dlYmtpdCBXaW4gKGRiZyko
MiknLAorICAgICdXZWJraXQgTGludXgnLAorICAgICdXZWJraXQgTGludXggMzInLAorICAgICdX
ZWJraXQgTGludXggKGRiZykoMSknLAorICAgICdXZWJraXQgTGludXggKGRiZykoMiknLAorICAg
ICdXZWJraXQgTWFjMTAuNScsCisgICAgJ1dlYmtpdCBNYWMxMC41IChkYmcpKDEpJywKKyAgICAn
V2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAorICAgICdXZWJraXQgTWFjMTAuNicsCisgICAgJ1dl
YmtpdCBNYWMxMC42IChkYmcpJywKK107CisKK2NvbmZpZy5rQnVpbGRlcnNUaGF0T25seUNvbXBp
bGUgPSBbCisgICAgJ1dlYmtpdCBXaW4gQnVpbGRlcicsCisgICAgJ1dlYmtpdCBXaW4gQnVpbGRl
ciAoZGJnKScsCisgICAgLy8gRklYTUU6IFdoZXJlIGlzIHRoZSBMaW51eCBCdWlsZGVyPworICAg
ICdXZWJraXQgTWFjIEJ1aWxkZXInLAorICAgICdXZWJraXQgTWFjIEJ1aWxkZXIgKGRiZyknLAor
ICAgICdXaW4gQnVpbGRlcicsCisgICAgJ01hYyBDbGFuZyBCdWlsZGVyIChkYmcpJywKIF07CiAK
IGNvbmZpZy5rVGVzdE5hbWVBdHRyID0gJ2RhdGEtdGVzdC1uYW1lJzsKIGNvbmZpZy5rQnVpbGRl
ck5hbWVBdHRyID0gJ2RhdGEtYnVpbGRlci1uYW1lJzsKIGNvbmZpZy5rRmFpbHVyZUNvdW50QXR0
ciA9ICdkYXRhLWZhaWx1cmUtY291bnQnOwogY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyID0gJ2Rh
dGEtZmFpbHVyZS10eXBlcyc7Citjb25maWcua0FsZXJ0VHlwZUF0dHIgPSAnZGF0YS1hbGVydC10
eXBlJzsKKwordmFyIGtUZW5NaW51dGVzSW5NaWxsaXNlY29uZHMgPSAxMCAqIDYwICogMTAwMDsK
K2NvbmZpZy5rVXBkYXRlRnJlcXVlbmN5ID0ga1Rlbk1pbnV0ZXNJbk1pbGxpc2Vjb25kczsKIAog
fSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sCmluZGV4IDcyYTFjYjll
N2NhZGZkNzcwNjAyYzhmMjBhZWIwMmEwMTIwOGM4MGIuLjczYjdlOTdjODFlMTZjZmM0Nzk4ZmQ0
MzVjNzZjZmQ3N2MyYWJhM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXguaHRt
bApAQCAtMTEsNiArMTEsNyBAQAogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGNsYXNzPSJidXR0ZXJi
YXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+Cis8ZGl2IGNs
YXNzPSJhbGVydCI+PHNwYW4gY2xhc3M9InN0YXR1cyI+PC9zcGFuPjwvZGl2PgogPGRpdiBjbGFz
cz0icmVzdWx0cyI+PC9kaXY+CiA8ZGl2IGNsYXNzPSJyZXN1bHRzLWRldGFpbCI+CiAgICAgPGRp
diBjbGFzcz0idG9vbGJhciI+CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCmluZGV4
IDNmMWU5OGMwZDM1MWI5YTQ1NGIyOGJjZTU2ZTE4ZDM3M2I0NDZjMWEuLmNhOTE1OWM5YjU3OWQz
YzJlY2U5Y2ZmNjc5OTg5NWFlYzg1MWE0NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uY3NzCkBAIC0zOCw2ICszOCwzNCBAQCB0ZDpsYXN0LW9mLXR5cGUgewogICAgIG1hcmdpbi1s
ZWZ0OiAyMHB4OwogfQogCisuYWxlcnQgeworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogQ29ybnNpbGs7CisgICAgYm9yZGVyOiA1cHggc29saWQgVG9tYXRvOworICAg
IHBhZGRpbmc6IDEwcHg7CisgICAgbWFyZ2luOiA1cHggYXV0bzsKKyAgICBmb250LXNpemU6IDE1
cHg7CisgICAgd2lkdGg6IDc1JTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKKy5hbGVy
dCAuc3RhdHVzIGEgeworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cit9CisKKy5hbGVydCAuc3Rh
dHVzIHVsIHsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBsaXN0LXN0eWxl
OiBub25lOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nOiAwIDAgMCAx
MHB4OworfQorCisuYWxlcnQgLnN0YXR1cyBsaSB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgIG1hcmdpbjogMHB4IDVweDsKK30KKwogLyogSWYgd2UndmUgb25seSBzZWVuIGEgZ2l2
ZW4gdGVzdCBmYWlsdXJlIG9uY2UsIHdlIGRpbSBpdCBzbyBhcyBub3QgdG8gZGlzdHJhY3QgdGhl
IGdhcmRlbmVyLiAqLwogLnRlc3RbZGF0YS1mYWlsdXJlLWNvdW50PSIxIl1bZGF0YS1uZXctdGVz
dD0iZmFsc2UiXSB7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAxcyBvcGFjaXR5OwpAQCAtNjQs
NiArOTIsOCBAQCB0ZDpsYXN0LW9mLXR5cGUgewogfQogCiAucmVncmVzc2lvbiBsaSB7CisgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIG1hcmdpbjogMHB4IDVweDsKIH0KIAogLnJlZ3Jl
c3Npb24gYSB7CkBAIC0xOTgsNiArMjI4LDcgQEAgdGQ6bGFzdC1vZi10eXBlIHsKIC5yZXN1bHRz
LWRldGFpbCAuZmFpbHVyZS1kZXRhaWxzIC5taXNzaW5nLWRhdGEgewogICAgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgY29sb3I6ICM1NTU7CiB9CiAK
IC5yZXN1bHRzLWRldGFpbCAuZmFpbHVyZS1kZXRhaWxzIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9tYWluLmpzCmluZGV4IDcyZjdhZWM4MmU1YjkyYjUxNzAyNjgwNDUzM2JhOTgwZGJjOGY4MGUu
LjJhMDEzOGZjOTc2NWRjNTk5ZDdkZWYzMTU3YmQ1YzMxOGZmMjY4OGQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvbWFpbi5qcwpAQCAtMSw1ICsxLDkgQEAKIChmdW5jdGlvbigpIHsKIAordmFy
IGdfdXBkYXRlVGltZXJJZCA9IDA7CisKK3ZhciBrQnVpbGRGYWlsZWRBbGVydFR5cGUgPSAnYnVp
bGQtZmFpbGVkJzsKKwogZnVuY3Rpb24gZGlzbWlzc0J1dHRlcmJhcigpCiB7CiAgICAgJCgnLmJ1
dHRlcmJhcicpLmZhZGVPdXQoJ2Zhc3QnKTsKQEAgLTExLDYgKzE1LDMyIEBAIGZ1bmN0aW9uIGRp
c3BsYXlPbkJ1dHRlcmJhcihtZXNzYWdlKQogICAgICQoJy5idXR0ZXJiYXInKS5mYWRlSW4oKTsK
IH0KIAorZnVuY3Rpb24gaGlkZUFsZXJ0KCkKK3sKKyAgICAkKCcuYWxlcnQnKS5hbmltYXRlKHsK
KyAgICAgICAgb3BhY2l0eTogJ3RvZ2dsZScsCisgICAgICAgIGhlaWdodDogJ3RvZ2dsZScsCisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIGhpZGVBbGVydElmT2ZUeXBlKHR5cGUpCit7CisgICAgaWYg
KCEkKCcuYWxlcnQgLnN0YXR1cycpLmlzKCc6dmlzaWJsZScpKQorICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCQoJy5hbGVydCAuc3RhdHVzJykuYXR0cihjb25maWcua0FsZXJ0VHlwZUF0dHIpICE9
IHR5cGUpCisgICAgICAgIHJldHVybjsKKyAgICBoaWRlQWxlcnQoKTsKK30KKworZnVuY3Rpb24g
ZGlzcGxheUFsZXJ0KG1lc3NhZ2UsIHR5cGUpCit7CisgICAgJCgnLmFsZXJ0IC5zdGF0dXMnKS5l
bXB0eSgpLmF0dHIoY29uZmlnLmtBbGVydFR5cGVBdHRyLCB0eXBlKS5hcHBlbmQobWVzc2FnZSk7
CisgICAgJCgnLmFsZXJ0JykuYW5pbWF0ZSh7CisgICAgICAgIG9wYWNpdHk6ICd0b2dnbGUnLAor
ICAgICAgICBoZWlnaHQ6ICd0b2dnbGUnLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBzZXRJY29u
U3RhdGUoaGFzRmFpbHVyZXMpCiB7CiAgICAgdmFyIGZhdmljb25VUkwgPSAnZmF2aWNvbi0nICsg
KGhhc0ZhaWx1cmVzID8gJ3JlZCcgOiAnZ3JlZW4nKSArICcucG5nJzsKQEAgLTEyMiw2ICsxNTIs
MjIgQEAgZnVuY3Rpb24gcmViYXNlbGluZVJlc3VsdHMoKQogICAgIGNoZWNrb3V0LnJlYmFzZWxp
bmUoYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWlsdXJlVHlwZUxpc3QsIGRpc21pc3NCdXR0ZXJi
YXIpOwogfQogCitmdW5jdGlvbiBjaGVja0J1aWxkZXJTdGF0dXNlcygpCit7CisgICAgcmVzdWx0
cy5mZXRjaEJ1aWxkZXJzV2l0aENvbXBpbGVFcnJvcnMoZnVuY3Rpb24oYnVpbGRlck5hbWVMaXN0
KSB7CisgICAgICAgIGlmICghYnVpbGRlck5hbWVMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAg
aGlkZUFsZXJ0SWZPZlR5cGUoa0J1aWxkRmFpbGVkQWxlcnRUeXBlKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBkaXNwbGF5QWxlcnQodWkuYWxlcnRNZXNzYWdlRm9y
Q29tcGlsZUVycm9ycyhidWlsZGVyTmFtZUxpc3QpLCBrQnVpbGRGYWlsZWRBbGVydFR5cGUpOwor
ICAgIH0pOworfQorCitmdW5jdGlvbiB1cGRhdGUoKQoreworICAgIGNoZWNrQnVpbGRlclN0YXR1
c2VzKCk7Cit9CisKICQoJy5yZWdyZXNzaW9uIC53aGVyZSBhJykubGl2ZSgnY2xpY2snLCBzaG93
UmVzdWx0c0RldGFpbCk7CiAkKCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLmRpc21pc3MnKS5s
aXZlKCdjbGljaycsIGhpZGVSZXN1bHRzRGV0YWlsKTsKICQoJy5yZXN1bHRzLWRldGFpbCAuYWN0
aW9ucyAucmViYXNlbGluZScpLmxpdmUoJ2NsaWNrJywgcmViYXNlbGluZVJlc3VsdHMpOwpAQCAt
MTMwLDYgKzE3Niw4IEBAICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogICAgIHNob3dS
ZXN1bHRzKGZ1bmN0aW9uKCkgewogICAgICAgICAkKCcuYnV0dGVyYmFyJykuZmFkZU91dCgpOwog
ICAgIH0pOworICAgIGdfdXBkYXRlVGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGUs
IGNvbmZpZy5rVXBkYXRlRnJlcXVlbmN5KTsKKyAgICB1cGRhdGUoKTsKIH0pOwogCiB9KSgpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMKaW5kZXggNjZkMmI0NTAyYmJkNTI3
YzA5MTYyY2ZlNjQ3ZjMxNzM3NTVmMTdjYS4uOTI3NDJhOTdkYmFhNzFhMTRkM2ViZWFjNjUyMDRm
YmZhYzU3MjY2MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZl
cnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzCkBAIC00
ODIsMTQgKzQ4MiwzOCBAQCByZXN1bHRzLmZldGNoUmVzdWx0c1VSTHMgPSBmdW5jdGlvbihidWls
ZGVyTmFtZSwgdGVzdE5hbWUsIGZhaWx1cmVUeXBlTGlzdCwgY2FsbAogICAgIH0pOwogfTsKIAot
cmVzdWx0cy5mZXRjaFJlc3VsdHNGb3JCdWlsZGVyID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIG9u
c3VjY2VzcykKK2Z1bmN0aW9uIGlzQnVpbGRlclRoYXRPbmx5Q29tcGlsZXMoYnVpbGRlck5hbWUp
Cit7CisgICAgcmV0dXJuIGNvbmZpZy5rQnVpbGRlcnNUaGF0T25seUNvbXBpbGUuaW5kZXhPZihi
dWlsZGVyTmFtZSkgIT0gLTE7Cit9CisKKy8vIEZJWE1FOiBUaGlzIG1ldGhvZCBpc24ndCB0ZXN0
ZWQgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgZ29vZCBzdHJhdGVneSBmb3IKKy8vIG1vY2tpbmcg
b3V0IHRoZSBuZXR3b3JrLiBNYXliZSBhbGwgbmV0d29yayByZXF1ZXN0cyBzaG91bGQgZ28gdGhy
b3VnaCBhCisvLyAibmV0IiBtb2R1bGU/CityZXN1bHRzLmZldGNoQnVpbGRlcnNXaXRoQ29tcGls
ZUVycm9ycyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgICAgJC5nZXQoJy9idWlsZGJvdCcsIGZ1
bmN0aW9uKGJ1aWxkZXJTdGF0dXNlcykgeworICAgICAgICB2YXIgYnJva2VuQnVpbGRlcnMgPSBb
XTsKKworICAgICAgICAkLmVhY2goYnVpbGRlclN0YXR1c2VzLCBmdW5jdGlvbihpbmRleCwgYnVp
bGRlclN0YXR1cykgeworICAgICAgICAgICAgaWYgKGJ1aWxkZXJTdGF0dXNbJ2lzX2dyZWVuJ10p
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdmFyIGJ1aWxkZXJOYW1lID0g
YnVpbGRlclN0YXR1c1snbmFtZSddOworICAgICAgICAgICAgaWYgKGlzQnVpbGRlclRoYXRPbmx5
Q29tcGlsZXMoYnVpbGRlck5hbWUpKQorICAgICAgICAgICAgICAgIGJyb2tlbkJ1aWxkZXJzLnB1
c2goYnVpbGRlck5hbWUpOworICAgICAgICB9KTsKKworICAgICAgICBjYWxsYmFjayhicm9rZW5C
dWlsZGVycyk7CisgICAgfSk7Cit9OworCityZXN1bHRzLmZldGNoUmVzdWx0c0ZvckJ1aWxkZXIg
PSBmdW5jdGlvbihidWlsZGVyTmFtZSwgY2FsbGJhY2spCiB7CiAgICAgYmFzZS5qc29ucChyZXN1
bHRzU3VtbWFyeVVSTChidWlsZGVyTmFtZSwga1Jlc3VsdHNOYW1lKSwgZnVuY3Rpb24ocmVzdWx0
c1RyZWUpIHsKLSAgICAgICAgb25zdWNjZXNzKG5ldyByZXN1bHRzLkJ1aWxkZXJSZXN1bHRzKHJl
c3VsdHNUcmVlKSk7CisgICAgICAgIGNhbGxiYWNrKG5ldyByZXN1bHRzLkJ1aWxkZXJSZXN1bHRz
KHJlc3VsdHNUcmVlKSk7CiAgICAgfSk7CiB9OwogCi1yZXN1bHRzLmZldGNoUmVzdWx0c0J5QnVp
bGRlciA9IGZ1bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCwgb25zdWNjZXNzKQorcmVzdWx0cy5mZXRj
aFJlc3VsdHNCeUJ1aWxkZXIgPSBmdW5jdGlvbihidWlsZGVyTmFtZUxpc3QsIGNhbGxiYWNrKQog
ewogICAgIHZhciByZXN1bHRzQnlCdWlsZGVyID0ge30KICAgICB2YXIgcmVxdWVzdHNJbkZsaWdo
dCA9IGJ1aWxkZXJOYW1lTGlzdC5sZW5ndGg7CkBAIC00OTgsNyArNTIyLDcgQEAgcmVzdWx0cy5m
ZXRjaFJlc3VsdHNCeUJ1aWxkZXIgPSBmdW5jdGlvbihidWlsZGVyTmFtZUxpc3QsIG9uc3VjY2Vz
cykKICAgICAgICAgICAgIHJlc3VsdHNCeUJ1aWxkZXJbYnVpbGRlck5hbWVdID0gcmVzdWx0c1Ry
ZWU7CiAgICAgICAgICAgICAtLXJlcXVlc3RzSW5GbGlnaHQ7CiAgICAgICAgICAgICBpZiAoIXJl
cXVlc3RzSW5GbGlnaHQpCi0gICAgICAgICAgICAgICAgb25zdWNjZXNzKHJlc3VsdHNCeUJ1aWxk
ZXIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdHNCeUJ1aWxkZXIpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aS5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCmluZGV4IGVjNjlk
MTllNzJiNWY0M2E2YWRiYzBjN2M1Mjc4NGU4NGEzNmQ3MjguLjIxMzY5YjNkZGM2MzI1MDA3NGNm
OWMyNWM0ZDY2OTIzM2M3MzUzMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCkBAIC0y
LDYgKzIsMTMgQEAgdmFyIHVpID0gdWkgfHwge307CiAKIChmdW5jdGlvbiAoKSB7CiAKK2Z1bmN0
aW9uIGRpc3BsYXlVUkxGb3JCdWlsZGVyKGJ1aWxkZXJOYW1lKQoreworICAgIHJldHVybiAnaHR0
cDovL2J1aWxkLmNocm9taXVtLm9yZy9wL2Nocm9taXVtLndlYmtpdC93YXRlcmZhbGw/JyArICQu
cGFyYW0oeworICAgICAgICAnYnVpbGRlcic6IGJ1aWxkZXJOYW1lCisgICAgfSk7Cit9CisKIGZ1
bmN0aW9uIGRpc3BsYXlOYW1lRm9yQnVpbGRlcihidWlsZGVyTmFtZSkKIHsKICAgICByZXR1cm4g
YnVpbGRlck5hbWUucmVwbGFjZSgvV2Via2l0IC8sICcnKTsKQEAgLTQyLDcgKzQ5LDkgQEAgdWku
c3VtbWFyaXplVGVzdCA9IGZ1bmN0aW9uKHRlc3ROYW1lLCByZXN1bHROb2Rlc0J5QnVpbGRlcikK
IAogICAgIHZhciB3aGVyZSA9ICQoJy53aGVyZScsIGJsb2NrKTsKICAgICAkLmVhY2gocmVzdWx0
Tm9kZXNCeUJ1aWxkZXIsIGZ1bmN0aW9uKGJ1aWxkZXJOYW1lLCByZXN1bHROb2RlKSB7Ci0gICAg
ICAgIHdoZXJlLmFwcGVuZCgkKCdhJywgJzxsaT48YSBocmVmPSIjIj48L2E+PC9saT4nKS5hdHRy
KGNvbmZpZy5rQnVpbGRlck5hbWVBdHRyLCBidWlsZGVyTmFtZSkudGV4dChkaXNwbGF5TmFtZUZv
ckJ1aWxkZXIoYnVpbGRlck5hbWUpKSk7CisgICAgICAgIHZhciBsaXN0RWxlbWVudCA9ICQoJzxs
aT48YSBocmVmPSIjIj48L2E+PC9saT4nKTsKKyAgICAgICAgd2hlcmUuYXBwZW5kKGxpc3RFbGVt
ZW50KTsKKyAgICAgICAgJCgnYScsIGxpc3RFbGVtZW50KS5hdHRyKGNvbmZpZy5rQnVpbGRlck5h
bWVBdHRyLCBidWlsZGVyTmFtZSkudGV4dChkaXNwbGF5TmFtZUZvckJ1aWxkZXIoYnVpbGRlck5h
bWUpKTsKICAgICB9KTsKIAogICAgIHJldHVybiBibG9jazsKQEAgLTY1LDYgKzc0LDIwIEBAIHVp
LnN1bW1hcml6ZVJlZ3Jlc3Npb25SYW5nZSA9IGZ1bmN0aW9uKG9sZGVzdEZhaWxpbmdSZXZpc2lv
biwgbmV3ZXN0UGFzc2luZ1JldmlzCiAgICAgcmV0dXJuIGJsb2NrOwogfTsKIAordWkuYWxlcnRN
ZXNzYWdlRm9yQ29tcGlsZUVycm9ycyA9IGZ1bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCkKK3sKKyAg
ICB2YXIgYmxvY2sgPSAkKCc8ZGl2IGNsYXNzPSJjb21waWxlLWVycm9ycyI+QnVpbGQgRmFpbGVk
Ojx1bD48L3VsPjwvZGl2PicpOworCisgICAgdmFyIGxpc3QgPSAkKCd1bCcsIGJsb2NrKTsKKyAg
ICAkLmVhY2goYnVpbGRlck5hbWVMaXN0LCBmdW5jdGlvbihpbmRleCwgYnVpbGRlck5hbWUpIHsK
KyAgICAgICAgdmFyIGxpc3RFbGVtZW50ID0gJCgnPGxpPjxhIHRhcmdldD0iX2JsYW5rIj48L2E+
PC9saT4nKTsKKyAgICAgICAgbGlzdC5hcHBlbmQobGlzdEVsZW1lbnQpOworICAgICAgICAkKCdh
JywgbGlzdEVsZW1lbnQpLmF0dHIoJ2hyZWYnLCBkaXNwbGF5VVJMRm9yQnVpbGRlcihidWlsZGVy
TmFtZSkpLnRleHQoZGlzcGxheU5hbWVGb3JCdWlsZGVyKGJ1aWxkZXJOYW1lKSk7CisgICAgfSk7
CisKKyAgICByZXR1cm4gYmxvY2s7Cit9OworCiB1aS5mYWlsdXJlQ291bnQgPSBmdW5jdGlvbihm
YWlsdXJlQ291bnQpCiB7CiAgICAgaWYgKGZhaWx1cmVDb3VudCA8IDEpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci91
aV91bml0dGVzdHMuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci91aV91bml0dGVzdHMuanMKaW5kZXggM2VlOWQ1NzcwNTg0YmJjNDMx
NzUzYzZhNTJhMzJkNDE2ZGJjMDU5NC4uYzI2NGI1YmUwMDcxZDY4OTAxODNhNTU5M2FjMmJhN2Ex
Yjk0ZWRjMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMv
ZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWlfdW5pdHRlc3RzLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpX3VuaXR0ZXN0cy5q
cwpAQCAtNTEsNiArNTEsMTYgQEAgdGVzdCgiZmFpbHVyZUNvdW50IiwgNCwgZnVuY3Rpb24oKSB7
CiAgICAgZXF1YWwodWkuZmFpbHVyZUNvdW50KDMpLCAnKFNlZW4gMyB0aW1lcy4pJyk7CiB9KTsK
IAordGVzdCgiYWxlcnRNZXNzYWdlRm9yQ29tcGlsZUVycm9ycyIsIDEsIGZ1bmN0aW9uKCkgewor
ICAgIHZhciBtZXNzYWdlID0gdWkuYWxlcnRNZXNzYWdlRm9yQ29tcGlsZUVycm9ycyhbJ01vY2sg
QnVpbGRlcicsICdBbm90aGVyIEJ1aWxkZXInXSk7CisgICAgbWVzc2FnZS53cmFwKCc8d3JhcHBl
cj48L3dyYXBwZXI+Jyk7CisgICAgZXF1YWwobWVzc2FnZS5wYXJlbnQoKS5odG1sKCksCisgICAg
ICAgICc8ZGl2IGNsYXNzPSJjb21waWxlLWVycm9ycyI+QnVpbGQgRmFpbGVkOjx1bD4nICsKKyAg
ICAgICAgICAgICc8bGk+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly9idWlsZC5jaHJv
bWl1bS5vcmcvcC9jaHJvbWl1bS53ZWJraXQvd2F0ZXJmYWxsP2J1aWxkZXI9TW9jaytCdWlsZGVy
Ij5Nb2NrIEJ1aWxkZXI8L2E+PC9saT4nICsKKyAgICAgICAgICAgICc8bGk+PGEgdGFyZ2V0PSJf
YmxhbmsiIGhyZWY9Imh0dHA6Ly9idWlsZC5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS53ZWJraXQv
d2F0ZXJmYWxsP2J1aWxkZXI9QW5vdGhlcitCdWlsZGVyIj5Bbm90aGVyIEJ1aWxkZXI8L2E+PC9s
aT4nICsKKyAgICAgICAgJzwvdWw+PC9kaXY+Jyk7Cit9KTsKKwogdGVzdCgiZmFpbHVyZURldGFp
bHMiLCAxLCBmdW5jdGlvbigpIHsKICAgICB2YXIgdGVzdFJlc3VsdHMgPSB1aS5mYWlsdXJlRGV0
YWlscyhbCiAgICAgICAgICdodHRwOi8vZXhhbXBsZS5jb20vbGF5b3V0LXRlc3QtcmVzdWx0cy9m
b28tYmFyLWRpZmYudHh0JywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101063</attachid>
            <date>2011-07-15 16:10:43 -0700</date>
            <delta_ts>2011-07-15 16:11:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-64190-20110715161042.patch</filename>
            <type>text/plain</type>
            <size>14131</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNDVlNzVkOTgyNjBhNTU0MTFkMGQ2OGUwNTk1YmMzZjg1
YjY0MWZlLi40NzlhMDYzZTlkMTk2MzRhZDBjYmMxNDBiNmUwZjViNjBjYTkwZjQxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKIDIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgYmUgYWJsZSB0byBkZXRlcm1pbmUgd2hlbiBjb21waWxl
IGJyZWFrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgYSByZWQtaXNoIGJveCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlIHdoZW5l
dmVyIHRoZXJlIGlzCisgICAgICAgIGEgY29tcGlsZSBlcnJvciBvbiB0aGUgYm90cy4gIFRoZSBi
b3ggYXV0b21hdGljYWxseSBvcGVucyBhbmQgY2xvc2VzIGFzCisgICAgICAgIGFwcHJvcHJpYXRl
IGFuZCBsaW5rcyB0byB0aGUgd2F0ZXJmYWxsIGRpc3BsYXkuICBJbiB0aGUgZnV0dXJlLCB3ZQor
ICAgICAgICBtaWdodCB3YW50IHRvIGNvbXB1dGUgYSByZWdyZXNzaW9uIHJhbmdlLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIv
Y29uZmlnLmpzOgorICAgICAgICAgICAgLSBBZGQgdGhlIGJ1aWxkLW9ubHkgYm90cyB0byB0aGUg
Y29uZmlnLiAgV2UgdXNlIHRoZXNlIHRvIGNoZWNrCisgICAgICAgICAgICAgIHdoZXRoZXIgdGhl
IGJ1aWxkIGZhaWxlZCwgd2hpY2ggaXMgZmFzdGVyIHRoYW4gd2FpdGluZyBmb3IgdGhlCisgICAg
ICAgICAgICAgIHRlc3RlciBib3RzIHRvIGN5Y2xlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWw6CisgICAgICAg
ICAgICAtIEFkZCBET00gZm9yIHRoZSBhbGVydCBiYXIuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3M6CisgICAgICAg
ICAgICAtIENTUyB0byBzdXBwb3J0IHRoZSBhbGVydCBiYXIuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qczoKKyAgICAg
ICAgICAgIC0gV2lyaW5nIHVwIGV2ZW50cyB0byBwb2xsIHRoZSBidWlsZGJvdCB0byBzZWUgd2hl
dGhlciBjb21waWxlIGhhcworICAgICAgICAgICAgICBmYWlsZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qczoK
KyAgICAgICAgICAgIC0gSW5mcmFzdHJ1Y3R1cmUgZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHRo
ZSBidWlsZGJvdCBzdGF0dXMgSlNPTgorICAgICAgICAgICAgICBibG9iLiAgVGhpcyBjb2RlIGNv
dWxkIGJlIGJldHRlciBmYWN0b3JlZCBmb3IgdGVzdGFiaWxpdHkuICA6KAorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgor
ICAgICAgICAgICAgLSBVSSBmb3IgZGlzcGxheWluZyBjb21waWxlIGVycm9ycy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aV91
bml0dGVzdHMuanM6CisKKzIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKwogICAgICAgICBnYXJkZW5pbmcgc2VydmVyIHNob3VsZCBwcm94eSBidWlsZGJvdCBzdGF0
dXMgZm9yIGdhcmRlbi1vLW1hdGljCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDU4OAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcuanMgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcuanMK
aW5kZXggNzQzYTI3ZDVjOWQ0ZjNkMWEwYjdjMDQ2ODI2OTNjMTBiZDI5NDIwZC4uYTcyOWQ3NGY0
NDZlYzZjNTc3ZmVhZTk3NTFkZGIyNmI2NGRiNDAwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvY29uZmlnLmpzCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2Vy
dmVyL2NvbmZpZy5qcwpAQCAtMiwyNiArMiw0MCBAQCB2YXIgY29uZmlnID0gY29uZmlnIHx8IHt9
OwogCiAoZnVuY3Rpb24oKSB7CiAKLWNvbmZpZy5idWlsZGVycyA9IFsKLSAgJ1dlYmtpdCBXaW4n
LAotICAnV2Via2l0IFZpc3RhJywKLSAgLy8gJ1dlYmtpdCBXaW43JywKLSAgJ1dlYmtpdCBXaW4g
KGRiZykoMSknLAotICAnV2Via2l0IFdpbiAoZGJnKSgyKScsCi0gICdXZWJraXQgTGludXgnLAot
ICAnV2Via2l0IExpbnV4IDMyJywKLSAgJ1dlYmtpdCBMaW51eCAoZGJnKSgxKScsCi0gICdXZWJr
aXQgTGludXggKGRiZykoMiknLAotICAnV2Via2l0IE1hYzEwLjUnLAotICAnV2Via2l0IE1hYzEw
LjUgKGRiZykoMSknLAotICAnV2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAotICAnV2Via2l0IE1h
YzEwLjYnLAotICAnV2Via2l0IE1hYzEwLjYgKGRiZyknLAorY29uZmlnLmtCdWlsZGVycyA9IFsK
KyAgICAnV2Via2l0IFdpbicsCisgICAgJ1dlYmtpdCBWaXN0YScsCisgICAgLy8gJ1dlYmtpdCBX
aW43JywKKyAgICAnV2Via2l0IFdpbiAoZGJnKSgxKScsCisgICAgJ1dlYmtpdCBXaW4gKGRiZyko
MiknLAorICAgICdXZWJraXQgTGludXgnLAorICAgICdXZWJraXQgTGludXggMzInLAorICAgICdX
ZWJraXQgTGludXggKGRiZykoMSknLAorICAgICdXZWJraXQgTGludXggKGRiZykoMiknLAorICAg
ICdXZWJraXQgTWFjMTAuNScsCisgICAgJ1dlYmtpdCBNYWMxMC41IChkYmcpKDEpJywKKyAgICAn
V2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAorICAgICdXZWJraXQgTWFjMTAuNicsCisgICAgJ1dl
YmtpdCBNYWMxMC42IChkYmcpJywKK107CisKK2NvbmZpZy5rQnVpbGRlcnNUaGF0T25seUNvbXBp
bGUgPSBbCisgICAgJ1dlYmtpdCBXaW4gQnVpbGRlcicsCisgICAgJ1dlYmtpdCBXaW4gQnVpbGRl
ciAoZGJnKScsCisgICAgLy8gRklYTUU6IFdoZXJlIGlzIHRoZSBMaW51eCBCdWlsZGVyPworICAg
ICdXZWJraXQgTWFjIEJ1aWxkZXInLAorICAgICdXZWJraXQgTWFjIEJ1aWxkZXIgKGRiZyknLAor
ICAgICdXaW4gQnVpbGRlcicsCisgICAgJ01hYyBDbGFuZyBCdWlsZGVyIChkYmcpJywKIF07CiAK
IGNvbmZpZy5rVGVzdE5hbWVBdHRyID0gJ2RhdGEtdGVzdC1uYW1lJzsKIGNvbmZpZy5rQnVpbGRl
ck5hbWVBdHRyID0gJ2RhdGEtYnVpbGRlci1uYW1lJzsKIGNvbmZpZy5rRmFpbHVyZUNvdW50QXR0
ciA9ICdkYXRhLWZhaWx1cmUtY291bnQnOwogY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyID0gJ2Rh
dGEtZmFpbHVyZS10eXBlcyc7Citjb25maWcua0FsZXJ0VHlwZUF0dHIgPSAnZGF0YS1hbGVydC10
eXBlJzsKKwordmFyIGtUZW5NaW51dGVzSW5NaWxsaXNlY29uZHMgPSAxMCAqIDYwICogMTAwMDsK
K2NvbmZpZy5rVXBkYXRlRnJlcXVlbmN5ID0ga1Rlbk1pbnV0ZXNJbk1pbGxpc2Vjb25kczsKIAog
fSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sCmluZGV4IDcyYTFjYjll
N2NhZGZkNzcwNjAyYzhmMjBhZWIwMmEwMTIwOGM4MGIuLjczYjdlOTdjODFlMTZjZmM0Nzk4ZmQ0
MzVjNzZjZmQ3N2MyYWJhM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXguaHRt
bApAQCAtMTEsNiArMTEsNyBAQAogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGNsYXNzPSJidXR0ZXJi
YXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+Cis8ZGl2IGNs
YXNzPSJhbGVydCI+PHNwYW4gY2xhc3M9InN0YXR1cyI+PC9zcGFuPjwvZGl2PgogPGRpdiBjbGFz
cz0icmVzdWx0cyI+PC9kaXY+CiA8ZGl2IGNsYXNzPSJyZXN1bHRzLWRldGFpbCI+CiAgICAgPGRp
diBjbGFzcz0idG9vbGJhciI+CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCmluZGV4
IDNmMWU5OGMwZDM1MWI5YTQ1NGIyOGJjZTU2ZTE4ZDM3M2I0NDZjMWEuLmNhOTE1OWM5YjU3OWQz
YzJlY2U5Y2ZmNjc5OTg5NWFlYzg1MWE0NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uY3NzCkBAIC0zOCw2ICszOCwzNCBAQCB0ZDpsYXN0LW9mLXR5cGUgewogICAgIG1hcmdpbi1s
ZWZ0OiAyMHB4OwogfQogCisuYWxlcnQgeworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogQ29ybnNpbGs7CisgICAgYm9yZGVyOiA1cHggc29saWQgVG9tYXRvOworICAg
IHBhZGRpbmc6IDEwcHg7CisgICAgbWFyZ2luOiA1cHggYXV0bzsKKyAgICBmb250LXNpemU6IDE1
cHg7CisgICAgd2lkdGg6IDc1JTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKKy5hbGVy
dCAuc3RhdHVzIGEgeworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cit9CisKKy5hbGVydCAuc3Rh
dHVzIHVsIHsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBsaXN0LXN0eWxl
OiBub25lOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nOiAwIDAgMCAx
MHB4OworfQorCisuYWxlcnQgLnN0YXR1cyBsaSB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgIG1hcmdpbjogMHB4IDVweDsKK30KKwogLyogSWYgd2UndmUgb25seSBzZWVuIGEgZ2l2
ZW4gdGVzdCBmYWlsdXJlIG9uY2UsIHdlIGRpbSBpdCBzbyBhcyBub3QgdG8gZGlzdHJhY3QgdGhl
IGdhcmRlbmVyLiAqLwogLnRlc3RbZGF0YS1mYWlsdXJlLWNvdW50PSIxIl1bZGF0YS1uZXctdGVz
dD0iZmFsc2UiXSB7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAxcyBvcGFjaXR5OwpAQCAtNjQs
NiArOTIsOCBAQCB0ZDpsYXN0LW9mLXR5cGUgewogfQogCiAucmVncmVzc2lvbiBsaSB7CisgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIG1hcmdpbjogMHB4IDVweDsKIH0KIAogLnJlZ3Jl
c3Npb24gYSB7CkBAIC0xOTgsNiArMjI4LDcgQEAgdGQ6bGFzdC1vZi10eXBlIHsKIC5yZXN1bHRz
LWRldGFpbCAuZmFpbHVyZS1kZXRhaWxzIC5taXNzaW5nLWRhdGEgewogICAgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgY29sb3I6ICM1NTU7CiB9CiAK
IC5yZXN1bHRzLWRldGFpbCAuZmFpbHVyZS1kZXRhaWxzIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9tYWluLmpzCmluZGV4IDcyZjdhZWM4MmU1YjkyYjUxNzAyNjgwNDUzM2JhOTgwZGJjOGY4MGUu
LmI3ODM4NGEwNWYyYzhjMThlYjZkNDI2YjU1MTRlNWFkNWEyYWIyMDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvbWFpbi5qcwpAQCAtMSw1ICsxLDkgQEAKIChmdW5jdGlvbigpIHsKIAordmFy
IGdfdXBkYXRlVGltZXJJZCA9IDA7CisKK3ZhciBrQnVpbGRGYWlsZWRBbGVydFR5cGUgPSAnYnVp
bGQtZmFpbGVkJzsKKwogZnVuY3Rpb24gZGlzbWlzc0J1dHRlcmJhcigpCiB7CiAgICAgJCgnLmJ1
dHRlcmJhcicpLmZhZGVPdXQoJ2Zhc3QnKTsKQEAgLTExLDYgKzE1LDMyIEBAIGZ1bmN0aW9uIGRp
c3BsYXlPbkJ1dHRlcmJhcihtZXNzYWdlKQogICAgICQoJy5idXR0ZXJiYXInKS5mYWRlSW4oKTsK
IH0KIAorZnVuY3Rpb24gaGlkZUFsZXJ0KCkKK3sKKyAgICAkKCcuYWxlcnQnKS5hbmltYXRlKHsK
KyAgICAgICAgb3BhY2l0eTogJ3RvZ2dsZScsCisgICAgICAgIGhlaWdodDogJ3RvZ2dsZScsCisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIGhpZGVBbGVydElmT2ZUeXBlKHR5cGUpCit7CisgICAgaWYg
KCEkKCcuYWxlcnQgLnN0YXR1cycpLmlzKCc6dmlzaWJsZScpKQorICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCQoJy5hbGVydCAuc3RhdHVzJykuYXR0cihjb25maWcua0FsZXJ0VHlwZUF0dHIpICE9
IHR5cGUpCisgICAgICAgIHJldHVybjsKKyAgICBoaWRlQWxlcnQoKTsKK30KKworZnVuY3Rpb24g
ZGlzcGxheUFsZXJ0KG1lc3NhZ2UsIHR5cGUpCit7CisgICAgJCgnLmFsZXJ0IC5zdGF0dXMnKS5l
bXB0eSgpLmF0dHIoY29uZmlnLmtBbGVydFR5cGVBdHRyLCB0eXBlKS5hcHBlbmQobWVzc2FnZSk7
CisgICAgJCgnLmFsZXJ0JykuYW5pbWF0ZSh7CisgICAgICAgIG9wYWNpdHk6ICd0b2dnbGUnLAor
ICAgICAgICBoZWlnaHQ6ICd0b2dnbGUnLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBzZXRJY29u
U3RhdGUoaGFzRmFpbHVyZXMpCiB7CiAgICAgdmFyIGZhdmljb25VUkwgPSAnZmF2aWNvbi0nICsg
KGhhc0ZhaWx1cmVzID8gJ3JlZCcgOiAnZ3JlZW4nKSArICcucG5nJzsKQEAgLTE5LDcgKzQ5LDcg
QEAgZnVuY3Rpb24gc2V0SWNvblN0YXRlKGhhc0ZhaWx1cmVzKQogCiBmdW5jdGlvbiBzaG93UmVz
dWx0cyhvbnN1Y2Nlc3MpCiB7Ci0gICAgcmVzdWx0cy5mZXRjaFJlc3VsdHNCeUJ1aWxkZXIoY29u
ZmlnLmJ1aWxkZXJzLCBmdW5jdGlvbihyZXN1bHRzQnlCdWlsZGVyKSB7CisgICAgcmVzdWx0cy5m
ZXRjaFJlc3VsdHNCeUJ1aWxkZXIoY29uZmlnLmtCdWlsZGVycywgZnVuY3Rpb24ocmVzdWx0c0J5
QnVpbGRlcikgewogICAgICAgICB2YXIgdW5leHBlY3RlZEZhaWx1cmVzID0gcmVzdWx0cy51bmV4
cGVjdGVkRmFpbHVyZXNCeVRlc3QocmVzdWx0c0J5QnVpbGRlcik7CiAgICAgICAgIHZhciBoYXNG
YWlsdXJlcyA9ICEkLmlzRW1wdHlPYmplY3QodW5leHBlY3RlZEZhaWx1cmVzKQogICAgICAgICBp
ZiAoIWhhc0ZhaWx1cmVzKSB7CkBAIC0xMjIsNiArMTUyLDIyIEBAIGZ1bmN0aW9uIHJlYmFzZWxp
bmVSZXN1bHRzKCkKICAgICBjaGVja291dC5yZWJhc2VsaW5lKGJ1aWxkZXJOYW1lLCB0ZXN0TmFt
ZSwgZmFpbHVyZVR5cGVMaXN0LCBkaXNtaXNzQnV0dGVyYmFyKTsKIH0KIAorZnVuY3Rpb24gY2hl
Y2tCdWlsZGVyU3RhdHVzZXMoKQoreworICAgIHJlc3VsdHMuZmV0Y2hCdWlsZGVyc1dpdGhDb21w
aWxlRXJyb3JzKGZ1bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCkgeworICAgICAgICBpZiAoIWJ1aWxk
ZXJOYW1lTGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgIGhpZGVBbGVydElmT2ZUeXBlKGtCdWls
ZEZhaWxlZEFsZXJ0VHlwZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgZGlzcGxheUFsZXJ0KHVpLmFsZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMoYnVpbGRlck5h
bWVMaXN0KSwga0J1aWxkRmFpbGVkQWxlcnRUeXBlKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
dXBkYXRlKCkKK3sKKyAgICBjaGVja0J1aWxkZXJTdGF0dXNlcygpOworfQorCiAkKCcucmVncmVz
c2lvbiAud2hlcmUgYScpLmxpdmUoJ2NsaWNrJywgc2hvd1Jlc3VsdHNEZXRhaWwpOwogJCgnLnJl
c3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNtaXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0
c0RldGFpbCk7CiAkKCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS5saXZl
KCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRzKTsKQEAgLTEzMCw2ICsxNzYsOCBAQCAkKGRvY3Vt
ZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICBzaG93UmVzdWx0cyhmdW5jdGlvbigpIHsKICAg
ICAgICAgJCgnLmJ1dHRlcmJhcicpLmZhZGVPdXQoKTsKICAgICB9KTsKKyAgICBnX3VwZGF0ZVRp
bWVySWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwodXBkYXRlLCBjb25maWcua1VwZGF0ZUZyZXF1ZW5j
eSk7CisgICAgdXBkYXRlKCk7CiB9KTsKIAogfSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9yZXN1bHRzLmpzCmluZGV4IDY2ZDJiNDUwMmJiZDUyN2MwOTE2MmNmZTY0N2YzMTczNzU1ZjE3
Y2EuLjkyNzQyYTk3ZGJhYTcxYTE0ZDNlYmVhYzY1MjA0ZmJmYWM1NzI2NjMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVy
L3Jlc3VsdHMuanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0
YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcwpAQCAtNDgyLDE0ICs0ODIsMzggQEAgcmVzdWx0
cy5mZXRjaFJlc3VsdHNVUkxzID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWls
dXJlVHlwZUxpc3QsIGNhbGwKICAgICB9KTsKIH07CiAKLXJlc3VsdHMuZmV0Y2hSZXN1bHRzRm9y
QnVpbGRlciA9IGZ1bmN0aW9uKGJ1aWxkZXJOYW1lLCBvbnN1Y2Nlc3MpCitmdW5jdGlvbiBpc0J1
aWxkZXJUaGF0T25seUNvbXBpbGVzKGJ1aWxkZXJOYW1lKQoreworICAgIHJldHVybiBjb25maWcu
a0J1aWxkZXJzVGhhdE9ubHlDb21waWxlLmluZGV4T2YoYnVpbGRlck5hbWUpICE9IC0xOworfQor
CisvLyBGSVhNRTogVGhpcyBtZXRob2QgaXNuJ3QgdGVzdGVkIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2
ZSBhIGdvb2Qgc3RyYXRlZ3kgZm9yCisvLyBtb2NraW5nIG91dCB0aGUgbmV0d29yay4gTWF5YmUg
YWxsIG5ldHdvcmsgcmVxdWVzdHMgc2hvdWxkIGdvIHRocm91Z2ggYQorLy8gIm5ldCIgbW9kdWxl
PworcmVzdWx0cy5mZXRjaEJ1aWxkZXJzV2l0aENvbXBpbGVFcnJvcnMgPSBmdW5jdGlvbihjYWxs
YmFjaykgeworICAgICQuZ2V0KCcvYnVpbGRib3QnLCBmdW5jdGlvbihidWlsZGVyU3RhdHVzZXMp
IHsKKyAgICAgICAgdmFyIGJyb2tlbkJ1aWxkZXJzID0gW107CisKKyAgICAgICAgJC5lYWNoKGJ1
aWxkZXJTdGF0dXNlcywgZnVuY3Rpb24oaW5kZXgsIGJ1aWxkZXJTdGF0dXMpIHsKKyAgICAgICAg
ICAgIGlmIChidWlsZGVyU3RhdHVzWydpc19ncmVlbiddKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHZhciBidWlsZGVyTmFtZSA9IGJ1aWxkZXJTdGF0dXNbJ25hbWUnXTsK
KyAgICAgICAgICAgIGlmIChpc0J1aWxkZXJUaGF0T25seUNvbXBpbGVzKGJ1aWxkZXJOYW1lKSkK
KyAgICAgICAgICAgICAgICBicm9rZW5CdWlsZGVycy5wdXNoKGJ1aWxkZXJOYW1lKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgY2FsbGJhY2soYnJva2VuQnVpbGRlcnMpOworICAgIH0pOworfTsK
KworcmVzdWx0cy5mZXRjaFJlc3VsdHNGb3JCdWlsZGVyID0gZnVuY3Rpb24oYnVpbGRlck5hbWUs
IGNhbGxiYWNrKQogewogICAgIGJhc2UuanNvbnAocmVzdWx0c1N1bW1hcnlVUkwoYnVpbGRlck5h
bWUsIGtSZXN1bHRzTmFtZSksIGZ1bmN0aW9uKHJlc3VsdHNUcmVlKSB7Ci0gICAgICAgIG9uc3Vj
Y2VzcyhuZXcgcmVzdWx0cy5CdWlsZGVyUmVzdWx0cyhyZXN1bHRzVHJlZSkpOworICAgICAgICBj
YWxsYmFjayhuZXcgcmVzdWx0cy5CdWlsZGVyUmVzdWx0cyhyZXN1bHRzVHJlZSkpOwogICAgIH0p
OwogfTsKIAotcmVzdWx0cy5mZXRjaFJlc3VsdHNCeUJ1aWxkZXIgPSBmdW5jdGlvbihidWlsZGVy
TmFtZUxpc3QsIG9uc3VjY2VzcykKK3Jlc3VsdHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVyID0gZnVu
Y3Rpb24oYnVpbGRlck5hbWVMaXN0LCBjYWxsYmFjaykKIHsKICAgICB2YXIgcmVzdWx0c0J5QnVp
bGRlciA9IHt9CiAgICAgdmFyIHJlcXVlc3RzSW5GbGlnaHQgPSBidWlsZGVyTmFtZUxpc3QubGVu
Z3RoOwpAQCAtNDk4LDcgKzUyMiw3IEBAIHJlc3VsdHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVyID0g
ZnVuY3Rpb24oYnVpbGRlck5hbWVMaXN0LCBvbnN1Y2Nlc3MpCiAgICAgICAgICAgICByZXN1bHRz
QnlCdWlsZGVyW2J1aWxkZXJOYW1lXSA9IHJlc3VsdHNUcmVlOwogICAgICAgICAgICAgLS1yZXF1
ZXN0c0luRmxpZ2h0OwogICAgICAgICAgICAgaWYgKCFyZXF1ZXN0c0luRmxpZ2h0KQotICAgICAg
ICAgICAgICAgIG9uc3VjY2VzcyhyZXN1bHRzQnlCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayhyZXN1bHRzQnlCdWlsZGVyKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5p
bmdzZXJ2ZXIvdWkuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci91aS5qcwppbmRleCBlYzY5ZDE5ZTcyYjVmNDNhNmFkYmMwYzdjNTI3
ODRlODRhMzZkNzI4Li4yMTM2OWIzZGRjNjMyNTAwNzRjZjljMjVjNGQ2NjkyMzNjNzM1MzA3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRl
bmluZ3NlcnZlci91aS5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aS5qcwpAQCAtMiw2ICsyLDEzIEBAIHZhciB1aSA9IHVp
IHx8IHt9OwogCiAoZnVuY3Rpb24gKCkgewogCitmdW5jdGlvbiBkaXNwbGF5VVJMRm9yQnVpbGRl
cihidWlsZGVyTmFtZSkKK3sKKyAgICByZXR1cm4gJ2h0dHA6Ly9idWlsZC5jaHJvbWl1bS5vcmcv
cC9jaHJvbWl1bS53ZWJraXQvd2F0ZXJmYWxsPycgKyAkLnBhcmFtKHsKKyAgICAgICAgJ2J1aWxk
ZXInOiBidWlsZGVyTmFtZQorICAgIH0pOworfQorCiBmdW5jdGlvbiBkaXNwbGF5TmFtZUZvckJ1
aWxkZXIoYnVpbGRlck5hbWUpCiB7CiAgICAgcmV0dXJuIGJ1aWxkZXJOYW1lLnJlcGxhY2UoL1dl
YmtpdCAvLCAnJyk7CkBAIC00Miw3ICs0OSw5IEBAIHVpLnN1bW1hcml6ZVRlc3QgPSBmdW5jdGlv
bih0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIpCiAKICAgICB2YXIgd2hlcmUgPSAkKCcu
d2hlcmUnLCBibG9jayk7CiAgICAgJC5lYWNoKHJlc3VsdE5vZGVzQnlCdWlsZGVyLCBmdW5jdGlv
bihidWlsZGVyTmFtZSwgcmVzdWx0Tm9kZSkgewotICAgICAgICB3aGVyZS5hcHBlbmQoJCgnYScs
ICc8bGk+PGEgaHJlZj0iIyI+PC9hPjwvbGk+JykuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0
ciwgYnVpbGRlck5hbWUpLnRleHQoZGlzcGxheU5hbWVGb3JCdWlsZGVyKGJ1aWxkZXJOYW1lKSkp
OworICAgICAgICB2YXIgbGlzdEVsZW1lbnQgPSAkKCc8bGk+PGEgaHJlZj0iIyI+PC9hPjwvbGk+
Jyk7CisgICAgICAgIHdoZXJlLmFwcGVuZChsaXN0RWxlbWVudCk7CisgICAgICAgICQoJ2EnLCBs
aXN0RWxlbWVudCkuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0ciwgYnVpbGRlck5hbWUpLnRl
eHQoZGlzcGxheU5hbWVGb3JCdWlsZGVyKGJ1aWxkZXJOYW1lKSk7CiAgICAgfSk7CiAKICAgICBy
ZXR1cm4gYmxvY2s7CkBAIC02NSw2ICs3NCwyMCBAQCB1aS5zdW1tYXJpemVSZWdyZXNzaW9uUmFu
Z2UgPSBmdW5jdGlvbihvbGRlc3RGYWlsaW5nUmV2aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpcwog
ICAgIHJldHVybiBibG9jazsKIH07CiAKK3VpLmFsZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMg
PSBmdW5jdGlvbihidWlsZGVyTmFtZUxpc3QpCit7CisgICAgdmFyIGJsb2NrID0gJCgnPGRpdiBj
bGFzcz0iY29tcGlsZS1lcnJvcnMiPkJ1aWxkIEZhaWxlZDo8dWw+PC91bD48L2Rpdj4nKTsKKwor
ICAgIHZhciBsaXN0ID0gJCgndWwnLCBibG9jayk7CisgICAgJC5lYWNoKGJ1aWxkZXJOYW1lTGlz
dCwgZnVuY3Rpb24oaW5kZXgsIGJ1aWxkZXJOYW1lKSB7CisgICAgICAgIHZhciBsaXN0RWxlbWVu
dCA9ICQoJzxsaT48YSB0YXJnZXQ9Il9ibGFuayI+PC9hPjwvbGk+Jyk7CisgICAgICAgIGxpc3Qu
YXBwZW5kKGxpc3RFbGVtZW50KTsKKyAgICAgICAgJCgnYScsIGxpc3RFbGVtZW50KS5hdHRyKCdo
cmVmJywgZGlzcGxheVVSTEZvckJ1aWxkZXIoYnVpbGRlck5hbWUpKS50ZXh0KGRpc3BsYXlOYW1l
Rm9yQnVpbGRlcihidWlsZGVyTmFtZSkpOworICAgIH0pOworCisgICAgcmV0dXJuIGJsb2NrOwor
fTsKKwogdWkuZmFpbHVyZUNvdW50ID0gZnVuY3Rpb24oZmFpbHVyZUNvdW50KQogewogICAgIGlm
IChmYWlsdXJlQ291bnQgPCAxKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWlfdW5pdHRlc3RzLmpzIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWlfdW5p
dHRlc3RzLmpzCmluZGV4IDNlZTlkNTc3MDU4NGJiYzQzMTc1M2M2YTUyYTMyZDQxNmRiYzA1OTQu
LmMyNjRiNWJlMDA3MWQ2ODkwMTgzYTU1OTNhYzJiYTdhMWI5NGVkYzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Vp
X3VuaXR0ZXN0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9k
YXRhL2dhcmRlbmluZ3NlcnZlci91aV91bml0dGVzdHMuanMKQEAgLTUxLDYgKzUxLDE2IEBAIHRl
c3QoImZhaWx1cmVDb3VudCIsIDQsIGZ1bmN0aW9uKCkgewogICAgIGVxdWFsKHVpLmZhaWx1cmVD
b3VudCgzKSwgJyhTZWVuIDMgdGltZXMuKScpOwogfSk7CiAKK3Rlc3QoImFsZXJ0TWVzc2FnZUZv
ckNvbXBpbGVFcnJvcnMiLCAxLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWVzc2FnZSA9IHVpLmFs
ZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMoWydNb2NrIEJ1aWxkZXInLCAnQW5vdGhlciBCdWls
ZGVyJ10pOworICAgIG1lc3NhZ2Uud3JhcCgnPHdyYXBwZXI+PC93cmFwcGVyPicpOworICAgIGVx
dWFsKG1lc3NhZ2UucGFyZW50KCkuaHRtbCgpLAorICAgICAgICAnPGRpdiBjbGFzcz0iY29tcGls
ZS1lcnJvcnMiPkJ1aWxkIEZhaWxlZDo8dWw+JyArCisgICAgICAgICAgICAnPGxpPjxhIHRhcmdl
dD0iX2JsYW5rIiBocmVmPSJodHRwOi8vYnVpbGQuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0ud2Vi
a2l0L3dhdGVyZmFsbD9idWlsZGVyPU1vY2srQnVpbGRlciI+TW9jayBCdWlsZGVyPC9hPjwvbGk+
JyArCisgICAgICAgICAgICAnPGxpPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vYnVp
bGQuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0ud2Via2l0L3dhdGVyZmFsbD9idWlsZGVyPUFub3Ro
ZXIrQnVpbGRlciI+QW5vdGhlciBCdWlsZGVyPC9hPjwvbGk+JyArCisgICAgICAgICc8L3VsPjwv
ZGl2PicpOworfSk7CisKIHRlc3QoImZhaWx1cmVEZXRhaWxzIiwgMSwgZnVuY3Rpb24oKSB7CiAg
ICAgdmFyIHRlc3RSZXN1bHRzID0gdWkuZmFpbHVyZURldGFpbHMoWwogICAgICAgICAnaHR0cDov
L2V4YW1wbGUuY29tL2xheW91dC10ZXN0LXJlc3VsdHMvZm9vLWJhci1kaWZmLnR4dCcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101064</attachid>
            <date>2011-07-15 16:11:11 -0700</date>
            <delta_ts>2011-07-15 18:12:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-64190-20110715161110.patch</filename>
            <type>text/plain</type>
            <size>14131</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNDVlNzVkOTgyNjBhNTU0MTFkMGQ2OGUwNTk1YmMzZjg1
YjY0MWZlLi40NzlhMDYzZTlkMTk2MzRhZDBjYmMxNDBiNmUwZjViNjBjYTkwZjQxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKIDIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgYmUgYWJsZSB0byBkZXRlcm1pbmUgd2hlbiBjb21waWxl
IGJyZWFrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjQxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgYSByZWQtaXNoIGJveCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlIHdoZW5l
dmVyIHRoZXJlIGlzCisgICAgICAgIGEgY29tcGlsZSBlcnJvciBvbiB0aGUgYm90cy4gIFRoZSBi
b3ggYXV0b21hdGljYWxseSBvcGVucyBhbmQgY2xvc2VzIGFzCisgICAgICAgIGFwcHJvcHJpYXRl
IGFuZCBsaW5rcyB0byB0aGUgd2F0ZXJmYWxsIGRpc3BsYXkuICBJbiB0aGUgZnV0dXJlLCB3ZQor
ICAgICAgICBtaWdodCB3YW50IHRvIGNvbXB1dGUgYSByZWdyZXNzaW9uIHJhbmdlLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIv
Y29uZmlnLmpzOgorICAgICAgICAgICAgLSBBZGQgdGhlIGJ1aWxkLW9ubHkgYm90cyB0byB0aGUg
Y29uZmlnLiAgV2UgdXNlIHRoZXNlIHRvIGNoZWNrCisgICAgICAgICAgICAgIHdoZXRoZXIgdGhl
IGJ1aWxkIGZhaWxlZCwgd2hpY2ggaXMgZmFzdGVyIHRoYW4gd2FpdGluZyBmb3IgdGhlCisgICAg
ICAgICAgICAgIHRlc3RlciBib3RzIHRvIGN5Y2xlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWw6CisgICAgICAg
ICAgICAtIEFkZCBET00gZm9yIHRoZSBhbGVydCBiYXIuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3M6CisgICAgICAg
ICAgICAtIENTUyB0byBzdXBwb3J0IHRoZSBhbGVydCBiYXIuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qczoKKyAgICAg
ICAgICAgIC0gV2lyaW5nIHVwIGV2ZW50cyB0byBwb2xsIHRoZSBidWlsZGJvdCB0byBzZWUgd2hl
dGhlciBjb21waWxlIGhhcworICAgICAgICAgICAgICBmYWlsZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qczoK
KyAgICAgICAgICAgIC0gSW5mcmFzdHJ1Y3R1cmUgZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHRo
ZSBidWlsZGJvdCBzdGF0dXMgSlNPTgorICAgICAgICAgICAgICBibG9iLiAgVGhpcyBjb2RlIGNv
dWxkIGJlIGJldHRlciBmYWN0b3JlZCBmb3IgdGVzdGFiaWxpdHkuICA6KAorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgor
ICAgICAgICAgICAgLSBVSSBmb3IgZGlzcGxheWluZyBjb21waWxlIGVycm9ycy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aV91
bml0dGVzdHMuanM6CisKKzIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKwogICAgICAgICBnYXJkZW5pbmcgc2VydmVyIHNob3VsZCBwcm94eSBidWlsZGJvdCBzdGF0
dXMgZm9yIGdhcmRlbi1vLW1hdGljCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDU4OAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcuanMgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jb25maWcuanMK
aW5kZXggNzQzYTI3ZDVjOWQ0ZjNkMWEwYjdjMDQ2ODI2OTNjMTBiZDI5NDIwZC4uYTcyOWQ3NGY0
NDZlYzZjNTc3ZmVhZTk3NTFkZGIyNmI2NGRiNDAwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvY29uZmlnLmpzCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2Vy
dmVyL2NvbmZpZy5qcwpAQCAtMiwyNiArMiw0MCBAQCB2YXIgY29uZmlnID0gY29uZmlnIHx8IHt9
OwogCiAoZnVuY3Rpb24oKSB7CiAKLWNvbmZpZy5idWlsZGVycyA9IFsKLSAgJ1dlYmtpdCBXaW4n
LAotICAnV2Via2l0IFZpc3RhJywKLSAgLy8gJ1dlYmtpdCBXaW43JywKLSAgJ1dlYmtpdCBXaW4g
KGRiZykoMSknLAotICAnV2Via2l0IFdpbiAoZGJnKSgyKScsCi0gICdXZWJraXQgTGludXgnLAot
ICAnV2Via2l0IExpbnV4IDMyJywKLSAgJ1dlYmtpdCBMaW51eCAoZGJnKSgxKScsCi0gICdXZWJr
aXQgTGludXggKGRiZykoMiknLAotICAnV2Via2l0IE1hYzEwLjUnLAotICAnV2Via2l0IE1hYzEw
LjUgKGRiZykoMSknLAotICAnV2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAotICAnV2Via2l0IE1h
YzEwLjYnLAotICAnV2Via2l0IE1hYzEwLjYgKGRiZyknLAorY29uZmlnLmtCdWlsZGVycyA9IFsK
KyAgICAnV2Via2l0IFdpbicsCisgICAgJ1dlYmtpdCBWaXN0YScsCisgICAgLy8gJ1dlYmtpdCBX
aW43JywKKyAgICAnV2Via2l0IFdpbiAoZGJnKSgxKScsCisgICAgJ1dlYmtpdCBXaW4gKGRiZyko
MiknLAorICAgICdXZWJraXQgTGludXgnLAorICAgICdXZWJraXQgTGludXggMzInLAorICAgICdX
ZWJraXQgTGludXggKGRiZykoMSknLAorICAgICdXZWJraXQgTGludXggKGRiZykoMiknLAorICAg
ICdXZWJraXQgTWFjMTAuNScsCisgICAgJ1dlYmtpdCBNYWMxMC41IChkYmcpKDEpJywKKyAgICAn
V2Via2l0IE1hYzEwLjUgKGRiZykoMiknLAorICAgICdXZWJraXQgTWFjMTAuNicsCisgICAgJ1dl
YmtpdCBNYWMxMC42IChkYmcpJywKK107CisKK2NvbmZpZy5rQnVpbGRlcnNUaGF0T25seUNvbXBp
bGUgPSBbCisgICAgJ1dlYmtpdCBXaW4gQnVpbGRlcicsCisgICAgJ1dlYmtpdCBXaW4gQnVpbGRl
ciAoZGJnKScsCisgICAgLy8gRklYTUU6IFdoZXJlIGlzIHRoZSBMaW51eCBCdWlsZGVyPworICAg
ICdXZWJraXQgTWFjIEJ1aWxkZXInLAorICAgICdXZWJraXQgTWFjIEJ1aWxkZXIgKGRiZyknLAor
ICAgICdXaW4gQnVpbGRlcicsCisgICAgJ01hYyBDbGFuZyBCdWlsZGVyIChkYmcpJywKIF07CiAK
IGNvbmZpZy5rVGVzdE5hbWVBdHRyID0gJ2RhdGEtdGVzdC1uYW1lJzsKIGNvbmZpZy5rQnVpbGRl
ck5hbWVBdHRyID0gJ2RhdGEtYnVpbGRlci1uYW1lJzsKIGNvbmZpZy5rRmFpbHVyZUNvdW50QXR0
ciA9ICdkYXRhLWZhaWx1cmUtY291bnQnOwogY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyID0gJ2Rh
dGEtZmFpbHVyZS10eXBlcyc7Citjb25maWcua0FsZXJ0VHlwZUF0dHIgPSAnZGF0YS1hbGVydC10
eXBlJzsKKwordmFyIGtUZW5NaW51dGVzSW5NaWxsaXNlY29uZHMgPSAxMCAqIDYwICogMTAwMDsK
K2NvbmZpZy5rVXBkYXRlRnJlcXVlbmN5ID0ga1Rlbk1pbnV0ZXNJbk1pbGxpc2Vjb25kczsKIAog
fSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sCmluZGV4IDcyYTFjYjll
N2NhZGZkNzcwNjAyYzhmMjBhZWIwMmEwMTIwOGM4MGIuLjczYjdlOTdjODFlMTZjZmM0Nzk4ZmQ0
MzVjNzZjZmQ3N2MyYWJhM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXguaHRt
bApAQCAtMTEsNiArMTEsNyBAQAogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGNsYXNzPSJidXR0ZXJi
YXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+Cis8ZGl2IGNs
YXNzPSJhbGVydCI+PHNwYW4gY2xhc3M9InN0YXR1cyI+PC9zcGFuPjwvZGl2PgogPGRpdiBjbGFz
cz0icmVzdWx0cyI+PC9kaXY+CiA8ZGl2IGNsYXNzPSJyZXN1bHRzLWRldGFpbCI+CiAgICAgPGRp
diBjbGFzcz0idG9vbGJhciI+CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCmluZGV4
IDNmMWU5OGMwZDM1MWI5YTQ1NGIyOGJjZTU2ZTE4ZDM3M2I0NDZjMWEuLmNhOTE1OWM5YjU3OWQz
YzJlY2U5Y2ZmNjc5OTg5NWFlYzg1MWE0NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uY3NzCkBAIC0zOCw2ICszOCwzNCBAQCB0ZDpsYXN0LW9mLXR5cGUgewogICAgIG1hcmdpbi1s
ZWZ0OiAyMHB4OwogfQogCisuYWxlcnQgeworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogQ29ybnNpbGs7CisgICAgYm9yZGVyOiA1cHggc29saWQgVG9tYXRvOworICAg
IHBhZGRpbmc6IDEwcHg7CisgICAgbWFyZ2luOiA1cHggYXV0bzsKKyAgICBmb250LXNpemU6IDE1
cHg7CisgICAgd2lkdGg6IDc1JTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKKy5hbGVy
dCAuc3RhdHVzIGEgeworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cit9CisKKy5hbGVydCAuc3Rh
dHVzIHVsIHsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBsaXN0LXN0eWxl
OiBub25lOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nOiAwIDAgMCAx
MHB4OworfQorCisuYWxlcnQgLnN0YXR1cyBsaSB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgIG1hcmdpbjogMHB4IDVweDsKK30KKwogLyogSWYgd2UndmUgb25seSBzZWVuIGEgZ2l2
ZW4gdGVzdCBmYWlsdXJlIG9uY2UsIHdlIGRpbSBpdCBzbyBhcyBub3QgdG8gZGlzdHJhY3QgdGhl
IGdhcmRlbmVyLiAqLwogLnRlc3RbZGF0YS1mYWlsdXJlLWNvdW50PSIxIl1bZGF0YS1uZXctdGVz
dD0iZmFsc2UiXSB7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAxcyBvcGFjaXR5OwpAQCAtNjQs
NiArOTIsOCBAQCB0ZDpsYXN0LW9mLXR5cGUgewogfQogCiAucmVncmVzc2lvbiBsaSB7CisgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIG1hcmdpbjogMHB4IDVweDsKIH0KIAogLnJlZ3Jl
c3Npb24gYSB7CkBAIC0xOTgsNiArMjI4LDcgQEAgdGQ6bGFzdC1vZi10eXBlIHsKIC5yZXN1bHRz
LWRldGFpbCAuZmFpbHVyZS1kZXRhaWxzIC5taXNzaW5nLWRhdGEgewogICAgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgY29sb3I6ICM1NTU7CiB9CiAK
IC5yZXN1bHRzLWRldGFpbCAuZmFpbHVyZS1kZXRhaWxzIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9tYWluLmpzCmluZGV4IDcyZjdhZWM4MmU1YjkyYjUxNzAyNjgwNDUzM2JhOTgwZGJjOGY4MGUu
LmI3ODM4NGEwNWYyYzhjMThlYjZkNDI2YjU1MTRlNWFkNWEyYWIyMDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvbWFpbi5qcwpAQCAtMSw1ICsxLDkgQEAKIChmdW5jdGlvbigpIHsKIAordmFy
IGdfdXBkYXRlVGltZXJJZCA9IDA7CisKK3ZhciBrQnVpbGRGYWlsZWRBbGVydFR5cGUgPSAnYnVp
bGQtZmFpbGVkJzsKKwogZnVuY3Rpb24gZGlzbWlzc0J1dHRlcmJhcigpCiB7CiAgICAgJCgnLmJ1
dHRlcmJhcicpLmZhZGVPdXQoJ2Zhc3QnKTsKQEAgLTExLDYgKzE1LDMyIEBAIGZ1bmN0aW9uIGRp
c3BsYXlPbkJ1dHRlcmJhcihtZXNzYWdlKQogICAgICQoJy5idXR0ZXJiYXInKS5mYWRlSW4oKTsK
IH0KIAorZnVuY3Rpb24gaGlkZUFsZXJ0KCkKK3sKKyAgICAkKCcuYWxlcnQnKS5hbmltYXRlKHsK
KyAgICAgICAgb3BhY2l0eTogJ3RvZ2dsZScsCisgICAgICAgIGhlaWdodDogJ3RvZ2dsZScsCisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIGhpZGVBbGVydElmT2ZUeXBlKHR5cGUpCit7CisgICAgaWYg
KCEkKCcuYWxlcnQgLnN0YXR1cycpLmlzKCc6dmlzaWJsZScpKQorICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCQoJy5hbGVydCAuc3RhdHVzJykuYXR0cihjb25maWcua0FsZXJ0VHlwZUF0dHIpICE9
IHR5cGUpCisgICAgICAgIHJldHVybjsKKyAgICBoaWRlQWxlcnQoKTsKK30KKworZnVuY3Rpb24g
ZGlzcGxheUFsZXJ0KG1lc3NhZ2UsIHR5cGUpCit7CisgICAgJCgnLmFsZXJ0IC5zdGF0dXMnKS5l
bXB0eSgpLmF0dHIoY29uZmlnLmtBbGVydFR5cGVBdHRyLCB0eXBlKS5hcHBlbmQobWVzc2FnZSk7
CisgICAgJCgnLmFsZXJ0JykuYW5pbWF0ZSh7CisgICAgICAgIG9wYWNpdHk6ICd0b2dnbGUnLAor
ICAgICAgICBoZWlnaHQ6ICd0b2dnbGUnLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBzZXRJY29u
U3RhdGUoaGFzRmFpbHVyZXMpCiB7CiAgICAgdmFyIGZhdmljb25VUkwgPSAnZmF2aWNvbi0nICsg
KGhhc0ZhaWx1cmVzID8gJ3JlZCcgOiAnZ3JlZW4nKSArICcucG5nJzsKQEAgLTE5LDcgKzQ5LDcg
QEAgZnVuY3Rpb24gc2V0SWNvblN0YXRlKGhhc0ZhaWx1cmVzKQogCiBmdW5jdGlvbiBzaG93UmVz
dWx0cyhvbnN1Y2Nlc3MpCiB7Ci0gICAgcmVzdWx0cy5mZXRjaFJlc3VsdHNCeUJ1aWxkZXIoY29u
ZmlnLmJ1aWxkZXJzLCBmdW5jdGlvbihyZXN1bHRzQnlCdWlsZGVyKSB7CisgICAgcmVzdWx0cy5m
ZXRjaFJlc3VsdHNCeUJ1aWxkZXIoY29uZmlnLmtCdWlsZGVycywgZnVuY3Rpb24ocmVzdWx0c0J5
QnVpbGRlcikgewogICAgICAgICB2YXIgdW5leHBlY3RlZEZhaWx1cmVzID0gcmVzdWx0cy51bmV4
cGVjdGVkRmFpbHVyZXNCeVRlc3QocmVzdWx0c0J5QnVpbGRlcik7CiAgICAgICAgIHZhciBoYXNG
YWlsdXJlcyA9ICEkLmlzRW1wdHlPYmplY3QodW5leHBlY3RlZEZhaWx1cmVzKQogICAgICAgICBp
ZiAoIWhhc0ZhaWx1cmVzKSB7CkBAIC0xMjIsNiArMTUyLDIyIEBAIGZ1bmN0aW9uIHJlYmFzZWxp
bmVSZXN1bHRzKCkKICAgICBjaGVja291dC5yZWJhc2VsaW5lKGJ1aWxkZXJOYW1lLCB0ZXN0TmFt
ZSwgZmFpbHVyZVR5cGVMaXN0LCBkaXNtaXNzQnV0dGVyYmFyKTsKIH0KIAorZnVuY3Rpb24gY2hl
Y2tCdWlsZGVyU3RhdHVzZXMoKQoreworICAgIHJlc3VsdHMuZmV0Y2hCdWlsZGVyc1dpdGhDb21w
aWxlRXJyb3JzKGZ1bmN0aW9uKGJ1aWxkZXJOYW1lTGlzdCkgeworICAgICAgICBpZiAoIWJ1aWxk
ZXJOYW1lTGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgIGhpZGVBbGVydElmT2ZUeXBlKGtCdWls
ZEZhaWxlZEFsZXJ0VHlwZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgZGlzcGxheUFsZXJ0KHVpLmFsZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMoYnVpbGRlck5h
bWVMaXN0KSwga0J1aWxkRmFpbGVkQWxlcnRUeXBlKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
dXBkYXRlKCkKK3sKKyAgICBjaGVja0J1aWxkZXJTdGF0dXNlcygpOworfQorCiAkKCcucmVncmVz
c2lvbiAud2hlcmUgYScpLmxpdmUoJ2NsaWNrJywgc2hvd1Jlc3VsdHNEZXRhaWwpOwogJCgnLnJl
c3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNtaXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0
c0RldGFpbCk7CiAkKCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS5saXZl
KCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRzKTsKQEAgLTEzMCw2ICsxNzYsOCBAQCAkKGRvY3Vt
ZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICBzaG93UmVzdWx0cyhmdW5jdGlvbigpIHsKICAg
ICAgICAgJCgnLmJ1dHRlcmJhcicpLmZhZGVPdXQoKTsKICAgICB9KTsKKyAgICBnX3VwZGF0ZVRp
bWVySWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwodXBkYXRlLCBjb25maWcua1VwZGF0ZUZyZXF1ZW5j
eSk7CisgICAgdXBkYXRlKCk7CiB9KTsKIAogfSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9yZXN1bHRzLmpzCmluZGV4IDY2ZDJiNDUwMmJiZDUyN2MwOTE2MmNmZTY0N2YzMTczNzU1ZjE3
Y2EuLjkyNzQyYTk3ZGJhYTcxYTE0ZDNlYmVhYzY1MjA0ZmJmYWM1NzI2NjMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVy
L3Jlc3VsdHMuanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0
YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcwpAQCAtNDgyLDE0ICs0ODIsMzggQEAgcmVzdWx0
cy5mZXRjaFJlc3VsdHNVUkxzID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWls
dXJlVHlwZUxpc3QsIGNhbGwKICAgICB9KTsKIH07CiAKLXJlc3VsdHMuZmV0Y2hSZXN1bHRzRm9y
QnVpbGRlciA9IGZ1bmN0aW9uKGJ1aWxkZXJOYW1lLCBvbnN1Y2Nlc3MpCitmdW5jdGlvbiBpc0J1
aWxkZXJUaGF0T25seUNvbXBpbGVzKGJ1aWxkZXJOYW1lKQoreworICAgIHJldHVybiBjb25maWcu
a0J1aWxkZXJzVGhhdE9ubHlDb21waWxlLmluZGV4T2YoYnVpbGRlck5hbWUpICE9IC0xOworfQor
CisvLyBGSVhNRTogVGhpcyBtZXRob2QgaXNuJ3QgdGVzdGVkIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2
ZSBhIGdvb2Qgc3RyYXRlZ3kgZm9yCisvLyBtb2NraW5nIG91dCB0aGUgbmV0d29yay4gTWF5YmUg
YWxsIG5ldHdvcmsgcmVxdWVzdHMgc2hvdWxkIGdvIHRocm91Z2ggYQorLy8gIm5ldCIgbW9kdWxl
PworcmVzdWx0cy5mZXRjaEJ1aWxkZXJzV2l0aENvbXBpbGVFcnJvcnMgPSBmdW5jdGlvbihjYWxs
YmFjaykgeworICAgICQuZ2V0KCcvYnVpbGRib3QnLCBmdW5jdGlvbihidWlsZGVyU3RhdHVzZXMp
IHsKKyAgICAgICAgdmFyIGJyb2tlbkJ1aWxkZXJzID0gW107CisKKyAgICAgICAgJC5lYWNoKGJ1
aWxkZXJTdGF0dXNlcywgZnVuY3Rpb24oaW5kZXgsIGJ1aWxkZXJTdGF0dXMpIHsKKyAgICAgICAg
ICAgIGlmIChidWlsZGVyU3RhdHVzWydpc19ncmVlbiddKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHZhciBidWlsZGVyTmFtZSA9IGJ1aWxkZXJTdGF0dXNbJ25hbWUnXTsK
KyAgICAgICAgICAgIGlmIChpc0J1aWxkZXJUaGF0T25seUNvbXBpbGVzKGJ1aWxkZXJOYW1lKSkK
KyAgICAgICAgICAgICAgICBicm9rZW5CdWlsZGVycy5wdXNoKGJ1aWxkZXJOYW1lKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgY2FsbGJhY2soYnJva2VuQnVpbGRlcnMpOworICAgIH0pOworfTsK
KworcmVzdWx0cy5mZXRjaFJlc3VsdHNGb3JCdWlsZGVyID0gZnVuY3Rpb24oYnVpbGRlck5hbWUs
IGNhbGxiYWNrKQogewogICAgIGJhc2UuanNvbnAocmVzdWx0c1N1bW1hcnlVUkwoYnVpbGRlck5h
bWUsIGtSZXN1bHRzTmFtZSksIGZ1bmN0aW9uKHJlc3VsdHNUcmVlKSB7Ci0gICAgICAgIG9uc3Vj
Y2VzcyhuZXcgcmVzdWx0cy5CdWlsZGVyUmVzdWx0cyhyZXN1bHRzVHJlZSkpOworICAgICAgICBj
YWxsYmFjayhuZXcgcmVzdWx0cy5CdWlsZGVyUmVzdWx0cyhyZXN1bHRzVHJlZSkpOwogICAgIH0p
OwogfTsKIAotcmVzdWx0cy5mZXRjaFJlc3VsdHNCeUJ1aWxkZXIgPSBmdW5jdGlvbihidWlsZGVy
TmFtZUxpc3QsIG9uc3VjY2VzcykKK3Jlc3VsdHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVyID0gZnVu
Y3Rpb24oYnVpbGRlck5hbWVMaXN0LCBjYWxsYmFjaykKIHsKICAgICB2YXIgcmVzdWx0c0J5QnVp
bGRlciA9IHt9CiAgICAgdmFyIHJlcXVlc3RzSW5GbGlnaHQgPSBidWlsZGVyTmFtZUxpc3QubGVu
Z3RoOwpAQCAtNDk4LDcgKzUyMiw3IEBAIHJlc3VsdHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVyID0g
ZnVuY3Rpb24oYnVpbGRlck5hbWVMaXN0LCBvbnN1Y2Nlc3MpCiAgICAgICAgICAgICByZXN1bHRz
QnlCdWlsZGVyW2J1aWxkZXJOYW1lXSA9IHJlc3VsdHNUcmVlOwogICAgICAgICAgICAgLS1yZXF1
ZXN0c0luRmxpZ2h0OwogICAgICAgICAgICAgaWYgKCFyZXF1ZXN0c0luRmxpZ2h0KQotICAgICAg
ICAgICAgICAgIG9uc3VjY2VzcyhyZXN1bHRzQnlCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayhyZXN1bHRzQnlCdWlsZGVyKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5p
bmdzZXJ2ZXIvdWkuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci91aS5qcwppbmRleCBlYzY5ZDE5ZTcyYjVmNDNhNmFkYmMwYzdjNTI3
ODRlODRhMzZkNzI4Li4yMTM2OWIzZGRjNjMyNTAwNzRjZjljMjVjNGQ2NjkyMzNjNzM1MzA3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRl
bmluZ3NlcnZlci91aS5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aS5qcwpAQCAtMiw2ICsyLDEzIEBAIHZhciB1aSA9IHVp
IHx8IHt9OwogCiAoZnVuY3Rpb24gKCkgewogCitmdW5jdGlvbiBkaXNwbGF5VVJMRm9yQnVpbGRl
cihidWlsZGVyTmFtZSkKK3sKKyAgICByZXR1cm4gJ2h0dHA6Ly9idWlsZC5jaHJvbWl1bS5vcmcv
cC9jaHJvbWl1bS53ZWJraXQvd2F0ZXJmYWxsPycgKyAkLnBhcmFtKHsKKyAgICAgICAgJ2J1aWxk
ZXInOiBidWlsZGVyTmFtZQorICAgIH0pOworfQorCiBmdW5jdGlvbiBkaXNwbGF5TmFtZUZvckJ1
aWxkZXIoYnVpbGRlck5hbWUpCiB7CiAgICAgcmV0dXJuIGJ1aWxkZXJOYW1lLnJlcGxhY2UoL1dl
YmtpdCAvLCAnJyk7CkBAIC00Miw3ICs0OSw5IEBAIHVpLnN1bW1hcml6ZVRlc3QgPSBmdW5jdGlv
bih0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIpCiAKICAgICB2YXIgd2hlcmUgPSAkKCcu
d2hlcmUnLCBibG9jayk7CiAgICAgJC5lYWNoKHJlc3VsdE5vZGVzQnlCdWlsZGVyLCBmdW5jdGlv
bihidWlsZGVyTmFtZSwgcmVzdWx0Tm9kZSkgewotICAgICAgICB3aGVyZS5hcHBlbmQoJCgnYScs
ICc8bGk+PGEgaHJlZj0iIyI+PC9hPjwvbGk+JykuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0
ciwgYnVpbGRlck5hbWUpLnRleHQoZGlzcGxheU5hbWVGb3JCdWlsZGVyKGJ1aWxkZXJOYW1lKSkp
OworICAgICAgICB2YXIgbGlzdEVsZW1lbnQgPSAkKCc8bGk+PGEgaHJlZj0iIyI+PC9hPjwvbGk+
Jyk7CisgICAgICAgIHdoZXJlLmFwcGVuZChsaXN0RWxlbWVudCk7CisgICAgICAgICQoJ2EnLCBs
aXN0RWxlbWVudCkuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0ciwgYnVpbGRlck5hbWUpLnRl
eHQoZGlzcGxheU5hbWVGb3JCdWlsZGVyKGJ1aWxkZXJOYW1lKSk7CiAgICAgfSk7CiAKICAgICBy
ZXR1cm4gYmxvY2s7CkBAIC02NSw2ICs3NCwyMCBAQCB1aS5zdW1tYXJpemVSZWdyZXNzaW9uUmFu
Z2UgPSBmdW5jdGlvbihvbGRlc3RGYWlsaW5nUmV2aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpcwog
ICAgIHJldHVybiBibG9jazsKIH07CiAKK3VpLmFsZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMg
PSBmdW5jdGlvbihidWlsZGVyTmFtZUxpc3QpCit7CisgICAgdmFyIGJsb2NrID0gJCgnPGRpdiBj
bGFzcz0iY29tcGlsZS1lcnJvcnMiPkJ1aWxkIEZhaWxlZDo8dWw+PC91bD48L2Rpdj4nKTsKKwor
ICAgIHZhciBsaXN0ID0gJCgndWwnLCBibG9jayk7CisgICAgJC5lYWNoKGJ1aWxkZXJOYW1lTGlz
dCwgZnVuY3Rpb24oaW5kZXgsIGJ1aWxkZXJOYW1lKSB7CisgICAgICAgIHZhciBsaXN0RWxlbWVu
dCA9ICQoJzxsaT48YSB0YXJnZXQ9Il9ibGFuayI+PC9hPjwvbGk+Jyk7CisgICAgICAgIGxpc3Qu
YXBwZW5kKGxpc3RFbGVtZW50KTsKKyAgICAgICAgJCgnYScsIGxpc3RFbGVtZW50KS5hdHRyKCdo
cmVmJywgZGlzcGxheVVSTEZvckJ1aWxkZXIoYnVpbGRlck5hbWUpKS50ZXh0KGRpc3BsYXlOYW1l
Rm9yQnVpbGRlcihidWlsZGVyTmFtZSkpOworICAgIH0pOworCisgICAgcmV0dXJuIGJsb2NrOwor
fTsKKwogdWkuZmFpbHVyZUNvdW50ID0gZnVuY3Rpb24oZmFpbHVyZUNvdW50KQogewogICAgIGlm
IChmYWlsdXJlQ291bnQgPCAxKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWlfdW5pdHRlc3RzLmpzIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWlfdW5p
dHRlc3RzLmpzCmluZGV4IDNlZTlkNTc3MDU4NGJiYzQzMTc1M2M2YTUyYTMyZDQxNmRiYzA1OTQu
LmMyNjRiNWJlMDA3MWQ2ODkwMTgzYTU1OTNhYzJiYTdhMWI5NGVkYzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Vp
X3VuaXR0ZXN0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9k
YXRhL2dhcmRlbmluZ3NlcnZlci91aV91bml0dGVzdHMuanMKQEAgLTUxLDYgKzUxLDE2IEBAIHRl
c3QoImZhaWx1cmVDb3VudCIsIDQsIGZ1bmN0aW9uKCkgewogICAgIGVxdWFsKHVpLmZhaWx1cmVD
b3VudCgzKSwgJyhTZWVuIDMgdGltZXMuKScpOwogfSk7CiAKK3Rlc3QoImFsZXJ0TWVzc2FnZUZv
ckNvbXBpbGVFcnJvcnMiLCAxLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWVzc2FnZSA9IHVpLmFs
ZXJ0TWVzc2FnZUZvckNvbXBpbGVFcnJvcnMoWydNb2NrIEJ1aWxkZXInLCAnQW5vdGhlciBCdWls
ZGVyJ10pOworICAgIG1lc3NhZ2Uud3JhcCgnPHdyYXBwZXI+PC93cmFwcGVyPicpOworICAgIGVx
dWFsKG1lc3NhZ2UucGFyZW50KCkuaHRtbCgpLAorICAgICAgICAnPGRpdiBjbGFzcz0iY29tcGls
ZS1lcnJvcnMiPkJ1aWxkIEZhaWxlZDo8dWw+JyArCisgICAgICAgICAgICAnPGxpPjxhIHRhcmdl
dD0iX2JsYW5rIiBocmVmPSJodHRwOi8vYnVpbGQuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0ud2Vi
a2l0L3dhdGVyZmFsbD9idWlsZGVyPU1vY2srQnVpbGRlciI+TW9jayBCdWlsZGVyPC9hPjwvbGk+
JyArCisgICAgICAgICAgICAnPGxpPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vYnVp
bGQuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0ud2Via2l0L3dhdGVyZmFsbD9idWlsZGVyPUFub3Ro
ZXIrQnVpbGRlciI+QW5vdGhlciBCdWlsZGVyPC9hPjwvbGk+JyArCisgICAgICAgICc8L3VsPjwv
ZGl2PicpOworfSk7CisKIHRlc3QoImZhaWx1cmVEZXRhaWxzIiwgMSwgZnVuY3Rpb24oKSB7CiAg
ICAgdmFyIHRlc3RSZXN1bHRzID0gdWkuZmFpbHVyZURldGFpbHMoWwogICAgICAgICAnaHR0cDov
L2V4YW1wbGUuY29tL2xheW91dC10ZXN0LXJlc3VsdHMvZm9vLWJhci1kaWZmLnR4dCcsCg==
</data>
<flag name="commit-queue"
          id="95877"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>