<?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>202119</bug_id>
          
          <creation_ts>2019-09-23 15:02:53 -0700</creation_ts>
          <short_desc>Coalesce or remove PLATFORM(MAC) || PLATFORM(IOS_FAMILY)</short_desc>
          <delta_ts>2019-09-30 12:11:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit 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=201851</see_also>
          <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="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573426</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-23 15:02:53 -0700</bug_when>
    <thetext>After refactoring and other code evolution, some platform checks have ended up looking like PLATFORM(MAC) || PLATFORM(IOS_FAMILY) (or vice-versa). These can be converted into the equivalent PLATFORM(COCOA). Where the instance occurs in a Cocoa-only file, the check can be removed altogether (along with any &quot;#else&quot; branches).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573427</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-23 15:03:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/55638792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573475</commentid>
    <comment_count>2</comment_count>
      <attachid>379405</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-23 16:42:42 -0700</bug_when>
    <thetext>Created attachment 379405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573478</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-23 16:43:37 -0700</bug_when>
    <thetext>To anyone reviewing this, the changes in Tools/DumpRenderTree/AccessibilityUIElement.cpp were a little twisty, so please notice that they weren&apos;t as straightforward as most of the rest of the changes in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573708</commentid>
    <comment_count>4</comment_count>
      <attachid>379405</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 11:03:37 -0700</bug_when>
    <thetext>Comment on attachment 379405
Patch

Clearing flags on attachment: 379405

Committed r250309: &lt;https://trac.webkit.org/changeset/250309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573709</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 11:03:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574442</commentid>
    <comment_count>6</comment_count>
      <attachid>379405</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-09-26 07:49:39 -0700</bug_when>
    <thetext>Comment on attachment 379405
Patch

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

DIdn’t get a chance to look at this before you landed it, but spotted a couple small things.

&gt; Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm:61
&gt;  static NSString *subLocality(CNPostalAddress *address)
&gt;  {
&gt; -#if PLATFORM(IOS_FAMILY) || PLATFORM(MAC)
&gt;      return address.subLocality;
&gt; -#else
&gt; -    UNUSED_PARAM(address);
&gt; -    return nil;
&gt; -#endif
&gt;  }
&gt;  
&gt;  static void setSubLocality(CNMutablePostalAddress *address, NSString *subLocality)
&gt;  {
&gt; -#if PLATFORM(IOS_FAMILY) || PLATFORM(MAC)
&gt;      address.subLocality = subLocality;
&gt; -#else
&gt; -    UNUSED_PARAM(address);
&gt; -    UNUSED_PARAM(subLocality);
&gt; -#endif
&gt;  }
&gt;  
&gt;  static NSString *subAdministrativeArea(CNPostalAddress *address)
&gt;  {
&gt; -#if PLATFORM(IOS_FAMILY) || PLATFORM(MAC)
&gt;      return address.subAdministrativeArea;
&gt; -#else
&gt; -    UNUSED_PARAM(address);
&gt; -    return nil;
&gt; -#endif
&gt;  }
&gt;  
&gt;  static void setSubAdministrativeArea(CNMutablePostalAddress *address, NSString *subAdministrativeArea)
&gt;  {
&gt; -#if PLATFORM(IOS_FAMILY) || PLATFORM(MAC)
&gt;      address.subAdministrativeArea = subAdministrativeArea;
&gt; -#else
&gt; -    UNUSED_PARAM(address);
&gt; -    UNUSED_PARAM(subAdministrativeArea);
&gt; -#endif
&gt;  }

Here we should go one step further and remove these functions and inline the code at the call site.

&gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:221
&gt; -#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; +#if PLATFORM(COCOA)

Should have removed this instead of changing it. These SPI headers are only for Cocoa platforms.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NEFilterSourceSPI.h:72
&gt; -#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; +#if PLATFORM(COCOA)

Ditto.

&gt; Source/WebCore/PAL/pal/spi/mac/AVFoundationSPI.h:57
&gt; -#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; +#if PLATFORM(COCOA)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574490</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-26 09:50:41 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 379405 [details]
&gt; Patch
&gt; &gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:221
&gt; &gt; -#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; &gt; +#if PLATFORM(COCOA)
&gt; 
&gt; Should have removed this instead of changing it. These SPI headers are only
&gt; for Cocoa platforms.
&gt; 
&gt; &gt; Source/WebCore/PAL/pal/spi/cocoa/NEFilterSourceSPI.h:72
&gt; &gt; -#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; &gt; +#if PLATFORM(COCOA)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/PAL/pal/spi/mac/AVFoundationSPI.h:57
&gt; &gt; -#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; &gt; +#if PLATFORM(COCOA)
&gt; 
&gt; Ditto.

I&apos;ll double check. Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h, at least, has PLATFORM(WIN) conditionals. The other two look like good changes, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574497</commentid>
    <comment_count>8</comment_count>
      <attachid>379405</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-09-26 09:57:35 -0700</bug_when>
    <thetext>Comment on attachment 379405
Patch

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

&gt;&gt;&gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:221
&gt;&gt;&gt; +#if PLATFORM(COCOA)
&gt;&gt; 
&gt;&gt; Should have removed this instead of changing it. These SPI headers are only for Cocoa platforms.
&gt; 
&gt; I&apos;ll double check. Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h, at least, has PLATFORM(WIN) conditionals. The other two look like good changes, though.

Good point about PLATFORM(WIN). But this part of CFNetworkSPI.h is inside &quot;#if defined(__OBJC__)&quot; so we don’t also need #if PLATFORM(COCOA).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574509</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-26 10:11:50 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 379405 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=379405&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:221
&gt; &gt;&gt;&gt; +#if PLATFORM(COCOA)
&gt; &gt;&gt; 
&gt; &gt;&gt; Should have removed this instead of changing it. These SPI headers are only for Cocoa platforms.
&gt; &gt; 
&gt; &gt; I&apos;ll double check. Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h, at least, has PLATFORM(WIN) conditionals. The other two look like good changes, though.
&gt; 
&gt; Good point about PLATFORM(WIN). But this part of CFNetworkSPI.h is inside
&gt; &quot;#if defined(__OBJC__)&quot; so we don’t also need #if PLATFORM(COCOA).

OK. Then I guess the PLATFORM(COCOA) is not needed in the following in the same file?

#if defined(__OBJC__) &amp;&amp; PLATFORM(COCOA)
#import &lt;CFNetwork/CFNSURLConnection.h&gt;
#endif

Checking the history, I can see how we ended up with this check -- it&apos;s &quot;devolved&quot; from version-specific platform checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575290</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-30 12:11:02 -0700</bug_when>
    <thetext>Committed r250522: &lt;https://trac.webkit.org/changeset/250522&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379405</attachid>
            <date>2019-09-23 16:42:42 -0700</date>
            <delta_ts>2019-09-24 11:03:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202119-20190923164242.patch</filename>
            <type>text/plain</type>
            <size>24849</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVkODA3MzRjMTQxMmMxOWVkYTQzNTZm
ZDQxNDE4NWNlNGQxMmY1NGIuLmY2YWU0MTcxNWFhNTkzZGU5NmI0ZTFlOTZhZWE1N2M1MzllZjJk
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDktMjMgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIENvYWxlc2NlIG9yIHJlbW92ZSBQTEFURk9STShNQUMp
IHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDIxMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NjM4Nzky
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVy
IHJlZmFjdG9yaW5nIGFuZCBvdGhlciBjb2RlIGV2b2x1dGlvbiwgc29tZSBwbGF0Zm9ybSBjaGVj
a3MgaGF2ZQorICAgICAgICBlbmRlZCB1cCBsb29raW5nIGxpa2UgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShJT1NfRkFNSUxZKSAob3IKKyAgICAgICAgdmljZS12ZXJzYSkuIFRoZXNlIGNhbiBi
ZSBjb252ZXJ0ZWQgaW50byB0aGUgZXF1aXZhbGVudAorICAgICAgICBQTEFURk9STShDT0NPQSku
IFdoZXJlIHRoZSBpbnN0YW5jZSBvY2N1cnMgaW4gYSBDb2NvYS1vbmx5IGZpbGUsIHRoZQorICAg
ICAgICBjaGVjayBjYW4gYmUgcmVtb3ZlZCBhbHRvZ2V0aGVyIChhbG9uZyB3aXRoIGFueSAiI2Vs
c2UiIGJyYW5jaGVzKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6CisKIDIwMTktMDktMjEgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBjbGFuZy10aWR5OiBGaXggdW5uZWNlc3Nh
cnkgY29weS9yZWYgY2h1cm4gb2YgZm9yIGxvb3AgdmFyaWFibGVzIGluIFdURi9KYXZhU2NyaXB0
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGQzNDE5NDA2NmVkOGY0NzYyODVkZmMzZGMwZjU4NTNjMTgxODhj
OGMuLjA3YzYxZWEwMWY1ODc3NzczYzdlNzJhYmZlYTM2YTY4ZTc2NzdmOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MiBAQAorMjAxOS0wOS0yMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ29hbGVzY2Ugb3IgcmVtb3ZlIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjExOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2Mzg3OTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgcmVmYWN0
b3JpbmcgYW5kIG90aGVyIGNvZGUgZXZvbHV0aW9uLCBzb21lIHBsYXRmb3JtIGNoZWNrcyBoYXZl
CisgICAgICAgIGVuZGVkIHVwIGxvb2tpbmcgbGlrZSBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPU19GQU1JTFkpIChvcgorICAgICAgICB2aWNlLXZlcnNhKS4gVGhlc2UgY2FuIGJlIGNvbnZl
cnRlZCBpbnRvIHRoZSBlcXVpdmFsZW50CisgICAgICAgIFBMQVRGT1JNKENPQ09BKS4gV2hlcmUg
dGhlIGluc3RhbmNlIG9jY3VycyBpbiBhIENvY29hLW9ubHkgZmlsZSwgdGhlCisgICAgICAgIGNo
ZWNrIGNhbiBiZSByZW1vdmVkIGFsdG9nZXRoZXIgKGFsb25nIHdpdGggYW55ICIjZWxzZSIgYnJh
bmNoZXMpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBuZXcgb3IgY2hhbmdlZCBmdW5j
dGlvbmFsaXR5LgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29u
dGFjdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6c3ViTG9jYWxpdHkpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0U3ViTG9jYWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6c3ViQWRtaW5pc3Ry
YXRpdmVBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFN1YkFkbWluaXN0cmF0aXZlQXJlYSk6
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppc0FwcGxlTGVnYWN5Q3NzVmFsdWVLZXl3b3JkKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFTZXNzaW9uVGl0bGUgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0
OjpwbGF0Zm9ybSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVCYWNrZ3JvdW5kUmVjdXJzaXZlbHkpOgorICAgICAgICAq
IHBsYXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5UDND
b2xvclNwYWNlUmVmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZSBjb25zdCk6
CisKIDIwMTktMDktMjMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNTAxNzM6IHR2T1MgYnVpbGQgYnJva2Vu
IGR1ZSB0byB1bnVzZWQgZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA4NjU4MmRjYWQ3
OTIyY2NhOTdlOTlhYjQ0MDEzYTZkYmI0MGU4ZWNkLi5hZThkOWYwMmE4MjY2ODZjZmY0ZDk0NTA0
ZDhkMjVhNDY4YWI1OTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
OS0wOS0yMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29h
bGVzY2Ugb3IgcmVtb3ZlIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjExOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTU2Mzg3OTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgcmVmYWN0b3JpbmcgYW5kIG90aGVyIGNvZGUg
ZXZvbHV0aW9uLCBzb21lIHBsYXRmb3JtIGNoZWNrcyBoYXZlCisgICAgICAgIGVuZGVkIHVwIGxv
b2tpbmcgbGlrZSBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIChvcgorICAg
ICAgICB2aWNlLXZlcnNhKS4gVGhlc2UgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIHRoZSBlcXVpdmFs
ZW50CisgICAgICAgIFBMQVRGT1JNKENPQ09BKS4gV2hlcmUgdGhlIGluc3RhbmNlIG9jY3VycyBp
biBhIENvY29hLW9ubHkgZmlsZSwgdGhlCisgICAgICAgIGNoZWNrIGNhbiBiZSByZW1vdmVkIGFs
dG9nZXRoZXIgKGFsb25nIHdpdGggYW55ICIjZWxzZSIgYnJhbmNoZXMpLgorCisgICAgICAgICog
cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05FRmls
dGVyU291cmNlU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg6
CisKIDIwMTktMDktMjAgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBzb21lIHN1cHBvcnQgZm9yIDwgaU9TIDEzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3NjEzZGI4
NGQ2MTI3YzA4MDFkOTE4ZWQ1OThiMjE4ZDQxODQxYmIuLjI0NjhmYjhiOTE2MWMxZTZjNjc1Yjk3
MzgxYTcyY2Y5ZTIzZTVjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDktMjMg
IEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIENvYWxlc2NlIG9y
IHJlbW92ZSBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxMTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU1NjM4NzkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFmdGVyIHJlZmFjdG9yaW5nIGFuZCBvdGhlciBjb2RlIGV2b2x1dGlv
biwgc29tZSBwbGF0Zm9ybSBjaGVja3MgaGF2ZQorICAgICAgICBlbmRlZCB1cCBsb29raW5nIGxp
a2UgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKSAob3IKKyAgICAgICAgdmlj
ZS12ZXJzYSkuIFRoZXNlIGNhbiBiZSBjb252ZXJ0ZWQgaW50byB0aGUgZXF1aXZhbGVudAorICAg
ICAgICBQTEFURk9STShDT0NPQSkuIFdoZXJlIHRoZSBpbnN0YW5jZSBvY2N1cnMgaW4gYSBDb2Nv
YS1vbmx5IGZpbGUsIHRoZQorICAgICAgICBjaGVjayBjYW4gYmUgcmVtb3ZlZCBhbHRvZ2V0aGVy
IChhbG9uZyB3aXRoIGFueSAiI2Vsc2UiIGJyYW5jaGVzKS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29y
a1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkRmluaXNoQ29sbGVjdGluZ01ldHJp
Y3M6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAxOS0wOS0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcHJvdmUgdGhlIFVuY2F1Z2h0IEV4Y2VwdGlv
biBWaWV3IGZpbGUgYSBidWcgbGluawpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggNTVkYTIzNmY4Y2MwZjZjZjM4
YmZmZDRlODljMjAxOGQxMGZjYjVmZS4uOGY1NTk2ZWExYmM1ODVmM2EyOGRkZWM2NjNiMzEzNDc5
MjYyZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTkzLDcgKzExOTMsNyBAQAogI2VuZGlmCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKE1BQykKKyNpZiBQTEFU
Rk9STShDT0NPQSkKICNkZWZpbmUgVVNFX0NPUkVNRURJQSAxCiAjZGVmaW5lIFVTRV9WSURFT1RP
T0xCT1ggMQogI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9WSURFT19PVVRQVVQgMQpAQCAtMTIw
MSwxNiArMTIwMSwxNiBAQAogI2RlZmluZSBIQVZFX01FRElBX1BMQVlFUiAxCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShD
T0NPQSkKICNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQIDEK
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oTUFDKQorI2lm
IFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBV
VF9TVVBQT1JUIDEKICNkZWZpbmUgSEFWRV9NRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSyAx
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKE1BQykKKyNp
ZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTE9BREVSX0RFTEVH
QVRFIDEKICNlbmRpZgogCkBAIC0xMjY1LDcgKzEyNjUsNyBAQAogI2RlZmluZSBVU0VfSU5TRVJU
SU9OX1VORE9fR1JPVVBJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIEhBVkVfQVZBU1NF
VFJFQURFUiAxCiAjZW5kaWYKIApAQCAtMTMyMyw3ICsxMzIzLDcgQEAKICNkZWZpbmUgVVNFX01F
RElBVE9PTEJPWCAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUgVVNFX09TX0xPRyAxCiAjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNkZWZpbmUgVVNFX09TX1NUQVRFIDEKQEAgLTEzNTgs
NyArMTM1OCw3IEBACiAjZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBVU0VfTUVESUFS
RU1PVEUgMQogI2VuZGlmCiAKQEAgLTE0MjYsNyArMTQyNiw3IEBACiAjZGVmaW5lIEhBVkVfTlNI
VFRQQ09PS0lFU1RPUkFHRV9fSU5JVFdJVEhJREVOVElGSUVSX1dJVEhfSU5BQ0NVUkFURV9OVUxM
QUJJTElUWSAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktfV0lUSF9D
T05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFIDEKIC8qIFRoZSBvdmVycmlkZSBpc24n
dCBuZWVkZWQgb24gaU9TIGZhbWlseSwgYXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbm90
IHNuaWZmLiAqLwogLyogRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGVuYWJsZWQgb24g
MTAuMTMuMiBhbmQgbmV3ZXIsIG5vdCBqdXN0IDEwLjE0IGFuZCBuZXdlci4gKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCA2NDgxZWQyZDAzNDNhMjQ5ZTFlMjcw
MWIzMzU2OWU4MTRlMzEyZjI5Li5iOWE0ZGUxNTgyYTM3NGY3MjQ3MTQ2M2RkYTU5ZmE5ODg4YTQx
MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L2ljdS9UZXh0QnJlYWtJdGVyYXRvcklDVS5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHd0Zi90
ZXh0L2NmL1RleHRCcmVha0l0ZXJhdG9yQ0YuaD4KICNlbHNlCiAjaW5jbHVkZSA8d3RmL3RleHQv
TnVsbFRleHRCcmVha0l0ZXJhdG9yLmg+CkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBX
VEYgewogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBM
QVRGT1JNKENPQ09BKQogdHlwZWRlZiBUZXh0QnJlYWtJdGVyYXRvckNGIFRleHRCcmVha0l0ZXJh
dG9yUGxhdGZvcm07CiAjZWxzZQogdHlwZWRlZiBOdWxsVGV4dEJyZWFrSXRlcmF0b3IgVGV4dEJy
ZWFrSXRlcmF0b3JQbGF0Zm9ybTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQppbmRleCBmNzEzY2Yy
Mjc5ZTQyNzc5MzVjN2RiZjcwYTRmYzk5Y2ZkMjY4YTQ4Li4zMDYyMmU3ZTZkMWNiYmM3ZDBhMDBl
ZjQ0NmQ0ODU0YWNjMTcxODM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCkBAIC00Miw0MiAr
NDIsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgTlNTdHJpbmcgKnN1YkxvY2Fs
aXR5KENOUG9zdGFsQWRkcmVzcyAqYWRkcmVzcykKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCBQTEFURk9STShNQUMpCiAgICAgcmV0dXJuIGFkZHJlc3Muc3ViTG9jYWxpdHk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShhZGRyZXNzKTsKLSAgICByZXR1cm4gbmlsOwotI2VuZGlmCiB9
CiAKIHN0YXRpYyB2b2lkIHNldFN1YkxvY2FsaXR5KENOTXV0YWJsZVBvc3RhbEFkZHJlc3MgKmFk
ZHJlc3MsIE5TU3RyaW5nICpzdWJMb2NhbGl0eSkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCBQTEFURk9STShNQUMpCiAgICAgYWRkcmVzcy5zdWJMb2NhbGl0eSA9IHN1YkxvY2FsaXR5
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oYWRkcmVzcyk7Ci0gICAgVU5VU0VEX1BBUkFNKHN1
YkxvY2FsaXR5KTsKLSNlbmRpZgogfQogCiBzdGF0aWMgTlNTdHJpbmcgKnN1YkFkbWluaXN0cmF0
aXZlQXJlYShDTlBvc3RhbEFkZHJlc3MgKmFkZHJlc3MpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgUExBVEZPUk0oTUFDKQogICAgIHJldHVybiBhZGRyZXNzLnN1YkFkbWluaXN0cmF0
aXZlQXJlYTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGFkZHJlc3MpOwotICAgIHJldHVybiBu
aWw7Ci0jZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgc2V0U3ViQWRtaW5pc3RyYXRpdmVBcmVhKENO
TXV0YWJsZVBvc3RhbEFkZHJlc3MgKmFkZHJlc3MsIE5TU3RyaW5nICpzdWJBZG1pbmlzdHJhdGl2
ZUFyZWEpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oTUFDKQogICAg
IGFkZHJlc3Muc3ViQWRtaW5pc3RyYXRpdmVBcmVhID0gc3ViQWRtaW5pc3RyYXRpdmVBcmVhOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oYWRkcmVzcyk7Ci0gICAgVU5VU0VEX1BBUkFNKHN1YkFk
bWluaXN0cmF0aXZlQXJlYSk7Ci0jZW5kaWYKIH0KIAogc3RhdGljIFJldGFpblB0cjxQS0NvbnRh
Y3Q+IGNvbnZlcnQodW5zaWduZWQgdmVyc2lvbiwgY29uc3QgQXBwbGVQYXlQYXltZW50Q29udGFj
dCYgY29udGFjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NG
TmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
LmgKaW5kZXggNTUzZDg3NjhlOGEzMjMxYTA5YTYxODEyNTc0NDA2ZTc0NzZkNDlkMC4uZTlkY2Y1
MDYzNzVmNDBiYzVkZGFiOWZjOGU5NTg3M2JkNmVjMDUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTIxOCw3ICsyMTgsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBOU1VSTFNlc3Npb25Db21wYW5pb25Qcm94eVByZWZlcmVuY2Up
IHsKICNlbmRpZgogQGVuZAogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFN
SUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrVHJh
bnNhY3Rpb25NZXRyaWNzICgpCiBAcHJvcGVydHkgKGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyog
X3JlbW90ZUFkZHJlc3NBbmRQb3J0OwogQHByb3BlcnR5IChjb3B5LCByZWFkb25seSkgTlNVVUlE
KiBfY29ubmVjdGlvbklkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaAppbmRleCA5Yjk1OWU0ZWJlNTI0ZTA2Nzgz
MmE5OWQ3MjMzNGEyN2Y3MTFhYTI5Li5mN2IwMTllMTI5NmU1OGNkNGJkZGI5NWE3MDNlZDExY2Q5
ODkyOWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9ORUZp
bHRlclNvdXJjZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05F
RmlsdGVyU291cmNlU1BJLmgKQEAgLTY5LDcgKzY5LDcgQEAgdHlwZWRlZiB2b2lkICheTkVGaWx0
ZXJTb3VyY2VEZWNpc2lvbkhhbmRsZXIpKE5FRmlsdGVyU291cmNlU3RhdHVzLCBOU0RpY3Rpb25h
cnkKIC0gKHZvaWQpcmVjZWl2ZWREYXRhOihOU0RhdGEgKilkYXRhIGRlY2lzaW9uSGFuZGxlcjoo
TkVGaWx0ZXJTb3VyY2VEZWNpc2lvbkhhbmRsZXIpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClm
aW5pc2hlZExvYWRpbmdXaXRoRGVjaXNpb25IYW5kbGVyOihORUZpbHRlclNvdXJjZURlY2lzaW9u
SGFuZGxlcilkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKXJlbWVkaWF0ZVdpdGhEZWNpc2lvbkhh
bmRsZXI6KE5FRmlsdGVyU291cmNlRGVjaXNpb25IYW5kbGVyKWRlY2lzaW9uSGFuZGxlcjsKLSNp
ZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09D
T0EpCiBAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBJZGVudGlmaWVyOwogQHBy
b3BlcnR5IChhc3NpZ24pIHBpZF90IHNvdXJjZUFwcFBpZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oCmluZGV4IDEzNjBiNjhl
MTAzOGEyMGQyMDVhZWJhMTg1YjNkZTNiMTM1M2U2MTIuLjFhZjNlNjE0YjAwNWI1YmFhNDcyYmNj
Njc5ZTVjZWQ2MDljYzQ1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9BVkZvdW5kYXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9t
YWMvQVZGb3VuZGF0aW9uU1BJLmgKQEAgLTU0LDE0ICs1NCwxNCBAQAogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVyTGF5
ZXIuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQ
TEFURk9STShDT0NPQSkKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAaW50ZXJmYWNlIEFWUGxh
eWVySXRlbSAoKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1RpbWVJbnRlcnZh
bCBzZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lIE5TX0FWQUlMQUJMRSgxMF8xMywg
MTFfMCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVGltZUludGVydmFsIGxp
dmVVcGRhdGVJbnRlcnZhbDsKIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VORAotI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpIHx8IFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKaW5kZXggZDMyZjZiMDhhNmE1MjQzN2MxOTgyZDRhYTY5ZDQyNzM2MWYw
YjIzNS4uZjNlYzdhY2JmYzUwMDZkZGUzNzVjZGRmMTg3YTZlZTdmZTQ3MzI3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTE1NSwx
NCArMTU1LDE0IEBAIHN0YXRpYyBib29sIGlzQXBwbGVMZWdhY3lDc3NWYWx1ZUtleXdvcmQoY29u
c3QgY2hhciogdmFsdWVLZXl3b3JkLCB1bnNpZ25lZCBsZW5nCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIgYXBwbGVTeXN0ZW1QcmVmaXhbXSA9ICItYXBwbGUtc3lzdGVtIjsKICAgICBzdGF0aWMgY29u
c3QgY2hhciBhcHBsZVBheVByZWZpeFtdID0gIi1hcHBsZS1wYXkiOwogCi0jaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBhcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3RpdmUgPSBnZXRW
YWx1ZU5hbWUoQ1NTVmFsdWVBcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3RpdmUpOwogI2Vu
ZGlmCiAKICAgICByZXR1cm4gaGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVBy
ZWZpeCkKICAgICAmJiAhaGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVN5c3Rl
bVByZWZpeCkKICAgICAmJiAhaGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVBh
eVByZWZpeCkKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgJiYgIVdURjo6ZXF1YWwocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KHZhbHVlS2V5d29yZCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihh
cHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3RpdmUpLCBsZW5ndGgpCiAjZW5kaWYKICAgICA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjMWI5MTcwMmJk
MGVhMGU0ODYzNzFlYWZiYjg4ZTdmZjNlNmJmMWJlLi42YzExOTVhYjAwY2YzMDQ3YmZjMjcwMDEy
YzAxOTNlYTI1MmVlZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTc2MzcsNyArNzYzNyw3IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNl
c3Npb25UaXRsZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0aXRsZTsKIAogICAgIHRpdGxlID0g
bV9jdXJyZW50U3JjLmhvc3QoKS50b1N0cmluZygpOwotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIXRpdGxlLmlz
RW1wdHkoKSkKICAgICAgICAgdGl0bGUgPSBkZWNvZGVIb3N0TmFtZSh0aXRsZSk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAKaW5kZXggMWQ0MTAzZDQ2ZWQzZmQxNTkzYzljODlhYmE4ZThlOTdjZjc5MzdjNC4uYTBmZDc2
NTIxOTgwNjAzNTljNjQ3OTQ1YzczODBhN2U0MGI0ZjgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTI5NSw3ICsyOTUs
NyBAQCB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3Rpb25MZXZlbCgpCiAK
IFN0cmluZyBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBsYXRmb3JtKCkKIHsKLSNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
cmV0dXJuICJtYWMiX3M7CiAjZWxpZiBPUyhXSU5ET1dTKQogICAgIHJldHVybiAid2luZG93cyJf
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBlYWY4OWUzMjgzZDVmYjc1Yjk4ZDc2
ODA5ZDQ3YmM1MTgwY2E3Zjg2Li5mZWE4ODBkMzhkZDJiMDhiN2M0NzQ4YjY5MzI4NWUzMTEyMGUx
YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yOTc3LDcgKzI5NzcsNyBAQCB2
b2lkIEZyYW1lVmlldzo6c2V0QmFzZUJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgYmFja2dy
b3VuZENvbG9yKQogdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShj
b25zdCBPcHRpb25hbDxDb2xvcj4mIGJhY2tncm91bmRDb2xvcikKIHsKICNpZiBIQVZFKE9TX0RB
UktfTU9ERV9TVVBQT1JUKQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBzdGF0aWMgY29uc3QgYXV0byBjc3NWYWx1ZUNv
bnRyb2xCYWNrZ3JvdW5kID0gQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRyb2xCYWNrZ3JvdW5kOwog
I2Vsc2UKICAgICBzdGF0aWMgY29uc3QgYXV0byBjc3NWYWx1ZUNvbnRyb2xCYWNrZ3JvdW5kID0g
Q1NTVmFsdWVXaW5kb3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKaW5kZXggMWMzNmQ1MzA0
YjJlOTQ1YjM4NmFhMDllNWQ0YzM1OGQ5NWFlZDc1OS4uMmI0NjM1MTc4ZDlmMTM2NmRiZWEzNTM3
NWIyOTI4ZDU3YjQwNGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGlt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcApAQCAtMzcsNyAr
MzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oTUFDKQorI2lmIFBM
QVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IDcxZTkyYjdiNWUxY2EwOWU5YzVk
ZDYzYjcxYzI1OWY4NzVhYTRmNmIuLmI1OWExYjFiMTdhNTJkN2NlNGRiOTg1MTk3Njk3NmZmMTI0
MGNmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC03MCwxMCArNzAsOCBAQCB2
b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjppbml0aWFsaXplKGNvbnN0IFVSTCog
dXJsKQogICAgIG1fcXVldWUgPSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgi
V2ViS2l0IE5ldHdvcmtFeHRlbnNpb24gRmlsdGVyaW5nIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFM
KSk7CiAgICAgQVNTRVJUX1VOVVNFRCh1cmwsICF1cmwpOwogICAgIG1fbmVGaWx0ZXJTb3VyY2Ug
PSBhZG9wdE5TKFthbGxvY05FRmlsdGVyU291cmNlSW5zdGFuY2UoKSBpbml0V2l0aERlY2lzaW9u
UXVldWU6bV9xdWV1ZS5nZXQoKV0pOwotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBbbV9uZUZpbHRlclNvdXJjZSBzZXRTb3VyY2VBcHBJZGVudGlmaWVyOmFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpXTsKICAgICBbbV9uZUZpbHRlclNvdXJjZSBzZXRT
b3VyY2VBcHBQaWQ6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCldOwotI2VuZGlmCiB9CiAKIHZv
aWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggMWEzZWE2NjI5OTBhMmVhZGJiOTg1ZGFhMDBkMTdk
MjU0MTFmNTdiZi4uZjA2ZmU1MGNkMjk1MGEzMWIyOGY1ODJiYTRhNmZjOGMzOTkzN2MwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIENHQ29sb3JTcGFjZVJlZiBkaXNw
bGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQ
M0NvbG9yU3BhY2U7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwg
UExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBkaXNwbGF5UDNDb2xv
clNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZURpc3BsYXlQ
Myk7CiAjZWxzZQogICAgICAgICBkaXNwbGF5UDNDb2xvclNwYWNlID0gc1JHQkNvbG9yU3BhY2VS
ZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmlu
ZGV4IDJhMGU1Yjc2ZTRkNmJhYjcwZTkwYjJmM2QyOGViNDNjMDdmNDI1MTMuLjQyYmM4ZTE3ZTA2
MjE4MWQ3MGUwNGY3YWMyYzkxYmNhMzgzMWQ5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9m
ZnNldCwgR0MzRHNpCiAgICAgOjpnbEJ1ZmZlclN1YkRhdGEodGFyZ2V0LCBvZmZzZXQsIHNpemUs
IGRhdGEpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKSB8
fCBQTEFURk9STShXUEUpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdQRSkKIHZv
aWQqIEdyYXBoaWNzQ29udGV4dDNEOjptYXBCdWZmZXJSYW5nZShHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6ZWlwdHIgbGVuZ3RoLCBHQzNEYml0ZmllbGQgYWNjZXNz
KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q0ZOZXQuY3BwCmluZGV4IGY5NDkyNDRlMTYzMjEzZmM3NDUyYWVhNDIxOTA3N2I0MmY5MjZiZDgu
LjllMTQxODFjZWE3Zjk3NjQxYTU0YzFjNWJkMzk5MGFmMTFmMTMwNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENG
TmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAKICNpbmNsdWRlICJXZWJD
b3JlVGhyZWFkSW50ZXJuYWwuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
fHwgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogZXh0ZXJuICJDIiBjb25zdCBD
RlN0cmluZ1JlZiBrQ0ZTdHJlYW1Qcm9wZXJ0eVNvdXJjZUFwcGxpY2F0aW9uOwogZXh0ZXJuICJD
IiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3RyZWFtU29ja2V0U2V0Tm9EZWxheTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCBiZTEzNWQ4ODFiZWVhZTRmZDg1ZTEzNzdmMWE0ZTM2NzFiZDM5NjZiLi5kNzFlMjhm
MGVhZjY4YzQ3NWNmZjgyM2I2MzZlMzQ1ODQzNTkxMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjk3Miw3ICsyOTcy
LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JT
Y3JvbGxhYmxlRnJhbWUoUmVxdWlyZXNDb21wb3MKICAgICBpZiAoaXNNYWluRnJhbWVDb21wb3Np
dG9yKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIW1fcmVuZGVy
Vmlldy5zZXR0aW5ncygpLmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDFjNjUwN2Q5YTRjN2Y4
YjdhZjhmZWQwMDY1Njc2N2U4NDYxY2Q1NGYuLmIwNjllZTM2MDU5ODQwYmI3Y2IzMzE5NDZlY2Q3
MmU4NGI0Nzc0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTY3NywxMCArNjc3LDggQEAgLSAo
dm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vzc2lv
blRhc2sgKil0YXNrIGRpZEZpbmkKICAgICAgICAgaWYgKG5ldHdvcmtEYXRhVGFzay0+c2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpIHsKICAgICAgICAgICAgIG5ldHdvcmtM
b2FkTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eSh0YXNrLnByaW9yaXR5
KTsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAg
ICAgIG5ldHdvcmtMb2FkTWV0cmljcy5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKG0uX3JlbW90ZUFk
ZHJlc3NBbmRQb3J0KTsKICAgICAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5jb25uZWN0aW9u
SWRlbnRpZmllciA9IFN0cmluZyhbbS5fY29ubmVjdGlvbklkZW50aWZpZXIgVVVJRFN0cmluZ10p
OwotI2VuZGlmCiAKICNpZiBIQVZFKENGTkVUV09SS19ORUdPVElBVEVEX1NTTF9QUk9UT0NPTF9D
SVBIRVIpCiAgICAgICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3MudGxzUHJvdG9jb2wgPSBzdHJp
bmdGb3JTU0xQcm90b2NvbChtLl9uZWdvdGlhdGVkVExTUHJvdG9jb2wpOwpAQCAtNjkzLDcgKzY5
MSw2IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihO
U1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRGaW5pCiAgICAgICAgICAgICB9XTsKICAgICAgICAg
ICAgIG5ldHdvcmtMb2FkTWV0cmljcy5yZXF1ZXN0SGVhZGVycyA9IFdURk1vdmUocmVxdWVzdEhl
YWRlcnMpOwogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
ICAgICAgICAgdWludDY0X3QgcmVxdWVzdEhlYWRlckJ5dGVzU2VudCA9IDA7CiAgICAgICAgICAg
ICB1aW50NjRfdCByZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSAwOwogICAgICAgICAgICAg
dWludDY0X3QgcmVzcG9uc2VCb2R5Qnl0ZXNSZWNlaXZlZCA9IDA7CkBAIC03MTEsNyArNzA4LDYg
QEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJM
U2Vzc2lvblRhc2sgKil0YXNrIGRpZEZpbmkKICAgICAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmlj
cy5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2
ZWQ7CiAgICAgICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VCb2R5Qnl0ZXNSZWNl
aXZlZCA9IHJlc3BvbnNlQm9keUJ5dGVzUmVjZWl2ZWQ7CiAgICAgICAgICAgICBuZXR3b3JrTG9h
ZE1ldHJpY3MucmVzcG9uc2VCb2R5RGVjb2RlZFNpemUgPSByZXNwb25zZUJvZHlEZWNvZGVkU2l6
ZTsKLSNlbmRpZgogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGQ5
MTZkM2NmNGFkZDBkMDU2ODM5YzE1NmRkMTE1YzBmMzNkNWEwMjIuLjIwZTE4MDc4ZTJhMGE1ZmMw
NmQ3ZWE1MjFmMmFkM2JlNzNmOWVhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIzOSw3ICsy
MzksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgVmlkZW9UcmlnZ2VyIHwKICAgICAgICAgICAg
IFBsdWdpblRyaWdnZXJ8CiAgICAgICAgICAgICBDYW52YXNUcmlnZ2VyIHwKLSNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ICAgICAgICBTY3JvbGxhYmxlTm9uTWFpbkZyYW1lVHJpZ2dlciB8CiAjZW5kaWYKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGRhOTExYjkyYzVmYWQ2NzhmNDFlZmI1NGJkNDZjZGQ1NGUzMjBjNGQuLjQ4
ZjcyNjdjODIyNzIxYTcyNTRiZWUwZjRmNWUyZjczOWM4ZjM5OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0w
OS0yMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29hbGVz
Y2Ugb3IgcmVtb3ZlIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjExOQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTU2Mzg3OTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgcmVmYWN0b3JpbmcgYW5kIG90aGVyIGNvZGUgZXZv
bHV0aW9uLCBzb21lIHBsYXRmb3JtIGNoZWNrcyBoYXZlCisgICAgICAgIGVuZGVkIHVwIGxvb2tp
bmcgbGlrZSBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIChvcgorICAgICAg
ICB2aWNlLXZlcnNhKS4gVGhlc2UgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIHRoZSBlcXVpdmFsZW50
CisgICAgICAgIFBMQVRGT1JNKENPQ09BKS4gV2hlcmUgdGhlIGluc3RhbmNlIG9jY3VycyBpbiBh
IENvY29hLW9ubHkgZmlsZSwgdGhlCisgICAgICAgIGNoZWNrIGNhbiBiZSByZW1vdmVkIGFsdG9n
ZXRoZXIgKGFsb25nIHdpdGggYW55ICIjZWxzZSIgYnJhbmNoZXMpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNldFZhbHVlKToKKwogMjAxOS0wOS0yMCAgQWFrYXNoIEphaW4gIDxhYWth
c2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0VXU10gSlNDIHF1ZXVlcyBzaG91bGQgcmUt
YnVpbGQgVG9UIGFuZCBjb21wYXJlIHJlc3VsdHMgb24gYnVpbGQgZmFpbHVyZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmgKaW5kZXggYTM0ZGI4YzBl
MjcxYzVjNGY2ZjNkNWZkYjI2MmQ1ZWRhNTk3MjA5Ny4uOTZlOTk3YWFlMjhkMTI2Nzk0YTliZGZj
OWFmZTNlNDliYmE2ZDUxYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VGV4dE1hcmtlci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU09iamVjdFJlZi5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBTVVBQT1JUU19BWF9URVhUTUFS
S0VSUyAxCiAjZWxzZQogI2RlZmluZSBTVVBQT1JUU19BWF9URVhUTUFSS0VSUyAwCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGIzNGI0
MDE0Mjc4NzVhNTNhNmU2ZGRkNDYxNDg1ZDkzMTcyMzZiOWUuLjJmZGNjMDBkMjFmY2ZiYzI1ZGVi
MjEwZGZlY2QzNDc2NTdmOGRmYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0xNjExLDcgKzE2MTEsNyBAQCBzdGF0aWMgSlNWYWx1
ZVJlZiBtYXRoUHJlc2NyaXB0c0Rlc2NyaXB0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZQogLy8gSW1wbGVtZW50YXRpb24KIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBv
biB2YXJpb3VzIHBsYXRmb3Jtcy4KLSNpZiAhUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2lmICFQTEFURk9STShNQUMpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JMaW5lKGludCBsaW5lKSB7IHJldHVybiAwOyB9
CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VG
b3JQb3NpdGlvbihpbnQsIGludCkgeyByZXR1cm4gMDsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKSBjb25zdCB7
IH0KQEAgLTE2MjIsMTMgKzE2MjIsMTAgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXIKIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmli
dXRlVmFsdWUoSlNTdHJpbmdSZWYpIGNvbnN0IHsgcmV0dXJuIHsgbnVsbHB0ciB9OyB9CiAjZW5k
aWYKIAotI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorI2lmICFQ
TEFURk9STShDT0NPQSkKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzcGVha0FzKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0VmFsdWUoSlNTdHJp
bmdSZWYpIHsgfQotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYs
IFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYpIGNvbnN0IHsgfQogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>