<?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>135896</bug_id>
          
          <creation_ts>2014-08-13 13:02:31 -0700</creation_ts>
          <short_desc>Move DiskCacheMonitor to WebCore so that WebKit1 clients can use it as well</short_desc>
          <delta_ts>2014-08-20 14:08:01 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>135897</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>psolanki</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1028870</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-13 13:02:31 -0700</bug_when>
    <thetext>The DiskCacheMonitor code in WebKit2 doesn&apos;t have to be WebKit2 specific. Moving it to WebCore means WebKit1 clients can take advantage of this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028952</commentid>
    <comment_count>1</comment_count>
      <attachid>236564</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-13 16:46:13 -0700</bug_when>
    <thetext>Created attachment 236564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028953</commentid>
    <comment_count>2</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-13 16:46:44 -0700</bug_when>
    <thetext>Patch won&apos;t apply without the patch in bug 135897.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029032</commentid>
    <comment_count>3</comment_count>
      <attachid>236564</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-08-13 22:05:11 -0700</bug_when>
    <thetext>Comment on attachment 236564
Patch

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

&gt; Source/WebCore/loader/DiskCacheMonitor.h:33
&gt; +typedef const struct _CFCachedURLResponse* CFCachedURLResponseRef;

This file doesn&apos;t seem Apple specific on the face of it, so having this CFNetwork specific type here seems wrong.

&gt; Source/WebCore/loader/SubresourceLoader.h:82
&gt; +#if PLATFORM(COCOA) &amp;&amp; !USE(CFNETWORK)
&gt; +    virtual NSCachedURLResponse* willCacheResponse(ResourceHandle*, NSCachedURLResponse*) override;
&gt; +#endif
&gt; +#if PLATFORM(COCOA) &amp;&amp; USE(CFNETWORK)
&gt; +    virtual CFCachedURLResponseRef willCacheResponse(ResourceHandle*, CFCachedURLResponseRef) override;
&gt; +#endif

I realize you are just moving this, but do we have a plan to remove these platform specific types with some abstraction at some point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029037</commentid>
    <comment_count>4</comment_count>
      <attachid>236564</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-13 22:40:22 -0700</bug_when>
    <thetext>Comment on attachment 236564
Patch

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

&gt;&gt; Source/WebCore/loader/DiskCacheMonitor.h:33
&gt;&gt; +typedef const struct _CFCachedURLResponse* CFCachedURLResponseRef;
&gt; 
&gt; This file doesn&apos;t seem Apple specific on the face of it, so having this CFNetwork specific type here seems wrong.

Ok. I can move it into loader/cocoa directory.

&gt;&gt; Source/WebCore/loader/SubresourceLoader.h:82
&gt;&gt; +#endif
&gt; 
&gt; I realize you are just moving this, but do we have a plan to remove these platform specific types with some abstraction at some point?

So add a CachedResourceResponse wrapper class and pass that to willCacheResponse? I didn&apos;t have any plans but could do it next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029089</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-08-14 08:32:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 236564 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236564&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/loader/SubresourceLoader.h:82
&gt; &gt;&gt; +#endif
&gt; &gt; 
&gt; &gt; I realize you are just moving this, but do we have a plan to remove these platform specific types with some abstraction at some point?
&gt; 
&gt; So add a CachedResourceResponse wrapper class and pass that to willCacheResponse? I didn&apos;t have any plans but could do it next.

I&apos;m not sure, we should discuss it further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029420</commentid>
    <comment_count>6</comment_count>
      <attachid>236666</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-15 12:07:02 -0700</bug_when>
    <thetext>Created attachment 236666
Patch v2

Note that this patch depends on the one in bug 135897 so it won&apos;t apply cleanly for bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029647</commentid>
    <comment_count>7</comment_count>
      <attachid>236722</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-16 13:40:22 -0700</bug_when>
    <thetext>Created attachment 236722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029669</commentid>
    <comment_count>8</comment_count>
      <attachid>236731</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-17 11:42:20 -0700</bug_when>
    <thetext>Created attachment 236731
Patch with build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029827</commentid>
    <comment_count>9</comment_count>
      <attachid>236774</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-18 12:13:04 -0700</bug_when>
    <thetext>Created attachment 236774
Patch with more build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029896</commentid>
    <comment_count>10</comment_count>
      <attachid>236774</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-08-18 14:59:23 -0700</bug_when>
    <thetext>Comment on attachment 236774
Patch with more build fixes

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

r=me

&gt; Source/WebCore/ChangeLog:17
&gt; +            CFNetwork callback block, it calls a virtual function that is overriden by

Typo, overridden.

&gt; Source/WebKit2/NetworkProcess/mac/NetworkDiskCacheMonitor.h:43
&gt; +class NetworkDiskCacheMonitor : public WebCore::DiskCacheMonitor, IPC::MessageSender {

This class should be marked &quot;final&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029899</commentid>
    <comment_count>11</comment_count>
      <attachid>236774</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-18 15:04:27 -0700</bug_when>
    <thetext>Comment on attachment 236774
Patch with more build fixes

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

&gt; Source/WebCore/loader/SubresourceLoader.h:78
&gt; +    virtual NSCachedURLResponse* willCacheResponse(ResourceHandle*, NSCachedURLResponse*) override;

Formatting not right here for NSCachedURLResponse *.

&gt; Source/WebCore/loader/cocoa/DiskCacheMonitor.h:33
&gt; +typedef const struct _CFCachedURLResponse* CFCachedURLResponseRef;

Is this a CF-only header? I’m really confused that the header doesn’t have the Cocoa suffix in it, if it’s truly a platform-specific header.

&gt; Source/WebCore/loader/cocoa/DiskCacheMonitor.h:61
&gt; +void DiskCacheMonitor::monitorFileBackingStoreCreation(const ResourceRequest&amp;, SessionID, CFCachedURLResponseRef) { }
&gt; +PassRefPtr&lt;SharedBuffer&gt; DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse(CFCachedURLResponseRef) { return nullptr; }

Those should be marked inline if they are going to be in a header file. Otherwise we’ll get linker errors if we use this header in more than one place.

I also don’t think they should be clumped up all in one line like this.

&gt; Source/WebCore/loader/cocoa/DiskCacheMonitor.h:64
&gt; +#endif
&gt; +} // namespace WebKit

Should have a blank line here.

&gt; Source/WebKit2/NetworkProcess/mac/NetworkDiskCacheMonitor.h:43
&gt; +class NetworkDiskCacheMonitor : public WebCore::DiskCacheMonitor, IPC::MessageSender {

This makes derivation from MessageSender private instead of public. If it can be private, that’s good, but it looks like you did this by accident; we should explicitly state either private or public. I prefer private, though.

&gt; Source/WebKit2/NetworkProcess/mac/NetworkDiskCacheMonitor.h:46
&gt; +    ~NetworkDiskCacheMonitor() { }

This is not needed, and if we did want to explicitly declare the destructor I would suggest marking it virtual explicitly. I suggest just removing this line entirely.

&gt; Source/WebKit2/NetworkProcess/mac/NetworkDiskCacheMonitor.mm:53
&gt; +    new NetworkDiskCacheMonitor(cachedResponse, loader); // Balanced by adoptPtr in the blocks setup in the DiskCacheMonitor constructor, one of which is guaranteed to run.

Should be &quot;set up&quot; rather than &quot;setup&quot;.

This is a bad situation; code to implement this unconventional storage management is now spread across two classes, with the new call in the derived class and the adoptPtr in the base class. It’s really easy to get that wrong. Can we find a more straightforward idiom for this? I think we should consider moving the logic from the DiskCacheMonitor constructor into a separate function that takes a std::unique_ptr to get rid of this strangeness.

&gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm:31
&gt; +#import &quot;NetworkConnectionToWebProcess.h&quot;

Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029918</commentid>
    <comment_count>12</comment_count>
      <attachid>236774</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-18 17:32:23 -0700</bug_when>
    <thetext>Comment on attachment 236774
Patch with more build fixes

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

&gt;&gt; Source/WebCore/loader/cocoa/DiskCacheMonitor.h:33
&gt;&gt; +typedef const struct _CFCachedURLResponse* CFCachedURLResponseRef;
&gt; 
&gt; Is this a CF-only header? I’m really confused that the header doesn’t have the Cocoa suffix in it, if it’s truly a platform-specific header.

Yes, this is CF only. I&apos;ll rename it to DiskCacheMonitorCocoa.h since it&apos;s in the cocoa directory anyway.

&gt;&gt; Source/WebKit2/NetworkProcess/mac/NetworkDiskCacheMonitor.mm:53
&gt;&gt; +    new NetworkDiskCacheMonitor(cachedResponse, loader); // Balanced by adoptPtr in the blocks setup in the DiskCacheMonitor constructor, one of which is guaranteed to run.
&gt; 
&gt; Should be &quot;set up&quot; rather than &quot;setup&quot;.
&gt; 
&gt; This is a bad situation; code to implement this unconventional storage management is now spread across two classes, with the new call in the derived class and the adoptPtr in the base class. It’s really easy to get that wrong. Can we find a more straightforward idiom for this? I think we should consider moving the logic from the DiskCacheMonitor constructor into a separate function that takes a std::unique_ptr to get rid of this strangeness.

Agreed. The memory management now spread across two classes is bad. I&apos;ll try to fix this.

&gt;&gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm:31
&gt;&gt; +#import &quot;NetworkConnectionToWebProcess.h&quot;
&gt; 
&gt; Why is this needed?

I was getting compile errors because I had an inline destructor for NetworkDiskCacheMonitor which wanted to clear out the connection. I removed the dtor and don&apos;t seem to need this include anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030330</commentid>
    <comment_count>13</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-20 11:21:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 236774 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236774&amp;action=review
&gt; 
&gt; &gt; This is a bad situation; code to implement this unconventional storage management is now spread across two classes, with the new call in the derived class and the adoptPtr in the base class. It’s really easy to get that wrong. Can we find a more straightforward idiom for this? I think we should consider moving the logic from the DiskCacheMonitor constructor into a separate function that takes a std::unique_ptr to get rid of this strangeness.
&gt; 
&gt; Agreed. The memory management now spread across two classes is bad. I&apos;ll try to fix this.

I&apos;ll do this separately from this patch. Filed bug 136112.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030392</commentid>
    <comment_count>14</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-08-20 14:08:01 -0700</bug_when>
    <thetext>Committed r172811: &lt;http://trac.webkit.org/changeset/172811&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236564</attachid>
            <date>2014-08-13 16:46:13 -0700</date>
            <delta_ts>2014-08-15 12:07:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135896-20140813164602.patch</filename>
            <type>text/plain</type>
            <size>33354</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE4MTNlZGQzNmFiOWU3
OTQ5Nzc4MzBhYzIyNGViYWNjNDdlNjg2Ni4uNTliMWYxYjJlMGJkZWU1OTliM2VkMjAyYTg1ODFh
Yjk5NTlmMGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA4LTEzICBQcmF0
aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIERpc2tDYWNo
ZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0IFdlYktpdDEgY2xpZW50cyBjYW4gdXNlIGl0IGFz
IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NTg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yIGNvZGUgYW5kIG1vdmUgaXQgdG8gV2ViQ29yZS4KKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvRGlza0NhY2hlTW9uaXRvci5oOiBBZGRlZC4KKyAgICAgICAgICAgIE1v
c3RseSB0aGUgc2FtZSBhcyB0aGUgZXhpc3RpbmcgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IgY2xh
c3MgaW4gV2ViS2l0Mi4gSW4gdGhlCisgICAgICAgICAgICBDRk5ldHdvcmsgY2FsbGJhY2sgYmxv
Y2ssIGl0IGNhbGxzIGEgdmlydHVhbCBmdW5jdGlvbiB0aGF0IGlzIG92ZXJyaWRlbiBieQorICAg
ICAgICAgICAgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IgdG8gc2VuZCBhIG1lc3NhZ2UgdG8gV2Vi
Q29udGVudCBwcm9jZXNzLgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6fkRp
c2tDYWNoZU1vbml0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6cmVz
b3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnNlc3Np
b25JRCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICAgICBN
YWtlIHdpbGxDYWNoZVJlc3BvbnNlIHByb3RlY3RlZCBzbyB0aGF0IFN1YnJlc291cmNlTG9hZGVy
IGNhbiBvdmVycmlkZSBpdC4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoK
KyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZl
ckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKToKKyAgICAgICAgICAgIENvcGllZCBmcm9tIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENh
Y2hlZFJlc3BvbnNlLgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6bW9uaXRv
ckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVN
b25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1v
bml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZCk6CisgICAgICAgICAgICBSZXBsYWNlIHRo
ZSBjYWNoZWQgcmVzb3VyY2UgZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBiYWNr
ZWQgYnVmZmVyLiBUaGlzIGlzCisgICAgICAgICAgICB1c2VkIGluIFdlYktpdDEgKGFuZCBhbHNv
IGZvciBhbnkgcmVzb3VyY2UgbG9hZHMgdGhhdCBoYXBwZW4gZnJvbSB0aGUgV2ViQ29udGVudAor
ICAgICAgICAgICAgcHJvY2VzcykuCisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJlc291cmNl
TG9hZGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2Fk
ZXI6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgICAgIE92ZXJyaWRlIHdpbGxDYWNoZXJl
c3BvbnNlIGZyb20gUmVzb3VyY2VMb2FkZXIgdG8gbGlzdGVuIGZvciBkaXNrIGNhY2hlIG5vdGlm
aWNhdGlvbnMuCisKIDIwMTQtMDgtMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzIzOTMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMDliYzk4MzViMDMyMmQ2M2E5ZDNlNzMxMmFiZjFhMTRiYjQ1OGJiMy4uNmY1ODM5
YzNhOTkxMDUzNWIwNWQzODJjMzZhZWI4NTFhMGExMzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDIyIEBACiAyMDE0LTA4LTEzICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4K
IAorICAgICAgICBNb3ZlIERpc2tDYWNoZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0IFdlYktp
dDEgY2xpZW50cyBjYW4gdXNlIGl0IGFzIHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2Fj
aGVNb25pdG9yLmg6CisgICAgICAgICAgICBJbmhlcml0IGZyb20gV2ViQ29yZTo6RGlza0NhY2hl
TW9uaXRvciB3aGljaCBoYXMgdGhlIGJ1bGsgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgbm93LgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6fk5ldHdvcmtEaXNrQ2FjaGVN
b25pdG9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1v
bml0b3IubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptb25p
dG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rp
c2tDYWNoZU1vbml0b3I6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZCk6Cisg
ICAgICAgICAgICBPdmVycmlkZSB2aXJ0dWFsIG1ldGhvZCBhbmQgc2VuZCB0aGUgZGF0YSB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIGJlZm9yZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tOgorCisyMDE0LTA4LTEzICBQcmF0aWsg
U29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW5hbWUgRGlza0NhY2hl
TW9uaXRvciB0byBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1ODk3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggNzJkMTZkZGRlZDcwZGY0NzhmNzAwOTFhMTk1YmQwNDgxNDM1OGM3Mi4uYWFiMjc0YTEyOGZj
NTM5ZDI0ODU5YmU0Y2FiNzg1N2Q3MTQxZjc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTY4
MSw2ICs2ODEsNyBAQCBfX1pON1dlYkNvcmUxNkRhdGFiYXNlU3RyYXRlZ3kyM2NyZWF0ZUlEQkZh
Y3RvcnlCYWNrZW5kRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rpb25E
YXRhMTJBY2NlbGVyYXRpb242Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3JlMTZEZXZpY2VNb3Rp
b25EYXRhMTJSb3RhdGlvblJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3JlMTZEZXZpY2VN
b3Rpb25EYXRhNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJBY2NlbGVyYXRpb25FRUVT
NF9OUzJfSU5TMF8xMlJvdGF0aW9uUmF0ZUVFRWJkCitfX1pON1dlYkNvcmUxNkRpc2tDYWNoZU1v
bml0b3JDMkVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNzaW9uSURFUEsyMF9DRkNhY2hl
ZFVSTFJlc3BvbnNlCiBfX1pON1dlYkNvcmUxNkZpbHRlck9wZXJhdGlvbnNDMUV2CiBfX1pON1dl
YkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFEMUV2CiBfX1pON1dlYkNvcmUxNkZyYW1lTG9hZFJlcXVl
c3RDMUVQTlNfNUZyYW1lRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1YnN0aXR1dGVE
YXRhRQpAQCAtMjA1MSw2ICsyMDUyLDcgQEAgX19aVFZON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXll
ckUKIF9fWlRWTjdXZWJDb3JlMTVTdG9yYWdlU3RyYXRlZ3lFCiBfX1pUVk43V2ViQ29yZTE2Qmxv
YlJlZ2lzdHJ5SW1wbEUKIF9fWlRWTjdXZWJDb3JlMTZEYXRhYmFzZVN0cmF0ZWd5RQorX19aVFZO
N1dlYkNvcmUxNkRpc2tDYWNoZU1vbml0b3JFCiBfX1pUVk43V2ViQ29yZTE2SWNvbkRhdGFiYXNl
QmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWlRWTjdXZWJDb3Jl
MTlCbHVyRmlsdGVyT3BlcmF0aW9uRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY1NjE1YjlmNmI1YjUyMjc0YTZjNjFiOTA4NzM5
ZDhkOWM0NzViZTAuLjg5OTVmZjM0ZGNjNmE3OWU2ZjYyNWU3YjAzMzk2NTJhYWY4ZWJkNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI0MzgsNiArMjQzOCw3IEBACiAJCTdFNDc0RTFFMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxp
dGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFz
ZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3
NEUxQzEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMjAxMjQ5NERD
OTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxRDEyNDk0REM5MDAyMzUzNjQgLyog
U1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLzsgfTsKKwkJN0U0REUxMEQxOThCMTBCNjAwNTFD
QjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gKi87IH07CiAJCTdFNUQ3QTc2MTYxRDNGOEYwMDg5NkMzNCAvKiBP
RVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmNwcCAqLzsgfTsKIAkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJ
bmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi87IH07
CiAJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZF
MjMxMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCAqLzsg
fTsKQEAgLTI0NDYsNiArMjQ0Nyw4IEBACiAJCTdFNjZFMjM0MTdFNkVCNkMwMEY3RTdGRiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMyMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaCAqLzsgfTsKIAkJN0U3REUxRkQxOTVDRUYyNjAwMzUzNjNCIC8q
IFJlc291cmNlUmVxdWVzdENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVz
dENvY29hLm1tICovOyB9OwogCQk3RTdERTIwMjE5NUNFRkNEMDAzNTM2M0IgLyogUmVzb3VyY2VS
ZXF1ZXN0SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdElPUy5tbSAqLzsg
fTsKKwkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RThGQURD
MzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSAqLzsgfTsKKwkJ
N0U4RkFEQzUxOTlCRDk5QTAwNzE0OTY4IC8qIERpc2tDYWNoZU1vbml0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBFMTk4QjEyMzAwMDUx
Q0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0Zv
Y3VzQWxsb3dlZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxv
d2VkSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJN0U5OUFGNTMwQjEzODQ2NDY4RkIwMUE1IC8qIFdp
bmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5jcHAgKi87IH07CkBAIC05NTkwLDYgKzk1OTMsOCBAQAogCQk3RTQ3NEUxQjEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oOyBwYXRoID0g
c3FsL1NRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RTQ3NEUxQzEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5oOyBwYXRoID0gc3FsL1NRTGl0ZURhdGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RTQ3NEUxRDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VU
cmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNRTGl0ZURh
dGFiYXNlVHJhY2tlci5jcHA7IHBhdGggPSBzcWwvU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbTsgcGF0aCA9IGNvY29hL0Rpc2tDYWNo
ZU1vbml0b3JDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U0REUxMEUx
OThCMTIzMDAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlz
a0NhY2hlTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTVEN0E3MzE2
MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgcGF0aCA9IGNh
bnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT0VTRWxlbWVudEluZGV4VWludC5oOyBwYXRo
ID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0U2NkUyMzExNkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQy5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFU
Qy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTk4LDYgKzk2MDMsNyBAQAog
CQk3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVQVlJUQy5oOyBwYXRoID0gY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTdERTFGQzE5NUNFRjI2MDAzNTM2M0IgLyog
UmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBSZXNvdXJjZVJlcXVlc3RDb2NvYS5tbTsgcGF0aCA9IGNvY29hL1Jlc291cmNlUmVx
dWVzdENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTdERTIwMTE5NUNF
RkNEMDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXF1ZXN0SU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VM
b2FkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFN1
YnJlc291cmNlTG9hZGVyQ29jb2EubW07IHBhdGggPSBjb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhG
QjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBX
aW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdFQTMwRjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NzM2LDYgKzE2NzQyLDE1IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJN0U0REUxMEIxOThC
MTA4MTAwNTFDQjAyIC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRv
ckNvY29hLm1tICovLAorCQkJCTdFOEZBREMzMTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJj
ZUxvYWRlckNvY29hLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBjb2NvYTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTdFN0RFMUZFMTk1Q0VGMkQwMDM1MzYzQiAvKiBjb2Nv
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTEzNCw2
ICsyMTE0OSw3IEBACiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAwMEY4OUVFIC8qIGFyY2hpdmUgKi8s
CiAJCQkJQThEMkIyNTIxMjg3QTU2MDAwQUY0RERBIC8qIGNhY2hlICovLAogCQkJCTdFRTY4NDcz
MTJEMjZFNTUwMEU3OTQxNSAvKiBjZiAqLywKKwkJCQk3RTRERTEwQjE5OEIxMDgxMDA1MUNCMDIg
LyogY29jb2EgKi8sCiAJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCiAJ
CQkJQ0U3OUQ2ODYxN0YyMjBFRDAwODE1QzAwIC8qIGlvcyAqLywKIAkJCQk5M0ExRUFBMjBBNTYz
NEQ4MDA2OTYwQTAgLyogbWFjICovLApAQCAtMjExNTEsNiArMjExNjcsNyBAQAogCQkJCTBCOTA1
NjE2MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCAqLywKIAkJ
CQk5NzM4ODk5RTExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuY3BwICovLAogCQkJ
CTk3Mzg4OTlGMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5oICovLAorCQkJCTdF
NERFMTBFMTk4QjEyMzAwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yLmggKi8sCiAJCQkJRjUy
QUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8sCiAJCQkJQjI1NTk5
MEQwRDAwRDhCOTAwQkI4MjVDIC8qIEVtcHR5Q2xpZW50cy5oICovLAogCQkJCTY1NkQzNzIzMEFE
QkE1REUwMEE0NTU0RCAvKiBGb3JtU3RhdGUuY3BwICovLApAQCAtMjQwOTMsNiArMjQxMTAsNyBA
QAogCQkJCTMxQzBGRjRCMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEg
LyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdC
MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3RThGQURDNTE5OUJEOTlBMDA3MTQ5NjggLyogRGlza0NhY2hlTW9u
aXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TVdlYktpdENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZD
Q0MyODAwQkY2MDg4IC8qIERPTVdlYktpdENTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODE3Nyw2ICsyODE5NSw3IEBACiAJCQkJ
NjU5RERDODIwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDlDN0JBOEQxMDQyRjVCMTAwMDlENDQ3IC8qIEpTRG9jdW1lbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE0OTRFREUwQTEyM0Y0QzAwRkRBRkMxIC8qIEpTRG9jdW1lbnRG
cmFnbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RTRERTEwRDE5OEIxMEI2MDA1MUNCMDIg
LyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRjUw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTRG9jdW1lbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBQzIyNjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENjMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGlu
Zy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODQxLDYgKzI4ODYwLDcgQEAKIAkJCQlGRDZGMjUy
QzEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRFMTk1OTIxMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVO
YW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0E2RDFFQjE0OTExMzc3MDAwNTFEMEMgLyog
TWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RThGQURDNDE5
OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUNEQjg1OUY3MTYwRDQ4QTQwMEU1QjA3RiAvKiBNZWRpYUtleUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTk4REQ4MTYwMjVCRUYwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3Nh
Z2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDFCNEE2NTE2MDc4NkFFMDAyODJERjkg
LyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9EaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRGlza0NhY2hlTW9uaXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxY2QzZjM1YTYxNDQ3YTQ5MzRj
MDJlYzkyMzRkZGY3ZGQwZDk4MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRGlza0NhY2hlTW9uaXRvci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERpc2tDYWNoZU1vbml0b3JfaAorI2RlZmluZSBEaXNrQ2FjaGVNb25pdG9yX2gKKwor
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNlc3Npb25JRC5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hl
ZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgRGlza0NhY2hlTW9uaXRvciB7Citw
dWJsaWM6CisgICAgc3RhdGljIHZvaWQgbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdHJ5R2V0RmlsZUJhY2tlZFNo
YXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYp
OworICAgIHZpcnR1YWwgfkRpc2tDYWNoZU1vbml0b3IoKSB7IH0KKworcHJvdGVjdGVkOgorICAg
IERpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklELCBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXNvdXJjZUJlY2FtZUZp
bGVCYWNrZWQoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKKworICAgIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVl
c3Q7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9u
SUQ7IH0KKworcHJpdmF0ZToKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7
CisgICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBEaXNrQ2FjaGVNb25pdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgKaW5kZXggODY0NzVlMWVmNWE2YmQyOTE5Y2E0NGRlYTdiNDk0YzIyMGU5YWM3
Zi4uZTMxMjhhMjQ4NWVjOGQ5OThkMjQyZGI4MDg3NWZhNjI3N2IxZDdiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTE1NSw2ICsxNTUsMTMgQEAgcHJvdGVjdGVk
OgogCiAgICAgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgeyByZXR1cm4g
bV9vcHRpb25zOyB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRk5FVFdPUkspCisg
ICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlkZTsKKyNlbmRpZgorI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBVU0UoQ0ZORVRXT1JLKQorICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJM
UmVzcG9uc2VSZWYpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IG1faGFuZGxlOwogICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKICAgICBSZWZQdHI8RG9j
dW1lbnRMb2FkZXI+IG1fZG9jdW1lbnRMb2FkZXI7CkBAIC0xODYsMTIgKzE5Myw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFj
ZSkgb3ZlcnJpZGUgeyByZXR1cm4gY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShwcm90ZWN0aW9uU3BhY2UpOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRD
YW5jZWxsYXRpb24oUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlKSBvdmVycmlkZSB7IHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNoYWxsZW5nZSk7
IH0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRk5FVFdPUkspCi0gICAgdmlydHVhbCBO
U0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5T
Q2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlkZTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoQ0ZORVRXT1JLKQotICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3
aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYp
IG92ZXJyaWRlOwotI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVjdGlvblByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUq
KSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCA1ZjU3MzgyY2U1NzdkODg0OWZmZmFkNGUxMDQ5ZWUwYmJmYmVkYjFmLi5iOTli
Mjg4ODUzMTIzMzE4NjNjMGUzZTliNDMxNGQ5NDZhMjk1MjljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNzQsNiArNzQsMTMgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRk5FVFdPUkspCisgICAgdmlydHVh
bCBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSos
IE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlkZTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoQ0ZORVRXT1JLKQorICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJl
ZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FM
TEJBQ0spCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRGF0YUFycmF5KCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJy
YXlSZWYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29h
L0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9E
aXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWExNTIwNTAwZWQxOTEwMDA3Zjkw
NjhhZmQ3MDNkZjU5NzdkYzgyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KQEAgLTAsMCArMSwxMTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRpc2tDYWNoZU1vbml0b3Iu
aCIKKworI2ltcG9ydCAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbXBvcnQgIk1lbW9yeUNhY2hlLmgi
CisjaW1wb3J0ICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbXBvcnQgIlNlc3Npb25JRC5oIgorI2lt
cG9ydCAiU2hhcmVkQnVmZmVyLmgiCisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9y
dCA8d3RmL093blB0ci5oPgorI2ltcG9ydCA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CisKKyNpZmRlZiBfX2hhc19p
bmNsdWRlCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+KQor
I2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPgorI2VuZGlmCisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCit0eXBlZGVmIHZvaWQgKF5DRkNhY2hlZFVSTFJlc3BvbnNl
Q2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CitleHRlcm4gIkMiIHZvaWQg
X0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tCbG9jayhDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmLCBDRkNhY2hlZFVSTFJlc3BvbnNlQ2FsbEJhY2tCbG9jaywgZGlz
cGF0Y2hfcXVldWVfdCk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhlIG1heGltdW0g
bnVtYmVyIG9mIHNlY29uZHMgd2UnbGwgdHJ5IHRvIHdhaXQgZm9yIGEgcmVzb3VyY2UgdG8gYmUg
ZGlzayBjYWNoZWQgYmVmb3JlIHdlIGZvcmdldCB0aGUgcmVxdWVzdC4KK3N0YXRpYyBjb25zdCBk
b3VibGUgZGlza0NhY2hlTW9uaXRvclRpbWVvdXQgPSAyMDsKKworUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IERpc2tDYWNoZU1vbml0b3I6OnRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9t
Q0ZVUkxDYWNoZWRSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNl
KQoreworICAgIENGRGF0YVJlZiBkYXRhID0gX0NGQ2FjaGVkVVJMUmVzcG9uc2VHZXRNZW1NYXBw
ZWREYXRhKGNhY2hlZFJlc3BvbnNlKTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YShkYXRhKTsKK30K
Kwordm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9u
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkKK3sKKyAgICBpZiAoIWNhY2hlZFJl
c3BvbnNlKQorICAgICAgICByZXR1cm47CisKKyAgICBuZXcgRGlza0NhY2hlTW9uaXRvcihyZXF1
ZXN0LCBzZXNzaW9uSUQsIGNhY2hlZFJlc3BvbnNlKTsgLy8gQmFsYW5jZWQgYnkgYWRvcHRQdHIg
aW4gdGhlIGJsb2NrcyBzZXR1cCBpbiB0aGUgY29uc3RydWN0b3IsIG9uZSBvZiB3aGljaCBpcyBn
dWFyYW50ZWVkIHRvIHJ1bi4KK30KKworRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQsIENG
Q2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCisgICAgOiBtX3Jlc291cmNlUmVx
dWVzdChyZXF1ZXN0KQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisKKyAgICAvLyBTZXQgdXAgYSBkZWxheWVkIGNhbGxiYWNrIHRv
IGNhbmNlbCB0aGlzIG1vbml0b3IgaWYgdGhlIHJlc291cmNlIGhhc24ndCBiZWVuIGNhY2hlZCB5
ZXQuCisgICAgX19ibG9jayBEaXNrQ2FjaGVNb25pdG9yKiByYXdNb25pdG9yID0gdGhpczsKKwor
ICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIE5TRUNf
UEVSX1NFQyAqIGRpc2tDYWNoZU1vbml0b3JUaW1lb3V0KSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKKyAgICAgICAgYWRvcHRQdHIocmF3TW9uaXRvcik7IC8vIEJhbGFuY2VkIGJ5IGBu
ZXcgRGlza0NhY2hlTW9uaXRvcmAgaW4gbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbi4K
KyAgICAgICAgcmF3TW9uaXRvciA9IDA7CisgICAgfSk7CisKKyAgICAvLyBTZXQgdXAgdGhlIGRp
c2sgY2FjaGluZyBjYWxsYmFjayB0byBjcmVhdGUgdGhlIFNoYXJlYWJsZVJlc291cmNlIGFuZCBz
ZW5kIGl0IHRvIHRoZSBXZWJQcm9jZXNzLgorICAgIENGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFj
a0Jsb2NrIGJsb2NrID0gXihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQor
ICAgIHsKKyAgICAgICAgLy8gSWYgdGhlIG1vbml0b3IgaXNuJ3QgdGhlcmUgdGhlbiBpdCB0aW1l
ZCBvdXQgYmVmb3JlIHRoaXMgcmVzb3VyY2Ugd2FzIGNhY2hlZCB0byBkaXNrLgorICAgICAgICBp
ZiAoIXJhd01vbml0b3IpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgT3duUHRyPERp
c2tDYWNoZU1vbml0b3I+IG1vbml0b3IgPSBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5j
ZWQgYnkgYG5ldyBEaXNrQ2FjaGVNb25pdG9yYCBpbiBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNy
ZWF0aW9uLgorICAgICAgICByYXdNb25pdG9yID0gMDsKKworICAgICAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBmaWxlQmFja2VkQnVmZmVyID0gRGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJh
Y2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKGNhY2hlZFJlc3BvbnNlKTsK
KyAgICAgICAgaWYgKCFmaWxlQmFja2VkQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIG1vbml0b3ItPnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChmaWxlQmFja2VkQnVmZmVy
KTsKKyAgICB9OworCisgICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2Vk
Q2FsbEJhY2tCbG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCkpOworfQorCit2b2lkIERpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJh
Y2tlZChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmlsZUJhY2tlZEJ1ZmZlcikKK3sKKyAgICBD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVl
c3QobV9yZXNvdXJjZVJlcXVlc3QsIG1fc2Vzc2lvbklEKTsKKyAgICBpZiAoIXJlc291cmNlKQor
ICAgICAgICByZXR1cm47CisKKyAgICByZXNvdXJjZS0+dHJ5UmVwbGFjZUVuY29kZWREYXRhKGZp
bGVCYWNrZWRCdWZmZXIpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2Fk
ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRl
ckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiOTRmNjQ2MWRhNTdmNzEwOTIxMDc1ZDc1ZGQwMDQwMDRi
MGRkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3Vi
cmVzb3VyY2VMb2FkZXJDb2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCisKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkRpc2tDYWNoZU1vbml0b3IuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCisj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK0BpbnRlcmZhY2UgTlNDYWNoZWRVUkxSZXNwb25z
ZSAoRGV0YWlscykKKy0oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZilfQ0ZDYWNoZWRVUkxSZXNwb25z
ZTsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKENGTkVUV09SSykKKwor
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRS
ZXNwb25zZSkKK3sKKyAgICBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9y
ZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9yZXNvdXJjZS0+c2Vzc2lvbklEKCksIGNhY2hlZFJlc3Bv
bnNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKGhhbmRs
ZSwgY2FjaGVkUmVzcG9uc2UpOworfQorCisjZWxzZQorCitOU0NhY2hlZFVSTFJlc3BvbnNlKiBT
dWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgRGlza0NhY2hlTW9uaXRv
cjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihyZXF1ZXN0KCksIG1fcmVzb3VyY2Ut
PnNlc3Npb25JRCgpLCBbcmVzcG9uc2UgX0NGQ2FjaGVkVVJMUmVzcG9uc2VdKTsKKyAgICByZXR1
cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwor
fQorCisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCBhMzM0YzIyZmQ4Njkx
MzM0ZTg3ZmYwMWI0MjFhOGI2ZWM3M2E1MDQxLi5jYTMyMDhjOGZmMTUyODY2MzAxMjljM2FlYzdi
ODExM2JkMjQ4MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMjcsOCArMjcsMTAgQEAK
ICNkZWZpbmUgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3JfaAogCiAjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlza0NhY2hlTW9uaXRvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmOwpAQCAtMzgsMjIgKzQwLDIyIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI7CiAKLWNsYXNzIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yIDogcHVibGljIElQ
Qzo6TWVzc2FnZVNlbmRlciB7CitjbGFzcyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciA6IHB1Ymxp
YyBXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yLCBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIG1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZiwgTmV0d29ya1Jlc291cmNlTG9hZGVyKik7Ci0KLSAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgfk5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yKCkgeyB9
CiAKIHByaXZhdGU6CiAgICAgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZiwgTmV0d29ya1Jlc291cmNlTG9hZGVyKik7CiAKKyAgICAvLyBXZWJDb3JlOjpEaXNr
Q2FjaGVNb25pdG9yCisgICAgdmlydHVhbCB2b2lkIHJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4pIG92ZXJyaWRlOworCiAgICAgLy8gSVBD
OjpNZXNzYWdlU2VuZGVyCiAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci0gICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIFdlYkNvcmU6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tCmluZGV4IDExMmIw
MTRlZWZjMDA2OTI4MzQxYzFiODg1YTBjODM4NDQ4MGMyOGYuLjE4NzRkZDUzZTZlYzk2ZmQ4ZDNm
ZjkzYjE3MWNlMzA5NjU5ODNlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IubW0KQEAgLTMwLDcg
KzMwLDYgQEAKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgotI2ltcG9ydCA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmZGVmIF9faGFzX2lu
Y2x1ZGUKICNpZiBfX2hhc19pbmNsdWRlKDxDRk5ldHdvcmsvQ0ZVUkxDYWNoZVByaXYuaD4pCkBA
IC00MCwxNiArMzksMTAgQEAKIAogI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCiAKLXR5cGVkZWYgdm9pZCAoXkNGQ2Fj
aGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKLWV4
dGVybiAiQyIgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxs
QmFja0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJMUmVzcG9uc2VDYWxs
QmFja0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0vLyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2Vjb25k
cyB3ZSdsbCB0cnkgdG8gd2FpdCBmb3IgYSByZXNvdXJjZSB0byBiZSBkaXNrIGNhY2hlZCBiZWZv
cmUgd2UgZm9yZ2V0IHRoZSByZXF1ZXN0Lgotc3RhdGljIGNvbnN0IGRvdWJsZSBkaXNrQ2FjaGVN
b25pdG9yVGltZW91dCA9IDIwOwotCiB2b2lkIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptb25p
dG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVk
UmVzcG9uc2UsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogewogICAgIGlmICghY2Fj
aGVkUmVzcG9uc2UpCkBAIC01Nyw0MyArNTAsMjMgQEAgdm9pZCBOZXR3b3JrRGlza0NhY2hlTW9u
aXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihDRkNhY2hlZFVSTFJlc3BvbnMK
IAogICAgIEFTU0VSVChsb2FkZXIpOwogCi0gICAgbmV3IE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9y
KGNhY2hlZFJlc3BvbnNlLCBsb2FkZXIpOyAvLyBCYWxhbmNlZCBieSBhZG9wdFB0ciBpbiB0aGUg
YmxvY2tzIHNldHVwIGluIHRoZSBjb25zdHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlzIGd1YXJhbnRl
ZWQgdG8gcnVuLgorICAgIG5ldyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcihjYWNoZWRSZXNwb25z
ZSwgbG9hZGVyKTsgLy8gQmFsYW5jZWQgYnkgYWRvcHRQdHIgaW4gdGhlIGJsb2NrcyBzZXR1cCBp
biB0aGUgRGlza0NhY2hlTW9uaXRvciBjb25zdHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlzIGd1YXJh
bnRlZWQgdG8gcnVuLgogfQogCiBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6TmV0d29ya0Rpc2tD
YWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0d29y
a1Jlc291cmNlTG9hZGVyKiBsb2FkZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
bG9hZGVyLT5jb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkpCi0gICAgLCBtX3Jlc291cmNlUmVxdWVz
dChsb2FkZXItPnJlcXVlc3QoKSkKLSAgICAsIG1fc2Vzc2lvbklEKGxvYWRlci0+c2Vzc2lvbklE
KCkpCisgICAgOiBEaXNrQ2FjaGVNb25pdG9yKGxvYWRlci0+cmVxdWVzdCgpLCBsb2FkZXItPnNl
c3Npb25JRCgpLCBjYWNoZWRSZXNwb25zZSkKKyAgICAsIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKIHsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotCi0gICAgLy8gU2V0IHVwIGEgZGVsYXllZCBjYWxsYmFjayB0byBjYW5j
ZWwgdGhpcyBtb25pdG9yIGlmIHRoZSByZXNvdXJjZSBoYXNuJ3QgYmVlbiBjYWNoZWQgeWV0Lgot
ICAgIF9fYmxvY2sgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IqIHJhd01vbml0b3IgPSB0aGlzOwot
Ci0gICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNF
Q19QRVJfU0VDICogZGlza0NhY2hlTW9uaXRvclRpbWVvdXQpLCBkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeewotICAgICAgICBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQgYnkg
YG5ldyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcmAgaW4gbW9uaXRvckZpbGVCYWNraW5nU3RvcmVD
cmVhdGlvbi4KLSAgICAgICAgcmF3TW9uaXRvciA9IDA7Ci0gICAgfSk7Ci0KLSAgICAvLyBTZXQg
dXAgdGhlIGRpc2sgY2FjaGluZyBjYWxsYmFjayB0byBjcmVhdGUgdGhlIFNoYXJlYWJsZVJlc291
cmNlIGFuZCBzZW5kIGl0IHRvIHRoZSBXZWJQcm9jZXNzLgotICAgIENGQ2FjaGVkVVJMUmVzcG9u
c2VDYWxsQmFja0Jsb2NrIGJsb2NrID0gXihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJl
c3BvbnNlKQotICAgIHsKLSAgICAgICAgLy8gSWYgdGhlIG1vbml0b3IgaXNuJ3QgdGhlcmUgdGhl
biBpdCB0aW1lZCBvdXQgYmVmb3JlIHRoaXMgcmVzb3VyY2Ugd2FzIGNhY2hlZCB0byBkaXNrLgot
ICAgICAgICBpZiAoIXJhd01vbml0b3IpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
T3duUHRyPE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yPiBtb25pdG9yID0gYWRvcHRQdHIocmF3TW9u
aXRvcik7IC8vIEJhbGFuY2VkIGJ5IGBuZXcgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3JgIGluIG1v
bml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24uCi0gICAgICAgIHJhd01vbml0b3IgPSAwOwot
ICAgICAgICAKLSAgICAgICAgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSBoYW5kbGU7Ci0gICAg
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbUNGVVJM
Q2FjaGVkUmVzcG9uc2UoaGFuZGxlLCBjYWNoZWRSZXNwb25zZSk7Ci0gICAgICAgIGlmIChoYW5k
bGUuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbW9uaXRvci0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKG1v
bml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUsIG1fc2Vzc2lvbklEKSk7Ci0gICAgfTsK
LQotICAgIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxv
Y2soY2FjaGVkUmVzcG9uc2UsIGJsb2NrLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKK30K
Kwordm9pZCBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6cmVzb3VyY2VCZWNhbWVGaWxlQmFja2Vk
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQmFja2VkQnVmZmVyKQoreworICAgIFNoYXJl
YWJsZVJlc291cmNlOjpIYW5kbGUgaGFuZGxlOworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZlcihoYW5kbGUsIGZpbGVCYWNrZWRC
dWZmZXIuZ2V0KCkpOworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkQ2FjaGVS
ZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QoKSwgaGFuZGxlLCBzZXNzaW9uSUQoKSkpOwogfQogCiBJ
UEM6OkNvbm5lY3Rpb24qIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
TmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQppbmRleCBkNTM0ZDI4ZDcxMDU5YmJl
MTc4MWEwMzQyMDA0MmZmMTZhOGIxZWZkLi40MmNiYzJhNTgyODE3NzRkODg0M2U0ZDhhZTM4NzM4
YWUzNzFiMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
TmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKKyNpbXBvcnQgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW1wb3J0ICJOZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oIgog
I2ltcG9ydCAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VI
YW5kbGUuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236666</attachid>
            <date>2014-08-15 12:07:02 -0700</date>
            <delta_ts>2014-08-16 13:40:18 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-Move-DiskCacheMonitor-to-WebCore-so-that-WebKit1-cli.patch</filename>
            <type>text/plain</type>
            <size>37891</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">RnJvbSA5OGJmOGM0MGFkMGQ3MzE0N2M0YjY3ZmNjZmIyYmI0ZDRlMzEzYzhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQcmF0aWsgU29sYW5raSA8cHNvbGFua2lAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDUgQXVnIDIwMTQgMTc6NTE6NDAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBNb3Zl
IERpc2tDYWNoZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0IFdlYktpdDEgY2xpZW50cyBjYW4K
IHVzZSBpdCBhcyB3ZWxsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzU4OTYKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgpSZWZh
Y3RvciBjb2RlIGFuZCBtb3ZlIGl0IHRvIFdlYkNvcmUuCgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aDoKICAgIE1ha2Ugd2lsbENhY2hlUmVzcG9uc2UgcHJvdGVjdGVkIHNvIHRoYXQgU3VicmVzb3Vy
Y2VMb2FkZXIgY2FuIG92ZXJyaWRlIGl0LgoqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgoq
IGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmg6IEFkZGVkLgogICAgTW9zdGx5IHRoZSBz
YW1lIGFzIHRoZSBleGlzdGluZyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciBjbGFzcyBpbiBXZWJL
aXQyLiBJbiB0aGUKICAgIENGTmV0d29yayBjYWxsYmFjayBibG9jaywgaXQgY2FsbHMgYSB2aXJ0
dWFsIGZ1bmN0aW9uIHRoYXQgaXMgb3ZlcnJpZGVuIGJ5CiAgICBOZXR3b3JrRGlza0NhY2hlTW9u
aXRvciB0byBzZW5kIGEgbWVzc2FnZSB0byBXZWJDb250ZW50IHByb2Nlc3MuCihXZWJDb3JlOjpE
aXNrQ2FjaGVNb25pdG9yOjp+RGlza0NhY2hlTW9uaXRvcik6CihXZWJDb3JlOjpEaXNrQ2FjaGVN
b25pdG9yOjpyZXNvdXJjZVJlcXVlc3QpOgooV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6c2Vz
c2lvbklEKToKKiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOgooV2ViQ29y
ZTo6RGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVS
TENhY2hlZFJlc3BvbnNlKToKICAgIENvcGllZCBmcm9tIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlLgooV2Vi
Q29yZTo6RGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6
CihXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKToKKFdlYkNvcmU6
OkRpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZCk6CiAgICBSZXBsYWNl
IHRoZSBjYWNoZWQgcmVzb3VyY2UgZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBi
YWNrZWQgYnVmZmVyLiBUaGlzIGlzCiAgICB1c2VkIGluIFdlYktpdDEgKGFuZCBhbHNvIGZvciBh
bnkgcmVzb3VyY2UgbG9hZHMgdGhhdCBoYXBwZW4gZnJvbSB0aGUgV2ViQ29udGVudAogICAgcHJv
Y2VzcykuCiogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW06IEFkZGVkLgoo
V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKToKICAgIE92ZXJy
aWRlIHdpbGxDYWNoZXJlc3BvbnNlIGZyb20gUmVzb3VyY2VMb2FkZXIgdG8gbGlzdGVuIGZvciBk
aXNrIGNhY2hlIG5vdGlmaWNhdGlvbnMuCgpTb3VyY2UvV2ViS2l0MjoKCiogTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmg6CiAgICBJbmhlcml0IGZyb20gV2ViQ29y
ZTo6RGlza0NhY2hlTW9uaXRvciB3aGljaCBoYXMgdGhlIGJ1bGsgb2YgdGhlIGZ1bmN0aW9uYWxp
dHkgbm93LgooV2ViS2l0OjpOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6fk5ldHdvcmtEaXNrQ2Fj
aGVNb25pdG9yKToKKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3Iu
bW06CihXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdT
dG9yZUNyZWF0aW9uKToKKFdlYktpdDo6TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6Ok5ldHdvcmtE
aXNrQ2FjaGVNb25pdG9yKToKKFdlYktpdDo6TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6OnJlc291
cmNlQmVjYW1lRmlsZUJhY2tlZCk6CiAgICBPdmVycmlkZSB2aXJ0dWFsIG1ldGhvZCBhbmQgc2Vu
ZCB0aGUgZGF0YSB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIGJlZm9yZS4KKiBOZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tOgotLS0KIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM0ICsrKysrKwogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAgMjAg
KysrKwogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggICAgICAgICAgICAg
fCAgMTMgKy0tCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCAgICAg
ICAgICB8ICAgNyArKwogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0
b3IuaCAgICAgfCAgNjAgKysrKysrKysrKysKIC4uLi9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNr
Q2FjaGVNb25pdG9yQ29jb2EubW0gIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKwogLi4uL1dl
YkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gfCAgNTkgKysrKysr
KysrKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgMTcgKysrCiAuLi4vTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9y
LmggICB8ICAxMiArKy0KIC4uLi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1v
bml0b3IubW0gIHwgIDUzICsrKy0tLS0tLQogLi4uL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXJNYWMubW0gfCAgIDEgKwogMTIgZmlsZXMgY2hhbmdlZCwgMzQ2IGluc2Vy
dGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9h
ZGVyQ29jb2EubW0KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE4MTNlZC4uZWIwOTVkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM3IEBACisyMDE0LTA4LTEzICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFw
cGxlLmNvbT4KKworICAgICAgICBNb3ZlIERpc2tDYWNoZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0
aGF0IFdlYktpdDEgY2xpZW50cyBjYW4gdXNlIGl0IGFzIHdlbGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg5NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIGNvZGUgYW5kIG1vdmUgaXQg
dG8gV2ViQ29yZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaDoKKyAgICAgICAgICAgIE1ha2Ugd2lsbENhY2hlUmVzcG9uc2UgcHJvdGVjdGVkIHNv
IHRoYXQgU3VicmVzb3VyY2VMb2FkZXIgY2FuIG92ZXJyaWRlIGl0LgorICAgICAgICAqIGxvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVN
b25pdG9yLmg6IEFkZGVkLgorICAgICAgICAgICAgTW9zdGx5IHRoZSBzYW1lIGFzIHRoZSBleGlz
dGluZyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciBjbGFzcyBpbiBXZWJLaXQyLiBJbiB0aGUKKyAg
ICAgICAgICAgIENGTmV0d29yayBjYWxsYmFjayBibG9jaywgaXQgY2FsbHMgYSB2aXJ0dWFsIGZ1
bmN0aW9uIHRoYXQgaXMgb3ZlcnJpZGVuIGJ5CisgICAgICAgICAgICBOZXR3b3JrRGlza0NhY2hl
TW9uaXRvciB0byBzZW5kIGEgbWVzc2FnZSB0byBXZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAg
IChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjp+RGlza0NhY2hlTW9uaXRvcik6CisgICAgICAg
IChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6c2Vzc2lvbklEKToKKyAgICAgICAgKiBsb2FkZXIv
Y29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGlza0Nh
Y2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJl
c3BvbnNlKToKKyAgICAgICAgICAgIENvcGllZCBmcm9tIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlLgorICAg
ICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVD
cmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVN
b25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVj
YW1lRmlsZUJhY2tlZCk6CisgICAgICAgICAgICBSZXBsYWNlIHRoZSBjYWNoZWQgcmVzb3VyY2Ug
ZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBiYWNrZWQgYnVmZmVyLiBUaGlzIGlz
CisgICAgICAgICAgICB1c2VkIGluIFdlYktpdDEgKGFuZCBhbHNvIGZvciBhbnkgcmVzb3VyY2Ug
bG9hZHMgdGhhdCBoYXBwZW4gZnJvbSB0aGUgV2ViQ29udGVudAorICAgICAgICAgICAgcHJvY2Vz
cykuCisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW06IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3Bv
bnNlKToKKyAgICAgICAgICAgIE92ZXJyaWRlIHdpbGxDYWNoZXJlc3BvbnNlIGZyb20gUmVzb3Vy
Y2VMb2FkZXIgdG8gbGlzdGVuIGZvciBkaXNrIGNhY2hlIG5vdGlmaWNhdGlvbnMuCisKIDIwMTQt
MDgtMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzIzOTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDcyZDE2ZGQuLmFhYjI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02ODEsNiArNjgxLDcg
QEAgX19aTjdXZWJDb3JlMTZEYXRhYmFzZVN0cmF0ZWd5MjNjcmVhdGVJREJGYWN0b3J5QmFja2Vu
ZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyQWNjZWxl
cmF0aW9uNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90
YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZj
cmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBf
MTJSb3RhdGlvblJhdGVFRUViZAorX19aTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25pdG9yQzJFUktO
U18xNVJlc291cmNlUmVxdWVzdEVOU185U2Vzc2lvbklERVBLMjBfQ0ZDYWNoZWRVUkxSZXNwb25z
ZQogX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRpb25zQzFFdgogX19aTjdXZWJDb3JlMTZGb250
UGxhdGZvcm1EYXRhRDFFdgogX19aTjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0QzFFUE5TXzVG
cmFtZUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUUKQEAgLTIw
NTEsNiArMjA1Miw3IEBAIF9fWlRWTjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJFCiBfX1pUVk43
V2ViQ29yZTE1U3RvcmFnZVN0cmF0ZWd5RQogX19aVFZON1dlYkNvcmUxNkJsb2JSZWdpc3RyeUlt
cGxFCiBfX1pUVk43V2ViQ29yZTE2RGF0YWJhc2VTdHJhdGVneUUKK19fWlRWTjdXZWJDb3JlMTZE
aXNrQ2FjaGVNb25pdG9yRQogX19aVFZON1dlYkNvcmUxNkljb25EYXRhYmFzZUJhc2VFCiBfX1pU
Vk43V2ViQ29yZTE3RnJhbWVMb2FkZXJDbGllbnRFCiBfX1pUVk43V2ViQ29yZTE5Qmx1ckZpbHRl
ck9wZXJhdGlvbkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmNTYxNWI5Li5kYjc3MzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDMwLDYgKzI0MzAsNyBA
QAogCQk3Q0U2Q0JGQjE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2Q0JGQTE4N0YzNzA3
MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggKi87IH07CiAJCTdDRTZDQkZEMTg3RjM5NDkw
MEQ0NkJGNSAvKiBGb3JtYXRDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNkNCRkMxODdGMzk0OTAwRDQ2QkY1IC8qIEZvcm1hdENv
bnZlcnRlci5jcHAgKi87IH07CiAJCTdENzQxQkRBMTc3MjI2QUEwMDg1OTE3MCAvKiBDU1NWYWx1
ZUtleXdvcmRzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODE0ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3
b3Jkcy5oICovOyB9OworCQk3RTI0NEJCQzE5OUU3QUZGMDAyOTM5RTkgLyogRGlza0NhY2hlTW9u
aXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Uy
NDRCQkIxOTlFN0FGOTAwMjkzOUU5IC8qIERpc2tDYWNoZU1vbml0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBC
RThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3
RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBC
MjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgKi87IH07CiAJCTdFNDI4Q0U1MTNFMzQw
N0YwMDNCNjYxQyAvKiBSZXNvdXJjZUhhbmRsZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDI4Q0U0MTNFMzQwN0YwMDNCNjYxQyAvKiBSZXNv
dXJjZUhhbmRsZUlPUy5tbSAqLzsgfTsKQEAgLTI0MzgsNiArMjQzOSw3IEBACiAJCTdFNDc0RTFF
MTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFCMTI0OTREQzkw
MDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUz
NjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQzEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0U0NzRFMjAxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3
NEUxRDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLzsgfTsK
KwkJN0U0REUxMEQxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBDMTk4
QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi87IH07CiAJCTdFNUQ3
QTc2MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5
NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKIAkJN0U1RDdBNzcxNjFEM0Y4
RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNF
bGVtZW50SW5kZXhVaW50LmggKi87IH07CiAJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMxMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDLmNwcCAqLzsgfTsKQEAgLTI0NDYsNiArMjQ0OCw3IEBACiAJCTdFNjZF
MjM0MTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMyMTdFNkVC
NkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCAqLzsgfTsKIAkJN0U3
REUxRkQxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U3REUxRkMxOTVDRUYyNjAw
MzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tICovOyB9OwogCQk3RTdERTIwMjE5NUNF
RkNEMDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJl
c291cmNlUmVxdWVzdElPUy5tbSAqLzsgfTsKKwkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8q
IFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VM
b2FkZXJDb2NvYS5tbSAqLzsgfTsKIAkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRv
d0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNB
bGxvd2VkSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJN0U5OUFGNTMwQjEzODQ2NDY4RkIwMUE1IC8q
IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0Zv
Y3VzQWxsb3dlZEluZGljYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5jcHAgKi87IH07CkBAIC05NTgyLDYgKzk1ODUsNyBAQAogCQk3Q0U2ODM0NjE5MjE4
MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JU
eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2Q0JGQTE4N0YzNzA3MDBE
NDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZvcm1hdENvbnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2
Q0JGQzE4N0YzOTQ5MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdENvbnZlcnRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTdFMjQ0QkJCMTk5RTdBRjkwMDI5MzlFOSAvKiBEaXNrQ2FjaGVN
b25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERpc2tDYWNoZU1vbml0
b3IuaDsgcGF0aCA9IGNvY29hL0Rpc2tDYWNoZU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVyZ2VQcmlvcml0eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVz
b3VyY2VMb2FkZXJDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBT
dWJyZXNvdXJjZUxvYWRlckNGLmNwcDsgcGF0aCA9IGNmL1N1YnJlc291cmNlTG9hZGVyQ0YuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMg
LyogUmVzb3VyY2VIYW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBSZXNvdXJjZUhhbmRsZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTk1OTAsNiArOTU5NCw3IEBACiAJCTdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxp
dGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHBhdGggPSBzcWwvU1FMaXRlRGF0YWJh
c2VUcmFja2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDc0RTFD
MTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHBhdGggPSBzcWwv
U1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdF
NDc0RTFEMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNw
cDsgcGF0aCA9IHNxbC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRv
ckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRGlza0Nh
Y2hlTW9uaXRvckNvY29hLm1tOyBwYXRoID0gY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQg
LyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBPRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50
SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzQxNjFE
M0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gT0VTRWxlbWVudEluZGV4VWludC5oOyBwYXRoID0gY2FudmFzL09FU0Vs
ZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U2NkUyMzEx
NkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5j
cHA7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTk4LDYgKzk2MDMsNyBAQAogCQk3RTY2RTIzMjE3RTZF
QjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBwYXRo
ID0gY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RTdERTFGQzE5NUNFRjI2MDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJj
ZVJlcXVlc3RDb2NvYS5tbTsgcGF0aCA9IGNvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTdERTIwMTE5NUNFRkNEMDAzNTM2M0IgLyog
UmVzb3VyY2VSZXF1ZXN0SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUmVzb3VyY2VSZXF1ZXN0SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFN1YnJlc291cmNlTG9hZGVy
Q29jb2EubW07IHBhdGggPSBjb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93
Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93
ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93Rm9j
dXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFQTMw
RjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgcGF0aCA9
IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE2NzM2LDYgKzE2NzQyLDE2IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJN0U0REUxMEIxOThCMTA4MTAwNTFDQjAyIC8q
IGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3
RTI0NEJCQjE5OUU3QUY5MDAyOTM5RTkgLyogRGlza0NhY2hlTW9uaXRvci5oICovLAorCQkJCTdF
NERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi8sCisJ
CQkJN0U4RkFEQzMxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0g
Ki8sCisJCQkpOworCQkJbmFtZSA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJN0U3REUxRkUxOTVDRUYyRDAwMzUzNjNCIC8qIGNvY29hICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxMTM0LDYgKzIxMTUwLDcgQEAKIAkJ
CQk1MTJERDhFODBEOTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKIAkJCQlBOEQyQjI1MjEy
ODdBNTYwMDBBRjREREEgLyogY2FjaGUgKi8sCiAJCQkJN0VFNjg0NzMxMkQyNkU1NTAwRTc5NDE1
IC8qIGNmICovLAorCQkJCTdFNERFMTBCMTk4QjEwODEwMDUxQ0IwMiAvKiBjb2NvYSAqLywKIAkJ
CQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLywKIAkJCQlDRTc5RDY4NjE3RjIy
MEVEMDA4MTVDMDAgLyogaW9zICovLAogCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBt
YWMgKi8sCkBAIC0yNDA5Myw2ICsyNDExMCw3IEBACiAJCQkJMzFDMEZGNEIwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktp
dENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFMjQ0QkJDMTk5
RTdBRkYwMDI5MzlFOSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTZGRTA3RDBFNkNDQzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0ND
MjgwMEJGNjA4OCAvKiBET01XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI4MTc3LDYgKzI4MTk1LDcgQEAKIAkJCQk2NTlEREM4MjA5RTE5OEJBMDAxQkYzQzYgLyog
SlNEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QkE4RDEwNDJGNUIxMDAwOUQ0
NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTQ5NEVERTBB
MTIzRjRDMDBGREFGQzEgLyogSlNEb2N1bWVudEZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTdFNERFMTBEMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGNTA5RDFDQzYwMDAwQkUzMjUgLyogSlNEb2N1bWVu
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5IC8q
IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2MzA5
RUIwQzdDMDA5RDg0NjggLyogSlNET01CaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4
NDEsNiArMjg4NjAsNyBAQAogCQkJCUZENkYyNTJDMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEUxOTU5MjEwQTM5
REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3QTZEMUVCMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTdFOEZBREM0MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJj
ZUxvYWRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCODU5RjcxNjBENDhBNDAwRTVC
MDdGIC8qIE1lZGlhS2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThERDgxNjAy
NUJFRjAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEMUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4
NjQ3NWUxLi5lMzEyOGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApA
QCAtMTU1LDYgKzE1NSwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMoKSB7IHJldHVybiBtX29wdGlvbnM7IH0KIAorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiAhVVNFKENGTkVUV09SSykKKyAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9u
c2UqIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25z
ZSopIG92ZXJyaWRlOworI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdP
UkspCisgICAgdmlydHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisjZW5k
aWYKKwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgUmVmUHRyPEZy
YW1lPiBtX2ZyYW1lOwogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRl
cjsKQEAgLTE4NiwxMiArMTkzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFBy
b3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKSBvdmVycmlkZSB7IHJldHVybiBjYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZSk7IH0KICNlbmRp
ZgogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIG92ZXJyaWRlIHsgcmVj
ZWl2ZWRDYW5jZWxsYXRpb24oY2hhbGxlbmdlKTsgfQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAh
VVNFKENGTkVUV09SSykKLSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNo
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRl
OwotI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUkspCi0gICAgdmly
dHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFu
ZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Ci0jZW5kaWYKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb25uZWN0
aW9uUHJvcGVydGllcyhSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IDVmNTczODIuLmI5OWIyODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC03NCw2ICs3
NCwxMyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0IFJlc291
cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNvbnN0IFJl
c291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKENG
TkVUV09SSykKKyAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOworI2Vu
ZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUkspCisgICAgdmlydHVhbCBD
RkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFVTRShORVRX
T1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRh
QXJyYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wMWNkM2YzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBEaXNrQ2FjaGVNb25pdG9yX2gKKyNkZWZpbmUgRGlza0NhY2hlTW9uaXRvcl9o
CisKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZD
YWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIERpc2tDYWNoZU1vbml0b3Ig
eworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIG1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRp
b24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklELCBDRkNhY2hlZFVSTFJlc3BvbnNl
UmVmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHRyeUdldEZpbGVCYWNr
ZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNl
UmVmKTsKKyAgICB2aXJ0dWFsIH5EaXNrQ2FjaGVNb25pdG9yKCkgeyB9CisKK3Byb3RlY3RlZDoK
KyAgICBEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwg
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VCZWNh
bWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CisKKyAgICBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VS
ZXF1ZXN0OyB9CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1
ZXN0OworICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRGlza0NhY2hlTW9uaXRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTE1MjA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQpAQCAtMCwwICsx
LDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRGlza0Nh
Y2hlTW9uaXRvci5oIgorCisjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZS5oIgorI2ltcG9ydCAiTWVt
b3J5Q2FjaGUuaCIKKyNpbXBvcnQgIlJlc291cmNlUmVxdWVzdC5oIgorI2ltcG9ydCAiU2Vzc2lv
bklELmgiCisjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvT3duUHRyLmg+CisjaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgor
I2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKworI2lm
ZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19pbmNsdWRlKDxDRk5ldHdvcmsvQ0ZVUkxDYWNo
ZVByaXYuaD4pCisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+CisjZW5kaWYK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3R5cGVkZWYgdm9pZCAoXkNGQ2FjaGVk
VVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKK2V4dGVy
biAiQyIgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFj
a0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFj
a0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBU
aGUgbWF4aW11bSBudW1iZXIgb2Ygc2Vjb25kcyB3ZSdsbCB0cnkgdG8gd2FpdCBmb3IgYSByZXNv
dXJjZSB0byBiZSBkaXNrIGNhY2hlZCBiZWZvcmUgd2UgZm9yZ2V0IHRoZSByZXF1ZXN0Lgorc3Rh
dGljIGNvbnN0IGRvdWJsZSBkaXNrQ2FjaGVNb25pdG9yVGltZW91dCA9IDIwOworCitQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gRGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJl
ZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2Fj
aGVkUmVzcG9uc2UpCit7CisgICAgQ0ZEYXRhUmVmIGRhdGEgPSBfQ0ZDYWNoZWRVUkxSZXNwb25z
ZUdldE1lbU1hcHBlZERhdGEoY2FjaGVkUmVzcG9uc2UpOworICAgIGlmICghZGF0YSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRh
KGRhdGEpOworfQorCit2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0
b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vz
c2lvbklELCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQoreworICAgIGlm
ICghY2FjaGVkUmVzcG9uc2UpCisgICAgICAgIHJldHVybjsKKworICAgIG5ldyBEaXNrQ2FjaGVN
b25pdG9yKHJlcXVlc3QsIHNlc3Npb25JRCwgY2FjaGVkUmVzcG9uc2UpOyAvLyBCYWxhbmNlZCBi
eSBhZG9wdFB0ciBpbiB0aGUgYmxvY2tzIHNldHVwIGluIHRoZSBjb25zdHJ1Y3Rvciwgb25lIG9m
IHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gcnVuLgorfQorCitEaXNrQ2FjaGVNb25pdG9yOjpEaXNr
Q2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNl
c3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkKKyAgICA6IG1f
cmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpCisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIC8vIFNldCB1cCBhIGRlbGF5ZWQg
Y2FsbGJhY2sgdG8gY2FuY2VsIHRoaXMgbW9uaXRvciBpZiB0aGUgcmVzb3VyY2UgaGFzbid0IGJl
ZW4gY2FjaGVkIHlldC4KKyAgICBfX2Jsb2NrIERpc2tDYWNoZU1vbml0b3IqIHJhd01vbml0b3Ig
PSB0aGlzOworCisgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1F
X05PVywgTlNFQ19QRVJfU0VDICogZGlza0NhY2hlTW9uaXRvclRpbWVvdXQpLCBkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFs
YW5jZWQgYnkgYG5ldyBEaXNrQ2FjaGVNb25pdG9yYCBpbiBtb25pdG9yRmlsZUJhY2tpbmdTdG9y
ZUNyZWF0aW9uLgorICAgICAgICByYXdNb25pdG9yID0gMDsKKyAgICB9KTsKKworICAgIC8vIFNl
dCB1cCB0aGUgZGlzayBjYWNoaW5nIGNhbGxiYWNrIHRvIGNyZWF0ZSB0aGUgU2hhcmVhYmxlUmVz
b3VyY2UgYW5kIHNlbmQgaXQgdG8gdGhlIFdlYlByb2Nlc3MuCisgICAgQ0ZDYWNoZWRVUkxSZXNw
b25zZUNhbGxCYWNrQmxvY2sgYmxvY2sgPSBeKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVk
UmVzcG9uc2UpCisgICAgeworICAgICAgICAvLyBJZiB0aGUgbW9uaXRvciBpc24ndCB0aGVyZSB0
aGVuIGl0IHRpbWVkIG91dCBiZWZvcmUgdGhpcyByZXNvdXJjZSB3YXMgY2FjaGVkIHRvIGRpc2su
CisgICAgICAgIGlmICghcmF3TW9uaXRvcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBPd25QdHI8RGlza0NhY2hlTW9uaXRvcj4gbW9uaXRvciA9IGFkb3B0UHRyKHJhd01vbml0b3Ip
OyAvLyBCYWxhbmNlZCBieSBgbmV3IERpc2tDYWNoZU1vbml0b3JgIGluIG1vbml0b3JGaWxlQmFj
a2luZ1N0b3JlQ3JlYXRpb24uCisgICAgICAgIHJhd01vbml0b3IgPSAwOworCisgICAgICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IGZpbGVCYWNrZWRCdWZmZXIgPSBEaXNrQ2FjaGVNb25pdG9yOjp0
cnlHZXRGaWxlQmFja2VkU2hhcmVkQnVmZmVyRnJvbUNGVVJMQ2FjaGVkUmVzcG9uc2UoY2FjaGVk
UmVzcG9uc2UpOworICAgICAgICBpZiAoIWZpbGVCYWNrZWRCdWZmZXIpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbW9uaXRvci0+cmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKGZpbGVC
YWNrZWRCdWZmZXIpOworICAgIH07CisKKyAgICBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2Ft
ZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKGNhY2hlZFJlc3BvbnNlLCBibG9jaywgZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSk7Cit9CisKK3ZvaWQgRGlza0NhY2hlTW9uaXRvcjo6cmVzb3VyY2VC
ZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQmFja2VkQnVmZmVy
KQoreworICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291
cmNlRm9yUmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdCwgbV9zZXNzaW9uSUQpOworICAgIGlmICgh
cmVzb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc291cmNlLT50cnlSZXBsYWNlRW5j
b2RlZERhdGEoZmlsZUJhY2tlZEJ1ZmZlcik7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJy
ZXNvdXJjZUxvYWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJl
c291cmNlTG9hZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OGI5NGY2NDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2Ev
U3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCisKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkRpc2tDYWNoZU1vbml0b3IuaCIK
KyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK0BpbnRlcmZhY2UgTlNDYWNoZWRVUkxSZXNw
b25zZSAoRGV0YWlscykKKy0oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZilfQ0ZDYWNoZWRVUkxSZXNw
b25zZTsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKENGTkVUV09SSykK
KworQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNo
ZWRSZXNwb25zZSkKK3sKKyAgICBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdT
dG9yZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9yZXNvdXJjZS0+c2Vzc2lvbklEKCksIGNhY2hlZFJl
c3BvbnNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKGhh
bmRsZSwgY2FjaGVkUmVzcG9uc2UpOworfQorCisjZWxzZQorCitOU0NhY2hlZFVSTFJlc3BvbnNl
KiBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgRGlza0NhY2hlTW9u
aXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihyZXF1ZXN0KCksIG1fcmVzb3Vy
Y2UtPnNlc3Npb25JRCgpLCBbcmVzcG9uc2UgX0NGQ2FjaGVkVVJMUmVzcG9uc2VdKTsKKyAgICBy
ZXR1cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2Up
OworfQorCisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA5YmM5ODMuLjZmNTgzOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxNC0wOC0xMyAgUHJhdGlrIFNvbGFua2kgIDxwc29s
YW5raUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBEaXNrQ2FjaGVNb25pdG9yIHRvIFdlYkNv
cmUgc28gdGhhdCBXZWJLaXQxIGNsaWVudHMgY2FuIHVzZSBpdCBhcyB3ZWxsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU4OTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oOgorICAgICAgICAgICAgSW5oZXJpdCBmcm9tIFdl
YkNvcmU6OkRpc2tDYWNoZU1vbml0b3Igd2hpY2ggaGFzIHRoZSBidWxrIG9mIHRoZSBmdW5jdGlv
bmFsaXR5IG5vdy4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6On5O
ZXR3b3JrRGlza0NhY2hlTW9uaXRvcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05l
dHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGlza0Nh
Y2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpOZXR3b3JrRGlza0NhY2hlTW9uaXRvcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJjZUJlY2Ft
ZUZpbGVCYWNrZWQpOgorICAgICAgICAgICAgT3ZlcnJpZGUgdmlydHVhbCBtZXRob2QgYW5kIHNl
bmQgdGhlIGRhdGEgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhcyBiZWZvcmUuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbToKKworMjAx
NC0wOC0xMyAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKICAgICAgICAg
UmVuYW1lIERpc2tDYWNoZU1vbml0b3IgdG8gTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg5NwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNo
ZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlz
a0NhY2hlTW9uaXRvci5oCmluZGV4IGEzMzRjMjIuLmNhMzIwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9u
aXRvci5oCkBAIC0yNyw4ICsyNywxMCBAQAogI2RlZmluZSBOZXR3b3JrRGlza0NhY2hlTW9uaXRv
cl9oCiAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNr
Q2FjaGVNb25pdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBAIC0zOCwyMiAr
NDAsMjIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIAotY2xhc3MgTmV0d29ya0Rp
c2tDYWNoZU1vbml0b3IgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK2NsYXNzIE5ldHdv
cmtEaXNrQ2FjaGVNb25pdG9yIDogcHVibGljIFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3IsIElQ
Qzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbW9uaXRvckZpbGVC
YWNraW5nU3RvcmVDcmVhdGlvbihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIqKTsKLQotICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICB+TmV0
d29ya0Rpc2tDYWNoZU1vbml0b3IoKSB7IH0KIAogcHJpdmF0ZToKICAgICBOZXR3b3JrRGlza0Nh
Y2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIq
KTsKIAorICAgIC8vIFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3IKKyAgICB2aXJ0dWFsIHZvaWQg
cmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
Pikgb3ZlcnJpZGU7CisKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICB2aXJ0dWFsIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7CiAK
ICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRv
V2ViUHJvY2VzczsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVl
c3Q7Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1v
bml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tD
YWNoZU1vbml0b3IubW0KaW5kZXggMTEyYjAxNC4uMTg3NGRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9u
aXRvci5tbQpAQCAtMzAsNyArMzAsNiBAQAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9y
dCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgog
CiAjaWZkZWYgX19oYXNfaW5jbHVkZQogI2lmIF9faGFzX2luY2x1ZGUoPENGTmV0d29yay9DRlVS
TENhY2hlUHJpdi5oPikKQEAgLTQwLDE2ICszOSwxMCBAQAogCiAjaWYgKFBMQVRGT1JNKElPUykg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gODAwMDApIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MCkKIAotdHlw
ZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJM
UmVzcG9uc2VSZWYpOwotZXh0ZXJuICJDIiB2b2lkIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVj
YW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiwgQ0ZDYWNo
ZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2ssIGRpc3BhdGNoX3F1ZXVlX3QpOwotCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLS8vIFRoZSBtYXhpbXVt
IG51bWJlciBvZiBzZWNvbmRzIHdlJ2xsIHRyeSB0byB3YWl0IGZvciBhIHJlc291cmNlIHRvIGJl
IGRpc2sgY2FjaGVkIGJlZm9yZSB3ZSBmb3JnZXQgdGhlIHJlcXVlc3QuCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRpc2tDYWNoZU1vbml0b3JUaW1lb3V0ID0gMjA7Ci0KIHZvaWQgTmV0d29ya0Rpc2tD
YWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2FkZXIp
CiB7CiAgICAgaWYgKCFjYWNoZWRSZXNwb25zZSkKQEAgLTU3LDQzICs1MCwyMyBAQCB2b2lkIE5l
dHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKENG
Q2FjaGVkVVJMUmVzcG9ucwogCiAgICAgQVNTRVJUKGxvYWRlcik7CiAKLSAgICBuZXcgTmV0d29y
a0Rpc2tDYWNoZU1vbml0b3IoY2FjaGVkUmVzcG9uc2UsIGxvYWRlcik7IC8vIEJhbGFuY2VkIGJ5
IGFkb3B0UHRyIGluIHRoZSBibG9ja3Mgc2V0dXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBvbmUgb2Yg
d2hpY2ggaXMgZ3VhcmFudGVlZCB0byBydW4uCisgICAgbmV3IE5ldHdvcmtEaXNrQ2FjaGVNb25p
dG9yKGNhY2hlZFJlc3BvbnNlLCBsb2FkZXIpOyAvLyBCYWxhbmNlZCBieSBhZG9wdFB0ciBpbiB0
aGUgYmxvY2tzIHNldHVwIGluIHRoZSBEaXNrQ2FjaGVNb25pdG9yIGNvbnN0cnVjdG9yLCBvbmUg
b2Ygd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBydW4uCiB9CiAKIE5ldHdvcmtEaXNrQ2FjaGVNb25p
dG9yOjpOZXR3b3JrRGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hl
ZFJlc3BvbnNlLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKLSAgICA6IG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKLSAgICAs
IG1fcmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpKQotICAgICwgbV9zZXNzaW9uSUQo
bG9hZGVyLT5zZXNzaW9uSUQoKSkKKyAgICA6IERpc2tDYWNoZU1vbml0b3IobG9hZGVyLT5yZXF1
ZXN0KCksIGxvYWRlci0+c2Vzc2lvbklEKCksIGNhY2hlZFJlc3BvbnNlKQorICAgICwgbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGxvYWRlci0+Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpKQogewot
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICAvLyBTZXQgdXAgYSBkZWxheWVk
IGNhbGxiYWNrIHRvIGNhbmNlbCB0aGlzIG1vbml0b3IgaWYgdGhlIHJlc291cmNlIGhhc24ndCBi
ZWVuIGNhY2hlZCB5ZXQuCi0gICAgX19ibG9jayBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciogcmF3
TW9uaXRvciA9IHRoaXM7Ci0KLSAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BB
VENIX1RJTUVfTk9XLCBOU0VDX1BFUl9TRUMgKiBkaXNrQ2FjaGVNb25pdG9yVGltZW91dCksIGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIGFkb3B0UHRyKHJhd01vbml0b3Ip
OyAvLyBCYWxhbmNlZCBieSBgbmV3IE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yYCBpbiBtb25pdG9y
RmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uLgotICAgICAgICByYXdNb25pdG9yID0gMDsKLSAgICB9
KTsKLQotICAgIC8vIFNldCB1cCB0aGUgZGlzayBjYWNoaW5nIGNhbGxiYWNrIHRvIGNyZWF0ZSB0
aGUgU2hhcmVhYmxlUmVzb3VyY2UgYW5kIHNlbmQgaXQgdG8gdGhlIFdlYlByb2Nlc3MuCi0gICAg
Q0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2sgYmxvY2sgPSBeKENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCi0gICAgewotICAgICAgICAvLyBJZiB0aGUgbW9uaXRv
ciBpc24ndCB0aGVyZSB0aGVuIGl0IHRpbWVkIG91dCBiZWZvcmUgdGhpcyByZXNvdXJjZSB3YXMg
Y2FjaGVkIHRvIGRpc2suCi0gICAgICAgIGlmICghcmF3TW9uaXRvcikKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBPd25QdHI8TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I+IG1vbml0b3Ig
PSBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQgYnkgYG5ldyBOZXR3b3JrRGlza0Nh
Y2hlTW9uaXRvcmAgaW4gbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbi4KLSAgICAgICAg
cmF3TW9uaXRvciA9IDA7Ci0gICAgICAgIAotICAgICAgICBTaGFyZWFibGVSZXNvdXJjZTo6SGFu
ZGxlIGhhbmRsZTsKLSAgICAgICAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp0cnlHZXRTaGFyZWFi
bGVIYW5kbGVGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShoYW5kbGUsIGNhY2hlZFJlc3BvbnNlKTsK
LSAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBtb25pdG9yLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRp
ZENhY2hlUmVzb3VyY2UobW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCksIGhhbmRsZSwgbV9zZXNz
aW9uSUQpKTsKLSAgICB9OwotCi0gICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxl
QmFja2VkQ2FsbEJhY2tCbG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCkpOworfQorCit2b2lkIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJj
ZUJlY2FtZUZpbGVCYWNrZWQoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGZpbGVCYWNrZWRCdWZm
ZXIpCit7CisgICAgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSBoYW5kbGU7CisgICAgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjp0cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKGhh
bmRsZSwgZmlsZUJhY2tlZEJ1ZmZlci5nZXQoKSk7CisgICAgaWYgKGhhbmRsZS5pc051bGwoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKHJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUsIHNlc3Np
b25JRCgpKSk7CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogTmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6
Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCmluZGV4
IGQ1MzRkMjguLjQyY2JjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAorI2ltcG9ydCAiTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdvcmtEaXNrQ2FjaGVNb25p
dG9yLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZUhhbmRsZS5oPgotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236722</attachid>
            <date>2014-08-16 13:40:22 -0700</date>
            <delta_ts>2014-08-17 11:42:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135896-20140816134012.patch</filename>
            <type>text/plain</type>
            <size>35315</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDAzNjViNGI0MmEx
OTljNjlkZWQzNGZiYjFmN2U0ZGZlOTJkZi4uYzA0NzEwMTNmMjNjYWZlYWY0MDIzNzgyNjdmOGRj
ZjAwNzE0N2VlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA4LTE2ICBQcmF0
aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIERpc2tDYWNo
ZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0IFdlYktpdDEgY2xpZW50cyBjYW4gdXNlIGl0IGFz
IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NTg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yIGNvZGUgYW5kIG1vdmUgaXQgdG8gV2ViQ29yZS4KKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgICAgIE1ha2Ugd2lsbENh
Y2hlUmVzcG9uc2UgcHJvdGVjdGVkIHNvIHRoYXQgU3VicmVzb3VyY2VMb2FkZXIgY2FuIG92ZXJy
aWRlIGl0LgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAgICAgTW9z
dGx5IHRoZSBzYW1lIGFzIHRoZSBleGlzdGluZyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciBjbGFz
cyBpbiBXZWJLaXQyLiBJbiB0aGUKKyAgICAgICAgICAgIENGTmV0d29yayBjYWxsYmFjayBibG9j
aywgaXQgY2FsbHMgYSB2aXJ0dWFsIGZ1bmN0aW9uIHRoYXQgaXMgb3ZlcnJpZGVuIGJ5CisgICAg
ICAgICAgICBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciB0byBzZW5kIGEgbWVzc2FnZSB0byBXZWJD
b250ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjp+RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjpyZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6c2Vzc2lv
bklEKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJl
ZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKToKKyAgICAgICAgICAgIENvcGllZCBmcm9t
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21D
RlVSTENhY2hlZFJlc3BvbnNlLgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6
bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNr
Q2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tD
YWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZCk6CisgICAgICAgICAgICBSZXBs
YWNlIHRoZSBjYWNoZWQgcmVzb3VyY2UgZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmls
ZSBiYWNrZWQgYnVmZmVyLiBUaGlzIGlzCisgICAgICAgICAgICB1c2VkIGluIFdlYktpdDEgKGFu
ZCBhbHNvIGZvciBhbnkgcmVzb3VyY2UgbG9hZHMgdGhhdCBoYXBwZW4gZnJvbSB0aGUgV2ViQ29u
dGVudAorICAgICAgICAgICAgcHJvY2VzcykuCisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJl
c291cmNlTG9hZGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgICAgIE92ZXJyaWRlIHdpbGxD
YWNoZXJlc3BvbnNlIGZyb20gUmVzb3VyY2VMb2FkZXIgdG8gbGlzdGVuIGZvciBkaXNrIGNhY2hl
IG5vdGlmaWNhdGlvbnMuCisKIDIwMTQtMDgtMTUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBEbyBub3QgdXNlIEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkgdG8g
ZmxhZyBmdWxsIHJlcGFpbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2Mzg1ZjczMzE2ZjljZDVhNmJkNjE0
ZDNlMTNhZWY4MzAzNmZjOGIuLjIwOWQwMGEzZjQyMDljNWY2MjcwODEyZmVkZTJlZTA1MGRlY2E4
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxNC0wOC0xNiAgUHJhdGlrIFNvbGFu
a2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBEaXNrQ2FjaGVNb25pdG9y
IHRvIFdlYkNvcmUgc28gdGhhdCBXZWJLaXQxIGNsaWVudHMgY2FuIHVzZSBpdCBhcyB3ZWxsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU4OTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oOgorICAgICAgICAgICAgSW5oZXJp
dCBmcm9tIFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3Igd2hpY2ggaGFzIHRoZSBidWxrIG9mIHRo
ZSBmdW5jdGlvbmFsaXR5IG5vdy4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rpc2tDYWNoZU1v
bml0b3I6On5OZXR3b3JrRGlza0NhY2hlTW9uaXRvcik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpOZXR3b3JrRGlza0NhY2hl
TW9uaXRvcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpyZXNv
dXJjZUJlY2FtZUZpbGVCYWNrZWQpOgorICAgICAgICAgICAgT3ZlcnJpZGUgdmlydHVhbCBtZXRo
b2QgYW5kIHNlbmQgdGhlIGRhdGEgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhcyBiZWZvcmUu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5t
bToKKworMjAxNC0wOC0xNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisK
ICAgICAgICAgUmVuYW1lIERpc2tDYWNoZU1vbml0b3IgdG8gTmV0d29ya0Rpc2tDYWNoZU1vbml0
b3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg5
NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDUyNWUzNTRiMDNmMmQ2ZmQ2ZThlNTJlNGQ2NWFh
MDViNTkxY2Y1NDUuLmVjNDRkOWEzNTg1NmI5YWZhMzQyNTBhZGJlMzljNzczOGI0ZjkwMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC02ODIsNiArNjgyLDcgQEAgX19aTjdXZWJDb3JlMTZEYXRh
YmFzZVN0cmF0ZWd5MjNjcmVhdGVJREJGYWN0b3J5QmFja2VuZEVSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyQWNjZWxlcmF0aW9uNmNyZWF0ZUViZGJkYmQK
IF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90YXRpb25SYXRlNmNyZWF0ZUViZGJk
YmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQ
dHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBfMTJSb3RhdGlvblJhdGVFRUViZAor
X19aTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25pdG9yQzJFUktOU18xNVJlc291cmNlUmVxdWVzdEVO
U185U2Vzc2lvbklERVBLMjBfQ0ZDYWNoZWRVUkxSZXNwb25zZQogX19aTjdXZWJDb3JlMTZGaWx0
ZXJPcGVyYXRpb25zQzFFdgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19a
TjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0QzFFUE5TXzVGcmFtZUVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUUKQEAgLTIwNTMsNiArMjA1NCw3IEBAIF9fWlRW
TjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJFCiBfX1pUVk43V2ViQ29yZTE1U3RvcmFnZVN0cmF0
ZWd5RQogX19aVFZON1dlYkNvcmUxNkJsb2JSZWdpc3RyeUltcGxFCiBfX1pUVk43V2ViQ29yZTE2
RGF0YWJhc2VTdHJhdGVneUUKK19fWlRWTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25pdG9yRQogX19a
VFZON1dlYkNvcmUxNkljb25EYXRhYmFzZUJhc2VFCiBfX1pUVk43V2ViQ29yZTE3RnJhbWVMb2Fk
ZXJDbGllbnRFCiBfX1pUVk43V2ViQ29yZTE5Qmx1ckZpbHRlck9wZXJhdGlvbkUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMWFl
YWMyYTYxNTdhNWZkZTAxMzgzNzY1MGU1ODQ0NzA2NDkzMTgxLi5mNTE5OThjMzI5MGQ4MjYyYjAx
NzU2MzMwMDA1OWZiZWJmMjQyZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDMwLDYgKzI0MzAsNyBAQAogCQk3Q0U2Q0JG
QjE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2Q0JGQTE4N0YzNzA3MDBENDZCRjUgLyog
Rm9ybWF0Q29udmVydGVyLmggKi87IH07CiAJCTdDRTZDQkZEMTg3RjM5NDkwMEQ0NkJGNSAvKiBG
b3JtYXRDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNkNCRkMxODdGMzk0OTAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5jcHAg
Ki87IH07CiAJCTdENzQxQkRBMTc3MjI2QUEwMDg1OTE3MCAvKiBDU1NWYWx1ZUtleXdvcmRzLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTY1ODE0ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovOyB9
OworCQk3RTI0NEJCQzE5OUU3QUZGMDAyOTM5RTkgLyogRGlza0NhY2hlTW9uaXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyNDRCQkIxOTlFN0FG
OTAwMjkzOUU5IC8qIERpc2tDYWNoZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVy
Z2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3RUYyRTEzMzkyMDg4
MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3Vi
cmVzb3VyY2VMb2FkZXJDRi5jcHAgKi87IH07CiAJCTdFNDI4Q0U1MTNFMzQwN0YwMDNCNjYxQyAv
KiBSZXNvdXJjZUhhbmRsZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNDI4Q0U0MTNFMzQwN0YwMDNCNjYxQyAvKiBSZXNvdXJjZUhhbmRsZUlP
Uy5tbSAqLzsgfTsKQEAgLTI0MzgsNiArMjQzOSw3IEBACiAJCTdFNDc0RTFFMTI0OTREQzkwMDIz
NTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBT
UUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTQ3NEUxQzEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0
NzRFMjAxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxRDEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLzsgfTsKKwkJN0U0REUxMEQx
OThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBDMTk4QjEwQjYwMDUxQ0Iw
MiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi87IH07CiAJCTdFNUQ3QTc2MTYxRDNGOEYw
MDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNF
bGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKIAkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8q
IE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmggKi87IH07CiAJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFNjZFMjMxMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcCAqLzsgfTsKQEAgLTI0NDYsNiArMjQ0OCw3IEBACiAJCTdFNjZFMjM0MTdFNkVCNkMw
MEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMyMTdFNkVCNkMwMEY3RTdGRiAv
KiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCAqLzsgfTsKIAkJN0U3REUxRkQxOTVDRUYy
NjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJl
c291cmNlUmVxdWVzdENvY29hLm1tICovOyB9OwogCQk3RTdERTIwMjE5NUNFRkNEMDAzNTM2M0Ig
LyogUmVzb3VyY2VSZXF1ZXN0SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVz
dElPUy5tbSAqLzsgfTsKKwkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNl
TG9hZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5t
bSAqLzsgfTsKIAkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dl
ZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNh
dG9yLmNwcCAqLzsgfTsKIAkJN0U5OUFGNTMwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZElu
ZGljYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VB
MzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAg
Ki87IH07CkBAIC05NTg2LDYgKzk1ODksNyBAQAogCQk3Q0U2ODM0NjE5MjE4MjE1MDBGNEQ5Mjgg
LyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2Q0JGQTE4N0YzNzA3MDBENDZCRjUgLyogRm9y
bWF0Q29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1hdENv
bnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2Q0JGQzE4N0YzOTQ5
MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZvcm1hdENvbnZlcnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdFMjQ0QkJCMTk5RTdBRjkwMDI5MzlFOSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERpc2tDYWNoZU1vbml0b3IuaDsgcGF0aCA9
IGNvY29hL0Rpc2tDYWNoZU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHVyZ2VQcmlvcml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJD
Ri5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdWJyZXNvdXJjZUxv
YWRlckNGLmNwcDsgcGF0aCA9IGNmL1N1YnJlc291cmNlTG9hZGVyQ0YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3VyY2VI
YW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNv
dXJjZUhhbmRsZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1OTQsNiAr
OTU5OCw3IEBACiAJCTdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRy
YWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU1FMaXRlRGF0
YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHBhdGggPSBzcWwvU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDc0RTFDMTI0OTREQzkwMDIz
NTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHBhdGggPSBzcWwvU1FMaXRlRGF0YWJh
c2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDc0RTFEMTI0OTRE
QzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcDsgcGF0aCA9IHNx
bC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRGlza0NhY2hlTW9uaXRvckNv
Y29hLm1tOyBwYXRoID0gY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVu
dEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNF
bGVtZW50SW5kZXhVaW50LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0
IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gT0VTRWxlbWVudEluZGV4VWludC5oOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U2NkUyMzExNkQ2RUI2QzAwRjdF
N0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHBhdGggPSBj
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05NjAyLDYgKzk2MDcsNyBAQAogCQk3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBwYXRoID0gY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RTdERTFGQzE5NUNFRjI2MDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZVJlcXVlc3RDb2Nv
YS5tbTsgcGF0aCA9IGNvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3RTdERTIwMTE5NUNFRkNEMDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1
ZXN0SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3Vy
Y2VSZXF1ZXN0SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RThGQURDMzE5
OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW07IHBh
dGggPSBjb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2Vk
SW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRv
d0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93Rm9jdXNBbGxvd2VkSW5k
aWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFQTMwRjYyMTZERkQ2Mjcw
MDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NzQ2LDYgKzE2NzUyLDE2IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJN0U0REUxMEIxOThCMTA4MTAwNTFDQjAyIC8qIGNvY29hICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3RTI0NEJCQjE5OUU3
QUY5MDAyOTM5RTkgLyogRGlza0NhY2hlTW9uaXRvci5oICovLAorCQkJCTdFNERFMTBDMTk4QjEw
QjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJN0U4RkFEQzMx
OTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCisJCQkpOwor
CQkJbmFtZSA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0U3
REUxRkUxOTVDRUYyRDAwMzUzNjNCIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxMTQ0LDYgKzIxMTYwLDcgQEAKIAkJCQk1MTJERDhFODBE
OTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKIAkJCQlBOEQyQjI1MjEyODdBNTYwMDBBRjRE
REEgLyogY2FjaGUgKi8sCiAJCQkJN0VFNjg0NzMxMkQyNkU1NTAwRTc5NDE1IC8qIGNmICovLAor
CQkJCTdFNERFMTBCMTk4QjEwODEwMDUxQ0IwMiAvKiBjb2NvYSAqLywKIAkJCQk1MTI2RTZCNjBB
MkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLywKIAkJCQlDRTc5RDY4NjE3RjIyMEVEMDA4MTVDMDAg
LyogaW9zICovLAogCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8sCkBAIC0y
NDEwMyw2ICsyNDEyMCw3IEBACiAJCQkJMzFDMEZGNEIwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdl
YktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDYwMzc5
MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZh
bHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFMjQ0QkJDMTk5RTdBRkYwMDI5MzlF
OSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkND
QzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAv
KiBET01XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MTkxLDYg
KzI4MjA5LDcgQEAKIAkJCQk2NTlEREM4MjA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QkE4RDEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTQ5NEVERTBBMTIzRjRDMDBGREFG
QzEgLyogSlNEb2N1bWVudEZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdFNERFMTBE
MTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gaW4gU291cmNlcyAq
LywKIAkJCQk2NURGMzFGNTA5RDFDQzYwMDAwQkUzMjUgLyogSlNEb2N1bWVudFR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2MzA5RUIwQzdDMDA5RDg0
NjggLyogSlNET01CaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4NTUsNiArMjg4NzQs
NyBAQAogCQkJCUZENkYyNTJDMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEUxOTU5MjEwQTM5REFCQTAwMjIwRkU1
IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3QTZEMUVCMTQ5
MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTdFOEZBREM0MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRlckNvY29h
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCODU5RjcxNjBENDhBNDAwRTVCMDdGIC8qIE1lZGlh
S2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0Ix
IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMUI0QTY1
MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4NjQ3NWUxZWY1YTZi
ZDI5MTljYTQ0ZGVhN2I0OTRjMjIwZTlhYzdmLi5lMzEyOGEyNDg1ZWM4ZDk5OGQyNDJkYjgwODc1
ZmE2Mjc3YjFkN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAt
MTU1LDYgKzE1NSwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIG9wdGlvbnMoKSB7IHJldHVybiBtX29wdGlvbnM7IH0KIAorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiAhVVNFKENGTkVUV09SSykKKyAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2Uq
IHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSop
IG92ZXJyaWRlOworI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUksp
CisgICAgdmlydHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisjZW5kaWYK
KwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgUmVmUHRyPEZyYW1l
PiBtX2ZyYW1lOwogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsK
QEAgLTE4NiwxMiArMTkzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKSBvdmVycmlkZSB7IHJldHVybiBjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZSk7IH0KICNlbmRpZgog
ICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIG92ZXJyaWRlIHsgcmVjZWl2
ZWRDYW5jZWxsYXRpb24oY2hhbGxlbmdlKTsgfQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNF
KENGTkVUV09SSykKLSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOwot
I2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUkspCi0gICAgdmlydHVh
bCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Ci0jZW5kaWYKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb25uZWN0aW9u
UHJvcGVydGllcyhSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IDVmNTczODJjZTU3N2Q4ODQ5ZmZm
YWQ0ZTEwNDllZTBiYmZiZWRiMWYuLmI5OWIyODg4NTMxMjMzMTg2M2MwZTNlOWI0MzE0ZDk0NmEy
OTUyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC03
NCw2ICs3NCwxMyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNv
bnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAh
VVNFKENGTkVUV09SSykKKyAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNo
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRl
OworI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUkspCisgICAgdmly
dHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFu
ZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFVT
RShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNEYXRhQXJyYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkM2Yz
NWE2MTQ0N2E0OTM0YzAyZWM5MjM0ZGRmN2RkMGQ5ODE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNrQ2FjaGVNb25pdG9yX2gKKyNkZWZpbmUgRGlz
a0NhY2hlTW9uaXRvcl9oCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIERp
c2tDYWNoZU1vbml0b3IgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIG1vbml0b3JGaWxlQmFj
a2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklELCBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICB2aXJ0dWFsIH5EaXNrQ2FjaGVNb25pdG9yKCkgeyB9
CisKK3Byb3RlY3RlZDoKKyAgICBEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CisK
KyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0
IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRGlza0NhY2hlTW9uaXRvcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYTE1MjA1MDBlZDE5MTAwMDdmOTA2OGFmZDcwM2RmNTk3N2RjODI4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1v
bml0b3JDb2NvYS5tbQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiRGlza0NhY2hlTW9uaXRvci5oIgorCisjaW1wb3J0ICJDYWNoZWRS
ZXNvdXJjZS5oIgorI2ltcG9ydCAiTWVtb3J5Q2FjaGUuaCIKKyNpbXBvcnQgIlJlc291cmNlUmVx
dWVzdC5oIgorI2ltcG9ydCAiU2Vzc2lvbklELmgiCisjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIK
KyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvT3duUHRyLmg+CisjaW1w
b3J0IDx3dGYvUGFzc093blB0ci5oPgorI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBv
cnQgPHd0Zi9SZWZQdHIuaD4KKworI2lmZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19pbmNs
dWRlKDxDRk5ldHdvcmsvQ0ZVUkxDYWNoZVByaXYuaD4pCisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NG
VVJMQ2FjaGVQcml2Lmg+CisjZW5kaWYKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisK
K3R5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hl
ZFVSTFJlc3BvbnNlUmVmKTsKK2V4dGVybiAiQyIgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNl
dEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENG
Q2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2Vjb25kcyB3ZSds
bCB0cnkgdG8gd2FpdCBmb3IgYSByZXNvdXJjZSB0byBiZSBkaXNrIGNhY2hlZCBiZWZvcmUgd2Ug
Zm9yZ2V0IHRoZSByZXF1ZXN0Lgorc3RhdGljIGNvbnN0IGRvdWJsZSBkaXNrQ2FjaGVNb25pdG9y
VGltZW91dCA9IDIwOworCitQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRGlza0NhY2hlTW9uaXRv
cjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKENG
Q2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCit7CisgICAgQ0ZEYXRhUmVmIGRh
dGEgPSBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdldE1lbU1hcHBlZERhdGEoY2FjaGVkUmVzcG9uc2Up
OworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
U2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhKGRhdGEpOworfQorCit2b2lkIERpc2tDYWNoZU1vbml0
b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNh
Y2hlZFJlc3BvbnNlKQoreworICAgIGlmICghY2FjaGVkUmVzcG9uc2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIG5ldyBEaXNrQ2FjaGVNb25pdG9yKHJlcXVlc3QsIHNlc3Npb25JRCwgY2FjaGVk
UmVzcG9uc2UpOyAvLyBCYWxhbmNlZCBieSBhZG9wdFB0ciBpbiB0aGUgYmxvY2tzIHNldHVwIGlu
IHRoZSBjb25zdHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gcnVuLgorfQor
CitEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBj
YWNoZWRSZXNwb25zZSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpCisgICAgLCBt
X3Nlc3Npb25JRChzZXNzaW9uSUQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKwor
ICAgIC8vIFNldCB1cCBhIGRlbGF5ZWQgY2FsbGJhY2sgdG8gY2FuY2VsIHRoaXMgbW9uaXRvciBp
ZiB0aGUgcmVzb3VyY2UgaGFzbid0IGJlZW4gY2FjaGVkIHlldC4KKyAgICBfX2Jsb2NrIERpc2tD
YWNoZU1vbml0b3IqIHJhd01vbml0b3IgPSB0aGlzOworCisgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlz
cGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNFQ19QRVJfU0VDICogZGlza0NhY2hlTW9u
aXRvclRpbWVvdXQpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICBhZG9w
dFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQgYnkgYG5ldyBEaXNrQ2FjaGVNb25pdG9yYCBp
biBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uLgorICAgICAgICByYXdNb25pdG9yID0g
MDsKKyAgICB9KTsKKworICAgIC8vIFNldCB1cCB0aGUgZGlzayBjYWNoaW5nIGNhbGxiYWNrIHRv
IGNyZWF0ZSB0aGUgU2hhcmVhYmxlUmVzb3VyY2UgYW5kIHNlbmQgaXQgdG8gdGhlIFdlYlByb2Nl
c3MuCisgICAgQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2sgYmxvY2sgPSBeKENGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCisgICAgeworICAgICAgICAvLyBJZiB0
aGUgbW9uaXRvciBpc24ndCB0aGVyZSB0aGVuIGl0IHRpbWVkIG91dCBiZWZvcmUgdGhpcyByZXNv
dXJjZSB3YXMgY2FjaGVkIHRvIGRpc2suCisgICAgICAgIGlmICghcmF3TW9uaXRvcikKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBPd25QdHI8RGlza0NhY2hlTW9uaXRvcj4gbW9uaXRv
ciA9IGFkb3B0UHRyKHJhd01vbml0b3IpOyAvLyBCYWxhbmNlZCBieSBgbmV3IERpc2tDYWNoZU1v
bml0b3JgIGluIG1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24uCisgICAgICAgIHJhd01v
bml0b3IgPSAwOworCisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGZpbGVCYWNrZWRCdWZm
ZXIgPSBEaXNrQ2FjaGVNb25pdG9yOjp0cnlHZXRGaWxlQmFja2VkU2hhcmVkQnVmZmVyRnJvbUNG
VVJMQ2FjaGVkUmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UpOworICAgICAgICBpZiAoIWZpbGVCYWNr
ZWRCdWZmZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbW9uaXRvci0+cmVzb3Vy
Y2VCZWNhbWVGaWxlQmFja2VkKGZpbGVCYWNrZWRCdWZmZXIpOworICAgIH07CisKKyAgICBfQ0ZD
YWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKGNhY2hlZFJl
c3BvbnNlLCBibG9jaywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7Cit9CisKK3ZvaWQgRGlz
a0NhY2hlTW9uaXRvcjo6cmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBmaWxlQmFja2VkQnVmZmVyKQoreworICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdCwg
bV9zZXNzaW9uSUQpOworICAgIGlmICghcmVzb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAg
IHJlc291cmNlLT50cnlSZXBsYWNlRW5jb2RlZERhdGEoZmlsZUJhY2tlZEJ1ZmZlcik7Cit9CisK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGI5NGY2NDYxZGE1N2Y3MTA5MjEwNzVkNzVkZDAwNDAwNGIwZGRjZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1t
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgi
CisjaW5jbHVkZSAiRGlza0NhY2hlTW9uaXRvci5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKKworQGludGVyZmFjZSBOU0NhY2hlZFVSTFJlc3BvbnNlIChEZXRhaWxzKQorLShDRkNhY2hl
ZFVSTFJlc3BvbnNlUmVmKV9DRkNhY2hlZFVSTFJlc3BvbnNlOworQGVuZAorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKyNpZiBVU0UoQ0ZORVRXT1JLKQorCitDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
IFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQoreworICAgIERpc2tD
YWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24ocmVxdWVzdCgpLCBt
X3Jlc291cmNlLT5zZXNzaW9uSUQoKSwgY2FjaGVkUmVzcG9uc2UpOworICAgIHJldHVybiBSZXNv
dXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoaGFuZGxlLCBjYWNoZWRSZXNwb25zZSk7Cit9
CisKKyNlbHNlCisKK05TQ2FjaGVkVVJMUmVzcG9uc2UqIFN1YnJlc291cmNlTG9hZGVyOjp3aWxs
Q2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiByZXNwb25zZSkKK3sKKyAgICBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdT
dG9yZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9yZXNvdXJjZS0+c2Vzc2lvbklEKCksIFtyZXNwb25z
ZSBfQ0ZDYWNoZWRVUkxSZXNwb25zZV0pOworICAgIHJldHVybiBSZXNvdXJjZUxvYWRlcjo6d2ls
bENhY2hlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7Cit9CisKKyNlbmRpZgorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNo
ZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlz
a0NhY2hlTW9uaXRvci5oCmluZGV4IGEzMzRjMjJmZDg2OTEzMzRlODdmZjAxYjQyMWE4YjZlYzcz
YTUwNDEuLmNhMzIwOGM4ZmYxNTI4NjYzMDEyOWMzYWVjN2I4MTEzYmQyNDgyZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9u
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlz
a0NhY2hlTW9uaXRvci5oCkBAIC0yNyw4ICsyNywxMCBAQAogI2RlZmluZSBOZXR3b3JrRGlza0Nh
Y2hlTW9uaXRvcl9oCiAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9EaXNrQ2FjaGVNb25pdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBA
IC0zOCwyMiArNDAsMjIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIAotY2xhc3Mg
TmV0d29ya0Rpc2tDYWNoZU1vbml0b3IgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK2Ns
YXNzIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yIDogcHVibGljIFdlYkNvcmU6OkRpc2tDYWNoZU1v
bml0b3IsIElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbW9u
aXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIqKTsKLQotICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0K
KyAgICB+TmV0d29ya0Rpc2tDYWNoZU1vbml0b3IoKSB7IH0KIAogcHJpdmF0ZToKICAgICBOZXR3
b3JrRGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIqKTsKIAorICAgIC8vIFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3IKKyAgICB2aXJ0
dWFsIHZvaWQgcmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPikgb3ZlcnJpZGU7CisKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICB2
aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3Zl
cnJpZGU7CiAKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29u
bmVjdGlvblRvV2ViUHJvY2VzczsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXNv
dXJjZVJlcXVlc3Q7Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rp
c2tDYWNoZU1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya0Rpc2tDYWNoZU1vbml0b3IubW0KaW5kZXggZmI4OTE3MjNkYzYyODIzMzFhMWZjZWFmMGJh
YTM3MmEwNmE0Mjg0MC4uMTg3NGRkNTNlNmVjOTZmZDhkM2ZmOTNiMTcxY2UzMDk2NTk4M2VjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNr
Q2FjaGVNb25pdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9O
ZXR3b3JrRGlza0NhY2hlTW9uaXRvci5tbQpAQCAtMzAsNyArMzAsNiBAQAogI2ltcG9ydCAiTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0IDx3
dGYvUGFzc093blB0ci5oPgogCiAjaWZkZWYgX19oYXNfaW5jbHVkZQogI2lmIF9faGFzX2luY2x1
ZGUoPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPikKQEAgLTQwLDE2ICszOSwxMCBAQAogCiAj
aWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
ODAwMDApIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA5MCkKIAotdHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNr
QmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwotZXh0ZXJuICJDIiB2b2lkIF9DRkNhY2hl
ZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiwgQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2ssIGRpc3BhdGNoX3F1
ZXVlX3QpOwotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLS8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWNvbmRzIHdlJ2xsIHRyeSB0byB3YWl0IGZv
ciBhIHJlc291cmNlIHRvIGJlIGRpc2sgY2FjaGVkIGJlZm9yZSB3ZSBmb3JnZXQgdGhlIHJlcXVl
c3QuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRpc2tDYWNoZU1vbml0b3JUaW1lb3V0ID0gMjA7Ci0K
IHZvaWQgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3Jl
YXRpb24oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0d29ya1Jlc291
cmNlTG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgaWYgKCFjYWNoZWRSZXNwb25zZSkKQEAgLTU3LDQz
ICs1MCwyMyBAQCB2b2lkIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tp
bmdTdG9yZUNyZWF0aW9uKENGQ2FjaGVkVVJMUmVzcG9ucwogCiAgICAgQVNTRVJUKGxvYWRlcik7
CiAKLSAgICBuZXcgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IoY2FjaGVkUmVzcG9uc2UsIGxvYWRl
cik7IC8vIEJhbGFuY2VkIGJ5IGFkb3B0UHRyIGluIHRoZSBibG9ja3Mgc2V0dXAgaW4gdGhlIGNv
bnN0cnVjdG9yLCBvbmUgb2Ygd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBydW4uCisgICAgbmV3IE5l
dHdvcmtEaXNrQ2FjaGVNb25pdG9yKGNhY2hlZFJlc3BvbnNlLCBsb2FkZXIpOyAvLyBCYWxhbmNl
ZCBieSBhZG9wdFB0ciBpbiB0aGUgYmxvY2tzIHNldHVwIGluIHRoZSBEaXNrQ2FjaGVNb25pdG9y
IGNvbnN0cnVjdG9yLCBvbmUgb2Ygd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBydW4uCiB9CiAKIE5l
dHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpOZXR3b3JrRGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKLSAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoKSkKLSAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpKQot
ICAgICwgbV9zZXNzaW9uSUQobG9hZGVyLT5zZXNzaW9uSUQoKSkKKyAgICA6IERpc2tDYWNoZU1v
bml0b3IobG9hZGVyLT5yZXF1ZXN0KCksIGxvYWRlci0+c2Vzc2lvbklEKCksIGNhY2hlZFJlc3Bv
bnNlKQorICAgICwgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGxvYWRlci0+Y29ubmVjdGlvblRv
V2ViUHJvY2VzcygpKQogewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICAv
LyBTZXQgdXAgYSBkZWxheWVkIGNhbGxiYWNrIHRvIGNhbmNlbCB0aGlzIG1vbml0b3IgaWYgdGhl
IHJlc291cmNlIGhhc24ndCBiZWVuIGNhY2hlZCB5ZXQuCi0gICAgX19ibG9jayBOZXR3b3JrRGlz
a0NhY2hlTW9uaXRvciogcmF3TW9uaXRvciA9IHRoaXM7Ci0KLSAgICBkaXNwYXRjaF9hZnRlcihk
aXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBOU0VDX1BFUl9TRUMgKiBkaXNrQ2FjaGVN
b25pdG9yVGltZW91dCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIGFk
b3B0UHRyKHJhd01vbml0b3IpOyAvLyBCYWxhbmNlZCBieSBgbmV3IE5ldHdvcmtEaXNrQ2FjaGVN
b25pdG9yYCBpbiBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uLgotICAgICAgICByYXdN
b25pdG9yID0gMDsKLSAgICB9KTsKLQotICAgIC8vIFNldCB1cCB0aGUgZGlzayBjYWNoaW5nIGNh
bGxiYWNrIHRvIGNyZWF0ZSB0aGUgU2hhcmVhYmxlUmVzb3VyY2UgYW5kIHNlbmQgaXQgdG8gdGhl
IFdlYlByb2Nlc3MuCi0gICAgQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2sgYmxvY2sg
PSBeKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCi0gICAgewotICAgICAg
ICAvLyBJZiB0aGUgbW9uaXRvciBpc24ndCB0aGVyZSB0aGVuIGl0IHRpbWVkIG91dCBiZWZvcmUg
dGhpcyByZXNvdXJjZSB3YXMgY2FjaGVkIHRvIGRpc2suCi0gICAgICAgIGlmICghcmF3TW9uaXRv
cikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBPd25QdHI8TmV0d29ya0Rpc2tDYWNo
ZU1vbml0b3I+IG1vbml0b3IgPSBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQgYnkg
YG5ldyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcmAgaW4gbW9uaXRvckZpbGVCYWNraW5nU3RvcmVD
cmVhdGlvbi4KLSAgICAgICAgcmF3TW9uaXRvciA9IDA7Ci0KLSAgICAgICAgU2hhcmVhYmxlUmVz
b3VyY2U6OkhhbmRsZSBoYW5kbGU7Ci0gICAgICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5
R2V0U2hhcmVhYmxlSGFuZGxlRnJvbUNGVVJMQ2FjaGVkUmVzcG9uc2UoaGFuZGxlLCBjYWNoZWRS
ZXNwb25zZSk7Ci0gICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1
cm47Cit9CiAKLSAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBo
YW5kbGUsIG1fc2Vzc2lvbklEKSk7Ci0gICAgfTsKK3ZvaWQgTmV0d29ya0Rpc2tDYWNoZU1vbml0
b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmls
ZUJhY2tlZEJ1ZmZlcikKK3sKKyAgICBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIGhhbmRsZTsK
KyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeUdldFNoYXJlYWJsZUhhbmRsZUZyb21TaGFy
ZWRCdWZmZXIoaGFuZGxlLCBmaWxlQmFja2VkQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoaGFuZGxl
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNl
dEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKGNhY2hlZFJlc3BvbnNlLCBibG9jaywgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKHJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUs
IHNlc3Npb25JRCgpKSk7CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogTmV0d29ya0Rpc2tDYWNoZU1v
bml0b3I6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1t
CmluZGV4IDQzYWVlMGE1MDc4Y2Y1OWZlZjJiMjliZmZhNjM4ZTg2YzQxOGU2MjcuLjE1Yzc5MmQ5
MzFjN2EwYTYzOWE0NmI0ZDU0NDZjZTgxZGY4OGEzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1h
Yy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAor
I2ltcG9ydCAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdv
cmtEaXNrQ2FjaGVNb25pdG9yLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2lt
cG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236731</attachid>
            <date>2014-08-17 11:42:20 -0700</date>
            <delta_ts>2014-08-18 12:13:00 -0700</delta_ts>
            <desc>Patch with build fixes</desc>
            <filename>bug-135896-20140817114207.patch</filename>
            <type>text/plain</type>
            <size>36029</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDAzNjViNGI0MmEx
OTljNjlkZWQzNGZiYjFmN2U0ZGZlOTJkZi4uYzA0NzEwMTNmMjNjYWZlYWY0MDIzNzgyNjdmOGRj
ZjAwNzE0N2VlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA4LTE2ICBQcmF0
aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIERpc2tDYWNo
ZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0IFdlYktpdDEgY2xpZW50cyBjYW4gdXNlIGl0IGFz
IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NTg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yIGNvZGUgYW5kIG1vdmUgaXQgdG8gV2ViQ29yZS4KKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgICAgIE1ha2Ugd2lsbENh
Y2hlUmVzcG9uc2UgcHJvdGVjdGVkIHNvIHRoYXQgU3VicmVzb3VyY2VMb2FkZXIgY2FuIG92ZXJy
aWRlIGl0LgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAgICAgTW9z
dGx5IHRoZSBzYW1lIGFzIHRoZSBleGlzdGluZyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciBjbGFz
cyBpbiBXZWJLaXQyLiBJbiB0aGUKKyAgICAgICAgICAgIENGTmV0d29yayBjYWxsYmFjayBibG9j
aywgaXQgY2FsbHMgYSB2aXJ0dWFsIGZ1bmN0aW9uIHRoYXQgaXMgb3ZlcnJpZGVuIGJ5CisgICAg
ICAgICAgICBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciB0byBzZW5kIGEgbWVzc2FnZSB0byBXZWJD
b250ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjp+RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjpyZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6c2Vzc2lv
bklEKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJl
ZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKToKKyAgICAgICAgICAgIENvcGllZCBmcm9t
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21D
RlVSTENhY2hlZFJlc3BvbnNlLgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6
bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNr
Q2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tD
YWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZCk6CisgICAgICAgICAgICBSZXBs
YWNlIHRoZSBjYWNoZWQgcmVzb3VyY2UgZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmls
ZSBiYWNrZWQgYnVmZmVyLiBUaGlzIGlzCisgICAgICAgICAgICB1c2VkIGluIFdlYktpdDEgKGFu
ZCBhbHNvIGZvciBhbnkgcmVzb3VyY2UgbG9hZHMgdGhhdCBoYXBwZW4gZnJvbSB0aGUgV2ViQ29u
dGVudAorICAgICAgICAgICAgcHJvY2VzcykuCisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJl
c291cmNlTG9hZGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgICAgIE92ZXJyaWRlIHdpbGxD
YWNoZXJlc3BvbnNlIGZyb20gUmVzb3VyY2VMb2FkZXIgdG8gbGlzdGVuIGZvciBkaXNrIGNhY2hl
IG5vdGlmaWNhdGlvbnMuCisKIDIwMTQtMDgtMTUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBEbyBub3QgdXNlIEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkgdG8g
ZmxhZyBmdWxsIHJlcGFpbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2Mzg1ZjczMzE2ZjljZDVhNmJkNjE0
ZDNlMTNhZWY4MzAzNmZjOGIuLjIwOWQwMGEzZjQyMDljNWY2MjcwODEyZmVkZTJlZTA1MGRlY2E4
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxNC0wOC0xNiAgUHJhdGlrIFNvbGFu
a2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBEaXNrQ2FjaGVNb25pdG9y
IHRvIFdlYkNvcmUgc28gdGhhdCBXZWJLaXQxIGNsaWVudHMgY2FuIHVzZSBpdCBhcyB3ZWxsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU4OTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oOgorICAgICAgICAgICAgSW5oZXJp
dCBmcm9tIFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3Igd2hpY2ggaGFzIHRoZSBidWxrIG9mIHRo
ZSBmdW5jdGlvbmFsaXR5IG5vdy4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rpc2tDYWNoZU1v
bml0b3I6On5OZXR3b3JrRGlza0NhY2hlTW9uaXRvcik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpOZXR3b3JrRGlza0NhY2hl
TW9uaXRvcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpyZXNv
dXJjZUJlY2FtZUZpbGVCYWNrZWQpOgorICAgICAgICAgICAgT3ZlcnJpZGUgdmlydHVhbCBtZXRo
b2QgYW5kIHNlbmQgdGhlIGRhdGEgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhcyBiZWZvcmUu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5t
bToKKworMjAxNC0wOC0xNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisK
ICAgICAgICAgUmVuYW1lIERpc2tDYWNoZU1vbml0b3IgdG8gTmV0d29ya0Rpc2tDYWNoZU1vbml0
b3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg5
NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDUyNWUzNTRiMDNmMmQ2ZmQ2ZThlNTJlNGQ2NWFh
MDViNTkxY2Y1NDUuLmVjNDRkOWEzNTg1NmI5YWZhMzQyNTBhZGJlMzljNzczOGI0ZjkwMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC02ODIsNiArNjgyLDcgQEAgX19aTjdXZWJDb3JlMTZEYXRh
YmFzZVN0cmF0ZWd5MjNjcmVhdGVJREJGYWN0b3J5QmFja2VuZEVSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyQWNjZWxlcmF0aW9uNmNyZWF0ZUViZGJkYmQK
IF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90YXRpb25SYXRlNmNyZWF0ZUViZGJk
YmQKIF9fWk43V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQ
dHJJTlMwXzEyQWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBfMTJSb3RhdGlvblJhdGVFRUViZAor
X19aTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25pdG9yQzJFUktOU18xNVJlc291cmNlUmVxdWVzdEVO
U185U2Vzc2lvbklERVBLMjBfQ0ZDYWNoZWRVUkxSZXNwb25zZQogX19aTjdXZWJDb3JlMTZGaWx0
ZXJPcGVyYXRpb25zQzFFdgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19a
TjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0QzFFUE5TXzVGcmFtZUVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUUKQEAgLTIwNTMsNiArMjA1NCw3IEBAIF9fWlRW
TjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJFCiBfX1pUVk43V2ViQ29yZTE1U3RvcmFnZVN0cmF0
ZWd5RQogX19aVFZON1dlYkNvcmUxNkJsb2JSZWdpc3RyeUltcGxFCiBfX1pUVk43V2ViQ29yZTE2
RGF0YWJhc2VTdHJhdGVneUUKK19fWlRWTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25pdG9yRQogX19a
VFZON1dlYkNvcmUxNkljb25EYXRhYmFzZUJhc2VFCiBfX1pUVk43V2ViQ29yZTE3RnJhbWVMb2Fk
ZXJDbGllbnRFCiBfX1pUVk43V2ViQ29yZTE5Qmx1ckZpbHRlck9wZXJhdGlvbkUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMWFl
YWMyYTYxNTdhNWZkZTAxMzgzNzY1MGU1ODQ0NzA2NDkzMTgxLi5mNTE5OThjMzI5MGQ4MjYyYjAx
NzU2MzMwMDA1OWZiZWJmMjQyZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDMwLDYgKzI0MzAsNyBAQAogCQk3Q0U2Q0JG
QjE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2Q0JGQTE4N0YzNzA3MDBENDZCRjUgLyog
Rm9ybWF0Q29udmVydGVyLmggKi87IH07CiAJCTdDRTZDQkZEMTg3RjM5NDkwMEQ0NkJGNSAvKiBG
b3JtYXRDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNkNCRkMxODdGMzk0OTAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5jcHAg
Ki87IH07CiAJCTdENzQxQkRBMTc3MjI2QUEwMDg1OTE3MCAvKiBDU1NWYWx1ZUtleXdvcmRzLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTY1ODE0ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovOyB9
OworCQk3RTI0NEJCQzE5OUU3QUZGMDAyOTM5RTkgLyogRGlza0NhY2hlTW9uaXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyNDRCQkIxOTlFN0FG
OTAwMjkzOUU5IC8qIERpc2tDYWNoZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVy
Z2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3RUYyRTEzMzkyMDg4
MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3Vi
cmVzb3VyY2VMb2FkZXJDRi5jcHAgKi87IH07CiAJCTdFNDI4Q0U1MTNFMzQwN0YwMDNCNjYxQyAv
KiBSZXNvdXJjZUhhbmRsZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNDI4Q0U0MTNFMzQwN0YwMDNCNjYxQyAvKiBSZXNvdXJjZUhhbmRsZUlP
Uy5tbSAqLzsgfTsKQEAgLTI0MzgsNiArMjQzOSw3IEBACiAJCTdFNDc0RTFFMTI0OTREQzkwMDIz
NTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBT
UUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTQ3NEUxQzEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0
NzRFMjAxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxRDEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLzsgfTsKKwkJN0U0REUxMEQx
OThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBDMTk4QjEwQjYwMDUxQ0Iw
MiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi87IH07CiAJCTdFNUQ3QTc2MTYxRDNGOEYw
MDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNF
bGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKIAkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8q
IE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmggKi87IH07CiAJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFNjZFMjMxMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcCAqLzsgfTsKQEAgLTI0NDYsNiArMjQ0OCw3IEBACiAJCTdFNjZFMjM0MTdFNkVCNkMw
MEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMyMTdFNkVCNkMwMEY3RTdGRiAv
KiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCAqLzsgfTsKIAkJN0U3REUxRkQxOTVDRUYy
NjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJl
c291cmNlUmVxdWVzdENvY29hLm1tICovOyB9OwogCQk3RTdERTIwMjE5NUNFRkNEMDAzNTM2M0Ig
LyogUmVzb3VyY2VSZXF1ZXN0SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVz
dElPUy5tbSAqLzsgfTsKKwkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNl
TG9hZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5t
bSAqLzsgfTsKIAkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dl
ZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNh
dG9yLmNwcCAqLzsgfTsKIAkJN0U5OUFGNTMwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZElu
ZGljYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VB
MzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAg
Ki87IH07CkBAIC05NTg2LDYgKzk1ODksNyBAQAogCQk3Q0U2ODM0NjE5MjE4MjE1MDBGNEQ5Mjgg
LyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2Q0JGQTE4N0YzNzA3MDBENDZCRjUgLyogRm9y
bWF0Q29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1hdENv
bnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2Q0JGQzE4N0YzOTQ5
MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZvcm1hdENvbnZlcnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdFMjQ0QkJCMTk5RTdBRjkwMDI5MzlFOSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERpc2tDYWNoZU1vbml0b3IuaDsgcGF0aCA9
IGNvY29hL0Rpc2tDYWNoZU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHVyZ2VQcmlvcml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJD
Ri5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdWJyZXNvdXJjZUxv
YWRlckNGLmNwcDsgcGF0aCA9IGNmL1N1YnJlc291cmNlTG9hZGVyQ0YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3VyY2VI
YW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNv
dXJjZUhhbmRsZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1OTQsNiAr
OTU5OCw3IEBACiAJCTdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRy
YWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU1FMaXRlRGF0
YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHBhdGggPSBzcWwvU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDc0RTFDMTI0OTREQzkwMDIz
NTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHBhdGggPSBzcWwvU1FMaXRlRGF0YWJh
c2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDc0RTFEMTI0OTRE
QzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcDsgcGF0aCA9IHNx
bC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRGlza0NhY2hlTW9uaXRvckNv
Y29hLm1tOyBwYXRoID0gY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVu
dEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNF
bGVtZW50SW5kZXhVaW50LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0
IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gT0VTRWxlbWVudEluZGV4VWludC5oOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U2NkUyMzExNkQ2RUI2QzAwRjdF
N0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHBhdGggPSBj
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05NjAyLDYgKzk2MDcsNyBAQAogCQk3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBwYXRoID0gY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RTdERTFGQzE5NUNFRjI2MDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZVJlcXVlc3RDb2Nv
YS5tbTsgcGF0aCA9IGNvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3RTdERTIwMTE5NUNFRkNEMDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1
ZXN0SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3Vy
Y2VSZXF1ZXN0SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RThGQURDMzE5
OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW07IHBh
dGggPSBjb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2Vk
SW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRv
d0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93Rm9jdXNBbGxvd2VkSW5k
aWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFQTMwRjYyMTZERkQ2Mjcw
MDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NzQ2LDYgKzE2NzUyLDE2IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJN0U0REUxMEIxOThCMTA4MTAwNTFDQjAyIC8qIGNvY29hICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3RTI0NEJCQjE5OUU3
QUY5MDAyOTM5RTkgLyogRGlza0NhY2hlTW9uaXRvci5oICovLAorCQkJCTdFNERFMTBDMTk4QjEw
QjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJN0U4RkFEQzMx
OTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCisJCQkpOwor
CQkJbmFtZSA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0U3
REUxRkUxOTVDRUYyRDAwMzUzNjNCIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxMTQ0LDYgKzIxMTYwLDcgQEAKIAkJCQk1MTJERDhFODBE
OTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKIAkJCQlBOEQyQjI1MjEyODdBNTYwMDBBRjRE
REEgLyogY2FjaGUgKi8sCiAJCQkJN0VFNjg0NzMxMkQyNkU1NTAwRTc5NDE1IC8qIGNmICovLAor
CQkJCTdFNERFMTBCMTk4QjEwODEwMDUxQ0IwMiAvKiBjb2NvYSAqLywKIAkJCQk1MTI2RTZCNjBB
MkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLywKIAkJCQlDRTc5RDY4NjE3RjIyMEVEMDA4MTVDMDAg
LyogaW9zICovLAogCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8sCkBAIC0y
NDEwMyw2ICsyNDEyMCw3IEBACiAJCQkJMzFDMEZGNEIwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdl
YktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDYwMzc5
MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZh
bHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFMjQ0QkJDMTk5RTdBRkYwMDI5MzlF
OSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkND
QzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAv
KiBET01XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MTkxLDYg
KzI4MjA5LDcgQEAKIAkJCQk2NTlEREM4MjA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QkE4RDEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTQ5NEVERTBBMTIzRjRDMDBGREFG
QzEgLyogSlNEb2N1bWVudEZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdFNERFMTBE
MTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gaW4gU291cmNlcyAq
LywKIAkJCQk2NURGMzFGNTA5RDFDQzYwMDAwQkUzMjUgLyogSlNEb2N1bWVudFR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2MzA5RUIwQzdDMDA5RDg0
NjggLyogSlNET01CaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4NTUsNiArMjg4NzQs
NyBAQAogCQkJCUZENkYyNTJDMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEUxOTU5MjEwQTM5REFCQTAwMjIwRkU1
IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3QTZEMUVCMTQ5
MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTdFOEZBREM0MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRlckNvY29h
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCODU5RjcxNjBENDhBNDAwRTVCMDdGIC8qIE1lZGlh
S2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0Ix
IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMUI0QTY1
MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4NjQ3NWUxZWY1YTZi
ZDI5MTljYTQ0ZGVhN2I0OTRjMjIwZTlhYzdmLi5lMzEyOGEyNDg1ZWM4ZDk5OGQyNDJkYjgwODc1
ZmE2Mjc3YjFkN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAt
MTU1LDYgKzE1NSwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIG9wdGlvbnMoKSB7IHJldHVybiBtX29wdGlvbnM7IH0KIAorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiAhVVNFKENGTkVUV09SSykKKyAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2Uq
IHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSop
IG92ZXJyaWRlOworI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUksp
CisgICAgdmlydHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisjZW5kaWYK
KwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgUmVmUHRyPEZyYW1l
PiBtX2ZyYW1lOwogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsK
QEAgLTE4NiwxMiArMTkzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKSBvdmVycmlkZSB7IHJldHVybiBjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZSk7IH0KICNlbmRpZgog
ICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIG92ZXJyaWRlIHsgcmVjZWl2
ZWRDYW5jZWxsYXRpb24oY2hhbGxlbmdlKTsgfQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhVVNF
KENGTkVUV09SSykKLSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOwot
I2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUkspCi0gICAgdmlydHVh
bCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7Ci0jZW5kaWYKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb25uZWN0aW9u
UHJvcGVydGllcyhSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IDVmNTczODJjZTU3N2Q4ODQ5ZmZm
YWQ0ZTEwNDllZTBiYmZiZWRiMWYuLmI5OWIyODg4NTMxMjMzMTg2M2MwZTNlOWI0MzE0ZDk0NmEy
OTUyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC03
NCw2ICs3NCwxMyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNv
bnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAh
VVNFKENGTkVUV09SSykKKyAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNo
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRl
OworI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDRk5FVFdPUkspCisgICAgdmly
dHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFu
ZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFVT
RShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNEYXRhQXJyYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzBjMzI4
OWM2OTc4NWIzMDVjOTQ0MmQ1MGEwYjgyMzE4ZTVhNmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNrQ2FjaGVNb25pdG9yX2gKKyNkZWZpbmUgRGlz
a0NhY2hlTW9uaXRvcl9oCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIERp
c2tDYWNoZU1vbml0b3IgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIG1vbml0b3JGaWxlQmFj
a2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklELCBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICB2aXJ0dWFsIH5EaXNrQ2FjaGVNb25pdG9yKCkgeyB9
CisKK3Byb3RlY3RlZDoKKyAgICBEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CisK
KyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0
IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKK307CisKKyNp
ZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDgw
MDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTA5MCkKKwordm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9y
ZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZikgeyB9CitQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRGlza0NhY2hlTW9uaXRv
cjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKENG
Q2FjaGVkVVJMUmVzcG9uc2VSZWYpIHsgcmV0dXJuIG51bGxwdHI7IH0KKworI2VuZGlmCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIERpc2tDYWNoZU1vbml0b3JfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGRmY2ZiZDRkMThiMzM5NTViMzJmMmMzMjYyMzcwMDM0NmVmM2E5OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EubW0KQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkRpc2tDYWNoZU1vbml0b3IuaCIKKworI2ltcG9ydCAiQ2FjaGVkUmVz
b3VyY2UuaCIKKyNpbXBvcnQgIk1lbW9yeUNhY2hlLmgiCisjaW1wb3J0ICJSZXNvdXJjZVJlcXVl
c3QuaCIKKyNpbXBvcnQgIlNlc3Npb25JRC5oIgorI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCisj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL093blB0ci5oPgorI2ltcG9y
dCA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0
IDx3dGYvUmVmUHRyLmg+CisKKyNpZmRlZiBfX2hhc19pbmNsdWRlCisjaWYgX19oYXNfaW5jbHVk
ZSg8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+KQorI2luY2x1ZGUgPENGTmV0d29yay9DRlVS
TENhY2hlUHJpdi5oPgorI2VuZGlmCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1MpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCisKK3R5cGVkZWYg
dm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmKTsKK2V4dGVybiAiQyIgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZp
bGVCYWNrZWRDYWxsQmFja0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJM
UmVzcG9uc2VDYWxsQmFja0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKK2V4dGVybiAiQyIgQ0ZE
YXRhUmVmIF9DRkNhY2hlZFVSTFJlc3BvbnNlR2V0TWVtTWFwcGVkRGF0YShDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGUgbWF4aW11bSBudW1i
ZXIgb2Ygc2Vjb25kcyB3ZSdsbCB0cnkgdG8gd2FpdCBmb3IgYSByZXNvdXJjZSB0byBiZSBkaXNr
IGNhY2hlZCBiZWZvcmUgd2UgZm9yZ2V0IHRoZSByZXF1ZXN0Lgorc3RhdGljIGNvbnN0IGRvdWJs
ZSBkaXNrQ2FjaGVNb25pdG9yVGltZW91dCA9IDIwOworCitQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gRGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVS
TENhY2hlZFJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCit7
CisgICAgQ0ZEYXRhUmVmIGRhdGEgPSBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdldE1lbU1hcHBlZERh
dGEoY2FjaGVkUmVzcG9uc2UpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhKGRhdGEpOworfQorCit2
b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hl
ZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQoreworICAgIGlmICghY2FjaGVkUmVzcG9u
c2UpCisgICAgICAgIHJldHVybjsKKworICAgIG5ldyBEaXNrQ2FjaGVNb25pdG9yKHJlcXVlc3Qs
IHNlc3Npb25JRCwgY2FjaGVkUmVzcG9uc2UpOyAvLyBCYWxhbmNlZCBieSBhZG9wdFB0ciBpbiB0
aGUgYmxvY2tzIHNldHVwIGluIHRoZSBjb25zdHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlzIGd1YXJh
bnRlZWQgdG8gcnVuLgorfQorCitEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0
KHJlcXVlc3QpCisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCit7CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKworICAgIC8vIFNldCB1cCBhIGRlbGF5ZWQgY2FsbGJhY2sgdG8gY2Fu
Y2VsIHRoaXMgbW9uaXRvciBpZiB0aGUgcmVzb3VyY2UgaGFzbid0IGJlZW4gY2FjaGVkIHlldC4K
KyAgICBfX2Jsb2NrIERpc2tDYWNoZU1vbml0b3IqIHJhd01vbml0b3IgPSB0aGlzOworCisgICAg
ZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNFQ19QRVJf
U0VDICogZGlza0NhY2hlTW9uaXRvclRpbWVvdXQpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBeeworICAgICAgICBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQgYnkgYG5ldyBE
aXNrQ2FjaGVNb25pdG9yYCBpbiBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uLgorICAg
ICAgICByYXdNb25pdG9yID0gMDsKKyAgICB9KTsKKworICAgIC8vIFNldCB1cCB0aGUgZGlzayBj
YWNoaW5nIGNhbGxiYWNrIHRvIGNyZWF0ZSB0aGUgU2hhcmVhYmxlUmVzb3VyY2UgYW5kIHNlbmQg
aXQgdG8gdGhlIFdlYlByb2Nlc3MuCisgICAgQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxv
Y2sgYmxvY2sgPSBeKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCisgICAg
eworICAgICAgICAvLyBJZiB0aGUgbW9uaXRvciBpc24ndCB0aGVyZSB0aGVuIGl0IHRpbWVkIG91
dCBiZWZvcmUgdGhpcyByZXNvdXJjZSB3YXMgY2FjaGVkIHRvIGRpc2suCisgICAgICAgIGlmICgh
cmF3TW9uaXRvcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBPd25QdHI8RGlza0Nh
Y2hlTW9uaXRvcj4gbW9uaXRvciA9IGFkb3B0UHRyKHJhd01vbml0b3IpOyAvLyBCYWxhbmNlZCBi
eSBgbmV3IERpc2tDYWNoZU1vbml0b3JgIGluIG1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRp
b24uCisgICAgICAgIHJhd01vbml0b3IgPSAwOworCisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGZpbGVCYWNrZWRCdWZmZXIgPSBEaXNrQ2FjaGVNb25pdG9yOjp0cnlHZXRGaWxlQmFja2Vk
U2hhcmVkQnVmZmVyRnJvbUNGVVJMQ2FjaGVkUmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UpOworICAg
ICAgICBpZiAoIWZpbGVCYWNrZWRCdWZmZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgbW9uaXRvci0+cmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKGZpbGVCYWNrZWRCdWZmZXIpOwor
ICAgIH07CisKKyAgICBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxs
QmFja0Jsb2NrKGNhY2hlZFJlc3BvbnNlLCBibG9jaywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSk7Cit9CisKK3ZvaWQgRGlza0NhY2hlTW9uaXRvcjo6cmVzb3VyY2VCZWNhbWVGaWxlQmFja2Vk
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQmFja2VkQnVmZmVyKQoreworICAgIENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdCht
X3Jlc291cmNlUmVxdWVzdCwgbV9zZXNzaW9uSUQpOworICAgIGlmICghcmVzb3VyY2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIHJlc291cmNlLT50cnlSZXBsYWNlRW5jb2RlZERhdGEoZmlsZUJh
Y2tlZEJ1ZmZlcik7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
KFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gODAw
MDApIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA5MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291
cmNlTG9hZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI5NGY2NDYxZGE1N2Y3MTA5MjEwNzVkNzVk
ZDAwNDAwNGIwZGRjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
b2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIK
KworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiRGlza0NhY2hlTW9uaXRv
ci5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKworQGludGVyZmFjZSBOU0NhY2hlZFVS
TFJlc3BvbnNlIChEZXRhaWxzKQorLShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKV9DRkNhY2hlZFVS
TFJlc3BvbnNlOworQGVuZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQ0ZORVRX
T1JLKQorCitDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2Fj
aGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
IGNhY2hlZFJlc3BvbnNlKQoreworICAgIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFj
a2luZ1N0b3JlQ3JlYXRpb24ocmVxdWVzdCgpLCBtX3Jlc291cmNlLT5zZXNzaW9uSUQoKSwgY2Fj
aGVkUmVzcG9uc2UpOworICAgIHJldHVybiBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9u
c2UoaGFuZGxlLCBjYWNoZWRSZXNwb25zZSk7Cit9CisKKyNlbHNlCisKK05TQ2FjaGVkVVJMUmVz
cG9uc2UqIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICBEaXNrQ2Fj
aGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9y
ZXNvdXJjZS0+c2Vzc2lvbklEKCksIFtyZXNwb25zZSBfQ0ZDYWNoZWRVUkxSZXNwb25zZV0pOwor
ICAgIHJldHVybiBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoaGFuZGxlLCByZXNw
b25zZSk7Cit9CisKKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oCmluZGV4IGEzMzRj
MjJmZDg2OTEzMzRlODdmZjAxYjQyMWE4YjZlYzczYTUwNDEuLmNhMzIwOGM4ZmYxNTI4NjYzMDEy
OWMzYWVjN2I4MTEzYmQyNDgyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oCkBAIC0yNyw4ICsy
NywxMCBAQAogI2RlZmluZSBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcl9oCiAKICNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNrQ2FjaGVNb25pdG9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9u
c2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBAIC0zOCwyMiArNDAsMjIgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjsKIAotY2xhc3MgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IgOiBw
dWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK2NsYXNzIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9y
IDogcHVibGljIFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3IsIElQQzo6TWVzc2FnZVNlbmRlciB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlv
bihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqKTsKLQotICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICB+TmV0d29ya0Rpc2tDYWNoZU1vbml0
b3IoKSB7IH0KIAogcHJpdmF0ZToKICAgICBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcihDRkNhY2hl
ZFVSTFJlc3BvbnNlUmVmLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqKTsKIAorICAgIC8vIFdlYkNv
cmU6OkRpc2tDYWNoZU1vbml0b3IKKyAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VCZWNhbWVGaWxl
QmFja2VkKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPikgb3ZlcnJpZGU7CisKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKLSAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7Ci0gICAgV2ViQ29yZTo6
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IubW0KaW5k
ZXggZmI4OTE3MjNkYzYyODIzMzFhMWZjZWFmMGJhYTM3MmEwNmE0Mjg0MC4uMTg3NGRkNTNlNmVj
OTZmZDhkM2ZmOTNiMTcxY2UzMDk2NTk4M2VjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5tbQpA
QCAtMzAsNyArMzAsNiBAQAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgogCiAjaWZkZWYg
X19oYXNfaW5jbHVkZQogI2lmIF9faGFzX2luY2x1ZGUoPENGTmV0d29yay9DRlVSTENhY2hlUHJp
di5oPikKQEAgLTQwLDE2ICszOSwxMCBAQAogCiAjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gODAwMDApIHx8IChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MCkKIAotdHlwZWRlZiB2b2lk
ICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpOwotZXh0ZXJuICJDIiB2b2lkIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJh
Y2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiwgQ0ZDYWNoZWRVUkxSZXNw
b25zZUNhbGxCYWNrQmxvY2ssIGRpc3BhdGNoX3F1ZXVlX3QpOwotCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLS8vIFRoZSBtYXhpbXVtIG51bWJlciBv
ZiBzZWNvbmRzIHdlJ2xsIHRyeSB0byB3YWl0IGZvciBhIHJlc291cmNlIHRvIGJlIGRpc2sgY2Fj
aGVkIGJlZm9yZSB3ZSBmb3JnZXQgdGhlIHJlcXVlc3QuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRp
c2tDYWNoZU1vbml0b3JUaW1lb3V0ID0gMjA7Ci0KIHZvaWQgTmV0d29ya0Rpc2tDYWNoZU1vbml0
b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oQ0ZDYWNoZWRVUkxSZXNwb25zZVJl
ZiBjYWNoZWRSZXNwb25zZSwgTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2FkZXIpCiB7CiAgICAg
aWYgKCFjYWNoZWRSZXNwb25zZSkKQEAgLTU3LDQzICs1MCwyMyBAQCB2b2lkIE5ldHdvcmtEaXNr
Q2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKENGQ2FjaGVkVVJM
UmVzcG9ucwogCiAgICAgQVNTRVJUKGxvYWRlcik7CiAKLSAgICBuZXcgTmV0d29ya0Rpc2tDYWNo
ZU1vbml0b3IoY2FjaGVkUmVzcG9uc2UsIGxvYWRlcik7IC8vIEJhbGFuY2VkIGJ5IGFkb3B0UHRy
IGluIHRoZSBibG9ja3Mgc2V0dXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBvbmUgb2Ygd2hpY2ggaXMg
Z3VhcmFudGVlZCB0byBydW4uCisgICAgbmV3IE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yKGNhY2hl
ZFJlc3BvbnNlLCBsb2FkZXIpOyAvLyBCYWxhbmNlZCBieSBhZG9wdFB0ciBpbiB0aGUgYmxvY2tz
IHNldHVwIGluIHRoZSBEaXNrQ2FjaGVNb25pdG9yIGNvbnN0cnVjdG9yLCBvbmUgb2Ygd2hpY2gg
aXMgZ3VhcmFudGVlZCB0byBydW4uCiB9CiAKIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpOZXR3
b3JrRGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNl
LCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKLSAgICA6IG1fY29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKLSAgICAsIG1fcmVzb3Vy
Y2VSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpKQotICAgICwgbV9zZXNzaW9uSUQobG9hZGVyLT5z
ZXNzaW9uSUQoKSkKKyAgICA6IERpc2tDYWNoZU1vbml0b3IobG9hZGVyLT5yZXF1ZXN0KCksIGxv
YWRlci0+c2Vzc2lvbklEKCksIGNhY2hlZFJlc3BvbnNlKQorICAgICwgbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKGxvYWRlci0+Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpKQogewotICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICAvLyBTZXQgdXAgYSBkZWxheWVkIGNhbGxiYWNr
IHRvIGNhbmNlbCB0aGlzIG1vbml0b3IgaWYgdGhlIHJlc291cmNlIGhhc24ndCBiZWVuIGNhY2hl
ZCB5ZXQuCi0gICAgX19ibG9jayBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciogcmF3TW9uaXRvciA9
IHRoaXM7Ci0KLSAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVf
Tk9XLCBOU0VDX1BFUl9TRUMgKiBkaXNrQ2FjaGVNb25pdG9yVGltZW91dCksIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIGFkb3B0UHRyKHJhd01vbml0b3IpOyAvLyBCYWxh
bmNlZCBieSBgbmV3IE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yYCBpbiBtb25pdG9yRmlsZUJhY2tp
bmdTdG9yZUNyZWF0aW9uLgotICAgICAgICByYXdNb25pdG9yID0gMDsKLSAgICB9KTsKLQotICAg
IC8vIFNldCB1cCB0aGUgZGlzayBjYWNoaW5nIGNhbGxiYWNrIHRvIGNyZWF0ZSB0aGUgU2hhcmVh
YmxlUmVzb3VyY2UgYW5kIHNlbmQgaXQgdG8gdGhlIFdlYlByb2Nlc3MuCi0gICAgQ0ZDYWNoZWRV
UkxSZXNwb25zZUNhbGxCYWNrQmxvY2sgYmxvY2sgPSBeKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYg
Y2FjaGVkUmVzcG9uc2UpCi0gICAgewotICAgICAgICAvLyBJZiB0aGUgbW9uaXRvciBpc24ndCB0
aGVyZSB0aGVuIGl0IHRpbWVkIG91dCBiZWZvcmUgdGhpcyByZXNvdXJjZSB3YXMgY2FjaGVkIHRv
IGRpc2suCi0gICAgICAgIGlmICghcmF3TW9uaXRvcikKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBPd25QdHI8TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I+IG1vbml0b3IgPSBhZG9wdFB0
cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQgYnkgYG5ldyBOZXR3b3JrRGlza0NhY2hlTW9uaXRv
cmAgaW4gbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbi4KLSAgICAgICAgcmF3TW9uaXRv
ciA9IDA7Ci0KLSAgICAgICAgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSBoYW5kbGU7Ci0gICAg
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbUNGVVJM
Q2FjaGVkUmVzcG9uc2UoaGFuZGxlLCBjYWNoZWRSZXNwb25zZSk7Ci0gICAgICAgIGlmIChoYW5k
bGUuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Cit9CiAKLSAgICAgICAgbW9uaXRvci0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNl
KG1vbml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUsIG1fc2Vzc2lvbklEKSk7Ci0gICAg
fTsKK3ZvaWQgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tl
ZChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmlsZUJhY2tlZEJ1ZmZlcikKK3sKKyAgICBTaGFy
ZWFibGVSZXNvdXJjZTo6SGFuZGxlIGhhbmRsZTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnRyeUdldFNoYXJlYWJsZUhhbmRsZUZyb21TaGFyZWRCdWZmZXIoaGFuZGxlLCBmaWxlQmFja2Vk
QnVmZmVyLmdldCgpKTsKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47
CiAKLSAgICBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Js
b2NrKGNhY2hlZFJlc3BvbnNlLCBibG9jaywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291
cmNlKHJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUsIHNlc3Npb25JRCgpKSk7CiB9CiAKIElQQzo6
Q29ubmVjdGlvbiogTmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6Om1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCmluZGV4IDQzYWVlMGE1MDc4Y2Y1OWZlZjJi
MjliZmZhNjM4ZTg2YzQxOGU2MjcuLjE1Yzc5MmQ5MzFjN2EwYTYzOWE0NmI0ZDU0NDZjZTgxZGY4
OGEzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAorI2ltcG9ydCAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmgiCiAjaW1w
b3J0ICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236774</attachid>
            <date>2014-08-18 12:13:04 -0700</date>
            <delta_ts>2014-08-18 17:32:23 -0700</delta_ts>
            <desc>Patch with more build fixes</desc>
            <filename>bug-135896-20140818121255.patch</filename>
            <type>text/plain</type>
            <size>35745</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQzYTNlNGFjMzJjZWQ1
ZTU2MWRjYTlkMzhlMzMzYWE2ZWM5NzkxOC4uNDNiMjBiOWIzYzdhOTRhM2U4Yjc5ODE1NjE1ZGM2
NDk3M2I1ZjM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA4LTE4ICBQcmF0
aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIERpc2tDYWNo
ZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0IFdlYktpdDEgY2xpZW50cyBjYW4gdXNlIGl0IGFz
IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NTg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yIGNvZGUgYW5kIG1vdmUgaXQgdG8gV2ViQ29yZS4KKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgICAgIE1ha2Ugd2lsbENh
Y2hlUmVzcG9uc2UgcHJvdGVjdGVkIHNvIHRoYXQgU3VicmVzb3VyY2VMb2FkZXIgY2FuIG92ZXJy
aWRlIGl0LgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAgICAgTW9z
dGx5IHRoZSBzYW1lIGFzIHRoZSBleGlzdGluZyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciBjbGFz
cyBpbiBXZWJLaXQyLiBJbiB0aGUKKyAgICAgICAgICAgIENGTmV0d29yayBjYWxsYmFjayBibG9j
aywgaXQgY2FsbHMgYSB2aXJ0dWFsIGZ1bmN0aW9uIHRoYXQgaXMgb3ZlcnJpZGVuIGJ5CisgICAg
ICAgICAgICBOZXR3b3JrRGlza0NhY2hlTW9uaXRvciB0byBzZW5kIGEgbWVzc2FnZSB0byBXZWJD
b250ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjp+RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yOjpyZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6c2Vzc2lv
bklEKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJl
ZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKToKKyAgICAgICAgICAgIENvcGllZCBmcm9t
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21D
RlVSTENhY2hlZFJlc3BvbnNlLgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6
bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNr
Q2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tD
YWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZCk6CisgICAgICAgICAgICBSZXBs
YWNlIHRoZSBjYWNoZWQgcmVzb3VyY2UgZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmls
ZSBiYWNrZWQgYnVmZmVyLiBUaGlzIGlzCisgICAgICAgICAgICB1c2VkIGluIFdlYktpdDEgKGFu
ZCBhbHNvIGZvciBhbnkgcmVzb3VyY2UgbG9hZHMgdGhhdCBoYXBwZW4gZnJvbSB0aGUgV2ViQ29u
dGVudAorICAgICAgICAgICAgcHJvY2VzcykuCisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJl
c291cmNlTG9hZGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgICAgIE92ZXJyaWRlIHdpbGxD
YWNoZXJlc3BvbnNlIGZyb20gUmVzb3VyY2VMb2FkZXIgdG8gbGlzdGVuIGZvciBkaXNrIGNhY2hl
IG5vdGlmaWNhdGlvbnMuCisKIDIwMTQtMDgtMTggIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBh
ZG9iZS5jb20+CiAKICAgICAgICAgU21hbGwgY2xlYW51cCBmb3IgU2hhcGVPdXRzaWRlRGVsdGFz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNTAwNDkyNDU5OGZmOTQwZjY1MWJhM2Y4ZWYyMTJjNjQ3MGE1YTU5OC4u
MWVkMGZhMjJlMGI3ZDFhNzEzMzdjYjQwOWFmZDc3NjBjZTkxZjIyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDE0LTA4LTE4ICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxl
LmNvbT4KKworICAgICAgICBNb3ZlIERpc2tDYWNoZU1vbml0b3IgdG8gV2ViQ29yZSBzbyB0aGF0
IFdlYktpdDEgY2xpZW50cyBjYW4gdXNlIGl0IGFzIHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtE
aXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgICAgICBJbmhlcml0IGZyb20gV2ViQ29yZTo6RGlz
a0NhY2hlTW9uaXRvciB3aGljaCBoYXMgdGhlIGJ1bGsgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgbm93
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6fk5ldHdvcmtEaXNr
Q2FjaGVNb25pdG9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tD
YWNoZU1vbml0b3IubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9y
Ojptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0Rpc2tDYWNoZU1vbml0b3I6Ok5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Rpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tl
ZCk6CisgICAgICAgICAgICBPdmVycmlkZSB2aXJ0dWFsIG1ldGhvZCBhbmQgc2VuZCB0aGUgZGF0
YSB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIGJlZm9yZS4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tOgorCiAyMDE0LTA4LTE4ICBH
cnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtFRkxdIGV3a19pbml0KCkgaXMgc3VmZmljaWVudCB0byBpbml0aWFsaXplIEVGTCBjb21wb25l
bnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDcwZThlNjcxOGRlOGFmMGVlYjA1YWQzZWUzYTQ5
YmUxOWY4OTFmYWYuLjVhN2ZmMjI0OTBlMGIxM2E2MThiMWM2OWE4ZjFiNGRjNDM1MTViNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yODM2LDkgKzI4MzYsMTEgQEAgX19aTjdXZWJDb3JlMjhj
cmVhdGVDR0NvbG9yV2l0aERldmljZVdoaXRlRWZmCiAKICNpZiBQTEFURk9STShJT1MpIHx8IF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogX19aTjdXZWJDb3JlMTVQcm90
ZWN0aW9uU3BhY2UyOGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGFFUDIwTlNVUkxQcm90ZWN0
aW9uU3BhY2UKK19fWk43V2ViQ29yZTE2RGlza0NhY2hlTW9uaXRvckMyRVJLTlNfMTVSZXNvdXJj
ZVJlcXVlc3RFTlNfOVNlc3Npb25JREVQSzIwX0NGQ2FjaGVkVVJMUmVzcG9uc2UKIF9fWk43V2Vi
Q29yZTIzd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVD
cmFzaE9uT3ZlcmZsb3dFRUVTNV9SUzNfCiBfX1pON1dlYkNvcmUyNXVud3JhcFNlcmlhbGl6ZWRD
cnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dFRUVTNV9S
UzNfCiBfX1pON1dlYkNvcmUyOGdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXlFUk4zV1RGNlZl
Y3RvckloTG0wRU5TMF8xNUNyYXNoT25PdmVyZmxvd0VFRQorX19aVFZON1dlYkNvcmUxNkRpc2tD
YWNoZU1vbml0b3JFCiBfd2tDVEZvbnRUcmFuc2Zvcm1HbHlwaHMKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzFh
ZWFjMmE2MTU3YTVmZGUwMTM4Mzc2NTBlNTg0NDcwNjQ5MzE4MS4uZjUxOTk4YzMyOTBkODI2MmIw
MTc1NjMzMDAwNTlmYmViZjI0MmQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQzMCw2ICsyNDMwLDcgQEAKIAkJN0NFNkNC
RkIxODdGMzcwNzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNkNCRkExODdGMzcwNzAwRDQ2QkY1IC8q
IEZvcm1hdENvbnZlcnRlci5oICovOyB9OwogCQk3Q0U2Q0JGRDE4N0YzOTQ5MDBENDZCRjUgLyog
Rm9ybWF0Q29udmVydGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDRTZDQkZDMTg3RjM5NDkwMEQ0NkJGNSAvKiBGb3JtYXRDb252ZXJ0ZXIuY3Bw
ICovOyB9OwogCQk3RDc0MUJEQTE3NzIyNkFBMDA4NTkxNzAgLyogQ1NTVmFsdWVLZXl3b3Jkcy5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCAqLzsg
fTsKKwkJN0UyNDRCQkMxOTlFN0FGRjAwMjkzOUU5IC8qIERpc2tDYWNoZU1vbml0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMjQ0QkJCMTk5RTdB
RjkwMDI5MzlFOSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0UzM0NEMDExMjdGMzQwRDAwQkU4RjE3IC8qIFB1
cmdlUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0UzN0VGMkUxMzM5MjA4
ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1
YnJlc291cmNlTG9hZGVyQ0YuY3BwICovOyB9OwogCQk3RTQyOENFNTEzRTM0MDdGMDAzQjY2MUMg
LyogUmVzb3VyY2VIYW5kbGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3VyY2VIYW5kbGVJ
T1MubW0gKi87IH07CkBAIC0yNDM4LDYgKzI0MzksNyBAQAogCQk3RTQ3NEUxRTEyNDk0REM5MDAy
MzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQjEyNDk0REM5MDAyMzUzNjQgLyog
U1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMUYxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0
ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdF
NDc0RTIwMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NzRFMUQxMjQ5NERD
OTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi87IH07CisJCTdFNERFMTBE
MTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRERTEwQzE5OEIxMEI2MDA1MUNC
MDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tICovOyB9OwogCQk3RTVEN0E3NjE2MUQzRjhG
MDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VT
RWxlbWVudEluZGV4VWludC5jcHAgKi87IH07CiAJCTdFNUQ3QTc3MTYxRDNGOEYwMDg5NkMzNCAv
KiBPRVNFbGVtZW50SW5kZXhVaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTVEN0E3NDE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4
VWludC5oICovOyB9OwogCQk3RTY2RTIzMzE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTY2RTIzMTE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5jcHAgKi87IH07CkBAIC0yNDQ2LDYgKzI0NDgsNyBAQAogCQk3RTY2RTIzNDE3RTZFQjZD
MDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi87IH07CiAJCTdFN0RFMUZEMTk1Q0VG
MjYwMDM1MzYzQiAvKiBSZXNvdXJjZVJlcXVlc3RDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFN0RFMUZDMTk1Q0VGMjYwMDM1MzYzQiAvKiBS
ZXNvdXJjZVJlcXVlc3RDb2NvYS5tbSAqLzsgfTsKIAkJN0U3REUyMDIxOTVDRUZDRDAwMzUzNjNC
IC8qIFJlc291cmNlUmVxdWVzdElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdFN0RFMjAxMTk1Q0VGQ0QwMDM1MzYzQiAvKiBSZXNvdXJjZVJlcXVl
c3RJT1MubW0gKi87IH07CisJCTdFOEZBREM0MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJj
ZUxvYWRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0U4RkFEQzMxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2Eu
bW0gKi87IH07CiAJCTdFOTlBRjUxMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93
ZWRJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGlj
YXRvci5jcHAgKi87IH07CiAJCTdFOTlBRjUzMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1
c0FsbG93ZWRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJ
bmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3RUEzMEY2OTE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
QTMwRjY3MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3Bw
ICovOyB9OwpAQCAtOTU4Niw2ICs5NTg5LDcgQEAKIAkJN0NFNjgzNDYxOTIxODIxNTAwRjREOTI4
IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNkNCRkExODdGMzcwNzAwRDQ2QkY1IC8qIEZv
cm1hdENvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRD
b252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNkNCRkMxODdGMzk0
OTAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGb3JtYXRDb252ZXJ0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3RTI0NEJCQjE5OUU3QUY5MDAyOTM5RTkgLyogRGlza0NhY2hlTW9uaXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXNrQ2FjaGVNb25pdG9yLmg7IHBhdGgg
PSBjb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVy
Q0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3VicmVzb3VyY2VM
b2FkZXJDRi5jcHA7IHBhdGggPSBjZi9TdWJyZXNvdXJjZUxvYWRlckNGLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0MjhDRTQxM0UzNDA3RjAwM0I2NjFDIC8qIFJlc291cmNl
SGFuZGxlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVz
b3VyY2VIYW5kbGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTk0LDYg
Kzk1OTgsNyBAQAogCQk3RTQ3NEUxQjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VU
cmFja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNRTGl0ZURh
dGFiYXNlVHJhY2tlckNsaWVudC5oOyBwYXRoID0gc3FsL1NRTGl0ZURhdGFiYXNlVHJhY2tlckNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQ3NEUxQzEyNDk0REM5MDAy
MzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oOyBwYXRoID0gc3FsL1NRTGl0ZURhdGFi
YXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQ3NEUxRDEyNDk0
REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHA7IHBhdGggPSBz
cWwvU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERpc2tDYWNoZU1vbml0b3JD
b2NvYS5tbTsgcGF0aCA9IGNvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1l
bnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT0VT
RWxlbWVudEluZGV4VWludC5jcHA7IHBhdGggPSBjYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMz
NCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE9FU0VsZW1lbnRJbmRleFVpbnQuaDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50SW5kZXhV
aW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNjZFMjMxMTZENkVCNkMwMEY3
RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBwYXRoID0g
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTYwMiw2ICs5NjA3LDcgQEAKIAkJN0U2NkUyMzIxN0U2RUI2QzAwRjdFN0ZG
IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaDsgcGF0aCA9IGNhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmVzb3VyY2VSZXF1ZXN0Q29j
b2EubW07IHBhdGggPSBjb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291cmNlUmVx
dWVzdElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291
cmNlUmVxdWVzdElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U4RkFEQzMx
OTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tOyBw
YXRoID0gY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dl
ZEluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5k
b3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RTk5QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZElu
ZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUEzMEY2MjE2REZENjI3
MDAyNTdEMEIgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGw7IHBhdGggPSBjYW52YXMvV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjc0Niw2ICsxNjc1MiwxNiBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCTdFNERFMTBCMTk4QjEwODEwMDUxQ0IwMiAvKiBjb2NvYSAqLyA9
IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0UyNDRCQkIxOTlF
N0FGOTAwMjkzOUU5IC8qIERpc2tDYWNoZU1vbml0b3IuaCAqLywKKwkJCQk3RTRERTEwQzE5OEIx
MEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tICovLAorCQkJCTdFOEZBREMz
MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tICovLAorCQkJKTsK
KwkJCW5hbWUgPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTdF
N0RFMUZFMTk1Q0VGMkQwMDM1MzYzQiAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTE0NCw2ICsyMTE2MCw3IEBACiAJCQkJNTEyREQ4RTgw
RDkxRTY5MTAwMEY4OUVFIC8qIGFyY2hpdmUgKi8sCiAJCQkJQThEMkIyNTIxMjg3QTU2MDAwQUY0
RERBIC8qIGNhY2hlICovLAogCQkJCTdFRTY4NDczMTJEMjZFNTUwMEU3OTQxNSAvKiBjZiAqLywK
KwkJCQk3RTRERTEwQjE5OEIxMDgxMDA1MUNCMDIgLyogY29jb2EgKi8sCiAJCQkJNTEyNkU2QjYw
QTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCiAJCQkJQ0U3OUQ2ODYxN0YyMjBFRDAwODE1QzAw
IC8qIGlvcyAqLywKIAkJCQk5M0ExRUFBMjBBNTYzNEQ4MDA2OTYwQTAgLyogbWFjICovLApAQCAt
MjQxMDMsNiArMjQxMjAsNyBAQAogCQkJCTMxQzBGRjRCMEU0Q0VGREQwMDdENkZFNSAvKiBET01X
ZWJLaXRBbmltYXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3
OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJW
YWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RTI0NEJCQzE5OUU3QUZGMDAyOTM5
RTkgLyogRGlza0NhY2hlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZD
Q0MyODAwQkY2MDg4IC8qIERPTVdlYktpdENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTVdlYktpdENTU0tleWZyYW1lUnVs
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODgg
LyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODE5MSw2
ICsyODIwOSw3IEBACiAJCQkJNjU5RERDODIwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0JBOEQxMDQyRjVCMTAwMDlENDQ3IC8qIEpTRG9j
dW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0OTRFREUwQTEyM0Y0QzAwRkRB
RkMxIC8qIEpTRG9jdW1lbnRGcmFnbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RTRERTEw
RDE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjVERjMxRjUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRG9jdW1lbnRUeXBlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBQzIyNjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENjMwOUVCMEM3QzAwOUQ4
NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODU1LDYgKzI4ODc0
LDcgQEAKIAkJCQlGRDZGMjUyQzEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRFMTk1OTIxMEEzOURBQkEwMDIyMEZF
NSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0E2RDFFQjE0
OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3RThGQURDNDE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2Nv
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQjg1OUY3MTYwRDQ4QTQwMEU1QjA3RiAvKiBNZWRp
YUtleUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTk4REQ4MTYwMjVCRUYwMEZFQTNC
MSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDFCNEE2
NTE2MDc4NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKaW5kZXggODY0NzVlMWVmNWE2
YmQyOTE5Y2E0NGRlYTdiNDk0YzIyMGU5YWM3Zi4uZTMxMjhhMjQ4NWVjOGQ5OThkMjQyZGI4MDg3
NWZhNjI3N2IxZDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAg
LTE1NSw2ICsxNTUsMTMgQEAgcHJvdGVjdGVkOgogCiAgICAgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJiBvcHRpb25zKCkgeyByZXR1cm4gbV9vcHRpb25zOyB9CiAKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgIVVTRShDRk5FVFdPUkspCisgICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2Uq
KSBvdmVycmlkZTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQ0ZORVRXT1JL
KQorICAgIHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOworI2VuZGlm
CisKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwogICAgIFJlZlB0cjxGcmFt
ZT4gbV9mcmFtZTsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fZG9jdW1lbnRMb2FkZXI7
CkBAIC0xODYsMTIgKzE5Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90
ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkgb3ZlcnJpZGUgeyByZXR1cm4gY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2UpOyB9CiAjZW5kaWYK
ICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKSBvdmVycmlkZSB7IHJlY2Vp
dmVkQ2FuY2VsbGF0aW9uKGNoYWxsZW5nZSk7IH0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVVT
RShDRk5FVFdPUkspCi0gICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVS
ZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlkZTsK
LSNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQ0ZORVRXT1JLKQotICAgIHZpcnR1
YWwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRs
ZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwotI2VuZGlmCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVjdGlv
blByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAppbmRleCA1ZjU3MzgyY2U1NzdkODg0OWZm
ZmFkNGUxMDQ5ZWUwYmJmYmVkYjFmLi5iOTliMjg4ODUzMTIzMzE4NjNjMGUzZTliNDMxNGQ5NDZh
Mjk1MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAt
NzQsNiArNzQsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25z
dCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChj
b25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
IVVTRShDRk5FVFdPUkspCisgICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2Fj
aGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlk
ZTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQ0ZORVRXT1JLKQorICAgIHZp
cnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBV
U0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRGF0YUFycmF5KCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcwYzMy
ODljNjk3ODViMzA1Yzk0NDJkNTBhMGI4MjMxOGU1YTZmZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTAsMCArMSw2
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlza0NhY2hlTW9uaXRvcl9oCisjZGVmaW5lIERp
c2tDYWNoZU1vbml0b3JfaAorCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVk
ZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwordHlwZWRlZiBj
b25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2hhcmVkQnVmZmVyOworCitjbGFzcyBE
aXNrQ2FjaGVNb25pdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBtb25pdG9yRmlsZUJh
Y2tpbmdTdG9yZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwgQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiB0cnlHZXRGaWxlQmFja2VkU2hhcmVkQnVmZmVyRnJvbUNGVVJMQ2FjaGVkUmVzcG9uc2UoQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZik7CisgICAgdmlydHVhbCB+RGlza0NhY2hlTW9uaXRvcigpIHsg
fQorCitwcm90ZWN0ZWQ6CisgICAgRGlza0NhY2hlTW9uaXRvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOworCisgICAgdmlydHVhbCB2
b2lkIHJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pOwor
CisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorCitwcml2YXRlOgorICAgIFJlc291cmNlUmVxdWVz
dCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Cit9OworCisj
aWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCA4
MDAwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEwOTApCisKK3ZvaWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3Rv
cmVDcmVhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQsIENGQ2FjaGVkVVJM
UmVzcG9uc2VSZWYpIHsgfQorUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IERpc2tDYWNoZU1vbml0
b3I6OnRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShD
RkNhY2hlZFVSTFJlc3BvbnNlUmVmKSB7IHJldHVybiBudWxscHRyOyB9CisKKyNlbmRpZgorfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBEaXNrQ2FjaGVNb25pdG9yX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRkZmNmYmQ0ZDE4YjMzOTU1YjMyZjJjMzI2MjM3MDAzNDZlZjNhOTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9u
aXRvckNvY29hLm1tCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJEaXNrQ2FjaGVNb25pdG9yLmgiCisKKyNpbXBvcnQgIkNhY2hlZFJl
c291cmNlLmgiCisjaW1wb3J0ICJNZW1vcnlDYWNoZS5oIgorI2ltcG9ydCAiUmVzb3VyY2VSZXF1
ZXN0LmgiCisjaW1wb3J0ICJTZXNzaW9uSUQuaCIKKyNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgor
I2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9Pd25QdHIuaD4KKyNpbXBv
cnQgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9y
dCA8d3RmL1JlZlB0ci5oPgorCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1
ZGUoPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPikKKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZV
UkxDYWNoZVByaXYuaD4KKyNlbmRpZgorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMCkgfHwgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQorCit0eXBlZGVm
IHZvaWQgKF5DRkNhY2hlZFVSTFJlc3BvbnNlQ2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZik7CitleHRlcm4gIkMiIHZvaWQgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVG
aWxlQmFja2VkQ2FsbEJhY2tCbG9jayhDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBDRkNhY2hlZFVS
TFJlc3BvbnNlQ2FsbEJhY2tCbG9jaywgZGlzcGF0Y2hfcXVldWVfdCk7CitleHRlcm4gIkMiIENG
RGF0YVJlZiBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdldE1lbU1hcHBlZERhdGEoQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZik7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhlIG1heGltdW0gbnVt
YmVyIG9mIHNlY29uZHMgd2UnbGwgdHJ5IHRvIHdhaXQgZm9yIGEgcmVzb3VyY2UgdG8gYmUgZGlz
ayBjYWNoZWQgYmVmb3JlIHdlIGZvcmdldCB0aGUgcmVxdWVzdC4KK3N0YXRpYyBjb25zdCBkb3Vi
bGUgZGlza0NhY2hlTW9uaXRvclRpbWVvdXQgPSAyMDsKKworUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IERpc2tDYWNoZU1vbml0b3I6OnRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZV
UkxDYWNoZWRSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQor
eworICAgIENGRGF0YVJlZiBkYXRhID0gX0NGQ2FjaGVkVVJMUmVzcG9uc2VHZXRNZW1NYXBwZWRE
YXRhKGNhY2hlZFJlc3BvbnNlKTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YShkYXRhKTsKK30KKwor
dm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkKK3sKKyAgICBpZiAoIWNhY2hlZFJlc3Bv
bnNlKQorICAgICAgICByZXR1cm47CisKKyAgICBuZXcgRGlza0NhY2hlTW9uaXRvcihyZXF1ZXN0
LCBzZXNzaW9uSUQsIGNhY2hlZFJlc3BvbnNlKTsgLy8gQmFsYW5jZWQgYnkgYWRvcHRQdHIgaW4g
dGhlIGJsb2NrcyBzZXR1cCBpbiB0aGUgY29uc3RydWN0b3IsIG9uZSBvZiB3aGljaCBpcyBndWFy
YW50ZWVkIHRvIHJ1bi4KK30KKworRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQsIENGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCisgICAgOiBtX3Jlc291cmNlUmVxdWVz
dChyZXF1ZXN0KQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisKKyAgICAvLyBTZXQgdXAgYSBkZWxheWVkIGNhbGxiYWNrIHRvIGNh
bmNlbCB0aGlzIG1vbml0b3IgaWYgdGhlIHJlc291cmNlIGhhc24ndCBiZWVuIGNhY2hlZCB5ZXQu
CisgICAgX19ibG9jayBEaXNrQ2FjaGVNb25pdG9yKiByYXdNb25pdG9yID0gdGhpczsKKworICAg
IGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIE5TRUNfUEVS
X1NFQyAqIGRpc2tDYWNoZU1vbml0b3JUaW1lb3V0KSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgXnsKKyAgICAgICAgYWRvcHRQdHIocmF3TW9uaXRvcik7IC8vIEJhbGFuY2VkIGJ5IGBuZXcg
RGlza0NhY2hlTW9uaXRvcmAgaW4gbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbi4KKyAg
ICAgICAgcmF3TW9uaXRvciA9IDA7CisgICAgfSk7CisKKyAgICAvLyBTZXQgdXAgdGhlIGRpc2sg
Y2FjaGluZyBjYWxsYmFjayB0byBjcmVhdGUgdGhlIFNoYXJlYWJsZVJlc291cmNlIGFuZCBzZW5k
IGl0IHRvIHRoZSBXZWJQcm9jZXNzLgorICAgIENGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Js
b2NrIGJsb2NrID0gXihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQorICAg
IHsKKyAgICAgICAgLy8gSWYgdGhlIG1vbml0b3IgaXNuJ3QgdGhlcmUgdGhlbiBpdCB0aW1lZCBv
dXQgYmVmb3JlIHRoaXMgcmVzb3VyY2Ugd2FzIGNhY2hlZCB0byBkaXNrLgorICAgICAgICBpZiAo
IXJhd01vbml0b3IpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgT3duUHRyPERpc2tD
YWNoZU1vbml0b3I+IG1vbml0b3IgPSBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFsYW5jZWQg
YnkgYG5ldyBEaXNrQ2FjaGVNb25pdG9yYCBpbiBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0
aW9uLgorICAgICAgICByYXdNb25pdG9yID0gMDsKKworICAgICAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBmaWxlQmFja2VkQnVmZmVyID0gRGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tl
ZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2hlZFJlc3BvbnNlKGNhY2hlZFJlc3BvbnNlKTsKKyAg
ICAgICAgaWYgKCFmaWxlQmFja2VkQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIG1vbml0b3ItPnJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChmaWxlQmFja2VkQnVmZmVyKTsK
KyAgICB9OworCisgICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2Fs
bEJhY2tCbG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCkpOworfQorCit2b2lkIERpc2tDYWNoZU1vbml0b3I6OnJlc291cmNlQmVjYW1lRmlsZUJhY2tl
ZChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmlsZUJhY2tlZEJ1ZmZlcikKK3sKKyAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3Qo
bV9yZXNvdXJjZVJlcXVlc3QsIG1fc2Vzc2lvbklEKTsKKyAgICBpZiAoIXJlc291cmNlKQorICAg
ICAgICByZXR1cm47CisKKyAgICByZXNvdXJjZS0+dHJ5UmVwbGFjZUVuY29kZWREYXRhKGZpbGVC
YWNrZWRCdWZmZXIpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgw
MDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwOTApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVz
b3VyY2VMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiOTRmNjQ2MWRhNTdmNzEwOTIxMDc1ZDc1
ZGQwMDQwMDRiMGRkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgi
CisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkRpc2tDYWNoZU1vbml0
b3IuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK0BpbnRlcmZhY2UgTlNDYWNoZWRV
UkxSZXNwb25zZSAoRGV0YWlscykKKy0oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZilfQ0ZDYWNoZWRV
UkxSZXNwb25zZTsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKENGTkVU
V09SSykKKworQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJl
ZiBjYWNoZWRSZXNwb25zZSkKK3sKKyAgICBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJh
Y2tpbmdTdG9yZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9yZXNvdXJjZS0+c2Vzc2lvbklEKCksIGNh
Y2hlZFJlc3BvbnNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3Bv
bnNlKGhhbmRsZSwgY2FjaGVkUmVzcG9uc2UpOworfQorCisjZWxzZQorCitOU0NhY2hlZFVSTFJl
c3BvbnNlKiBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgRGlza0Nh
Y2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihyZXF1ZXN0KCksIG1f
cmVzb3VyY2UtPnNlc3Npb25JRCgpLCBbcmVzcG9uc2UgX0NGQ2FjaGVkVVJMUmVzcG9uc2VdKTsK
KyAgICByZXR1cm4gUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKGhhbmRsZSwgcmVz
cG9uc2UpOworfQorCisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCBhMzM0
YzIyZmQ4NjkxMzM0ZTg3ZmYwMWI0MjFhOGI2ZWM3M2E1MDQxLi5jYTMyMDhjOGZmMTUyODY2MzAx
MjljM2FlYzdiODExM2JkMjQ4MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMjcsOCAr
MjcsMTAgQEAKICNkZWZpbmUgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3JfaAogCiAjaW5jbHVkZSAi
TWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlza0NhY2hlTW9uaXRvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3Bv
bnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwpAQCAtMzgsMjIgKzQwLDIyIEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiAKLWNsYXNzIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yIDog
cHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CitjbGFzcyBOZXR3b3JrRGlza0NhY2hlTW9uaXRv
ciA6IHB1YmxpYyBXZWJDb3JlOjpEaXNrQ2FjaGVNb25pdG9yLCBJUEM6Ok1lc3NhZ2VTZW5kZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRp
b24oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiwgTmV0d29ya1Jlc291cmNlTG9hZGVyKik7Ci0KLSAg
ICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgfk5ldHdvcmtEaXNrQ2FjaGVNb25p
dG9yKCkgeyB9CiAKIHByaXZhdGU6CiAgICAgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IoQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZiwgTmV0d29ya1Jlc291cmNlTG9hZGVyKik7CiAKKyAgICAvLyBXZWJD
b3JlOjpEaXNrQ2FjaGVNb25pdG9yCisgICAgdmlydHVhbCB2b2lkIHJlc291cmNlQmVjYW1lRmls
ZUJhY2tlZChQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4pIG92ZXJyaWRlOworCiAg
ICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1aW50NjRfdCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci0gICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIFdlYkNvcmU6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1tCmlu
ZGV4IGZiODkxNzIzZGM2MjgyMzMxYTFmY2VhZjBiYWEzNzJhMDZhNDI4NDAuLjE4NzRkZDUzZTZl
Yzk2ZmQ4ZDNmZjkzYjE3MWNlMzA5NjU5ODNlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IubW0K
QEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgotI2ltcG9ydCA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmZGVm
IF9faGFzX2luY2x1ZGUKICNpZiBfX2hhc19pbmNsdWRlKDxDRk5ldHdvcmsvQ0ZVUkxDYWNoZVBy
aXYuaD4pCkBAIC00MCwxNiArMzksMTAgQEAKIAogI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCiAKLXR5cGVkZWYgdm9p
ZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNl
UmVmKTsKLWV4dGVybiAiQyIgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVC
YWNrZWRDYWxsQmFja0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJMUmVz
cG9uc2VDYWxsQmFja0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKLQogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0vLyBUaGUgbWF4aW11bSBudW1iZXIg
b2Ygc2Vjb25kcyB3ZSdsbCB0cnkgdG8gd2FpdCBmb3IgYSByZXNvdXJjZSB0byBiZSBkaXNrIGNh
Y2hlZCBiZWZvcmUgd2UgZm9yZ2V0IHRoZSByZXF1ZXN0Lgotc3RhdGljIGNvbnN0IGRvdWJsZSBk
aXNrQ2FjaGVNb25pdG9yVGltZW91dCA9IDIwOwotCiB2b2lkIE5ldHdvcmtEaXNrQ2FjaGVNb25p
dG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYgY2FjaGVkUmVzcG9uc2UsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogewogICAg
IGlmICghY2FjaGVkUmVzcG9uc2UpCkBAIC01Nyw0MyArNTAsMjMgQEAgdm9pZCBOZXR3b3JrRGlz
a0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihDRkNhY2hlZFVS
TFJlc3BvbnMKIAogICAgIEFTU0VSVChsb2FkZXIpOwogCi0gICAgbmV3IE5ldHdvcmtEaXNrQ2Fj
aGVNb25pdG9yKGNhY2hlZFJlc3BvbnNlLCBsb2FkZXIpOyAvLyBCYWxhbmNlZCBieSBhZG9wdFB0
ciBpbiB0aGUgYmxvY2tzIHNldHVwIGluIHRoZSBjb25zdHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlz
IGd1YXJhbnRlZWQgdG8gcnVuLgorICAgIG5ldyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcihjYWNo
ZWRSZXNwb25zZSwgbG9hZGVyKTsgLy8gQmFsYW5jZWQgYnkgYWRvcHRQdHIgaW4gdGhlIGJsb2Nr
cyBzZXR1cCBpbiB0aGUgRGlza0NhY2hlTW9uaXRvciBjb25zdHJ1Y3Rvciwgb25lIG9mIHdoaWNo
IGlzIGd1YXJhbnRlZWQgdG8gcnVuLgogfQogCiBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6TmV0
d29ya0Rpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25z
ZSwgTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2FkZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MobG9hZGVyLT5jb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkpCi0gICAgLCBtX3Jlc291
cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSkKLSAgICAsIG1fc2Vzc2lvbklEKGxvYWRlci0+
c2Vzc2lvbklEKCkpCisgICAgOiBEaXNrQ2FjaGVNb25pdG9yKGxvYWRlci0+cmVxdWVzdCgpLCBs
b2FkZXItPnNlc3Npb25JRCgpLCBjYWNoZWRSZXNwb25zZSkKKyAgICAsIG1fY29ubmVjdGlvblRv
V2ViUHJvY2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKIHsKLSAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgLy8gU2V0IHVwIGEgZGVsYXllZCBjYWxsYmFj
ayB0byBjYW5jZWwgdGhpcyBtb25pdG9yIGlmIHRoZSByZXNvdXJjZSBoYXNuJ3QgYmVlbiBjYWNo
ZWQgeWV0LgotICAgIF9fYmxvY2sgTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IqIHJhd01vbml0b3Ig
PSB0aGlzOwotCi0gICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1F
X05PVywgTlNFQ19QRVJfU0VDICogZGlza0NhY2hlTW9uaXRvclRpbWVvdXQpLCBkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBhZG9wdFB0cihyYXdNb25pdG9yKTsgLy8gQmFs
YW5jZWQgYnkgYG5ldyBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcmAgaW4gbW9uaXRvckZpbGVCYWNr
aW5nU3RvcmVDcmVhdGlvbi4KLSAgICAgICAgcmF3TW9uaXRvciA9IDA7Ci0gICAgfSk7Ci0KLSAg
ICAvLyBTZXQgdXAgdGhlIGRpc2sgY2FjaGluZyBjYWxsYmFjayB0byBjcmVhdGUgdGhlIFNoYXJl
YWJsZVJlc291cmNlIGFuZCBzZW5kIGl0IHRvIHRoZSBXZWJQcm9jZXNzLgotICAgIENGQ2FjaGVk
VVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrIGJsb2NrID0gXihDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
IGNhY2hlZFJlc3BvbnNlKQotICAgIHsKLSAgICAgICAgLy8gSWYgdGhlIG1vbml0b3IgaXNuJ3Qg
dGhlcmUgdGhlbiBpdCB0aW1lZCBvdXQgYmVmb3JlIHRoaXMgcmVzb3VyY2Ugd2FzIGNhY2hlZCB0
byBkaXNrLgotICAgICAgICBpZiAoIXJhd01vbml0b3IpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgT3duUHRyPE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yPiBtb25pdG9yID0gYWRvcHRQ
dHIocmF3TW9uaXRvcik7IC8vIEJhbGFuY2VkIGJ5IGBuZXcgTmV0d29ya0Rpc2tDYWNoZU1vbml0
b3JgIGluIG1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24uCi0gICAgICAgIHJhd01vbml0
b3IgPSAwOwotCi0gICAgICAgIFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgaGFuZGxlOwotICAg
ICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeUdldFNoYXJlYWJsZUhhbmRsZUZyb21DRlVS
TENhY2hlZFJlc3BvbnNlKGhhbmRsZSwgY2FjaGVkUmVzcG9uc2UpOwotICAgICAgICBpZiAoaGFu
ZGxlLmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0dXJuOworfQogCi0gICAgICAgIG1vbml0b3It
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkQ2FjaGVSZXNvdXJj
ZShtb25pdG9yLT5yZXNvdXJjZVJlcXVlc3QoKSwgaGFuZGxlLCBtX3Nlc3Npb25JRCkpOwotICAg
IH07Cit2b2lkIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJjZUJlY2FtZUZpbGVCYWNr
ZWQoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGZpbGVCYWNrZWRCdWZmZXIpCit7CisgICAgU2hh
cmVhYmxlUmVzb3VyY2U6OkhhbmRsZSBoYW5kbGU7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZGVy
Ojp0cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKGhhbmRsZSwgZmlsZUJhY2tl
ZEJ1ZmZlci5nZXQoKSk7CisgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tC
bG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwor
ICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkQ2FjaGVSZXNv
dXJjZShyZXNvdXJjZVJlcXVlc3QoKSwgaGFuZGxlLCBzZXNzaW9uSUQoKSkpOwogfQogCiBJUEM6
OkNvbm5lY3Rpb24qIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjptZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQppbmRleCA0M2FlZTBhNTA3OGNmNTlmZWYy
YjI5YmZmYTYzOGU4NmM0MThlNjI3Li4xNWM3OTJkOTMxYzdhMGE2MzlhNDZiNGQ1NDQ2Y2U4MWRm
ODhhMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKKyNpbXBvcnQgIk5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgiCiAjaW1wb3J0ICJOZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oIgogI2lt
cG9ydCAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5k
bGUuaD4K
</data>
<flag name="review"
          id="261443"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>