<?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>159980</bug_id>
          
          <creation_ts>2016-07-20 11:39:47 -0700</creation_ts>
          <short_desc>[iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later</short_desc>
          <delta_ts>2016-07-21 17:12:17 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chelsea Pugh">cpugh</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cpugh</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>yongjun_zhang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1212821</commentid>
    <comment_count>0</comment_count>
    <who name="Chelsea Pugh">cpugh</who>
    <bug_when>2016-07-20 11:39:47 -0700</bug_when>
    <thetext>Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later. Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212825</commentid>
    <comment_count>1</comment_count>
      <attachid>284134</attachid>
    <who name="Chelsea Pugh">cpugh</who>
    <bug_when>2016-07-20 11:45:39 -0700</bug_when>
    <thetext>Created attachment 284134
Patch for [iOS] Apps using WKWebView will crash if they set the scroll views</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212828</commentid>
    <comment_count>2</comment_count>
      <attachid>284134</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-20 11:52:09 -0700</bug_when>
    <thetext>Comment on attachment 284134
Patch for [iOS] Apps using WKWebView will crash if they set the scroll views

I believe that the fundamental problem is that WKScrollView is subclassing UIScrollView and violating its API contract that states that the delegate property is weak. Your patch prevents this from causing a crash in one specific scenario, but I don’t understand why we can’t just fix WKScrollView. It may be as simple as using a WeakObjCPtr for the external delegate (making sure to take a strong reference any time we use it in a method). Am I missing anything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212829</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-07-20 11:53:01 -0700</bug_when>
    <thetext>It also seems like either way you choose to fix it, you should be able to create an API test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213326</commentid>
    <comment_count>4</comment_count>
      <attachid>284260</attachid>
    <who name="Chelsea Pugh">cpugh</who>
    <bug_when>2016-07-21 14:31:12 -0700</bug_when>
    <thetext>Created attachment 284260
v2 patch for [iOS] Apps using WKWebView will crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213327</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 14:32:12 -0700</bug_when>
    <thetext>Attachment 284260 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKScrollView.mm:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 5 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>1213341</commentid>
    <comment_count>6</comment_count>
      <attachid>284260</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-21 14:45:39 -0700</bug_when>
    <thetext>Comment on attachment 284260
v2 patch for [iOS] Apps using WKWebView will crash

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

&gt; Source/WebKit2/UIProcess/ios/WKScrollView.mm:47
&gt; +    WebKit::WeakObjCPtr&lt;id &lt;UIScrollViewDelegate&gt;&gt; _externalDelegate;

I think you can add “using namespace WebKit” to this file and avoid the WebKit:: qualifier here and elsewhere.

&gt; Source/WebKit2/UIProcess/ios/WKScrollView.mm:74
&gt; +    auto externalDelegate = _externalDelegate.get();
&gt; +    return [super respondsToSelector:aSelector] || [_internalDelegate respondsToSelector:aSelector] || [externalDelegate.get() respondsToSelector:aSelector];

Since you’re only using the external delegate once you don’t really have to have this local.

&gt; Source/WebKit2/UIProcess/ios/WKScrollView.mm:140
&gt; +    if (_externalDelegate.get().get() == delegate)

Yikes! I wonder if we should add a == override to WeakObjCPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213347</commentid>
    <comment_count>7</comment_count>
    <who name="Chelsea Pugh">cpugh</who>
    <bug_when>2016-07-21 14:56:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 284260 [details]
&gt; v2 patch for [iOS] Apps using WKWebView will crash
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284260&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WKScrollView.mm:47
&gt; &gt; +    WebKit::WeakObjCPtr&lt;id &lt;UIScrollViewDelegate&gt;&gt; _externalDelegate;
&gt; 
&gt; I think you can add “using namespace WebKit” to this file and avoid the
&gt; WebKit:: qualifier here and elsewhere.

Will do

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WKScrollView.mm:74
&gt; &gt; +    auto externalDelegate = _externalDelegate.get();
&gt; &gt; +    return [super respondsToSelector:aSelector] || [_internalDelegate respondsToSelector:aSelector] || [externalDelegate.get() respondsToSelector:aSelector];
&gt; 
&gt; Since you’re only using the external delegate once you don’t really have to
&gt; have this local.

Okay

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WKScrollView.mm:140
&gt; &gt; +    if (_externalDelegate.get().get() == delegate)
&gt; 
&gt; Yikes! I wonder if we should add a == override to WeakObjCPtr.

Maybe, but likely out of scope for this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213352</commentid>
    <comment_count>8</comment_count>
      <attachid>284267</attachid>
    <who name="Chelsea Pugh">cpugh</who>
    <bug_when>2016-07-21 15:24:35 -0700</bug_when>
    <thetext>Created attachment 284267
v3 patch for [iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213356</commentid>
    <comment_count>9</comment_count>
      <attachid>284270</attachid>
    <who name="Chelsea Pugh">cpugh</who>
    <bug_when>2016-07-21 15:30:09 -0700</bug_when>
    <thetext>Created attachment 284270
v3 patch for [iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213410</commentid>
    <comment_count>10</comment_count>
      <attachid>284270</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 16:55:45 -0700</bug_when>
    <thetext>Comment on attachment 284270
v3 patch for [iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later

Rejecting attachment 284270 from commit-queue.

cpugh@apple.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213417</commentid>
    <comment_count>11</comment_count>
      <attachid>284270</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 17:12:13 -0700</bug_when>
    <thetext>Comment on attachment 284270
v3 patch for [iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later

Clearing flags on attachment: 284270

Committed r203541: &lt;http://trac.webkit.org/changeset/203541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213418</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 17:12:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284134</attachid>
            <date>2016-07-20 11:45:39 -0700</date>
            <delta_ts>2016-07-21 14:31:12 -0700</delta_ts>
            <desc>Patch for [iOS] Apps using WKWebView will crash if they set the scroll views</desc>
            <filename>[iOS] Apps using WKWebView will crash if they set the scroll views</filename>
            <type>text/plain</type>
            <size>2863</size>
            <attacher name="Chelsea Pugh">cpugh</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzQ2MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA3LTIwICBDaGVsc2Vh
IFB1Z2ggIDxjcHVnaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQXBwcyB1c2luZyBXS1dl
YlZpZXcgd2lsbCBjcmFzaCBpZiB0aGV5IHNldCB0aGUgc2Nyb2xsIHZpZXcncyBkZWxlZ2F0ZSBh
bmQgZG9uJ3QgbmlsIGl0IG91dCBsYXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTgwCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI3NDUwODI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlYWxs
b2NdKTogQ2xlYXIgZXh0ZXJuYWwgZGVsZWdhdGUgYmVmb3JlIHdlIGNhbGwgLVtXS1Njcm9sbFZp
ZXcgc2V0SW50ZXJuYWxEZWxlZ2F0ZTpdLgorICAgICAgICBUaGlzIHdheSwgd2hlbiAtW1dLU2Ny
b2xsVmlldyBfdXBkYXRlRGVsZWdhdGVdIGlzIGNhbGxlZCBmcm9tIHRoZXJlLCBfZXh0ZXJuYWxE
ZWxlZ2F0ZSB3aWxsIGJlIG5pbAorICAgICAgICBhbmQgd2Ugd2lsbCBub3QgdHJ5IHRvIHNldCB0
aGUgc2Nyb2xsIHZpZXcncyBkZWxlZ2F0ZSB0byBhIGRlYWxsb2NhdGluZyBvYmplY3QuCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLU2Nyb2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9jbGVhckV4dGVy
bmFsRGVsZWdhdGVdKTogTmlsIG91dCBfZXh0ZXJuYWxEZWxlZ2F0ZSBzbyB0aGF0IGEgZGVhbGxv
Y2F0aW5nIG9iamVjdAorICAgICAgICB3aWxsIG5vdCBiZSBzZXQgYXMgdGhlIHNjcm9sbCB2aWV3
J3MgZGVsZWdhdGUuCisKIDIwMTYtMDctMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtMaW51eF0gTWVtb3J5UHJlc3N1cmVNb25pdG9yIGZh
bGxiYWNrIGNvZGUgdG8gZ2V0IG1lbW9yeSBhdmFpbGFibGUgaW4gb2xkZXIgbGludXgga2VybmVs
cyBkb2Vzbid0IHdvcmsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCShyZXZpc2lvbiAyMDM0MTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjE2LDYg
KzYxNiw3IEBACiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlm
aWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9p
ZCAqKShzZWxmKSwgbnVsbHB0ciwgbnVsbHB0cik7CiAjZW5kaWYKICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOworICAgIFtfc2Ny
b2xsVmlldyBfY2xlYXJFeHRlcm5hbERlbGVnYXRlXTsKICAgICBbX3Njcm9sbFZpZXcgc2V0SW50
ZXJuYWxEZWxlZ2F0ZTpuaWxdOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tTY3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcuaAkocmV2aXNpb24gMjAzNDExKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NiArMzUsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR0Zsb2F0IHByZWZl
cnJlZFNjcm9sbERlY2VsZXJhdGlvbkZhY3RvcjsKIAogLSAodm9pZClfc2V0Q29udGVudFNpemVQ
cmVzZXJ2aW5nQ29udGVudE9mZnNldER1cmluZ1J1YmJlcmJhbmQ6KENHU2l6ZSljb250ZW50U2l6
ZTsKKy0gKHZvaWQpX2NsZWFyRXh0ZXJuYWxEZWxlZ2F0ZTsKIAogQGVuZAogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQkocmV2aXNpb24gMjAz
NDExKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsMTIgQEAKICAgICByZXR1cm4gX2V4dGVybmFsRGVs
ZWdhdGU7CiB9CiAKKy8vIDI3NDUwODI1OiBTaG91bGQgb25seSBiZSBjYWxsZWQgYnkgLVtXS1dl
YlZpZXcgZGVhbGxvY10KKy0gKHZvaWQpX2NsZWFyRXh0ZXJuYWxEZWxlZ2F0ZQoreworICAgIF9l
eHRlcm5hbERlbGVnYXRlID0gbmlsOworfQorCiAtICh2b2lkKV91cGRhdGVEZWxlZ2F0ZQogewog
ICAgIFdLU2Nyb2xsVmlld0RlbGVnYXRlRm9yd2FyZGVyICpvbGRGb3J3YXJkZXIgPSBfZGVsZWdh
dGVGb3J3YXJkZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284260</attachid>
            <date>2016-07-21 14:31:12 -0700</date>
            <delta_ts>2016-07-21 15:24:35 -0700</delta_ts>
            <desc>v2 patch for [iOS] Apps using WKWebView will crash</desc>
            <filename>[iOS] Apps using WKWebView will crash.txt</filename>
            <type>text/plain</type>
            <size>14917</size>
            <attacher name="Chelsea Pugh">cpugh</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyOTNlMjE3Li4wZWVlMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTYtMDctMjEgIENoZWxzZWEgUHVnaCAgPGNwdWdoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBBcHBzIHVzaW5nIFdLV2ViVmlldyB3aWxsIGNyYXNoIGlmIHRoZXkgc2V0IHRoZSBz
Y3JvbGwgdmlldydzIGRlbGVnYXRlIGFuZCBkb24ndCBuaWwgaXQgb3V0IGxhdGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5ODAKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vMjc0NTA4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgcm9vdCBjYXVzZSBvZiB0aGlzIGNyYXNoIGlzIHRoYXQgd2Ug
YXJlIG5vdCBhYmlkaW5nIHRoZSBVSVNjcm9sbFZpZXcgQVBJIHRoYXQgdGhlIHNjcm9sbCB2aWV3
CisgICAgICAgIGRlbGVnYXRlIHByb3BlcnR5IHNob3VsZCBiZSB3ZWFrLiBJZiBzZXR0ZXJzIG9m
IHRoaXMgZGVsZWdhdGUgZG8gbm90IGtub3cgdGhhdCwgc2luY2UgdGhlIFdLV2ViVmlldworICAg
ICAgICBleHBvc2VzIHRoZSBzY3JvbGwgdmlldyBhcyBhIFVJU2Nyb2xsVmlldywgdGhleSBtYXkg
Zm9yZ2V0IHRvIG5pbCBvdXQgdGhlIGRlbGVnYXRlIHRoZXkgc2V0IGFuZCB3aWxsCisgICAgICAg
IHRoZW4gY3Jhc2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToK
KyAgICAgICAgKC1bV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgbWV0aG9kU2lnbmF0dXJl
Rm9yU2VsZWN0b3I6XSk6IEdldCBhIFJldGFpblB0ciBob2xkaW5nIHRoZQorICAgICAgICBleHRl
cm5hbCBkZWxlZ2F0ZSBhbmQgdXNlIHdoZXJlIG5lZWRlZC4KKyAgICAgICAgKC1bV0tTY3JvbGxW
aWV3RGVsZWdhdGVGb3J3YXJkZXIgcmVzcG9uZHNUb1NlbGVjdG9yOl0pOiBEaXR0by4KKyAgICAg
ICAgKC1bV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgZm9yd2FyZEludm9jYXRpb246XSk6
IERpdHRvLgorICAgICAgICAoLVtXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRlciBmb3J3YXJk
aW5nVGFyZ2V0Rm9yU2VsZWN0b3I6XSk6IERpdHRvLiBXaGVuIHJldHVybmluZyBhIHJlZmVyZW5j
ZQorICAgICAgICB0byB0aGUgZXh0ZXJuYWwgZGVsZWdhdGUsIGdldCBhIHJldGFpbmVkIGFuZCBh
dXRvcmVsZWFzZWQgcmVmZXJlbmNlIHNvIHRoZSBjYWxsZXIgbmVlZG4ndCByZWxlYXNlCisgICAg
ICAgIHRoZSBvYmplY3Qgd2hlbiBkb25lLgorICAgICAgICAoLVtXS1Njcm9sbFZpZXcgZGVsZWdh
dGVdKTogRGl0dG8uCisgICAgICAgICgtW1dLU2Nyb2xsVmlldyBfdXBkYXRlRGVsZWdhdGVdKTog
R2V0IGEgUmV0YWluUHRyIGhvbGRpbmcgdGhlIGV4dGVybmFsIGRlbGVnYXRlIHRoYXQgY2FuIGJl
CisgICAgICAgIHVzZWQgdGhyb3VnaG91dCB0aGlzIG1ldGhvZC4gVXNlIHRoZSBSZXRhaW5QdHIg
dG8gZ2V0IHRoZSBleHRlcm5hbCBkZWxlZ2F0ZSBmb3Igc2V0dGluZyBzdXBlcidzCisgICAgICAg
IGRlbGVnYXRlIGFzIHdlbGwgYXMgY3JlYXRpbmcgdGhlIGRlbGVnYXRlIGZvcndhcmRlci4KKyAg
ICAgICAgKC1bV0tTY3JvbGxWaWV3IHNldERlbGVnYXRlOl0pOiBHZXQgYSBSZXRhaW5QdHIgaG9s
ZGluZyB0aGUgZXh0ZXJuYWwgZGVsZWdhdGUgYW5kIHVzZSBpdHMgdmFsdWUgZm9yCisgICAgICAg
IGNvbXBhcmlzb24gdG8gdGhlIG9iamVjdCB3ZSBhcmUgc2V0dGluZyB0aGUgZXh0ZXJuYWwgZGVs
ZWdhdGUgdG8uCisKIDIwMTYtMDctMjAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDM0NzEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCmluZGV4IDY1OThiZDEu
LjMyMjViYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3Jv
bGxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbXBvcnQgIldl
YWtPYmpDUHRyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KIApAQCAtNDMsNyArNDQsNyBAQCBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRlciB7CiAgICAgV0tXZWJWaWV3
ICpfaW50ZXJuYWxEZWxlZ2F0ZTsKLSAgICBpZCA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+IF9leHRl
cm5hbERlbGVnYXRlOworICAgIFdlYktpdDo6V2Vha09iakNQdHI8aWQgPFVJU2Nyb2xsVmlld0Rl
bGVnYXRlPj4gX2V4dGVybmFsRGVsZWdhdGU7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aEludGVybmFsRGVsZWdhdGU6KFdLV2ViVmlldyA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+ICopaW50
ZXJuYWxEZWxlZ2F0ZSBleHRlcm5hbERlbGVnYXRlOihpZCA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+
KWV4dGVybmFsRGVsZWdhdGUKQEAgLTU4LDI0ICs1OSwyNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJbnRlcm5hbERlbGVnYXRlOihXS1dlYlZpZXcgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPiAq
KWludAogCiAtIChOU01ldGhvZFNpZ25hdHVyZSAqKW1ldGhvZFNpZ25hdHVyZUZvclNlbGVjdG9y
OihTRUwpYVNlbGVjdG9yCiB7CisgICAgYXV0byBleHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFs
RGVsZWdhdGUuZ2V0KCk7CiAgICAgTlNNZXRob2RTaWduYXR1cmUgKnNpZ25hdHVyZSA9IFtzdXBl
ciBtZXRob2RTaWduYXR1cmVGb3JTZWxlY3RvcjphU2VsZWN0b3JdOwogICAgIGlmICghc2lnbmF0
dXJlKQogICAgICAgICBzaWduYXR1cmUgPSBbKE5TT2JqZWN0ICopX2ludGVybmFsRGVsZWdhdGUg
bWV0aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6YVNlbGVjdG9yXTsKICAgICBpZiAoIXNpZ25hdHVy
ZSkKLSAgICAgICAgc2lnbmF0dXJlID0gWyhOU09iamVjdCAqKV9leHRlcm5hbERlbGVnYXRlIG1l
dGhvZFNpZ25hdHVyZUZvclNlbGVjdG9yOmFTZWxlY3Rvcl07CisgICAgICAgIHNpZ25hdHVyZSA9
IFsoTlNPYmplY3QgKilleHRlcm5hbERlbGVnYXRlLmdldCgpIG1ldGhvZFNpZ25hdHVyZUZvclNl
bGVjdG9yOmFTZWxlY3Rvcl07CiAgICAgcmV0dXJuIHNpZ25hdHVyZTsKIH0KIAogLSAoQk9PTCly
ZXNwb25kc1RvU2VsZWN0b3I6KFNFTClhU2VsZWN0b3IKIHsKLSAgICByZXR1cm4gW3N1cGVyIHJl
c3BvbmRzVG9TZWxlY3RvcjphU2VsZWN0b3JdIHx8IFtfaW50ZXJuYWxEZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6YVNlbGVjdG9yXSB8fCBbX2V4dGVybmFsRGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOmFTZWxlY3Rvcl07CisgICAgYXV0byBleHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFs
RGVsZWdhdGUuZ2V0KCk7CisgICAgcmV0dXJuIFtzdXBlciByZXNwb25kc1RvU2VsZWN0b3I6YVNl
bGVjdG9yXSB8fCBbX2ludGVybmFsRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rv
cl0gfHwgW2V4dGVybmFsRGVsZWdhdGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rv
cl07CiB9CiAKIC0gKHZvaWQpZm9yd2FyZEludm9jYXRpb246KE5TSW52b2NhdGlvbiAqKWFuSW52
b2NhdGlvbgogeworICAgIGF1dG8gZXh0ZXJuYWxEZWxlZ2F0ZSA9IF9leHRlcm5hbERlbGVnYXRl
LmdldCgpOwogICAgIFNFTCBhU2VsZWN0b3IgPSBbYW5JbnZvY2F0aW9uIHNlbGVjdG9yXTsKICAg
ICBCT09MIGludGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCA9IFtfaW50ZXJuYWxEZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6YVNlbGVjdG9yXTsKLSAgICBCT09MIGV4dGVybmFsRGVsZWdhdGVX
aWxsUmVzcG9uZCA9IFtfZXh0ZXJuYWxEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6YVNlbGVj
dG9yXTsKKyAgICBCT09MIGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCA9IFtleHRlcm5hbERl
bGVnYXRlLmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjphU2VsZWN0b3JdOwogCiAgICAgaWYgKGlu
dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCAmJiBleHRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQp
CiAgICAgICAgIFtfaW50ZXJuYWxEZWxlZ2F0ZSBfd2lsbEludm9rZVVJU2Nyb2xsVmlld0RlbGVn
YXRlQ2FsbGJhY2tdOwpAQCAtODMsNyArODcsNyBAQCAtICh2b2lkKWZvcndhcmRJbnZvY2F0aW9u
OihOU0ludm9jYXRpb24gKilhbkludm9jYXRpb24KICAgICBpZiAoaW50ZXJuYWxEZWxlZ2F0ZVdp
bGxSZXNwb25kKQogICAgICAgICBbYW5JbnZvY2F0aW9uIGludm9rZVdpdGhUYXJnZXQ6X2ludGVy
bmFsRGVsZWdhdGVdOwogICAgIGlmIChleHRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQpCi0gICAg
ICAgIFthbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDpfZXh0ZXJuYWxEZWxlZ2F0ZV07Cisg
ICAgICAgIFthbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDpleHRlcm5hbERlbGVnYXRlLmdl
dCgpXTsKIAogICAgIGlmIChpbnRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQgJiYgZXh0ZXJuYWxE
ZWxlZ2F0ZVdpbGxSZXNwb25kKQogICAgICAgICBbX2ludGVybmFsRGVsZWdhdGUgX2RpZEludm9r
ZVVJU2Nyb2xsVmlld0RlbGVnYXRlQ2FsbGJhY2tdOwpAQCAtOTQsMjAgKzk4LDIxIEBAIC0gKHZv
aWQpZm9yd2FyZEludm9jYXRpb246KE5TSW52b2NhdGlvbiAqKWFuSW52b2NhdGlvbgogCiAtIChp
ZClmb3J3YXJkaW5nVGFyZ2V0Rm9yU2VsZWN0b3I6KFNFTClhU2VsZWN0b3IKIHsKKyAgICBhdXRv
IGV4dGVybmFsRGVsZWdhdGUgPSBfZXh0ZXJuYWxEZWxlZ2F0ZS5nZXQoKTsKICAgICBCT09MIGlu
dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCA9IFtfaW50ZXJuYWxEZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6YVNlbGVjdG9yXTsKLSAgICBCT09MIGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9u
ZCA9IFtfZXh0ZXJuYWxEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6YVNlbGVjdG9yXTsKKyAg
ICBCT09MIGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCA9IFtleHRlcm5hbERlbGVnYXRlLmdl
dCgpIHJlc3BvbmRzVG9TZWxlY3RvcjphU2VsZWN0b3JdOwogCiAgICAgaWYgKGludGVybmFsRGVs
ZWdhdGVXaWxsUmVzcG9uZCAmJiAhZXh0ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kKQogICAgICAg
ICByZXR1cm4gX2ludGVybmFsRGVsZWdhdGU7CiAgICAgaWYgKGV4dGVybmFsRGVsZWdhdGVXaWxs
UmVzcG9uZCAmJiAhaW50ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kKQotICAgICAgICByZXR1cm4g
X2V4dGVybmFsRGVsZWdhdGU7CisgICAgICAgIHJldHVybiBfZXh0ZXJuYWxEZWxlZ2F0ZS5nZXRB
dXRvcmVsZWFzZWQoKTsKICAgICByZXR1cm4gbmlsOwogfQogCiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1Njcm9sbFZpZXcgewotICAgIGlkIDxVSVNjcm9sbFZpZXdEZWxlZ2F0ZT4gX2V4dGVy
bmFsRGVsZWdhdGU7CisgICAgV2ViS2l0OjpXZWFrT2JqQ1B0cjxpZCA8VUlTY3JvbGxWaWV3RGVs
ZWdhdGU+PiBfZXh0ZXJuYWxEZWxlZ2F0ZTsKICAgICBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndh
cmRlciAqX2RlbGVnYXRlRm9yd2FyZGVyOwogfQogCkBAIC0xMzIsNyArMTM3LDcgQEAgLSAodm9p
ZClzZXRJbnRlcm5hbERlbGVnYXRlOihXS1dlYlZpZXcgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPiAq
KWludGVybmFsRGVsZWdhdGUKIAogLSAodm9pZClzZXREZWxlZ2F0ZTooaWQgPFVJU2Nyb2xsVmll
d0RlbGVnYXRlPilkZWxlZ2F0ZQogewotICAgIGlmIChfZXh0ZXJuYWxEZWxlZ2F0ZSA9PSBkZWxl
Z2F0ZSkKKyAgICBpZiAoX2V4dGVybmFsRGVsZWdhdGUuZ2V0KCkuZ2V0KCkgPT0gZGVsZWdhdGUp
CiAgICAgICAgIHJldHVybjsKICAgICBfZXh0ZXJuYWxEZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAg
IFtzZWxmIF91cGRhdGVEZWxlZ2F0ZV07CkBAIC0xNDAsMTkgKzE0NSwyMCBAQCAtICh2b2lkKXNl
dERlbGVnYXRlOihpZCA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+KWRlbGVnYXRlCiAKIC0gKGlkIDxV
SVNjcm9sbFZpZXdEZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKLSAgICByZXR1cm4gX2V4dGVybmFsRGVs
ZWdhdGU7CisgICAgcmV0dXJuIF9leHRlcm5hbERlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpOwog
fQogCiAtICh2b2lkKV91cGRhdGVEZWxlZ2F0ZQogewogICAgIFdLU2Nyb2xsVmlld0RlbGVnYXRl
Rm9yd2FyZGVyICpvbGRGb3J3YXJkZXIgPSBfZGVsZWdhdGVGb3J3YXJkZXI7CiAgICAgX2RlbGVn
YXRlRm9yd2FyZGVyID0gbmlsOwotICAgIGlmICghX2V4dGVybmFsRGVsZWdhdGUpCisgICAgYXV0
byBleHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFsRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFl
eHRlcm5hbERlbGVnYXRlKQogICAgICAgICBbc3VwZXIgc2V0RGVsZWdhdGU6X2ludGVybmFsRGVs
ZWdhdGVdOwogICAgIGVsc2UgaWYgKCFfaW50ZXJuYWxEZWxlZ2F0ZSkKLSAgICAgICAgW3N1cGVy
IHNldERlbGVnYXRlOl9leHRlcm5hbERlbGVnYXRlXTsKKyAgICAgICAgW3N1cGVyIHNldERlbGVn
YXRlOmV4dGVybmFsRGVsZWdhdGUuZ2V0KCldOwogICAgIGVsc2UgewotICAgICAgICBfZGVsZWdh
dGVGb3J3YXJkZXIgPSBbW1dLU2Nyb2xsVmlld0RlbGVnYXRlRm9yd2FyZGVyIGFsbG9jXSBpbml0
V2l0aEludGVybmFsRGVsZWdhdGU6X2ludGVybmFsRGVsZWdhdGUgZXh0ZXJuYWxEZWxlZ2F0ZTpf
ZXh0ZXJuYWxEZWxlZ2F0ZV07CisgICAgICAgIF9kZWxlZ2F0ZUZvcndhcmRlciA9IFtbV0tTY3Jv
bGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgYWxsb2NdIGluaXRXaXRoSW50ZXJuYWxEZWxlZ2F0ZTpf
aW50ZXJuYWxEZWxlZ2F0ZSBleHRlcm5hbERlbGVnYXRlOmV4dGVybmFsRGVsZWdhdGUuZ2V0KCld
OwogICAgICAgICBbc3VwZXIgc2V0RGVsZWdhdGU6X2RlbGVnYXRlRm9yd2FyZGVyXTsKICAgICB9
CiAgICAgW29sZEZvcndhcmRlciByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OWQ5YmNhLi5jNTJmZmU3IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTYtMDctMjEgIENoZWxzZWEgUHVnaCAgPGNwdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBBcHBzIHVzaW5nIFdLV2ViVmlldyB3aWxsIGNyYXNoIGlmIHRoZXkgc2V0IHRoZSBzY3JvbGwg
dmlldydzIGRlbGVnYXRlIGFuZCBkb24ndCBuaWwgaXQgb3V0IGxhdGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5ODAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMjc0NTA4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLU2Nyb2xsVmll
d0RlbGVnYXRlQ3Jhc2gubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0RGVsZWdhdGVGb3JTY3Jv
bGxWaWV3IGRlYWxsb2NdKTogVXBkYXRlIGRlbGVnYXRlSXNEZWFsbG9jYXRlZCB0byB0cnVlIHNv
IHRoYXQgd2UgY2FuIHRlbGwKKyAgICAgICAgd2hlbiBvdXIgZGVsZWdhdGUgaGFzIGhpdCAtZGVh
bGxvYy4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBFbnN1cmUgdGhhdCBhZnRlciBh
biBvYmplY3QgaGFzIGJlZW4gc2V0IGFzIHRoZSBzY3JvbGwgdmlldydzIGRlbGVnYXRlLAorICAg
ICAgICBhbmQgaGFzIHRoZW4gYmVlbiBkZWFsbG9jYXRlZCwgdGhhdCB0aGUgc2Nyb2xsIHZpZXcn
cyBkZWxlZ2F0ZSBpcyBuaWwgYW5kIHRoZSBkZWFsbG9jYXRlZCBkZWxlZ2F0ZQorICAgICAgICB3
aWxsIG5vdCBiZSBtZXNzYWdlZC4KKwogMjAxNi0wNy0yMCAgQWFrYXNoIEphaW4gIDxhYWthc2hf
amFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHRlbXBvcmFyeSBmaXggcjIwMzQxNwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4N2Y5MDM4Li5hM2FiNTg1IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTEzLDYgKzExMyw3IEBACiAJCTVDOUU1OTQxMUQzRUI1QUMwMEUzQzYy
RSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1OTNFMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNh
dGlvbkNhY2hlLmRiICovOyB9OwogCQk1QzlFNTk0MjFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGlj
YXRpb25DYWNoZS5kYi1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUM5RTU5M0YxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2Fj
aGUuZGItc2htICovOyB9OwogCQk1QzlFNTk0MzFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRp
b25DYWNoZS5kYi13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM5RTU5NDAxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUu
ZGItd2FsICovOyB9OworCQk1RTRCMUQyRTFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3
RGVsZWdhdGVDcmFzaC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNy
YXNoLm1tICovOyB9OwogCQk3NjQzMjJENzFCNjFDQ0MzMDAyNEY4MDEgLyogV29yZEJvdW5kYXJ5
VHlwaW5nQXR0cmlidXRlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc2NDMyMkQ1MUI2MUNDQTQwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBpbmdB
dHRyaWJ1dGVzLm1tICovOyB9OwogCQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExv
YWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRE
RjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAg
Ki87IH07CiAJCTc2RTE4MkREMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUu
Y3BwICovOyB9OwpAQCAtODAxLDYgKzgwMiw3IEBACiAJCTVDOUU1OTNFMUQzRUIxREUwMEUzQzYy
RSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGUuZGI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUU1OTNGMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBs
aWNhdGlvbkNhY2hlLmRiLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiQXBwbGljYXRpb25DYWNoZS5kYi1zaG0iOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTk0MDFEM0VCMURFMDBFM0M2MkUgLyogQXBw
bGljYXRpb25DYWNoZS5kYi13YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkFwcGxpY2F0aW9uQ2FjaGUuZGItd2FsIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUU0QjFEMkMxRDQwNEM2MTAwMDUzNjIxIC8qIFdL
U2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tOyBwYXRoID0gLi4vaW9zL1dL
U2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc1NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hl
QWRkSW1hZ2VUb0NhY2hlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUYz
MTMzRjE4QzE3MUI3MDA0MUNBRUMgLyogRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9y
eUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc2NDMyMkQ1MUI2MUNDQTQwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlU
eXBpbmdBdHRyaWJ1dGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV29yZEJvdW5kYXJ5VHlwaW5nQXR0cmlidXRlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyNDUsNiArMTI0Nyw3IEBACiAJCQkJN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2
IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi8sCiAJCQkJOTNF
OTQzRjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICovLAogCQkJ
CTJEMDAwNjVEMUMxRjU4OTQwMDg4RTZBNyAvKiBXS1BERlZpZXdSZXNpemVDcmFzaC5tbSAqLywK
KwkJCQk1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFz
aC5tbSAqLywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVs
dE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIg
LyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJCTk5ODRGQUNBMUNGRkFF
RUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBAIC0yMTI5LDYgKzIxMzIs
NyBAQAogCQkJCTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAwNDQ3QzRD
IC8qIEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkYxQTQxMUE3
RTAwNDQ3QzRDIC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTVFNEIxRDJFMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNo
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUYxQTQxMUFFNjAwNDQ3QzRDIC8qIEVwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3Q0NFN0VGMDFBNDExQUU2MDA0NDdDNEMgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0N0M0QyAvKiBGYWlsZWRMb2Fk
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL1dLU2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0KaW5kZXggZTY5ZGUyOS4uMjY5
NDkzNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxW
aWV3RGVsZWdhdGVDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9X
S1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXcuaD4KKworc3RhdGljIGJvb2wgZGVsZWdhdGVJc0RlYWxsb2NhdGVkOworCitAaW50ZXJm
YWNlIFRlc3REZWxlZ2F0ZUZvclNjcm9sbFZpZXcgOiBOU09iamVjdCA8VUlTY3JvbGxWaWV3RGVs
ZWdhdGU+CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3REZWxlZ2F0ZUZvclNjcm9sbFZp
ZXcKKworLSAodm9pZClkZWFsbG9jCit7CisgICAgZGVsZWdhdGVJc0RlYWxsb2NhdGVkID0gdHJ1
ZTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCitURVNUKFdLV2ViVmlldywgV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaCkKK3sK
KyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdF07CisgICAg
VGVzdERlbGVnYXRlRm9yU2Nyb2xsVmlldyAqZGVsZWdhdGVGb3JTY3JvbGxWaWV3ID0gW1tUZXN0
RGVsZWdhdGVGb3JTY3JvbGxWaWV3IGFsbG9jXSBpbml0XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29s
IHsKKyAgICAgICAgd2ViVmlldy5zY3JvbGxWaWV3LmRlbGVnYXRlID0gZGVsZWdhdGVGb3JTY3Jv
bGxWaWV3OworICAgIH0KKyAgICBkZWxlZ2F0ZUlzRGVhbGxvY2F0ZWQgPSBmYWxzZTsKKyAgICBb
ZGVsZWdhdGVGb3JTY3JvbGxWaWV3IHJlbGVhc2VdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGVsZWdhdGVJc0RlYWxsb2NhdGVkKTsKKworICAgIEVYUEVDVF9OVUxMKHdlYlZpZXcu
c2Nyb2xsVmlldy5kZWxlZ2F0ZSk7Cit9CisKK30KKworI2VuZGlmCg==
</data>
<flag name="review"
          id="307911"
          type_id="1"
          status="+"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="307912"
          type_id="3"
          status="-"
          setter="cpugh"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284267</attachid>
            <date>2016-07-21 15:24:35 -0700</date>
            <delta_ts>2016-07-21 15:30:09 -0700</delta_ts>
            <desc>v3 patch for [iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later</desc>
            <filename>[iOS] Apps using WKWebView will crash.txt</filename>
            <type>text/plain</type>
            <size>12443</size>
            <attacher name="Chelsea Pugh">cpugh</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyOTNlMjE3Li4wZWVlMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTYtMDctMjEgIENoZWxzZWEgUHVnaCAgPGNwdWdoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBBcHBzIHVzaW5nIFdLV2ViVmlldyB3aWxsIGNyYXNoIGlmIHRoZXkgc2V0IHRoZSBz
Y3JvbGwgdmlldydzIGRlbGVnYXRlIGFuZCBkb24ndCBuaWwgaXQgb3V0IGxhdGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5ODAKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vMjc0NTA4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgcm9vdCBjYXVzZSBvZiB0aGlzIGNyYXNoIGlzIHRoYXQgd2Ug
YXJlIG5vdCBhYmlkaW5nIHRoZSBVSVNjcm9sbFZpZXcgQVBJIHRoYXQgdGhlIHNjcm9sbCB2aWV3
CisgICAgICAgIGRlbGVnYXRlIHByb3BlcnR5IHNob3VsZCBiZSB3ZWFrLiBJZiBzZXR0ZXJzIG9m
IHRoaXMgZGVsZWdhdGUgZG8gbm90IGtub3cgdGhhdCwgc2luY2UgdGhlIFdLV2ViVmlldworICAg
ICAgICBleHBvc2VzIHRoZSBzY3JvbGwgdmlldyBhcyBhIFVJU2Nyb2xsVmlldywgdGhleSBtYXkg
Zm9yZ2V0IHRvIG5pbCBvdXQgdGhlIGRlbGVnYXRlIHRoZXkgc2V0IGFuZCB3aWxsCisgICAgICAg
IHRoZW4gY3Jhc2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToK
KyAgICAgICAgKC1bV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgbWV0aG9kU2lnbmF0dXJl
Rm9yU2VsZWN0b3I6XSk6IEdldCBhIFJldGFpblB0ciBob2xkaW5nIHRoZQorICAgICAgICBleHRl
cm5hbCBkZWxlZ2F0ZSBhbmQgdXNlIHdoZXJlIG5lZWRlZC4KKyAgICAgICAgKC1bV0tTY3JvbGxW
aWV3RGVsZWdhdGVGb3J3YXJkZXIgcmVzcG9uZHNUb1NlbGVjdG9yOl0pOiBEaXR0by4KKyAgICAg
ICAgKC1bV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgZm9yd2FyZEludm9jYXRpb246XSk6
IERpdHRvLgorICAgICAgICAoLVtXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRlciBmb3J3YXJk
aW5nVGFyZ2V0Rm9yU2VsZWN0b3I6XSk6IERpdHRvLiBXaGVuIHJldHVybmluZyBhIHJlZmVyZW5j
ZQorICAgICAgICB0byB0aGUgZXh0ZXJuYWwgZGVsZWdhdGUsIGdldCBhIHJldGFpbmVkIGFuZCBh
dXRvcmVsZWFzZWQgcmVmZXJlbmNlIHNvIHRoZSBjYWxsZXIgbmVlZG4ndCByZWxlYXNlCisgICAg
ICAgIHRoZSBvYmplY3Qgd2hlbiBkb25lLgorICAgICAgICAoLVtXS1Njcm9sbFZpZXcgZGVsZWdh
dGVdKTogRGl0dG8uCisgICAgICAgICgtW1dLU2Nyb2xsVmlldyBfdXBkYXRlRGVsZWdhdGVdKTog
R2V0IGEgUmV0YWluUHRyIGhvbGRpbmcgdGhlIGV4dGVybmFsIGRlbGVnYXRlIHRoYXQgY2FuIGJl
CisgICAgICAgIHVzZWQgdGhyb3VnaG91dCB0aGlzIG1ldGhvZC4gVXNlIHRoZSBSZXRhaW5QdHIg
dG8gZ2V0IHRoZSBleHRlcm5hbCBkZWxlZ2F0ZSBmb3Igc2V0dGluZyBzdXBlcidzCisgICAgICAg
IGRlbGVnYXRlIGFzIHdlbGwgYXMgY3JlYXRpbmcgdGhlIGRlbGVnYXRlIGZvcndhcmRlci4KKyAg
ICAgICAgKC1bV0tTY3JvbGxWaWV3IHNldERlbGVnYXRlOl0pOiBHZXQgYSBSZXRhaW5QdHIgaG9s
ZGluZyB0aGUgZXh0ZXJuYWwgZGVsZWdhdGUgYW5kIHVzZSBpdHMgdmFsdWUgZm9yCisgICAgICAg
IGNvbXBhcmlzb24gdG8gdGhlIG9iamVjdCB3ZSBhcmUgc2V0dGluZyB0aGUgZXh0ZXJuYWwgZGVs
ZWdhdGUgdG8uCisKIDIwMTYtMDctMjAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDM0NzEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCmluZGV4IDY1OThiZDEu
LjMzMmI0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3Jv
bGxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCkBAIC0yOSw4ICsyOSwxMSBAQAogI2lmIFBMQVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0tX
ZWJWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCiAjaW1wb3J0IDxXZWJD
b3JlL0NvcmVHcmFwaGljc1NQSS5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiBAaW50
ZXJmYWNlIFVJU2Nyb2xsVmlldyAoVUlTY3JvbGxWaWV3SW50ZXJuYWxIYWNrKQogLSAoQ0dGbG9h
dClfcnViYmVyQmFuZE9mZnNldEZvck9mZnNldDooQ0dGbG9hdCluZXdPZmZzZXQgbWF4T2Zmc2V0
OihDR0Zsb2F0KW1heE9mZnNldCBtaW5PZmZzZXQ6KENHRmxvYXQpbWluT2Zmc2V0IHJhbmdlOihD
R0Zsb2F0KXJhbmdlIG91dHNpZGU6KEJPT0wgKilvdXRzaWRlOwogQGVuZApAQCAtNDMsNyArNDYs
NyBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRl
ciB7CiAgICAgV0tXZWJWaWV3ICpfaW50ZXJuYWxEZWxlZ2F0ZTsKLSAgICBpZCA8VUlTY3JvbGxW
aWV3RGVsZWdhdGU+IF9leHRlcm5hbERlbGVnYXRlOworICAgIFdlYWtPYmpDUHRyPGlkIDxVSVNj
cm9sbFZpZXdEZWxlZ2F0ZT4+IF9leHRlcm5hbERlbGVnYXRlOwogfQogCiAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhJbnRlcm5hbERlbGVnYXRlOihXS1dlYlZpZXcgPFVJU2Nyb2xsVmlld0RlbGVn
YXRlPiAqKWludGVybmFsRGVsZWdhdGUgZXh0ZXJuYWxEZWxlZ2F0ZTooaWQgPFVJU2Nyb2xsVmll
d0RlbGVnYXRlPilleHRlcm5hbERlbGVnYXRlCkBAIC01OCwyNCArNjEsMjYgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSW50ZXJuYWxEZWxlZ2F0ZTooV0tXZWJWaWV3IDxVSVNjcm9sbFZpZXdE
ZWxlZ2F0ZT4gKilpbnQKIAogLSAoTlNNZXRob2RTaWduYXR1cmUgKiltZXRob2RTaWduYXR1cmVG
b3JTZWxlY3RvcjooU0VMKWFTZWxlY3RvcgogeworICAgIGF1dG8gZXh0ZXJuYWxEZWxlZ2F0ZSA9
IF9leHRlcm5hbERlbGVnYXRlLmdldCgpOwogICAgIE5TTWV0aG9kU2lnbmF0dXJlICpzaWduYXR1
cmUgPSBbc3VwZXIgbWV0aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6YVNlbGVjdG9yXTsKICAgICBp
ZiAoIXNpZ25hdHVyZSkKICAgICAgICAgc2lnbmF0dXJlID0gWyhOU09iamVjdCAqKV9pbnRlcm5h
bERlbGVnYXRlIG1ldGhvZFNpZ25hdHVyZUZvclNlbGVjdG9yOmFTZWxlY3Rvcl07CiAgICAgaWYg
KCFzaWduYXR1cmUpCi0gICAgICAgIHNpZ25hdHVyZSA9IFsoTlNPYmplY3QgKilfZXh0ZXJuYWxE
ZWxlZ2F0ZSBtZXRob2RTaWduYXR1cmVGb3JTZWxlY3RvcjphU2VsZWN0b3JdOworICAgICAgICBz
aWduYXR1cmUgPSBbKE5TT2JqZWN0ICopZXh0ZXJuYWxEZWxlZ2F0ZSBtZXRob2RTaWduYXR1cmVG
b3JTZWxlY3RvcjphU2VsZWN0b3JdOwogICAgIHJldHVybiBzaWduYXR1cmU7CiB9CiAKIC0gKEJP
T0wpcmVzcG9uZHNUb1NlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiB7Ci0gICAgcmV0dXJuIFtzdXBl
ciByZXNwb25kc1RvU2VsZWN0b3I6YVNlbGVjdG9yXSB8fCBbX2ludGVybmFsRGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl0gfHwgW19leHRlcm5hbERlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjphU2VsZWN0b3JdOworICAgIHJldHVybiBbc3VwZXIgcmVzcG9uZHNUb1NlbGVj
dG9yOmFTZWxlY3Rvcl0gfHwgW19pbnRlcm5hbERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rvcjph
U2VsZWN0b3JdIHx8IFtfZXh0ZXJuYWxEZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6
YVNlbGVjdG9yXTsKIH0KIAogLSAodm9pZClmb3J3YXJkSW52b2NhdGlvbjooTlNJbnZvY2F0aW9u
ICopYW5JbnZvY2F0aW9uCiB7CisgICAgYXV0byBleHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFs
RGVsZWdhdGUuZ2V0KCk7CiAgICAgU0VMIGFTZWxlY3RvciA9IFthbkludm9jYXRpb24gc2VsZWN0
b3JdOwogICAgIEJPT0wgaW50ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kID0gW19pbnRlcm5hbERl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjphU2VsZWN0b3JdOwotICAgIEJPT0wgZXh0ZXJuYWxE
ZWxlZ2F0ZVdpbGxSZXNwb25kID0gW19leHRlcm5hbERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjphU2VsZWN0b3JdOworICAgIEJPT0wgZXh0ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kID0gW2V4
dGVybmFsRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07CiAKICAgICBpZiAo
aW50ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kICYmIGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9u
ZCkKICAgICAgICAgW19pbnRlcm5hbERlbGVnYXRlIF93aWxsSW52b2tlVUlTY3JvbGxWaWV3RGVs
ZWdhdGVDYWxsYmFja107CkBAIC04Myw3ICs4OCw3IEBAIC0gKHZvaWQpZm9yd2FyZEludm9jYXRp
b246KE5TSW52b2NhdGlvbiAqKWFuSW52b2NhdGlvbgogICAgIGlmIChpbnRlcm5hbERlbGVnYXRl
V2lsbFJlc3BvbmQpCiAgICAgICAgIFthbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDpfaW50
ZXJuYWxEZWxlZ2F0ZV07CiAgICAgaWYgKGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCkKLSAg
ICAgICAgW2FuSW52b2NhdGlvbiBpbnZva2VXaXRoVGFyZ2V0Ol9leHRlcm5hbERlbGVnYXRlXTsK
KyAgICAgICAgW2FuSW52b2NhdGlvbiBpbnZva2VXaXRoVGFyZ2V0OmV4dGVybmFsRGVsZWdhdGUu
Z2V0KCldOwogCiAgICAgaWYgKGludGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCAmJiBleHRlcm5h
bERlbGVnYXRlV2lsbFJlc3BvbmQpCiAgICAgICAgIFtfaW50ZXJuYWxEZWxlZ2F0ZSBfZGlkSW52
b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVDYWxsYmFja107CkBAIC05NSwxOSArMTAwLDE5IEBAIC0g
KHZvaWQpZm9yd2FyZEludm9jYXRpb246KE5TSW52b2NhdGlvbiAqKWFuSW52b2NhdGlvbgogLSAo
aWQpZm9yd2FyZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiB7CiAgICAgQk9P
TCBpbnRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQgPSBbX2ludGVybmFsRGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07Ci0gICAgQk9PTCBleHRlcm5hbERlbGVnYXRlV2lsbFJl
c3BvbmQgPSBbX2V4dGVybmFsRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07
CisgICAgQk9PTCBleHRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQgPSBbX2V4dGVybmFsRGVsZWdh
dGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07CiAKICAgICBpZiAoaW50ZXJu
YWxEZWxlZ2F0ZVdpbGxSZXNwb25kICYmICFleHRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQpCiAg
ICAgICAgIHJldHVybiBfaW50ZXJuYWxEZWxlZ2F0ZTsKICAgICBpZiAoZXh0ZXJuYWxEZWxlZ2F0
ZVdpbGxSZXNwb25kICYmICFpbnRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQpCi0gICAgICAgIHJl
dHVybiBfZXh0ZXJuYWxEZWxlZ2F0ZTsKKyAgICAgICAgcmV0dXJuIF9leHRlcm5hbERlbGVnYXRl
LmdldEF1dG9yZWxlYXNlZCgpOwogICAgIHJldHVybiBuaWw7CiB9CiAKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFdLU2Nyb2xsVmlldyB7Ci0gICAgaWQgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPiBf
ZXh0ZXJuYWxEZWxlZ2F0ZTsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8VUlTY3JvbGxWaWV3RGVsZWdh
dGU+PiBfZXh0ZXJuYWxEZWxlZ2F0ZTsKICAgICBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRl
ciAqX2RlbGVnYXRlRm9yd2FyZGVyOwogfQogCkBAIC0xMzIsNyArMTM3LDcgQEAgLSAodm9pZClz
ZXRJbnRlcm5hbERlbGVnYXRlOihXS1dlYlZpZXcgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPiAqKWlu
dGVybmFsRGVsZWdhdGUKIAogLSAodm9pZClzZXREZWxlZ2F0ZTooaWQgPFVJU2Nyb2xsVmlld0Rl
bGVnYXRlPilkZWxlZ2F0ZQogewotICAgIGlmIChfZXh0ZXJuYWxEZWxlZ2F0ZSA9PSBkZWxlZ2F0
ZSkKKyAgICBpZiAoX2V4dGVybmFsRGVsZWdhdGUuZ2V0KCkuZ2V0KCkgPT0gZGVsZWdhdGUpCiAg
ICAgICAgIHJldHVybjsKICAgICBfZXh0ZXJuYWxEZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAgIFtz
ZWxmIF91cGRhdGVEZWxlZ2F0ZV07CkBAIC0xNDAsMTkgKzE0NSwyMCBAQCAtICh2b2lkKXNldERl
bGVnYXRlOihpZCA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+KWRlbGVnYXRlCiAKIC0gKGlkIDxVSVNj
cm9sbFZpZXdEZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKLSAgICByZXR1cm4gX2V4dGVybmFsRGVsZWdh
dGU7CisgICAgcmV0dXJuIF9leHRlcm5hbERlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpOwogfQog
CiAtICh2b2lkKV91cGRhdGVEZWxlZ2F0ZQogewogICAgIFdLU2Nyb2xsVmlld0RlbGVnYXRlRm9y
d2FyZGVyICpvbGRGb3J3YXJkZXIgPSBfZGVsZWdhdGVGb3J3YXJkZXI7CiAgICAgX2RlbGVnYXRl
Rm9yd2FyZGVyID0gbmlsOwotICAgIGlmICghX2V4dGVybmFsRGVsZWdhdGUpCisgICAgYXV0byBl
eHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFsRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFleHRl
cm5hbERlbGVnYXRlKQogICAgICAgICBbc3VwZXIgc2V0RGVsZWdhdGU6X2ludGVybmFsRGVsZWdh
dGVdOwogICAgIGVsc2UgaWYgKCFfaW50ZXJuYWxEZWxlZ2F0ZSkKLSAgICAgICAgW3N1cGVyIHNl
dERlbGVnYXRlOl9leHRlcm5hbERlbGVnYXRlXTsKKyAgICAgICAgW3N1cGVyIHNldERlbGVnYXRl
OmV4dGVybmFsRGVsZWdhdGUuZ2V0KCldOwogICAgIGVsc2UgewotICAgICAgICBfZGVsZWdhdGVG
b3J3YXJkZXIgPSBbW1dLU2Nyb2xsVmlld0RlbGVnYXRlRm9yd2FyZGVyIGFsbG9jXSBpbml0V2l0
aEludGVybmFsRGVsZWdhdGU6X2ludGVybmFsRGVsZWdhdGUgZXh0ZXJuYWxEZWxlZ2F0ZTpfZXh0
ZXJuYWxEZWxlZ2F0ZV07CisgICAgICAgIF9kZWxlZ2F0ZUZvcndhcmRlciA9IFtbV0tTY3JvbGxW
aWV3RGVsZWdhdGVGb3J3YXJkZXIgYWxsb2NdIGluaXRXaXRoSW50ZXJuYWxEZWxlZ2F0ZTpfaW50
ZXJuYWxEZWxlZ2F0ZSBleHRlcm5hbERlbGVnYXRlOmV4dGVybmFsRGVsZWdhdGUuZ2V0KCldOwog
ICAgICAgICBbc3VwZXIgc2V0RGVsZWdhdGU6X2RlbGVnYXRlRm9yd2FyZGVyXTsKICAgICB9CiAg
ICAgW29sZEZvcndhcmRlciByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OWQ5YmNhLi5jNTJmZmU3IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYt
MDctMjEgIENoZWxzZWEgUHVnaCAgPGNwdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBB
cHBzIHVzaW5nIFdLV2ViVmlldyB3aWxsIGNyYXNoIGlmIHRoZXkgc2V0IHRoZSBzY3JvbGwgdmll
dydzIGRlbGVnYXRlIGFuZCBkb24ndCBuaWwgaXQgb3V0IGxhdGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5ODAKKyAgICAgICAgcmRhcjovL3By
b2JsZW0vMjc0NTA4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLU2Nyb2xsVmlld0Rl
bGVnYXRlQ3Jhc2gubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0RGVsZWdhdGVGb3JTY3JvbGxW
aWV3IGRlYWxsb2NdKTogVXBkYXRlIGRlbGVnYXRlSXNEZWFsbG9jYXRlZCB0byB0cnVlIHNvIHRo
YXQgd2UgY2FuIHRlbGwKKyAgICAgICAgd2hlbiBvdXIgZGVsZWdhdGUgaGFzIGhpdCAtZGVhbGxv
Yy4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBFbnN1cmUgdGhhdCBhZnRlciBhbiBv
YmplY3QgaGFzIGJlZW4gc2V0IGFzIHRoZSBzY3JvbGwgdmlldydzIGRlbGVnYXRlLAorICAgICAg
ICBhbmQgaGFzIHRoZW4gYmVlbiBkZWFsbG9jYXRlZCwgdGhhdCB0aGUgc2Nyb2xsIHZpZXcncyBk
ZWxlZ2F0ZSBpcyBuaWwgYW5kIHRoZSBkZWFsbG9jYXRlZCBkZWxlZ2F0ZQorICAgICAgICB3aWxs
IG5vdCBiZSBtZXNzYWdlZC4KKwogMjAxNi0wNy0yMCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHRlbXBvcmFyeSBmaXggcjIwMzQxNwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4N2Y5MDM4Li5hM2FiNTg1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTEzLDYgKzExMyw3IEBACiAJCTVDOUU1OTQxMUQzRUI1QUMwMEUzQzYyRSAv
KiBBcHBsaWNhdGlvbkNhY2hlLmRiIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1OTNFMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNhdGlv
bkNhY2hlLmRiICovOyB9OwogCQk1QzlFNTk0MjFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRp
b25DYWNoZS5kYi1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM5RTU5M0YxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUu
ZGItc2htICovOyB9OwogCQk1QzlFNTk0MzFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRpb25D
YWNoZS5kYi13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM5RTU5NDAxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGIt
d2FsICovOyB9OworCQk1RTRCMUQyRTFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVs
ZWdhdGVDcmFzaC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNo
Lm1tICovOyB9OwogCQk3NjQzMjJENzFCNjFDQ0MzMDAyNEY4MDEgLyogV29yZEJvdW5kYXJ5VHlw
aW5nQXR0cmlidXRlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc2NDMyMkQ1MUI2MUNDQTQwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBpbmdBdHRy
aWJ1dGVzLm1tICovOyB9OwogCQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExvYWRp
bmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRERjkg
LyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi87
IH07CiAJCTc2RTE4MkREMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3Bw
ICovOyB9OwpAQCAtODAxLDYgKzgwMiw3IEBACiAJCTVDOUU1OTNFMUQzRUIxREUwMEUzQzYyRSAv
KiBBcHBsaWNhdGlvbkNhY2hlLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGUuZGI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUU1OTNGMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNh
dGlvbkNhY2hlLmRiLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiQXBwbGljYXRpb25DYWNoZS5kYi1zaG0iOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTk0MDFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGlj
YXRpb25DYWNoZS5kYi13YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkFwcGxpY2F0aW9uQ2FjaGUuZGItd2FsIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUU0QjFEMkMxRDQwNEM2MTAwMDUzNjIxIC8qIFdLU2Ny
b2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tOyBwYXRoID0gLi4vaW9zL1dLU2Ny
b2xsVmlld0RlbGVnYXRlQ3Jhc2gubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlQWRk
SW1hZ2VUb0NhY2hlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUYzMTMz
RjE4QzE3MUI3MDA0MUNBRUMgLyogRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVwaGVtZXJh
bFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc2NDMyMkQ1MUI2MUNDQTQwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBp
bmdBdHRyaWJ1dGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V29yZEJvdW5kYXJ5VHlwaW5nQXR0cmlidXRlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyNDUsNiArMTI0Nyw3IEBACiAJCQkJN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2IC8q
IFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi8sCiAJCQkJOTNFOTQz
RjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICovLAogCQkJCTJE
MDAwNjVEMUMxRjU4OTQwMDg4RTZBNyAvKiBXS1BERlZpZXdSZXNpemVDcmFzaC5tbSAqLywKKwkJ
CQk1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5t
bSAqLywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5h
dmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIgLyog
V0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJCTk5ODRGQUNBMUNGRkFFRUUw
MDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBAIC0yMTI5LDYgKzIxMzIsNyBA
QAogCQkJCTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAwNDQ3QzRDIC8q
IEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkYxQTQxMUE3RTAw
NDQ3QzRDIC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTVFNEIxRDJFMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUYxQTQxMUFFNjAwNDQ3QzRDIC8qIEVwaGVtZXJh
bFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VGMDFBNDExQUU2MDA0NDdDNEMgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0N0M0QyAvKiBGYWlsZWRMb2FkLmNw
cCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284270</attachid>
            <date>2016-07-21 15:30:09 -0700</date>
            <delta_ts>2016-07-21 17:12:13 -0700</delta_ts>
            <desc>v3 patch for [iOS] Apps using WKWebView will crash if they set the scroll view&apos;s delegate and don&apos;t nil it out later</desc>
            <filename>[iOS] Apps using WKWebView will crash.txt</filename>
            <type>text/plain</type>
            <size>15028</size>
            <attacher name="Chelsea Pugh">cpugh</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyOTNlMjE3Li4wZWVlMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTYtMDctMjEgIENoZWxzZWEgUHVnaCAgPGNwdWdoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBBcHBzIHVzaW5nIFdLV2ViVmlldyB3aWxsIGNyYXNoIGlmIHRoZXkgc2V0IHRoZSBz
Y3JvbGwgdmlldydzIGRlbGVnYXRlIGFuZCBkb24ndCBuaWwgaXQgb3V0IGxhdGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5ODAKKyAgICAgICAg
cmRhcjovL3Byb2JsZW0vMjc0NTA4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgcm9vdCBjYXVzZSBvZiB0aGlzIGNyYXNoIGlzIHRoYXQgd2Ug
YXJlIG5vdCBhYmlkaW5nIHRoZSBVSVNjcm9sbFZpZXcgQVBJIHRoYXQgdGhlIHNjcm9sbCB2aWV3
CisgICAgICAgIGRlbGVnYXRlIHByb3BlcnR5IHNob3VsZCBiZSB3ZWFrLiBJZiBzZXR0ZXJzIG9m
IHRoaXMgZGVsZWdhdGUgZG8gbm90IGtub3cgdGhhdCwgc2luY2UgdGhlIFdLV2ViVmlldworICAg
ICAgICBleHBvc2VzIHRoZSBzY3JvbGwgdmlldyBhcyBhIFVJU2Nyb2xsVmlldywgdGhleSBtYXkg
Zm9yZ2V0IHRvIG5pbCBvdXQgdGhlIGRlbGVnYXRlIHRoZXkgc2V0IGFuZCB3aWxsCisgICAgICAg
IHRoZW4gY3Jhc2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToK
KyAgICAgICAgKC1bV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgbWV0aG9kU2lnbmF0dXJl
Rm9yU2VsZWN0b3I6XSk6IEdldCBhIFJldGFpblB0ciBob2xkaW5nIHRoZQorICAgICAgICBleHRl
cm5hbCBkZWxlZ2F0ZSBhbmQgdXNlIHdoZXJlIG5lZWRlZC4KKyAgICAgICAgKC1bV0tTY3JvbGxW
aWV3RGVsZWdhdGVGb3J3YXJkZXIgcmVzcG9uZHNUb1NlbGVjdG9yOl0pOiBEaXR0by4KKyAgICAg
ICAgKC1bV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgZm9yd2FyZEludm9jYXRpb246XSk6
IERpdHRvLgorICAgICAgICAoLVtXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRlciBmb3J3YXJk
aW5nVGFyZ2V0Rm9yU2VsZWN0b3I6XSk6IERpdHRvLiBXaGVuIHJldHVybmluZyBhIHJlZmVyZW5j
ZQorICAgICAgICB0byB0aGUgZXh0ZXJuYWwgZGVsZWdhdGUsIGdldCBhIHJldGFpbmVkIGFuZCBh
dXRvcmVsZWFzZWQgcmVmZXJlbmNlIHNvIHRoZSBjYWxsZXIgbmVlZG4ndCByZWxlYXNlCisgICAg
ICAgIHRoZSBvYmplY3Qgd2hlbiBkb25lLgorICAgICAgICAoLVtXS1Njcm9sbFZpZXcgZGVsZWdh
dGVdKTogRGl0dG8uCisgICAgICAgICgtW1dLU2Nyb2xsVmlldyBfdXBkYXRlRGVsZWdhdGVdKTog
R2V0IGEgUmV0YWluUHRyIGhvbGRpbmcgdGhlIGV4dGVybmFsIGRlbGVnYXRlIHRoYXQgY2FuIGJl
CisgICAgICAgIHVzZWQgdGhyb3VnaG91dCB0aGlzIG1ldGhvZC4gVXNlIHRoZSBSZXRhaW5QdHIg
dG8gZ2V0IHRoZSBleHRlcm5hbCBkZWxlZ2F0ZSBmb3Igc2V0dGluZyBzdXBlcidzCisgICAgICAg
IGRlbGVnYXRlIGFzIHdlbGwgYXMgY3JlYXRpbmcgdGhlIGRlbGVnYXRlIGZvcndhcmRlci4KKyAg
ICAgICAgKC1bV0tTY3JvbGxWaWV3IHNldERlbGVnYXRlOl0pOiBHZXQgYSBSZXRhaW5QdHIgaG9s
ZGluZyB0aGUgZXh0ZXJuYWwgZGVsZWdhdGUgYW5kIHVzZSBpdHMgdmFsdWUgZm9yCisgICAgICAg
IGNvbXBhcmlzb24gdG8gdGhlIG9iamVjdCB3ZSBhcmUgc2V0dGluZyB0aGUgZXh0ZXJuYWwgZGVs
ZWdhdGUgdG8uCisKIDIwMTYtMDctMjAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDM0NzEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCmluZGV4IDY1OThiZDEu
LjMzMmI0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3Jv
bGxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCkBAIC0yOSw4ICsyOSwxMSBAQAogI2lmIFBMQVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0tX
ZWJWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCiAjaW1wb3J0IDxXZWJD
b3JlL0NvcmVHcmFwaGljc1NQSS5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiBAaW50
ZXJmYWNlIFVJU2Nyb2xsVmlldyAoVUlTY3JvbGxWaWV3SW50ZXJuYWxIYWNrKQogLSAoQ0dGbG9h
dClfcnViYmVyQmFuZE9mZnNldEZvck9mZnNldDooQ0dGbG9hdCluZXdPZmZzZXQgbWF4T2Zmc2V0
OihDR0Zsb2F0KW1heE9mZnNldCBtaW5PZmZzZXQ6KENHRmxvYXQpbWluT2Zmc2V0IHJhbmdlOihD
R0Zsb2F0KXJhbmdlIG91dHNpZGU6KEJPT0wgKilvdXRzaWRlOwogQGVuZApAQCAtNDMsNyArNDYs
NyBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRl
ciB7CiAgICAgV0tXZWJWaWV3ICpfaW50ZXJuYWxEZWxlZ2F0ZTsKLSAgICBpZCA8VUlTY3JvbGxW
aWV3RGVsZWdhdGU+IF9leHRlcm5hbERlbGVnYXRlOworICAgIFdlYWtPYmpDUHRyPGlkIDxVSVNj
cm9sbFZpZXdEZWxlZ2F0ZT4+IF9leHRlcm5hbERlbGVnYXRlOwogfQogCiAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhJbnRlcm5hbERlbGVnYXRlOihXS1dlYlZpZXcgPFVJU2Nyb2xsVmlld0RlbGVn
YXRlPiAqKWludGVybmFsRGVsZWdhdGUgZXh0ZXJuYWxEZWxlZ2F0ZTooaWQgPFVJU2Nyb2xsVmll
d0RlbGVnYXRlPilleHRlcm5hbERlbGVnYXRlCkBAIC01OCwyNCArNjEsMjYgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSW50ZXJuYWxEZWxlZ2F0ZTooV0tXZWJWaWV3IDxVSVNjcm9sbFZpZXdE
ZWxlZ2F0ZT4gKilpbnQKIAogLSAoTlNNZXRob2RTaWduYXR1cmUgKiltZXRob2RTaWduYXR1cmVG
b3JTZWxlY3RvcjooU0VMKWFTZWxlY3RvcgogeworICAgIGF1dG8gZXh0ZXJuYWxEZWxlZ2F0ZSA9
IF9leHRlcm5hbERlbGVnYXRlLmdldCgpOwogICAgIE5TTWV0aG9kU2lnbmF0dXJlICpzaWduYXR1
cmUgPSBbc3VwZXIgbWV0aG9kU2lnbmF0dXJlRm9yU2VsZWN0b3I6YVNlbGVjdG9yXTsKICAgICBp
ZiAoIXNpZ25hdHVyZSkKICAgICAgICAgc2lnbmF0dXJlID0gWyhOU09iamVjdCAqKV9pbnRlcm5h
bERlbGVnYXRlIG1ldGhvZFNpZ25hdHVyZUZvclNlbGVjdG9yOmFTZWxlY3Rvcl07CiAgICAgaWYg
KCFzaWduYXR1cmUpCi0gICAgICAgIHNpZ25hdHVyZSA9IFsoTlNPYmplY3QgKilfZXh0ZXJuYWxE
ZWxlZ2F0ZSBtZXRob2RTaWduYXR1cmVGb3JTZWxlY3RvcjphU2VsZWN0b3JdOworICAgICAgICBz
aWduYXR1cmUgPSBbKE5TT2JqZWN0ICopZXh0ZXJuYWxEZWxlZ2F0ZSBtZXRob2RTaWduYXR1cmVG
b3JTZWxlY3RvcjphU2VsZWN0b3JdOwogICAgIHJldHVybiBzaWduYXR1cmU7CiB9CiAKIC0gKEJP
T0wpcmVzcG9uZHNUb1NlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiB7Ci0gICAgcmV0dXJuIFtzdXBl
ciByZXNwb25kc1RvU2VsZWN0b3I6YVNlbGVjdG9yXSB8fCBbX2ludGVybmFsRGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl0gfHwgW19leHRlcm5hbERlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjphU2VsZWN0b3JdOworICAgIHJldHVybiBbc3VwZXIgcmVzcG9uZHNUb1NlbGVj
dG9yOmFTZWxlY3Rvcl0gfHwgW19pbnRlcm5hbERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rvcjph
U2VsZWN0b3JdIHx8IFtfZXh0ZXJuYWxEZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6
YVNlbGVjdG9yXTsKIH0KIAogLSAodm9pZClmb3J3YXJkSW52b2NhdGlvbjooTlNJbnZvY2F0aW9u
ICopYW5JbnZvY2F0aW9uCiB7CisgICAgYXV0byBleHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFs
RGVsZWdhdGUuZ2V0KCk7CiAgICAgU0VMIGFTZWxlY3RvciA9IFthbkludm9jYXRpb24gc2VsZWN0
b3JdOwogICAgIEJPT0wgaW50ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kID0gW19pbnRlcm5hbERl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjphU2VsZWN0b3JdOwotICAgIEJPT0wgZXh0ZXJuYWxE
ZWxlZ2F0ZVdpbGxSZXNwb25kID0gW19leHRlcm5hbERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjphU2VsZWN0b3JdOworICAgIEJPT0wgZXh0ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kID0gW2V4
dGVybmFsRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07CiAKICAgICBpZiAo
aW50ZXJuYWxEZWxlZ2F0ZVdpbGxSZXNwb25kICYmIGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9u
ZCkKICAgICAgICAgW19pbnRlcm5hbERlbGVnYXRlIF93aWxsSW52b2tlVUlTY3JvbGxWaWV3RGVs
ZWdhdGVDYWxsYmFja107CkBAIC04Myw3ICs4OCw3IEBAIC0gKHZvaWQpZm9yd2FyZEludm9jYXRp
b246KE5TSW52b2NhdGlvbiAqKWFuSW52b2NhdGlvbgogICAgIGlmIChpbnRlcm5hbERlbGVnYXRl
V2lsbFJlc3BvbmQpCiAgICAgICAgIFthbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDpfaW50
ZXJuYWxEZWxlZ2F0ZV07CiAgICAgaWYgKGV4dGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCkKLSAg
ICAgICAgW2FuSW52b2NhdGlvbiBpbnZva2VXaXRoVGFyZ2V0Ol9leHRlcm5hbERlbGVnYXRlXTsK
KyAgICAgICAgW2FuSW52b2NhdGlvbiBpbnZva2VXaXRoVGFyZ2V0OmV4dGVybmFsRGVsZWdhdGUu
Z2V0KCldOwogCiAgICAgaWYgKGludGVybmFsRGVsZWdhdGVXaWxsUmVzcG9uZCAmJiBleHRlcm5h
bERlbGVnYXRlV2lsbFJlc3BvbmQpCiAgICAgICAgIFtfaW50ZXJuYWxEZWxlZ2F0ZSBfZGlkSW52
b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVDYWxsYmFja107CkBAIC05NSwxOSArMTAwLDE5IEBAIC0g
KHZvaWQpZm9yd2FyZEludm9jYXRpb246KE5TSW52b2NhdGlvbiAqKWFuSW52b2NhdGlvbgogLSAo
aWQpZm9yd2FyZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiB7CiAgICAgQk9P
TCBpbnRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQgPSBbX2ludGVybmFsRGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07Ci0gICAgQk9PTCBleHRlcm5hbERlbGVnYXRlV2lsbFJl
c3BvbmQgPSBbX2V4dGVybmFsRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07
CisgICAgQk9PTCBleHRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQgPSBbX2V4dGVybmFsRGVsZWdh
dGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOmFTZWxlY3Rvcl07CiAKICAgICBpZiAoaW50ZXJu
YWxEZWxlZ2F0ZVdpbGxSZXNwb25kICYmICFleHRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQpCiAg
ICAgICAgIHJldHVybiBfaW50ZXJuYWxEZWxlZ2F0ZTsKICAgICBpZiAoZXh0ZXJuYWxEZWxlZ2F0
ZVdpbGxSZXNwb25kICYmICFpbnRlcm5hbERlbGVnYXRlV2lsbFJlc3BvbmQpCi0gICAgICAgIHJl
dHVybiBfZXh0ZXJuYWxEZWxlZ2F0ZTsKKyAgICAgICAgcmV0dXJuIF9leHRlcm5hbERlbGVnYXRl
LmdldEF1dG9yZWxlYXNlZCgpOwogICAgIHJldHVybiBuaWw7CiB9CiAKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFdLU2Nyb2xsVmlldyB7Ci0gICAgaWQgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPiBf
ZXh0ZXJuYWxEZWxlZ2F0ZTsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8VUlTY3JvbGxWaWV3RGVsZWdh
dGU+PiBfZXh0ZXJuYWxEZWxlZ2F0ZTsKICAgICBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRl
ciAqX2RlbGVnYXRlRm9yd2FyZGVyOwogfQogCkBAIC0xMzIsNyArMTM3LDcgQEAgLSAodm9pZClz
ZXRJbnRlcm5hbERlbGVnYXRlOihXS1dlYlZpZXcgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPiAqKWlu
dGVybmFsRGVsZWdhdGUKIAogLSAodm9pZClzZXREZWxlZ2F0ZTooaWQgPFVJU2Nyb2xsVmlld0Rl
bGVnYXRlPilkZWxlZ2F0ZQogewotICAgIGlmIChfZXh0ZXJuYWxEZWxlZ2F0ZSA9PSBkZWxlZ2F0
ZSkKKyAgICBpZiAoX2V4dGVybmFsRGVsZWdhdGUuZ2V0KCkuZ2V0KCkgPT0gZGVsZWdhdGUpCiAg
ICAgICAgIHJldHVybjsKICAgICBfZXh0ZXJuYWxEZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAgIFtz
ZWxmIF91cGRhdGVEZWxlZ2F0ZV07CkBAIC0xNDAsMTkgKzE0NSwyMCBAQCAtICh2b2lkKXNldERl
bGVnYXRlOihpZCA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+KWRlbGVnYXRlCiAKIC0gKGlkIDxVSVNj
cm9sbFZpZXdEZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKLSAgICByZXR1cm4gX2V4dGVybmFsRGVsZWdh
dGU7CisgICAgcmV0dXJuIF9leHRlcm5hbERlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpOwogfQog
CiAtICh2b2lkKV91cGRhdGVEZWxlZ2F0ZQogewogICAgIFdLU2Nyb2xsVmlld0RlbGVnYXRlRm9y
d2FyZGVyICpvbGRGb3J3YXJkZXIgPSBfZGVsZWdhdGVGb3J3YXJkZXI7CiAgICAgX2RlbGVnYXRl
Rm9yd2FyZGVyID0gbmlsOwotICAgIGlmICghX2V4dGVybmFsRGVsZWdhdGUpCisgICAgYXV0byBl
eHRlcm5hbERlbGVnYXRlID0gX2V4dGVybmFsRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFleHRl
cm5hbERlbGVnYXRlKQogICAgICAgICBbc3VwZXIgc2V0RGVsZWdhdGU6X2ludGVybmFsRGVsZWdh
dGVdOwogICAgIGVsc2UgaWYgKCFfaW50ZXJuYWxEZWxlZ2F0ZSkKLSAgICAgICAgW3N1cGVyIHNl
dERlbGVnYXRlOl9leHRlcm5hbERlbGVnYXRlXTsKKyAgICAgICAgW3N1cGVyIHNldERlbGVnYXRl
OmV4dGVybmFsRGVsZWdhdGUuZ2V0KCldOwogICAgIGVsc2UgewotICAgICAgICBfZGVsZWdhdGVG
b3J3YXJkZXIgPSBbW1dLU2Nyb2xsVmlld0RlbGVnYXRlRm9yd2FyZGVyIGFsbG9jXSBpbml0V2l0
aEludGVybmFsRGVsZWdhdGU6X2ludGVybmFsRGVsZWdhdGUgZXh0ZXJuYWxEZWxlZ2F0ZTpfZXh0
ZXJuYWxEZWxlZ2F0ZV07CisgICAgICAgIF9kZWxlZ2F0ZUZvcndhcmRlciA9IFtbV0tTY3JvbGxW
aWV3RGVsZWdhdGVGb3J3YXJkZXIgYWxsb2NdIGluaXRXaXRoSW50ZXJuYWxEZWxlZ2F0ZTpfaW50
ZXJuYWxEZWxlZ2F0ZSBleHRlcm5hbERlbGVnYXRlOmV4dGVybmFsRGVsZWdhdGUuZ2V0KCldOwog
ICAgICAgICBbc3VwZXIgc2V0RGVsZWdhdGU6X2RlbGVnYXRlRm9yd2FyZGVyXTsKICAgICB9CiAg
ICAgW29sZEZvcndhcmRlciByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OWQ5YmNhLi5jNTJmZmU3IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYt
MDctMjEgIENoZWxzZWEgUHVnaCAgPGNwdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBB
cHBzIHVzaW5nIFdLV2ViVmlldyB3aWxsIGNyYXNoIGlmIHRoZXkgc2V0IHRoZSBzY3JvbGwgdmll
dydzIGRlbGVnYXRlIGFuZCBkb24ndCBuaWwgaXQgb3V0IGxhdGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5ODAKKyAgICAgICAgcmRhcjovL3By
b2JsZW0vMjc0NTA4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLU2Nyb2xsVmlld0Rl
bGVnYXRlQ3Jhc2gubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0RGVsZWdhdGVGb3JTY3JvbGxW
aWV3IGRlYWxsb2NdKTogVXBkYXRlIGRlbGVnYXRlSXNEZWFsbG9jYXRlZCB0byB0cnVlIHNvIHRo
YXQgd2UgY2FuIHRlbGwKKyAgICAgICAgd2hlbiBvdXIgZGVsZWdhdGUgaGFzIGhpdCAtZGVhbGxv
Yy4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBFbnN1cmUgdGhhdCBhZnRlciBhbiBv
YmplY3QgaGFzIGJlZW4gc2V0IGFzIHRoZSBzY3JvbGwgdmlldydzIGRlbGVnYXRlLAorICAgICAg
ICBhbmQgaGFzIHRoZW4gYmVlbiBkZWFsbG9jYXRlZCwgdGhhdCB0aGUgc2Nyb2xsIHZpZXcncyBk
ZWxlZ2F0ZSBpcyBuaWwgYW5kIHRoZSBkZWFsbG9jYXRlZCBkZWxlZ2F0ZQorICAgICAgICB3aWxs
IG5vdCBiZSBtZXNzYWdlZC4KKwogMjAxNi0wNy0yMCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHRlbXBvcmFyeSBmaXggcjIwMzQxNwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4N2Y5MDM4Li5hM2FiNTg1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTEzLDYgKzExMyw3IEBACiAJCTVDOUU1OTQxMUQzRUI1QUMwMEUzQzYyRSAv
KiBBcHBsaWNhdGlvbkNhY2hlLmRiIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1OTNFMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNhdGlv
bkNhY2hlLmRiICovOyB9OwogCQk1QzlFNTk0MjFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRp
b25DYWNoZS5kYi1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM5RTU5M0YxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUu
ZGItc2htICovOyB9OwogCQk1QzlFNTk0MzFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRpb25D
YWNoZS5kYi13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM5RTU5NDAxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGIt
d2FsICovOyB9OworCQk1RTRCMUQyRTFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVs
ZWdhdGVDcmFzaC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNo
Lm1tICovOyB9OwogCQk3NjQzMjJENzFCNjFDQ0MzMDAyNEY4MDEgLyogV29yZEJvdW5kYXJ5VHlw
aW5nQXR0cmlidXRlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc2NDMyMkQ1MUI2MUNDQTQwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBpbmdBdHRy
aWJ1dGVzLm1tICovOyB9OwogCQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExvYWRp
bmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRERjkg
LyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi87
IH07CiAJCTc2RTE4MkREMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3Bw
ICovOyB9OwpAQCAtODAxLDYgKzgwMiw3IEBACiAJCTVDOUU1OTNFMUQzRUIxREUwMEUzQzYyRSAv
KiBBcHBsaWNhdGlvbkNhY2hlLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGUuZGI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUU1OTNGMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNh
dGlvbkNhY2hlLmRiLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiQXBwbGljYXRpb25DYWNoZS5kYi1zaG0iOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTk0MDFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGlj
YXRpb25DYWNoZS5kYi13YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkFwcGxpY2F0aW9uQ2FjaGUuZGItd2FsIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUU0QjFEMkMxRDQwNEM2MTAwMDUzNjIxIC8qIFdLU2Ny
b2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tOyBwYXRoID0gLi4vaW9zL1dLU2Ny
b2xsVmlld0RlbGVnYXRlQ3Jhc2gubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlQWRk
SW1hZ2VUb0NhY2hlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUYzMTMz
RjE4QzE3MUI3MDA0MUNBRUMgLyogRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVwaGVtZXJh
bFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc2NDMyMkQ1MUI2MUNDQTQwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBp
bmdBdHRyaWJ1dGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V29yZEJvdW5kYXJ5VHlwaW5nQXR0cmlidXRlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyNDUsNiArMTI0Nyw3IEBACiAJCQkJN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2IC8q
IFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi8sCiAJCQkJOTNFOTQz
RjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICovLAogCQkJCTJE
MDAwNjVEMUMxRjU4OTQwMDg4RTZBNyAvKiBXS1BERlZpZXdSZXNpemVDcmFzaC5tbSAqLywKKwkJ
CQk1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5t
bSAqLywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5h
dmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIgLyog
V0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJCTk5ODRGQUNBMUNGRkFFRUUw
MDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBAIC0yMTI5LDYgKzIxMzIsNyBA
QAogCQkJCTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAwNDQ3QzRDIC8q
IEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkYxQTQxMUE3RTAw
NDQ3QzRDIC8qIEVsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTVFNEIxRDJFMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUYxQTQxMUFFNjAwNDQ3QzRDIC8qIEVwaGVtZXJh
bFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VGMDFBNDExQUU2MDA0NDdDNEMgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0N0M0QyAvKiBGYWlsZWRMb2FkLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL1dLU2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0KaW5kZXggZTY5ZGUyOS4uMjY5NDkz
NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxWaWV3
RGVsZWdhdGVDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1Nj
cm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXcuaD4KKworc3RhdGljIGJvb2wgZGVsZWdhdGVJc0RlYWxsb2NhdGVkOworCitAaW50ZXJmYWNl
IFRlc3REZWxlZ2F0ZUZvclNjcm9sbFZpZXcgOiBOU09iamVjdCA8VUlTY3JvbGxWaWV3RGVsZWdh
dGU+CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3REZWxlZ2F0ZUZvclNjcm9sbFZpZXcK
KworLSAodm9pZClkZWFsbG9jCit7CisgICAgZGVsZWdhdGVJc0RlYWxsb2NhdGVkID0gdHJ1ZTsK
KyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitURVNUKFdLV2ViVmlldywgV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaCkKK3sKKyAg
ICBXS1dlYlZpZXcgKndlYlZpZXcgPSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdF07CisgICAgVGVz
dERlbGVnYXRlRm9yU2Nyb2xsVmlldyAqZGVsZWdhdGVGb3JTY3JvbGxWaWV3ID0gW1tUZXN0RGVs
ZWdhdGVGb3JTY3JvbGxWaWV3IGFsbG9jXSBpbml0XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgd2ViVmlldy5zY3JvbGxWaWV3LmRlbGVnYXRlID0gZGVsZWdhdGVGb3JTY3JvbGxW
aWV3OworICAgIH0KKyAgICBkZWxlZ2F0ZUlzRGVhbGxvY2F0ZWQgPSBmYWxzZTsKKyAgICBbZGVs
ZWdhdGVGb3JTY3JvbGxWaWV3IHJlbGVhc2VdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGVsZWdhdGVJc0RlYWxsb2NhdGVkKTsKKworICAgIEVYUEVDVF9OVUxMKHdlYlZpZXcuc2Ny
b2xsVmlldy5kZWxlZ2F0ZSk7Cit9CisKK30KKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>