<?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>80358</bug_id>
          
          <creation_ts>2012-03-05 17:19:39 -0800</creation_ts>
          <short_desc>[Chromium] IndexedDB: V8LocalContext creation in IDBKey extraction/injection is slow</short_desc>
          <delta_ts>2012-03-07 14:30:11 -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>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>arv</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>dslomov</cc>
    
    <cc>japhet</cc>
    
    <cc>levin+threading</cc>
    
    <cc>michaeln</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571236</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-05 17:19:39 -0800</bug_when>
    <thetext>[Chromium] IndexedDB: V8LocalContext creation in IDBKey extraction/injection is slow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571241</commentid>
    <comment_count>1</comment_count>
      <attachid>130244</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-05 17:21:14 -0800</bug_when>
    <thetext>Created attachment 130244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571245</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-05 17:24:15 -0800</bug_when>
    <thetext>Dmitry, can you take a pre-review look at this CL and see if seems at all reasonable?

When profiling with chrome://tracing the V8LocalContext creation was taking more than 90% of the time in these functions, and these functions represent the bulk of the time spent in the IndexedDB calls. With this change, time spent in IPC (renderer-&gt;browser, browser-&gt;utility) becomes the dominant factor. I don&apos;t have benchmarks yet, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571938</commentid>
    <comment_count>3</comment_count>
      <attachid>130244</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2012-03-06 10:02:47 -0800</bug_when>
    <thetext>Comment on attachment 130244
Patch

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

&gt; Source/WebCore/bindings/v8/IDBBindingUtilities.cpp:173
&gt; +        AtomicallyInitializedStatic(ThreadSpecific&lt;PersistentContext&gt;*, instance = new ThreadSpecific&lt;PersistentContext&gt;);

I am not too happy about this. This will break if we will ever execute under 2 different v8 isolates on the same thread (you cannot share contexts between isolates because they have different heaps). Admittedly  we do not do this today :)
One solution to that would be to cache the context in V8BindingPerIsolateData instead. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572038</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 11:55:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; I am not too happy about this. This will break if we will ever execute under 2 different v8 isolates on the same thread (you cannot share contexts between isolates because they have different heaps). Admittedly  we do not do this today :)
&gt; One solution to that would be to cache the context in V8BindingPerIsolateData instead. What do you think?

I have no preference as to where we should cache the context; I&apos;ll look into V8BindingPerIsolateData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572203</commentid>
    <comment_count>5</comment_count>
      <attachid>130451</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 15:27:36 -0800</bug_when>
    <thetext>Created attachment 130451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572212</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 15:35:30 -0800</bug_when>
    <thetext>With a simple benchmark (1000 puts of an object into a store using a keyPath), the both the put() operations and the transaction tasks saw a 3-4x speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572218</commentid>
    <comment_count>7</comment_count>
      <attachid>130451</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2012-03-06 15:42:43 -0800</bug_when>
    <thetext>Comment on attachment 130451
Patch

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

LGTM

&gt; Source/WebCore/bindings/v8/IDBBindingUtilities.cpp:151
&gt; +class V8AuxiliaryContext {

Remove V8LocalContext and replace all usages with V8AuxiliaryContext?
(I see that the only other usages are in IDB tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572246</commentid>
    <comment_count>8</comment_count>
      <attachid>130461</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 16:12:57 -0800</bug_when>
    <thetext>Created attachment 130461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572247</commentid>
    <comment_count>9</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 16:14:02 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Source/WebCore/bindings/v8/IDBBindingUtilities.cpp:151
&gt; &gt; +class V8AuxiliaryContext {
&gt; 
&gt; Remove V8LocalContext and replace all usages with V8AuxiliaryContext?
&gt; (I see that the only other usages are in IDB tests)

Ah, nice. *delete* *delete*

Also clear out the context explicitly in the V8BindingPerIsolateData destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572251</commentid>
    <comment_count>10</comment_count>
      <attachid>130461</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2012-03-06 16:20:39 -0800</bug_when>
    <thetext>Comment on attachment 130461
Patch

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

Still LGTM :)

&gt; Source/WebCore/bindings/v8/V8Binding.cpp:64
&gt; +        m_auxiliaryContext.Dispose();

Not strictly necessary since isolate is going down anyway but nice to have

&gt; Source/WebCore/bindings/v8/V8Utilities.cpp:68
&gt; +    V8BindingPerIsolateData::ensureInitialized(v8::Isolate::GetCurrent());

Tests won&apos;t pass without this?
(if they won&apos;t let&apos;s have it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572286</commentid>
    <comment_count>11</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 16:57:44 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 130461 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130461&amp;action=review
&gt; 
&gt; Still LGTM :)
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8Binding.cpp:64
&gt; &gt; +        m_auxiliaryContext.Dispose();
&gt; 
&gt; Not strictly necessary since isolate is going down anyway but nice to have

Ah, right - even Persistent&lt;&gt; handles are necessarily scoped to an isolate. (Learning as I go.)

&gt; &gt; Source/WebCore/bindings/v8/V8Utilities.cpp:68
&gt; &gt; +    V8BindingPerIsolateData::ensureInitialized(v8::Isolate::GetCurrent());
&gt; 
&gt; Tests won&apos;t pass without this?
&gt; (if they won&apos;t let&apos;s have it)

Layout tests (under DRT) were hitting this w/o it:

# Fatal error in ../../v8/src/isolate.h, line 439
# CHECK(isolate != __null) failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572292</commentid>
    <comment_count>12</comment_count>
      <attachid>130461</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 17:05:09 -0800</bug_when>
    <thetext>Comment on attachment 130461
Patch

Hrm, now I&apos;m seeing DRT crash on that check *with* that line. I must have mucked something up, so removing the r? for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572301</commentid>
    <comment_count>13</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-06 17:13:07 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 130461 [details])
&gt; Hrm, now I&apos;m seeing DRT crash on that check *with* that line. I must have mucked something up, so removing the r? for now.

Huh, it was actually the destructor addition intermittently hitting that CHECK during the layout tests. Removed both, but need to run the full suite of tests before re-upping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572316</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2012-03-06 17:23:04 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 130461 [details] [details])
&gt; &gt; Hrm, now I&apos;m seeing DRT crash on that check *with* that line. I must have mucked something up, so removing the r? for now.
&gt; 
&gt; Huh, it was actually the destructor addition intermittently hitting that CHECK during the layout tests. Removed both, but need to run the full suite of tests before re-upping.

Oh right the destructor is called *after* isolate exited.

Make sure that IDB unit test runs without ensureInitialized as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572746</commentid>
    <comment_count>15</comment_count>
      <attachid>130461</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 03:14:51 -0800</bug_when>
    <thetext>Comment on attachment 130461
Patch

Attachment 130461 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11837943

New failing tests:
storage/indexeddb/objectstore-count.html
storage/indexeddb/index-count.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573060</commentid>
    <comment_count>16</comment_count>
      <attachid>130658</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-07 11:35:54 -0800</bug_when>
    <thetext>Created attachment 130658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573062</commentid>
    <comment_count>17</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-07 11:37:32 -0800</bug_when>
    <thetext>Okay, this time for sure. Removed the cargo-cultisms. Specifically layout tests and webkit_unit_tests (IDBKeyFromValueAndKeyPathTest.*) that were concerns before, as well as the usual suite.

abarth@ or tony@, r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573091</commentid>
    <comment_count>18</comment_count>
      <attachid>130658</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2012-03-07 11:57:47 -0800</bug_when>
    <thetext>Comment on attachment 130658
Patch

Still LGTM :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573244</commentid>
    <comment_count>19</comment_count>
      <attachid>130658</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 14:30:05 -0800</bug_when>
    <thetext>Comment on attachment 130658
Patch

Clearing flags on attachment: 130658

Committed r110104: &lt;http://trac.webkit.org/changeset/110104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573245</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 14:30:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130244</attachid>
            <date>2012-03-05 17:21:14 -0800</date>
            <delta_ts>2012-03-06 15:27:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80358-20120305172113.patch</filename>
            <type>text/plain</type>
            <size>4105</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY3MzEzOGRjYTg4ZGY4
MzMzYjhlN2Y5ZmYwZDYyNmUyZTk3NmY3MC4uNjkzYzY3NDA3MzAxZjg0MzA5MGU4M2FlYWU0MTFh
YmY3Njg0ODgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBJbmRl
eGVkREI6IFY4TG9jYWxDb250ZXh0IGNyZWF0aW9uIGluIElEQktleSBleHRyYWN0aW9uL2luamVj
dGlvbiBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDM1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhY2luZy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChWOENhY2hlZENvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhDYWNoZWRDb250ZXh0OjpWOENhY2hlZENvbnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhDYWNoZWRDb250ZXh0Ojp+VjhDYWNoZWRDb250ZXh0KToKKyAgICAgICAg
KFBlcnNpc3RlbnRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q2FjaGVkQ29udGV4dDo6
UGVyc2lzdGVudENvbnRleHQ6OlBlcnNpc3RlbnRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4Q2FjaGVkQ29udGV4dDo6UGVyc2lzdGVudENvbnRleHQ6OmNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6VjhDYWNoZWRDb250ZXh0OjpjYWNoZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUlEQktleUZyb21TZXJpYWxpemVkVmFsdWVBbmRLZXlQYXRoKToKKyAgICAgICAg
KFdlYkNvcmU6OmluamVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUpOgorCiAyMDEyLTAzLTAx
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBDaHJvbWUgMTggZmFp
bHMgaHRtbDV0ZXN0LmNvbSBYSFIgQmxvYiByZXNwb25zZSB0ZXN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFjaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFjaW5nLmgKaW5kZXggZTFiM2VmNjBmYzQ2MjBmYmVj
MzA5N2Q3ZWYzODE0NzdkMTM3OTc4Mi4uODM2MWQ1MDdhZTVhMDRlNDQyMWYyMjRiZWU3ZTIzY2I4
ZTkyNThhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhY2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYWNp
bmcuaApAQCAtMzUsMTAgKzM1LDE0IEBACiAKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjZGVm
aW5lIElEQl9UUkFDRShhKSBUUkFDRV9FVkVOVDAoIkluZGV4ZWREQiIsIChhKSk7CisjZGVmaW5l
IElEQl9UUkFDRV9CRUdJTihhKSBUUkFDRV9FVkVOVF9CRUdJTjAoIkluZGV4ZWREQiIsIChhKSk7
CisjZGVmaW5lIElEQl9UUkFDRV9FTkQoYSkgVFJBQ0VfRVZFTlRfRU5EMCgiSW5kZXhlZERCIiwg
KGEpKTsKIAogI2Vsc2UKIAogI2RlZmluZSBJREJfVFJBQ0UoYSkgKCh2b2lkKTApCisjZGVmaW5l
IElEQl9UUkFDRV9CRUdJTihhKSAoKHZvaWQpMCkKKyNkZWZpbmUgSURCX1RSQUNFX0VORChhKSAo
KHZvaWQpMCkKIAogI2VuZGlmIC8vICBQTEFURk9STShDSFJPTUlVTSkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRleCBiNGVl
Njk1ZmI5YTI5ZGUxZmMwY2FmOGViYTY4YTk4ZjEzOGRhOWY0Li4wMTYwMDZiNDM4ZGNkZmQ3NTVl
ZGYxMWVmZWVlODY4YzVkMjk1MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMTQ4LDEwICsxNDgsNDEgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGVuc3VyZU50aFZhbHVlT25LZXlQYXRoKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiYgcm9vdFZhbHVlLAogCiB9IC8vIGFub255bW91cyBuYW1lc3BhY2UKIAorY2xhc3MgVjhD
YWNoZWRDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBWOENhY2hlZENvbnRleHQoKQorICAgIHsKKyAg
ICAgICAgY2FjaGVkQ29udGV4dCgpLT5FbnRlcigpOworICAgIH0KKyAgICB+VjhDYWNoZWRDb250
ZXh0KCkKKyAgICB7CisgICAgICAgIGNhY2hlZENvbnRleHQoKS0+RXhpdCgpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBjbGFzcyBQZXJzaXN0ZW50Q29udGV4dCB7CisgICAgcHVibGljOgorICAg
ICAgICBQZXJzaXN0ZW50Q29udGV4dCgpIDogbV9jb250ZXh0KHY4OjpDb250ZXh0OjpOZXcoKSkg
eyB9CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgY29udGV4dCgpIHsgcmV0
dXJuIG1fY29udGV4dDsgfQorICAgIHByaXZhdGU6CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4
OjpDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgfTsKKworICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVu
dDx2ODo6Q29udGV4dD4mIGNhY2hlZENvbnRleHQoKQorICAgIHsKKyAgICAgICAgQXRvbWljYWxs
eUluaXRpYWxpemVkU3RhdGljKFRocmVhZFNwZWNpZmljPFBlcnNpc3RlbnRDb250ZXh0PiosIGlu
c3RhbmNlID0gbmV3IFRocmVhZFNwZWNpZmljPFBlcnNpc3RlbnRDb250ZXh0Pik7CisgICAgICAg
IHJldHVybiAoKmluc3RhbmNlKS0+Y29udGV4dCgpOworICAgIH0KKworICAgIHY4OjpIYW5kbGVT
Y29wZSBtX2hhbmRsZVNjb3BlOworfTsKKwogUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktl
eUZyb21TZXJpYWxpemVkVmFsdWVBbmRLZXlQYXRoKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGtleVBhdGgpCiB7CiAgICAgSURC
X1RSQUNFKCJjcmVhdGVJREJLZXlGcm9tU2VyaWFsaXplZFZhbHVlQW5kS2V5UGF0aCIpOwotICAg
IFY4TG9jYWxDb250ZXh0IGxvY2FsQ29udGV4dDsKKyAgICBJREJfVFJBQ0VfQkVHSU4oIlY4Q29u
dGV4dCIpOworICAgIFY4Q2FjaGVkQ29udGV4dCBjb250ZXh0OworICAgIElEQl9UUkFDRV9FTkQo
IlY4Q29udGV4dCIpOwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OFZhbHVlKHZhbHVlLT5k
ZXNlcmlhbGl6ZSgpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhLZXkoZ2V0TnRoVmFs
dWVPbktleVBhdGgodjhWYWx1ZSwga2V5UGF0aCwga2V5UGF0aC5zaXplKCkpKTsKICAgICBpZiAo
djhLZXkuSXNFbXB0eSgpKQpAQCAtMTYyLDcgKzE5Myw5IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBj
cmVhdGVJREJLZXlGcm9tU2VyaWFsaXplZFZhbHVlQW5kS2V5UGF0aChQYXNzUmVmUHRyPFNlcmlh
bGl6CiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gaW5qZWN0SURCS2V5SW50b1Nl
cmlhbGl6ZWRWYWx1ZShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBrZXlQYXRoKQogewog
ICAgIElEQl9UUkFDRSgiaW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZSIpOwotICAgIFY4
TG9jYWxDb250ZXh0IGxvY2FsQ29udGV4dDsKKyAgICBJREJfVFJBQ0VfQkVHSU4oIlY4Q29udGV4
dCIpOworICAgIFY4Q2FjaGVkQ29udGV4dCBjb250ZXh0OworICAgIElEQl9UUkFDRV9FTkQoIlY4
Q29udGV4dCIpOwogICAgIGlmICgha2V5UGF0aC5zaXplKCkpCiAgICAgICAgIHJldHVybiAwOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130451</attachid>
            <date>2012-03-06 15:27:36 -0800</date>
            <delta_ts>2012-03-06 16:12:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80358-20120306152735.patch</filename>
            <type>text/plain</type>
            <size>4180</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVlMWE0NGUyODRmZDdl
NzQ3MDYyMTQ0ZmUxMDcxYWE5NmZlOTgwZi4uNTgwYzA4N2ExMmE5NDA5MGZlNWVhNGMyZTI4YjQ3
YjZhNTRhOGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAzLTA2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBJbmRl
eGVkREI6IFY4TG9jYWxDb250ZXh0IGNyZWF0aW9uIGluIElEQktleSBleHRyYWN0aW9uL2luamVj
dGlvbiBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDM1OAorCisgICAgICAgIENhY2hlIGEgcmUtdXNhYmxlIGNvbnRleHQgKHBlciBpc29s
YXRlKSBmb3IgY2FzZXMgbGlrZSBJREIncyBrZXkvU1NWIGV4dHJhY3Rpb24vaW5qZWN0aW9uLAor
ICAgICAgICB3aGVyZSBubyB1c2VyIHNjcmlwdCBpcyBydW4uIFRoaXMgeWllbGRzIGEgM3gtNHgg
cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4gYmFzaWMgSURCCisgICAgICAgIG9wZXJhdGlvbnMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIC0gbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoVjhBdXhpbGlhcnlDb250ZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4QXV4aWxpYXJ5Q29udGV4dDo6VjhBdXhpbGlhcnlDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OlY4QXV4aWxpYXJ5Q29udGV4dDo6flY4QXV4aWxpYXJ5Q29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpWOEF1eGlsaWFyeUNvbnRleHQ6OmF1eGlsaWFyeUNvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlG
cm9tU2VyaWFsaXplZFZhbHVlQW5kS2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjppbmplY3RJ
REJLZXlJbnRvU2VyaWFsaXplZFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRp
bmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjphdXhpbGlh
cnlDb250ZXh0KToKKyAgICAgICAgKFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKToKKwogMjAxMi0w
My0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBV
VEYgY2hhcnMgcHJpbnRlZCBiYWNrIGZyb20gY29va2llIHRocm91Z2ggcGhwIHNob3dzIGFzID8/
PwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxp
dGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVz
LmNwcAppbmRleCBiNGVlNjk1ZmI5YTI5ZGUxZmMwY2FmOGViYTY4YTk4ZjEzOGRhOWY0Li45M2E2
NzNjMWJhYmY5MWE4ODYxNDRkYjZmNDAxYTdhMDA5NTVlMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMTQ4LDEwICsx
NDgsMzMgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuc3VyZU50aFZhbHVlT25LZXlQYXRoKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiYgcm9vdFZhbHVlLAogCiB9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKIAorY2xhc3MgVjhBdXhpbGlhcnlDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBWOEF1eGlsaWFy
eUNvbnRleHQoKQorICAgIHsKKyAgICAgICAgYXV4aWxpYXJ5Q29udGV4dCgpLT5FbnRlcigpOwor
ICAgIH0KKyAgICB+VjhBdXhpbGlhcnlDb250ZXh0KCkKKyAgICB7CisgICAgICAgIGF1eGlsaWFy
eUNvbnRleHQoKS0+RXhpdCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgdjg6OlBl
cnNpc3RlbnQ8djg6OkNvbnRleHQ+JiBhdXhpbGlhcnlDb250ZXh0KCkKKyAgICB7CisgICAgICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgY29udGV4dCA9IFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhOjpjdXJyZW50KCktPmF1eGlsaWFyeUNvbnRleHQoKTsKKyAgICAgICAgaWYgKGNvbnRl
eHQuSXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGV4dCA9IHY4OjpDb250ZXh0OjpOZXcoKTsK
KyAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgfQorCisgICAgdjg6OkhhbmRsZVNjb3BlIG1f
aGFuZGxlU2NvcGU7Cit9OworCiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNl
cmlhbGl6ZWRWYWx1ZUFuZEtleVBhdGgoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHZhbHVlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYga2V5UGF0aCkKIHsKICAgICBJREJfVFJBQ0Uo
ImNyZWF0ZUlEQktleUZyb21TZXJpYWxpemVkVmFsdWVBbmRLZXlQYXRoIik7Ci0gICAgVjhMb2Nh
bENvbnRleHQgbG9jYWxDb250ZXh0OworICAgIFY4QXV4aWxpYXJ5Q29udGV4dCBjb250ZXh0Owog
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OFZhbHVlKHZhbHVlLT5kZXNlcmlhbGl6ZSgpKTsK
ICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhLZXkoZ2V0TnRoVmFsdWVPbktleVBhdGgodjhW
YWx1ZSwga2V5UGF0aCwga2V5UGF0aC5zaXplKCkpKTsKICAgICBpZiAodjhLZXkuSXNFbXB0eSgp
KQpAQCAtMTYyLDcgKzE4NSw3IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9t
U2VyaWFsaXplZFZhbHVlQW5kS2V5UGF0aChQYXNzUmVmUHRyPFNlcmlhbGl6CiBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gaW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZShQ
YXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
dmFsdWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBrZXlQYXRoKQogewogICAgIElEQl9UUkFDRSgi
aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZSIpOwotICAgIFY4TG9jYWxDb250ZXh0IGxv
Y2FsQ29udGV4dDsKKyAgICBWOEF1eGlsaWFyeUNvbnRleHQgY29udGV4dDsKICAgICBpZiAoIWtl
eVBhdGguc2l6ZSgpKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAppbmRleCAwYmI1ZTkzNmIzNzk3NTNlMTdkYmU5NDQ1N2E2ZDRhMzVkMGI2
NGFlLi45NTk3ZmFhMjA3Yzc5N2Q5MjM2YjFkYzZkYTg3OWRkYjU2ZmFjM2RhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMTI5LDYgKzEyOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgRE9NRGF0YUxpc3QmIGFsbFN0b3JlcygpIHsgcmV0dXJuIG1f
ZG9tRGF0YUxpc3Q7IH0KIAogICAgICAgICBWOEhpZGRlblByb3BlcnR5TmFtZSogaGlkZGVuUHJv
cGVydHlOYW1lKCkgeyByZXR1cm4gJm1faGlkZGVuUHJvcGVydHlOYW1lOyB9CisgICAgICAgIHY4
OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgYXV4aWxpYXJ5Q29udGV4dCgpIHsgcmV0dXJuIG1f
YXV4aWxpYXJ5Q29udGV4dDsgfQogCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJET01EYXRhU3RvcmUo
RE9NRGF0YVN0b3JlKiBkb21EYXRhU3RvcmUpIAogICAgICAgICB7CkBAIC0xNjksNiArMTcwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBET01EYXRhU3RvcmUqIG1fZG9tRGF0YVN0
b3JlOwogCiAgICAgICAgIFY4SGlkZGVuUHJvcGVydHlOYW1lIG1faGlkZGVuUHJvcGVydHlOYW1l
OworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4dD4gbV9hdXhpbGlhcnlDb250ZXh0
OwogCiAgICAgICAgIGJvb2wgbV9jb25zdHJ1Y3Rvck1vZGU7CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBDb25zdHJ1Y3Rvck1vZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130461</attachid>
            <date>2012-03-06 16:12:57 -0800</date>
            <delta_ts>2012-03-07 11:35:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80358-20120306161255.patch</filename>
            <type>text/plain</type>
            <size>9233</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVlMWE0NGUyODRmZDdl
NzQ3MDYyMTQ0ZmUxMDcxYWE5NmZlOTgwZi4uOGZlNGE0YjlhYjU5YzViZGIyNGM1ODI5YWY0YjZh
MGNlYjcwNjA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTA2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBJbmRl
eGVkREI6IFY4TG9jYWxDb250ZXh0IGNyZWF0aW9uIGluIElEQktleSBleHRyYWN0aW9uL2luamVj
dGlvbiBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDM1OAorCisgICAgICAgIENhY2hlIGEgcmUtdXNhYmxlIGNvbnRleHQgKHBlciBpc29s
YXRlKSBmb3IgY2FzZXMgbGlrZSBJREIncyBrZXkvU1NWIGV4dHJhY3Rpb24vaW5qZWN0aW9uLAor
ICAgICAgICB3aGVyZSBubyB1c2VyIHNjcmlwdCBpcyBydW4uIFRoaXMgeWllbGRzIGEgM3gtNHgg
cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4gYmFzaWMgSURCCisgICAgICAgIG9wZXJhdGlvbnMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIC0gbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSURCS2V5RnJv
bVNlcmlhbGl6ZWRWYWx1ZUFuZEtleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6aW5qZWN0SURC
S2V5SW50b1NlcmlhbGl6ZWRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjp+VjhCaW5k
aW5nUGVySXNvbGF0ZURhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgor
ICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmF1eGlsaWFyeUNvbnRl
eHQpOgorICAgICAgICAoVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QXV4aWxpYXJ5Q29u
dGV4dDo6VjhBdXhpbGlhcnlDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4QXV4aWxpYXJ5
Q29udGV4dDo6flY4QXV4aWxpYXJ5Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpWOEF1eGls
aWFyeUNvbnRleHQ6OmF1eGlsaWFyeUNvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
VXRpbGl0aWVzLmg6CisgICAgICAgIChWOEF1eGlsaWFyeUNvbnRleHQpOgorCiAyMDEyLTAzLTA1
ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVURiBj
aGFycyBwcmludGVkIGJhY2sgZnJvbSBjb29raWUgdGhyb3VnaCBwaHAgc2hvd3MgYXMgPz8/CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGVjZjE2NTM0NDZiYTRiYzM0ZDMyMjJhNTNmMGUy
NjA0MjVlMDQxYzkuLjU1OTNhYWNkZmJjMDdmNDZkNWYwNjAyNjAxOTJjNjhjNjExM2MxMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMDYgIEpv
c2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIElu
ZGV4ZWREQjogVjhMb2NhbENvbnRleHQgY3JlYXRpb24gaW4gSURCS2V5IGV4dHJhY3Rpb24vaW5q
ZWN0aW9uIGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwMzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB0ZXN0cy9JREJCaW5kaW5nVXRpbGl0aWVzVGVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpURVNUKToKKwogMjAxMi0wMy0wNSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUGFzcyBXZWJOYXZpZ2F0aW9uUG9saWN5IHRvIFdl
YlZpZXdDbGllbnQ6OmNyZWF0ZVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggYjRlZTY5NWZiOWEyOWRlMWZjMGNhZjhl
YmE2OGE5OGYxMzhkYTlmNC4uOWU2YjEyODQ4ZDg5MmJjOWY2ZTJiYjA1ODA4MmViMzVjNjllMGIz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxp
dGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxp
dGllcy5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5zdXJl
TnRoVmFsdWVPbktleVBhdGgodjg6OkhhbmRsZTx2ODo6VmFsdWU+JiByb290VmFsdWUsCiBQYXNz
UmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNlcmlhbGl6ZWRWYWx1ZUFuZEtleVBhdGgo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYga2V5UGF0aCkKIHsKICAgICBJREJfVFJBQ0UoImNyZWF0ZUlEQktleUZyb21TZXJpYWxp
emVkVmFsdWVBbmRLZXlQYXRoIik7Ci0gICAgVjhMb2NhbENvbnRleHQgbG9jYWxDb250ZXh0Owor
ICAgIFY4QXV4aWxpYXJ5Q29udGV4dCBjb250ZXh0OwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2OFZhbHVlKHZhbHVlLT5kZXNlcmlhbGl6ZSgpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdjhLZXkoZ2V0TnRoVmFsdWVPbktleVBhdGgodjhWYWx1ZSwga2V5UGF0aCwga2V5UGF0aC5z
aXplKCkpKTsKICAgICBpZiAodjhLZXkuSXNFbXB0eSgpKQpAQCAtMTYyLDcgKzE2Miw3IEBAIFBh
c3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tU2VyaWFsaXplZFZhbHVlQW5kS2V5UGF0
aChQYXNzUmVmUHRyPFNlcmlhbGl6CiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBrZXlQYXRoKQogewogICAgIElEQl9UUkFDRSgiaW5qZWN0SURCS2V5SW50b1NlcmlhbGl6
ZWRWYWx1ZSIpOwotICAgIFY4TG9jYWxDb250ZXh0IGxvY2FsQ29udGV4dDsKKyAgICBWOEF1eGls
aWFyeUNvbnRleHQgY29udGV4dDsKICAgICBpZiAoIWtleVBhdGguc2l6ZSgpKQogICAgICAgICBy
ZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXgg
NGZkNjcyZjQ1ODE4NGQ4NmQyZDgyNzlkNmU2ZGFmZTZkMzMzOTkyMi4uOTEwM2YxODNjNGQ5MzFj
ZDJiYzRlODRkMzRiZjNkODU0YjUxZWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuY3BwCkBAIC02MCw2ICs2MCw4IEBAIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIAogVjhCaW5kaW5n
UGVySXNvbGF0ZURhdGE6On5WOEJpbmRpbmdQZXJJc29sYXRlRGF0YSgpCiB7CisgICAgaWYgKCFt
X2F1eGlsaWFyeUNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICBtX2F1eGlsaWFyeUNvbnRleHQu
RGlzcG9zZSgpOwogfQogCiBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogVjhCaW5kaW5nUGVySXNv
bGF0ZURhdGE6OmNyZWF0ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggMGJiNWU5MzZiMzc5NzUzZTE3ZGJlOTQ0NTdhNmQ0YTM1
ZDBiNjRhZS4uOTU5N2ZhYTIwN2M3OTdkOTIzNmIxZGM2ZGE4NzlkZGI1NmZhYzNkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTURhdGFMaXN0JiBhbGxTdG9yZXMoKSB7IHJldHVy
biBtX2RvbURhdGFMaXN0OyB9CiAKICAgICAgICAgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUqIGhpZGRl
blByb3BlcnR5TmFtZSgpIHsgcmV0dXJuICZtX2hpZGRlblByb3BlcnR5TmFtZTsgfQorICAgICAg
ICB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4dD4mIGF1eGlsaWFyeUNvbnRleHQoKSB7IHJldHVy
biBtX2F1eGlsaWFyeUNvbnRleHQ7IH0KIAogICAgICAgICB2b2lkIHJlZ2lzdGVyRE9NRGF0YVN0
b3JlKERPTURhdGFTdG9yZSogZG9tRGF0YVN0b3JlKSAKICAgICAgICAgewpAQCAtMTY5LDYgKzE3
MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRE9NRGF0YVN0b3JlKiBtX2RvbURh
dGFTdG9yZTsKIAogICAgICAgICBWOEhpZGRlblByb3BlcnR5TmFtZSBtX2hpZGRlblByb3BlcnR5
TmFtZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+IG1fYXV4aWxpYXJ5Q29u
dGV4dDsKIAogICAgICAgICBib29sIG1fY29uc3RydWN0b3JNb2RlOwogICAgICAgICBmcmllbmQg
Y2xhc3MgQ29uc3RydWN0b3JNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGls
aXRpZXMuY3BwCmluZGV4IGE1Y2Y2ZDkzY2M5ZjkyYTRjODgyODJiZjQ0NjczM2JjYzY0ODQ1NTUu
LmQ5YmFlZTlmYjBiYjk1NmU1ODdiYmU0ODNkNzUwNWJmYTY2MmE0MzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAgLTUzLDE4ICs1MywyMyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVY4TG9jYWxDb250ZXh0OjpWOExvY2FsQ29udGV4dCgpCi0g
ICAgOiBtX2NvbnRleHQodjg6OkNvbnRleHQ6Ok5ldygpKQorVjhBdXhpbGlhcnlDb250ZXh0OjpW
OEF1eGlsaWFyeUNvbnRleHQoKQogewotICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjplbnN1
cmVJbml0aWFsaXplZCh2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKLSAgICBtX2NvbnRleHQt
PkVudGVyKCk7CisgICAgYXV4aWxpYXJ5Q29udGV4dCgpLT5FbnRlcigpOwogfQogCitWOEF1eGls
aWFyeUNvbnRleHQ6On5WOEF1eGlsaWFyeUNvbnRleHQoKQoreworICAgIGF1eGlsaWFyeUNvbnRl
eHQoKS0+RXhpdCgpOworfQogCi1WOExvY2FsQ29udGV4dDo6flY4TG9jYWxDb250ZXh0KCkKK3Y4
OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgVjhBdXhpbGlhcnlDb250ZXh0OjphdXhpbGlhcnlD
b250ZXh0KCkKIHsKLSAgICBtX2NvbnRleHQtPkV4aXQoKTsKLSAgICBtX2NvbnRleHQuRGlzcG9z
ZSgpOworICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCh2ODo6
SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4dD4m
IGNvbnRleHQgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5hdXhpbGlhcnlD
b250ZXh0KCk7CisgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICBjb250ZXh0ID0g
djg6OkNvbnRleHQ6Ok5ldygpOworICAgIHJldHVybiBjb250ZXh0OwogfQogCiAvLyBVc2UgYW4g
YXJyYXkgdG8gaG9sZCBkZXBlbmRlbnRzLiBJdCB3b3JrcyBsaWtlIGEgcmVmLWNvdW50ZWQgc2No
ZW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgKaW5kZXggOTk1NmZh
NTNlZDYwMGJlNzZjNTg2MjAwNDJmOTI1M2Q1NTBjYTI5NS4uYmY3NTc3NTM0ZjQ3ODZmZTNmM2Uz
NzdkOWM4MTQ2OGM2MmM0MDRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxp
dGllcy5oCkBAIC03MCwxMyArNzAsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdHlw
ZWRlZiB1bnNpZ25lZCBDYWxsYmFja0FsbG93ZWRWYWx1ZUZsYWdzOwogCi0gICAgY2xhc3MgVjhM
b2NhbENvbnRleHQgeworICAgIGNsYXNzIFY4QXV4aWxpYXJ5Q29udGV4dCB7CiAgICAgcHVibGlj
OgotICAgICAgICBWOExvY2FsQ29udGV4dCgpOwotICAgICAgICB2aXJ0dWFsIH5WOExvY2FsQ29u
dGV4dCgpOworICAgICAgICBWOEF1eGlsaWFyeUNvbnRleHQoKTsKKyAgICAgICAgdmlydHVhbCB+
VjhBdXhpbGlhcnlDb250ZXh0KCk7CiAgICAgcHJpdmF0ZToKICAgICAgICAgdjg6OkhhbmRsZVNj
b3BlIG1faGFuZGxlU2NvcGU7Ci0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiBt
X2NvbnRleHQ7CisgICAgICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4dD4mIGF1
eGlsaWFyeUNvbnRleHQoKTsKICAgICB9OwogCiAgICAgdHlwZWRlZiBXVEY6OlZlY3RvcjxSZWZQ
dHI8TWVzc2FnZVBvcnQ+LCAxPiBNZXNzYWdlUG9ydEFycmF5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJCaW5kaW5nVXRpbGl0aWVzVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcAppbmRl
eCBhZGNlYWRmMDgwNTI4Y2Q3ZWM4ZjJkMThkNzJlZWQ0NWNkMDFhMDI5Li5kNjAyOTVhNWZiNDNl
NTMzNjFjMDcyNjEyYTVlNDM4NThlNjZjMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcApAQCAtOTUsNyAr
OTUsNyBAQCB2b2lkIGNoZWNrS2V5UGF0aE51bWJlclZhbHVlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogdmFsdWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aAogCiBURVNUKElEQktleUZyb21WYWx1ZUFu
ZEtleVBhdGhUZXN0LCBUb3BMZXZlbFByb3BlcnR5U3RyaW5nVmFsdWUpCiB7Ci0gICAgVjhMb2Nh
bENvbnRleHQgdjhjb250ZXh0OworICAgIFY4QXV4aWxpYXJ5Q29udGV4dCB2OGNvbnRleHQ7CiAg
ICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAg
IG9iamVjdC0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiZm9vIiksIHY4OjpTdHJpbmc6Ok5ldygiem9v
IikpOwogCkBAIC0xMDcsNyArMTA3LDcgQEAgVEVTVChJREJLZXlGcm9tVmFsdWVBbmRLZXlQYXRo
VGVzdCwgVG9wTGV2ZWxQcm9wZXJ0eVN0cmluZ1ZhbHVlKQogCiBURVNUKElEQktleUZyb21WYWx1
ZUFuZEtleVBhdGhUZXN0LCBUb3BMZXZlbFByb3BlcnR5TnVtYmVyVmFsdWUpCiB7Ci0gICAgVjhM
b2NhbENvbnRleHQgdjhjb250ZXh0OworICAgIFY4QXV4aWxpYXJ5Q29udGV4dCB2OGNvbnRleHQ7
CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOwog
ICAgIG9iamVjdC0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiZm9vIiksIHY4OjpOdW1iZXI6Ok5ldyg0
NTYpKTsKIApAQCAtMTE5LDcgKzExOSw3IEBAIFRFU1QoSURCS2V5RnJvbVZhbHVlQW5kS2V5UGF0
aFRlc3QsIFRvcExldmVsUHJvcGVydHlOdW1iZXJWYWx1ZSkKIAogVEVTVChJREJLZXlGcm9tVmFs
dWVBbmRLZXlQYXRoVGVzdCwgU3ViUHJvcGVydHkpCiB7Ci0gICAgVjhMb2NhbENvbnRleHQgdjhj
b250ZXh0OworICAgIFY4QXV4aWxpYXJ5Q29udGV4dCB2OGNvbnRleHQ7CiAgICAgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBzdWJQcm9wZXJ0eSA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAgIHN1YlByb3Bl
cnR5LT5TZXQodjg6OlN0cmluZzo6TmV3KCJiYXIiKSwgdjg6OlN0cmluZzo6TmV3KCJ6ZWUiKSk7
CkBAIC0xMzMsNyArMTMzLDcgQEAgVEVTVChJREJLZXlGcm9tVmFsdWVBbmRLZXlQYXRoVGVzdCwg
U3ViUHJvcGVydHkpCiAKIFRFU1QoSW5qZWN0SURCS2V5VGVzdCwgVG9wTGV2ZWxQcm9wZXJ0eVN0
cmluZ1ZhbHVlKQogewotICAgIFY4TG9jYWxDb250ZXh0IHY4Y29udGV4dDsKKyAgICBWOEF1eGls
aWFyeUNvbnRleHQgdjhjb250ZXh0OwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3Qg
PSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICBvYmplY3QtPlNldCh2ODo6U3RyaW5nOjpOZXcoImZv
byIpLCB2ODo6U3RyaW5nOjpOZXcoInpvbyIpKTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIFRFU1Qo
SW5qZWN0SURCS2V5VGVzdCwgVG9wTGV2ZWxQcm9wZXJ0eVN0cmluZ1ZhbHVlKQogCiBURVNUKElu
amVjdElEQktleVRlc3QsIFN1YlByb3BlcnR5KQogewotICAgIFY4TG9jYWxDb250ZXh0IHY4Y29u
dGV4dDsKKyAgICBWOEF1eGlsaWFyeUNvbnRleHQgdjhjb250ZXh0OwogICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICB2ODo6TG9jYWw8djg6
Ok9iamVjdD4gc3ViUHJvcGVydHkgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICBzdWJQcm9wZXJ0
eS0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiYmFyIiksIHY4OjpTdHJpbmc6Ok5ldygiemVlIikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130658</attachid>
            <date>2012-03-07 11:35:54 -0800</date>
            <delta_ts>2012-03-07 14:30:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80358-20120307113552.patch</filename>
            <type>text/plain</type>
            <size>8437</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZkN2U1NjU4ZTIyYWZj
NmUxMjc1ZjlkNzk2ZTUxNTk0NjcyNGMwNy4uYjBhMmIxYjEzMmM1ODk2YzNkMDJiNTMwMzBhMmQy
NzRiNWIzMTZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTA3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBJbmRl
eGVkREI6IFY4TG9jYWxDb250ZXh0IGNyZWF0aW9uIGluIElEQktleSBleHRyYWN0aW9uL2luamVj
dGlvbiBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDM1OAorCisgICAgICAgIENhY2hlIGEgcmUtdXNhYmxlIGNvbnRleHQgKHBlciBpc29s
YXRlKSBmb3IgY2FzZXMgbGlrZSBJREIncyBrZXkvU1NWIGV4dHJhY3Rpb24vaW5qZWN0aW9uLAor
ICAgICAgICB3aGVyZSBubyB1c2VyIHNjcmlwdCBpcyBydW4uIFRoaXMgeWllbGRzIGEgM3gtNHgg
cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4gYmFzaWMgSURCCisgICAgICAgIG9wZXJhdGlvbnMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIC0gbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSURCS2V5RnJv
bVNlcmlhbGl6ZWRWYWx1ZUFuZEtleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6aW5qZWN0SURC
S2V5SW50b1NlcmlhbGl6ZWRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5n
Lmg6CisgICAgICAgIChXZWJDb3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6YXV4aWxpYXJ5
Q29udGV4dCk6CisgICAgICAgIChWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBdXhpbGlh
cnlDb250ZXh0OjpWOEF1eGlsaWFyeUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6VjhBdXhp
bGlhcnlDb250ZXh0Ojp+VjhBdXhpbGlhcnlDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4
QXV4aWxpYXJ5Q29udGV4dDo6YXV4aWxpYXJ5Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhVdGlsaXRpZXMuaDoKKyAgICAgICAgKFY4QXV4aWxpYXJ5Q29udGV4dCk6CisKIDIwMTIt
MDMtMDcgIEFydW4gUGF0b2xlICA8Ym1mODM0QG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBIVE1M
VHJhY2tFbGVtZW50LmlkbCBkb2Vzbid0IGhhdmUgZGVmYXVsdCBhdHRyaWJ1dGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDYzMmZkZjllYTJkNzFjYTk5NjUwNWI4MDczMzBiNjVmMTFk
MmMxZDYuLmE2MDcxZmYwZjc3ZjJjZDZhNjA3MTY2Yjc2OTIyZjU0ZGE2MTM0ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMDcgIEpvc2h1YSBC
ZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEluZGV4ZWRE
QjogVjhMb2NhbENvbnRleHQgY3JlYXRpb24gaW4gSURCS2V5IGV4dHJhY3Rpb24vaW5qZWN0aW9u
IGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgwMzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB0ZXN0cy9JREJCaW5kaW5nVXRpbGl0aWVzVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
RVNUKToKKwogMjAxMi0wMy0wNiAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIEFkZCBjbGlwcGluZyB0byBzY2lzc29yIHJlY3QgdG8gQ0NP
Y2NsdXNpb25UcmFja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9J
REJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IGI0ZWU2OTVmYjlhMjlkZTFmYzBjYWY4ZWJhNjhhOThm
MTM4ZGE5ZjQuLjllNmIxMjg0OGQ4OTJiYzlmNmUyYmIwNTgwODJlYjM1YzY5ZTBiMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
CkBAIC0xNTEsNyArMTUxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuc3VyZU50aFZhbHVl
T25LZXlQYXRoKHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgcm9vdFZhbHVlLAogUGFzc1JlZlB0cjxJ
REJLZXk+IGNyZWF0ZUlEQktleUZyb21TZXJpYWxpemVkVmFsdWVBbmRLZXlQYXRoKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGtl
eVBhdGgpCiB7CiAgICAgSURCX1RSQUNFKCJjcmVhdGVJREJLZXlGcm9tU2VyaWFsaXplZFZhbHVl
QW5kS2V5UGF0aCIpOwotICAgIFY4TG9jYWxDb250ZXh0IGxvY2FsQ29udGV4dDsKKyAgICBWOEF1
eGlsaWFyeUNvbnRleHQgY29udGV4dDsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhWYWx1
ZSh2YWx1ZS0+ZGVzZXJpYWxpemUoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4S2V5
KGdldE50aFZhbHVlT25LZXlQYXRoKHY4VmFsdWUsIGtleVBhdGgsIGtleVBhdGguc2l6ZSgpKSk7
CiAgICAgaWYgKHY4S2V5LklzRW1wdHkoKSkKQEAgLTE2Miw3ICsxNjIsNyBAQCBQYXNzUmVmUHRy
PElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNlcmlhbGl6ZWRWYWx1ZUFuZEtleVBhdGgoUGFzc1Jl
ZlB0cjxTZXJpYWxpegogUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGluamVjdElE
QktleUludG9TZXJpYWxpemVkVmFsdWUoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYga2V5
UGF0aCkKIHsKICAgICBJREJfVFJBQ0UoImluamVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUi
KTsKLSAgICBWOExvY2FsQ29udGV4dCBsb2NhbENvbnRleHQ7CisgICAgVjhBdXhpbGlhcnlDb250
ZXh0IGNvbnRleHQ7CiAgICAgaWYgKCFrZXlQYXRoLnNpemUoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggMGJiNWU5MzZiMzc5
NzUzZTE3ZGJlOTQ0NTdhNmQ0YTM1ZDBiNjRhZS4uOTU5N2ZhYTIwN2M3OTdkOTIzNmIxZGM2ZGE4
NzlkZGI1NmZhYzNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAg
LTEyOSw2ICsxMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTURhdGFMaXN0
JiBhbGxTdG9yZXMoKSB7IHJldHVybiBtX2RvbURhdGFMaXN0OyB9CiAKICAgICAgICAgVjhIaWRk
ZW5Qcm9wZXJ0eU5hbWUqIGhpZGRlblByb3BlcnR5TmFtZSgpIHsgcmV0dXJuICZtX2hpZGRlblBy
b3BlcnR5TmFtZTsgfQorICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4dD4mIGF1eGls
aWFyeUNvbnRleHQoKSB7IHJldHVybiBtX2F1eGlsaWFyeUNvbnRleHQ7IH0KIAogICAgICAgICB2
b2lkIHJlZ2lzdGVyRE9NRGF0YVN0b3JlKERPTURhdGFTdG9yZSogZG9tRGF0YVN0b3JlKSAKICAg
ICAgICAgewpAQCAtMTY5LDYgKzE3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
RE9NRGF0YVN0b3JlKiBtX2RvbURhdGFTdG9yZTsKIAogICAgICAgICBWOEhpZGRlblByb3BlcnR5
TmFtZSBtX2hpZGRlblByb3BlcnR5TmFtZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNv
bnRleHQ+IG1fYXV4aWxpYXJ5Q29udGV4dDsKIAogICAgICAgICBib29sIG1fY29uc3RydWN0b3JN
b2RlOwogICAgICAgICBmcmllbmQgY2xhc3MgQ29uc3RydWN0b3JNb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IGE1Y2Y2ZDkzY2M5ZjkyYTRjODgy
ODJiZjQ0NjczM2JjYzY0ODQ1NTUuLmYzMGE0N2M1MzNiZTA3MDZiMzNjMjljNjI1ZTk2N2M2NTMw
Mjk1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAg
LTUzLDE4ICs1MywyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVY4TG9jYWxDb250ZXh0
OjpWOExvY2FsQ29udGV4dCgpCi0gICAgOiBtX2NvbnRleHQodjg6OkNvbnRleHQ6Ok5ldygpKQor
VjhBdXhpbGlhcnlDb250ZXh0OjpWOEF1eGlsaWFyeUNvbnRleHQoKQogewotICAgIFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCh2ODo6SXNvbGF0ZTo6R2V0Q3VycmVu
dCgpKTsKLSAgICBtX2NvbnRleHQtPkVudGVyKCk7CisgICAgYXV4aWxpYXJ5Q29udGV4dCgpLT5F
bnRlcigpOwogfQogCitWOEF1eGlsaWFyeUNvbnRleHQ6On5WOEF1eGlsaWFyeUNvbnRleHQoKQor
eworICAgIGF1eGlsaWFyeUNvbnRleHQoKS0+RXhpdCgpOworfQogCi1WOExvY2FsQ29udGV4dDo6
flY4TG9jYWxDb250ZXh0KCkKK3Y4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYgVjhBdXhpbGlh
cnlDb250ZXh0OjphdXhpbGlhcnlDb250ZXh0KCkKIHsKLSAgICBtX2NvbnRleHQtPkV4aXQoKTsK
LSAgICBtX2NvbnRleHQuRGlzcG9zZSgpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0
PiYgY29udGV4dCA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmF1eGlsaWFy
eUNvbnRleHQoKTsKKyAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgIGNvbnRleHQg
PSB2ODo6Q29udGV4dDo6TmV3KCk7CisgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKIC8vIFVzZSBh
biBhcnJheSB0byBob2xkIGRlcGVuZGVudHMuIEl0IHdvcmtzIGxpa2UgYSByZWYtY291bnRlZCBz
Y2hlbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaAppbmRleCA5OTU2
ZmE1M2VkNjAwYmU3NmM1ODYyMDA0MmY5MjUzZDU1MGNhMjk1Li5iZjc1Nzc1MzRmNDc4NmZlM2Yz
ZTM3N2Q5YzgxNDY4YzYyYzQwNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRp
bGl0aWVzLmgKQEAgLTcwLDEzICs3MCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICB0
eXBlZGVmIHVuc2lnbmVkIENhbGxiYWNrQWxsb3dlZFZhbHVlRmxhZ3M7CiAKLSAgICBjbGFzcyBW
OExvY2FsQ29udGV4dCB7CisgICAgY2xhc3MgVjhBdXhpbGlhcnlDb250ZXh0IHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIFY4TG9jYWxDb250ZXh0KCk7Ci0gICAgICAgIHZpcnR1YWwgflY4TG9jYWxD
b250ZXh0KCk7CisgICAgICAgIFY4QXV4aWxpYXJ5Q29udGV4dCgpOworICAgICAgICB2aXJ0dWFs
IH5WOEF1eGlsaWFyeUNvbnRleHQoKTsKICAgICBwcml2YXRlOgogICAgICAgICB2ODo6SGFuZGxl
U2NvcGUgbV9oYW5kbGVTY29wZTsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+
IG1fY29udGV4dDsKKyAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiYg
YXV4aWxpYXJ5Q29udGV4dCgpOwogICAgIH07CiAKICAgICB0eXBlZGVmIFdURjo6VmVjdG9yPFJl
ZlB0cjxNZXNzYWdlUG9ydD4sIDE+IE1lc3NhZ2VQb3J0QXJyYXk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQmluZGluZ1V0aWxpdGllc1Rlc3QuY3BwCmlu
ZGV4IGFkY2VhZGYwODA1MjhjZDdlYzhmMmQxOGQ3MmVlZDQ1Y2QwMWEwMjkuLmQ2MDI5NWE1ZmI0
M2U1MzM2MWMwNzI2MTJhNWU0Mzg1OGU2NmMyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCQmluZGluZ1V0aWxpdGllc1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQmluZGluZ1V0aWxpdGllc1Rlc3QuY3BwCkBAIC05NSw3
ICs5NSw3IEBAIHZvaWQgY2hlY2tLZXlQYXRoTnVtYmVyVmFsdWUoU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoCiAKIFRFU1QoSURCS2V5RnJvbVZhbHVl
QW5kS2V5UGF0aFRlc3QsIFRvcExldmVsUHJvcGVydHlTdHJpbmdWYWx1ZSkKIHsKLSAgICBWOExv
Y2FsQ29udGV4dCB2OGNvbnRleHQ7CisgICAgVjhBdXhpbGlhcnlDb250ZXh0IHY4Y29udGV4dDsK
ICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6Ok9iamVjdDo6TmV3KCk7CiAg
ICAgb2JqZWN0LT5TZXQodjg6OlN0cmluZzo6TmV3KCJmb28iKSwgdjg6OlN0cmluZzo6TmV3KCJ6
b28iKSk7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCBURVNUKElEQktleUZyb21WYWx1ZUFuZEtleVBh
dGhUZXN0LCBUb3BMZXZlbFByb3BlcnR5U3RyaW5nVmFsdWUpCiAKIFRFU1QoSURCS2V5RnJvbVZh
bHVlQW5kS2V5UGF0aFRlc3QsIFRvcExldmVsUHJvcGVydHlOdW1iZXJWYWx1ZSkKIHsKLSAgICBW
OExvY2FsQ29udGV4dCB2OGNvbnRleHQ7CisgICAgVjhBdXhpbGlhcnlDb250ZXh0IHY4Y29udGV4
dDsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6Ok9iamVjdDo6TmV3KCk7
CiAgICAgb2JqZWN0LT5TZXQodjg6OlN0cmluZzo6TmV3KCJmb28iKSwgdjg6Ok51bWJlcjo6TmV3
KDQ1NikpOwogCkBAIC0xMTksNyArMTE5LDcgQEAgVEVTVChJREJLZXlGcm9tVmFsdWVBbmRLZXlQ
YXRoVGVzdCwgVG9wTGV2ZWxQcm9wZXJ0eU51bWJlclZhbHVlKQogCiBURVNUKElEQktleUZyb21W
YWx1ZUFuZEtleVBhdGhUZXN0LCBTdWJQcm9wZXJ0eSkKIHsKLSAgICBWOExvY2FsQ29udGV4dCB2
OGNvbnRleHQ7CisgICAgVjhBdXhpbGlhcnlDb250ZXh0IHY4Y29udGV4dDsKICAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6Ok9iamVjdDo6TmV3KCk7CiAgICAgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IHN1YlByb3BlcnR5ID0gdjg6Ok9iamVjdDo6TmV3KCk7CiAgICAgc3ViUHJv
cGVydHktPlNldCh2ODo6U3RyaW5nOjpOZXcoImJhciIpLCB2ODo6U3RyaW5nOjpOZXcoInplZSIp
KTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBURVNUKElEQktleUZyb21WYWx1ZUFuZEtleVBhdGhUZXN0
LCBTdWJQcm9wZXJ0eSkKIAogVEVTVChJbmplY3RJREJLZXlUZXN0LCBUb3BMZXZlbFByb3BlcnR5
U3RyaW5nVmFsdWUpCiB7Ci0gICAgVjhMb2NhbENvbnRleHQgdjhjb250ZXh0OworICAgIFY4QXV4
aWxpYXJ5Q29udGV4dCB2OGNvbnRleHQ7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG9iamVj
dCA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAgIG9iamVjdC0+U2V0KHY4OjpTdHJpbmc6Ok5ldygi
Zm9vIiksIHY4OjpTdHJpbmc6Ok5ldygiem9vIikpOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgVEVT
VChJbmplY3RJREJLZXlUZXN0LCBUb3BMZXZlbFByb3BlcnR5U3RyaW5nVmFsdWUpCiAKIFRFU1Qo
SW5qZWN0SURCS2V5VGVzdCwgU3ViUHJvcGVydHkpCiB7Ci0gICAgVjhMb2NhbENvbnRleHQgdjhj
b250ZXh0OworICAgIFY4QXV4aWxpYXJ5Q29udGV4dCB2OGNvbnRleHQ7CiAgICAgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBzdWJQcm9wZXJ0eSA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAgIHN1YlByb3Bl
cnR5LT5TZXQodjg6OlN0cmluZzo6TmV3KCJiYXIiKSwgdjg6OlN0cmluZzo6TmV3KCJ6ZWUiKSk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>