<?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>190418</bug_id>
          
          <creation_ts>2018-10-09 16:43:34 -0700</creation_ts>
          <short_desc>Regression(PSON): Assertion hit under WebPageProxy::didNavigateWithNavigationData()</short_desc>
          <delta_ts>2018-10-10 11:21:22 -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 name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1467602</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 16:43:34 -0700</bug_when>
    <thetext>Assertion hit under WebPageProxy::didNavigateWithNavigationData():
ASSERTION FAILED: frame-&gt;page() == this
/Volumes/Data/WebKit/OpenSource/Source/WebKit/UIProcess/WebPageProxy.cpp(4274) : void WebKit::WebPageProxy::didNavigateWithNavigationData(const WebKit::WebNavigationDataStore &amp;, uint64_t)
1   0x1033ecd59 WTFCrash
2   0x10db8343b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x10e411e64 WebKit::WebPageProxy::didNavigateWithNavigationData(WebKit::WebNavigationDataStore const&amp;, unsigned long long)
4   0x10ece5c83 void IPC::callMemberFunctionImpl&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::WebNavigationDataStore const&amp;, unsigned long long), std::__1::tuple&lt;WebKit::WebNavigationDataStore, unsigned long long&gt;, 0ul, 1ul&gt;(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::WebNavigationDataStore const&amp;, unsigned long long), std::__1::tuple&lt;WebKit::WebNavigationDataStore, unsigned long long&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt;)
5   0x10ece5930 void IPC::callMemberFunction&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::WebNavigationDataStore const&amp;, unsigned long long), std::__1::tuple&lt;WebKit::WebNavigationDataStore, unsigned long long&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt; &gt;(std::__1::tuple&lt;WebKit::WebNavigationDataStore, unsigned long long&gt;&amp;&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::WebNavigationDataStore const&amp;, unsigned long long))
6   0x10ecc4ca8 void IPC::handleMessage&lt;Messages::WebPageProxy::DidNavigateWithNavigationData, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::WebNavigationDataStore const&amp;, unsigned long long)&gt;(IPC::Decoder&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::WebNavigationDataStore const&amp;, unsigned long long))
7   0x10ecb9fe8 WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
8   0x10dc1e20a IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
9   0x10e1fc964 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
10  0x10e47084d WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
11  0x10dbca37a IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
12  0x10dbbd031 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
13  0x10dbc7911 IPC::Connection::dispatchIncomingMessages()
14  0x10dbe76e2 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14::operator()()
15  0x10dbe7609 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14&gt;::call()
16  0x103413f4d WTF::Function&lt;void ()&gt;::operator()() const
17  0x10346c793 WTF::RunLoop::performWork()
18  0x10346d124 WTF::RunLoop::performWork(void*)
19  0x7fff4e9ce195 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
20  0x7fff4e9ce13b __CFRunLoopDoSource0
21  0x7fff4e9b1bd5 __CFRunLoopDoSources0
22  0x7fff4e9b117e __CFRunLoopRun
23  0x7fff4e9b0a68 CFRunLoopRunSpecific
24  0x7fff4dc49895 RunCurrentEventLoopInMode
25  0x7fff4dc495cb ReceiveNextEventCommon
26  0x7fff4dc49348 _BlockUntilNextEventMatchingListInModeWithFilter
27  0x7fff4bf05f53 _DPSNextEvent
28  0x7fff4bf04cf2 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
29  0x101099050 -[BrowserApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
30  0x7fff4befed55 -[NSApplication run]
31  0x7fff4beee48f NSApplicationMain</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467603</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 16:43:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/45059769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467608</commentid>
    <comment_count>2</comment_count>
      <attachid>351927</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 16:59:48 -0700</bug_when>
    <thetext>Created attachment 351927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467611</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-09 17:02:03 -0700</bug_when>
    <thetext>Attachment 351927 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:310:  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/ProcessSwapOnNavigation.mm:318:  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 9 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>1467728</commentid>
    <comment_count>4</comment_count>
      <attachid>351966</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-10 08:56:25 -0700</bug_when>
    <thetext>Created attachment 351966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467729</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-10 08:57:42 -0700</bug_when>
    <thetext>Attachment 351966 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:310:  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/ProcessSwapOnNavigation.mm:318:  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 9 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>1467747</commentid>
    <comment_count>6</comment_count>
      <attachid>351966</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-10-10 10:53:40 -0700</bug_when>
    <thetext>Comment on attachment 351966
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467765</commentid>
    <comment_count>7</comment_count>
      <attachid>351966</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-10 11:21:21 -0700</bug_when>
    <thetext>Comment on attachment 351966
Patch

Clearing flags on attachment: 351966

Committed r237008: &lt;https://trac.webkit.org/changeset/237008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467766</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-10 11:21:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351927</attachid>
            <date>2018-10-09 16:59:48 -0700</date>
            <delta_ts>2018-10-10 08:56:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190418-20181009165947.patch</filename>
            <type>text/plain</type>
            <size>18864</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzZDdiY2ZmNjYxMTUwNTNm
NTY3MmU3NWQzNzQxM2JjYjg3NTk0MzkuLjNiZGJiM2NhNjg3ZWFkNTZhMzVlYjM3YzhjNDg3Mjg3
Y2FhMDk4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTgtMTAtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKFBTT04pOiBBc3Nl
cnRpb24gaGl0IHVuZGVyIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRh
dGEoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
NDE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTA1OTc2OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHByb2Nlc3Mgc3dhcHBpbmcgYW5k
ICJzdXNwZW5kaW5nIiB0aGUgcHJldmlvdXMgV2ViUHJvY2VzcyBpbiBhIFN1c3BlbmRlZFBhZ2VQ
cm94eSwKKyAgICAgICAgd2UgbmVlZCB0byBrZWVwIGFyb3VuZCB0aGUgbWFpbiBmcmFtZSdzIElE
IHRoYXQgc3RpbGwgZXhpc3RzIG9uIGluIHRoaXMgcHJvY2Vzcy4gVGhpcworICAgICAgICBpcyBu
ZWVkZWQgc28gdGhhdCB3ZSBjYW4gcmUtY3JlYXRlIGEgVUktc2lkZSBXZWJGcmFtZVByb3h5IGZv
ciB0aGUgV2ViRnJhbWUgdGhhdCBleGlzdHMKKyAgICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGlm
IHdlIGV2ZXIgc3dhcCBiYWNrIHRvIHRoaXMgc3VzcGVuZGVkIHByb2Nlc3MgKHNlZSBsb2dpbiBp
bgorICAgICAgICBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoKSkuCisKKyAgICAgICAg
VGhlIGJ1ZyB3YXMgdGhhdCB0aGUgbWFpbiBmcmFtZSBJRCB3YXMgc3RvcmVkIG9uIHRoZSBXZWJQ
YWdlUHJveHkgdmlhIG1fbWFpbkZyYW1lSUQgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgU3VzcGVu
ZGVkUGFnZVByb3h5LiBUaGlzIG1lYW5zIHRoYXQgbV9tYWluRnJhbWVJRCB3b3VsZCBnZXQgb3Zl
cnJpZGVuIHdoZW4gbmF2aWdhdGluZyBpbiB0aGUgbmV3CisgICAgICAgIFdlYlByb2Nlc3Mgd2l0
aCB0aGUgdmFsdWUgMSAoYmVjYXVzZSBXZWJGcmFtZSBpZGVudGlmaWVycyBzdGFydCBhdCAxIGFu
ZCBhcmUgcGVyLVdlYlByb2Nlc3MpLgorICAgICAgICBUaGlzIHdvdWxkIGxlYWQgdG8gdXMgY29u
c3RydWN0aW5nIGEgV2ViRnJhbWVQcm94eSB3aXRoIHRoZSB3cm9uZyBmcmFtZSBpZGVudGlmaWVy
IGluCisgICAgICAgIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2VzcygpLCB3aGljaCB3b3Vs
ZCBvdmVycmlkZSBhbiBleGlzdGluZyB1bnJlbGF0ZWQgV2ViRnJhbWUgaW4gdGhlCisgICAgICAg
IFdlYlByb2Nlc3NQcm94eSdzIEhhc2hNYXAgb2YgZnJhbWVzLiBUaGlzIHdvdWxkIGxlYWQgdG8g
Y3Jhc2hlcyBsYXRlciBvbiBhcyB0aGUgV2ViRnJhbWUKKyAgICAgICAgd291bGQgbm90IGJlIGFz
c29jaWF0ZWQgdG8gdGhlIFdlYlBhZ2VQcm94eSB3ZSBleHBlY3QuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVk
UGFnZVByb3h5OjpTdXNwZW5kZWRQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdXNw
ZW5kZWRQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVkUGFnZVByb3h5Ojpt
YWluRnJhbWVJRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVDcmVhdGVTdXNwZW5kZWRQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OnN1c3BlbmRXZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKwogMjAxOC0xMC0wOSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXUEVdIEV4cGxpY2l0bHkgbGluayBhZ2FpbnN0IGdtb2R1bGUgd2hl
cmUgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5j
cHAKaW5kZXggOGJjNGE3NTNmYTc2NzNkNDExYjliNGNmNWI1NDQyOTc5ZDY5MzIwNC4uMDJhYzY2
MWJhNzhhYTQ3Njk2NGE0NmZhNmJjOTM0ZDY5N2M3NmVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03NCw5ICs3NCwxMCBAQCBzdGF0
aWMgY29uc3QgSGFzaFNldDxJUEM6OlN0cmluZ1JlZmVyZW5jZT4mIG1lc3NhZ2VOYW1lc1RvSWdu
b3JlV2hpbGVTdXNwZW5kZWQoKQogfQogI2VuZGlmCiAKLVN1c3BlbmRlZFBhZ2VQcm94eTo6U3Vz
cGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKQorU3VzcGVuZGVkUGFnZVBy
b3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIHVpbnQ2NF90
IG1haW5GcmFtZUlEKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92
ZShwcm9jZXNzKSkKKyAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCiAgICAgLCBtX29y
aWdpbihTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoeyB7IH0sIGl0ZW0udXJsKCkgfSkpCiB7
CiAgICAgaXRlbS5zZXRTdXNwZW5kZWRQYWdlKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggMzYzMWY5ZjA3OWRlMzdhMjcyODRkY2Ni
OGU1MDJiNzdlNGJmZDNmYi4uMDRjNGVjZjI1NTQxYjFjNTBjODZlMTMzMGU5NmE3OTE1ZWM3MjM3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKQEAg
LTM4LDEzICszOCwxNCBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIGNsYXNzIFN1c3BlbmRl
ZFBhZ2VQcm94eSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHsK
IHB1YmxpYzoKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpOworICAgIFN1c3BlbmRlZFBh
Z2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJiwgdWludDY0X3QgbWFpbkZyYW1lSUQpOwogICAgIH5TdXNwZW5kZWRQYWdl
UHJveHkoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2U7IH0KICAgICBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MoKSBjb25zdCB7IHJldHVy
biBtX3Byb2Nlc3MuZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KICAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9CiAKICAgICB2b2lkIHdl
YlByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkmKTsKQEAgLTYwLDYgKzYxLDcgQEAgcHJp
dmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFJlZlB0cjxXZWJQcm9jZXNz
UHJveHk+IG1fcHJvY2VzczsKKyAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOwogICAgIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBtX29yaWdpbjsKIAogI2lmICFMT0dfRElTQUJMRUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDM2YjBlMWU1MTA5Mzk4
NTg0N2U1NDI3M2UyZDhjN2Y0NmMzMmRlODMuLjg1YzcwY2FmMzhkZGEzODAwMDRkOWM1ZWY3NzFh
ZmZiOWVhNmUzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vz
cygpCiAgICAgZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKCk7CiB9CiAKLVN1c3BlbmRlZFBh
Z2VQcm94eSogV2ViUGFnZVByb3h5OjptYXliZUNyZWF0ZVN1c3BlbmRlZFBhZ2UoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24pCitTdXNwZW5kZWRQ
YWdlUHJveHkqIFdlYlBhZ2VQcm94eTo6bWF5YmVDcmVhdGVTdXNwZW5kZWRQYWdlKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCB1aW50NjRfdCBt
YWluRnJhbWVJRCkKIHsKICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkUGFnZSB8fCBtX3N1c3BlbmRl
ZFBhZ2UtPnByb2Nlc3MoKSAhPSAmcHJvY2Vzcyk7CiAKQEAgLTcyMCw3ICs3MjAsNyBAQCBTdXNw
ZW5kZWRQYWdlUHJveHkqIFdlYlBhZ2VQcm94eTo6bWF5YmVDcmVhdGVTdXNwZW5kZWRQYWdlKFdl
YlByb2Nlc3NQcm94eSYgcHJvYwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICBtX3N1c3BlbmRlZFBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFN1c3BlbmRlZFBhZ2VQcm94eT4o
KnRoaXMsIHByb2Nlc3MsICpjdXJyZW50SXRlbSk7CisgICAgbV9zdXNwZW5kZWRQYWdlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTdXNwZW5kZWRQYWdlUHJveHk+KCp0aGlzLCBwcm9jZXNzLCAqY3VycmVu
dEl0ZW0sIG1haW5GcmFtZUlEKTsKIAogICAgIExPRyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQYWdl
UHJveHkgJSIgUFJJdTY0ICIgY3JlYXRlZCBzdXNwZW5kZWQgcGFnZSAlcyBmb3IgcHJvY2VzcyBw
aWQgJWksIGJhY2svZm9yd2FyZCBpdGVtICVzIiBQUkl1NjQsIHBhZ2VJRCgpLCBtX3N1c3BlbmRl
ZFBhZ2UtPmxvZ2dpbmdTdHJpbmcoKSwgcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmllcigpLCBjdXJy
ZW50SXRlbS0+aXRlbUlEKCkubG9nU3RyaW5nKCkpOwogCkBAIC03MzMsNyArNzMzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnN1c3BlbmRlZFBhZ2VDbG9zZWQoU3VzcGVuZGVkUGFnZVByb3h5JiBw
YWdlKQogICAgIG1fc3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJ
OjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlBy
b2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1By
b2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKFByb2Nlc3MsICIlcCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3NcbiIsIHRo
aXMpOwpAQCAtNzQxLDcgKzc0MSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9j
ZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0CiAgICAgLy8g
SWYgdGhlIHByb2Nlc3Mgd2UncmUgYXR0YWNoaW5nIHRvIGlzIGtlcHQgYWxpdmUgc29sZWx5IGJ5
IG91ciBjdXJyZW50IHN1c3BlbmRlZCBwYWdlLAogICAgIC8vIHdlIG5lZWQgdG8gbWFpbnRhaW4g
dGhhdCBieSB0ZW1wb3JhcmlseSBrZWVwaW5nIHRoZSBzdXNwZW5kZWQgcGFnZSBhbGl2ZS4KICAg
ICBhdXRvIGN1cnJlbnRTdXNwZW5kZWRQYWdlID0gV1RGTW92ZShtX3N1c3BlbmRlZFBhZ2UpOwot
ICAgIG1fcHJvY2Vzcy0+c3VzcGVuZFdlYlBhZ2VQcm94eSgqdGhpcywgbmF2aWdhdGlvbik7Cisg
ICAgaWYgKG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MpCisgICAgICAgIG1fcHJvY2Vzcy0+
c3VzcGVuZFdlYlBhZ2VQcm94eSgqdGhpcywgbmF2aWdhdGlvbiwgKm1haW5GcmFtZUlESW5QcmV2
aW91c1Byb2Nlc3MpOwogCiAgICAgbV9wcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKTsKICAgICBt
X2lzVmFsaWQgPSB0cnVlOwpAQCAtNzUyLDkgKzc1Myw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
d2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZp
Z2F0CiAgICAgLy8gYWxyZWFkeSBleGlzdHMgYW5kIGFscmVhZHkgaGFzIGEgbWFpbiBmcmFtZS4K
ICAgICBpZiAoY3VycmVudFN1c3BlbmRlZFBhZ2UgJiYgY3VycmVudFN1c3BlbmRlZFBhZ2UtPnBy
b2Nlc3MoKSA9PSBtX3Byb2Nlc3MucHRyKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX21haW5GcmFt
ZSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5GcmFtZUlEKTsKLSAgICAgICAgbV9tYWluRnJhbWUg
PSBXZWJGcmFtZVByb3h5OjpjcmVhdGUodGhpcywgKm1fbWFpbkZyYW1lSUQpOwotICAgICAgICBt
X3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZCgqbV9tYWluRnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKKyAg
ICAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVhdGUodGhpcywgY3VycmVudFN1
c3BlbmRlZFBhZ2UtPm1haW5GcmFtZUlEKCkpOworICAgICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3Jl
YXRlZChjdXJyZW50U3VzcGVuZGVkUGFnZS0+bWFpbkZyYW1lSUQoKSwgKm1fbWFpbkZyYW1lKTsK
ICAgICB9CiAKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoKTsKQEAgLTI1MzcsMTUg
KzI1MzcsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFIKICAgICBMT0coTG9hZGluZywgIkNv
bnRpbnVpbmcgbmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNz
IiwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkp
OwogCiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gcHJldmlvdXNQcm9jZXNzID0gbV9wcm9jZXNz
LmNvcHlSZWYoKTsKLSAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBuYXZpZ2F0ZWRGcmFtZUlk
ZW50aWZpZXJJblByZXZpb3VzUHJvY2VzczsKLSAgICBpZiAobV9tYWluRnJhbWUpCi0gICAgICAg
IG5hdmlnYXRlZEZyYW1lSWRlbnRpZmllckluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUt
PmZyYW1lSUQoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJREluUHJl
dmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwobV9tYWluRnJh
bWUtPmZyYW1lSUQoKSkgOiBzdGQ6Om51bGxvcHQ7CiAKICAgICBBU1NFUlQobV9wcm9jZXNzLnB0
cigpICE9IHByb2Nlc3MucHRyKCkpOwogCiAgICAgcHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNz
VGVybWluYXRpb25SZWFzb246Ok5hdmlnYXRpb25Td2FwKTsKIAotICAgIHN3YXBUb1dlYlByb2Nl
c3MoV1RGTW92ZShwcm9jZXNzKSwgbmF2aWdhdGlvbik7CisgICAgc3dhcFRvV2ViUHJvY2VzcyhX
VEZNb3ZlKHByb2Nlc3MpLCBuYXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNz
KTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0gbmF2aWdhdGlvbi50YXJnZXRJdGVtKCkpIHsKICAg
ICAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0aW9uSW5O
ZXdQcm9jZXNzIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51dGY4KCku
ZGF0YSgpKTsKQEAgLTI1ODQsMTMgKzI1ODIsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFIK
ICAgICB9CiAKICAgICBib29sIGlzSW5pdGlhbE5hdmlnYXRpb25Jbk5ld1dpbmRvdyA9IG9wZW5l
ZEJ5RE9NKCkgJiYgIWhhc0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMoKTsKLSAgICBpZiAo
IWlzSW5pdGlhbE5hdmlnYXRpb25Jbk5ld1dpbmRvdyB8fCAhbmF2aWdhdGVkRnJhbWVJZGVudGlm
aWVySW5QcmV2aW91c1Byb2Nlc3MpCisgICAgaWYgKCFpc0luaXRpYWxOYXZpZ2F0aW9uSW5OZXdX
aW5kb3cgfHwgIW1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fbWFpbkZyYW1lV2luZG93Q3JlYXRpb25IYW5kbGVyID0gW3RoaXMsIHByZXZpb3Vz
UHJvY2VzcyA9IFdURk1vdmUocHJldmlvdXNQcm9jZXNzKSwgbmF2aWdhdGVkRnJhbWVJZGVudGlm
aWVySW5QcmV2aW91c1Byb2Nlc3MgPSAqbmF2aWdhdGVkRnJhbWVJZGVudGlmaWVySW5QcmV2aW91
c1Byb2Nlc3NdKGNvbnN0IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImIHdpbmRvd0lkZW50aWZpZXIp
IHsKKyAgICBtX21haW5GcmFtZVdpbmRvd0NyZWF0aW9uSGFuZGxlciA9IFt0aGlzLCBwcmV2aW91
c1Byb2Nlc3MgPSBXVEZNb3ZlKHByZXZpb3VzUHJvY2VzcyksIG1haW5GcmFtZUlESW5QcmV2aW91
c1Byb2Nlc3MgPSAqbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2Vzc10oY29uc3QgR2xvYmFsV2lu
ZG93SWRlbnRpZmllciYgd2luZG93SWRlbnRpZmllcikgewogICAgICAgICBBU1NFUlQobV9tYWlu
RnJhbWUpOwogICAgICAgICBHbG9iYWxGcmFtZUlkZW50aWZpZXIgbmF2aWdhdGVkRnJhbWVJZGVu
dGlmaWVySW5OZXdQcm9jZXNzIHsgcGFnZUlEKCksIG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgfTsK
LSAgICAgICAgcHJldmlvdXNQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpGcmFtZUJl
Y2FtZVJlbW90ZShuYXZpZ2F0ZWRGcmFtZUlkZW50aWZpZXJJblByZXZpb3VzUHJvY2VzcywgbmF2
aWdhdGVkRnJhbWVJZGVudGlmaWVySW5OZXdQcm9jZXNzLCB3aW5kb3dJZGVudGlmaWVyKSwgcGFn
ZUlEKCkpOworICAgICAgICBwcmV2aW91c1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkZyYW1lQmVjYW1lUmVtb3RlKG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG5hdmlnYXRl
ZEZyYW1lSWRlbnRpZmllckluTmV3UHJvY2Vzcywgd2luZG93SWRlbnRpZmllciksIHBhZ2VJRCgp
KTsKICAgICB9OwogfQogCkBAIC0zNDE1LDcgKzM0MTMsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MtPmNhbkNyZWF0ZUZyYW1lKGZyYW1lSUQpKTsKIAogICAgIG1fbWFpbkZyYW1lID0g
V2ViRnJhbWVQcm94eTo6Y3JlYXRlKHRoaXMsIGZyYW1lSUQpOwotICAgIG1fbWFpbkZyYW1lSUQg
PSBmcmFtZUlEOwogCiAgICAgLy8gQWRkIHRoZSBmcmFtZSB0byB0aGUgcHJvY2VzcyB3aWRlIG1h
cC4KICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCAqbV9tYWluRnJhbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4ZTkyNjMyMjM5ODA2YWVm
MmEyNWQxOTU0MjIyODQ5ZmZlOWI5YjgwLi45MmE0M2Q2MjRjNTU5ZGU2NTA0MjRlZWJmYTA1ODk5
MTlmMzljNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM1
NCw3ICsxMzU0LDcgQEAgcHVibGljOgogCiAgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSBwcmVmZXJl
bmNlc1N0b3JlKCkgY29uc3Q7CiAKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkqIG1heWJlQ3JlYXRl
U3VzcGVuZGVkUGFnZShXZWJQcm9jZXNzUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24mKTsKKyAgICBT
dXNwZW5kZWRQYWdlUHJveHkqIG1heWJlQ3JlYXRlU3VzcGVuZGVkUGFnZShXZWJQcm9jZXNzUHJv
eHkmLCBBUEk6Ok5hdmlnYXRpb24mLCB1aW50NjRfdCBtYWluRnJhbWVJRCk7CiAgICAgU3VzcGVu
ZGVkUGFnZVByb3h5KiBzdXNwZW5kZWRQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWRQ
YWdlLmdldCgpOyB9CiAgICAgdm9pZCBzdXNwZW5kZWRQYWdlQ2xvc2VkKFN1c3BlbmRlZFBhZ2VQ
cm94eSYpOwogCkBAIC0xNTI1LDcgKzE1MjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q2Fu
U2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9y
aXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZl
bnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9CiAKICAgICB2b2lk
IHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYpOworICAgIHZvaWQgc3dhcFRvV2Vi
UHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzKTsKICAgICB2b2lk
IGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcygpOwogCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NGb3JSZWxvYWQoKTsKQEAgLTE4OTQsNyArMTg5NCw2
IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vic2l0ZURhdGFTdG9y
ZTsKIAogICAgIFJlZlB0cjxXZWJGcmFtZVByb3h5PiBtX21haW5GcmFtZTsKLSAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBtX21haW5GcmFtZUlEOwogICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9t
YWluRnJhbWVDcmVhdGlvbkhhbmRsZXI7CiAgICAgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3Jl
OjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJik+IG1fbWFpbkZyYW1lV2luZG93Q3JlYXRpb25IYW5k
bGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBkNjcxZDZhNGRkODMxODUyOTg5OGQ4NWJiNTRkMTQ4ZTk5ZWI1ZWRjLi5jOTk0N2RiZGIxNTJh
YzdlZTJkMWMzMjQzNmEwMjE5NWJkMzZkZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQzOCw5ICs0MzgsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6YWRkRXhpc3RpbmdXZWJQYWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSwgdWludDY0X3Qg
cGFnZUlEKQogICAgIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdXNwZW5kV2ViUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYg
d2ViUGFnZSwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnN1c3BlbmRXZWJQYWdlUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlLCBBUEk6Ok5hdmln
YXRpb24mIG5hdmlnYXRpb24sIHVpbnQ2NF90IG1haW5GcmFtZUlEKQogewotICAgIGlmIChhdXRv
KiBzdXNwZW5kZWRQYWdlID0gd2ViUGFnZS5tYXliZUNyZWF0ZVN1c3BlbmRlZFBhZ2UoKnRoaXMs
IG5hdmlnYXRpb24pKSB7CisgICAgaWYgKGF1dG8qIHN1c3BlbmRlZFBhZ2UgPSB3ZWJQYWdlLm1h
eWJlQ3JlYXRlU3VzcGVuZGVkUGFnZSgqdGhpcywgbmF2aWdhdGlvbiwgbWFpbkZyYW1lSUQpKSB7
CiAgICAgICAgIExPRyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQcm9jZXNzUHJveHkgcGlkICVpIGFk
ZGVkIHN1c3BlbmRlZCBwYWdlICVzIiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgc3VzcGVuZGVkUGFn
ZS0+bG9nZ2luZ1N0cmluZygpKTsKICAgICAgICAgbV9zdXNwZW5kZWRQYWdlTWFwLnNldCh3ZWJQ
YWdlLnBhZ2VJRCgpLCBzdXNwZW5kZWRQYWdlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMyNWFjYmY2ZDg1YTMyNzhiOGNjYjg2Yzg2MDA5
ZGI0NjI3ZGRiNGIuLjMzMjc0ZGY1ZDYxZTBiZDg2MzJjZTMwOTkzNDlhOTc2M2NmYjM5NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMDgsNyArMjA4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkKCkgeyBtX2hh
c0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNDb21t
aXR0ZWRBbnlQcm92aXNpb25hbExvYWRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDb21taXR0ZWRB
bnlQcm92aXNpb25hbExvYWRzOyB9CiAKLSAgICB2b2lkIHN1c3BlbmRXZWJQYWdlUHJveHkoV2Vi
UGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uJik7CisgICAgdm9pZCBzdXNwZW5kV2ViUGFnZVBy
b3h5KFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiYsIHVpbnQ2NF90IG1haW5GcmFtZUlE
KTsKICAgICB2b2lkIHN1c3BlbmRlZFBhZ2VXYXNEZXN0cm95ZWQoU3VzcGVuZGVkUGFnZVByb3h5
Jik7CiAKICNpZiBQTEFURk9STShXQVRDSE9TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZhODkxY2E1NGExMTE3ZWQzZGYyMmNiMmE1ZDc0ZGI5
MDA3NWQwZGMuLjBjOWQ0MWJmNGYyMjA1MjRjOTI4NzZkZmM3NDc2OGJjNzA3NDA0YTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxOC0xMC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZ3Jlc3Npb24oUFNPTik6IEFzc2VydGlvbiBoaXQgdW5kZXIgV2ViUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA0MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
MDU5NzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisKIDIwMTgtMTAtMDkgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aE5dIElt
cG9ydCBDVEFQIEhJRCBtZXNzYWdlIGFuZCBwYWNrZXQgc3RydWN0dXJlIGZyb20gQ2hyb21pdW0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDRkMTZkYWM4NTI0YTU3MGU5ZmU1
NmRmNjljNDU5NDRjNzY0ZGZmN2IuLmFkMTJiMDVkOTUzMjM1MTBjZWIzODMxOTE1YzIxYzA4NmY1
YTQyOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtMzA3LDYgKzMwNywx
NiBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VS
Q0UiOwogCitzdGF0aWMgY29uc3QgY2hhciogbGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05S
RVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBm
dW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBzb24ucG9zdE1lc3NhZ2UoIldhcyBwZXJzaXN0ZWQi
KTsKK30pOworPC9zY3JpcHQ+Cis8YSBpZD0idGVzdExpbmsiIGhyZWY9InBzb246Ly93d3cuYXBw
bGUuY29tL21haW4uaHRtbCI+TmF2aWdhdGU8L2E+CispUFNPTlJFU09VUkNFIjsKKwogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAogVEVTVChQcm9jZXNzU3dhcCwgQmFzaWMpCkBAIC0xOTI3LDQg
KzE5MzcsNzYgQEAgVEVTVChQcm9jZXNzU3dhcCwgVGVybWluYXRlZFN1c3BlbmRlZFBhZ2VQcm9j
ZXNzKQogICAgIEVYUEVDVF9ORShwaWQzLCBwaWQ0KTsKIH0KIAorVEVTVChQcm9jZXNzU3dhcCwg
R29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQoreworICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gc2V0UHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uOllFU107CisgICAgYXV0byBwcm9jZXNzUG9v
bCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29s
LmdldCgpXTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10g
aW5pdF0pOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua1NhbWVTaXRlTm9PcGVu
ZXJUZXN0Qnl0ZXNdOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0YTpsaW5rVG9BcHBsZVRlc3RCeXRl
c107CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxl
ci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVy
ID0gYWRvcHROUyhbW1BTT05NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicHNvbiJdOworCisgICAgYXV0byB3
ZWJWaWV3MSA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5n
ZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZp
Z2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldzEgc2V0TmF2aWdhdGlv
bkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisgICAgYXV0byB1aURlbGVnYXRl
ID0gYWRvcHROUyhbW1BTT05VSURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aE5hdmlnYXRpb25EZWxl
Z2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldKTsKKyAgICBbd2ViVmlldzEgc2V0VUlEZWxl
Z2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKKworICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRv
bmUgPSBmYWxzZTsKKworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluMS5odG1sIiwgW1t3ZWJWaWV3MSBVUkxdIGFic29sdXRlU3RyaW5nXSk7CisgICAgYXV0
byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0ZVdlYlZpZXcpOworICAgIGRpZENyZWF0ZVdlYlZp
ZXcgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
ZG9uZSA9IGZhbHNlOworCisgICAgLy8gTmV3IFdLV2ViVmlldyBoYXMgbm93IG5hdmlnYXRlZCB0
byB3ZWJraXQub3JnLgorICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluMi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7Cisg
ICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Cisg
ICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgLy8gQ2xpY2sgbGluayBpbiBuZXcgV0tX
ZWJWaWV3IHNvIHRoYXQgaXQgbmF2aWdhdGVzIGNyb3NzLXNpdGUgdG8gYXBwbGUuY29tLgorICAg
IFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ0ZXN0TGluay5jbGljaygpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gTmV3IFdLV2ViVmlldyBoYXMgbm93IG5h
dmlnYXRlZCB0byBhcHBsZS5jb20uCisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5h
cHBsZS5jb20vbWFpbi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5n
XSk7CisgICAgYXV0byBwaWQzID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDMpOyAvLyBTaG91bGQgaGF2ZSBwcm9jZXNzLXN3
YXBwZWQuCisKKyAgICAvLyBOYXZpZ2F0ZSBiYWNrIHRvIHRoZSBzdXNwZW5kZWQgcGFnZSAoc2hv
dWxkIHVzZSB0aGUgcGFnZSBjYWNoZSkuCisgICAgW2NyZWF0ZWRXZWJWaWV3IGdvQmFja107Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIHJlY2Vp
dmVkTWVzc2FnZSA9IGZhbHNlOworCisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJp
bmddKTsKKyAgICBhdXRvIHBpZDQgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKKyAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mt
c3dhcHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KKworICAgIC8vIERv
IGEgZnJhZ21lbnQgbmF2aWdhdGlvbiBpbiB0aGUgb3JpZ2luYWwgV0tXZWJWaWV3IGFuZCBtYWtl
IHN1cmUgdGhpcyBkb2VzIG5vdCBjcmFzaC4KKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluMS5odG1sI3Rlc3RMaW5rIl1dOworICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
MS5odG1sI3Rlc3RMaW5rIiwgW1t3ZWJWaWV3MSBVUkxdIGFic29sdXRlU3RyaW5nXSk7CisgICAg
YXV0byBwaWQ1ID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAg
RVhQRUNUX0VRKHBpZDEsIHBpZDUpOworfQorCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351966</attachid>
            <date>2018-10-10 08:56:25 -0700</date>
            <delta_ts>2018-10-10 11:21:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190418-20181010085624.patch</filename>
            <type>text/plain</type>
            <size>18912</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzZDdiY2ZmNjYxMTUwNTNm
NTY3MmU3NWQzNzQxM2JjYjg3NTk0MzkuLjNiZGJiM2NhNjg3ZWFkNTZhMzVlYjM3YzhjNDg3Mjg3
Y2FhMDk4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTgtMTAtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKFBTT04pOiBBc3Nl
cnRpb24gaGl0IHVuZGVyIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRh
dGEoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
NDE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTA1OTc2OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHByb2Nlc3Mgc3dhcHBpbmcgYW5k
ICJzdXNwZW5kaW5nIiB0aGUgcHJldmlvdXMgV2ViUHJvY2VzcyBpbiBhIFN1c3BlbmRlZFBhZ2VQ
cm94eSwKKyAgICAgICAgd2UgbmVlZCB0byBrZWVwIGFyb3VuZCB0aGUgbWFpbiBmcmFtZSdzIElE
IHRoYXQgc3RpbGwgZXhpc3RzIG9uIGluIHRoaXMgcHJvY2Vzcy4gVGhpcworICAgICAgICBpcyBu
ZWVkZWQgc28gdGhhdCB3ZSBjYW4gcmUtY3JlYXRlIGEgVUktc2lkZSBXZWJGcmFtZVByb3h5IGZv
ciB0aGUgV2ViRnJhbWUgdGhhdCBleGlzdHMKKyAgICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGlm
IHdlIGV2ZXIgc3dhcCBiYWNrIHRvIHRoaXMgc3VzcGVuZGVkIHByb2Nlc3MgKHNlZSBsb2dpbiBp
bgorICAgICAgICBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoKSkuCisKKyAgICAgICAg
VGhlIGJ1ZyB3YXMgdGhhdCB0aGUgbWFpbiBmcmFtZSBJRCB3YXMgc3RvcmVkIG9uIHRoZSBXZWJQ
YWdlUHJveHkgdmlhIG1fbWFpbkZyYW1lSUQgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgU3VzcGVu
ZGVkUGFnZVByb3h5LiBUaGlzIG1lYW5zIHRoYXQgbV9tYWluRnJhbWVJRCB3b3VsZCBnZXQgb3Zl
cnJpZGVuIHdoZW4gbmF2aWdhdGluZyBpbiB0aGUgbmV3CisgICAgICAgIFdlYlByb2Nlc3Mgd2l0
aCB0aGUgdmFsdWUgMSAoYmVjYXVzZSBXZWJGcmFtZSBpZGVudGlmaWVycyBzdGFydCBhdCAxIGFu
ZCBhcmUgcGVyLVdlYlByb2Nlc3MpLgorICAgICAgICBUaGlzIHdvdWxkIGxlYWQgdG8gdXMgY29u
c3RydWN0aW5nIGEgV2ViRnJhbWVQcm94eSB3aXRoIHRoZSB3cm9uZyBmcmFtZSBpZGVudGlmaWVy
IGluCisgICAgICAgIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2VzcygpLCB3aGljaCB3b3Vs
ZCBvdmVycmlkZSBhbiBleGlzdGluZyB1bnJlbGF0ZWQgV2ViRnJhbWUgaW4gdGhlCisgICAgICAg
IFdlYlByb2Nlc3NQcm94eSdzIEhhc2hNYXAgb2YgZnJhbWVzLiBUaGlzIHdvdWxkIGxlYWQgdG8g
Y3Jhc2hlcyBsYXRlciBvbiBhcyB0aGUgV2ViRnJhbWUKKyAgICAgICAgd291bGQgbm90IGJlIGFz
c29jaWF0ZWQgdG8gdGhlIFdlYlBhZ2VQcm94eSB3ZSBleHBlY3QuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVk
UGFnZVByb3h5OjpTdXNwZW5kZWRQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdXNw
ZW5kZWRQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVkUGFnZVByb3h5Ojpt
YWluRnJhbWVJRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVDcmVhdGVTdXNwZW5kZWRQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OnN1c3BlbmRXZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKwogMjAxOC0xMC0wOSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXUEVdIEV4cGxpY2l0bHkgbGluayBhZ2FpbnN0IGdtb2R1bGUgd2hl
cmUgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5j
cHAKaW5kZXggOGJjNGE3NTNmYTc2NzNkNDExYjliNGNmNWI1NDQyOTc5ZDY5MzIwNC4uMDJhYzY2
MWJhNzhhYTQ3Njk2NGE0NmZhNmJjOTM0ZDY5N2M3NmVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03NCw5ICs3NCwxMCBAQCBzdGF0
aWMgY29uc3QgSGFzaFNldDxJUEM6OlN0cmluZ1JlZmVyZW5jZT4mIG1lc3NhZ2VOYW1lc1RvSWdu
b3JlV2hpbGVTdXNwZW5kZWQoKQogfQogI2VuZGlmCiAKLVN1c3BlbmRlZFBhZ2VQcm94eTo6U3Vz
cGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKQorU3VzcGVuZGVkUGFnZVBy
b3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIHVpbnQ2NF90
IG1haW5GcmFtZUlEKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92
ZShwcm9jZXNzKSkKKyAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCiAgICAgLCBtX29y
aWdpbihTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoeyB7IH0sIGl0ZW0udXJsKCkgfSkpCiB7
CiAgICAgaXRlbS5zZXRTdXNwZW5kZWRQYWdlKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggMzYzMWY5ZjA3OWRlMzdhMjcyODRkY2Ni
OGU1MDJiNzdlNGJmZDNmYi4uMDRjNGVjZjI1NTQxYjFjNTBjODZlMTMzMGU5NmE3OTE1ZWM3MjM3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKQEAg
LTM4LDEzICszOCwxNCBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIGNsYXNzIFN1c3BlbmRl
ZFBhZ2VQcm94eSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHsK
IHB1YmxpYzoKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpOworICAgIFN1c3BlbmRlZFBh
Z2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJiwgdWludDY0X3QgbWFpbkZyYW1lSUQpOwogICAgIH5TdXNwZW5kZWRQYWdl
UHJveHkoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2U7IH0KICAgICBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MoKSBjb25zdCB7IHJldHVy
biBtX3Byb2Nlc3MuZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KICAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9CiAKICAgICB2b2lkIHdl
YlByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkmKTsKQEAgLTYwLDYgKzYxLDcgQEAgcHJp
dmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFJlZlB0cjxXZWJQcm9jZXNz
UHJveHk+IG1fcHJvY2VzczsKKyAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOwogICAgIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBtX29yaWdpbjsKIAogI2lmICFMT0dfRElTQUJMRUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDM2YjBlMWU1MTA5Mzk4
NTg0N2U1NDI3M2UyZDhjN2Y0NmMzMmRlODMuLjg1YzcwY2FmMzhkZGEzODAwMDRkOWM1ZWY3NzFh
ZmZiOWVhNmUzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vz
cygpCiAgICAgZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKCk7CiB9CiAKLVN1c3BlbmRlZFBh
Z2VQcm94eSogV2ViUGFnZVByb3h5OjptYXliZUNyZWF0ZVN1c3BlbmRlZFBhZ2UoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24pCitTdXNwZW5kZWRQ
YWdlUHJveHkqIFdlYlBhZ2VQcm94eTo6bWF5YmVDcmVhdGVTdXNwZW5kZWRQYWdlKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCB1aW50NjRfdCBt
YWluRnJhbWVJRCkKIHsKICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkUGFnZSB8fCBtX3N1c3BlbmRl
ZFBhZ2UtPnByb2Nlc3MoKSAhPSAmcHJvY2Vzcyk7CiAKQEAgLTcyMCw3ICs3MjAsNyBAQCBTdXNw
ZW5kZWRQYWdlUHJveHkqIFdlYlBhZ2VQcm94eTo6bWF5YmVDcmVhdGVTdXNwZW5kZWRQYWdlKFdl
YlByb2Nlc3NQcm94eSYgcHJvYwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICBtX3N1c3BlbmRlZFBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFN1c3BlbmRlZFBhZ2VQcm94eT4o
KnRoaXMsIHByb2Nlc3MsICpjdXJyZW50SXRlbSk7CisgICAgbV9zdXNwZW5kZWRQYWdlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTdXNwZW5kZWRQYWdlUHJveHk+KCp0aGlzLCBwcm9jZXNzLCAqY3VycmVu
dEl0ZW0sIG1haW5GcmFtZUlEKTsKIAogICAgIExPRyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQYWdl
UHJveHkgJSIgUFJJdTY0ICIgY3JlYXRlZCBzdXNwZW5kZWQgcGFnZSAlcyBmb3IgcHJvY2VzcyBw
aWQgJWksIGJhY2svZm9yd2FyZCBpdGVtICVzIiBQUkl1NjQsIHBhZ2VJRCgpLCBtX3N1c3BlbmRl
ZFBhZ2UtPmxvZ2dpbmdTdHJpbmcoKSwgcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmllcigpLCBjdXJy
ZW50SXRlbS0+aXRlbUlEKCkubG9nU3RyaW5nKCkpOwogCkBAIC03MzMsNyArNzMzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnN1c3BlbmRlZFBhZ2VDbG9zZWQoU3VzcGVuZGVkUGFnZVByb3h5JiBw
YWdlKQogICAgIG1fc3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJ
OjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlBy
b2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1By
b2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKFByb2Nlc3MsICIlcCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3NcbiIsIHRo
aXMpOwpAQCAtNzQxLDcgKzc0MSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9j
ZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0CiAgICAgLy8g
SWYgdGhlIHByb2Nlc3Mgd2UncmUgYXR0YWNoaW5nIHRvIGlzIGtlcHQgYWxpdmUgc29sZWx5IGJ5
IG91ciBjdXJyZW50IHN1c3BlbmRlZCBwYWdlLAogICAgIC8vIHdlIG5lZWQgdG8gbWFpbnRhaW4g
dGhhdCBieSB0ZW1wb3JhcmlseSBrZWVwaW5nIHRoZSBzdXNwZW5kZWQgcGFnZSBhbGl2ZS4KICAg
ICBhdXRvIGN1cnJlbnRTdXNwZW5kZWRQYWdlID0gV1RGTW92ZShtX3N1c3BlbmRlZFBhZ2UpOwot
ICAgIG1fcHJvY2Vzcy0+c3VzcGVuZFdlYlBhZ2VQcm94eSgqdGhpcywgbmF2aWdhdGlvbik7Cisg
ICAgaWYgKG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MpCisgICAgICAgIG1fcHJvY2Vzcy0+
c3VzcGVuZFdlYlBhZ2VQcm94eSgqdGhpcywgbmF2aWdhdGlvbiwgKm1haW5GcmFtZUlESW5QcmV2
aW91c1Byb2Nlc3MpOwogCiAgICAgbV9wcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKTsKICAgICBt
X2lzVmFsaWQgPSB0cnVlOwpAQCAtNzUyLDkgKzc1Myw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
d2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZp
Z2F0CiAgICAgLy8gYWxyZWFkeSBleGlzdHMgYW5kIGFscmVhZHkgaGFzIGEgbWFpbiBmcmFtZS4K
ICAgICBpZiAoY3VycmVudFN1c3BlbmRlZFBhZ2UgJiYgY3VycmVudFN1c3BlbmRlZFBhZ2UtPnBy
b2Nlc3MoKSA9PSBtX3Byb2Nlc3MucHRyKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX21haW5GcmFt
ZSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5GcmFtZUlEKTsKLSAgICAgICAgbV9tYWluRnJhbWUg
PSBXZWJGcmFtZVByb3h5OjpjcmVhdGUodGhpcywgKm1fbWFpbkZyYW1lSUQpOwotICAgICAgICBt
X3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZCgqbV9tYWluRnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKKyAg
ICAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVhdGUodGhpcywgY3VycmVudFN1
c3BlbmRlZFBhZ2UtPm1haW5GcmFtZUlEKCkpOworICAgICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3Jl
YXRlZChjdXJyZW50U3VzcGVuZGVkUGFnZS0+bWFpbkZyYW1lSUQoKSwgKm1fbWFpbkZyYW1lKTsK
ICAgICB9CiAKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoKTsKQEAgLTI1MzcsMTUg
KzI1MzcsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFIKICAgICBMT0coTG9hZGluZywgIkNv
bnRpbnVpbmcgbmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNz
IiwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkp
OwogCiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gcHJldmlvdXNQcm9jZXNzID0gbV9wcm9jZXNz
LmNvcHlSZWYoKTsKLSAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBuYXZpZ2F0ZWRGcmFtZUlk
ZW50aWZpZXJJblByZXZpb3VzUHJvY2VzczsKLSAgICBpZiAobV9tYWluRnJhbWUpCi0gICAgICAg
IG5hdmlnYXRlZEZyYW1lSWRlbnRpZmllckluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUt
PmZyYW1lSUQoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJREluUHJl
dmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwobV9tYWluRnJh
bWUtPmZyYW1lSUQoKSkgOiBzdGQ6Om51bGxvcHQ7CiAKICAgICBBU1NFUlQobV9wcm9jZXNzLnB0
cigpICE9IHByb2Nlc3MucHRyKCkpOwogCiAgICAgcHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNz
VGVybWluYXRpb25SZWFzb246Ok5hdmlnYXRpb25Td2FwKTsKIAotICAgIHN3YXBUb1dlYlByb2Nl
c3MoV1RGTW92ZShwcm9jZXNzKSwgbmF2aWdhdGlvbik7CisgICAgc3dhcFRvV2ViUHJvY2VzcyhX
VEZNb3ZlKHByb2Nlc3MpLCBuYXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNz
KTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0gbmF2aWdhdGlvbi50YXJnZXRJdGVtKCkpIHsKICAg
ICAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0aW9uSW5O
ZXdQcm9jZXNzIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51dGY4KCku
ZGF0YSgpKTsKQEAgLTI1ODQsMTMgKzI1ODIsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFIK
ICAgICB9CiAKICAgICBib29sIGlzSW5pdGlhbE5hdmlnYXRpb25Jbk5ld1dpbmRvdyA9IG9wZW5l
ZEJ5RE9NKCkgJiYgIWhhc0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMoKTsKLSAgICBpZiAo
IWlzSW5pdGlhbE5hdmlnYXRpb25Jbk5ld1dpbmRvdyB8fCAhbmF2aWdhdGVkRnJhbWVJZGVudGlm
aWVySW5QcmV2aW91c1Byb2Nlc3MpCisgICAgaWYgKCFpc0luaXRpYWxOYXZpZ2F0aW9uSW5OZXdX
aW5kb3cgfHwgIW1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fbWFpbkZyYW1lV2luZG93Q3JlYXRpb25IYW5kbGVyID0gW3RoaXMsIHByZXZpb3Vz
UHJvY2VzcyA9IFdURk1vdmUocHJldmlvdXNQcm9jZXNzKSwgbmF2aWdhdGVkRnJhbWVJZGVudGlm
aWVySW5QcmV2aW91c1Byb2Nlc3MgPSAqbmF2aWdhdGVkRnJhbWVJZGVudGlmaWVySW5QcmV2aW91
c1Byb2Nlc3NdKGNvbnN0IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImIHdpbmRvd0lkZW50aWZpZXIp
IHsKKyAgICBtX21haW5GcmFtZVdpbmRvd0NyZWF0aW9uSGFuZGxlciA9IFt0aGlzLCBwcmV2aW91
c1Byb2Nlc3MgPSBXVEZNb3ZlKHByZXZpb3VzUHJvY2VzcyksIG1haW5GcmFtZUlESW5QcmV2aW91
c1Byb2Nlc3MgPSAqbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2Vzc10oY29uc3QgR2xvYmFsV2lu
ZG93SWRlbnRpZmllciYgd2luZG93SWRlbnRpZmllcikgewogICAgICAgICBBU1NFUlQobV9tYWlu
RnJhbWUpOwogICAgICAgICBHbG9iYWxGcmFtZUlkZW50aWZpZXIgbmF2aWdhdGVkRnJhbWVJZGVu
dGlmaWVySW5OZXdQcm9jZXNzIHsgcGFnZUlEKCksIG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgfTsK
LSAgICAgICAgcHJldmlvdXNQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpGcmFtZUJl
Y2FtZVJlbW90ZShuYXZpZ2F0ZWRGcmFtZUlkZW50aWZpZXJJblByZXZpb3VzUHJvY2VzcywgbmF2
aWdhdGVkRnJhbWVJZGVudGlmaWVySW5OZXdQcm9jZXNzLCB3aW5kb3dJZGVudGlmaWVyKSwgcGFn
ZUlEKCkpOworICAgICAgICBwcmV2aW91c1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkZyYW1lQmVjYW1lUmVtb3RlKG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG5hdmlnYXRl
ZEZyYW1lSWRlbnRpZmllckluTmV3UHJvY2Vzcywgd2luZG93SWRlbnRpZmllciksIHBhZ2VJRCgp
KTsKICAgICB9OwogfQogCkBAIC0zNDE1LDcgKzM0MTMsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MtPmNhbkNyZWF0ZUZyYW1lKGZyYW1lSUQpKTsKIAogICAgIG1fbWFpbkZyYW1lID0g
V2ViRnJhbWVQcm94eTo6Y3JlYXRlKHRoaXMsIGZyYW1lSUQpOwotICAgIG1fbWFpbkZyYW1lSUQg
PSBmcmFtZUlEOwogCiAgICAgLy8gQWRkIHRoZSBmcmFtZSB0byB0aGUgcHJvY2VzcyB3aWRlIG1h
cC4KICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCAqbV9tYWluRnJhbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4ZTkyNjMyMjM5ODA2YWVm
MmEyNWQxOTU0MjIyODQ5ZmZlOWI5YjgwLi45MmE0M2Q2MjRjNTU5ZGU2NTA0MjRlZWJmYTA1ODk5
MTlmMzljNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM1
NCw3ICsxMzU0LDcgQEAgcHVibGljOgogCiAgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSBwcmVmZXJl
bmNlc1N0b3JlKCkgY29uc3Q7CiAKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkqIG1heWJlQ3JlYXRl
U3VzcGVuZGVkUGFnZShXZWJQcm9jZXNzUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24mKTsKKyAgICBT
dXNwZW5kZWRQYWdlUHJveHkqIG1heWJlQ3JlYXRlU3VzcGVuZGVkUGFnZShXZWJQcm9jZXNzUHJv
eHkmLCBBUEk6Ok5hdmlnYXRpb24mLCB1aW50NjRfdCBtYWluRnJhbWVJRCk7CiAgICAgU3VzcGVu
ZGVkUGFnZVByb3h5KiBzdXNwZW5kZWRQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWRQ
YWdlLmdldCgpOyB9CiAgICAgdm9pZCBzdXNwZW5kZWRQYWdlQ2xvc2VkKFN1c3BlbmRlZFBhZ2VQ
cm94eSYpOwogCkBAIC0xNTI1LDcgKzE1MjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q2Fu
U2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9y
aXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZl
bnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9CiAKICAgICB2b2lk
IHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYpOworICAgIHZvaWQgc3dhcFRvV2Vi
UHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzKTsKICAgICB2b2lk
IGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcygpOwogCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NGb3JSZWxvYWQoKTsKQEAgLTE4OTQsNyArMTg5NCw2
IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vic2l0ZURhdGFTdG9y
ZTsKIAogICAgIFJlZlB0cjxXZWJGcmFtZVByb3h5PiBtX21haW5GcmFtZTsKLSAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBtX21haW5GcmFtZUlEOwogICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9t
YWluRnJhbWVDcmVhdGlvbkhhbmRsZXI7CiAgICAgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3Jl
OjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJik+IG1fbWFpbkZyYW1lV2luZG93Q3JlYXRpb25IYW5k
bGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBkNjcxZDZhNGRkODMxODUyOTg5OGQ4NWJiNTRkMTQ4ZTk5ZWI1ZWRjLi5jOTk0N2RiZGIxNTJh
YzdlZTJkMWMzMjQzNmEwMjE5NWJkMzZkZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQzOCw5ICs0MzgsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6YWRkRXhpc3RpbmdXZWJQYWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSwgdWludDY0X3Qg
cGFnZUlEKQogICAgIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdXNwZW5kV2ViUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYg
d2ViUGFnZSwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnN1c3BlbmRXZWJQYWdlUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlLCBBUEk6Ok5hdmln
YXRpb24mIG5hdmlnYXRpb24sIHVpbnQ2NF90IG1haW5GcmFtZUlEKQogewotICAgIGlmIChhdXRv
KiBzdXNwZW5kZWRQYWdlID0gd2ViUGFnZS5tYXliZUNyZWF0ZVN1c3BlbmRlZFBhZ2UoKnRoaXMs
IG5hdmlnYXRpb24pKSB7CisgICAgaWYgKGF1dG8qIHN1c3BlbmRlZFBhZ2UgPSB3ZWJQYWdlLm1h
eWJlQ3JlYXRlU3VzcGVuZGVkUGFnZSgqdGhpcywgbmF2aWdhdGlvbiwgbWFpbkZyYW1lSUQpKSB7
CiAgICAgICAgIExPRyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQcm9jZXNzUHJveHkgcGlkICVpIGFk
ZGVkIHN1c3BlbmRlZCBwYWdlICVzIiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgc3VzcGVuZGVkUGFn
ZS0+bG9nZ2luZ1N0cmluZygpKTsKICAgICAgICAgbV9zdXNwZW5kZWRQYWdlTWFwLnNldCh3ZWJQ
YWdlLnBhZ2VJRCgpLCBzdXNwZW5kZWRQYWdlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMyNWFjYmY2ZDg1YTMyNzhiOGNjYjg2Yzg2MDA5
ZGI0NjI3ZGRiNGIuLjMzMjc0ZGY1ZDYxZTBiZDg2MzJjZTMwOTkzNDlhOTc2M2NmYjM5NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMDgsNyArMjA4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkKCkgeyBtX2hh
c0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNDb21t
aXR0ZWRBbnlQcm92aXNpb25hbExvYWRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDb21taXR0ZWRB
bnlQcm92aXNpb25hbExvYWRzOyB9CiAKLSAgICB2b2lkIHN1c3BlbmRXZWJQYWdlUHJveHkoV2Vi
UGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uJik7CisgICAgdm9pZCBzdXNwZW5kV2ViUGFnZVBy
b3h5KFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiYsIHVpbnQ2NF90IG1haW5GcmFtZUlE
KTsKICAgICB2b2lkIHN1c3BlbmRlZFBhZ2VXYXNEZXN0cm95ZWQoU3VzcGVuZGVkUGFnZVByb3h5
Jik7CiAKICNpZiBQTEFURk9STShXQVRDSE9TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZhODkxY2E1NGExMTE3ZWQzZGYyMmNiMmE1ZDc0ZGI5
MDA3NWQwZGMuLjBjOWQ0MWJmNGYyMjA1MjRjOTI4NzZkZmM3NDc2OGJjNzA3NDA0YTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxOC0xMC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZ3Jlc3Npb24oUFNPTik6IEFzc2VydGlvbiBoaXQgdW5kZXIgV2ViUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA0MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
MDU5NzY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisKIDIwMTgtMTAtMDkgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aE5dIElt
cG9ydCBDVEFQIEhJRCBtZXNzYWdlIGFuZCBwYWNrZXQgc3RydWN0dXJlIGZyb20gQ2hyb21pdW0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDRkMTZkYWM4NTI0YTU3MGU5ZmU1
NmRmNjljNDU5NDRjNzY0ZGZmN2IuLjc2MTVhZWUzMTE3YjdmMDA0YjRkYTNjMmYzY2E1ZjA3Mjg0
MDVlYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtMzA3LDYgKzMwNywx
NiBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VS
Q0UiOwogCitzdGF0aWMgY29uc3QgY2hhciogbGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05S
RVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBm
dW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBzb24ucG9zdE1lc3NhZ2UoIldhcyBwZXJzaXN0ZWQi
KTsKK30pOworPC9zY3JpcHQ+Cis8YSBpZD0idGVzdExpbmsiIGhyZWY9InBzb246Ly93d3cuYXBw
bGUuY29tL21haW4uaHRtbCI+TmF2aWdhdGU8L2E+CispUFNPTlJFU09VUkNFIjsKKwogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAogVEVTVChQcm9jZXNzU3dhcCwgQmFzaWMpCkBAIC0xOTI3LDQg
KzE5MzcsODAgQEAgVEVTVChQcm9jZXNzU3dhcCwgVGVybWluYXRlZFN1c3BlbmRlZFBhZ2VQcm9j
ZXNzKQogICAgIEVYUEVDVF9ORShwaWQzLCBwaWQ0KTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykK
KworVEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlE
VGhhdElzTm90T25lKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uOllFU107
CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRvRGF0YTp0YXJn
ZXRCbGFua1NhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOworICAgIFtoYW5kbGVyIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0
YTpsaW5rVG9BcHBsZVRlc3RCeXRlc107CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAg
ICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNzYWdlSGFuZGxlciBhbGxv
Y10gaW5pdF0pOworICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAi
cHNvbiJdOworCisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3
ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRl
ID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBb
d2ViVmlldzEgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1BTT05VSURlbGVnYXRlIGFsbG9jXSBp
bml0V2l0aE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldKTsKKyAg
ICBbd2ViVmlldzEgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKKworICAg
IFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiwgW1t3ZWJWaWV3MSBVUkxdIGFic29s
dXRlU3RyaW5nXSk7CisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0ZVdlYlZpZXcp
OworICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gTmV3IFdLV2ViVmll
dyBoYXMgbm93IG5hdmlnYXRlZCB0byB3ZWJraXQub3JnLgorICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxd
IGFic29sdXRlU3RyaW5nXSk7CisgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgLy8g
Q2xpY2sgbGluayBpbiBuZXcgV0tXZWJWaWV3IHNvIHRoYXQgaXQgbmF2aWdhdGVzIGNyb3NzLXNp
dGUgdG8gYXBwbGUuY29tLgorICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6
QCJ0ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gTmV3
IFdLV2ViVmlldyBoYXMgbm93IG5hdmlnYXRlZCB0byBhcHBsZS5jb20uCisgICAgRVhQRUNUX1dL
X1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1tjcmVhdGVkV2ViVmll
dyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CisgICAgYXV0byBwaWQzID0gW2NyZWF0ZWRXZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDMpOyAvLyBT
aG91bGQgaGF2ZSBwcm9jZXNzLXN3YXBwZWQuCisKKyAgICAvLyBOYXZpZ2F0ZSBiYWNrIHRvIHRo
ZSBzdXNwZW5kZWQgcGFnZSAoc2hvdWxkIHVzZSB0aGUgcGFnZSBjYWNoZSkuCisgICAgW2NyZWF0
ZWRXZWJWaWV3IGdvQmFja107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZE1lc3NhZ2UpOworICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOworCisgICAgRVhQRUNUX1dL
X1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJW
aWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKKyAgICBhdXRvIHBpZDQgPSBbY3JlYXRlZFdlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNCk7IC8v
IFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIg
cHJvY2Vzcy4KKworICAgIC8vIERvIGEgZnJhZ21lbnQgbmF2aWdhdGlvbiBpbiB0aGUgb3JpZ2lu
YWwgV0tXZWJWaWV3IGFuZCBtYWtlIHN1cmUgdGhpcyBkb2VzIG5vdCBjcmFzaC4KKyAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sI3Rlc3RMaW5rIl1dOworICAgIFt3ZWJW
aWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sI3Rlc3RMaW5rIiwgW1t3ZWJWaWV3MSBVUkxdIGFi
c29sdXRlU3RyaW5nXSk7CisgICAgYXV0byBwaWQ1ID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDUpOworfQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQorCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
      

    </bug>

</bugzilla>