<?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>179800</bug_id>
          
          <creation_ts>2017-11-16 15:41:33 -0800</creation_ts>
          <short_desc>Use RunLoop and Mode from NetworkingContext if they are given</short_desc>
          <delta_ts>2017-11-17 13:33:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>179809</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jlewis3</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1372831</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-16 15:41:33 -0800</bug_when>
    <thetext>Always call performSelectorOnMainThread if we call callOnMainThread with a valid SchedulePairHashSet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372849</commentid>
    <comment_count>1</comment_count>
      <attachid>327119</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-16 15:57:06 -0800</bug_when>
    <thetext>Created attachment 327119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372855</commentid>
    <comment_count>2</comment_count>
      <attachid>327119</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-11-16 16:12:38 -0800</bug_when>
    <thetext>Comment on attachment 327119
Patch

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

&gt; Source/WTF/wtf/MainThread.cpp:158
&gt; +    if (pairs || needToSchedule)
&gt;          scheduleDispatchFunctionsOnMainThread(pairs);

This fixes the bug in one direction but not the other: If items supplying pairs are scheduled, a callOnMainThread that does not supply pairs will not be scheduled.

There&apos;s also another bug in this code: When we ultimately fire, we&apos;ll run tasks regardless of their pairs, including tasks that shouldn&apos;t run right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372863</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-11-16 16:20:05 -0800</bug_when>
    <thetext>Maybe a good way to fix this is to say that, if you do not supply pairs, you get the function queue optimizations, but if you do supply pairs, you just invoke performSelectorOnMainThread directly without any amortization. We believe that use of pairs is rare and not performance-critical, so this might be the simplest solution.

So, you would break out a helper function called scheduleDispatchFunctionOnMainThread(Function&lt;void()&gt;&amp;&amp;, SchedulePairHashSet*), and it it would do the Right Thing (TM). This would also make it trivial to honor not just the run loop mode but also the run loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372900</commentid>
    <comment_count>4</comment_count>
      <attachid>327131</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-16 17:01:51 -0800</bug_when>
    <thetext>Created attachment 327131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372919</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-11-16 17:28:26 -0800</bug_when>
    <thetext>r=me

Can we remove SchedulePairHashSet support from MainThread.h now?

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:54
&gt; +static void callOnMainThreadOrSchedule(Function&lt;void()&gt;&amp;&amp; function, SchedulePairHashSet* pairs)

I don&apos;t think &quot;OrSchedule&quot; adds value to this name. In all cases, we end up scheduling something on a run loop.

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:66
&gt; +    } else
&gt; +        callOnMainThread(WTFMove(function));

I think this function would read more clearly if the !pairs case came first as an early return. Then the rest of the logic doesn&apos;t need indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372920</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-16 17:36:35 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/224952/webkit

I&apos;ll do Geoff&apos;s suggested renaming and cleanups in a followup patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372924</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-16 17:40:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/35604879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372930</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-16 18:02:55 -0800</bug_when>
    <thetext>Cleaning up in https://bugs.webkit.org/show_bug.cgi?id=179809</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373111</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-17 09:51:57 -0800</bug_when>
    <thetext>This test introduced 80+ LayoutTest failures/timeouts on WK1 bots:

https://build.webkit.org/builders/Apple%20Sierra%20Release%20WK1%20%28Tests%29/builds/6192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373112</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-17 09:53:00 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #9)
&gt; This test introduced 80+ LayoutTest failures/timeouts on WK1 bots:
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20Sierra%20Release%20WK1%20%28Tests%29/builds/6192
s/test/change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373115</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-11-17 09:59:01 -0800</bug_when>
    <thetext>The test WebKitLegacy.ScheduleInRunLoop does pass as stated in the changelog, but it now intermittently times out on macOS Debug platforms:
https://build.webkit.org/builders/Apple%20Sierra%20Debug%20WK2%20(Tests)/builds/4058/steps/run-api-tests/logs/stdio
https://build.webkit.org/builders/Apple%20Sierra%20Debug%20WK2%20(Tests)/builds/4058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373116</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-17 10:02:33 -0800</bug_when>
    <thetext>Reverted r224952 for reason:

This change introduced LayoutTest failures on WK1.

Committed r224969: &lt;https://trac.webkit.org/changeset/224969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373163</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-17 11:06:19 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #12)
&gt; Reverted r224952 for reason:
&gt; 
&gt; This change introduced LayoutTest failures on WK1.
&gt; 
&gt; Committed r224969: &lt;https://trac.webkit.org/changeset/224969&gt;
Tests are green again after the rollout, so this was indeed the cause.
https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK1%20%28Tests%29/builds/6360</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373191</commentid>
    <comment_count>14</comment_count>
      <attachid>327206</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-17 11:50:23 -0800</bug_when>
    <thetext>Created attachment 327206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373194</commentid>
    <comment_count>15</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-11-17 11:59:09 -0800</bug_when>
    <thetext>Does this patch need review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373244</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-17 13:28:50 -0800</bug_when>
    <thetext>This is just a slight modification of the previous patch to only CFRunLoopPerformBlock if we&apos;re scheduled in a custom mode.  It works with UIWebView, it works with the app that&apos;s causing this bug, and it works with the WebKit tests, unlike the previous attempt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373250</commentid>
    <comment_count>17</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-17 13:33:42 -0800</bug_when>
    <thetext>http://trac.webkit.org/r224982</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327119</attachid>
            <date>2017-11-16 15:57:06 -0800</date>
            <delta_ts>2017-11-16 17:01:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179800-20171116155705.patch</filename>
            <type>text/plain</type>
            <size>2348</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ5MzcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTExLTE2ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGNhbGwgcGVyZm9ybVNl
bGVjdG9yT25NYWluVGhyZWFkIGlmIHdlIGNhbGwgY2FsbE9uTWFpblRocmVhZCB3aXRoIGEgdmFs
aWQgU2NoZWR1bGVQYWlySGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5ODAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTUxOTQyMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9N
YWluVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6CisgICAgICAg
IFdoZW4gd2UgY2FsbCBjYWxsT25NYWluVGhyZWFkLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0
byBvbmx5IGNhbGwgcGVyZm9ybVNlbGVjdG9yT25NYWluVGhyZWFkIGlmIHdlCisgICAgICAgIGhh
dmVuJ3QgYWxyZWFkeSBjYWxsZWQgaXQuICBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiB0aGF0IHJl
ZHVjZXMgdGhlIGJ1cmRlbiBvbiB0aGUgQ0ZSdW5Mb29wIGJlY2F1c2UKKyAgICAgICAgd2UgbWFu
YWdlIG91ciBvd24gZnVuY3Rpb24gcXVldWUuICBTb21ldGltZXMsIHRob3VnaCwgd2hlbiB0aGUg
ZnVuY3Rpb24gcXVldWUgaXMgZW1wdHkgYW5kIHdlIGNhbGwKKyAgICAgICAgY2FsbE9uTWFpblRo
cmVhZCBmcm9tIHNvbWV3aGVyZSB3aXRob3V0IGEgU2NoZWR1bGVQYWlySGFzaFNldCAoSSdtIHNl
ZWluZyBpdCBvZnRlbiBmcm9tCisgICAgICAgIFdURjo6U3RyaW5nV3JhcHBlckNGQWxsb2NhdG9y
OjpkZWFsbG9jYXRlIGJ1dCBpdCBjb3VsZCBiZSBmcm9tIGVsc2V3aGVyZSkgZm9sbG93ZWQgYnkg
YSBjYWxsT25NYWluVGhyZWFkCisgICAgICAgIGZyb20gV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlIHdpdGggYSBTY2hlZHVsZVBhaXJIYXNoU2V0LCB3ZSBhcmUg
bm90IGNhbGxpbmcKKyAgICAgICAgcGVyZm9ybVNlbGVjdG9yT25NYWluVGhyZWFkIGFnYWluLiAg
VGhpcyBpcyBhIHByb2JsZW0gaWYgd2UgYXJlIHJ1bm5pbmcgdGhlIHJ1biBsb29wIGluIGEgY3Vz
dG9tIHJ1biBsb29wIG1vZGUKKyAgICAgICAgYW5kIHNjaGVkdWxlZCB0aGUgZmlyc3QgZnVuY3Rp
b24gaW4gYSBkZWZhdWx0IHJ1biBsb29wIG1vZGUgYW5kIHRoZSBzZWNvbmQgd291bGQndmUgYmVl
biBzY2hlZHVsZWQgaW4gdGhlCisgICAgICAgIGN1c3RvbSBydW4gbG9vcCBtb2RlIGJ1dCBpdCB3
YXNuJ3QgYmVjYXVzZSB3ZSBzYXcgdGhhdCBhIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHNjaGVkdWxl
ZC4gIFdlIGZpeCB0aGlzIGJ5CisgICAgICAgIGp1c3QgYWx3YXlzIHNjaGVkdWxpbmcgaWYgd2Ug
aGF2ZSBhIGN1c3RvbSBydW4gbG9vcCBtb2RlLCB3aGljaCBvbmx5IGFmZmVjdHMgV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLAorICAgICAgICB3aGljaCBpcyBv
bmx5IHVzZWQgaW4gV2ViS2l0TGVnYWN5IGFuZCBXZWJLaXQgb24gRWwgQ2FwaXRhbi4KKwogMjAx
Ny0xMS0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEZpeCBmYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtcG9zdE1lc3NhZ2UtcmVjdXJzaXZl
Lmh0bWwgYWZ0ZXIgcjIyNDg5NgpJbmRleDogU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAJKHJldmlzaW9uIDIy
NDkwNSkKKysrIFNvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTQsNyArMTU0LDcgQEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4m
JgogICAgICAgICBmdW5jdGlvblF1ZXVlKCkuYXBwZW5kKFdURk1vdmUoZnVuY3Rpb24pKTsKICAg
ICB9CiAKLSAgICBpZiAobmVlZFRvU2NoZWR1bGUpCisgICAgaWYgKHBhaXJzIHx8IG5lZWRUb1Nj
aGVkdWxlKQogICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKHBh
aXJzKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327131</attachid>
            <date>2017-11-16 17:01:51 -0800</date>
            <delta_ts>2017-11-17 11:50:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179800-20171116170151.patch</filename>
            <type>text/plain</type>
            <size>7007</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTExLTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFJ1bkxv
b3AgYW5kIE1vZGUgZnJvbSBOZXR3b3JraW5nQ29udGV4dCBpZiB0aGV5IGFyZSBnaXZlbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODAwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zNTUxOTQyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKGNhbGxPbk1h
aW5UaHJlYWRPclNjaGVkdWxlKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJlZGlyZWN0
UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9u
UXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlIGNvbm5lY3Rpb246Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTpd
KToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNl
aXZlRGF0YTpsZW5ndGhSZWNlaXZlZDpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkU2VuZEJvZHlEYXRhOnRv
dGFsQnl0ZXNXcml0dGVuOnRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGU6XSk6CisgICAgICAgICgt
W1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9u
RGlkRmluaXNoTG9hZGluZzpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkRmFpbFdpdGhFcnJvcjpdKToKKyAg
ICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNv
bm5lY3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisKIDIwMTctMTEtMTYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbU2VydmljZSBXb3JrZXJdIEltcGxlbWVu
dCAiVHJ5IENsZWFyIFJlZ2lzdHJhdGlvbiIgYWxnb3JpdGhtCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
CShyZXZpc2lvbiAyMjQ5MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIlN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKICNpbXBvcnQgPHBhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAsNiArNTEs
MjEgQEAgc3RhdGljIFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bgogICAgIHJldHVy
biBoYW5kbGUtPmNvbnRleHQoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCk7CiB9CiAKK3N0YXRp
YyB2b2lkIGNhbGxPbk1haW5UaHJlYWRPclNjaGVkdWxlKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5j
dGlvbiwgU2NoZWR1bGVQYWlySGFzaFNldCogcGFpcnMpCit7CisgICAgaWYgKHBhaXJzICYmIHBh
aXJzLT5zaXplKCkpIHsKKyAgICAgICAgYXV0byBibG9jayA9IEJsb2NrUHRyPHZvaWQoKT46OmZy
b21DYWxsYWJsZShbYWxyZWFkeUNhbGxlZCA9IGZhbHNlLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVu
Y3Rpb24pXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChhbHJlYWR5Q2FsbGVkKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGFscmVhZHlDYWxsZWQgPSB0cnVlOwor
ICAgICAgICAgICAgZnVuY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgICAgIGZvciAoYXV0byYg
cGFpciA6ICpwYWlycykKKyAgICAgICAgICAgIENGUnVuTG9vcFBlcmZvcm1CbG9jayhwYWlyLT5y
dW5Mb29wKCksIHBhaXItPm1vZGUoKSwgYmxvY2suZ2V0KCkpOworICAgIH0gZWxzZQorICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUoZnVuY3Rpb24pKTsKK30KKwogQGltcGxlbWVudGF0
aW9uIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZQogCiAtIChp
ZClpbml0V2l0aEhhbmRsZTooUmVzb3VyY2VIYW5kbGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1l
c3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiopbWVzc2FnZVF1ZXVlCkBAIC0xMzIsNyArMTQ4
LDcgQEAgLSAoTlNVUkxSZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZQogICAgIGlmICht
X21lc3NhZ2VRdWV1ZSkKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2Vf
dW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJz
KG1faGFuZGxlKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWRPclNjaGVkdWxlKFdURk1vdmUo
d29yayksIHNjaGVkdWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRsZSkpOwogCiAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAg
cmV0dXJuIG1fcmVxdWVzdFJlc3VsdC5nZXQoKTsKQEAgLTE1Niw3ICsxNzIsNyBAQCAtICh2b2lk
KWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVl
KQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rp
b248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsK
KyAgICAgICAgY2FsbE9uTWFpblRocmVhZE9yU2NoZWR1bGUoV1RGTW92ZSh3b3JrKSwgc2NoZWR1
bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CiB9CiAKIC0gKEJPT0wpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZQpAQCAtMTc4LDcg
KzE5NCw3IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAgICBp
ZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQot
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxlZFJ1bkxvb3BQ
YWlycyhtX2hhbmRsZSkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkT3JTY2hlZHVsZShXVEZN
b3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsKIAogICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwog
ICAgIHJldHVybiBtX2Jvb2xSZXN1bHQ7CkBAIC0yMTcsNyArMjMzLDcgQEAgLSAodm9pZCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKICAg
ICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZv
aWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWRPclNjaGVkdWxlKFdURk1vdmUod29yayksIHNjaGVkdWxlZFJ1
bkxvb3BQYWlycyhtX2hhbmRsZSkpOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9z
ZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiB9CkBAIC0yNDYsNyArMjYyLDcgQEAg
LSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3Nh
Z2VRdWV1ZSkKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFu
ZGxlKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWRPclNjaGVkdWxlKFdURk1vdmUod29yayks
IHNjaGVkdWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRsZSkpOwogfQogCiAtICh2b2lkKWNvbm5lY3Rp
b246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkU2VuZEJvZHlEYXRhOihOU0ludGVn
ZXIpYnl0ZXNXcml0dGVuIHRvdGFsQnl0ZXNXcml0dGVuOihOU0ludGVnZXIpdG90YWxCeXRlc1dy
aXR0ZW4gdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZTooTlNJbnRlZ2VyKXRvdGFsQnl0ZXNFeHBl
Y3RlZFRvV3JpdGUKQEAgLTI2Niw3ICsyODIsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJM
Q29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3Nh
Z2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92
ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdv
cmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZE9yU2NoZWR1bGUoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1f
aGFuZGxlKSk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6KE5TVVJM
Q29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KQEAgLTI5MCw3ICszMDYsNyBAQCAtICh2b2lkKWNvbm5l
Y3Rpb25EaWRGaW5pc2hMb2FkaW5nOihOU1VSCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAg
ICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9p
ZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsKKyAgICAg
ICAgY2FsbE9uTWFpblRocmVhZE9yU2NoZWR1bGUoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVu
TG9vcFBhaXJzKG1faGFuZGxlKSk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25u
ZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKQEAg
LTMxNCw3ICszMzAsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNv
CiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5k
KHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAg
IGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRS
dW5Mb29wUGFpcnMobV9oYW5kbGUpKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZE9yU2NoZWR1
bGUoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CiB9CiAK
IApAQCAtMzM4LDcgKzM1NCw3IEBAIC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiljb25uZWN0aW9u
OihOU1UKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7
CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVk
dWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRsZSkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkT3JT
Y2hlZHVsZShXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsK
IAogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1F
X0ZPUkVWRVIpOwogICAgIHJldHVybiBtX2NhY2hlZFJlc3BvbnNlUmVzdWx0LmdldCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327206</attachid>
            <date>2017-11-17 11:50:23 -0800</date>
            <delta_ts>2017-11-17 11:51:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179800-20171117115022.patch</filename>
            <type>text/plain</type>
            <size>15051</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDk2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTExLTE3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFJ1bkxv
b3AgYW5kIE1vZGUgZnJvbSBOZXR3b3JraW5nQ29udGV4dCBpZiB0aGV5IGFyZSBnaXZlbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODAwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zNTUxOTQyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmFk
eSBFaWRzb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgIChjYWxsT25NYWlu
VGhyZWFkT3JTY2hlZHVsZSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpyZWRpcmVjdFJl
c3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6
XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6XSk6
CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2
ZURhdGE6bGVuZ3RoUmVjZWl2ZWQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFNlbmRCb2R5RGF0YTp0b3Rh
bEJ5dGVzV3JpdHRlbjp0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbkRp
ZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAg
ICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25u
ZWN0aW9uOndpbGxDYWNoZVJlc3BvbnNlOl0pOgorCiAyMDE3LTExLTE3ICBSeWFuIEhhZGRhZCAg
PHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMjQ5NTIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjQ5NjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDIxICszNyw0OCBA
QAogI2ltcG9ydCAiU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYkNvcmVV
UkxSZXNwb25zZS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBv
cnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3N0YXRpYyBib29sIHNjaGVk
dWxlZFdpdGhDdXN0b21SdW5Mb29wTW9kZShTY2hlZHVsZVBhaXJIYXNoU2V0KiBwYWlycykKIHsK
LSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKCFoYW5k
bGUtPmNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGhhbmRs
ZS0+Y29udGV4dCgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKTsKKyAgICBpZiAoIXBhaXJzKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChhdXRvJiBwYWlyIDogKnBhaXJzKSB7Cisg
ICAgICAgIGF1dG8gbW9kZSA9IHBhaXItPm1vZGUoKTsKKyAgICAgICAgaWYgKG1vZGUgIT0ga0NG
UnVuTG9vcENvbW1vbk1vZGVzICYmIG1vZGUgIT0ga0NGUnVuTG9vcERlZmF1bHRNb2RlKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogQGlt
cGxlbWVudGF0aW9uIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZQogCistICh2b2lkKWNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDooRnVuY3Rpb248dm9pZCgpPiYm
KWZ1bmN0aW9uCit7CisgICAgLy8gU3luYyB4aHIgdXNlcyB0aGUgbWVzc2FnZSBxdWV1ZS4KKyAg
ICBpZiAobV9tZXNzYWdlUXVldWUpCisgICAgICAgIHJldHVybiBtX21lc3NhZ2VRdWV1ZS0+YXBw
ZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZShmdW5jdGlvbikp
KTsKKworICAgIC8vIFRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlLgorICAgIFNjaGVkdWxlUGFpckhh
c2hTZXQqIHBhaXJzID0gbV9oYW5kbGUgJiYgbV9oYW5kbGUtPmNvbnRleHQoKSA/IG1faGFuZGxl
LT5jb250ZXh0KCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDogbnVsbHB0cjsKKyAgICBpZiAo
IXNjaGVkdWxlZFdpdGhDdXN0b21SdW5Mb29wTW9kZShwYWlycykpCisgICAgICAgIHJldHVybiBj
YWxsT25NYWluVGhyZWFkKFdURk1vdmUoZnVuY3Rpb24pKTsKKyAgICAKKyAgICAvLyBJZiB3ZSBo
YXZlIGJlZW4gc2NoZWR1bGVkIGluIGEgY3VzdG9tIHJ1biBsb29wIG1vZGUsIHNjaGVkdWxlIGEg
YmxvY2sgaW4gdGhhdCBtb2RlLgorICAgIGF1dG8gYmxvY2sgPSBCbG9ja1B0cjx2b2lkKCk+Ojpm
cm9tQ2FsbGFibGUoW2FscmVhZHlDYWxsZWQgPSBmYWxzZSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhbHJlYWR5Q2FsbGVkKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBhbHJlYWR5Q2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgZnVu
Y3Rpb24oKTsKKyAgICAgICAgZnVuY3Rpb24gPSBudWxscHRyOworICAgIH0pOworICAgIGZvciAo
YXV0byYgcGFpciA6ICpwYWlycykKKyAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKHBhaXIt
PnJ1bkxvb3AoKSwgcGFpci0+bW9kZSgpLCBibG9jay5nZXQoKSk7Cit9CisKIC0gKGlkKWluaXRX
aXRoSGFuZGxlOihSZXNvdXJjZUhhbmRsZSopaGFuZGxlIG1lc3NhZ2VRdWV1ZTooTWVzc2FnZVF1
ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiltZXNzYWdlUXVldWUKIHsKICAgICBzZWxmID0gW3NlbGYg
aW5pdF07CkBAIC0xMTYsNyArMTQzLDcgQEAgLSAoTlNVUkxSZXF1ZXN0ICopY29ubmVjdGlvbjoo
TlNVUkxDb25uZQogICAgICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25u
ZWN0aW9uOiVwIHdpbGxTZW5kUmVxdWVzdDolQCByZWRpcmVjdFJlc3BvbnNlOm5vbi1IVFRQIiwg
bV9oYW5kbGUsIGNvbm5lY3Rpb24sIFtuZXdSZXF1ZXN0IGRlc2NyaXB0aW9uXSk7IAogI2VuZGlm
CiAKLSAgICBhdXRvIHdvcmsgPSBbc2VsZiA9IHNlbGYsIHByb3RlY3RlZFNlbGYgPSBSZXRhaW5Q
dHI8aWQ+KHNlbGYpLCBuZXdSZXF1ZXN0ID0gUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4obmV3UmVx
dWVzdCksIHJlZGlyZWN0UmVzcG9uc2UgPSBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4ocmVkaXJl
Y3RSZXNwb25zZSldICgpIG11dGFibGUgeworICAgIGF1dG8gd29yayA9IFtzZWxmID0gc2VsZiwg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgbmV3UmVxdWVzdCA9IHJldGFpblB0cihu
ZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSA9IHJldGFpblB0cihyZWRpcmVjdFJlc3BvbnNl
KV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUpIHsKICAgICAgICAgICAgIG1f
cmVxdWVzdFJlc3VsdCA9IG51bGxwdHI7CiAgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
c2lnbmFsKG1fc2VtYXBob3JlKTsKQEAgLTEyOSwxMSArMTU2LDcgQEAgLSAoTlNVUkxSZXF1ZXN0
ICopY29ubmVjdGlvbjooTlNVUkxDb25uZQogICAgICAgICB9KTsKICAgICB9OwogCi0gICAgaWYg
KG1fbWVzc2FnZVF1ZXVlKQotICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwotICAgIGVsc2UKLSAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFp
cnMobV9oYW5kbGUpKTsKLQorICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZN
b3ZlKHdvcmspXTsKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElT
UEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICByZXR1cm4gbV9yZXF1ZXN0UmVzdWx0LmdldCgpOwog
fQpAQCAtMTQ1LDcgKzE2OCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9u
ICopY28KIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rpb246
JXAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiVwIiwgbV9oYW5kbGUsIGNvbm5l
Y3Rpb24sIGNoYWxsZW5nZSk7CiAKLSAgICBhdXRvIHdvcmsgPSBbc2VsZiwgcHJvdGVjdGVkU2Vs
ZiA9IFJldGFpblB0cjxpZD4oc2VsZiksIGNoYWxsZW5nZSA9IFJldGFpblB0cjxOU1VSTEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlPihjaGFsbGVuZ2UpXSAoKSBtdXRhYmxlIHsKKyAgICBhdXRvIHdv
cmsgPSBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2hhbGxlbmdlID0g
cmV0YWluUHRyKGNoYWxsZW5nZSldICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1faGFuZGxl
KSB7CiAgICAgICAgICAgICBbW2NoYWxsZW5nZSBzZW5kZXJdIGNhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOmNoYWxsZW5nZS5nZXQoKV07CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNTMs
MTAgKzE3Niw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAg
ICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb3JlKGNo
YWxsZW5nZS5nZXQoKSkpOwogICAgIH07CiAKLSAgICBpZiAobV9tZXNzYWdlUXVldWUpCi0gICAg
ICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lk
KCk+PihXVEZNb3ZlKHdvcmspKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFdURk1vdmUod29yayksIHNjaGVkdWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRsZSkpOworICAgIFtz
ZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdvcmspXTsKIH0KIAogLSAoQk9P
TCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KE5TVVJMUHJvdGVjdGlvblNwYWNlICopcHJvdGVjdGlv
blNwYWNlCkBAIC0xNjYsNyArMTg2LDcgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljbwogCiAgICAgTE9HKE5ldHdvcmssICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVj
dGlvbjolcCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOiVAOi8vJUA6JXUg
cmVhbG06JUAgbWV0aG9kOiVAICVAJUAiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgW3Byb3RlY3Rp
b25TcGFjZSBwcm90b2NvbF0sIFtwcm90ZWN0aW9uU3BhY2UgaG9zdF0sIFtwcm90ZWN0aW9uU3Bh
Y2UgcG9ydF0sIFtwcm90ZWN0aW9uU3BhY2UgcmVhbG1dLCBbcHJvdGVjdGlvblNwYWNlIGF1dGhl
bnRpY2F0aW9uTWV0aG9kXSwgW3Byb3RlY3Rpb25TcGFjZSBpc1Byb3h5XSA/IEAicHJveHk6IiA6
IEAiIiwgW3Byb3RlY3Rpb25TcGFjZSBpc1Byb3h5XSA/IFtwcm90ZWN0aW9uU3BhY2UgcHJveHlU
eXBlXSA6IEAiIik7CiAKLSAgICBhdXRvIHdvcmsgPSBbc2VsZiA9IHNlbGYsIHByb3RlY3RlZFNl
bGYgPSBSZXRhaW5QdHI8aWQ+KHNlbGYpLCBwcm90ZWN0aW9uU3BhY2UgPSBSZXRhaW5QdHI8TlNV
UkxQcm90ZWN0aW9uU3BhY2U+KHByb3RlY3Rpb25TcGFjZSldICgpIG11dGFibGUgeworICAgIGF1
dG8gd29yayA9IFtzZWxmID0gc2VsZiwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwg
cHJvdGVjdGlvblNwYWNlID0gcmV0YWluUHRyKHByb3RlY3Rpb25TcGFjZSldICgpIG11dGFibGUg
ewogICAgICAgICBpZiAoIW1faGFuZGxlKSB7CiAgICAgICAgICAgICBtX2Jvb2xSZXN1bHQgPSBO
TzsKICAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOwpA
QCAtMTc1LDExICsxOTUsNyBAQCAtIChCT09MKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvCiAgICAgICAgIG1faGFuZGxlLT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlKFByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2UuZ2V0KCkpKTsKICAgICB9OwogCi0g
ICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQotICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwotICAgIGVs
c2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5M
b29wUGFpcnMobV9oYW5kbGUpKTsKLQorICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVh
ZDpXVEZNb3ZlKHdvcmspXTsKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9y
ZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICByZXR1cm4gbV9ib29sUmVzdWx0OwogfQpA
QCAtMTkwLDcgKzIwNiw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICop
Y28KIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rpb246JXAg
ZGlkUmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQgTUlNRVR5cGUg
JyVzJykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBbW3IgTUlNRVR5
cGVdIFVURjhTdHJpbmddKTsKIAotICAgIGF1dG8gd29yayA9IFtzZWxmID0gc2VsZiwgcHJvdGVj
dGVkU2VsZiA9IFJldGFpblB0cjxpZD4oc2VsZiksIHIgPSBSZXRhaW5QdHI8TlNVUkxSZXNwb25z
ZT4ociksIGNvbm5lY3Rpb24gPSBSZXRhaW5QdHI8TlNVUkxDb25uZWN0aW9uPihjb25uZWN0aW9u
KV0gKCkgbXV0YWJsZSB7CisgICAgYXV0byB3b3JrID0gW3NlbGYgPSBzZWxmLCBwcm90ZWN0ZWRT
ZWxmID0gcmV0YWluUHRyKHNlbGYpLCByID0gcmV0YWluUHRyKHIpLCBjb25uZWN0aW9uID0gcmV0
YWluUHRyKGNvbm5lY3Rpb24pXSAoKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBwcm90ZWN0ZWRIYW5kbGUobV9oYW5kbGUpOwogICAgICAgICBpZiAoIW1faGFuZGxl
IHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpIHsKICAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9y
ZV9zaWduYWwobV9zZW1hcGhvcmUpOwpAQCAtMjE0LDExICsyMzAsNyBAQCAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZl
UmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CiAgICAgfTsKIAotICAgIGlmICht
X21lc3NhZ2VRdWV1ZSkKLSAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2Vf
dW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKLSAgICBlbHNlCi0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJz
KG1faGFuZGxlKSk7Ci0KKyAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92
ZSh3b3JrKV07CiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BB
VENIX1RJTUVfRk9SRVZFUik7CiB9CiAKQEAgLTIzMCw3ICsyNDIsNyBAQCAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAl
cCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2VpdmVEYXRhOiVwIGxlbmd0aFJlY2VpdmVk
OiVsbGQiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgZGF0YSwgbGVuZ3RoUmVjZWl2ZWQpOwogCi0g
ICAgYXV0byB3b3JrID0gW3NlbGYgPSBzZWxmLCBwcm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPGlk
PihzZWxmKSwgZGF0YSA9IFJldGFpblB0cjxOU0RhdGE+KGRhdGEpXSAoKSBtdXRhYmxlIHsKKyAg
ICBhdXRvIHdvcmsgPSBbc2VsZiA9IHNlbGYsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2Vs
ZiksIGRhdGEgPSByZXRhaW5QdHIoZGF0YSldICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1f
aGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIC8vIEZJWE1FOiBJZiB3ZSBnZXQgbW9yZSB0aGFuIDJCIGJ5dGVzIGluIGEgc2luZ2xlIGNo
dW5rLCB0aGlzIGNvZGUgd29uJ3QgZG8gdGhlIHJpZ2h0IHRoaW5nLgpAQCAtMjQzLDEwICsyNTUs
NyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgICAgIG1f
aGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZUJ1ZmZlcihtX2hhbmRsZSwgU2hhcmVkQnVmZmVy
OjpjcmVhdGUoZGF0YS5nZXQoKSksIC0xKTsKICAgICB9OwogCi0gICAgaWYgKG1fbWVzc2FnZVF1
ZXVlKQotICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVu
Y3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUp
KTsKKyAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92ZSh3b3JrKV07CiB9
CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRT
ZW5kQm9keURhdGE6KE5TSW50ZWdlcilieXRlc1dyaXR0ZW4gdG90YWxCeXRlc1dyaXR0ZW46KE5T
SW50ZWdlcil0b3RhbEJ5dGVzV3JpdHRlbiB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlOihOU0lu
dGVnZXIpdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZQpAQCAtMjU3LDE2ICsyNjYsMTMgQEAgLSAo
dm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogCiAgICAgTE9HKE5ldHdvcmss
ICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVjdGlvbjolcCBkaWRTZW5kQm9keURhdGE6JWQgdG90
YWxCeXRlc1dyaXR0ZW46JWQgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZTolZCIsIG1faGFuZGxl
LCBjb25uZWN0aW9uLCBieXRlc1dyaXR0ZW4sIHRvdGFsQnl0ZXNXcml0dGVuLCB0b3RhbEJ5dGVz
RXhwZWN0ZWRUb1dyaXRlKTsKIAotICAgIGF1dG8gd29yayA9IFtzZWxmID0gc2VsZiwgcHJvdGVj
dGVkU2VsZiA9IFJldGFpblB0cjxpZD4oc2VsZiksIHRvdGFsQnl0ZXNXcml0dGVuID0gdG90YWxC
eXRlc1dyaXR0ZW4sIHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUgPSB0b3RhbEJ5dGVzRXhwZWN0
ZWRUb1dyaXRlXSAoKSBtdXRhYmxlIHsKKyAgICBhdXRvIHdvcmsgPSBbc2VsZiA9IHNlbGYsIHBy
b3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIHRvdGFsQnl0ZXNXcml0dGVuID0gdG90YWxC
eXRlc1dyaXR0ZW4sIHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUgPSB0b3RhbEJ5dGVzRXhwZWN0
ZWRUb1dyaXRlXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2hhbmRsZSB8fCAhbV9oYW5k
bGUtPmNsaWVudCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2hhbmRsZS0+Y2xp
ZW50KCktPmRpZFNlbmREYXRhKG1faGFuZGxlLCB0b3RhbEJ5dGVzV3JpdHRlbiwgdG90YWxCeXRl
c0V4cGVjdGVkVG9Xcml0ZSk7CiAgICAgfTsKIAotICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKLSAg
ICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZv
aWQoKT4+KFdURk1vdmUod29yaykpKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CisgICAg
W3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayldOwogfQogCiAtICh2
b2lkKWNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0
aW9uCkBAIC0yNzYsNyArMjgyLDcgQEAgLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGlu
ZzooTlNVUgogCiAgICAgTE9HKE5ldHdvcmssICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6JXAiLCBtX2hhbmRsZSwgY29ubmVjdGlvbik7CiAKLSAgICBhdXRv
IHdvcmsgPSBbc2VsZiA9IHNlbGYsIHByb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8aWQ+KHNlbGYp
XSAoKSBtdXRhYmxlIHsKKyAgICBhdXRvIHdvcmsgPSBbc2VsZiA9IHNlbGYsIHByb3RlY3RlZFNl
bGYgPSByZXRhaW5QdHIoc2VsZildICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1faGFuZGxl
IHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI4Nywx
MCArMjkzLDcgQEAgLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNVUgogICAg
ICAgICB9CiAgICAgfTsKIAotICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKLSAgICAgICAgbV9tZXNz
YWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1v
dmUod29yaykpKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3
b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CisgICAgW3NlbGYgY2FsbEZ1
bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayldOwogfQogCiAtICh2b2lkKWNvbm5lY3Rp
b246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJv
ciAqKWVycm9yCkBAIC0zMDAsNyArMzAzLDcgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljbwogCiAgICAgTE9HKE5ldHdvcmssICJIYW5kbGUgJXAgZGVsZWdhdGUgY29u
bmVjdGlvbjolcCBkaWRGYWlsV2l0aEVycm9yOiVAIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIGVy
cm9yKTsKIAotICAgIGF1dG8gd29yayA9IFtzZWxmID0gc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFJl
dGFpblB0cjxpZD4oc2VsZiksIGVycm9yID0gUmV0YWluUHRyPE5TRXJyb3I+KGVycm9yKV0gKCkg
bXV0YWJsZSB7CisgICAgYXV0byB3b3JrID0gW3NlbGYgPSBzZWxmLCBwcm90ZWN0ZWRTZWxmID0g
cmV0YWluUHRyKHNlbGYpLCBlcnJvciA9IHJldGFpblB0cihlcnJvcildICgpIG11dGFibGUgewog
ICAgICAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKQEAgLTMxMSwxMCArMzE0LDcgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VS
TENvbm5lY3Rpb24gKiljbwogICAgICAgICB9CiAgICAgfTsKIAotICAgIGlmIChtX21lc3NhZ2VR
dWV1ZSkKLSAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1
bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxl
KSk7CisgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayldOwog
fQogCiAKQEAgLTMyNSw3ICszMjUsNyBAQCAtIChOU0NhY2hlZFVSTFJlc3BvbnNlICopY29ubmVj
dGlvbjooTlNVCiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0
aW9uOiVwIHdpbGxDYWNoZVJlc3BvbnNlOiVwIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIGNhY2hl
ZFJlc3BvbnNlKTsKIAotICAgIGF1dG8gd29yayA9IFtzZWxmID0gc2VsZiwgcHJvdGVjdGVkU2Vs
ZiA9IFJldGFpblB0cjxpZD4oc2VsZiksIGNhY2hlZFJlc3BvbnNlID0gUmV0YWluUHRyPE5TQ2Fj
aGVkVVJMUmVzcG9uc2U+KGNhY2hlZFJlc3BvbnNlKV0gKCkgbXV0YWJsZSB7CisgICAgYXV0byB3
b3JrID0gW3NlbGYgPSBzZWxmLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBjYWNo
ZWRSZXNwb25zZSA9IHJldGFpblB0cihjYWNoZWRSZXNwb25zZSldICgpIG11dGFibGUgewogICAg
ICAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpIHsKICAgICAgICAgICAg
IG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQgPSBudWxscHRyOwogICAgICAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CkBAIC0zMzUsMTEgKzMzNSw3IEBAIC0gKE5T
Q2FjaGVkVVJMUmVzcG9uc2UgKiljb25uZWN0aW9uOihOU1UKICAgICAgICAgbV9oYW5kbGUtPmNs
aWVudCgpLT53aWxsQ2FjaGVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBjYWNoZWRSZXNwb25zZS5n
ZXQoKSk7CiAgICAgfTsKIAotICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKLSAgICAgICAgbV9tZXNz
YWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1v
dmUod29yaykpKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3
b3JrKSwgc2NoZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7Ci0KKyAgICBbc2VsZiBjYWxs
RnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92ZSh3b3JrKV07CiAgICAgZGlzcGF0Y2hfc2VtYXBo
b3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAgcmV0dXJu
IG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQuZ2V0KCk7CiB9CkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ5NzMpCisrKyBUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0xMS0xNyAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVz
ZSBSdW5Mb29wIGFuZCBNb2RlIGZyb20gTmV0d29ya2luZ0NvbnRleHQgaWYgdGhleSBhcmUgZ2l2
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTgw
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU1MTk0MjE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgIFJlcGVhdGVkbHkgaXRlcmF0ZSB0aGUgcnVubG9vcC4gVGhpcyBpcyBtb3JlIGxp
a2UgdGhlIHByb2dyYW0gdGhhdCBpcyBjYXVzaW5nIHRoZXNlIGlzc3Vlcy4KKwogMjAxNy0xMS0x
NiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5D
YWlyb10gVXBkYXRlIFdpbkNhaXJvUmVxdWlyZW1lbnRzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1t
CShyZXZpc2lvbiAyMjQ5NjgpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJW
aWV3U2NoZWR1bGVJblJ1bkxvb3AubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
VEVTVChXZWJLaXRMZWdhY3ksIFNjaGVkdWxlSW5SdW5Mb29wKQogICAgIH0KIAogICAgIHdoaWxl
IChsb2Fkc0ZpbmlzaGVkIDwgd2ViVmlld0NvdW50KQotICAgICAgICBDRlJ1bkxvb3BSdW5Jbk1v
ZGUoQ0ZTVFIoIlRlc3RSdW5Mb29wTW9kZSIpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
Om1heCgpLCB0cnVlKTsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKENGU1RSKCJUZXN0UnVu
TG9vcE1vZGUiKSwgLjAwMSwgdHJ1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>