<?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>74213</bug_id>
          
          <creation_ts>2011-12-09 13:48:46 -0800</creation_ts>
          <short_desc>IndexedDB: Throw exception if IDBCursor.continue() called with lower key than current</short_desc>
          <delta_ts>2012-01-09 16:13:36 -0800</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 name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>hans</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>518471</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 13:48:46 -0800</bug_when>
    <thetext>IndexedDB: Throw exception if IDBCursor.continue() called with lower key than current</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518472</commentid>
    <comment_count>1</comment_count>
      <attachid>118628</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 13:49:20 -0800</bug_when>
    <thetext>Created attachment 118628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518474</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 13:50:50 -0800</bug_when>
    <thetext>Seems easy -- too easy. I think I&apos;m missing something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518479</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 13:53:52 -0800</bug_when>
    <thetext>Need to defend against the backing store&apos;s key being null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518505</commentid>
    <comment_count>4</comment_count>
      <attachid>118628</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-12-09 14:18:29 -0800</bug_when>
    <thetext>Comment on attachment 118628
Patch

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

LGTM

&gt; LayoutTests/storage/indexeddb/cursor-continue.html:-165
&gt; -        evalAndLog(&quot;event.target.result.continue(1)&quot;);

What happens if this 1 stays?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518506</commentid>
    <comment_count>5</comment_count>
      <attachid>118628</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 14:20:24 -0800</bug_when>
    <thetext>Comment on attachment 118628
Patch

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

&gt;&gt; LayoutTests/storage/indexeddb/cursor-continue.html:-165
&gt;&gt; -        evalAndLog(&quot;event.target.result.continue(1)&quot;);
&gt; 
&gt; What happens if this 1 stays?

1 &gt; 0 and this is descending, so it trips the newly added check and generates a DATA_ERR. To run off the end of the index like this test is expecting, either a lower key (e.g. -1) or no key should be specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518532</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 14:34:55 -0800</bug_when>
    <thetext>Hrm, this fails the cursor prefetch browser test. Digging...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518574</commentid>
    <comment_count>7</comment_count>
      <attachid>118656</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 15:22:04 -0800</bug_when>
    <thetext>Created attachment 118656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518578</commentid>
    <comment_count>8</comment_count>
      <attachid>118656</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-09 15:25:29 -0800</bug_when>
    <thetext>Comment on attachment 118656
Patch

So this version passes tests. I believe with prefetching, m_cursor can end up becoming null even though we haven&apos;t reported back that the cursor has hit the end. Hans?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519170</commentid>
    <comment_count>9</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-12-12 06:53:46 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 118656 [details])
&gt; So this version passes tests. I believe with prefetching, m_cursor can end up becoming null even though we haven&apos;t reported back that the cursor has hit the end. Hans?

Yes, prefetching can cause m_cursor to end up becoming null, even though the cursor on the front-end side hasn&apos;t reached the end yet.

However, as soon as any other operation is performed, such as calling continue() with a key, the prefetch cache is flushed and the cursor in the back-end is reset to match the front-end one.

I tried applying your first patch, but couldn&apos;t reproduce any failing browser test.

Anyway, the patch LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532571</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-09 15:33:28 -0800</bug_when>
    <thetext>After studying the code further, I&apos;m satisfied with the second patch. Prefetching implies that m_cursor may be null before the continue has run (what my first patch was erroneously erroring on). But when a key is passed in to continue() - the only case this patch is concerned with - the prefetching is reset. (The prefetch and reset logic lives in the chromium port.) Normally, that will reset m_cursor so we could write if(key) { ASSERT(m_cursor); ... }, However, m_cursor may be null for a cursor that has run to the end but is still being held on to by script, so we need the tests as present in the second patch.

tony@ - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532579</commentid>
    <comment_count>11</comment_count>
      <attachid>118656</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-09 15:44:30 -0800</bug_when>
    <thetext>Comment on attachment 118656
Patch

Oops, forgot to cq? it. tony@ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532585</commentid>
    <comment_count>12</comment_count>
      <attachid>118656</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-01-09 15:48:35 -0800</bug_when>
    <thetext>Comment on attachment 118656
Patch

Oh, I thought you had commit access?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532613</commentid>
    <comment_count>13</comment_count>
      <attachid>118656</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 16:13:31 -0800</bug_when>
    <thetext>Comment on attachment 118656
Patch

Clearing flags on attachment: 118656

Committed r104506: &lt;http://trac.webkit.org/changeset/104506&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532614</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 16:13:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118628</attachid>
            <date>2011-12-09 13:49:20 -0800</date>
            <delta_ts>2011-12-09 15:22:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74213-20111209134919.patch</filename>
            <type>text/plain</type>
            <size>9593</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NmMmNiM2YzNDEzNGVm
OWUxNzYyYjBhNWQzZjZiMTZmZTE1MTE5YS4uYjg0MzQ0M2QzNzUwM2FhNTM0YzMwOTUyYzQxNDE1
YzQ2N2JmY2M3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTEyLTA5ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBUaHJv
dyBleGNlcHRpb24gaWYgSURCQ3Vyc29yLmNvbnRpbnVlKCkgY2FsbGVkIHdpdGggbG93ZXIga2V5
IHRoYW4gY3VycmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQyMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb24pOgorCiAyMDExLTEyLTA4
ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29kZUdlbmVy
YXRvclY4OiBGaXggaXNzdWUgd2l0aCBvdmVybG9hZGVkIHN0YXRpYyBjb25kaXRpb25hbCBtZXRo
b2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
CmluZGV4IDEwODdkOTE0Y2M2NTczNmI4NzgyOWI5YzZhMjkxMDZjNGZhYzZlNTcuLmEwMzg1ODFi
NTA2YjJkZjAzMTk5NDYyZGFmN2FmZjI4MWZlMzE5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC05MSw2ICs5MSwyNiBAQCB2b2lk
IElEQkN1cnNvckJhY2tlbmRJbXBsOjp1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHZhbHVlLCBQYXNzUgogdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVG
dW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gcHJwQ2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8SURCS2V5
PiBrZXkgPSBwcnBLZXk7CisKKyAgICBpZiAoIW1fY3Vyc29yKSB7CisgICAgICAgIGVjID0gSURC
RGF0YWJhc2VFeGNlcHRpb246Ok5PVF9BTExPV0VEX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChrZXkpIHsKKyAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IElEQkN1cnNv
cjo6TkVYVCB8fCBtX2RpcmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFKSB7
CisgICAgICAgICAgICBpZiAoa2V5LT5pc0xlc3NUaGFuKG1fY3Vyc29yLT5rZXkoKS5nZXQoKSkp
IHsKKyAgICAgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpZiAobV9jdXJzb3ItPmtleSgpLT5pc0xlc3NUaGFuKGtleS5nZXQoKSkp
IHsKKyAgICAgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKICAgICBpZiAoIW1fdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhjcmVhdGVDYWxsYmFja1Rh
c2soJklEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWwsIHRoaXMs
IGtleSwgcHJwQ2FsbGJhY2tzKSkpCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
Ok5PVF9BTExPV0VEX0VSUjsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZDdiYzU4NmRhOWRhY2Q4NzI3NGJlNjY2MTkw
NGYzMGQ2NDhkZjA2Li4wNjg4NzVjMjE3NGMxODYxYzkzZmJmOTgyOWMxNmRjM2FmZTFjMmZlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTItMDkgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFRocm93IGV4Y2VwdGlvbiBpZiBJREJD
dXJzb3IuY29udGludWUoKSBjYWxsZWQgd2l0aCBsb3dlciBrZXkgdGhhbiBjdXJyZW50CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIxMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItY29udGludWUuaHRtbDoKKwogMjAxMS0xMi0wOCAgRG9taW5pYyBNYXp6
b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBY2Nlc3NpYmlsaXR5OiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlciBzaG91bGQgc3VwcG9ydCBsaXN0ZW5pbmcgdG8gbm90aWZpY2F0
aW9ucyBvbiBhbGwgZWxlbWVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dAppbmRleCA4MGEzMzhjNzcz
YTU4NzQ1NjM3ZTRlZjJjMDA2ODcwYTU0OWI0N2I5Li42ODlhYWMwNTY1YTI3ZGFjZDliYTZiMjA5
NmU1NjA4YjYwMzM2NWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQKQEAgLTMsNyArMywxMyBAQCBU
ZXN0IEluZGV4ZWREQidzIElEQkN1cnNvci5jb250aW51ZSgpIHdpdGggYSBrZXkgcGFyYW1ldGVy
LgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLXdlYmtpdEluZGV4ZWREQi5vcGVuKCdj
dXJzb3ItY29udGludWUnKQord2luZG93LmluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwg
d2luZG93LndlYmtpdEluZGV4ZWREQgorUEFTUyBpbmRleGVkREIgIT0gbnVsbCBpcyB0cnVlCit3
aW5kb3cuSURCQ3Vyc29yID0gd2luZG93LklEQkN1cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vy
c29yCitQQVNTIElEQkN1cnNvciAhPSBudWxsIGlzIHRydWUKK3dpbmRvdy5JREJEYXRhYmFzZUV4
Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURC
RGF0YWJhc2VFeGNlcHRpb24KK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24gIT0gbnVsbCBpcyB0
cnVlCitpbmRleGVkREIub3BlbignY3Vyc29yLWNvbnRpbnVlJykKIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAogZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQogdHJhbnMgPSBldmVudC50YXJn
ZXQucmVzdWx0CkBAIC0zMCw3ICszNiw3IEBAIG9iamVjdFN0b3JlLmFkZCh7J3gnOiB0ZXN0RGF0
YVtuZXh0VG9BZGRdfSwgbmV4dFRvQWRkKQogb2JqZWN0U3RvcmUuYWRkKHsneCc6IHRlc3REYXRh
W25leHRUb0FkZF19LCBuZXh0VG9BZGQpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogdGVzdERhdGFb
bmV4dFRvQWRkXX0sIG5leHRUb0FkZCkKIAotaW5kZXhPYmplY3Qub3BlbktleUN1cnNvcihudWxs
LCB3ZWJraXRJREJDdXJzb3IuTkVYVCkKK2luZGV4T2JqZWN0Lm9wZW5LZXlDdXJzb3IobnVsbCwg
SURCQ3Vyc29yLk5FWFQpCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSBpcyAw
CiBldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDMuMTQxNTkpCiBQQVNTIGV2ZW50LnRhcmdl
dC5yZXN1bHQucHJpbWFyeUtleSBpcyAzCkBAIC01NSw3ICs2MSw3IEBAIFBBU1MgZXZlbnQudGFy
Z2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlzIDE3CiBldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVl
KCd0aGUgQklHR0VTVCBzdHJpbmcnKQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwK
IAotaW5kZXhPYmplY3Qub3BlbktleUN1cnNvcihudWxsLCB3ZWJraXRJREJDdXJzb3IuUFJFVikK
K2luZGV4T2JqZWN0Lm9wZW5LZXlDdXJzb3IobnVsbCwgSURCQ3Vyc29yLlBSRVYpCiBQQVNTIGV2
ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSBpcyAxNwogZXZlbnQudGFyZ2V0LnJlc3VsdC5j
b250aW51ZSgnQSBiaXQyJykKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlz
IDE1CkBAIC03MSw4ICs3NywyNCBAQCBldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDEpCiBQ
QVNTIGV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSBpcyAxCiBldmVudC50YXJnZXQucmVz
dWx0LmNvbnRpbnVlKDEpCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSBpcyAw
Ci1ldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDEpCitldmVudC50YXJnZXQucmVzdWx0LmNv
bnRpbnVlKCkKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCisKK2luZGV4T2JqZWN0
Lm9wZW5LZXlDdXJzb3IobnVsbCwgSURCQ3Vyc29yLk5FWFQpCitQQVNTIGV2ZW50LnRhcmdldC5y
ZXN1bHQucHJpbWFyeUtleSBpcyAwCitldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDMuMTQx
NTkpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSBpcyAzCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgxKQorUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRB
X0VSUgorCitpbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIElEQkN1cnNvci5QUkVWKQor
UEFTUyBldmVudC50YXJnZXQucmVzdWx0LnByaW1hcnlLZXkgaXMgMTcKK2V2ZW50LnRhcmdldC5y
ZXN1bHQuY29udGludWUoJ0EgYml0MicpCitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFy
eUtleSBpcyAxNQorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGV2ZW50LnRhcmdldC5yZXN1bHQu
Y29udGludWUoJ0EgYml0MycpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2Rl
IGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWwKaW5kZXggZmNhMzZhY2U2OTA1MzhjMWFhOTYy
MGE1ZDQwOGNkNzMwMjQ3M2ZjOC4uNWJkZGNjNmNjNDEyZGEyOTQ0Y2YyZjA0YmIyYzAzODE5MDlh
YTY5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNv
bnRpbnVlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNv
bnRpbnVlLmh0bWwKQEAgLTM1LDEwICszNSwyMSBAQCB3aW5kb3cudGVzdERhdGEgPSBbCiAgICAg
IkEgYml0MyIsCiAgICAgInRoZSBCSUdHRVNUIHN0cmluZyIKIF07Ci0gCisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGV2YWxBbmRMb2coIndpbmRvdy5pbmRleGVkREIgPSB3aW5kb3cuaW5kZXhl
ZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIiKTsKKyAgICBzaG91bGRCZVRydWUoImluZGV4
ZWREQiAhPSBudWxsIik7CisgICAgZXZhbEFuZExvZygid2luZG93LklEQkN1cnNvciA9IHdpbmRv
dy5JREJDdXJzb3IgfHwgd2luZG93LndlYmtpdElEQkN1cnNvciIpOworICAgIHNob3VsZEJlVHJ1
ZSgiSURCQ3Vyc29yICE9IG51bGwiKTsKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cuSURCRGF0YWJh
c2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtp
dElEQkRhdGFiYXNlRXhjZXB0aW9uIik7CisgICAgc2hvdWxkQmVUcnVlKCJJREJEYXRhYmFzZUV4
Y2VwdGlvbiAhPSBudWxsIik7CisgICAgb3BlbkRhdGFiYXNlKCk7Cit9CisKIGZ1bmN0aW9uIG9w
ZW5EYXRhYmFzZSgpCiB7Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERC
Lm9wZW4oJ2N1cnNvci1jb250aW51ZScpIik7CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oJ2N1cnNvci1jb250aW51ZScpIik7CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9
IHNldFZlcnNpb247CiAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKIH0KQEAgLTc2LDcgKzg3LDcgQEAgZnVuY3Rpb24gYWRkRGF0YSgpCiBmdW5jdGlvbiBhc2Nl
bmRpbmdUZXN0KCkKIHsKICAgICBkZWJ1ZygiIik7Ci0gICAgdmFyIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIHdlYmtpdElEQkN1cnNvci5ORVhU
KSIpOworICAgIHZhciByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhPYmplY3Qub3BlbktleUN1
cnNvcihudWxsLCBJREJDdXJzb3IuTkVYVCkiKTsKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFz
Y2VuZGluZ0NhbGxiYWNrOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwogICAgIHdpbmRvdy5zdGFnZSA9IDA7CkBAIC0xMzEsNyArMTQyLDcgQEAgZnVuY3Rp
b24gYXNjZW5kaW5nQ2FsbGJhY2soKQogZnVuY3Rpb24gZGVzY2VuZGluZ1Rlc3QoKQogewogICAg
IGRlYnVnKCIiKTsKLSAgICB2YXIgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0Lm9w
ZW5LZXlDdXJzb3IobnVsbCwgd2Via2l0SURCQ3Vyc29yLlBSRVYpIik7CisgICAgdmFyIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIElEQkN1cnNv
ci5QUkVWKSIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVzY2VuZGluZ0NhbGxiYWNrOwog
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHdpbmRv
dy5zdGFnZSA9IDA7CkBAIC0xNjIsMTggKzE3Myw2MiBAQCBmdW5jdGlvbiBkZXNjZW5kaW5nQ2Fs
bGJhY2soKQogICAgICAgICBldmFsQW5kTG9nKCJldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVl
KDEpIik7CiAgICAgfSBlbHNlIGlmICh3aW5kb3cuc3RhZ2UgPT0gNykgewogICAgICAgICBzaG91
bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IiwgIjAiKTsKLSAgICAgICAgZXZh
bEFuZExvZygiZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgxKSIpOworICAgICAgICBldmFs
QW5kTG9nKCJldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKCkiKTsKICAgICB9IGVsc2UgaWYg
KHdpbmRvdy5zdGFnZSA9PSA4KSB7CiAgICAgICAgIHNob3VsZEJlTnVsbCgiZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGFzY2VuZGluZ0Vycm9yVGVzdCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiSWxs
ZWdhbCBzdGFnZS4iKTsKICAgICB9CiAgICAgd2luZG93LnN0YWdlKys7CiB9Ci0gCi1vcGVuRGF0
YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0ZXAuCisKK2Z1bmN0aW9uIGFzY2VuZGluZ0Vycm9yVGVz
dCgpCit7CisgICAgZGVidWcoIiIpOworICAgIHZhciByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhPYmplY3Qub3BlbktleUN1cnNvcihudWxsLCBJREJDdXJzb3IuTkVYVCkiKTsKKyAgICB3aW5k
b3cuc3RhZ2UgPSAwOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3
aW5kb3cuc3RhZ2UgPT09IDApIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQu
cmVzdWx0LnByaW1hcnlLZXkiLCAiMCIpOworICAgICAgICAgICAgZXZhbEFuZExvZygiZXZlbnQu
dGFyZ2V0LnJlc3VsdC5jb250aW51ZSgzLjE0MTU5KSIpOworICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5zdGFnZSA9PSAxKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJl
c3VsdC5wcmltYXJ5S2V5IiwgIjMiKTsKKyAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoMSkiLCAiSURCRGF0YWJhc2VFeGNlcHRp
b24uREFUQV9FUlIiKTsKKyAgICAgICAgICAgIGRlc2NlbmRpbmdFcnJvclRlc3QoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgdGVzdEZhaWxlZCgi
SWxsZWdhbCBzdGFnZS4iKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cuc3RhZ2UrKzsKKyAg
ICB9OworfQorCitmdW5jdGlvbiBkZXNjZW5kaW5nRXJyb3JUZXN0KCkKK3sKKyAgICBkZWJ1Zygi
Iik7CisgICAgdmFyIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5vcGVuS2V5Q3Vy
c29yKG51bGwsIElEQkN1cnNvci5QUkVWKSIpOworICAgIHdpbmRvdy5zdGFnZSA9IDA7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5zdGFnZSA9PSAwKSB7
CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5Iiwg
IjE3Iik7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJldmVudC50YXJnZXQucmVzdWx0LmNvbnRp
bnVlKCdBIGJpdDInKSIpOworICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5zdGFnZSA9PSAxKSB7
CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5Iiwg
IjE1Iik7CisgICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJldmVudC50YXJnZXQu
cmVzdWx0LmNvbnRpbnVlKCdBIGJpdDMnKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VS
UiIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICB0ZXN0RmFpbGVkKCJJbGxlZ2FsIHN0YWdlLiIpOworICAgICAg
ICB9CisgICAgICAgIHdpbmRvdy5zdGFnZSsrOworICAgIH07Cit9CisKK3Rlc3QoKTsKICAKIDwv
c2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118656</attachid>
            <date>2011-12-09 15:22:04 -0800</date>
            <delta_ts>2012-01-09 16:13:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74213-20111209152203.patch</filename>
            <type>text/plain</type>
            <size>9538</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NmMmNiM2YzNDEzNGVm
OWUxNzYyYjBhNWQzZjZiMTZmZTE1MTE5YS4uYjg0MzQ0M2QzNzUwM2FhNTM0YzMwOTUyYzQxNDE1
YzQ2N2JmY2M3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTEyLTA5ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBUaHJv
dyBleGNlcHRpb24gaWYgSURCQ3Vyc29yLmNvbnRpbnVlKCkgY2FsbGVkIHdpdGggbG93ZXIga2V5
IHRoYW4gY3VycmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQyMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb24pOgorCiAyMDExLTEyLTA4
ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29kZUdlbmVy
YXRvclY4OiBGaXggaXNzdWUgd2l0aCBvdmVybG9hZGVkIHN0YXRpYyBjb25kaXRpb25hbCBtZXRo
b2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
CmluZGV4IDEwODdkOTE0Y2M2NTczNmI4NzgyOWI5YzZhMjkxMDZjNGZhYzZlNTcuLjMxNDJkZjE4
ZGU5NDlhZjhmZGY2YjljN2U1MDFlNWMxOTAxMjA5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC05MSw2ICs5MSwyMiBAQCB2b2lk
IElEQkN1cnNvckJhY2tlbmRJbXBsOjp1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHZhbHVlLCBQYXNzUgogdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVG
dW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gcHJwQ2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8SURCS2V5
PiBrZXkgPSBwcnBLZXk7CisKKyAgICBpZiAobV9jdXJzb3IgJiYga2V5KSB7CisgICAgICAgIEFT
U0VSVChtX2N1cnNvci0+a2V5KCkpOworICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gSURCQ3Vy
c29yOjpORVhUIHx8IG1fZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUp
IHsKKyAgICAgICAgICAgIGlmIChrZXktPmlzTGVzc1RoYW4obV9jdXJzb3ItPmtleSgpLmdldCgp
KSkgeworICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJS
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChtX2N1cnNvci0+a2V5KCktPmlzTGVzc1RoYW4oa2V5LmdldCgp
KSkgeworICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJS
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKwogICAgIGlmICghbV90cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKGNyZWF0ZUNhbGxiYWNr
VGFzaygmSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25JbnRlcm5hbCwgdGhp
cywga2V5LCBwcnBDYWxsYmFja3MpKSkKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6Tk9UX0FMTE9XRURfRVJSOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNkN2JjNTg2ZGE5ZGFjZDg3Mjc0YmU2NjYx
OTA0ZjMwZDY0OGRmMDYuLjA2ODg3NWMyMTc0YzE4NjFjOTNmYmY5ODI5YzE2ZGMzYWZlMWMyZmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0wOSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogVGhyb3cgZXhjZXB0aW9uIGlmIElE
QkN1cnNvci5jb250aW51ZSgpIGNhbGxlZCB3aXRoIGxvd2VyIGtleSB0aGFuIGN1cnJlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjEzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1sOgorCiAyMDExLTEyLTA4ICBEb21pbmljIE1h
enpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFjY2Vzc2liaWxpdHk6IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyIHNob3VsZCBzdXBwb3J0IGxpc3RlbmluZyB0byBub3RpZmlj
YXRpb25zIG9uIGFsbCBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0CmluZGV4IDgwYTMzOGM3
NzNhNTg3NDU2MzdlNGVmMmMwMDY4NzBhNTQ5YjQ3YjkuLjY4OWFhYzA1NjVhMjdkYWNkOWJhNmIy
MDk2ZTU2MDhiNjAzMzY1ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDEzIEBA
IFRlc3QgSW5kZXhlZERCJ3MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgd2l0aCBhIGtleSBwYXJhbWV0
ZXIuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotd2Via2l0SW5kZXhlZERCLm9wZW4o
J2N1cnNvci1jb250aW51ZScpCit3aW5kb3cuaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8
fCB3aW5kb3cud2Via2l0SW5kZXhlZERCCitQQVNTIGluZGV4ZWREQiAhPSBudWxsIGlzIHRydWUK
K3dpbmRvdy5JREJDdXJzb3IgPSB3aW5kb3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJREJD
dXJzb3IKK1BBU1MgSURCQ3Vyc29yICE9IG51bGwgaXMgdHJ1ZQord2luZG93LklEQkRhdGFiYXNl
RXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJ
REJEYXRhYmFzZUV4Y2VwdGlvbgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbiAhPSBudWxsIGlz
IHRydWUKK2luZGV4ZWREQi5vcGVuKCdjdXJzb3ItY29udGludWUnKQogZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0CiBkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCiB0cmFucyA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKQEAgLTMwLDcgKzM2LDcgQEAgb2JqZWN0U3RvcmUuYWRkKHsneCc6IHRlc3RE
YXRhW25leHRUb0FkZF19LCBuZXh0VG9BZGQpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogdGVzdERh
dGFbbmV4dFRvQWRkXX0sIG5leHRUb0FkZCkKIG9iamVjdFN0b3JlLmFkZCh7J3gnOiB0ZXN0RGF0
YVtuZXh0VG9BZGRdfSwgbmV4dFRvQWRkKQogCi1pbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51
bGwsIHdlYmtpdElEQkN1cnNvci5ORVhUKQoraW5kZXhPYmplY3Qub3BlbktleUN1cnNvcihudWxs
LCBJREJDdXJzb3IuTkVYVCkKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlz
IDAKIGV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoMy4xNDE1OSkKIFBBU1MgZXZlbnQudGFy
Z2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlzIDMKQEAgLTU1LDcgKzYxLDcgQEAgUEFTUyBldmVudC50
YXJnZXQucmVzdWx0LnByaW1hcnlLZXkgaXMgMTcKIGV2ZW50LnRhcmdldC5yZXN1bHQuY29udGlu
dWUoJ3RoZSBCSUdHRVNUIHN0cmluZycpCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgaXMgbnVs
bAogCi1pbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIHdlYmtpdElEQkN1cnNvci5QUkVW
KQoraW5kZXhPYmplY3Qub3BlbktleUN1cnNvcihudWxsLCBJREJDdXJzb3IuUFJFVikKIFBBU1Mg
ZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlzIDE3CiBldmVudC50YXJnZXQucmVzdWx0
LmNvbnRpbnVlKCdBIGJpdDInKQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0LnByaW1hcnlLZXkg
aXMgMTUKQEAgLTcxLDggKzc3LDI0IEBAIGV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoMSkK
IFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlzIDEKIGV2ZW50LnRhcmdldC5y
ZXN1bHQuY29udGludWUoMSkKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlz
IDAKLWV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoMSkKK2V2ZW50LnRhcmdldC5yZXN1bHQu
Y29udGludWUoKQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwKKworaW5kZXhPYmpl
Y3Qub3BlbktleUN1cnNvcihudWxsLCBJREJDdXJzb3IuTkVYVCkKK1BBU1MgZXZlbnQudGFyZ2V0
LnJlc3VsdC5wcmltYXJ5S2V5IGlzIDAKK2V2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoMy4x
NDE1OSkKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IGlzIDMKK0V4cGVjdGlu
ZyBleGNlcHRpb24gZnJvbSBldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDEpCitQQVNTIEV4
Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRB
VEFfRVJSCisKK2luZGV4T2JqZWN0Lm9wZW5LZXlDdXJzb3IobnVsbCwgSURCQ3Vyc29yLlBSRVYp
CitQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSBpcyAxNworZXZlbnQudGFyZ2V0
LnJlc3VsdC5jb250aW51ZSgnQSBiaXQyJykKK1BBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmlt
YXJ5S2V5IGlzIDE1CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZXZlbnQudGFyZ2V0LnJlc3Vs
dC5jb250aW51ZSgnQSBiaXQzJykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNv
ZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUuaHRtbAppbmRleCBmY2EzNmFjZTY5MDUzOGMxYWE5
NjIwYTVkNDA4Y2Q3MzAyNDczZmM4Li41YmRkY2M2Y2M0MTJkYTI5NDRjZjJmMDRiYjJjMDM4MTkw
OWFhNjkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
Y29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
Y29udGludWUuaHRtbApAQCAtMzUsMTAgKzM1LDIxIEBAIHdpbmRvdy50ZXN0RGF0YSA9IFsKICAg
ICAiQSBiaXQzIiwKICAgICAidGhlIEJJR0dFU1Qgc3RyaW5nIgogXTsKLSAKKworZnVuY3Rpb24g
dGVzdCgpCit7CisgICAgZXZhbEFuZExvZygid2luZG93LmluZGV4ZWREQiA9IHdpbmRvdy5pbmRl
eGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiIpOworICAgIHNob3VsZEJlVHJ1ZSgiaW5k
ZXhlZERCICE9IG51bGwiKTsKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cuSURCQ3Vyc29yID0gd2lu
ZG93LklEQkN1cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yIik7CisgICAgc2hvdWxkQmVU
cnVlKCJJREJDdXJzb3IgIT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2coIndpbmRvdy5JREJEYXRh
YmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Vi
a2l0SURCRGF0YWJhc2VFeGNlcHRpb24iKTsKKyAgICBzaG91bGRCZVRydWUoIklEQkRhdGFiYXNl
RXhjZXB0aW9uICE9IG51bGwiKTsKKyAgICBvcGVuRGF0YWJhc2UoKTsKK30KKwogZnVuY3Rpb24g
b3BlbkRhdGFiYXNlKCkKIHsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ3ZWJraXRJbmRleGVk
REIub3BlbignY3Vyc29yLWNvbnRpbnVlJykiKTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbignY3Vyc29yLWNvbnRpbnVlJykiKTsKICAgICByZXN1bHQub25zdWNjZXNz
ID0gc2V0VmVyc2lvbjsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwogfQpAQCAtNzYsNyArODcsNyBAQCBmdW5jdGlvbiBhZGREYXRhKCkKIGZ1bmN0aW9uIGFz
Y2VuZGluZ1Rlc3QoKQogewogICAgIGRlYnVnKCIiKTsKLSAgICB2YXIgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4T2JqZWN0Lm9wZW5LZXlDdXJzb3IobnVsbCwgd2Via2l0SURCQ3Vyc29yLk5F
WFQpIik7CisgICAgdmFyIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5vcGVuS2V5
Q3Vyc29yKG51bGwsIElEQkN1cnNvci5ORVhUKSIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
YXNjZW5kaW5nQ2FsbGJhY2s7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CiAgICAgd2luZG93LnN0YWdlID0gMDsKQEAgLTEzMSw3ICsxNDIsNyBAQCBmdW5j
dGlvbiBhc2NlbmRpbmdDYWxsYmFjaygpCiBmdW5jdGlvbiBkZXNjZW5kaW5nVGVzdCgpCiB7CiAg
ICAgZGVidWcoIiIpOwotICAgIHZhciByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhPYmplY3Qu
b3BlbktleUN1cnNvcihudWxsLCB3ZWJraXRJREJDdXJzb3IuUFJFVikiKTsKKyAgICB2YXIgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0Lm9wZW5LZXlDdXJzb3IobnVsbCwgSURCQ3Vy
c29yLlBSRVYpIik7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZXNjZW5kaW5nQ2FsbGJhY2s7
CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgd2lu
ZG93LnN0YWdlID0gMDsKQEAgLTE2MiwxOCArMTczLDYyIEBAIGZ1bmN0aW9uIGRlc2NlbmRpbmdD
YWxsYmFjaygpCiAgICAgICAgIGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5yZXN1bHQuY29udGlu
dWUoMSkiKTsKICAgICB9IGVsc2UgaWYgKHdpbmRvdy5zdGFnZSA9PSA3KSB7CiAgICAgICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LnByaW1hcnlLZXkiLCAiMCIpOwotICAgICAgICBl
dmFsQW5kTG9nKCJldmVudC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDEpIik7CisgICAgICAgIGV2
YWxBbmRMb2coImV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoKSIpOwogICAgIH0gZWxzZSBp
ZiAod2luZG93LnN0YWdlID09IDgpIHsKICAgICAgICAgc2hvdWxkQmVOdWxsKCJldmVudC50YXJn
ZXQucmVzdWx0Iik7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgYXNjZW5kaW5nRXJyb3JUZXN0
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9IGVsc2UgewogICAgICAgICB0ZXN0RmFpbGVkKCJJ
bGxlZ2FsIHN0YWdlLiIpOwogICAgIH0KICAgICB3aW5kb3cuc3RhZ2UrKzsKIH0KLSAKLW9wZW5E
YXRhYmFzZSgpOyAvLyBUaGUgZmlyc3Qgc3RlcC4KKworZnVuY3Rpb24gYXNjZW5kaW5nRXJyb3JU
ZXN0KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdmFyIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKG51bGwsIElEQkN1cnNvci5ORVhUKSIpOworICAgIHdp
bmRvdy5zdGFnZSA9IDA7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYg
KHdpbmRvdy5zdGFnZSA9PT0gMCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdl
dC5yZXN1bHQucHJpbWFyeUtleSIsICIwIik7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJldmVu
dC50YXJnZXQucmVzdWx0LmNvbnRpbnVlKDMuMTQxNTkpIik7CisgICAgICAgIH0gZWxzZSBpZiAo
d2luZG93LnN0YWdlID09IDEpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQu
cmVzdWx0LnByaW1hcnlLZXkiLCAiMyIpOworICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigiZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgxKSIsICJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5EQVRBX0VSUiIpOworICAgICAgICAgICAgZGVzY2VuZGluZ0Vycm9yVGVzdCgpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICB0ZXN0RmFpbGVk
KCJJbGxlZ2FsIHN0YWdlLiIpOworICAgICAgICB9CisgICAgICAgIHdpbmRvdy5zdGFnZSsrOwor
ICAgIH07Cit9CisKK2Z1bmN0aW9uIGRlc2NlbmRpbmdFcnJvclRlc3QoKQoreworICAgIGRlYnVn
KCIiKTsKKyAgICB2YXIgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0Lm9wZW5LZXlD
dXJzb3IobnVsbCwgSURCQ3Vyc29yLlBSRVYpIik7CisgICAgd2luZG93LnN0YWdlID0gMDsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAod2luZG93LnN0YWdlID09IDAp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LnByaW1hcnlLZXki
LCAiMTciKTsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5yZXN1bHQuY29u
dGludWUoJ0EgYml0MicpIik7CisgICAgICAgIH0gZWxzZSBpZiAod2luZG93LnN0YWdlID09IDEp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LnByaW1hcnlLZXki
LCAiMTUiKTsKKyAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImV2ZW50LnRhcmdl
dC5yZXN1bHQuY29udGludWUoJ0EgYml0MycpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFf
RVJSIik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgIHRlc3RGYWlsZWQoIklsbGVnYWwgc3RhZ2UuIik7CisgICAg
ICAgIH0KKyAgICAgICAgd2luZG93LnN0YWdlKys7CisgICAgfTsKK30KKwordGVzdCgpOwogIAog
PC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>