<?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>156713</bug_id>
          
          <creation_ts>2016-04-18 13:23:29 -0700</creation_ts>
          <short_desc>[Win][IndexedDB] Fix build errors.</short_desc>
          <delta_ts>2016-04-25 11:38:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184787</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2016-04-18 13:23:29 -0700</bug_when>
    <thetext>There are currently a few compile and link errors when building WinCairo with IndexedDB enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184806</commentid>
    <comment_count>1</comment_count>
      <attachid>276664</attachid>
    <who name="">peavo</who>
    <bug_when>2016-04-18 13:58:04 -0700</bug_when>
    <thetext>Created attachment 276664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184810</commentid>
    <comment_count>2</comment_count>
      <attachid>276667</attachid>
    <who name="">peavo</who>
    <bug_when>2016-04-18 14:16:19 -0700</bug_when>
    <thetext>Created attachment 276667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184811</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 14:17:58 -0700</bug_when>
    <thetext>Attachment 276667 did not pass style-queue:


ERROR: Source/WebCore/PlatformWin.cmake:189:  There should be exactly one empty line instead of 0 between &quot;Modules/indexeddb&quot; and &quot;Modules/indexeddb/client&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:1188:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184822</commentid>
    <comment_count>4</comment_count>
      <attachid>276667</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-18 14:50:58 -0700</bug_when>
    <thetext>Comment on attachment 276667
Patch

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

cool!

&gt; Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:44
&gt; -    return std::make_unique&lt;MemoryBackingStoreTransaction&gt;(backingStore, info);
&gt; +    return std::unique_ptr&lt;MemoryBackingStoreTransaction&gt;(new MemoryBackingStoreTransaction(backingStore, info));

This shouldn&apos;t be needed.

&gt; Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp:48
&gt; -    return std::make_unique&lt;MemoryIDBBackingStore&gt;(identifier);
&gt; +    return std::unique_ptr&lt;MemoryIDBBackingStore&gt;(new MemoryIDBBackingStore(identifier));

This shouldn&apos;t be needed.

&gt; Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:1188
&gt; -    auto callback = [this, self, refTransaction](const IDBError&amp; error) {
&gt; +    ErrorCallback callback = [this, self, refTransaction](const IDBError&amp; error) {

This shouldn&apos;t be needed.

&gt; Source/WebKit/win/storage/WebDatabaseProvider.cpp:45
&gt; +    sprintf_s(databaseDirectory, MAX_PATH, &quot;%s\\%s&quot;, appDataDirectory, executableName);

On Mac we use .../WebKit/Databases/___IndexedDB.  We should probably do something similar here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184823</commentid>
    <comment_count>5</comment_count>
      <attachid>276667</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-18 14:55:17 -0700</bug_when>
    <thetext>Comment on attachment 276667
Patch

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

&gt; Source/WebKit/win/WebView.cpp:5062
&gt; +    RuntimeEnabledFeatures::sharedFeatures().setWebkitIndexedDBEnabled(true);

This should probably be false by default, then set to true for DumpRenderTree and MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184831</commentid>
    <comment_count>6</comment_count>
    <who name="">peavo</who>
    <bug_when>2016-04-18 15:08:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 276667 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276667&amp;action=review
&gt; 
&gt; cool!
&gt; 

Thanks for reviewing :)

&gt; &gt; Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:44
&gt; &gt; -    return std::make_unique&lt;MemoryBackingStoreTransaction&gt;(backingStore, info);
&gt; &gt; +    return std::unique_ptr&lt;MemoryBackingStoreTransaction&gt;(new MemoryBackingStoreTransaction(backingStore, info));
&gt; 
&gt; This shouldn&apos;t be needed.
&gt; 

I get a compile error without this:

error C2248: &apos;WebCore::IDBServer::MemoryBackingStoreTransaction::MemoryBackingStoreTransaction&apos;: cannot access private member declared in class &apos;WebCore::IDBServer::MemoryBackingStoreTransaction

Maybe we should fix this in another way?

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:1188
&gt; &gt; -    auto callback = [this, self, refTransaction](const IDBError&amp; error) {
&gt; &gt; +    ErrorCallback callback = [this, self, refTransaction](const IDBError&amp; error) {
&gt; 
&gt; This shouldn&apos;t be needed.
&gt; 

I get an error without this:

error C2668: &apos;WebCore::IDBServer::UniqueIDBDatabase::storeCallback&apos;: ambiguous call to overloaded function

&gt; &gt; Source/WebKit/win/storage/WebDatabaseProvider.cpp:45
&gt; &gt; +    sprintf_s(databaseDirectory, MAX_PATH, &quot;%s\\%s&quot;, appDataDirectory, executableName);
&gt; 
&gt; On Mac we use .../WebKit/Databases/___IndexedDB.  We should probably do
&gt; something similar here.

I will update the path :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185152</commentid>
    <comment_count>7</comment_count>
      <attachid>276755</attachid>
    <who name="">peavo</who>
    <bug_when>2016-04-19 14:08:29 -0700</bug_when>
    <thetext>Created attachment 276755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185154</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 14:10:41 -0700</bug_when>
    <thetext>Attachment 276755 did not pass style-queue:


ERROR: Source/WebCore/PlatformWin.cmake:189:  There should be exactly one empty line instead of 0 between &quot;Modules/indexeddb&quot; and &quot;Modules/indexeddb/client&quot;.  [list/emptyline] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185155</commentid>
    <comment_count>9</comment_count>
    <who name="">peavo</who>
    <bug_when>2016-04-19 14:12:26 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 276667 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276667&amp;action=review
&gt; 
&gt; cool!
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:44
&gt; &gt; -    return std::make_unique&lt;MemoryBackingStoreTransaction&gt;(backingStore, info);
&gt; &gt; +    return std::unique_ptr&lt;MemoryBackingStoreTransaction&gt;(new MemoryBackingStoreTransaction(backingStore, info));
&gt; 
&gt; This shouldn&apos;t be needed.
&gt; 

I am afraid I didn&apos;t find a better way to fix these compile errors.
The main problem seems to be that MSVC does not accept that std::make_unique is declared as a friend of a class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185156</commentid>
    <comment_count>10</comment_count>
      <attachid>276755</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-19 14:14:55 -0700</bug_when>
    <thetext>Comment on attachment 276755
Patch

Just make the constructor public.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185172</commentid>
    <comment_count>11</comment_count>
      <attachid>276760</attachid>
    <who name="">peavo</who>
    <bug_when>2016-04-19 14:34:39 -0700</bug_when>
    <thetext>Created attachment 276760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185173</commentid>
    <comment_count>12</comment_count>
    <who name="">peavo</who>
    <bug_when>2016-04-19 14:35:20 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 276755 [details]
&gt; Patch
&gt; 
&gt; Just make the constructor public.

Thanks :) Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185174</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 14:37:03 -0700</bug_when>
    <thetext>Attachment 276760 did not pass style-queue:


ERROR: Source/WebCore/PlatformWin.cmake:189:  There should be exactly one empty line instead of 0 between &quot;Modules/indexeddb&quot; and &quot;Modules/indexeddb/client&quot;.  [list/emptyline] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185343</commentid>
    <comment_count>14</comment_count>
      <attachid>276760</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-19 22:46:05 -0700</bug_when>
    <thetext>Comment on attachment 276760
Patch

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

Looks good.  I think this needs another iteration, though.

&gt; Source/WebCore/PlatformWin.cmake:189
&gt;      Modules/indexeddb
&gt; +    Modules/indexeddb/client

Style bot wants a space here.

&gt; Source/WebCore/bindings/js/JSDOMWindowBase.h:23
&gt; +#include &quot;DOMWindow.h&quot;

Is this really necessary?  What error does this prevent?  Can we not forward declare things?  Including more headers in a header like this makes the build slower.

&gt; Source/WebCore/bindings/js/JSDOMWrapper.h:25
&gt; +#include &quot;DOMWrapperWorld.h&quot;

Ditto.

&gt; Source/WebKit/win/storage/WebDatabaseProvider.cpp:41
&gt; +        return String(&quot;&quot;);

This isn&apos;t used in WebKit.  I think this is what emptyString() is for.

&gt; Source/WebKit/win/storage/WebDatabaseProvider.cpp:50
&gt; +        return String(&quot;&quot;);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185775</commentid>
    <comment_count>15</comment_count>
      <attachid>276924</attachid>
    <who name="">peavo</who>
    <bug_when>2016-04-21 07:31:46 -0700</bug_when>
    <thetext>Created attachment 276924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185791</commentid>
    <comment_count>16</comment_count>
    <who name="">peavo</who>
    <bug_when>2016-04-21 08:25:32 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 276760 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276760&amp;action=review
&gt; 

Thanks for reviewing!

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowBase.h:23
&gt; &gt; +#include &quot;DOMWindow.h&quot;
&gt; 
&gt; Is this really necessary?  What error does this prevent?  Can we not forward
&gt; declare things?  Including more headers in a header like this makes the
&gt; build slower.
&gt; 

I get the error:

wtf/PassRefPtr.h(42): error C2027: use of undefined type &apos;WebCore::DOMWindow&apos;

PassRefPtr&lt;DOMWindow&gt; is used in JSDOMWindowBase.h, but this fails to compile since the class DOMWindow is only forward declared here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186996</commentid>
    <comment_count>17</comment_count>
      <attachid>276924</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-25 11:37:55 -0700</bug_when>
    <thetext>Comment on attachment 276924
Patch

Clearing flags on attachment: 276924

Committed r200036: &lt;http://trac.webkit.org/changeset/200036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186997</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-25 11:38:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276664</attachid>
            <date>2016-04-18 13:58:04 -0700</date>
            <delta_ts>2016-04-18 14:16:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156713-20160418225827.patch</filename>
            <type>text/plain</type>
            <size>13919</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTY1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE2LTA0LTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJd
IEZpeCBidWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRo
IEluZGV4ZWREQiBlbmFibGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OmFjdGl2YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAg
ICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0
aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1Zh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OmlkYktleURhdGFUb1NjcmlwdFZhbHVlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
RmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYXJkTGlua09yQ29weUZpbGUp
OgorCiAyMDE2LTA0LTE4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtjc3MtZ3JpZF0gQWRkIG1ldGhvZCB0byB0cmFuc2xhdGUgUlRMIGNvb3Jk
aW5hdGVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMTk5NjU2KQor
KysgU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE4
Niw3ICsxODYsOSBAQCBzZXQoV2ViQ29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJCiAK
ICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uCiAgICAgTW9kdWxlcy9pbmRleGVkZGIKKyAgICBNb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kKKyAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQKICAg
ICBNb2R1bGVzL25vdGlmaWNhdGlvbnMKICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9u
IDE5OTY1NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQx
LDcgQEAgbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbj4gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0
ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCVHJhbnNhY3Rp
b25JbmZvJiBpbmZvKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uPihiYWNraW5nU3RvcmUsIGluZm8pOworICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KG5ldyBNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbihiYWNraW5nU3RvcmUsIGluZm8pKTsKIH0KIAogTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb246Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9y
eUlEQkJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
IGluZm8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24u
aAkocmV2aXNpb24gMTk5NjU2KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDcgKzQ2LDYgQEAgY2xhc3MgTWVtb3J5T2JqZWN0U3RvcmU7CiB0eXBlZGVmIEhhc2hNYXA8
SURCS2V5RGF0YSwgVGhyZWFkU2FmZURhdGFCdWZmZXIsIElEQktleURhdGFIYXNoLCBJREJLZXlE
YXRhSGFzaFRyYWl0cz4gS2V5VmFsdWVNYXA7CiAKIGNsYXNzIE1lbW9yeUJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uIHsKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uPiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uPihXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbyYpOwogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+IGNyZWF0ZShNZW1vcnlJREJC
YWNraW5nU3RvcmUmLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAJKHJldmlzaW9uIDE5OTY1NikKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyB1aW50NjRfdCBtYXhHZW5l
cmF0ZWRLZXlWYWx1ZSA9IDAKIAogc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZT4gTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjcmVhdGUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlm
aWVyJiBpZGVudGlmaWVyKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUlE
QkJhY2tpbmdTdG9yZT4oaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxN
ZW1vcnlJREJCYWNraW5nU3RvcmU+KG5ldyBNZW1vcnlJREJCYWNraW5nU3RvcmUoaWRlbnRpZmll
cikpOwogfQogCiBNZW1vcnlJREJCYWNraW5nU3RvcmU6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZShj
b25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5oCShyZXZpc2lvbiAxOTk2NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDcgKzQwLDYgQEAgbmFtZXNwYWNlIElEQlNlcnZlciB7CiBjbGFzcyBNZW1v
cnlPYmplY3RTdG9yZTsKIAogY2xhc3MgTWVtb3J5SURCQmFja2luZ1N0b3JlIDogcHVibGljIElE
QkJhY2tpbmdTdG9yZSB7Ci0gICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlJREJCYWNr
aW5nU3RvcmU+IHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5SURCQmFja2luZ1N0b3JlPihjb25zdCBX
ZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPE1lbW9yeUlEQkJhY2tpbmdTdG9yZT4gY3JlYXRlKGNvbnN0IElEQkRhdGFi
YXNlSWRlbnRpZmllciYpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCShy
ZXZpc2lvbiAxOTk2NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgzLDcgKzExODMs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphY3RpdmF0ZVRyYW5zYWN0CiAgICAgUmVmUHRy
PFVuaXF1ZUlEQkRhdGFiYXNlPiBzZWxmKHRoaXMpOwogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uPiByZWZUcmFuc2FjdGlvbigmdHJhbnNhY3Rpb24pOwogCi0gICAgYXV0
byBjYWxsYmFjayA9IFt0aGlzLCBzZWxmLCByZWZUcmFuc2FjdGlvbl0oY29uc3QgSURCRXJyb3Im
IGVycm9yKSB7CisgICAgRXJyb3JDYWxsYmFjayBjYWxsYmFjayA9IFt0aGlzLCBzZWxmLCByZWZU
cmFuc2FjdGlvbl0oY29uc3QgSURCRXJyb3ImIGVycm9yKSB7CiAgICAgICAgIHJlZlRyYW5zYWN0
aW9uLT5kaWRBY3RpdmF0ZUluQmFja2luZ1N0b3JlKGVycm9yKTsKICAgICB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cAkocmV2aXNpb24gMTk5NjU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNSw3ICszMDUsNyBAQCBib29s
IGNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShFeGVjCiB9CiAKIAotc3RhdGljIFN0cm9u
ZzxVbmtub3duPiBkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1ZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywg
Y29uc3QgSURCVmFsdWUmIHZhbHVlKQorc3RhdGljIFN0cm9uZzxKU0M6OlVua25vd24+IGRlc2Vy
aWFsaXplSURCVmFsdWVUb0pTVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBjb25zdCBJREJWYWx1ZSYg
dmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5kYXRhKCkuZGF0YSgpKQogICAgICAgICByZXR1cm4g
eyBleGVjLnZtKCksIGpzVW5kZWZpbmVkKCkgfTsKQEAgLTMyNCw3ICszMjQsNyBAQCBzdGF0aWMg
U3Ryb25nPFVua25vd24+IGRlc2VyaWFsaXplSURCVmFsCiAgICAgcmV0dXJuIHsgZXhlYy52bSgp
LCByZXN1bHQgfTsKIH0KIAotU3Ryb25nPFVua25vd24+IGRlc2VyaWFsaXplSURCVmFsdWVUb0pT
VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCVmFsdWUmIHZh
bHVlKQorU3Ryb25nPEpTQzo6VW5rbm93bj4gZGVzZXJpYWxpemVJREJWYWx1ZVRvSlNWYWx1ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJWYWx1ZSYgdmFsdWUpCiB7
CiAgICAgYXV0byogZXhlY1N0YXRlID0gY29udGV4dC5leGVjU3RhdGUoKTsKICAgICBpZiAoIWV4
ZWNTdGF0ZSkKQEAgLTMzMyw3ICszMzMsNyBAQCBTdHJvbmc8VW5rbm93bj4gZGVzZXJpYWxpemVJ
REJWYWx1ZVRvSlNWCiAgICAgcmV0dXJuIGRlc2VyaWFsaXplSURCVmFsdWVUb0pTVmFsdWUoKmV4
ZWNTdGF0ZSwgdmFsdWUpOwogfQogCi1TdHJvbmc8VW5rbm93bj4gZGVzZXJpYWxpemVJREJWYWx1
ZURhdGFUb0pTVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZl
ciYgdmFsdWVEYXRhKQorU3Ryb25nPEpTQzo6VW5rbm93bj4gZGVzZXJpYWxpemVJREJWYWx1ZURh
dGFUb0pTVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYg
dmFsdWVEYXRhKQogewogICAgIHJldHVybiBkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1ZhbHVlKGV4
ZWMsIElEQlZhbHVlKHZhbHVlRGF0YSkpOwogfQpAQCAtMzQ5LDcgKzM0OSw3IEBAIFJlZlB0cjxJ
REJLZXk+IHNjcmlwdFZhbHVlVG9JREJLZXkoU2NyaXAKICAgICByZXR1cm4gZXhlY1N0YXRlID8g
c2NyaXB0VmFsdWVUb0lEQktleSgqZXhlY1N0YXRlLCBzY3JpcHRWYWx1ZSkgOiBudWxscHRyOwog
fQogCi1TdHJvbmc8VW5rbm93bj4gaWRiS2V5RGF0YVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSkKK1N0cm9uZzxK
U0M6OlVua25vd24+IGlkYktleURhdGFUb1NjcmlwdFZhbHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEpCiB7CiAgICAgUmVmUHRyPElE
QktleT4ga2V5ID0ga2V5RGF0YS5tYXliZUNyZWF0ZUlEQktleSgpOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAkocmV2aXNpb24gMTk5NjU2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIwLDEzICsyMCwxMyBAQAogI2lmbmRlZiBKU0RPTVdpbmRvd0Jhc2VfaAog
I2RlZmluZSBKU0RPTVdpbmRvd0Jhc2VfaAogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFz
cyBET01XaW5kb3c7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRE9NV3JhcHBlcldvcmxk
OwogICAgIGNsYXNzIEpTRE9NV2luZG93OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0ZpbGVTeXN0ZW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAkocmV2aXNpb24gMTk5NjU2KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MDksNiArNDA5LDExIEBAIGludCByZWFkRnJvbUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmQK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihieXRlc1JlYWQpOwogfQogCitib29sIGhhcmRM
aW5rT3JDb3B5RmlsZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvbikKK3sKKyAgICByZXR1cm4gISE6OkNvcHlGaWxlKHNvdXJjZS5jaGFyYWN0ZXJzV2l0aE51
bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgZGVzdGluYXRpb24uY2hhcmFjdGVyc1dpdGhOdWxsVGVy
bWluYXRpb24oKS5kYXRhKCksIFRSVUUpOworfQorCiBib29sIHVubG9hZE1vZHVsZShQbGF0Zm9y
bU1vZHVsZSBtb2R1bGUpCiB7CiAgICAgcmV0dXJuIDo6RnJlZUxpYnJhcnkobW9kdWxlKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxOTk2ODUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA0LTE4ICBQZXIgQXJuZSBWb2xs
YW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJdIEZpeCBi
dWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRoIEluZGV4
ZWREQiBlbmFibGVkLgorCisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisKIDIwMTYtMDQt
MTEgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAanAuc29ueS5jb20+CiAKICAgICAg
ICAgW0NNYWtlXSBNYWtlIEZPTERFUiBwcm9wZXJ0eSBJTkhFUklURUQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMTk5NjU2KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9y
bVdpbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw4IEBAIGxpc3QoQVBQRU5E
IFdlYktpdF9TT1VSQ0VTX0NsYXNzZXMKICAgICB3aW4vcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAog
ICAgIHdpbi9wbHVnaW5zL1BsdWdpblZpZXdXaW4uY3BwCiAgICAgd2luL3BsdWdpbnMvbnBhcGku
Y3BwCisKKyAgICB3aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAogKQogCiBsaXN0
KEFQUEVORCBXZWJLaXRfU09VUkNFU19XZWJDb3JlU3VwcG9ydApJbmRleDogU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTk5NjU2KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDQtMTggIFBlciBBcm5lIFZvbGxhbiAg
PHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dW0luZGV4ZWREQl0gRml4IGJ1aWxk
IGVycm9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1NjcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeCBjb21waWxlIGFuZCBsaW5rIGVycm9ycyB3aGVuIGJ1aWxkaW5nIHdpdGggSW5kZXhlZERC
IGVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5v
dGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogc3RvcmFnZTogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKToKKwogMjAx
Ni0wNC0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNl
IHVzZSBvZiBEZXByZWNhdGVkOjpTY3JpcHRYWFggY2xhc3NlcwpJbmRleDogU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAJKHJldmlzaW9uIDE5OTY1NikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MDU4LDYgKzUwNTgsMTAgQEAgSFJFU1VMVCBXZWJWaWV3Ojpu
b3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgICAgICByZXR1cm4gaHI7CiAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NSZWdpb25zRW5hYmxlZCghIWVu
YWJsZWQpOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJraXRJbmRleGVkREJFbmFibGVkKHRy
dWUpOworI2VuZGlmCisKICAgICBociA9IHByZWZlcmVuY2VzLT5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpJ
bmRleDogU291cmNlL1dlYktpdC93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL3N0b3JhZ2UvV2ViRGF0
YWJhc2VQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVy
LmgiCisKKyNpbmNsdWRlIDxzaGxvYmouaD4KKyNpbmNsdWRlIDxzaGx3YXBpLmg+CisKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKK1N0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKK3sKKyAgICBjaGFyIGV4ZWN1dGFibGVQYXRoW01B
WF9QQVRIXTsKKyAgICBjaGFyIGFwcERhdGFEaXJlY3RvcnlbTUFYX1BBVEhdOworICAgIGNoYXIg
ZGF0YWJhc2VEaXJlY3RvcnlbTUFYX1BBVEhdOworCisgICAgaWYgKEZBSUxFRCg6OlNIR2V0Rm9s
ZGVyUGF0aEEoMCwgQ1NJRExfTE9DQUxfQVBQREFUQSB8IENTSURMX0ZMQUdfQ1JFQVRFLCAwLCAw
LCBhcHBEYXRhRGlyZWN0b3J5KSkKKyAgICAgICAgfHwgRkFJTEVEKDo6R2V0TW9kdWxlRmlsZU5h
bWVBKDAsIGV4ZWN1dGFibGVQYXRoLCBNQVhfUEFUSCkpKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCIiKTsKKworICAgIDo6UGF0aFJlbW92ZUV4dGVuc2lvbkEoZXhlY3V0YWJsZVBhdGgpOworICAg
IExQU1RSIGV4ZWN1dGFibGVOYW1lID0gOjpQYXRoRmluZEZpbGVOYW1lQShleGVjdXRhYmxlUGF0
aCk7CisgICAgc3ByaW50Zl9zKGRhdGFiYXNlRGlyZWN0b3J5LCBNQVhfUEFUSCwgIiVzXFwlcyIs
IGFwcERhdGFEaXJlY3RvcnksIGV4ZWN1dGFibGVOYW1lKTsKKworICAgIGlmICg6OlNIQ3JlYXRl
RGlyZWN0b3J5RXhBKDAsIGRhdGFiYXNlRGlyZWN0b3J5LCAwKSAhPSBFUlJPUl9TVUNDRVNTCisg
ICAgICAgICYmIDo6R2V0TGFzdEVycm9yKCkgIT0gRVJST1JfRklMRV9FWElTVFMKKyAgICAgICAg
JiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykKKyAgICAgICAgcmV0
dXJuIFN0cmluZygiIik7CisKKyAgICByZXR1cm4gU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5KTsK
K30KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276667</attachid>
            <date>2016-04-18 14:16:19 -0700</date>
            <delta_ts>2016-04-19 14:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156713-20160418231642.patch</filename>
            <type>text/plain</type>
            <size>11958</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTY4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA0LTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJd
IEZpeCBidWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRo
IEluZGV4ZWREQiBlbmFibGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OmFjdGl2YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAg
ICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aGFyZExpbmtPckNvcHlGaWxlKToKKwogMjAxNi0wNC0xOCAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBkb24ndCB0b2dn
bGUgcGxheWJhY2sgd2hlbiBtZWRpYSBlbmdpbmUgcmF0ZSBjaGFuZ2VzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMTk5Njg3KQorKysgU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsOSBAQCBzZXQoV2Vi
Q29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJCiAKICAgICBNb2R1bGVzL2dlb2xvY2F0
aW9uCiAgICAgTW9kdWxlcy9pbmRleGVkZGIKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQK
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQKICAgICBNb2R1bGVzL25vdGlmaWNhdGlv
bnMKICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDE5OTY4NykKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIElEQlNl
cnZlciB7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4g
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3Rv
cmUmIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQogewotICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihi
YWNraW5nU3RvcmUsIGluZm8pOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24+KG5ldyBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihi
YWNraW5nU3RvcmUsIGluZm8pKTsKIH0KIAogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246
Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYgYmFj
a2luZ1N0b3JlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaAkocmV2aXNpb24gMTk5Njg3KQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDYgQEAgY2xhc3Mg
TWVtb3J5T2JqZWN0U3RvcmU7CiB0eXBlZGVmIEhhc2hNYXA8SURCS2V5RGF0YSwgVGhyZWFkU2Fm
ZURhdGFCdWZmZXIsIElEQktleURhdGFIYXNoLCBJREJLZXlEYXRhSGFzaFRyYWl0cz4gS2V5VmFs
dWVNYXA7CiAKIGNsYXNzIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uIHsKLSAgICBmcmll
bmQgc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPiBzdGQ6Om1h
a2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihXZWJDb3JlOjpJREJTZXJ2
ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
SW5mbyYpOwogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24+IGNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9y
ZS5jcHAJKHJldmlzaW9uIDE5OTY4NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw3ICs0NSw3IEBAIHN0YXRpYyB1aW50NjRfdCBtYXhHZW5lcmF0ZWRLZXlWYWx1ZSA9IDAKIAog
c3RkOjp1bmlxdWVfcHRyPE1lbW9yeUlEQkJhY2tpbmdTdG9yZT4gTWVtb3J5SURCQmFja2luZ1N0
b3JlOjpjcmVhdGUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUlEQkJhY2tpbmdTdG9yZT4oaWRlbnRp
Zmllcik7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlJREJCYWNraW5nU3RvcmU+
KG5ldyBNZW1vcnlJREJCYWNraW5nU3RvcmUoaWRlbnRpZmllcikpOwogfQogCiBNZW1vcnlJREJC
YWNraW5nU3RvcmU6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZShjb25zdCBJREJEYXRhYmFzZUlkZW50
aWZpZXImIGlkZW50aWZpZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCShy
ZXZpc2lvbiAxOTk2ODcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDYg
QEAgbmFtZXNwYWNlIElEQlNlcnZlciB7CiBjbGFzcyBNZW1vcnlPYmplY3RTdG9yZTsKIAogY2xh
c3MgTWVtb3J5SURCQmFja2luZ1N0b3JlIDogcHVibGljIElEQkJhY2tpbmdTdG9yZSB7Ci0gICAg
ZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlJREJCYWNraW5nU3RvcmU+IHN0ZDo6bWFrZV91
bmlxdWU8TWVtb3J5SURCQmFja2luZ1N0b3JlPihjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlk
ZW50aWZpZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUlE
QkJhY2tpbmdTdG9yZT4gY3JlYXRlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogICAg
IApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxOTk2ODcpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjphY3RpdmF0ZVRyYW5zYWN0CiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlPiBz
ZWxmKHRoaXMpOwogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiByZWZU
cmFuc2FjdGlvbigmdHJhbnNhY3Rpb24pOwogCi0gICAgYXV0byBjYWxsYmFjayA9IFt0aGlzLCBz
ZWxmLCByZWZUcmFuc2FjdGlvbl0oY29uc3QgSURCRXJyb3ImIGVycm9yKSB7CisgICAgRXJyb3JD
YWxsYmFjayBjYWxsYmFjayA9IFt0aGlzLCBzZWxmLCByZWZUcmFuc2FjdGlvbl0oY29uc3QgSURC
RXJyb3ImIGVycm9yKSB7CiAgICAgICAgIHJlZlRyYW5zYWN0aW9uLT5kaWRBY3RpdmF0ZUluQmFj
a2luZ1N0b3JlKGVycm9yKTsKICAgICB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAkocmV2aXNpb24gMTk5Njg3KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIw
LDEzICsyMCwxMyBAQAogI2lmbmRlZiBKU0RPTVdpbmRvd0Jhc2VfaAogI2RlZmluZSBKU0RPTVdp
bmRvd0Jhc2VfaAogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBET01XaW5kb3c7CiAg
ICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRE9NV3JhcHBlcldvcmxkOwogICAgIGNsYXNzIEpT
RE9NV2luZG93OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lz
dGVtV2luLmNwcAkocmV2aXNpb24gMTk5Njg3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0ZpbGVTeXN0ZW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDksNiArNDA5LDExIEBA
IGludCByZWFkRnJvbUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmQKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8aW50PihieXRlc1JlYWQpOwogfQogCitib29sIGhhcmRMaW5rT3JDb3B5RmlsZShj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbikKK3sKKyAgICBy
ZXR1cm4gISE6OkNvcHlGaWxlKHNvdXJjZS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigp
LmRhdGEoKSwgZGVzdGluYXRpb24uY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5kYXRh
KCksIFRSVUUpOworfQorCiBib29sIHVubG9hZE1vZHVsZShQbGF0Zm9ybU1vZHVsZSBtb2R1bGUp
CiB7CiAgICAgcmV0dXJuIDo6RnJlZUxpYnJhcnkobW9kdWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxOTk2ODcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE2LTA0LTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRs
b29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJdIEZpeCBidWlsZCBlcnJvcnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3MTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggY29tcGls
ZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRoIEluZGV4ZWREQiBlbmFibGVkLgor
CisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisKIDIwMTYtMDQtMTEgIEZ1amlpIEhpcm9u
b3JpICA8SGlyb25vcmkuRnVqaWlAanAuc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBNYWtl
IEZPTERFUiBwcm9wZXJ0eSBJTkhFUklURUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
aW4uY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQko
cmV2aXNpb24gMTk5Njg3KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VT
X0NsYXNzZXMKICAgICB3aW4vcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAogICAgIHdpbi9wbHVnaW5z
L1BsdWdpblZpZXdXaW4uY3BwCiAgICAgd2luL3BsdWdpbnMvbnBhcGkuY3BwCisKKyAgICB3aW4v
c3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAogKQogCiBsaXN0KEFQUEVORCBXZWJLaXRf
U09VUkNFU19XZWJDb3JlU3VwcG9ydApJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5
Njg3KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTYtMDQtMTggIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2su
Y29tPgorCisgICAgICAgIFtXaW5dW0luZGV4ZWREQl0gRml4IGJ1aWxkIGVycm9ycy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcxMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjb21waWxlIGFu
ZCBsaW5rIGVycm9ycyB3aGVuIGJ1aWxkaW5nIHdpdGggSW5kZXhlZERCIGVuYWJsZWQuCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2Vz
Q2hhbmdlZCk6CisgICAgICAgICogc3RvcmFnZTogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJEYXRhYmFzZVByb3Zp
ZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKToKKwogMjAxNi0wNC0xNSAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1A6IE1ha2UgZHluYW1p
Y2FsbHktYWRkZWQgZmF2aWNvbnMgKHZpYSBsaW5rIHJlbD0iaWNvbiIpIG9iZXkgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiAxOTk2ODcp
CisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA1
OCw2ICs1MDU4LDEwIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2UK
ICAgICAgICAgcmV0dXJuIGhyOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0Q1NTUmVnaW9uc0VuYWJsZWQoISFlbmFibGVkKTsKIAorI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0V2Via2l0SW5kZXhlZERCRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgorCiAgICAgaHIg
PSBwcmVmZXJlbmNlcy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYg
KEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViRGF0YWJhc2VQcm92aWRlci5oIgorCisjaW5jbHVkZSA8c2hsb2Jq
Lmg+CisjaW5jbHVkZSA8c2hsd2FwaS5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CitTdHJpbmcgV2ViRGF0YWJhc2VQcm92aWRlcjo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0
aCgpCit7CisgICAgY2hhciBleGVjdXRhYmxlUGF0aFtNQVhfUEFUSF07CisgICAgY2hhciBhcHBE
YXRhRGlyZWN0b3J5W01BWF9QQVRIXTsKKyAgICBjaGFyIGRhdGFiYXNlRGlyZWN0b3J5W01BWF9Q
QVRIXTsKKworICAgIGlmIChGQUlMRUQoOjpTSEdldEZvbGRlclBhdGhBKDAsIENTSURMX0xPQ0FM
X0FQUERBVEEgfCBDU0lETF9GTEFHX0NSRUFURSwgMCwgMCwgYXBwRGF0YURpcmVjdG9yeSkpCisg
ICAgICAgIHx8IEZBSUxFRCg6OkdldE1vZHVsZUZpbGVOYW1lQSgwLCBleGVjdXRhYmxlUGF0aCwg
TUFYX1BBVEgpKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygiIik7CisKKyAgICA6OlBhdGhSZW1v
dmVFeHRlbnNpb25BKGV4ZWN1dGFibGVQYXRoKTsKKyAgICBMUFNUUiBleGVjdXRhYmxlTmFtZSA9
IDo6UGF0aEZpbmRGaWxlTmFtZUEoZXhlY3V0YWJsZVBhdGgpOworICAgIHNwcmludGZfcyhkYXRh
YmFzZURpcmVjdG9yeSwgTUFYX1BBVEgsICIlc1xcJXMiLCBhcHBEYXRhRGlyZWN0b3J5LCBleGVj
dXRhYmxlTmFtZSk7CisKKyAgICBpZiAoOjpTSENyZWF0ZURpcmVjdG9yeUV4QSgwLCBkYXRhYmFz
ZURpcmVjdG9yeSwgMCkgIT0gRVJST1JfU1VDQ0VTUworICAgICAgICAmJiA6OkdldExhc3RFcnJv
cigpICE9IEVSUk9SX0ZJTEVfRVhJU1RTCisgICAgICAgICYmIDo6R2V0TGFzdEVycm9yKCkgIT0g
RVJST1JfQUxSRUFEWV9FWElTVFMpCisgICAgICAgIHJldHVybiBTdHJpbmcoIiIpOworCisgICAg
cmV0dXJuIFN0cmluZyhkYXRhYmFzZURpcmVjdG9yeSk7Cit9CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276755</attachid>
            <date>2016-04-19 14:08:29 -0700</date>
            <delta_ts>2016-04-19 14:34:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156713-20160419230853.patch</filename>
            <type>text/plain</type>
            <size>11552</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA0LTE5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJd
IEZpeCBidWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRo
IEluZGV4ZWREQiBlbmFibGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XcmFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aGFyZExpbmtPckNvcHlGaWxlKToKKwogMjAxNi0wNC0xOSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVw
ZGF0ZSBBTkdMRQpJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UJKHJldmlzaW9uIDE5OTcz
NSkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0xODYsNyArMTg2LDkgQEAgc2V0KFdlYkNvcmVfRk9SV0FSRElOR19IRUFERVJTX0RJUkVDVE9S
SQogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbgogICAgIE1vZHVsZXMvaW5kZXhlZGRiCisgICAg
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50CiAgICAgTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5Cisg
ICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
CiAgICAgTW9kdWxlcy9ub3RpZmljYXRpb25zCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCShyZXZp
c2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBAIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5
QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpj
cmVhdGUoTWVtb3J5SURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYgaW5mbykKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbj4oYmFja2luZ1N0b3JlLCBpbmZvKTsKKyAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihuZXcgTWVtb3J5
QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oYmFja2luZ1N0b3JlLCBpbmZvKSk7CiB9CiAKIE1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihN
ZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwgY29uc3QgSURCVHJhbnNhY3Rpb25J
bmZvJiBpbmZvKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uLmgJKHJldmlzaW9uIDE5OTczNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIE1lbW9yeU9iamVjdFN0b3JlOwogdHlwZWRlZiBIYXNo
TWFwPElEQktleURhdGEsIFRocmVhZFNhZmVEYXRhQnVmZmVyLCBJREJLZXlEYXRhSGFzaCwgSURC
S2V5RGF0YUhhc2hUcmFpdHM+IEtleVZhbHVlTWFwOwogCiBjbGFzcyBNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbiB7Ci0gICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbj4gc3RkOjptYWtlX3VuaXF1ZTxNZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbj4oV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25z
dCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm8mKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPiBjcmVhdGUoTWVtb3J5
SURCQmFja2luZ1N0b3JlJiwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3Rv
cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgdWludDY0X3QgbWF4
R2VuZXJhdGVkS2V5VmFsdWUgPSAwCiAKIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlJREJCYWNraW5n
U3RvcmU+IE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlKGNvbnN0IElEQkRhdGFiYXNlSWRl
bnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZW1v
cnlJREJCYWNraW5nU3RvcmU+KGlkZW50aWZpZXIpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8TWVtb3J5SURCQmFja2luZ1N0b3JlPihuZXcgTWVtb3J5SURCQmFja2luZ1N0b3JlKGlkZW50
aWZpZXIpKTsKIH0KIAogTWVtb3J5SURCQmFja2luZ1N0b3JlOjpNZW1vcnlJREJCYWNraW5nU3Rv
cmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaAkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw3ICs0MCw2IEBAIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogY2xhc3Mg
TWVtb3J5T2JqZWN0U3RvcmU7CiAKIGNsYXNzIE1lbW9yeUlEQkJhY2tpbmdTdG9yZSA6IHB1Ymxp
YyBJREJCYWNraW5nU3RvcmUgewotICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5SURC
QmFja2luZ1N0b3JlPiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUlEQkJhY2tpbmdTdG9yZT4oY29u
c3QgV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlJREJCYWNraW5nU3RvcmU+IGNyZWF0ZShjb25zdCBJREJE
YXRhYmFzZUlkZW50aWZpZXImKTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjAs
MTMgKzIwLDEzIEBACiAjaWZuZGVmIEpTRE9NV2luZG93QmFzZV9oCiAjZGVmaW5lIEpTRE9NV2lu
ZG93QmFzZV9oCiAKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIERPTVdpbmRvdzsKICAg
ICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiAgICAgY2xhc3MgSlNE
T01XaW5kb3c7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
aAkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5kZWYgSlNET01X
cmFwcGVyX2gKICNkZWZpbmUgSlNET01XcmFwcGVyX2gKIAorI2luY2x1ZGUgIkRPTVdyYXBwZXJX
b3JsZC5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0Rlc3RydWN0aWJsZU9iamVjdC5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwOSw2ICs0MDksMTEgQEAgaW50IHJlYWRGcm9tRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KGJ5dGVzUmVhZCk7CiB9CiAKK2Jvb2wgaGFy
ZExpbmtPckNvcHlGaWxlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIGRlc3Rp
bmF0aW9uKQoreworICAgIHJldHVybiAhITo6Q29weUZpbGUoc291cmNlLmNoYXJhY3RlcnNXaXRo
TnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpLCBkZXN0aW5hdGlvbi5jaGFyYWN0ZXJzV2l0aE51bGxU
ZXJtaW5hdGlvbigpLmRhdGEoKSwgVFJVRSk7Cit9CisKIGJvb2wgdW5sb2FkTW9kdWxlKFBsYXRm
b3JtTW9kdWxlIG1vZHVsZSkKIHsKICAgICByZXR1cm4gOjpGcmVlTGlicmFyeShtb2R1bGUpOwpJ
bmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTczNSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDQtMTkgIFBlciBBcm5lIFZv
bGxhbiAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dW0luZGV4ZWREQl0gRml4
IGJ1aWxkIGVycm9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NjcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeCBjb21waWxlIGFuZCBsaW5rIGVycm9ycyB3aGVuIGJ1aWxkaW5nIHdpdGggSW5k
ZXhlZERCIGVuYWJsZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKwogMjAxNi0w
NC0xMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBqcC5zb255LmNvbT4KIAogICAg
ICAgICBbQ01ha2VdIE1ha2UgRk9MREVSIHByb3BlcnR5IElOSEVSSVRFRApJbmRleDogU291cmNl
L1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRm
b3JtV2luLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1LDggQEAgbGlzdChBUFBF
TkQgV2ViS2l0X1NPVVJDRVNfQ2xhc3NlcwogICAgIHdpbi9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CiAgICAgd2luL3BsdWdpbnMvUGx1Z2luVmlld1dpbi5jcHAKICAgICB3aW4vcGx1Z2lucy9ucGFw
aS5jcHAKKworICAgIHdpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCiApCiAKIGxp
c3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTX1dlYkNvcmVTdXBwb3J0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wNC0xOSAgUGVyIEFybmUgVm9sbGFu
ICA8cGVhdm9Ab3V0bG9vay5jb20+CisKKyAgICAgICAgW1dpbl1bSW5kZXhlZERCXSBGaXggYnVp
bGQgZXJyb3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU2NzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4IGNvbXBpbGUgYW5kIGxpbmsgZXJyb3JzIHdoZW4gYnVpbGRpbmcgd2l0aCBJbmRleGVk
REIgZW5hYmxlZC4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKiBzdG9yYWdlOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgpOgorCiAy
MDE2LTA0LTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IENTUDogTWFrZSBkeW5hbWljYWxseS1hZGRlZCBmYXZpY29ucyAodmlhIGxpbmsgcmVsPSJpY29u
Iikgb2JleSBDb250ZW50LVNlY3VyaXR5LVBvbGljeQpJbmRleDogU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJ
KHJldmlzaW9uIDE5OTczNSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MDU4LDYgKzUwNTgsMTAgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZQogICAgICAgICByZXR1cm4gaHI7CiAgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NSZWdpb25zRW5hYmxlZCghIWVuYWJsZWQp
OwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJraXRJbmRleGVkREJFbmFibGVkKHRydWUpOwor
I2VuZGlmCisKICAgICBociA9IHByZWZlcmVuY2VzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCZl
bmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpJbmRleDog
U291cmNlL1dlYktpdC93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3Bw
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQ
cm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVyLmgiCisK
KyNpbmNsdWRlIDxzaGxvYmouaD4KKyNpbmNsdWRlIDxzaGx3YXBpLmg+CisKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKK1N0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnlQYXRoKCkKK3sKKyAgICBjaGFyIGV4ZWN1dGFibGVQYXRoW01BWF9QQVRI
XTsKKyAgICBjaGFyIGFwcERhdGFEaXJlY3RvcnlbTUFYX1BBVEhdOworICAgIGNoYXIgZGF0YWJh
c2VEaXJlY3RvcnlbTUFYX1BBVEhdOworCisgICAgaWYgKEZBSUxFRCg6OlNIR2V0Rm9sZGVyUGF0
aEEoMCwgQ1NJRExfTE9DQUxfQVBQREFUQSB8IENTSURMX0ZMQUdfQ1JFQVRFLCAwLCAwLCBhcHBE
YXRhRGlyZWN0b3J5KSkKKyAgICAgICAgfHwgRkFJTEVEKDo6R2V0TW9kdWxlRmlsZU5hbWVBKDAs
IGV4ZWN1dGFibGVQYXRoLCBNQVhfUEFUSCkpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCIiKTsK
KworICAgIDo6UGF0aFJlbW92ZUV4dGVuc2lvbkEoZXhlY3V0YWJsZVBhdGgpOworICAgIExQU1RS
IGV4ZWN1dGFibGVOYW1lID0gOjpQYXRoRmluZEZpbGVOYW1lQShleGVjdXRhYmxlUGF0aCk7Cisg
ICAgc3ByaW50Zl9zKGRhdGFiYXNlRGlyZWN0b3J5LCBNQVhfUEFUSCwgIiVzXFwlc1xcV2ViS2l0
XFxEYXRhYmFzZXNcXF9fX0luZGV4ZWREQiIsIGFwcERhdGFEaXJlY3RvcnksIGV4ZWN1dGFibGVO
YW1lKTsKKworICAgIGlmICg6OlNIQ3JlYXRlRGlyZWN0b3J5RXhBKDAsIGRhdGFiYXNlRGlyZWN0
b3J5LCAwKSAhPSBFUlJPUl9TVUNDRVNTCisgICAgICAgICYmIDo6R2V0TGFzdEVycm9yKCkgIT0g
RVJST1JfRklMRV9FWElTVFMKKyAgICAgICAgJiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9B
TFJFQURZX0VYSVNUUykKKyAgICAgICAgcmV0dXJuIFN0cmluZygiIik7CisKKyAgICByZXR1cm4g
U3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5KTsKK30KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276760</attachid>
            <date>2016-04-19 14:34:39 -0700</date>
            <delta_ts>2016-04-21 07:31:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156713-20160419233503.patch</filename>
            <type>text/plain</type>
            <size>10591</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA0LTE5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJd
IEZpeCBidWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRo
IEluZGV4ZWREQiBlbmFibGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIFBsYXRmb3Jt
V2luLmNtYWtlOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhcmRMaW5rT3JDb3B5Rmls
ZSk6CisKIDIwMTYtMDQtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBVcGRhdGUgQU5HTEUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtV2luLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNt
YWtlCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw5IEBAIHNldChXZWJDb3JlX0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJFQ1RPUkkKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBNb2R1
bGVzL2luZGV4ZWRkYgorICAgIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudAogICAgIE1vZHVsZXMv
aW5kZXhlZGRiL2xlZ2FjeQorICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlcgogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZAogICAgIE1vZHVsZXMvbm90aWZpY2F0aW9ucwogICAgIE1vZHVs
ZXMvd2ViZGF0YWJhc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5oCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsMTAgKzQ2LDEwIEBAIGNsYXNzIE1lbW9yeU9iamVjdFN0b3JlOwogdHlwZWRl
ZiBIYXNoTWFwPElEQktleURhdGEsIFRocmVhZFNhZmVEYXRhQnVmZmVyLCBJREJLZXlEYXRhSGFz
aCwgSURCS2V5RGF0YUhhc2hUcmFpdHM+IEtleVZhbHVlTWFwOwogCiBjbGFzcyBNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbiB7Ci0gICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbj4gc3RkOjptYWtlX3VuaXF1ZTxNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbj4oV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmUm
LCBjb25zdCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm8mKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPiBjcmVhdGUo
TWVtb3J5SURCQmFja2luZ1N0b3JlJiwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7CiAKKyAg
ICBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBj
b25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB+TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24oKTsKIAogICAgIGJvb2wgaXNWZXJzaW9uQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9p
bmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZTsg
fQpAQCAtNzQsOCArNzQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXQoKTsKIAogcHJpdmF0
ZToKLSAgICBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3Rv
cmUmLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKLQogICAgIHZvaWQgZmluaXNoKCk7CiAK
ICAgICBNZW1vcnlJREJCYWNraW5nU3RvcmUmIG1fYmFja2luZ1N0b3JlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaAkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCwxMCArNDAsMTAgQEAgbmFtZXNwYWNlIElEQlNlcnZlciB7CiBjbGFz
cyBNZW1vcnlPYmplY3RTdG9yZTsKIAogY2xhc3MgTWVtb3J5SURCQmFja2luZ1N0b3JlIDogcHVi
bGljIElEQkJhY2tpbmdTdG9yZSB7Ci0gICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlJ
REJCYWNraW5nU3RvcmU+IHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5SURCQmFja2luZ1N0b3JlPihj
b25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUlEQkJhY2tpbmdTdG9yZT4gY3JlYXRlKGNvbnN0IElE
QkRhdGFiYXNlSWRlbnRpZmllciYpOwogICAgIAorICAgIE1lbW9yeUlEQkJhY2tpbmdTdG9yZShj
b25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKICAgICB+TWVtb3J5SURCQmFja2luZ1N0b3Jl
KCkgZmluYWw7CiAKICAgICBJREJFcnJvciBnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhJREJE
YXRhYmFzZUluZm8mKSBmaW5hbDsKQEAgLTc5LDggKzc5LDYgQEAgcHVibGljOgogICAgIHZvaWQg
cmVzdG9yZU9iamVjdFN0b3JlRm9yVmVyc2lvbkNoYW5nZUFib3J0KFJlZjxNZW1vcnlPYmplY3RT
dG9yZT4mJik7CiAKIHByaXZhdGU6Ci0gICAgTWVtb3J5SURCQmFja2luZ1N0b3JlKGNvbnN0IElE
QkRhdGFiYXNlSWRlbnRpZmllciYpOwotCiAgICAgUmVmUHRyPE1lbW9yeU9iamVjdFN0b3JlPiB0
YWtlT2JqZWN0U3RvcmVCeUlkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcik7CiAKICAgICBJ
REJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgJKHJldmlzaW9uIDE5OTczNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMCwxMyArMjAsMTMgQEAKICNpZm5kZWYgSlNET01XaW5kb3dCYXNlX2gKICNkZWZpbmUg
SlNET01XaW5kb3dCYXNlX2gKIAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRE9NV2lu
ZG93OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKICAgICBj
bGFzcyBKU0RPTVdpbmRvdzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oCShyZXZpc2lvbiAxOTk3MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRl
ZiBKU0RPTVdyYXBwZXJfaAogI2RlZmluZSBKU0RPTVdyYXBwZXJfaAogCisjaW5jbHVkZSAiRE9N
V3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
IDxydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0Lmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAJKHJldmlzaW9uIDE5OTczNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDA5LDYgKzQwOSwxMSBAQCBpbnQgcmVhZEZyb21GaWxlKFBsYXRmb3JtRmlsZUhh
bmRsZSBoYW5kCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oYnl0ZXNSZWFkKTsKIH0KIAor
Ym9vbCBoYXJkTGlua09yQ29weUZpbGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb24pCit7CisgICAgcmV0dXJuICEhOjpDb3B5RmlsZShzb3VyY2UuY2hhcmFj
dGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5kYXRhKCksIGRlc3RpbmF0aW9uLmNoYXJhY3RlcnNX
aXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpLCBUUlVFKTsKK30KKwogYm9vbCB1bmxvYWRNb2R1
bGUoUGxhdGZvcm1Nb2R1bGUgbW9kdWxlKQogewogICAgIHJldHVybiA6OkZyZWVMaWJyYXJ5KG1v
ZHVsZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNC0xOSAgUGVy
IEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CisKKyAgICAgICAgW1dpbl1bSW5kZXhl
ZERCXSBGaXggYnVpbGQgZXJyb3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU2NzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4IGNvbXBpbGUgYW5kIGxpbmsgZXJyb3JzIHdoZW4gYnVpbGRpbmcg
d2l0aCBJbmRleGVkREIgZW5hYmxlZC4KKworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgor
CiAyMDE2LTA0LTExICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQGpwLnNvbnkuY29t
PgogCiAgICAgICAgIFtDTWFrZV0gTWFrZSBGT0xERVIgcHJvcGVydHkgSU5IRVJJVEVECkluZGV4
OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UJKHJldmlzaW9uIDE5OTczNSkKKysrIFNvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw2ICsyMTUsOCBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfU09VUkNFU19DbGFzc2VzCiAgICAgd2luL3BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKICAgICB3aW4vcGx1Z2lucy9QbHVnaW5WaWV3V2luLmNwcAogICAgIHdpbi9wbHVn
aW5zL25wYXBpLmNwcAorCisgICAgd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAK
ICkKIAogbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVNfV2ViQ29yZVN1cHBvcnQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTczNSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA0LTE5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJd
IEZpeCBidWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRo
IEluZGV4ZWREQiBlbmFibGVkLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChX
ZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAgICAqIHN0b3JhZ2U6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViRGF0YWJhc2VQcm92aWRlcjo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0
aCk6CisKIDIwMTYtMDQtMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ1NQOiBNYWtlIGR5bmFtaWNhbGx5LWFkZGVkIGZhdmljb25zICh2aWEgbGluayBy
ZWw9Imljb24iKSBvYmV5IENvbnRlbnQtU2VjdXJpdHktUG9saWN5CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwNTgsNiArNTA1OCwxMCBAQCBIUkVTVUxUIFdlYlZpZXc6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlCiAgICAgICAgIHJldHVybiBocjsKICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU1JlZ2lvbnNFbmFibGVkKCEh
ZW5hYmxlZCk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYmtpdEluZGV4ZWREQkVuYWJsZWQo
dHJ1ZSk7CisjZW5kaWYKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92
aWRlci5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC93aW4vc3RvcmFnZS9XZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgPHNobG9iai5oPgorI2luY2x1ZGUgPHNobHdhcGkuaD4KKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6Omlu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQoreworICAgIGNoYXIgZXhlY3V0YWJsZVBhdGhb
TUFYX1BBVEhdOworICAgIGNoYXIgYXBwRGF0YURpcmVjdG9yeVtNQVhfUEFUSF07CisgICAgY2hh
ciBkYXRhYmFzZURpcmVjdG9yeVtNQVhfUEFUSF07CisKKyAgICBpZiAoRkFJTEVEKDo6U0hHZXRG
b2xkZXJQYXRoQSgwLCBDU0lETF9MT0NBTF9BUFBEQVRBIHwgQ1NJRExfRkxBR19DUkVBVEUsIDAs
IDAsIGFwcERhdGFEaXJlY3RvcnkpKQorICAgICAgICB8fCBGQUlMRUQoOjpHZXRNb2R1bGVGaWxl
TmFtZUEoMCwgZXhlY3V0YWJsZVBhdGgsIE1BWF9QQVRIKSkpCisgICAgICAgIHJldHVybiBTdHJp
bmcoIiIpOworCisgICAgOjpQYXRoUmVtb3ZlRXh0ZW5zaW9uQShleGVjdXRhYmxlUGF0aCk7Cisg
ICAgTFBTVFIgZXhlY3V0YWJsZU5hbWUgPSA6OlBhdGhGaW5kRmlsZU5hbWVBKGV4ZWN1dGFibGVQ
YXRoKTsKKyAgICBzcHJpbnRmX3MoZGF0YWJhc2VEaXJlY3RvcnksIE1BWF9QQVRILCAiJXNcXCVz
XFxXZWJLaXRcXERhdGFiYXNlc1xcX19fSW5kZXhlZERCIiwgYXBwRGF0YURpcmVjdG9yeSwgZXhl
Y3V0YWJsZU5hbWUpOworCisgICAgaWYgKDo6U0hDcmVhdGVEaXJlY3RvcnlFeEEoMCwgZGF0YWJh
c2VEaXJlY3RvcnksIDApICE9IEVSUk9SX1NVQ0NFU1MKKyAgICAgICAgJiYgOjpHZXRMYXN0RXJy
b3IoKSAhPSBFUlJPUl9GSUxFX0VYSVNUUworICAgICAgICAmJiA6OkdldExhc3RFcnJvcigpICE9
IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQorICAgICAgICByZXR1cm4gU3RyaW5nKCIiKTsKKworICAg
IHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOworfQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276924</attachid>
            <date>2016-04-21 07:31:46 -0700</date>
            <delta_ts>2016-04-25 11:37:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156713-20160421163207.patch</filename>
            <type>text/plain</type>
            <size>10547</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTgxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA0LTIxICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXVtJbmRleGVkREJd
IEZpeCBidWlsZCBlcnJvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggY29tcGlsZSBhbmQgbGluayBlcnJvcnMgd2hlbiBidWlsZGluZyB3aXRo
IEluZGV4ZWREQiBlbmFibGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYXJkTGlu
a09yQ29weUZpbGUpOgorCiAyMDE2LTA0LTIxICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQVg6IHN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSByZXR1cm5pbmcgZW1wdHkg
c3RyaW5nIGZvciBkb2N1bWVudCByYW5nZQpJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UJ
KHJldmlzaW9uIDE5OTgwOCkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDEwIEBAIHNldChXZWJDb3JlX0ZPUldBUkRJTkdf
SEVBREVSU19ESVJFQ1RPUkkKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBNb2R1bGVz
L2luZGV4ZWRkYgorCisgICAgTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50CiAgICAgTW9kdWxlcy9p
bmRleGVkZGIvbGVnYWN5CisgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkCiAgICAgTW9kdWxlcy9ub3RpZmljYXRpb25zCiAgICAgTW9kdWxl
cy93ZWJkYXRhYmFzZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmgJKHJldmlzaW9uIDE5OTgwOCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJJREJDdXJzb3JJbmZv
LmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gMTk5
ODA4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKICNpbmNsdWRlICJET01FcnJvci5oIgorI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IklEQkN1cnNvcldpdGhWYWx1ZS5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgJKHJldmlzaW9uIDE5OTgwOCkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NiwxMCArNDYsMTAgQEAgY2xhc3MgTWVtb3J5T2JqZWN0U3RvcmU7
CiB0eXBlZGVmIEhhc2hNYXA8SURCS2V5RGF0YSwgVGhyZWFkU2FmZURhdGFCdWZmZXIsIElEQktl
eURhdGFIYXNoLCBJREJLZXlEYXRhSGFzaFRyYWl0cz4gS2V5VmFsdWVNYXA7CiAKIGNsYXNzIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uIHsKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRy
PE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPiBzdGQ6Om1ha2VfdW5pcXVlPE1lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uPihXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tp
bmdTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbyYpOwogcHVibGljOgog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+
IGNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
KTsKIAorICAgIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9yeUlEQkJhY2tpbmdT
dG9yZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogICAgIH5NZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbigpOwogCiAgICAgYm9vbCBpc1ZlcnNpb25DaGFuZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9u
Q2hhbmdlOyB9CkBAIC03NCw4ICs3NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdCgpOwog
CiBwcml2YXRlOgotICAgIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9yeUlEQkJh
Y2tpbmdTdG9yZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwotCiAgICAgdm9pZCBmaW5p
c2goKTsKIAogICAgIE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYgbV9iYWNraW5nU3RvcmU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2lu
Z1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCShyZXZpc2lvbiAxOTk4MDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEwICs0MCwxMCBAQCBuYW1lc3BhY2UgSURCU2VydmVy
IHsKIGNsYXNzIE1lbW9yeU9iamVjdFN0b3JlOwogCiBjbGFzcyBNZW1vcnlJREJCYWNraW5nU3Rv
cmUgOiBwdWJsaWMgSURCQmFja2luZ1N0b3JlIHsKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRy
PE1lbW9yeUlEQkJhY2tpbmdTdG9yZT4gc3RkOjptYWtlX3VuaXF1ZTxNZW1vcnlJREJCYWNraW5n
U3RvcmU+KGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogcHVibGljOgog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5SURCQmFja2luZ1N0b3JlPiBjcmVhdGUo
Y29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgCisgICAgTWVtb3J5SURCQmFja2lu
Z1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogICAgIH5NZW1vcnlJREJCYWNr
aW5nU3RvcmUoKSBmaW5hbDsKIAogICAgIElEQkVycm9yIGdldE9yRXN0YWJsaXNoRGF0YWJhc2VJ
bmZvKElEQkRhdGFiYXNlSW5mbyYpIGZpbmFsOwpAQCAtNzksOCArNzksNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXN0b3JlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJvcnQoUmVmPE1lbW9y
eU9iamVjdFN0b3JlPiYmKTsKIAogcHJpdmF0ZToKLSAgICBNZW1vcnlJREJCYWNraW5nU3RvcmUo
Y29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7Ci0KICAgICBSZWZQdHI8TWVtb3J5T2JqZWN0
U3RvcmU+IHRha2VPYmplY3RTdG9yZUJ5SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKTsK
IAogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCShyZXZpc2lvbiAxOTk4
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQwOSw2ICs0MDksMTEgQEAgaW50IHJlYWRGcm9tRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KGJ5dGVzUmVhZCk7
CiB9CiAKK2Jvb2wgaGFyZExpbmtPckNvcHlGaWxlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uKQoreworICAgIHJldHVybiAhITo6Q29weUZpbGUoc291cmNl
LmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpLCBkZXN0aW5hdGlvbi5jaGFy
YWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgVFJVRSk7Cit9CisKIGJvb2wgdW5s
b2FkTW9kdWxlKFBsYXRmb3JtTW9kdWxlIG1vZHVsZSkKIHsKICAgICByZXR1cm4gOjpGcmVlTGli
cmFyeShtb2R1bGUpOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTgwOCkKKysrIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDQt
MjEgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5d
W0luZGV4ZWREQl0gRml4IGJ1aWxkIGVycm9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjb21waWxlIGFuZCBsaW5rIGVycm9ycyB3aGVuIGJ1
aWxkaW5nIHdpdGggSW5kZXhlZERCIGVuYWJsZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5j
bWFrZToKKwogMjAxNi0wNC0xMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBqcC5z
b255LmNvbT4KIAogICAgICAgICBbQ01ha2VdIE1ha2UgRk9MREVSIHByb3BlcnR5IElOSEVSSVRF
RApJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAxOTk4MDgpCisrKyBTb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1
LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVNfQ2xhc3NlcwogICAgIHdpbi9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCiAgICAgd2luL3BsdWdpbnMvUGx1Z2luVmlld1dpbi5jcHAKICAgICB3
aW4vcGx1Z2lucy9ucGFwaS5jcHAKKworICAgIHdpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTX1dlYkNvcmVTdXBwb3J0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTk4MDgpCisrKyBTb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wNC0yMSAg
UGVyIEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CisKKyAgICAgICAgW1dpbl1bSW5k
ZXhlZERCXSBGaXggYnVpbGQgZXJyb3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRml4IGNvbXBpbGUgYW5kIGxpbmsgZXJyb3JzIHdoZW4gYnVpbGRp
bmcgd2l0aCBJbmRleGVkREIgZW5hYmxlZC4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAg
ICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKiBzdG9y
YWdlOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVj
dG9yeVBhdGgpOgorCiAyMDE2LTA0LTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIENTUDogTWFrZSBkeW5hbWljYWxseS1hZGRlZCBmYXZpY29ucyAodmlh
IGxpbmsgcmVsPSJpY29uIikgb2JleSBDb250ZW50LVNlY3VyaXR5LVBvbGljeQpJbmRleDogU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE5OTgwOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDU4LDYgKzUwNTgsMTAgQEAgSFJFU1VMVCBX
ZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgICAgICByZXR1cm4gaHI7CiAgICAg
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NSZWdpb25zRW5h
YmxlZCghIWVuYWJsZWQpOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJraXRJbmRleGVkREJF
bmFibGVkKHRydWUpOworI2VuZGlmCisKICAgICBociA9IHByZWZlcmVuY2VzLT5wcml2YXRlQnJv
d3NpbmdFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0
dXJuIGhyOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9zdG9yYWdlL1dlYkRhdGFi
YXNlUHJvdmlkZXIuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL3N0b3Jh
Z2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEYXRhYmFz
ZVByb3ZpZGVyLmgiCisKKyNpbmNsdWRlIDxzaGxvYmouaD4KKyNpbmNsdWRlIDxzaGx3YXBpLmg+
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKK1N0cmluZyBXZWJEYXRhYmFzZVByb3Zp
ZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKK3sKKyAgICBjaGFyIGV4ZWN1dGFi
bGVQYXRoW01BWF9QQVRIXTsKKyAgICBjaGFyIGFwcERhdGFEaXJlY3RvcnlbTUFYX1BBVEhdOwor
ICAgIGNoYXIgZGF0YWJhc2VEaXJlY3RvcnlbTUFYX1BBVEhdOworCisgICAgaWYgKEZBSUxFRCg6
OlNIR2V0Rm9sZGVyUGF0aEEoMCwgQ1NJRExfTE9DQUxfQVBQREFUQSB8IENTSURMX0ZMQUdfQ1JF
QVRFLCAwLCAwLCBhcHBEYXRhRGlyZWN0b3J5KSkKKyAgICAgICAgfHwgRkFJTEVEKDo6R2V0TW9k
dWxlRmlsZU5hbWVBKDAsIGV4ZWN1dGFibGVQYXRoLCBNQVhfUEFUSCkpKQorICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIDo6UGF0aFJlbW92ZUV4dGVuc2lvbkEoZXhlY3V0YWJs
ZVBhdGgpOworICAgIExQU1RSIGV4ZWN1dGFibGVOYW1lID0gOjpQYXRoRmluZEZpbGVOYW1lQShl
eGVjdXRhYmxlUGF0aCk7CisgICAgc3ByaW50Zl9zKGRhdGFiYXNlRGlyZWN0b3J5LCBNQVhfUEFU
SCwgIiVzXFwlc1xcV2ViS2l0XFxEYXRhYmFzZXNcXF9fX0luZGV4ZWREQiIsIGFwcERhdGFEaXJl
Y3RvcnksIGV4ZWN1dGFibGVOYW1lKTsKKworICAgIGlmICg6OlNIQ3JlYXRlRGlyZWN0b3J5RXhB
KDAsIGRhdGFiYXNlRGlyZWN0b3J5LCAwKSAhPSBFUlJPUl9TVUNDRVNTCisgICAgICAgICYmIDo6
R2V0TGFzdEVycm9yKCkgIT0gRVJST1JfRklMRV9FWElTVFMKKyAgICAgICAgJiYgOjpHZXRMYXN0
RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykKKyAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CisKKyAgICByZXR1cm4gU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5KTsKK30KKyNlbmRp
Zgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>