<?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>211808</bug_id>
          
          <creation_ts>2020-05-12 14:42:12 -0700</creation_ts>
          <short_desc>[WK2] Neuter WKFrameIsFrameSet() / WKPageGetFrameSetLargestFrame() C API</short_desc>
          <delta_ts>2020-05-12 16:39:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651955</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-12 14:42:12 -0700</bug_when>
    <thetext>Neuter WKFrameIsFrameSet() / WKPageGetFrameSetLargestFrame() C API. This is only SPI and is only used for slightly different printing behavior in Safari. Framesets are no longer supported in HTML5 and are now super rare. Support for this C API adds quite a bit of code complexity and crashes such as &lt;rdar://problem/60322282&gt;, it just does not seem worse it anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651958</commentid>
    <comment_count>1</comment_count>
      <attachid>399181</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-12 14:47:55 -0700</bug_when>
    <thetext>Created attachment 399181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651961</commentid>
    <comment_count>2</comment_count>
      <attachid>399181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 14:53:53 -0700</bug_when>
    <thetext>Comment on attachment 399181
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKFrame.cpp:125
&gt;  bool WKFrameIsFrameSet(WKFrameRef frameRef)

Is there an &quot;SPI deprecation&quot; thing to be done?

&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:393
&gt; -    return toAPI(toImpl(pageRef)-&gt;frameSetLargestFrame());
&gt; +    return nullptr;

Would it be safer to return the main frame rather than null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651963</commentid>
    <comment_count>3</comment_count>
      <attachid>399181</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-05-12 14:55:05 -0700</bug_when>
    <thetext>Comment on attachment 399181
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/C/WKFrame.cpp:125
&gt;&gt;  bool WKFrameIsFrameSet(WKFrameRef frameRef)
&gt; 
&gt; Is there an &quot;SPI deprecation&quot; thing to be done?

WK_C_API_DEPRECATED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651965</commentid>
    <comment_count>4</comment_count>
      <attachid>399181</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-05-12 14:57:18 -0700</bug_when>
    <thetext>Comment on attachment 399181
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:393
&gt;&gt; +    return nullptr;
&gt; 
&gt; Would it be safer to return the main frame rather than null?

If we remove the use of this function (and please mention the radar where you do such) then we only need to keep the C functions in the binary so SafariForWebKitDevelopment can start with open source builds of WebKit, which is probably NBD in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651969</commentid>
    <comment_count>5</comment_count>
      <attachid>399181</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-12 15:06:27 -0700</bug_when>
    <thetext>Comment on attachment 399181
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKFrame.cpp:125
&gt;&gt;&gt;  bool WKFrameIsFrameSet(WKFrameRef frameRef)
&gt;&gt; 
&gt;&gt; Is there an &quot;SPI deprecation&quot; thing to be done?
&gt; 
&gt; WK_C_API_DEPRECATED

Will add.

&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:393
&gt;&gt;&gt; +    return nullptr;
&gt;&gt; 
&gt;&gt; Would it be safer to return the main frame rather than null?
&gt; 
&gt; If we remove the use of this function (and please mention the radar where you do such) then we only need to keep the C functions in the binary so SafariForWebKitDevelopment can start with open source builds of WebKit, which is probably NBD in this case.

Yes, I will follow-up and drop corresponding code from client.

Returning nullptr here is safe. This method could always return null and would only return non-null when there is a frameset. Returning the main frame would be a behavior change and may actually cause a behavior change in client too. I have checked that the only client of this SPI properly null-checks the result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651974</commentid>
    <comment_count>6</comment_count>
      <attachid>399185</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-12 15:10:22 -0700</bug_when>
    <thetext>Created attachment 399185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652022</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 16:38:47 -0700</bug_when>
    <thetext>Committed r261586: &lt;https://trac.webkit.org/changeset/261586&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399185.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652023</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-12 16:39:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/63159822&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399181</attachid>
            <date>2020-05-12 14:47:55 -0700</date>
            <delta_ts>2020-05-12 15:10:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211808-20200512144752.patch</filename>
            <type>text/plain</type>
            <size>24644</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2YzOGNjNzZhMjI4NmMz
OWY2YTg2MDQxMDEwODY5MTI0ZTY4Nzc3MC4uYTQ2OGU0ODdhMzRhOGQ4ZDkxOTRkYzFlNDhhZmVh
MWU0MTY1ZGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTmV1dGVyIFdLRnJh
bWVJc0ZyYW1lU2V0KCkgLyBXS1BhZ2VHZXRGcmFtZVNldExhcmdlc3RGcmFtZSgpIEMgQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4MDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXV0ZXIgV0tG
cmFtZUlzRnJhbWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBBUEku
IFRoaXMgaXMgb25seSBTUEkgYW5kIGlzIG9ubHkgdXNlZCBmb3Igc2xpZ2h0bHkKKyAgICAgICAg
ZGlmZmVyZW50IHByaW50aW5nIGJlaGF2aW9yIGluIFNhZmFyaS4gRnJhbWVzZXRzIGFyZSBubyBs
b25nZXIgc3VwcG9ydGVkIGluIEhUTUw1IGFuZCBhcmUgbm93IHN1cGVyIHJhcmUuIFN1cHBvcnQK
KyAgICAgICAgZm9yIHRoaXMgQyBBUEkgYWRkcyBxdWl0ZSBhIGJpdCBvZiBjb2RlIGNvbXBsZXhp
dHkgYW5kIGNyYXNoZXMgc3VjaCBhcyA8cmRhcjovL3Byb2JsZW0vNjAzMjIyODI+LCBpdCBqdXN0
IGRvZXMgbm90CisgICAgICAgIHNlZW0gd29ydGggaXQgYW55bW9yZS4KKworICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lKToKKyAg
ICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEZyYW1lU2V0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rvcik6CisgICAgICAg
ICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNS0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmV3b3JrIGNsaXBib2FyZCBoYW5k
bGluZyBpbiBwcmVwYXJhdGlvbiBmb3IgR1RLNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxN2M4M2ZjMDNhMTUwYzYy
M2E3ODBkNTU1OWMzZWY3NjYyODhmZDUwLi45OGQ3ODdmZDA4MmY5M2U0NDVmMzdjODY5YTI3MDJj
OGY2ZjgyYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA1LTEyICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTmV1dGVyIFdLRnJhbWVJ
c0ZyYW1lU2V0KCkgLyBXS1BhZ2VHZXRGcmFtZVNldExhcmdlc3RGcmFtZSgpIEMgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4MDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXV0ZXIgV0tGcmFt
ZUlzRnJhbWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBBUEkuIFRo
aXMgaXMgb25seSBTUEkgYW5kIGlzIG9ubHkgdXNlZCBmb3Igc2xpZ2h0bHkKKyAgICAgICAgZGlm
ZmVyZW50IHByaW50aW5nIGJlaGF2aW9yIGluIFNhZmFyaS4gRnJhbWVzZXRzIGFyZSBubyBsb25n
ZXIgc3VwcG9ydGVkIGluIEhUTUw1IGFuZCBhcmUgbm93IHN1cGVyIHJhcmUuIFN1cHBvcnQKKyAg
ICAgICAgZm9yIHRoaXMgQyBBUEkgYWRkcyBxdWl0ZSBhIGJpdCBvZiBjb2RlIGNvbXBsZXhpdHkg
YW5kIGNyYXNoZXMgc3VjaCBhcyA8cmRhcjovL3Byb2JsZW0vNjAzMjIyODI+LCBpdCBqdXN0IGRv
ZXMgbm90CisgICAgICAgIHNlZW0gd29ydGggaXQgYW55bW9yZS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcDoKKyAgICAgICAgKFdLRnJhbWVJc0ZyYW1lU2V0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdldEZy
YW1lU2V0TGFyZ2VzdEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmRpZENvbW1pdExvYWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lUHJveHk6OnNldElzRnJhbWVTZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZVByb3h5Ojppc0ZyYW1lU2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNl
dFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZy
YW1lU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZy
YW1lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1Np
emVDaGFuZ2VkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6ZmluZExhcmdlc3RGcmFtZUluRnJh
bWVTZXQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjAtMDUt
MTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEs0XSBBZGQgc3VwcG9ydCBmb3IgY2xpcGJvYXJkIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCA1ZGE1MzEwYWMxODM2NmQ0ZDNkNDRkOTllZThhMWExZjdhMjI5
NDJhLi5hZWJmYmU5NDA4NjU4MDY4ZGUzN2M3YTI0NTNmNjdiMTA0NzAxMmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBOZXV0ZXIgV0tGcmFtZUlz
RnJhbWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBBUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTgwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KTogRGVsZXRlZC4KKwogMjAyMC0wNS0xMSAgUGVuZyBMaXUg
IDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB0aGUgbW9jayB2aWRlbyBw
cmVzZW50YXRpb24gbW9kZSBpbiByZWxhdGVkIGxheW91dCB0ZXN0cyBhbmQgZml4IHRlc3QgZmFp
bHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBjNjMzMjY0Yzg2YTYxNTIwYTQ3
NTVlMGFkMGI0YzFiMGRmYjQxY2MyLi5iOGE0MGQ1NDRkNmFmY2QwNGI0ZjI4YTJlOGNlZjgzZDcx
OGE4OWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBOZXV0ZXIgV0tGcmFtZUlzRnJhbWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZy
YW1lKCkgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTgwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIw
MjAtMDUtMTAgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAg
ICAgICAgW1dpbkNhaXJvXVtXSzFdIHJlcXVlc3RBbmltYXRpb25GcmFtZSBkb2Vzbid0IHdvcmsg
c2luY2UgcjI2MTExMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDlmOThlMjk3YWZiMGQ4
YzQzYjk0ZTk1MDBmZTY5ZTg4NGI3NTVkMS4uYmVmNDg2OTQwMzk3OTA4ODYxOTJlYjNmYWIwNzI4
ZjI1NDQyYjczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MzkwLDcgKzUzOTAsNiBA
QCB2b2lkIERvY3VtZW50OjpyZXN1bWUoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiAgICAg
cGFnZSgpLT5sb2NrQWxsT3ZlcmxheVNjcm9sbGJhcnNUb0hpZGRlbihmYWxzZSk7CiAKICAgICBB
U1NFUlQobV9mcmFtZSk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hE
aWRCZWNvbWVGcmFtZXNldChpc0ZyYW1lU2V0KCkpOwogCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5h
YmxlZCgpKSB7CiAgICAgICAgIGlmIChtX3RpbWVsaW5lc0NvbnRyb2xsZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAppbmRleCA4M2FjNjgwZDkwNDg3NTcx
NTBiNWI2ZWIzNmI2NGQ3ODhmMGViYzcwLi40NjVhMDI5ZDNiY2IxN2QwNGI5NGI2ZTVhNTliMTYx
NTY2NmViOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5j
cHAKQEAgLTIxNCwyMSArMjE0LDEyIEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6d2lsbFJl
Y2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3Vs
dCBIVE1MRnJhbWVTZXRFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBl
IGluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQogewog
ICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJl
bnRPZkluc2VydGVkVHJlZSk7Ci0gICAgaWYgKGluc2VydGlvblR5cGUuY29ubmVjdGVkVG9Eb2N1
bWVudCkgewotICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCkuZnJh
bWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZEJl
Y29tZUZyYW1lc2V0KGRvY3VtZW50KCkuaXNGcmFtZVNldCgpKTsKLSAgICB9Ci0KICAgICByZXR1
cm4gSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQ6OkRvbmU7CiB9CiAKIHZvaWQgSFRNTEZyYW1l
U2V0RWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwg
Q29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKIHsKICAgICBIVE1MRWxlbWVu
dDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJl
ZSk7Ci0gICAgaWYgKHJlbW92YWxUeXBlLmRpc2Nvbm5lY3RlZEZyb21Eb2N1bWVudCkgewotICAg
ICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0
KGRvY3VtZW50KCkuaXNGcmFtZVNldCgpKTsKLSAgICB9CiB9CiAKIFdpbmRvd1Byb3h5KiBIVE1M
RnJhbWVTZXRFbGVtZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgbmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFiMmUw
MjQ3ZmMxZDI2ZDU4YzA4ZDkxNjJmOTkxNmRjMmY5ZmNjMTQuLjYzZWRlYmQ5MjVjNTUyZTFmNzhi
NDFiNjcxY2E5N2Y4YTRmMjJhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTY1LDggKzE2NSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewog
CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7IH0KIAot
ICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0KLQogICAg
IHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeSgpIGZpbmFsIHsgfQogICAgIHZvaWQgdXBkYXRlR2xv
YmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKSBmaW5hbCB7IH0KICAgICBib29sIHNob3VsZEdvVG9I
aXN0b3J5SXRlbShIaXN0b3J5SXRlbSYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDkyMzFiNDUzNmQ1
ZDNiYmJhZTU4MGI1YzNhYWU2MGQxYWFiZmU0MWEuLjBmYWNjMjdmZjgzOTczNTFiMGFhMjhlZWYz
OTc3YTQ2OTkwYzA2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0yODEsOCArMjgxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
c3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBkdWUgdG8gbmF2
aWdhdGlvbiBvciBET00gbW9kaWZpY2F0aW9uLgotCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hl
UGFnZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxv
YWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lLmNwcAppbmRleCAyYjZmYjA3MzIyNWJjMDdkYTdlMDgyOGFkODU4Y2M1MmI4NWU2
ZTQ5Li44ZTRlMWE1YjdiYzM1YjVhZWE2NGQ4OGFhMDcwNWFmMGNjZDY2MGYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIGJv
b2wgV0tGcmFtZUlzRGlzcGxheWluZ01hcmt1cERvY3VtZW50KFdLRnJhbWVSZWYgZnJhbWVSZWYp
CiAKIGJvb2wgV0tGcmFtZUlzRnJhbWVTZXQoV0tGcmFtZVJlZiBmcmFtZVJlZikKIHsKLSAgICBy
ZXR1cm4gdG9JbXBsKGZyYW1lUmVmKS0+aXNGcmFtZVNldCgpOworICAgIHJldHVybiBmYWxzZTsK
IH0KIAogV0tGcmFtZUhhbmRsZVJlZiBXS0ZyYW1lQ3JlYXRlRnJhbWVIYW5kbGUoV0tGcmFtZVJl
ZiBmcmFtZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4
IGI2OGU2NDZjNzhkYWI3ODc1MzhlZmU2YmZlMzE0M2IzZGE3Y2RlYzQuLjI3ZmNiNDAxZDQ5YTFj
ZGUzZDRiYWM1MjBjOTdiZjBiOGFiMmU3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIFdLRnJhbWVSZWYgV0tQYWdlR2V0Rm9j
dXNlZEZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmKQogCiBXS0ZyYW1lUmVmIFdLUGFnZUdldEZyYW1l
U2V0TGFyZ2VzdEZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmKQogewotICAgIHJldHVybiB0b0FQSSh0
b0ltcGwocGFnZVJlZiktPmZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkpOworICAgIHJldHVybiBudWxs
cHRyOwogfQogCiB1aW50NjRfdCBXS1BhZ2VHZXRSZW5kZXJUcmVlU2l6ZShXS1BhZ2VSZWYgcGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5kZXggYTQ2ZGIw
N2EzNzk4Njg3ODVhNDhmNGYyZDM5YTdiZmU1N2VlNmRiZC4uZGU5ZTlkMWYzMzAwODY5MjdhNzRk
MDRiMTVlNjI2NDIxNWNlZWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5jcHAKQEAgLTE2OCw3ICsxNjgsNiBAQCB2b2lkIFdlYkZyYW1lUHJveHk6OmRpZENvbW1p
dExvYWQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgV2ViQ2VydGlmaWNhdGVJbmZvJgogCiAg
ICAgbV90aXRsZSA9IFN0cmluZygpOwogICAgIG1fTUlNRVR5cGUgPSBjb250ZW50VHlwZTsKLSAg
ICBtX2lzRnJhbWVTZXQgPSBmYWxzZTsKICAgICBtX2NlcnRpZmljYXRlSW5mbyA9ICZjZXJ0aWZp
Y2F0ZUluZm87CiAgICAgbV9jb250YWluc1BsdWdpbkRvY3VtZW50ID0gY29udGFpbnNQbHVnaW5E
b2N1bWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA1
ZWFlMjJiZDgwZGJiYWNiZGVjMzQ3OTJjMDFhNDFhNjU5NWY3YWViLi42YzZmMTMwYjZiNzI0ZjEw
ODJmYzY0NDI4YjkzNWJhOTdlOWMxYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5oCkBAIC03NSw5ICs3NSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNNYWluRnJh
bWUoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0SXNGcmFtZVNldChib29sIHZhbHVlKSB7IG1faXNG
cmFtZVNldCA9IHZhbHVlOyB9Ci0gICAgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3QgeyByZXR1cm4g
bV9pc0ZyYW1lU2V0OyB9Ci0KICAgICBGcmFtZUxvYWRTdGF0ZSYgZnJhbWVMb2FkU3RhdGUoKSB7
IHJldHVybiBtX2ZyYW1lTG9hZFN0YXRlOyB9CiAKICAgICB2b2lkIGxvYWRVUkwoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciA9IFN0cmluZygpKTsKQEAgLTE0MCw3ICsxMzcsNiBA
QCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fTUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fdGl0bGU7
Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250YWluc1Bs
dWdpbkRvY3VtZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBt
X2NlcnRpZmljYXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
PiBtX2FjdGl2ZUxpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggNjgwYzU1Y2Y1MDljM2ZjN2U3NTUwODA3Y2RkNmQ5Yzk2M2U1MzcyMS4uNGI2YmJm
NDI2Yzg5ZTJiYzU5MjljMWNkMzQ3ZDIwZDE4Y2NmZDVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01MDQ1LDE4ICs1MDQ1LDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6Om1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJv
b2wgbWFpbkZyYW0KICAgICBtX21haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJl
ID0gbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmU7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBib29sIHZhbHVlKQotewotICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VD
bGllbnQoKSk7Ci0KLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7Ci0gICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKLQotICAg
IGZyYW1lLT5zZXRJc0ZyYW1lU2V0KHZhbHVlKTsKLSAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1l
KCkpCi0gICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSB2YWx1ZSA/IG1fbWFpbkZyYW1l
IDogMDsKLX0KLQogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdp
blNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVu
ZXJQcm94eSYgbGlzdGVuZXIpCiB7CkBAIC03Mjk1LDE5ICs3MjgzLDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiYgZnJhbWVJRCkKICAgICBtX2ZvY3VzZWRGcmFtZSA9IGZyYW1lOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4mIGZyYW1lSUQpCi17Ci0gICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAgICAgIG1f
ZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlE
KTsKLSAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwotCi0gICAgbV9mcmFtZVNl
dExhcmdlc3RGcmFtZSA9IGZyYW1lOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0Rp
ZEJlY29tZVVucmVzcG9uc2l2ZSgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChQcm9jZXNzLCAicHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZToiKTsKQEAgLTc0OTAsNyAr
NzQ2NSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFzb24g
cmVzZXRTdGF0ZVJlYXNvbikKIHsKICAgICBtX21haW5GcmFtZSA9IG51bGxwdHI7CiAgICAgbV9m
b2N1c2VkRnJhbWUgPSBudWxscHRyOwotICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxs
cHRyOwogICAgIG1fc3VzcGVuZGVkUGFnZUtlcHRUb1ByZXZlbnRGbGFzaGluZyA9IG51bGxwdHI7
CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmE5MGQzNTk5MGJjNDM2NWUwODIyZjhhNjNmMDAwZGY1
NTFhYjQ5NS4uYTQzMGE1MTNjZTFmZWM2OWE0MzZlYTExZGFiYjNlNzY2OGFmMTZjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ0OCw3ICs0NDgsNiBAQCBwdWJs
aWM6CiAKICAgICBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX21h
aW5GcmFtZS5nZXQoKTsgfQogICAgIFdlYkZyYW1lUHJveHkqIGZvY3VzZWRGcmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9Ci0gICAgV2ViRnJhbWVQcm94eSogZnJh
bWVTZXRMYXJnZXN0RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1l
LmdldCgpOyB9CiAKICAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSgpIGNvbnN0IHsg
cmV0dXJuIG1fZHJhd2luZ0FyZWEuZ2V0KCk7IH0KICAgICBEcmF3aW5nQXJlYVByb3h5KiBwcm92
aXNpb25hbERyYXdpbmdBcmVhKCkgY29uc3Q7CkBAIC0xODM0LDcgKzE4MzMsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
bWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCk7Ci0g
ICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Ym9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQ
cm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoKTsKQEAgLTIxMDYs
NyArMjEwNCw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hh
bmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7Ci0gICAgdm9p
ZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiYpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3Rv
bUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMjM2NSw3ICsyMzYyLDYgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8V2ViRnJhbWVQcm94eT4gbV9tYWluRnJhbWU7CiAKICAgICBSZWZQdHI8V2ViRnJh
bWVQcm94eT4gbV9mb2N1c2VkRnJhbWU7Ci0gICAgUmVmUHRyPFdlYkZyYW1lUHJveHk+IG1fZnJh
bWVTZXRMYXJnZXN0RnJhbWU7CiAKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgU3RyaW5n
IG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDczZjkzMjE2YjRhNDFlY2ZiYWI3
YmUyNTQxMjljODVjNzcyOGYxNDEuLjFlYjA1MzRiOTY4Y2I3ZmJhY2VmZjU3ZGFhNTU0MGE2ODNk
ZDNlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTQ1LDcgKzQ1LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBTZXRGb2N1cyhib29sIGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlv
bikKICAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCkKLSAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNldFJlbmRlclRyZWVTaXpl
KHVpbnQ2NF90IHRyZWVTaXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xi
YXJzQXJlVmlzaWJsZSkKICAgICBHZXRUb29sYmFyc0FyZVZpc2libGUoKSAtPiAoYm9vbCB0b29s
YmFyc0FyZVZpc2libGUpIFN5bmNocm9ub3VzCkBAIC0xNDQsOCArMTQzLDYgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKIAogICAgIE1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVH
ZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1
cmUpCiAKLSAgICBGcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIHZhbHVlKQotCiAgICAgIyBIaXN0b3J5IGNsaWVudCBtZXNzYWdlcy4K
ICAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlIHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
ICAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgU3Ry
aW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggODc4ZTJiNDZhZWJjZjAzMzM3ZDUxZTk4YzFk
NWNhMzY2ZGFkYzViNi4uOTY2Nzg3ZjVjZjkwMDVjMjMwNzkxOTUzNzlhZGQyNzcxYjUwMzA4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwOCwzMyArMTA4LDYgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLXN0YXRpYyBkb3VibGUgYXJlYShXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgSW50U2l6
ZSBzaXplID0gZnJhbWUtPnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Nyb2xsYmFycygp
LnNpemUoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihzaXplLmhlaWdodCgpKSAq
IHNpemUud2lkdGgoKTsKLX0KLQotc3RhdGljIFdlYkZyYW1lKiBmaW5kTGFyZ2VzdEZyYW1lSW5G
cmFtZVNldChXZWJQYWdlJiBwYWdlKQotewotICAgIC8vIEFwcHJveGltYXRlIHdoYXQgYSB1c2Vy
IGNvdWxkIGNvbnNpZGVyIGEgZGVmYXVsdCB0YXJnZXQgZnJhbWUgZm9yIGFwcGxpY2F0aW9uIG1l
bnUgb3BlcmF0aW9ucy4KLQotICAgIGF1dG8mIG1haW5GcmFtZSA9IHBhZ2UubWFpbldlYkZyYW1l
KCk7Ci0gICAgaWYgKCFtYWluRnJhbWUuaXNGcmFtZVNldCgpKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIFdlYkZyYW1lKiBsYXJnZXN0U29GYXIgPSBudWxscHRyOwotCi0gICAgUmVm
PEFQSTo6QXJyYXk+IGZyYW1lQ2hpbGRyZW4gPSBtYWluRnJhbWUuY2hpbGRGcmFtZXMoKTsKLSAg
ICBzaXplX3QgY291bnQgPSBmcmFtZUNoaWxkcmVuLT5zaXplKCk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGNoaWxkRnJhbWUgPSBmcmFt
ZUNoaWxkcmVuLT5hdDxXZWJGcmFtZT4oaSk7Ci0gICAgICAgIGlmICghbGFyZ2VzdFNvRmFyIHx8
IGFyZWEoY2hpbGRGcmFtZSkgPiBhcmVhKGxhcmdlc3RTb0ZhcikpCi0gICAgICAgICAgICBsYXJn
ZXN0U29GYXIgPSBjaGlsZEZyYW1lOwotICAgIH0KLQotICAgIHJldHVybiBsYXJnZXN0U29GYXI7
Ci19Ci0KIFdlYkNocm9tZUNsaWVudDo6V2ViQ2hyb21lQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCiAg
ICAgOiBtX3BhZ2UocGFnZSkKIHsKQEAgLTYyNiwxNCArNTk5LDYgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBz
aXplKSBjb24KIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKIAot
ICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmco
KSA9PSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKSB7Ci0gICAgICAgIFdlYkZyYW1lKiBsYXJn
ZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwotICAgICAgICBp
ZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsK
LSAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7
Ci0gICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFsKGxhcmdlc3RG
cmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdCkpOwotICAgICAgICB9Ci0gICAgfQotCiAg
ICAgaWYgKCZmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpICE9ICZmcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggN2VhZTNkM2VlYjBhZWFmODkwMDAzOThmZjU1
YmIwMTkyOTMxM2NlNi4uZDk1ODk3ZWU2Zjc5MGZjZmExNTkxZTlkMWMwNGY5NmRkNTVjYmQ1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDAxLDcgKzQwMSw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKGNvbnN0IFdlYkNvcmU6Ok1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mKSBmaW5hbDsKICNlbmRpZgogCi0gICAg
bXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAg
ICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7
IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxT
Y3JvbGxiYXIgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDYyODU4ZTkwODNiNTUyZmQ1ZWY4NGE1YWFlZmYxMzE0
NjI1MzBkYmYuLmYwYzgwNmUxYWE3MGQwMTY0NDJkMmRiZmY5ODgzOGY4MzAyMDU2YmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTU1MSwxNSArMTU1MSw2IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiAg
ICAgbV9mcmFtZUNhbWVGcm9tQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCB2YWx1ZSkK
LXsKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIGlmICghd2Vi
UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpGcmFtZURpZEJlY29tZUZyYW1lU2V0KG1fZnJhbWUtPmZyYW1lSUQoKSwgdmFs
dWUpKTsKLX0KLQogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdlKCkgY29u
c3QKIHsKICAgICAvLyBXZSBjYW5ub3QgY2FjaGUgZnJhbWVzIHRoYXQgaGF2ZSBjdXN0b20gcmVw
cmVzZW50YXRpb25zIGJlY2F1c2UgdGhleSBhcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggYTBmZGE3Y2JkZTYyMTg4MDk4MjgyZGVhOWY2NzQ3ZDMyYTNkNmE1Ny4uNTQ1MjU5YTE2
NThkZmZkYWJlMmEzMmU5M2EwNzNiNzdmNzhkYjk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTIwOSw4ICsyMDksNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZXN0b3Jl
RnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNv
bWVGcmFtZXNldChib29sKSBmaW5hbDsKLQogICAgIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IGEyNTVhMWNiMDBiNGUwNGY4ODE5YmNlZjY5MWIxZTY3NDdmN2Y5OWYuLjgw
OGY1Yzc1Y2NhZGQ3YzcyMzQ0MjE1NmMyODExMWVmOGRhZDQxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTg2LDggKzE4Niw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJl
c3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERp
ZEJlY29tZUZyYW1lc2V0KGJvb2wpIGZpbmFsOwotCiAgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVU
eXBlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggNmQyOWNh
MGE2YmE2ZDMwNDlhZGRjZmU0ZmIxMzE0MTgxMTdmZWQyOS4uZWMwMmJkZjBhYjA4NWQ4ZWYzMWUw
ZThkM2NlMzg1ZDVkN2VhMjBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTE1
MTEsMTAgKzE1MTEsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJv
bUJhY2tGb3J3YXJkQ2FjaGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKLXsKLX0KLQogUmV0YWluUHRyPFdl
YkZyYW1lUG9saWN5TGlzdGVuZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRVcFBvbGljeUxp
c3RlbmVyKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24sIFdlYkNvcmU6OlBvbGljeUFjdGlvbiBk
ZWZhdWx0UG9saWN5LCBOU1VSTCAqYXBwTGlua1VSTCkKIHsKICAgICAvLyBGSVhNRTogPHJkYXI6
Ly81NjM0MzgxPiBXZSBuZWVkIHRvIHN1cHBvcnQgbXVsdGlwbGUgYWN0aXZlIHBvbGljeSBsaXN0
ZW5lcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZjgzMjcwOTk1MDM1ZjAw
YTFhNmI4NjkyMzc5NmYxNzA0MGRlNjViMC4uMzM4OWQxN2E4YjFmZTg3NWE1MWE1YTQ3M2EzYmYx
Y2U3NGRlYTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtOTcxLDEwICs5
NzEsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKQogewogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEJlY29tZUZyYW1lc2V0KGJvb2wpCi17Ci19Ci0KIFN0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewogICAgIHJldHVybiBtX3dlYkZy
YW1lLT53ZWJWaWV3KCktPnVzZXJBZ2VudEZvcktVUkwodXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IGI4ZTdjN2RlNDkzYTU3M2QwNWFmYzE1YTBlOGU2OTc0OGExMTM3ZjYuLmU0
MjdlMjEyMDQ2MjgwODE0MTI1YTc3NmMzNzgwZjAyOWExMTkzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTczLDggKzE3Myw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVz
dG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpc3BhdGNo
RGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7Ci0KICAgICBib29sIGNhbkNhY2hlUGFn
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVG
cmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9SZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9SZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAKaW5kZXggY2Y3MmM2M2MwNjE4YTIwMjg3
ZjBjNDg0NzE1MzQxYWQ4NDFmMjAzMC4uZTI2MjViMGUxMjE1NWVjOTdkN2ZkMWY4ZTQyNDYzMDcw
YWI0NmViOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVs
b2FkUGFnZUFmdGVyQ3Jhc2guY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcApAQCAtMTQwLDM2ICsxNDAsNiBAQCBURVNUKFdl
YktpdCwgRm9jdXNlZEZyYW1lQWZ0ZXJDcmFzaCkKICAgICBVdGlsOjpydW4oJmNhbGxlZENyYXNo
SGFuZGxlcik7CiB9CiAKLVRFU1QoV2ViS2l0LCBGcmFtZVNldExhcmdlc3RGcmFtZUFmdGVyQ3Jh
c2gpCi17Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhX
S0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7Ci0KLSAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZW50VjAgbG9hZGVyQ2xpZW50OwotICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2Yo
bG9hZGVyQ2xpZW50KSk7Ci0KLSAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKLSAg
ICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaExvYWQ7Ci0gICAg
bG9hZGVyQ2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaCA9IGRpZENyYXNoQ2hlY2tGcmFtZXM7Ci0K
LSAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRl
ckNsaWVudC5iYXNlKTsKLQotICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBiYXNlVVJMID0gYWRv
cHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7Ci0gICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcgPSBVdGlsOjp0b1dLKCI8ZnJhbWVzZXQg
Y29scz0nMjUlLCosMjUlJz48ZnJhbWUgc3JjPSdhYm91dDpibGFuayc+PGZyYW1lIHNyYz0nYWJv
dXQ6YmxhbmsnPjxmcmFtZSBzcmM9J2Fib3V0OmJsYW5rJz48L2ZyYW1lc2V0PiIpOwotCi0gICAg
V0tQYWdlTG9hZEhUTUxTdHJpbmcod2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcuZ2V0KCksIGJh
c2VVUkwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmbG9hZEJlZm9yZUNyYXNoKTsKLQotICAgIEVY
UEVDVF9GQUxTRSghV0tQYWdlR2V0TWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICB3
aGlsZSAoIVdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKHdlYlZpZXcucGFnZSgpKSkKLSAg
ICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoMTApOwotCi0gICAga2lsbChXS1BhZ2VHZXRQcm9jZXNz
SWRlbnRpZmllcih3ZWJWaWV3LnBhZ2UoKSksIDkpOwotCi0gICAgVXRpbDo6cnVuKCZjYWxsZWRD
cmFzaEhhbmRsZXIpOwotfQotCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdJTikKIAogfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399185</attachid>
            <date>2020-05-12 15:10:22 -0700</date>
            <delta_ts>2020-05-12 16:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211808-20200512151019.patch</filename>
            <type>text/plain</type>
            <size>26249</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2YzOGNjNzZhMjI4NmMz
OWY2YTg2MDQxMDEwODY5MTI0ZTY4Nzc3MC4uNjZiNDAwYWU4ZWYyMTk5N2UyMWI3ZmE3MmI3MTVk
MGU3MzE1NmY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTmV1dGVyIFdLRnJh
bWVJc0ZyYW1lU2V0KCkgLyBXS1BhZ2VHZXRGcmFtZVNldExhcmdlc3RGcmFtZSgpIEMgQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4MDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBOZXV0ZXIgV0tGcmFt
ZUlzRnJhbWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBBUEkuIFRo
aXMgaXMgb25seSBTUEkgYW5kIGlzIG9ubHkgdXNlZCBmb3Igc2xpZ2h0bHkKKyAgICAgICAgZGlm
ZmVyZW50IHByaW50aW5nIGJlaGF2aW9yIGluIFNhZmFyaS4gRnJhbWVzZXRzIGFyZSBubyBsb25n
ZXIgc3VwcG9ydGVkIGluIEhUTUw1IGFuZCBhcmUgbm93IHN1cGVyIHJhcmUuIFN1cHBvcnQKKyAg
ICAgICAgZm9yIHRoaXMgQyBBUEkgYWRkcyBxdWl0ZSBhIGJpdCBvZiBjb2RlIGNvbXBsZXhpdHkg
YW5kIGNyYXNoZXMgc3VjaCBhcyA8cmRhcjovL3Byb2JsZW0vNjAzMjIyODI+LCBpdCBqdXN0IGRv
ZXMgbm90CisgICAgICAgIHNlZW0gd29ydGggaXQgYW55bW9yZS4KKworICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lKToKKyAgICAg
ICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZyYW1lU2V0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rvcik6CisgICAgICAgICog
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNS0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmV3b3JrIGNsaXBib2FyZCBoYW5kbGlu
ZyBpbiBwcmVwYXJhdGlvbiBmb3IgR1RLNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxN2M4M2ZjMDNhMTUwYzYyM2E3
ODBkNTU1OWMzZWY3NjYyODhmZDUwLi4zYjQyM2VjY2JhYmFhNDA0YmQ1NzkwMTAyZWUwNzNjZThk
MDRjNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA1LTEyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTmV1dGVyIFdLRnJhbWVJc0Zy
YW1lU2V0KCkgLyBXS1BhZ2VHZXRGcmFtZVNldExhcmdlc3RGcmFtZSgpIEMgQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4MDgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBOZXV0ZXIgV0tGcmFtZUlzRnJh
bWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBBUEkuIFRoaXMgaXMg
b25seSBTUEkgYW5kIGlzIG9ubHkgdXNlZCBmb3Igc2xpZ2h0bHkKKyAgICAgICAgZGlmZmVyZW50
IHByaW50aW5nIGJlaGF2aW9yIGluIFNhZmFyaS4gRnJhbWVzZXRzIGFyZSBubyBsb25nZXIgc3Vw
cG9ydGVkIGluIEhUTUw1IGFuZCBhcmUgbm93IHN1cGVyIHJhcmUuIFN1cHBvcnQKKyAgICAgICAg
Zm9yIHRoaXMgQyBBUEkgYWRkcyBxdWl0ZSBhIGJpdCBvZiBjb2RlIGNvbXBsZXhpdHkgYW5kIGNy
YXNoZXMgc3VjaCBhcyA8cmRhcjovL3Byb2JsZW0vNjAzMjIyODI+LCBpdCBqdXN0IGRvZXMgbm90
CisgICAgICAgIHNlZW0gd29ydGggaXQgYW55bW9yZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0ZyYW1lLmNwcDoKKyAgICAgICAgKFdLRnJhbWVJc0ZyYW1lU2V0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdldEZyYW1lU2V0
TGFyZ2VzdEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJv
eHk6OnNldElzRnJhbWVTZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVBy
b3h5Ojppc0ZyYW1lU2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZVNldExhcmdl
c3RGcmFtZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFu
Z2VkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6ZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjAtMDUtMTIgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0
XSBBZGQgc3VwcG9ydCBmb3IgY2xpcGJvYXJkIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwppbmRleCA1ZGE1MzEwYWMxODM2NmQ0ZDNkNDRkOTllZThhMWExZjdhMjI5NDJhLi44
ZGUwM2JjN2MxMTU1MGNkNDE1NGMyNjM2Y2NmZTY1ZTdiN2UxYzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMTIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBOZXV0ZXIgV0tGcmFtZUlzRnJhbWVT
ZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBBUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTgwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJl
Y29tZUZyYW1lc2V0KTogRGVsZXRlZC4KKwogMjAyMC0wNS0xMSAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB0aGUgbW9jayB2aWRlbyBwcmVzZW50YXRp
b24gbW9kZSBpbiByZWxhdGVkIGxheW91dCB0ZXN0cyBhbmQgZml4IHRlc3QgZmFpbHVyZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBjNjMzMjY0Yzg2YTYxNTIwYTQ3NTVlMGFkMGI0
YzFiMGRmYjQxY2MyLi5iZWFkMzNhM2MwZGNiYTIzMDU2YjU3MWMyZWExZjIyYWM5MDNmYTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMTIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBOZXV0ZXIg
V0tGcmFtZUlzRnJhbWVTZXQoKSAvIFdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKCkgQyBB
UEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTgw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOiBEZWxldGVkLgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjAtMDUtMTAgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNh
aXJvXVtXSzFdIHJlcXVlc3RBbmltYXRpb25GcmFtZSBkb2Vzbid0IHdvcmsgc2luY2UgcjI2MTEx
MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDlmOThlMjk3YWZiMGQ4YzQzYjk0ZTk1MDBm
ZTY5ZTg4NGI3NTVkMS4uYmVmNDg2OTQwMzk3OTA4ODYxOTJlYjNmYWIwNzI4ZjI1NDQyYjczNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MzkwLDcgKzUzOTAsNiBAQCB2b2lkIERvY3Vt
ZW50OjpyZXN1bWUoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiAgICAgcGFnZSgpLT5sb2Nr
QWxsT3ZlcmxheVNjcm9sbGJhcnNUb0hpZGRlbihmYWxzZSk7CiAKICAgICBBU1NFUlQobV9mcmFt
ZSk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEaWRCZWNvbWVGcmFt
ZXNldChpc0ZyYW1lU2V0KCkpOwogCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7CiAg
ICAgICAgIGlmIChtX3RpbWVsaW5lc0NvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmNwcAppbmRleCA4M2FjNjgwZDkwNDg3NTcxNTBiNWI2ZWIzNmI2
NGQ3ODhmMGViYzcwLi40NjVhMDI5ZDNiY2IxN2QwNGI5NGI2ZTVhNTliMTYxNTY2NmViOTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKQEAgLTIxNCwy
MSArMjE0LDEyIEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6d2lsbFJlY2FsY1N0eWxlKFN0
eWxlOjpDaGFuZ2UpCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MRnJhbWVT
ZXRFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5
cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQogewogICAgIEhUTUxFbGVt
ZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVk
VHJlZSk7Ci0gICAgaWYgKGluc2VydGlvblR5cGUuY29ubmVjdGVkVG9Eb2N1bWVudCkgewotICAg
ICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0
KGRvY3VtZW50KCkuaXNGcmFtZVNldCgpKTsKLSAgICB9Ci0KICAgICByZXR1cm4gSW5zZXJ0ZWRJ
bnRvQW5jZXN0b3JSZXN1bHQ6OkRvbmU7CiB9CiAKIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6
cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9k
ZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKIHsKICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZy
b21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7Ci0gICAgaWYg
KHJlbW92YWxUeXBlLmRpc2Nvbm5lY3RlZEZyb21Eb2N1bWVudCkgewotICAgICAgICBpZiAoUmVm
UHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1l
LT5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGRvY3VtZW50KCku
aXNGcmFtZVNldCgpKTsKLSAgICB9CiB9CiAKIFdpbmRvd1Byb3h5KiBIVE1MRnJhbWVTZXRFbGVt
ZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFiMmUwMjQ3ZmMxZDI2ZDU4
YzA4ZDkxNjJmOTkxNmRjMmY5ZmNjMTQuLjYzZWRlYmQ5MjVjNTUyZTFmNzhiNDFiNjcxY2E5N2Y4
YTRmMjJhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMTY1LDggKzE2NSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJh
bWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBk
aWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZGlz
cGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgdXBkYXRl
R2xvYmFsSGlzdG9yeSgpIGZpbmFsIHsgfQogICAgIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeVJl
ZGlyZWN0TGlua3MoKSBmaW5hbCB7IH0KICAgICBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShI
aXN0b3J5SXRlbSYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDkyMzFiNDUzNmQ1ZDNiYmJhZTU4MGI1
YzNhYWU2MGQxYWFiZmU0MWEuLjBmYWNjMjdmZjgzOTczNTFiMGFhMjhlZWYzOTc3YTQ2OTkwYzA2
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yODEs
OCArMjgxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tQmFj
a0ZvcndhcmRDYWNoZSgpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBkdWUgdG8gbmF2aWdhdGlvbiBvciBE
T00gbW9kaWZpY2F0aW9uLgotCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNw
cAppbmRleCAyYjZmYjA3MzIyNWJjMDdkYTdlMDgyOGFkODU4Y2M1MmI4NWU2ZTQ5Li44ZTRlMWE1
YjdiYzM1YjVhZWE2NGQ4OGFhMDcwNWFmMGNjZDY2MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIGJvb2wgV0tGcmFtZUlz
RGlzcGxheWluZ01hcmt1cERvY3VtZW50KFdLRnJhbWVSZWYgZnJhbWVSZWYpCiAKIGJvb2wgV0tG
cmFtZUlzRnJhbWVTZXQoV0tGcmFtZVJlZiBmcmFtZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBs
KGZyYW1lUmVmKS0+aXNGcmFtZVNldCgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogV0tGcmFt
ZUhhbmRsZVJlZiBXS0ZyYW1lQ3JlYXRlRnJhbWVIYW5kbGUoV0tGcmFtZVJlZiBmcmFtZVJlZikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaAppbmRleCAyZDZhZjlhNzVjZWM3
M2ZiY2NkNGNhZWY4Y2Q2Y2E2NzQxYTgxNDNiLi5kNWJmYWU4NTYzMmYxNjNjNzY3NDM1NDZiZjFh
YmY2NDFhZjgzYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oCkBA
IC02Nyw3ICs2Nyw3IEBAIFdLX0VYUE9SVCBib29sIFdLRnJhbWVDYW5TaG93TUlNRVR5cGUoV0tG
cmFtZVJlZiBmcmFtZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUpOwogV0tfRVhQT1JUIGJvb2wgV0tG
cmFtZUlzRGlzcGxheWluZ1N0YW5kYWxvbmVJbWFnZURvY3VtZW50KFdLRnJhbWVSZWYgZnJhbWUp
OwogV0tfRVhQT1JUIGJvb2wgV0tGcmFtZUlzRGlzcGxheWluZ01hcmt1cERvY3VtZW50KFdLRnJh
bWVSZWYgZnJhbWUpOwogCi1XS19FWFBPUlQgYm9vbCBXS0ZyYW1lSXNGcmFtZVNldChXS0ZyYW1l
UmVmIGZyYW1lKTsKK1dLX0VYUE9SVCBib29sIFdLRnJhbWVJc0ZyYW1lU2V0KFdLRnJhbWVSZWYg
ZnJhbWUpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIFdLX0VYUE9SVCBXS0ZyYW1lSGFuZGxlUmVm
IFdLRnJhbWVDcmVhdGVGcmFtZUhhbmRsZShXS0ZyYW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9SVCBX
S0ZyYW1lSW5mb1JlZiBXS0ZyYW1lQ3JlYXRlRnJhbWVJbmZvKFdLRnJhbWVSZWYgZnJhbWUpIFdL
X0NfQVBJX0RFUFJFQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAppbmRleCBiNjhlNjQ2Yzc4ZGFiNzg3NTM4ZWZlNmJmZTMxNDNiM2RhN2NkZWM0Li4yN2ZjYjQw
MWQ0OWExY2RlM2Q0YmFjNTIwYzk3YmYwYjhhYjJlN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCBXS0ZyYW1lUmVmIFdLUGFn
ZUdldEZvY3VzZWRGcmFtZShXS1BhZ2VSZWYgcGFnZVJlZikKIAogV0tGcmFtZVJlZiBXS1BhZ2VH
ZXRGcmFtZVNldExhcmdlc3RGcmFtZShXS1BhZ2VSZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4g
dG9BUEkodG9JbXBsKHBhZ2VSZWYpLT5mcmFtZVNldExhcmdlc3RGcmFtZSgpKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogdWludDY0X3QgV0tQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tQYWdl
UmVmIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGI3YmRm
NTkwNjM1M2EyNDQ4ODJjNDczZjVjOWYzYTZiNjk2Mzk3NWYuLjY3MGI1ZTlmZDRiNDU0YTJiN2Vk
ZmQyMjMyYWFlOTUxYzQ2N2QwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCkBAIC0xMTMsNyArMTEzLDcgQEAgV0tfRVhQT1JUIFdLVVJMUmVmIFdLUGFnZUNvcHlDb21t
aXR0ZWRVUkwoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQgV0tGcmFtZVJlZiBXS1BhZ2VH
ZXRNYWluRnJhbWUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIFdLRnJhbWVSZWYgV0tQYWdl
R2V0Rm9jdXNlZEZyYW1lKFdLUGFnZVJlZiBwYWdlKTsgLy8gVGhlIGZvY3VzZWQgZnJhbWUgbWF5
IGJlIGluYWN0aXZlLgotV0tfRVhQT1JUIFdLRnJhbWVSZWYgV0tQYWdlR2V0RnJhbWVTZXRMYXJn
ZXN0RnJhbWUoV0tQYWdlUmVmIHBhZ2UpOworV0tfRVhQT1JUIFdLRnJhbWVSZWYgV0tQYWdlR2V0
RnJhbWVTZXRMYXJnZXN0RnJhbWUoV0tQYWdlUmVmIHBhZ2UpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7
CiBXS19FWFBPUlQgZG91YmxlIFdLUGFnZUdldEVzdGltYXRlZFByb2dyZXNzKFdLUGFnZVJlZiBw
YWdlKTsKIAogV0tfRVhQT1JUIHVpbnQ2NF90IFdLUGFnZUdldFJlbmRlclRyZWVTaXplKFdLUGFn
ZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5k
ZXggYTQ2ZGIwN2EzNzk4Njg3ODVhNDhmNGYyZDM5YTdiZmU1N2VlNmRiZC4uZGU5ZTlkMWYzMzAw
ODY5MjdhNzRkMDRiMTVlNjI2NDIxNWNlZWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKQEAgLTE2OCw3ICsxNjgsNiBAQCB2b2lkIFdlYkZyYW1lUHJveHk6
OmRpZENvbW1pdExvYWQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgV2ViQ2VydGlmaWNhdGVJ
bmZvJgogCiAgICAgbV90aXRsZSA9IFN0cmluZygpOwogICAgIG1fTUlNRVR5cGUgPSBjb250ZW50
VHlwZTsKLSAgICBtX2lzRnJhbWVTZXQgPSBmYWxzZTsKICAgICBtX2NlcnRpZmljYXRlSW5mbyA9
ICZjZXJ0aWZpY2F0ZUluZm87CiAgICAgbV9jb250YWluc1BsdWdpbkRvY3VtZW50ID0gY29udGFp
bnNQbHVnaW5Eb2N1bWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
aAppbmRleCA1ZWFlMjJiZDgwZGJiYWNiZGVjMzQ3OTJjMDFhNDFhNjU5NWY3YWViLi42YzZmMTMw
YjZiNzI0ZjEwODJmYzY0NDI4YjkzNWJhOTdlOWMxYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5oCkBAIC03NSw5ICs3NSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aXNNYWluRnJhbWUoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0SXNGcmFtZVNldChib29sIHZhbHVl
KSB7IG1faXNGcmFtZVNldCA9IHZhbHVlOyB9Ci0gICAgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9pc0ZyYW1lU2V0OyB9Ci0KICAgICBGcmFtZUxvYWRTdGF0ZSYgZnJhbWVMb2Fk
U3RhdGUoKSB7IHJldHVybiBtX2ZyYW1lTG9hZFN0YXRlOyB9CiAKICAgICB2b2lkIGxvYWRVUkwo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciA9IFN0cmluZygpKTsKQEAgLTE0MCw3
ICsxMzcsNiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fTUlNRVR5cGU7CiAgICAgU3RyaW5n
IG1fdGl0bGU7Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9j
b250YWluc1BsdWdpbkRvY3VtZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNh
dGVJbmZvPiBtX2NlcnRpZmljYXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5PiBtX2FjdGl2ZUxpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggNjgwYzU1Y2Y1MDljM2ZjN2U3NTUwODA3Y2RkNmQ5Yzk2M2U1Mzcy
MS4uNGI2YmJmNDI2Yzg5ZTJiYzU5MjljMWNkMzQ3ZDIwZDE4Y2NmZDVhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01MDQ1LDE4ICs1MDQ1LDYgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6Om1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlk
Q2hhbmdlKGJvb2wgbWFpbkZyYW0KICAgICBtX21haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2Nh
bGVHZXN0dXJlID0gbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmU7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIHZhbHVlKQotewotICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7Ci0KLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7Ci0gICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1l
KTsKLQotICAgIGZyYW1lLT5zZXRJc0ZyYW1lU2V0KHZhbHVlKTsKLSAgICBpZiAoZnJhbWUtPmlz
TWFpbkZyYW1lKCkpCi0gICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSB2YWx1ZSA/IG1f
bWFpbkZyYW1lIDogMDsKLX0KLQogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgV2ViUGFnZVBy
b3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eSYgbGlzdGVuZXIpCiB7CkBAIC03Mjk1LDE5ICs3MjgzLDYgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiYgZnJhbWVJRCkKICAgICBtX2ZvY3VzZWRGcmFtZSA9IGZyYW1lOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4mIGZyYW1lSUQpCi17Ci0gICAgaWYgKCFmcmFtZUlEKSB7Ci0g
ICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1l
KCpmcmFtZUlEKTsKLSAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwotCi0gICAg
bV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IGZyYW1lOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6
cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChQcm9jZXNzLCAicHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZToiKTsKQEAg
LTc0OTAsNyArNzQ2NSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3Rh
dGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKIHsKICAgICBtX21haW5GcmFtZSA9IG51bGxwdHI7
CiAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwotICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJh
bWUgPSBudWxscHRyOwogICAgIG1fc3VzcGVuZGVkUGFnZUtlcHRUb1ByZXZlbnRGbGFzaGluZyA9
IG51bGxwdHI7CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmE5MGQzNTk5MGJjNDM2NWUwODIyZjhh
NjNmMDAwZGY1NTFhYjQ5NS4uYTQzMGE1MTNjZTFmZWM2OWE0MzZlYTExZGFiYjNlNzY2OGFmMTZj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ0OCw3ICs0NDgs
NiBAQCBwdWJsaWM6CiAKICAgICBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQogICAgIFdlYkZyYW1lUHJveHkqIGZvY3VzZWRGcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9Ci0gICAgV2ViRnJhbWVQ
cm94eSogZnJhbWVTZXRMYXJnZXN0RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lU2V0TGFy
Z2VzdEZyYW1lLmdldCgpOyB9CiAKICAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSgp
IGNvbnN0IHsgcmV0dXJuIG1fZHJhd2luZ0FyZWEuZ2V0KCk7IH0KICAgICBEcmF3aW5nQXJlYVBy
b3h5KiBwcm92aXNpb25hbERyYXdpbmdBcmVhKCkgY29uc3Q7CkBAIC0xODM0LDcgKzE4MzMsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkRGV0ZWN0
WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2Uo
Ym9vbCk7Ci0gICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dyZXNzKCk7CiAgICAgdm9pZCBk
aWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoKTsK
QEAgLTIxMDYsNyArMjEwNCw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQgZm9jdXNl
ZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7
Ci0gICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0
YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMjM2NSw3ICsyMzYyLDYgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8V2ViRnJhbWVQcm94eT4gbV9tYWluRnJhbWU7CiAKICAgICBSZWZQ
dHI8V2ViRnJhbWVQcm94eT4gbV9mb2N1c2VkRnJhbWU7Ci0gICAgUmVmUHRyPFdlYkZyYW1lUHJv
eHk+IG1fZnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAg
ICAgU3RyaW5nIG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDczZjkzMjE2YjRh
NDFlY2ZiYWI3YmUyNTQxMjljODVjNzcyOGYxNDEuLjFlYjA1MzRiOTY4Y2I3ZmJhY2VmZjU3ZGFh
NTU0MGE2ODNkZDNlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTQ1LDcgKzQ1LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBTZXRGb2N1cyhib29sIGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90
IGRpcmVjdGlvbikKICAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKLSAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQo
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNldFJlbmRl
clRyZWVTaXplKHVpbnQ2NF90IHRyZWVTaXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlzaWJsZShi
b29sIHRvb2xiYXJzQXJlVmlzaWJsZSkKICAgICBHZXRUb29sYmFyc0FyZVZpc2libGUoKSAtPiAo
Ym9vbCB0b29sYmFyc0FyZVZpc2libGUpIFN5bmNocm9ub3VzCkBAIC0xNDQsOCArMTQzLDYgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgIE1haW5GcmFtZVBsdWdpbkhhbmRsZXNQ
YWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VT
Y2FsZUdlc3R1cmUpCiAKLSAgICBGcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQotCiAgICAgIyBIaXN0b3J5IGNsaWVudCBt
ZXNzYWdlcy4KICAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0
OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKICAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0
cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggODc4ZTJiNDZhZWJjZjAzMzM3
ZDUxZTk4YzFkNWNhMzY2ZGFkYzViNi4uOTY2Nzg3ZjVjZjkwMDVjMjMwNzkxOTUzNzlhZGQyNzcx
YjUwMzA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwOCwzMyArMTA4LDYgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBkb3VibGUgYXJlYShXZWJGcmFtZSogZnJhbWUpCi17Ci0g
ICAgSW50U2l6ZSBzaXplID0gZnJhbWUtPnZpc2libGVDb250ZW50Qm91bmRzRXhjbHVkaW5nU2Ny
b2xsYmFycygpLnNpemUoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihzaXplLmhl
aWdodCgpKSAqIHNpemUud2lkdGgoKTsKLX0KLQotc3RhdGljIFdlYkZyYW1lKiBmaW5kTGFyZ2Vz
dEZyYW1lSW5GcmFtZVNldChXZWJQYWdlJiBwYWdlKQotewotICAgIC8vIEFwcHJveGltYXRlIHdo
YXQgYSB1c2VyIGNvdWxkIGNvbnNpZGVyIGEgZGVmYXVsdCB0YXJnZXQgZnJhbWUgZm9yIGFwcGxp
Y2F0aW9uIG1lbnUgb3BlcmF0aW9ucy4KLQotICAgIGF1dG8mIG1haW5GcmFtZSA9IHBhZ2UubWFp
bldlYkZyYW1lKCk7Ci0gICAgaWYgKCFtYWluRnJhbWUuaXNGcmFtZVNldCgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQotICAgIFdlYkZyYW1lKiBsYXJnZXN0U29GYXIgPSBudWxscHRyOwot
Ci0gICAgUmVmPEFQSTo6QXJyYXk+IGZyYW1lQ2hpbGRyZW4gPSBtYWluRnJhbWUuY2hpbGRGcmFt
ZXMoKTsKLSAgICBzaXplX3QgY291bnQgPSBmcmFtZUNoaWxkcmVuLT5zaXplKCk7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGNoaWxkRnJh
bWUgPSBmcmFtZUNoaWxkcmVuLT5hdDxXZWJGcmFtZT4oaSk7Ci0gICAgICAgIGlmICghbGFyZ2Vz
dFNvRmFyIHx8IGFyZWEoY2hpbGRGcmFtZSkgPiBhcmVhKGxhcmdlc3RTb0ZhcikpCi0gICAgICAg
ICAgICBsYXJnZXN0U29GYXIgPSBjaGlsZEZyYW1lOwotICAgIH0KLQotICAgIHJldHVybiBsYXJn
ZXN0U29GYXI7Ci19Ci0KIFdlYkNocm9tZUNsaWVudDo6V2ViQ2hyb21lQ2xpZW50KFdlYlBhZ2Um
IHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKIHsKQEAgLTYyNiwxNCArNTk5LDYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplKSBjb24KIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLnZp
ZXcoKTsKIAotICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5lZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKSB7Ci0gICAgICAgIFdlYkZy
YW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwot
ICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUu
Z2V0KCkpIHsKLSAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJn
ZXN0RnJhbWU7Ci0gICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFs
KGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdCkpOwotICAgICAgICB9Ci0g
ICAgfQotCiAgICAgaWYgKCZmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpICE9ICZmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggN2VhZTNkM2VlYjBhZWFmODkw
MDAzOThmZjU1YmIwMTkyOTMxM2NlNi4uZDk1ODk3ZWU2Zjc5MGZjZmExNTkxZTlkMWMwNGY5NmRk
NTVjYmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDAxLDcgKzQwMSw2IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKGNvbnN0IFdl
YkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mKSBmaW5hbDsKICNlbmRp
ZgogCi0gICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0
RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNj
cm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
VmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDYyODU4ZTkwODNiNTUyZmQ1ZWY4NGE1
YWFlZmYxMzE0NjI1MzBkYmYuLmYwYzgwNmUxYWE3MGQwMTY0NDJkMmRiZmY5ODgzOGY4MzAyMDU2
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTU1MSwxNSArMTU1MSw2
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRD
YWNoZSgpCiAgICAgbV9mcmFtZUNhbWVGcm9tQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9v
bCB2YWx1ZSkKLXsKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAg
IGlmICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZURpZEJlY29tZUZyYW1lU2V0KG1fZnJhbWUtPmZyYW1l
SUQoKSwgdmFsdWUpKTsKLX0KLQogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQ
YWdlKCkgY29uc3QKIHsKICAgICAvLyBXZSBjYW5ub3QgY2FjaGUgZnJhbWVzIHRoYXQgaGF2ZSBj
dXN0b20gcmVwcmVzZW50YXRpb25zIGJlY2F1c2UgdGhleSBhcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggYTBmZGE3Y2JkZTYyMTg4MDk4MjgyZGVhOWY2NzQ3ZDMyYTNkNmE1Ny4u
NTQ1MjU5YTE2NThkZmZkYWJlMmEzMmU5M2EwNzNiNzdmNzhkYjk3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTIwOSw4ICsyMDksNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
aWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0
Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsKLQogICAgIGJvb2wgY2FuQ2FjaGVQYWdl
KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGEyNTVhMWNiMDBiNGUwNGY4ODE5YmNlZjY5MWIxZTY3NDdm
N2Y5OWYuLjgwOGY1Yzc1Y2NhZGQ3YzcyMzQ0MjE1NmMyODExMWVmOGRhZDQxYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTg2LDggKzE4Niw2IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCi0gICAgdm9pZCBk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpIGZpbmFsOwotCiAgICAgYm9vbCBjYW5IYW5k
bGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RGOjpTdHJp
bmcmIE1JTUVUeXBlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5k
ZXggNmQyOWNhMGE2YmE2ZDMwNDlhZGRjZmU0ZmIxMzE0MTgxMTdmZWQyOS4uZWMwMmJkZjBhYjA4
NWQ4ZWYzMWUwZThkM2NlMzg1ZDVkN2VhMjBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KQEAgLTE1MTEsMTAgKzE1MTEsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRS
ZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKLXsKLX0KLQogUmV0
YWluUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRV
cFBvbGljeUxpc3RlbmVyKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24sIFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiBkZWZhdWx0UG9saWN5LCBOU1VSTCAqYXBwTGlua1VSTCkKIHsKICAgICAvLyBGSVhN
RTogPHJkYXI6Ly81NjM0MzgxPiBXZSBuZWVkIHRvIHN1cHBvcnQgbXVsdGlwbGUgYWN0aXZlIHBv
bGljeSBsaXN0ZW5lcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZjgzMjcw
OTk1MDM1ZjAwYTFhNmI4NjkyMzc5NmYxNzA0MGRlNjViMC4uMzM4OWQxN2E4YjFmZTg3NWE1MWE1
YTQ3M2EzYmYxY2U3NGRlYTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAt
OTcxLDEwICs5NzEsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJv
bUJhY2tGb3J3YXJkQ2FjaGUoKQogewogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCi17Ci19Ci0KIFN0cmluZyBXZWJGcmFtZUxv
YWRlckNsaWVudDo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewogICAgIHJldHVy
biBtX3dlYkZyYW1lLT53ZWJWaWV3KCktPnVzZXJBZ2VudEZvcktVUkwodXJsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGI4ZTdjN2RlNDkzYTU3M2QwNWFmYzE1YTBlOGU2OTc0OGEx
MTM3ZjYuLmU0MjdlMjEyMDQ2MjgwODE0MTI1YTc3NmMzNzgwZjAyOWExMTkzYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTczLDggKzE3Myw2IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7Ci0KICAgICBib29sIGNh
bkNhY2hlUGFnZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1l
PiBjcmVhdGVGcmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1l
T3duZXJFbGVtZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9SZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9SZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAKaW5kZXggY2Y3MmM2M2Mw
NjE4YTIwMjg3ZjBjNDg0NzE1MzQxYWQ4NDFmMjAzMC4uZTI2MjViMGUxMjE1NWVjOTdkN2ZkMWY4
ZTQyNDYzMDcwYWI0NmViOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUmVsb2FkUGFnZUFmdGVyQ3Jhc2guY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcApAQCAtMTQwLDM2ICsxNDAsNiBA
QCBURVNUKFdlYktpdCwgRm9jdXNlZEZyYW1lQWZ0ZXJDcmFzaCkKICAgICBVdGlsOjpydW4oJmNh
bGxlZENyYXNoSGFuZGxlcik7CiB9CiAKLVRFU1QoV2ViS2l0LCBGcmFtZVNldExhcmdlc3RGcmFt
ZUFmdGVyQ3Jhc2gpCi17Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7Ci0KLSAgICBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZW50VjAgbG9hZGVyQ2xpZW50OwotICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAw
LCBzaXplb2YobG9hZGVyQ2xpZW50KSk7Ci0KLSAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9u
ID0gMDsKLSAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaExv
YWQ7Ci0gICAgbG9hZGVyQ2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaCA9IGRpZENyYXNoQ2hlY2tG
cmFtZXM7Ci0KLSAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2Uo
KSwgJmxvYWRlckNsaWVudC5iYXNlKTsKLQotICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBiYXNl
VVJMID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7
Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcgPSBVdGlsOjp0b1dLKCI8
ZnJhbWVzZXQgY29scz0nMjUlLCosMjUlJz48ZnJhbWUgc3JjPSdhYm91dDpibGFuayc+PGZyYW1l
IHNyYz0nYWJvdXQ6YmxhbmsnPjxmcmFtZSBzcmM9J2Fib3V0OmJsYW5rJz48L2ZyYW1lc2V0PiIp
OwotCi0gICAgV0tQYWdlTG9hZEhUTUxTdHJpbmcod2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcu
Z2V0KCksIGJhc2VVUkwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmbG9hZEJlZm9yZUNyYXNoKTsK
LQotICAgIEVYUEVDVF9GQUxTRSghV0tQYWdlR2V0TWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpKSk7
Ci0KLSAgICB3aGlsZSAoIVdLUGFnZUdldEZyYW1lU2V0TGFyZ2VzdEZyYW1lKHdlYlZpZXcucGFn
ZSgpKSkKLSAgICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoMTApOwotCi0gICAga2lsbChXS1BhZ2VH
ZXRQcm9jZXNzSWRlbnRpZmllcih3ZWJWaWV3LnBhZ2UoKSksIDkpOwotCi0gICAgVXRpbDo6cnVu
KCZjYWxsZWRDcmFzaEhhbmRsZXIpOwotfQotCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdJTikKIAog
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>