<?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>158819</bug_id>
          
          <creation_ts>2016-06-15 16:29:27 -0700</creation_ts>
          <short_desc>Remove unused didCancelAuthenticationChallenge</short_desc>
          <delta_ts>2016-06-23 19:47:47 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159067</see_also>
          <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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1202747</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-15 16:29:27 -0700</bug_when>
    <thetext>Remove unused didCancelAuthenticationChallenge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202779</commentid>
    <comment_count>1</comment_count>
      <attachid>281411</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-15 17:25:11 -0700</bug_when>
    <thetext>Created attachment 281411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202781</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-15 17:27:31 -0700</bug_when>
    <thetext>Attachment 281411 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 4 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>1202966</commentid>
    <comment_count>3</comment_count>
      <attachid>281464</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-16 11:47:22 -0700</bug_when>
    <thetext>Created attachment 281464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203036</commentid>
    <comment_count>4</comment_count>
      <attachid>281464</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-06-16 15:39:12 -0700</bug_when>
    <thetext>Comment on attachment 281464
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        (WebCore::ResourceLoadNotifier::willSendRequest):

The above two methods didn&apos;t change. They shouldn&apos;t appear in the ChangeLog!

&gt; Source/WebCore/ChangeLog:17
&gt; +        (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):

Ditto.

&gt; Source/WebCore/ChangeLog:24
&gt; +        (WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpace):

Ditto.

&gt; Source/WebCore/ChangeLog:28
&gt; +        (WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):

Ditto.

&gt; Source/WebCore/ChangeLog:32
&gt; +        (-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]):

Ditto.

&gt; Source/WebCore/ChangeLog:36
&gt; +        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):

Ditto.

&gt; Source/WebKit2/ChangeLog:10
&gt; +        (-[WKDownloadAsDelegate downloadShouldUseCredentialStorage:]):

Ditto.

&gt; Source/WebKit2/ChangeLog:14
&gt; +        (WebKit::NetworkLoad::receivedCancellation):

Ditto.

&gt; Source/WebKit2/ChangeLog:19
&gt; +        (WebKit::WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):

Ditto.

&gt; Source/WebKit/ios/ChangeLog:10
&gt; +        (-[WebDefaultResourceLoadDelegate webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:]):

Ditto.

&gt; Source/WebKit/mac/ChangeLog:10
&gt; +        (-[WebDownloadInternal download:didReceiveResponse:]):

Ditto.

&gt; Source/WebKit/mac/ChangeLog:15
&gt; +        (WebFrameLoaderClient::dispatchDidReceiveResponse):

Ditto.

&gt; Source/WebKit/win/ChangeLog:10
&gt; +        (WebFrameLoaderClient::dispatchWillSendRequest):

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204897</commentid>
    <comment_count>5</comment_count>
      <attachid>281464</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-06-23 12:11:51 -0700</bug_when>
    <thetext>Comment on attachment 281464
Patch

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

r=me if you fix up the ChangeLog to remove methods that were not changed.

&gt; Source/WebCore/ChangeLog:4
&gt; +        Remove unused didCancelAuthenticationChallenge
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=158819

Would be good to explain why it was removed, at least in the bug.

I believe this callback was deprecated by CFNetwork, so we switched to use something else instead (although I don&apos;t know what).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204901</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-06-23 12:17:25 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 281464 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281464&amp;action=review
&gt; 
&gt; r=me if you fix up the ChangeLog to remove methods that were not changed.

Filed this bug to track that issue:

Bug 159067: prepare-ChangeLog lists methods that were not modified when deleting other methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205009</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-23 19:47:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/202410</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281411</attachid>
            <date>2016-06-15 17:25:11 -0700</date>
            <delta_ts>2016-06-16 11:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158819-20160615172510.patch</filename>
            <type>text/plain</type>
            <size>28403</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVu
dXNlZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3Rp
Zmllcjo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oOgorICAgICAgICAqIGxvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50OjpjYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ2xpZW50OjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6dHJ5SGFuZGxlUGFzc3dvcmRCYXNl
ZEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYW5B
dXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNE
ZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBj
b25uZWN0aW9uOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpdKToKKyAgICAgICAg
KC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246Y2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkQ2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vc3Bp
L2NvY29hL05TVVJMRG93bmxvYWRTUEkuaDoKKwogMjAxNi0wNi0xNSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCAyZCBjYW52YXMgdHJh
bnNmb3JtIGFmdGVyIHIxOTI5MDAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjY2LDcgKzI2Niw2IEBAIHB1YmxpYzoKICAgICBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
Zykgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRS
ZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlIHsgfQotICAg
IHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3Zl
cnJpZGUgeyB9CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICBi
b29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoRG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaAkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVx
dWVzdChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOyAgICAgICAgCiAjaWYgVVNF
KFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAgICAgdmlydHVhbCBib29sIGNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpID0gMDsKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIu
Y3BwCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkTm90aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxNiArNjIsNiBAQCB2b2lkIFJl
c291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlQXV0CiAgICAgbV9mcmFtZS5sb2FkZXIoKS5j
bGllbnQoKS5kaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShsb2FkZXIs
IGlkZW50aWZpZXIsIGN1cnJlbnRXZWJDaGFsbGVuZ2UpOwogfQogCi12b2lkIFJlc291cmNlTG9h
ZE5vdGlmaWVyOjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY3VycmVudFdlYkNoYWxs
ZW5nZSkKLXsKLSAgICBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShsb2FkZXItPmlk
ZW50aWZpZXIoKSwgbG9hZGVyLT5kb2N1bWVudExvYWRlcigpLCBjdXJyZW50V2ViQ2hhbGxlbmdl
KTsKLX0KLQotdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkQ2FuY2VsQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9h
ZGVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY3VycmVudFdlYkNoYWxsZW5nZSkK
LXsKLSAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UobG9hZGVyLCBpZGVudGlmaWVyLCBjdXJyZW50V2ViQ2hhbGxlbmdl
KTsKLX0KLQogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlTG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgY2xpZW50UmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBtX2ZyYW1lLmxvYWRl
cigpLmFwcGx5VXNlckFnZW50KGNsaWVudFJlcXVlc3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgJKHJldmlzaW9uIDIwMjEwMikKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MCw4ICs1MCw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKLSAgICB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFJlc291cmNlTG9hZGVyKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKLSAgICB2
b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwog
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VMb2FkZXIqLCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2
aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzE0LDE0ICs3MTQsNiBAQCB2b2lkIFJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlQXV0aGVudGljCiAjZW5kaWYKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6
ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGNoYWxsZW5nZSkKLXsKLSAgICAvLyBQcm90ZWN0IHRoaXMgaW4gdGhpcyBkZWxlZ2F0
ZSBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8KLSAgICAvLyBh
bnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgZGVyZWZpbmcgdGhpczsgb25lIGV4YW1wbGUgb2Yg
dGhpcyBpcyBSYWRhciAzMjY2MjE2LgotICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVk
VGhpcygqdGhpcyk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBjaGFsbGVuZ2UpOwotfQotCiAjaWYgVVNFKFBST1RF
Q1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKIAogYm9vbCBSZXNvdXJjZUxvYWRlcjo6Y2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHBy
b3RlY3Rpb25TcGFjZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAjaWYgVVNFKFBS
T1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKICNl
bmRpZgpAQCAtMTk3LDcgKzE5Niw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGUgeyByZXR1cm4g
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSkgb3ZlcnJpZGUgeyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoY2hhbGxlbmdlKTsgfSAKLSAgICB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
IGNoYWxsZW5nZSkgb3ZlcnJpZGUgeyBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShj
aGFsbGVuZ2UpOyB9IAogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAg
ICAgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpIG92ZXJyaWRlIHsg
cmV0dXJuIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNw
YWNlKTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
Niw3ICsxMjYsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAh
VVNFKENGTkVUV09SSykKLSAgICB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgTlNV
UkxDb25uZWN0aW9uICpjb25uZWN0aW9uKCkgY29uc3Q7CiAgICAgaWQgbWFrZURlbGVnYXRlKGJv
b2wpOwogICAgIGlkIGRlbGVnYXRlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCShyZXZpc2lvbiAyMDIx
MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMyw3ICsxMTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJl
c291cmNlSGFuZGxlKikgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJikgeyB9CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxM
QkFDSykKICAgICAgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSB7IHJldHVy
biBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkocmV2aXNpb24gMjAyMTAy
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTYxNywxNiArNjE3LDYgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6dHJ5SGFuZGxlUGFzc3dvcmRCYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKLXsKLSAgICBBU1NFUlQoZC0+bV9jdXJy
ZW50TWFjQ2hhbGxlbmdlKTsKLSAgICBBU1NFUlQoZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlID09
IGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkpOwotICAgIEFTU0VSVCgh
ZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlLmlzTnVsbCgpKTsKLQotICAgIGlmIChjbGllbnQoKSkK
LSAgICAgICAgY2xpZW50KCktPmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHRoaXMs
IGNoYWxsZW5nZSk7Ci19Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQogYm9vbCBSZXNvdXJjZUhhbmRsZTo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
RGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjAyMTAy
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDE5ICsxMDksNiBAQCAt
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgbV9oYW5kbGUtPmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb3JlKGNoYWxsZW5nZSkpOwogfQogCi0t
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkQ2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKilj
aGFsbGVuZ2UKLXsKLSAgICAvLyBGSVhNRTogV2UgcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBpbXBs
ZW1lbnQgdGhpcyAoc2VlIDxyZGFyOi8vcHJvYmxlbS84OTYwMTI0PikuCi0KLSAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7Ci0KLSAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0
ZSBjb25uZWN0aW9uOiVwIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiVwIiwgbV9o
YW5kbGUsIGNvbm5lY3Rpb24sIGNoYWxsZW5nZSk7Ci0KLSAgICBpZiAoIW1faGFuZGxlKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9oYW5kbGUtPmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKGNvcmUoY2hhbGxlbmdlKSk7Ci19Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQogLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0
aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KE5TVVJMUHJvdGVjdGlv
blNwYWNlICopcHJvdGVjdGlvblNwYWNlCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lv
biAyMDIxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE0NSwyMiArMTQ1LDYgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
KiljbwogICAgIH0pOwogfQogCi0tICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UKLXsKLSAgICAvLyBGSVhNRTogV2UgcHJvYmFi
bHkgZG9uJ3QgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyAoc2VlIDxyZGFyOi8vcHJvYmxlbS84OTYw
MTI0PikuCi0KLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0o
Y29ubmVjdGlvbik7Ci0KLSAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25u
ZWN0aW9uOiVwIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiVwIiwgbV9oYW5kbGUs
IGNvbm5lY3Rpb24sIGNoYWxsZW5nZSk7Ci0KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBpZiAoIW1faGFuZGxlKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBtX2hhbmRsZS0+ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoY29yZShjaGFsbGVuZ2UpKTsKLSAgICB9KTsKLX0KLQogI2lmIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAtIChCT09MKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTooTlNVUkxQ
cm90ZWN0aW9uU3BhY2UgKilwcm90ZWN0aW9uU3BhY2UKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTERvd25sb2FkU1BJLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRG93bmxvYWRTUEkuaAkocmV2aXNp
b24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRG93
bmxvYWRTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNiBAQAogLSAoTlNVUkxSZXF1
ZXN0ICopZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCB3aWxsU2VuZFJlcXVlc3Q6
KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVkaXJlY3RSZXNwb25zZTooTlNVUkxSZXNwb25zZSAq
KXJlZGlyZWN0UmVzcG9uc2U7CiAtIChCT09MKWRvd25sb2FkOihOU1VSTERvd25sb2FkICopY29u
bmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOihOU1VSTFByb3Rl
Y3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZTsKIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93
bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2U7Ci0tICh2b2lkKWRvd25sb2FkOihO
U1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6
KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2U7CiAtIChCT09MKWRvd25s
b2FkU2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZDsK
IC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlUmVz
cG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZTsKIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJM
RG93bmxvYWQgKilkb3dubG9hZCB3aWxsUmVzdW1lV2l0aFJlc3BvbnNlOihOU1VSTFJlc3BvbnNl
ICopcmVzcG9uc2UgZnJvbUJ5dGU6KGxvbmcgbG9uZylzdGFydGluZ0J5dGU7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxNi0wNi0xNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB1bnVzZWQgZGlkQ2Fu
Y2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL21hYy9Eb3dubG9h
ZE1hYy5tbToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxvYWQ6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOl0pOgorICAgICAgICAoLVtXS0Rvd25sb2FkQXNE
ZWxlZ2F0ZSBkb3dubG9hZFNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOl0pOgorICAgICAgICAo
LVtXS0Rvd25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZDpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6cmVjZWl2ZWRD
YW5jZWxsYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlkQ2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwog
MjAxNi0wNi0xNSAgUm9tYWluIEJlbGxlc3NvcnQgIDxyb21haW4uYmVsbGVzc29ydEBjcmYuY2Fu
b24uZnI+CiAKICAgICAgICAgRW5hYmxpbmcgU2hhZG93IERPTSBmb3IgYWxsIHBsYXRmb3JtcwpJ
bmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAko
cmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDksMTQgKzQ0OSw2IEBAIHZvaWQgTmV0d29y
a0xvYWQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGkKICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBj
aGFsbGVuZ2UpOwogfQogCi12b2lkIE5ldHdvcmtMb2FkOjpkaWRDYW5jZWxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsIGhhbmRsZSA9PSBtX2hhbmRs
ZSk7Ci0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHByb2JhYmx5IG5vdCBuZWVkZWQgKHNlZSA8
cmRhcjovL3Byb2JsZW0vODk2MDEyND4pLgotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZv
aWQgTmV0d29ya0xvYWQ6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5k
bGUsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKIHsKICAgICBBU1NFUlRfVU5VU0VE
KGhhbmRsZSwgaGFuZGxlID09IG1faGFuZGxlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtODgs
NyArODgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5ub3RTaG93VVJMKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwg
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKICAgICB2
b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKICAgICBib29sIHVz
ZXNBc3luY0NhbGxiYWNrcygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGxv
YWRpbmdTeW5jaHJvbm91c1hIUigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmlzU3luY2hy
b25vdXMoKTsgfQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L21hYy9Eb3dubG9hZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tCShyZXZpc2lvbiAyMDIxMDIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODksMTIgKzE4OSw2IEBAIC0gKHZvaWQpZG93bmxvYWQ6
KE5TVVJMRG93bmxvYWQgKilkb3dubG8KICAgICB9KTsKIH0KIAotLSAodm9pZClkb3dubG9hZDoo
TlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCi17Ci0gICAgLy8gRklY
TUU6IEltcGxlbWVudC4KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiAtIChCT09MKWRvd25s
b2FkU2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZAog
ewogICAgIHJldHVybiBOTzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDEx
ICsxOTYsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlCiAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxBdXRoZW50aWNhdGlvbk1hbmFnZXI+
KCktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX2ZyYW1lLCBjaGFsbGVuZ2Up
OwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAvKmlkZW50
aWZpZXIqLywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSAgICAKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFD
SykKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBQcm90ZWN0
aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NjksNyArNjksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3Qo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZTsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvaW9zL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyMTE0KQorKysgU291cmNlL1dlYktpdC9p
b3MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDYtMTUg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBS
ZW1vdmUgdW51c2VkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMv
V2ViRGVmYXVsdFJlc291cmNlTG9hZERlbGVnYXRlLm06CisgICAgICAgICgtW1dlYkRlZmF1bHRS
ZXNvdXJjZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OnJlc291cmNlOmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTpmcm9tRGF0YVNvdXJjZTpdKToKKyAgICAgICAgKC1bV2ViRGVmYXVsdFJl
c291cmNlTG9hZERlbGVnYXRlIHdlYlZpZXc6cmVzb3VyY2U6Y2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZTpmb3JEYXRhU291cmNlOl0pOgorICAgICAgICAoLVtXZWJEZWZhdWx0
UmVzb3VyY2VMb2FkRGVsZWdhdGUgd2ViVmlldzpyZXNvdXJjZTpkaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTpmcm9tRGF0YVNvdXJjZTpdKTogRGVsZXRlZC4KKwogMjAxNi0wNi0wMiAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0eXBvIGlu
IC1bV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUgZGVsZXRlRnJvbUlucHV0d2l0aEZsYWdzOl0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFJlc291cmNl
TG9hZERlbGVnYXRlLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9pb3MvRGVmYXVsdERl
bGVnYXRlcy9XZWJEZWZhdWx0UmVzb3VyY2VMb2FkRGVsZWdhdGUubQkocmV2aXNpb24gMjAyMTAy
KQorKysgU291cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0UmVzb3Vy
Y2VMb2FkRGVsZWdhdGUubQkod29ya2luZyBjb3B5KQpAQCAtNTMsMTAgKzUzLDYgQEAgLSAodm9p
ZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIHJlc291cgogewogfQogCi0tICh2b2lkKXdlYlZp
ZXc6KFdlYlZpZXcgKilzZW5kZXIgcmVzb3VyY2U6KGlkKWlkZW50aWZpZXIgZGlkQ2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFs
bGVuZ2UgZnJvbURhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCi17Ci19Ci0K
IC0gKEJPT0wpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciByZXNvdXJjZTooaWQpaWRlbnRpZmll
ciBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOihOU1VSTFByb3RlY3Rpb25T
cGFjZSAqKXByb3RlY3Rpb25TcGFjZSBmb3JEYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZGF0
YVNvdXJjZQogewogICAgIHJldHVybiBOTzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIwMjEwMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIzIEBACisyMDE2LTA2LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBkaWRDYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4ODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNaXNjL1dlYkRvd25sb2FkLm1tOgorICAgICAgICAoLVtXZWJEb3dubG9hZElu
dGVybmFsIGRvd25sb2FkOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpdKToKKyAg
ICAgICAgKC1bV2ViRG93bmxvYWRJbnRlcm5hbCBkb3dubG9hZDpkaWRSZWNlaXZlUmVzcG9uc2U6
XSk6CisgICAgICAgICgtW1dlYkRvd25sb2FkSW50ZXJuYWwgZG93bmxvYWQ6ZGlkQ2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRQYWludEJyb2tlbkltYWdlKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViVmlldy9XZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY2FjaGVSZXNvdXJj
ZUxvYWREZWxlZ2F0ZUltcGxlbWVudGF0aW9uc10pOgorCiAyMDE2LTA2LTE1ICBSb21haW4gQmVs
bGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBFbmFi
bGluZyBTaGFkb3cgRE9NIGZvciBhbGwgcGxhdGZvcm1zCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYkRvd25sb2FkLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViRG93bmxvYWQubW0JKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViRG93bmxvYWQubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0OCwxNyArMTQ4LDYgQEAg
LSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sbwogI2VuZGlmCiB9CiAKLS0g
KHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRDYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5n
ZQotewotI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYgKFtyZWFsRGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihkb3dubG9hZDpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTopXSkgewotICAgICAgICBbcmVhbERlbGVnYXRlIGRvd25sb2FkOmRvd25sb2FkIGRpZENh
bmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNoYWxsZW5nZV07Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgW1tXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlciBzaGFyZWRIYW5kbGVyXSBjYW5j
ZWxBdXRoZW50aWNhdGlvbjpjaGFsbGVuZ2VdOwotICAgIH0KLSNlbmRpZgotfQotCiAtICh2b2lk
KWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZVJlc3BvbnNlOihO
U1VSTFJlc3BvbnNlICopcmVzcG9uc2UKIHsKICAgICBbcmVhbERlbGVnYXRlIGRvd25sb2FkOmRv
d25sb2FkIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZV07CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJ
KHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBv
dmVycmlkZTsKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hEaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSBvdmVycmlkZTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQogICAgIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlJikgb3ZlcnJpZGU7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDU2LDI0ICs0NTYs
NiBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRQYWludEJyCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSZjaGFsbGVuZ2Up
Ci17Ci0gICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7
Ci0gICAgV2ViUmVzb3VyY2VEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGUqIGltcGxlbWVudGF0
aW9ucyA9IFdlYlZpZXdHZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZUltcGxlbWVudGF0aW9ucyh3ZWJW
aWV3KTsKLSAgICBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICp3ZWJDaGFsbGVuZ2UgPSBt
YWMoY2hhbGxlbmdlKTsKLQotICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPmRpZENhbmNlbEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRnVuYykgewotICAgICAgICBpZiAoaWQgcmVzb3VyY2UgPSBbd2Vi
VmlldyBfb2JqZWN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVyXSkgewotICAgICAgICAgICAgQ2Fs
bFJlc291cmNlTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+ZGlkQ2FuY2VsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpyZXNvdXJjZTpk
aWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpmcm9tRGF0YVNvdXJjZTopLCByZXNvdXJj
ZSwgd2ViQ2hhbGxlbmdlLCBkYXRhU291cmNlKGxvYWRlcikpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgfQotCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBbKFdlYlBhbmVs
QXV0aGVudGljYXRpb25IYW5kbGVyICopW1dlYlBhbmVsQXV0aGVudGljYXRpb25IYW5kbGVyIHNo
YXJlZEhhbmRsZXJdIGNhbmNlbEF1dGhlbnRpY2F0aW9uOndlYkNoYWxsZW5nZV07Ci0jZW5kaWYK
LX0KLQogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0g
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5n
LmgJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGVs
ZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NiBAQAogQGNsYXNzIFdlYlZpZXc7CiAKIHN0cnVjdCBXZWJSZXNvdXJjZURlbGVnYXRlSW1wbGVt
ZW50YXRpb25DYWNoZSB7Ci0gICAgSU1QIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RnVuYzsKICAgICBJTVAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRnVuYzsKICNp
ZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIElNUCBjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlRnVuYzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjU3MCw3ICsyNTcwLDYgQEAgLSAo
dm9pZClfY2FjaGVSZXNvdXJjZUxvYWREZWxlZ2F0ZUltcGxlbQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgY2FjaGUtPmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRnVuYyA9
IGdldE1ldGhvZChkZWxlZ2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6ZGlkQ2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6ZnJvbURhdGFTb3VyY2U6KSk7CiAgICAgY2FjaGUtPmRp
ZEZhaWxMb2FkaW5nV2l0aEVycm9yRnJvbURhdGFTb3VyY2VGdW5jID0gZ2V0TWV0aG9kKGRlbGVn
YXRlLCBAc2VsZWN0b3Iod2ViVmlldzpyZXNvdXJjZTpkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjpm
cm9tRGF0YVNvdXJjZTopKTsKICAgICBjYWNoZS0+ZGlkRmluaXNoTG9hZGluZ0Zyb21EYXRhU291
cmNlRnVuYyA9IGdldE1ldGhvZChkZWxlZ2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6
ZGlkRmluaXNoTG9hZGluZ0Zyb21EYXRhU291cmNlOikpOwogICAgIGNhY2hlLT5kaWRMb2FkUmVz
b3VyY2VGcm9tTWVtb3J5Q2FjaGVGdW5jID0gZ2V0TWV0aG9kKGRlbGVnYXRlLCBAc2VsZWN0b3Io
d2ViVmlldzpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGU6cmVzcG9uc2U6bGVuZ3RoOmZy
b21EYXRhU291cmNlOikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281464</attachid>
            <date>2016-06-16 11:47:22 -0700</date>
            <delta_ts>2016-06-23 12:11:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158819-20160616114722.patch</filename>
            <type>text/plain</type>
            <size>32076</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE2LTA2LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVu
dXNlZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL1Jl
c291cmNlTG9hZE5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5v
dGlmaWVyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkTm90aWZpZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5o
OgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRDYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudDo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRDYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6dHJ5SGFuZGxlUGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0
ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6XSk6Cisg
ICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVs
ZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpd
KToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlIGNvbm5lY3Rpb246Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTpdKToK
KyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRl
IGNvbm5lY3Rpb246ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6XSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRG93bmxvYWRTUEkuaDoKKwogMjAx
Ni0wNi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEZpeCAyZCBjYW52YXMgdHJhbnNmb3JtIGFmdGVyIHIxOTI5MDAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjY2LDcgKzI2
Niw2IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3Vt
ZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZywgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
IHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGUgeyB9CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BB
Q0VfQVVUSF9DQUxMQkFDSykKICAgICBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBQcm90ZWN0aW9u
U3BhY2UmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjAyMTAyKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzNiw3ICsxMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JikgPSAwOyAgICAgICAgCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykK
ICAgICAgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYpID0gMDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZE5vdGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MiwxNiArNjIsNiBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlQXV0
CiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShsb2FkZXIsIGlkZW50aWZpZXIsIGN1cnJlbnRXZWJDaGFsbGVuZ2Up
OwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRDYW5jZWxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYgY3VycmVudFdlYkNoYWxsZW5nZSkKLXsKLSAgICBkaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShsb2FkZXItPmlkZW50aWZpZXIoKSwgbG9hZGVyLT5kb2N1bWVudExvYWRl
cigpLCBjdXJyZW50V2ViQ2hhbGxlbmdlKTsKLX0KLQotdm9pZCBSZXNvdXJjZUxvYWROb3RpZmll
cjo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY3VycmVudFdlYkNoYWxsZW5nZSkKLXsKLSAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgp
LmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobG9hZGVyLCBpZGVudGlm
aWVyLCBjdXJyZW50V2ViQ2hhbGxlbmdlKTsKLX0KLQogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmll
cjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVz
dCYgY2xpZW50UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSkKIHsKICAgICBtX2ZyYW1lLmxvYWRlcigpLmFwcGx5VXNlckFnZW50KGNsaWVudFJlcXVlc3Qp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgJ
KHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRO
b3RpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw2IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlTG9hZGVyKiwg
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9h
ZGVyKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKLSAgICB2b2lkIGRpZENhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKLSAgICB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRp
cmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRl
ciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzE0LDE0ICs3MTQs
NiBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQXV0aGVudGljCiAjZW5kaWYKIH0K
IAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKLXsKLSAgICAvLyBQcm90
ZWN0IHRoaXMgaW4gdGhpcyBkZWxlZ2F0ZSBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJv
Y2Vzc2luZyBjYW4gZG8KLSAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgZGVyZWZp
bmcgdGhpczsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyBSYWRhciAzMjY2MjE2LgotICAgIFJlZjxS
ZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+
bm90aWZpZXIoKS5kaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBjaGFsbGVu
Z2UpOwotfQotCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKIAogYm9v
bCBSZXNvdXJjZUxvYWRlcjo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShj
b25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzEx
Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJik7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25z
dCBQcm90ZWN0aW9uU3BhY2UmKTsKICNlbmRpZgpAQCAtMTk3LDcgKzE5Niw2IEBAIHByaXZhdGU6
CiAjZW5kaWYKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFu
ZGxlKikgb3ZlcnJpZGUgeyByZXR1cm4gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsgfQog
ICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkgb3ZlcnJpZGUgeyBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hhbGxlbmdlKTsgfSAKLSAgICB2b2lk
IGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkgb3ZlcnJpZGUgeyBkaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShjaGFsbGVuZ2UpOyB9IAogI2lmIFVTRShQUk9URUNUSU9O
X1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90
ZWN0aW9uU3BhY2UpIG92ZXJyaWRlIHsgcmV0dXJuIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlKTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAy
MDIxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNiw3ICsxMjYsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENGTkVUV09SSykKLSAgICB2b2lkIGRpZENhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgTlNVUkxDb25uZWN0aW9uICpjb25uZWN0aW9uKCkgY29uc3Q7
CiAgICAgaWQgbWFrZURlbGVnYXRlKGJvb2wpOwogICAgIGlkIGRlbGVnYXRlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMyw3ICsx
MTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgeyB9CiAjaWYgVVNFKFBS
T1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAgICAgdmlydHVhbCBib29sIGNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQ
cm90ZWN0aW9uU3BhY2UmKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbQkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTYxNywxNiAr
NjE3LDYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6dHJ5SGFuZGxlUGFzc3dvcmRCYQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2FuY2VsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkK
LXsKLSAgICBBU1NFUlQoZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlKTsKLSAgICBBU1NFUlQoZC0+
bV9jdXJyZW50TWFjQ2hhbGxlbmdlID09IGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKCkpOwotICAgIEFTU0VSVCghZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlLmlzTnVsbCgp
KTsKLQotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPmRpZENhbmNlbEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKHRoaXMsIGNoYWxsZW5nZSk7Ci19Ci0KICNpZiBVU0UoUFJPVEVD
VElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogYm9vbCBSZXNvdXJjZUhhbmRsZTo6Y2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3Rl
Y3Rpb25TcGFjZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxl
Z2F0ZS5tbQkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTA5LDE5ICsxMDksNiBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvCiAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShj
b3JlKGNoYWxsZW5nZSkpOwogfQogCi0tICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvbm5lY3Rpb24gZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UKLXsKLSAgICAvLyBGSVhNRTogV2UgcHJv
YmFibHkgZG9uJ3QgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyAoc2VlIDxyZGFyOi8vcHJvYmxlbS84
OTYwMTI0PikuCi0KLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7Ci0KLSAgICBMT0coTmV0
d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOiVwIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIGNoYWxsZW5nZSk7Ci0K
LSAgICBpZiAoIW1faGFuZGxlKQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYW5kbGUtPmRpZENh
bmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvcmUoY2hhbGxlbmdlKSk7Ci19Ci0KICNpZiBV
U0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogLSAoQk9PTCljb25uZWN0aW9uOihO
U1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2U6KE5TVVJMUHJvdGVjdGlvblNwYWNlICopcHJvdGVjdGlvblNwYWNlCiB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVs
ZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0NSwyMiArMTQ1LDYgQEAgLSAodm9pZCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIH0pOwogfQogCi0tICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkQ2FuY2VsQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UKLXsK
LSAgICAvLyBGSVhNRTogV2UgcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyAo
c2VlIDxyZGFyOi8vcHJvYmxlbS84OTYwMTI0PikuCi0KLSAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7Ci0KLSAgICBMT0coTmV0d29yaywg
IkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOiVwIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIGNoYWxsZW5nZSk7Ci0KLSAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBpZiAo
IW1faGFuZGxlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2hhbmRsZS0+ZGlkQ2Fu
Y2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29yZShjaGFsbGVuZ2UpKTsKLSAgICB9KTsKLX0K
LQogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAtIChCT09MKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gY2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZTooTlNVUkxQcm90ZWN0aW9uU3BhY2UgKilwcm90ZWN0aW9uU3BhY2UK
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTERvd25sb2Fk
U1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05T
VVJMRG93bmxvYWRTUEkuaAkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL2NvY29hL05TVVJMRG93bmxvYWRTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NyArNTIsNiBAQAogLSAoTlNVUkxSZXF1ZXN0ICopZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilk
b3dubG9hZCB3aWxsU2VuZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVkaXJlY3RS
ZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2U7CiAtIChCT09MKWRvd25s
b2FkOihOU1VSTERvd25sb2FkICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZTsKIC0g
KHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVu
Z2U7Ci0tICh2b2lkKWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkQ2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKilj
aGFsbGVuZ2U7CiAtIChCT09MKWRvd25sb2FkU2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KE5T
VVJMRG93bmxvYWQgKilkb3dubG9hZDsKIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQg
Kilkb3dubG9hZCBkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZTsK
IC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCB3aWxsUmVzdW1lV2l0
aFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UgZnJvbUJ5dGU6KGxvbmcgbG9uZylz
dGFydGluZ0J5dGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDIxMTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxNi0w
Ni0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlbW92ZSB1bnVzZWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODgxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFz
RGVsZWdhdGUgZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOl0pOgor
ICAgICAgICAoLVtXS0Rvd25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZFNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlOl0pOgorICAgICAgICAoLVtXS0Rvd25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZDpk
aWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtM
b2FkOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrTG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZDo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOiBEZWxldGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxNi0wNi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCBwYXJ0IG9mIHIxOTYwMzQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJ
KHJldmlzaW9uIDIwMjExOSkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDE0ICs0NTEsNiBAQCB2b2lkIE5ldHdv
cmtMb2FkOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpCiAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmds
ZXRvbigpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwg
Y2hhbGxlbmdlKTsKIH0KIAotdm9pZCBOZXR3b3JrTG9hZDo6ZGlkQ2FuY2VsQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKQotewotICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5k
bGUpOwotCi0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBwcm9iYWJseSBub3QgbmVlZGVkIChzZWUg
PHJkYXI6Ly9wcm9ibGVtLzg5NjAxMjQ+KS4KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2
b2lkIE5ldHdvcmtMb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChoYW5kbGUsIGhhbmRsZSA9PSBtX2hhbmRsZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHJldmlzaW9uIDIwMjEwMikKKysrIFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4
LDcgKzg4LDYgQEAgcHVibGljOgogICAgIHZvaWQgY2Fubm90U2hvd1VSTChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZSopIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAgICAgYm9vbCB1
c2VzQXN5bmNDYWxsYmFja3MoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBs
b2FkaW5nU3luY2hyb25vdXNYSFIoKSBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5pc1N5bmNo
cm9ub3VzKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9tYWMvRG93bmxvYWRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQkocmV2aXNpb24gMjAyMTAyKQor
KysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTg5LDEyICsxODksNiBAQCAtICh2b2lkKWRvd25sb2Fk
OihOU1VSTERvd25sb2FkICopZG93bmxvCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpZG93bmxvYWQ6
KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQotewotICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogLSAoQk9PTClkb3du
bG9hZFNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOihOU1VSTERvd25sb2FkICopZG93bmxvYWQK
IHsKICAgICByZXR1cm4gTk87CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Niwx
MSArMTk2LDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZQogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8QXV0aGVudGljYXRpb25NYW5hZ2Vy
PigpLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9mcmFtZSwgY2hhbGxlbmdl
KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgLyppZGVu
dGlmaWVyKi8sIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUHJvdGVj
dGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY5LDcgKzY5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQogICAgIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3Rl
Y3Rpb25TcGFjZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJikgb3ZlcnJpZGU7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjExNCkKKysrIFNvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA2LTE2
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmVtb3ZlIHVudXNlZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVz
L1dlYkRlZmF1bHRSZXNvdXJjZUxvYWREZWxlZ2F0ZS5tOgorICAgICAgICAoLVtXZWJEZWZhdWx0
UmVzb3VyY2VMb2FkRGVsZWdhdGUgd2ViVmlldzpyZXNvdXJjZTpkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6ZnJvbURhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYkRlZmF1bHRS
ZXNvdXJjZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OnJlc291cmNlOmNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2U6Zm9yRGF0YVNvdXJjZTpdKToKKyAgICAgICAgKC1bV2ViRGVmYXVs
dFJlc291cmNlTG9hZERlbGVnYXRlIHdlYlZpZXc6cmVzb3VyY2U6ZGlkQ2FuY2VsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6ZnJvbURhdGFTb3VyY2U6XSk6IERlbGV0ZWQuCisKIDIwMTYtMDYtMDIg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdHlwbyBp
biAtW1dlYkRlZmF1bHRVSUtpdERlbGVnYXRlIGRlbGV0ZUZyb21JbnB1dHdpdGhGbGFnczpdCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRSZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHRE
ZWxlZ2F0ZXMvV2ViRGVmYXVsdFJlc291cmNlTG9hZERlbGVnYXRlLm0JKHJldmlzaW9uIDIwMjEw
MikKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFJlc291
cmNlTG9hZERlbGVnYXRlLm0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDEwICs1Myw2IEBAIC0gKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciByZXNvdXIKIHsKIH0KIAotLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIHJlc291cmNlOihpZClpZGVudGlmaWVyIGRpZENhbmNlbEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hh
bGxlbmdlIGZyb21EYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZGF0YVNvdXJjZQotewotfQot
CiAtIChCT09MKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgcmVzb3VyY2U6KGlkKWlkZW50aWZp
ZXIgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTooTlNVUkxQcm90ZWN0aW9u
U3BhY2UgKilwcm90ZWN0aW9uU3BhY2UgZm9yRGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRh
dGFTb3VyY2UKIHsKICAgICByZXR1cm4gTk87CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMyBAQAorMjAxNi0wNi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB1bnVzZWQgZGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1ODgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogTWlzYy9XZWJEb3dubG9hZC5tbToKKyAgICAgICAgKC1bV2ViRG93bmxvYWRJ
bnRlcm5hbCBkb3dubG9hZDpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6XSk6Cisg
ICAgICAgICgtW1dlYkRvd25sb2FkSW50ZXJuYWwgZG93bmxvYWQ6ZGlkUmVjZWl2ZVJlc3BvbnNl
Ol0pOgorICAgICAgICAoLVtXZWJEb3dubG9hZEludGVybmFsIGRvd25sb2FkOmRpZENhbmNlbEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOl0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hv
dWxkUGFpbnRCcm9rZW5JbWFnZSk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NhY2hlUmVzb3Vy
Y2VMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbnNdKToKKwogMjAxNi0wNi0xNSAgUm9tYWluIEJl
bGxlc3NvcnQgIDxyb21haW4uYmVsbGVzc29ydEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgRW5h
YmxpbmcgU2hhZG93IERPTSBmb3IgYWxsIHBsYXRmb3JtcwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJEb3dubG9hZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYkRvd25sb2FkLm1tCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYkRvd25sb2FkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsMTcgKzE0OCw2IEBA
IC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG8KICNlbmRpZgogfQogCi0t
ICh2b2lkKWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVu
Z2UKLXsKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIGlmIChbcmVhbERlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoZG93bmxvYWQ6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6KV0pIHsKLSAgICAgICAgW3JlYWxEZWxlZ2F0ZSBkb3dubG9hZDpkb3dubG9hZCBkaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjaGFsbGVuZ2VdOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIFtbV2ViUGFuZWxBdXRoZW50aWNhdGlvbkhhbmRsZXIgc2hhcmVkSGFuZGxlcl0gY2Fu
Y2VsQXV0aGVudGljYXRpb246Y2hhbGxlbmdlXTsKLSAgICB9Ci0jZW5kaWYKLX0KLQogLSAodm9p
ZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVSZXNwb25zZToo
TlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlCiB7CiAgICAgW3JlYWxEZWxlZ2F0ZSBkb3dubG9hZDpk
b3dubG9hZCBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2VdOwpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoRGlk
Q2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJikgb3ZlcnJpZGU7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFD
SykKICAgICBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZSYpIG92ZXJyaWRlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQkocmV2aXNpb24gMjAyMTAyKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1NiwyNCArNDU2
LDYgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkUGFpbnRCcgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmY2hhbGxlbmdl
KQotewotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkp
OwotICAgIFdlYlJlc291cmNlRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBpbXBsZW1lbnRh
dGlvbnMgPSBXZWJWaWV3R2V0UmVzb3VyY2VMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbnMod2Vi
Vmlldyk7Ci0gICAgTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqd2ViQ2hhbGxlbmdlID0g
bWFjKGNoYWxsZW5nZSk7Ci0KLSAgICBpZiAoaW1wbGVtZW50YXRpb25zLT5kaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUZ1bmMpIHsKLSAgICAgICAgaWYgKGlkIHJlc291cmNlID0gW3dl
YlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl0pIHsKLSAgICAgICAgICAgIENh
bGxSZXNvdXJjZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPmRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6
ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6ZnJvbURhdGFTb3VyY2U6KSwgcmVzb3Vy
Y2UsIHdlYkNoYWxsZW5nZSwgZGF0YVNvdXJjZShsb2FkZXIpKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgIH0KLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgWyhXZWJQYW5l
bEF1dGhlbnRpY2F0aW9uSGFuZGxlciAqKVtXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlciBz
aGFyZWRIYW5kbGVyXSBjYW5jZWxBdXRoZW50aWNhdGlvbjp3ZWJDaGFsbGVuZ2VdOwotI2VuZGlm
Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3Bv
bnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9
IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGlu
Zy5oCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRl
bGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4
LDYgQEAKIEBjbGFzcyBXZWJWaWV3OwogCiBzdHJ1Y3QgV2ViUmVzb3VyY2VEZWxlZ2F0ZUltcGxl
bWVudGF0aW9uQ2FjaGUgewotICAgIElNUCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUZ1bmM7CiAgICAgSU1QIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUZ1bmM7CiAj
aWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICBJTVAgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUZ1bmM7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1NzAsNyArMjU3MCw2IEBAIC0g
KHZvaWQpX2NhY2hlUmVzb3VyY2VMb2FkRGVsZWdhdGVJbXBsZW0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGNhY2hlLT5kaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUZ1bmMg
PSBnZXRNZXRob2QoZGVsZWdhdGUsIEBzZWxlY3Rvcih3ZWJWaWV3OnJlc291cmNlOmRpZENhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmZyb21EYXRhU291cmNlOikpOwogICAgIGNhY2hlLT5k
aWRGYWlsTG9hZGluZ1dpdGhFcnJvckZyb21EYXRhU291cmNlRnVuYyA9IGdldE1ldGhvZChkZWxl
Z2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6ZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6
ZnJvbURhdGFTb3VyY2U6KSk7CiAgICAgY2FjaGUtPmRpZEZpbmlzaExvYWRpbmdGcm9tRGF0YVNv
dXJjZUZ1bmMgPSBnZXRNZXRob2QoZGVsZWdhdGUsIEBzZWxlY3Rvcih3ZWJWaWV3OnJlc291cmNl
OmRpZEZpbmlzaExvYWRpbmdGcm9tRGF0YVNvdXJjZTopKTsKICAgICBjYWNoZS0+ZGlkTG9hZFJl
c291cmNlRnJvbU1lbW9yeUNhY2hlRnVuYyA9IGdldE1ldGhvZChkZWxlZ2F0ZSwgQHNlbGVjdG9y
KHdlYlZpZXc6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlOnJlc3BvbnNlOmxlbmd0aDpm
cm9tRGF0YVNvdXJjZTopKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjEzMSkK
KysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE2IEBACisyMDE2LTA2LTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4ODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE2LTA2LTE1ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBzb21lIHVubmVjZXNzYXJ5IGhlYWRlciBp
bmNsdWRlcwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMjAyMTAyKQorKysgU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjIsMTcgKzIyMiw2IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmUKICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKS0+
cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNoYWxsZW5nZSk7CiB9
CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQotewotICAg
IFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7Ci0gICAgQ09NUHRyPElX
ZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZT4gcmVzb3VyY2VMb2FkRGVsZWdhdGU7Ci0gICAgaWYgKEZB
SUxFRCh3ZWJWaWV3LT5yZXNvdXJjZUxvYWREZWxlZ2F0ZSgmcmVzb3VyY2VMb2FkRGVsZWdhdGUp
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlPiB3ZWJDaGFsbGVuZ2UoQWRvcHRDT00sIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOjpjcmVhdGVJbnN0YW5jZShjaGFsbGVuZ2UpKTsKLSAgICByZXNvdXJjZUxvYWREZWxlZ2F0
ZS0+ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uod2ViVmlldywgaWRlbnRpZmllciwg
d2ViQ2hhbGxlbmdlLmdldCgpLCBnZXRXZWJEYXRhU291cmNlKGxvYWRlcikpOwotfQotCiB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExv
YWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAg
ICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCShyZXZpc2lvbiAyMDIxMDIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw3
IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViRnJhbWVMb2FkZXJDbGllbnRfaAot
I2RlZmluZSBXZWJGcmFtZUxvYWRlckNsaWVudF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5o
PgpAQCAtNjksNyArNjgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVx
dWVzdChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSkgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
Zmllcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRj
aERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBvdmVycmlkZTsKQEAgLTIxOSw1
ICsyMTcsMyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2lu
OwogfTsKLQotI2VuZGlmIC8vIFdlYkZyYW1lTG9hZGVyQ2xpZW50X2gK
</data>
<flag name="review"
          id="305311"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="305758"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>