<?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>163013</bug_id>
          
          <creation_ts>2016-10-06 08:00:54 -0700</creation_ts>
          <short_desc>[Win] Parallel DRTs are sharing preferences and cache.</short_desc>
          <delta_ts>2016-10-12 12:06:57 -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>Tools / Tests</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 name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sabouhallawa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1237059</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-06 08:00:54 -0700</bug_when>
    <thetext>This is causing flakiness in http layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237064</commentid>
    <comment_count>1</comment_count>
      <attachid>290824</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-06 08:22:24 -0700</bug_when>
    <thetext>Created attachment 290824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237072</commentid>
    <comment_count>2</comment_count>
      <attachid>290824</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-06 08:47:50 -0700</bug_when>
    <thetext>Comment on attachment 290824
Patch

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

&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:867
&gt; +    _declspec(dllimport) CFStringRef applicationId;

I like the idea, but instead of all this extern and dllimport we should make a function for setting the applicationID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237108</commentid>
    <comment_count>3</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-06 09:55:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 290824 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290824&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:867
&gt; &gt; +    _declspec(dllimport) CFStringRef applicationId;
&gt; 
&gt; I like the idea, but instead of all this extern and dllimport we should make
&gt; a function for setting the applicationID.

Thanks, good point! I&apos;ll update the patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238263</commentid>
    <comment_count>4</comment_count>
      <attachid>291086</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-10 04:17:23 -0700</bug_when>
    <thetext>Created attachment 291086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238264</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-10 04:18:30 -0700</bug_when>
    <thetext>Attachment 291086 did not pass style-queue:


ERROR: Source/WebKit/win/WebPreferences.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
Total errors found: 1 in 11 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>1238266</commentid>
    <comment_count>6</comment_count>
      <attachid>291088</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-10 04:58:37 -0700</bug_when>
    <thetext>Created attachment 291088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238267</commentid>
    <comment_count>7</comment_count>
      <attachid>291089</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-10 05:02:53 -0700</bug_when>
    <thetext>Created attachment 291089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238354</commentid>
    <comment_count>8</comment_count>
      <attachid>291089</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 10:03:09 -0700</bug_when>
    <thetext>Comment on attachment 291089
Patch

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

Very, very nice!

&gt; Tools/Scripts/webkitpy/port/win.py:356
&gt; +        preferences_files = self._filesystem.join(os.environ[&apos;APPDATA&apos;], &quot;Apple Computer/Preferences&quot;, &quot;com.apple.DumpRenderTree*&quot;)

We should not use &quot;Apple Computer&quot; in our naming anymore. We should use &quot;Apple Inc.&quot;

Frankly, for WebKit-specific stuff like a test harness, I think it would be better to use &quot;WebKit&quot; for storing things in the registry.

However, since we still have &quot;Apple Computer&quot; listed in &quot;WEBCORE_NAVIGATOR_VENDOR&quot; in WebCore, we should stay consistent. But I think we should propose another patch to make a blanket change from &quot;Apple Computer&quot; -&gt; &quot;Apple Inc.&quot; in the project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238788</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-11 01:30:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 291089 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291089&amp;action=review
&gt; 
&gt; Very, very nice!
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/port/win.py:356
&gt; &gt; +        preferences_files = self._filesystem.join(os.environ[&apos;APPDATA&apos;], &quot;Apple Computer/Preferences&quot;, &quot;com.apple.DumpRenderTree*&quot;)
&gt; 
&gt; We should not use &quot;Apple Computer&quot; in our naming anymore. We should use
&gt; &quot;Apple Inc.&quot;
&gt; 
&gt; Frankly, for WebKit-specific stuff like a test harness, I think it would be
&gt; better to use &quot;WebKit&quot; for storing things in the registry.
&gt; 
&gt; However, since we still have &quot;Apple Computer&quot; listed in
&gt; &quot;WEBCORE_NAVIGATOR_VENDOR&quot; in WebCore, we should stay consistent. But I
&gt; think we should propose another patch to make a blanket change from &quot;Apple
&gt; Computer&quot; -&gt; &quot;Apple Inc.&quot; in the project.

Yes, I believe this should also be changed in the various libraries we are using.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238789</commentid>
    <comment_count>10</comment_count>
      <attachid>291089</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-11 01:38:21 -0700</bug_when>
    <thetext>Comment on attachment 291089
Patch

Clearing flags on attachment: 291089

Committed r207067: &lt;http://trac.webkit.org/changeset/207067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238790</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-11 01:38:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238850</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-10-11 08:14:01 -0700</bug_when>
    <thetext>This change appears to have caused two webkitpy tests to fail:

https://build.webkit.org/builders/Apple%20Sierra%20Release%20WK2%20%28Tests%29/builds/510/steps/webkitpy-test/logs/stdio

[1004/1504] webkitpy.port.win_unittest.WinPortTest.test_diff_image erred:
  Traceback (most recent call last):
    File &quot;/Volumes/Data/slave/sierra-release-tests-wk2/build/Tools/Scripts/webkitpy/port/port_testcase.py&quot;, line 260, in test_diff_image
      port.setup_test_run()
    File &quot;/Volumes/Data/slave/sierra-release-tests-wk2/build/Tools/Scripts/webkitpy/port/win.py&quot;, line 356, in setup_test_run
      preferences_files = self._filesystem.join(os.environ[&apos;APPDATA&apos;], &quot;Apple Computer/Preferences&quot;, &quot;com.apple.DumpRenderTree*&quot;)
  KeyError: &apos;APPDATA&apos;

[1040/1504] webkitpy.port.win_unittest.WinPortTest.test_diff_image_crashed erred:
  Traceback (most recent call last):
    File &quot;/Volumes/Data/slave/sierra-release-tests-wk2/build/Tools/Scripts/webkitpy/port/port_testcase.py&quot;, line 287, in test_diff_image_crashed
      port.setup_test_run()
    File &quot;/Volumes/Data/slave/sierra-release-tests-wk2/build/Tools/Scripts/webkitpy/port/win.py&quot;, line 356, in setup_test_run
      preferences_files = self._filesystem.join(os.environ[&apos;APPDATA&apos;], &quot;Apple Computer/Preferences&quot;, &quot;com.apple.DumpRenderTree*&quot;)
    File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py&quot;, line 23, in __getitem__
      raise KeyError(key)
  KeyError: &apos;APPDATA&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238888</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-10-11 09:36:08 -0700</bug_when>
    <thetext>Reverted r207067 for reason:

This change caused webkitpy test failures.

Committed r207144: &lt;http://trac.webkit.org/changeset/207144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239220</commentid>
    <comment_count>14</comment_count>
      <attachid>291344</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-12 01:08:17 -0700</bug_when>
    <thetext>Created attachment 291344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239300</commentid>
    <comment_count>15</comment_count>
      <attachid>291344</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-12 09:15:53 -0700</bug_when>
    <thetext>Comment on attachment 291344
Patch

Looks good. Let&apos;s try it again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239324</commentid>
    <comment_count>16</comment_count>
      <attachid>291344</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-12 09:38:48 -0700</bug_when>
    <thetext>Comment on attachment 291344
Patch

Clearing flags on attachment: 291344

Committed r207218: &lt;http://trac.webkit.org/changeset/207218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239325</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-12 09:38:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239346</commentid>
    <comment_count>18</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-12 10:19:17 -0700</bug_when>
    <thetext>This (In reply to comment #16)
&gt; Comment on attachment 291344 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 291344
&gt; 
&gt; Committed r207218: &lt;http://trac.webkit.org/changeset/207218&gt;

It looks like this patch broke the windows build:

c:\cygwin\home\buildbot\slave\win-release\build\source\webkit\win\webcache.cpp(256): error C4716: &apos;WebCache::cacheFolder&apos;: must return a value [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
c:\cygwin\home\buildbot\slave\win-release\build\source\webkit\win\webcache.cpp(272): error C4716: &apos;WebCache::setCacheFolder&apos;: must return a value [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239348</commentid>
    <comment_count>19</comment_count>
      <attachid>291344</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-12 10:22:26 -0700</bug_when>
    <thetext>Comment on attachment 291344
Patch

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

&gt; Source/WebKit/win/WebCache.cpp:254
&gt; +    return S_OK;

I think we need to keep:

#else
    return E_NOTIMPL;

before #endif

&gt; Source/WebKit/win/WebCache.cpp:270
&gt; +    return S_OK;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239349</commentid>
    <comment_count>20</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-12 10:23:30 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Comment on attachment 291344 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291344&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/win/WebCache.cpp:254
&gt; &gt; +    return S_OK;
&gt; 
&gt; I think we need to keep:
&gt; 
&gt; #else
&gt;     return E_NOTIMPL;

That&apos;s a fine change, but the real problem is that the patch predates the change from USE(CFNETWORK) -&gt; USE(CFURLCONNECTION).

I&apos;ll check in a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239352</commentid>
    <comment_count>21</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-12 10:26:00 -0700</bug_when>
    <thetext>Build fix landed in r207223.

Committed r207223: &lt;http://trac.webkit.org/changeset/207223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239357</commentid>
    <comment_count>22</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2016-10-12 10:37:58 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Build fix landed in r207223.
&gt; 
&gt; Committed r207223: &lt;http://trac.webkit.org/changeset/207223&gt;

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239401</commentid>
    <comment_count>23</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-12 11:46:37 -0700</bug_when>
    <thetext>The Windows build is still failing.

C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(252): error C3861: &apos;wkCopyFoundationCacheDirectory&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(267): error C2065: &apos;CFURLCacheRef&apos;: undeclared identifier [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(267): error C2923: &apos;WTF::RetainPtr&apos;: &apos;CFURLCacheRef&apos; is not a valid template type argument for parameter &apos;T&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  WebDatabaseManager.cpp
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(267): error C3861: &apos;CFURLCacheCopySharedURLCache&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(267): error C2512: &apos;WTF::RetainPtr&apos;: no appropriate default constructor available [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\wtf/RetainPtr.h(58): note: see declaration of &apos;WTF::RetainPtr&apos; (compiling source file C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp)
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(268): error C2662: &apos;std::remove_pointer&lt;_Ty&gt;::type *WTF::RetainPtr&lt;T&gt;::get(void) const&apos;: cannot convert &apos;this&apos; pointer from &apos;WTF::RetainPtr&apos; to &apos;const WTF::RetainPtr&lt;T&gt; &amp;&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(268): note: Reason: cannot convert from &apos;WTF::RetainPtr&apos; to &apos;const WTF::RetainPtr&lt;T&gt;&apos;
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(268): note: Conversion requires a second user-defined-conversion operator or constructor
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(268): error C3861: &apos;CFURLCacheMemoryCapacity&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(269): error C2662: &apos;std::remove_pointer&lt;_Ty&gt;::type *WTF::RetainPtr&lt;T&gt;::get(void) const&apos;: cannot convert &apos;this&apos; pointer from &apos;WTF::RetainPtr&apos; to &apos;const WTF::RetainPtr&lt;T&gt; &amp;&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(269): note: Reason: cannot convert from &apos;WTF::RetainPtr&apos; to &apos;const WTF::RetainPtr&lt;T&gt;&apos;
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(269): note: Conversion requires a second user-defined-conversion operator or constructor
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(269): error C3861: &apos;CFURLCacheDiskCapacity&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(270): error C2065: &apos;CFURLCacheRef&apos;: undeclared identifier [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(270): error C2923: &apos;WTF::RetainPtr&apos;: &apos;CFURLCacheRef&apos; is not a valid template type argument for parameter &apos;T&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(270): error C3861: &apos;CFURLCacheCreate&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(270): error C2512: &apos;WTF::RetainPtr&apos;: no appropriate default constructor available [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\wtf/RetainPtr.h(58): note: see declaration of &apos;WTF::RetainPtr&apos; (compiling source file C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp)
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(271): error C2662: &apos;std::remove_pointer&lt;_Ty&gt;::type *WTF::RetainPtr&lt;T&gt;::get(void) const&apos;: cannot convert &apos;this&apos; pointer from &apos;WTF::RetainPtr&apos; to &apos;const WTF::RetainPtr&lt;T&gt; &amp;&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(271): note: Reason: cannot convert from &apos;WTF::RetainPtr&apos; to &apos;const WTF::RetainPtr&lt;T&gt;&apos;
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(271): note: Conversion requires a second user-defined-conversion operator or constructor
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\win\WebCache.cpp(271): error C3861: &apos;CFURLCacheSetSharedURLCache&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239409</commentid>
    <comment_count>24</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-12 12:06:57 -0700</bug_when>
    <thetext>I missed one of the CFNETWORK -&gt; CFURLSESSION changes:

Committed r207231: &lt;http://trac.webkit.org/changeset/207231&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290824</attachid>
            <date>2016-10-06 08:22:24 -0700</date>
            <delta_ts>2016-10-10 04:17:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163013-20161006082308.patch</filename>
            <type>text/plain</type>
            <size>8014</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTEwLTA2
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBQ
YXJhbGxlbCBEUlRzIGFyZSBzaGFyaW5nIHByZWZlcmVuY2VzIGFuZCBjYWNoZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAxMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
Zm9yIGEgV2ViS2l0IGNsaWVudCB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlCisgICAgICAgIHBy
ZWZlcmVuY2UgZmlsZS4KKworICAgICAgICAqIFdlYkFwcGxpY2F0aW9uQ2FjaGUuY3BwOgorICAg
ICAgICAoYXBwbGljYXRpb25DYWNoZVBhdGgpOgorICAgICAgICAqIFdlYkRhdGFiYXNlTWFuYWdl
ci5jcHA6CisgICAgICAgIChkYXRhYmFzZXNEaXJlY3RvcnkpOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjp2YWx1ZUZvcktleSk6CisgICAg
ICAgIChXZWJQcmVmZXJlbmNlczo6c2V0VmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViUHJlZmVy
ZW5jZXM6OnNhdmUpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
c2V0Q2FjaGVNb2RlbCk6CisKIDIwMTYtMTAtMDQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl1bRGlyZWN0MkRdIENvbm5lY3QgV2ViQ29yZS9XZWJL
aXQgRHJhd2luZwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGljYXRpb25DYWNoZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGljYXRpb25DYWNoZS5j
cHAJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkFwcGxpY2F0aW9u
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw4IEBAIHN0YXRpYyBTdHJpbmcg
YXBwbGljYXRpb25DYWNoZVBhdGgoKQogICAgIFN0cmluZyBwYXRoID0gbG9jYWxVc2VyU3BlY2lm
aWNTdG9yYWdlRGlyZWN0b3J5KCk7CiAKICNpZiBVU0UoQ0YpCi0gICAgYXV0byBjYWNoZURpcmVj
dG9yeVByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0
TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbikp
OworICAgIGV4dGVybiBDRlN0cmluZ1JlZiBhcHBsaWNhdGlvbklkOworICAgIGF1dG8gY2FjaGVE
aXJlY3RvcnlQcmVmZXJlbmNlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFwcFZhbHVlKFdl
YktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSwgYXBwbGljYXRpb25JZCkpOwogICAgIGlmIChjYWNo
ZURpcmVjdG9yeVByZWZlcmVuY2UgJiYgQ0ZTdHJpbmdHZXRUeXBlSUQoKSA9PSBDRkdldFR5cGVJ
RChjYWNoZURpcmVjdG9yeVByZWZlcmVuY2UuZ2V0KCkpKQogICAgICAgICBwYXRoID0gc3RhdGlj
X2Nhc3Q8Q0ZTdHJpbmdSZWY+KGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5jZS5nZXQoKSk7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkocmV2aXNp
b24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIwLDcgKzQyMCw4IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2Vy
OjpkaXNwYXRjaERpZE1vZGkKIHN0YXRpYyBXVEY6OlN0cmluZyBkYXRhYmFzZXNEaXJlY3Rvcnko
KQogewogI2lmIFVTRShDRikKLSAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGRpcmVj
dG9yeVByZWYgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViRGF0YWJhc2VE
aXJlY3RvcnlEZWZhdWx0c0tleSwga0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pKTsK
KyAgICBleHRlcm4gQ0ZTdHJpbmdSZWYgYXBwbGljYXRpb25JZDsKKyAgICBSZXRhaW5QdHI8Q0ZQ
cm9wZXJ0eUxpc3RSZWY+IGRpcmVjdG9yeVByZWYgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5
QXBwVmFsdWUoV2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleSwgYXBwbGljYXRpb25JZCkp
OwogICAgIGlmIChkaXJlY3RvcnlQcmVmICYmIChDRlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0
VHlwZUlEKGRpcmVjdG9yeVByZWYuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENGU3RyaW5nUmVmPihkaXJlY3RvcnlQcmVmLmdldCgpKTsKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw4
IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIHN0ZDo6bnVtZXJpY19saW1pdHM7
CiAKK1dFQktJVF9BUEkgQ0ZTdHJpbmdSZWYgYXBwbGljYXRpb25JZCA9IGtDRlByZWZlcmVuY2Vz
Q3VycmVudEFwcGxpY2F0aW9uOworCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBvbGRQcmVmZXJlbmNl
c1BhdGgoKQogewogICAgIHN0YXRpYyBTdHJpbmcgcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChyb2FtaW5nVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCAiV2ViS2l0UHJlZmVy
ZW5jZXMucGxpc3QiKTsKQEAgLTMwNiw3ICszMDgsNyBAQCBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxp
c3RSZWY+IFdlYlByZWZlcmVuCiAgICAgaWYgKHZhbHVlKQogICAgICAgICByZXR1cm4gdmFsdWU7
CiAKLSAgICB2YWx1ZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShrZXksIGtD
RlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKSk7CisgICAgdmFsdWUgPSBhZG9wdENGKENG
UHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoa2V5LCBhcHBsaWNhdGlvbklkKSk7CiAgICAgaWYgKHZh
bHVlKQogICAgICAgICByZXR1cm4gdmFsdWU7CiAKQEAgLTMxNyw3ICszMTksNyBAQCB2b2lkIFdl
YlByZWZlcmVuY2VzOjpzZXRWYWx1ZUZvcktleShDRlN0CiB7CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0
VmFsdWUobV9wcml2YXRlUHJlZnMuZ2V0KCksIGtleSwgdmFsdWUpOwogICAgIGlmIChtX2F1dG9T
YXZlcykgewotICAgICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2YWx1ZSwga0NG
UHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pOworICAgICAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUoa2V5LCB2YWx1ZSwgYXBwbGljYXRpb25JZCk7CiAgICAgICAgIHNhdmUoKTsKICAg
ICB9CiB9CkBAIC00NDgsNyArNDUwLDcgQEAgQlNUUiBXZWJQcmVmZXJlbmNlczo6d2ViUHJlZmVy
ZW5jZXNSZW1vdgogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjpzYXZlKCkKIHsKLSAgICBDRlByZWZl
cmVuY2VzQXBwU3luY2hyb25pemUoa0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pOwor
ICAgIENGUHJlZmVyZW5jZXNBcHBTeW5jaHJvbml6ZShhcHBsaWNhdGlvbklkKTsKIH0KIAogdm9p
ZCBXZWJQcmVmZXJlbmNlczo6bG9hZCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNp
b24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUwMSw3ICs1MDEsOCBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2Fj
aGVNb2RlCiAgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENG
KENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBjZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVE
aXJlY3RvcnkoMCkpOwogICAgIGlmICghY2Z1cmxDYWNoZURpcmVjdG9yeSkgewotICAgICAgICBS
ZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVy
ZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBrQ0ZQcmVmZXJl
bmNlc0N1cnJlbnRBcHBsaWNhdGlvbikpOworICAgICAgICBleHRlcm4gQ0ZTdHJpbmdSZWYgYXBw
bGljYXRpb25JZDsKKyAgICAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBwcmVmZXJl
bmNlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFwcFZhbHVlKFdlYktpdExvY2FsQ2FjaGVE
ZWZhdWx0c0tleSwgYXBwbGljYXRpb25JZCkpOwogICAgICAgICBpZiAocHJlZmVyZW5jZSAmJiAo
Q0ZTdHJpbmdHZXRUeXBlSUQoKSA9PSBDRkdldFR5cGVJRChwcmVmZXJlbmNlLmdldCgpKSkpCiAg
ICAgICAgICAgICBjZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRlN0
cmluZ1JlZj4ocHJlZmVyZW5jZS5sZWFrUmVmKCkpKTsKICAgICAgICAgZWxzZQpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA2
ODY0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTYtMTAtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIFBhcmFsbGVsIERSVHMgYXJlIHNoYXJpbmcgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNl
cGFyYXRlIHByZWZlcmVuY2VzIGFuZCBjYWNoZSBmb3IgZWFjaCBEUlQgaW5zdGFuY2UuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
c2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKToKKwogMjAxNi0xMC0wNSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV1c2UgQ29kZUdl
bmVyYXRvcjo6VXBkYXRlRmlsZSBpbiBUb29scyBDb2RlR2VuZXJhdG9yCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAJKHJldmlzaW9uIDIwNjg1NCkK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTg2MywxMiArODYzLDI0IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5j
ZXNUb0NvbnNpc3QKIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9y
VGVzdGluZygpCiB7CiAjaWYgVVNFKENGKQorICAgIC8vIENyZWF0ZSBzZXBhcmF0ZSBwcmVmZXJl
bmNlcyBmb3IgZWFjaCBEUlQgaW5zdGFuY2UKKyAgICBfZGVjbHNwZWMoZGxsaW1wb3J0KSBDRlN0
cmluZ1JlZiBhcHBsaWNhdGlvbklkOworICAgIERXT1JEIHByb2Nlc3NJZCA9IDo6R2V0Q3VycmVu
dFByb2Nlc3NJZCgpOworICAgIGFwcGxpY2F0aW9uSWQgPSBTdHJpbmc6OmZvcm1hdCgiY29tLmFw
cGxlLkR1bXBSZW5kZXJUcmVlLiVkIiwgcHJvY2Vzc0lkKS5jcmVhdGVDRlN0cmluZygpLmxlYWtS
ZWYoKTsKKwogICAgIFN0cmluZyBsaWJyYXJ5UGF0aCA9IGxpYnJhcnlQYXRoRm9yRHVtcFJlbmRl
clRyZWUoKTsKIAogICAgIC8vIFNldCB1cCB0aGVzZSB2YWx1ZXMgYmVmb3JlIGNyZWF0aW5nIHRo
ZSBXZWJWaWV3IHNvIHRoYXQgdGhlIHZhcmlvdXMgaW5pdGlhbGl6YXRpb25zIHdpbGwgc2VlIHRo
ZXNlIHByZWZlcnJlZCB2YWx1ZXMuCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYkRh
dGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXksIFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChsaWJyYXJ5UGF0aCwgIkRhdGFiYXNlcyIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtD
RlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBw
VmFsdWUoV2ViU3RvcmFnZURpcmVjdG9yeURlZmF1bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJMb2NhbFN0b3JhZ2UiKS5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7Ci0gICAgQ0ZQcmVm
ZXJlbmNlc1NldEFwcFZhbHVlKFdlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSwgV2ViQ29yZTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKKyAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tl
eSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJhcnlQYXRoLCAiRGF0YWJh
c2VzIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXBwbGljYXRpb25JZCk7CisgICAgQ0ZQcmVm
ZXJlbmNlc1NldEFwcFZhbHVlKFdlYlN0b3JhZ2VEaXJlY3RvcnlEZWZhdWx0c0tleSwgV2ViQ29y
ZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxTdG9yYWdlIiku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXBwbGljYXRpb25JZCk7CisgICAgQ0ZQcmVmZXJlbmNl
c1NldEFwcFZhbHVlKFdlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCksIGFwcGxpY2F0aW9uSWQpOworCisgICAgLy8gQ3JlYXRlIHNlcGFyYXRlIGNh
Y2hlIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIGNvbnN0IENGSW5kZXggbWVtb3J5Q2FwYWNp
dHkgPSAxMDI0ICogMTAyNCAqIDE2OworICAgIGNvbnN0IENGSW5kZXggZGlza0NhcGFjaXR5ID0g
MTAyNCAqIDEwMjQgKiAyNTY7CisKKyAgICBDRlVSTENhY2hlUmVmIGNhY2hlUmVmID0gQ0ZVUkxD
YWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtZW1vcnlDYXBhY2l0eSwgZGlza0NhcGFj
aXR5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJMb2Nh
bENhY2hlIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgQ0ZVUkxDYWNoZVNldFNoYXJl
ZFVSTENhY2hlKGNhY2hlUmVmKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291086</attachid>
            <date>2016-10-10 04:17:23 -0700</date>
            <delta_ts>2016-10-10 04:58:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163013-20161010041750.patch</filename>
            <type>text/plain</type>
            <size>15899</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTEwLTEw
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBQ
YXJhbGxlbCBEUlRzIGFyZSBzaGFyaW5nIHByZWZlcmVuY2VzIGFuZCBjYWNoZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAxMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
Zm9yIGEgV2ViS2l0IGNsaWVudCB0byB1c2Ugc2VwYXJhdGUgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbDoKKyAg
ICAgICAgKiBXZWJBcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKGFwcGxpY2F0aW9uQ2Fj
aGVQYXRoKToKKyAgICAgICAgKiBXZWJDYWNoZS5jcHA6CisgICAgICAgIChXZWJDYWNoZTo6Y2Fj
aGVGb2xkZXIpOgorICAgICAgICAoV2ViQ2FjaGU6OnNldENhY2hlRm9sZGVyKToKKyAgICAgICAg
KiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoZGF0YWJhc2VzRGlyZWN0b3J5KToK
KyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6dmFsdWVGb3JLZXkpOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldFZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpzYXZlKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpRdWVyeUludGVyZmFj
ZSk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6bW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQp
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEFwcGxpY2F0aW9uSWQpOgorICAgICAgICAq
IFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKToKKwogMjAxNi0xMC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXVtEaXJlY3QyRF0gQ29ubmVjdCBXZWJDb3Jl
L1dlYktpdCBEcmF3aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGlj
YXRpb25DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkNGRGljdGlvbmFyeVByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxw
ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxpY2F0aW9uQ2FjaGUuaD4KQEAgLTY4LDcgKzY5LDcgQEAgc3RhdGljIFN0cmluZyBhcHBs
aWNhdGlvbkNhY2hlUGF0aCgpCiAgICAgU3RyaW5nIHBhdGggPSBsb2NhbFVzZXJTcGVjaWZpY1N0
b3JhZ2VEaXJlY3RvcnkoKTsKIAogI2lmIFVTRShDRikKLSAgICBhdXRvIGNhY2hlRGlyZWN0b3J5
UHJlZmVyZW5jZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJLaXRMb2Nh
bENhY2hlRGVmYXVsdHNLZXksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKSk7Cisg
ICAgYXV0byBjYWNoZURpcmVjdG9yeVByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXND
b3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5jZSAmJiBD
RlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5j
ZS5nZXQoKSkpCiAgICAgICAgIHBhdGggPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oY2FjaGVE
aXJlY3RvcnlQcmVmZXJlbmNlLmdldCgpKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC93
aW4vV2ViQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNhY2hl
LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ2FjaGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw4ICszNSwxMyBAQAogCiAjaWYgVVNFKENVUkwpCiAjaW5j
bHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+CisjZWxpZiBVU0UoQ0ZORVRXT1JLKQor
I2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPgorI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNlbmRpZgogCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwogLy8gV2ViQ2FjaGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdl
YkNhY2hlOjpXZWJDYWNoZSgpCkBAIC0yNDMsOCArMjQ4LDEwIEBAIEhSRVNVTFQgV2ViQ2FjaGU6
OmNhY2hlRm9sZGVyKF9fZGVyZWZfb3UKICAgICBTdHJpbmcgY2FjaGVGb2xkZXIgPSBXZWJDb3Jl
OjpDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmNhY2hlRGlyZWN0b3J5KCk7CiAgICAg
KmxvY2F0aW9uID0gV2ViQ29yZTo6QlN0cmluZyhjYWNoZUZvbGRlcikucmVsZWFzZSgpOwogICAg
IHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOworI2VsaWYgVVNFKENG
TkVUV09SSykKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3Rvcnkg
PSBhZG9wdENGKHdrQ29weUZvdW5kYXRpb25DYWNoZURpcmVjdG9yeSgwKSk7CisgICAgKmxvY2F0
aW9uID0gQlN0cmluZyhjZnVybENhY2hlRGlyZWN0b3J5LmdldCgpKS5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIFNfT0s7CiAjZW5kaWYKIH0KIApAQCAtMjU0LDcgKzI2MSwxMiBAQCBIUkVTVUxUIFdl
YkNhY2hlOjpzZXRDYWNoZUZvbGRlcihfSW5fIEJTCiAgICAgU3RyaW5nIGNhY2hlRm9sZGVyKGxv
Y2F0aW9uLCBTeXNTdHJpbmdMZW4obG9jYXRpb24pKTsKICAgICBXZWJDb3JlOjpDdXJsQ2FjaGVN
YW5hZ2VyOjpnZXRJbnN0YW5jZSgpLnNldENhY2hlRGlyZWN0b3J5KGNhY2hlRm9sZGVyKTsKICAg
ICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVfTk9USU1QTDsKKyNlbGlmIFVTRShD
Rk5FVFdPUkspCisgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNhY2hlID0gYWRvcHRDRihD
RlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpOworICAgIENGSW5kZXggbWVtb3J5Q2FwYWNp
dHkgPSBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoY2FjaGUuZ2V0KCkpOworICAgIENGSW5kZXgg
ZGlza0NhcGFjaXR5ID0gQ0ZVUkxDYWNoZURpc2tDYXBhY2l0eShjYWNoZS5nZXQoKSk7CisgICAg
UmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IG5ld0NhY2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1lbW9yeUNhcGFjaXR5LCBkaXNrQ2FwYWNpdHksIFN0
cmluZyhsb2NhdGlvbikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIENGVVJMQ2FjaGVT
ZXRTaGFyZWRVUkxDYWNoZShuZXdDYWNoZS5nZXQoKSk7CisgICAgcmV0dXJuIFNfT0s7CiAjZW5k
aWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNPTVByb3BlcnR5
QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxwZXJzLmgiCiAjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+CkBA
IC00MjAsNyArNDIxLDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpc3BhdGNoRGlkTW9k
aQogc3RhdGljIFdURjo6U3RyaW5nIGRhdGFiYXNlc0RpcmVjdG9yeSgpCiB7CiAjaWYgVVNFKENG
KQotICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbikpOworICAgIFJldGFpblB0cjxD
RlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0Nv
cHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNl
czo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGRpcmVjdG9yeVByZWYgJiYgKENGU3RyaW5n
R2V0VHlwZUlEKCkgPT0gQ0ZHZXRUeXBlSUQoZGlyZWN0b3J5UHJlZi5nZXQoKSkpKQogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGRpcmVjdG9yeVByZWYuZ2V0KCkpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAy
MDY4NTQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBzdGF0aWMgYm9vbCBib29sZWFuVmFsdWVGb3JQcmVm
ZXJlbmNlc1ZhCiAKIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgZGVmYXVsdFNldHRpbmdzOwogCitS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFdlYlByZWZlcmVuY2VzOjptX2FwcGxpY2F0aW9uSWQgPSBr
Q0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbjsKKwogc3RhdGljIEhhc2hNYXA8V1RGOjpT
dHJpbmcsIENPTVB0cjxXZWJQcmVmZXJlbmNlcz4+JiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8V1RGOjpTdHJpbmcsIENPTVB0
cjxXZWJQcmVmZXJlbmNlcz4+PiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlczsKQEAgLTE4Myw2ICsx
ODUsMTEgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVtb3ZlUmVmZXJlbmNlRm9ySQogICAgICAg
ICB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygpLnJlbW92ZShpZGVudGlmaWVyU3RyaW5nKTsKIH0K
IAorQ0ZTdHJpbmdSZWYgV2ViUHJlZmVyZW5jZXM6OmFwcGxpY2F0aW9uSWQoKQoreworICAgIHJl
dHVybiBtX2FwcGxpY2F0aW9uSWQuZ2V0KCk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6Omlu
aXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogewogICAgIGlmIChkZWZhdWx0U2V0dGluZ3MpCkBA
IC0zMDYsNyArMzEzLDcgQEAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBXZWJQcmVmZXJl
bgogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCi0gICAgdmFsdWUgPSBh
ZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoa2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbikpOworICAgIHZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFw
cFZhbHVlKGtleSwgYXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKHZhbHVlKQogICAgICAgICBy
ZXR1cm4gdmFsdWU7CiAKQEAgLTMxNyw3ICszMjQsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpz
ZXRWYWx1ZUZvcktleShDRlN0CiB7CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9wcml2YXRl
UHJlZnMuZ2V0KCksIGtleSwgdmFsdWUpOwogICAgIGlmIChtX2F1dG9TYXZlcykgewotICAgICAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2YWx1ZSwga0NGUHJlZmVyZW5jZXNDdXJy
ZW50QXBwbGljYXRpb24pOworICAgICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2
YWx1ZSwgYXBwbGljYXRpb25JZCgpKTsKICAgICAgICAgc2F2ZSgpOwogICAgIH0KIH0KQEAgLTQ0
OCw3ICs0NTUsNyBAQCBCU1RSIFdlYlByZWZlcmVuY2VzOjp3ZWJQcmVmZXJlbmNlc1JlbW92CiAK
IHZvaWQgV2ViUHJlZmVyZW5jZXM6OnNhdmUoKQogewotICAgIENGUHJlZmVyZW5jZXNBcHBTeW5j
aHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CisgICAgQ0ZQcmVmZXJl
bmNlc0FwcFN5bmNocm9uaXplKGFwcGxpY2F0aW9uSWQoKSk7CiB9CiAKIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OmxvYWQoKQpAQCAtNTQwLDYgKzU0Nyw4IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6
OlF1ZXJ5SW50ZXJmYWNlKF8KICAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUyKj4odGhpcyk7CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlp
ZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKSkKICAgICAgICAgKnBwdk9iamVjdCA9IHN0
YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKj4odGhpcyk7CisgICAgZWxzZSBpZiAo
SXNFcXVhbEdVSUQocmlpZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGU0KSkKKyAgICAgICAg
KnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0Kj4odGhpcyk7
CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwgQ0xTSURfV2ViUHJlZmVyZW5jZXMpKQog
ICAgICAgICAqcHB2T2JqZWN0ID0gdGhpczsKICAgICBlbHNlCkBAIC0xOTkzLDMgKzIwMDIsOSBA
QCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjptb2Rlcm5NZWRpYUNvbnRyCiAgICAgKmVuYWJsZWQg
PSBib29sVmFsdWVGb3JLZXkoV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJl
bmNlS2V5KTsKICAgICByZXR1cm4gU19PSzsKIH0KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6
c2V0QXBwbGljYXRpb25JZChCU1RSIGFwcGxpY2F0aW9uSWQpCit7CisgICAgbV9hcHBsaWNhdGlv
bklkID0gU3RyaW5nKGFwcGxpY2F0aW9uSWQpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgcmV0dXJu
IFNfT0s7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIw
Njg1NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0JTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLWNsYXNzIFdlYlByZWZlcmVuY2VzIDogcHVibGljIElX
ZWJQcmVmZXJlbmNlcywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzIHsKK2NsYXNzIFdl
YlByZWZlcmVuY2VzIDogcHVibGljIElXZWJQcmVmZXJlbmNlcywgcHVibGljIElXZWJQcmVmZXJl
bmNlc1ByaXZhdGU0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUHJlZmVyZW5jZXMqIGNyZWF0
ZUluc3RhbmNlKCk7CiBwcm90ZWN0ZWQ6CkBAIC0yNDQsNiArMjQ0LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBtb2Rlcm5NZWRpYUNvbnRyb2xzRW5h
YmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHNldE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkKEJPT0wpOwogCisgICAgLy8gSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTQKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
QXBwbGljYXRpb25JZChCU1RSKTsKKwogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBU
aGlzIG1ldGhvZCBhY2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVs
b3BlckV4dHJhc0VuYWJsZWQuCkBAIC0yNTcsMTQgKzI2MCwxNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVtb3ZlUmVmZXJlbmNlRm9ySWRlbnRpZmllcihCU1RSIGlkZW50aWZpZXIpOwog
ICAgIHN0YXRpYyBXZWJQcmVmZXJlbmNlcyogc2hhcmVkU3RhbmRhcmRQcmVmZXJlbmNlcygpOwog
CisgICAgc3RhdGljIENGU3RyaW5nUmVmIGFwcGxpY2F0aW9uSWQoKTsKKwogICAgIC8vIEZyb20g
V2ViSGlzdG9yeS5oCiAgICAgSFJFU1VMVCBoaXN0b3J5SXRlbUxpbWl0KF9PdXRfIGludCopOwog
ICAgIEhSRVNVTFQgc2V0SGlzdG9yeUl0ZW1MaW1pdChpbnQpOwogICAgIEhSRVNVTFQgaGlzdG9y
eUFnZUluRGF5c0xpbWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQgc2V0SGlzdG9yeUFnZUlu
RGF5c0xpbWl0KGludCk7CiAKLSAgICAgdm9pZCB3aWxsQWRkVG9XZWJWaWV3KCk7Ci0gICAgIHZv
aWQgZGlkUmVtb3ZlRnJvbVdlYlZpZXcoKTsKKyAgICB2b2lkIHdpbGxBZGRUb1dlYlZpZXcoKTsK
KyAgICB2b2lkIGRpZFJlbW92ZUZyb21XZWJWaWV3KCk7CiAKICAgICBIUkVTVUxUIHBvc3RQcmVm
ZXJlbmNlc0NoYW5nZXNOb3RpZmljYXRpb24oKTsKIApAQCAtMjk3LDYgKzMwMiw3IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1fYXV0b1NhdmVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXV0b21h
dGljYWxseURldGVjdHNDYWNoZU1vZGVsIHsgdHJ1ZSB9OwogICAgIHVuc2lnbmVkIG1fbnVtV2Vi
Vmlld3MgeyAwIH07CisgICAgc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbV9hcHBsaWNh
dGlvbklkOwogfTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24g
MjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwMSw3ICs1MDEsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVN
b2RlCiAgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENGKENG
VVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBjZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJl
Y3RvcnkoMCkpOwogICAgIGlmICghY2Z1cmxDYWNoZURpcmVjdG9yeSkgewotICAgICAgICBSZXRh
aW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5j
ZXNDb3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBrQ0ZQcmVmZXJlbmNl
c0N1cnJlbnRBcHBsaWNhdGlvbikpOworICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RS
ZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0
TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6YXBwbGljYXRpb25JZCgpKSk7
CiAgICAgICAgIGlmIChwcmVmZXJlbmNlICYmIChDRlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0
VHlwZUlEKHByZWZlcmVuY2UuZ2V0KCkpKSkKICAgICAgICAgICAgIGNmdXJsQ2FjaGVEaXJlY3Rv
cnkgPSBhZG9wdENGKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihwcmVmZXJlbmNlLmxlYWtSZWYo
KSkpOwogICAgICAgICBlbHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDIwNjg1NCkK
KysrIFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTE4NywzICsxODcsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTMgOiBJV2ViCiAgICAgSFJFU1VMVCBzZXRNb2Rlcm5NZWRpYUNvbnRyb2xz
RW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiB9CiAKK1t1dWlkKEY5NTgyRDcyLTYzNDgtNDVC
MS1BQjA5LTM5RTMzNDU5QjVCOSldCitpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTQg
OiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlMworeworICAgIEhSRVNVTFQgc2V0QXBwbGljYXRpb25J
ZChbaW5dIEJTVFIgYXBwbGljYXRpb25JZCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjA2OTkzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTYtMTAtMTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFtXaW5dIFBhcmFsbGVsIERSVHMgYXJlIHNoYXJpbmcgcHJlZmVyZW5j
ZXMgYW5kIGNhY2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzMDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIHNlcGFyYXRlIGNhY2hlIGFuZCBwcmVmZXJlbmNlcyBmb3IgZWFjaCBEUlQgaW5z
dGFuY2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
OgorICAgICAgICAoYXBwbGljYXRpb25JZCk6CisgICAgICAgIChzZXRBcHBsaWNhdGlvbklkKToK
KyAgICAgICAgKHNldENhY2hlRm9sZGVyKToKKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0
ZW50VmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dp
bi5weToKKyAgICAgICAgKFdpblBvcnQuc2V0dXBfdGVzdF9ydW4pOgorCiAyMDE2LTEwLTEwICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXM0MgdGVzdCBkb3du
bG9hZGVyIHNob3VsZCBiZSBhYmxlIHRvIGltcG9ydCBzcGVjaWZpYyBmaWxlcy9zdWItZGlyZWN0
b3JpZXMgaW4gYSBza2lwcGVkIGRpcmVjdG9yeQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSw3IEBACiAjaW5jbHVkZSA8ZnN0cmVhbT4KICNpbmNsdWRlIDxpby5oPgogI2luY2x1ZGUg
PG1hdGguaD4KKyNpbmNsdWRlIDxzaGxvYmouaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5j
bHVkZSA8dGNoYXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTg1OSwx
NiArODYwLDUyIEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3QKICAg
ICBzZXRBbHdheXNBY2NlcHRDb29raWVzKGZhbHNlKTsKIH0KIAorc3RhdGljIFN0cmluZyBhcHBs
aWNhdGlvbklkKCkKK3sKKyAgICBEV09SRCBwcm9jZXNzSWQgPSA6OkdldEN1cnJlbnRQcm9jZXNz
SWQoKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoImNvbS5hcHBsZS5EdW1wUmVuZGVyVHJl
ZS4lZCIsIHByb2Nlc3NJZCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEFwcGxpY2F0aW9uSWQoKQor
eworICAgIENPTVB0cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChTVUND
RUVERUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoQ0xTSURfV2ViUHJlZmVyZW5jZXMsIDAsIElJRF9J
V2ViUHJlZmVyZW5jZXMsICh2b2lkKiopJnByZWZlcmVuY2VzKSkpIHsKKyAgICAgICAgQ09NUHRy
PElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0PiBwcmVmc1ByaXZhdGU0KFF1ZXJ5LCBwcmVmZXJlbmNl
cyk7CisgICAgICAgIEFTU0VSVChwcmVmc1ByaXZhdGU0KTsKKyAgICAgICAgX2JzdHJfdCBmaWxl
TmFtZSA9IGFwcGxpY2F0aW9uSWQoKS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRh
dGEoKTsKKyAgICAgICAgcHJlZnNQcml2YXRlNC0+c2V0QXBwbGljYXRpb25JZChmaWxlTmFtZSk7
CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBzZXRDYWNoZUZvbGRlcigpCit7CisgICAgU3RyaW5n
IGxpYnJhcnlQYXRoID0gbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpOworCisgICAgQ09N
UHRyPElXZWJDYWNoZT4gd2ViQ2FjaGU7CisgICAgaWYgKFNVQ0NFRURFRChXZWJLaXRDcmVhdGVJ
bnN0YW5jZShDTFNJRF9XZWJDYWNoZSwgMCwgSUlEX0lXZWJDYWNoZSwgKHZvaWQqKikmd2ViQ2Fj
aGUpKSkgeworICAgICAgICBfYnN0cl90IGNhY2hlRm9sZGVyID0gV2ViQ29yZTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIHdlYkNhY2hlLT5zZXRDYWNoZUZvbGRlcihjYWNoZUZvbGRlcik7CisgICAgfQor
fQorCiAvLyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgogc3RhdGljIHZv
aWQgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKIHsKICNpZiBVU0Uo
Q0YpCisgICAgLy8gQ3JlYXRlIHNlcGFyYXRlIHByZWZlcmVuY2VzIGZvciBlYWNoIERSVCBpbnN0
YW5jZQorICAgIHNldEFwcGxpY2F0aW9uSWQoKTsKKworICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gYXBwSWQgPSBhcHBsaWNhdGlvbklkKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKwogICAgIFN0cmlu
ZyBsaWJyYXJ5UGF0aCA9IGxpYnJhcnlQYXRoRm9yRHVtcFJlbmRlclRyZWUoKTsKIAogICAgIC8v
IFNldCB1cCB0aGVzZSB2YWx1ZXMgYmVmb3JlIGNyZWF0aW5nIHRoZSBXZWJWaWV3IHNvIHRoYXQg
dGhlIHZhcmlvdXMgaW5pdGlhbGl6YXRpb25zIHdpbGwgc2VlIHRoZXNlIHByZWZlcnJlZCB2YWx1
ZXMuCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYkRhdGFiYXNlRGlyZWN0b3J5RGVm
YXVsdHNLZXksIFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJyYXJ5UGF0aCwg
IkRhdGFiYXNlcyIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVuY2VzQ3VycmVu
dEFwcGxpY2F0aW9uKTsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViU3RvcmFnZURp
cmVjdG9yeURlZmF1bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGli
cmFyeVBhdGgsICJMb2NhbFN0b3JhZ2UiKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBrQ0ZQcmVm
ZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7Ci0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVl
KFdlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
IGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUoV2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJhcnlQYXRoLCAiRGF0YWJhc2VzIikuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSwgYXBwSWQuZ2V0KCkpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShX
ZWJTdG9yYWdlRGlyZWN0b3J5RGVmYXVsdHNLZXksIFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChsaWJyYXJ5UGF0aCwgIkxvY2FsU3RvcmFnZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIGFwcElkLmdldCgpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViS2l0TG9j
YWxDYWNoZURlZmF1bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGli
cmFyeVBhdGgsICJMb2NhbENhY2hlIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXBwSWQuZ2V0
KCkpOworCisgICAgLy8gQ3JlYXRlIHNlcGFyYXRlIGNhY2hlIGZvciBlYWNoIERSVCBpbnN0YW5j
ZQorICAgIHNldENhY2hlRm9sZGVyKCk7CiAjZW5kaWYKIH0KIApJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L3dpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvd2luLnB5CShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvd2luLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKIGltcG9ydCBhdGV4aXQKLWltcG9ydCBvcworaW1wb3J0IGdsb2IKIGltcG9ydCBs
b2dnaW5nCitpbXBvcnQgb3MKIGltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKQEAg
LTM1MSw2ICszNTIsMTIgQEAgY2xhc3MgV2luUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBzZWxm
LnNldHVwX2NyYXNoX2xvZ19zYXZpbmcoKQogICAgICAgICBzZWxmLnByZXZlbnRfZXJyb3JfZGlh
bG9ncygpCiAgICAgICAgIHNlbGYuZGVsZXRlX3NlbV9sb2NrcygpCisKKyAgICAgICAgcHJlZmVy
ZW5jZXNfZmlsZXMgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSdd
LCAiQXBwbGUgQ29tcHV0ZXIvUHJlZmVyZW5jZXMiLCAiY29tLmFwcGxlLkR1bXBSZW5kZXJUcmVl
KiIpCisgICAgICAgIGZpbGVsaXN0ID0gZ2xvYi5nbG9iKHByZWZlcmVuY2VzX2ZpbGVzKQorICAg
ICAgICBmb3IgZmlsZSBpbiBmaWxlbGlzdDoKKyAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0u
cmVtb3ZlKGZpbGUpCisKICAgICAgICAgc3VwZXIoV2luUG9ydCwgc2VsZikuc2V0dXBfdGVzdF9y
dW4oZGV2aWNlX2NsYXNzKQogCiAgICAgZGVmIGNsZWFuX3VwX3Rlc3RfcnVuKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291088</attachid>
            <date>2016-10-10 04:58:37 -0700</date>
            <delta_ts>2016-10-10 05:02:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163013-20161010045904.patch</filename>
            <type>text/plain</type>
            <size>16115</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTEwLTEw
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBQ
YXJhbGxlbCBEUlRzIGFyZSBzaGFyaW5nIHByZWZlcmVuY2VzIGFuZCBjYWNoZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAxMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
Zm9yIGEgV2ViS2l0IGNsaWVudCB0byB1c2Ugc2VwYXJhdGUgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbDoKKyAg
ICAgICAgKiBXZWJBcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKGFwcGxpY2F0aW9uQ2Fj
aGVQYXRoKToKKyAgICAgICAgKiBXZWJDYWNoZS5jcHA6CisgICAgICAgIChXZWJDYWNoZTo6Y2Fj
aGVGb2xkZXIpOgorICAgICAgICAoV2ViQ2FjaGU6OnNldENhY2hlRm9sZGVyKToKKyAgICAgICAg
KiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoZGF0YWJhc2VzRGlyZWN0b3J5KToK
KyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6dmFsdWVGb3JLZXkpOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldFZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpzYXZlKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpRdWVyeUludGVyZmFj
ZSk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6bW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQp
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEFwcGxpY2F0aW9uSWQpOgorICAgICAgICAq
IFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKToKKwogMjAxNi0xMC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXVtEaXJlY3QyRF0gQ29ubmVjdCBXZWJDb3Jl
L1dlYktpdCBEcmF3aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGlj
YXRpb25DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkNGRGljdGlvbmFyeVByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxw
ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxpY2F0aW9uQ2FjaGUuaD4KQEAgLTY4LDcgKzY5LDcgQEAgc3RhdGljIFN0cmluZyBhcHBs
aWNhdGlvbkNhY2hlUGF0aCgpCiAgICAgU3RyaW5nIHBhdGggPSBsb2NhbFVzZXJTcGVjaWZpY1N0
b3JhZ2VEaXJlY3RvcnkoKTsKIAogI2lmIFVTRShDRikKLSAgICBhdXRvIGNhY2hlRGlyZWN0b3J5
UHJlZmVyZW5jZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJLaXRMb2Nh
bENhY2hlRGVmYXVsdHNLZXksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKSk7Cisg
ICAgYXV0byBjYWNoZURpcmVjdG9yeVByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXND
b3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5jZSAmJiBD
RlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5j
ZS5nZXQoKSkpCiAgICAgICAgIHBhdGggPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oY2FjaGVE
aXJlY3RvcnlQcmVmZXJlbmNlLmdldCgpKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC93
aW4vV2ViQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNhY2hl
LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ2FjaGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw4ICszNSwxMyBAQAogCiAjaWYgVVNFKENVUkwpCiAjaW5j
bHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+CisjZWxpZiBVU0UoQ0ZORVRXT1JLKQor
I2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPgorI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNlbmRpZgogCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwogLy8gV2ViQ2FjaGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdl
YkNhY2hlOjpXZWJDYWNoZSgpCkBAIC0yNDMsOCArMjQ4LDEwIEBAIEhSRVNVTFQgV2ViQ2FjaGU6
OmNhY2hlRm9sZGVyKF9fZGVyZWZfb3UKICAgICBTdHJpbmcgY2FjaGVGb2xkZXIgPSBXZWJDb3Jl
OjpDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmNhY2hlRGlyZWN0b3J5KCk7CiAgICAg
KmxvY2F0aW9uID0gV2ViQ29yZTo6QlN0cmluZyhjYWNoZUZvbGRlcikucmVsZWFzZSgpOwogICAg
IHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOworI2VsaWYgVVNFKENG
TkVUV09SSykKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3Rvcnkg
PSBhZG9wdENGKHdrQ29weUZvdW5kYXRpb25DYWNoZURpcmVjdG9yeSgwKSk7CisgICAgKmxvY2F0
aW9uID0gQlN0cmluZyhjZnVybENhY2hlRGlyZWN0b3J5LmdldCgpKS5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIFNfT0s7CiAjZW5kaWYKIH0KIApAQCAtMjU0LDcgKzI2MSwxMiBAQCBIUkVTVUxUIFdl
YkNhY2hlOjpzZXRDYWNoZUZvbGRlcihfSW5fIEJTCiAgICAgU3RyaW5nIGNhY2hlRm9sZGVyKGxv
Y2F0aW9uLCBTeXNTdHJpbmdMZW4obG9jYXRpb24pKTsKICAgICBXZWJDb3JlOjpDdXJsQ2FjaGVN
YW5hZ2VyOjpnZXRJbnN0YW5jZSgpLnNldENhY2hlRGlyZWN0b3J5KGNhY2hlRm9sZGVyKTsKICAg
ICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVfTk9USU1QTDsKKyNlbGlmIFVTRShD
Rk5FVFdPUkspCisgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNhY2hlID0gYWRvcHRDRihD
RlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpOworICAgIENGSW5kZXggbWVtb3J5Q2FwYWNp
dHkgPSBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoY2FjaGUuZ2V0KCkpOworICAgIENGSW5kZXgg
ZGlza0NhcGFjaXR5ID0gQ0ZVUkxDYWNoZURpc2tDYXBhY2l0eShjYWNoZS5nZXQoKSk7CisgICAg
UmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IG5ld0NhY2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1lbW9yeUNhcGFjaXR5LCBkaXNrQ2FwYWNpdHksIFN0
cmluZyhsb2NhdGlvbikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIENGVVJMQ2FjaGVT
ZXRTaGFyZWRVUkxDYWNoZShuZXdDYWNoZS5nZXQoKSk7CisgICAgcmV0dXJuIFNfT0s7CiAjZW5k
aWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNPTVByb3BlcnR5
QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxwZXJzLmgiCiAjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+CkBA
IC00MjAsNyArNDIxLDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpc3BhdGNoRGlkTW9k
aQogc3RhdGljIFdURjo6U3RyaW5nIGRhdGFiYXNlc0RpcmVjdG9yeSgpCiB7CiAjaWYgVVNFKENG
KQotICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbikpOworICAgIFJldGFpblB0cjxD
RlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0Nv
cHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNl
czo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGRpcmVjdG9yeVByZWYgJiYgKENGU3RyaW5n
R2V0VHlwZUlEKCkgPT0gQ0ZHZXRUeXBlSUQoZGlyZWN0b3J5UHJlZi5nZXQoKSkpKQogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGRpcmVjdG9yeVByZWYuZ2V0KCkpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAy
MDY4NTQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBzdGF0aWMgYm9vbCBib29sZWFuVmFsdWVGb3JQcmVm
ZXJlbmNlc1ZhCiAKIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgZGVmYXVsdFNldHRpbmdzOwogCitS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFdlYlByZWZlcmVuY2VzOjptX2FwcGxpY2F0aW9uSWQgPSBr
Q0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbjsKKwogc3RhdGljIEhhc2hNYXA8V1RGOjpT
dHJpbmcsIENPTVB0cjxXZWJQcmVmZXJlbmNlcz4+JiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8V1RGOjpTdHJpbmcsIENPTVB0
cjxXZWJQcmVmZXJlbmNlcz4+PiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlczsKQEAgLTE4Myw2ICsx
ODUsMTEgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVtb3ZlUmVmZXJlbmNlRm9ySQogICAgICAg
ICB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygpLnJlbW92ZShpZGVudGlmaWVyU3RyaW5nKTsKIH0K
IAorQ0ZTdHJpbmdSZWYgV2ViUHJlZmVyZW5jZXM6OmFwcGxpY2F0aW9uSWQoKQoreworICAgIHJl
dHVybiBtX2FwcGxpY2F0aW9uSWQuZ2V0KCk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6Omlu
aXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogewogICAgIGlmIChkZWZhdWx0U2V0dGluZ3MpCkBA
IC0zMDYsNyArMzEzLDcgQEAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBXZWJQcmVmZXJl
bgogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCi0gICAgdmFsdWUgPSBh
ZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoa2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbikpOworICAgIHZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFw
cFZhbHVlKGtleSwgYXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKHZhbHVlKQogICAgICAgICBy
ZXR1cm4gdmFsdWU7CiAKQEAgLTMxNyw3ICszMjQsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpz
ZXRWYWx1ZUZvcktleShDRlN0CiB7CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9wcml2YXRl
UHJlZnMuZ2V0KCksIGtleSwgdmFsdWUpOwogICAgIGlmIChtX2F1dG9TYXZlcykgewotICAgICAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2YWx1ZSwga0NGUHJlZmVyZW5jZXNDdXJy
ZW50QXBwbGljYXRpb24pOworICAgICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2
YWx1ZSwgYXBwbGljYXRpb25JZCgpKTsKICAgICAgICAgc2F2ZSgpOwogICAgIH0KIH0KQEAgLTQ0
OCw3ICs0NTUsNyBAQCBCU1RSIFdlYlByZWZlcmVuY2VzOjp3ZWJQcmVmZXJlbmNlc1JlbW92CiAK
IHZvaWQgV2ViUHJlZmVyZW5jZXM6OnNhdmUoKQogewotICAgIENGUHJlZmVyZW5jZXNBcHBTeW5j
aHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CisgICAgQ0ZQcmVmZXJl
bmNlc0FwcFN5bmNocm9uaXplKGFwcGxpY2F0aW9uSWQoKSk7CiB9CiAKIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OmxvYWQoKQpAQCAtNTQwLDYgKzU0Nyw4IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6
OlF1ZXJ5SW50ZXJmYWNlKF8KICAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUyKj4odGhpcyk7CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlp
ZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKSkKICAgICAgICAgKnBwdk9iamVjdCA9IHN0
YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKj4odGhpcyk7CisgICAgZWxzZSBpZiAo
SXNFcXVhbEdVSUQocmlpZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGU0KSkKKyAgICAgICAg
KnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0Kj4odGhpcyk7
CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwgQ0xTSURfV2ViUHJlZmVyZW5jZXMpKQog
ICAgICAgICAqcHB2T2JqZWN0ID0gdGhpczsKICAgICBlbHNlCkBAIC0xOTkzLDMgKzIwMDIsOSBA
QCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjptb2Rlcm5NZWRpYUNvbnRyCiAgICAgKmVuYWJsZWQg
PSBib29sVmFsdWVGb3JLZXkoV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJl
bmNlS2V5KTsKICAgICByZXR1cm4gU19PSzsKIH0KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6
c2V0QXBwbGljYXRpb25JZChCU1RSIGFwcGxpY2F0aW9uSWQpCit7CisgICAgbV9hcHBsaWNhdGlv
bklkID0gU3RyaW5nKGFwcGxpY2F0aW9uSWQpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgcmV0dXJu
IFNfT0s7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIw
Njg1NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDE1ICsyMywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBX
ZWJQcmVmZXJlbmNlc19ICi0jZGVmaW5lIFdlYlByZWZlcmVuY2VzX0gKKyNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5k
YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKLWNsYXNzIFdlYlByZWZlcmVuY2VzIDogcHVibGljIElXZWJQcmVmZXJlbmNl
cywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzIHsKK2NsYXNzIFdlYlByZWZlcmVuY2Vz
IDogcHVibGljIElXZWJQcmVmZXJlbmNlcywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUHJlZmVyZW5jZXMqIGNyZWF0ZUluc3RhbmNlKCk7
CiBwcm90ZWN0ZWQ6CkBAIC0yNDQsNiArMjQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBtb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChfT3V0XyBC
T09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE1vZGVybk1l
ZGlhQ29udHJvbHNFbmFibGVkKEJPT0wpOwogCisgICAgLy8gSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTQKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0QXBwbGljYXRpb25J
ZChCU1RSKTsKKwogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBh
Y2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0Vu
YWJsZWQuCkBAIC0yNTcsMTQgKzI1OSwxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVt
b3ZlUmVmZXJlbmNlRm9ySWRlbnRpZmllcihCU1RSIGlkZW50aWZpZXIpOwogICAgIHN0YXRpYyBX
ZWJQcmVmZXJlbmNlcyogc2hhcmVkU3RhbmRhcmRQcmVmZXJlbmNlcygpOwogCisgICAgc3RhdGlj
IENGU3RyaW5nUmVmIGFwcGxpY2F0aW9uSWQoKTsKKwogICAgIC8vIEZyb20gV2ViSGlzdG9yeS5o
CiAgICAgSFJFU1VMVCBoaXN0b3J5SXRlbUxpbWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQg
c2V0SGlzdG9yeUl0ZW1MaW1pdChpbnQpOwogICAgIEhSRVNVTFQgaGlzdG9yeUFnZUluRGF5c0xp
bWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQgc2V0SGlzdG9yeUFnZUluRGF5c0xpbWl0KGlu
dCk7CiAKLSAgICAgdm9pZCB3aWxsQWRkVG9XZWJWaWV3KCk7Ci0gICAgIHZvaWQgZGlkUmVtb3Zl
RnJvbVdlYlZpZXcoKTsKKyAgICB2b2lkIHdpbGxBZGRUb1dlYlZpZXcoKTsKKyAgICB2b2lkIGRp
ZFJlbW92ZUZyb21XZWJWaWV3KCk7CiAKICAgICBIUkVTVUxUIHBvc3RQcmVmZXJlbmNlc0NoYW5n
ZXNOb3RpZmljYXRpb24oKTsKIApAQCAtMjk3LDYgKzMwMSw3IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1fYXV0b1NhdmVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXV0b21hdGljYWxseURldGVj
dHNDYWNoZU1vZGVsIHsgdHJ1ZSB9OwogICAgIHVuc2lnbmVkIG1fbnVtV2ViVmlld3MgeyAwIH07
CisgICAgc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbV9hcHBsaWNhdGlvbklkOwogfTsK
IAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysg
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMSw3ICs1
MDEsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlCiAgICAgUmV0
YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5
U2hhcmVkVVJMQ2FjaGUoKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZnVybENhY2hl
RGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJlY3RvcnkoMCkpOwog
ICAgIGlmICghY2Z1cmxDYWNoZURpcmVjdG9yeSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9w
ZXJ0eUxpc3RSZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFs
dWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBs
aWNhdGlvbikpOworICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHByZWZlcmVu
Y2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURl
ZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgICAgIGlm
IChwcmVmZXJlbmNlICYmIChDRlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKHByZWZl
cmVuY2UuZ2V0KCkpKSkKICAgICAgICAgICAgIGNmdXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9wdENG
KHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihwcmVmZXJlbmNlLmxlYWtSZWYoKSkpOwogICAgICAg
ICBlbHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NywzICsxODcsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTMgOiBJV2ViCiAgICAgSFJFU1VMVCBzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiB9CiAKK1t1dWlkKEY5NTgyRDcyLTYzNDgtNDVCMS1BQjA5LTM5RTMz
NDU5QjVCOSldCitpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTQgOiBJV2ViUHJlZmVy
ZW5jZXNQcml2YXRlMworeworICAgIEhSRVNVTFQgc2V0QXBwbGljYXRpb25JZChbaW5dIEJTVFIg
YXBwbGljYXRpb25JZCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA2
OTkzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTYtMTAtMTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIFBhcmFsbGVsIERSVHMgYXJlIHNoYXJpbmcgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNl
cGFyYXRlIGNhY2hlIGFuZCBwcmVmZXJlbmNlcyBmb3IgZWFjaCBEUlQgaW5zdGFuY2UuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChzZXRBcHBsaWNhdGlvbklkKToKKyAgICAgICAgKHNl
dENhY2hlRm9sZGVyKToKKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9y
VGVzdGluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbi5weToKKyAgICAg
ICAgKFdpblBvcnQuc2V0dXBfdGVzdF9ydW4pOgorCiAyMDE2LTEwLTEwICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXM0MgdGVzdCBkb3dubG9hZGVyIHNob3Vs
ZCBiZSBhYmxlIHRvIGltcG9ydCBzcGVjaWZpYyBmaWxlcy9zdWItZGlyZWN0b3JpZXMgaW4gYSBz
a2lwcGVkIGRpcmVjdG9yeQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAj
aW5jbHVkZSA8ZnN0cmVhbT4KICNpbmNsdWRlIDxpby5oPgogI2luY2x1ZGUgPG1hdGguaD4KKyNp
bmNsdWRlIDxzaGxvYmouaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5jbHVkZSA8dGNoYXIu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTg1OSwxNiArODYwLDUyIEBA
IHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3QKICAgICBzZXRBbHdheXNB
Y2NlcHRDb29raWVzKGZhbHNlKTsKIH0KIAorc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
K3sKKyAgICBEV09SRCBwcm9jZXNzSWQgPSA6OkdldEN1cnJlbnRQcm9jZXNzSWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoImNvbS5hcHBsZS5EdW1wUmVuZGVyVHJlZS4lZCIsIHByb2Nl
c3NJZCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEFwcGxpY2F0aW9uSWQoKQoreworICAgIENPTVB0
cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChTVUNDRUVERUQoV2ViS2l0
Q3JlYXRlSW5zdGFuY2UoQ0xTSURfV2ViUHJlZmVyZW5jZXMsIDAsIElJRF9JV2ViUHJlZmVyZW5j
ZXMsICh2b2lkKiopJnByZWZlcmVuY2VzKSkpIHsKKyAgICAgICAgQ09NUHRyPElXZWJQcmVmZXJl
bmNlc1ByaXZhdGU0PiBwcmVmc1ByaXZhdGU0KFF1ZXJ5LCBwcmVmZXJlbmNlcyk7CisgICAgICAg
IEFTU0VSVChwcmVmc1ByaXZhdGU0KTsKKyAgICAgICAgX2JzdHJfdCBmaWxlTmFtZSA9IGFwcGxp
Y2F0aW9uSWQoKS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKTsKKyAgICAg
ICAgcHJlZnNQcml2YXRlNC0+c2V0QXBwbGljYXRpb25JZChmaWxlTmFtZSk7CisgICAgfQorfQor
CitzdGF0aWMgdm9pZCBzZXRDYWNoZUZvbGRlcigpCit7CisgICAgU3RyaW5nIGxpYnJhcnlQYXRo
ID0gbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpOworCisgICAgQ09NUHRyPElXZWJDYWNo
ZT4gd2ViQ2FjaGU7CisgICAgaWYgKFNVQ0NFRURFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShDTFNJ
RF9XZWJDYWNoZSwgMCwgSUlEX0lXZWJDYWNoZSwgKHZvaWQqKikmd2ViQ2FjaGUpKSkgeworICAg
ICAgICBfYnN0cl90IGNhY2hlRm9sZGVyID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIHdl
YkNhY2hlLT5zZXRDYWNoZUZvbGRlcihjYWNoZUZvbGRlcik7CisgICAgfQorfQorCiAvLyBDYWxs
ZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgogc3RhdGljIHZvaWQgc2V0RGVmYXVs
dHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKIHsKICNpZiBVU0UoQ0YpCisgICAgLy8g
Q3JlYXRlIHNlcGFyYXRlIHByZWZlcmVuY2VzIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIHNl
dEFwcGxpY2F0aW9uSWQoKTsKKworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYXBwSWQgPSBh
cHBsaWNhdGlvbklkKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKwogICAgIFN0cmluZyBsaWJyYXJ5UGF0
aCA9IGxpYnJhcnlQYXRoRm9yRHVtcFJlbmRlclRyZWUoKTsKIAogICAgIC8vIFNldCB1cCB0aGVz
ZSB2YWx1ZXMgYmVmb3JlIGNyZWF0aW5nIHRoZSBXZWJWaWV3IHNvIHRoYXQgdGhlIHZhcmlvdXMg
aW5pdGlhbGl6YXRpb25zIHdpbGwgc2VlIHRoZXNlIHByZWZlcnJlZCB2YWx1ZXMuCi0gICAgQ0ZQ
cmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXksIFdl
YkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJyYXJ5UGF0aCwgIkRhdGFiYXNlcyIp
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9u
KTsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViU3RvcmFnZURpcmVjdG9yeURlZmF1
bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJM
b2NhbFN0b3JhZ2UiKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbik7Ci0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYktpdExvY2Fs
Q2FjaGVEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJh
cnlQYXRoLCAiTG9jYWxDYWNoZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVu
Y2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2Vi
RGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGxpYnJhcnlQYXRoLCAiRGF0YWJhc2VzIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
YXBwSWQuZ2V0KCkpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShXZWJTdG9yYWdlRGly
ZWN0b3J5RGVmYXVsdHNLZXksIFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJy
YXJ5UGF0aCwgIkxvY2FsU3RvcmFnZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGFwcElkLmdl
dCgpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1
bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJM
b2NhbENhY2hlIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXBwSWQuZ2V0KCkpOworCisgICAg
Ly8gQ3JlYXRlIHNlcGFyYXRlIGNhY2hlIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIHNldENh
Y2hlRm9sZGVyKCk7CiAjZW5kaWYKIH0KIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGlt
cG9ydCBhdGV4aXQKLWltcG9ydCBvcworaW1wb3J0IGdsb2IKIGltcG9ydCBsb2dnaW5nCitpbXBv
cnQgb3MKIGltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKQEAgLTM1MSw2ICszNTIs
MTIgQEAgY2xhc3MgV2luUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBzZWxmLnNldHVwX2NyYXNo
X2xvZ19zYXZpbmcoKQogICAgICAgICBzZWxmLnByZXZlbnRfZXJyb3JfZGlhbG9ncygpCiAgICAg
ICAgIHNlbGYuZGVsZXRlX3NlbV9sb2NrcygpCisKKyAgICAgICAgcHJlZmVyZW5jZXNfZmlsZXMg
PSBzZWxmLl9maWxlc3lzdGVtLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSddLCAiQXBwbGUgQ29t
cHV0ZXIvUHJlZmVyZW5jZXMiLCAiY29tLmFwcGxlLkR1bXBSZW5kZXJUcmVlKiIpCisgICAgICAg
IGZpbGVsaXN0ID0gZ2xvYi5nbG9iKHByZWZlcmVuY2VzX2ZpbGVzKQorICAgICAgICBmb3IgZmls
ZSBpbiBmaWxlbGlzdDoKKyAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3ZlKGZpbGUp
CisKICAgICAgICAgc3VwZXIoV2luUG9ydCwgc2VsZikuc2V0dXBfdGVzdF9ydW4oZGV2aWNlX2Ns
YXNzKQogCiAgICAgZGVmIGNsZWFuX3VwX3Rlc3RfcnVuKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291089</attachid>
            <date>2016-10-10 05:02:53 -0700</date>
            <delta_ts>2016-10-12 01:08:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163013-20161010050320.patch</filename>
            <type>text/plain</type>
            <size>16115</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTEwLTEw
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBQ
YXJhbGxlbCBEUlRzIGFyZSBzaGFyaW5nIHByZWZlcmVuY2VzIGFuZCBjYWNoZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAxMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
Zm9yIGEgV2ViS2l0IGNsaWVudCB0byB1c2Ugc2VwYXJhdGUgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbDoKKyAg
ICAgICAgKiBXZWJBcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKGFwcGxpY2F0aW9uQ2Fj
aGVQYXRoKToKKyAgICAgICAgKiBXZWJDYWNoZS5jcHA6CisgICAgICAgIChXZWJDYWNoZTo6Y2Fj
aGVGb2xkZXIpOgorICAgICAgICAoV2ViQ2FjaGU6OnNldENhY2hlRm9sZGVyKToKKyAgICAgICAg
KiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoZGF0YWJhc2VzRGlyZWN0b3J5KToK
KyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6dmFsdWVGb3JLZXkpOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldFZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpzYXZlKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpRdWVyeUludGVyZmFj
ZSk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6bW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQp
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEFwcGxpY2F0aW9uSWQpOgorICAgICAgICAq
IFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKToKKwogMjAxNi0xMC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXVtEaXJlY3QyRF0gQ29ubmVjdCBXZWJDb3Jl
L1dlYktpdCBEcmF3aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGlj
YXRpb25DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkNGRGljdGlvbmFyeVByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxw
ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxpY2F0aW9uQ2FjaGUuaD4KQEAgLTY4LDcgKzY5LDcgQEAgc3RhdGljIFN0cmluZyBhcHBs
aWNhdGlvbkNhY2hlUGF0aCgpCiAgICAgU3RyaW5nIHBhdGggPSBsb2NhbFVzZXJTcGVjaWZpY1N0
b3JhZ2VEaXJlY3RvcnkoKTsKIAogI2lmIFVTRShDRikKLSAgICBhdXRvIGNhY2hlRGlyZWN0b3J5
UHJlZmVyZW5jZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJLaXRMb2Nh
bENhY2hlRGVmYXVsdHNLZXksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKSk7Cisg
ICAgYXV0byBjYWNoZURpcmVjdG9yeVByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXND
b3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5jZSAmJiBD
RlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5j
ZS5nZXQoKSkpCiAgICAgICAgIHBhdGggPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oY2FjaGVE
aXJlY3RvcnlQcmVmZXJlbmNlLmdldCgpKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC93
aW4vV2ViQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNhY2hl
LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ2FjaGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw4ICszNSwxMyBAQAogCiAjaWYgVVNFKENVUkwpCiAjaW5j
bHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+CisjZWxpZiBVU0UoQ0ZORVRXT1JLKQor
I2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPgorI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNlbmRpZgogCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwogLy8gV2ViQ2FjaGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdl
YkNhY2hlOjpXZWJDYWNoZSgpCkBAIC0yNDMsOCArMjQ4LDEwIEBAIEhSRVNVTFQgV2ViQ2FjaGU6
OmNhY2hlRm9sZGVyKF9fZGVyZWZfb3UKICAgICBTdHJpbmcgY2FjaGVGb2xkZXIgPSBXZWJDb3Jl
OjpDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmNhY2hlRGlyZWN0b3J5KCk7CiAgICAg
KmxvY2F0aW9uID0gV2ViQ29yZTo6QlN0cmluZyhjYWNoZUZvbGRlcikucmVsZWFzZSgpOwogICAg
IHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOworI2VsaWYgVVNFKENG
TkVUV09SSykKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3Rvcnkg
PSBhZG9wdENGKHdrQ29weUZvdW5kYXRpb25DYWNoZURpcmVjdG9yeSgwKSk7CisgICAgKmxvY2F0
aW9uID0gQlN0cmluZyhjZnVybENhY2hlRGlyZWN0b3J5LmdldCgpKS5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIFNfT0s7CiAjZW5kaWYKIH0KIApAQCAtMjU0LDcgKzI2MSwxMiBAQCBIUkVTVUxUIFdl
YkNhY2hlOjpzZXRDYWNoZUZvbGRlcihfSW5fIEJTCiAgICAgU3RyaW5nIGNhY2hlRm9sZGVyKGxv
Y2F0aW9uLCBTeXNTdHJpbmdMZW4obG9jYXRpb24pKTsKICAgICBXZWJDb3JlOjpDdXJsQ2FjaGVN
YW5hZ2VyOjpnZXRJbnN0YW5jZSgpLnNldENhY2hlRGlyZWN0b3J5KGNhY2hlRm9sZGVyKTsKICAg
ICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVfTk9USU1QTDsKKyNlbGlmIFVTRShD
Rk5FVFdPUkspCisgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNhY2hlID0gYWRvcHRDRihD
RlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpOworICAgIENGSW5kZXggbWVtb3J5Q2FwYWNp
dHkgPSBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoY2FjaGUuZ2V0KCkpOworICAgIENGSW5kZXgg
ZGlza0NhcGFjaXR5ID0gQ0ZVUkxDYWNoZURpc2tDYXBhY2l0eShjYWNoZS5nZXQoKSk7CisgICAg
UmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IG5ld0NhY2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1lbW9yeUNhcGFjaXR5LCBkaXNrQ2FwYWNpdHksIFN0
cmluZyhsb2NhdGlvbikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIENGVVJMQ2FjaGVT
ZXRTaGFyZWRVUkxDYWNoZShuZXdDYWNoZS5nZXQoKSk7CisgICAgcmV0dXJuIFNfT0s7CiAjZW5k
aWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNPTVByb3BlcnR5
QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxwZXJzLmgiCiAjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+CkBA
IC00MjAsNyArNDIxLDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpc3BhdGNoRGlkTW9k
aQogc3RhdGljIFdURjo6U3RyaW5nIGRhdGFiYXNlc0RpcmVjdG9yeSgpCiB7CiAjaWYgVVNFKENG
KQotICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbikpOworICAgIFJldGFpblB0cjxD
RlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0Nv
cHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNl
czo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGRpcmVjdG9yeVByZWYgJiYgKENGU3RyaW5n
R2V0VHlwZUlEKCkgPT0gQ0ZHZXRUeXBlSUQoZGlyZWN0b3J5UHJlZi5nZXQoKSkpKQogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGRpcmVjdG9yeVByZWYuZ2V0KCkpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAy
MDY4NTQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBzdGF0aWMgYm9vbCBib29sZWFuVmFsdWVGb3JQcmVm
ZXJlbmNlc1ZhCiAKIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgZGVmYXVsdFNldHRpbmdzOwogCitS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFdlYlByZWZlcmVuY2VzOjptX2FwcGxpY2F0aW9uSWQgPSBr
Q0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbjsKKwogc3RhdGljIEhhc2hNYXA8V1RGOjpT
dHJpbmcsIENPTVB0cjxXZWJQcmVmZXJlbmNlcz4+JiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8V1RGOjpTdHJpbmcsIENPTVB0
cjxXZWJQcmVmZXJlbmNlcz4+PiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlczsKQEAgLTE4Myw2ICsx
ODUsMTEgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVtb3ZlUmVmZXJlbmNlRm9ySQogICAgICAg
ICB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygpLnJlbW92ZShpZGVudGlmaWVyU3RyaW5nKTsKIH0K
IAorQ0ZTdHJpbmdSZWYgV2ViUHJlZmVyZW5jZXM6OmFwcGxpY2F0aW9uSWQoKQoreworICAgIHJl
dHVybiBtX2FwcGxpY2F0aW9uSWQuZ2V0KCk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6Omlu
aXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogewogICAgIGlmIChkZWZhdWx0U2V0dGluZ3MpCkBA
IC0zMDYsNyArMzEzLDcgQEAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBXZWJQcmVmZXJl
bgogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCi0gICAgdmFsdWUgPSBh
ZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoa2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbikpOworICAgIHZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFw
cFZhbHVlKGtleSwgYXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKHZhbHVlKQogICAgICAgICBy
ZXR1cm4gdmFsdWU7CiAKQEAgLTMxNyw3ICszMjQsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpz
ZXRWYWx1ZUZvcktleShDRlN0CiB7CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9wcml2YXRl
UHJlZnMuZ2V0KCksIGtleSwgdmFsdWUpOwogICAgIGlmIChtX2F1dG9TYXZlcykgewotICAgICAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2YWx1ZSwga0NGUHJlZmVyZW5jZXNDdXJy
ZW50QXBwbGljYXRpb24pOworICAgICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2
YWx1ZSwgYXBwbGljYXRpb25JZCgpKTsKICAgICAgICAgc2F2ZSgpOwogICAgIH0KIH0KQEAgLTQ0
OCw3ICs0NTUsNyBAQCBCU1RSIFdlYlByZWZlcmVuY2VzOjp3ZWJQcmVmZXJlbmNlc1JlbW92CiAK
IHZvaWQgV2ViUHJlZmVyZW5jZXM6OnNhdmUoKQogewotICAgIENGUHJlZmVyZW5jZXNBcHBTeW5j
aHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CisgICAgQ0ZQcmVmZXJl
bmNlc0FwcFN5bmNocm9uaXplKGFwcGxpY2F0aW9uSWQoKSk7CiB9CiAKIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OmxvYWQoKQpAQCAtNTQwLDYgKzU0Nyw4IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6
OlF1ZXJ5SW50ZXJmYWNlKF8KICAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUyKj4odGhpcyk7CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlp
ZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKSkKICAgICAgICAgKnBwdk9iamVjdCA9IHN0
YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKj4odGhpcyk7CisgICAgZWxzZSBpZiAo
SXNFcXVhbEdVSUQocmlpZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGU0KSkKKyAgICAgICAg
KnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0Kj4odGhpcyk7
CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwgQ0xTSURfV2ViUHJlZmVyZW5jZXMpKQog
ICAgICAgICAqcHB2T2JqZWN0ID0gdGhpczsKICAgICBlbHNlCkBAIC0xOTkzLDMgKzIwMDIsOSBA
QCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjptb2Rlcm5NZWRpYUNvbnRyCiAgICAgKmVuYWJsZWQg
PSBib29sVmFsdWVGb3JLZXkoV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJl
bmNlS2V5KTsKICAgICByZXR1cm4gU19PSzsKIH0KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6
c2V0QXBwbGljYXRpb25JZChCU1RSIGFwcGxpY2F0aW9uSWQpCit7CisgICAgbV9hcHBsaWNhdGlv
bklkID0gU3RyaW5nKGFwcGxpY2F0aW9uSWQpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgcmV0dXJu
IFNfT0s7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIw
Njg1NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDE1ICsyMywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBX
ZWJQcmVmZXJlbmNlc19ICi0jZGVmaW5lIFdlYlByZWZlcmVuY2VzX0gKKyNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5k
YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKLWNsYXNzIFdlYlByZWZlcmVuY2VzIDogcHVibGljIElXZWJQcmVmZXJlbmNl
cywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzIHsKK2NsYXNzIFdlYlByZWZlcmVuY2Vz
IDogcHVibGljIElXZWJQcmVmZXJlbmNlcywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUHJlZmVyZW5jZXMqIGNyZWF0ZUluc3RhbmNlKCk7
CiBwcm90ZWN0ZWQ6CkBAIC0yNDQsNiArMjQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBtb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChfT3V0XyBC
T09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE1vZGVybk1l
ZGlhQ29udHJvbHNFbmFibGVkKEJPT0wpOwogCisgICAgLy8gSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTQKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0QXBwbGljYXRpb25J
ZChCU1RSKTsKKwogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBh
Y2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0Vu
YWJsZWQuCkBAIC0yNTcsMTQgKzI1OSwxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVt
b3ZlUmVmZXJlbmNlRm9ySWRlbnRpZmllcihCU1RSIGlkZW50aWZpZXIpOwogICAgIHN0YXRpYyBX
ZWJQcmVmZXJlbmNlcyogc2hhcmVkU3RhbmRhcmRQcmVmZXJlbmNlcygpOwogCisgICAgc3RhdGlj
IENGU3RyaW5nUmVmIGFwcGxpY2F0aW9uSWQoKTsKKwogICAgIC8vIEZyb20gV2ViSGlzdG9yeS5o
CiAgICAgSFJFU1VMVCBoaXN0b3J5SXRlbUxpbWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQg
c2V0SGlzdG9yeUl0ZW1MaW1pdChpbnQpOwogICAgIEhSRVNVTFQgaGlzdG9yeUFnZUluRGF5c0xp
bWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQgc2V0SGlzdG9yeUFnZUluRGF5c0xpbWl0KGlu
dCk7CiAKLSAgICAgdm9pZCB3aWxsQWRkVG9XZWJWaWV3KCk7Ci0gICAgIHZvaWQgZGlkUmVtb3Zl
RnJvbVdlYlZpZXcoKTsKKyAgICB2b2lkIHdpbGxBZGRUb1dlYlZpZXcoKTsKKyAgICB2b2lkIGRp
ZFJlbW92ZUZyb21XZWJWaWV3KCk7CiAKICAgICBIUkVTVUxUIHBvc3RQcmVmZXJlbmNlc0NoYW5n
ZXNOb3RpZmljYXRpb24oKTsKIApAQCAtMjk3LDYgKzMwMSw1IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1fYXV0b1NhdmVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXV0b21hdGljYWxseURldGVj
dHNDYWNoZU1vZGVsIHsgdHJ1ZSB9OwogICAgIHVuc2lnbmVkIG1fbnVtV2ViVmlld3MgeyAwIH07
CisgICAgc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbV9hcHBsaWNhdGlvbklkOwogfTsK
LQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysg
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMSw3ICs1
MDEsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlCiAgICAgUmV0
YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5
U2hhcmVkVVJMQ2FjaGUoKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZnVybENhY2hl
RGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJlY3RvcnkoMCkpOwog
ICAgIGlmICghY2Z1cmxDYWNoZURpcmVjdG9yeSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9w
ZXJ0eUxpc3RSZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFs
dWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBs
aWNhdGlvbikpOworICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHByZWZlcmVu
Y2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURl
ZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgICAgIGlm
IChwcmVmZXJlbmNlICYmIChDRlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKHByZWZl
cmVuY2UuZ2V0KCkpKSkKICAgICAgICAgICAgIGNmdXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9wdENG
KHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihwcmVmZXJlbmNlLmxlYWtSZWYoKSkpOwogICAgICAg
ICBlbHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NywzICsxODcsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTMgOiBJV2ViCiAgICAgSFJFU1VMVCBzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiB9CiAKK1t1dWlkKEY5NTgyRDcyLTYzNDgtNDVCMS1BQjA5LTM5RTMz
NDU5QjVCOSldCitpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTQgOiBJV2ViUHJlZmVy
ZW5jZXNQcml2YXRlMworeworICAgIEhSRVNVTFQgc2V0QXBwbGljYXRpb25JZChbaW5dIEJTVFIg
YXBwbGljYXRpb25JZCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA2
OTkzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTYtMTAtMTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIFBhcmFsbGVsIERSVHMgYXJlIHNoYXJpbmcgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNl
cGFyYXRlIGNhY2hlIGFuZCBwcmVmZXJlbmNlcyBmb3IgZWFjaCBEUlQgaW5zdGFuY2UuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChzZXRBcHBsaWNhdGlvbklkKToKKyAgICAgICAgKHNl
dENhY2hlRm9sZGVyKToKKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9y
VGVzdGluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbi5weToKKyAgICAg
ICAgKFdpblBvcnQuc2V0dXBfdGVzdF9ydW4pOgorCiAyMDE2LTEwLTEwICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXM0MgdGVzdCBkb3dubG9hZGVyIHNob3Vs
ZCBiZSBhYmxlIHRvIGltcG9ydCBzcGVjaWZpYyBmaWxlcy9zdWItZGlyZWN0b3JpZXMgaW4gYSBz
a2lwcGVkIGRpcmVjdG9yeQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAj
aW5jbHVkZSA8ZnN0cmVhbT4KICNpbmNsdWRlIDxpby5oPgogI2luY2x1ZGUgPG1hdGguaD4KKyNp
bmNsdWRlIDxzaGxvYmouaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5jbHVkZSA8dGNoYXIu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTg1OSwxNiArODYwLDUyIEBA
IHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3QKICAgICBzZXRBbHdheXNB
Y2NlcHRDb29raWVzKGZhbHNlKTsKIH0KIAorc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
K3sKKyAgICBEV09SRCBwcm9jZXNzSWQgPSA6OkdldEN1cnJlbnRQcm9jZXNzSWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoImNvbS5hcHBsZS5EdW1wUmVuZGVyVHJlZS4lZCIsIHByb2Nl
c3NJZCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEFwcGxpY2F0aW9uSWQoKQoreworICAgIENPTVB0
cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChTVUNDRUVERUQoV2ViS2l0
Q3JlYXRlSW5zdGFuY2UoQ0xTSURfV2ViUHJlZmVyZW5jZXMsIDAsIElJRF9JV2ViUHJlZmVyZW5j
ZXMsICh2b2lkKiopJnByZWZlcmVuY2VzKSkpIHsKKyAgICAgICAgQ09NUHRyPElXZWJQcmVmZXJl
bmNlc1ByaXZhdGU0PiBwcmVmc1ByaXZhdGU0KFF1ZXJ5LCBwcmVmZXJlbmNlcyk7CisgICAgICAg
IEFTU0VSVChwcmVmc1ByaXZhdGU0KTsKKyAgICAgICAgX2JzdHJfdCBmaWxlTmFtZSA9IGFwcGxp
Y2F0aW9uSWQoKS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKTsKKyAgICAg
ICAgcHJlZnNQcml2YXRlNC0+c2V0QXBwbGljYXRpb25JZChmaWxlTmFtZSk7CisgICAgfQorfQor
CitzdGF0aWMgdm9pZCBzZXRDYWNoZUZvbGRlcigpCit7CisgICAgU3RyaW5nIGxpYnJhcnlQYXRo
ID0gbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpOworCisgICAgQ09NUHRyPElXZWJDYWNo
ZT4gd2ViQ2FjaGU7CisgICAgaWYgKFNVQ0NFRURFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShDTFNJ
RF9XZWJDYWNoZSwgMCwgSUlEX0lXZWJDYWNoZSwgKHZvaWQqKikmd2ViQ2FjaGUpKSkgeworICAg
ICAgICBfYnN0cl90IGNhY2hlRm9sZGVyID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIHdl
YkNhY2hlLT5zZXRDYWNoZUZvbGRlcihjYWNoZUZvbGRlcik7CisgICAgfQorfQorCiAvLyBDYWxs
ZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgogc3RhdGljIHZvaWQgc2V0RGVmYXVs
dHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKIHsKICNpZiBVU0UoQ0YpCisgICAgLy8g
Q3JlYXRlIHNlcGFyYXRlIHByZWZlcmVuY2VzIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIHNl
dEFwcGxpY2F0aW9uSWQoKTsKKworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYXBwSWQgPSBh
cHBsaWNhdGlvbklkKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKwogICAgIFN0cmluZyBsaWJyYXJ5UGF0
aCA9IGxpYnJhcnlQYXRoRm9yRHVtcFJlbmRlclRyZWUoKTsKIAogICAgIC8vIFNldCB1cCB0aGVz
ZSB2YWx1ZXMgYmVmb3JlIGNyZWF0aW5nIHRoZSBXZWJWaWV3IHNvIHRoYXQgdGhlIHZhcmlvdXMg
aW5pdGlhbGl6YXRpb25zIHdpbGwgc2VlIHRoZXNlIHByZWZlcnJlZCB2YWx1ZXMuCi0gICAgQ0ZQ
cmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXksIFdl
YkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJyYXJ5UGF0aCwgIkRhdGFiYXNlcyIp
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9u
KTsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViU3RvcmFnZURpcmVjdG9yeURlZmF1
bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJM
b2NhbFN0b3JhZ2UiKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbik7Ci0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYktpdExvY2Fs
Q2FjaGVEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJh
cnlQYXRoLCAiTG9jYWxDYWNoZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVu
Y2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2Vi
RGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGxpYnJhcnlQYXRoLCAiRGF0YWJhc2VzIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
YXBwSWQuZ2V0KCkpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShXZWJTdG9yYWdlRGly
ZWN0b3J5RGVmYXVsdHNLZXksIFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJy
YXJ5UGF0aCwgIkxvY2FsU3RvcmFnZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGFwcElkLmdl
dCgpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1
bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJM
b2NhbENhY2hlIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXBwSWQuZ2V0KCkpOworCisgICAg
Ly8gQ3JlYXRlIHNlcGFyYXRlIGNhY2hlIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIHNldENh
Y2hlRm9sZGVyKCk7CiAjZW5kaWYKIH0KIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGlt
cG9ydCBhdGV4aXQKLWltcG9ydCBvcworaW1wb3J0IGdsb2IKIGltcG9ydCBsb2dnaW5nCitpbXBv
cnQgb3MKIGltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKQEAgLTM1MSw2ICszNTIs
MTIgQEAgY2xhc3MgV2luUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBzZWxmLnNldHVwX2NyYXNo
X2xvZ19zYXZpbmcoKQogICAgICAgICBzZWxmLnByZXZlbnRfZXJyb3JfZGlhbG9ncygpCiAgICAg
ICAgIHNlbGYuZGVsZXRlX3NlbV9sb2NrcygpCisKKyAgICAgICAgcHJlZmVyZW5jZXNfZmlsZXMg
PSBzZWxmLl9maWxlc3lzdGVtLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSddLCAiQXBwbGUgQ29t
cHV0ZXIvUHJlZmVyZW5jZXMiLCAiY29tLmFwcGxlLkR1bXBSZW5kZXJUcmVlKiIpCisgICAgICAg
IGZpbGVsaXN0ID0gZ2xvYi5nbG9iKHByZWZlcmVuY2VzX2ZpbGVzKQorICAgICAgICBmb3IgZmls
ZSBpbiBmaWxlbGlzdDoKKyAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3ZlKGZpbGUp
CisKICAgICAgICAgc3VwZXIoV2luUG9ydCwgc2VsZikuc2V0dXBfdGVzdF9ydW4oZGV2aWNlX2Ns
YXNzKQogCiAgICAgZGVmIGNsZWFuX3VwX3Rlc3RfcnVuKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291344</attachid>
            <date>2016-10-12 01:08:17 -0700</date>
            <delta_ts>2016-10-12 09:38:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163013-20161012010835.patch</filename>
            <type>text/plain</type>
            <size>16487</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTEwLTEw
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBQ
YXJhbGxlbCBEUlRzIGFyZSBzaGFyaW5nIHByZWZlcmVuY2VzIGFuZCBjYWNoZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAxMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
Zm9yIGEgV2ViS2l0IGNsaWVudCB0byB1c2Ugc2VwYXJhdGUgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbDoKKyAg
ICAgICAgKiBXZWJBcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKGFwcGxpY2F0aW9uQ2Fj
aGVQYXRoKToKKyAgICAgICAgKiBXZWJDYWNoZS5jcHA6CisgICAgICAgIChXZWJDYWNoZTo6Y2Fj
aGVGb2xkZXIpOgorICAgICAgICAoV2ViQ2FjaGU6OnNldENhY2hlRm9sZGVyKToKKyAgICAgICAg
KiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoZGF0YWJhc2VzRGlyZWN0b3J5KToK
KyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6dmFsdWVGb3JLZXkpOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldFZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpzYXZlKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpRdWVyeUludGVyZmFj
ZSk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6bW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQp
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEFwcGxpY2F0aW9uSWQpOgorICAgICAgICAq
IFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKToKKwogMjAxNi0xMC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXVtEaXJlY3QyRF0gQ29ubmVjdCBXZWJDb3Jl
L1dlYktpdCBEcmF3aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGlj
YXRpb25DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkNGRGljdGlvbmFyeVByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxw
ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxpY2F0aW9uQ2FjaGUuaD4KQEAgLTY4LDcgKzY5LDcgQEAgc3RhdGljIFN0cmluZyBhcHBs
aWNhdGlvbkNhY2hlUGF0aCgpCiAgICAgU3RyaW5nIHBhdGggPSBsb2NhbFVzZXJTcGVjaWZpY1N0
b3JhZ2VEaXJlY3RvcnkoKTsKIAogI2lmIFVTRShDRikKLSAgICBhdXRvIGNhY2hlRGlyZWN0b3J5
UHJlZmVyZW5jZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJLaXRMb2Nh
bENhY2hlRGVmYXVsdHNLZXksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKSk7Cisg
ICAgYXV0byBjYWNoZURpcmVjdG9yeVByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXND
b3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6
YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5jZSAmJiBD
RlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKGNhY2hlRGlyZWN0b3J5UHJlZmVyZW5j
ZS5nZXQoKSkpCiAgICAgICAgIHBhdGggPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oY2FjaGVE
aXJlY3RvcnlQcmVmZXJlbmNlLmdldCgpKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC93
aW4vV2ViQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNhY2hl
LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ2FjaGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw4ICszNSwxMyBAQAogCiAjaWYgVVNFKENVUkwpCiAjaW5j
bHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+CisjZWxpZiBVU0UoQ0ZORVRXT1JLKQor
I2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPgorI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNlbmRpZgogCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwogLy8gV2ViQ2FjaGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdl
YkNhY2hlOjpXZWJDYWNoZSgpCkBAIC0yNDMsOCArMjQ4LDEwIEBAIEhSRVNVTFQgV2ViQ2FjaGU6
OmNhY2hlRm9sZGVyKF9fZGVyZWZfb3UKICAgICBTdHJpbmcgY2FjaGVGb2xkZXIgPSBXZWJDb3Jl
OjpDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmNhY2hlRGlyZWN0b3J5KCk7CiAgICAg
KmxvY2F0aW9uID0gV2ViQ29yZTo6QlN0cmluZyhjYWNoZUZvbGRlcikucmVsZWFzZSgpOwogICAg
IHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOworI2VsaWYgVVNFKENG
TkVUV09SSykKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3Rvcnkg
PSBhZG9wdENGKHdrQ29weUZvdW5kYXRpb25DYWNoZURpcmVjdG9yeSgwKSk7CisgICAgKmxvY2F0
aW9uID0gQlN0cmluZyhjZnVybENhY2hlRGlyZWN0b3J5LmdldCgpKS5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIFNfT0s7CiAjZW5kaWYKIH0KIApAQCAtMjU0LDcgKzI2MSwxMiBAQCBIUkVTVUxUIFdl
YkNhY2hlOjpzZXRDYWNoZUZvbGRlcihfSW5fIEJTCiAgICAgU3RyaW5nIGNhY2hlRm9sZGVyKGxv
Y2F0aW9uLCBTeXNTdHJpbmdMZW4obG9jYXRpb24pKTsKICAgICBXZWJDb3JlOjpDdXJsQ2FjaGVN
YW5hZ2VyOjpnZXRJbnN0YW5jZSgpLnNldENhY2hlRGlyZWN0b3J5KGNhY2hlRm9sZGVyKTsKICAg
ICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVfTk9USU1QTDsKKyNlbGlmIFVTRShD
Rk5FVFdPUkspCisgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNhY2hlID0gYWRvcHRDRihD
RlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpOworICAgIENGSW5kZXggbWVtb3J5Q2FwYWNp
dHkgPSBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoY2FjaGUuZ2V0KCkpOworICAgIENGSW5kZXgg
ZGlza0NhcGFjaXR5ID0gQ0ZVUkxDYWNoZURpc2tDYXBhY2l0eShjYWNoZS5nZXQoKSk7CisgICAg
UmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IG5ld0NhY2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1lbW9yeUNhcGFjaXR5LCBkaXNrQ2FwYWNpdHksIFN0
cmluZyhsb2NhdGlvbikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIENGVVJMQ2FjaGVT
ZXRTaGFyZWRVUkxDYWNoZShuZXdDYWNoZS5nZXQoKSk7CisgICAgcmV0dXJuIFNfT0s7CiAjZW5k
aWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjA2ODU0KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNPTVByb3BlcnR5
QmFnLmgiCiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxwZXJzLmgiCiAjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uQ2VudGVyLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+CkBA
IC00MjAsNyArNDIxLDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpc3BhdGNoRGlkTW9k
aQogc3RhdGljIFdURjo6U3RyaW5nIGRhdGFiYXNlc0RpcmVjdG9yeSgpCiB7CiAjaWYgVVNFKENG
KQotICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbikpOworICAgIFJldGFpblB0cjxD
RlByb3BlcnR5TGlzdFJlZj4gZGlyZWN0b3J5UHJlZiA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0Nv
cHlBcHBWYWx1ZShXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNl
czo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKGRpcmVjdG9yeVByZWYgJiYgKENGU3RyaW5n
R2V0VHlwZUlEKCkgPT0gQ0ZHZXRUeXBlSUQoZGlyZWN0b3J5UHJlZi5nZXQoKSkpKQogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KGRpcmVjdG9yeVByZWYuZ2V0KCkpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAy
MDY4NTQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBzdGF0aWMgYm9vbCBib29sZWFuVmFsdWVGb3JQcmVm
ZXJlbmNlc1ZhCiAKIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgZGVmYXVsdFNldHRpbmdzOwogCitS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFdlYlByZWZlcmVuY2VzOjptX2FwcGxpY2F0aW9uSWQgPSBr
Q0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbjsKKwogc3RhdGljIEhhc2hNYXA8V1RGOjpT
dHJpbmcsIENPTVB0cjxXZWJQcmVmZXJlbmNlcz4+JiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8V1RGOjpTdHJpbmcsIENPTVB0
cjxXZWJQcmVmZXJlbmNlcz4+PiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlczsKQEAgLTE4Myw2ICsx
ODUsMTEgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVtb3ZlUmVmZXJlbmNlRm9ySQogICAgICAg
ICB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcygpLnJlbW92ZShpZGVudGlmaWVyU3RyaW5nKTsKIH0K
IAorQ0ZTdHJpbmdSZWYgV2ViUHJlZmVyZW5jZXM6OmFwcGxpY2F0aW9uSWQoKQoreworICAgIHJl
dHVybiBtX2FwcGxpY2F0aW9uSWQuZ2V0KCk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6Omlu
aXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogewogICAgIGlmIChkZWZhdWx0U2V0dGluZ3MpCkBA
IC0zMDYsNyArMzEzLDcgQEAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBXZWJQcmVmZXJl
bgogICAgIGlmICh2YWx1ZSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCi0gICAgdmFsdWUgPSBh
ZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoa2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbikpOworICAgIHZhbHVlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFw
cFZhbHVlKGtleSwgYXBwbGljYXRpb25JZCgpKSk7CiAgICAgaWYgKHZhbHVlKQogICAgICAgICBy
ZXR1cm4gdmFsdWU7CiAKQEAgLTMxNyw3ICszMjQsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpz
ZXRWYWx1ZUZvcktleShDRlN0CiB7CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9wcml2YXRl
UHJlZnMuZ2V0KCksIGtleSwgdmFsdWUpOwogICAgIGlmIChtX2F1dG9TYXZlcykgewotICAgICAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2YWx1ZSwga0NGUHJlZmVyZW5jZXNDdXJy
ZW50QXBwbGljYXRpb24pOworICAgICAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoa2V5LCB2
YWx1ZSwgYXBwbGljYXRpb25JZCgpKTsKICAgICAgICAgc2F2ZSgpOwogICAgIH0KIH0KQEAgLTQ0
OCw3ICs0NTUsNyBAQCBCU1RSIFdlYlByZWZlcmVuY2VzOjp3ZWJQcmVmZXJlbmNlc1JlbW92CiAK
IHZvaWQgV2ViUHJlZmVyZW5jZXM6OnNhdmUoKQogewotICAgIENGUHJlZmVyZW5jZXNBcHBTeW5j
aHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CisgICAgQ0ZQcmVmZXJl
bmNlc0FwcFN5bmNocm9uaXplKGFwcGxpY2F0aW9uSWQoKSk7CiB9CiAKIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OmxvYWQoKQpAQCAtNTQwLDYgKzU0Nyw4IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6
OlF1ZXJ5SW50ZXJmYWNlKF8KICAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUyKj4odGhpcyk7CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlp
ZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKSkKICAgICAgICAgKnBwdk9iamVjdCA9IHN0
YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzKj4odGhpcyk7CisgICAgZWxzZSBpZiAo
SXNFcXVhbEdVSUQocmlpZCwgSUlEX0lXZWJQcmVmZXJlbmNlc1ByaXZhdGU0KSkKKyAgICAgICAg
KnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0Kj4odGhpcyk7
CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwgQ0xTSURfV2ViUHJlZmVyZW5jZXMpKQog
ICAgICAgICAqcHB2T2JqZWN0ID0gdGhpczsKICAgICBlbHNlCkBAIC0xOTkzLDMgKzIwMDIsOSBA
QCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjptb2Rlcm5NZWRpYUNvbnRyCiAgICAgKmVuYWJsZWQg
PSBib29sVmFsdWVGb3JLZXkoV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJl
bmNlS2V5KTsKICAgICByZXR1cm4gU19PSzsKIH0KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6
c2V0QXBwbGljYXRpb25JZChCU1RSIGFwcGxpY2F0aW9uSWQpCit7CisgICAgbV9hcHBsaWNhdGlv
bklkID0gU3RyaW5nKGFwcGxpY2F0aW9uSWQpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgcmV0dXJu
IFNfT0s7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIw
Njg1NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDE1ICsyMywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBX
ZWJQcmVmZXJlbmNlc19ICi0jZGVmaW5lIFdlYlByZWZlcmVuY2VzX0gKKyNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5k
YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKLWNsYXNzIFdlYlByZWZlcmVuY2VzIDogcHVibGljIElXZWJQcmVmZXJlbmNl
cywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGUzIHsKK2NsYXNzIFdlYlByZWZlcmVuY2Vz
IDogcHVibGljIElXZWJQcmVmZXJlbmNlcywgcHVibGljIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU0
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUHJlZmVyZW5jZXMqIGNyZWF0ZUluc3RhbmNlKCk7
CiBwcm90ZWN0ZWQ6CkBAIC0yNDQsNiArMjQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBtb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChfT3V0XyBC
T09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE1vZGVybk1l
ZGlhQ29udHJvbHNFbmFibGVkKEJPT0wpOwogCisgICAgLy8gSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTQKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0QXBwbGljYXRpb25J
ZChCU1RSKTsKKwogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBh
Y2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0Vu
YWJsZWQuCkBAIC0yNTcsMTQgKzI1OSwxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVt
b3ZlUmVmZXJlbmNlRm9ySWRlbnRpZmllcihCU1RSIGlkZW50aWZpZXIpOwogICAgIHN0YXRpYyBX
ZWJQcmVmZXJlbmNlcyogc2hhcmVkU3RhbmRhcmRQcmVmZXJlbmNlcygpOwogCisgICAgc3RhdGlj
IENGU3RyaW5nUmVmIGFwcGxpY2F0aW9uSWQoKTsKKwogICAgIC8vIEZyb20gV2ViSGlzdG9yeS5o
CiAgICAgSFJFU1VMVCBoaXN0b3J5SXRlbUxpbWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQg
c2V0SGlzdG9yeUl0ZW1MaW1pdChpbnQpOwogICAgIEhSRVNVTFQgaGlzdG9yeUFnZUluRGF5c0xp
bWl0KF9PdXRfIGludCopOwogICAgIEhSRVNVTFQgc2V0SGlzdG9yeUFnZUluRGF5c0xpbWl0KGlu
dCk7CiAKLSAgICAgdm9pZCB3aWxsQWRkVG9XZWJWaWV3KCk7Ci0gICAgIHZvaWQgZGlkUmVtb3Zl
RnJvbVdlYlZpZXcoKTsKKyAgICB2b2lkIHdpbGxBZGRUb1dlYlZpZXcoKTsKKyAgICB2b2lkIGRp
ZFJlbW92ZUZyb21XZWJWaWV3KCk7CiAKICAgICBIUkVTVUxUIHBvc3RQcmVmZXJlbmNlc0NoYW5n
ZXNOb3RpZmljYXRpb24oKTsKIApAQCAtMjk3LDYgKzMwMSw1IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1fYXV0b1NhdmVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXV0b21hdGljYWxseURldGVj
dHNDYWNoZU1vZGVsIHsgdHJ1ZSB9OwogICAgIHVuc2lnbmVkIG1fbnVtV2ViVmlld3MgeyAwIH07
CisgICAgc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbV9hcHBsaWNhdGlvbklkOwogfTsK
LQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gMjA2ODU0KQorKysg
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMSw3ICs1
MDEsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlCiAgICAgUmV0
YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5
U2hhcmVkVVJMQ2FjaGUoKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZnVybENhY2hl
RGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJlY3RvcnkoMCkpOwog
ICAgIGlmICghY2Z1cmxDYWNoZURpcmVjdG9yeSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9w
ZXJ0eUxpc3RSZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFs
dWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBs
aWNhdGlvbikpOworICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHByZWZlcmVu
Y2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURl
ZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgICAgIGlm
IChwcmVmZXJlbmNlICYmIChDRlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKHByZWZl
cmVuY2UuZ2V0KCkpKSkKICAgICAgICAgICAgIGNmdXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9wdENG
KHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihwcmVmZXJlbmNlLmxlYWtSZWYoKSkpOwogICAgICAg
ICBlbHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDIwNjg1NCkKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NywzICsxODcsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTMgOiBJV2ViCiAgICAgSFJFU1VMVCBzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiB9CiAKK1t1dWlkKEY5NTgyRDcyLTYzNDgtNDVCMS1BQjA5LTM5RTMz
NDU5QjVCOSldCitpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTQgOiBJV2ViUHJlZmVy
ZW5jZXNQcml2YXRlMworeworICAgIEhSRVNVTFQgc2V0QXBwbGljYXRpb25JZChbaW5dIEJTVFIg
YXBwbGljYXRpb25JZCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA2
OTkzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTYtMTAtMTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIFBhcmFsbGVsIERSVHMgYXJlIHNoYXJpbmcgcHJlZmVyZW5jZXMgYW5kIGNhY2hl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNl
cGFyYXRlIGNhY2hlIGFuZCBwcmVmZXJlbmNlcyBmb3IgZWFjaCBEUlQgaW5zdGFuY2UuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
YXBwbGljYXRpb25JZCk6CisgICAgICAgIChzZXRBcHBsaWNhdGlvbklkKToKKyAgICAgICAgKHNl
dENhY2hlRm9sZGVyKToKKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9y
VGVzdGluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbi5weToKKyAgICAg
ICAgKFdpblBvcnQuc2V0dXBfdGVzdF9ydW4pOgorCiAyMDE2LTEwLTEwICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXM0MgdGVzdCBkb3dubG9hZGVyIHNob3Vs
ZCBiZSBhYmxlIHRvIGltcG9ydCBzcGVjaWZpYyBmaWxlcy9zdWItZGlyZWN0b3JpZXMgaW4gYSBz
a2lwcGVkIGRpcmVjdG9yeQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAj
aW5jbHVkZSA8ZnN0cmVhbT4KICNpbmNsdWRlIDxpby5oPgogI2luY2x1ZGUgPG1hdGguaD4KKyNp
bmNsdWRlIDxzaGxvYmouaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5jbHVkZSA8dGNoYXIu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTg1OSwxNiArODYwLDUyIEBA
IHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3QKICAgICBzZXRBbHdheXNB
Y2NlcHRDb29raWVzKGZhbHNlKTsKIH0KIAorc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
K3sKKyAgICBEV09SRCBwcm9jZXNzSWQgPSA6OkdldEN1cnJlbnRQcm9jZXNzSWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoImNvbS5hcHBsZS5EdW1wUmVuZGVyVHJlZS4lZCIsIHByb2Nl
c3NJZCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEFwcGxpY2F0aW9uSWQoKQoreworICAgIENPTVB0
cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChTVUNDRUVERUQoV2ViS2l0
Q3JlYXRlSW5zdGFuY2UoQ0xTSURfV2ViUHJlZmVyZW5jZXMsIDAsIElJRF9JV2ViUHJlZmVyZW5j
ZXMsICh2b2lkKiopJnByZWZlcmVuY2VzKSkpIHsKKyAgICAgICAgQ09NUHRyPElXZWJQcmVmZXJl
bmNlc1ByaXZhdGU0PiBwcmVmc1ByaXZhdGU0KFF1ZXJ5LCBwcmVmZXJlbmNlcyk7CisgICAgICAg
IEFTU0VSVChwcmVmc1ByaXZhdGU0KTsKKyAgICAgICAgX2JzdHJfdCBmaWxlTmFtZSA9IGFwcGxp
Y2F0aW9uSWQoKS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKTsKKyAgICAg
ICAgcHJlZnNQcml2YXRlNC0+c2V0QXBwbGljYXRpb25JZChmaWxlTmFtZSk7CisgICAgfQorfQor
CitzdGF0aWMgdm9pZCBzZXRDYWNoZUZvbGRlcigpCit7CisgICAgU3RyaW5nIGxpYnJhcnlQYXRo
ID0gbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpOworCisgICAgQ09NUHRyPElXZWJDYWNo
ZT4gd2ViQ2FjaGU7CisgICAgaWYgKFNVQ0NFRURFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShDTFNJ
RF9XZWJDYWNoZSwgMCwgSUlEX0lXZWJDYWNoZSwgKHZvaWQqKikmd2ViQ2FjaGUpKSkgeworICAg
ICAgICBfYnN0cl90IGNhY2hlRm9sZGVyID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGxpYnJhcnlQYXRoLCAiTG9jYWxDYWNoZSIpLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIHdl
YkNhY2hlLT5zZXRDYWNoZUZvbGRlcihjYWNoZUZvbGRlcik7CisgICAgfQorfQorCiAvLyBDYWxs
ZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgogc3RhdGljIHZvaWQgc2V0RGVmYXVs
dHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKIHsKICNpZiBVU0UoQ0YpCisgICAgLy8g
Q3JlYXRlIHNlcGFyYXRlIHByZWZlcmVuY2VzIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIHNl
dEFwcGxpY2F0aW9uSWQoKTsKKworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYXBwSWQgPSBh
cHBsaWNhdGlvbklkKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKwogICAgIFN0cmluZyBsaWJyYXJ5UGF0
aCA9IGxpYnJhcnlQYXRoRm9yRHVtcFJlbmRlclRyZWUoKTsKIAogICAgIC8vIFNldCB1cCB0aGVz
ZSB2YWx1ZXMgYmVmb3JlIGNyZWF0aW5nIHRoZSBXZWJWaWV3IHNvIHRoYXQgdGhlIHZhcmlvdXMg
aW5pdGlhbGl6YXRpb25zIHdpbGwgc2VlIHRoZXNlIHByZWZlcnJlZCB2YWx1ZXMuCi0gICAgQ0ZQ
cmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXksIFdl
YkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJyYXJ5UGF0aCwgIkRhdGFiYXNlcyIp
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9u
KTsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViU3RvcmFnZURpcmVjdG9yeURlZmF1
bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJM
b2NhbFN0b3JhZ2UiKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJl
bnRBcHBsaWNhdGlvbik7Ci0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKFdlYktpdExvY2Fs
Q2FjaGVEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGxpYnJh
cnlQYXRoLCAiTG9jYWxDYWNoZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlByZWZlcmVu
Y2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2Vi
RGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleSwgV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGxpYnJhcnlQYXRoLCAiRGF0YWJhc2VzIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
YXBwSWQuZ2V0KCkpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShXZWJTdG9yYWdlRGly
ZWN0b3J5RGVmYXVsdHNLZXksIFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChsaWJy
YXJ5UGF0aCwgIkxvY2FsU3RvcmFnZSIpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGFwcElkLmdl
dCgpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1
bHRzS2V5LCBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGlicmFyeVBhdGgsICJM
b2NhbENhY2hlIikuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXBwSWQuZ2V0KCkpOworCisgICAg
Ly8gQ3JlYXRlIHNlcGFyYXRlIGNhY2hlIGZvciBlYWNoIERSVCBpbnN0YW5jZQorICAgIHNldENh
Y2hlRm9sZGVyKCk7CiAjZW5kaWYKIH0KIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CShyZXZpc2lvbiAyMDY4NTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGlt
cG9ydCBhdGV4aXQKLWltcG9ydCBvcworaW1wb3J0IGdsb2IKIGltcG9ydCBsb2dnaW5nCitpbXBv
cnQgb3MKIGltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKQEAgLTM0NiwxMSArMzQ3
LDIxIEBAIGNsYXNzIFdpblBvcnQoQXBwbGVQb3J0KToKICAgICBkZWYgZGVsZXRlX3NlbV9sb2Nr
cyhzZWxmKToKICAgICAgICAgb3Muc3lzdGVtKCJybSAtcmYgL2Rldi9zaG0vc2VtLioiKQogCisg
ICAgZGVmIGRlbGV0ZV9wcmVmZXJlbmNlX2ZpbGVzKHNlbGYpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBwcmVmZXJlbmNlc19maWxlcyA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihvcy5lbnZp
cm9uWydBUFBEQVRBJ10sICJBcHBsZSBDb21wdXRlci9QcmVmZXJlbmNlcyIsICJjb20uYXBwbGUu
RHVtcFJlbmRlclRyZWUqIikKKyAgICAgICAgICAgIGZpbGVsaXN0ID0gZ2xvYi5nbG9iKHByZWZl
cmVuY2VzX2ZpbGVzKQorICAgICAgICAgICAgZm9yIGZpbGUgaW4gZmlsZWxpc3Q6CisgICAgICAg
ICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5yZW1vdmUoZmlsZSkKKyAgICAgICAgZXhjZXB0Ogor
ICAgICAgICAgICAgX2xvZy53YXJuKCJGYWlsZWQgdG8gZGVsZXRlIHByZWZlcmVuY2UgZmlsZXMu
IikKKwogICAgIGRlZiBzZXR1cF90ZXN0X3J1bihzZWxmLCBkZXZpY2VfY2xhc3M9Tm9uZSk6CiAg
ICAgICAgIGF0ZXhpdC5yZWdpc3RlcihzZWxmLnJlc3RvcmVfY3Jhc2hfbG9nX3NhdmluZykKICAg
ICAgICAgc2VsZi5zZXR1cF9jcmFzaF9sb2dfc2F2aW5nKCkKICAgICAgICAgc2VsZi5wcmV2ZW50
X2Vycm9yX2RpYWxvZ3MoKQogICAgICAgICBzZWxmLmRlbGV0ZV9zZW1fbG9ja3MoKQorICAgICAg
ICBzZWxmLmRlbGV0ZV9wcmVmZXJlbmNlX2ZpbGVzKCkKICAgICAgICAgc3VwZXIoV2luUG9ydCwg
c2VsZikuc2V0dXBfdGVzdF9ydW4oZGV2aWNlX2NsYXNzKQogCiAgICAgZGVmIGNsZWFuX3VwX3Rl
c3RfcnVuKHNlbGYpOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>