<?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>84467</bug_id>
          
          <creation_ts>2012-04-20 10:57:52 -0700</creation_ts>
          <short_desc>IndexedDB: cursor does not correctly iterate over keys added and removed during iteration</short_desc>
          <delta_ts>2012-04-26 11:12:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dstockwell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>hclam</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606708</commentid>
    <comment_count>0</comment_count>
    <who name="">dstockwell</who>
    <bug_when>2012-04-20 10:57:52 -0700</bug_when>
    <thetext>Cursor iteration can fail to yield keys added in an order opposite to the cursor&apos;s iteration order. If the cursor iterating forwards at &quot;3&quot;, and &quot;6&quot; then &quot;5&quot; are added, &quot;5&quot; will never be hit.

Would fail to suppress many deleted keys, but this is hidden by logic that issues a get() against the transaction on every continue() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606755</commentid>
    <comment_count>1</comment_count>
      <attachid>138131</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-20 11:43:39 -0700</bug_when>
    <thetext>Created attachment 138131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608047</commentid>
    <comment_count>2</comment_count>
      <attachid>138131</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-04-23 15:00:01 -0700</bug_when>
    <thetext>Comment on attachment 138131
Patch

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

&gt; Source/WebCore/platform/leveldb/LevelDBTransaction.cpp:417
&gt; +            &amp;&amp; (!m_dbIterator-&gt;isValid()

I find the logic of this very difficult to read - can you break at least the direction checks into a separate helper function? these:
    || (m_direction == kForward &amp;&amp; m_comparator-&gt;compare(m_treeIterator-&gt;key(), m_dbIterator-&gt;key()) &lt; 0)
    || (m_direction == kReverse &amp;&amp; m_comparator-&gt;compare(m_treeIterator-&gt;key(), m_dbIterator-&gt;key()) &gt; 0))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608129</commentid>
    <comment_count>3</comment_count>
      <attachid>138445</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-23 15:53:49 -0700</bug_when>
    <thetext>Created attachment 138445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608150</commentid>
    <comment_count>4</comment_count>
      <attachid>138445</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-04-23 16:08:57 -0700</bug_when>
    <thetext>Comment on attachment 138445
Patch

Thanks, this makes it much clearer...you can make the helpers const too. LGTM with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608162</commentid>
    <comment_count>5</comment_count>
      <attachid>138452</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-23 16:20:18 -0700</bug_when>
    <thetext>Created attachment 138452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610049</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-25 14:30:02 -0700</bug_when>
    <thetext>LGTM. ojan@ - can you review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610161</commentid>
    <comment_count>7</comment_count>
      <attachid>138452</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 16:51:29 -0700</bug_when>
    <thetext>Comment on attachment 138452
Patch

Clearing flags on attachment: 138452

Committed r115260: &lt;http://trac.webkit.org/changeset/115260&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610162</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 16:51:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610267</commentid>
    <comment_count>9</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-04-25 18:17:57 -0700</bug_when>
    <thetext>Committed r115275: &lt;http://trac.webkit.org/changeset/115275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610271</commentid>
    <comment_count>10</comment_count>
    <who name="">dstockwell</who>
    <bug_when>2012-04-25 18:21:34 -0700</bug_when>
    <thetext>Fix was reverted due to failures in debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610318</commentid>
    <comment_count>11</comment_count>
      <attachid>138926</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-25 20:14:04 -0700</bug_when>
    <thetext>Created attachment 138926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610319</commentid>
    <comment_count>12</comment_count>
      <attachid>138926</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-25 20:15:44 -0700</bug_when>
    <thetext>Comment on attachment 138926
Patch

ojan@ - can you review again? I had to remove a stale assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610744</commentid>
    <comment_count>13</comment_count>
      <attachid>138926</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 11:11:57 -0700</bug_when>
    <thetext>Comment on attachment 138926
Patch

Clearing flags on attachment: 138926

Committed r115333: &lt;http://trac.webkit.org/changeset/115333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610745</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 11:12:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138131</attachid>
            <date>2012-04-20 11:43:39 -0700</date>
            <delta_ts>2012-04-23 15:53:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84467-20120420114337.patch</filename>
            <type>text/plain</type>
            <size>9844</size>
            <attacher>dstockwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmMmQ3YTNhM2NiODM0
MDZmYjY5MDk0OTIyZWQxZDdhYjFiOGU1Yi4uNTg0OTRjNjQ0NjU2NzNjNWE0Y2Q5OTZmMWRlNjJm
OTdmMDI5YzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA0LTIwICBEb3Vn
bGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogY3Vyc29yIGRvZXMgbm90IGNvcnJlY3RseSBpdGVyYXRlIG92ZXIga2V5cyBhZGRlZCBh
bmQgcmVtb3ZlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBpdGVyYXRvciBvdmVyIHRoZSB0cmVl
IG9mIGNhY2hlZCBhZGRzL3JlbW92ZXMgYWx3YXlzIHBvaW50cyBhdAorICAgICAgICB0aGUgY3Vy
cmVudCBrZXksIG9yIGlmIHRoZSBkYiBpdGVyYXRvciBpcyBjdXJyZW50LCB0aGUgbmV4dCBrZXk6
CisgICAgICAgIAorICAgICAgICAtIFdoZW4gcmVmcmVzaGluZyB0aGUgdHJlZSBpdGVyYXRvciBh
ZnRlciBhIG11dGF0aW9uLCBhbHdheXMgc2VlayB1bmxlc3MgdGhlCisgICAgICAgIHRyZWUgaXRl
cmF0b3IgaXMgY3VycmVudC4KKyAgICAgICAgCisgICAgICAgIC0gV2hlbiBoYW5kaW5nIGNvbmZs
aWN0cyBhbmQgZGVsZXRlIG1hcmtlcnMsIG9ubHkgYWR2YW5jZSB0aGUgdHJlZSBpdGVyYXRvciBh
cworICAgICAgICBmYXIgYXMgdGhlIGRiIGl0ZXJhdG9yLgorICAgICAgICAKKyAgICAgICAgUmVt
b3ZlIHRoZSBleHBlbnNpdmUgKGFuZCBub3cgcmVkdW5kYW50KSBsb2dpYyB0aGF0IGlzc3VlZCBh
IGdldCgpIHRvIGNoZWNrCisgICAgICAgIHdoZXRoZXIgYW4gaXRlbSBoYWQgYmVlbiBkZWxldGVk
LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVs
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZXZlbERCVHJhbnNhY3Rpb246
OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVlSXRlcmF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6TGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpoYW5kbGVDb25m
bGljdHNBbmREZWxldGVzKToKKwogMjAxMi0wNC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmb2xsb3cgdXAgdG8gcjEx
NDcyOTogbW9yZSBAcmV0dXJuIGFubm90YXRpb25zIGFkZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cAppbmRleCA2YTdlZDI4NGJhZWRkZGVhZmNmYWI3ODFhMTRkZjEwOWY5ODI5ZWZhLi5kYTVlNGU5
MGNlODMxNGQ1ZWUwZjNlZWQ1ZjdmOGJlMWM2Zjc3MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cApAQCAtMTA2NiwxMSArMTA2Niw2IEBAIGJvb2wgQ3Vyc29ySW1wbENvbW1vbjo6Y29udGludWVG
dW5jdGlvbihjb25zdCBJREJLZXkqIGtleSwgSXRlcmF0b3JTdGF0ZSBuZXh0U3RhCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBUaGUgaXRlcmF0b3Ig
d2lsbCBjb250YWluIHZhbHVlcyBkZWxldGVkIGR1cmluZyBpdGVyYXRpb24uCi0gICAgICAgIFZl
Y3RvcjxjaGFyPiB0cmFzaDsKLSAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5nZXQobV9pdGVy
YXRvci0+a2V5KCksIHRyYXNoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGlm
IChpc1Bhc3RCb3VuZHMoKSkgewogICAgICAgICAgICAgaWYgKCFmb3J3YXJkICYmIGxhc3REdXBs
aWNhdGVLZXkuZ2V0KCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHdhbGsgZm9y
d2FyZCBiZWNhdXNlIG5vdyB3ZSdyZSBiZXlvbmQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggOWVhMTY5
Y2I4YzE4MjliYTVmOTNhMWEzZTE1NDBmNWFkNmE0Nzc2Zi4uZTQ1NTAwZDU5YTdiMDFmZTQ3MWIw
YzIwMWMwNzAxNGZiMGE5NzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzcwLDcgKzM3MCw5IEBAIHZv
aWQgTGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpyZWZyZXNoVHJlZUl0
ZXJhdG9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV90cmVlQ2hhbmdlZCk7CiAKLSAgICBpZiAo
bV90cmVlSXRlcmF0b3ItPmlzVmFsaWQoKSkgeworICAgIG1fdHJlZUNoYW5nZWQgPSBmYWxzZTsK
KworICAgIGlmIChtX3RyZWVJdGVyYXRvci0+aXNWYWxpZCgpICYmIG1fdHJlZUl0ZXJhdG9yID09
IG1fY3VycmVudCkgewogICAgICAgICBtX3RyZWVJdGVyYXRvci0+cmVzZXQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTM5Myw4ICszOTUsNiBAQCB2b2lkIExldmVsREJUcmFuc2FjdGlv
bjo6VHJhbnNhY3Rpb25JdGVyYXRvcjo6cmVmcmVzaFRyZWVJdGVyYXRvcigpIGNvbnN0CiAgICAg
ICAgICAgICAgICAgbV90cmVlSXRlcmF0b3ItPnByZXYoKTsKICAgICAgICAgfQogICAgIH0KLQot
ICAgIG1fdHJlZUNoYW5nZWQgPSBmYWxzZTsKIH0KIAogdm9pZCBMZXZlbERCVHJhbnNhY3Rpb246
OlRyYW5zYWN0aW9uSXRlcmF0b3I6OmhhbmRsZUNvbmZsaWN0c0FuZERlbGV0ZXMoKQpAQCAtNDEy
LDggKzQxMiwxMSBAQCB2b2lkIExldmVsREJUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb25JdGVyYXRv
cjo6aGFuZGxlQ29uZmxpY3RzQW5kRGVsZXRlcygpCiAgICAgICAgICAgICAgICAgbV9kYkl0ZXJh
dG9yLT5wcmV2KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV90cmVlSXRlcmF0b3ItPmlz
VmFsaWQoKSAmJiBtX3RyZWVJdGVyYXRvci0+aXNEZWxldGVkKCkpIHsKLSAgICAgICAgICAgIC8v
IElmIHRoZSB0cmVlIGl0ZXJhdG9yIGlzIG9uIGEgZGVsZXRlIG1hcmtlciwgdGFrZSBhbm90aGVy
IHN0ZXAuCisgICAgICAgIC8vIFNraXAgb3ZlciBkZWxldGUgbWFya2VycyBpbiB0aGUgdHJlZSBp
dGVyYXRvciB1bnRpbCBpdCBjYXRjaGVzIHVwIHdpdGggdGhlIGRiIGl0ZXJhdG9yLgorICAgICAg
ICBpZiAobV90cmVlSXRlcmF0b3ItPmlzVmFsaWQoKSAmJiBtX3RyZWVJdGVyYXRvci0+aXNEZWxl
dGVkKCkKKyAgICAgICAgICAgICYmICghbV9kYkl0ZXJhdG9yLT5pc1ZhbGlkKCkKKyAgICAgICAg
ICAgICAgICB8fCAobV9kaXJlY3Rpb24gPT0ga0ZvcndhcmQgJiYgbV9jb21wYXJhdG9yLT5jb21w
YXJlKG1fdHJlZUl0ZXJhdG9yLT5rZXkoKSwgbV9kYkl0ZXJhdG9yLT5rZXkoKSkgPCAwKQorICAg
ICAgICAgICAgICAgIHx8IChtX2RpcmVjdGlvbiA9PSBrUmV2ZXJzZSAmJiBtX2NvbXBhcmF0b3It
PmNvbXBhcmUobV90cmVlSXRlcmF0b3ItPmtleSgpLCBtX2RiSXRlcmF0b3ItPmtleSgpKSA+IDAp
KSkgewogICAgICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IGtGb3J3YXJkKQogICAgICAgICAg
ICAgICAgIG1fdHJlZUl0ZXJhdG9yLT5uZXh0KCk7CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Y2I5NmM5YTVkMWY3ZWIxNTgzY2E0MDczMDkyMjExOWQwZTc3NTQ4YS4uYjYwYjY3M2I4ZDMxMzAz
MjUwOWQ4Yzc3M2JkMTlhOWIzZmI4MWFjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA0
LTIwICBEb3VnbGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEluZGV4ZWREQjogY3Vyc29yIGRvZXMgbm90IGNvcnJlY3RseSBpdGVyYXRlIG92ZXIga2V5
cyBhZGRlZCBhbmQgcmVtb3ZlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0IGZvciBrZXlzIGFkZGVkIGluIHJl
dmVyc2Ugb3JkZXIgZHVyaW5nIGN1cnNvciBpdGVyYXRpb24uCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKHNl
dFZlcnNpb25TdWNjZXNzKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3Vyc29y
U3VjY2Vzcyk6CisKIDIwMTItMDQtMjAgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBMYXlvdXQgVGVzdCBzdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0t
b3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU4MzQ0ZmRhNDUwZDg5ZTc4ZjliZjRhZjZlYTJjNzY2Y2Y3NmIyY2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRk
ZWQtYnVnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitUZXN0IEluZGV4ZWREQiBjdXJz
b3IgaXRlcmF0ZXMgY29ycmVjdGx5IG92ZXIgdmFsdWVzIGFkZGVkIGR1cmluZyBpdGVyYXRpb24u
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLm9wZW4oJ2N1cnNv
ci1kZWxldGUnKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitkYi5zZXRWZXJzaW9uKCduZXcg
dmVyc2lvbicpCit0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgdHJhbnMgIT09IG51
bGwgaXMgdHJ1ZQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK29iamVjdFN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKQorb2JqZWN0U3RvcmUuYWRkKDEsIDEpCitvYmplY3RT
dG9yZS5hZGQoMiwgMikKK29iamVjdFN0b3JlLmFkZCgzLCAzKQordHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ3Rlc3QnXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3RyYW5zLm9iamVjdFN0
b3JlKCd0ZXN0Jykub3BlbkN1cnNvcigpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQua2V5IGlz
IDEKK3RyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDYsIDYpCitldmVudC50YXJnZXQucmVz
dWx0LmNvbnRpbnVlKCkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgaXMgMgordHJhbnMu
b2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQoNSwgNSkKK2V2ZW50LnRhcmdldC5yZXN1bHQuY29udGlu
dWUoKQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmtleSBpcyAzCit0cmFucy5vYmplY3RTdG9y
ZSgndGVzdCcpLmFkZCg0LCA0KQorZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCitQQVNT
IGV2ZW50LnRhcmdldC5yZXN1bHQua2V5IGlzIDQKK2V2ZW50LnRhcmdldC5yZXN1bHQuY29udGlu
dWUoKQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmtleSBpcyA1CitldmVudC50YXJnZXQucmVz
dWx0LmNvbnRpbnVlKCkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgaXMgNgorZXZlbnQu
dGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCitQQVNTIGNvdW50ZXIgaXMgNgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ODRmYmMwNmUyYjk2NmZiYWZjMTZkM2ExZWQxYjE3OGU3ODhjNmZjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2N1cnNvci1hZGRlZC1idWcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2NDc5OTRmYmZhNGM4
ZGY5YWY4ZTg4MjM3MTFmYWZhYzJlZjgyMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcwpAQCAtMCww
ICsxLDc0IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRT
Y3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1
cnNvciBpdGVyYXRlcyBjb3JyZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVyaW5nIGl0ZXJhdGlv
bi4iKTsKKwordGVzdCgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vy
c29yLWRlbGV0ZScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQoreworICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNp
b24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25T
dWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
fQorCitmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCit7CisgICAgdHJhbnMgPSBldmFsQW5k
TG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRy
YW5zICE9PSBudWxsIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQ3Vyc29yOworCisgICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKKworICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9i
amVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOworICAgIGV2YWxBbmRM
b2coIm9iamVjdFN0b3JlLmFkZCgxLCAxKSIpOworICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3Jl
LmFkZCgyLCAyKSIpOworICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgzLCAzKSIpOwor
fQorCitmdW5jdGlvbiBvcGVuQ3Vyc29yKCkKK3sKKyAgICBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFsndGVzdCddLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAg
IHRyYW5zLm9uYWJvcnQgPSBmaW5pc2hKU1Rlc3Q7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IGZp
bmlzaEpTVGVzdDsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUo
J3Rlc3QnKS5vcGVuQ3Vyc29yKCkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGN1cnNvclN1
Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cisg
ICAgY291bnRlciA9IDA7Cit9CisKK2Z1bmN0aW9uIGN1cnNvclN1Y2Nlc3MoKQoreworICAgIGlm
IChldmVudC50YXJnZXQucmVzdWx0ID09IG51bGwpIHsKKyAgICAgIHNob3VsZEJlKCJjb3VudGVy
IiwgIjYiKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3VudGVyID0gY291bnRlciAr
IDE7CisKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkiLCBTdHJpbmcoY291
bnRlcikpOworICAgIGlmIChldmVudC50YXJnZXQucmVzdWx0LmtleSA9PSAxKSB7CisgICAgICBl
dmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgndGVzdCcpLmFkZCg2LCA2KSIpOworICAgIH0K
KyAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgPT0gMikgeworICAgICAgZXZhbEFuZExv
ZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQoNSwgNSkiKTsKKyAgICB9CisgICAgaWYg
KGV2ZW50LnRhcmdldC5yZXN1bHQua2V5ID09IDMpIHsKKyAgICAgIGV2YWxBbmRMb2coInRyYW5z
Lm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDQsIDQpIik7CisgICAgfQorCisgICAgZXZhbEFuZExv
ZygiZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpIik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138445</attachid>
            <date>2012-04-23 15:53:49 -0700</date>
            <delta_ts>2012-04-23 16:20:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84467-20120423155348.patch</filename>
            <type>text/plain</type>
            <size>10862</size>
            <attacher>dstockwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmMmQ3YTNhM2NiODM0
MDZmYjY5MDk0OTIyZWQxZDdhYjFiOGU1Yi4uNTg0OTRjNjQ0NjU2NzNjNWE0Y2Q5OTZmMWRlNjJm
OTdmMDI5YzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA0LTIwICBEb3Vn
bGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogY3Vyc29yIGRvZXMgbm90IGNvcnJlY3RseSBpdGVyYXRlIG92ZXIga2V5cyBhZGRlZCBh
bmQgcmVtb3ZlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBpdGVyYXRvciBvdmVyIHRoZSB0cmVl
IG9mIGNhY2hlZCBhZGRzL3JlbW92ZXMgYWx3YXlzIHBvaW50cyBhdAorICAgICAgICB0aGUgY3Vy
cmVudCBrZXksIG9yIGlmIHRoZSBkYiBpdGVyYXRvciBpcyBjdXJyZW50LCB0aGUgbmV4dCBrZXk6
CisgICAgICAgIAorICAgICAgICAtIFdoZW4gcmVmcmVzaGluZyB0aGUgdHJlZSBpdGVyYXRvciBh
ZnRlciBhIG11dGF0aW9uLCBhbHdheXMgc2VlayB1bmxlc3MgdGhlCisgICAgICAgIHRyZWUgaXRl
cmF0b3IgaXMgY3VycmVudC4KKyAgICAgICAgCisgICAgICAgIC0gV2hlbiBoYW5kaW5nIGNvbmZs
aWN0cyBhbmQgZGVsZXRlIG1hcmtlcnMsIG9ubHkgYWR2YW5jZSB0aGUgdHJlZSBpdGVyYXRvciBh
cworICAgICAgICBmYXIgYXMgdGhlIGRiIGl0ZXJhdG9yLgorICAgICAgICAKKyAgICAgICAgUmVt
b3ZlIHRoZSBleHBlbnNpdmUgKGFuZCBub3cgcmVkdW5kYW50KSBsb2dpYyB0aGF0IGlzc3VlZCBh
IGdldCgpIHRvIGNoZWNrCisgICAgICAgIHdoZXRoZXIgYW4gaXRlbSBoYWQgYmVlbiBkZWxldGVk
LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVs
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZXZlbERCVHJhbnNhY3Rpb246
OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVlSXRlcmF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6TGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpoYW5kbGVDb25m
bGljdHNBbmREZWxldGVzKToKKwogMjAxMi0wNC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmb2xsb3cgdXAgdG8gcjEx
NDcyOTogbW9yZSBAcmV0dXJuIGFubm90YXRpb25zIGFkZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cAppbmRleCA2YTdlZDI4NGJhZWRkZGVhZmNmYWI3ODFhMTRkZjEwOWY5ODI5ZWZhLi5kYTVlNGU5
MGNlODMxNGQ1ZWUwZjNlZWQ1ZjdmOGJlMWM2Zjc3MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cApAQCAtMTA2NiwxMSArMTA2Niw2IEBAIGJvb2wgQ3Vyc29ySW1wbENvbW1vbjo6Y29udGludWVG
dW5jdGlvbihjb25zdCBJREJLZXkqIGtleSwgSXRlcmF0b3JTdGF0ZSBuZXh0U3RhCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBUaGUgaXRlcmF0b3Ig
d2lsbCBjb250YWluIHZhbHVlcyBkZWxldGVkIGR1cmluZyBpdGVyYXRpb24uCi0gICAgICAgIFZl
Y3RvcjxjaGFyPiB0cmFzaDsKLSAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5nZXQobV9pdGVy
YXRvci0+a2V5KCksIHRyYXNoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGlm
IChpc1Bhc3RCb3VuZHMoKSkgewogICAgICAgICAgICAgaWYgKCFmb3J3YXJkICYmIGxhc3REdXBs
aWNhdGVLZXkuZ2V0KCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHdhbGsgZm9y
d2FyZCBiZWNhdXNlIG5vdyB3ZSdyZSBiZXlvbmQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggOWVhMTY5
Y2I4YzE4MjliYTVmOTNhMWEzZTE1NDBmNWFkNmE0Nzc2Zi4uNmMxYjhiMGU2NzZlNmFhZGYyNjY0
MTViYTY2YTA1NmFjZTc0MGIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzcwLDcgKzM3MCw5IEBAIHZv
aWQgTGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpyZWZyZXNoVHJlZUl0
ZXJhdG9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV90cmVlQ2hhbmdlZCk7CiAKLSAgICBpZiAo
bV90cmVlSXRlcmF0b3ItPmlzVmFsaWQoKSkgeworICAgIG1fdHJlZUNoYW5nZWQgPSBmYWxzZTsK
KworICAgIGlmIChtX3RyZWVJdGVyYXRvci0+aXNWYWxpZCgpICYmIG1fdHJlZUl0ZXJhdG9yID09
IG1fY3VycmVudCkgewogICAgICAgICBtX3RyZWVJdGVyYXRvci0+cmVzZXQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTM5Myw4ICszOTUsMTYgQEAgdm9pZCBMZXZlbERCVHJhbnNhY3Rp
b246OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVlSXRlcmF0b3IoKSBjb25zdAogICAg
ICAgICAgICAgICAgIG1fdHJlZUl0ZXJhdG9yLT5wcmV2KCk7CiAgICAgICAgIH0KICAgICB9Cit9
CiAKLSAgICBtX3RyZWVDaGFuZ2VkID0gZmFsc2U7Citib29sIExldmVsREJUcmFuc2FjdGlvbjo6
VHJhbnNhY3Rpb25JdGVyYXRvcjo6dHJlZUl0ZXJhdG9ySXNMb3dlcigpCit7CisgICAgcmV0dXJu
IG1fY29tcGFyYXRvci0+Y29tcGFyZShtX3RyZWVJdGVyYXRvci0+a2V5KCksIG1fZGJJdGVyYXRv
ci0+a2V5KCkpIDwgMDsKK30KKworYm9vbCBMZXZlbERCVHJhbnNhY3Rpb246OlRyYW5zYWN0aW9u
SXRlcmF0b3I6OnRyZWVJdGVyYXRvcklzSGlnaGVyKCkKK3sKKyAgICByZXR1cm4gbV9jb21wYXJh
dG9yLT5jb21wYXJlKG1fdHJlZUl0ZXJhdG9yLT5rZXkoKSwgbV9kYkl0ZXJhdG9yLT5rZXkoKSkg
PiAwOwogfQogCiB2b2lkIExldmVsREJUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb25JdGVyYXRvcjo6
aGFuZGxlQ29uZmxpY3RzQW5kRGVsZXRlcygpCkBAIC00MTIsMTQgKzQyMiwxNSBAQCB2b2lkIExl
dmVsREJUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb25JdGVyYXRvcjo6aGFuZGxlQ29uZmxpY3RzQW5k
RGVsZXRlcygpCiAgICAgICAgICAgICAgICAgbV9kYkl0ZXJhdG9yLT5wcmV2KCk7CiAgICAgICAg
IH0KIAorICAgICAgICAvLyBTa2lwIG92ZXIgZGVsZXRlIG1hcmtlcnMgaW4gdGhlIHRyZWUgaXRl
cmF0b3IgdW50aWwgaXQgY2F0Y2hlcyB1cCB3aXRoIHRoZSBkYiBpdGVyYXRvci4KICAgICAgICAg
aWYgKG1fdHJlZUl0ZXJhdG9yLT5pc1ZhbGlkKCkgJiYgbV90cmVlSXRlcmF0b3ItPmlzRGVsZXRl
ZCgpKSB7Ci0gICAgICAgICAgICAvLyBJZiB0aGUgdHJlZSBpdGVyYXRvciBpcyBvbiBhIGRlbGV0
ZSBtYXJrZXIsIHRha2UgYW5vdGhlciBzdGVwLgotICAgICAgICAgICAgaWYgKG1fZGlyZWN0aW9u
ID09IGtGb3J3YXJkKQorICAgICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IGtGb3J3YXJkICYm
ICghbV9kYkl0ZXJhdG9yLT5pc1ZhbGlkKCkgfHwgdHJlZUl0ZXJhdG9ySXNMb3dlcigpKSkgewog
ICAgICAgICAgICAgICAgIG1fdHJlZUl0ZXJhdG9yLT5uZXh0KCk7Ci0gICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbG9vcCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1f
ZGlyZWN0aW9uID09IGtSZXZlcnNlICYmICghbV9kYkl0ZXJhdG9yLT5pc1ZhbGlkKCkgfHwgdHJl
ZUl0ZXJhdG9ySXNIaWdoZXIoKSkpIHsKICAgICAgICAgICAgICAgICBtX3RyZWVJdGVyYXRvci0+
cHJldigpOwotCi0gICAgICAgICAgICBsb29wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsb29w
ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5oCmluZGV4
IDRiZTkxYjcyNjk3NDkyMDkzYmFhYTk0YTM4OWU1NzA4OWQ4N2ZiMTQuLjE1NGQ3Y2Q4MzU1ZTAz
YzFhYTM5ZjljMmRlMDI0MzcyNDNiYmM0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uaApAQCAtMTM5LDYgKzEzOSw4IEBA
IHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0Q3VycmVudEl0ZXJhdG9yVG9TbWFsbGVzdEtleSgp
OwogICAgICAgICB2b2lkIHNldEN1cnJlbnRJdGVyYXRvclRvTGFyZ2VzdEtleSgpOwogICAgICAg
ICB2b2lkIHJlZnJlc2hUcmVlSXRlcmF0b3IoKSBjb25zdDsKKyAgICAgICAgYm9vbCB0cmVlSXRl
cmF0b3JJc0xvd2VyKCk7CisgICAgICAgIGJvb2wgdHJlZUl0ZXJhdG9ySXNIaWdoZXIoKTsKIAog
ICAgICAgICBSZWZQdHI8TGV2ZWxEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogICAgICAg
ICBjb25zdCBMZXZlbERCQ29tcGFyYXRvciogbV9jb21wYXJhdG9yOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNiOTZjOWE1
ZDFmN2ViMTU4M2NhNDA3MzA5MjIxMTlkMGU3NzU0OGEuLmI2MGI2NzNiOGQzMTMwMzI1MDlkOGM3
NzNiZDE5YTliM2ZiODFhY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNC0yMCAgRG91
Z2xhcyBTdG9ja3dlbGwgIDxkc3RvY2t3ZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRl
eGVkREI6IGN1cnNvciBkb2VzIG5vdCBjb3JyZWN0bHkgaXRlcmF0ZSBvdmVyIGtleXMgYWRkZWQg
YW5kIHJlbW92ZWQgZHVyaW5nIGl0ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOZXcgdGVzdCBmb3Iga2V5cyBhZGRlZCBpbiByZXZlcnNlIG9y
ZGVyIGR1cmluZyBjdXJzb3IgaXRlcmF0aW9uLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRtbDogQWRkZWQuCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZGRlZC1idWcuanM6IEFkZGVkLgorICAg
ICAgICAodGVzdCk6CisgICAgICAgIChvcGVuU3VjY2Vzcyk6CisgICAgICAgIChzZXRWZXJzaW9u
U3VjY2Vzcyk6CisgICAgICAgIChvcGVuQ3Vyc29yKToKKyAgICAgICAgKGN1cnNvclN1Y2Nlc3Mp
OgorCiAyMDEyLTA0LTIwICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgTGF5b3V0IFRlc3Qgc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1j
c3MtcHJvcGVydHkueGh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ODM0NGZkYTQ1MGQ4OWU3OGY5YmY0YWY2ZWEyYzc2NmNmNzZiMmNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVGVzdCBJbmRleGVkREIgY3Vyc29yIGl0ZXJh
dGVzIGNvcnJlY3RseSBvdmVyIHZhbHVlcyBhZGRlZCBkdXJpbmcgaXRlcmF0aW9uLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRl
JykKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KQordHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIHRyYW5zICE9PSBudWxsIGlzIHRy
dWUKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCd0ZXN0JykKK29iamVjdFN0b3JlLmFkZCgxLCAxKQorb2JqZWN0U3RvcmUuYWRk
KDIsIDIpCitvYmplY3RTdG9yZS5hZGQoMywgMykKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oWyd0
ZXN0J10sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCit0cmFucy5vYmplY3RTdG9yZSgndGVz
dCcpLm9wZW5DdXJzb3IoKQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmtleSBpcyAxCit0cmFu
cy5vYmplY3RTdG9yZSgndGVzdCcpLmFkZCg2LCA2KQorZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250
aW51ZSgpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQua2V5IGlzIDIKK3RyYW5zLm9iamVjdFN0
b3JlKCd0ZXN0JykuYWRkKDUsIDUpCitldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKCkKK1BB
U1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgaXMgMwordHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3Qn
KS5hZGQoNCwgNCkKK2V2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoKQorUEFTUyBldmVudC50
YXJnZXQucmVzdWx0LmtleSBpcyA0CitldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKCkKK1BB
U1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgaXMgNQorZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250
aW51ZSgpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQua2V5IGlzIDYKK2V2ZW50LnRhcmdldC5y
ZXN1bHQuY29udGludWUoKQorUEFTUyBjb3VudGVyIGlzIDYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg0ZmJjMDZl
MmI5NjZmYmFmYzE2ZDNhMWVkMWIxNzhlNzg4YzZmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRtbApAQCAtMCwwICsx
LDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
cmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jdXJzb3ItYWRkZWQtYnVnLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1
cnNvci1hZGRlZC1idWcuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjQ3OTk0ZmJmYTRjOGRmOWFmOGU4
ODIzNzExZmFmYWMyZWY4MjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZGRlZC1idWcuanMKQEAgLTAsMCArMSw3NCBA
QAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygn
c2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjdXJzb3IgaXRl
cmF0ZXMgY29ycmVjdGx5IG92ZXIgdmFsdWVzIGFkZGVkIGR1cmluZyBpdGVyYXRpb24uIik7CisK
K3Rlc3QoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1kZWxl
dGUnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5T
dWNjZXNzKCkKK3sKKyAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcg
dmVyc2lvbicpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsK
KyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVu
Y3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQoreworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJh
bnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVUcnVlKCJ0cmFucyAhPT0g
bnVsbCIpOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAg
ICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkN1cnNvcjsKKworICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7CisKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykiKTsKKyAgICBldmFsQW5kTG9nKCJvYmpl
Y3RTdG9yZS5hZGQoMSwgMSkiKTsKKyAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoMiwg
MikiKTsKKyAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoMywgMykiKTsKK30KKworZnVu
Y3Rpb24gb3BlbkN1cnNvcigpCit7CisgICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ3Rlc3QnXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICB0cmFucy5v
bmFib3J0ID0gZmluaXNoSlNUZXN0OworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rl
c3Q7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0Jyku
b3BlbkN1cnNvcigpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjdXJzb3JTdWNjZXNzOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGNvdW50
ZXIgPSAwOworfQorCitmdW5jdGlvbiBjdXJzb3JTdWNjZXNzKCkKK3sKKyAgICBpZiAoZXZlbnQu
dGFyZ2V0LnJlc3VsdCA9PSBudWxsKSB7CisgICAgICBzaG91bGRCZSgiY291bnRlciIsICI2Iik7
CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgY291bnRlciA9IGNvdW50ZXIgKyAxOworCisg
ICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQua2V5IiwgU3RyaW5nKGNvdW50ZXIpKTsK
KyAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgPT0gMSkgeworICAgICAgZXZhbEFuZExv
ZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQoNiwgNikiKTsKKyAgICB9CisgICAgaWYg
KGV2ZW50LnRhcmdldC5yZXN1bHQua2V5ID09IDIpIHsKKyAgICAgIGV2YWxBbmRMb2coInRyYW5z
Lm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDUsIDUpIik7CisgICAgfQorICAgIGlmIChldmVudC50
YXJnZXQucmVzdWx0LmtleSA9PSAzKSB7CisgICAgICBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RT
dG9yZSgndGVzdCcpLmFkZCg0LCA0KSIpOworICAgIH0KKworICAgIGV2YWxBbmRMb2coImV2ZW50
LnRhcmdldC5yZXN1bHQuY29udGludWUoKSIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138452</attachid>
            <date>2012-04-23 16:20:18 -0700</date>
            <delta_ts>2012-04-25 20:13:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84467-20120423162017.patch</filename>
            <type>text/plain</type>
            <size>10886</size>
            <attacher>dstockwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmMmQ3YTNhM2NiODM0
MDZmYjY5MDk0OTIyZWQxZDdhYjFiOGU1Yi4uNTg0OTRjNjQ0NjU2NzNjNWE0Y2Q5OTZmMWRlNjJm
OTdmMDI5YzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA0LTIwICBEb3Vn
bGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogY3Vyc29yIGRvZXMgbm90IGNvcnJlY3RseSBpdGVyYXRlIG92ZXIga2V5cyBhZGRlZCBh
bmQgcmVtb3ZlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBpdGVyYXRvciBvdmVyIHRoZSB0cmVl
IG9mIGNhY2hlZCBhZGRzL3JlbW92ZXMgYWx3YXlzIHBvaW50cyBhdAorICAgICAgICB0aGUgY3Vy
cmVudCBrZXksIG9yIGlmIHRoZSBkYiBpdGVyYXRvciBpcyBjdXJyZW50LCB0aGUgbmV4dCBrZXk6
CisgICAgICAgIAorICAgICAgICAtIFdoZW4gcmVmcmVzaGluZyB0aGUgdHJlZSBpdGVyYXRvciBh
ZnRlciBhIG11dGF0aW9uLCBhbHdheXMgc2VlayB1bmxlc3MgdGhlCisgICAgICAgIHRyZWUgaXRl
cmF0b3IgaXMgY3VycmVudC4KKyAgICAgICAgCisgICAgICAgIC0gV2hlbiBoYW5kaW5nIGNvbmZs
aWN0cyBhbmQgZGVsZXRlIG1hcmtlcnMsIG9ubHkgYWR2YW5jZSB0aGUgdHJlZSBpdGVyYXRvciBh
cworICAgICAgICBmYXIgYXMgdGhlIGRiIGl0ZXJhdG9yLgorICAgICAgICAKKyAgICAgICAgUmVt
b3ZlIHRoZSBleHBlbnNpdmUgKGFuZCBub3cgcmVkdW5kYW50KSBsb2dpYyB0aGF0IGlzc3VlZCBh
IGdldCgpIHRvIGNoZWNrCisgICAgICAgIHdoZXRoZXIgYW4gaXRlbSBoYWQgYmVlbiBkZWxldGVk
LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVs
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZXZlbERCVHJhbnNhY3Rpb246
OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVlSXRlcmF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6TGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpoYW5kbGVDb25m
bGljdHNBbmREZWxldGVzKToKKwogMjAxMi0wNC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmb2xsb3cgdXAgdG8gcjEx
NDcyOTogbW9yZSBAcmV0dXJuIGFubm90YXRpb25zIGFkZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cAppbmRleCA2YTdlZDI4NGJhZWRkZGVhZmNmYWI3ODFhMTRkZjEwOWY5ODI5ZWZhLi5kYTVlNGU5
MGNlODMxNGQ1ZWUwZjNlZWQ1ZjdmOGJlMWM2Zjc3MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cApAQCAtMTA2NiwxMSArMTA2Niw2IEBAIGJvb2wgQ3Vyc29ySW1wbENvbW1vbjo6Y29udGludWVG
dW5jdGlvbihjb25zdCBJREJLZXkqIGtleSwgSXRlcmF0b3JTdGF0ZSBuZXh0U3RhCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBUaGUgaXRlcmF0b3Ig
d2lsbCBjb250YWluIHZhbHVlcyBkZWxldGVkIGR1cmluZyBpdGVyYXRpb24uCi0gICAgICAgIFZl
Y3RvcjxjaGFyPiB0cmFzaDsKLSAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5nZXQobV9pdGVy
YXRvci0+a2V5KCksIHRyYXNoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGlm
IChpc1Bhc3RCb3VuZHMoKSkgewogICAgICAgICAgICAgaWYgKCFmb3J3YXJkICYmIGxhc3REdXBs
aWNhdGVLZXkuZ2V0KCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHdhbGsgZm9y
d2FyZCBiZWNhdXNlIG5vdyB3ZSdyZSBiZXlvbmQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggOWVhMTY5
Y2I4YzE4MjliYTVmOTNhMWEzZTE1NDBmNWFkNmE0Nzc2Zi4uOTEyNjk2ZDc4ZTQ2ZWY1ZDY5NWFk
ZDFmNThlMmFhZTEyYTk2OTI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzcwLDcgKzM3MCw5IEBAIHZv
aWQgTGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpyZWZyZXNoVHJlZUl0
ZXJhdG9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV90cmVlQ2hhbmdlZCk7CiAKLSAgICBpZiAo
bV90cmVlSXRlcmF0b3ItPmlzVmFsaWQoKSkgeworICAgIG1fdHJlZUNoYW5nZWQgPSBmYWxzZTsK
KworICAgIGlmIChtX3RyZWVJdGVyYXRvci0+aXNWYWxpZCgpICYmIG1fdHJlZUl0ZXJhdG9yID09
IG1fY3VycmVudCkgewogICAgICAgICBtX3RyZWVJdGVyYXRvci0+cmVzZXQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTM5Myw4ICszOTUsMTYgQEAgdm9pZCBMZXZlbERCVHJhbnNhY3Rp
b246OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVlSXRlcmF0b3IoKSBjb25zdAogICAg
ICAgICAgICAgICAgIG1fdHJlZUl0ZXJhdG9yLT5wcmV2KCk7CiAgICAgICAgIH0KICAgICB9Cit9
CiAKLSAgICBtX3RyZWVDaGFuZ2VkID0gZmFsc2U7Citib29sIExldmVsREJUcmFuc2FjdGlvbjo6
VHJhbnNhY3Rpb25JdGVyYXRvcjo6dHJlZUl0ZXJhdG9ySXNMb3dlcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY29tcGFyYXRvci0+Y29tcGFyZShtX3RyZWVJdGVyYXRvci0+a2V5KCksIG1fZGJJ
dGVyYXRvci0+a2V5KCkpIDwgMDsKK30KKworYm9vbCBMZXZlbERCVHJhbnNhY3Rpb246OlRyYW5z
YWN0aW9uSXRlcmF0b3I6OnRyZWVJdGVyYXRvcklzSGlnaGVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jb21wYXJhdG9yLT5jb21wYXJlKG1fdHJlZUl0ZXJhdG9yLT5rZXkoKSwgbV9kYkl0ZXJh
dG9yLT5rZXkoKSkgPiAwOwogfQogCiB2b2lkIExldmVsREJUcmFuc2FjdGlvbjo6VHJhbnNhY3Rp
b25JdGVyYXRvcjo6aGFuZGxlQ29uZmxpY3RzQW5kRGVsZXRlcygpCkBAIC00MTIsMTQgKzQyMiwx
NSBAQCB2b2lkIExldmVsREJUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb25JdGVyYXRvcjo6aGFuZGxl
Q29uZmxpY3RzQW5kRGVsZXRlcygpCiAgICAgICAgICAgICAgICAgbV9kYkl0ZXJhdG9yLT5wcmV2
KCk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBTa2lwIG92ZXIgZGVsZXRlIG1hcmtlcnMgaW4g
dGhlIHRyZWUgaXRlcmF0b3IgdW50aWwgaXQgY2F0Y2hlcyB1cCB3aXRoIHRoZSBkYiBpdGVyYXRv
ci4KICAgICAgICAgaWYgKG1fdHJlZUl0ZXJhdG9yLT5pc1ZhbGlkKCkgJiYgbV90cmVlSXRlcmF0
b3ItPmlzRGVsZXRlZCgpKSB7Ci0gICAgICAgICAgICAvLyBJZiB0aGUgdHJlZSBpdGVyYXRvciBp
cyBvbiBhIGRlbGV0ZSBtYXJrZXIsIHRha2UgYW5vdGhlciBzdGVwLgotICAgICAgICAgICAgaWYg
KG1fZGlyZWN0aW9uID09IGtGb3J3YXJkKQorICAgICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09
IGtGb3J3YXJkICYmICghbV9kYkl0ZXJhdG9yLT5pc1ZhbGlkKCkgfHwgdHJlZUl0ZXJhdG9ySXNM
b3dlcigpKSkgewogICAgICAgICAgICAgICAgIG1fdHJlZUl0ZXJhdG9yLT5uZXh0KCk7Ci0gICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9vcCA9IHRydWU7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKG1fZGlyZWN0aW9uID09IGtSZXZlcnNlICYmICghbV9kYkl0ZXJhdG9yLT5pc1Zh
bGlkKCkgfHwgdHJlZUl0ZXJhdG9ySXNIaWdoZXIoKSkpIHsKICAgICAgICAgICAgICAgICBtX3Ry
ZWVJdGVyYXRvci0+cHJldigpOwotCi0gICAgICAgICAgICBsb29wID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBsb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5z
YWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2Fj
dGlvbi5oCmluZGV4IDRiZTkxYjcyNjk3NDkyMDkzYmFhYTk0YTM4OWU1NzA4OWQ4N2ZiMTQuLjZk
MjI4NTBjMmI3YThjMjgwZTM5YzY3NDkzOGI3OTY4ZTc0YjNkZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uaApAQCAtMTM5
LDYgKzEzOSw4IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0Q3VycmVudEl0ZXJhdG9yVG9T
bWFsbGVzdEtleSgpOwogICAgICAgICB2b2lkIHNldEN1cnJlbnRJdGVyYXRvclRvTGFyZ2VzdEtl
eSgpOwogICAgICAgICB2b2lkIHJlZnJlc2hUcmVlSXRlcmF0b3IoKSBjb25zdDsKKyAgICAgICAg
Ym9vbCB0cmVlSXRlcmF0b3JJc0xvd2VyKCkgY29uc3Q7CisgICAgICAgIGJvb2wgdHJlZUl0ZXJh
dG9ySXNIaWdoZXIoKSBjb25zdDsKIAogICAgICAgICBSZWZQdHI8TGV2ZWxEQlRyYW5zYWN0aW9u
PiBtX3RyYW5zYWN0aW9uOwogICAgICAgICBjb25zdCBMZXZlbERCQ29tcGFyYXRvciogbV9jb21w
YXJhdG9yOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGNiOTZjOWE1ZDFmN2ViMTU4M2NhNDA3MzA5MjIxMTlkMGU3NzU0OGEu
LmI2MGI2NzNiOGQzMTMwMzI1MDlkOGM3NzNiZDE5YTliM2ZiODFhY2MgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAxMi0wNC0yMCAgRG91Z2xhcyBTdG9ja3dlbGwgIDxkc3RvY2t3ZWxsQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGN1cnNvciBkb2VzIG5vdCBjb3JyZWN0bHkg
aXRlcmF0ZSBvdmVyIGtleXMgYWRkZWQgYW5kIHJlbW92ZWQgZHVyaW5nIGl0ZXJhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdGVzdCBmb3Ig
a2V5cyBhZGRlZCBpbiByZXZlcnNlIG9yZGVyIGR1cmluZyBjdXJzb3IgaXRlcmF0aW9uLgorCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRt
bDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1h
ZGRlZC1idWcuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChvcGVuU3VjY2Vz
cyk6CisgICAgICAgIChzZXRWZXJzaW9uU3VjY2Vzcyk6CisgICAgICAgIChvcGVuQ3Vyc29yKToK
KyAgICAgICAgKGN1cnNvclN1Y2Nlc3MpOgorCiAyMDEyLTA0LTIwICBTdGVwaGVuIENoZW5uZXkg
IDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTGF5b3V0IFRlc3Qgc3ZnL3RyYW5z
Zm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHkueGh0bWwgaXMgZmFpbGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQt
YnVnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODM0NGZkYTQ1MGQ4OWU3OGY5YmY0YWY2ZWEy
Yzc2NmNmNzZiMmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVGVz
dCBJbmRleGVkREIgY3Vyc29yIGl0ZXJhdGVzIGNvcnJlY3RseSBvdmVyIHZhbHVlcyBhZGRlZCBk
dXJpbmcgaXRlcmF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4
ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRlJykKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGIu
c2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQordHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CitQ
QVNTIHRyYW5zICE9PSBudWxsIGlzIHRydWUKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitv
YmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykKK29iamVjdFN0b3JlLmFk
ZCgxLCAxKQorb2JqZWN0U3RvcmUuYWRkKDIsIDIpCitvYmplY3RTdG9yZS5hZGQoMywgMykKK3Ry
YW5zID0gZGIudHJhbnNhY3Rpb24oWyd0ZXN0J10sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
Cit0cmFucy5vYmplY3RTdG9yZSgndGVzdCcpLm9wZW5DdXJzb3IoKQorUEFTUyBldmVudC50YXJn
ZXQucmVzdWx0LmtleSBpcyAxCit0cmFucy5vYmplY3RTdG9yZSgndGVzdCcpLmFkZCg2LCA2KQor
ZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQu
a2V5IGlzIDIKK3RyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDUsIDUpCitldmVudC50YXJn
ZXQucmVzdWx0LmNvbnRpbnVlKCkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgaXMgMwor
dHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQoNCwgNCkKK2V2ZW50LnRhcmdldC5yZXN1bHQu
Y29udGludWUoKQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmtleSBpcyA0CitldmVudC50YXJn
ZXQucmVzdWx0LmNvbnRpbnVlKCkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgaXMgNQor
ZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQu
a2V5IGlzIDYKK2V2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoKQorUEFTUyBjb3VudGVyIGlz
IDYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVn
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDg0ZmJjMDZlMmI5NjZmYmFmYzE2ZDNhMWVkMWIxNzhlNzg4YzZmYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1h
ZGRlZC1idWcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZGRlZC1idWcuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNjQ3OTk0ZmJmYTRjOGRmOWFmOGU4ODIzNzExZmFmYWMyZWY4MjE3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZGRl
ZC1idWcuanMKQEAgLTAsMCArMSw3NCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Jyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJU
ZXN0IEluZGV4ZWREQiBjdXJzb3IgaXRlcmF0ZXMgY29ycmVjdGx5IG92ZXIgdmFsdWVzIGFkZGVk
IGR1cmluZyBpdGVyYXRpb24uIik7CisKK3Rlc3QoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oJ2N1cnNvci1kZWxldGUnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
b3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICB2YXIgZGIgPSBldmFsQW5k
TG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQoreworICAg
IHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAg
c2hvdWxkQmVUcnVlKCJ0cmFucyAhPT0gbnVsbCIpOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkN1cnNvcjsK
KworICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisKKyAgICB2YXIgb2JqZWN0U3RvcmUg
PSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0Jyki
KTsKKyAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoMSwgMSkiKTsKKyAgICBldmFsQW5k
TG9nKCJvYmplY3RTdG9yZS5hZGQoMiwgMikiKTsKKyAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9y
ZS5hZGQoMywgMykiKTsKK30KKworZnVuY3Rpb24gb3BlbkN1cnNvcigpCit7CisgICAgZXZhbEFu
ZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkiKTsKKyAgICB0cmFucy5vbmFib3J0ID0gZmluaXNoSlNUZXN0OworICAgIHRyYW5z
Lm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRy
YW5zLm9iamVjdFN0b3JlKCd0ZXN0Jykub3BlbkN1cnNvcigpIik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBjdXJzb3JTdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgIGNvdW50ZXIgPSAwOworfQorCitmdW5jdGlvbiBjdXJzb3JTdWNj
ZXNzKCkKK3sKKyAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdCA9PSBudWxsKSB7CisgICAgICBz
aG91bGRCZSgiY291bnRlciIsICI2Iik7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgY291
bnRlciA9IGNvdW50ZXIgKyAxOworCisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQu
a2V5IiwgU3RyaW5nKGNvdW50ZXIpKTsKKyAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkg
PT0gMSkgeworICAgICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQo
NiwgNikiKTsKKyAgICB9CisgICAgaWYgKGV2ZW50LnRhcmdldC5yZXN1bHQua2V5ID09IDIpIHsK
KyAgICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDUsIDUpIik7
CisgICAgfQorICAgIGlmIChldmVudC50YXJnZXQucmVzdWx0LmtleSA9PSAzKSB7CisgICAgICBl
dmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgndGVzdCcpLmFkZCg0LCA0KSIpOworICAgIH0K
KworICAgIGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoKSIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138926</attachid>
            <date>2012-04-25 20:14:04 -0700</date>
            <delta_ts>2012-04-26 11:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84467-20120425201403.patch</filename>
            <type>text/plain</type>
            <size>11053</size>
            <attacher>dstockwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmMmQ3YTNhM2NiODM0
MDZmYjY5MDk0OTIyZWQxZDdhYjFiOGU1Yi4uNTg0OTRjNjQ0NjU2NzNjNWE0Y2Q5OTZmMWRlNjJm
OTdmMDI5YzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA0LTIwICBEb3Vn
bGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogY3Vyc29yIGRvZXMgbm90IGNvcnJlY3RseSBpdGVyYXRlIG92ZXIga2V5cyBhZGRlZCBh
bmQgcmVtb3ZlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBpdGVyYXRvciBvdmVyIHRoZSB0cmVl
IG9mIGNhY2hlZCBhZGRzL3JlbW92ZXMgYWx3YXlzIHBvaW50cyBhdAorICAgICAgICB0aGUgY3Vy
cmVudCBrZXksIG9yIGlmIHRoZSBkYiBpdGVyYXRvciBpcyBjdXJyZW50LCB0aGUgbmV4dCBrZXk6
CisgICAgICAgIAorICAgICAgICAtIFdoZW4gcmVmcmVzaGluZyB0aGUgdHJlZSBpdGVyYXRvciBh
ZnRlciBhIG11dGF0aW9uLCBhbHdheXMgc2VlayB1bmxlc3MgdGhlCisgICAgICAgIHRyZWUgaXRl
cmF0b3IgaXMgY3VycmVudC4KKyAgICAgICAgCisgICAgICAgIC0gV2hlbiBoYW5kaW5nIGNvbmZs
aWN0cyBhbmQgZGVsZXRlIG1hcmtlcnMsIG9ubHkgYWR2YW5jZSB0aGUgdHJlZSBpdGVyYXRvciBh
cworICAgICAgICBmYXIgYXMgdGhlIGRiIGl0ZXJhdG9yLgorICAgICAgICAKKyAgICAgICAgUmVt
b3ZlIHRoZSBleHBlbnNpdmUgKGFuZCBub3cgcmVkdW5kYW50KSBsb2dpYyB0aGF0IGlzc3VlZCBh
IGdldCgpIHRvIGNoZWNrCisgICAgICAgIHdoZXRoZXIgYW4gaXRlbSBoYWQgYmVlbiBkZWxldGVk
LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVs
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZXZlbERCVHJhbnNhY3Rpb246
OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVlSXRlcmF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6TGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpoYW5kbGVDb25m
bGljdHNBbmREZWxldGVzKToKKwogMjAxMi0wNC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmb2xsb3cgdXAgdG8gcjEx
NDcyOTogbW9yZSBAcmV0dXJuIGFubm90YXRpb25zIGFkZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cAppbmRleCA2YTdlZDI4NGJhZWRkZGVhZmNmYWI3ODFhMTRkZjEwOWY5ODI5ZWZhLi5kYTVlNGU5
MGNlODMxNGQ1ZWUwZjNlZWQ1ZjdmOGJlMWM2Zjc3MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNw
cApAQCAtMTA2NiwxMSArMTA2Niw2IEBAIGJvb2wgQ3Vyc29ySW1wbENvbW1vbjo6Y29udGludWVG
dW5jdGlvbihjb25zdCBJREJLZXkqIGtleSwgSXRlcmF0b3JTdGF0ZSBuZXh0U3RhCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBUaGUgaXRlcmF0b3Ig
d2lsbCBjb250YWluIHZhbHVlcyBkZWxldGVkIGR1cmluZyBpdGVyYXRpb24uCi0gICAgICAgIFZl
Y3RvcjxjaGFyPiB0cmFzaDsKLSAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5nZXQobV9pdGVy
YXRvci0+a2V5KCksIHRyYXNoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGlm
IChpc1Bhc3RCb3VuZHMoKSkgewogICAgICAgICAgICAgaWYgKCFmb3J3YXJkICYmIGxhc3REdXBs
aWNhdGVLZXkuZ2V0KCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHdhbGsgZm9y
d2FyZCBiZWNhdXNlIG5vdyB3ZSdyZSBiZXlvbmQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggOWVhMTY5
Y2I4YzE4MjliYTVmOTNhMWEzZTE1NDBmNWFkNmE0Nzc2Zi4uNWJiMWI0NTUwZGJjYmEzYzlmN2E5
ZDA5MGYxMTFiYWU5Mzk4MTg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzcwLDEzICszNzAsMTQgQEAg
dm9pZCBMZXZlbERCVHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uSXRlcmF0b3I6OnJlZnJlc2hUcmVl
SXRlcmF0b3IoKSBjb25zdAogewogICAgIEFTU0VSVChtX3RyZWVDaGFuZ2VkKTsKIAotICAgIGlm
IChtX3RyZWVJdGVyYXRvci0+aXNWYWxpZCgpKSB7CisgICAgbV90cmVlQ2hhbmdlZCA9IGZhbHNl
OworCisgICAgaWYgKG1fdHJlZUl0ZXJhdG9yLT5pc1ZhbGlkKCkgJiYgbV90cmVlSXRlcmF0b3Ig
PT0gbV9jdXJyZW50KSB7CiAgICAgICAgIG1fdHJlZUl0ZXJhdG9yLT5yZXNldCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fZGJJdGVyYXRvci0+aXNWYWxpZCgpKSB7Ci0g
ICAgICAgIEFTU0VSVCghbV90cmVlSXRlcmF0b3ItPmlzVmFsaWQoKSk7CiAKICAgICAgICAgLy8g
VGhlcmUgY291bGQgYmUgbmV3IG5vZGVzIGluIHRoZSB0cmVlIHRoYXQgd2Ugc2hvdWxkIGl0ZXJh
dGUgb3Zlci4KIApAQCAtMzkzLDggKzM5NCwxNiBAQCB2b2lkIExldmVsREJUcmFuc2FjdGlvbjo6
VHJhbnNhY3Rpb25JdGVyYXRvcjo6cmVmcmVzaFRyZWVJdGVyYXRvcigpIGNvbnN0CiAgICAgICAg
ICAgICAgICAgbV90cmVlSXRlcmF0b3ItPnByZXYoKTsKICAgICAgICAgfQogICAgIH0KK30KIAot
ICAgIG1fdHJlZUNoYW5nZWQgPSBmYWxzZTsKK2Jvb2wgTGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFu
c2FjdGlvbkl0ZXJhdG9yOjp0cmVlSXRlcmF0b3JJc0xvd2VyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jb21wYXJhdG9yLT5jb21wYXJlKG1fdHJlZUl0ZXJhdG9yLT5rZXkoKSwgbV9kYkl0ZXJh
dG9yLT5rZXkoKSkgPCAwOworfQorCitib29sIExldmVsREJUcmFuc2FjdGlvbjo6VHJhbnNhY3Rp
b25JdGVyYXRvcjo6dHJlZUl0ZXJhdG9ySXNIaWdoZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X2NvbXBhcmF0b3ItPmNvbXBhcmUobV90cmVlSXRlcmF0b3ItPmtleSgpLCBtX2RiSXRlcmF0b3It
PmtleSgpKSA+IDA7CiB9CiAKIHZvaWQgTGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0
ZXJhdG9yOjpoYW5kbGVDb25mbGljdHNBbmREZWxldGVzKCkKQEAgLTQxMiwxNCArNDIxLDE1IEBA
IHZvaWQgTGV2ZWxEQlRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkl0ZXJhdG9yOjpoYW5kbGVDb25m
bGljdHNBbmREZWxldGVzKCkKICAgICAgICAgICAgICAgICBtX2RiSXRlcmF0b3ItPnByZXYoKTsK
ICAgICAgICAgfQogCisgICAgICAgIC8vIFNraXAgb3ZlciBkZWxldGUgbWFya2VycyBpbiB0aGUg
dHJlZSBpdGVyYXRvciB1bnRpbCBpdCBjYXRjaGVzIHVwIHdpdGggdGhlIGRiIGl0ZXJhdG9yLgog
ICAgICAgICBpZiAobV90cmVlSXRlcmF0b3ItPmlzVmFsaWQoKSAmJiBtX3RyZWVJdGVyYXRvci0+
aXNEZWxldGVkKCkpIHsKLSAgICAgICAgICAgIC8vIElmIHRoZSB0cmVlIGl0ZXJhdG9yIGlzIG9u
IGEgZGVsZXRlIG1hcmtlciwgdGFrZSBhbm90aGVyIHN0ZXAuCi0gICAgICAgICAgICBpZiAobV9k
aXJlY3Rpb24gPT0ga0ZvcndhcmQpCisgICAgICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0ga0Zv
cndhcmQgJiYgKCFtX2RiSXRlcmF0b3ItPmlzVmFsaWQoKSB8fCB0cmVlSXRlcmF0b3JJc0xvd2Vy
KCkpKSB7CiAgICAgICAgICAgICAgICAgbV90cmVlSXRlcmF0b3ItPm5leHQoKTsKLSAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAobV9kaXJlY3Rpb24gPT0ga1JldmVyc2UgJiYgKCFtX2RiSXRlcmF0b3ItPmlzVmFsaWQo
KSB8fCB0cmVlSXRlcmF0b3JJc0hpZ2hlcigpKSkgewogICAgICAgICAgICAgICAgIG1fdHJlZUl0
ZXJhdG9yLT5wcmV2KCk7Ci0KLSAgICAgICAgICAgIGxvb3AgPSB0cnVlOworICAgICAgICAgICAg
ICAgIGxvb3AgPSB0cnVlOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQlRyYW5zYWN0aW9u
LmgKaW5kZXggNGJlOTFiNzI2OTc0OTIwOTNiYWFhOTRhMzg5ZTU3MDg5ZDg3ZmIxNC4uNmQyMjg1
MGMyYjdhOGMyODBlMzljNjc0OTM4Yjc5NjhlNzRiM2RkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJUcmFuc2FjdGlvbi5oCkBAIC0xMzksNiAr
MTM5LDggQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRDdXJyZW50SXRlcmF0b3JUb1NtYWxs
ZXN0S2V5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3VycmVudEl0ZXJhdG9yVG9MYXJnZXN0S2V5KCk7
CiAgICAgICAgIHZvaWQgcmVmcmVzaFRyZWVJdGVyYXRvcigpIGNvbnN0OworICAgICAgICBib29s
IHRyZWVJdGVyYXRvcklzTG93ZXIoKSBjb25zdDsKKyAgICAgICAgYm9vbCB0cmVlSXRlcmF0b3JJ
c0hpZ2hlcigpIGNvbnN0OwogCiAgICAgICAgIFJlZlB0cjxMZXZlbERCVHJhbnNhY3Rpb24+IG1f
dHJhbnNhY3Rpb247CiAgICAgICAgIGNvbnN0IExldmVsREJDb21wYXJhdG9yKiBtX2NvbXBhcmF0
b3I7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggY2I5NmM5YTVkMWY3ZWIxNTgzY2E0MDczMDkyMjExOWQwZTc3NTQ4YS4uYjYw
YjY3M2I4ZDMxMzAzMjUwOWQ4Yzc3M2JkMTlhOWIzZmI4MWFjYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDEyLTA0LTIwICBEb3VnbGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEluZGV4ZWREQjogY3Vyc29yIGRvZXMgbm90IGNvcnJlY3RseSBpdGVy
YXRlIG92ZXIga2V5cyBhZGRlZCBhbmQgcmVtb3ZlZCBkdXJpbmcgaXRlcmF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0IGZvciBrZXlz
IGFkZGVkIGluIHJldmVyc2Ugb3JkZXIgZHVyaW5nIGN1cnNvciBpdGVyYXRpb24uCisKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVk
LWJ1Zy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToK
KyAgICAgICAgKHNldFZlcnNpb25TdWNjZXNzKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAg
ICAgICAoY3Vyc29yU3VjY2Vzcyk6CisKIDIwMTItMDQtMjAgIFN0ZXBoZW4gQ2hlbm5leSAgPHNj
aGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBMYXlvdXQgVGVzdCBzdmcvdHJhbnNmb3Jt
cy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4MzQ0ZmRhNDUwZDg5ZTc4ZjliZjRhZjZlYTJjNzY2
Y2Y3NmIyY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitUZXN0IElu
ZGV4ZWREQiBjdXJzb3IgaXRlcmF0ZXMgY29ycmVjdGx5IG92ZXIgdmFsdWVzIGFkZGVkIGR1cmlu
ZyBpdGVyYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERC
Lm9wZW4oJ2N1cnNvci1kZWxldGUnKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitkYi5zZXRW
ZXJzaW9uKCduZXcgdmVyc2lvbicpCit0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1Mg
dHJhbnMgIT09IG51bGwgaXMgdHJ1ZQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK29iamVj
dFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKQorb2JqZWN0U3RvcmUuYWRkKDEs
IDEpCitvYmplY3RTdG9yZS5hZGQoMiwgMikKK29iamVjdFN0b3JlLmFkZCgzLCAzKQordHJhbnMg
PSBkYi50cmFuc2FjdGlvbihbJ3Rlc3QnXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3Ry
YW5zLm9iamVjdFN0b3JlKCd0ZXN0Jykub3BlbkN1cnNvcigpCitQQVNTIGV2ZW50LnRhcmdldC5y
ZXN1bHQua2V5IGlzIDEKK3RyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDYsIDYpCitldmVu
dC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKCkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkg
aXMgMgordHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQoNSwgNSkKK2V2ZW50LnRhcmdldC5y
ZXN1bHQuY29udGludWUoKQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmtleSBpcyAzCit0cmFu
cy5vYmplY3RTdG9yZSgndGVzdCcpLmFkZCg0LCA0KQorZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250
aW51ZSgpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQua2V5IGlzIDQKK2V2ZW50LnRhcmdldC5y
ZXN1bHQuY29udGludWUoKQorUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmtleSBpcyA1CitldmVu
dC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKCkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkg
aXMgNgorZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCitQQVNTIGNvdW50ZXIgaXMgNgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wODRmYmMwNmUyYjk2NmZiYWZjMTZkM2ExZWQxYjE3OGU3ODhjNmZjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVk
LWJ1Zy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1cnNvci1hZGRlZC1idWcuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2
NDc5OTRmYmZhNGM4ZGY5YWY4ZTg4MjM3MTFmYWZhYzJlZjgyMTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVkLWJ1
Zy5qcwpAQCAtMCwwICsxLDc0IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1w
b3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsK
KyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIGN1cnNvciBpdGVyYXRlcyBjb3JyZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVy
aW5nIGl0ZXJhdGlvbi4iKTsKKwordGVzdCgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbignY3Vyc29yLWRlbGV0ZScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQoreworICAgIHZhciBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IHNldFZlcnNpb25TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCit7CisgICAgdHJh
bnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZVRydWUoInRyYW5zICE9PSBudWxsIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQ3Vyc29yOworCisg
ICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKworICAgIHZhciBvYmplY3RTdG9yZSA9IGV2
YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOwor
ICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgxLCAxKSIpOworICAgIGV2YWxBbmRMb2co
Im9iamVjdFN0b3JlLmFkZCgyLCAyKSIpOworICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFk
ZCgzLCAzKSIpOworfQorCitmdW5jdGlvbiBvcGVuQ3Vyc29yKCkKK3sKKyAgICBldmFsQW5kTG9n
KCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsndGVzdCddLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKSIpOworICAgIHRyYW5zLm9uYWJvcnQgPSBmaW5pc2hKU1Rlc3Q7CisgICAgdHJhbnMub25j
b21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnMu
b2JqZWN0U3RvcmUoJ3Rlc3QnKS5vcGVuQ3Vyc29yKCkiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGN1cnNvclN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgY291bnRlciA9IDA7Cit9CisKK2Z1bmN0aW9uIGN1cnNvclN1Y2Nlc3Mo
KQoreworICAgIGlmIChldmVudC50YXJnZXQucmVzdWx0ID09IG51bGwpIHsKKyAgICAgIHNob3Vs
ZEJlKCJjb3VudGVyIiwgIjYiKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3VudGVy
ID0gY291bnRlciArIDE7CisKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXki
LCBTdHJpbmcoY291bnRlcikpOworICAgIGlmIChldmVudC50YXJnZXQucmVzdWx0LmtleSA9PSAx
KSB7CisgICAgICBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgndGVzdCcpLmFkZCg2LCA2
KSIpOworICAgIH0KKyAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdC5rZXkgPT0gMikgeworICAg
ICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3Rlc3QnKS5hZGQoNSwgNSkiKTsKKyAg
ICB9CisgICAgaWYgKGV2ZW50LnRhcmdldC5yZXN1bHQua2V5ID09IDMpIHsKKyAgICAgIGV2YWxB
bmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0JykuYWRkKDQsIDQpIik7CisgICAgfQorCisg
ICAgZXZhbEFuZExvZygiZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpIik7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>