<?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>190269</bug_id>
          
          <creation_ts>2018-10-03 16:58:26 -0700</creation_ts>
          <short_desc>IOS 12 - Service worker cache not shared when added to homescreen</short_desc>
          <delta_ts>2019-06-21 13:19:35 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>corne.alant</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>agrul</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>davidmaxwaterman</cc>
    
    <cc>dbates</cc>
    
    <cc>edoardo.cavazza</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>etienne.maheu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>marlonmleite</cc>
    
    <cc>nekr.fabula</cc>
    
    <cc>nicolocarpignoli</cc>
    
    <cc>philip</cc>
    
    <cc>rniwa</cc>
    
    <cc>tm</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466238</commentid>
    <comment_count>0</comment_count>
    <who name="">corne.alant</who>
    <bug_when>2018-10-03 16:58:26 -0700</bug_when>
    <thetext>On IOS 12, it appears the service worker is shared between Safari and the &quot;Add to Homescreen&quot; Webview but not the cache. That means that once user actions &quot;add to home screen&quot; they will have a service worker installed but not the expected cache.

As many service worker projects do, they precache assets once the service worker is installed. After a user adds the PWA to homescreen, it appears the service worker is still installed but the cache is no longer shared. This behavior is inconsistent with other browsers and the previous versions of IOS.

An issue has also been logged against Workbox JS, a third party library that no longer works on IOS 12 as a consequence of this inconsistency. 

https://github.com/GoogleChrome/workbox/issues/1672</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466368</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 08:56:23 -0700</bug_when>
    <thetext>Youenn should take a look I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466369</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-04 08:57:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/45009961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466430</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-04 11:51:39 -0700</bug_when>
    <thetext>Will take a look tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467540</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-09 13:58:13 -0700</bug_when>
    <thetext>I reproduced the issue on MobileSafari.
Doing some debugging, the following happens:
- NetworkProcess wants to create a cache storage engine
- NetworkProcess asks UIProcess where to store data based on the session ID
- NetworkProcessProxy on UIProcess has no WebsiteDataStore for that session ID
- NetworkProcessProxy returns ephemeral parameters

Looking at the session ID, it is the default session so probably what happens is that at NetworkProcessProxy creation time, WebProcessPool default WebsiteDataStore is not set yet so we do not keep it in the list of NetworkProcessProxy sessions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467545</commentid>
    <comment_count>5</comment_count>
      <attachid>351910</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-09 14:07:00 -0700</bug_when>
    <thetext>Created attachment 351910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467546</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-09 14:07:22 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Created attachment 351910 [details]
&gt; Patch

API test missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467549</commentid>
    <comment_count>7</comment_count>
      <attachid>351912</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-09 14:12:20 -0700</bug_when>
    <thetext>Created attachment 351912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467606</commentid>
    <comment_count>8</comment_count>
      <attachid>351926</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-09 16:48:49 -0700</bug_when>
    <thetext>Created attachment 351926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467607</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-09 16:52:05 -0700</bug_when>
    <thetext>Attachment 351926 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:197:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:222:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 10 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>1467643</commentid>
    <comment_count>10</comment_count>
      <attachid>351939</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-09 20:33:05 -0700</bug_when>
    <thetext>Created attachment 351939
Fix Win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467644</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-09 20:34:16 -0700</bug_when>
    <thetext>Attachment 351939 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:197:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:222:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 10 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>1467712</commentid>
    <comment_count>12</comment_count>
      <attachid>351959</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-10 07:38:41 -0700</bug_when>
    <thetext>Created attachment 351959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467713</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-10 07:40:34 -0700</bug_when>
    <thetext>Attachment 351959 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:197:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:222:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467827</commentid>
    <comment_count>14</comment_count>
      <attachid>351959</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-10 14:22:26 -0700</bug_when>
    <thetext>Comment on attachment 351959
Patch

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

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:639
&gt; +            auto quota = m_processPool.websiteDataStore() ? m_processPool.websiteDataStore()-&gt;websiteDataStore().cacheStoragePerOriginQuota() : WebsiteDataStore::defaultCacheStoragePerOriginQuota;

Could be simplified here to directly use WebsiteDataStore::defaultCacheStoragePerOriginQuota...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467828</commentid>
    <comment_count>15</comment_count>
      <attachid>351959</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-10 14:23:06 -0700</bug_when>
    <thetext>Comment on attachment 351959
Patch

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

&gt; Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp:50
&gt; +    adoptRef(*globalDefaultDataStore);

Why not simply delete globalDefaultDataStore; ?

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:632
&gt; +        ASSERT(sessionID == PAL::SessionID::defaultSessionID());

I do not fully understand this fix. I am 90% sure that home screen apps (Web.app) do not use the default session ID. Why wouldn&apos;t this hit this assertion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467852</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-10 15:19:54 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #15)
&gt; Comment on attachment 351959 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=351959&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp:50
&gt; &gt; +    adoptRef(*globalDefaultDataStore);
&gt; 
&gt; Why not simply delete globalDefaultDataStore; ?

Some other code might have refed the globalDefaultDataStore.
We are leaking the ref above, so adoptRef is the exact inverse operation.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:632
&gt; &gt; +        ASSERT(sessionID == PAL::SessionID::defaultSessionID());
&gt; 
&gt; I do not fully understand this fix. I am 90% sure that home screen apps
&gt; (Web.app) do not use the default session ID. Why wouldn&apos;t this hit this
&gt; assertion?

Web.app networking process always get the right cache storage path so Web.app behavior should be unchanged.

Safari is using the default session ID and its networking process does not always get the right cache storage path in that case.
This happens when the web process pool spins the network process before any web page is created and before the default website data store is created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467906</commentid>
    <comment_count>17</comment_count>
      <attachid>351959</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-10 18:22:04 -0700</bug_when>
    <thetext>Comment on attachment 351959
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp:50
&gt;&gt;&gt; +    adoptRef(*globalDefaultDataStore);
&gt;&gt; 
&gt;&gt; Why not simply delete globalDefaultDataStore; ?
&gt; 
&gt; Some other code might have refed the globalDefaultDataStore.
&gt; We are leaking the ref above, so adoptRef is the exact inverse operation.

This is what static NeverDestroyed&lt;RefPtr&lt;WebsiteDataStore&gt;&gt; is for.  Setting that to nullptr will be much less strange than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468062</commentid>
    <comment_count>18</comment_count>
      <attachid>352051</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-11 09:55:09 -0700</bug_when>
    <thetext>Created attachment 352051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468063</commentid>
    <comment_count>19</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-11 09:57:49 -0700</bug_when>
    <thetext>Attachment 352051 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:197:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:222:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 13 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>1468231</commentid>
    <comment_count>20</comment_count>
      <attachid>352051</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-11 16:18:13 -0700</bug_when>
    <thetext>Comment on attachment 352051
Patch

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

&gt; Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp:57
&gt; +    auto&amp; store = globalDefaultDataStore();
&gt; +    if (!store)
&gt; +        return;
&gt; +    store = nullptr;

This could just be replaced by one line:
globalDefaultDataStore() = nullptr;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468237</commentid>
    <comment_count>21</comment_count>
      <attachid>352101</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-11 16:34:07 -0700</bug_when>
    <thetext>Created attachment 352101
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468238</commentid>
    <comment_count>22</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-11 16:35:09 -0700</bug_when>
    <thetext>Attachment 352101 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:197:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:222:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 13 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>1468288</commentid>
    <comment_count>23</comment_count>
      <attachid>352101</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-11 18:33:36 -0700</bug_when>
    <thetext>Comment on attachment 352101
Patch for landing

Clearing flags on attachment: 352101

Committed r237060: &lt;https://trac.webkit.org/changeset/237060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468289</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-11 18:33:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475657</commentid>
    <comment_count>25</comment_count>
    <who name="Arthur">nekr.fabula</who>
    <bug_when>2018-11-06 13:16:17 -0800</bug_when>
    <thetext>Hello. Has it been landed in iOS 12.1?

I actually thought it did because everything worked when I updated from 12.0.1, but now it doesn&apos;t after I restarted the phone. I just tried in the 12.1 emulator and it doesn&apos;t work there too.

I actually saw the same thing when upgraded from 11.4.1 to 12. It worked at first and then suddenly stopped. Then I just didn&apos;t realize that it was because of a restart. Now I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476493</commentid>
    <comment_count>26</comment_count>
    <who name="Edoardo Cavazza">edoardo.cavazza</who>
    <bug_when>2018-11-08 03:38:14 -0800</bug_when>
    <thetext>I con confirm that it still doesn&apos;t work in iOS 12.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476517</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Fantino">nicolocarpignoli</who>
    <bug_when>2018-11-08 07:17:12 -0800</bug_when>
    <thetext>Not working in IOS 12.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481205</commentid>
    <comment_count>28</comment_count>
    <who name="tmdoit">tm</who>
    <bug_when>2018-11-23 16:34:55 -0800</bug_when>
    <thetext>Same here, couldn&apos;t get it work on 12.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481870</commentid>
    <comment_count>29</comment_count>
    <who name="tmdoit">tm</who>
    <bug_when>2018-11-27 03:10:09 -0800</bug_when>
    <thetext>Same here on iOS 12.01.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481931</commentid>
    <comment_count>30</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-27 09:09:04 -0800</bug_when>
    <thetext>The fix did not ship in 12.1 so it is not surprising you are still experiencing the issue. Please give it some time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482991</commentid>
    <comment_count>31</comment_count>
    <who name="tmdoit">tm</who>
    <bug_when>2018-11-29 09:58:45 -0800</bug_when>
    <thetext>Chris Dumez thanks for your reply.

Is the below issue related?
&quot;iOS 12 Safari does not support the offline feature of some PWAs (Progressive Web App). It seems like Safari does not cache resources in those web apps properly.

For example, the following PWAs cannot work offline in iOS 12 and 12.1, but they all work perfectly in Chrome on Android or Windows:

The Air Horner PWA that is used by google to demonstrate Service Worker:
Air Horner

And these two:
2048 puzzle
Voice Memos

Steps to reproduce (100% reproducible):

visit the PWA with Safari (iOS 12 or 12.1)
close the PWA tab in Safari
push home button on iPhone to set Safari to background
push the iPhone power button to turn off screen
push the iPhone power button again to wake up the phone
turn off all the network connection from the iPhone control center (both wifi and cellular)
open Safari, visit PWA again --&gt; the web app fail to load
This has been bothering me for a long time, as my own web app also has the similar issue - works fine in Chrome on Android / Windows but only fails on iOS 12 Safari. Any idea what special in iOS 12 Safari? Thank you very much!&quot;

Source: https://stackoverflow.com/questions/53439379/ios-12-does-not-support-offline-feature-of-some-pwas/53495939#53495939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483059</commentid>
    <comment_count>32</comment_count>
    <who name="tmdoit">tm</who>
    <bug_when>2018-11-29 11:47:15 -0800</bug_when>
    <thetext>(In reply to tmdoit from comment #31)
&gt; Chris Dumez thanks for your reply.
&gt; 
&gt; Is the below issue related?
&gt; &quot;iOS 12 Safari does not support the offline feature of some PWAs
&gt; (Progressive Web App). It seems like Safari does not cache resources in
&gt; those web apps properly.
&gt; 
&gt; For example, the following PWAs cannot work offline in iOS 12 and 12.1, but
&gt; they all work perfectly in Chrome on Android or Windows:
&gt; 
&gt; The Air Horner PWA that is used by google to demonstrate Service Worker:
&gt; Air Horner
&gt; 
&gt; And these two:
&gt; 2048 puzzle
&gt; Voice Memos
&gt; 
&gt; Steps to reproduce (100% reproducible):
&gt; 
&gt; visit the PWA with Safari (iOS 12 or 12.1)
&gt; close the PWA tab in Safari
&gt; push home button on iPhone to set Safari to background
&gt; push the iPhone power button to turn off screen
&gt; push the iPhone power button again to wake up the phone
&gt; turn off all the network connection from the iPhone control center (both
&gt; wifi and cellular)
&gt; open Safari, visit PWA again --&gt; the web app fail to load
&gt; This has been bothering me for a long time, as my own web app also has the
&gt; similar issue - works fine in Chrome on Android / Windows but only fails on
&gt; iOS 12 Safari. Any idea what special in iOS 12 Safari? Thank you very much!&quot;
&gt; 
&gt; Source:
&gt; https://stackoverflow.com/questions/53439379/ios-12-does-not-support-offline-
&gt; feature-of-some-pwas/53495939#53495939

Here is new issue opened https://bugs.webkit.org/show_bug.cgi?id=192166.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1484421</commentid>
    <comment_count>33</comment_count>
    <who name="Etienne Maheu">etienne.maheu</who>
    <bug_when>2018-12-03 11:26:34 -0800</bug_when>
    <thetext>@tmdoit based on the repro steps on your comment, I devised a test that appear to confirm that your issue is link to this bug.

Here are the actual test:

Repro with a homescreen app

1. visit the PWA with Safari (iOS 12 or 12.1)
2. add the app to your homescreen.
2. close the PWA tab in Safari
3. push home button on iPhone to set Safari to background
4. push the iPhone power button to turn off screen
5. push the iPhone power button again to wake up the phone
6. turn off all the network connection from the iPhone control center (both wifi and cellular)
7. open the app via your homescreen --&gt; the web app fail to load

Additional steps to force the SW to cache the app on the right AppId

8. close the app via the app manager
9. go to Setting &gt; Safari &gt; Clear History and Website Data
10. turn on the network connection
11. open the app via your homescreen --&gt; the web app loads from the server and install the service worker

Additional steps to check for offline support

12. turn off all the network connection
13. quit the app
14. push the iPhone power button to turn off screen
15. push the iPhone power button again to wake up the phone
16. open the app via your homescreen --&gt; the web app loads from the local cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1484518</commentid>
    <comment_count>34</comment_count>
    <who name="tmdoit">tm</who>
    <bug_when>2018-12-03 14:32:55 -0800</bug_when>
    <thetext>Etienne Maheu: thanks for your response, It&apos;s working as you described.

So we are waiting for the patched version of Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491711</commentid>
    <comment_count>35</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-04 10:23:43 -0800</bug_when>
    <thetext>*** Bug 192166 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521274</commentid>
    <comment_count>36</comment_count>
    <who name="Edoardo Cavazza">edoardo.cavazza</who>
    <bug_when>2019-03-26 05:49:32 -0700</bug_when>
    <thetext>Still not landed in iOS 12.2. Does someone have informations about the release version of this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527936</commentid>
    <comment_count>37</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-04-16 16:26:23 -0700</bug_when>
    <thetext>(In reply to Edoardo Cavazza from comment #36)
&gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; release version of this patch?

This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS 12.1.

Could you please file a new bug with the detailed description as to what issue you&apos;re seeing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545244</commentid>
    <comment_count>38</comment_count>
    <who name="Etienne Maheu">etienne.maheu</who>
    <bug_when>2019-06-17 07:01:38 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #37)
&gt; (In reply to Edoardo Cavazza from comment #36)
&gt; &gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; &gt; release version of this patch?
&gt; 
&gt; This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS
&gt; 12.1.
&gt; 
&gt; Could you please file a new bug with the detailed description as to what
&gt; issue you&apos;re seeing?

I would like to confirm that the test I previously mentioned in this thread is now passing in iOS 12.2. I too would tend to believe that @EdoardoCavazza is experiencing a different issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546888</commentid>
    <comment_count>39</comment_count>
    <who name="Marlon Maxwel">marlonmleite</who>
    <bug_when>2019-06-21 09:30:02 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #37)
&gt; (In reply to Edoardo Cavazza from comment #36)
&gt; &gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; &gt; release version of this patch?
&gt; 
&gt; This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS
&gt; 12.1.
&gt; 
&gt; Could you please file a new bug with the detailed description as to what
&gt; issue you&apos;re seeing?


Has the problem really been fixed?

We are currently using iOS 12.3.1 and the problem still happens.

In Safari it works correctly, but when you&apos;re using PWA it does not work. There are behavioral differences between Safari and PWA on iOS.

Our scenario:
- Open the application in Safari;
- We installed PWA on iOS;
- We close the Safari;
- We release a new version of the application;
- PWA continues to use old asset cache - precache (apparently the serviceWorker flow in PWA is different from normal);
- PWA is obsolete and does not update to the new assets in any way;
- We reboot the Iphone and PWA works with the new assets;


This stream works properly on Chrome, Firefox, Android, Safari, but the PWA installed on iOS does not work at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546890</commentid>
    <comment_count>40</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-21 09:33:29 -0700</bug_when>
    <thetext>(In reply to Marlon Maxwel from comment #39)
&gt; (In reply to Ryosuke Niwa from comment #37)
&gt; &gt; (In reply to Edoardo Cavazza from comment #36)
&gt; &gt; &gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; &gt; &gt; release version of this patch?
&gt; &gt; 
&gt; &gt; This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS
&gt; &gt; 12.1.
&gt; &gt; 
&gt; &gt; Could you please file a new bug with the detailed description as to what
&gt; &gt; issue you&apos;re seeing?
&gt; 
&gt; 
&gt; Has the problem really been fixed?
&gt; 
&gt; We are currently using iOS 12.3.1 and the problem still happens.
&gt; 
&gt; In Safari it works correctly, but when you&apos;re using PWA it does not work.
&gt; There are behavioral differences between Safari and PWA on iOS.
&gt; 
&gt; Our scenario:
&gt; - Open the application in Safari;
&gt; - We installed PWA on iOS;
&gt; - We close the Safari;
&gt; - We release a new version of the application;
&gt; - PWA continues to use old asset cache - precache (apparently the
&gt; serviceWorker flow in PWA is different from normal);
&gt; - PWA is obsolete and does not update to the new assets in any way;
&gt; - We reboot the Iphone and PWA works with the new assets;

This is probably a different bug, could you file another bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546904</commentid>
    <comment_count>41</comment_count>
    <who name="Marlon Maxwel">marlonmleite</who>
    <bug_when>2019-06-21 10:09:38 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #40)
&gt; (In reply to Marlon Maxwel from comment #39)
&gt; &gt; (In reply to Ryosuke Niwa from comment #37)
&gt; &gt; &gt; (In reply to Edoardo Cavazza from comment #36)
&gt; &gt; &gt; &gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; &gt; &gt; &gt; release version of this patch?
&gt; &gt; &gt; 
&gt; &gt; &gt; This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS
&gt; &gt; &gt; 12.1.
&gt; &gt; &gt; 
&gt; &gt; &gt; Could you please file a new bug with the detailed description as to what
&gt; &gt; &gt; issue you&apos;re seeing?
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Has the problem really been fixed?
&gt; &gt; 
&gt; &gt; We are currently using iOS 12.3.1 and the problem still happens.
&gt; &gt; 
&gt; &gt; In Safari it works correctly, but when you&apos;re using PWA it does not work.
&gt; &gt; There are behavioral differences between Safari and PWA on iOS.
&gt; &gt; 
&gt; &gt; Our scenario:
&gt; &gt; - Open the application in Safari;
&gt; &gt; - We installed PWA on iOS;
&gt; &gt; - We close the Safari;
&gt; &gt; - We release a new version of the application;
&gt; &gt; - PWA continues to use old asset cache - precache (apparently the
&gt; &gt; serviceWorker flow in PWA is different from normal);
&gt; &gt; - PWA is obsolete and does not update to the new assets in any way;
&gt; &gt; - We reboot the Iphone and PWA works with the new assets;
&gt; 
&gt; This is probably a different bug, could you file another bug?


Open this bug: https://bugs.webkit.org/show_bug.cgi?id=199110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546913</commentid>
    <comment_count>42</comment_count>
    <who name="Etienne Maheu">etienne.maheu</who>
    <bug_when>2019-06-21 10:40:46 -0700</bug_when>
    <thetext>(In reply to Marlon Maxwel from comment #41)
&gt; (In reply to youenn fablet from comment #40)
&gt; &gt; (In reply to Marlon Maxwel from comment #39)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #37)
&gt; &gt; &gt; &gt; (In reply to Edoardo Cavazza from comment #36)
&gt; &gt; &gt; &gt; &gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; &gt; &gt; &gt; &gt; release version of this patch?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS
&gt; &gt; &gt; &gt; 12.1.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Could you please file a new bug with the detailed description as to what
&gt; &gt; &gt; &gt; issue you&apos;re seeing?
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Has the problem really been fixed?
&gt; &gt; &gt; 
&gt; &gt; &gt; We are currently using iOS 12.3.1 and the problem still happens.
&gt; &gt; &gt; 
&gt; &gt; &gt; In Safari it works correctly, but when you&apos;re using PWA it does not work.
&gt; &gt; &gt; There are behavioral differences between Safari and PWA on iOS.
&gt; &gt; &gt; 
&gt; &gt; &gt; Our scenario:
&gt; &gt; &gt; - Open the application in Safari;
&gt; &gt; &gt; - We installed PWA on iOS;
&gt; &gt; &gt; - We close the Safari;
&gt; &gt; &gt; - We release a new version of the application;
&gt; &gt; &gt; - PWA continues to use old asset cache - precache (apparently the
&gt; &gt; &gt; serviceWorker flow in PWA is different from normal);
&gt; &gt; &gt; - PWA is obsolete and does not update to the new assets in any way;
&gt; &gt; &gt; - We reboot the Iphone and PWA works with the new assets;
&gt; &gt; 
&gt; &gt; This is probably a different bug, could you file another bug?
&gt; 
&gt; 
&gt; Open this bug: https://bugs.webkit.org/show_bug.cgi?id=199110

This is a different issue. The original problem here was that causing the PWA installed from the home-screen to never cache anything which prevent it from working offline.

The issue you are describing now is something I discussed on the VueJs and Google Workbox github pages. There is a workaround that you can use with Google Workbox which is to use the &quot;skipWaiting&quot; option to force the SW to restart as soon as it receives an update. You could take a look at how workbox handle this option and replicate it in your SW code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546959</commentid>
    <comment_count>43</comment_count>
    <who name="Marlon Maxwel">marlonmleite</who>
    <bug_when>2019-06-21 13:19:35 -0700</bug_when>
    <thetext>(In reply to Etienne Maheu from comment #42)
&gt; (In reply to Marlon Maxwel from comment #41)
&gt; &gt; (In reply to youenn fablet from comment #40)
&gt; &gt; &gt; (In reply to Marlon Maxwel from comment #39)
&gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #37)
&gt; &gt; &gt; &gt; &gt; (In reply to Edoardo Cavazza from comment #36)
&gt; &gt; &gt; &gt; &gt; &gt; Still not landed in iOS 12.2. Does someone have informations about the
&gt; &gt; &gt; &gt; &gt; &gt; release version of this patch?
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; This fix is included in iOS 12.1.1 and iOS 12.1.2, and most definitely iOS
&gt; &gt; &gt; &gt; &gt; 12.1.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Could you please file a new bug with the detailed description as to what
&gt; &gt; &gt; &gt; &gt; issue you&apos;re seeing?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Has the problem really been fixed?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; We are currently using iOS 12.3.1 and the problem still happens.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; In Safari it works correctly, but when you&apos;re using PWA it does not work.
&gt; &gt; &gt; &gt; There are behavioral differences between Safari and PWA on iOS.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Our scenario:
&gt; &gt; &gt; &gt; - Open the application in Safari;
&gt; &gt; &gt; &gt; - We installed PWA on iOS;
&gt; &gt; &gt; &gt; - We close the Safari;
&gt; &gt; &gt; &gt; - We release a new version of the application;
&gt; &gt; &gt; &gt; - PWA continues to use old asset cache - precache (apparently the
&gt; &gt; &gt; &gt; serviceWorker flow in PWA is different from normal);
&gt; &gt; &gt; &gt; - PWA is obsolete and does not update to the new assets in any way;
&gt; &gt; &gt; &gt; - We reboot the Iphone and PWA works with the new assets;
&gt; &gt; &gt; 
&gt; &gt; &gt; This is probably a different bug, could you file another bug?
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Open this bug: https://bugs.webkit.org/show_bug.cgi?id=199110
&gt; 
&gt; This is a different issue. The original problem here was that causing the
&gt; PWA installed from the home-screen to never cache anything which prevent it
&gt; from working offline.
&gt; 
&gt; The issue you are describing now is something I discussed on the VueJs and
&gt; Google Workbox github pages. There is a workaround that you can use with
&gt; Google Workbox which is to use the &quot;skipWaiting&quot; option to force the SW to
&gt; restart as soon as it receives an update. You could take a look at how
&gt; workbox handle this option and replicate it in your SW code.


Yes, I understand this problem.

The problem you mentioned that you discussed in the communiques, I also encountered these discussions but don&apos;t work.

The skipWaiting function does not work on iOS equal it works correctly on all. Were you able to make updates work correctly on iOS only with skipWaiting?

We applied the solution using skipWaiting combining with the worker&apos;s controllerchange to update, but it does not work in any way on iOS and so we opened the BUG I mentioned above.

I would be happy to see 1 example of everything working on iOS, but using the implementations of workbox, create-react-app, vue-cli, google... none worked.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351910</attachid>
            <date>2018-10-09 14:07:00 -0700</date>
            <delta_ts>2018-10-09 14:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190269-20181009140659.patch</filename>
            <type>text/plain</type>
            <size>3216</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc5NTRkMWFjYjFjY2I5NTI3
ZDVlNGVhMjU0MTAyZGUzMTM5ZTMzMmYuLjBlZGJjMGI1YWU0Y2QyZjU0MDU1OGMwODg2MDAxOTNj
ZmNjMjQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTAtMDkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29y
a2VyIGNhY2hlIG5vdCBzaGFyZWQgd2hlbiBhZGRlZCB0byBob21lc2NyZWVuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAyNjkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ1MDA5OTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5ldHdvcmtQcm9jZXNzUHJveHkgZG9lcyBub3QgYWx3YXlzIGhhdmUg
YWxsIGl0cyBzdG9yZXMgaW4gaXRzIGhhc2ggbWFwLgorICAgICAgICBNYWtlIHN1cmUgdG8gY2hl
Y2sgZm9yIHRoZSBkZWZhdWx0IHdlYiBwcm9jZXNzIHBvb2wgc3RvcmUgd2hlbiBncmFiYmluZyBj
YWNoZSBzdG9yYWdlIHBhcmFtZXRlcnMgZnJvbSBhIGdpdmVuIHNlc3Npb24gSUQuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0
ZXJzKToKKwogMjAxOC0xMC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEhhdmUgRE9NV2luZG93UHJvcGVydHkgZ2V0IGlzIGZyYW1lIGZyb20gaXRzIGFzc29j
aWF0ZWQgRE9NV2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZTkyMTgzMzI3YWJmODdhYmI2MjA2
NzA3ZTZhZTU4YTY1NmFiNWI0Li5jNmE1ZDFkODhmNTZiMGEwMDBhOWRkNmQ5MWY5MDA0YTcyZjcz
ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyNCwyMCArNjI0LDI4IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKKyAgICBXZWJzaXRlRGF0YVN0b3JlKiBzdG9yZSA9
IG51bGxwdHI7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fd2Vic2l0ZURhdGFTdG9yZXMuZmluZChz
ZXNzaW9uSUQpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3dlYnNpdGVEYXRhU3RvcmVzLmVuZCgp
KSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNzUG9vbC53
ZWJzaXRlRGF0YVN0b3JlKCkpIHsKKyAgICAgICAgICAgIGlmICh3ZWJzaXRlRGF0YVN0b3JlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gc2Vzc2lvbklEKQorICAgICAgICAgICAg
ICAgIHN0b3JlID0gJndlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmICghc3RvcmUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHVuYWJsZSB0byBy
ZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRoZSBnaXZlbiBzZXNzaW9uIElE
ICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICAgICAgYXV0byBx
dW90YSA9IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURhdGFTdG9yZSgpID8gbV9wcm9jZXNzUG9vbC53
ZWJzaXRlRGF0YVN0b3JlKCktPndlYnNpdGVEYXRhU3RvcmUoKS5jYWNoZVN0b3JhZ2VQZXJPcmln
aW5RdW90YSgpIDogV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdp
blF1b3RhOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2FjaGVT
dG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgcXVvdGEsIHsgfSwgeyB9IH0sIDApOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYgc3RvcmUgPSAqaXRlcmF0b3ItPnZhbHVl
OwotICAgIGF1dG8mIGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9IHN0b3JlLmNhY2hlU3RvcmFnZURp
cmVjdG9yeSgpOworICAgIGF1dG8mIGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9IHN0b3JlLT5jYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkoKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY2FjaGVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlmICghY2FjaGVTdG9yYWdlRGly
ZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCBzdG9yZS5jYWNo
ZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSgpLCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIGNhY2hlU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSB9LCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgc3Rv
cmUtPmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCksIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwg
Y2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlIH0sIDApOwogfQogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351912</attachid>
            <date>2018-10-09 14:12:20 -0700</date>
            <delta_ts>2018-10-09 16:48:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190269-20181009141220.patch</filename>
            <type>text/plain</type>
            <size>3651</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc5NTRkMWFjYjFjY2I5NTI3
ZDVlNGVhMjU0MTAyZGUzMTM5ZTMzMmYuLjBlZGJjMGI1YWU0Y2QyZjU0MDU1OGMwODg2MDAxOTNj
ZmNjMjQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTAtMDkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29y
a2VyIGNhY2hlIG5vdCBzaGFyZWQgd2hlbiBhZGRlZCB0byBob21lc2NyZWVuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAyNjkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ1MDA5OTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5ldHdvcmtQcm9jZXNzUHJveHkgZG9lcyBub3QgYWx3YXlzIGhhdmUg
YWxsIGl0cyBzdG9yZXMgaW4gaXRzIGhhc2ggbWFwLgorICAgICAgICBNYWtlIHN1cmUgdG8gY2hl
Y2sgZm9yIHRoZSBkZWZhdWx0IHdlYiBwcm9jZXNzIHBvb2wgc3RvcmUgd2hlbiBncmFiYmluZyBj
YWNoZSBzdG9yYWdlIHBhcmFtZXRlcnMgZnJvbSBhIGdpdmVuIHNlc3Npb24gSUQuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0
ZXJzKToKKwogMjAxOC0xMC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEhhdmUgRE9NV2luZG93UHJvcGVydHkgZ2V0IGlzIGZyYW1lIGZyb20gaXRzIGFzc29j
aWF0ZWQgRE9NV2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZTkyMTgzMzI3YWJmODdhYmI2MjA2
NzA3ZTZhZTU4YTY1NmFiNWI0Li4yMjZmNDI3ODFjNDI3OGMwMGNhZWYxN2IxODhmNDAzYWI3ODM1
NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyNCwyMCArNjI0LDI5IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKKyAgICBXZWJzaXRlRGF0YVN0b3JlKiBzdG9yZSA9
IG51bGxwdHI7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fd2Vic2l0ZURhdGFTdG9yZXMuZmluZChz
ZXNzaW9uSUQpOwotICAgIGlmIChpdGVyYXRvciA9PSBtX3dlYnNpdGVEYXRhU3RvcmVzLmVuZCgp
KSB7Ci0gICAgICAgIGF1dG8gcXVvdGEgPSBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUo
KSA/IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCku
Y2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEoKSA6IFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRD
YWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldENhY2hlU3RvcmFnZVBhcmFtZXRlcnMgeyBzZXNzaW9uSUQsIHF1b3RhLCB7
IH0sIHsgfSB9LCAwKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChpdGVyYXRvciAhPSBtX3dl
YnNpdGVEYXRhU3RvcmVzLmVuZCgpKQorICAgICAgICBzdG9yZSA9IGl0ZXJhdG9yLT52YWx1ZS5n
ZXQoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGF1dG8qIHdlYnNpdGVEYXRhU3RvcmUgPSBt
X3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKSkgeworICAgICAgICAgICAgaWYgKHdlYnNp
dGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQp
CisgICAgICAgICAgICAgICAgc3RvcmUgPSAmd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFT
dG9yZSgpOworICAgICAgICB9CisgICAgICAgIGlmICghc3RvcmUpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKENhY2hlU3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBp
cyB1bmFibGUgdG8gcmV0cmlldmUgQ2FjaGVTdG9yYWdlIHBhcmFtZXRlcnMgZnJvbSB0aGUgZ2l2
ZW4gc2Vzc2lvbiBJRCAlIiBQUkl1NjQsIHRoaXMsIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7Cisg
ICAgICAgICAgICBhdXRvIHF1b3RhID0gbV9wcm9jZXNzUG9vbC53ZWJzaXRlRGF0YVN0b3JlKCkg
PyBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpLmNh
Y2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCkgOiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0Q2Fj
aGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgcXVvdGEs
IHsgfSwgeyB9IH0sIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQog
Ci0gICAgYXV0byYgc3RvcmUgPSAqaXRlcmF0b3ItPnZhbHVlOwotICAgIGF1dG8mIGNhY2hlU3Rv
cmFnZURpcmVjdG9yeSA9IHN0b3JlLmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOworICAgIGF1dG8m
IGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9IHN0b3JlLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsK
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOwogICAgIGlmICghY2FjaGVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKIAotICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3Jh
Z2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCBzdG9yZS5jYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90
YSgpLCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSB9LCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2Fj
aGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgc3RvcmUtPmNhY2hlU3RvcmFnZVBlck9y
aWdpblF1b3RhKCksIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlIH0sIDApOwogfQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351926</attachid>
            <date>2018-10-09 16:48:49 -0700</date>
            <delta_ts>2018-10-09 20:33:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190269-20181009164848.patch</filename>
            <type>text/plain</type>
            <size>13177</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI2NzljMzdkMTg3MDJh
MGMwNmQ3NGVjOWM3MjVlODE1YTdhOGYyNS4uN2RiY2E4NTA4OWU2ODdjNmJhNzBlNWI5Zjk2NGQz
NTRiZGI3M2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEwLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNl
IHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgQ2FjaGUgU3RvcmFnZSBBUEkgd2hlbiBTZXJ2aWNl
IFdvcmtlciBBUEkgaXMgZXhwb3NlZC4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGZvciBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGw6CisKIDIw
MTgtMTAtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXlt
ZW50IFJlcXVlc3RdIFJlcXVlc3RzIHNob3VsZCBiZSBhYm9ydGVkIGFmdGVyIGRldGFpbHMgc2V0
dGxlIHdoZW4gdGhlIHVzZXIgY2FuY2VscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3OTU0ZDFhY2IxY2NiOTUyN2Q1
ZTRlYTI1NDEwMmRlMzEzOWUzMzJmLi4wMTU1MzVhM2ViNGM4NTg3Y2EwN2Q2ODhjZTAyNDMzMGNk
MTQ2YTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTEwLTA5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNlIHdvcmtl
ciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5IGRvZXMgbm90IGFsd2F5cyBoYXZlIGFs
bCBpdHMgc3RvcmVzIGluIGl0cyBoYXNoIG1hcC4KKyAgICAgICAgTWFrZSBzdXJlIHRvIGNoZWNr
IGZvciB0aGUgZGVmYXVsdCB3ZWIgcHJvY2VzcyBwb29sIHN0b3JlIHdoZW4gZ3JhYmJpbmcgY2Fj
aGUgc3RvcmFnZSBwYXJhbWV0ZXJzIGZyb20gYSBnaXZlbiBzZXNzaW9uIElELgorCisgICAgICAg
IEFkZCBhIHdheSB0byByZW1vdmUgdGhlIGRlZmF1bHQgd2Vic2l0ZSBkYXRhIGZvciB0ZXN0aW5n
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gdGhlIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChBUEk6Oldl
YnNpdGVEYXRhU3RvcmU6OmRlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5nKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKCtbV0tXZWJz
aXRlRGF0YVN0b3JlIF9kZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZ10pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXRyaWV2ZUNhY2hlU3RvcmFnZVBhcmFt
ZXRlcnMpOgorCiAyMDE4LTEwLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgSGF2ZSBET01XaW5kb3dQcm9wZXJ0eSBnZXQgaXMgZnJhbWUgZnJvbSBpdHMgYXNz
b2NpYXRlZCBET01XaW5kb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NV2luZG93Q2FjaGVzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
V2luZG93Q2FjaGVzLmlkbAppbmRleCAxNzk3NmU2NjU3NTgxYzUyMWM2MGE0Y2Y4MDE2MmRiMzQy
YjIzZDRmLi4xZWM5YjY0YTkyZmYzNDRjNjg3OGZjZDk2MjllODNiMmQ3YjNmMzE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRsCkBAIC0y
Niw1ICsyNiw1IEBACiBbCiAgICAgRW5hYmxlZEF0UnVudGltZT1DYWNoZUFQSSwKIF0gcGFydGlh
bCBpbnRlcmZhY2UgRE9NV2luZG93IHsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgTWF5VGhyb3dFeGNlcHRpb24sIFNlY3VyZUNvbnRleHQsIFNhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01DYWNoZVN0b3JhZ2UgY2FjaGVzOworICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbiwgU2VjdXJlQ29udGV4dCwgQ29u
dGV4dEhhc1NlcnZpY2VXb3JrZXJTY2hlbWUsIFNhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01DYWNoZVN0b3JhZ2UgY2FjaGVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBhM2VjMjVkMGRmNmI4Njdk
YzkwY2UxODRhODQ2YjA3ZTJhOTllMjMxLi5kYWJkZjdjNjY1Y2NkMDE0MWI0M2QyZTQwYjk3Yjhl
ZWJmN2I3MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00Myw2ICs0MywxNCBAQCBSZWY8V2Vic2l0ZURhdGFTdG9y
ZT4gV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpCiAgICAgcmV0dXJuICpnbG9i
YWxEZWZhdWx0RGF0YVN0b3JlOwogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRlbGV0ZURl
ZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5nKCkKK3sKKyAgICBpZiAoIWdsb2JhbERlZmF1bHREYXRh
U3RvcmUpCisgICAgICAgIHJldHVybjsKKyAgICBhZG9wdFJlZigqZ2xvYmFsRGVmYXVsdERhdGFT
dG9yZSk7CisgICAgZ2xvYmFsRGVmYXVsdERhdGFTdG9yZSA9IG51bGxwdHI7Cit9CisKIGJvb2wg
V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUV4aXN0cygpCiB7CiAgICAgcmV0dXJu
IGdsb2JhbERlZmF1bHREYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA2NmVmYTU4NzYwYTdmZTdlMWZjMjY3ZGNj
NDUyMjczMjlmZGQyODNhLi5jMjM4ZGY4YzdhOTIzZWMwZGE0OGRiZTNmNmM0M2NkYjAxYTI5OTFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0
b3JlLmgKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSBmaW5hbCA6IHB1
YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6V2Vic2l0ZURhdGFTdG9yZT4KIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGRlZmF1bHREYXRhU3RvcmUoKTsKICAg
ICBzdGF0aWMgYm9vbCBkZWZhdWx0RGF0YVN0b3JlRXhpc3RzKCk7CisgICAgc3RhdGljIHZvaWQg
ZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmcoKTsKIAogICAgIHN0YXRpYyBSZWY8V2Vi
c2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpOwogICAgIHN0YXRp
YyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6Q29uZmlndXJhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCBjNjQ5ZmY2Y2JjZWE1YTFk
YTQ1ZjM2MGJlNTM5YzdkYmM0OTI4MzI2Li5lNDI2YWMzNTZiM2M4NjUwMTZjM2MzOTIxY2Y0ZTAw
MGQzZDljNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTE4NCw2ICsxODQsMTEgQEAgKyAoQk9PTClf
ZGVmYXVsdERhdGFTdG9yZUV4aXN0cwogICAgIHJldHVybiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6
OmRlZmF1bHREYXRhU3RvcmVFeGlzdHMoKTsKIH0KIAorKyAodm9pZClfZGVsZXRlRGVmYXVsdERh
dGFTdG9yZUZvclRlc3RpbmcKK3sKKyAgICByZXR1cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpk
ZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZygpOworfQorCiAtIChpbnN0YW5jZXR5cGUp
X2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2ZTJkMzk3ZjlmNTFiY2RhN2I0ZWQ4MWI3MTc0MGM4
NjYyNDBhM2Y2Li43NGE4YTAyZjJmMWQ5ZWU5NWM5N2FmOWE5NmUzYzYwMTMxOTIwMTYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTQwLDYgKzQwLDcgQEAgdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKIAogKyAo
TlNTZXQ8TlNTdHJpbmcgKj4gKilfYWxsV2Vic2l0ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZhdGU7
CiArIChCT09MKV9kZWZhdWx0RGF0YVN0b3JlRXhpc3RzOworKyAodm9pZClfZGVsZXRlRGVmYXVs
dERhdGFTdG9yZUZvclRlc3Rpbmc7CiAKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1
cmF0aW9uOihfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCAwZTkyMTgzMzI3YWJmODdhYmI2MjA2NzA3ZTZhZTU4YTY1NmFiNWI0Li44ODFlOTgw
ZDI0ZWFjYmVlMTllYWVhOWRjOGZkODI1MDAxMmNlMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYy
NCwyMCArNjI0LDMxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVtb3ZlU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0
cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
KyAgICBXZWJzaXRlRGF0YVN0b3JlKiBzdG9yZSA9IG51bGxwdHI7CiAgICAgYXV0byBpdGVyYXRv
ciA9IG1fd2Vic2l0ZURhdGFTdG9yZXMuZmluZChzZXNzaW9uSUQpOwotICAgIGlmIChpdGVyYXRv
ciA9PSBtX3dlYnNpdGVEYXRhU3RvcmVzLmVuZCgpKSB7Ci0gICAgICAgIGF1dG8gcXVvdGEgPSBt
X3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKSA/IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURh
dGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkuY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEo
KSA6IFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YTsK
LSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENhY2hlU3RvcmFnZVBh
cmFtZXRlcnMgeyBzZXNzaW9uSUQsIHF1b3RhLCB7IH0sIHsgfSB9LCAwKTsKLSAgICAgICAgcmV0
dXJuOworICAgIGlmIChpdGVyYXRvciAhPSBtX3dlYnNpdGVEYXRhU3RvcmVzLmVuZCgpKQorICAg
ICAgICBzdG9yZSA9IGl0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHNlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsK
KyAgICAgICAgYXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURh
dGFTdG9yZSgpOworICAgICAgICBpZiAoIXdlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgICAgICB3
ZWJzaXRlRGF0YVN0b3JlID0gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3Jl
KCkucHRyKCk7CisKKyAgICAgICAgaWYgKHdlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3Rv
cmUoKS5zZXNzaW9uSUQoKSAhPSBzZXNzaW9uSUQpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKENhY2hlU3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB1bmFibGUg
dG8gcmV0cmlldmUgQ2FjaGVTdG9yYWdlIHBhcmFtZXRlcnMgZnJvbSB0aGUgZ2l2ZW4gc2Vzc2lv
biBJRCAlIiBQUkl1NjQsIHRoaXMsIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CisgICAgICAgICAg
ICBhdXRvIHF1b3RhID0gbV9wcm9jZXNzUG9vbC53ZWJzaXRlRGF0YVN0b3JlKCkgPyBtX3Byb2Nl
c3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpLmNhY2hlU3RvcmFn
ZVBlck9yaWdpblF1b3RhKCkgOiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0Q2FjaGVTdG9yYWdl
UGVyT3JpZ2luUXVvdGE7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgcXVvdGEsIHsgfSwgeyB9
IH0sIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN0b3JlID0g
JndlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKTsKICAgICB9CiAKLSAgICBhdXRv
JiBzdG9yZSA9ICppdGVyYXRvci0+dmFsdWU7Ci0gICAgYXV0byYgY2FjaGVTdG9yYWdlRGlyZWN0
b3J5ID0gc3RvcmUuY2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgYXV0byYgY2FjaGVTdG9y
YWdlRGlyZWN0b3J5ID0gc3RvcmUtPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7
CiAgICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY2FjaGVTdG9y
YWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCi0g
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENhY2hlU3RvcmFnZVBhcmFtZXRl
cnMgeyBzZXNzaW9uSUQsIHN0b3JlLmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCksIGNhY2hl
U3RvcmFnZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlIH0s
IDApOworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQ
YXJhbWV0ZXJzIHsgc2Vzc2lvbklELCBzdG9yZS0+Y2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEo
KSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUgfSwgMCk7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmZGI0NTI0Mjdj
NzA1YTc0MDcwOGRjODE3YWRiNjEzYTE1ZjMyMzEuLjcxMjA4ZDFhNjFhMjMyZGQ4ZTBlMDZjZjU1
YzIxNGY1Y2JlYzVjYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0xMC0wOSAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TIDEyIC0gU2VydmljZSB3b3JrZXIgY2FjaGUg
bm90IHNoYXJlZCB3aGVuIGFkZGVkIHRvIGhvbWVzY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI2OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDUwMDk5NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbToKKyAgICAgICAgQWRkIHRlc3QgdG8gZW5zdXJlIHRoYXQgQ2FjaGVTdG9yYWdlIHVzZSB0
aGUgZGVmYXVsdCB3ZWJzaXRlIGRhdGEgc3RvcmUgcGFyYW1ldGVycy4KKwogMjAxOC0xMC0wOCAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFRvb2xzIHBhcnQgb2Yg
W1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29k
ZSAxMApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBhNThkMjAzY2RmOGM0ZDlmODdhZDAzOTA2
YTI2MjQxZmUwNGI5MjVmLi40Y2I4ZmE5N2E2NmM4YTdmZDg0NTllZWQwYTQ1ODQyYjJiODFmYTgz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMTk0LDYgKzE5NCwzMiBAQCAtICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3Bv
bnNlOihXS05hdmlnYQogfQogQGVuZAogCitzdGF0aWMgY29uc3QgY2hhciogbWFpbkNhY2hlU3Rv
cmFnZUJ5dGVzID0gUiJTV1JFU09VUkNFKAorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9nKG1zZykK
K3sKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVzc2FnZShtc2cp
OworfQorCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQoreworICAgIGNvbnN0IGtleXMgPSBhd2Fp
dCB3aW5kb3cuY2FjaGVzLmtleXMoKTsKKyAgICBpZiAoIWtleXMubGVuZ3RoKSB7CisgICAgICAg
IGNvbnN0IGNhY2hlID0gYXdhaXQgd2luZG93LmNhY2hlcy5vcGVuKCJteSBjYWNoZSIpOworICAg
ICAgICBsb2coIk5vIGNhY2hlIHN0b3JhZ2UgZGF0YSIpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMSkgeworICAgICAgICBsb2coIlVuZXhwZWN0ZWQg
Y2FjaGUgbnVtYmVyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbG9nKCJTb21lIGNh
Y2hlIHN0b3JhZ2UgZGF0YTogIiArIGtleXNbMF0pOworfQorZG9UZXN0KCk7CisKKzwvc2NyaXB0
PgorKVNXUkVTT1VSQ0UiOwogCiBzdGF0aWMgY29uc3QgY2hhciogbWFpbkJ5dGVzID0gUiJTV1JF
U09VUkNFKAogPHNjcmlwdD4KQEAgLTU0MSw2ICs1NjcsNjMgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgUmVzdG9yZUZyb21EaXNrKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorVEVTVChTZXJ2aWNl
V29ya2VycywgQ2FjaGVTdG9yYWdlUmVzdG9yZUZyb21EaXNrKQoreworICAgIEFTU0VSVChtYWlu
Q2FjaGVTdG9yYWdlQnl0ZXMpOworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0
ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICAvLyBTdGFydCB3aXRoIGEgY2xlYW4g
c2xhdGUgZGF0YSBzdG9yZQorICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3Rv
cmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFU
eXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxl
cjpeKCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgW1dLV2Vic2l0
ZURhdGFTdG9yZSBfZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmddOworCisgICAgYXV0
byBoYW5kbGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRs
ZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBA
InRleHQvaHRtbCIsIG1haW5DYWNoZVN0b3JhZ2VCeXRlcyB9KTsKKworICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyRm9y
UmVzdG9yZUZyb21EaXNrVGVzdCBhbGxvY10gaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6QCJObyBj
YWNoZSBzdG9yYWdlIGRhdGEiXSk7CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRD
b250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBu
YW1lOkAic3ciXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRs
ZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcu
Z2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNl
V29ya2Vyc0NhbkhhbmRsZTpAInN3Il07CisKKyAgICAvLyBUcmlnZ2VyIGNyZWF0aW9uIG9mIG5l
dHdvcmsgcHJvY2Vzcy4KKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQ
b29sIF9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzXTsKKworICAgIGF1dG8gKnJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9o
b3N0L21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOwor
CisgICAgd2ViVmlldyA9IG51bGxwdHI7CisgICAgY29uZmlndXJhdGlvbiA9IG51bGxwdHI7Cisg
ICAgbWVzc2FnZUhhbmRsZXIgPSBudWxscHRyOworCisgICAgY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbU1dNZXNzYWdlSGFuZGxlckZvclJlc3RvcmVGcm9tRGlza1Rlc3Qg
YWxsb2NdIGluaXRXaXRoRXhwZWN0ZWRNZXNzYWdlOkAiU29tZSBjYWNoZSBzdG9yYWdlIGRhdGE6
IG15IGNhY2hlIl0pOworCisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInN3
Il07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgp
IGZvclVSTFNjaGVtZTpAIlNXIl07CisKKyAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFu
ZGxlOkAic3ciXTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCisKIFRFU1QoU2VydmljZVdvcmtlcnMs
IEZldGNoQWZ0ZXJSZXN0b3JlRnJvbURpc2spCiB7CiAgICAgQVNTRVJUKG1haW5Gb3JGZXRjaFRl
c3RCeXRlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351939</attachid>
            <date>2018-10-09 20:33:05 -0700</date>
            <delta_ts>2018-10-10 07:38:39 -0700</delta_ts>
            <desc>Fix Win</desc>
            <filename>bug-190269-20181009203303.patch</filename>
            <type>text/plain</type>
            <size>13276</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY3MTkxMDU5N2E2NDM5
NTIxNTY3YjYyNzBjYzdhYmQ2YzRkNzU0Yi4uNGMxMjcwMDc2NGJlZDM2OGQ2NzhlZmIyMGEwZjY5
NDg0NDMzNDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEwLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNl
IHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgQ2FjaGUgU3RvcmFnZSBBUEkgd2hlbiBTZXJ2aWNl
IFdvcmtlciBBUEkgaXMgZXhwb3NlZC4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGZvciBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGw6CisKIDIw
MTgtMTAtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IHNob3cgcmVkaXJlY3QgcmVxdWVzdHMgaW4gTmV0d29yayBhbmQgVGltZWxp
bmVzIHRhYnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNzc2MTc3M2QwYmJmMWRhYTMzYjYxZTViNDM3MWYzNzM4MTc0
YTQ1My4uNzJmYWY0MGM5ODZmNTMxMGM4MjhjZmEwNGEyMWNhYjE1YTgyNzFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgSU9TIDEyIC0gU2VydmljZSB3b3JrZXIgY2FjaGUgbm90IHNoYXJl
ZCB3aGVuIGFkZGVkIHRvIGhvbWVzY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MDI2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUwMDk5
NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0
d29ya1Byb2Nlc3NQcm94eSBkb2VzIG5vdCBhbHdheXMgaGF2ZSBhbGwgaXRzIHN0b3JlcyBpbiBp
dHMgaGFzaCBtYXAuCisgICAgICAgIE1ha2Ugc3VyZSB0byBjaGVjayBmb3IgdGhlIGRlZmF1bHQg
d2ViIHByb2Nlc3MgcG9vbCBzdG9yZSB3aGVuIGdyYWJiaW5nIGNhY2hlIHN0b3JhZ2UgcGFyYW1l
dGVycyBmcm9tIGEgZ2l2ZW4gc2Vzc2lvbiBJRC4KKworICAgICAgICBBZGQgYSB3YXkgdG8gcmVt
b3ZlIHRoZSBkZWZhdWx0IHdlYnNpdGUgZGF0YSBmb3IgdGVzdGluZy4KKyAgICAgICAgVGhpcyBp
cyB1c2VkIGluIHRoZSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpk
ZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElXZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgrW1dLV2Vic2l0ZURhdGFTdG9yZSBfZGVs
ZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKToKKwogMjAxOC0x
MC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJU
SU9OIEZBSUxFRDogbV9jYWNoZXNMb2Nrcy5jb250YWlucyhzZXNzaW9uSUQpIGluIFdlYktpdDo6
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6ZGVyZWZlcmVuY2UoUEFMOjpTZXNzaW9uSUQs
IHVuc2lnbmVkIGxvbmcgbG9uZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NV2luZG93Q2FjaGVzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
RE9NV2luZG93Q2FjaGVzLmlkbAppbmRleCAxNzk3NmU2NjU3NTgxYzUyMWM2MGE0Y2Y4MDE2MmRi
MzQyYjIzZDRmLi5mN2RmYmFlNTYyMzdhYTM1NzIwZmVjNmNmOGQ5ODFiYjRmYzliNjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRsCkBA
IC0yNCw3ICsyNCw4IEBACiAgKi8KIAogWworICAgIENvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VS
LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9Q2FjaGVBUEksCiBdIHBhcnRpYWwgaW50ZXJmYWNlIERP
TVdpbmRvdyB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93
RXhjZXB0aW9uLCBTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NQ2FjaGVTdG9yYWdlIGNhY2hlczsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgTWF5VGhyb3dFeGNlcHRpb24sIFNlY3VyZUNvbnRleHQsIENvbnRleHRIYXNTZXJ2aWNl
V29ya2VyU2NoZW1lLCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NQ2FjaGVTdG9y
YWdlIGNhY2hlczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
V2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYTNlYzI1ZDBkZjZiODY3ZGM5MGNlMTg0YTg0NmIw
N2UyYTk5ZTIzMS4uZGFiZGY3YzY2NWNjZDAxNDFiNDNkMmU0MGI5N2I4ZWViZjdiNzFkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtNDMsNiArNDMsMTQgQEAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRh
U3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKQogICAgIHJldHVybiAqZ2xvYmFsRGVmYXVsdERhdGFT
dG9yZTsKIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpkZWxldGVEZWZhdWx0RGF0YVN0b3Jl
Rm9yVGVzdGluZygpCit7CisgICAgaWYgKCFnbG9iYWxEZWZhdWx0RGF0YVN0b3JlKQorICAgICAg
ICByZXR1cm47CisgICAgYWRvcHRSZWYoKmdsb2JhbERlZmF1bHREYXRhU3RvcmUpOworICAgIGds
b2JhbERlZmF1bHREYXRhU3RvcmUgPSBudWxscHRyOworfQorCiBib29sIFdlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmVFeGlzdHMoKQogewogICAgIHJldHVybiBnbG9iYWxEZWZhdWx0
RGF0YVN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRl
RGF0YVN0b3JlLmgKaW5kZXggNjZlZmE1ODc2MGE3ZmU3ZTFmYzI2N2RjYzQ1MjI3MzI5ZmRkMjgz
YS4uYzIzOGRmOGM3YTkyM2VjMGRhNDhkYmUzZjZjNDNjZGIwMWEyOTkxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0zNiw2
ICszNiw3IEBAIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmUgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1w
bDxPYmplY3Q6OlR5cGU6OldlYnNpdGVEYXRhU3RvcmU+CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxXZWJzaXRlRGF0YVN0b3JlPiBkZWZhdWx0RGF0YVN0b3JlKCk7CiAgICAgc3RhdGljIGJvb2wg
ZGVmYXVsdERhdGFTdG9yZUV4aXN0cygpOworICAgIHN0YXRpYyB2b2lkIGRlbGV0ZURlZmF1bHRE
YXRhU3RvcmVGb3JUZXN0aW5nKCk7CiAKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+
IGNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKTsKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVE
YXRhU3RvcmU+IGNyZWF0ZUxlZ2FjeShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3Vy
YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggYzY0OWZmNmNiY2VhNWExZGE0NWYzNjBiZTUzOWM3
ZGJjNDkyODMyNi4uZTQyNmFjMzU2YjNjODY1MDE2YzNjMzkyMWNmNGUwMDBkM2Q5YzY1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tCkBAIC0xODQsNiArMTg0LDExIEBAICsgKEJPT0wpX2RlZmF1bHREYXRhU3Rv
cmVFeGlzdHMKICAgICByZXR1cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0
b3JlRXhpc3RzKCk7CiB9CiAKKysgKHZvaWQpX2RlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0
aW5nCit7CisgICAgcmV0dXJuIEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVsZXRlRGVmYXVsdERh
dGFTdG9yZUZvclRlc3RpbmcoKTsKK30KKwogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENvbmZp
Z3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlv
bgogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKaW5kZXggNmUyZDM5N2Y5ZjUxYmNkYTdiNGVkODFiNzE3NDBjODY2MjQwYTNmNi4uNzRh
OGEwMmYyZjFkOWVlOTVjOTdhZjlhOTZlM2M2MDEzMTkyMDE2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
UHJpdmF0ZS5oCkBAIC00MCw2ICs0MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2Vy
LCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAKICsgKE5TU2V0PE5TU3RyaW5n
ICo+ICopX2FsbFdlYnNpdGVEYXRhVHlwZXNJbmNsdWRpbmdQcml2YXRlOwogKyAoQk9PTClfZGVm
YXVsdERhdGFTdG9yZUV4aXN0czsKKysgKHZvaWQpX2RlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JU
ZXN0aW5nOwogCiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMGU5MjE4
MzMyN2FiZjg3YWJiNjIwNjcwN2U2YWU1OGE2NTZhYjViNC4uODgxZTk4MGQyNGVhY2JlZTE5ZWFl
YTlkYzhmZDgyNTAwMTJjZTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02MjQsMjAgKzYyNCwzMSBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVTdG9y
YWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CisgICAgV2Vic2l0ZURh
dGFTdG9yZSogc3RvcmUgPSBudWxscHRyOwogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3dlYnNpdGVE
YXRhU3RvcmVzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV93ZWJzaXRl
RGF0YVN0b3Jlcy5lbmQoKSkgewotICAgICAgICBhdXRvIHF1b3RhID0gbV9wcm9jZXNzUG9vbC53
ZWJzaXRlRGF0YVN0b3JlKCkgPyBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vi
c2l0ZURhdGFTdG9yZSgpLmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCkgOiBXZWJzaXRlRGF0
YVN0b3JlOjpkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7Ci0gICAgICAgIHNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vz
c2lvbklELCBxdW90YSwgeyB9LCB7IH0gfSwgMCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAo
aXRlcmF0b3IgIT0gbV93ZWJzaXRlRGF0YVN0b3Jlcy5lbmQoKSkKKyAgICAgICAgc3RvcmUgPSBp
dGVyYXRvci0+dmFsdWUuZ2V0KCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChzZXNzaW9u
SUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgICAgIGF1dG8q
IHdlYnNpdGVEYXRhU3RvcmUgPSBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKTsKKyAg
ICAgICAgaWYgKCF3ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9y
ZSA9IEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLnB0cigpOworCisg
ICAgICAgIGlmICh3ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklE
KCkgIT0gc2Vzc2lvbklEKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0
b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdW5hYmxlIHRvIHJldHJpZXZlIENh
Y2hlU3RvcmFnZSBwYXJhbWV0ZXJzIGZyb20gdGhlIGdpdmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0
LCB0aGlzLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOworICAgICAgICAgICAgYXV0byBxdW90YSA9
IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURhdGFTdG9yZSgpID8gbV9wcm9jZXNzUG9vbC53ZWJzaXRl
RGF0YVN0b3JlKCktPndlYnNpdGVEYXRhU3RvcmUoKS5jYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90
YSgpIDogV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdpblF1b3Rh
OworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENhY2hlU3Rv
cmFnZVBhcmFtZXRlcnMgeyBzZXNzaW9uSUQsIHF1b3RhLCB7IH0sIHsgfSB9LCAwKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdG9yZSA9ICZ3ZWJzaXRlRGF0YVN0
b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCk7CiAgICAgfQogCi0gICAgYXV0byYgc3RvcmUgPSAqaXRl
cmF0b3ItPnZhbHVlOwotICAgIGF1dG8mIGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9IHN0b3JlLmNh
Y2hlU3RvcmFnZURpcmVjdG9yeSgpOworICAgIGF1dG8mIGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9
IHN0b3JlLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlmICghY2Fj
aGVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNhY2hlU3RvcmFnZURpcmVjdG9yeSwg
Y2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIHNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklE
LCBzdG9yZS5jYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSgpLCBjYWNoZVN0b3JhZ2VEaXJlY3Rv
cnksIGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSB9LCAwKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyB7IHNl
c3Npb25JRCwgc3RvcmUtPmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCksIGNhY2hlU3RvcmFn
ZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlIH0sIDApOwog
fQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjczODMxYjMyMTNmMGIzNThhMWNlNzM5
ZGFmZjFkMDBmZGY3ZDIyLi5lMWUxNzAxZDRhZGVhNTI4MmNlM2Q1YjFlNzgyNzc2ODJjZDFjMzdl
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTgtMTAtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29ya2VyIGNhY2hlIG5vdCBzaGFyZWQgd2hl
biBhZGRlZCB0byBob21lc2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAyNjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MDA5OTYxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAg
IEFkZCB0ZXN0IHRvIGVuc3VyZSB0aGF0IENhY2hlU3RvcmFnZSB1c2UgdGhlIGRlZmF1bHQgd2Vi
c2l0ZSBkYXRhIHN0b3JlIHBhcmFtZXRlcnMuCisKIDIwMTgtMTAtMDkgIEd1aWxsYXVtZSBFbW9u
dCAgPGd1aWplbW9udEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFsbG93IHJ1bi1qYXZhc2NyaXB0
Y29yZS10ZXN0cyB0byBkaXN0cmlidXRlIHRlc3RzIGJldHdlZW4gZGV2aWNlcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQppbmRleCBhNThkMjAzY2RmOGM0ZDlmODdhZDAzOTA2YTI2MjQxZmUwNGI5MjVm
Li40Y2I4ZmE5N2E2NmM4YTdmZDg0NTllZWQwYTQ1ODQyYjJiODFmYTgzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQpAQCAtMTk0LDYgKzE5NCwzMiBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihXS05hdmlnYQog
fQogQGVuZAogCitzdGF0aWMgY29uc3QgY2hhciogbWFpbkNhY2hlU3RvcmFnZUJ5dGVzID0gUiJT
V1JFU09VUkNFKAorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVzc2FnZShtc2cpOworfQorCithc3luYyBm
dW5jdGlvbiBkb1Rlc3QoKQoreworICAgIGNvbnN0IGtleXMgPSBhd2FpdCB3aW5kb3cuY2FjaGVz
LmtleXMoKTsKKyAgICBpZiAoIWtleXMubGVuZ3RoKSB7CisgICAgICAgIGNvbnN0IGNhY2hlID0g
YXdhaXQgd2luZG93LmNhY2hlcy5vcGVuKCJteSBjYWNoZSIpOworICAgICAgICBsb2coIk5vIGNh
Y2hlIHN0b3JhZ2UgZGF0YSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChrZXlz
Lmxlbmd0aCAhPT0gMSkgeworICAgICAgICBsb2coIlVuZXhwZWN0ZWQgY2FjaGUgbnVtYmVyIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbG9nKCJTb21lIGNhY2hlIHN0b3JhZ2UgZGF0
YTogIiArIGtleXNbMF0pOworfQorZG9UZXN0KCk7CisKKzwvc2NyaXB0PgorKVNXUkVTT1VSQ0Ui
OwogCiBzdGF0aWMgY29uc3QgY2hhciogbWFpbkJ5dGVzID0gUiJTV1JFU09VUkNFKAogPHNjcmlw
dD4KQEAgLTU0MSw2ICs1NjcsNjMgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgUmVzdG9yZUZyb21E
aXNrKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorVEVTVChTZXJ2aWNlV29ya2VycywgQ2FjaGVT
dG9yYWdlUmVzdG9yZUZyb21EaXNrKQoreworICAgIEFTU0VSVChtYWluQ2FjaGVTdG9yYWdlQnl0
ZXMpOworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9y
QWxsT3JpZ2luc107CisKKyAgICAvLyBTdGFydCB3aXRoIGEgY2xlYW4gc2xhdGUgZGF0YSBzdG9y
ZQorICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFP
ZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRT
aW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfZGVs
ZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmddOworCisgICAgYXV0byBoYW5kbGVyID0gYWRv
cHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRsZXItPnJlc291cmNlcy5z
ZXQoInN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIG1h
aW5DYWNoZVN0b3JhZ2VCeXRlcyB9KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyRm9yUmVzdG9yZUZyb21EaXNr
VGVzdCBhbGxvY10gaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6QCJObyBjYWNoZSBzdG9yYWdlIGRh
dGEiXSk7CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKyAg
ICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJM
U2NoZW1lOkAiU1ciXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJh
dGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRs
ZTpAInN3Il07CisKKyAgICAvLyBUcmlnZ2VyIGNyZWF0aW9uIG9mIG5ldHdvcmsgcHJvY2Vzcy4K
KyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9zeW5jTmV0d29y
a1Byb2Nlc3NDb29raWVzXTsKKworICAgIGF1dG8gKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJd
XTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgd2ViVmlldyA9
IG51bGxwdHI7CisgICAgY29uZmlndXJhdGlvbiA9IG51bGxwdHI7CisgICAgbWVzc2FnZUhhbmRs
ZXIgPSBudWxscHRyOworCisgICAgY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbU1dNZXNzYWdlSGFuZGxlckZvclJlc3RvcmVGcm9tRGlza1Rlc3QgYWxsb2NdIGluaXRXaXRo
RXhwZWN0ZWRNZXNzYWdlOkAiU29tZSBjYWNoZSBzdG9yYWdlIGRhdGE6IG15IGNhY2hlIl0pOwor
CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisgICAgW2NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
IlNXIl07CisKKyAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQ
b29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlOkAic3ciXTsKKwor
ICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
ZG9uZSA9IGZhbHNlOworfQorCisKIFRFU1QoU2VydmljZVdvcmtlcnMsIEZldGNoQWZ0ZXJSZXN0
b3JlRnJvbURpc2spCiB7CiAgICAgQVNTRVJUKG1haW5Gb3JGZXRjaFRlc3RCeXRlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351959</attachid>
            <date>2018-10-10 07:38:41 -0700</date>
            <delta_ts>2018-10-11 09:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190269-20181010073841.patch</filename>
            <type>text/plain</type>
            <size>15014</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY3MTkxMDU5N2E2NDM5
NTIxNTY3YjYyNzBjYzdhYmQ2YzRkNzU0Yi4uMWIzYTVjNjM2YWJlODMwMGJiNzM3YzFiMjgwOTdj
NTJlNjYxZTg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNl
IHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgQ2FjaGUgU3RvcmFnZSBBUEkgd2hlbiBTZXJ2aWNl
IFdvcmtlciBBUEkgaXMgZXhwb3NlZC4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGZvciBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOiBNYWtlIGhhc1Nl
cnZpY2VXb3JrZXJTY2hlbWUKKyAgICAgICAgYXZhaWxhYmxlIG91dHNpZGUgU0VSVklDRV9XT1JL
RVIgY29tcGlsYXRpb24gZmxhZyBzaW5jZSB1c2VkIGJ5IERPTVdpbmRvd0NhY2hlcy4KKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6IERpdHRvLgorICAgICAgICAqIE1v
ZHVsZXMvY2FjaGUvRE9NV2luZG93Q2FjaGVzLmlkbDoKKwogMjAxOC0xMC0wOSAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyBy
ZWRpcmVjdCByZXF1ZXN0cyBpbiBOZXR3b3JrIGFuZCBUaW1lbGluZXMgdGFicwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA3NzYxNzczZDBiYmYxZGFhMzNiNjFlNWI0MzcxZjM3MzgxNzRhNDUzLi43MmZhZjQwYzk4NmY1
MzEwYzgyOGNmYTA0YTIxY2FiMTVhODI3MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisy
MDE4LTEwLTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
T1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9t
ZXNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwMjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5IGRv
ZXMgbm90IGFsd2F5cyBoYXZlIGFsbCBpdHMgc3RvcmVzIGluIGl0cyBoYXNoIG1hcC4KKyAgICAg
ICAgTWFrZSBzdXJlIHRvIGNoZWNrIGZvciB0aGUgZGVmYXVsdCB3ZWIgcHJvY2VzcyBwb29sIHN0
b3JlIHdoZW4gZ3JhYmJpbmcgY2FjaGUgc3RvcmFnZSBwYXJhbWV0ZXJzIGZyb20gYSBnaXZlbiBz
ZXNzaW9uIElELgorCisgICAgICAgIEFkZCBhIHdheSB0byByZW1vdmUgdGhlIGRlZmF1bHQgd2Vi
c2l0ZSBkYXRhIGZvciB0ZXN0aW5nLgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gdGhlIG5ldyBB
UEkgdGVzdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlbGV0ZURlZmF1bHREYXRhU3Rv
cmVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bToKKyAgICAgICAgKCtbV0tXZWJzaXRlRGF0YVN0b3JlIF9kZWxldGVEZWZhdWx0RGF0YVN0b3Jl
Rm9yVGVzdGluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXRy
aWV2ZUNhY2hlU3RvcmFnZVBhcmFtZXRlcnMpOgorCiAyMDE4LTEwLTA5ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBtX2NhY2hl
c0xvY2tzLmNvbnRhaW5zKHNlc3Npb25JRCkgaW4gV2ViS2l0OjpDYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uOjpkZXJlZmVyZW5jZShQQUw6OlNlc3Npb25JRCwgdW5zaWduZWQgbG9uZyBsb25n
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNo
ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRs
CmluZGV4IDE3OTc2ZTY2NTc1ODFjNTIxYzYwYTRjZjgwMTYyZGIzNDJiMjNkNGYuLjFlYzliNjRh
OTJmZjM0NGM2ODc4ZmNkOTYyOWU4M2IyZDdiM2YzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NV2luZG93Q2FjaGVzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGwKQEAgLTI2LDUgKzI2LDUgQEAKIFsK
ICAgICBFbmFibGVkQXRSdW50aW1lPUNhY2hlQVBJLAogXSBwYXJ0aWFsIGludGVyZmFjZSBET01X
aW5kb3cgewotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4
Y2VwdGlvbiwgU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERP
TUNhY2hlU3RvcmFnZSBjYWNoZXM7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIE1heVRocm93RXhjZXB0aW9uLCBTZWN1cmVDb250ZXh0LCBDb250ZXh0SGFzU2VydmljZVdv
cmtlclNjaGVtZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUNhY2hlU3RvcmFn
ZSBjYWNoZXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCmluZGV4IGRiZTg5OGYxMTgyNTJmM2IyM2FjNzIwZGI3NDNjNzVjZjRmYmJmZjUuLmJh
NWMzNjMyNGJjODM0MDBlNDRiOGM5YzE1YjE1NWU1ODM3MGNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTUyOCwxNCArNTI4LDE0IEBA
IFN0cmluZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21haW5Gb3JDYWNoZVBhcnRpdGlvbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24uaXNOdWxsKCkgPyB0
b3BPcmlnaW4oKS5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIDogbV9kb21haW5Gb3JDYWNoZVBh
cnRpdGlvbjsKIH0KIAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQogYm9vbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpoYXNTZXJ2aWNlV29ya2VyU2NoZW1lKCkKIHsKICAgICBBU1NFUlQo
c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgcmV0dXJuIFNjaGVtZVJlZ2lzdHJ5Ojppc1NlcnZpY2VX
b3JrZXJDb250YWluZXJDdXN0b21TY2hlbWUoc2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSk7
CiB9CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKIFNlcnZpY2VXb3JrZXIqIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2FjdGl2ZVNlcnZpY2VXb3JrZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzYmRmY2M4MGRiZTZlNmFkYWQ1ODc3ZDFmZWUz
MDExMjczNzZkNTYzLi4yYjY0NzVlNjI3ZGNlZmQ1ZGRiNjQzNGUxNTE1NTQ2NWU1NWM0N2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTI0NCw4
ICsyNDQsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRvbWFpbkZvckNh
Y2hlUGFydGl0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREb21haW5Gb3JDYWNoZVBhcnRpdGlv
bihTdHJpbmcmJiBkb21haW4pIHsgbV9kb21haW5Gb3JDYWNoZVBhcnRpdGlvbiA9IFdURk1vdmUo
ZG9tYWluKTsgfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGJvb2wgaGFzU2Vy
dmljZVdvcmtlclNjaGVtZSgpOworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBTZXJ2
aWNlV29ya2VyKiBhY3RpdmVTZXJ2aWNlV29ya2VyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY3Rp
dmVTZXJ2aWNlV29ya2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGEz
ZWMyNWQwZGY2Yjg2N2RjOTBjZTE4NGE4NDZiMDdlMmE5OWUyMzEuLmRhYmRmN2M2NjVjY2QwMTQx
YjQzZDJlNDBiOTdiOGVlYmY3YjcxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQzLDYgKzQzLDE0IEBAIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCkKICAg
ICByZXR1cm4gKmdsb2JhbERlZmF1bHREYXRhU3RvcmU7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6ZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmcoKQoreworICAgIGlmICghZ2xv
YmFsRGVmYXVsdERhdGFTdG9yZSkKKyAgICAgICAgcmV0dXJuOworICAgIGFkb3B0UmVmKCpnbG9i
YWxEZWZhdWx0RGF0YVN0b3JlKTsKKyAgICBnbG9iYWxEZWZhdWx0RGF0YVN0b3JlID0gbnVsbHB0
cjsKK30KKwogYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlRXhpc3RzKCkK
IHsKICAgICByZXR1cm4gZ2xvYmFsRGVmYXVsdERhdGFTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDY2ZWZhNTg3NjBh
N2ZlN2UxZmMyNjdkY2M0NTIyNzMyOWZkZDI4M2EuLmMyMzhkZjhjN2E5MjNlYzBkYTQ4ZGJlM2Y2
YzQzY2RiMDFhMjk5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVEYXRhU3RvcmUuaApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBXZWJzaXRlRGF0YVN0
b3JlIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpXZWJzaXRlRGF0YVN0
b3JlPgogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gZGVmYXVsdERh
dGFTdG9yZSgpOwogICAgIHN0YXRpYyBib29sIGRlZmF1bHREYXRhU3RvcmVFeGlzdHMoKTsKKyAg
ICBzdGF0aWMgdm9pZCBkZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZygpOwogCiAgICAg
c3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3Jl
KCk7CiAgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVMZWdhY3koV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGM2
NDlmZjZjYmNlYTVhMWRhNDVmMzYwYmU1MzljN2RiYzQ5MjgzMjYuLmU0MjZhYzM1NmIzYzg2NTAx
NmMzYzM5MjFjZjRlMDAwZDNkOWM2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTg0LDYgKzE4NCwx
MSBAQCArIChCT09MKV9kZWZhdWx0RGF0YVN0b3JlRXhpc3RzCiAgICAgcmV0dXJuIEFQSTo6V2Vi
c2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUV4aXN0cygpOwogfQogCisrICh2b2lkKV9k
ZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZworeworICAgIHJldHVybiBBUEk6OldlYnNp
dGVEYXRhU3RvcmU6OmRlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5nKCk7Cit9CisKIC0g
KGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDZlMmQzOTdmOWY1MWJjZGE3
YjRlZDgxYjcxNzQwYzg2NjI0MGEzZjYuLjc0YThhMDJmMmYxZDllZTk1Yzk3YWY5YTk2ZTNjNjAx
MzE5MjAxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtNDAsNiArNDAsNyBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0
aW9ucykgewogCiArIChOU1NldDxOU1N0cmluZyAqPiAqKV9hbGxXZWJzaXRlRGF0YVR5cGVzSW5j
bHVkaW5nUHJpdmF0ZTsKICsgKEJPT0wpX2RlZmF1bHREYXRhU3RvcmVFeGlzdHM7CisrICh2b2lk
KV9kZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZzsKIAogLSAoaW5zdGFuY2V0eXBlKV9p
bml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICop
Y29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDBlOTIxODMzMjdhYmY4N2FiYjYyMDY3MDdlNmFlNThhNjU2
YWI1YjQuLjg4MWU5ODBkMjRlYWNiZWUxOWVhZWE5ZGM4ZmQ4MjUwMDEyY2UwMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcApAQCAtNjI0LDIwICs2MjQsMzEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpy
ZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpyZXRyaWV2ZUNhY2hlU3RvcmFnZVBhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogeworICAgIFdlYnNpdGVEYXRhU3RvcmUqIHN0b3JlID0gbnVsbHB0cjsKICAg
ICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJzaXRlRGF0YVN0b3Jlcy5maW5kKHNlc3Npb25JRCk7Ci0g
ICAgaWYgKGl0ZXJhdG9yID09IG1fd2Vic2l0ZURhdGFTdG9yZXMuZW5kKCkpIHsKLSAgICAgICAg
YXV0byBxdW90YSA9IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURhdGFTdG9yZSgpID8gbV9wcm9jZXNz
UG9vbC53ZWJzaXRlRGF0YVN0b3JlKCktPndlYnNpdGVEYXRhU3RvcmUoKS5jYWNoZVN0b3JhZ2VQ
ZXJPcmlnaW5RdW90YSgpIDogV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdENhY2hlU3RvcmFnZVBl
ck9yaWdpblF1b3RhOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgcXVvdGEsIHsgfSwgeyB9IH0sIDAp
OwotICAgICAgICByZXR1cm47CisgICAgaWYgKGl0ZXJhdG9yICE9IG1fd2Vic2l0ZURhdGFTdG9y
ZXMuZW5kKCkpCisgICAgICAgIHN0b3JlID0gaXRlcmF0b3ItPnZhbHVlLmdldCgpOworICAgIGVs
c2UgeworICAgICAgICBBU1NFUlQoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkpOworICAgICAgICBhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNz
UG9vbC53ZWJzaXRlRGF0YVN0b3JlKCk7CisgICAgICAgIGlmICghd2Vic2l0ZURhdGFTdG9yZSkK
KyAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRl
ZmF1bHREYXRhU3RvcmUoKS5wdHIoKTsKKworICAgICAgICBpZiAod2Vic2l0ZURhdGFTdG9yZS0+
d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpICE9IHNlc3Npb25JRCkgeworICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1By
b3h5IGlzIHVuYWJsZSB0byByZXRyaWV2ZSBDYWNoZVN0b3JhZ2UgcGFyYW1ldGVycyBmcm9tIHRo
ZSBnaXZlbiBzZXNzaW9uIElEICUiIFBSSXU2NCwgdGhpcywgc2Vzc2lvbklELnNlc3Npb25JRCgp
KTsKKyAgICAgICAgICAgIGF1dG8gcXVvdGEgPSBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3Rv
cmUoKSA/IG1fcHJvY2Vzc1Bvb2wud2Vic2l0ZURhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3Jl
KCkuY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEoKSA6IFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1
bHRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCBx
dW90YSwgeyB9LCB7IH0gfSwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgc3RvcmUgPSAmd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpOwogICAg
IH0KIAotICAgIGF1dG8mIHN0b3JlID0gKml0ZXJhdG9yLT52YWx1ZTsKLSAgICBhdXRvJiBjYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkgPSBzdG9yZS5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKKyAgICBh
dXRvJiBjYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBzdG9yZS0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5
KCk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIWNhY2hlU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkp
CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVj
dG9yeShjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2FjaGVT
dG9yYWdlUGFyYW1ldGVycyB7IHNlc3Npb25JRCwgc3RvcmUuY2FjaGVTdG9yYWdlUGVyT3JpZ2lu
UXVvdGEoKSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUgfSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dENhY2hlU3RvcmFnZVBhcmFtZXRlcnMgeyBzZXNzaW9uSUQsIHN0b3JlLT5jYWNoZVN0b3JhZ2VQ
ZXJPcmlnaW5RdW90YSgpLCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIGNhY2hlU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSB9LCAwKTsKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggZTY3MzgzMWIzMjEzZjBiMzU4YTFjZTczOWRhZmYxZDAwZmRmN2QyMi4uZTFlMTcwMWQ0YWRl
YTUyODJjZTNkNWIxZTc4Mjc3NjgyY2QxYzM3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEwLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNl
IHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICBBZGQgdGVzdCB0byBlbnN1cmUgdGhhdCBDYWNo
ZVN0b3JhZ2UgdXNlIHRoZSBkZWZhdWx0IHdlYnNpdGUgZGF0YSBzdG9yZSBwYXJhbWV0ZXJzLgor
CiAyMDE4LTEwLTA5ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBBbGxvdyBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMgdG8gZGlzdHJpYnV0ZSB0ZXN0
cyBiZXR3ZWVuIGRldmljZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYTU4ZDIwM2NkZjhj
NGQ5Zjg3YWQwMzkwNmEyNjI0MWZlMDRiOTI1Zi4uNGNiOGZhOTdhNjZjOGE3ZmQ4NDU5ZWVkMGE0
NTg0MmIyYjgxZmE4MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTE5NCw2ICsxOTQsMzIg
QEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25SZXNwb25zZTooV0tOYXZpZ2EKIH0KIEBlbmQKIAorc3RhdGljIGNvbnN0IGNoYXIq
IG1haW5DYWNoZVN0b3JhZ2VCeXRlcyA9IFIiU1dSRVNPVVJDRSgKKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIGxvZyhtc2cpCit7CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuc3cucG9z
dE1lc3NhZ2UobXNnKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBjb25z
dCBrZXlzID0gYXdhaXQgd2luZG93LmNhY2hlcy5rZXlzKCk7CisgICAgaWYgKCFrZXlzLmxlbmd0
aCkgeworICAgICAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHdpbmRvdy5jYWNoZXMub3BlbigibXkg
Y2FjaGUiKTsKKyAgICAgICAgbG9nKCJObyBjYWNoZSBzdG9yYWdlIGRhdGEiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgbG9n
KCJVbmV4cGVjdGVkIGNhY2hlIG51bWJlciIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGxvZygiU29tZSBjYWNoZSBzdG9yYWdlIGRhdGE6ICIgKyBrZXlzWzBdKTsKK30KK2RvVGVzdCgp
OworCis8L3NjcmlwdD4KKylTV1JFU09VUkNFIjsKIAogc3RhdGljIGNvbnN0IGNoYXIqIG1haW5C
eXRlcyA9IFIiU1dSRVNPVVJDRSgKIDxzY3JpcHQ+CkBAIC01NDEsNiArNTY3LDYzIEBAIFRFU1Qo
U2VydmljZVdvcmtlcnMsIFJlc3RvcmVGcm9tRGlzaykKICAgICBkb25lID0gZmFsc2U7CiB9CiAK
K1RFU1QoU2VydmljZVdvcmtlcnMsIENhY2hlU3RvcmFnZVJlc3RvcmVGcm9tRGlzaykKK3sKKyAg
ICBBU1NFUlQobWFpbkNhY2hlU3RvcmFnZUJ5dGVzKTsKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3Jl
IF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgLy8gU3RhcnQg
d2l0aCBhIGNsZWFuIHNsYXRlIGRhdGEgc3RvcmUKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFs
bFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29t
cGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKwor
ICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2RlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5n
XTsKKworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tTV1NjaGVtZXMgYWxsb2NdIGluaXRd
KTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMuc2V0KCJzdzovL2hvc3QvbWFpbi5odG1sIiwgUmVz
b3VyY2VJbmZvIHsgQCJ0ZXh0L2h0bWwiLCBtYWluQ2FjaGVTdG9yYWdlQnl0ZXMgfSk7CisKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbU1dNZXNz
YWdlSGFuZGxlckZvclJlc3RvcmVGcm9tRGlza1Rlc3QgYWxsb2NdIGluaXRXaXRoRXhwZWN0ZWRN
ZXNzYWdlOkAiTm8gY2FjaGUgc3RvcmFnZSBkYXRhIl0pOworCisgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1l
SGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3JlZ2lzdGVyVVJM
U2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdyJdOworCisgICAgLy8gVHJpZ2dlciBj
cmVhdGlvbiBvZiBuZXR3b3JrIHByb2Nlc3MuCisgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJh
dGlvbi5wcm9jZXNzUG9vbCBfc3luY05ldHdvcmtQcm9jZXNzQ29va2llc107CisKKyAgICBhdXRv
ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRv
bmUgPSBmYWxzZTsKKworICAgIHdlYlZpZXcgPSBudWxscHRyOworICAgIGNvbmZpZ3VyYXRpb24g
PSBudWxscHRyOworICAgIG1lc3NhZ2VIYW5kbGVyID0gbnVsbHB0cjsKKworICAgIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwor
ICAgIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJGb3JSZXN0b3Jl
RnJvbURpc2tUZXN0IGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkTWVzc2FnZTpAIlNvbWUgY2FjaGUg
c3RvcmFnZSBkYXRhOiBteSBjYWNoZSJdKTsKKworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdl
dCgpIG5hbWU6QCJzdyJdOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6
aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJTVyJdOworCisgICAgd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcu
Z2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNl
V29ya2Vyc0NhbkhhbmRsZTpAInN3Il07CisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwi
XV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKK30KKworCiBURVNUKFNl
cnZpY2VXb3JrZXJzLCBGZXRjaEFmdGVyUmVzdG9yZUZyb21EaXNrKQogewogICAgIEFTU0VSVCht
YWluRm9yRmV0Y2hUZXN0Qnl0ZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352051</attachid>
            <date>2018-10-11 09:55:09 -0700</date>
            <delta_ts>2018-10-11 16:34:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190269-20181011095509.patch</filename>
            <type>text/plain</type>
            <size>16341</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI2NzljMzdkMTg3MDJh
MGMwNmQ3NGVjOWM3MjVlODE1YTdhOGYyNS4uZDVhNDYzZDlmZWQyNWUyNzRjNmJjMWVmYzNmMmIw
YzQxMGU0ZDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNl
IHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgQ2FjaGUgU3RvcmFnZSBBUEkgd2hlbiBTZXJ2aWNl
IFdvcmtlciBBUEkgaXMgZXhwb3NlZC4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGZvciBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOiBNYWtlIGhhc1Nl
cnZpY2VXb3JrZXJTY2hlbWUKKyAgICAgICAgYXZhaWxhYmxlIG91dHNpZGUgU0VSVklDRV9XT1JL
RVIgY29tcGlsYXRpb24gZmxhZyBzaW5jZSB1c2VkIGJ5IERPTVdpbmRvd0NhY2hlcy4KKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6IERpdHRvLgorICAgICAgICAqIE1v
ZHVsZXMvY2FjaGUvRE9NV2luZG93Q2FjaGVzLmlkbDoKKwogMjAxOC0xMC0wOCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gUmVxdWVz
dHMgc2hvdWxkIGJlIGFib3J0ZWQgYWZ0ZXIgZGV0YWlscyBzZXR0bGUgd2hlbiB0aGUgdXNlciBj
YW5jZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDc5NTRkMWFjYjFjY2I5NTI3ZDVlNGVhMjU0MTAyZGUzMTM5ZTMz
MmYuLjQ4ZmY5NDZlMGUyMTFhNzZiMGVkZjI1NGFkM2E4MGQxODkzOGJkNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTgtMTAtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29ya2VyIGNhY2hlIG5vdCBzaGFyZWQg
d2hlbiBhZGRlZCB0byBob21lc2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTAyNjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MDA5OTYx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldHdv
cmtQcm9jZXNzUHJveHkgZG9lcyBub3QgYWx3YXlzIGhhdmUgYWxsIGl0cyBzdG9yZXMgaW4gaXRz
IGhhc2ggbWFwLgorICAgICAgICBNYWtlIHN1cmUgdG8gY2hlY2sgZm9yIHRoZSBkZWZhdWx0IHdl
YiBwcm9jZXNzIHBvb2wgc3RvcmUgd2hlbiBncmFiYmluZyBjYWNoZSBzdG9yYWdlIHBhcmFtZXRl
cnMgZnJvbSBhIGdpdmVuIHNlc3Npb24gSUQuCisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHJlbW92
ZSB0aGUgZGVmYXVsdCB3ZWJzaXRlIGRhdGEgZm9yIHRlc3RpbmcuCisgICAgICAgIFRoaXMgaXMg
dXNlZCBpbiB0aGUgbmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVs
ZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoK1tXS1dlYnNpdGVEYXRhU3RvcmUgX2RlbGV0
ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVycyk6CisKIDIwMTgtMTAt
MDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIERPTVdp
bmRvd1Byb3BlcnR5IGdldCBpcyBmcmFtZSBmcm9tIGl0cyBhc3NvY2lhdGVkIERPTVdpbmRvdwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRsCmlu
ZGV4IDE3OTc2ZTY2NTc1ODFjNTIxYzYwYTRjZjgwMTYyZGIzNDJiMjNkNGYuLjFlYzliNjRhOTJm
ZjM0NGM2ODc4ZmNkOTYyOWU4M2IyZDdiM2YzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvRE9NV2luZG93Q2FjaGVzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGwKQEAgLTI2LDUgKzI2LDUgQEAKIFsKICAg
ICBFbmFibGVkQXRSdW50aW1lPUNhY2hlQVBJLAogXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5k
b3cgewotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2Vw
dGlvbiwgU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUNh
Y2hlU3RvcmFnZSBjYWNoZXM7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1heVRocm93RXhjZXB0aW9uLCBTZWN1cmVDb250ZXh0LCBDb250ZXh0SGFzU2VydmljZVdvcmtl
clNjaGVtZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUNhY2hlU3RvcmFnZSBj
YWNoZXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCmluZGV4IGRiZTg5OGYxMTgyNTJmM2IyM2FjNzIwZGI3NDNjNzVjZjRmYmJmZjUuLmJhNWMz
NjMyNGJjODM0MDBlNDRiOGM5YzE1YjE1NWU1ODM3MGNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTUyOCwxNCArNTI4LDE0IEBAIFN0
cmluZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIGNv
bnN0CiAgICAgcmV0dXJuIG1fZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24uaXNOdWxsKCkgPyB0b3BP
cmlnaW4oKS5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIDogbV9kb21haW5Gb3JDYWNoZVBhcnRp
dGlvbjsKIH0KIAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQogYm9vbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpoYXNTZXJ2aWNlV29ya2VyU2NoZW1lKCkKIHsKICAgICBBU1NFUlQoc2Vj
dXJpdHlPcmlnaW4oKSk7CiAgICAgcmV0dXJuIFNjaGVtZVJlZ2lzdHJ5Ojppc1NlcnZpY2VXb3Jr
ZXJDb250YWluZXJDdXN0b21TY2hlbWUoc2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSk7CiB9
CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKIFNlcnZpY2VXb3JrZXIqIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSBjb25zdAogewogICAgIHJldHVy
biBtX2FjdGl2ZVNlcnZpY2VXb3JrZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzYmRmY2M4MGRiZTZlNmFkYWQ1ODc3ZDFmZWUzMDEx
MjczNzZkNTYzLi4yYjY0NzVlNjI3ZGNlZmQ1ZGRiNjQzNGUxNTE1NTQ2NWU1NWM0N2U0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTI0NCw4ICsy
NDQsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRvbWFpbkZvckNhY2hl
UGFydGl0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREb21haW5Gb3JDYWNoZVBhcnRpdGlvbihT
dHJpbmcmJiBkb21haW4pIHsgbV9kb21haW5Gb3JDYWNoZVBhcnRpdGlvbiA9IFdURk1vdmUoZG9t
YWluKTsgfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGJvb2wgaGFzU2Vydmlj
ZVdvcmtlclNjaGVtZSgpOworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBTZXJ2aWNl
V29ya2VyKiBhY3RpdmVTZXJ2aWNlV29ya2VyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY3RpdmVT
ZXJ2aWNlV29ya2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGEzZWMy
NWQwZGY2Yjg2N2RjOTBjZTE4NGE4NDZiMDdlMmE5OWUyMzEuLjVkNmNjMjNhMzY3ZTcyNGJkN2Iw
MDdlMzc4YWYzZjU4ZDY3ZWM5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTMxLDIxICszMSwzNSBAQAogCiBuYW1l
c3BhY2UgQVBJIHsKIAotc3RhdGljIFdlYnNpdGVEYXRhU3RvcmUqIGdsb2JhbERlZmF1bHREYXRh
U3RvcmU7CitzdGF0aWMgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+JiBnbG9iYWxEZWZhdWx0RGF0
YVN0b3JlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPFdlYnNpdGVEYXRh
U3RvcmU+PiBnbG9iYWxEZWZhdWx0RGF0YVN0b3JlOworICAgIHJldHVybiBnbG9iYWxEZWZhdWx0
RGF0YVN0b3JlLmdldCgpOworfQorCiAKIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0
YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCkKIHsKICAgICBXZWJLaXQ6OkluaXRpYWxpemVXZWJL
aXQyKCk7CiAKLSAgICBpZiAoIWdsb2JhbERlZmF1bHREYXRhU3RvcmUpCi0gICAgICAgIGdsb2Jh
bERlZmF1bHREYXRhU3RvcmUgPSBhZG9wdFJlZihuZXcgV2Vic2l0ZURhdGFTdG9yZShkZWZhdWx0
RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpLCBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKSkubGVha1JlZigpOworICAgIGF1dG8mIHN0b3JlID0gZ2xvYmFsRGVmYXVsdERhdGFTdG9y
ZSgpOworICAgIGlmICghc3RvcmUpCisgICAgICAgIHN0b3JlID0gYWRvcHRSZWYobmV3IFdlYnNp
dGVEYXRhU3RvcmUoZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSwgUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpOwogCi0gICAgcmV0dXJuICpnbG9iYWxEZWZhdWx0RGF0
YVN0b3JlOworICAgIHJldHVybiAqc3RvcmU7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
ZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmcoKQoreworICAgIGF1dG8mIHN0b3JlID0g
Z2xvYmFsRGVmYXVsdERhdGFTdG9yZSgpOworICAgIGlmICghc3RvcmUpCisgICAgICAgIHJldHVy
bjsKKyAgICBzdG9yZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6ZGVm
YXVsdERhdGFTdG9yZUV4aXN0cygpCiB7Ci0gICAgcmV0dXJuIGdsb2JhbERlZmF1bHREYXRhU3Rv
cmU7CisgICAgcmV0dXJuICEhZ2xvYmFsRGVmYXVsdERhdGFTdG9yZSgpOwogfQogCiBSZWY8V2Vi
c2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVyc2lzdGVudERhdGFT
dG9yZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCA2NmVmYTU4NzYwYTdmZTdlMWZjMjY3ZGNjNDUyMjczMjlmZGQyODNhLi5j
MjM4ZGY4YzdhOTIzZWMwZGE0OGRiZTNmNmM0M2NkYjAxYTI5OTFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTM2LDYgKzM2
LDcgQEAgY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBsPE9i
amVjdDo6VHlwZTo6V2Vic2l0ZURhdGFTdG9yZT4KIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdl
YnNpdGVEYXRhU3RvcmU+IGRlZmF1bHREYXRhU3RvcmUoKTsKICAgICBzdGF0aWMgYm9vbCBkZWZh
dWx0RGF0YVN0b3JlRXhpc3RzKCk7CisgICAgc3RhdGljIHZvaWQgZGVsZXRlRGVmYXVsdERhdGFT
dG9yZUZvclRlc3RpbmcoKTsKIAogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3Jl
YXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpOwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFT
dG9yZT4gY3JlYXRlTGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJhdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQppbmRleCBjNjQ5ZmY2Y2JjZWE1YTFkYTQ1ZjM2MGJlNTM5YzdkYmM0
OTI4MzI2Li5lNDI2YWMzNTZiM2M4NjUwMTZjM2MzOTIxY2Y0ZTAwMGQzZDljNjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0KQEAgLTE4NCw2ICsxODQsMTEgQEAgKyAoQk9PTClfZGVmYXVsdERhdGFTdG9yZUV4
aXN0cwogICAgIHJldHVybiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVF
eGlzdHMoKTsKIH0KIAorKyAodm9pZClfZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmcK
K3sKKyAgICByZXR1cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWxldGVEZWZhdWx0RGF0YVN0
b3JlRm9yVGVzdGluZygpOworfQorCiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJh
dGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aAppbmRleCA2ZTJkMzk3ZjlmNTFiY2RhN2I0ZWQ4MWI3MTc0MGM4NjYyNDBhM2Y2Li43NGE4YTAy
ZjJmMWQ5ZWU5NWM5N2FmOWE5NmUzYzYwMTMxOTIwMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKQEAgLTQwLDYgKzQwLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKIAogKyAoTlNTZXQ8TlNTdHJpbmcgKj4g
KilfYWxsV2Vic2l0ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZhdGU7CiArIChCT09MKV9kZWZhdWx0
RGF0YVN0b3JlRXhpc3RzOworKyAodm9pZClfZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3Rp
bmc7CiAKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZTkyMTgzMzI3
YWJmODdhYmI2MjA2NzA3ZTZhZTU4YTY1NmFiNWI0Li4xOGY3N2MwNzY4YzMwZWQwMTJlNzg5MGM1
YjI5YTUzZWYzOTI2MTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyMiwyMiArNjIyLDQwIEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZXMucmVtb3ZlKHNlc3Npb25JRCk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0
ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYnNpdGVEYXRhU3RvcmUqIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OndlYnNpdGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJzaXRlRGF0YVN0b3Jlcy5m
aW5kKHNlc3Npb25JRCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fd2Vic2l0ZURhdGFTdG9yZXMu
ZW5kKCkpIHsKKyAgICBpZiAoaXRlcmF0b3IgIT0gbV93ZWJzaXRlRGF0YVN0b3Jlcy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKworICAgIGlmIChhdXRvKiB3
ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNzUG9vbC53ZWJzaXRlRGF0YVN0b3JlKCkpIHsKKyAg
ICAgICAgaWYgKHNlc3Npb25JRCA9PSB3ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3Jl
KCkuc2Vzc2lvbklEKCkpCisgICAgICAgICAgICByZXR1cm4gJndlYnNpdGVEYXRhU3RvcmUtPndl
YnNpdGVEYXRhU3RvcmUoKTsKKyAgICB9CisKKyAgICBpZiAoc2Vzc2lvbklEICE9IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgcmV0dXJuICZBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKS0+d2Vi
c2l0ZURhdGFTdG9yZSgpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJldHJpZXZl
Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAg
YXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOwor
CisgICAgaWYgKCFzdG9yZSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0b3Jh
Z2UsICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdW5hYmxlIHRvIHJldHJpZXZlIENhY2hl
U3RvcmFnZSBwYXJhbWV0ZXJzIGZyb20gdGhlIGdpdmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0LCB0
aGlzLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgICAgICBhdXRvIHF1b3RhID0gbV9wcm9j
ZXNzUG9vbC53ZWJzaXRlRGF0YVN0b3JlKCkgPyBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3Rv
cmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpLmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCkgOiBX
ZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7CiAgICAg
ICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0
ZXJzIHsgc2Vzc2lvbklELCBxdW90YSwgeyB9LCB7IH0gfSwgMCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBhdXRvJiBzdG9yZSA9ICppdGVyYXRvci0+dmFsdWU7Ci0gICAgYXV0byYg
Y2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gc3RvcmUuY2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7Cisg
ICAgYXV0byYgY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gc3RvcmUtPmNhY2hlU3RvcmFnZURpcmVj
dG9yeSgpOwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjYWNoZVN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7CiAgICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0
eSgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVE
aXJlY3RvcnkoY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwogCi0gICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENh
Y2hlU3RvcmFnZVBhcmFtZXRlcnMgeyBzZXNzaW9uSUQsIHN0b3JlLmNhY2hlU3RvcmFnZVBlck9y
aWdpblF1b3RhKCksIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlIH0sIDApOworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCBzdG9yZS0+Y2FjaGVTdG9y
YWdlUGVyT3JpZ2luUXVvdGEoKSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgfSwgMCk7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCAyNTU4OTdlN2U4MjVlMTdiODNlOGIxNDY0YjQ4MDkx
NzU2ZWEzMDA3Li41MjM3YjhiOWEyOGViYWYyOWMzMGEzNGIwZTEwNTZmOTVjNjVhYWE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtMTY1LDYgKzE2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlc3RhYmxpc2hX
b3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3NGb3JFeHBsaWNpdFNlc3Npb24o
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgog
CisgICAgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoUEFM
OjpTZXNzaW9uSUQpOworCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2b2lk
IGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMmZkYjQ1MjQyN2M3MDVhNzQwNzA4ZGM4MTdhZGI2MTNhMTVmMzIz
MS4uN2JkMWQwMTlhZTYzM2FmMmRmMjI4MTFlZTg0NTlmMmYxYzg4MWZhYSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE4LTEwLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
T1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9t
ZXNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwMjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICBBZGQgdGVzdCB0byBl
bnN1cmUgdGhhdCBDYWNoZVN0b3JhZ2UgdXNlIHRoZSBkZWZhdWx0IHdlYnNpdGUgZGF0YSBzdG9y
ZSBwYXJhbWV0ZXJzLgorCiAyMDE4LTEwLTA4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgVG9vbHMgcGFydCBvZiBbWGNvZGVdIFVwZGF0ZSBzb21lIGJ1aWxkIHNl
dHRpbmdzIGFzIHJlY29tbWVuZGVkIGJ5IFhjb2RlIDEwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmlu
ZGV4IGE1OGQyMDNjZGY4YzRkOWY4N2FkMDM5MDZhMjYyNDFmZTA0YjkyNWYuLjRjYjhmYTk3YTY2
YzhhN2ZkODQ1OWVlZDBhNDU4NDJiMmI4MWZhODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBA
IC0xOTQsNiArMTk0LDMyIEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6KFdLTmF2aWdhCiB9CiBAZW5kCiAKK3N0
YXRpYyBjb25zdCBjaGFyKiBtYWluQ2FjaGVTdG9yYWdlQnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCis8
c2NyaXB0PgorCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnN3LnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVz
dCgpCit7CisgICAgY29uc3Qga2V5cyA9IGF3YWl0IHdpbmRvdy5jYWNoZXMua2V5cygpOworICAg
IGlmICgha2V5cy5sZW5ndGgpIHsKKyAgICAgICAgY29uc3QgY2FjaGUgPSBhd2FpdCB3aW5kb3cu
Y2FjaGVzLm9wZW4oIm15IGNhY2hlIik7CisgICAgICAgIGxvZygiTm8gY2FjaGUgc3RvcmFnZSBk
YXRhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGtleXMubGVuZ3RoICE9PSAx
KSB7CisgICAgICAgIGxvZygiVW5leHBlY3RlZCBjYWNoZSBudW1iZXIiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBsb2coIlNvbWUgY2FjaGUgc3RvcmFnZSBkYXRhOiAiICsga2V5c1sw
XSk7Cit9Citkb1Rlc3QoKTsKKworPC9zY3JpcHQ+CispU1dSRVNPVVJDRSI7CiAKIHN0YXRpYyBj
b25zdCBjaGFyKiBtYWluQnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCiA8c2NyaXB0PgpAQCAtNTQxLDYg
KzU2Nyw2MyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJvbURpc2spCiAgICAgZG9u
ZSA9IGZhbHNlOwogfQogCitURVNUKFNlcnZpY2VXb3JrZXJzLCBDYWNoZVN0b3JhZ2VSZXN0b3Jl
RnJvbURpc2spCit7CisgICAgQVNTRVJUKG1haW5DYWNoZVN0b3JhZ2VCeXRlcyk7CisgICAgW1dL
V2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsK
KworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRhIHN0b3JlCisgICAgW1tXS1dl
YnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUg
ZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgICAgIGRvbmUgPSB0cnVl
OworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9kZWxldGVEZWZhdWx0RGF0
YVN0b3JlRm9yVGVzdGluZ107CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dTY2hl
bWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0
L21haW4uaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFpbkNhY2hlU3RvcmFn
ZUJ5dGVzIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0g
YWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJGb3JSZXN0b3JlRnJvbURpc2tUZXN0IGFsbG9jXSBp
bml0V2l0aEV4cGVjdGVkTWVzc2FnZTpAIk5vIGNhY2hlIHN0b3JhZ2UgZGF0YSJdKTsKKworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworICAgIFtjb25maWd1cmF0
aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJTVyJd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQ
b29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlOkAic3ciXTsKKwor
ICAgIC8vIFRyaWdnZXIgY3JlYXRpb24gb2YgbmV0d29yayBwcm9jZXNzLgorICAgIFt3ZWJWaWV3
LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXNdOworCisgICAgYXV0byAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKKyAg
ICBjb25maWd1cmF0aW9uID0gbnVsbHB0cjsKKyAgICBtZXNzYWdlSGFuZGxlciA9IG51bGxwdHI7
CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VI
YW5kbGVyRm9yUmVzdG9yZUZyb21EaXNrVGVzdCBhbGxvY10gaW5pdFdpdGhFeHBlY3RlZE1lc3Nh
Z2U6QCJTb21lIGNhY2hlIHN0b3JhZ2UgZGF0YTogbXkgY2FjaGUiXSk7CisKKyAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpt
ZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRV
UkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKworICAg
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0p
OworICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3JlZ2lzdGVy
VVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdyJdOworCisgICAgcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzov
L2hvc3QvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7
Cit9CisKKwogVEVTVChTZXJ2aWNlV29ya2VycywgRmV0Y2hBZnRlclJlc3RvcmVGcm9tRGlzaykK
IHsKICAgICBBU1NFUlQobWFpbkZvckZldGNoVGVzdEJ5dGVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352101</attachid>
            <date>2018-10-11 16:34:07 -0700</date>
            <delta_ts>2018-10-11 18:33:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190269-20181011163406.patch</filename>
            <type>text/plain</type>
            <size>16296</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBjYWJkZjljZGFhYjJj
MmE0NWU0ODI0ZjY4NjMyMmFiYzRkMmZjNi4uMmIzMjJjMGY1ZjkyOWI3MTMzODhkN2Y3OTBmZDFk
NGIwMjE1NmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2aWNl
IHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEV4cG9zZSBDYWNoZSBTdG9yYWdlIEFQSSB3aGVuIFNlcnZp
Y2UgV29ya2VyIEFQSSBpcyBleHBvc2VkLgorICAgICAgICBUaGlzIGlzIHVzZWQgZm9yIEFQSSB0
ZXN0cy4KKworICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6IE1ha2UgaGFz
U2VydmljZVdvcmtlclNjaGVtZQorICAgICAgICBhdmFpbGFibGUgb3V0c2lkZSBTRVJWSUNFX1dP
UktFUiBjb21waWxhdGlvbiBmbGFnIHNpbmNlIHVzZWQgYnkgRE9NV2luZG93Q2FjaGVzLgorICAg
ICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRsOgorCiAyMDE4LTEwLTExICBSb3NzIEtp
cnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbV1RGXSBTZW1hcGhv
cmUuaCBjb25mbGljdHMgd2l0aCBQT1NJWCBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzljMDVhZmMwM2Y0
YzE1ZDNkM2FhMTkxYzE3NjFhOWUzZTIxNTY5Ny4uYWQ0ZDA1YjE2NjQyYzBhNDQ2ZWQ1N2FmZTU1
NDVlMGEyNGYzYjNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMC0xMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TIDEyIC0gU2Vydmlj
ZSB3b3JrZXIgY2FjaGUgbm90IHNoYXJlZCB3aGVuIGFkZGVkIHRvIGhvbWVzY3JlZW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI2OQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUwMDk5NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5IGRvZXMgbm90IGFsd2F5
cyBoYXZlIGFsbCBpdHMgc3RvcmVzIGluIGl0cyBoYXNoIG1hcC4KKyAgICAgICAgTWFrZSBzdXJl
IHRvIGNoZWNrIGZvciB0aGUgZGVmYXVsdCB3ZWIgcHJvY2VzcyBwb29sIHN0b3JlIHdoZW4gZ3Jh
YmJpbmcgY2FjaGUgc3RvcmFnZSBwYXJhbWV0ZXJzIGZyb20gYSBnaXZlbiBzZXNzaW9uIElELgor
CisgICAgICAgIEFkZCBhIHdheSB0byByZW1vdmUgdGhlIGRlZmF1bHQgd2Vic2l0ZSBkYXRhIGZv
ciB0ZXN0aW5nLgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gdGhlIG5ldyBBUEkgdGVzdC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAg
KCtbV0tXZWJzaXRlRGF0YVN0b3JlIF9kZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZ10p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXRyaWV2ZUNhY2hlU3Rv
cmFnZVBhcmFtZXRlcnMpOgorCiAyMDE4LTEwLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBbGxvdyBpT1MgdG8gYWxzbyBj
b250cm9sIHRvZ2dsaW5nIFdlYiBBbmltYXRpb25zIENTUyBJbnRlZ3JhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuaWRsCmluZGV4IDE3OTc2
ZTY2NTc1ODFjNTIxYzYwYTRjZjgwMTYyZGIzNDJiMjNkNGYuLjFlYzliNjRhOTJmZjM0NGM2ODc4
ZmNkOTYyOWU4M2IyZDdiM2YzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NV2luZG93Q2FjaGVzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTVdpbmRvd0NhY2hlcy5pZGwKQEAgLTI2LDUgKzI2LDUgQEAKIFsKICAgICBFbmFibGVk
QXRSdW50aW1lPUNhY2hlQVBJLAogXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewotICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbiwgU2Vj
dXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUNhY2hlU3RvcmFn
ZSBjYWNoZXM7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93
RXhjZXB0aW9uLCBTZWN1cmVDb250ZXh0LCBDb250ZXh0SGFzU2VydmljZVdvcmtlclNjaGVtZSwg
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUNhY2hlU3RvcmFnZSBjYWNoZXM7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4
IGRiZTg5OGYxMTgyNTJmM2IyM2FjNzIwZGI3NDNjNzVjZjRmYmJmZjUuLmJhNWMzNjMyNGJjODM0
MDBlNDRiOGM5YzE1YjE1NWU1ODM3MGNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTUyOCwxNCArNTI4LDE0IEBAIFN0cmluZyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpkb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIGNvbnN0CiAgICAg
cmV0dXJuIG1fZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24uaXNOdWxsKCkgPyB0b3BPcmlnaW4oKS5k
b21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIDogbV9kb21haW5Gb3JDYWNoZVBhcnRpdGlvbjsKIH0K
IAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQogYm9vbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpoYXNTZXJ2aWNlV29ya2VyU2NoZW1lKCkKIHsKICAgICBBU1NFUlQoc2VjdXJpdHlPcmln
aW4oKSk7CiAgICAgcmV0dXJuIFNjaGVtZVJlZ2lzdHJ5Ojppc1NlcnZpY2VXb3JrZXJDb250YWlu
ZXJDdXN0b21TY2hlbWUoc2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSk7CiB9CiAKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCisKIFNlcnZpY2VXb3JrZXIqIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2FjdGl2
ZVNlcnZpY2VXb3JrZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaAppbmRleCAzYmRmY2M4MGRiZTZlNmFkYWQ1ODc3ZDFmZWUzMDExMjczNzZkNTYz
Li4yYjY0NzVlNjI3ZGNlZmQ1ZGRiNjQzNGUxNTE1NTQ2NWU1NWM0N2U0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTI0NCw4ICsyNDQsOCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRvbWFpbkZvckNhY2hlUGFydGl0aW9u
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXREb21haW5Gb3JDYWNoZVBhcnRpdGlvbihTdHJpbmcmJiBk
b21haW4pIHsgbV9kb21haW5Gb3JDYWNoZVBhcnRpdGlvbiA9IFdURk1vdmUoZG9tYWluKTsgfQog
Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGJvb2wgaGFzU2VydmljZVdvcmtlclNj
aGVtZSgpOworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBTZXJ2aWNlV29ya2VyKiBh
Y3RpdmVTZXJ2aWNlV29ya2VyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY3RpdmVTZXJ2aWNlV29y
a2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGEzZWMyNWQwZGY2Yjg2
N2RjOTBjZTE4NGE4NDZiMDdlMmE5OWUyMzEuLmVkZDUxZjg4NjIzM2IzN2U1ZTZlNmJiZjhkZjg1
NzQwZTE4MmExNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTMxLDIxICszMSwzMiBAQAogCiBuYW1lc3BhY2UgQVBJ
IHsKIAotc3RhdGljIFdlYnNpdGVEYXRhU3RvcmUqIGdsb2JhbERlZmF1bHREYXRhU3RvcmU7Citz
dGF0aWMgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+JiBnbG9iYWxEZWZhdWx0RGF0YVN0b3JlKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+PiBn
bG9iYWxEZWZhdWx0RGF0YVN0b3JlOworICAgIHJldHVybiBnbG9iYWxEZWZhdWx0RGF0YVN0b3Jl
LmdldCgpOworfQorCiAKIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpk
ZWZhdWx0RGF0YVN0b3JlKCkKIHsKICAgICBXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKCk7CiAK
LSAgICBpZiAoIWdsb2JhbERlZmF1bHREYXRhU3RvcmUpCi0gICAgICAgIGdsb2JhbERlZmF1bHRE
YXRhU3RvcmUgPSBhZG9wdFJlZihuZXcgV2Vic2l0ZURhdGFTdG9yZShkZWZhdWx0RGF0YVN0b3Jl
Q29uZmlndXJhdGlvbigpLCBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSkubGVh
a1JlZigpOworICAgIGF1dG8mIHN0b3JlID0gZ2xvYmFsRGVmYXVsdERhdGFTdG9yZSgpOworICAg
IGlmICghc3RvcmUpCisgICAgICAgIHN0b3JlID0gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3Rv
cmUoZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSwgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSkpOwogCi0gICAgcmV0dXJuICpnbG9iYWxEZWZhdWx0RGF0YVN0b3JlOwor
ICAgIHJldHVybiAqc3RvcmU7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZGVsZXRlRGVm
YXVsdERhdGFTdG9yZUZvclRlc3RpbmcoKQoreworICAgIGdsb2JhbERlZmF1bHREYXRhU3RvcmUo
KSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9y
ZUV4aXN0cygpCiB7Ci0gICAgcmV0dXJuIGdsb2JhbERlZmF1bHREYXRhU3RvcmU7CisgICAgcmV0
dXJuICEhZ2xvYmFsRGVmYXVsdERhdGFTdG9yZSgpOwogfQogCiBSZWY8V2Vic2l0ZURhdGFTdG9y
ZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaAppbmRl
eCA2NmVmYTU4NzYwYTdmZTdlMWZjMjY3ZGNjNDUyMjczMjlmZGQyODNhLi5jMjM4ZGY4YzdhOTIz
ZWMwZGE0OGRiZTNmNmM0M2NkYjAxYTI5OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3Mg
V2Vic2l0ZURhdGFTdG9yZSBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6
V2Vic2l0ZURhdGFTdG9yZT4KIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3Rv
cmU+IGRlZmF1bHREYXRhU3RvcmUoKTsKICAgICBzdGF0aWMgYm9vbCBkZWZhdWx0RGF0YVN0b3Jl
RXhpc3RzKCk7CisgICAgc3RhdGljIHZvaWQgZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3Rp
bmcoKTsKIAogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lz
dGVudERhdGFTdG9yZSgpOwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRl
TGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJhdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQppbmRleCBjNjQ5ZmY2Y2JjZWE1YTFkYTQ1ZjM2MGJlNTM5YzdkYmM0OTI4MzI2Li5lNDI2
YWMzNTZiM2M4NjUwMTZjM2MzOTIxY2Y0ZTAwMGQzZDljNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAg
LTE4NCw2ICsxODQsMTEgQEAgKyAoQk9PTClfZGVmYXVsdERhdGFTdG9yZUV4aXN0cwogICAgIHJl
dHVybiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVFeGlzdHMoKTsKIH0K
IAorKyAodm9pZClfZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3RpbmcKK3sKKyAgICByZXR1
cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGlu
ZygpOworfQorCiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2ZTJk
Mzk3ZjlmNTFiY2RhN2I0ZWQ4MWI3MTc0MGM4NjYyNDBhM2Y2Li43NGE4YTAyZjJmMWQ5ZWU5NWM5
N2FmOWE5NmUzYzYwMTMxOTIwMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTQw
LDYgKzQwLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRh
U3RvcmVGZXRjaE9wdGlvbnMpIHsKIAogKyAoTlNTZXQ8TlNTdHJpbmcgKj4gKilfYWxsV2Vic2l0
ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZhdGU7CiArIChCT09MKV9kZWZhdWx0RGF0YVN0b3JlRXhp
c3RzOworKyAodm9pZClfZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRlc3Rpbmc7CiAKIC0gKGlu
c3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZTkyMTgzMzI3YWJmODdhYmI2MjA2
NzA3ZTZhZTU4YTY1NmFiNWI0Li4xOGY3N2MwNzY4YzMwZWQwMTJlNzg5MGM1YjI5YTUzZWYzOTI2
MTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyMiwyMiArNjIyLDQwIEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
ICAgIG1fd2Vic2l0ZURhdGFTdG9yZXMucmVtb3ZlKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cmV0cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKK1dlYnNpdGVEYXRhU3RvcmUqIE5ldHdvcmtQcm9jZXNzUHJveHk6
OndlYnNpdGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJzaXRlRGF0YVN0b3Jlcy5maW5kKHNlc3Npb25J
RCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fd2Vic2l0ZURhdGFTdG9yZXMuZW5kKCkpIHsKKyAg
ICBpZiAoaXRlcmF0b3IgIT0gbV93ZWJzaXRlRGF0YVN0b3Jlcy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIGl0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKworICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0
b3JlID0gbV9wcm9jZXNzUG9vbC53ZWJzaXRlRGF0YVN0b3JlKCkpIHsKKyAgICAgICAgaWYgKHNl
c3Npb25JRCA9PSB3ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklE
KCkpCisgICAgICAgICAgICByZXR1cm4gJndlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3Rv
cmUoKTsKKyAgICB9CisKKyAgICBpZiAoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuICZB
UEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9y
ZSgpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJldHJpZXZlQ2FjaGVTdG9yYWdl
UGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgYXV0byogc3RvcmUg
PSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOworCisgICAgaWYgKCFz
dG9yZSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0b3JhZ2UsICIlcCAtIE5l
dHdvcmtQcm9jZXNzUHJveHkgaXMgdW5hYmxlIHRvIHJldHJpZXZlIENhY2hlU3RvcmFnZSBwYXJh
bWV0ZXJzIGZyb20gdGhlIGdpdmVuIHNlc3Npb24gSUQgJSIgUFJJdTY0LCB0aGlzLCBzZXNzaW9u
SUQuc2Vzc2lvbklEKCkpOwogICAgICAgICBhdXRvIHF1b3RhID0gbV9wcm9jZXNzUG9vbC53ZWJz
aXRlRGF0YVN0b3JlKCkgPyBtX3Byb2Nlc3NQb29sLndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vic2l0
ZURhdGFTdG9yZSgpLmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCkgOiBXZWJzaXRlRGF0YVN0
b3JlOjpkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7CiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lv
bklELCBxdW90YSwgeyB9LCB7IH0gfSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBhdXRvJiBzdG9yZSA9ICppdGVyYXRvci0+dmFsdWU7Ci0gICAgYXV0byYgY2FjaGVTdG9yYWdl
RGlyZWN0b3J5ID0gc3RvcmUuY2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgYXV0byYgY2Fj
aGVTdG9yYWdlRGlyZWN0b3J5ID0gc3RvcmUtPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwogICAg
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CiAgICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY2Fj
aGVTdG9yYWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
OwogCi0gICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENhY2hlU3RvcmFnZVBh
cmFtZXRlcnMgeyBzZXNzaW9uSUQsIHN0b3JlLmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKCks
IGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlIH0sIDApOworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDYWNoZVN0
b3JhZ2VQYXJhbWV0ZXJzIHsgc2Vzc2lvbklELCBzdG9yZS0+Y2FjaGVTdG9yYWdlUGVyT3JpZ2lu
UXVvdGEoKSwgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUgfSwgMCk7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAppbmRleCAyNTU4OTdlN2U4MjVlMTdiODNlOGIxNDY0YjQ4MDkxNzU2ZWEzMDA3Li41
MjM3YjhiOWEyOGViYWYyOWMzMGEzNGIwZTEwNTZmOTVjNjVhYWE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAt
MTY1LDYgKzE2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3NGb3JFeHBsaWNpdFNlc3Npb24oV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYsIFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgogCisgICAgV2Vic2l0
ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQp
OworCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2b2lkIGRpZEZpbmlzaExh
dW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMzcwZjc0NmI3MWJkYWZmZTJmYzE1NjIwYWM5NzU1YWRmMTc1OWQ5Ny4uYTQzY2EwOTI0
MzIyOTVmMjY2YzczYTk2Mjg3YzBmY2NjNzFhNjlmNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEwLTExICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJT1MgMTIgLSBTZXJ2
aWNlIHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjY5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NTAwOTk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgIEFkZCB0ZXN0IHRvIGVuc3VyZSB0aGF0
IENhY2hlU3RvcmFnZSB1c2UgdGhlIGRlZmF1bHQgd2Vic2l0ZSBkYXRhIHN0b3JlIHBhcmFtZXRl
cnMuCisKIDIwMTgtMTAtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIzNzAzNyk6IENhbm5vdCB1c2Ugd2Via2l0LXBhdGNo
IHVwbG9hZCwgYWx3YXlzIGZhaWxzIHdpdGggdW5rbm93biAnY2NfcmFkYXInCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCmluZGV4IGE1OGQyMDNjZGY4YzRkOWY4N2FkMDM5MDZhMjYyNDFmZTA0YjkyNWYu
LjRjYjhmYTk3YTY2YzhhN2ZkODQ1OWVlZDBhNDU4NDJiMmI4MWZhODMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCkBAIC0xOTQsNiArMTk0LDMyIEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6KFdLTmF2aWdhCiB9
CiBAZW5kCiAKK3N0YXRpYyBjb25zdCBjaGFyKiBtYWluQ2FjaGVTdG9yYWdlQnl0ZXMgPSBSIlNX
UkVTT1VSQ0UoCis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK2FzeW5jIGZ1
bmN0aW9uIGRvVGVzdCgpCit7CisgICAgY29uc3Qga2V5cyA9IGF3YWl0IHdpbmRvdy5jYWNoZXMu
a2V5cygpOworICAgIGlmICgha2V5cy5sZW5ndGgpIHsKKyAgICAgICAgY29uc3QgY2FjaGUgPSBh
d2FpdCB3aW5kb3cuY2FjaGVzLm9wZW4oIm15IGNhY2hlIik7CisgICAgICAgIGxvZygiTm8gY2Fj
aGUgc3RvcmFnZSBkYXRhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGtleXMu
bGVuZ3RoICE9PSAxKSB7CisgICAgICAgIGxvZygiVW5leHBlY3RlZCBjYWNoZSBudW1iZXIiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBsb2coIlNvbWUgY2FjaGUgc3RvcmFnZSBkYXRh
OiAiICsga2V5c1swXSk7Cit9Citkb1Rlc3QoKTsKKworPC9zY3JpcHQ+CispU1dSRVNPVVJDRSI7
CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBtYWluQnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCiA8c2NyaXB0
PgpAQCAtNTQxLDYgKzU2Nyw2MyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJvbURp
c2spCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCitURVNUKFNlcnZpY2VXb3JrZXJzLCBDYWNoZVN0
b3JhZ2VSZXN0b3JlRnJvbURpc2spCit7CisgICAgQVNTRVJUKG1haW5DYWNoZVN0b3JhZ2VCeXRl
cyk7CisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JB
bGxPcmlnaW5zXTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRhIHN0b3Jl
CisgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9m
VHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNp
bmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9kZWxl
dGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZ107CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbU1dTY2hlbWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNl
dCgic3c6Ly9ob3N0L21haW4uaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFp
bkNhY2hlU3RvcmFnZUJ5dGVzIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIG1lc3Nh
Z2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJGb3JSZXN0b3JlRnJvbURpc2tU
ZXN0IGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkTWVzc2FnZTpAIk5vIGNhY2hlIHN0b3JhZ2UgZGF0
YSJdKTsKKworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNj
cmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworICAg
IFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxT
Y2hlbWU6QCJTVyJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0
aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxl
OkAic3ciXTsKKworICAgIC8vIFRyaWdnZXIgY3JlYXRpb24gb2YgbmV0d29yayBwcm9jZXNzLgor
ICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3N5bmNOZXR3b3Jr
UHJvY2Vzc0Nvb2tpZXNdOworCisgICAgYXV0byAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1d
OworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICB3ZWJWaWV3ID0g
bnVsbHB0cjsKKyAgICBjb25maWd1cmF0aW9uID0gbnVsbHB0cjsKKyAgICBtZXNzYWdlSGFuZGxl
ciA9IG51bGxwdHI7CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMo
W1tTV01lc3NhZ2VIYW5kbGVyRm9yUmVzdG9yZUZyb21EaXNrVGVzdCBhbGxvY10gaW5pdFdpdGhF
eHBlY3RlZE1lc3NhZ2U6QCJTb21lIGNhY2hlIHN0b3JhZ2UgZGF0YTogbXkgY2FjaGUiXSk7CisK
KyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKyAgICBbY29uZmln
dXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAi
U1ciXTsKKworICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bv
b2wgX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdyJdOworCisg
ICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7Cit9CisKKwogVEVTVChTZXJ2aWNlV29ya2VycywgRmV0Y2hBZnRlclJlc3Rv
cmVGcm9tRGlzaykKIHsKICAgICBBU1NFUlQobWFpbkZvckZldGNoVGVzdEJ5dGVzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>