<?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>111233</bug_id>
          
          <creation_ts>2013-03-01 16:24:38 -0800</creation_ts>
          <short_desc>IndexedDB: Add IDBBackingStoreTest</short_desc>
          <delta_ts>2013-03-05 15:35:43 -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>
          
          <blocked>110820</blocked>
    
    <blocked>111138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>845599</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-01 16:24:38 -0800</bug_when>
    <thetext>IndexedDB: Add IDBBackingStoreTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845601</commentid>
    <comment_count>1</comment_count>
      <attachid>191064</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-01 16:26:08 -0800</bug_when>
    <thetext>Created attachment 191064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845602</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-01 16:27:51 -0800</bug_when>
    <thetext>jsbell / dgrogan - mind taking a look? This will let us do all sorts of things, like programmatically corrupt the DB in different ways beyond just LevelDB corruption.

Note that the headers are weirdly spaced but this is the only way that the webkit-style checker would allow them to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845625</commentid>
    <comment_count>3</comment_count>
      <attachid>191064</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-01 16:48:13 -0800</bug_when>
    <thetext>Comment on attachment 191064
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:13
&gt; +        (WebCore):

Delete these generic lines since they don&apos;t add value to the ChangeLog.

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:47
&gt; +        String pathBase;

Add comment that empty pathBase == in-memory database?

(I may refactor to be an explicit IDBBackingStore::openInMemory so that decision is made in IDBFactory, but that&apos;s uncertain.)

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:59
&gt; +protected:

Blank line before/no blank after?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:73
&gt; +

Extra blank line?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:101
&gt; +        bool ok = m_backingStore-&gt;putRecord(&amp;transaction1, 1UL &lt;&lt; 35, 1UL &lt;&lt; 39, *m_key1.get(), SharedBuffer::create(m_value1.data(), m_value1.size()), &amp;record);

Use consts for 1UL&lt;&lt;35, 1UL&lt;&lt;39 ?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:111
&gt; +        bool ok = m_backingStore-&gt;getRecord(&amp;transaction2, 1UL &lt;&lt; 35, 1UL &lt;&lt; 39, *m_key1.get(), resultValue);

... since they&apos;re repeated here.

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:123
&gt; +    int64_t intVersion = 9;

const for all of these?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:135
&gt; +        bool ok = m_backingStore-&gt;createIDBDatabaseMetaData(&quot;db1&quot;, version, intVersion, databaseId);

constant for &quot;db1&quot; ?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:142
&gt; +        ok = m_backingStore-&gt;createObjectStore(&amp;transaction, databaseId, objectStoreId, &quot;objectStore1&quot;, objectStoreKeyPath, autoIncrement);

EXPECT_TRUE(ok) after this?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:147
&gt; +

Spacing looks weird here.

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:154
&gt; +        bool ok = m_backingStore-&gt;getIDBDatabaseMetaData(&quot;db1&quot;, &amp;database, found);

EXPECT_TRUE(found) ?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:157
&gt; +        // database.name is not filled in by the implementation.

Huh... I wonder why we even have it as a property in IDBMetadata? Ah well.

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:166
&gt; +        EXPECT_EQ(&quot;objectStore1&quot;, objectStore.name);

EXPECT_EQ&apos;s for the other object store properties?

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:173
&gt; +

Lots of extra whitespace here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846621</commentid>
    <comment_count>4</comment_count>
      <attachid>191270</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-04 10:42:13 -0800</bug_when>
    <thetext>Created attachment 191270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846684</commentid>
    <comment_count>5</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-04 11:49:57 -0800</bug_when>
    <thetext>jsbell - ready for another review, all comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846704</commentid>
    <comment_count>6</comment_count>
      <attachid>191270</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-04 12:08:43 -0800</bug_when>
    <thetext>Comment on attachment 191270
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846783</commentid>
    <comment_count>7</comment_count>
      <attachid>191270</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 13:22:02 -0800</bug_when>
    <thetext>Comment on attachment 191270
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp:344
&gt; +    // Only null in tests.

Can we make this comment into an ASSERT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846849</commentid>
    <comment_count>8</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-04 14:22:56 -0800</bug_when>
    <thetext>abarth@ - is there an existing way to do test-only asserts beyond plumbing a boolean value in from our tests + non-test code? I couldn&apos;t find any examples in existing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847040</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 16:57:17 -0800</bug_when>
    <thetext>You can check whether

WebKit::Platform()-&gt;unitTestSupport()

is non-null:

ASSERT(m_factory || WebKit::Platform()-&gt;unitTestSupport());

You might need to wrap that in a PLATFORM(CHROMIUM) ifdef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847053</commentid>
    <comment_count>10</comment_count>
      <attachid>191358</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-04 17:05:41 -0800</bug_when>
    <thetext>Created attachment 191358
Patch

(thanks..) update to detect webkit unit tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847160</commentid>
    <comment_count>11</comment_count>
      <attachid>191358</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 18:35:11 -0800</bug_when>
    <thetext>Comment on attachment 191358
Patch

Attachment 191358 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16930052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847915</commentid>
    <comment_count>12</comment_count>
      <attachid>191535</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-05 12:31:38 -0800</bug_when>
    <thetext>Created attachment 191535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847917</commentid>
    <comment_count>13</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-05 12:32:32 -0800</bug_when>
    <thetext>abarth@ - r? 

(I had to use WebKit::Platform::current() instead of WebKit::Platform())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848010</commentid>
    <comment_count>14</comment_count>
      <attachid>191535</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-05 13:35:53 -0800</bug_when>
    <thetext>Comment on attachment 191535
Patch

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

&gt; Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp:32
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#include &quot;IDBBackingStore.h&quot;
&gt; +
&gt; +#include &quot;SharedBuffer.h&quot;
&gt; +
&gt; +#include &lt;gtest/gtest.h&gt;

So many blank lines!  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848128</commentid>
    <comment_count>15</comment_count>
      <attachid>191535</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-05 15:06:15 -0800</bug_when>
    <thetext>Comment on attachment 191535
Patch

(those blank lines are soley to make the webkit-style checker happy)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848167</commentid>
    <comment_count>16</comment_count>
      <attachid>191535</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 15:35:39 -0800</bug_when>
    <thetext>Comment on attachment 191535
Patch

Clearing flags on attachment: 191535

Committed r144830: &lt;http://trac.webkit.org/changeset/144830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848169</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 15:35:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191064</attachid>
            <date>2013-03-01 16:26:08 -0800</date>
            <delta_ts>2013-03-04 10:42:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111233-20130301162219.patch</filename>
            <type>text/plain</type>
            <size>9550</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYxYWVhMTliMjc0OTJh
Nzk4MDNlZWJjYTU4NzQxMjlkMDgzNWQ1NC4uMWRjYzNhOTcyNzJlYzQ5NWYxZTNiZjQzOGI0M2Q1
ZmFhZjE3N2VmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTAxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCBJREJCYWNraW5nU3RvcmVUZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTEyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBhcmUgdHdlYWtzIHRvIG1ha2UgSURCQmFja2luZ1N0b3JlIG1v
cmUgZWFzaWx5IHRlc3RhYmxlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQmFj
a2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6SURCQmFj
a2luZ1N0b3JlKToKKwogMjAxMy0wMy0wMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NDQ0My4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODUwMmZkYzY0MjBjOWY5ZDYzNTE5ZjNlNjk4
MjJmNTM4MTQwNDE4Yi4uYzRjMzRlZjYxYWU0Yzc1OTljYjk2ZGIxOTZhYTE1OGVmOTBkYjg2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wMy0wMSAg
QWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERC
OiBBZGQgSURCQmFja2luZ1N0b3JlVGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHNvbWUgcmVhbGx5IHNpbXBsZSBJREJCYWNraW5nU3RvcmUg
dGVzdHMKKyAgICAgICAgYXMgYSBzZWVkIGZvciBhZGRpdGlvbmFsIHRlc3RzIGxhdGVyLgorCisg
ICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvSURCQmFja2luZ1N0b3JlVGVz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJREJCYWNraW5nU3Rv
cmVUZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZVRlc3Q6OklEQkJhY2tp
bmdTdG9yZVRlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlVGVzdDo6U2V0
VXApOgorICAgICAgICAoV2ViQ29yZTo6VEVTVF9GKToKKwogMjAxMy0wMy0wMSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE0NDQyMiBhbmQgcjE0NDQyNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDkwOWVlYWU2Njdh
MGY3NmY0NDk1NmM1ZTIzMzFmOGJiOTFmM2EyMWMuLjEwNzUzY2ZmYmE0OTM0Zjc1MjY5Mzc4NWNm
OWQyNDk2MGY0YWYwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcApAQCAtMzQxLDcgKzM0MSw5IEBAIElEQkJhY2tpbmdT
dG9yZTo6SURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgSURCRmFjdG9y
eUJhY2tlbmRJbXBsCiAgICAgLCBtX2ZhY3RvcnkoZmFjdG9yeSkKICAgICAsIG1fZGIoZGIpCiB7
Ci0gICAgbV9mYWN0b3J5LT5hZGRJREJCYWNraW5nU3RvcmUoaWRlbnRpZmllciwgdGhpcyk7Cisg
ICAgLy8gT25seSBudWxsIGluIHRlc3RzLgorICAgIGlmIChtX2ZhY3RvcnkpCisgICAgICAgIG1f
ZmFjdG9yeS0+YWRkSURCQmFja2luZ1N0b3JlKGlkZW50aWZpZXIsIHRoaXMpOwogfQogCiBJREJC
YWNraW5nU3RvcmU6OklEQkJhY2tpbmdTdG9yZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aQppbmRleCAzYWUzYWZlMWEwMTk2MTI2ODYyYmI4YWNlODQwMWNkMjE1MDc0MDgwLi40NmIwMzhj
NjliN2M0ZjFhMzczMzA0NWU4NjdlOTRlYzVkMzg2NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cGkKQEAgLTc1LDYgKzc1LDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9HSUZJbWFnZURl
Y29kZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVt
VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAn
LAorICAgICAgICAgICAgJ3Rlc3RzL0lEQkJhY2tpbmdTdG9yZVRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9JREJCaW5kaW5nVXRpbGl0aWVzVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RzL0lEQkNsZWFudXBPbklPRXJyb3JUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURC
RGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvSURCQmFja2luZ1N0b3JlVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU0MDY4MmEwNDYw
OTNjOTk5YzIwZTViNjdiY2M3MmU3OWMzMzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQmFja2luZ1N0b3JlVGVzdC5jcHAKQEAgLTAsMCArMSwx
NzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJJREJCYWNraW5n
U3RvcmUuaCIKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisjaW5jbHVkZSA8Z3Rlc3Qv
Z3Rlc3QuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgSURCQmFja2luZ1N0b3JlVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICBJREJCYWNraW5nU3RvcmVUZXN0
KCkgeyB9CisgICAgdm9pZCBTZXRVcCgpCisgICAgeworICAgICAgICBTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4gPSAwOworICAgICAgICBtX2ZhY3RvcnkgPSAwOworICAgICAgICBTdHJp
bmcgcGF0aEJhc2U7CisgICAgICAgIFN0cmluZyBmaWxlSWRlbnRpZmllcjsKKyAgICAgICAgbV9i
YWNraW5nU3RvcmUgPSBJREJCYWNraW5nU3RvcmU6Om9wZW4oc2VjdXJpdHlPcmlnaW4sIHBhdGhC
YXNlLCBmaWxlSWRlbnRpZmllciwgbV9mYWN0b3J5KTsKKworICAgICAgICAvLyB1c2VmdWwga2V5
cyBhbmQgdmFsdWVzIGR1cmluZyB0ZXN0cworICAgICAgICBjb25zdCBjaGFyIHJhd1ZhbHVlMVtd
ID0gInZhbHVlMSI7CisgICAgICAgIGNvbnN0IGNoYXIgcmF3VmFsdWUyW10gPSAidmFsdWUyIjsK
KyAgICAgICAgbV92YWx1ZTEuYXBwZW5kKHJhd1ZhbHVlMSwgc2l6ZW9mKHJhd1ZhbHVlMSkpOwor
ICAgICAgICBtX3ZhbHVlMi5hcHBlbmQocmF3VmFsdWUxLCBzaXplb2YocmF3VmFsdWUyKSk7Cisg
ICAgICAgIG1fa2V5MSA9IElEQktleTo6Y3JlYXRlTnVtYmVyKDk5KTsKKyAgICAgICAgbV9rZXky
ID0gSURCS2V5OjpjcmVhdGVTdHJpbmcoImtleTIiKTsKKyAgICB9Citwcm90ZWN0ZWQ6CisKKyAg
ICBJREJGYWN0b3J5QmFja2VuZEltcGwqIG1fZmFjdG9yeTsKKyAgICBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKKworICAgIC8vIFNhbXBsZSBrZXlzIGFuZCB2YWx1ZXMg
dGhhdCBhcmUgY29uc2lzdGVudC4KKyAgICBSZWZQdHI8SURCS2V5PiBtX2tleTE7CisgICAgUmVm
UHRyPElEQktleT4gbV9rZXkyOworICAgIFZlY3RvcjxjaGFyPiBtX3ZhbHVlMTsKKyAgICBWZWN0
b3I8Y2hhcj4gbV92YWx1ZTI7Cit9OworCitURVNUX0YoSURCQmFja2luZ1N0b3JlVGVzdCwgUHV0
R2V0Q29uc2lzdGVuY3kpCit7CisKKyAgICB7CisgICAgICAgIElEQkJhY2tpbmdTdG9yZTo6VHJh
bnNhY3Rpb24gdHJhbnNhY3Rpb24xKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICAgICAgdHJh
bnNhY3Rpb24xLmJlZ2luKCk7CisgICAgICAgIElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRp
ZmllciByZWNvcmQ7CisgICAgICAgIGJvb2wgb2sgPSBtX2JhY2tpbmdTdG9yZS0+cHV0UmVjb3Jk
KCZ0cmFuc2FjdGlvbjEsIDEsIDEsICptX2tleTEuZ2V0KCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KG1fdmFsdWUxLmRhdGEoKSwgbV92YWx1ZTEuc2l6ZSgpKSwgJnJlY29yZCk7CisgICAgICAgIEVY
UEVDVF9UUlVFKG9rKTsKKyAgICAgICAgdHJhbnNhY3Rpb24xLmNvbW1pdCgpOworICAgIH0KKwor
ICAgIHsKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbjIo
bV9iYWNraW5nU3RvcmUuZ2V0KCkpOworICAgICAgICB0cmFuc2FjdGlvbjIuYmVnaW4oKTsKKyAg
ICAgICAgVmVjdG9yPGNoYXI+IHJlc3VsdFZhbHVlOworICAgICAgICBib29sIG9rID0gbV9iYWNr
aW5nU3RvcmUtPmdldFJlY29yZCgmdHJhbnNhY3Rpb24yLCAxLCAxLCAqbV9rZXkxLmdldCgpLCBy
ZXN1bHRWYWx1ZSk7CisgICAgICAgIHRyYW5zYWN0aW9uMi5jb21taXQoKTsKKyAgICAgICAgRVhQ
RUNUX1RSVUUob2spOworICAgICAgICBFWFBFQ1RfRVEobV92YWx1ZTEsIHJlc3VsdFZhbHVlKTsK
KyAgICB9Cit9CisKKy8vIE1ha2Ugc3VyZSB0aGF0IHVzaW5nIHZlcnkgaGlnaCAoIG1vcmUgdGhh
biAzMiBiaXQgKSB2YWx1ZXMgZm9yIGRhdGFiYXNlSWQgYW5kIG9iamVjdFN0b3JlSWQgc3RpbGwg
d29yay4KK1RFU1RfRihJREJCYWNraW5nU3RvcmVUZXN0LCBIaWdoSWRzKQoreworICAgIHsKKyAg
ICAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbjEobV9iYWNraW5n
U3RvcmUuZ2V0KCkpOworICAgICAgICB0cmFuc2FjdGlvbjEuYmVnaW4oKTsKKyAgICAgICAgSURC
QmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyIHJlY29yZDsKKyAgICAgICAgYm9vbCBvayA9
IG1fYmFja2luZ1N0b3JlLT5wdXRSZWNvcmQoJnRyYW5zYWN0aW9uMSwgMVVMIDw8IDM1LCAxVUwg
PDwgMzksICptX2tleTEuZ2V0KCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fdmFsdWUxLmRhdGEo
KSwgbV92YWx1ZTEuc2l6ZSgpKSwgJnJlY29yZCk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsK
KyAgICAgICAgb2sgPSB0cmFuc2FjdGlvbjEuY29tbWl0KCk7CisgICAgICAgIEVYUEVDVF9UUlVF
KG9rKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rp
b24gdHJhbnNhY3Rpb24yKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICAgICAgdHJhbnNhY3Rp
b24yLmJlZ2luKCk7CisgICAgICAgIFZlY3RvcjxjaGFyPiByZXN1bHRWYWx1ZTsKKyAgICAgICAg
Ym9vbCBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRSZWNvcmQoJnRyYW5zYWN0aW9uMiwgMVVMIDw8
IDM1LCAxVUwgPDwgMzksICptX2tleTEuZ2V0KCksIHJlc3VsdFZhbHVlKTsKKyAgICAgICAgRVhQ
RUNUX1RSVUUob2spOworICAgICAgICBvayA9IHRyYW5zYWN0aW9uMi5jb21taXQoKTsKKyAgICAg
ICAgRVhQRUNUX1RSVUUob2spOworICAgICAgICBFWFBFQ1RfRVEobV92YWx1ZTEsIHJlc3VsdFZh
bHVlKTsKKyAgICB9Cit9CisKK1RFU1RfRihJREJCYWNraW5nU3RvcmVUZXN0LCBDcmVhdGVEYXRh
YmFzZSkKK3sKKyAgICBpbnQ2NF90IGRhdGFiYXNlSWQ7CisgICAgU3RyaW5nIHZlcnNpb24oIm9s
ZFN0cmluZ1ZlcnNpb24iKTsKKyAgICBpbnQ2NF90IGludFZlcnNpb24gPSA5OworCisgICAgaW50
NjRfdCBvYmplY3RTdG9yZUlkID0gOTk7CisgICAgYm9vbCBhdXRvSW5jcmVtZW50ID0gdHJ1ZTsK
KyAgICBJREJLZXlQYXRoIG9iamVjdFN0b3JlS2V5UGF0aCgib2JqZWN0U3RvcmVLZXkiKTsKKwor
ICAgIGludDY0X3QgaW5kZXhJZCA9IDk5OTsKKyAgICBib29sIHVuaXF1ZSA9IHRydWU7CisgICAg
Ym9vbCBtdWx0aUVudHJ5ID0gdHJ1ZTsKKyAgICBJREJLZXlQYXRoIGluZGV4S2V5UGF0aCgiaW5k
ZXhLZXkiKTsKKworICAgIHsKKyAgICAgICAgYm9vbCBvayA9IG1fYmFja2luZ1N0b3JlLT5jcmVh
dGVJREJEYXRhYmFzZU1ldGFEYXRhKCJkYjEiLCB2ZXJzaW9uLCBpbnRWZXJzaW9uLCBkYXRhYmFz
ZUlkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob2spOworICAgICAgICBFWFBFQ1RfR1QoZGF0YWJh
c2VJZCwgMCk7CisKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiB0cmFuc2Fj
dGlvbihtX2JhY2tpbmdTdG9yZS5nZXQoKSk7CisgICAgICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7
CisKKyAgICAgICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUoJnRyYW5z
YWN0aW9uLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCAib2JqZWN0U3RvcmUxIiwgb2JqZWN0
U3RvcmVLZXlQYXRoLCBhdXRvSW5jcmVtZW50KTsKKworICAgICAgICBvayA9IG1fYmFja2luZ1N0
b3JlLT5jcmVhdGVJbmRleCgmdHJhbnNhY3Rpb24sIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQs
IGluZGV4SWQsICJpbmRleDEiLCBpbmRleEtleVBhdGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSk7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAgICAgb2sgPSB0cmFuc2FjdGlvbi5jb21taXQo
KTsKKworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAgfQorCisgICAgeworICAgICAgICBJ
REJEYXRhYmFzZU1ldGFkYXRhIGRhdGFiYXNlOworICAgICAgICBib29sIGZvdW5kOworICAgICAg
ICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUtPmdldElEQkRhdGFiYXNlTWV0YURhdGEoImRiMSIs
ICZkYXRhYmFzZSwgZm91bmQpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisKKyAgICAgICAg
Ly8gZGF0YWJhc2UubmFtZSBpcyBub3QgZmlsbGVkIGluIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgICAgRVhQRUNUX0VRKHZlcnNpb24sIGRhdGFiYXNlLnZlcnNpb24pOworICAgICAgICBF
WFBFQ1RfRVEoaW50VmVyc2lvbiwgZGF0YWJhc2UuaW50VmVyc2lvbik7CisgICAgICAgIEVYUEVD
VF9FUShkYXRhYmFzZUlkLCBkYXRhYmFzZS5pZCk7CisKKyAgICAgICAgbV9iYWNraW5nU3RvcmUt
PmdldE9iamVjdFN0b3JlcyhkYXRhYmFzZS5pZCwgJmRhdGFiYXNlLm9iamVjdFN0b3Jlcyk7CisK
KyAgICAgICAgRVhQRUNUX0VRKDEsIGRhdGFiYXNlLm9iamVjdFN0b3Jlcy5zaXplKCkpOworICAg
ICAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG9iamVjdFN0b3JlID0gZGF0YWJhc2Uub2JqZWN0
U3RvcmVzLmdldChvYmplY3RTdG9yZUlkKTsKKyAgICAgICAgRVhQRUNUX0VRKCJvYmplY3RTdG9y
ZTEiLCBvYmplY3RTdG9yZS5uYW1lKTsKKworICAgICAgICBFWFBFQ1RfRVEoMSwgb2JqZWN0U3Rv
cmUuaW5kZXhlcy5zaXplKCkpOworICAgICAgICBJREJJbmRleE1ldGFkYXRhIGluZGV4ID0gb2Jq
ZWN0U3RvcmUuaW5kZXhlcy5nZXQoaW5kZXhJZCk7CisgICAgICAgIEVYUEVDVF9FUSgiaW5kZXgx
IiwgaW5kZXgubmFtZSk7CisKKyAgICB9CisKKworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191270</attachid>
            <date>2013-03-04 10:42:13 -0800</date>
            <delta_ts>2013-03-04 17:05:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111233-20130304103820.patch</filename>
            <type>text/plain</type>
            <size>10086</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYxYWVhMTliMjc0OTJh
Nzk4MDNlZWJjYTU4NzQxMjlkMDgzNWQ1NC4uMzA2ZmYwNzJiNDdmMmZmMjVmOTE1MzFhM2U0YzUw
NTJiMjE3Yjk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTAxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCBJREJCYWNraW5nU3RvcmVUZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTEyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBhcmUgdHdlYWtzIHRvIG1ha2UgSURCQmFja2luZ1N0b3JlIG1v
cmUgZWFzaWx5IHRlc3RhYmxlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQmFj
a2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6SURCQmFj
a2luZ1N0b3JlKTogQWxsb3cgdXNlIHdpdGhvdXQgYSBiYWNraW5nIHN0b3JlLgorCiAyMDEzLTAz
LTAxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ0NDQzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA4NTAyZmRjNjQyMGM5ZjlkNjM1MTlmM2U2OTgyMmY1MzgxNDA0MThiLi4wODgwZTg4
YTJhY2Q2ZmJmOWU2ZjJmNjQ4ODk0MGRlMTZlMzQwM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTAxICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0
QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFkZCBJREJCYWNraW5nU3RvcmVU
ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEy
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c29tZSByZWFsbHkgc2ltcGxlIElEQkJhY2tpbmdTdG9yZSB0ZXN0cworICAgICAgICBhcyBhIHNl
ZWQgZm9yIGFkZGl0aW9uYWwgdGVzdHMgbGF0ZXIuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToK
KyAgICAgICAgKiB0ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0LmNwcDogQWRkZWQuCisKIDIwMTMt
MDMtMDEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDQ0MjIgYW5kIHIxNDQ0MjQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcApp
bmRleCA5MDllZWFlNjY3YTBmNzZmNDQ5NTZjNWUyMzMxZjhiYjkxZjNhMjFjLi4xMDc1M2NmZmJh
NDkzNGY3NTI2OTM3ODVjZjlkMjQ5NjBmNGFmMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTM0MSw3ICszNDEs
OSBAQCBJREJCYWNraW5nU3RvcmU6OklEQkJhY2tpbmdTdG9yZShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIElEQkZhY3RvcnlCYWNrZW5kSW1wbAogICAgICwgbV9mYWN0b3J5KGZhY3RvcnkpCiAg
ICAgLCBtX2RiKGRiKQogewotICAgIG1fZmFjdG9yeS0+YWRkSURCQmFja2luZ1N0b3JlKGlkZW50
aWZpZXIsIHRoaXMpOworICAgIC8vIE9ubHkgbnVsbCBpbiB0ZXN0cy4KKyAgICBpZiAobV9mYWN0
b3J5KQorICAgICAgICBtX2ZhY3RvcnktPmFkZElEQkJhY2tpbmdTdG9yZShpZGVudGlmaWVyLCB0
aGlzKTsKIH0KIAogSURCQmFja2luZ1N0b3JlOjpJREJCYWNraW5nU3RvcmUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggM2FlM2FmZTFhMDE5NjEyNjg2MmJiOGFjZTg0MDFjZDIx
NTA3NDA4MC4uNDZiMDM4YzY5YjdjNGYxYTM3MzMwNDVlODY3ZTk0ZWM1ZDM4NjcyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC03NSw2ICs3NSw3IEBACiAgICAgICAgICAgICAn
dGVzdHMvR0lGSW1hZ2VEZWNvZGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9JREJBYm9ydE9u
Q29ycnVwdFRlc3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURCQmluZGluZ1V0aWxpdGllc1Rlc3QuY3BwJywK
ICAgICAgICAgICAgICd0ZXN0cy9JREJDbGVhbnVwT25JT0Vycm9yVGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQmFja2luZ1N0b3JlVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJhY2tpbmdTdG9yZVRlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFkYWIwMDMwNWZhMWJmNDFlMzllMGVlYmIxN2ZkNmE2OGJmMDJmNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJhY2tpbmdTdG9yZVRlc3Qu
Y3BwCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCisKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKwor
I2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIElEQkJh
Y2tpbmdTdG9yZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CitwdWJsaWM6CisgICAgSURC
QmFja2luZ1N0b3JlVGVzdCgpIHsgfQorICAgIHZvaWQgU2V0VXAoKQorICAgIHsKKyAgICAgICAg
U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0gMDsKKyAgICAgICAgbV9mYWN0b3J5ID0g
MDsKKyAgICAgICAgLy8gRW1wdHkgcGF0aEJhc2UgbWVhbnMgYW4gaW4tbWVtb3J5IGRhdGFiYXNl
LgorICAgICAgICBTdHJpbmcgcGF0aEJhc2U7CisgICAgICAgIFN0cmluZyBmaWxlSWRlbnRpZmll
cjsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBJREJCYWNraW5nU3RvcmU6Om9wZW4oc2VjdXJp
dHlPcmlnaW4sIHBhdGhCYXNlLCBmaWxlSWRlbnRpZmllciwgbV9mYWN0b3J5KTsKKworICAgICAg
ICAvLyB1c2VmdWwga2V5cyBhbmQgdmFsdWVzIGR1cmluZyB0ZXN0cworICAgICAgICBjb25zdCBj
aGFyIHJhd1ZhbHVlMVtdID0gInZhbHVlMSI7CisgICAgICAgIGNvbnN0IGNoYXIgcmF3VmFsdWUy
W10gPSAidmFsdWUyIjsKKyAgICAgICAgbV92YWx1ZTEuYXBwZW5kKHJhd1ZhbHVlMSwgc2l6ZW9m
KHJhd1ZhbHVlMSkpOworICAgICAgICBtX3ZhbHVlMi5hcHBlbmQocmF3VmFsdWUxLCBzaXplb2Yo
cmF3VmFsdWUyKSk7CisgICAgICAgIG1fa2V5MSA9IElEQktleTo6Y3JlYXRlTnVtYmVyKDk5KTsK
KyAgICAgICAgbV9rZXkyID0gSURCS2V5OjpjcmVhdGVTdHJpbmcoImtleTIiKTsKKyAgICB9CisK
K3Byb3RlY3RlZDoKKyAgICBJREJGYWN0b3J5QmFja2VuZEltcGwqIG1fZmFjdG9yeTsKKyAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKKworICAgIC8vIFNhbXBsZSBr
ZXlzIGFuZCB2YWx1ZXMgdGhhdCBhcmUgY29uc2lzdGVudC4KKyAgICBSZWZQdHI8SURCS2V5PiBt
X2tleTE7CisgICAgUmVmUHRyPElEQktleT4gbV9rZXkyOworICAgIFZlY3RvcjxjaGFyPiBtX3Zh
bHVlMTsKKyAgICBWZWN0b3I8Y2hhcj4gbV92YWx1ZTI7Cit9OworCitURVNUX0YoSURCQmFja2lu
Z1N0b3JlVGVzdCwgUHV0R2V0Q29uc2lzdGVuY3kpCit7CisgICAgeworICAgICAgICBJREJCYWNr
aW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uMShtX2JhY2tpbmdTdG9yZS5nZXQoKSk7
CisgICAgICAgIHRyYW5zYWN0aW9uMS5iZWdpbigpOworICAgICAgICBJREJCYWNraW5nU3RvcmU6
OlJlY29yZElkZW50aWZpZXIgcmVjb3JkOworICAgICAgICBib29sIG9rID0gbV9iYWNraW5nU3Rv
cmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rpb24xLCAxLCAxLCAqbV9rZXkxLmdldCgpLCBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShtX3ZhbHVlMS5kYXRhKCksIG1fdmFsdWUxLnNpemUoKSksICZyZWNvcmQp
OworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAgICAgIHRyYW5zYWN0aW9uMS5jb21taXQo
KTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24g
dHJhbnNhY3Rpb24yKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICAgICAgdHJhbnNhY3Rpb24y
LmJlZ2luKCk7CisgICAgICAgIFZlY3RvcjxjaGFyPiByZXN1bHRWYWx1ZTsKKyAgICAgICAgYm9v
bCBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRSZWNvcmQoJnRyYW5zYWN0aW9uMiwgMSwgMSwgKm1f
a2V5MS5nZXQoKSwgcmVzdWx0VmFsdWUpOworICAgICAgICB0cmFuc2FjdGlvbjIuY29tbWl0KCk7
CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAgICAgRVhQRUNUX0VRKG1fdmFsdWUxLCBy
ZXN1bHRWYWx1ZSk7CisgICAgfQorfQorCisvLyBNYWtlIHN1cmUgdGhhdCB1c2luZyB2ZXJ5IGhp
Z2ggKCBtb3JlIHRoYW4gMzIgYml0ICkgdmFsdWVzIGZvciBkYXRhYmFzZUlkIGFuZCBvYmplY3RT
dG9yZUlkIHN0aWxsIHdvcmsuCitURVNUX0YoSURCQmFja2luZ1N0b3JlVGVzdCwgSGlnaElkcykK
K3sKKyAgICBjb25zdCBpbnQ2NF90IGhpZ2hEYXRhYmFzZUlkID0gMVVMIDw8IDM1OworICAgIGNv
bnN0IGludDY0X3QgaGlnaE9iamVjdFN0b3JlSWQgPSAxVUwgPDwgMzk7CisgICAgeworICAgICAg
ICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uMShtX2JhY2tpbmdTdG9y
ZS5nZXQoKSk7CisgICAgICAgIHRyYW5zYWN0aW9uMS5iZWdpbigpOworICAgICAgICBJREJCYWNr
aW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIgcmVjb3JkOworICAgICAgICBib29sIG9rID0gbV9i
YWNraW5nU3RvcmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rpb24xLCBoaWdoRGF0YWJhc2VJZCwgaGln
aE9iamVjdFN0b3JlSWQsICptX2tleTEuZ2V0KCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fdmFs
dWUxLmRhdGEoKSwgbV92YWx1ZTEuc2l6ZSgpKSwgJnJlY29yZCk7CisgICAgICAgIEVYUEVDVF9U
UlVFKG9rKTsKKyAgICAgICAgb2sgPSB0cmFuc2FjdGlvbjEuY29tbWl0KCk7CisgICAgICAgIEVY
UEVDVF9UUlVFKG9rKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24yKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICAgICAg
dHJhbnNhY3Rpb24yLmJlZ2luKCk7CisgICAgICAgIFZlY3RvcjxjaGFyPiByZXN1bHRWYWx1ZTsK
KyAgICAgICAgYm9vbCBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRSZWNvcmQoJnRyYW5zYWN0aW9u
MiwgaGlnaERhdGFiYXNlSWQsIGhpZ2hPYmplY3RTdG9yZUlkLCAqbV9rZXkxLmdldCgpLCByZXN1
bHRWYWx1ZSk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAgICAgb2sgPSB0cmFuc2Fj
dGlvbjIuY29tbWl0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAgICAgRVhQRUNU
X0VRKG1fdmFsdWUxLCByZXN1bHRWYWx1ZSk7CisgICAgfQorfQorCitURVNUX0YoSURCQmFja2lu
Z1N0b3JlVGVzdCwgQ3JlYXRlRGF0YWJhc2UpCit7CisgICAgY29uc3QgU3RyaW5nIGRhdGFiYXNl
TmFtZSgiZGIxIik7CisgICAgaW50NjRfdCBkYXRhYmFzZUlkOworICAgIGNvbnN0IFN0cmluZyB2
ZXJzaW9uKCJvbGRTdHJpbmdWZXJzaW9uIik7CisgICAgY29uc3QgaW50NjRfdCBpbnRWZXJzaW9u
ID0gOTsKKworICAgIGNvbnN0IGludDY0X3Qgb2JqZWN0U3RvcmVJZCA9IDk5OworICAgIGNvbnN0
IFN0cmluZyBvYmplY3RTdG9yZU5hbWUoIm9iamVjdFN0b3JlMSIpOworICAgIGNvbnN0IGJvb2wg
YXV0b0luY3JlbWVudCA9IHRydWU7CisgICAgY29uc3QgSURCS2V5UGF0aCBvYmplY3RTdG9yZUtl
eVBhdGgoIm9iamVjdFN0b3JlS2V5Iik7CisKKyAgICBjb25zdCBpbnQ2NF90IGluZGV4SWQgPSA5
OTk7CisgICAgY29uc3QgU3RyaW5nIGluZGV4TmFtZSgiaW5kZXgxIik7CisgICAgY29uc3QgYm9v
bCB1bmlxdWUgPSB0cnVlOworICAgIGNvbnN0IGJvb2wgbXVsdGlFbnRyeSA9IHRydWU7CisgICAg
Y29uc3QgSURCS2V5UGF0aCBpbmRleEtleVBhdGgoImluZGV4S2V5Iik7CisKKyAgICB7CisgICAg
ICAgIGJvb2wgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShk
YXRhYmFzZU5hbWUsIHZlcnNpb24sIGludFZlcnNpb24sIGRhdGFiYXNlSWQpOworICAgICAgICBF
WFBFQ1RfVFJVRShvayk7CisgICAgICAgIEVYUEVDVF9HVChkYXRhYmFzZUlkLCAwKTsKKworICAg
ICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKG1fYmFja2luZ1N0
b3JlLmdldCgpKTsKKyAgICAgICAgdHJhbnNhY3Rpb24uYmVnaW4oKTsKKworICAgICAgICBvayA9
IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVPYmplY3RTdG9yZSgmdHJhbnNhY3Rpb24sIGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmVLZXlQYXRoLCBh
dXRvSW5jcmVtZW50KTsKKyAgICAgICAgRVhQRUNUX1RSVUUob2spOworCisgICAgICAgIG9rID0g
bV9iYWNraW5nU3RvcmUtPmNyZWF0ZUluZGV4KCZ0cmFuc2FjdGlvbiwgZGF0YWJhc2VJZCwgb2Jq
ZWN0U3RvcmVJZCwgaW5kZXhJZCwgaW5kZXhOYW1lLCBpbmRleEtleVBhdGgsIHVuaXF1ZSwgbXVs
dGlFbnRyeSk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKworICAgICAgICBvayA9IHRyYW5z
YWN0aW9uLmNvbW1pdCgpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAgfQorCisgICAg
eworICAgICAgICBJREJEYXRhYmFzZU1ldGFkYXRhIGRhdGFiYXNlOworICAgICAgICBib29sIGZv
dW5kOworICAgICAgICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUtPmdldElEQkRhdGFiYXNlTWV0
YURhdGEoZGF0YWJhc2VOYW1lLCAmZGF0YWJhc2UsIGZvdW5kKTsKKyAgICAgICAgRVhQRUNUX1RS
VUUob2spOworICAgICAgICBFWFBFQ1RfVFJVRShmb3VuZCk7CisKKyAgICAgICAgLy8gZGF0YWJh
c2UubmFtZSBpcyBub3QgZmlsbGVkIGluIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAg
RVhQRUNUX0VRKHZlcnNpb24sIGRhdGFiYXNlLnZlcnNpb24pOworICAgICAgICBFWFBFQ1RfRVEo
aW50VmVyc2lvbiwgZGF0YWJhc2UuaW50VmVyc2lvbik7CisgICAgICAgIEVYUEVDVF9FUShkYXRh
YmFzZUlkLCBkYXRhYmFzZS5pZCk7CisKKyAgICAgICAgbV9iYWNraW5nU3RvcmUtPmdldE9iamVj
dFN0b3JlcyhkYXRhYmFzZS5pZCwgJmRhdGFiYXNlLm9iamVjdFN0b3Jlcyk7CisKKyAgICAgICAg
RVhQRUNUX0VRKDEsIGRhdGFiYXNlLm9iamVjdFN0b3Jlcy5zaXplKCkpOworICAgICAgICBJREJP
YmplY3RTdG9yZU1ldGFkYXRhIG9iamVjdFN0b3JlID0gZGF0YWJhc2Uub2JqZWN0U3RvcmVzLmdl
dChvYmplY3RTdG9yZUlkKTsKKyAgICAgICAgRVhQRUNUX0VRKG9iamVjdFN0b3JlTmFtZSwgb2Jq
ZWN0U3RvcmUubmFtZSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3RTdG9yZUtleVBhdGgsIG9i
amVjdFN0b3JlLmtleVBhdGgpOworICAgICAgICBFWFBFQ1RfRVEoYXV0b0luY3JlbWVudCwgb2Jq
ZWN0U3RvcmUuYXV0b0luY3JlbWVudCk7CisKKyAgICAgICAgRVhQRUNUX0VRKDEsIG9iamVjdFN0
b3JlLmluZGV4ZXMuc2l6ZSgpKTsKKyAgICAgICAgSURCSW5kZXhNZXRhZGF0YSBpbmRleCA9IG9i
amVjdFN0b3JlLmluZGV4ZXMuZ2V0KGluZGV4SWQpOworICAgICAgICBFWFBFQ1RfRVEoaW5kZXhO
YW1lLCBpbmRleC5uYW1lKTsKKyAgICAgICAgRVhQRUNUX0VRKGluZGV4S2V5UGF0aCwgaW5kZXgu
a2V5UGF0aCk7CisgICAgICAgIEVYUEVDVF9FUSh1bmlxdWUsIGluZGV4LnVuaXF1ZSk7CisgICAg
ICAgIEVYUEVDVF9FUShtdWx0aUVudHJ5LCBpbmRleC5tdWx0aUVudHJ5KTsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191358</attachid>
            <date>2013-03-04 17:05:41 -0800</date>
            <delta_ts>2013-03-05 12:31:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111233-20130304170149.patch</filename>
            <type>text/plain</type>
            <size>10171</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJhMzQ0MmFlYzA1YmJi
Y2M5Y2YzN2RkYzYyZmM1ODBjNTM4MTE4ZC4uMDQ3YWM3YTEzMDVmZGE5M2ZiMzMwMjQ3ZDA2NTIw
OGZkZmVkNDFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTAxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCBJREJCYWNraW5nU3RvcmVUZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTEyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBhcmUgdHdlYWtzIHRvIG1ha2UgSURCQmFja2luZ1N0b3JlIG1v
cmUgZWFzaWx5IHRlc3RhYmxlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQmFj
a2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6SURCQmFj
a2luZ1N0b3JlKTogQWxsb3cgdXNlIHdpdGhvdXQgYSBiYWNraW5nIHN0b3JlLgorCiAyMDEzLTAz
LTA0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgRmxhbWUgQ2hhcnQgZm9yIENQVSBwcm9maWxlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmJlM2UwMTIzMDkxMThjNjY0ODE3Njg2N2MxZDA3
MjRmYzY1MjBiYy4uZWNhM2YwNzBhZTk0Y2RjZTYyMDI0YjIyZWMwNDQwYzE2M2Q5YjZlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0wMSAgQWxl
YyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBB
ZGQgSURCQmFja2luZ1N0b3JlVGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExMjMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHNvbWUgcmVhbGx5IHNpbXBsZSBJREJCYWNraW5nU3RvcmUgdGVz
dHMKKyAgICAgICAgYXMgYSBzZWVkIGZvciBhZGRpdGlvbmFsIHRlc3RzIGxhdGVyLgorCisgICAg
ICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvSURCQmFja2luZ1N0b3JlVGVzdC5j
cHA6IEFkZGVkLgorCiAyMDEzLTAzLTA0ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgQWNlIGVkaXRvciBleHBl
cmltZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJC
YWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFj
a2luZ1N0b3JlLmNwcAppbmRleCA5MDllZWFlNjY3YTBmNzZmNDQ5NTZjNWUyMzMxZjhiYjkxZjNh
MjFjLi43NGQzMGUyZWFkYzk3NDk4YjBlOTU3MTAzODllZmNmNzVjOWEyNmNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAK
QEAgLTM0MSw3ICszNDEsMTEgQEAgSURCQmFja2luZ1N0b3JlOjpJREJCYWNraW5nU3RvcmUoY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBJREJGYWN0b3J5QmFja2VuZEltcGwKICAgICAsIG1fZmFj
dG9yeShmYWN0b3J5KQogICAgICwgbV9kYihkYikKIHsKLSAgICBtX2ZhY3RvcnktPmFkZElEQkJh
Y2tpbmdTdG9yZShpZGVudGlmaWVyLCB0aGlzKTsKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAg
ICBBU1NFUlQobV9mYWN0b3J5IHx8IFdlYktpdDo6UGxhdGZvcm0oKS0+dW5pdFRlc3RTdXBwb3J0
KCkpOworI2VuZGlmCisgICAgaWYgKG1fZmFjdG9yeSkKKyAgICAgICAgbV9mYWN0b3J5LT5hZGRJ
REJCYWNraW5nU3RvcmUoaWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIElEQkJhY2tpbmdTdG9yZTo6
SURCQmFja2luZ1N0b3JlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IGVhNjkz
ZTkzMTNlM2JmZWEzZTUwODgxNmIzYWJhMjQzM2Q2NDUyY2YuLjM4YTRmOTQ0YTdhYjdmMWM0NzU1
ZDk2OWIwOGNhZTljZWEzZmU2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAt
NzUsNiArNzUsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL0dJRkltYWdlRGVjb2RlclRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCcsCisgICAgICAgICAg
ICAndGVzdHMvSURCQmFja2luZ1N0b3JlVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0lE
QkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURCQ2xlYW51
cE9uSU9FcnJvclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9JREJEYXRhYmFzZUJhY2tl
bmRUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lE
QkJhY2tpbmdTdG9yZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJC
YWNraW5nU3RvcmVUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjU1OGRhYzdhODM1MjEwYTMyODY2MWYz
NjY4YzQ2NTgwNjVjNDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0LmNwcApAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgorCisj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgeworCitjbGFzcyBJREJCYWNraW5nU3RvcmVUZXN0IDogcHVibGljIHRlc3Rp
bmc6OlRlc3QgeworcHVibGljOgorICAgIElEQkJhY2tpbmdTdG9yZVRlc3QoKSB7IH0KKyAgICB2
b2lkIFNldFVwKCkKKyAgICB7CisgICAgICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biA9IDA7CisgICAgICAgIG1fZmFjdG9yeSA9IDA7CisgICAgICAgIC8vIEVtcHR5IHBhdGhCYXNl
IG1lYW5zIGFuIGluLW1lbW9yeSBkYXRhYmFzZS4KKyAgICAgICAgU3RyaW5nIHBhdGhCYXNlOwor
ICAgICAgICBTdHJpbmcgZmlsZUlkZW50aWZpZXI7CisgICAgICAgIG1fYmFja2luZ1N0b3JlID0g
SURCQmFja2luZ1N0b3JlOjpvcGVuKHNlY3VyaXR5T3JpZ2luLCBwYXRoQmFzZSwgZmlsZUlkZW50
aWZpZXIsIG1fZmFjdG9yeSk7CisKKyAgICAgICAgLy8gdXNlZnVsIGtleXMgYW5kIHZhbHVlcyBk
dXJpbmcgdGVzdHMKKyAgICAgICAgY29uc3QgY2hhciByYXdWYWx1ZTFbXSA9ICJ2YWx1ZTEiOwor
ICAgICAgICBjb25zdCBjaGFyIHJhd1ZhbHVlMltdID0gInZhbHVlMiI7CisgICAgICAgIG1fdmFs
dWUxLmFwcGVuZChyYXdWYWx1ZTEsIHNpemVvZihyYXdWYWx1ZTEpKTsKKyAgICAgICAgbV92YWx1
ZTIuYXBwZW5kKHJhd1ZhbHVlMiwgc2l6ZW9mKHJhd1ZhbHVlMikpOworICAgICAgICBtX2tleTEg
PSBJREJLZXk6OmNyZWF0ZU51bWJlcig5OSk7CisgICAgICAgIG1fa2V5MiA9IElEQktleTo6Y3Jl
YXRlU3RyaW5nKCJrZXkyIik7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgSURCRmFjdG9yeUJh
Y2tlbmRJbXBsKiBtX2ZhY3Rvcnk7CisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNr
aW5nU3RvcmU7CisKKyAgICAvLyBTYW1wbGUga2V5cyBhbmQgdmFsdWVzIHRoYXQgYXJlIGNvbnNp
c3RlbnQuCisgICAgUmVmUHRyPElEQktleT4gbV9rZXkxOworICAgIFJlZlB0cjxJREJLZXk+IG1f
a2V5MjsKKyAgICBWZWN0b3I8Y2hhcj4gbV92YWx1ZTE7CisgICAgVmVjdG9yPGNoYXI+IG1fdmFs
dWUyOworfTsKKworVEVTVF9GKElEQkJhY2tpbmdTdG9yZVRlc3QsIFB1dEdldENvbnNpc3RlbmN5
KQoreworICAgIHsKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiB0cmFuc2Fj
dGlvbjEobV9iYWNraW5nU3RvcmUuZ2V0KCkpOworICAgICAgICB0cmFuc2FjdGlvbjEuYmVnaW4o
KTsKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyIHJlY29yZDsKKyAg
ICAgICAgYm9vbCBvayA9IG1fYmFja2luZ1N0b3JlLT5wdXRSZWNvcmQoJnRyYW5zYWN0aW9uMSwg
MSwgMSwgKm1fa2V5MS5nZXQoKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUobV92YWx1ZTEuZGF0YSgp
LCBtX3ZhbHVlMS5zaXplKCkpLCAmcmVjb3JkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob2spOwor
ICAgICAgICB0cmFuc2FjdGlvbjEuY29tbWl0KCk7CisgICAgfQorCisgICAgeworICAgICAgICBJ
REJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uMihtX2JhY2tpbmdTdG9yZS5n
ZXQoKSk7CisgICAgICAgIHRyYW5zYWN0aW9uMi5iZWdpbigpOworICAgICAgICBWZWN0b3I8Y2hh
cj4gcmVzdWx0VmFsdWU7CisgICAgICAgIGJvb2wgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0UmVj
b3JkKCZ0cmFuc2FjdGlvbjIsIDEsIDEsICptX2tleTEuZ2V0KCksIHJlc3VsdFZhbHVlKTsKKyAg
ICAgICAgdHJhbnNhY3Rpb24yLmNvbW1pdCgpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7Cisg
ICAgICAgIEVYUEVDVF9FUShtX3ZhbHVlMSwgcmVzdWx0VmFsdWUpOworICAgIH0KK30KKworLy8g
TWFrZSBzdXJlIHRoYXQgdXNpbmcgdmVyeSBoaWdoICggbW9yZSB0aGFuIDMyIGJpdCApIHZhbHVl
cyBmb3IgZGF0YWJhc2VJZCBhbmQgb2JqZWN0U3RvcmVJZCBzdGlsbCB3b3JrLgorVEVTVF9GKElE
QkJhY2tpbmdTdG9yZVRlc3QsIEhpZ2hJZHMpCit7CisgICAgY29uc3QgaW50NjRfdCBoaWdoRGF0
YWJhc2VJZCA9IDFVTCA8PCAzNTsKKyAgICBjb25zdCBpbnQ2NF90IGhpZ2hPYmplY3RTdG9yZUlk
ID0gMVVMIDw8IDM5OworICAgIHsKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlv
biB0cmFuc2FjdGlvbjEobV9iYWNraW5nU3RvcmUuZ2V0KCkpOworICAgICAgICB0cmFuc2FjdGlv
bjEuYmVnaW4oKTsKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyIHJl
Y29yZDsKKyAgICAgICAgYm9vbCBvayA9IG1fYmFja2luZ1N0b3JlLT5wdXRSZWNvcmQoJnRyYW5z
YWN0aW9uMSwgaGlnaERhdGFiYXNlSWQsIGhpZ2hPYmplY3RTdG9yZUlkLCAqbV9rZXkxLmdldCgp
LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShtX3ZhbHVlMS5kYXRhKCksIG1fdmFsdWUxLnNpemUoKSks
ICZyZWNvcmQpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAgICAgIG9rID0gdHJhbnNh
Y3Rpb24xLmNvbW1pdCgpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAgfQorCisgICAg
eworICAgICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uMihtX2Jh
Y2tpbmdTdG9yZS5nZXQoKSk7CisgICAgICAgIHRyYW5zYWN0aW9uMi5iZWdpbigpOworICAgICAg
ICBWZWN0b3I8Y2hhcj4gcmVzdWx0VmFsdWU7CisgICAgICAgIGJvb2wgb2sgPSBtX2JhY2tpbmdT
dG9yZS0+Z2V0UmVjb3JkKCZ0cmFuc2FjdGlvbjIsIGhpZ2hEYXRhYmFzZUlkLCBoaWdoT2JqZWN0
U3RvcmVJZCwgKm1fa2V5MS5nZXQoKSwgcmVzdWx0VmFsdWUpOworICAgICAgICBFWFBFQ1RfVFJV
RShvayk7CisgICAgICAgIG9rID0gdHJhbnNhY3Rpb24yLmNvbW1pdCgpOworICAgICAgICBFWFBF
Q1RfVFJVRShvayk7CisgICAgICAgIEVYUEVDVF9FUShtX3ZhbHVlMSwgcmVzdWx0VmFsdWUpOwor
ICAgIH0KK30KKworVEVTVF9GKElEQkJhY2tpbmdTdG9yZVRlc3QsIENyZWF0ZURhdGFiYXNlKQor
eworICAgIGNvbnN0IFN0cmluZyBkYXRhYmFzZU5hbWUoImRiMSIpOworICAgIGludDY0X3QgZGF0
YWJhc2VJZDsKKyAgICBjb25zdCBTdHJpbmcgdmVyc2lvbigib2xkU3RyaW5nVmVyc2lvbiIpOwor
ICAgIGNvbnN0IGludDY0X3QgaW50VmVyc2lvbiA9IDk7CisKKyAgICBjb25zdCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQgPSA5OTsKKyAgICBjb25zdCBTdHJpbmcgb2JqZWN0U3RvcmVOYW1lKCJvYmpl
Y3RTdG9yZTEiKTsKKyAgICBjb25zdCBib29sIGF1dG9JbmNyZW1lbnQgPSB0cnVlOworICAgIGNv
bnN0IElEQktleVBhdGggb2JqZWN0U3RvcmVLZXlQYXRoKCJvYmplY3RTdG9yZUtleSIpOworCisg
ICAgY29uc3QgaW50NjRfdCBpbmRleElkID0gOTk5OworICAgIGNvbnN0IFN0cmluZyBpbmRleE5h
bWUoImluZGV4MSIpOworICAgIGNvbnN0IGJvb2wgdW5pcXVlID0gdHJ1ZTsKKyAgICBjb25zdCBi
b29sIG11bHRpRW50cnkgPSB0cnVlOworICAgIGNvbnN0IElEQktleVBhdGggaW5kZXhLZXlQYXRo
KCJpbmRleEtleSIpOworCisgICAgeworICAgICAgICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUt
PmNyZWF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoZGF0YWJhc2VOYW1lLCB2ZXJzaW9uLCBpbnRWZXJz
aW9uLCBkYXRhYmFzZUlkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob2spOworICAgICAgICBFWFBF
Q1RfR1QoZGF0YWJhc2VJZCwgMCk7CisKKyAgICAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbiB0cmFuc2FjdGlvbihtX2JhY2tpbmdTdG9yZS5nZXQoKSk7CisgICAgICAgIHRyYW5zYWN0
aW9uLmJlZ2luKCk7CisKKyAgICAgICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0
U3RvcmUoJnRyYW5zYWN0aW9uLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBvYmplY3RTdG9y
ZU5hbWUsIG9iamVjdFN0b3JlS2V5UGF0aCwgYXV0b0luY3JlbWVudCk7CisgICAgICAgIEVYUEVD
VF9UUlVFKG9rKTsKKworICAgICAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVJbmRleCgm
dHJhbnNhY3Rpb24sIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIGluZGV4TmFt
ZSwgaW5kZXhLZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnkpOworICAgICAgICBFWFBFQ1RfVFJV
RShvayk7CisKKyAgICAgICAgb2sgPSB0cmFuc2FjdGlvbi5jb21taXQoKTsKKyAgICAgICAgRVhQ
RUNUX1RSVUUob2spOworICAgIH0KKworICAgIHsKKyAgICAgICAgSURCRGF0YWJhc2VNZXRhZGF0
YSBkYXRhYmFzZTsKKyAgICAgICAgYm9vbCBmb3VuZDsKKyAgICAgICAgYm9vbCBvayA9IG1fYmFj
a2luZ1N0b3JlLT5nZXRJREJEYXRhYmFzZU1ldGFEYXRhKGRhdGFiYXNlTmFtZSwgJmRhdGFiYXNl
LCBmb3VuZCk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
Zm91bmQpOworCisgICAgICAgIC8vIGRhdGFiYXNlLm5hbWUgaXMgbm90IGZpbGxlZCBpbiBieSB0
aGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIEVYUEVDVF9FUSh2ZXJzaW9uLCBkYXRhYmFzZS52
ZXJzaW9uKTsKKyAgICAgICAgRVhQRUNUX0VRKGludFZlcnNpb24sIGRhdGFiYXNlLmludFZlcnNp
b24pOworICAgICAgICBFWFBFQ1RfRVEoZGF0YWJhc2VJZCwgZGF0YWJhc2UuaWQpOworCisgICAg
ICAgIG1fYmFja2luZ1N0b3JlLT5nZXRPYmplY3RTdG9yZXMoZGF0YWJhc2UuaWQsICZkYXRhYmFz
ZS5vYmplY3RTdG9yZXMpOworCisgICAgICAgIEVYUEVDVF9FUSgxLCBkYXRhYmFzZS5vYmplY3RT
dG9yZXMuc2l6ZSgpKTsKKyAgICAgICAgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBvYmplY3RTdG9y
ZSA9IGRhdGFiYXNlLm9iamVjdFN0b3Jlcy5nZXQob2JqZWN0U3RvcmVJZCk7CisgICAgICAgIEVY
UEVDVF9FUShvYmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlLm5hbWUpOworICAgICAgICBFWFBF
Q1RfRVEob2JqZWN0U3RvcmVLZXlQYXRoLCBvYmplY3RTdG9yZS5rZXlQYXRoKTsKKyAgICAgICAg
RVhQRUNUX0VRKGF1dG9JbmNyZW1lbnQsIG9iamVjdFN0b3JlLmF1dG9JbmNyZW1lbnQpOworCisg
ICAgICAgIEVYUEVDVF9FUSgxLCBvYmplY3RTdG9yZS5pbmRleGVzLnNpemUoKSk7CisgICAgICAg
IElEQkluZGV4TWV0YWRhdGEgaW5kZXggPSBvYmplY3RTdG9yZS5pbmRleGVzLmdldChpbmRleElk
KTsKKyAgICAgICAgRVhQRUNUX0VRKGluZGV4TmFtZSwgaW5kZXgubmFtZSk7CisgICAgICAgIEVY
UEVDVF9FUShpbmRleEtleVBhdGgsIGluZGV4LmtleVBhdGgpOworICAgICAgICBFWFBFQ1RfRVEo
dW5pcXVlLCBpbmRleC51bmlxdWUpOworICAgICAgICBFWFBFQ1RfRVEobXVsdGlFbnRyeSwgaW5k
ZXgubXVsdGlFbnRyeSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191535</attachid>
            <date>2013-03-05 12:31:38 -0800</date>
            <delta_ts>2013-03-05 15:35:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111233-20130305122745.patch</filename>
            <type>text/plain</type>
            <size>10452</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIzMzM1MGMxOTIxZjgz
NTZiNWJmY2M0ZjRjNWVjYTRmZGM5ZmQ4MC4uM2NlNzU4OTc3YTM0NmRlZDdlMjY0ZWQ0YzgxOTcw
ZmY1MzBhZGI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTAxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCBJREJCYWNraW5nU3RvcmVUZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTEyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBhcmUgdHdlYWtzIHRvIG1ha2UgSURCQmFja2luZ1N0b3JlIG1v
cmUgZWFzaWx5IHRlc3RhYmxlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQmFj
a2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6SURCQmFj
a2luZ1N0b3JlKTogQWxsb3cgdXNlIHdpdGhvdXQgYSBiYWNraW5nIHN0b3JlLgorCiAyMDEzLTAz
LTA0ICBVZGF5IEtpcmFuICA8dWRheWtpcmFuQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBnZXRQ
cm9wZXJ0eVZhbHVlIGZvciAtd2Via2l0LXRleHQtc3Ryb2tlIHJldHVybnMgbnVsbCwgc2hvdWxk
IGNvbXB1dGUgdGhlIHNob3J0aGFuZCB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAwZTVhNmQ2Zjc2N2MxNzliZTVmNThmZWFhZDI1MWU2NDBhZTE5Y2Y3Li5iYzQxMzJlMjRiNWIx
MTQ0M2ZlNGQ2YWVlYjBiNGQ4YmQzNDBjNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTAxICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFkZCBJREJCYWNraW5nU3RvcmVUZXN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEyMzMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc29tZSBy
ZWFsbHkgc2ltcGxlIElEQkJhY2tpbmdTdG9yZSB0ZXN0cworICAgICAgICBhcyBhIHNlZWQgZm9y
IGFkZGl0aW9uYWwgdGVzdHMgbGF0ZXIuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAg
ICAgKiB0ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0LmNwcDogQWRkZWQuCisKIDIwMTMtMDMtMDQg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogY2Vs
bEZvckNvbHVtbkFuZFJvdyBmYWlscyBmb3IgdGFibGVzIHdpdGggaGlkZGVuIHRhYmxlIGNlbGxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5n
U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0
b3JlLmNwcAppbmRleCA5MDllZWFlNjY3YTBmNzZmNDQ5NTZjNWUyMzMxZjhiYjkxZjNhMjFjLi5h
ZjJmMGI2MWZkY2NmZWJhMDQ0MjI0ZmQ1MmRiMzk2MjczMmVlMzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTQ0
LDYgKzQ0LDkgQEAKICNpbmNsdWRlICJMZXZlbERCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2VuZGlmCiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQxLDcgKzM0
NCwxMSBAQCBJREJCYWNraW5nU3RvcmU6OklEQkJhY2tpbmdTdG9yZShjb25zdCBTdHJpbmcmIGlk
ZW50aWZpZXIsIElEQkZhY3RvcnlCYWNrZW5kSW1wbAogICAgICwgbV9mYWN0b3J5KGZhY3Rvcnkp
CiAgICAgLCBtX2RiKGRiKQogewotICAgIG1fZmFjdG9yeS0+YWRkSURCQmFja2luZ1N0b3JlKGlk
ZW50aWZpZXIsIHRoaXMpOworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIEFTU0VSVChtX2Zh
Y3RvcnkgfHwgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT51bml0VGVzdFN1cHBvcnQoKSk7
CisjZW5kaWYKKyAgICBpZiAobV9mYWN0b3J5KQorICAgICAgICBtX2ZhY3RvcnktPmFkZElEQkJh
Y2tpbmdTdG9yZShpZGVudGlmaWVyLCB0aGlzKTsKIH0KIAogSURCQmFja2luZ1N0b3JlOjpJREJC
YWNraW5nU3RvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggM2FlM2FmZTFh
MDE5NjEyNjg2MmJiOGFjZTg0MDFjZDIxNTA3NDA4MC4uNDZiMDM4YzY5YjdjNGYxYTM3MzMwNDVl
ODY3ZTk0ZWM1ZDM4NjcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC03NSw2
ICs3NSw3IEBACiAgICAgICAgICAgICAndGVzdHMvR0lGSW1hZ2VEZWNvZGVyVGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwJywKKyAgICAgICAgICAgICd0
ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURCQmlu
ZGluZ1V0aWxpdGllc1Rlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9JREJDbGVhbnVwT25J
T0Vycm9yVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQmFj
a2luZ1N0b3JlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJhY2tp
bmdTdG9yZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNTU4ZGFjN2E4MzUyMTBhMzI4NjYxZjM2Njhj
NDY1ODA2NWM0N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkJhY2tpbmdTdG9yZVRlc3QuY3BwCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCisKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSB7CisKK2NsYXNzIElEQkJhY2tpbmdTdG9yZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdCB7CitwdWJsaWM6CisgICAgSURCQmFja2luZ1N0b3JlVGVzdCgpIHsgfQorICAgIHZvaWQg
U2V0VXAoKQorICAgIHsKKyAgICAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0g
MDsKKyAgICAgICAgbV9mYWN0b3J5ID0gMDsKKyAgICAgICAgLy8gRW1wdHkgcGF0aEJhc2UgbWVh
bnMgYW4gaW4tbWVtb3J5IGRhdGFiYXNlLgorICAgICAgICBTdHJpbmcgcGF0aEJhc2U7CisgICAg
ICAgIFN0cmluZyBmaWxlSWRlbnRpZmllcjsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBJREJC
YWNraW5nU3RvcmU6Om9wZW4oc2VjdXJpdHlPcmlnaW4sIHBhdGhCYXNlLCBmaWxlSWRlbnRpZmll
ciwgbV9mYWN0b3J5KTsKKworICAgICAgICAvLyB1c2VmdWwga2V5cyBhbmQgdmFsdWVzIGR1cmlu
ZyB0ZXN0cworICAgICAgICBjb25zdCBjaGFyIHJhd1ZhbHVlMVtdID0gInZhbHVlMSI7CisgICAg
ICAgIGNvbnN0IGNoYXIgcmF3VmFsdWUyW10gPSAidmFsdWUyIjsKKyAgICAgICAgbV92YWx1ZTEu
YXBwZW5kKHJhd1ZhbHVlMSwgc2l6ZW9mKHJhd1ZhbHVlMSkpOworICAgICAgICBtX3ZhbHVlMi5h
cHBlbmQocmF3VmFsdWUyLCBzaXplb2YocmF3VmFsdWUyKSk7CisgICAgICAgIG1fa2V5MSA9IElE
QktleTo6Y3JlYXRlTnVtYmVyKDk5KTsKKyAgICAgICAgbV9rZXkyID0gSURCS2V5OjpjcmVhdGVT
dHJpbmcoImtleTIiKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBJREJGYWN0b3J5QmFja2Vu
ZEltcGwqIG1fZmFjdG9yeTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBtX2JhY2tpbmdT
dG9yZTsKKworICAgIC8vIFNhbXBsZSBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBhcmUgY29uc2lzdGVu
dC4KKyAgICBSZWZQdHI8SURCS2V5PiBtX2tleTE7CisgICAgUmVmUHRyPElEQktleT4gbV9rZXky
OworICAgIFZlY3RvcjxjaGFyPiBtX3ZhbHVlMTsKKyAgICBWZWN0b3I8Y2hhcj4gbV92YWx1ZTI7
Cit9OworCitURVNUX0YoSURCQmFja2luZ1N0b3JlVGVzdCwgUHV0R2V0Q29uc2lzdGVuY3kpCit7
CisgICAgeworICAgICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9u
MShtX2JhY2tpbmdTdG9yZS5nZXQoKSk7CisgICAgICAgIHRyYW5zYWN0aW9uMS5iZWdpbigpOwor
ICAgICAgICBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIgcmVjb3JkOworICAgICAg
ICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rpb24xLCAxLCAx
LCAqbV9rZXkxLmdldCgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShtX3ZhbHVlMS5kYXRhKCksIG1f
dmFsdWUxLnNpemUoKSksICZyZWNvcmQpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAg
ICAgIHRyYW5zYWN0aW9uMS5jb21taXQoKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIElEQkJh
Y2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24yKG1fYmFja2luZ1N0b3JlLmdldCgp
KTsKKyAgICAgICAgdHJhbnNhY3Rpb24yLmJlZ2luKCk7CisgICAgICAgIFZlY3RvcjxjaGFyPiBy
ZXN1bHRWYWx1ZTsKKyAgICAgICAgYm9vbCBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRSZWNvcmQo
JnRyYW5zYWN0aW9uMiwgMSwgMSwgKm1fa2V5MS5nZXQoKSwgcmVzdWx0VmFsdWUpOworICAgICAg
ICB0cmFuc2FjdGlvbjIuY29tbWl0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAg
ICAgRVhQRUNUX0VRKG1fdmFsdWUxLCByZXN1bHRWYWx1ZSk7CisgICAgfQorfQorCisvLyBNYWtl
IHN1cmUgdGhhdCB1c2luZyB2ZXJ5IGhpZ2ggKCBtb3JlIHRoYW4gMzIgYml0ICkgdmFsdWVzIGZv
ciBkYXRhYmFzZUlkIGFuZCBvYmplY3RTdG9yZUlkIHN0aWxsIHdvcmsuCitURVNUX0YoSURCQmFj
a2luZ1N0b3JlVGVzdCwgSGlnaElkcykKK3sKKyAgICBjb25zdCBpbnQ2NF90IGhpZ2hEYXRhYmFz
ZUlkID0gMVVMIDw8IDM1OworICAgIGNvbnN0IGludDY0X3QgaGlnaE9iamVjdFN0b3JlSWQgPSAx
VUwgPDwgMzk7CisgICAgeworICAgICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRy
YW5zYWN0aW9uMShtX2JhY2tpbmdTdG9yZS5nZXQoKSk7CisgICAgICAgIHRyYW5zYWN0aW9uMS5i
ZWdpbigpOworICAgICAgICBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIgcmVjb3Jk
OworICAgICAgICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rp
b24xLCBoaWdoRGF0YWJhc2VJZCwgaGlnaE9iamVjdFN0b3JlSWQsICptX2tleTEuZ2V0KCksIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fdmFsdWUxLmRhdGEoKSwgbV92YWx1ZTEuc2l6ZSgpKSwgJnJl
Y29yZCk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICAgICAgb2sgPSB0cmFuc2FjdGlv
bjEuY29tbWl0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9rKTsKKyAgICB9CisKKyAgICB7Cisg
ICAgICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24yKG1fYmFja2lu
Z1N0b3JlLmdldCgpKTsKKyAgICAgICAgdHJhbnNhY3Rpb24yLmJlZ2luKCk7CisgICAgICAgIFZl
Y3RvcjxjaGFyPiByZXN1bHRWYWx1ZTsKKyAgICAgICAgYm9vbCBvayA9IG1fYmFja2luZ1N0b3Jl
LT5nZXRSZWNvcmQoJnRyYW5zYWN0aW9uMiwgaGlnaERhdGFiYXNlSWQsIGhpZ2hPYmplY3RTdG9y
ZUlkLCAqbV9rZXkxLmdldCgpLCByZXN1bHRWYWx1ZSk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9r
KTsKKyAgICAgICAgb2sgPSB0cmFuc2FjdGlvbjIuY29tbWl0KCk7CisgICAgICAgIEVYUEVDVF9U
UlVFKG9rKTsKKyAgICAgICAgRVhQRUNUX0VRKG1fdmFsdWUxLCByZXN1bHRWYWx1ZSk7CisgICAg
fQorfQorCitURVNUX0YoSURCQmFja2luZ1N0b3JlVGVzdCwgQ3JlYXRlRGF0YWJhc2UpCit7Cisg
ICAgY29uc3QgU3RyaW5nIGRhdGFiYXNlTmFtZSgiZGIxIik7CisgICAgaW50NjRfdCBkYXRhYmFz
ZUlkOworICAgIGNvbnN0IFN0cmluZyB2ZXJzaW9uKCJvbGRTdHJpbmdWZXJzaW9uIik7CisgICAg
Y29uc3QgaW50NjRfdCBpbnRWZXJzaW9uID0gOTsKKworICAgIGNvbnN0IGludDY0X3Qgb2JqZWN0
U3RvcmVJZCA9IDk5OworICAgIGNvbnN0IFN0cmluZyBvYmplY3RTdG9yZU5hbWUoIm9iamVjdFN0
b3JlMSIpOworICAgIGNvbnN0IGJvb2wgYXV0b0luY3JlbWVudCA9IHRydWU7CisgICAgY29uc3Qg
SURCS2V5UGF0aCBvYmplY3RTdG9yZUtleVBhdGgoIm9iamVjdFN0b3JlS2V5Iik7CisKKyAgICBj
b25zdCBpbnQ2NF90IGluZGV4SWQgPSA5OTk7CisgICAgY29uc3QgU3RyaW5nIGluZGV4TmFtZSgi
aW5kZXgxIik7CisgICAgY29uc3QgYm9vbCB1bmlxdWUgPSB0cnVlOworICAgIGNvbnN0IGJvb2wg
bXVsdGlFbnRyeSA9IHRydWU7CisgICAgY29uc3QgSURCS2V5UGF0aCBpbmRleEtleVBhdGgoImlu
ZGV4S2V5Iik7CisKKyAgICB7CisgICAgICAgIGJvb2wgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Y3Jl
YXRlSURCRGF0YWJhc2VNZXRhRGF0YShkYXRhYmFzZU5hbWUsIHZlcnNpb24sIGludFZlcnNpb24s
IGRhdGFiYXNlSWQpOworICAgICAgICBFWFBFQ1RfVFJVRShvayk7CisgICAgICAgIEVYUEVDVF9H
VChkYXRhYmFzZUlkLCAwKTsKKworICAgICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9u
IHRyYW5zYWN0aW9uKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICAgICAgdHJhbnNhY3Rpb24u
YmVnaW4oKTsKKworICAgICAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVPYmplY3RTdG9y
ZSgmdHJhbnNhY3Rpb24sIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIG9iamVjdFN0b3JlTmFt
ZSwgb2JqZWN0U3RvcmVLZXlQYXRoLCBhdXRvSW5jcmVtZW50KTsKKyAgICAgICAgRVhQRUNUX1RS
VUUob2spOworCisgICAgICAgIG9rID0gbV9iYWNraW5nU3RvcmUtPmNyZWF0ZUluZGV4KCZ0cmFu
c2FjdGlvbiwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwgaW5kZXhOYW1lLCBp
bmRleEtleVBhdGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSk7CisgICAgICAgIEVYUEVDVF9UUlVFKG9r
KTsKKworICAgICAgICBvayA9IHRyYW5zYWN0aW9uLmNvbW1pdCgpOworICAgICAgICBFWFBFQ1Rf
VFJVRShvayk7CisgICAgfQorCisgICAgeworICAgICAgICBJREJEYXRhYmFzZU1ldGFkYXRhIGRh
dGFiYXNlOworICAgICAgICBib29sIGZvdW5kOworICAgICAgICBib29sIG9rID0gbV9iYWNraW5n
U3RvcmUtPmdldElEQkRhdGFiYXNlTWV0YURhdGEoZGF0YWJhc2VOYW1lLCAmZGF0YWJhc2UsIGZv
dW5kKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob2spOworICAgICAgICBFWFBFQ1RfVFJVRShmb3Vu
ZCk7CisKKyAgICAgICAgLy8gZGF0YWJhc2UubmFtZSBpcyBub3QgZmlsbGVkIGluIGJ5IHRoZSBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgRVhQRUNUX0VRKHZlcnNpb24sIGRhdGFiYXNlLnZlcnNp
b24pOworICAgICAgICBFWFBFQ1RfRVEoaW50VmVyc2lvbiwgZGF0YWJhc2UuaW50VmVyc2lvbik7
CisgICAgICAgIEVYUEVDVF9FUShkYXRhYmFzZUlkLCBkYXRhYmFzZS5pZCk7CisKKyAgICAgICAg
bV9iYWNraW5nU3RvcmUtPmdldE9iamVjdFN0b3JlcyhkYXRhYmFzZS5pZCwgJmRhdGFiYXNlLm9i
amVjdFN0b3Jlcyk7CisKKyAgICAgICAgRVhQRUNUX0VRKDEsIGRhdGFiYXNlLm9iamVjdFN0b3Jl
cy5zaXplKCkpOworICAgICAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG9iamVjdFN0b3JlID0g
ZGF0YWJhc2Uub2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlkKTsKKyAgICAgICAgRVhQRUNU
X0VRKG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmUubmFtZSk7CisgICAgICAgIEVYUEVDVF9F
UShvYmplY3RTdG9yZUtleVBhdGgsIG9iamVjdFN0b3JlLmtleVBhdGgpOworICAgICAgICBFWFBF
Q1RfRVEoYXV0b0luY3JlbWVudCwgb2JqZWN0U3RvcmUuYXV0b0luY3JlbWVudCk7CisKKyAgICAg
ICAgRVhQRUNUX0VRKDEsIG9iamVjdFN0b3JlLmluZGV4ZXMuc2l6ZSgpKTsKKyAgICAgICAgSURC
SW5kZXhNZXRhZGF0YSBpbmRleCA9IG9iamVjdFN0b3JlLmluZGV4ZXMuZ2V0KGluZGV4SWQpOwor
ICAgICAgICBFWFBFQ1RfRVEoaW5kZXhOYW1lLCBpbmRleC5uYW1lKTsKKyAgICAgICAgRVhQRUNU
X0VRKGluZGV4S2V5UGF0aCwgaW5kZXgua2V5UGF0aCk7CisgICAgICAgIEVYUEVDVF9FUSh1bmlx
dWUsIGluZGV4LnVuaXF1ZSk7CisgICAgICAgIEVYUEVDVF9FUShtdWx0aUVudHJ5LCBpbmRleC5t
dWx0aUVudHJ5KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>