<?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>171483</bug_id>
          
          <creation_ts>2017-04-29 23:15:49 -0700</creation_ts>
          <short_desc>Updates to _WKWebsiteDataStoreConfiguration cookie storage location SPI</short_desc>
          <delta_ts>2017-04-30 13:55:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303077</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-29 23:15:49 -0700</bug_when>
    <thetext>Updates to _WKWebsiteDataStoreConfiguration cookie storage location SPI

These include:
-Point to a file instead of a directory
-Proper sandboxing
-Proper testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303078</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-29 23:16:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/31906397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303079</commentid>
    <comment_count>2</comment_count>
      <attachid>308686</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-29 23:22:41 -0700</bug_when>
    <thetext>Created attachment 308686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303082</commentid>
    <comment_count>3</comment_count>
      <attachid>308687</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-29 23:56:22 -0700</bug_when>
    <thetext>Created attachment 308687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303113</commentid>
    <comment_count>4</comment_count>
      <attachid>308694</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 10:52:20 -0700</bug_when>
    <thetext>Created attachment 308694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303114</commentid>
    <comment_count>5</comment_count>
      <attachid>308694</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-30 11:01:42 -0700</bug_when>
    <thetext>Comment on attachment 308694
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303121</commentid>
    <comment_count>6</comment_count>
      <attachid>308695</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 11:30:10 -0700</bug_when>
    <thetext>Created attachment 308695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303122</commentid>
    <comment_count>7</comment_count>
      <attachid>308696</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 11:36:44 -0700</bug_when>
    <thetext>Created attachment 308696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303123</commentid>
    <comment_count>8</comment_count>
      <attachid>308697</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 11:45:31 -0700</bug_when>
    <thetext>Created attachment 308697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303128</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 12:54:14 -0700</bug_when>
    <thetext>The mac-debug failures are happening on the test bots without this patch.

The ios-sim failures are happening on the test bots without this patch, too.

cq+&apos;ing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303132</commentid>
    <comment_count>10</comment_count>
      <attachid>308697</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-30 13:24:08 -0700</bug_when>
    <thetext>Comment on attachment 308697
Patch

Clearing flags on attachment: 308697

Committed r215991: &lt;http://trac.webkit.org/changeset/215991&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303133</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-30 13:24:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303135</commentid>
    <comment_count>12</comment_count>
      <attachid>308697</attachid>
    <who name="">mitz</who>
    <bug_when>2017-04-30 13:29:06 -0700</bug_when>
    <thetext>Comment on attachment 308697
Patch

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

&gt; Source/WebCore/platform/spi/cf/CFNetworkSPI.h:175
&gt; +#if (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101200)

Using less-than-or-equal in a deployment version check is almost always wrong. I think in this case you meant __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101300.

&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:214
&gt; +#if (__MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101200)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303137</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 13:34:47 -0700</bug_when>
    <thetext>(In reply to mitz from comment #12)
&gt; Comment on attachment 308697 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308697&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/spi/cf/CFNetworkSPI.h:175
&gt; &gt; +#if (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101200)
&gt; 
&gt; Using less-than-or-equal in a deployment version check is almost always
&gt; wrong. I think in this case you meant __MAC_OS_X_VERSION_MIN_REQUIRED &lt;
&gt; 101300.
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:214
&gt; &gt; +#if (__MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101200)
&gt; 
&gt; Ditto.

Can you describe why it is wrong?

Is this documented anywhere?

(First I&apos;ve heard of it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303138</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-04-30 13:35:42 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #10)
&gt; Comment on attachment 308697 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 308697
&gt; 
&gt; Committed r215991: &lt;http://trac.webkit.org/changeset/215991&gt;

This also broke builds that use the Apple-internal SDK because _CFHTTPCookieStorageFlushCookieStores is annotated as deprecated in that SDK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303139</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 13:41:29 -0700</bug_when>
    <thetext>(In reply to mitz from comment #14)
&gt; (In reply to WebKit Commit Bot from comment #10)
&gt; &gt; Comment on attachment 308697 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 308697
&gt; &gt; 
&gt; &gt; Committed r215991: &lt;http://trac.webkit.org/changeset/215991&gt;
&gt; 
&gt; This also broke builds that use the Apple-internal SDK because
&gt; _CFHTTPCookieStorageFlushCookieStores is annotated as deprecated in that SDK.

On which OS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303140</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 13:42:41 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #15)
&gt; (In reply to mitz from comment #14)
&gt; &gt; (In reply to WebKit Commit Bot from comment #10)
&gt; &gt; &gt; Comment on attachment 308697 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Clearing flags on attachment: 308697
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r215991: &lt;http://trac.webkit.org/changeset/215991&gt;
&gt; &gt; 
&gt; &gt; This also broke builds that use the Apple-internal SDK because
&gt; &gt; _CFHTTPCookieStorageFlushCookieStores is annotated as deprecated in that SDK.
&gt; 
&gt; On which OS?

I see the problem.

I&apos;ll just have disable the deprecation warnings there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303141</commentid>
    <comment_count>17</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-04-30 13:43:44 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #13)
&gt; (In reply to mitz from comment #12)
&gt; &gt; Comment on attachment 308697 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=308697&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/spi/cf/CFNetworkSPI.h:175
&gt; &gt; &gt; +#if (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101200)
&gt; &gt; 
&gt; &gt; Using less-than-or-equal in a deployment version check is almost always
&gt; &gt; wrong. I think in this case you meant __MAC_OS_X_VERSION_MIN_REQUIRED &lt;
&gt; &gt; 101300.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:214
&gt; &gt; &gt; +#if (__MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 101200)
&gt; &gt; 
&gt; &gt; Ditto.
&gt; 
&gt; Can you describe why it is wrong?

It’s wrong because API availability intervals are half-open, they include the left endpoint and exclude the right endpoint. For example, the interval of macOS versions v in which WKWebView’s certificateChain property is available but not deprecated is 10.11 &lt;= v &lt; 10.12.

&gt; Is this documented anywhere?

I believe that the semantics of availability annotations are documented in Availability.h as well as in the clang documentation. Everything else follows from that.

&gt; (First I&apos;ve heard of it)

It’s also easy to look for prior examples in the source code (as long as there aren’t many similar mistakes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303145</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-30 13:55:54 -0700</bug_when>
    <thetext>Followups in https://trac.webkit.org/changeset/215994/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308686</attachid>
            <date>2017-04-29 23:22:41 -0700</date>
            <delta_ts>2017-04-29 23:56:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171483-20170429232240.patch</filename>
            <type>text/plain</type>
            <size>29342</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBlNzk1N2IzNWVmMGVl
YTMwZDlkY2M5NDczZWUxZWI3N2IzMWNhZi4uNjVjMTYwYWVhODQ5ZDdmN2RkMTcwMGM0NWQ0NDM0
YjllOTU1YTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ292ZXJlZCBieSBBUEkgdGVzdCku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisKIDIwMTctMDQt
MjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBpQm9va3MgdGV4
dCBjYW4gb3ZlcmxhcCwgc29tZXRpbWVzIGNvbHVtbnMgYXJlIHNoaWZ0ZWQgc3BsaXR0aW5nIHdv
cmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDc0ODZiMzljYjQzYjIxMmU4MGFlODljMjkzYWVlZDEwY2QzZmE1
Y2YuLjQ2ODM2NmFlZmQzZDQ3NmJiOWU5ODk2YTdlMDdiNzc3MjVjZmJjNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1OSBAQAorMjAxNy0wNC0yOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBTUEkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIFVwZGF0ZXMgaW5jbHVkZToKKyAgICAgICAgLVRha2luZyBhIGZpbGUgcGF0aCBhcyB0
aGUgY29uZmlnIGFyZ3VtZW50IGluc3RlYWQgb2YgYSBkaXJlY3RvcnkuCisgICAgICAgIC1Qcm9w
ZXIgc2FuZGJveCBleHRlbnNpb24gaGFuZGxpbmcuCisgICAgICAgIC1Qcm9wZXIgYW5kIHRob3Jv
dWdoIEFQSSB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMpOgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24pOgor
CisgICAgICAgICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29s
IF9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9y
ZSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAg
ICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9jb29raWVTdG9yYWdlUGF0
aF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0Q29v
a2llU3RvcmFnZVBhdGg6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5XSk6IERlbGV0ZWQuCisgICAgICAgICgtW19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRGlyZWN0b3J5
Ol0pOiBEZWxldGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KToK
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVkQ29va2llU3RvcmFnZVBh
dGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZENvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkpOiBEZWxldGVkLgorCiAyMDE3LTA0LTI5ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIE1vdmUgV2ViQ29yZSBDUFVUaW1lIHRv
IFdURiBhbmQgaW1wbGVtZW50IGl0IGluIGFsbCB0aGUgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggZjkyZDU2YWMyM2UxNGE1
N2NhYjU0N2MzYzNmNWQ1MTAyNzQ5NWJiZC4uOWJhNDdjMDU0OTZiZWFjNDk1NTM5ZmU0MGVlM2Rk
NjIxOGRlZjUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NG
TmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdv
cmtTUEkuaApAQCAtMTcxLDYgKzE3MSwxMyBAQCB2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0
c1dpdGhTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogCiB2b2lkIENGSFRUUENvb2tp
ZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCisKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEw
MTIwMCkKK3ZvaWQgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vs
c2UKK3ZvaWQgQ0ZIVFRQQ29va2llU3RvcmFnZUZsdXNoQ29va2llU3RvcmVzKCk7CisjZW5kaWYK
KwogI2lmIFBMQVRGT1JNKENPQ09BKQogQ0ZEYXRhUmVmIF9DRkNhY2hlZFVSTFJlc3BvbnNlR2V0
TWVtTWFwcGVkRGF0YShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNpZmRlZiBfX0JMT0NLU19f
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggOTYzMGQ0ZmVjODhiMzgxNWI3OGJhYTA1Mjc3YTYzYWM2MGVmYWU4MS4uMDZlMjFkNTc1
MTY1ZDc1ZGNmYTYxYzQyMTY1MTNmYTAwNmRjMzljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjc3LDYgKzY3NywxMCBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnN5bmNBbGxDb29raWVzKCkKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IDYwZWQ2ZjEyMDcwOWE4Y2E3NDZhMTRmNDA2M2U2OGE1YmIwMzBlZWEuLmVhYzljMDg4ODFhNzAy
MjhlNWQxNTJkMDAyNGY2NWY0ZGQ0MDYyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7
CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFy
KTsKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wp
OworICAgIHZvaWQgc3luY0FsbENvb2tpZXMoKTsKIAogICAgIHZvaWQgZGlkR3JhbnRTYW5kYm94
RXh0ZW5zaW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElEKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkNWI4YzZjYjEyOTQzMzkxNzU1ZmJlYWM5ZGJhZDliZmNk
ZTI3NGI1Li44MDk0NDAwMmJmOWNlMmNhYTU1ZWIzYjVlMTlkOTFiODQwMjRmMzQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtNjUsNiArNjUsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldChib29sIGVuYWJsZWQpIC0+ICgpCiAKKyAgICBTeW5jQWxsQ29va2llcygpIC0+
ICgpCisKICAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKICAgICBTZXRDYW5IYW5k
bGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0KaW5kZXggZWYwZjU5MDBjYTA2MzE0MDdjODY0MDlmNDgxODlhMmNjMDg2ZGY5ZC4u
NjEyZjRkOGRkYTFjZGM5ZTk3ZWJkZDNiNDNiOWFkN2Y5YzAzMDkzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tCkBAIC0yMDgsNCArMjA4LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENvb2tp
ZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
KGVuYWJsZWQpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcygpCit7
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDEyMDApCisgICAgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOwor
I2Vsc2UKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsKKyNlbmRp
ZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggZjc4YjhmNmJmNmZmYzQ4MTE2
MjU1YmQ4ZDBkODFlOThiMWY1Mzk5Mi4uZjMzZGEyOGVlYmY1ODQwMWNlOWVlNmIzYmQ2YjA0MGRi
Yjc4OGE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMTEyLDE2ICsxMTIsMTMgQEAg
dm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Np
b24oV2Vic2l0ZURhdGFTdG9yZVBhcmEKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9u
VHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgIFNhbmRib3hFeHRlbnNp
b246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5z
aW9uSGFuZGxlKTsKIAogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiB1aVBy
b2Nlc3NDb29raWVTdG9yYWdlOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAotICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNv
b2tpZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRhKCksIHBh
cmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7Ci0gICAg
dWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0
ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURh
dGEuZ2V0KCkpKTsKLSNlbmRpZgorICAgIGlmICghcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVT
dG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJl
Zj4gY29va2llU3RvcmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmRhdGEo
KSwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5zaXplKCkpKTsK
KyAgICAgICAgdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3Rv
cmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2ll
U3RvcmFnZURhdGEuZ2V0KCkpKTsKKyAgICB9CiAKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmVuc3VyZVNlc3Npb24ocGFyYW1ldGVycy5zZXNzaW9uSUQsIGJhc2UgKyAnLicgKyBTdHJpbmc6
Om51bWJlcihwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSksIFdURk1vdmUodWlQcm9j
ZXNzQ29va2llU3RvcmFnZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcAppbmRleCBlYWYwMjliMjUxYjM2ZjdkMmZmZGNj
NDg4ODg3NzVjYzkzMjQ0YmExLi44MDc2MDhmZjY2OWI1NWQ1OTlkNTYyMDkyMWFhZTNjMDE5MTI0
YmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5jcHAKQEAgLTM4LDEyICszOCw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycygpCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgc2Vzc2lvbklEOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tp
ZVN0b3JhZ2VJZGVudGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGVuY29k
ZXIgPDwgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNlbmRpZgorICAg
IGVuY29kZXIgPDwgY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiB9CiAKIGJvb2wg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTEsMTUgKzQ3LDEx
IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFdlYnNpdGVEYXRhU3RvcmVQCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bWV0ZXJzLnNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElP
UykKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggYTA0Y2E1Mjc4OTJhMGNj
Y2RlN2U3OWYxMmNmOGVlNTg5OThkYTQ0MS4uOGI3NTBlNDEwMjVmOWU1ZWU4NTBlOGIzYzlmZDMw
MzNlODlmMDIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgKQEAgLTQ0LDEzICs0NCw4IEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklEOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllcjsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNl
bmRpZgorICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlUGF0aEV4dGVu
c2lvbkhhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDhkNDJk
ZDVjM2E1YTQwMGZkYTdhNjFiZmFmNDE1YmI5MzE5OWMyZmQuLjcwZmI2ZTg5NjMyNzM3YjFjNDFk
NDgxNmJiYWIwNjllMzg3MGEwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTI5Miw2ICsyOTIsMTEgQEAgLSAodm9p
ZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzCiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVE
YXRhYmFzZVByb2Nlc3MoKTsKIH0KIAorLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2ll
cworeworICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOworfQor
CiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudAogewogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wt
PnByb2Nlc3NlcygpLnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAxMGYyM2E3ZGE1YmU1
YmY1N2M0MjhlZTM1MjgxMjIyZmQxOGIxMDRmLi43ZTkwOTc1OGVhNWU1N2FmN2M0MmQ5NjUxOGZj
Y2Y3MjQ0ZjAxODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03MSw2ICs3MSw3IEBACiAKIC8v
IFRlc3Qgb25seS4KIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50OworLSAodm9pZClfc3luY05l
dHdvcmtQcm9jZXNzQ29va2llczsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJl
Zm9yZSBhbnkgd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KICsgKHZvaWQpX2Zv
cmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcms7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGExMjJmM2Y1
MjcyNDFmNTgyNzdjMTkzNzM2NTc5M2U3ZDViYmZmZjMuLjNkYTgxZDY4MThlZDk3ZWEyMTA3ZDIx
YWY3ZTIwMjUyZTdkNTI1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xNjAsOCArMTYwLDggQEAg
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uICopY29uZmkKICAgICAgICAgY29uZmlnLndlYlNRTERhdGFiYXNlRGly
ZWN0b3J5ID0gY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aDsKICAg
ICBpZiAoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCiAgICAgICAg
IGNvbmZpZy5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGNvbmZpZ3VyYXRpb24uX2luZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGg7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy5jb29raWVTdG9yYWdlRGlyZWN0b3J5
ID0gY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZURpcmVjdG9yeS5wYXRoOworICAgIGlmIChj
b25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlUGF0aCkKKyAgICAgICAgY29uZmlnLmNvb2tpZVN0
b3JhZ2VQYXRoID0gY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZVBhdGgucGF0aDsKIAogICAg
IEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihz
ZWxmLCBjb25maWcsIFdlYkNvcmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lv
bklEKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXgg
YjE4YTIxMzdjNGUwYmU1MDgyZmYyODFjNzdkYjdkODgzZjdlNjhiOS4uOWI5OTAyZDdhNjU5OTdj
Y2E0ZmRjYWE2MmUxMjFmNjVlYTNkZTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaApAQCAtMzcsNyArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGly
ZWN0b3J5OwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERC
RGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5Owog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwotQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpf
Y29va2llU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9
X3NldENvb2tpZVN0b3JhZ2VQYXRoOikgTlNVUkwgKl9jb29raWVTdG9yYWdlUGF0aCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCA4Mjk2NDg5
ZDVkMGMyZThhMjkyODUyZWY2MmQ3M2U1NDEzNDc5MGIyLi5iNWUxNjFlYTNmYTJiM2FlZjMzODEz
ODIxZDk3NGZmZTA3NjQ4ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24ubW0KQEAgLTQwLDcgKzQwLDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIHsKICAgICBSZXRhaW5QdHI8TlNVUkw+IF93ZWJTdG9yYWdlRGly
ZWN0b3J5VVJMOwogICAgIFJldGFpblB0cjxOU1VSTD4gX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0
b3J5VVJMOwogICAgIFJldGFpblB0cjxOU1VSTD4gX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5VVJM
OwotICAgIFJldGFpblB0cjxOU1VSTD4gX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnlVUkw7CisgICAg
UmV0YWluUHRyPE5TVVJMPiBfY29va2llU3RvcmFnZVBhdGhVUkw7CiB9CiAKIC0oTlNVUkwgKilf
d2ViU3RvcmFnZURpcmVjdG9yeSB7CkBAIC03MCwxMyArNzAsMTYgQEAgLSh2b2lkKV9zZXRXZWJT
UUxEYXRhYmFzZURpcmVjdG9yeTooTlNVUkwgKil1cmwgewogICAgIF93ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeVVSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7CiB9CiAKLS0oTlNVUkwgKilfY29va2ll
U3RvcmFnZURpcmVjdG9yeSB7Ci0gICAgcmV0dXJuIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJM
LmdldCgpOworLShOU1VSTCAqKV9jb29raWVTdG9yYWdlUGF0aCB7CisgICAgcmV0dXJuIF9jb29r
aWVTdG9yYWdlUGF0aFVSTC5nZXQoKTsKIH0KIAotLSh2b2lkKV9zZXRDb29raWVTdG9yYWdlRGly
ZWN0b3J5OihOU1VSTCAqKXVybCB7CistKHZvaWQpX3NldENvb2tpZVN0b3JhZ2VQYXRoOihOU1VS
TCAqKXVybCB7CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwotICAgIF9jb29raWVTdG9yYWdl
RGlyZWN0b3J5VVJMID0gYWRvcHROUyhbdXJsIGNvcHldKTsKKyAgICBpZiAoW3VybCBoYXNEaXJl
Y3RvcnlQYXRoXSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50
RXhjZXB0aW9uIGZvcm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8g
YSBmaWxlLCBub3QgYSBkaXJlY3RvcnkuIl07CisKKyAgICBfY29va2llU3RvcmFnZVBhdGhVUkwg
PSBhZG9wdE5TKFt1cmwgY29weV0pOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzNmM2NGU0MTQzNDA4YmMxMjYwZDBjMzBjODVk
M2VkMWFhYmMwNWJiLi44NTBlNjVkZmM1YTRhOTE5MTFjZmI2Y2ZmNzBlNmM2OWEzMDhlZTQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEzMTks
NiArMTMxOSwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
cygpCiAgICAgbV9uZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKQoreworICAgIHNlbmRTeW5jVG9OZXR3
b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN5bmNBbGxDb29raWVzKCks
IE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXM6OlJlcGx5KCkpOworfQor
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhv
c3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBo
b3N0KQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGYzZWE2ODQ2YzdkMmY1Mzk0OTYwNWI4OGIyNzQw
MmRkZjc5Y2QyMzIuLjg3MTI1OTE1ZmZkZTdiMzJlYTgyNDMyZDNlYTRlODM1NTVkN2FkYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNjQsNiArMjY0
LDggQEAgcHVibGljOgogICAgIHZvaWQgdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzKCk7CiAgICAg
dm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgdm9pZCBzeW5jTmV0d29ya1By
b2Nlc3NDb29raWVzKCk7CisKICAgICB2b2lkIHJlcG9ydFdlYkNvbnRlbnRDUFVUaW1lKFNlY29u
ZHMgY3B1VGltZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSk7CiAKICAgICB2b2lkIGFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBj
b25zdCBTdHJpbmcmIGhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
aW5kZXggMGM0MDBkYjNjYzU3ODJkMTVjZWJiNjE5OWZlOTRiNmZlNjgxMzFmYS4uMTJmZDM5N2U5
ZjlkN2FiN2VhYjkxMTgwZTlkNWUyYWM0ZTc0NTIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
aWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudUNvY29hLmg+CiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTQsMTAgKzU1LDEwIEBAIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogCiAg
ICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBhdXRv
IGNvb2tpZVBhdGggPSByZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKCk7CiAgICAgaWYgKG1fdWlQ
cm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8g
Y29va2llUGF0aCA9IHJlc29sdmVkQ29va2llU3RvcmFnZURpcmVjdG9yeSgpLnV0ZjgoKTsKLSAg
ICAgICAgYXV0byB1cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlRnJvbUZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDggKiljb29raWVQYXRoLmRh
dGEoKSwgKENGSW5kZXgpY29va2llUGF0aC5sZW5ndGgoKSwgdHJ1ZSkpOworICAgICAgICBhdXRv
IHV0ZjhQYXRoID0gY29va2llUGF0aC51dGY4KCk7CisgICAgICAgIGF1dG8gdXJsID0gYWRvcHRD
RihDRlVSTENyZWF0ZUZyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oa0NGQWxsb2NhdG9yRGVm
YXVsdCwgKGNvbnN0IFVJbnQ4ICopdXRmOFBhdGguZGF0YSgpLCAoQ0ZJbmRleCl1dGY4UGF0aC5s
ZW5ndGgoKSwgdHJ1ZSkpOwogICAgICAgICBtX2NmQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZI
VFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21GaWxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHVybC5n
ZXQoKSwgbnVsbHB0cikpOwogICAgICAgICBhdXRvIGNmRGF0YSA9IGFkb3B0Q0YoQ0ZIVFRQQ29v
a2llU3RvcmFnZUNyZWF0ZUlkZW50aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2Nm
Q29va2llU3RvcmFnZS5nZXQoKSkpOwogCkBAIC02NSwxMyArNjYsOCBAQCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICB9CiAKICAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gbV91aVByb2Nl
c3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlZENvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0
eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVE
aXJlY3RvcnkoY29va2llU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5jb29raWVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgIGlmICghY29va2llUGF0aC5p
c0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRX
cml0ZURpcmVjdG9yeShXZWJDb3JlOjpkaXJlY3RvcnlOYW1lKGNvb2tpZVBhdGgpLCBwYXJhbWV0
ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIHJldHVybiBwYXJh
bWV0ZXJzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGQ0MjU2MzM4NzViNzI2YTVlZjA5Mjhj
YTE3MTNhNGVkMWEwNGNiMGYuLjMyN2RjY2YwM2RmNTJkOTY1NTRlNGViYjQ1YTZkODRiZWExMmFj
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlVHJhY2tlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlh
RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZ2luTG9jay5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KQEAgLTExMiwxNSArMTEzLDIxIEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9oYXNSZXNvbHZlZERpcmVjdG9yaWVzID0gdHJ1ZTsKIAorICAgIC8v
IFJlc29sdmUgZGlyZWN0b3J5IHBhdGhzLgogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0
b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSk7CiAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9y
eSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9u
KG1fY29uZmlndXJhdGlvbi5tZWRpYUNhY2hlRGlyZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLm1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLndlYlNR
TERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZv
clNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5
KTsKLSAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0g
cmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9j
b25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmluZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAgIGlmICghbV9jb25maWd1cmF0aW9uLmphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24uamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgPSByZXNvbHZl
UGF0aEZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1
cmF0aW9uRGlyZWN0b3J5KTsKKworICAgIC8vIFJlc29sdmUgZGlyZWN0b3JpZXMgZm9yIGZpbGUg
cGF0aHMuCisgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGguaXNFbXB0
eSgpKSB7CisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VQYXRo
ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24o
V2ViQ29yZTo6ZGlyZWN0b3J5TmFtZShtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGgp
KTsKKyAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGggPSBX
ZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yZXNvbHZlZENvbmZpZ3VyYXRpb24u
Y29va2llU3RvcmFnZVBhdGgsIFdlYkNvcmU6OnBhdGhHZXRGaWxlTmFtZShtX2NvbmZpZ3VyYXRp
b24uY29va2llU3RvcmFnZVBhdGgpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6Y2xvbmVTZXNzaW9uRGF0YShXZWJQYWdlUHJveHkmIHNvdXJjZVBhZ2UsIFdlYlBhZ2VQcm94
eSYgbmV3UGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGM0MDg0YzY3NDA5OTM2NTUzOTA2Y2JmMDUw
OWVmNDYwMWY4NGFjZGIuLjJiYWQxYWIxNzBmZDljNzYzMjUzN2ExZWI4NDkyOGIzNWQ0ODg4ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmlu
ZyBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwogICAgICAgICBTdHJpbmcgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIGphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5OwotICAgICAgICBTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeTsKKyAg
ICAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VQYXRoOwogICAgIH07CiAgICAgc3RhdGljIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50KCk7CiAgICAgc3RhdGljIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklE
KTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZl
ZE1lZGlhS2V5c0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29s
dmVkRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2
ZWRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OyB9Ci0g
ICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7
IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRGlyZWN0b3J5OyB9
CisgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGg7IH0KICAgICBj
b25zdCBTdHJpbmcmIHJlc29sdmVkSW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7
IH0KIAogICAgIFN0b3JhZ2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdlcigpIHsgcmV0dXJuIG1fc3Rv
cmFnZU1hbmFnZXIuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAyMGJlOTcyMTg2MDJhYzIxMzY0OTlhYWIxYTBjMWM1NGE2NGEzMmQ1
Li4wZWYwYzM0ZTdiZWYwNzM5MjhhY2I2YTFkZTM5YjIwNjc0MmJjZTVhIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTctMDQtMjkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFVw
ZGF0ZXMgdG8gX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gY29va2llIHN0b3JhZ2Ug
bG9jYXRpb24gU1BJLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE5MDYzOTc+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW06CisgICAgICAgIChU
RVNUKToKKwogMjAxNy0wNC0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgc3lzdGVtIHRyYWNlIHBvaW50cyBmb3IgRG9jdW1lbnQ6OnVwZGF0
ZVRvdWNoRXZlbnRSZWdpb25zKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cy5tbQppbmRleCA0YjRmMTEyZWRmMTY3NzNhMDI0MDRjYTdiZDVjZDRmMmVmMGMzNzZmLi5lYzBk
YzEzNWM2MjIzMDVhZTk4NzRjMGI4NmVhNTVjNWI2ZmNjMDYzIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC03NCwxNCArNzQsMTQgQEAgVEVTVChXZWJLaXQy
LCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRy
b2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RI
YW5kbGVyIl07CiAKLSAgICBOU1VSTCAqc3FsUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1dlYlNR
TC8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqaWRiUGF0aCA9
IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJ
L0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBh
dGhdXTsKLSAgICBOU1VSTCAqbG9jYWxTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0xv
Y2FsU3RvcmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAq
Y29va2llU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9X
ZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Db29raWVTdG9yYWdlLyIgc3Ry
aW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpzcWxQYXRoID0gW05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9t
V2Vic2l0ZURhdGEvV2ViU1FMLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJl
Y3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4
ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107Cisg
ICAgTlNVUkwgKmxvY2FsU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4v
TGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Mb2NhbFN0b3Jh
Z2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAg
IE5TVVJMICpjb29raWVTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9M
aWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0Nvb2tpZVN0b3Jh
Z2UvQ29va2llLkZpbGUiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5
Ok5PXTsKIAotICAgIE5TVVJMICpkZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8i
IHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqZGVmYXVsdElEQlBh
dGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktp
dEFQSS9XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRo
XV07Ci0gICAgTlNVUkwgKmRlZmF1bHRMb2NhbFN0b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxX
aXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvTG9j
YWxTdG9yYWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpk
ZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktp
dC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8iIHN0cmluZ0J5RXhwYW5kaW5nVGls
ZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNVUkwgKmRlZmF1bHRJREJQYXRoID0g
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkv
V2Vic2l0ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNE
aXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqZGVmYXVsdExvY2FsU3RvcmFnZVBhdGggPSBbTlNV
UkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJz
aXRlRGF0YS9Mb2NhbFN0b3JhZ2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0Rp
cmVjdG9yeTpZRVNdOwogCiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1v
dmVJdGVtQXRVUkw6c3FsUGF0aCBlcnJvcjpuaWxdOwogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsKQEAgLTEwMyw3
ICsxMDMsNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAg
ICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnkg
PSBzcWxQYXRoOwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9pbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CiAgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkgPSBsb2NhbFN0b3JhZ2VQYXRoOwotICAgIHdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gY29va2ll
U3RvcmFnZVBhdGg7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0
b3JhZ2VQYXRoID0gY29va2llU3RvcmFnZVBhdGg7CiAKICAgICBjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgPSBbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbl07CiAgICAgW3dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHJlbGVhc2VdOwpAQCAtMTI1LDggKzEyNSwxNyBAQCBU
RVNUKFdlYktpdDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAgICBFWFBFQ1RfVFJV
RShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6aWRiUGF0
aC5wYXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRJREJQYXRoLnBhdGhdKTsKIAotICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSB0cnVlLCBidXQgY29tZXMgdXAgZmFsc2UuIFBvc3NpYmx5IGEgQ0ZO
ZXR3b3JrIGlzc3VlLiBCZWluZyBleHBsb3JlZCBpbiA8cmRhcjovL3Byb2JsZW0vMzE2NjYyNzU+
Ci0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4
aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlUGF0aC5wYXRoXSk7CisgICAgW1tbd2ViVmlldyBjb25m
aWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdOworICAg
IEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0
UGF0aDpjb29raWVTdG9yYWdlUGF0aC5wYXRoXSk7CisKKyAgICAvLyBOb3RlOiBUaGUgZm9ybWF0
IG9mIHRoZSBjb29raWUgZmlsZSBvbiBkaXNrIGlzIHByb3ByaWV0YXJ5IGFuZCBvcGFxdWUsIHNv
IHRoaXMgaXMgZnJhZ2lsZSB0byBmdXR1cmUgY2hhbmdlcy4KKyAgICAvLyBCdXQgcmlnaHQgbm93
LCBpdCBpcyByZWxpYWJsZSB0byBzY2FuIHRoZSBmaWxlIGZvciB0aGUgQVNDSUkgc3RyaW5nIG9m
IHRoZSBjb29raWUgbmFtZSB3ZSBzZXQuCisgICAgLy8gVGhpcyBoZWxwcyB2ZXJpZnkgdGhhdCB0
aGUgY29va2llIGZpbGUgd2FzIGFjdHVhbGx5IHdyaXR0ZW4gdG8gYXMgd2UnZCBleHBlY3QuCisg
ICAgYXV0byBkYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhDb250ZW50c09m
VVJMOmNvb2tpZVN0b3JhZ2VQYXRoXSk7CisgICAgY2hhciBieXRlc1tdID0gInRlc3RrZXkiOwor
ICAgIGF1dG8gY29va2llS2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6KHZvaWQgKilieXRlcyBsZW5ndGg6c3RybGVuKGJ5dGVzKV0pOworICAgIGF1dG8gcmVz
dWx0ID0gW2RhdGEgcmFuZ2VPZkRhdGE6Y29va2llS2V5RGF0YS5nZXQoKSBvcHRpb25zOjAgcmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgZGF0YS5nZXQoKS5sZW5ndGgpXTsKKyAgICBFWFBFQ1RfTkUoKGNv
bnN0IGxvbmcpcmVzdWx0LmxvY2F0aW9uLCBOU05vdEZvdW5kKTsKIAogICAgIC8vIEZJWE1FOiBU
aGUgZGVmYXVsdCBTUUwgYW5kIExvY2FsU3RvcmFnZSBwYXRocyBhcmUgYmVpbmcgdXNlZCBmb3Ig
c29tZXRoaW5nLCBidXQgdGhleSBzaG91bGRuJ3QgYmUuICh0aGVzZXMgc2hvdWxkIGJlIGZhbHNl
LCBub3QgdHJ1ZSkKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFNRTFBhdGgucGF0aF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308687</attachid>
            <date>2017-04-29 23:56:22 -0700</date>
            <delta_ts>2017-04-30 10:52:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171483-20170429235621.patch</filename>
            <type>text/plain</type>
            <size>30900</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBlNzk1N2IzNWVmMGVl
YTMwZDlkY2M5NDczZWUxZWI3N2IzMWNhZi4uNjVjMTYwYWVhODQ5ZDdmN2RkMTcwMGM0NWQ0NDM0
YjllOTU1YTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ292ZXJlZCBieSBBUEkgdGVzdCku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisKIDIwMTctMDQt
MjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBpQm9va3MgdGV4
dCBjYW4gb3ZlcmxhcCwgc29tZXRpbWVzIGNvbHVtbnMgYXJlIHNoaWZ0ZWQgc3BsaXR0aW5nIHdv
cmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDc0ODZiMzljYjQzYjIxMmU4MGFlODljMjkzYWVlZDEwY2QzZmE1
Y2YuLjQ2ODM2NmFlZmQzZDQ3NmJiOWU5ODk2YTdlMDdiNzc3MjVjZmJjNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1OSBAQAorMjAxNy0wNC0yOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBTUEkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIFVwZGF0ZXMgaW5jbHVkZToKKyAgICAgICAgLVRha2luZyBhIGZpbGUgcGF0aCBhcyB0
aGUgY29uZmlnIGFyZ3VtZW50IGluc3RlYWQgb2YgYSBkaXJlY3RvcnkuCisgICAgICAgIC1Qcm9w
ZXIgc2FuZGJveCBleHRlbnNpb24gaGFuZGxpbmcuCisgICAgICAgIC1Qcm9wZXIgYW5kIHRob3Jv
dWdoIEFQSSB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMpOgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24pOgor
CisgICAgICAgICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29s
IF9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9y
ZSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAg
ICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9jb29raWVTdG9yYWdlUGF0
aF0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0Q29v
a2llU3RvcmFnZVBhdGg6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5XSk6IERlbGV0ZWQuCisgICAgICAgICgtW19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9zZXRDb29raWVTdG9yYWdlRGlyZWN0b3J5
Ol0pOiBEZWxldGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KToK
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVkQ29va2llU3RvcmFnZVBh
dGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZENvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkpOiBEZWxldGVkLgorCiAyMDE3LTA0LTI5ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIE1vdmUgV2ViQ29yZSBDUFVUaW1lIHRv
IFdURiBhbmQgaW1wbGVtZW50IGl0IGluIGFsbCB0aGUgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggZjkyZDU2YWMyM2UxNGE1
N2NhYjU0N2MzYzNmNWQ1MTAyNzQ5NWJiZC4uOWJhNDdjMDU0OTZiZWFjNDk1NTM5ZmU0MGVlM2Rk
NjIxOGRlZjUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NG
TmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdv
cmtTUEkuaApAQCAtMTcxLDYgKzE3MSwxMyBAQCB2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0
c1dpdGhTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogCiB2b2lkIENGSFRUUENvb2tp
ZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCisKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEw
MTIwMCkKK3ZvaWQgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vs
c2UKK3ZvaWQgQ0ZIVFRQQ29va2llU3RvcmFnZUZsdXNoQ29va2llU3RvcmVzKCk7CisjZW5kaWYK
KwogI2lmIFBMQVRGT1JNKENPQ09BKQogQ0ZEYXRhUmVmIF9DRkNhY2hlZFVSTFJlc3BvbnNlR2V0
TWVtTWFwcGVkRGF0YShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNpZmRlZiBfX0JMT0NLU19f
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggOTYzMGQ0ZmVjODhiMzgxNWI3OGJhYTA1Mjc3YTYzYWM2MGVmYWU4MS4uMDZlMjFkNTc1
MTY1ZDc1ZGNmYTYxYzQyMTY1MTNmYTAwNmRjMzljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjc3LDYgKzY3NywxMCBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnN5bmNBbGxDb29raWVzKCkKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IDYwZWQ2ZjEyMDcwOWE4Y2E3NDZhMTRmNDA2M2U2OGE1YmIwMzBlZWEuLmVhYzljMDg4ODFhNzAy
MjhlNWQxNTJkMDAyNGY2NWY0ZGQ0MDYyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7
CiAgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFy
KTsKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wp
OworICAgIHZvaWQgc3luY0FsbENvb2tpZXMoKTsKIAogICAgIHZvaWQgZGlkR3JhbnRTYW5kYm94
RXh0ZW5zaW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElEKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkNWI4YzZjYjEyOTQzMzkxNzU1ZmJlYWM5ZGJhZDliZmNk
ZTI3NGI1Li44MDk0NDAwMmJmOWNlMmNhYTU1ZWIzYjVlMTlkOTFiODQwMjRmMzQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtNjUsNiArNjUsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldChib29sIGVuYWJsZWQpIC0+ICgpCiAKKyAgICBTeW5jQWxsQ29va2llcygpIC0+
ICgpCisKICAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKICAgICBTZXRDYW5IYW5k
bGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0KaW5kZXggZWYwZjU5MDBjYTA2MzE0MDdjODY0MDlmNDgxODlhMmNjMDg2ZGY5ZC4u
NjEyZjRkOGRkYTFjZGM5ZTk3ZWJkZDNiNDNiOWFkN2Y5YzAzMDkzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tCkBAIC0yMDgsNCArMjA4LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENvb2tp
ZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
KGVuYWJsZWQpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcygpCit7
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDEyMDApCisgICAgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOwor
I2Vsc2UKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsKKyNlbmRp
ZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggZjc4YjhmNmJmNmZmYzQ4MTE2
MjU1YmQ4ZDBkODFlOThiMWY1Mzk5Mi4uZjMzZGEyOGVlYmY1ODQwMWNlOWVlNmIzYmQ2YjA0MGRi
Yjc4OGE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMTEyLDE2ICsxMTIsMTMgQEAg
dm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Np
b24oV2Vic2l0ZURhdGFTdG9yZVBhcmEKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9u
VHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgIFNhbmRib3hFeHRlbnNp
b246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5z
aW9uSGFuZGxlKTsKIAogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiB1aVBy
b2Nlc3NDb29raWVTdG9yYWdlOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAotICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNv
b2tpZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRhKCksIHBh
cmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7Ci0gICAg
dWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0
ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURh
dGEuZ2V0KCkpKTsKLSNlbmRpZgorICAgIGlmICghcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVT
dG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJl
Zj4gY29va2llU3RvcmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmRhdGEo
KSwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5zaXplKCkpKTsK
KyAgICAgICAgdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3Rv
cmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2ll
U3RvcmFnZURhdGEuZ2V0KCkpKTsKKyAgICB9CiAKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmVuc3VyZVNlc3Npb24ocGFyYW1ldGVycy5zZXNzaW9uSUQsIGJhc2UgKyAnLicgKyBTdHJpbmc6
Om51bWJlcihwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSksIFdURk1vdmUodWlQcm9j
ZXNzQ29va2llU3RvcmFnZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcAppbmRleCBlYWYwMjliMjUxYjM2ZjdkMmZmZGNj
NDg4ODg3NzVjYzkzMjQ0YmExLi44MDc2MDhmZjY2OWI1NWQ1OTlkNTYyMDkyMWFhZTNjMDE5MTI0
YmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5jcHAKQEAgLTM4LDEyICszOCw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycygpCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgc2Vzc2lvbklEOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tp
ZVN0b3JhZ2VJZGVudGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGVuY29k
ZXIgPDwgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNlbmRpZgorICAg
IGVuY29kZXIgPDwgY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiB9CiAKIGJvb2wg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTEsMTUgKzQ3LDEx
IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFdlYnNpdGVEYXRhU3RvcmVQCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bWV0ZXJzLnNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElP
UykKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggYTA0Y2E1Mjc4OTJhMGNj
Y2RlN2U3OWYxMmNmOGVlNTg5OThkYTQ0MS4uOGI3NTBlNDEwMjVmOWU1ZWU4NTBlOGIzYzlmZDMw
MzNlODlmMDIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgKQEAgLTQ0LDEzICs0NCw4IEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklEOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllcjsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNl
bmRpZgorICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlUGF0aEV4dGVu
c2lvbkhhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDhkNDJk
ZDVjM2E1YTQwMGZkYTdhNjFiZmFmNDE1YmI5MzE5OWMyZmQuLjcwZmI2ZTg5NjMyNzM3YjFjNDFk
NDgxNmJiYWIwNjllMzg3MGEwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTI5Miw2ICsyOTIsMTEgQEAgLSAodm9p
ZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzCiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVE
YXRhYmFzZVByb2Nlc3MoKTsKIH0KIAorLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2ll
cworeworICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOworfQor
CiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudAogewogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wt
PnByb2Nlc3NlcygpLnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAxMGYyM2E3ZGE1YmU1
YmY1N2M0MjhlZTM1MjgxMjIyZmQxOGIxMDRmLi43ZTkwOTc1OGVhNWU1N2FmN2M0MmQ5NjUxOGZj
Y2Y3MjQ0ZjAxODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03MSw2ICs3MSw3IEBACiAKIC8v
IFRlc3Qgb25seS4KIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50OworLSAodm9pZClfc3luY05l
dHdvcmtQcm9jZXNzQ29va2llczsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJl
Zm9yZSBhbnkgd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KICsgKHZvaWQpX2Zv
cmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcms7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGExMjJmM2Y1
MjcyNDFmNTgyNzdjMTkzNzM2NTc5M2U3ZDViYmZmZjMuLjNkYTgxZDY4MThlZDk3ZWEyMTA3ZDIx
YWY3ZTIwMjUyZTdkNTI1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xNjAsOCArMTYwLDggQEAg
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uICopY29uZmkKICAgICAgICAgY29uZmlnLndlYlNRTERhdGFiYXNlRGly
ZWN0b3J5ID0gY29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aDsKICAg
ICBpZiAoY29uZmlndXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCiAgICAgICAg
IGNvbmZpZy5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGNvbmZpZ3VyYXRpb24uX2luZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5LnBhdGg7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgICAgIGNvbmZpZy5jb29raWVTdG9yYWdlRGlyZWN0b3J5
ID0gY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZURpcmVjdG9yeS5wYXRoOworICAgIGlmIChj
b25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlUGF0aCkKKyAgICAgICAgY29uZmlnLmNvb2tpZVN0
b3JhZ2VQYXRoID0gY29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZVBhdGgucGF0aDsKIAogICAg
IEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihz
ZWxmLCBjb25maWcsIFdlYkNvcmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lv
bklEKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXgg
YjE4YTIxMzdjNGUwYmU1MDgyZmYyODFjNzdkYjdkODgzZjdlNjhiOS4uOWI5OTAyZDdhNjU5OTdj
Y2E0ZmRjYWE2MmUxMjFmNjVlYTNkZTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaApAQCAtMzcsNyArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGly
ZWN0b3J5OwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERC
RGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5Owog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwotQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpf
Y29va2llU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9
X3NldENvb2tpZVN0b3JhZ2VQYXRoOikgTlNVUkwgKl9jb29raWVTdG9yYWdlUGF0aCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCA4Mjk2NDg5
ZDVkMGMyZThhMjkyODUyZWY2MmQ3M2U1NDEzNDc5MGIyLi5iNWUxNjFlYTNmYTJiM2FlZjMzODEz
ODIxZDk3NGZmZTA3NjQ4ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24ubW0KQEAgLTQwLDcgKzQwLDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIHsKICAgICBSZXRhaW5QdHI8TlNVUkw+IF93ZWJTdG9yYWdlRGly
ZWN0b3J5VVJMOwogICAgIFJldGFpblB0cjxOU1VSTD4gX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0
b3J5VVJMOwogICAgIFJldGFpblB0cjxOU1VSTD4gX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5VVJM
OwotICAgIFJldGFpblB0cjxOU1VSTD4gX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnlVUkw7CisgICAg
UmV0YWluUHRyPE5TVVJMPiBfY29va2llU3RvcmFnZVBhdGhVUkw7CiB9CiAKIC0oTlNVUkwgKilf
d2ViU3RvcmFnZURpcmVjdG9yeSB7CkBAIC03MCwxMyArNzAsMTYgQEAgLSh2b2lkKV9zZXRXZWJT
UUxEYXRhYmFzZURpcmVjdG9yeTooTlNVUkwgKil1cmwgewogICAgIF93ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeVVSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7CiB9CiAKLS0oTlNVUkwgKilfY29va2ll
U3RvcmFnZURpcmVjdG9yeSB7Ci0gICAgcmV0dXJuIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJM
LmdldCgpOworLShOU1VSTCAqKV9jb29raWVTdG9yYWdlUGF0aCB7CisgICAgcmV0dXJuIF9jb29r
aWVTdG9yYWdlUGF0aFVSTC5nZXQoKTsKIH0KIAotLSh2b2lkKV9zZXRDb29raWVTdG9yYWdlRGly
ZWN0b3J5OihOU1VSTCAqKXVybCB7CistKHZvaWQpX3NldENvb2tpZVN0b3JhZ2VQYXRoOihOU1VS
TCAqKXVybCB7CiAgICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwotICAgIF9jb29raWVTdG9yYWdl
RGlyZWN0b3J5VVJMID0gYWRvcHROUyhbdXJsIGNvcHldKTsKKyAgICBpZiAoW3VybCBoYXNEaXJl
Y3RvcnlQYXRoXSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50
RXhjZXB0aW9uIGZvcm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8g
YSBmaWxlLCBub3QgYSBkaXJlY3RvcnkuIl07CisKKyAgICBfY29va2llU3RvcmFnZVBhdGhVUkwg
PSBhZG9wdE5TKFt1cmwgY29weV0pOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzNmM2NGU0MTQzNDA4YmMxMjYwZDBjMzBjODVk
M2VkMWFhYmMwNWJiLi44NTBlNjVkZmM1YTRhOTE5MTFjZmI2Y2ZmNzBlNmM2OWEzMDhlZTQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEzMTks
NiArMTMxOSwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
cygpCiAgICAgbV9uZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKQoreworICAgIHNlbmRTeW5jVG9OZXR3
b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN5bmNBbGxDb29raWVzKCks
IE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXM6OlJlcGx5KCkpOworfQor
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhv
c3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBo
b3N0KQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGYzZWE2ODQ2YzdkMmY1Mzk0OTYwNWI4OGIyNzQw
MmRkZjc5Y2QyMzIuLjg3MTI1OTE1ZmZkZTdiMzJlYTgyNDMyZDNlYTRlODM1NTVkN2FkYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNjQsNiArMjY0
LDggQEAgcHVibGljOgogICAgIHZvaWQgdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzKCk7CiAgICAg
dm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgdm9pZCBzeW5jTmV0d29ya1By
b2Nlc3NDb29raWVzKCk7CisKICAgICB2b2lkIHJlcG9ydFdlYkNvbnRlbnRDUFVUaW1lKFNlY29u
ZHMgY3B1VGltZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSk7CiAKICAgICB2b2lkIGFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBj
b25zdCBTdHJpbmcmIGhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
aW5kZXggMGM0MDBkYjNjYzU3ODJkMTVjZWJiNjE5OWZlOTRiNmZlNjgxMzFmYS4uMTJmZDM5N2U5
ZjlkN2FiN2VhYjkxMTgwZTlkNWUyYWM0ZTc0NTIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
aWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudUNvY29hLmg+CiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTQsMTAgKzU1LDEwIEBAIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogCiAg
ICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBhdXRv
IGNvb2tpZVBhdGggPSByZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKCk7CiAgICAgaWYgKG1fdWlQ
cm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8g
Y29va2llUGF0aCA9IHJlc29sdmVkQ29va2llU3RvcmFnZURpcmVjdG9yeSgpLnV0ZjgoKTsKLSAg
ICAgICAgYXV0byB1cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlRnJvbUZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDggKiljb29raWVQYXRoLmRh
dGEoKSwgKENGSW5kZXgpY29va2llUGF0aC5sZW5ndGgoKSwgdHJ1ZSkpOworICAgICAgICBhdXRv
IHV0ZjhQYXRoID0gY29va2llUGF0aC51dGY4KCk7CisgICAgICAgIGF1dG8gdXJsID0gYWRvcHRD
RihDRlVSTENyZWF0ZUZyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oa0NGQWxsb2NhdG9yRGVm
YXVsdCwgKGNvbnN0IFVJbnQ4ICopdXRmOFBhdGguZGF0YSgpLCAoQ0ZJbmRleCl1dGY4UGF0aC5s
ZW5ndGgoKSwgdHJ1ZSkpOwogICAgICAgICBtX2NmQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZI
VFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21GaWxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHVybC5n
ZXQoKSwgbnVsbHB0cikpOwogICAgICAgICBhdXRvIGNmRGF0YSA9IGFkb3B0Q0YoQ0ZIVFRQQ29v
a2llU3RvcmFnZUNyZWF0ZUlkZW50aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2Nm
Q29va2llU3RvcmFnZS5nZXQoKSkpOwogCkBAIC02NSwxMyArNjYsOCBAQCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICB9CiAKICAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gbV91aVByb2Nl
c3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlZENvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0
eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVE
aXJlY3RvcnkoY29va2llU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5jb29raWVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgIGlmICghY29va2llUGF0aC5p
c0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRX
cml0ZURpcmVjdG9yeShXZWJDb3JlOjpkaXJlY3RvcnlOYW1lKGNvb2tpZVBhdGgpLCBwYXJhbWV0
ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIHJldHVybiBwYXJh
bWV0ZXJzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGQ0MjU2MzM4NzViNzI2YTVlZjA5Mjhj
YTE3MTNhNGVkMWEwNGNiMGYuLjMyN2RjY2YwM2RmNTJkOTY1NTRlNGViYjQ1YTZkODRiZWExMmFj
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlVHJhY2tlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlh
RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZ2luTG9jay5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KQEAgLTExMiwxNSArMTEzLDIxIEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9oYXNSZXNvbHZlZERpcmVjdG9yaWVzID0gdHJ1ZTsKIAorICAgIC8v
IFJlc29sdmUgZGlyZWN0b3J5IHBhdGhzLgogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0
b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSk7CiAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9y
eSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9u
KG1fY29uZmlndXJhdGlvbi5tZWRpYUNhY2hlRGlyZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLm1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLndlYlNR
TERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZv
clNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5
KTsKLSAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0g
cmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9j
b25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmluZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAgIGlmICghbV9jb25maWd1cmF0aW9uLmphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24uamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgPSByZXNvbHZl
UGF0aEZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1
cmF0aW9uRGlyZWN0b3J5KTsKKworICAgIC8vIFJlc29sdmUgZGlyZWN0b3JpZXMgZm9yIGZpbGUg
cGF0aHMuCisgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGguaXNFbXB0
eSgpKSB7CisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VQYXRo
ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24o
V2ViQ29yZTo6ZGlyZWN0b3J5TmFtZShtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGgp
KTsKKyAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGggPSBX
ZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yZXNvbHZlZENvbmZpZ3VyYXRpb24u
Y29va2llU3RvcmFnZVBhdGgsIFdlYkNvcmU6OnBhdGhHZXRGaWxlTmFtZShtX2NvbmZpZ3VyYXRp
b24uY29va2llU3RvcmFnZVBhdGgpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6Y2xvbmVTZXNzaW9uRGF0YShXZWJQYWdlUHJveHkmIHNvdXJjZVBhZ2UsIFdlYlBhZ2VQcm94
eSYgbmV3UGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGM0MDg0YzY3NDA5OTM2NTUzOTA2Y2JmMDUw
OWVmNDYwMWY4NGFjZGIuLjJiYWQxYWIxNzBmZDljNzYzMjUzN2ExZWI4NDkyOGIzNWQ0ODg4ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmlu
ZyBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwogICAgICAgICBTdHJpbmcgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIGphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5OwotICAgICAgICBTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeTsKKyAg
ICAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VQYXRoOwogICAgIH07CiAgICAgc3RhdGljIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50KCk7CiAgICAgc3RhdGljIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklE
KTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZl
ZE1lZGlhS2V5c0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29s
dmVkRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2
ZWRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OyB9Ci0g
ICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7
IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRGlyZWN0b3J5OyB9
CisgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZVBhdGg7IH0KICAgICBj
b25zdCBTdHJpbmcmIHJlc29sdmVkSW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7
IH0KIAogICAgIFN0b3JhZ2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdlcigpIHsgcmV0dXJuIG1fc3Rv
cmFnZU1hbmFnZXIuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCmluZGV4IDQ4NTkxNGZiYTlkZDAzM2U2ZWVlYmJiMDQzOWE5Y2M3N2MwNDcw
ZmQuLjg3NjY5MzllZDc2OGVlY2ZjZDk0Njc0NmVlMDE3MzZjODlmNzFmYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNzcsMTYgKzc3LDEw
IEBAIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9y
ZVNlc3Npb24oV2Vic2l0ZURhdGFTdG9yZVBhCiAgICAgZWxzZQogICAgICAgICBiYXNlID0gU2Vz
c2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCk7CiAKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2ll
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKLQotICAgIFJldGFpblB0
cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiB1aVByb2Nlc3NDb29raWVTdG9yYWdlOworICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVm
PiBjb29raWVTdG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuZGF0YSgp
LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLnNpemUoKSkpOwot
ICAgIHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VD
cmVhdGVGcm9tSWRlbnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvb2tpZVN0b3Jh
Z2VEYXRhLmdldCgpKSk7Ci0jZW5kaWYKKyAgICBhdXRvIHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2Ug
PSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tSWRlbnRpZnlpbmdEYXRhKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSk7CiAKICAgICBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24ocGFyYW1ldGVycy5zZXNzaW9uSUQsIGJh
c2UgKyAnLicgKyBTdHJpbmc6Om51bWJlcihwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQo
KSksIFdURk1vdmUodWlQcm9jZXNzQ29va2llU3RvcmFnZSkpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjBiZTk3MjE4NjAyYWMyMTM2NDk5
YWFiMWEwYzFjNTRhNjRhMzJkNS4uMGVmMGMzNGU3YmVmMDczOTI4YWNiNmExZGUzOWIyMDY3NDJi
Y2U1YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE3LTA0LTI5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBh
dGhzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMTctMDQtMjggIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN5c3RlbSB0cmFjZSBwb2ludHMg
Zm9yIERvY3VtZW50Ojp1cGRhdGVUb3VjaEV2ZW50UmVnaW9ucygpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9t
UGF0aHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRl
RGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNGI0ZjExMmVkZjE2NzczYTAyNDA0Y2E3YmQ1
Y2Q0ZjJlZjBjMzc2Zi4uZWMwZGMxMzVjNjIyMzA1YWU5ODc0YzBiODZlYTU1YzViNmZjYzA2MyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQpAQCAtNzQsMTQgKzc0
LDE0IEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzKQogICAgIFJl
dGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRp
b24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVy
LmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOwogCi0gICAgTlNVUkwgKnNxbFBhdGggPSBbTlNV
UkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0
b21XZWJzaXRlRGF0YS9XZWJTUUwvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07Ci0g
ICAgTlNVUkwgKmlkYlBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9X
ZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdC
eUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07Ci0gICAgTlNVUkwgKmxvY2FsU3RvcmFnZVBhdGggPSBb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9D
dXN0b21XZWJzaXRlRGF0YS9Mb2NhbFN0b3JhZ2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5Q
YXRoXV07Ci0gICAgTlNVUkwgKmNvb2tpZVN0b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRo
UGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0ZURhdGEv
Q29va2llU3RvcmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKKyAgICBOU1VS
TCAqc3FsUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9U
ZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1dlYlNRTC8iIHN0cmluZ0J5RXhwYW5kaW5n
VGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNVUkwgKmlkYlBhdGggPSBbTlNV
UkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0
b21XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBp
c0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJMICpsb2NhbFN0b3JhZ2VQYXRoID0gW05TVVJMIGZp
bGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vi
c2l0ZURhdGEvTG9jYWxTdG9yYWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNE
aXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqY29va2llU3RvcmFnZVBhdGggPSBbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJz
aXRlRGF0YS9Db29raWVTdG9yYWdlL0Nvb2tpZS5GaWxlIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRl
SW5QYXRoXSBpc0RpcmVjdG9yeTpOT107CiAKLSAgICBOU1VSTCAqZGVmYXVsdFNRTFBhdGggPSBb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9X
ZWJzaXRlRGF0YS9XZWJTUUwvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07Ci0gICAg
TlNVUkwgKmRlZmF1bHRJREJQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJh
cnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF1dOwotICAgIE5TVVJMICpkZWZhdWx0TG9jYWxTdG9yYWdlUGF0
aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0
QVBJL1dlYnNpdGVEYXRhL0xvY2FsU3RvcmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBh
dGhdXTsKKyAgICBOU1VSTCAqZGVmYXVsdFNRTFBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9XZWJTUUwvIiBz
dHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJM
ICpkZWZhdWx0SURCUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dl
YktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5k
aW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNVUkwgKmRlZmF1bHRMb2Nh
bFN0b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0
L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvTG9jYWxTdG9yYWdlLyIgc3RyaW5nQnlFeHBhbmRp
bmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKIAogICAgIFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOnNxbFBhdGggZXJyb3I6bmlsXTsKICAgICBb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDppZGJQYXRoIGVy
cm9yOm5pbF07CkBAIC0xMDMsNyArMTAzLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlRGF0YVN0
b3JlQ3VzdG9tUGF0aHMpCiAgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX3dlYlNR
TERhdGFiYXNlRGlyZWN0b3J5ID0gc3FsUGF0aDsKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOwogICAgIHdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5ID0gbG9jYWxTdG9y
YWdlUGF0aDsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5fY29va2llU3RvcmFn
ZURpcmVjdG9yeSA9IGNvb2tpZVN0b3JhZ2VQYXRoOworICAgIHdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLl9jb29raWVTdG9yYWdlUGF0aCA9IGNvb2tpZVN0b3JhZ2VQYXRoOwogCiAgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb25dOwogICAgIFt3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiByZWxlYXNlXTsKQEAg
LTEyNSw4ICsxMjUsMTcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMpCiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxl
RXhpc3RzQXRQYXRoOmlkYlBhdGgucGF0aF0pOwogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0SURCUGF0aC5wYXRo
XSk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHJ1ZSwgYnV0IGNvbWVzIHVwIGZh
bHNlLiBQb3NzaWJseSBhIENGTmV0d29yayBpc3N1ZS4gQmVpbmcgZXhwbG9yZWQgaW4gPHJkYXI6
Ly9wcm9ibGVtLzMxNjY2Mjc1PgotICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6Y29va2llU3RvcmFnZVBhdGgucGF0aF0pOwor
ICAgIFtbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0gcHJvY2Vzc1Bvb2xdIF9zeW5jTmV0d29ya1By
b2Nlc3NDb29raWVzXTsKKyAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1h
bmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6Y29va2llU3RvcmFnZVBhdGgucGF0aF0pOworCisgICAg
Ly8gTm90ZTogVGhlIGZvcm1hdCBvZiB0aGUgY29va2llIGZpbGUgb24gZGlzayBpcyBwcm9wcmll
dGFyeSBhbmQgb3BhcXVlLCBzbyB0aGlzIGlzIGZyYWdpbGUgdG8gZnV0dXJlIGNoYW5nZXMuCisg
ICAgLy8gQnV0IHJpZ2h0IG5vdywgaXQgaXMgcmVsaWFibGUgdG8gc2NhbiB0aGUgZmlsZSBmb3Ig
dGhlIEFTQ0lJIHN0cmluZyBvZiB0aGUgY29va2llIG5hbWUgd2Ugc2V0LgorICAgIC8vIFRoaXMg
aGVscHMgdmVyaWZ5IHRoYXQgdGhlIGNvb2tpZSBmaWxlIHdhcyBhY3R1YWxseSB3cml0dGVuIHRv
IGFzIHdlJ2QgZXhwZWN0LgorICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQ29udGVudHNPZlVSTDpjb29raWVTdG9yYWdlUGF0aF0pOworICAgIGNoYXIgYnl0
ZXNbXSA9ICJ0ZXN0a2V5IjsKKyAgICBhdXRvIGNvb2tpZUtleURhdGEgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOih2b2lkICopYnl0ZXMgbGVuZ3RoOnN0cmxlbihieXRl
cyldKTsKKyAgICBhdXRvIHJlc3VsdCA9IFtkYXRhIHJhbmdlT2ZEYXRhOmNvb2tpZUtleURhdGEu
Z2V0KCkgb3B0aW9uczowIHJhbmdlOk5TTWFrZVJhbmdlKDAsIGRhdGEuZ2V0KCkubGVuZ3RoKV07
CisgICAgRVhQRUNUX05FKChjb25zdCBsb25nKXJlc3VsdC5sb2NhdGlvbiwgTlNOb3RGb3VuZCk7
CiAKICAgICAvLyBGSVhNRTogVGhlIGRlZmF1bHQgU1FMIGFuZCBMb2NhbFN0b3JhZ2UgcGF0aHMg
YXJlIGJlaW5nIHVzZWQgZm9yIHNvbWV0aGluZywgYnV0IHRoZXkgc2hvdWxkbid0IGJlLiAodGhl
c2VzIHNob3VsZCBiZSBmYWxzZSwgbm90IHRydWUpCiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRTUUxQYXRoLnBh
dGhdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308694</attachid>
            <date>2017-04-30 10:52:20 -0700</date>
            <delta_ts>2017-04-30 11:30:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171483-20170430105219.patch</filename>
            <type>text/plain</type>
            <size>31232</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U3MGY0MzFkZjI2NzQ3
YzRjNWJiMTFkM2Y3N2Y1ZTM3YTM3YjE0MC4uY2ZkOTY2ZGE5ZmM1MjgzZGU2MDVjYjViYjJjZTEw
ZDI3NTgyNjNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ292ZXJlZCBieSBBUEkgdGVzdCku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisKIDIwMTctMDQt
MzAgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtBVEtd
IEVtaXQgb2JqZWN0OnN0YXRlLWNoYW5nZWQ6YnVzeSBldmVudCB3aGVuIGFyaWEtYnVzeSB2YWx1
ZSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmExMmE4YWFjOTM0MjJjZDQ5YTU4M2NkNDgxMmI4OTJm
NmU5YjNmYi4uYjFmNTFjYzZjYmE4YTlhNWQxMzc3YTdmZjUzYmI3MzFmZWM3MTE2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA0LTI5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4KKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgVXBkYXRlcyBpbmNsdWRlOgorICAgICAgICAtVGFraW5nIGEgZmlsZSBwYXRo
IGFzIHRoZSBjb25maWcgYXJndW1lbnQgaW5zdGVhZCBvZiBhIGRpcmVjdG9yeS4KKyAgICAgICAg
LVByb3BlciBzYW5kYm94IGV4dGVuc2lvbiBoYW5kbGluZy4KKyAgICAgICAgLVByb3BlciBhbmQg
dGhvcm91Z2ggQVBJIHRlc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2ll
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcyk6CisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lv
bik6CisKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg6CisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vz
c1Bvb2wgX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0
YVN0b3JlIF9pbml0V2l0aENvbmZpZ3VyYXRpb246XSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToK
KyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX2Nvb2tpZVN0b3Jh
Z2VQYXRoXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9z
ZXRDb29raWVTdG9yYWdlUGF0aDpdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnldKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldENvb2tpZVN0b3JhZ2VEaXJl
Y3Rvcnk6XSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c3luY05ldHdvcmtQcm9jZXNz
Q29va2llcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3Nh
cnkpOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZWRDb29raWVTdG9y
YWdlUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVkQ29v
a2llU3RvcmFnZURpcmVjdG9yeSk6IERlbGV0ZWQuCisKIDIwMTctMDQtMzAgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24gKHIyMTU5NDEpIFVu
ZXhwZWN0ZWQgbG9nZ2luZyBjYXVzZXMgcGVyZiB0ZXN0cyB0byBmYWlsLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IGY5MmQ1NmFjMjNlMTRh
NTdjYWI1NDdjM2MzZjVkNTEwMjc0OTViYmQuLjliYTQ3YzA1NDk2YmVhYzQ5NTUzOWZlNDBlZTNk
ZDYyMThkZWY1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9D
Rk5ldHdvcmtTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmgKQEAgLTE3MSw2ICsxNzEsMTMgQEAgdm9pZCBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9z
dHNXaXRoU2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIAogdm9pZCBDRkhUVFBDb29r
aWVTdG9yYWdlRGVsZXRlQWxsQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKIAorCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAx
MDEyMDApCit2b2lkIF9DRkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsKKyNl
bHNlCit2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2VuZGlm
CisKICNpZiBQTEFURk9STShDT0NPQSkKIENGRGF0YVJlZiBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdl
dE1lbU1hcHBlZERhdGEoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAjaWZkZWYgX19CTE9DS1Nf
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDk2MzBkNGZlYzg4YjM4MTViNzhiYWEwNTI3N2E2M2FjNjBlZmFlODEuLjA2ZTIxZDU3
NTE2NWQ3NWRjZmE2MWM0MjE2NTEzZmEwMDZkYzM5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY3Nyw2ICs2NzcsMTAgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVT
YW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRi
b3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewogfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpzeW5jQWxsQ29va2llcygpCit7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRl
eCA2MGVkNmYxMjA3MDlhOGNhNzQ2YTE0ZjQwNjNlNjhhNWJiMDMwZWVhLi5lYWM5YzA4ODgxYTcw
MjI4ZTVkMTUyZDAwMjRmNjVmNGRkNDA2Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE5Miw2ICsxOTIsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NTdGF0aXN0aWNzKHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckFsbE9yaWdpbnModWludDMyX3QgY2FjaGVzVG9DbGVh
cik7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29s
KTsKKyAgICB2b2lkIHN5bmNBbGxDb29raWVzKCk7CiAKICAgICB2b2lkIGRpZEdyYW50U2FuZGJv
eEV4dGVuc2lvbnNUb0RhdGFiYXNlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDViOGM2Y2IxMjk0MzM5MTc1NWZiZWFjOWRiYWQ5YmZj
ZGUyNzRiNS4uODA5NDQwMDJiZjljZTJjYWE1NWViM2I1ZTE5ZDkxYjg0MDI0ZjM0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTY1LDYgKzY1LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAgICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVG
b3JXZWJTb2NrZXQoYm9vbCBlbmFibGVkKSAtPiAoKQogCisgICAgU3luY0FsbENvb2tpZXMoKSAt
PiAoKQorCiAgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCiAgICAgU2V0Q2FuSGFu
ZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oYm9vbCB2YWx1ZSkKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vz
c0NvY29hLm1tCmluZGV4IGVmMGY1OTAwY2EwNjMxNDA3Yzg2NDA5ZjQ4MTg5YTJjYzA4NmRmOWQu
LjYxMmY0ZDhkZGExY2RjOWU5N2ViZGQzYjQzYjlhZDdmOWMwMzA5M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbQpAQCAtMjA4LDQgKzIwOCwxMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRDb29r
aWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMoKQor
eworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PD0gMTAxMjAwKQorICAgIF9DRkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsK
KyNlbHNlCisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZUZsdXNoQ29va2llU3RvcmVzKCk7CisjZW5k
aWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IGY3OGI4ZjZiZjZmZmM0ODEx
NjI1NWJkOGQwZDgxZTk4YjFmNTM5OTIuLmYzM2RhMjhlZWJmNTg0MDFjZTllZTZiM2JkNmIwNDBk
YmI3ODhhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTExMiwxNiArMTEyLDEzIEBA
IHZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNz
aW9uKFdlYnNpdGVEYXRhU3RvcmVQYXJhCiAgICAgZWxzZQogICAgICAgICBiYXNlID0gU2Vzc2lv
blRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCk7CiAKLSNpZiBQTEFURk9STShJT1MpCi0gICAg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVu
c2lvbkhhbmRsZSk7CiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gdWlQ
cm9jZXNzQ29va2llU3RvcmFnZTsKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKLSAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBj
b29raWVTdG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuZGF0YSgpLCBw
YXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLnNpemUoKSkpOwotICAg
IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDcmVh
dGVGcm9tSWRlbnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvb2tpZVN0b3JhZ2VE
YXRhLmdldCgpKSk7Ci0jZW5kaWYKKyAgICBpZiAoIXBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2ll
U3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIFJldGFpblB0cjxDRkRhdGFS
ZWY+IGNvb2tpZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRh
KCksIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7
CisgICAgICAgIHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0
b3JhZ2VDcmVhdGVGcm9tSWRlbnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvb2tp
ZVN0b3JhZ2VEYXRhLmdldCgpKSk7CisgICAgfQogCiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjplbnN1cmVTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklELCBiYXNlICsgJy4nICsgU3RyaW5n
OjpudW1iZXIocGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpLCBXVEZNb3ZlKHVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2UpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAKaW5kZXggZWFmMDI5YjI1MWIzNmY3ZDJmZmRj
YzQ4ODg4Nzc1Y2M5MzI0NGJhMS4uODA3NjA4ZmY2NjliNTVkNTk5ZDU2MjA5MjFhYWUzYzAxOTEy
NGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuY3BwCkBAIC0zOCwxMiArMzgsOCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVyczo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoKQogdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBl
bmNvZGVyIDw8IHNlc3Npb25JRDsKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NDb29r
aWVTdG9yYWdlSWRlbnRpZmllcjsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBlbmNv
ZGVyIDw8IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jZW5kaWYKKyAg
ICBlbmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlOwogfQogCiBib29s
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTUxLDE1ICs0Nywx
MSBAQCBib29sIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBXZWJzaXRlRGF0YVN0b3JlUAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5zZXNzaW9uSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAKLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCmluZGV4IGEwNGNhNTI3ODkyYTBj
Y2NkZTdlNzlmMTJjZjhlZTU4OTk4ZGE0NDEuLjhiNzUwZTQxMDI1ZjllNWVlODUwZThiM2M5ZmQz
MDMzZTg5ZjAyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5oCkBAIC00NCwxMyArNDQsOCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgewogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYpOwogCiAgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRDsKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDExMDAKICAgICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3Rv
cmFnZUlkZW50aWZpZXI7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShJT1MpCi0gICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0j
ZW5kaWYKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZVBhdGhFeHRl
bnNpb25IYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCA4ZDQy
ZGQ1YzNhNWE0MDBmZGE3YTYxYmZhZjQxNWJiOTMxOTljMmZkLi43MGZiNmU4OTYzMjczN2IxYzQx
ZDQ4MTZiYmFiMDY5ZTM4NzBhMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0yOTIsNiArMjkyLDExIEBAIC0gKHZv
aWQpX3Rlcm1pbmF0ZURhdGFiYXNlUHJvY2VzcwogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRl
RGF0YWJhc2VQcm9jZXNzKCk7CiB9CiAKKy0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMKK3sKKyAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKK30K
KwogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQKIHsKICAgICByZXR1cm4gX3Byb2Nlc3NQb29s
LT5wcm9jZXNzZXMoKS5zaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggMTBmMjNhN2RhNWJl
NWJmNTdjNDI4ZWUzNTI4MTIyMmZkMThiMTA0Zi4uN2U5MDk3NThlYTVlNTdhZjdjNDJkOTY1MThm
Y2NmNzI0NGYwMTg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAtNzEsNiArNzEsNyBAQAogCiAv
LyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudDsKKy0gKHZvaWQpX3N5bmNO
ZXR3b3JrUHJvY2Vzc0Nvb2tpZXM7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBi
ZWZvcmUgYW55IHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgbGF1bmNoZWQuCiArICh2b2lkKV9m
b3JjZUdhbWVDb250cm9sbGVyRnJhbWV3b3JrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCBhMTIyZjNm
NTI3MjQxZjU4Mjc3YzE5MzczNjU3OTNlN2Q1YmJmZmYzLi4zZGE4MWQ2ODE4ZWQ5N2VhMjEwN2Qy
MWFmN2UyMDI1MmU3ZDUyNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTYwLDggKzE2MCw4IEBA
IC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpCiAgICAgICAgIGNvbmZpZy53ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeSA9IGNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5LnBhdGg7CiAg
ICAgaWYgKGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KQogICAgICAg
ICBjb25maWcuaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBjb25maWd1cmF0aW9uLl9pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeS5wYXRoOwotICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29r
aWVTdG9yYWdlRGlyZWN0b3J5KQotICAgICAgICBjb25maWcuY29va2llU3RvcmFnZURpcmVjdG9y
eSA9IGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnkucGF0aDsKKyAgICBpZiAo
Y29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZVBhdGgpCisgICAgICAgIGNvbmZpZy5jb29raWVT
dG9yYWdlUGF0aCA9IGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VQYXRoLnBhdGg7CiAKICAg
ICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4o
c2VsZiwgY29uZmlnLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVudFNlc3Np
b25JRCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4
IGIxOGEyMTM3YzRlMGJlNTA4MmZmMjgxYzc3ZGI3ZDg4M2Y3ZTY4YjkuLjliOTkwMmQ3YTY1OTk3
Y2NhNGZkY2FhNjJlMTIxZjY1ZWEzZGU5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKQEAgLTM3LDcgKzM3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0V2ViU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpfd2ViU3RvcmFnZURp
cmVjdG9yeTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5OikgTlNVUkwgKl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFdlYlNRTERhdGFiYXNlRGly
ZWN0b3J5OikgTlNVUkwgKl93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAq
X2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVy
PV9zZXRDb29raWVTdG9yYWdlUGF0aDopIE5TVVJMICpfY29va2llU3RvcmFnZVBhdGggV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggODI5NjQ4
OWQ1ZDBjMmU4YTI5Mjg1MmVmNjJkNzNlNTQxMzQ3OTBiMi4uYjVlMTYxZWEzZmEyYjNhZWYzMzgx
MzgyMWQ5NzRmZmUwNzY0OGY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLm1tCkBAIC00MCw3ICs0MCw3IEBAIEBpbXBsZW1lbnRhdGlvbiBfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbiB7CiAgICAgUmV0YWluUHRyPE5TVVJMPiBfd2ViU3RvcmFnZURp
cmVjdG9yeVVSTDsKICAgICBSZXRhaW5QdHI8TlNVUkw+IF9pbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeVVSTDsKICAgICBSZXRhaW5QdHI8TlNVUkw+IF93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeVVS
TDsKLSAgICBSZXRhaW5QdHI8TlNVUkw+IF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJMOworICAg
IFJldGFpblB0cjxOU1VSTD4gX2Nvb2tpZVN0b3JhZ2VQYXRoVVJMOwogfQogCiAtKE5TVVJMICop
X3dlYlN0b3JhZ2VEaXJlY3RvcnkgewpAQCAtNzAsMTMgKzcwLDE2IEBAIC0odm9pZClfc2V0V2Vi
U1FMRGF0YWJhc2VEaXJlY3Rvcnk6KE5TVVJMICopdXJsIHsKICAgICBfd2ViU1FMRGF0YWJhc2VE
aXJlY3RvcnlVUkwgPSBhZG9wdE5TKFt1cmwgY29weV0pOwogfQogCi0tKE5TVVJMICopX2Nvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnkgewotICAgIHJldHVybiBfY29va2llU3RvcmFnZURpcmVjdG9yeVVS
TC5nZXQoKTsKKy0oTlNVUkwgKilfY29va2llU3RvcmFnZVBhdGggeworICAgIHJldHVybiBfY29v
a2llU3RvcmFnZVBhdGhVUkwuZ2V0KCk7CiB9CiAKLS0odm9pZClfc2V0Q29va2llU3RvcmFnZURp
cmVjdG9yeTooTlNVUkwgKil1cmwgeworLSh2b2lkKV9zZXRDb29raWVTdG9yYWdlUGF0aDooTlNV
UkwgKil1cmwgewogICAgIGNoZWNrVVJMQXJndW1lbnQodXJsKTsKLSAgICBfY29va2llU3RvcmFn
ZURpcmVjdG9yeVVSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7CisgICAgaWYgKFt1cmwgaGFzRGly
ZWN0b3J5UGF0aF0pCisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVu
dEV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGUgY29va2llIHN0b3JhZ2UgcGF0aCBtdXN0IHBvaW50IHRv
IGEgZmlsZSwgbm90IGEgZGlyZWN0b3J5LiJdOworCisgICAgX2Nvb2tpZVN0b3JhZ2VQYXRoVVJM
ID0gYWRvcHROUyhbdXJsIGNvcHldKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzZjNjRlNDE0MzQwOGJjMTI2MGQwYzMwYzg1
ZDNlZDFhYWJjMDViYi4uODUwZTY1ZGZjNWE0YTkxOTExY2ZiNmNmZjcwZTZjNjlhMzA4ZWU0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMzE5
LDYgKzEzMTksMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKQogICAgIG1fbmV0d29ya1Byb2Nlc3MgPSBudWxscHRyOwogfQogCit2b2lkIFdlYlByb2Nl
c3NQb29sOjpzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCkKK3sKKyAgICBzZW5kU3luY1RvTmV0
d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTeW5jQWxsQ29va2llcygp
LCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN5bmNBbGxDb29raWVzOjpSZXBseSgpKTsKK30K
Kwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JI
b3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGUsIGNvbnN0IFN0cmluZyYg
aG9zdCkKIHsKICAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBmM2VhNjg0NmM3ZDJmNTM5NDk2MDViODhiMjc0
MDJkZGY3OWNkMjMyLi44NzEyNTkxNWZmZGU3YjMyZWE4MjQzMmQzZWE0ZTgzNTU1ZDdhZGM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjY0LDYgKzI2
NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRlcm1pbmF0ZURhdGFiYXNlUHJvY2VzcygpOwogICAg
IHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKIAorICAgIHZvaWQgc3luY05ldHdvcmtQ
cm9jZXNzQ29va2llcygpOworCiAgICAgdm9pZCByZXBvcnRXZWJDb250ZW50Q1BVVGltZShTZWNv
bmRzIGNwdVRpbWUsIHVpbnQ2NF90IGFjdGl2aXR5U3RhdGUpOwogCiAgICAgdm9pZCBhbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiwg
Y29uc3QgU3RyaW5nJiBob3N0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1t
CmluZGV4IDBjNDAwZGIzY2M1NzgyZDE1Y2ViYjYxOTlmZTk0YjZmZTY4MTMxZmEuLjEyZmQzOTdl
OWY5ZDdhYjdlYWI5MTE4MGU5ZDVlMmFjNGU3NDUyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVE
YXRhU3RvcmVDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oIgogI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
RmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5oPgog
I2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTU0LDEwICs1NSwxMCBAQCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKIAog
ICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CiAKLSNpZiBQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisgICAgYXV0
byBjb29raWVQYXRoID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlUGF0aCgpOwogICAgIGlmIChtX3Vp
UHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkgewotICAgICAgICBhdXRv
IGNvb2tpZVBhdGggPSByZXNvbHZlZENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKS51dGY4KCk7Ci0g
ICAgICAgIGF1dG8gdXJsID0gYWRvcHRDRihDRlVSTENyZWF0ZUZyb21GaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24oa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4ICopY29va2llUGF0aC5k
YXRhKCksIChDRkluZGV4KWNvb2tpZVBhdGgubGVuZ3RoKCksIHRydWUpKTsKKyAgICAgICAgYXV0
byB1dGY4UGF0aCA9IGNvb2tpZVBhdGgudXRmOCgpOworICAgICAgICBhdXRvIHVybCA9IGFkb3B0
Q0YoQ0ZVUkxDcmVhdGVGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIChjb25zdCBVSW50OCAqKXV0ZjhQYXRoLmRhdGEoKSwgKENGSW5kZXgpdXRmOFBhdGgu
bGVuZ3RoKCksIHRydWUpKTsKICAgICAgICAgbV9jZkNvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKENG
SFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tRmlsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB1cmwu
Z2V0KCksIG51bGxwdHIpKTsKICAgICAgICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENGSFRUUENv
b2tpZVN0b3JhZ2VDcmVhdGVJZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9j
ZkNvb2tpZVN0b3JhZ2UuZ2V0KCkpKTsKIApAQCAtNjUsMTMgKzY2LDggQEAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgfQogCiAg
ICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9j
ZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7Ci0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAotCi0jaWYgUExBVEZPUk0o
SU9TKQotICAgIFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZWRDb29raWVT
dG9yYWdlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFjb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1w
dHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRl
RGlyZWN0b3J5KGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuY29va2llU3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICBpZiAoIWNvb2tpZVBhdGgu
aXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFk
V3JpdGVEaXJlY3RvcnkoV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZShjb29raWVQYXRoKSwgcGFyYW1l
dGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICByZXR1cm4gcGFy
YW1ldGVyczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAxNWQ0NmM3ODAzMjEyM2RjOWUwY2Mx
NjBjOWJlMDM5Zjk1MmU4YTQ5Li4zMjdkY2NmMDNkZjUyZDk2NTU0ZTRlYmI0NWE2ZDg0YmVhMTJh
YzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRp
YUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL09yaWdpbkxvY2suaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZE9ic2VydmVyLmg+CkBAIC0xMTIsMTcgKzExMywyMSBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCkKICAgICAg
ICAgcmV0dXJuOwogICAgIG1faGFzUmVzb2x2ZWREaXJlY3RvcmllcyA9IHRydWU7CiAKKyAgICAv
LyBSZXNvbHZlIGRpcmVjdG9yeSBwYXRocy4KICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5h
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVj
dG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVE
aXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLm1lZGlhQ2FjaGVEaXJlY3Rv
cnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lv
bihtX2NvbmZpZ3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeSk7CiAgICAgbV9yZXNvbHZlZENv
bmZpZ3VyYXRpb24ubWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVS
ZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi5tZWRp
YUtleXNTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi53ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlG
b3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi53ZWJTUUxEYXRhYmFzZURpcmVjdG9y
eSk7CiAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lv
bihtX2NvbmZpZ3VyYXRpb24uaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpOwogCi0gICAgaWYg
KCFtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAg
ICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNv
bHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZp
Z3VyYXRpb24uY29va2llU3RvcmFnZURpcmVjdG9yeSk7Ci0KICAgICBpZiAoIW1fY29uZmlndXJh
dGlvbi5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAg
IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5
ID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi5qYXZhU2Ny
aXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSk7CisKKyAgICAvLyBSZXNvbHZlIGRpcmVjdG9yaWVz
IGZvciBmaWxlIHBhdGhzLgorICAgIGlmICghbV9jb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VQ
YXRoLmlzRW1wdHkoKSkgeworICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVT
dG9yYWdlUGF0aCA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94
RXh0ZW5zaW9uKFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUobV9jb25maWd1cmF0aW9uLmNvb2tpZVN0
b3JhZ2VQYXRoKSk7CisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3Jh
Z2VQYXRoID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VQYXRoLCBXZWJDb3JlOjpwYXRoR2V0RmlsZU5hbWUobV9j
b25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VQYXRoKSk7CisgICAgfQogfQogCiB2b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OmNsb25lU2Vzc2lvbkRhdGEoV2ViUGFnZVByb3h5JiBzb3VyY2VQYWdlLCBX
ZWJQYWdlUHJveHkmIG5ld1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBjNDA4NGM2NzQwOTkzNjU1
MzkwNmNiZjA1MDllZjQ2MDFmODRhY2RiLi5mYjY0OGU0ZmQ1ZmZkNWM5NWMxNWExYjc2NGVlMWIx
ODQ4ZGNlMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAg
ICAgICBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgICAgIFN0cmluZyBqYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeTsKLSAgICAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJl
Y3Rvcnk7CisgICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlUGF0aDsKICAgICB9OwogICAgIHN0
YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lzdGVudCgpOwogICAgIHN0
YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRpb24sIFdlYkNvcmU6
OlNlc3Npb25JRCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmlu
ZyYgcmVzb2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVk
Q29uZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OyB9CiAgICAgY29uc3QgU3Ry
aW5nJiByZXNvbHZlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7IH0KICAgICBjb25zdCBTdHJp
bmcmIHJlc29sdmVkSmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeTsgfQotICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRDb29raWVTdG9yYWdlRGlyZWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZURp
cmVjdG9yeTsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRDb29raWVTdG9yYWdlUGF0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VQYXRo
OyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZEluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5OyB9CiAKICAgICBTdG9yYWdlTWFuYWdlciogc3RvcmFnZU1hbmFnZXIoKSB7IHJl
dHVybiBtX3N0b3JhZ2VNYW5hZ2VyLmdldCgpOyB9CkBAIC0xNTYsMTAgKzE1Niw4IEBAIHByaXZh
dGU6CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCi0jaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIFZlY3Rvcjx1
aW50OF90PiBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogICAgIFJldGFpblB0
cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBtX2NmQ29va2llU3RvcmFnZTsKLSNlbmRpZgogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5k
ZXggNDg1OTE0ZmJhOWRkMDMzZTZlZWViYmIwNDM5YTljYzc3YzA0NzBmZC4uODc2NjkzOWVkNzY4
ZWVjZmNkOTQ2NzQ2ZWUwMTczNmM4OWY3MWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC03NywxNiArNzcsMTAgQEAgdm9pZCBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihXZWJzaXRl
RGF0YVN0b3JlUGEKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9uVHJhY2tlcjo6Z2V0
SWRlbnRpZmllckJhc2UoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgotCi0gICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0
b3JhZ2VSZWY+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2U7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25I
YW5kbGUpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNvb2tpZVN0b3JhZ2VE
YXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRhKCksIHBhcmFtZXRlcnMudWlQ
cm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7Ci0gICAgdWlQcm9jZXNzQ29v
a2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlm
eWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsK
LSNlbmRpZgorICAgIGF1dG8gdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQ
Q29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsKIAogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZW5zdXJlU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCwgYmFzZSArICcuJyArIFN0cmlu
Zzo6bnVtYmVyKHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKSwgV1RGTW92ZSh1aVBy
b2Nlc3NDb29raWVTdG9yYWdlKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAzNjU5YjYyY2Q5ZDk4ZDM0NWI4MmY2NGZhMTA5MzhkZDcxNGNm
OTAzLi44NDllOTU4MzYzMmFhZWNmZTM1MGI4ZDU2ODcwNzg1ODBlMWI2MWZkIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTctMDQtMjkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAg
IFVwZGF0ZXMgdG8gX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gY29va2llIHN0b3Jh
Z2UgbG9jYXRpb24gU1BJLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE5MDYzOTc+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW06CisgICAgICAg
IChURVNUKToKKwogMjAxNy0wNC0zMCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0FUS10gRW1pdCBvYmplY3Q6c3RhdGUtY2hhbmdlZDpidXN5IGV2ZW50
IHdoZW4gYXJpYS1idXN5IHZhbHVlIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocy5tbQppbmRleCA0YjRmMTEyZWRmMTY3NzNhMDI0MDRjYTdiZDVjZDRmMmVmMGMz
NzZmLi5lYzBkYzEzNWM2MjIzMDVhZTk4NzRjMGI4NmVhNTVjNWI2ZmNjMDYzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC03NCwxNCArNzQsMTQgQEAgVEVT
VChXZWJLaXQyLCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpCiAgICAgUmV0YWluUHRyPFdL
V2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFt
ZTpAInRlc3RIYW5kbGVyIl07CiAKLSAgICBOU1VSTCAqc3FsUGF0aCA9IFtOU1VSTCBmaWxlVVJM
V2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVE
YXRhL1dlYlNRTC8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAq
aWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0
V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5n
VGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqbG9jYWxTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxl
VVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNp
dGVEYXRhL0xvY2FsU3RvcmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAg
ICBOU1VSTCAqY29va2llU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4v
TGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Db29raWVTdG9y
YWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpzcWxQYXRo
ID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRB
UEkvQ3VzdG9tV2Vic2l0ZURhdGEvV2ViU1FMLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0
aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJM
V2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVE
YXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5
OllFU107CisgICAgTlNVUkwgKmxvY2FsU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQ
YXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9M
b2NhbFN0b3JhZ2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZ
RVNdOworICAgIE5TVVJMICpjb29raWVTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0Nv
b2tpZVN0b3JhZ2UvQ29va2llLkZpbGUiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlz
RGlyZWN0b3J5Ok5PXTsKIAotICAgIE5TVVJMICpkZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxl
VVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRh
L1dlYlNRTC8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqZGVm
YXVsdElEQlBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQv
VGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGluZ1Rp
bGRlSW5QYXRoXV07Ci0gICAgTlNVUkwgKmRlZmF1bHRMb2NhbFN0b3JhZ2VQYXRoID0gW05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0
ZURhdGEvTG9jYWxTdG9yYWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAg
IE5TVVJMICpkZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJy
YXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8iIHN0cmluZ0J5RXhw
YW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNVUkwgKmRlZmF1bHRJ
REJQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RX
ZWJLaXRBUEkvV2Vic2l0ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUlu
UGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqZGVmYXVsdExvY2FsU3RvcmFnZVBh
dGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktp
dEFQSS9XZWJzaXRlRGF0YS9Mb2NhbFN0b3JhZ2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5Q
YXRoXSBpc0RpcmVjdG9yeTpZRVNdOwogCiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSByZW1vdmVJdGVtQXRVUkw6c3FsUGF0aCBlcnJvcjpuaWxdOwogICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsK
QEAgLTEwMyw3ICsxMDMsNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXRocykKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VE
aXJlY3RvcnkgPSBzcWxQYXRoOwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9p
bmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CiAgICAgd2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkgPSBsb2NhbFN0b3JhZ2VQYXRoOwot
ICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRGlyZWN0b3J5
ID0gY29va2llU3RvcmFnZVBhdGg7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
X2Nvb2tpZVN0b3JhZ2VQYXRoID0gY29va2llU3RvcmFnZVBhdGg7CiAKICAgICBjb25maWd1cmF0
aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbl07CiAg
ICAgW3dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHJlbGVhc2VdOwpAQCAtMTI1LDggKzEy
NSwxNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAgICBF
WFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBh
dGg6aWRiUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRJREJQYXRoLnBhdGhdKTsKIAotICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0cnVlLCBidXQgY29tZXMgdXAgZmFsc2UuIFBvc3Np
Ymx5IGEgQ0ZOZXR3b3JrIGlzc3VlLiBCZWluZyBleHBsb3JlZCBpbiA8cmRhcjovL3Byb2JsZW0v
MzE2NjYyNzU+Ci0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gZmlsZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlUGF0aC5wYXRoXSk7CisgICAgW1tbd2Vi
VmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXNdOworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlUGF0aC5wYXRoXSk7CisKKyAgICAvLyBOb3RlOiBU
aGUgZm9ybWF0IG9mIHRoZSBjb29raWUgZmlsZSBvbiBkaXNrIGlzIHByb3ByaWV0YXJ5IGFuZCBv
cGFxdWUsIHNvIHRoaXMgaXMgZnJhZ2lsZSB0byBmdXR1cmUgY2hhbmdlcy4KKyAgICAvLyBCdXQg
cmlnaHQgbm93LCBpdCBpcyByZWxpYWJsZSB0byBzY2FuIHRoZSBmaWxlIGZvciB0aGUgQVNDSUkg
c3RyaW5nIG9mIHRoZSBjb29raWUgbmFtZSB3ZSBzZXQuCisgICAgLy8gVGhpcyBoZWxwcyB2ZXJp
ZnkgdGhhdCB0aGUgY29va2llIGZpbGUgd2FzIGFjdHVhbGx5IHdyaXR0ZW4gdG8gYXMgd2UnZCBl
eHBlY3QuCisgICAgYXV0byBkYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhD
b250ZW50c09mVVJMOmNvb2tpZVN0b3JhZ2VQYXRoXSk7CisgICAgY2hhciBieXRlc1tdID0gInRl
c3RrZXkiOworICAgIGF1dG8gY29va2llS2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQnl0ZXM6KHZvaWQgKilieXRlcyBsZW5ndGg6c3RybGVuKGJ5dGVzKV0pOworICAg
IGF1dG8gcmVzdWx0ID0gW2RhdGEgcmFuZ2VPZkRhdGE6Y29va2llS2V5RGF0YS5nZXQoKSBvcHRp
b25zOjAgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgZGF0YS5nZXQoKS5sZW5ndGgpXTsKKyAgICBFWFBF
Q1RfTkUoKGNvbnN0IGxvbmcpcmVzdWx0LmxvY2F0aW9uLCBOU05vdEZvdW5kKTsKIAogICAgIC8v
IEZJWE1FOiBUaGUgZGVmYXVsdCBTUUwgYW5kIExvY2FsU3RvcmFnZSBwYXRocyBhcmUgYmVpbmcg
dXNlZCBmb3Igc29tZXRoaW5nLCBidXQgdGhleSBzaG91bGRuJ3QgYmUuICh0aGVzZXMgc2hvdWxk
IGJlIGZhbHNlLCBub3QgdHJ1ZSkKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFNRTFBhdGgucGF0aF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308695</attachid>
            <date>2017-04-30 11:30:10 -0700</date>
            <delta_ts>2017-04-30 11:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171483-20170430113010.patch</filename>
            <type>text/plain</type>
            <size>32618</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U3MGY0MzFkZjI2NzQ3
YzRjNWJiMTFkM2Y3N2Y1ZTM3YTM3YjE0MC4uM2UxNGMzZmNiNzcxZDhjZWVlMjAyYTk2Njg2OGQ2
ZWJjYzllN2IxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
IEdhcmVuIChhbmQga2luZCBvZiBBbmR5IEVzdGVzKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KENvdmVyZWQgYnkgQVBJIHRlc3QpLgorCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NmL0NGTmV0
d29ya1NQSS5oOgorCiAyMDE3LTA0LTMwICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbQVRLXSBFbWl0IG9iamVjdDpzdGF0ZS1jaGFuZ2VkOmJ1c3kgZXZl
bnQgd2hlbiBhcmlhLWJ1c3kgdmFsdWUgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhMTJhOGFhYzkz
NDIyY2Q0OWE1ODNjZDQ4MTJiODkyZjZlOWIzZmIuLjA3NWZhNGJmYTVlMmI2NDFlMWVlY2VmZGIw
MTkyYTI5Y2IyZDc5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNy0wNC0yOSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBT
UEkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZiBHYXJlbiAoYW5kIGtpbmQgb2YgQW5keSBFc3RlcykuCisgICAgICAgIAorICAgICAgICBV
cGRhdGVzIGluY2x1ZGU6CisgICAgICAgIC1UYWtpbmcgYSBmaWxlIHBhdGggYXMgdGhlIGNvbmZp
ZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGEgZGlyZWN0b3J5LgorICAgICAgICAtUHJvcGVyIHNhbmRi
b3ggZXh0ZW5zaW9uIGhhbmRsaW5nLgorICAgICAgICAtUHJvcGVyIGFuZCB0aG9yb3VnaCBBUEkg
dGVzdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKToKKworICAgICAg
ICAqIFNoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfc3luY05l
dHdvcmtQcm9jZXNzQ29va2llc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfY29va2llU3RvcmFnZVBhdGhdKToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldENvb2tpZVN0b3Jh
Z2VQYXRoOl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBf
Y29va2llU3RvcmFnZURpcmVjdG9yeV0pOiBEZWxldGVkLgorICAgICAgICAoLVtfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTpdKTogRGVs
ZXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSk6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZWRDb29raWVTdG9yYWdlRGly
ZWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wNC0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbiAocjIxNTk0MSkgVW5leHBlY3RlZCBsb2dn
aW5nIGNhdXNlcyBwZXJmIHRlc3RzIHRvIGZhaWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggZjkyZDU2YWMyM2UxNGE1N2NhYjU0N2MzYzNm
NWQ1MTAyNzQ5NWJiZC4uOWJhNDdjMDU0OTZiZWFjNDk1NTM5ZmU0MGVlM2RkNjIxOGRlZjUwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApAQCAt
MTcxLDYgKzE3MSwxMyBAQCB2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1dpdGhTZXNzaW9u
KENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogCiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxl
dGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTIwMCkKK3ZvaWQg
X0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vsc2UKK3ZvaWQgQ0ZI
VFRQQ29va2llU3RvcmFnZUZsdXNoQ29va2llU3RvcmVzKCk7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKENPQ09BKQogQ0ZEYXRhUmVmIF9DRkNhY2hlZFVSTFJlc3BvbnNlR2V0TWVtTWFwcGVkRGF0
YShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNpZmRlZiBfX0JMT0NLU19fCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTYzMGQ0
ZmVjODhiMzgxNWI3OGJhYTA1Mjc3YTYzYWM2MGVmYWU4MS4uMDZlMjFkNTc1MTY1ZDc1ZGNmYTYx
YzQyMTY1MTNmYTAwNmRjMzljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjc3LDYgKzY3NywxMCBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCiB7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29r
aWVzKCkKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDYwZWQ2ZjEyMDcw
OWE4Y2E3NDZhMTRmNDA2M2U2OGE1YmIwMzBlZWEuLmVhYzljMDg4ODFhNzAyMjhlNWQxNTJkMDAy
NGY2NWY0ZGQ0MDYyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRO
ZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBj
bGVhckNhY2hlRm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKTsKICAgICB2b2lk
IHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wpOworICAgIHZvaWQg
c3luY0FsbENvb2tpZXMoKTsKIAogICAgIHZvaWQgZGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1Rv
RGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElEKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCBkNWI4YzZjYjEyOTQzMzkxNzU1ZmJlYWM5ZGJhZDliZmNkZTI3NGI1Li44MDk0
NDAwMmJmOWNlMmNhYTU1ZWIzYjVlMTlkOTFiODQwMjRmMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNjUsNiArNjUsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAjZW5kaWYKICAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChi
b29sIGVuYWJsZWQpIC0+ICgpCiAKKyAgICBTeW5jQWxsQ29va2llcygpIC0+ICgpCisKICAgICBB
bGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKICAgICBTZXRDYW5IYW5kbGVIVFRQU1NlcnZl
clRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5k
ZXggZWYwZjU5MDBjYTA2MzE0MDdjODY0MDlmNDgxODlhMmNjMDg2ZGY5ZC4uNjEyZjRkOGRkYTFj
ZGM5ZTk3ZWJkZDNiNDNiOWFkN2Y5YzAzMDkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0y
MDgsNCArMjA4LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENvb2tpZVN0b3JhZ2VQYXJ0
aXRpb25pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGVuYWJsZWQpOwog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcygpCit7CisjaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEyMDApCisg
ICAgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vsc2UKKyAgICBD
RkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsKKyNlbmRpZgorfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggZjc4YjhmNmJmNmZmYzQ4MTE2MjU1YmQ4ZDBkODFl
OThiMWY1Mzk5Mi4uZjMzZGEyOGVlYmY1ODQwMWNlOWVlNmIzYmQ2YjA0MGRiYjc4OGE5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMTEyLDE2ICsxMTIsMTMgQEAgdm9pZCBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24oV2Vic2l0ZURh
dGFTdG9yZVBhcmEKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9uVHJhY2tlcjo6Z2V0
SWRlbnRpZmllckJhc2UoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsK
IAogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiB1aVByb2Nlc3NDb29raWVT
dG9yYWdlOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAotICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNvb2tpZVN0b3JhZ2VE
YXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRhKCksIHBhcmFtZXRlcnMudWlQ
cm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7Ci0gICAgdWlQcm9jZXNzQ29v
a2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlm
eWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsK
LSNlbmRpZgorICAgIGlmICghcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRp
Zmllci5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gY29va2llU3Rv
cmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmRhdGEoKSwgcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5zaXplKCkpKTsKKyAgICAgICAgdWlQ
cm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZy
b21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEu
Z2V0KCkpKTsKKyAgICB9CiAKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Np
b24ocGFyYW1ldGVycy5zZXNzaW9uSUQsIGJhc2UgKyAnLicgKyBTdHJpbmc6Om51bWJlcihwYXJh
bWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSksIFdURk1vdmUodWlQcm9jZXNzQ29va2llU3Rv
cmFnZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmNwcAppbmRleCBlYWYwMjliMjUxYjM2ZjdkMmZmZGNjNDg4ODg3NzVjYzkz
MjQ0YmExLi44MDc2MDhmZjY2OWI1NWQ1OTlkNTYyMDkyMWFhZTNjMDE5MTI0YmRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5j
cHAKQEAgLTM4LDEyICszOCw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycygpCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc2Vz
c2lvbklEOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDAKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGVuY29kZXIgPDwgY29va2ll
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNlbmRpZgorICAgIGVuY29kZXIgPDwg
Y29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiB9CiAKIGJvb2wgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTEsMTUgKzQ3LDExIEBAIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YnNpdGVEYXRhU3RvcmVQCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNlc3Np
b25JRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggYTA0Y2E1Mjc4OTJhMGNjY2RlN2U3OWYxMmNm
OGVlNTg5OThkYTQ0MS4uOGI3NTBlNDEwMjVmOWU1ZWU4NTBlOGIzYzlmZDMwMzNlODlmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKQEAgLTQ0LDEzICs0NCw4IEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwotCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMAogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmll
cjsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNlbmRpZgorICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDhkNDJkZDVjM2E1YTQwMGZk
YTdhNjFiZmFmNDE1YmI5MzE5OWMyZmQuLjcwZmI2ZTg5NjMyNzM3YjFjNDFkNDgxNmJiYWIwNjll
Mzg3MGEwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTI5Miw2ICsyOTIsMTEgQEAgLSAodm9pZClfdGVybWluYXRl
RGF0YWJhc2VQcm9jZXNzCiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVEYXRhYmFzZVByb2Nl
c3MoKTsKIH0KIAorLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcworeworICAgIF9w
cm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOworfQorCiAtIChzaXplX3Qp
X3dlYlByb2Nlc3NDb3VudAogewogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnByb2Nlc3Nlcygp
LnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAxMGYyM2E3ZGE1YmU1YmY1N2M0MjhlZTM1
MjgxMjIyZmQxOGIxMDRmLi43ZTkwOTc1OGVhNWU1N2FmN2M0MmQ5NjUxOGZjY2Y3MjQ0ZjAxODY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03MSw2ICs3MSw3IEBACiAKIC8vIFRlc3Qgb25seS4K
IC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50OworLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNz
Q29va2llczsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2Vi
IGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRy
b2xsZXJGcmFtZXdvcms7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGExMjJmM2Y1MjcyNDFmNTgyNzdj
MTkzNzM2NTc5M2U3ZDViYmZmZjMuLjAyZTViNjcwNDViZmI2NDQ1ODQwNjgzMzlhMzM3OWIyYzI4
MGM3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xNjAsOCArMTYwLDggQEAgLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uICopY29uZmkKICAgICAgICAgY29uZmlnLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5ID0gY29u
ZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aDsKICAgICBpZiAoY29uZmln
dXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCiAgICAgICAgIGNvbmZpZy5pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5LnBhdGg7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnkpCi0gICAgICAgIGNvbmZpZy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gY29uZmlndXJh
dGlvbi5fY29va2llU3RvcmFnZURpcmVjdG9yeS5wYXRoOworICAgIGlmIChjb25maWd1cmF0aW9u
Ll9jb29raWVTdG9yYWdlRmlsZSkKKyAgICAgICAgY29uZmlnLmNvb2tpZVN0b3JhZ2VGaWxlID0g
Y29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aDsKIAogICAgIEFQSTo6T2JqZWN0
Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBjb25maWcs
IFdlYkNvcmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggYjE4YTIxMzdjNGUw
YmU1MDgyZmYyODFjNzdkYjdkODgzZjdlNjhiOS4uNWNkYWEzY2I0MTE3NGVkZDZkMDFiNDFhNDBh
MDY2YmI5YmJmMzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aApAQCAtMzcsNyArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VS
TCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHks
IHNldHRlcj1fc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpfY29va2llU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENvb2tpZVN0
b3JhZ2VGaWxlOikgTlNVUkwgKl9jb29raWVTdG9yYWdlRmlsZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCA4Mjk2NDg5ZDVkMGMyZThhMjky
ODUyZWY2MmQ3M2U1NDEzNDc5MGIyLi5mZWNkMTkxZWI5M2YyOWI5OGJhNGY4NmRkZDE2YTczNTU5
N2U5YjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAg
LTQwLDcgKzQwLDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIHsKICAgICBSZXRhaW5QdHI8TlNVUkw+IF93ZWJTdG9yYWdlRGlyZWN0b3J5VVJMOwog
ICAgIFJldGFpblB0cjxOU1VSTD4gX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5VVJMOwogICAg
IFJldGFpblB0cjxOU1VSTD4gX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5VVJMOwotICAgIFJldGFp
blB0cjxOU1VSTD4gX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnlVUkw7CisgICAgUmV0YWluUHRyPE5T
VVJMPiBfY29va2llU3RvcmFnZUZpbGVVUkw7CiB9CiAKIC0oTlNVUkwgKilfd2ViU3RvcmFnZURp
cmVjdG9yeSB7CkBAIC03MCwxMyArNzAsMTYgQEAgLSh2b2lkKV9zZXRXZWJTUUxEYXRhYmFzZURp
cmVjdG9yeTooTlNVUkwgKil1cmwgewogICAgIF93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeVVSTCA9
IGFkb3B0TlMoW3VybCBjb3B5XSk7CiB9CiAKLS0oTlNVUkwgKilfY29va2llU3RvcmFnZURpcmVj
dG9yeSB7Ci0gICAgcmV0dXJuIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJMLmdldCgpOworLShO
U1VSTCAqKV9jb29raWVTdG9yYWdlRmlsZSB7CisgICAgcmV0dXJuIF9jb29raWVTdG9yYWdlRmls
ZVVSTC5nZXQoKTsKIH0KIAotLSh2b2lkKV9zZXRDb29raWVTdG9yYWdlRGlyZWN0b3J5OihOU1VS
TCAqKXVybCB7CistKHZvaWQpX3NldENvb2tpZVN0b3JhZ2VGaWxlOihOU1VSTCAqKXVybCB7CiAg
ICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwotICAgIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJM
ID0gYWRvcHROUyhbdXJsIGNvcHldKTsKKyAgICBpZiAoW3VybCBoYXNEaXJlY3RvcnlQYXRoXSkK
KyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8gYSBmaWxlLCBub3Qg
YSBkaXJlY3RvcnkuIl07CisKKyAgICBfY29va2llU3RvcmFnZUZpbGVVUkwgPSBhZG9wdE5TKFt1
cmwgY29weV0pOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCAzNmM2NGU0MTQzNDA4YmMxMjYwZDBjMzBjODVkM2VkMWFhYmMwNWJi
Li44NTBlNjVkZmM1YTRhOTE5MTFjZmI2Y2ZmNzBlNmM2OWEzMDhlZTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEzMTksNiArMTMxOSwxMSBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiAgICAgbV9u
ZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN5bmNO
ZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKQoreworICAgIHNlbmRTeW5jVG9OZXR3b3JraW5nUHJvY2Vz
cyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN5bmNBbGxDb29raWVzKCksIE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXM6OlJlcGx5KCkpOworfQorCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2Vi
Q2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBob3N0KQogewogICAg
IGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCmluZGV4IGYzZWE2ODQ2YzdkMmY1Mzk0OTYwNWI4OGIyNzQwMmRkZjc5Y2QyMzIu
Ljg3MTI1OTE1ZmZkZTdiMzJlYTgyNDMyZDNlYTRlODM1NTVkN2FkYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNjQsNiArMjY0LDggQEAgcHVibGlj
OgogICAgIHZvaWQgdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgdm9pZCBzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVz
KCk7CisKICAgICB2b2lkIHJlcG9ydFdlYkNvbnRlbnRDUFVUaW1lKFNlY29uZHMgY3B1VGltZSwg
dWludDY0X3QgYWN0aXZpdHlTdGF0ZSk7CiAKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcm
IGhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KaW5kZXggMGM0MDBk
YjNjYzU3ODJkMTVjZWJiNjE5OWZlOTRiNmZlNjgxMzFmYS4uZTFkMjhhMzdjYWVjNTAzNDQ0ZjY2
NDVkM2U1MTQ1NjI1MWI4MGU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29h
Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0
IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudUNvY29hLmg+CiAjaW1wb3J0IDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTQsMTAgKzU1LDEyIEBAIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogCiAgICAgcGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBhdXRvIGNvb2tpZUZpbGUg
PSByZXNvbHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBpZiAobV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgYXV0byBjb29raWVQYXRoID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlRGlyZWN0b3J5KCku
dXRmOCgpOwotICAgICAgICBhdXRvIHVybCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVGcm9tRmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50OCAqKWNv
b2tpZVBhdGguZGF0YSgpLCAoQ0ZJbmRleCljb29raWVQYXRoLmxlbmd0aCgpLCB0cnVlKSk7Cisg
ICAgICAgIGF1dG8gdXRmOEZpbGUgPSBjb29raWVGaWxlLnV0ZjgoKTsKKyAgICAgICAgYXV0byB1
cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDggKil1dGY4RmlsZS5kYXRhKCksIChDRkluZGV4
KXV0ZjhGaWxlLmxlbmd0aCgpLCB0cnVlKSk7CiAgICAgICAgIG1fY2ZDb29raWVTdG9yYWdlID0g
YWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUZpbGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgdXJsLmdldCgpLCBudWxscHRyKSk7CiAgICAgICAgIGF1dG8gY2ZEYXRhID0gYWRvcHRD
RihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fY2ZDb29raWVTdG9yYWdlLmdldCgpKSk7CiAKQEAgLTY1LDE0ICs2OCwxMSBAQCBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkK
ICAgICB9CiAKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVy
ID0gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKLSNlbmRpZiAvLyBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0KLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNv
bHZlZENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JSZWFkV3JpdGVEaXJlY3RvcnkoY29va2llU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCisgICAgaWYg
KCFjb29raWVGaWxlLmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUoY29va2ll
RmlsZSksIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpOworCiAg
ICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAxNWQ0NmM3
ODAzMjEyM2RjOWUwY2MxNjBjOWJlMDM5Zjk1MmU4YTQ5Li44NGVlNGQyN2NjOWM2OTIxMjBlM2Q3
NTIyZmNiMzhlZjVmOTJiNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFz
ZVRyYWNrZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL09yaWdpbkxvY2su
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZE9ic2VydmVyLmg+CkBAIC0xMTIsMTcg
KzExMywyMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVj
ZXNzYXJ5KCkKICAgICAgICAgcmV0dXJuOwogICAgIG1faGFzUmVzb2x2ZWREaXJlY3RvcmllcyA9
IHRydWU7CiAKKyAgICAvLyBSZXNvbHZlIGRpcmVjdG9yeSBwYXRocy4KICAgICBtX3Jlc29sdmVk
Q29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0
ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLm1l
ZGlhQ2FjaGVEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9y
U2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeSk7CiAg
ICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ubWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IHJl
c29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29u
ZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFk
V3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi53ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSk7CiAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uaW5kZXhlZERC
RGF0YWJhc2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9y
U2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24uaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnkpOwogCi0gICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZURpcmVjdG9yeS5p
c0VtcHR5KCkpCi0gICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4
dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZURpcmVjdG9yeSk7Ci0KICAgICBp
ZiAoIW1fY29uZmlndXJhdGlvbi5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0Vt
cHR5KCkpCiAgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1
cmF0aW9uRGlyZWN0b3J5ID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmln
dXJhdGlvbi5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSk7CisKKyAgICAvLyBSZXNv
bHZlIGRpcmVjdG9yaWVzIGZvciBmaWxlIHBhdGhzLgorICAgIGlmICghbV9jb25maWd1cmF0aW9u
LmNvb2tpZVN0b3JhZ2VGaWxlLmlzRW1wdHkoKSkgeworICAgICAgICBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi5jb29raWVTdG9yYWdlRmlsZSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJl
Y3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUobV9jb25maWd1
cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlKSk7CisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLmNvb2tpZVN0b3JhZ2VGaWxlID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlLCBXZWJDb3JlOjpwYXRo
R2V0RmlsZU5hbWUobV9jb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlKSk7CisgICAgfQog
fQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsb25lU2Vzc2lvbkRhdGEoV2ViUGFnZVByb3h5
JiBzb3VyY2VQYWdlLCBXZWJQYWdlUHJveHkmIG5ld1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBj
NDA4NGM2NzQwOTkzNjU1MzkwNmNiZjA1MDllZjQ2MDFmODRhY2RiLi44YzQzZGIzNmU4Nzc2ODQ4
Y2IzNWNhYWZjMWJiZThiNjVlM2UxNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTc1LDcgKzc1LDcg
QEAgcHVibGljOgogICAgICAgICBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKICAg
ICAgICAgU3RyaW5nIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgICAgIFN0
cmluZyBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeTsKLSAgICAgICAgU3RyaW5nIGNv
b2tpZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlRmlsZTsK
ICAgICB9OwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lz
dGVudCgpOwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3Vy
YXRpb24sIFdlYkNvcmU6OlNlc3Npb25JRCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OyB9
CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7IH0K
ICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkSmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5qYXZhU2NyaXB0Q29u
ZmlndXJhdGlvbkRpcmVjdG9yeTsgfQotICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRDb29raWVT
dG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24u
Y29va2llU3RvcmFnZURpcmVjdG9yeTsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRDb29r
aWVTdG9yYWdlRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNv
b2tpZVN0b3JhZ2VGaWxlOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZEluZGV4ZWREYXRh
YmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmlu
ZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OyB9CiAKICAgICBTdG9yYWdlTWFuYWdlciogc3RvcmFn
ZU1hbmFnZXIoKSB7IHJldHVybiBtX3N0b3JhZ2VNYW5hZ2VyLmdldCgpOyB9CkBAIC0xNTYsNyAr
MTU2LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAKLSNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAw
CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fdWlQcm9jZXNzQ29v
a2llU3RvcmFnZUlkZW50aWZpZXI7CiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWY+IG1fY2ZDb29raWVTdG9yYWdlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA0ODU5MTRmYmE5ZGQwMzNlNmVlZWJiYjA0Mzlh
OWNjNzdjMDQ3MGZkLi44NzY2OTM5ZWQ3NjhlZWNmY2Q5NDY3NDZlZTAxNzM2Yzg5ZjcxZmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTc3
LDE2ICs3NywxMCBAQCB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNp
dGVEYXRhU3RvcmVTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmVQYQogICAgIGVsc2UKICAgICAgICAg
YmFzZSA9IFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpOwogCi0jaWYgUExBVEZP
Uk0oSU9TKQotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0
ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotI2VuZGlmCi0KLSAg
ICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gdWlQcm9jZXNzQ29va2llU3RvcmFn
ZTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5j
b29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKLSNpZiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgUmV0YWluUHRy
PENGRGF0YVJlZj4gY29va2llU3RvcmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlm
aWVyLmRhdGEoKSwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5z
aXplKCkpKTsKLSAgICB1aVByb2Nlc3NDb29raWVTdG9yYWdlID0gYWRvcHRDRihDRkhUVFBDb29r
aWVTdG9yYWdlQ3JlYXRlRnJvbUlkZW50aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBj
b29raWVTdG9yYWdlRGF0YS5nZXQoKSkpOwotI2VuZGlmCisgICAgYXV0byB1aVByb2Nlc3NDb29r
aWVTdG9yYWdlID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUlkZW50aWZ5
aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVTdG9yYWdlRGF0YS5nZXQoKSkpOwog
CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKHBhcmFtZXRlcnMuc2Vz
c2lvbklELCBiYXNlICsgJy4nICsgU3RyaW5nOjpudW1iZXIocGFyYW1ldGVycy5zZXNzaW9uSUQu
c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UpKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM2NTliNjJjZDlk
OThkMzQ1YjgyZjY0ZmExMDkzOGRkNzE0Y2Y5MDMuLmRlNGQwOTRhNGU1MzhhNWM4OWNlODkzNTcx
NTNjY2Q4MDlhYzJiZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yOSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBTUEkuCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbiAoYW5kIGtp
bmQgb2YgQW5keSBFc3RlcykuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW06CisgICAgICAgIChURVNUKToK
KwogMjAxNy0wNC0zMCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0FUS10gRW1pdCBvYmplY3Q6c3RhdGUtY2hhbmdlZDpidXN5IGV2ZW50IHdoZW4gYXJp
YS1idXN5IHZhbHVlIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cy5tbQppbmRleCA0YjRmMTEyZWRmMTY3NzNhMDI0MDRjYTdiZDVjZDRmMmVmMGMzNzZmLi42Mjg2
ZTlkOGE1M2VlMWQwNzc4YzM2ZmYwMTE5MjM0ZmQ2MDk5OTViIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC03NCwxOSArNzQsMTkgQEAgVEVTVChXZWJLaXQy
LCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRy
b2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RI
YW5kbGVyIl07CiAKLSAgICBOU1VSTCAqc3FsUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1dlYlNR
TC8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqaWRiUGF0aCA9
IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJ
L0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBh
dGhdXTsKLSAgICBOU1VSTCAqbG9jYWxTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0xv
Y2FsU3RvcmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAq
Y29va2llU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9X
ZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Db29raWVTdG9yYWdlLyIgc3Ry
aW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpzcWxQYXRoID0gW05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9t
V2Vic2l0ZURhdGEvV2ViU1FMLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJl
Y3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4
ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107Cisg
ICAgTlNVUkwgKmxvY2FsU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4v
TGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Mb2NhbFN0b3Jh
Z2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAg
IE5TVVJMICpjb29raWVTdG9yYWdlRmlsZSA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9M
aWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0Nvb2tpZVN0b3Jh
Z2UvQ29va2llLkZpbGUiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5
Ok5PXTsKIAotICAgIE5TVVJMICpkZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8i
IHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqZGVmYXVsdElEQlBh
dGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktp
dEFQSS9XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRo
XV07Ci0gICAgTlNVUkwgKmRlZmF1bHRMb2NhbFN0b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxX
aXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvTG9j
YWxTdG9yYWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpk
ZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktp
dC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8iIHN0cmluZ0J5RXhwYW5kaW5nVGls
ZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNVUkwgKmRlZmF1bHRJREJQYXRoID0g
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkv
V2Vic2l0ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNE
aXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqZGVmYXVsdExvY2FsU3RvcmFnZVBhdGggPSBbTlNV
UkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJz
aXRlRGF0YS9Mb2NhbFN0b3JhZ2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0Rp
cmVjdG9yeTpZRVNdOwogCiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1v
dmVJdGVtQXRVUkw6c3FsUGF0aCBlcnJvcjpuaWxdOwogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsKICAgICBbW05T
RmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpsb2NhbFN0b3JhZ2VQ
YXRoIGVycm9yOm5pbF07Ci0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1v
dmVJdGVtQXRVUkw6Y29va2llU3RvcmFnZVBhdGggZXJyb3I6bmlsXTsKKyAgICBbW05TRmlsZU1h
bmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpjb29raWVTdG9yYWdlRmlsZSBl
cnJvcjpuaWxdOwogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRl
bUF0VVJMOmRlZmF1bHRTUUxQYXRoIGVycm9yOm5pbF07CiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRl
ZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6ZGVmYXVsdElEQlBhdGggZXJyb3I6bmlsXTsK
ICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpkZWZh
dWx0TG9jYWxTdG9yYWdlUGF0aCBlcnJvcjpuaWxdOwpAQCAtOTQsNyArOTQsNyBAQCBURVNUKFdl
YktpdDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAgICBFWFBFQ1RfRkFMU0UoW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOnNxbFBhdGgucGF0
aF0pOwogICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZp
bGVFeGlzdHNBdFBhdGg6aWRiUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpsb2NhbFN0b3JhZ2VQYXRo
LnBhdGhdKTsKLSAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOmNvb2tpZVN0b3JhZ2VQYXRoLnBhdGhdKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmNv
b2tpZVN0b3JhZ2VGaWxlLnBhdGhdKTsKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRTUUxQYXRoLnBhdGhdKTsK
ICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOmRlZmF1bHRJREJQYXRoLnBhdGhdKTsKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRMb2NhbFN0
b3JhZ2VQYXRoLnBhdGhdKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBURVNUKFdlYktpdDIsIFdlYnNp
dGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBzcWxQYXRoOwogICAgIHdlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CiAg
ICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkgPSBs
b2NhbFN0b3JhZ2VQYXRoOwotICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9jb29r
aWVTdG9yYWdlRGlyZWN0b3J5ID0gY29va2llU3RvcmFnZVBhdGg7CisgICAgd2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlID0gY29va2llU3RvcmFnZUZpbGU7
CiAKICAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbl07CiAgICAgW3dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHJlbGVh
c2VdOwpAQCAtMTI1LDggKzEyNSwxNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocykKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIGZpbGVFeGlzdHNBdFBhdGg6aWRiUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRJREJQ
YXRoLnBhdGhdKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0cnVlLCBidXQgY29t
ZXMgdXAgZmFsc2UuIFBvc3NpYmx5IGEgQ0ZOZXR3b3JrIGlzc3VlLiBCZWluZyBleHBsb3JlZCBp
biA8cmRhcjovL3Byb2JsZW0vMzE2NjYyNzU+Ci0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlUGF0aC5w
YXRoXSk7CisgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNO
ZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdOworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlRmlsZS5wYXRoXSk7
CisKKyAgICAvLyBOb3RlOiBUaGUgZm9ybWF0IG9mIHRoZSBjb29raWUgZmlsZSBvbiBkaXNrIGlz
IHByb3ByaWV0YXJ5IGFuZCBvcGFxdWUsIHNvIHRoaXMgaXMgZnJhZ2lsZSB0byBmdXR1cmUgY2hh
bmdlcy4KKyAgICAvLyBCdXQgcmlnaHQgbm93LCBpdCBpcyByZWxpYWJsZSB0byBzY2FuIHRoZSBm
aWxlIGZvciB0aGUgQVNDSUkgc3RyaW5nIG9mIHRoZSBjb29raWUgbmFtZSB3ZSBzZXQuCisgICAg
Ly8gVGhpcyBoZWxwcyB2ZXJpZnkgdGhhdCB0aGUgY29va2llIGZpbGUgd2FzIGFjdHVhbGx5IHdy
aXR0ZW4gdG8gYXMgd2UnZCBleHBlY3QuCisgICAgYXV0byBkYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhDb250ZW50c09mVVJMOmNvb2tpZVN0b3JhZ2VGaWxlXSk7CisgICAg
Y2hhciBieXRlc1tdID0gInRlc3RrZXkiOworICAgIGF1dG8gY29va2llS2V5RGF0YSA9IGFkb3B0
TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6KHZvaWQgKilieXRlcyBsZW5ndGg6c3Ry
bGVuKGJ5dGVzKV0pOworICAgIGF1dG8gcmVzdWx0ID0gW2RhdGEgcmFuZ2VPZkRhdGE6Y29va2ll
S2V5RGF0YS5nZXQoKSBvcHRpb25zOjAgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgZGF0YS5nZXQoKS5s
ZW5ndGgpXTsKKyAgICBFWFBFQ1RfTkUoKGNvbnN0IGxvbmcpcmVzdWx0LmxvY2F0aW9uLCBOU05v
dEZvdW5kKTsKIAogICAgIC8vIEZJWE1FOiBUaGUgZGVmYXVsdCBTUUwgYW5kIExvY2FsU3RvcmFn
ZSBwYXRocyBhcmUgYmVpbmcgdXNlZCBmb3Igc29tZXRoaW5nLCBidXQgdGhleSBzaG91bGRuJ3Qg
YmUuICh0aGVzZXMgc2hvdWxkIGJlIGZhbHNlLCBub3QgdHJ1ZSkKICAgICBFWFBFQ1RfVFJVRShb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFNR
TFBhdGgucGF0aF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308696</attachid>
            <date>2017-04-30 11:36:44 -0700</date>
            <delta_ts>2017-04-30 11:45:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171483-20170430113644.patch</filename>
            <type>text/plain</type>
            <size>32829</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U3MGY0MzFkZjI2NzQ3
YzRjNWJiMTFkM2Y3N2Y1ZTM3YTM3YjE0MC4uM2UxNGMzZmNiNzcxZDhjZWVlMjAyYTk2Njg2OGQ2
ZWJjYzllN2IxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
IEdhcmVuIChhbmQga2luZCBvZiBBbmR5IEVzdGVzKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KENvdmVyZWQgYnkgQVBJIHRlc3QpLgorCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NmL0NGTmV0
d29ya1NQSS5oOgorCiAyMDE3LTA0LTMwICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbQVRLXSBFbWl0IG9iamVjdDpzdGF0ZS1jaGFuZ2VkOmJ1c3kgZXZl
bnQgd2hlbiBhcmlhLWJ1c3kgdmFsdWUgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhMTJhOGFhYzkz
NDIyY2Q0OWE1ODNjZDQ4MTJiODkyZjZlOWIzZmIuLjA3NWZhNGJmYTVlMmI2NDFlMWVlY2VmZGIw
MTkyYTI5Y2IyZDc5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNy0wNC0yOSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBT
UEkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZiBHYXJlbiAoYW5kIGtpbmQgb2YgQW5keSBFc3RlcykuCisgICAgICAgIAorICAgICAgICBV
cGRhdGVzIGluY2x1ZGU6CisgICAgICAgIC1UYWtpbmcgYSBmaWxlIHBhdGggYXMgdGhlIGNvbmZp
ZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGEgZGlyZWN0b3J5LgorICAgICAgICAtUHJvcGVyIHNhbmRi
b3ggZXh0ZW5zaW9uIGhhbmRsaW5nLgorICAgICAgICAtUHJvcGVyIGFuZCB0aG9yb3VnaCBBUEkg
dGVzdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKToKKworICAgICAg
ICAqIFNoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfc3luY05l
dHdvcmtQcm9jZXNzQ29va2llc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfY29va2llU3RvcmFnZVBhdGhdKToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldENvb2tpZVN0b3Jh
Z2VQYXRoOl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBf
Y29va2llU3RvcmFnZURpcmVjdG9yeV0pOiBEZWxldGVkLgorICAgICAgICAoLVtfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTpdKTogRGVs
ZXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSk6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZWRDb29raWVTdG9yYWdlRGly
ZWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wNC0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbiAocjIxNTk0MSkgVW5leHBlY3RlZCBsb2dn
aW5nIGNhdXNlcyBwZXJmIHRlc3RzIHRvIGZhaWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggZjkyZDU2YWMyM2UxNGE1N2NhYjU0N2MzYzNm
NWQ1MTAyNzQ5NWJiZC4uOWJhNDdjMDU0OTZiZWFjNDk1NTM5ZmU0MGVlM2RkNjIxOGRlZjUwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApAQCAt
MTcxLDYgKzE3MSwxMyBAQCB2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1dpdGhTZXNzaW9u
KENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogCiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxl
dGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTIwMCkKK3ZvaWQg
X0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vsc2UKK3ZvaWQgQ0ZI
VFRQQ29va2llU3RvcmFnZUZsdXNoQ29va2llU3RvcmVzKCk7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKENPQ09BKQogQ0ZEYXRhUmVmIF9DRkNhY2hlZFVSTFJlc3BvbnNlR2V0TWVtTWFwcGVkRGF0
YShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNpZmRlZiBfX0JMT0NLU19fCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTYzMGQ0
ZmVjODhiMzgxNWI3OGJhYTA1Mjc3YTYzYWM2MGVmYWU4MS4uMDZlMjFkNTc1MTY1ZDc1ZGNmYTYx
YzQyMTY1MTNmYTAwNmRjMzljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjc3LDYgKzY3NywxMCBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCiB7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29r
aWVzKCkKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDYwZWQ2ZjEyMDcw
OWE4Y2E3NDZhMTRmNDA2M2U2OGE1YmIwMzBlZWEuLmVhYzljMDg4ODFhNzAyMjhlNWQxNTJkMDAy
NGY2NWY0ZGQ0MDYyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRO
ZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBj
bGVhckNhY2hlRm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKTsKICAgICB2b2lk
IHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wpOworICAgIHZvaWQg
c3luY0FsbENvb2tpZXMoKTsKIAogICAgIHZvaWQgZGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1Rv
RGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElEKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCBkNWI4YzZjYjEyOTQzMzkxNzU1ZmJlYWM5ZGJhZDliZmNkZTI3NGI1Li44MDk0
NDAwMmJmOWNlMmNhYTU1ZWIzYjVlMTlkOTFiODQwMjRmMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNjUsNiArNjUsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAjZW5kaWYKICAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChi
b29sIGVuYWJsZWQpIC0+ICgpCiAKKyAgICBTeW5jQWxsQ29va2llcygpIC0+ICgpCisKICAgICBB
bGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKICAgICBTZXRDYW5IYW5kbGVIVFRQU1NlcnZl
clRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5k
ZXggZWYwZjU5MDBjYTA2MzE0MDdjODY0MDlmNDgxODlhMmNjMDg2ZGY5ZC4uNjEyZjRkOGRkYTFj
ZGM5ZTk3ZWJkZDNiNDNiOWFkN2Y5YzAzMDkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0y
MDgsNCArMjA4LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENvb2tpZVN0b3JhZ2VQYXJ0
aXRpb25pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGVuYWJsZWQpOwog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcygpCit7CisjaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEyMDApCisg
ICAgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vsc2UKKyAgICBD
RkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsKKyNlbmRpZgorfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggZjc4YjhmNmJmNmZmYzQ4MTE2MjU1YmQ4ZDBkODFl
OThiMWY1Mzk5Mi4uZjMzZGEyOGVlYmY1ODQwMWNlOWVlNmIzYmQ2YjA0MGRiYjc4OGE5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMTEyLDE2ICsxMTIsMTMgQEAgdm9pZCBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24oV2Vic2l0ZURh
dGFTdG9yZVBhcmEKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9uVHJhY2tlcjo6Z2V0
SWRlbnRpZmllckJhc2UoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsK
IAogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiB1aVByb2Nlc3NDb29raWVT
dG9yYWdlOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAotICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNvb2tpZVN0b3JhZ2VE
YXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRhKCksIHBhcmFtZXRlcnMudWlQ
cm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7Ci0gICAgdWlQcm9jZXNzQ29v
a2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlm
eWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsK
LSNlbmRpZgorICAgIGlmICghcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRp
Zmllci5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gY29va2llU3Rv
cmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmRhdGEoKSwgcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5zaXplKCkpKTsKKyAgICAgICAgdWlQ
cm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZy
b21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEu
Z2V0KCkpKTsKKyAgICB9CiAKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Np
b24ocGFyYW1ldGVycy5zZXNzaW9uSUQsIGJhc2UgKyAnLicgKyBTdHJpbmc6Om51bWJlcihwYXJh
bWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSksIFdURk1vdmUodWlQcm9jZXNzQ29va2llU3Rv
cmFnZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmNwcAppbmRleCBlYWYwMjliMjUxYjM2ZjdkMmZmZGNjNDg4ODg3NzVjYzkz
MjQ0YmExLi44MDc2MDhmZjY2OWI1NWQ1OTlkNTYyMDkyMWFhZTNjMDE5MTI0YmRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5j
cHAKQEAgLTM4LDEyICszOCw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycygpCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc2Vz
c2lvbklEOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDAKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGVuY29kZXIgPDwgY29va2ll
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNlbmRpZgorICAgIGVuY29kZXIgPDwg
Y29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiB9CiAKIGJvb2wgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTEsMTUgKzQ3LDExIEBAIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YnNpdGVEYXRhU3RvcmVQCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNlc3Np
b25JRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggYTA0Y2E1Mjc4OTJhMGNjY2RlN2U3OWYxMmNm
OGVlNTg5OThkYTQ0MS4uOGI3NTBlNDEwMjVmOWU1ZWU4NTBlOGIzYzlmZDMwMzNlODlmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKQEAgLTQ0LDEzICs0NCw4IEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwotCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMAogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmll
cjsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSNlbmRpZgorICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDhkNDJkZDVjM2E1YTQwMGZk
YTdhNjFiZmFmNDE1YmI5MzE5OWMyZmQuLjcwZmI2ZTg5NjMyNzM3YjFjNDFkNDgxNmJiYWIwNjll
Mzg3MGEwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTI5Miw2ICsyOTIsMTEgQEAgLSAodm9pZClfdGVybWluYXRl
RGF0YWJhc2VQcm9jZXNzCiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVEYXRhYmFzZVByb2Nl
c3MoKTsKIH0KIAorLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcworeworICAgIF9w
cm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOworfQorCiAtIChzaXplX3Qp
X3dlYlByb2Nlc3NDb3VudAogewogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnByb2Nlc3Nlcygp
LnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAxMGYyM2E3ZGE1YmU1YmY1N2M0MjhlZTM1
MjgxMjIyZmQxOGIxMDRmLi43ZTkwOTc1OGVhNWU1N2FmN2M0MmQ5NjUxOGZjY2Y3MjQ0ZjAxODY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03MSw2ICs3MSw3IEBACiAKIC8vIFRlc3Qgb25seS4K
IC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50OworLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNz
Q29va2llczsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2Vi
IGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRy
b2xsZXJGcmFtZXdvcms7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGExMjJmM2Y1MjcyNDFmNTgyNzdj
MTkzNzM2NTc5M2U3ZDViYmZmZjMuLjAyZTViNjcwNDViZmI2NDQ1ODQwNjgzMzlhMzM3OWIyYzI4
MGM3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xNjAsOCArMTYwLDggQEAgLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uICopY29uZmkKICAgICAgICAgY29uZmlnLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5ID0gY29u
ZmlndXJhdGlvbi5fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkucGF0aDsKICAgICBpZiAoY29uZmln
dXJhdGlvbi5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpCiAgICAgICAgIGNvbmZpZy5pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5LnBhdGg7Ci0gICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnkpCi0gICAgICAgIGNvbmZpZy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gY29uZmlndXJh
dGlvbi5fY29va2llU3RvcmFnZURpcmVjdG9yeS5wYXRoOworICAgIGlmIChjb25maWd1cmF0aW9u
Ll9jb29raWVTdG9yYWdlRmlsZSkKKyAgICAgICAgY29uZmlnLmNvb2tpZVN0b3JhZ2VGaWxlID0g
Y29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aDsKIAogICAgIEFQSTo6T2JqZWN0
Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBjb25maWcs
IFdlYkNvcmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggYjE4YTIxMzdjNGUw
YmU1MDgyZmYyODFjNzdkYjdkODgzZjdlNjhiOS4uNWNkYWEzY2I0MTE3NGVkZDZkMDFiNDFhNDBh
MDY2YmI5YmJmMzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aApAQCAtMzcsNyArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VS
TCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHks
IHNldHRlcj1fc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpfY29va2llU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENvb2tpZVN0
b3JhZ2VGaWxlOikgTlNVUkwgKl9jb29raWVTdG9yYWdlRmlsZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCA4Mjk2NDg5ZDVkMGMyZThhMjky
ODUyZWY2MmQ3M2U1NDEzNDc5MGIyLi5mZWNkMTkxZWI5M2YyOWI5OGJhNGY4NmRkZDE2YTczNTU5
N2U5YjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAg
LTQwLDcgKzQwLDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIHsKICAgICBSZXRhaW5QdHI8TlNVUkw+IF93ZWJTdG9yYWdlRGlyZWN0b3J5VVJMOwog
ICAgIFJldGFpblB0cjxOU1VSTD4gX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5VVJMOwogICAg
IFJldGFpblB0cjxOU1VSTD4gX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5VVJMOwotICAgIFJldGFp
blB0cjxOU1VSTD4gX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnlVUkw7CisgICAgUmV0YWluUHRyPE5T
VVJMPiBfY29va2llU3RvcmFnZUZpbGVVUkw7CiB9CiAKIC0oTlNVUkwgKilfd2ViU3RvcmFnZURp
cmVjdG9yeSB7CkBAIC03MCwxMyArNzAsMTYgQEAgLSh2b2lkKV9zZXRXZWJTUUxEYXRhYmFzZURp
cmVjdG9yeTooTlNVUkwgKil1cmwgewogICAgIF93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeVVSTCA9
IGFkb3B0TlMoW3VybCBjb3B5XSk7CiB9CiAKLS0oTlNVUkwgKilfY29va2llU3RvcmFnZURpcmVj
dG9yeSB7Ci0gICAgcmV0dXJuIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJMLmdldCgpOworLShO
U1VSTCAqKV9jb29raWVTdG9yYWdlRmlsZSB7CisgICAgcmV0dXJuIF9jb29raWVTdG9yYWdlRmls
ZVVSTC5nZXQoKTsKIH0KIAotLSh2b2lkKV9zZXRDb29raWVTdG9yYWdlRGlyZWN0b3J5OihOU1VS
TCAqKXVybCB7CistKHZvaWQpX3NldENvb2tpZVN0b3JhZ2VGaWxlOihOU1VSTCAqKXVybCB7CiAg
ICAgY2hlY2tVUkxBcmd1bWVudCh1cmwpOwotICAgIF9jb29raWVTdG9yYWdlRGlyZWN0b3J5VVJM
ID0gYWRvcHROUyhbdXJsIGNvcHldKTsKKyAgICBpZiAoW3VybCBoYXNEaXJlY3RvcnlQYXRoXSkK
KyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIlRoZSBjb29raWUgc3RvcmFnZSBwYXRoIG11c3QgcG9pbnQgdG8gYSBmaWxlLCBub3Qg
YSBkaXJlY3RvcnkuIl07CisKKyAgICBfY29va2llU3RvcmFnZUZpbGVVUkwgPSBhZG9wdE5TKFt1
cmwgY29weV0pOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCAzNmM2NGU0MTQzNDA4YmMxMjYwZDBjMzBjODVkM2VkMWFhYmMwNWJi
Li44NTBlNjVkZmM1YTRhOTE5MTFjZmI2Y2ZmNzBlNmM2OWEzMDhlZTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEzMTksNiArMTMxOSwxMSBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiAgICAgbV9u
ZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN5bmNO
ZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKQoreworICAgIHNlbmRTeW5jVG9OZXR3b3JraW5nUHJvY2Vz
cyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN5bmNBbGxDb29raWVzKCksIE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXM6OlJlcGx5KCkpOworfQorCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2Vi
Q2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBob3N0KQogewogICAg
IGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCmluZGV4IGYzZWE2ODQ2YzdkMmY1Mzk0OTYwNWI4OGIyNzQwMmRkZjc5Y2QyMzIu
Ljg3MTI1OTE1ZmZkZTdiMzJlYTgyNDMyZDNlYTRlODM1NTVkN2FkYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNjQsNiArMjY0LDggQEAgcHVibGlj
OgogICAgIHZvaWQgdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgdm9pZCBzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVz
KCk7CisKICAgICB2b2lkIHJlcG9ydFdlYkNvbnRlbnRDUFVUaW1lKFNlY29uZHMgY3B1VGltZSwg
dWludDY0X3QgYWN0aXZpdHlTdGF0ZSk7CiAKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcm
IGhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KaW5kZXggMGM0MDBk
YjNjYzU3ODJkMTVjZWJiNjE5OWZlOTRiNmZlNjgxMzFmYS4uZTFkMjhhMzdjYWVjNTAzNDQ0ZjY2
NDVkM2U1MTQ1NjI1MWI4MGU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29h
Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0
IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudUNvY29hLmg+CiAjaW1wb3J0IDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTQsMTAgKzU1LDEyIEBAIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogCiAgICAgcGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBhdXRvIGNvb2tpZUZpbGUg
PSByZXNvbHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBpZiAobV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgYXV0byBjb29raWVQYXRoID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlRGlyZWN0b3J5KCku
dXRmOCgpOwotICAgICAgICBhdXRvIHVybCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVGcm9tRmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50OCAqKWNv
b2tpZVBhdGguZGF0YSgpLCAoQ0ZJbmRleCljb29raWVQYXRoLmxlbmd0aCgpLCB0cnVlKSk7Cisg
ICAgICAgIGF1dG8gdXRmOEZpbGUgPSBjb29raWVGaWxlLnV0ZjgoKTsKKyAgICAgICAgYXV0byB1
cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDggKil1dGY4RmlsZS5kYXRhKCksIChDRkluZGV4
KXV0ZjhGaWxlLmxlbmd0aCgpLCB0cnVlKSk7CiAgICAgICAgIG1fY2ZDb29raWVTdG9yYWdlID0g
YWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUZpbGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgdXJsLmdldCgpLCBudWxscHRyKSk7CiAgICAgICAgIGF1dG8gY2ZEYXRhID0gYWRvcHRD
RihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fY2ZDb29raWVTdG9yYWdlLmdldCgpKSk7CiAKQEAgLTY1LDE0ICs2OCwxMSBAQCBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkK
ICAgICB9CiAKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVy
ID0gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKLSNlbmRpZiAvLyBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0KLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNv
bHZlZENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JSZWFkV3JpdGVEaXJlY3RvcnkoY29va2llU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCisgICAgaWYg
KCFjb29raWVGaWxlLmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUoY29va2ll
RmlsZSksIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpOworCiAg
ICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAxNWQ0NmM3
ODAzMjEyM2RjOWUwY2MxNjBjOWJlMDM5Zjk1MmU4YTQ5Li44NGVlNGQyN2NjOWM2OTIxMjBlM2Q3
NTIyZmNiMzhlZjVmOTJiNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFz
ZVRyYWNrZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL09yaWdpbkxvY2su
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZE9ic2VydmVyLmg+CkBAIC0xMTIsMTcg
KzExMywyMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVj
ZXNzYXJ5KCkKICAgICAgICAgcmV0dXJuOwogICAgIG1faGFzUmVzb2x2ZWREaXJlY3RvcmllcyA9
IHRydWU7CiAKKyAgICAvLyBSZXNvbHZlIGRpcmVjdG9yeSBwYXRocy4KICAgICBtX3Jlc29sdmVk
Q29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0
ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLm1l
ZGlhQ2FjaGVEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9y
U2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeSk7CiAg
ICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ubWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IHJl
c29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29u
ZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFk
V3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi53ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSk7CiAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uaW5kZXhlZERC
RGF0YWJhc2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9y
U2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24uaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnkpOwogCi0gICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZURpcmVjdG9yeS5p
c0VtcHR5KCkpCi0gICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4
dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZURpcmVjdG9yeSk7Ci0KICAgICBp
ZiAoIW1fY29uZmlndXJhdGlvbi5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0Vt
cHR5KCkpCiAgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1
cmF0aW9uRGlyZWN0b3J5ID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmln
dXJhdGlvbi5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSk7CisKKyAgICAvLyBSZXNv
bHZlIGRpcmVjdG9yaWVzIGZvciBmaWxlIHBhdGhzLgorICAgIGlmICghbV9jb25maWd1cmF0aW9u
LmNvb2tpZVN0b3JhZ2VGaWxlLmlzRW1wdHkoKSkgeworICAgICAgICBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi5jb29raWVTdG9yYWdlRmlsZSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJl
Y3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUobV9jb25maWd1
cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlKSk7CisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLmNvb2tpZVN0b3JhZ2VGaWxlID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlLCBXZWJDb3JlOjpwYXRo
R2V0RmlsZU5hbWUobV9jb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlKSk7CisgICAgfQog
fQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsb25lU2Vzc2lvbkRhdGEoV2ViUGFnZVByb3h5
JiBzb3VyY2VQYWdlLCBXZWJQYWdlUHJveHkmIG5ld1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBj
NDA4NGM2NzQwOTkzNjU1MzkwNmNiZjA1MDllZjQ2MDFmODRhY2RiLi5mODlkNGVlMDVkZjljYWRm
ZjI1Zjc2MjM0YmQyNjMzYjFmMDQwNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTM3LDcgKzM3LDcg
QEAKICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9D
Rk5ldHdvcmtTUEkuaD4KICNlbmRpZgogCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgU3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgICAgIFN0cmluZyByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgICAgICBTdHJpbmcgamF2YVNjcmlwdENv
bmZpZ3VyYXRpb25EaXJlY3Rvcnk7Ci0gICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0
b3J5OworICAgICAgICBTdHJpbmcgY29va2llU3RvcmFnZUZpbGU7CiAgICAgfTsKICAgICBzdGF0
aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKICAgICBzdGF0
aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uLCBXZWJDb3JlOjpT
ZXNzaW9uSUQpOwpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IHJlc29sdmVkTWVkaWFLZXlzRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENv
bmZpZ3VyYXRpb24ubWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsgfQogICAgIGNvbnN0IFN0cmlu
ZyYgcmVzb2x2ZWREYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRD
b25maWd1cmF0aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5OyB9CiAgICAgY29uc3QgU3RyaW5n
JiByZXNvbHZlZEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rv
cnk7IH0KLSAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQ29va2llU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VEaXJl
Y3Rvcnk7IH0KKyAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQ29va2llU3RvcmFnZUZpbGUoKSBj
b25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRmlsZTsg
fQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRJbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5pbmRleGVkREJEYXRhYmFzZURp
cmVjdG9yeTsgfQogCiAgICAgU3RvcmFnZU1hbmFnZXIqIHN0b3JhZ2VNYW5hZ2VyKCkgeyByZXR1
cm4gbV9zdG9yYWdlTWFuYWdlci5nZXQoKTsgfQpAQCAtMTU2LDcgKzE1Niw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAorI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIFZlY3Rvcjx1aW50OF90PiBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlm
aWVyOwogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBtX2NmQ29va2llU3Rv
cmFnZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW0KaW5kZXggNDg1OTE0ZmJhOWRkMDMzZTZlZWViYmIwNDM5YTljYzc3YzA0NzBmZC4uODc2
NjkzOWVkNzY4ZWVjZmNkOTQ2NzQ2ZWUwMTczNmM4OWY3MWZjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC03NywxNiArNzcsMTAgQEAgdm9p
ZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lv
bihXZWJzaXRlRGF0YVN0b3JlUGEKICAgICBlbHNlCiAgICAgICAgIGJhc2UgPSBTZXNzaW9uVHJh
Y2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgotCi0gICAgUmV0YWluUHRyPENGSFRU
UENvb2tpZVN0b3JhZ2VSZWY+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2U7CisgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBhdGhF
eHRlbnNpb25IYW5kbGUpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNvb2tp
ZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5kYXRhKCksIHBhcmFt
ZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuc2l6ZSgpKSk7Ci0gICAgdWlQ
cm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZy
b21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEu
Z2V0KCkpKTsKLSNlbmRpZgorICAgIGF1dG8gdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0
Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsKIAogICAgIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCwgYmFzZSArICcu
JyArIFN0cmluZzo6bnVtYmVyKHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKSwgV1RG
TW92ZSh1aVByb2Nlc3NDb29raWVTdG9yYWdlKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNjU5YjYyY2Q5ZDk4ZDM0NWI4MmY2NGZhMTA5
MzhkZDcxNGNmOTAzLi5kZTRkMDk0YTRlNTM4YTVjODljZTg5MzU3MTUzY2NkODA5YWMyYmQwIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTctMDQtMjkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFVwZGF0ZXMgdG8gX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gY29v
a2llIHN0b3JhZ2UgbG9jYXRpb24gU1BJLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE5MDYz
OTc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4gKGFuZCBraW5kIG9mIEFuZHkgRXN0ZXMp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUN1c3RvbVBhdGhzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMTctMDQtMzAgIEpv
YW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtBVEtdIEVtaXQg
b2JqZWN0OnN0YXRlLWNoYW5nZWQ6YnVzeSBldmVudCB3aGVuIGFyaWEtYnVzeSB2YWx1ZSBjaGFu
Z2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNGI0ZjEx
MmVkZjE2NzczYTAyNDA0Y2E3YmQ1Y2Q0ZjJlZjBjMzc2Zi4uNjI4NmU5ZDhhNTNlZTFkMDc3OGMz
NmZmMDExOTIzNGZkNjA5OTk1YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXRocy5tbQpAQCAtNzQsMTkgKzc0LDE5IEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZURhdGFTdG9y
ZUN1c3RvbVBhdGhzKQogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOwogCi0gICAg
TlNVUkwgKnNxbFBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJL
aXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9XZWJTUUwvIiBzdHJpbmdCeUV4cGFu
ZGluZ1RpbGRlSW5QYXRoXV07Ci0gICAgTlNVUkwgKmlkYlBhdGggPSBbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0
YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07Ci0gICAgTlNVUkwg
KmxvY2FsU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9X
ZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Mb2NhbFN0b3JhZ2UvIiBzdHJp
bmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07Ci0gICAgTlNVUkwgKmNvb2tpZVN0b3JhZ2VQYXRo
ID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRB
UEkvQ3VzdG9tV2Vic2l0ZURhdGEvQ29va2llU3RvcmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGls
ZGVJblBhdGhdXTsKKyAgICBOU1VSTCAqc3FsUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1dlYlNR
TC8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAg
TlNVUkwgKmlkYlBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJL
aXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4
cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJMICpsb2NhbFN0
b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rl
c3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0ZURhdGEvTG9jYWxTdG9yYWdlLyIgc3RyaW5nQnlFeHBh
bmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqY29va2llU3Rv
cmFnZUZpbGUgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVz
dFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Db29raWVTdG9yYWdlL0Nvb2tpZS5GaWxlIiBz
dHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpOT107CiAKLSAgICBOU1VS
TCAqZGVmYXVsdFNRTFBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9X
ZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9XZWJTUUwvIiBzdHJpbmdCeUV4cGFuZGlu
Z1RpbGRlSW5QYXRoXV07Ci0gICAgTlNVUkwgKmRlZmF1bHRJREJQYXRoID0gW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEv
SW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOwotICAgIE5TVVJMICpk
ZWZhdWx0TG9jYWxTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJy
YXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL0xvY2FsU3RvcmFnZS8iIHN0cmlu
Z0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKKyAgICBOU1VSTCAqZGVmYXVsdFNRTFBhdGggPSBb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9X
ZWJzaXRlRGF0YS9XZWJTUUwvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVj
dG9yeTpZRVNdOworICAgIE5TVVJMICpkZWZhdWx0SURCUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL0luZGV4
ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107Cisg
ICAgTlNVUkwgKmRlZmF1bHRMb2NhbFN0b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0
aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvTG9jYWxTdG9y
YWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKIAog
ICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOnNxbFBh
dGggZXJyb3I6bmlsXTsKICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92
ZUl0ZW1BdFVSTDppZGJQYXRoIGVycm9yOm5pbF07CiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6bG9jYWxTdG9yYWdlUGF0aCBlcnJvcjpuaWxdOwot
ICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmNvb2tp
ZVN0b3JhZ2VQYXRoIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSByZW1vdmVJdGVtQXRVUkw6Y29va2llU3RvcmFnZUZpbGUgZXJyb3I6bmlsXTsKICAgICBb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpkZWZhdWx0U1FM
UGF0aCBlcnJvcjpuaWxdOwogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVt
b3ZlSXRlbUF0VVJMOmRlZmF1bHRJREJQYXRoIGVycm9yOm5pbF07CiAgICAgW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6ZGVmYXVsdExvY2FsU3RvcmFnZVBh
dGggZXJyb3I6bmlsXTsKQEAgLTk0LDcgKzk0LDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMpCiAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpzcWxQYXRoLnBhdGhdKTsKICAgICBFWFBFQ1Rf
RkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmlk
YlBhdGgucGF0aF0pOwogICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1h
bmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6bG9jYWxTdG9yYWdlUGF0aC5wYXRoXSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDpjb29raWVTdG9yYWdlUGF0aC5wYXRoXSk7CisgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlRmlsZS5w
YXRoXSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
ZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0U1FMUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX0ZBTFNF
KFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0
SURCUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0TG9jYWxTdG9yYWdlUGF0aC5wYXRoXSk7
CkBAIC0xMDMsNyArMTAzLDcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9t
UGF0aHMpCiAgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX3dlYlNRTERhdGFiYXNl
RGlyZWN0b3J5ID0gc3FsUGF0aDsKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5f
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOwogICAgIHdlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLl93ZWJTdG9yYWdlRGlyZWN0b3J5ID0gbG9jYWxTdG9yYWdlUGF0aDsK
LSAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5fY29va2llU3RvcmFnZURpcmVjdG9y
eSA9IGNvb2tpZVN0b3JhZ2VQYXRoOworICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Ll9jb29raWVTdG9yYWdlRmlsZSA9IGNvb2tpZVN0b3JhZ2VGaWxlOwogCiAgICAgY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2Nd
IF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25dOwog
ICAgIFt3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiByZWxlYXNlXTsKQEAgLTEyNSw4ICsx
MjUsMTcgQEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpCiAgICAg
RVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQ
YXRoOmlkYlBhdGgucGF0aF0pOwogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0SURCUGF0aC5wYXRoXSk7CiAKLSAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHJ1ZSwgYnV0IGNvbWVzIHVwIGZhbHNlLiBQb3Nz
aWJseSBhIENGTmV0d29yayBpc3N1ZS4gQmVpbmcgZXhwbG9yZWQgaW4gPHJkYXI6Ly9wcm9ibGVt
LzMxNjY2Mjc1PgotICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIGZpbGVFeGlzdHNBdFBhdGg6Y29va2llU3RvcmFnZVBhdGgucGF0aF0pOworICAgIFtbW3dl
YlZpZXcgY29uZmlndXJhdGlvbl0gcHJvY2Vzc1Bvb2xdIF9zeW5jTmV0d29ya1Byb2Nlc3NDb29r
aWVzXTsKKyAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZp
bGVFeGlzdHNBdFBhdGg6Y29va2llU3RvcmFnZUZpbGUucGF0aF0pOworCisgICAgLy8gTm90ZTog
VGhlIGZvcm1hdCBvZiB0aGUgY29va2llIGZpbGUgb24gZGlzayBpcyBwcm9wcmlldGFyeSBhbmQg
b3BhcXVlLCBzbyB0aGlzIGlzIGZyYWdpbGUgdG8gZnV0dXJlIGNoYW5nZXMuCisgICAgLy8gQnV0
IHJpZ2h0IG5vdywgaXQgaXMgcmVsaWFibGUgdG8gc2NhbiB0aGUgZmlsZSBmb3IgdGhlIEFTQ0lJ
IHN0cmluZyBvZiB0aGUgY29va2llIG5hbWUgd2Ugc2V0LgorICAgIC8vIFRoaXMgaGVscHMgdmVy
aWZ5IHRoYXQgdGhlIGNvb2tpZSBmaWxlIHdhcyBhY3R1YWxseSB3cml0dGVuIHRvIGFzIHdlJ2Qg
ZXhwZWN0LgorICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Q29udGVudHNPZlVSTDpjb29raWVTdG9yYWdlRmlsZV0pOworICAgIGNoYXIgYnl0ZXNbXSA9ICJ0
ZXN0a2V5IjsKKyAgICBhdXRvIGNvb2tpZUtleURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJ5dGVzOih2b2lkICopYnl0ZXMgbGVuZ3RoOnN0cmxlbihieXRlcyldKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IFtkYXRhIHJhbmdlT2ZEYXRhOmNvb2tpZUtleURhdGEuZ2V0KCkgb3B0
aW9uczowIHJhbmdlOk5TTWFrZVJhbmdlKDAsIGRhdGEuZ2V0KCkubGVuZ3RoKV07CisgICAgRVhQ
RUNUX05FKChjb25zdCBsb25nKXJlc3VsdC5sb2NhdGlvbiwgTlNOb3RGb3VuZCk7CiAKICAgICAv
LyBGSVhNRTogVGhlIGRlZmF1bHQgU1FMIGFuZCBMb2NhbFN0b3JhZ2UgcGF0aHMgYXJlIGJlaW5n
IHVzZWQgZm9yIHNvbWV0aGluZywgYnV0IHRoZXkgc2hvdWxkbid0IGJlLiAodGhlc2VzIHNob3Vs
ZCBiZSBmYWxzZSwgbm90IHRydWUpCiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRl
ZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRTUUxQYXRoLnBhdGhdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308697</attachid>
            <date>2017-04-30 11:45:31 -0700</date>
            <delta_ts>2017-04-30 13:24:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171483-20170430114531.patch</filename>
            <type>text/plain</type>
            <size>32840</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U3MGY0MzFkZjI2NzQ3
YzRjNWJiMTFkM2Y3N2Y1ZTM3YTM3YjE0MC4uM2UxNGMzZmNiNzcxZDhjZWVlMjAyYTk2Njg2OGQ2
ZWJjYzllN2IxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVzIHRvIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uIFNQSS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxOTA2Mzk3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
IEdhcmVuIChhbmQga2luZCBvZiBBbmR5IEVzdGVzKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KENvdmVyZWQgYnkgQVBJIHRlc3QpLgorCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NmL0NGTmV0
d29ya1NQSS5oOgorCiAyMDE3LTA0LTMwICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbQVRLXSBFbWl0IG9iamVjdDpzdGF0ZS1jaGFuZ2VkOmJ1c3kgZXZl
bnQgd2hlbiBhcmlhLWJ1c3kgdmFsdWUgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhMTJhOGFhYzkz
NDIyY2Q0OWE1ODNjZDQ4MTJiODkyZjZlOWIzZmIuLjA3NWZhNGJmYTVlMmI2NDFlMWVlY2VmZGIw
MTkyYTI5Y2IyZDc5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNy0wNC0yOSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBT
UEkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZiBHYXJlbiAoYW5kIGtpbmQgb2YgQW5keSBFc3RlcykuCisgICAgICAgIAorICAgICAgICBV
cGRhdGVzIGluY2x1ZGU6CisgICAgICAgIC1UYWtpbmcgYSBmaWxlIHBhdGggYXMgdGhlIGNvbmZp
ZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGEgZGlyZWN0b3J5LgorICAgICAgICAtUHJvcGVyIHNhbmRi
b3ggZXh0ZW5zaW9uIGhhbmRsaW5nLgorICAgICAgICAtUHJvcGVyIGFuZCB0aG9yb3VnaCBBUEkg
dGVzdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKToKKworICAgICAg
ICAqIFNoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfc3luY05l
dHdvcmtQcm9jZXNzQ29va2llc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfY29va2llU3RvcmFnZVBhdGhdKToKKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gX3NldENvb2tpZVN0b3Jh
Z2VQYXRoOl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBf
Y29va2llU3RvcmFnZURpcmVjdG9yeV0pOiBEZWxldGVkLgorICAgICAgICAoLVtfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBfc2V0Q29va2llU3RvcmFnZURpcmVjdG9yeTpdKTogRGVs
ZXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSk6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZENvb2tpZVN0b3JhZ2VQYXRoKToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZWRDb29raWVTdG9yYWdlRGly
ZWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wNC0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbiAocjIxNTk0MSkgVW5leHBlY3RlZCBsb2dn
aW5nIGNhdXNlcyBwZXJmIHRlc3RzIHRvIGZhaWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggZjkyZDU2YWMyM2UxNGE1N2NhYjU0N2MzYzNm
NWQ1MTAyNzQ5NWJiZC4uOWJhNDdjMDU0OTZiZWFjNDk1NTM5ZmU0MGVlM2RkNjIxOGRlZjUwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApAQCAt
MTcxLDYgKzE3MSwxMyBAQCB2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1dpdGhTZXNzaW9u
KENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogCiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxl
dGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTIwMCkKK3ZvaWQg
X0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vsc2UKK3ZvaWQgQ0ZI
VFRQQ29va2llU3RvcmFnZUZsdXNoQ29va2llU3RvcmVzKCk7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKENPQ09BKQogQ0ZEYXRhUmVmIF9DRkNhY2hlZFVSTFJlc3BvbnNlR2V0TWVtTWFwcGVkRGF0
YShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNpZmRlZiBfX0JMT0NLU19fCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTYzMGQ0
ZmVjODhiMzgxNWI3OGJhYTA1Mjc3YTYzYWM2MGVmYWU4MS4uMDZlMjFkNTc1MTY1ZDc1ZGNmYTYx
YzQyMTY1MTNmYTAwNmRjMzljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjc3LDYgKzY3NywxMCBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCiB7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29r
aWVzKCkKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDYwZWQ2ZjEyMDcw
OWE4Y2E3NDZhMTRmNDA2M2U2OGE1YmIwMzBlZWEuLmVhYzljMDg4ODFhNzAyMjhlNWQxNTJkMDAy
NGY2NWY0ZGQ0MDYyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRO
ZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBj
bGVhckNhY2hlRm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKTsKICAgICB2b2lk
IHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wpOworICAgIHZvaWQg
c3luY0FsbENvb2tpZXMoKTsKIAogICAgIHZvaWQgZGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1Rv
RGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElEKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCBkNWI4YzZjYjEyOTQzMzkxNzU1ZmJlYWM5ZGJhZDliZmNkZTI3NGI1Li44MDk0
NDAwMmJmOWNlMmNhYTU1ZWIzYjVlMTlkOTFiODQwMjRmMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNjUsNiArNjUsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAjZW5kaWYKICAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChi
b29sIGVuYWJsZWQpIC0+ICgpCiAKKyAgICBTeW5jQWxsQ29va2llcygpIC0+ICgpCisKICAgICBB
bGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKICAgICBTZXRDYW5IYW5kbGVIVFRQU1NlcnZl
clRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5k
ZXggZWYwZjU5MDBjYTA2MzE0MDdjODY0MDlmNDgxODlhMmNjMDg2ZGY5ZC4uNjBmYzdkMzE3NzUz
NWFhMjExNjM0NGE4MjE3YWMwNGVmOWU4ZjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0y
MDgsNCArMjA4LDE1IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENvb2tpZVN0b3JhZ2VQYXJ0
aXRpb25pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGVuYWJsZWQpOwog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcygpCit7CisjaWYgIVBMQVRG
T1JNKElPUykKKyNpZiAoX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEyMDAp
CisgICAgX0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOworI2Vsc2UKKyAg
ICBDRkhUVFBDb29raWVTdG9yYWdlRmx1c2hDb29raWVTdG9yZXMoKTsKKyNlbmRpZgorI2VuZGlm
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBmNzhiOGY2YmY2ZmZjNDgxMTYy
NTViZDhkMGQ4MWU5OGIxZjUzOTkyLi5mMzNkYTI4ZWViZjU4NDAxY2U5ZWU2YjNiZDZiMDQwZGJi
Nzg4YTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0xMTIsMTYgKzExMiwxMyBAQCB2
b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lv
bihXZWJzaXRlRGF0YVN0b3JlUGFyYQogICAgIGVsc2UKICAgICAgICAgYmFzZSA9IFNlc3Npb25U
cmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpOwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotI2VuZGlmCisgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNp
b25IYW5kbGUpOwogCiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IHVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2U7Ci0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0gICAgUmV0YWluUHRyPENGRGF0YVJlZj4gY29v
a2llU3RvcmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmRhdGEoKSwgcGFy
YW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5zaXplKCkpKTsKLSAgICB1
aVByb2Nlc3NDb29raWVTdG9yYWdlID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRl
RnJvbUlkZW50aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVTdG9yYWdlRGF0
YS5nZXQoKSkpOwotI2VuZGlmCisgICAgaWYgKCFwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0
b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkgeworICAgICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVm
PiBjb29raWVTdG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuZGF0YSgp
LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLnNpemUoKSkpOwor
ICAgICAgICB1aVByb2Nlc3NDb29raWVTdG9yYWdlID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9y
YWdlQ3JlYXRlRnJvbUlkZW50aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVT
dG9yYWdlRGF0YS5nZXQoKSkpOworICAgIH0KIAogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCwgYmFzZSArICcuJyArIFN0cmluZzo6
bnVtYmVyKHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKSwgV1RGTW92ZSh1aVByb2Nl
c3NDb29raWVTdG9yYWdlKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwCmluZGV4IGVhZjAyOWIyNTFiMzZmN2QyZmZkY2M0
ODg4ODc3NWNjOTMyNDRiYTEuLjgwNzYwOGZmNjY5YjU1ZDU5OWQ1NjIwOTIxYWFlM2MwMTkxMjRi
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmNwcApAQCAtMzgsMTIgKzM4LDggQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKCkKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5j
b2RlciA8PCBzZXNzaW9uSUQ7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQ29va2ll
U3RvcmFnZUlkZW50aWZpZXI7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShJT1MpCi0gICAgZW5jb2Rl
ciA8PCBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotI2VuZGlmCisgICAg
ZW5jb2RlciA8PCBjb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZTsKIH0KIAogYm9vbCBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01MSwxNSArNDcsMTEg
QEAgYm9vbCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgV2Vic2l0ZURhdGFTdG9yZVAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRp
ZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9T
KQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
Y29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAppbmRleCBhMDRjYTUyNzg5MmEwY2Nj
ZGU3ZTc5ZjEyY2Y4ZWU1ODk5OGRhNDQxLi44Yjc1MGU0MTAyNWY5ZTVlZTg1MGU4YjNjOWZkMzAz
M2U4OWYwMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuaApAQCAtNDQsMTMgKzQ0LDggQEAgc3RydWN0IFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzIHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmKTsKIAogICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQ7Ci0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMTAwCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHVpUHJvY2Vzc0Nvb2tpZVN0b3Jh
Z2VJZGVudGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotI2Vu
ZGlmCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5z
aW9uSGFuZGxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggOGQ0MmRk
NWMzYTVhNDAwZmRhN2E2MWJmYWY0MTViYjkzMTk5YzJmZC4uNzBmYjZlODk2MzI3MzdiMWM0MWQ0
ODE2YmJhYjA2OWUzODcwYTAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMjkyLDYgKzI5MiwxMSBAQCAtICh2b2lk
KV90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MKICAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZURh
dGFiYXNlUHJvY2VzcygpOwogfQogCistICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVz
Cit7CisgICAgX3Byb2Nlc3NQb29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7Cit9CisK
IC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50CiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+
cHJvY2Vzc2VzKCkuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDEwZjIzYTdkYTViZTVi
ZjU3YzQyOGVlMzUyODEyMjJmZDE4YjEwNGYuLjdlOTA5NzU4ZWE1ZTU3YWY3YzQyZDk2NTE4ZmNj
ZjcyNDRmMDE4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTcxLDYgKzcxLDcgQEAKIAogLy8g
VGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQ7CistICh2b2lkKV9zeW5jTmV0
d29ya1Byb2Nlc3NDb29raWVzOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgYmVm
b3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgogKyAodm9pZClfZm9y
Y2VHYW1lQ29udHJvbGxlckZyYW1ld29yazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggYTEyMmYzZjUy
NzI0MWY1ODI3N2MxOTM3MzY1NzkzZTdkNWJiZmZmMy4uMDJlNWI2NzA0NWJmYjY0NDU4NDA2ODMz
OWEzMzc5YjJjMjgwYzc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTE2MCw4ICsxNjAsOCBAQCAt
IChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gKiljb25maQogICAgICAgICBjb25maWcud2ViU1FMRGF0YWJhc2VEaXJl
Y3RvcnkgPSBjb25maWd1cmF0aW9uLl93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeS5wYXRoOwogICAg
IGlmIChjb25maWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkKICAgICAgICAg
Y29uZmlnLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gY29uZmlndXJhdGlvbi5faW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkucGF0aDsKLSAgICBpZiAoY29uZmlndXJhdGlvbi5fY29va2ll
U3RvcmFnZURpcmVjdG9yeSkKLSAgICAgICAgY29uZmlnLmNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnkg
PSBjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRGlyZWN0b3J5LnBhdGg7CisgICAgaWYgKGNv
bmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlKQorICAgICAgICBjb25maWcuY29va2llU3Rv
cmFnZUZpbGUgPSBjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZS5wYXRoOwogCiAgICAg
QVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNl
bGYsIGNvbmZpZywgV2ViQ29yZTo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9u
SUQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBi
MThhMjEzN2M0ZTBiZTUwODJmZjI4MWM3N2RiN2Q4ODNmN2U2OGI5Li41Y2RhYTNjYjQxMTc0ZWRk
NmQwMWI0MWE0MGEwNjZiYjliYmYzMDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX3dlYlN0b3JhZ2VEaXJl
Y3Rvcnk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRJbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeTopIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRXZWJTUUxEYXRhYmFzZURpcmVj
dG9yeTopIE5TVVJMICpfd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9j
b29raWVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0Q29va2llU3RvcmFnZUZpbGU6KSBOU1VSTCAqX2Nvb2tpZVN0b3JhZ2VGaWxlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4IDgyOTY0ODlk
NWQwYzJlOGEyOTI4NTJlZjYyZDczZTU0MTM0NzkwYjIuLmZlY2QxOTFlYjkzZjI5Yjk4YmE0Zjg2
ZGRkMTZhNzM1NTk3ZTliMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5tbQpAQCAtNDAsNyArNDAsNyBAQCBAaW1wbGVtZW50YXRpb24gX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gewogICAgIFJldGFpblB0cjxOU1VSTD4gX3dlYlN0b3JhZ2VEaXJl
Y3RvcnlVUkw7CiAgICAgUmV0YWluUHRyPE5TVVJMPiBfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnlVUkw7CiAgICAgUmV0YWluUHRyPE5TVVJMPiBfd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlVUkw7
Ci0gICAgUmV0YWluUHRyPE5TVVJMPiBfY29va2llU3RvcmFnZURpcmVjdG9yeVVSTDsKKyAgICBS
ZXRhaW5QdHI8TlNVUkw+IF9jb29raWVTdG9yYWdlRmlsZVVSTDsKIH0KIAogLShOU1VSTCAqKV93
ZWJTdG9yYWdlRGlyZWN0b3J5IHsKQEAgLTcwLDEzICs3MCwxNiBAQCAtKHZvaWQpX3NldFdlYlNR
TERhdGFiYXNlRGlyZWN0b3J5OihOU1VSTCAqKXVybCB7CiAgICAgX3dlYlNRTERhdGFiYXNlRGly
ZWN0b3J5VVJMID0gYWRvcHROUyhbdXJsIGNvcHldKTsKIH0KIAotLShOU1VSTCAqKV9jb29raWVT
dG9yYWdlRGlyZWN0b3J5IHsKLSAgICByZXR1cm4gX2Nvb2tpZVN0b3JhZ2VEaXJlY3RvcnlVUkwu
Z2V0KCk7CistKE5TVVJMICopX2Nvb2tpZVN0b3JhZ2VGaWxlIHsKKyAgICByZXR1cm4gX2Nvb2tp
ZVN0b3JhZ2VGaWxlVVJMLmdldCgpOwogfQogCi0tKHZvaWQpX3NldENvb2tpZVN0b3JhZ2VEaXJl
Y3Rvcnk6KE5TVVJMICopdXJsIHsKKy0odm9pZClfc2V0Q29va2llU3RvcmFnZUZpbGU6KE5TVVJM
ICopdXJsIHsKICAgICBjaGVja1VSTEFyZ3VtZW50KHVybCk7Ci0gICAgX2Nvb2tpZVN0b3JhZ2VE
aXJlY3RvcnlVUkwgPSBhZG9wdE5TKFt1cmwgY29weV0pOworICAgIGlmIChbdXJsIGhhc0RpcmVj
dG9yeVBhdGhdKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRF
eGNlcHRpb24gZm9ybWF0OkAiVGhlIGNvb2tpZSBzdG9yYWdlIHBhdGggbXVzdCBwb2ludCB0byBh
IGZpbGUsIG5vdCBhIGRpcmVjdG9yeS4iXTsKKworICAgIF9jb29raWVTdG9yYWdlRmlsZVVSTCA9
IGFkb3B0TlMoW3VybCBjb3B5XSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDM2YzY0ZTQxNDM0MDhiYzEyNjBkMGMzMGM4NWQz
ZWQxYWFiYzA1YmIuLjg1MGU2NWRmYzVhNGE5MTkxMWNmYjZjZmY3MGU2YzY5YTMwOGVlNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTMxOSw2
ICsxMzE5LDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
KCkKICAgICBtX25ldHdvcmtQcm9jZXNzID0gbnVsbHB0cjsKIH0KIAordm9pZCBXZWJQcm9jZXNz
UG9vbDo6c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpCit7CisgICAgc2VuZFN5bmNUb05ldHdv
cmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXMoKSwg
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTeW5jQWxsQ29va2llczo6UmVwbHkoKSk7Cit9CisK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlLCBjb25zdCBTdHJpbmcmIGhv
c3QpCiB7CiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZjNlYTY4NDZjN2QyZjUzOTQ5NjA1Yjg4YjI3NDAy
ZGRmNzljZDIzMi4uODcxMjU5MTVmZmRlN2IzMmVhODI0MzJkM2VhNGU4MzU1NWQ3YWRjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI2NCw2ICsyNjQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MoKTsKICAgICB2
b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKKyAgICB2b2lkIHN5bmNOZXR3b3JrUHJv
Y2Vzc0Nvb2tpZXMoKTsKKwogICAgIHZvaWQgcmVwb3J0V2ViQ29udGVudENQVVRpbWUoU2Vjb25k
cyBjcHVUaW1lLCB1aW50NjRfdCBhY3Rpdml0eVN0YXRlKTsKIAogICAgIHZvaWQgYWxsb3dTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNv
bnN0IFN0cmluZyYgaG9zdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpp
bmRleCAwYzQwMGRiM2NjNTc4MmQxNWNlYmI2MTk5ZmU5NGI2ZmU2ODEzMWZhLi5lMWQyOGEzN2Nh
ZWM1MDM0NDRmNjY0NWQzZTUxNDU2MjUxYjgwZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oIgogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
aCIKICNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Q29jb2EuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC01NCwxMCArNTUsMTIgQEAgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAKICAg
ICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOwogCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAorICAgIGF1dG8g
Y29va2llRmlsZSA9IHJlc29sdmVkQ29va2llU3RvcmFnZUZpbGUoKTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGlmIChtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1w
dHkoKSkgewotICAgICAgICBhdXRvIGNvb2tpZVBhdGggPSByZXNvbHZlZENvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkoKS51dGY4KCk7Ci0gICAgICAgIGF1dG8gdXJsID0gYWRvcHRDRihDRlVSTENyZWF0
ZUZyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0
IFVJbnQ4ICopY29va2llUGF0aC5kYXRhKCksIChDRkluZGV4KWNvb2tpZVBhdGgubGVuZ3RoKCks
IHRydWUpKTsKKyAgICAgICAgYXV0byB1dGY4RmlsZSA9IGNvb2tpZUZpbGUudXRmOCgpOworICAg
ICAgICBhdXRvIHVybCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVGcm9tRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50OCAqKXV0ZjhGaWxlLmRhdGEo
KSwgKENGSW5kZXgpdXRmOEZpbGUubGVuZ3RoKCksIHRydWUpKTsKICAgICAgICAgbV9jZkNvb2tp
ZVN0b3JhZ2UgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tRmlsZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCB1cmwuZ2V0KCksIG51bGxwdHIpKTsKICAgICAgICAgYXV0byBjZkRh
dGEgPSBhZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVJZGVudGlmeWluZ0RhdGEoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9jZkNvb2tpZVN0b3JhZ2UuZ2V0KCkpKTsKIApAQCAtNjUsMTQg
KzY4LDExIEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBh
cmFtZXRlcnMoKQogICAgIH0KIAogICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFn
ZUlkZW50aWZpZXIgPSBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwotI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDAKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBTdHJpbmcgY29va2llU3RvcmFnZURpcmVj
dG9yeSA9IHJlc29sdmVkQ29va2llU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghY29va2ll
U3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb29raWVTdG9yYWdlRGlyZWN0b3J5LCBw
YXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlm
CiAKKyAgICBpZiAoIWNvb2tpZUZpbGUuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoV2ViQ29yZTo6ZGlyZWN0b3J5
TmFtZShjb29raWVGaWxlKSwgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhh
bmRsZSk7CisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmlu
ZGV4IDE1ZDQ2Yzc4MDMyMTIzZGM5ZTBjYzE2MGM5YmUwMzlmOTUyZThhNDkuLjg0ZWU0ZDI3Y2M5
YzY5MjEyMGUzZDc1MjJmY2IzOGVmNWY5MmI1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RhdGFiYXNlVHJhY2tlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
T3JpZ2luTG9jay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4K
QEAgLTExMiwxNyArMTEzLDIxIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVj
dG9yaWVzSWZOZWNlc3NhcnkoKQogICAgICAgICByZXR1cm47CiAgICAgbV9oYXNSZXNvbHZlZERp
cmVjdG9yaWVzID0gdHJ1ZTsKIAorICAgIC8vIFJlc29sdmUgZGlyZWN0b3J5IHBhdGhzLgogICAg
IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSByZXNv
bHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZp
Z3VyYXRpb24uYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSk7CiAgICAgbV9yZXNvbHZlZENvbmZp
Z3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVE
aXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi5tZWRpYUNhY2hlRGly
ZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRl
bnNpb24obV9jb25maWd1cmF0aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1f
cmVzb2x2ZWRDb25maWd1cmF0aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFu
ZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0
aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KTsKICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlv
bi5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVE
aXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi5pbmRleGVkREJEYXRh
YmFzZURpcmVjdG9yeSk7CiAKLSAgICBpZiAoIW1fY29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdl
RGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29v
a2llU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlG
b3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRGlyZWN0b3J5
KTsKLQogICAgIGlmICghbV9jb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGly
ZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uamF2YVNj
cmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgPSByZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNp
b24obV9jb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KTsKKwor
ICAgIC8vIFJlc29sdmUgZGlyZWN0b3JpZXMgZm9yIGZpbGUgcGF0aHMuCisgICAgaWYgKCFtX2Nv
bmZpZ3VyYXRpb24uY29va2llU3RvcmFnZUZpbGUuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VGaWxlID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViQ29yZTo6ZGlyZWN0b3J5TmFt
ZShtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZUZpbGUpKTsKKyAgICAgICAgbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZUZpbGUgPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQobV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZUZpbGUsIFdl
YkNvcmU6OnBhdGhHZXRGaWxlTmFtZShtX2NvbmZpZ3VyYXRpb24uY29va2llU3RvcmFnZUZpbGUp
KTsKKyAgICB9CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xvbmVTZXNzaW9uRGF0YShX
ZWJQYWdlUHJveHkmIHNvdXJjZVBhZ2UsIFdlYlBhZ2VQcm94eSYgbmV3UGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCmluZGV4IGM0MDg0YzY3NDA5OTM2NTUzOTA2Y2JmMDUwOWVmNDYwMWY4NGFjZGIuLmY4OWQ0
ZWUwNWRmOWNhZGZmMjVmNzYyMzRiZDI2MzNiMWYwNDA2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAt
MzcsNyArMzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRl
IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgogI2VuZGlmCiAKQEAgLTc1LDcgKzc1LDcgQEAgcHVi
bGljOgogICAgICAgICBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAg
U3RyaW5nIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CiAgICAgICAgIFN0cmluZyBq
YXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeTsKLSAgICAgICAgU3RyaW5nIGNvb2tpZVN0
b3JhZ2VEaXJlY3Rvcnk7CisgICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlRmlsZTsKICAgICB9
OwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lzdGVudCgp
OwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRpb24s
IFdlYkNvcmU6OlNlc3Npb25JRCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgcmVzb2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OyB9CiAgICAg
Y29uc3QgU3RyaW5nJiByZXNvbHZlZERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4g
bV9yZXNvbHZlZENvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7IH0KICAgICBj
b25zdCBTdHJpbmcmIHJlc29sdmVkSmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5qYXZhU2NyaXB0Q29uZmlndXJh
dGlvbkRpcmVjdG9yeTsgfQotICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRDb29raWVTdG9yYWdl
RGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uY29va2ll
U3RvcmFnZURpcmVjdG9yeTsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRDb29raWVTdG9y
YWdlRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0
b3JhZ2VGaWxlOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZEluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5OyB9CiAKICAgICBTdG9yYWdlTWFuYWdlciogc3RvcmFnZU1hbmFn
ZXIoKSB7IHJldHVybiBtX3N0b3JhZ2VNYW5hZ2VyLmdldCgpOyB9CkBAIC0xNTYsNyArMTU2LDcg
QEAgcHJpdmF0ZToKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAKLSNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fdWlQcm9jZXNzQ29va2llU3Rv
cmFnZUlkZW50aWZpZXI7CiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IG1f
Y2ZDb29raWVTdG9yYWdlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbQppbmRleCA0ODU5MTRmYmE5ZGQwMzNlNmVlZWJiYjA0MzlhOWNjNzdj
MDQ3MGZkLi44NzY2OTM5ZWQ3NjhlZWNmY2Q5NDY3NDZlZTAxNzM2Yzg5ZjcxZmM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTc3LDE2ICs3
NywxMCBAQCB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRh
U3RvcmVTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmVQYQogICAgIGVsc2UKICAgICAgICAgYmFzZSA9
IFNlc3Npb25UcmFja2VyOjpnZXRJZGVudGlmaWVyQmFzZSgpOwogCi0jaWYgUExBVEZPUk0oSU9T
KQotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNv
b2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotI2VuZGlmCi0KLSAgICBSZXRh
aW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gdWlQcm9jZXNzQ29va2llU3RvcmFnZTsKKyAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVT
dG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gY29va2llU3RvcmFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmRh
dGEoKSwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5zaXplKCkp
KTsKLSAgICB1aVByb2Nlc3NDb29raWVTdG9yYWdlID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9y
YWdlQ3JlYXRlRnJvbUlkZW50aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVT
dG9yYWdlRGF0YS5nZXQoKSkpOwotI2VuZGlmCisgICAgYXV0byB1aVByb2Nlc3NDb29raWVTdG9y
YWdlID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUlkZW50aWZ5aW5nRGF0
YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVTdG9yYWdlRGF0YS5nZXQoKSkpOwogCiAgICAg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklE
LCBiYXNlICsgJy4nICsgU3RyaW5nOjpudW1iZXIocGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lv
bklEKCkpLCBXVEZNb3ZlKHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UpKTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM2NTliNjJjZDlkOThkMzQ1
YjgyZjY0ZmExMDkzOGRkNzE0Y2Y5MDMuLmRlNGQwOTRhNGU1MzhhNWM4OWNlODkzNTcxNTNjY2Q4
MDlhYzJiZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlcyB0byBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiBjb29raWUgc3RvcmFnZSBsb2NhdGlvbiBTUEkuCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMTkwNjM5Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzE0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbiAoYW5kIGtpbmQgb2Yg
QW5keSBFc3RlcykuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW06CisgICAgICAgIChURVNUKToKKwogMjAx
Ny0wNC0zMCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0FUS10gRW1pdCBvYmplY3Q6c3RhdGUtY2hhbmdlZDpidXN5IGV2ZW50IHdoZW4gYXJpYS1idXN5
IHZhbHVlIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQpp
bmRleCA0YjRmMTEyZWRmMTY3NzNhMDI0MDRjYTdiZDVjZDRmMmVmMGMzNzZmLi42Mjg2ZTlkOGE1
M2VlMWQwNzc4YzM2ZmYwMTE5MjM0ZmQ2MDk5OTViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZURhdGFT
dG9yZUN1c3RvbVBhdGhzLm1tCkBAIC03NCwxOSArNzQsMTkgQEAgVEVTVChXZWJLaXQyLCBXZWJz
aXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJd
IGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVy
Il07CiAKLSAgICBOU1VSTCAqc3FsUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9M
aWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1dlYlNRTC8iIHN0
cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VS
TCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3Rv
bVdlYnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsK
LSAgICBOU1VSTCAqbG9jYWxTdG9yYWdlUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Ai
fi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0xvY2FsU3Rv
cmFnZS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqY29va2ll
U3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQv
VGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Db29raWVTdG9yYWdlLyIgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpzcWxQYXRoID0gW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0
ZURhdGEvV2ViU1FMLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6
WUVTXTsKKyAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9M
aWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQi8i
IHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNV
UkwgKmxvY2FsU3RvcmFnZVBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFy
eS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9Mb2NhbFN0b3JhZ2UvIiBz
dHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJM
ICpjb29raWVTdG9yYWdlRmlsZSA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5
L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0Nvb2tpZVN0b3JhZ2UvQ29v
a2llLkZpbGUiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5Ok5PXTsK
IAotICAgIE5TVVJMICpkZWZhdWx0U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Ai
fi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8iIHN0cmlu
Z0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKLSAgICBOU1VSTCAqZGVmYXVsdElEQlBhdGggPSBb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9X
ZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07Ci0g
ICAgTlNVUkwgKmRlZmF1bHRMb2NhbFN0b3JhZ2VQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0
aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvTG9jYWxTdG9y
YWdlLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIE5TVVJMICpkZWZhdWx0
U1FMUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0
V2ViS2l0QVBJL1dlYnNpdGVEYXRhL1dlYlNRTC8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBh
dGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgTlNVUkwgKmRlZmF1bHRJREJQYXRoID0gW05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0
ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rv
cnk6WUVTXTsKKyAgICBOU1VSTCAqZGVmYXVsdExvY2FsU3RvcmFnZVBhdGggPSBbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0
YS9Mb2NhbFN0b3JhZ2UvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9y
eTpZRVNdOwogCiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVt
QXRVUkw6c3FsUGF0aCBlcnJvcjpuaWxdOwogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsKICAgICBbW05TRmlsZU1h
bmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpsb2NhbFN0b3JhZ2VQYXRoIGVy
cm9yOm5pbF07Ci0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVt
QXRVUkw6Y29va2llU3RvcmFnZVBhdGggZXJyb3I6bmlsXTsKKyAgICBbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpjb29raWVTdG9yYWdlRmlsZSBlcnJvcjpu
aWxdOwogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJM
OmRlZmF1bHRTUUxQYXRoIGVycm9yOm5pbF07CiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRN
YW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6ZGVmYXVsdElEQlBhdGggZXJyb3I6bmlsXTsKICAgICBb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpkZWZhdWx0TG9j
YWxTdG9yYWdlUGF0aCBlcnJvcjpuaWxdOwpAQCAtOTQsNyArOTQsNyBAQCBURVNUKFdlYktpdDIs
IFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOnNxbFBhdGgucGF0aF0pOwog
ICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlz
dHNBdFBhdGg6aWRiUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpsb2NhbFN0b3JhZ2VQYXRoLnBhdGhd
KTsKLSAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxl
RXhpc3RzQXRQYXRoOmNvb2tpZVN0b3JhZ2VQYXRoLnBhdGhdKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmNvb2tpZVN0
b3JhZ2VGaWxlLnBhdGhdKTsKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRTUUxQYXRoLnBhdGhdKTsKICAgICBF
WFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQ
YXRoOmRlZmF1bHRJREJQYXRoLnBhdGhdKTsKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRMb2NhbFN0b3JhZ2VQ
YXRoLnBhdGhdKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVEYXRh
U3RvcmVDdXN0b21QYXRocykKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5fd2Vi
U1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBzcWxQYXRoOwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CiAgICAgd2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX3dlYlN0b3JhZ2VEaXJlY3RvcnkgPSBsb2NhbFN0
b3JhZ2VQYXRoOwotICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9jb29raWVTdG9y
YWdlRGlyZWN0b3J5ID0gY29va2llU3RvcmFnZVBhdGg7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlID0gY29va2llU3RvcmFnZUZpbGU7CiAKICAg
ICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbl07CiAgICAgW3dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHJlbGVhc2VdOwpA
QCAtMTI1LDggKzEyNSwxNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXRocykKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZp
bGVFeGlzdHNBdFBhdGg6aWRiUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRJREJQYXRoLnBh
dGhdKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0cnVlLCBidXQgY29tZXMgdXAg
ZmFsc2UuIFBvc3NpYmx5IGEgQ0ZOZXR3b3JrIGlzc3VlLiBCZWluZyBleHBsb3JlZCBpbiA8cmRh
cjovL3Byb2JsZW0vMzE2NjYyNzU+Ci0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlUGF0aC5wYXRoXSk7
CisgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNOZXR3b3Jr
UHJvY2Vzc0Nvb2tpZXNdOworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpjb29raWVTdG9yYWdlRmlsZS5wYXRoXSk7CisKKyAg
ICAvLyBOb3RlOiBUaGUgZm9ybWF0IG9mIHRoZSBjb29raWUgZmlsZSBvbiBkaXNrIGlzIHByb3By
aWV0YXJ5IGFuZCBvcGFxdWUsIHNvIHRoaXMgaXMgZnJhZ2lsZSB0byBmdXR1cmUgY2hhbmdlcy4K
KyAgICAvLyBCdXQgcmlnaHQgbm93LCBpdCBpcyByZWxpYWJsZSB0byBzY2FuIHRoZSBmaWxlIGZv
ciB0aGUgQVNDSUkgc3RyaW5nIG9mIHRoZSBjb29raWUgbmFtZSB3ZSBzZXQuCisgICAgLy8gVGhp
cyBoZWxwcyB2ZXJpZnkgdGhhdCB0aGUgY29va2llIGZpbGUgd2FzIGFjdHVhbGx5IHdyaXR0ZW4g
dG8gYXMgd2UnZCBleHBlY3QuCisgICAgYXV0byBkYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhDb250ZW50c09mVVJMOmNvb2tpZVN0b3JhZ2VGaWxlXSk7CisgICAgY2hhciBi
eXRlc1tdID0gInRlc3RrZXkiOworICAgIGF1dG8gY29va2llS2V5RGF0YSA9IGFkb3B0TlMoW1tO
U0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6KHZvaWQgKilieXRlcyBsZW5ndGg6c3RybGVuKGJ5
dGVzKV0pOworICAgIGF1dG8gcmVzdWx0ID0gW2RhdGEgcmFuZ2VPZkRhdGE6Y29va2llS2V5RGF0
YS5nZXQoKSBvcHRpb25zOjAgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgZGF0YS5nZXQoKS5sZW5ndGgp
XTsKKyAgICBFWFBFQ1RfTkUoKGNvbnN0IGxvbmcpcmVzdWx0LmxvY2F0aW9uLCBOU05vdEZvdW5k
KTsKIAogICAgIC8vIEZJWE1FOiBUaGUgZGVmYXVsdCBTUUwgYW5kIExvY2FsU3RvcmFnZSBwYXRo
cyBhcmUgYmVpbmcgdXNlZCBmb3Igc29tZXRoaW5nLCBidXQgdGhleSBzaG91bGRuJ3QgYmUuICh0
aGVzZXMgc2hvdWxkIGJlIGZhbHNlLCBub3QgdHJ1ZSkKICAgICBFWFBFQ1RfVFJVRShbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFNRTFBhdGgu
cGF0aF0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>