<?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>212537</bug_id>
          
          <creation_ts>2020-05-29 11:30:00 -0700</creation_ts>
          <short_desc>ASSERTION FAILURE (r220931): !m_function in ~CompletionHandler() after switch tabs</short_desc>
          <delta_ts>2020-06-01 09:30:58 -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>WebKit Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>175721</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1657363</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-29 11:30:00 -0700</bug_when>
    <thetext>Seen on iOS when switching tabs.

Backtrace looks like:

#0  0x000000013000120e in ::WTFCrash()
#1  0x00000001010df977 in WTF::CompletionHandler&lt;void ()&gt;::~CompletionHandler()
#2  0x00000001010dd155 in WTF::CompletionHandler&lt;void ()&gt;::~CompletionHandler()
#3  0x00000001022f60ee in WebKit::WebProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_8::~$_8()
#4  0x00000001022e7495 in WebKit::WebProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_8::~$_8()
#5  0x0000000102314c95 in WTF::Detail::CallableWrapper&lt;WebKit::WebProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_8, void, bool&gt;::~CallableWrapper()
#6  0x0000000102314b95 in WTF::Detail::CallableWrapper&lt;WebKit::WebProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_8, void, bool&gt;::~CallableWrapper()
#7  0x0000000102314bbc in WTF::Detail::CallableWrapper&lt;WebKit::WebProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_8, void, bool&gt;::~CallableWrapper()
#8  0x000000010113e06f in std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt; &gt;::operator()(WTF::Detail::CallableWrapperBase&lt;void, bool&gt;*)
#9  0x000000010113dfef in std::__1::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt;, std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt; &gt; &gt;::reset(WTF::Detail::CallableWrapperBase&lt;void, bool&gt;*)
#10 0x000000010113df89 in std::__1::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt;, std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt; &gt; &gt;::~unique_ptr()
#11 0x000000010113df65 in std::__1::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt;, std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void, bool&gt; &gt; &gt;::~unique_ptr()
#12 0x000000010113df45 in WTF::Function&lt;void (bool)&gt;::~Function()
#13 0x000000010113dec5 in WTF::Function&lt;void (bool)&gt;::~Function()
#14 0x00000001022f6c7e in WebKit::WebProcess::markAllLayersVolatile(WTF::Function&lt;void (bool)&gt;&amp;&amp;)::$_2::~$_2()
#15 0x00000001022e7585 in WebKit::WebProcess::markAllLayersVolatile(WTF::Function&lt;void (bool)&gt;&amp;&amp;)::$_2::~$_2()
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657364</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-29 11:30:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/63766838&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657378</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-29 12:19:08 -0700</bug_when>
    <thetext>Steps to repro:

1. Open one tab to apple.com
2. Create a new tab showing favorites view
3. Switch to apple.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657379</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-29 12:21:14 -0700</bug_when>
    <thetext>I suspect the issue could be related to WebProcess::cancelMarkAllLayersVolatile(), which I believe gets called when cancelling suspension. cancelMarkAllLayersVolatile() destroys m_pageMarkingLayersAsVolatileCounter which may not have called its CompletionHandler yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657386</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-29 12:50:51 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; I suspect the issue could be related to
&gt; WebProcess::cancelMarkAllLayersVolatile(), which I believe gets called when
&gt; cancelling suspension. cancelMarkAllLayersVolatile() destroys
&gt; m_pageMarkingLayersAsVolatileCounter which may not have called its
&gt; CompletionHandler yet.

Yes, this is what I see:
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   WebKit                              0x0000000101014b20 WTFCrashWithInfo(int, char const*, char const*, int) + 20
1   WebKit                              0x00000001014930c4 WTF::Detail::CallableWrapper&lt;WebKit::WebProcess::markAllLayersVolatile(WTF::CompletionHandler&lt;void (bool)&gt;&amp;&amp;)::$_2, void, WTF::RefCounterEvent&gt;::call(WTF::RefCounterEvent) + 0
2   WebKit                              0x0000000101493560 std::__1::unique_ptr&lt;WTF::RefCounter&lt;WebKit::WebProcess::PageMarkingLayersAsVolatileCounterType&gt;, std::__1::default_delete&lt;WTF::RefCounter&lt;WebKit::WebProcess::PageMarkingLayersAsVolatileCounterType&gt; &gt; &gt;::reset(WTF::RefCounter&lt;WebKit::WebProcess::PageMarkingLayersAsVolatileCounterType&gt;*) + 76
3   WebKit                              0x000000010148edfc WebKit::WebProcess::cancelMarkAllLayersVolatile() + 40
4   WebKit                              0x000000010148f080 WebKit::WebProcess::processDidResume() + 192
5   WebKit                              0x000000010102e4d0 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;) + 204
6   WebKit                              0x000000010102e780 IPC::Connection::dispatchOneIncomingMessage() + 232
7   JavaScriptCore                      0x00000001039aa324 WTF::RunLoop::performWork() + 688
8   JavaScriptCore                      0x00000001039aa4e0 WTF::RunLoop::performWork(void*) + 36
9   CoreFoundation                      0x00000001b1c5bb04 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657426</commentid>
    <comment_count>5</comment_count>
      <attachid>400616</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-29 14:21:10 -0700</bug_when>
    <thetext>Created attachment 400616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657942</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-01 09:30:57 -0700</bug_when>
    <thetext>Committed r262380: &lt;https://trac.webkit.org/changeset/262380&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400616.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400616</attachid>
            <date>2020-05-29 14:21:10 -0700</date>
            <delta_ts>2020-06-01 09:30:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212537-20200529142110.patch</filename>
            <type>text/plain</type>
            <size>15763</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3NGNjNTgzMjNkZDJlY2Q2
MzAzNTkwNGRjYjhmMzU0NjA5OGZjZTguLjgwNTQyZjg2N2U2MmY2MjYwYTE5YmQ3YjljOTMwNDhj
NGU2MWE2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDUtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlRJT04gRkFJTFVSRSAocjIy
MDkzMSk6ICFtX2Z1bmN0aW9uIGluIH5Db21wbGV0aW9uSGFuZGxlcigpIGFmdGVyIHN3aXRjaCB0
YWJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1
MzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzY2ODM4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gV2ViUGFnZTo6bWFya0FsbExheWVy
c1ZvbGF0aWxlKCksIGl0IHdvdWxkIGRlc3Ryb3kgbV9wYWdlTWFya2luZ0xheWVyc0FzVm9sYXRp
bGVDb3VudGVyLAorICAgICAgICB3aGljaCBtYXkgbm90IGhhdmUgY2FsbGVkIGl0cyBjb21wbGV0
aW9uIGhhbmRsZXIgeWV0LiBBcyBhIHJlc3VsdCwgd2Ugd291bGQgaGl0IGFuIGFzc2VydGlvbgor
ICAgICAgICBpbiB0aGUgQ29tcGxldGlvbkhhbmRsZXIgZGVzdHJ1Y3Rvci4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y2FsbFZvbGF0aWxpdHlDb21wbGV0aW9uSGFuZGxlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpj
YW5jZWxNYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmNhbmNlbE1hcmtBbGxMYXllcnNWb2xhdGlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisKIDIwMjAtMDUtMjkgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmVydCBzd2l0Y2ggdG8gWENCdWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNzg5NzdhODlkM2JhYzYzMTlmMmU0
YTRkZWRiYTUxNjc2Nzg3MmYxLi40YWFjYmRlMmNhMzM4OGIwNmIxNDE1ODVlYmIyYzZlNDM2MDBh
NTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMjU3Niw3ICsyNTc2LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVEcmF3aW5nQXJlYUxheWVy
VHJlZUZyZWV6ZVN0YXRlKCkKIAogdm9pZCBXZWJQYWdlOjpjYWxsVm9sYXRpbGl0eUNvbXBsZXRp
b25IYW5kbGVycyhib29sIHN1Y2NlZWRlZCkKIHsKLSAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVy
cyA9IFdURk1vdmUobV9tYXJrTGF5ZXJzQXNWb2xhdGlsZUNvbXBsZXRpb25IYW5kbGVycyk7Cisg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlcnMgPSBzdGQ6OmV4Y2hhbmdlKG1fbWFya0xheWVyc0Fz
Vm9sYXRpbGVDb21wbGV0aW9uSGFuZGxlcnMsIHsgfSk7CiAgICAgZm9yIChhdXRvJiBjb21wbGV0
aW9uSGFuZGxlciA6IGNvbXBsZXRpb25IYW5kbGVycykKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoc3VjY2VlZGVkKTsKIH0KQEAgLTI2MDQsNyArMjYwNCw3IEBAIGJvb2wgV2ViUGFnZTo6bWFy
a0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCkKICAgICByZXR1cm4gIWRyYXdp
bmdBcmVhKCkgfHwgZHJhd2luZ0FyZWEoKS0+bWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJ
ZlBvc3NpYmxlKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlKFdURjo6
RnVuY3Rpb248dm9pZCAoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6
Om1hcmtMYXllcnNWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFy
a0xheWVyc1ZvbGF0aWxlOiIpOwogCkBAIC0yNjM0LDcgKzI2MzQsNyBAQCB2b2lkIFdlYlBhZ2U6
OmNhbmNlbE1hcmtMYXllcnNWb2xhdGlsZSgpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMYXllcnMsICJjYW5jZWxNYXJrTGF5ZXJzVm9sYXRpbGU6Iik7CiAgICAgbV9sYXllclZvbGF0
aWxpdHlUaW1lci5zdG9wKCk7Ci0gICAgbV9tYXJrTGF5ZXJzQXNWb2xhdGlsZUNvbXBsZXRpb25I
YW5kbGVycy5jbGVhcigpOworICAgIGNhbGxWb2xhdGlsaXR5Q29tcGxldGlvbkhhbmRsZXJzKGZh
bHNlKTsKIH0KIAogY2xhc3MgQ3VycmVudEV2ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzYzk4NGNlY2M3ZjQ2NmI2ZGVkZGJjYWM1MDU2MDlh
MDQxNDU3MjAwLi5iMjE3YmM3ZWJlYTM2MTJmODVhMjM5YWJhY2IyNzM1M2UxNjU3ZjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03NzMsNyArNzcz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZnJlZXplTGF5ZXJUcmVlKExheWVyVHJlZUZyZWV6ZVJl
YXNvbik7CiAgICAgdm9pZCB1bmZyZWV6ZUxheWVyVHJlZShMYXllclRyZWVGcmVlemVSZWFzb24p
OwogCi0gICAgdm9pZCBtYXJrTGF5ZXJzVm9sYXRpbGUoRnVuY3Rpb248dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlciA9IHsgfSk7CisgICAgdm9pZCBtYXJrTGF5ZXJzVm9sYXRpbGUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IHsgfSk7CiAg
ICAgdm9pZCBjYW5jZWxNYXJrTGF5ZXJzVm9sYXRpbGUoKTsKIAogICAgIHZvaWQgZnJlZXplTGF5
ZXJUcmVlRHVlVG9Td2lwZUFuaW1hdGlvbigpOwpAQCAtMjAzMSw3ICsyMDMxLDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgV2ViQ29yZTo6VGltZXIgbV9sYXllclZvbGF0aWxpdHlUaW1lcjsK
LSAgICBWZWN0b3I8RnVuY3Rpb248dm9pZChib29sKT4+IG1fbWFya0xheWVyc0FzVm9sYXRpbGVD
b21wbGV0aW9uSGFuZGxlcnM7CisgICAgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+PiBtX21hcmtMYXllcnNBc1ZvbGF0aWxlQ29tcGxldGlvbkhhbmRsZXJzOwogICAgIGJvb2wg
bV9pc1N1c3BlbmRlZFVuZGVyTG9jayB7IGZhbHNlIH07CiAKICAgICBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtX21pbWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJv
dmlkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDdlZDE3
Yjg5OGNiNmMyY2FjNzRjM2RlMjk0NzZmMTIzMjJiYjg2NDEuLjVjZmIyZGNmNjVhZjcxMDE1OGZh
M2EyYThhNWI4YjQwZDc1ZDVkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKQEAgLTEyNSw2ICsxMjUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L0FsZ29yaXRobXMuaD4KKyNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMTQzMCw0NCArMTQzMSwyOSBAQCB2b2lkIFdl
YlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dgogICAgIHVwZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKICNlbmRpZgogCi0g
ICAgbWFya0FsbExheWVyc1ZvbGF0aWxlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewotICAgICAgICBp
ZiAoc3VjY2VzcykKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N1
c3BlbnNpb24sICJtYXJrQWxsTGF5ZXJzVm9sYXRpbGU6IFN1Y2Nlc3NmdWx5IG1hcmtlZCBhbGwg
bGF5ZXJzIGFzIHZvbGF0aWxlIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N1c3BlbnNpb24sICJtYXJrQWxsTGF5ZXJzVm9sYXRpbGU6
IEZhaWxlZCB0byBtYXJrIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUiKTsKLQorICAgIG1hcmtBbGxM
YXllcnNWb2xhdGlsZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQ
cm9jZXNzU3VzcGVuc2lvbiwgInByZXBhcmVUb1N1c3BlbmQ6IFByb2Nlc3MgaXMgcmVhZHkgdG8g
c3VzcGVuZCIpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwogfQogCi12
b2lkIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZShXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXll
cnNWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3VzcGVuc2lvbiwgIm1hcmtB
bGxMYXllcnNWb2xhdGlsZToiKTsKLSAgICBBU1NFUlQoIW1fcGFnZU1hcmtpbmdMYXllcnNBc1Zv
bGF0aWxlQ291bnRlcik7Ci0gICAgbV9jb3VudE9mUGFnZXNGYWlsaW5nVG9NYXJrVm9sYXRpbGUg
PSAwOwotCi0gICAgbV9wYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVDb3VudGVyID0gbWFrZVVu
aXF1ZTxQYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVDb3VudGVyPihbdGhpcywgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZkNvdW50ZXJFdmVudCkg
ewotICAgICAgICBpZiAobV9wYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVDb3VudGVyLT52YWx1
ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1f
Y291bnRPZlBhZ2VzRmFpbGluZ1RvTWFya1ZvbGF0aWxlID09IDApOwotICAgICAgICBtX3BhZ2VN
YXJraW5nTGF5ZXJzQXNWb2xhdGlsZUNvdW50ZXIgPSBudWxscHRyOwotICAgIH0pOwotICAgIGF1
dG8gdG9rZW4gPSBtX3BhZ2VNYXJraW5nTGF5ZXJzQXNWb2xhdGlsZUNvdW50ZXItPmNvdW50KCk7
Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQotICAgICAgICBwYWdl
LT5tYXJrTGF5ZXJzVm9sYXRpbGUoW3Rva2VuLCB0aGlzXSAoYm9vbCBzdWNjZWVkZWQpIHsKLSAg
ICAgICAgICAgIGlmICghc3VjY2VlZGVkKQotICAgICAgICAgICAgICAgICsrbV9jb3VudE9mUGFn
ZXNGYWlsaW5nVG9NYXJrVm9sYXRpbGU7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBD
YWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7CisgICAgICAgIHBhZ2Ut
Pm1hcmtMYXllcnNWb2xhdGlsZShbdGhpcywgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tB
Z2dyZWdhdG9yLmNvcHlSZWYoKSwgcGFnZUlEID0gcGFnZS0+aWRlbnRpZmllcigpXSAoYm9vbCBz
dWNjZWVkZWQpIHsKKyAgICAgICAgICAgIGlmIChzdWNjZWVkZWQpCisgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3VzcGVuc2lvbiwgIm1hcmtBbGxMYXllcnNW
b2xhdGlsZTogU3VjY2Vzc2Z1bHkgbWFya2VkIGxheWVycyBhcyB2b2xhdGlsZSBmb3Igd2ViUGFn
ZUlEPSUiIFBSSXU2NCwgcGFnZUlELnRvVUludDY0KCkpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N1c3BlbnNp
b24sICJtYXJrQWxsTGF5ZXJzVm9sYXRpbGU6IEZhaWxlZCB0byBtYXJrIGxheWVycyBhcyB2b2xh
dGlsZSBmb3Igd2ViUGFnZUlEPSUiIFBSSXU2NCwgcGFnZUlELnRvVUludDY0KCkpOwogICAgICAg
ICB9KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6Y2FuY2VsTWFya0FsbExheWVyc1Zv
bGF0aWxlKCkKIHsKLSAgICBpZiAoIW1fcGFnZU1hcmtpbmdMYXllcnNBc1ZvbGF0aWxlQ291bnRl
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVD
b3VudGVyID0gbnVsbHB0cjsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiY2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlOiIpOwogICAgIGZvciAoYXV0byYg
cGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKICAgICAgICAgcGFnZS0+Y2FuY2VsTWFya0xheWVy
c1ZvbGF0aWxlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBi
OGM5ZTdjOTUzMjE2MWUwMGVjZjRkODA3NTZkMWQyN2JkYWUyOTc4Li5hODVmZWYzYTQxODliOTdk
ODBjZDdjZjcxODUyYmY4Njg0NzFhMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTM0Miw3ICszNDIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJXaXRo
U3RhdGVEdW1wZXIoKTsKICNlbmRpZgogCi0gICAgdm9pZCBtYXJrQWxsTGF5ZXJzVm9sYXRpbGUo
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lk
IG1hcmtBbGxMYXllcnNWb2xhdGlsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgY2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKCk7CiAKICAgICB2b2lkIGZyZWV6ZUFs
bExheWVyVHJlZXMoKTsKQEAgLTU4MSwxMSArNTgxLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV91aVByb2Nlc3NEZXBlbmRlbmN5UHJvY2Vzc0Fz
c2VydGlvbjsKICNlbmRpZgogCi0gICAgZW51bSBQYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVD
b3VudGVyVHlwZSB7IH07Ci0gICAgdXNpbmcgUGFnZU1hcmtpbmdMYXllcnNBc1ZvbGF0aWxlQ291
bnRlciA9IFJlZkNvdW50ZXI8UGFnZU1hcmtpbmdMYXllcnNBc1ZvbGF0aWxlQ291bnRlclR5cGU+
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVDb3VudGVy
PiBtX3BhZ2VNYXJraW5nTGF5ZXJzQXNWb2xhdGlsZUNvdW50ZXI7Ci0gICAgdW5zaWduZWQgbV9j
b3VudE9mUGFnZXNGYWlsaW5nVG9NYXJrVm9sYXRpbGUgeyAwIH07Ci0KICAgICBib29sIG1fc3Vw
cHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q1BVTW9uaXRvcj4gbV9jcHVNb25pdG9yOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA0ZTk2
ODI1N2FkZTg5YmE4YjQwMTUzMTQ1ODU1MDY5MWM4Mzc1NDUuLjA2NWM5OTFlY2VkMWRkYzQzNWJl
ZTEwNmNjYTFhYjdjYWViOWE1NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNS0yOSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMVVJFIChyMjIwOTMx
KTogIW1fZnVuY3Rpb24gaW4gfkNvbXBsZXRpb25IYW5kbGVyKCkgYWZ0ZXIgc3dpdGNoIHRhYnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjUzNwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM3NjY4Mzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3Vz
cGVuc2lvbi5tbTogQWRkZWQuCisgICAgICAgIChURVNUKToKKwogMjAyMC0wNS0yOSAgS2VpdGgg
Um9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHN3aXRjaCB0byBY
Q0J1aWxkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUxMTcwNmM2M2Y4MzJmZjdhYmZkZjhh
ZDAwNjIwZGQzY2E4ZjMxYjUuLjRjZTM2MmM0YjA3YjI2MTE3ODcwZjI4YmY0YThjNDM1ODkxYWRh
MjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NTIsNiArNzUyLDcgQEAKIAkJODM3NzlD
MzgxRjgyRkVDRTAwN0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc3OUMzNzFGODJGRUIwMDA3Q0RBOEEg
LyogVmlzaXRlZExpbmtTdG9yZS5tbSAqLzsgfTsKIAkJODM3QTM1RjExRDlBMUU3RDAwNjYzQzU3
IC8qIERvd25sb2FkUmVxdWVzdEJsb2JVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdBMzVGMDFEOUExRTY0MDA2NjNDNTcgLyog
RG93bmxvYWRSZXF1ZXN0QmxvYlVSTC5odG1sICovOyB9OwogCQk4MzlBQTM1RjIxQTI2QjAzMDA5
ODBERDYgLyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQTM1RTIxQTI2QUNEMDA5ODBERDYg
LyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCAqLzsgfTsKKwkJODNBMkNGREUyNDgxQjM1MjAw
MThCMkQzIC8qIFByb2Nlc3NTdXNwZW5zaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNBMkNGREMyNDgxQjMyRjAwMThCMkQzIC8qIFByb2Nlc3NT
dXNwZW5zaW9uLm1tICovOyB9OwogCQk4M0I2REU2RjFFRTc1MjIxMDAxRTc5MkYgLyogUmVzdG9y
ZVNlc3Npb25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0I2REU2RTFFRTc1MjBGMDAxRTc5MkYgLyogUmVzdG9yZVNlc3Npb25TdGF0ZS5j
cHAgKi87IH07CiAJCTgzQkFFRThEMUVGNDYyNTUwMERERTg5NCAvKiBQbHVnaW5Mb2FkQ2xpZW50
UG9saWNpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0JBRUU4QzFFRjQ2MjU1MDBEREU4OTQgLyogUGx1Z2luTG9hZENsaWVudFBvbGljaWVzLm1t
ICovOyB9OwogCQk4M0JDNUFDMDIwRTZDMERGMDBGNTg3OUYgLyogU3RhcnRMb2FkSW5EaWRGYWls
UHJvdmlzaW9uYWxMb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNCQzVBQkYyMEU2QzBEMzAwRjU4NzlGIC8qIFN0YXJ0TG9hZEluRGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZC5tbSAqLzsgfTsKQEAgLTIyNjUsNiArMjI2Niw3IEBACiAJCTgzNzc5QzM3
MUY4MkZFQjAwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3JlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdG9yZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODM3QTM1RjAxRDlBMUU2NDAwNjYzQzU3IC8qIERvd25sb2FkUmVx
dWVzdEJsb2JVUkwuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVx
dWVzdEJsb2JVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QUEzNUUy
MUEyNkFDRDAwOTgwREQ2IC8qIGNsaWVudC1zaWRlLXJlZGlyZWN0Lmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzQTJDRkRDMjQ4MUIzMkYwMDE4QjJEMyAvKiBQcm9jZXNzU3Vz
cGVuc2lvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb2Nl
c3NTdXNwZW5zaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0I2REU2RTFF
RTc1MjBGMDAxRTc5MkYgLyogUmVzdG9yZVNlc3Npb25TdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXN0b3JlU2Vzc2lvblN0YXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCODhBMzMxQzgwMDU2RDAwQkIyNDE4IC8qIEhUTUxQYXJz
ZXJJZGlvbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBh
cnNlcklkaW9tcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkFFRThDMUVG
NDYyNTUwMERERTg5NCAvKiBQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTcyLDYgKzMxNzQsNyBAQAogCQkJCTdD
MUFGNzkzMUU4RENCQUIwMDI2NDVCOSAvKiBQcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tICovLAog
CQkJCTQxODgyRjAyMjEwMTBBNzAwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSAqLywK
IAkJCQlDREE0NDM4RDIxRjdBNDc3MDAzNzk0ODkgLyogUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZl
cmluZy5tbSAqLywKKwkJCQk4M0EyQ0ZEQzI0ODFCMzJGMDAxOEIyRDMgLyogUHJvY2Vzc1N1c3Bl
bnNpb24ubW0gKi8sCiAJCQkJNTE4QzExNTIyMDVCMDRGOTAwMUZGNEFFIC8qIFByb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tICovLAogCQkJCTU3OThFMkFGMUNBRjVDMjgwMEM1Q0JBMCAvKiBQcm92
aXNpb25hbFVSTE5vdENoYW5nZS5tbSAqLywKIAkJCQk1Q0ZBQ0Y2NDIyNkZEMUZCMDA1NkM3RDAg
LyogUHJveHkubW0gKi8sCkBAIC01MTA4LDYgKzUxMTEsNyBAQAogCQkJCTQ2NDdCMTI2MUVCQTNC
ODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEQTQ0MzhFMjFGN0E0NzcwMDM3OTQ4OSAvKiBQcm9jZXNzU3VzcGVuZE1l
ZGlhQnVmZmVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMkNGREUyNDgxQjM1MjAwMThC
MkQzIC8qIFByb2Nlc3NTdXNwZW5zaW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4QzExNTMy
MDVCMDUwNDAwMUZGNEFFIC8qIFByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M4M0UwQzExRDBBNjUyRjAwRkVCQ0YzIC8qIFByb3Zpc2lvbmFsVVJMTm90Q2hh
bmdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNGQUNGNjUyMjZGRDJEQzAwNTZDN0QwIC8qIFBy
b3h5Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTdXNwZW5zaW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3VzcGVuc2lvbi5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2Q1
YjBjOGRlNGI4NjBjMjkxYmYzZTg3OTAzMzYyYjczNDc3NjI4Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3VzcGVuc2lvbi5t
bQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oPgorCitURVNUKFByb2Nlc3NTdXNwZW5zaW9uLCBDYW5jZWxXZWJQcm9jZXNzU3Vz
cGVuc2lvbikKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAw
LCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNd
KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS1y
ZWQtc3F1YXJlLWltYWdlIl07CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIFt3ZWJWaWV3IF9w
cm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ107CisgICAgW3dlYlZpZXcgX3By
b2Nlc3NEaWRSZXN1bWVGb3JUZXN0aW5nXTsKKworICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhdGlvbiIgY29tcGxldGlv
bkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBhdXRv
IHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgICAgICBFWFBFQ1Rf
RVEocGlkMSwgcGlkMik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>