<?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>233057</bug_id>
          
          <creation_ts>2021-11-12 11:49:40 -0800</creation_ts>
          <short_desc>Add ModelDocument for directly showing content that can be handled by &lt;model&gt;</short_desc>
          <delta_ts>2021-11-17 10:46:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1814547</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-12 11:49:40 -0800</bug_when>
    <thetext>Add ModelDocument for directly showing content that can be handled by &lt;model&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814549</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-12 11:50:10 -0800</bug_when>
    <thetext>rdar://85265880</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814705</commentid>
    <comment_count>2</comment_count>
      <attachid>444128</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-12 17:23:01 -0800</bug_when>
    <thetext>Created attachment 444128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814757</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-13 09:06:06 -0800</bug_when>
    <thetext>Oh, I forgot &lt;model&gt; is only available in newer macOSes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814767</commentid>
    <comment_count>4</comment_count>
      <attachid>444128</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-13 09:55:50 -0800</bug_when>
    <thetext>Comment on attachment 444128
Patch

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

&gt; Source/WTF/wtf/PlatformHave.h:1095
&gt; +#define HAVE_MODEL_DOCUMENT 1

What&apos;s the rationale for having a separate flag for this? Seems like using ENABLE(MODEL_ELEMENT) would be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814787</commentid>
    <comment_count>5</comment_count>
      <attachid>444128</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-13 13:44:14 -0800</bug_when>
    <thetext>Comment on attachment 444128
Patch

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

&gt;&gt; Source/WTF/wtf/PlatformHave.h:1095
&gt;&gt; +#define HAVE_MODEL_DOCUMENT 1
&gt; 
&gt; What&apos;s the rationale for having a separate flag for this? Seems like using ENABLE(MODEL_ELEMENT) would be fine.

No real reason other than I just wanted to keep it separate for now. We still need to improve &lt;model&gt; before this could completely replace the WKUSDPreviewView, which is one of the goals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814788</commentid>
    <comment_count>6</comment_count>
      <attachid>444148</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-13 13:52:06 -0800</bug_when>
    <thetext>Created attachment 444148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814821</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-13 17:45:37 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #5)
&gt; Comment on attachment 444128 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444128&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/PlatformHave.h:1095
&gt; &gt;&gt; +#define HAVE_MODEL_DOCUMENT 1
&gt; &gt; 
&gt; &gt; What&apos;s the rationale for having a separate flag for this? Seems like using ENABLE(MODEL_ELEMENT) would be fine.
&gt; 
&gt; No real reason other than I just wanted to keep it separate for now. We
&gt; still need to improve &lt;model&gt; before this could completely replace the
&gt; WKUSDPreviewView, which is one of the goals.

I think a Setting would be better for this. Seems more useful to have it compiled in and testable, then compiled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814865</commentid>
    <comment_count>8</comment_count>
      <attachid>444148</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-14 10:25:38 -0800</bug_when>
    <thetext>Comment on attachment 444148
Patch

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

&gt; Source/WTF/wtf/PlatformHave.h:1096
&gt; +#if PLATFORM(COCOA)
&gt; +#define HAVE_MODEL_DOCUMENT 1
&gt; +#endif

I&apos;d remove this and replace it with a Setting.

&gt; Source/WebCore/dom/Document.h:309
&gt; -using DocumentClassFlags = unsigned char;
&gt; +using DocumentClassFlags = uint32_t;

Seems like uint16_t would be more appropriate for the size.

&gt; Source/WebCore/html/ModelDocument.cpp:98
&gt; +    auto styleContent = makeString(&quot;body { background-color: white; text-align: center; }\n&quot;,

maybe I am missing it, but I think this has any values being concatenated, so this shouldn&apos;t use makeString(). Instead, it can just use a &quot; .. &quot;_s.

&gt; LayoutTests/platform/mac-wk1/TestExpectations:50
&gt; +http/tests/model/model-document.html [ Skip ]

I would skip all of 50http/tests/model. The feature isn&apos;t supported or enabled there so no reason to test it.

&gt; LayoutTests/platform/mac/TestExpectations:1716
&gt; +[ Catalina Mojave BigSur ] http/tests/model/model-document.html [ Skip ]

Why are these being skipped?

&gt; LayoutTests/platform/win/TestExpectations:136
&gt; +# Apple Cocoa only for the moment.
&gt; +http/tests/model/model-document.html [ Skip ]

Again, I would just skip the whole directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814896</commentid>
    <comment_count>9</comment_count>
      <attachid>444188</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-14 12:37:39 -0800</bug_when>
    <thetext>Created attachment 444188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814897</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-14 12:38:54 -0800</bug_when>
    <thetext>Oops. Didn&apos;t read Sam&apos;s comments before uploading. Will send a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815151</commentid>
    <comment_count>11</comment_count>
      <attachid>444148</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-15 11:37:07 -0800</bug_when>
    <thetext>Comment on attachment 444148
Patch

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

&gt;&gt; Source/WTF/wtf/PlatformHave.h:1096
&gt;&gt; +#endif
&gt; 
&gt; I&apos;d remove this and replace it with a Setting.

OK.

&gt;&gt; Source/WebCore/dom/Document.h:309
&gt;&gt; +using DocumentClassFlags = uint32_t;
&gt; 
&gt; Seems like uint16_t would be more appropriate for the size.

OK.

&gt;&gt; Source/WebCore/html/ModelDocument.cpp:98
&gt;&gt; +    auto styleContent = makeString(&quot;body { background-color: white; text-align: center; }\n&quot;,
&gt; 
&gt; maybe I am missing it, but I think this has any values being concatenated, so this shouldn&apos;t use makeString(). Instead, it can just use a &quot; .. &quot;_s.

OK.

&gt;&gt; LayoutTests/platform/mac-wk1/TestExpectations:50
&gt;&gt; +http/tests/model/model-document.html [ Skip ]
&gt; 
&gt; I would skip all of 50http/tests/model. The feature isn&apos;t supported or enabled there so no reason to test it.

OK.

&gt;&gt; LayoutTests/platform/mac/TestExpectations:1716
&gt;&gt; +[ Catalina Mojave BigSur ] http/tests/model/model-document.html [ Skip ]
&gt; 
&gt; Why are these being skipped?

I&apos;ll check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815716</commentid>
    <comment_count>12</comment_count>
      <attachid>444452</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-16 16:41:52 -0800</bug_when>
    <thetext>Created attachment 444452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815736</commentid>
    <comment_count>13</comment_count>
      <attachid>444452</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-16 17:18:07 -0800</bug_when>
    <thetext>Comment on attachment 444452
Patch

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

&gt; Source/WebCore/dom/Document.h:309
&gt; -using DocumentClassFlags = unsigned char;
&gt; +using DocumentClassFlags = uint16_t;

This should be changed to be an OptionSet at some point; would be a pretty small change, believe it or not. That does not require using &quot;enum class&quot; in case someone tries to convince you it does, but also this would be a great choice for an enum class since all the values have DocumentClass in their names. Also, the DocumentClass enum should use uint16_t as its underlying type. Also does not require &quot;enum class&quot;.

&gt; Source/WebCore/html/ModelDocument.cpp:98
&gt; +    auto styleContent = &quot;body { background-color: white; text-align: center; }\n@media (prefers-color-scheme: dark) { body { background-color: rgb(32, 32, 37); } }\nmodel { width: 80vw; height: 80vh; }\n&quot;_s;

This does not have to be one large line. Can use string pasting to format however you like:

    auto styleContent =
        &quot;body { background-color: white; text-align: center; }\n&quot;
        &quot;@media (prefers-color-scheme: dark) { body { background-color: rgb(32, 32, 37); } }\n&quot;
    ;

Maybe not exactly like that, but something like that.

&gt; Source/WebCore/html/ModelDocument.cpp:119
&gt; +    RefPtr&lt;Frame&gt; frame = document.frame();

Just RefPtr is fine, no need to write &lt;Frame&gt;.

&gt; Source/WebCore/html/ModelDocument.h:61
&gt; +#endif // ENABLE(VIDEO)

Oops, MODEL_ELEMENT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816009</commentid>
    <comment_count>14</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-17 10:46:31 -0800</bug_when>
    <thetext>Committed r285936 (244345@main): &lt;https://commits.webkit.org/244345@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444128</attachid>
            <date>2021-11-12 17:23:01 -0800</date>
            <delta_ts>2021-11-13 13:52:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233057-20211113122300.patch</filename>
            <type>text/plain</type>
            <size>30255</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDliNDEwNGJiNjE1YTEwMTI4OWM4Y2Y3
YzkyZGYwZjQ2YzczN2RiMDAuLjdmYTIzYzhkMTlmODU5MTRlNzdhZWM0MjhkOTAwMWZmZTAzZDAx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93
aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjov
Lzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IEhBVkUgbWFjcm86IE1PREVMX0RPQ1VNRU5ULCBpZGVudGlmeWluZyBpZiB3
ZSBzdXBwb3J0IGRpcmVjdGx5CisgICAgICAgIGxvYWRpbmcgY29udGVudCB0aGF0IGNhbiBiZSBo
YW5kbGVkIGJ5IDxtb2RlbD4uCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIw
MjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIE1hdGhNTCB3aGVuIGluIENhcHRpdmUgUG9ydGFsIE1vZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNGE3
YTFhZWFkMTlmZTZkMDM4ODcxZDc0ODk2Njc3NzA3MGM5Y2ZkLi43OTRmZTY0MmU4ZmM3Y2FkNjJi
NzhkNTE0MzU3MGYwMTUwZGNkMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEt
MTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2Rl
bERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxl
ZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IE1vZGVsRG9jdW1lbnQgY2xh
c3MgdGhhdCBpcyBjcmVhdGVkIHdoZW4gd2UgZW5jb3VudGVyIGEgTUlNRS10eXBlIHRoYXQKKyAg
ICAgICAgY2FuIGJlIGhhbmRsZWQgYnkgdGhlIDxtb2RlbD4gZWxlbWVudC4KKworICAgICAgICBU
ZXN0OiBodHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOiBDcmVh
dGUgYSBNb2RlbERvY3VtZW50IHdoZW4gd2UKKyAgICAgICAgc2VlIGEgTUlNRS10eXBlIHRoYXQg
PG1vZGVsPiBjYW4gc3VwcG9ydC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBBZGQgYSBu
ZXcgTW9kZWxEb2N1bWVudENsYXNzIHdoaWNoIG1lYW50IEkgYWxzbyBoYWQgdG8KKyAgICAgICAg
aW5jcmVhc2UgdGhlIHNpemVvZiBEb2N1bWVudENsYXNzRmxhZ3MuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNNb2RlbERvY3VtZW50IGNvbnN0KTogCisKKyAgICAgICAgKiBodG1sL01v
ZGVsRG9jdW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9jdW1lbnRQ
YXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVs
RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2RlbERvY3VtZW50OjpN
b2RlbERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcik6CisgICAgICAgICogaHRtbC9Nb2RlbERvY3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
aXNUeXBlKToKKworICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOiBBZGQg
aXNTdXBwb3J0ZWRNb2RlbE1JTUVUeXBlIGFuZCB0ZXN0IGZvciBpdAorICAgICAgICBpbiBjYW5T
aG93TUlNRVR5cGUuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpjYW5TaG93
TUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRNb2RlbE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5Lmg6
CisKIDIwMjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmFzaCB3aGVuIGFjY2Vzc2luZyByZWFzb24gcHJvcGVydHkgb2YgYSBuZXdseSBjcmVhdGVk
IEFib3J0U2lnbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3MTIzOTFiZTEzNTJmMDgyMWU0YTE0MmEyMTMwM2I5
MGY2ZTg2NTQuLmIxZGNiMDQ2Mzg2ZjlkYzRkODQ0NDc1ZWM4NDNkZTA4YWY2YTA3YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5n
IGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1
MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgZG9uJ3QgbmVlZCB0byB1c2UgV0tVU0RQcmV2aWV3VmlldyBpZiB3ZSBoYXZlIE1vZGVsRG9j
dW1lbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVudFByb3Zp
ZGVyUmVnaXN0cnkubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lz
dHJ5IGluaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKwogMjAyMS0xMS0xMiAgR2FycmV0dCBEYXZp
ZHNvbiAgPGRhdmlkc29uLmdhcnJldHRtQGdtYWlsLmNvbT4KIAogICAgICAgICBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsIHNob3VsZCBleHBvc2UgYSB3YXkgdG8gZW5jb2RlIENUQVAgY29tbWFu
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMTQyZmFlZDlmNmY1M2E3MzRlMTk1ZDJkODBiYjY1
NWRiMzM2MjQ2NS4uMDUzMjY0NjJhODBhZGZhZjM2YTY5NmQ2YWJmYzg5ZmJkY2ZjOWNmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwOTAsMyArMTA5MCw3IEBACiAgICAgfHwgKFBMQVRGT1JN
KFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSA4MDQwMCkKICNk
ZWZpbmUgSEFWRV9BVURJT1NFU1NJT05fUFJPQ0VTU0FTU0VSVElPTiAxCiAjZW5kaWYKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX01PREVMX0RPQ1VNRU5UIDEKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA1NGQ4ZDNiZDk4MGU4YjliNmI4MjFmOWNjYjRmYTUyMmUxYmYxZTAy
Li5mOTU2MmQ5YmY2MWMwYjVhN2Y1YTRlZGNmODRmOGRhM2NmMjhjYTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTI5Miw2ICsxMjkyLDcgQEAgaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCiBodG1sL01l
ZGlhRG9jdW1lbnQuY3BwCiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCiBodG1sL01lZGlh
RnJhZ21lbnRVUklQYXJzZXIuY3BwCitodG1sL01vZGVsRG9jdW1lbnQuY3BwCiBodG1sL01vbnRo
SW5wdXRUeXBlLmNwcAogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCiBodG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5OWM4NmQ5ZGJlN2I1ZjA5ODRlZWY1OTYwM2U1ZmJiNzhlMzJiZGY1Li40
NmUwNTEzM2U5YmE1NmRkNTU1OTZmZmM0ODlkZDRhN2E3ZTI5MWFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NDMsNiArOTQz
LDcgQEAKIAkJMzEzNTkxMEIxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNTFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCAqLzsgfTsKIAkJMzEzQkNFMUMy
MzVFM0JFNTAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxl
bWVudENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMTNERTg3MDIzQTk2OTczMDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZGMjNB
OTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAv
KiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTNFNzlFOTI3M0M4NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5oICovOyB9
OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0
QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBF
NCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3
MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAv
KiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTc4OTksNiAr
NzkwMCw4IEBACiAJCTMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50Q29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyogR3Jh
cGhpY3NDb250ZXh0R0wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0R0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNE
RTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0wuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzEzRTc5RTkyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVsRG9jdW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kZWxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTNFNzlFQzI3M0M4NkU4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNb2RlbERvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBF
NCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTQwMzc5OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0ODgwLDYg
KzI0ODgzLDggQEAKIAkJCQlFNDQ2MTM5QzBDRDYzMzEwMDBGQURBNzUgLyogTWVkaWFFcnJvci5p
ZGwgKi8sCiAJCQkJMDdBNkQxRTkxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJhZ21lbnRVUklQ
YXJzZXIuY3BwICovLAogCQkJCTA3QTZEMUVBMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdt
ZW50VVJJUGFyc2VyLmggKi8sCisJCQkJMzEzRTc5RUMyNzNDODZFODAwOTdGOTA1IC8qIE1vZGVs
RG9jdW1lbnQuY3BwICovLAorCQkJCTMxM0U3OUU5MjczQzg2QjgwMDk3RjkwNSAvKiBNb2RlbERv
Y3VtZW50LmggKi8sCiAJCQkJRjU1QjNEOTExMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRU
eXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q5MjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5
cGUuaCAqLywKIAkJCQlGNTVCM0Q5MzEyNTFGMTJEMDAzRUYyNjkgLyogTnVtYmVySW5wdXRUeXBl
LmNwcCAqLywKQEAgLTM1MTc2LDYgKzM1MTgxLDcgQEAKIAkJCQlDREYyQjAxOTE4MjA1NDA3MDBG
MkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcxNTYxMEMyMzRDMUNB
MTAwOEZDN0FCIC8qIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzhEMzk4MjVGMkZFOTcwMENGQ0JBQiAvKiBNb2RlbC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMzEzRTc5RUEyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVsRG9jdW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMkI0MTE3MjczMkY0MUUwMEEyRDE5MSAvKiBNb2RlbFBsYXll
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQjQxMTkyNzMyRjQyOTAwQTJEMTkxIC8qIE1vZGVs
UGxheWVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJCNDExODI3MzJGNDIzMDBBMkQx
OTEgLyogTW9kZWxQbGF5ZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCA5MzE5ZTBjYmZiOTIxNTA2NWIxMzI1MDQ4
NjBmNWY4NWRhMWI0MjNjLi42MTZkYjNhYjY1YzdkNDdjODI1OWFlZWU0N2Q4ODg1ZWI1YjI5Mjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTU3LDYgKzU3
LDEwIEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkgJiYgSEFWRShNT0RF
TF9ET0NVTUVOVCkKKyNpbmNsdWRlICJNb2RlbERvY3VtZW50LmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtMTYyLDYgKzE2
NiwxMSBAQCBSZWY8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBGcmFtZQogICAgICAgICByZXR1cm4gTWVkaWFEb2N1
bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisgICAgaWYgKE1JTUVUeXBl
UmVnaXN0cnk6OmlzVVNETUlNRVR5cGUoY29udGVudFR5cGUpKQorICAgICAgICByZXR1cm4gTW9k
ZWxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsKTsKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEZUUERJUikKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29u
dGVudFR5cGUsICJhcHBsaWNhdGlvbi94LWZ0cC1kaXJlY3RvcnkiKSkKICAgICAgICAgcmV0dXJu
IEZUUERpcmVjdG9yeURvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHNldHRpbmdzLCB1cmwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAppbmRleCBjZDAzZGQxNzRlNzIzOTk4MjJjZWFhNGNiODQ3MmM0YzE4MmNk
MmE0Li5iNmJiMjc0ODQ1YzVlMDM2ZDNkZDE1OTk2OWExODNkMDIwZTFkZGQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaApAQCAtMzAyLDggKzMwMiwxMSBAQCBlbnVtIERvY3VtZW50Q2xhc3MgewogICAg
IFNWR0RvY3VtZW50Q2xhc3MgPSAxIDw8IDUsCiAgICAgVGV4dERvY3VtZW50Q2xhc3MgPSAxIDw8
IDYsCiAgICAgWE1MRG9jdW1lbnRDbGFzcyA9IDEgPDwgNywKKyNpZiBFTkFCTEUoTU9ERUxfRUxF
TUVOVCkgJiYgSEFWRShNT0RFTF9ET0NVTUVOVCkKKyAgICBNb2RlbERvY3VtZW50Q2xhc3MgPSAx
IDw8IDgsCisjZW5kaWYKIH07Ci11c2luZyBEb2N1bWVudENsYXNzRmxhZ3MgPSB1bnNpZ25lZCBj
aGFyOwordXNpbmcgRG9jdW1lbnRDbGFzc0ZsYWdzID0gdWludDMyX3Q7CiAKIGVudW0gY2xhc3Mg
RG9jdW1lbnRDb21wYXRpYmlsaXR5TW9kZSA6IHVuc2lnbmVkIGNoYXIgewogICAgIE5vUXVpcmtz
TW9kZSA9IDEsCkBAIC01NDAsNiArNTQzLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNQbHVnaW5E
b2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRDbGFzc2VzICYgUGx1Z2luRG9jdW1l
bnRDbGFzczsgfQogICAgIGJvb2wgaXNNZWRpYURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9k
b2N1bWVudENsYXNzZXMgJiBNZWRpYURvY3VtZW50Q2xhc3M7IH0KICAgICBib29sIGlzVGV4dERv
Y3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudENsYXNzZXMgJiBUZXh0RG9jdW1lbnRD
bGFzczsgfQorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKSAmJiBIQVZFKE1PREVMX0RPQ1VNRU5U
KQorICAgIGJvb2wgaXNNb2RlbERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudENs
YXNzZXMgJiBNb2RlbERvY3VtZW50Q2xhc3M7IH0KKyNlbmRpZgogICAgIGJvb2wgaGFzU1ZHUm9v
dE5vZGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNGcmFtZVNldCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9kZWxEb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk5N2FlZWUxMzJmNzgzMTA0ZTYzOWQyMTQzNTA1NGI5NmVlMTlkYTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwCkBAIC0wLDAgKzEs
MTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZGVsRG9jdW1lbnQuaCIKKworI2lmIEVOQUJM
RShNT0RFTF9FTEVNRU5UKSAmJiBIQVZFKE1PREVMX0RPQ1VNRU5UKQorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1l
dGFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1vZGVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIlJhd0RhdGFEb2N1bWVudFBhcnNlci5oIgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChNb2RlbERvY3VtZW50KTsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwor
Y2xhc3MgTW9kZWxEb2N1bWVudFBhcnNlciBmaW5hbCA6IHB1YmxpYyBSYXdEYXRhRG9jdW1lbnRQ
YXJzZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9kZWxEb2N1bWVudFBhcnNlcj4gY3Jl
YXRlKE1vZGVsRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTW9kZWxEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBNb2RlbERvY3VtZW50UGFyc2VyKE1vZGVsRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
ICAgICA6IFJhd0RhdGFEb2N1bWVudFBhcnNlciB7IGRvY3VtZW50IH0KKyAgICAgICAgLCBtX291
dGdvaW5nUmVmZXJyZXIgeyBkb2N1bWVudC5vdXRnb2luZ1JlZmVycmVyKCkgfQorICAgIHsKKyAg
ICB9CisKKyAgICB2b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CisKKyAgICB2b2lkIGFw
cGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgdWludDhfdCosIHNpemVfdCkgZmluYWw7
CisgICAgdm9pZCBmaW5pc2goKSBmaW5hbDsKKworICAgIEhUTUxNb2RlbEVsZW1lbnQqIG1fbW9k
ZWxFbGVtZW50IHsgbnVsbHB0ciB9OworICAgIFN0cmluZyBtX291dGdvaW5nUmVmZXJyZXI7Cit9
OworCit2b2lkIE1vZGVsRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkK
K3sKKyAgICBhdXRvJiBkb2N1bWVudCA9ICp0aGlzLT5kb2N1bWVudCgpOworCisgICAgYXV0byBy
b290RWxlbWVudCA9IEhUTUxIdG1sRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBkb2N1
bWVudC5hcHBlbmRDaGlsZChyb290RWxlbWVudCk7CisgICAgZG9jdW1lbnQuc2V0Q1NTVGFyZ2V0
KHJvb3RFbGVtZW50LnB0cigpKTsKKyAgICByb290RWxlbWVudC0+aW5zZXJ0ZWRCeVBhcnNlcigp
OworCisgICAgaWYgKGRvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50LmZyYW1lKCkt
PmluamVjdFVzZXJTY3JpcHRzKFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOjpEb2N1bWVudFN0YXJ0
KTsKKworICAgIGF1dG8gaGVhZEVsZW1lbnQgPSBIVE1MSGVhZEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGhlYWRFbGVtZW50KTsKKworICAg
IGF1dG8gbWV0YUVsZW1lbnQgPSBIVE1MTWV0YUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgbWV0YUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24obmFtZUF0
dHIsIEF0b21TdHJpbmcoInZpZXdwb3J0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihjb250ZW50QXR0ciwgQXRvbVN0cmluZygid2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2Nh
bGU9MSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgaGVhZEVsZW1l
bnQtPmFwcGVuZENoaWxkKG1ldGFFbGVtZW50KTsKKworICAgIGF1dG8gc3R5bGVFbGVtZW50ID0g
SFRNTFN0eWxlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIHN0eWxlQ29udGVu
dCA9IG1ha2VTdHJpbmcoImJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgdGV4dC1hbGln
bjogY2VudGVyOyB9XG4iLAorICAgICAgICAiQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTog
ZGFyaykgeyBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMyLCAzMiwgMzcpOyB9IH1cbiIs
CisgICAgICAgICJtb2RlbCB7IHdpZHRoOiA4MHZ3OyBoZWlnaHQ6IDgwdmg7IH1cbiIpOworICAg
IHN0eWxlRWxlbWVudC0+c2V0VGV4dENvbnRlbnQoc3R5bGVDb250ZW50KTsKKyAgICBoZWFkRWxl
bWVudC0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKKworICAgIGF1dG8gYm9keSA9IEhUTUxC
b2R5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hp
bGQoYm9keSk7CisKKyAgICBhdXRvIG1vZGVsRWxlbWVudCA9IEhUTUxNb2RlbEVsZW1lbnQ6OmNy
ZWF0ZShIVE1MTmFtZXM6Om1vZGVsVGFnLCBkb2N1bWVudCk7CisgICAgbV9tb2RlbEVsZW1lbnQg
PSBtb2RlbEVsZW1lbnQucHRyKCk7CisgICAgbW9kZWxFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKGNvbnRyb2xzQXR0ciwgZW1wdHlBdG9tKCkpOworCisgICAgYXV0
byBzb3VyY2VFbGVtZW50ID0gSFRNTFNvdXJjZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OnNv
dXJjZVRhZywgZG9jdW1lbnQpOworICAgIHNvdXJjZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oc3JjQXR0ciwgZG9jdW1lbnQudXJsKCkuc3RyaW5nKCkpOworICAg
IGlmIChSZWZQdHIgbG9hZGVyID0gZG9jdW1lbnQubG9hZGVyKCkpCisgICAgICAgIHNvdXJjZUVs
ZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odHlwZUF0dHIsIGxvYWRl
ci0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKKworICAgIG1vZGVsRWxlbWVudC0+YXBwZW5kQ2hpbGQo
c291cmNlRWxlbWVudCk7CisKKyAgICBib2R5LT5hcHBlbmRDaGlsZChtb2RlbEVsZW1lbnQpOwor
ICAgIGRvY3VtZW50LnNldEhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCk7CisKKyAg
ICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1l
KQorICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+bG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+c2V0TWFpblJlc291cmNlRGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5n
UG9saWN5OjpEb05vdEJ1ZmZlckRhdGEpOworICAgIGZyYW1lLT5sb2FkZXIoKS5zZXRPdXRnb2lu
Z1JlZmVycmVyKGRvY3VtZW50LmNvbXBsZXRlVVJMKG1fb3V0Z29pbmdSZWZlcnJlcikpOworfQor
Cit2b2lkIE1vZGVsRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwg
Y29uc3QgdWludDhfdCosIHNpemVfdCkKK3sKKyAgICBpZiAoIW1fbW9kZWxFbGVtZW50KQorICAg
ICAgICBjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpOworfQorCit2b2lkIE1vZGVsRG9jdW1lbnRQ
YXJzZXI6OmZpbmlzaCgpCit7CisgICAgZG9jdW1lbnQoKS0+ZmluaXNoZWRQYXJzaW5nKCk7Cit9
CisKK01vZGVsRG9jdW1lbnQ6Ok1vZGVsRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0
aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsKQorICAgIDogSFRNTERvY3VtZW50KGZyYW1l
LCBzZXR0aW5ncywgdXJsLCBNb2RlbERvY3VtZW50Q2xhc3MpCit7CisgICAgaWYgKGZyYW1lKQor
ICAgICAgICBtX291dGdvaW5nUmVmZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZl
cnJlcigpOworfQorCitSZWY8RG9jdW1lbnRQYXJzZXI+IE1vZGVsRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcigpCit7CisgICAgcmV0dXJuIE1vZGVsRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcyk7
Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVs
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9kZWxEb2N1bWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI5NmY4OTczOTlmMDZmNjdhZTU4MTgxM2Q5ZTE2ZDEwZmFjYmY4YWEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuaApAQCAtMCwwICsxLDYx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkgJiYgSEFWRShNT0RFTF9ET0NVTUVO
VCkKKworI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIE1vZGVsRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERvY3VtZW50IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKE1vZGVsRG9jdW1lbnQpOworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8TW9kZWxEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3Mm
IHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1vZGVsRG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwpKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5Nb2RlbERvY3VtZW50KCkgPSBkZWZhdWx0OworCisgICAgU3RyaW5nIG91dGdv
aW5nUmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBtX291dGdvaW5nUmVmZXJyZXI7IH0KKworcHJp
dmF0ZToKKyAgICBNb2RlbERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBV
UkwmKTsKKworICAgIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7
CisKKyAgICBTdHJpbmcgbV9vdXRnb2luZ1JlZmVycmVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6Ok1vZGVsRG9j
dW1lbnQpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBk
b2N1bWVudCkgeyByZXR1cm4gZG9jdW1lbnQuaXNNb2RlbERvY3VtZW50KCk7IH0KKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Tm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8V2Vi
Q29yZTo6RG9jdW1lbnQ+KG5vZGUpICYmIGlzVHlwZShkb3duY2FzdDxXZWJDb3JlOjpEb2N1bWVu
dD4obm9kZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBF
TkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCmluZGV4IDZmN2FmMTI3Y2ZjZTA0ZTNhMDVjZTBmYzY5NmE3NmI4ZDBhZDFkNzMuLmMzZWI2
NTNkNmVjMDVkZDFmMjFjNjdkN2E0YjcxODhlMjBhZmRkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCkBAIC02NTgsNiArNjU4LDExIEBAIGJvb2wg
TUlNRVR5cGVSZWdpc3RyeTo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVO
VCkgJiYgSEFWRShNT0RFTF9ET0NVTUVOVCkKKyAgICBpZiAoaXNTdXBwb3J0ZWRNb2RlbE1JTUVU
eXBlKG1pbWVUeXBlKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKwogICAgIGlmIChz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLCAidGV4dC8iKSkKICAg
ICAgICAgcmV0dXJuICFpc1Vuc3VwcG9ydGVkVGV4dE1JTUVUeXBlKG1pbWVUeXBlKTsKIApAQCAt
Njg4LDYgKzY5MywxMyBAQCBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzVVNETUlNRVR5cGUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICByZXR1cm4gdXNkTUlNRVR5cGVTZXQuY29udGFpbnMo
bWltZVR5cGUpOwogfQogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxf
RE9DVU1FTlQpCitib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkTW9kZWxNSU1FVHlw
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQoreworICAgIHJldHVybiBNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1VTRE1JTUVUeXBlKG1pbWVUeXBlKTsKK30KKyNlbmRpZgorCiAvLyBGSVhNRTogTm90IGdy
ZWF0IHRoYXQgQ1VSTCBuZWVkcyB0aGlzIGNvbmNlcHQ7IG90aGVyIHBsYXRmb3JtcyBkbyBub3Qu
CiBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZWRJbWFnZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJl
Z2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKaW5k
ZXggMGFkMjY5N2I5NmQyY2VhMmI3OGJiNjIxNTQyM2NjMmE1NjA1YTdjNi4uMzk2MzU2ZWY0MGVh
N2VmMTU2ZDNiYjhhYzlkOWEzODgwYTZhZmU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuaApAQCAtMTA4LDYgKzEwOCwxMCBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1VTRE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpOwogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1F
TlQpCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRNb2RlbE1JTUVU
eXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworI2VuZGlmCisKICAgICAvLyBDaGVjayB0byBz
ZWUgaWYgYSBNSU1FIHR5cGUgaXMgc3VpdGFibGUgZm9yIGJlaW5nIHNob3duIGluc2lkZSBhIHBh
Z2UuCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBvZiBpc1N1cHBvcnRlZEltYWdlTUlNRVR5
cGUoKSwgaXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKCksCiAgICAgLy8gaXNTdXBwb3J0ZWRN
ZWRpYU1JTUVUeXBlKCksIGlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKCksIGlzU3VwcG9y
dGVkSlNPTk1JTUVUeXBlKCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lm1tCmluZGV4
IDY5NDIwZDc5Nzc0ZDE1ZDEwMDExZmVkM2NkYWU4ZjZhNzQwYjYyMDEuLjQ0ZjIyMTNjMzhiYzAy
NjBjOTFmOTJiYTEwMTc5NzVmMzU3ZGI3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lz
dHJ5Lm1tCkBAIC01NCw3ICs1NCw3IEBACiAgICAgICAgIFtzZWxmIHJlZ2lzdGVyUHJvdmlkZXI6
W1dLUERGVmlldyBjbGFzc10gZm9yTUlNRVR5cGU6QCh0eXBlKV07CiAjZW5kaWYKIAotI2lmIFVT
RShTWVNURU1fUFJFVklFVykgJiYgIUhBVkUoVUlLSVRfV0VCS0lUX0lOVEVSTkFMUykKKyNpZiBV
U0UoU1lTVEVNX1BSRVZJRVcpICYmICFIQVZFKFVJS0lUX1dFQktJVF9JTlRFUk5BTFMpICYmICFI
QVZFKE1PREVMX0RPQ1VNRU5UKQogICAgIGlmIChjb25maWd1cmF0aW9uLl9zeXN0ZW1QcmV2aWV3
RW5hYmxlZCkgewogICAgICAgICBmb3IgKGF1dG8mIHR5cGUgOiBXZWJDb3JlOjpNSU1FVHlwZVJl
Z2lzdHJ5Ojp1c2RNSU1FVHlwZXMoKSkKICAgICAgICAgICAgIFtzZWxmIHJlZ2lzdGVyUHJvdmlk
ZXI6W1dLVVNEUHJldmlld1ZpZXcgY2xhc3NdIGZvck1JTUVUeXBlOkAodHlwZSldOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDQ5YmNjMDY3Y2ZkNWNiYjFmOTQ1NzZlN2RmYjdhMmNjM2ZjYjdkZDQuLjM1NTQwYjM1MzZiMWRi
NTIyNjRhMzdjMmJhYjk3NzA1MzU2YTg4MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0x
MS0xMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIE1vZGVs
RG9jdW1lbnQgZm9yIGRpcmVjdGx5IHNob3dpbmcgY29udGVudCB0aGF0IGNhbiBiZSBoYW5kbGVk
IGJ5IDxtb2RlbD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzA1NworICAgICAgICByZGFyOi8vODUyNjU4ODAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdGVzdCBmb3IgTW9kZWxEb2N1bWVudC4K
KworICAgICAgICAqIGh0dHAvY29uZi9taW1lLnR5cGVzOiBDb25maWd1cmUgdGhlIHRlc3Rpbmcg
QXBhY2hlIHNlcnZlciB0byBzZXJ2ZSBVU0RaIGZpbGVzCisgICAgICAgIHdpdGggdGhlIGNvcnJl
Y3QgTUlNRSB0eXBlLgorICAgICAgICAqIGh0dHAvdGVzdHMvbW9kZWwvVW5pdEJveC51c2R6OiBT
YW1wbGUgZmlsZS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1
bWVudC5odG1sOiBOZXcgdGVzdCBmb3IgYSBNb2RlbERvY3VtZW50LgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci9maWxlLXVybC1taW1ldHlwZXMtMy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL2ZpbGUtdXJsLW1pbWV0eXBlcy0zLmh0
bWw6IEFkZCAudXNkeiB0byB0aGUgZmlsZSBleHRlbnNpb24gdGVzdHMuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1wbGUt
dXNkei51c2R6OiBBZGRlZC4KKwogMjAyMS0xMS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIENyYXNoIHdoZW4gYWNjZXNzaW5nIHJlYXNvbiBwcm9wZXJ0eSBv
ZiBhIG5ld2x5IGNyZWF0ZWQgQWJvcnRTaWduYWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvY29uZi9taW1lLnR5cGVzIGIvTGF5b3V0VGVzdHMvaHR0cC9jb25mL21pbWUudHlwZXMKaW5k
ZXggMGEyZjc1N2Q1Yzg3ZDdmYTY1NDU2ZDUwYzMyM2U4MWMzY2ExMWM4OS4uNDdiNmJlMDAzZjdm
ZDUwYmU4OGYzNTEwMGRlYTFiMDRkYzZjNjE4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC9jb25mL21pbWUudHlwZXMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC9jb25mL21pbWUudHlwZXMK
QEAgLTUxNSw2ICs1MTUsNyBAQCBtb2RlbC92bmQuZ3R3CiBtb2RlbC92bmQubXRzCiBtb2RlbC92
bmQucGFyYXNvbGlkLnRyYW5zbWl0LmJpbmFyeQogbW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21p
dC50ZXh0Cittb2RlbC92bmQudXNkeit6aXAgdXNkegogbW9kZWwvdm5kLnZ0dQogbW9kZWwvdnJt
bAkJCXdybCB2cm1sCiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbW9kZWwvVW5pdEJveC51c2R6IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tb2RlbC9Vbml0Qm94LnVzZHoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZiNzExODI5ZTAxNjJiNWM1YjJjYzQ3
YmQ4MDk2MjJiYzc4NmUyNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzIzMAp6Y21iX2ZVNXAh
NzYrVS10a0x+cXQqV08pc2NhdSUqezU0NkZIcUlLRnZMdV8/ZFFIMDhIMCFLQVFCWWZ5U15HTFcK
enN5Klkqak1HaVVnRFZpY2xuTj5rRkZkcldgaHRwNzFwUnF9QW8+N20oaVVoeiY7JFlmUUI7QkF1
cW9OSE50U2MyCnpYQj15e3NYKmUkWFVANmplQ0tFRys/aml3b0EmdjtmTjEmWUN1ZmglZyUyITYw
RWx+YDl+QHEtJkQ1UCotTVBETgp6bXh8dlE/aUo5RU9ZWnBXVTIxK1oxSHFPdGdeflhjVnJ+KllO
PjMrSyRoRWdAVTVlK0VJKCRCWD1+Qm8+NmhyUHEKel9PSnR9ZHBecDRKOH4tcVU9Wn5vPFk4cDUp
X1QtT2tUKVEyTHsxPGxrdHhxNldHfmxkKVZDbWViKyZjcmNjMzBYCnpDZmIyYTxESk5OQkpWPT5W
eiM2MTxAMGRlWGR8Sz97fTxqV3E1eDheZ3l1I0hTRkBebVI4P34tPnlpSl96aiY/Wgp6WVNAM3tg
b0ZfaCpgZ2YkcjAzRmdgTVB7PEY/UHZjb09vJmZ4MU8zRWY4KkBvZ0ZkZjhuVlJxaC1WQytvJXEh
RTkKemppMDtuQWokXipORD8pfjZAPWZfJHdLNFI3LTR0Z2diKHFuRj5DVDV6N3ltMTtubnFPd1Iy
Tld0U3R6MnFCU3xHCnp3XmJOeyEmK19HU2NfU2M9akpAZEZ8SXcyd0NZKyFZdEpSakUkKU5yZXVn
ZzRGNkxJYyRiJmlCY3xKdUt2OUE0Nwp6YiokMHU9UUgkbjR+ViZ5LXROY0NhfWJmTWJQPzs/Klhs
UnRETT1YUSkkK2BFJWY0Qz9QSTIqX2w1akwkRWVZUjEKenBDP2I/NytmNkxwYCh0Nkx1KDY8SUtu
Rn5wNnJEOCMqS3NGcj5+QmlrSDBXcGVwJnQ1RTlWWCY0d05VJTRHSUJnCnotc3ZhVmtiYiZlQHhC
U1BRc34+e3lAOUI8emYqbzFLJG9IajNHbFdYXnBGP2EreT9kOSNEWj9hbSFXM3EpeSV3Sgp6RE91
YkEpekY+JCVtcGEldlIxRCtJcktyNUpLVkIhK31aJW1Mcnw+U2ojKWpkbyN4aTA9NGVvfnhhT0Re
O0l7QzEKeihLSnFSJVNxTk9lb0UoJEJ+eTNiR1lXUSU3eGw4dkVwU2ZQX3p8dGo7ZHQ0IXMtVzM2
Y2N6VDgyfVQ/aSpGVH5nCnpCYEJLSm5yVSN1ZmRAM0tzJXNTKzRzby1KVTc5c2F0I2NjeT4hMkFM
bj90eTZvUD5ONDlneEFhbUllekMhRH08TQp6Rn5geWp5TWhWJnBmRj5WeFlZdl9XMlU4LTthUDZh
TChTOTsjfTJiSXIhPm5Sdm1HJDdvdio/WUR7RG81NDZFPmsKekROSjYoQEtuYUU/fUlELWM3M2ot
cFZEcEpIMWZySGpgdlY5PnZJKkoqR3Mkdl9mX2lyYj9fZiFlVk9mUzhAR2xiCno1UWRhcHdgQHF8
PWR+WmYqRyNjQCtHRHJsVU9FV1I+VWhePGRJQHg2QmZNREIlakxTd0dpSnBjMFg2XyUjfGhVZQp6
Nn1gOT51MCQtZWVzYlI2d2hlUXBTcG49PSpYSHohP3d0TX1KY0lHaGdBYXBhSmAkOGg/TmFWRil8
ZFlkQiUkfmYKelNQWjFnUF9DR28xQ0N+JDxXNWQ9PUl2Y2ZOdFlqZEkwRytvdDdoVTE7ciYyRmBa
aXl7bkt1a3g+O293VSV3VEt9Cnp1dH16dlIldnVVSlpJbnxmayozX1EmdzFDYGJqdX1NUTZHOEx4
P0J1V3loMUZzcE83RnI0I2hEY2VlTDcrN1pJWQp6dzt8SmRxeUBiWG5UVEUjTDk/Xz1zdGhpNzRh
QyQhRWJDe0kjRiE3U1NFNVR4KFdPdWBCdHRWOFVFMGhwej1hREoKekshIWhyQj4wXmU/RENkPVFv
Xj8mNjtYfXtWRkxHM2UrYlMqbC00Jll0U2tnIzVLUk8/ISVCQjUtNjdaO1E1dHduCnpLdmR7STJ0
aiUkeWJ5dnxUI1IyODw2cSU7b2Z3fUZmcjI/MUtHMj04SDMlN3FDPDlVR1BsbGo+YHc7WitNKlYp
Jgp6MyZee1p6PFAxIy07RnQjdlMkY2xyNUtGKjhkemg/R2JzZWBNYklkd0tBKGoyNVR2OFBnNzZD
bkRkKjBmI1dAS24KekFFU0xVVHR2akBIJkxVWjM2PnNlPzJBRyY8cU1QUktuUzg9PSo4UU5EN2gl
K1hwQlc2d3hGfjBLO3cocCRiTzdlCnpZQWhYdDE4NjcyQWRFKyRGKXZPV2t3I1VfST4yTURnZUlw
KyM2PWcrIz9eU0NmVHd8aW4jRHVHZ2c2PXU7SW1ubAp6S2JCPVk1ZDJkUEgpVDArTiQmbzstMjBJ
blRiNUF6RSlJViVeNF5IX3g1VHBpbXJafShhKDt7Uz96LStqdD9UKlkKempeOEpgLSUwIzYoZXc2
UXp1bUplem0tQFhkfkB7Tj1VJV8oe1NDaVB4YUI9YnQzWGdRTShySCsyall8UUxMQi1vCno0U3kp
aFFzQVRMV20pbnNNbFQxI2JXe0A1OTklKEN2MT5KZVEyKWd7e0opViMtaiFJX1JxNUteKnNJZSYy
fjU1Ngp6ej5sU2wrIVN7LTh2cUplVlltSjMrNn41VHU8KzZmVUt3N3pjSVglPU5URnswQEsjUjZg
SUE7OFh+bm5GblVMMFgKelQ9Qj0lcXd4V2RnTW9uMDJSPWQ0NGIqKmZFKT4paEFLbX4mQSZNITNF
NmMlOD09ZWxibjM+S1YkK3ZYNmUlQyE1CnpJX3xlUlV6blhiYV9BLT88UX0hPzk3Xj0xc3FFcCZu
e0w/WmBrJGNRK3h+MzlnRkhfIUNESiFyMCYpfERgI20zLQp6Y0RNY24hMXJCJEs5fGpPYGhWJkF5
YF98IVg0dlZpfDJlcDZUPThIMGtDK2FLc2JUbXw9UD5HQ2FwP1VJXjdJeH0KCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwvbW9k
ZWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tb2RlbC9t
b2RlbC1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVlMGMzOTc2YWJjYmI1ZjY4
MTE5MzA2YjVmMWM4YmJhNWFjZTdiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorQmFzaWMgTW9kZWxEb2N1bWVudCB0ZXN0LgorCitQQVNTOiA8bW9kZWw+IGFuZCA8c291cmNl
PiBzZWVuIGluIGlmcmFtZS4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21vZGVs
L21vZGVsLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRjMzlmOWMxMDU1M2NhNmJiMmRiNGEx
NmRhMmFiMGY5MjFmZjdhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1bigpCisgICAgeworICAgICAgICBjb25zdCBmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBmcmFtZS5hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgY29uc3Qgb3V0
cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOworICAgICAgICAgICAgY29u
c3QgbW9kZWwgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxlY3RvcigibW9kZWwiKTsK
KyAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJtb2RlbCBzb3VyY2UiKTsKKyAgICAgICAgICAgIGlmICghbW9kZWwpCisgICAgICAg
ICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gIkZBSUw6IDxtb2RlbD4gbm90IHNlZW4gaW4g
aWZyYW1lLiI7CisgICAgICAgICAgICBlbHNlIGlmICghc291cmNlKQorICAgICAgICAgICAgICAg
IG91dHB1dC50ZXh0Q29udGVudCA9ICJGQUlMOiA8bW9kZWw+IGZvdW5kLCBidXQgbm8gPHNvdXJj
ZT4gY2hpbGQuIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvdXRwdXQudGV4
dENvbnRlbnQgPSAiUEFTUzogPG1vZGVsPiBhbmQgPHNvdXJjZT4gc2VlbiBpbiBpZnJhbWUuIjsK
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgZnJhbWUuc3JjID0g
IlVuaXRCb3gudXNkeiI7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUp
OworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1biwgZmFsc2Up
OworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorQmFzaWMgTW9kZWxEb2N1bWVudCB0
ZXN0LgorPHA+Cis8cCBpZD0ib3V0cHV0Ij48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvZmlsZS11cmwtbWltZXR5
cGVzLTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVy
L2ZpbGUtdXJsLW1pbWV0eXBlcy0zLWV4cGVjdGVkLnR4dAppbmRleCBmYWQ0ZTc4MjVmYTc3NGUw
NzgxNmJlODk4N2EyMjYxZGE2MmEyNWEwLi40ZTIwZDVlMGQ2YjhkYzc0NmIwZWM4Y2VlMjViMDlh
OWFkMDdhODg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvZmlsZS11cmwtbWltZXR5cGVzLTMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2xvYWRlci9maWxlLXVybC1taW1ldHlwZXMtMy1leHBlY3RlZC50eHQK
QEAgLTUzLDYgKzUzLDcgQEAgZXhhbXBsZS10eHQudHh0IGhhcyBNSU1FIHR5cGUgdGV4dC9wbGFp
bgogZXhhbXBsZS11bC51bCBoYXMgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQog
ZXhhbXBsZS11bGF3LnVsYXcgaGFzIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
IGV4YW1wbGUtdWx3LnVsdyBoYXMgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQor
ZXhhbXBsZS11c2R6LnVzZHogaGFzIE1JTUUgdHlwZSBtb2RlbC92bmQudXNkeit6aXAKIGV4YW1w
bGUtdXN0YXIudXN0YXIgaGFzIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi94LXVzdGFyCiBleGFtcGxl
LXZjYXJkLnZjYXJkIGhhcyBNSU1FIHR5cGUgdGV4dC9kaXJlY3RvcnkKIGV4YW1wbGUtdmNkLnZj
ZCBoYXMgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL3gtY2RsaW5rCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvZmlsZS11cmwtbWltZXR5cGVzLTMuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9maWxlLXVybC1taW1ldHlwZXMt
My5odG1sCmluZGV4IDdjMzM3NjQ2YjZmOTY3MTM2YjIxYmQ3NTgwMzIyMGQyNmZkZTIzNjAuLjg4
MjQwZGQyNDBhNTc2ZDU2Nzc3Yjc1MGFjYzdhNDEzYzFhMzRiMmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9maWxlLXVybC1taW1ldHlwZXMtMy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9maWxlLXVybC1taW1l
dHlwZXMtMy5odG1sCkBAIC02NSw2ICs2NSw3IEBAIHZhciB0ZXN0VVJMID0gbmV3IEFycmF5KCJy
ZXNvdXJjZXMvbWltZVR5cGVFeGFtcGxlcy9leGFtcGxlLXMucyIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVzb3VyY2VzL21pbWVUeXBlRXhhbXBsZXMvZXhhbXBsZS11bC51bCIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1wbGUt
dWxhdy51bGF3IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2VzL21pbWVUeXBl
RXhhbXBsZXMvZXhhbXBsZS11bHcudWx3IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAicmVz
b3VyY2VzL21pbWVUeXBlRXhhbXBsZXMvZXhhbXBsZS11c2R6LnVzZHoiLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICJyZXNvdXJjZXMvbWltZVR5cGVFeGFtcGxlcy9leGFtcGxlLXVzdGFyLnVz
dGFyIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2VzL21pbWVUeXBlRXhhbXBs
ZXMvZXhhbXBsZS12Y2FyZC52Y2FyZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgInJlc291
cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1wbGUtdmNkLnZjZCIsIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9taW1lVHlwZUV4YW1w
bGVzL2V4YW1wbGUtdXNkei51c2R6IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9h
ZGVyL3Jlc291cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1wbGUtdXNkei51c2R6Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444148</attachid>
            <date>2021-11-13 13:52:06 -0800</date>
            <delta_ts>2021-11-14 12:37:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233057-20211114085205.patch</filename>
            <type>text/plain</type>
            <size>32929</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDliNDEwNGJiNjE1YTEwMTI4OWM4Y2Y3
YzkyZGYwZjQ2YzczN2RiMDAuLjdmYTIzYzhkMTlmODU5MTRlNzdhZWM0MjhkOTAwMWZmZTAzZDAx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93
aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjov
Lzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IEhBVkUgbWFjcm86IE1PREVMX0RPQ1VNRU5ULCBpZGVudGlmeWluZyBpZiB3
ZSBzdXBwb3J0IGRpcmVjdGx5CisgICAgICAgIGxvYWRpbmcgY29udGVudCB0aGF0IGNhbiBiZSBo
YW5kbGVkIGJ5IDxtb2RlbD4uCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIw
MjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIE1hdGhNTCB3aGVuIGluIENhcHRpdmUgUG9ydGFsIE1vZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNGE3
YTFhZWFkMTlmZTZkMDM4ODcxZDc0ODk2Njc3NzA3MGM5Y2ZkLi43OTRmZTY0MmU4ZmM3Y2FkNjJi
NzhkNTE0MzU3MGYwMTUwZGNkMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEt
MTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2Rl
bERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxl
ZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IE1vZGVsRG9jdW1lbnQgY2xh
c3MgdGhhdCBpcyBjcmVhdGVkIHdoZW4gd2UgZW5jb3VudGVyIGEgTUlNRS10eXBlIHRoYXQKKyAg
ICAgICAgY2FuIGJlIGhhbmRsZWQgYnkgdGhlIDxtb2RlbD4gZWxlbWVudC4KKworICAgICAgICBU
ZXN0OiBodHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOiBDcmVh
dGUgYSBNb2RlbERvY3VtZW50IHdoZW4gd2UKKyAgICAgICAgc2VlIGEgTUlNRS10eXBlIHRoYXQg
PG1vZGVsPiBjYW4gc3VwcG9ydC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBBZGQgYSBu
ZXcgTW9kZWxEb2N1bWVudENsYXNzIHdoaWNoIG1lYW50IEkgYWxzbyBoYWQgdG8KKyAgICAgICAg
aW5jcmVhc2UgdGhlIHNpemVvZiBEb2N1bWVudENsYXNzRmxhZ3MuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNNb2RlbERvY3VtZW50IGNvbnN0KTogCisKKyAgICAgICAgKiBodG1sL01v
ZGVsRG9jdW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9jdW1lbnRQ
YXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVs
RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2RlbERvY3VtZW50OjpN
b2RlbERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcik6CisgICAgICAgICogaHRtbC9Nb2RlbERvY3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
aXNUeXBlKToKKworICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOiBBZGQg
aXNTdXBwb3J0ZWRNb2RlbE1JTUVUeXBlIGFuZCB0ZXN0IGZvciBpdAorICAgICAgICBpbiBjYW5T
aG93TUlNRVR5cGUuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpjYW5TaG93
TUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRNb2RlbE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5Lmg6
CisKIDIwMjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmFzaCB3aGVuIGFjY2Vzc2luZyByZWFzb24gcHJvcGVydHkgb2YgYSBuZXdseSBjcmVhdGVk
IEFib3J0U2lnbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3MTIzOTFiZTEzNTJmMDgyMWU0YTE0MmEyMTMwM2I5
MGY2ZTg2NTQuLmIxZGNiMDQ2Mzg2ZjlkYzRkODQ0NDc1ZWM4NDNkZTA4YWY2YTA3YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5n
IGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1
MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgZG9uJ3QgbmVlZCB0byB1c2UgV0tVU0RQcmV2aWV3VmlldyBpZiB3ZSBoYXZlIE1vZGVsRG9j
dW1lbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVudFByb3Zp
ZGVyUmVnaXN0cnkubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lz
dHJ5IGluaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKwogMjAyMS0xMS0xMiAgR2FycmV0dCBEYXZp
ZHNvbiAgPGRhdmlkc29uLmdhcnJldHRtQGdtYWlsLmNvbT4KIAogICAgICAgICBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsIHNob3VsZCBleHBvc2UgYSB3YXkgdG8gZW5jb2RlIENUQVAgY29tbWFu
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMTQyZmFlZDlmNmY1M2E3MzRlMTk1ZDJkODBiYjY1
NWRiMzM2MjQ2NS4uMDUzMjY0NjJhODBhZGZhZjM2YTY5NmQ2YWJmYzg5ZmJkY2ZjOWNmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwOTAsMyArMTA5MCw3IEBACiAgICAgfHwgKFBMQVRGT1JN
KFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSA4MDQwMCkKICNk
ZWZpbmUgSEFWRV9BVURJT1NFU1NJT05fUFJPQ0VTU0FTU0VSVElPTiAxCiAjZW5kaWYKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX01PREVMX0RPQ1VNRU5UIDEKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA1NGQ4ZDNiZDk4MGU4YjliNmI4MjFmOWNjYjRmYTUyMmUxYmYxZTAy
Li5mOTU2MmQ5YmY2MWMwYjVhN2Y1YTRlZGNmODRmOGRhM2NmMjhjYTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTI5Miw2ICsxMjkyLDcgQEAgaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCiBodG1sL01l
ZGlhRG9jdW1lbnQuY3BwCiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCiBodG1sL01lZGlh
RnJhZ21lbnRVUklQYXJzZXIuY3BwCitodG1sL01vZGVsRG9jdW1lbnQuY3BwCiBodG1sL01vbnRo
SW5wdXRUeXBlLmNwcAogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCiBodG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5OWM4NmQ5ZGJlN2I1ZjA5ODRlZWY1OTYwM2U1ZmJiNzhlMzJiZGY1Li5j
MzdmYmZmOTJjOTA5NDVjZGI3ZjBhZjk5MGFjZGM1MzIzZTlhNjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NDMsNiArOTQz
LDcgQEAKIAkJMzEzNTkxMEIxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNTFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCAqLzsgfTsKIAkJMzEzQkNFMUMy
MzVFM0JFNTAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxl
bWVudENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMTNERTg3MDIzQTk2OTczMDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZGMjNB
OTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAv
KiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTNFNzlFOTI3M0M4NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5oICovOyB9
OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0
QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBF
NCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3
MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAv
KiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTc4OTksNiAr
NzkwMCw4IEBACiAJCTMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50Q29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyogR3Jh
cGhpY3NDb250ZXh0R0wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0R0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNE
RTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0wuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzEzRTc5RTkyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVsRG9jdW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kZWxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTNFNzlFQzI3M0M4NkU4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNb2RlbERvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBF
NCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTQwMzc5OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTM4LDEx
ICsxODk0MSwxMSBAQAogCQkxQTU2OUNDNDBEN0UyQjYwMDA3QzM5ODMgLyogYnJpZGdlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1OUI1OTc3MTExMDg2
NTU2MDA3MTU5RTggLyoganNjICovLAotCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBv
YmpjICovLAogCQkJCTU5OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJ
CQkxQTcxRDU3OTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJ
MUE3MUQ1N0EwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKKwkJCQk1OUI1
OTc3MTExMDg2NTU2MDA3MTU5RTggLyoganNjICovLAorCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdD
Mzk4MyAvKiBvYmpjICovLAogCQkJCTFBNTY5Q0VGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X2FycmF5LmNwcCAqLywKIAkJCQkxQTU2OUNGMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9h
cnJheS5oICovLAogCQkJCTFBNTY5Q0YxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhv
ZC5jcHAgKi8sCkBAIC0yNDg4MCw2ICsyNDg4Myw4IEBACiAJCQkJRTQ0NjEzOUMwQ0Q2MzMxMDAw
RkFEQTc1IC8qIE1lZGlhRXJyb3IuaWRsICovLAogCQkJCTA3QTZEMUU5MTQ5MTEzNzcwMDA1MUQw
QyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAqLywKIAkJCQkwN0E2RDFFQTE0OTExMzc3
MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5oICovLAorCQkJCTMxM0U3OUVDMjcz
Qzg2RTgwMDk3RjkwNSAvKiBNb2RlbERvY3VtZW50LmNwcCAqLywKKwkJCQkzMTNFNzlFOTI3M0M4
NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5oICovLAogCQkJCUY1NUIzRDkxMTI1MUYxMkQw
MDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTIxMjUxRjEyRDAw
M0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBlLmggKi8sCiAJCQkJRjU1QjNEOTMxMjUxRjEyRDAwM0VG
MjY5IC8qIE51bWJlcklucHV0VHlwZS5jcHAgKi8sCkBAIC0zNTE3Niw2ICszNTE4MSw3IEBACiAJ
CQkJQ0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU3MTU2MTBDMjM0QzFDQTEwMDhGQzdBQiAvKiBNb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREM4RDM5ODI1RjJGRTk3MDBDRkNC
QUIgLyogTW9kZWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxM0U3OUVBMjczQzg2QjgwMDk3Rjkw
NSAvKiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJCNDExNzI3MzJGNDFF
MDBBMkQxOTEgLyogTW9kZWxQbGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkI0MTE5Mjcz
MkY0MjkwMEEyRDE5MSAvKiBNb2RlbFBsYXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMyQjQxMTgyNzMyRjQyMzAwQTJEMTkxIC8qIE1vZGVsUGxheWVyUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggOTMx
OWUwY2JmYjkyMTUwNjViMTMyNTA0ODYwZjVmODVkYTFiNDIzYy4uNjE2ZGIzYWI2NWM3ZDQ3Yzgy
NTlhZWVlNDdkODg4NWViNWIyOTI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uY3BwCkBAIC01Nyw2ICs1NywxMCBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisjaWYgRU5BQkxFKE1PREVM
X0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisjaW5jbHVkZSAiTW9kZWxEb2N1bWVu
dC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKQEAgLTE2Miw2ICsxNjYsMTEgQEAgUmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgRnJhbWUKICAg
ICAgICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0dGluZ3MsIHVybCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKSAmJiBIQVZFKE1PREVMX0RPQ1VN
RU5UKQorICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1VTRE1JTUVUeXBlKGNvbnRlbnRUeXBl
KSkKKyAgICAgICAgcmV0dXJuIE1vZGVsRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0dGluZ3Ms
IHVybCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVFBESVIpCiAgICAgaWYgKGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKGNvbnRlbnRUeXBlLCAiYXBwbGljYXRpb24veC1mdHAtZGlyZWN0
b3J5IikpCiAgICAgICAgIHJldHVybiBGVFBEaXJlY3RvcnlEb2N1bWVudDo6Y3JlYXRlKGZyYW1l
LCBzZXR0aW5ncywgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggY2QwM2RkMTc0ZTcyMzk5
ODIyY2VhYTRjYjg0NzJjNGMxODJjZDJhNC4uYjZiYjI3NDg0NWM1ZTAzNmQzZGQxNTk5NjlhMTgz
ZDAyMGUxZGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTMwMiw4ICszMDIsMTEgQEAgZW51
bSBEb2N1bWVudENsYXNzIHsKICAgICBTVkdEb2N1bWVudENsYXNzID0gMSA8PCA1LAogICAgIFRl
eHREb2N1bWVudENsYXNzID0gMSA8PCA2LAogICAgIFhNTERvY3VtZW50Q2xhc3MgPSAxIDw8IDcs
CisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisgICAg
TW9kZWxEb2N1bWVudENsYXNzID0gMSA8PCA4LAorI2VuZGlmCiB9OwotdXNpbmcgRG9jdW1lbnRD
bGFzc0ZsYWdzID0gdW5zaWduZWQgY2hhcjsKK3VzaW5nIERvY3VtZW50Q2xhc3NGbGFncyA9IHVp
bnQzMl90OwogCiBlbnVtIGNsYXNzIERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGUgOiB1bnNpZ25l
ZCBjaGFyIHsKICAgICBOb1F1aXJrc01vZGUgPSAxLApAQCAtNTQwLDYgKzU0Myw5IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzUGx1Z2luRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50
Q2xhc3NlcyAmIFBsdWdpbkRvY3VtZW50Q2xhc3M7IH0KICAgICBib29sIGlzTWVkaWFEb2N1bWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRDbGFzc2VzICYgTWVkaWFEb2N1bWVudENsYXNz
OyB9CiAgICAgYm9vbCBpc1RleHREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRD
bGFzc2VzICYgVGV4dERvY3VtZW50Q2xhc3M7IH0KKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkg
JiYgSEFWRShNT0RFTF9ET0NVTUVOVCkKKyAgICBib29sIGlzTW9kZWxEb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnRDbGFzc2VzICYgTW9kZWxEb2N1bWVudENsYXNzOyB9CisjZW5k
aWYKICAgICBib29sIGhhc1NWR1Jvb3ROb2RlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
RnJhbWVTZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2Rl
bERvY3VtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTdhZWVlMTMyZjc4MzEwNGU2MzlkMjE0MzUwNTRi
OTZlZTE5ZGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERv
Y3VtZW50LmNwcApAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2RlbERv
Y3VtZW50LmgiCisKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkgJiYgSEFWRShNT0RFTF9ET0NV
TUVOVCkKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNb2RlbEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MU291cmNlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJSYXdEYXRh
RG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTW9kZWxEb2N1bWVudCk7CisKK3VzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CisKK2NsYXNzIE1vZGVsRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBw
dWJsaWMgUmF3RGF0YURvY3VtZW50UGFyc2VyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1v
ZGVsRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShNb2RlbERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZGVsRG9jdW1lbnRQYXJzZXIoZG9jdW1l
bnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTW9kZWxEb2N1bWVudFBhcnNlcihNb2RlbERv
Y3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBSYXdEYXRhRG9jdW1lbnRQYXJzZXIgeyBkb2N1
bWVudCB9CisgICAgICAgICwgbV9vdXRnb2luZ1JlZmVycmVyIHsgZG9jdW1lbnQub3V0Z29pbmdS
ZWZlcnJlcigpIH0KKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjcmVhdGVEb2N1bWVudFN0cnVj
dHVyZSgpOworCisgICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IHVp
bnQ4X3QqLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQgZmluaXNoKCkgZmluYWw7CisKKyAgICBI
VE1MTW9kZWxFbGVtZW50KiBtX21vZGVsRWxlbWVudCB7IG51bGxwdHIgfTsKKyAgICBTdHJpbmcg
bV9vdXRnb2luZ1JlZmVycmVyOworfTsKKwordm9pZCBNb2RlbERvY3VtZW50UGFyc2VyOjpjcmVh
dGVEb2N1bWVudFN0cnVjdHVyZSgpCit7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqdGhpcy0+ZG9j
dW1lbnQoKTsKKworICAgIGF1dG8gcm9vdEVsZW1lbnQgPSBIVE1MSHRtbEVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQpOworICAg
IGRvY3VtZW50LnNldENTU1RhcmdldChyb290RWxlbWVudC5wdHIoKSk7CisgICAgcm9vdEVsZW1l
bnQtPmluc2VydGVkQnlQYXJzZXIoKTsKKworICAgIGlmIChkb2N1bWVudC5mcmFtZSgpKQorICAg
ICAgICBkb2N1bWVudC5mcmFtZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZTo6RG9jdW1lbnRTdGFydCk7CisKKyAgICBhdXRvIGhlYWRFbGVtZW50ID0gSFRNTEhl
YWRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGls
ZChoZWFkRWxlbWVudCk7CisKKyAgICBhdXRvIG1ldGFFbGVtZW50ID0gSFRNTE1ldGFFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIG1ldGFFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKG5hbWVBdHRyLCBBdG9tU3RyaW5nKCJ2aWV3cG9ydCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgbWV0YUVsZW1lbnQtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29udGVudEF0dHIsIEF0b21TdHJpbmcoIndpZHRoPWRl
dmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZChtZXRhRWxlbWVudCk7CisKKyAg
ICBhdXRvIHN0eWxlRWxlbWVudCA9IEhUTUxTdHlsZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgYXV0byBzdHlsZUNvbnRlbnQgPSBtYWtlU3RyaW5nKCJib2R5IHsgYmFja2dyb3VuZC1j
b2xvcjogd2hpdGU7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuIiwKKyAgICAgICAgIkBtZWRpYSAo
cHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsgYm9keSB7IGJhY2tncm91bmQtY29sb3I6IHJn
YigzMiwgMzIsIDM3KTsgfSB9XG4iLAorICAgICAgICAibW9kZWwgeyB3aWR0aDogODB2dzsgaGVp
Z2h0OiA4MHZoOyB9XG4iKTsKKyAgICBzdHlsZUVsZW1lbnQtPnNldFRleHRDb250ZW50KHN0eWxl
Q29udGVudCk7CisgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CisK
KyAgICBhdXRvIGJvZHkgPSBIVE1MQm9keUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
cm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkpOworCisgICAgYXV0byBtb2RlbEVsZW1lbnQg
PSBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjptb2RlbFRhZywgZG9jdW1lbnQp
OworICAgIG1fbW9kZWxFbGVtZW50ID0gbW9kZWxFbGVtZW50LnB0cigpOworICAgIG1vZGVsRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihjb250cm9sc0F0dHIsIGVt
cHR5QXRvbSgpKTsKKworICAgIGF1dG8gc291cmNlRWxlbWVudCA9IEhUTUxTb3VyY2VFbGVtZW50
OjpjcmVhdGUoSFRNTE5hbWVzOjpzb3VyY2VUYWcsIGRvY3VtZW50KTsKKyAgICBzb3VyY2VFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHNyY0F0dHIsIGRvY3VtZW50
LnVybCgpLnN0cmluZygpKTsKKyAgICBpZiAoUmVmUHRyIGxvYWRlciA9IGRvY3VtZW50LmxvYWRl
cigpKQorICAgICAgICBzb3VyY2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHR5cGVBdHRyLCBsb2FkZXItPnJlc3BvbnNlTUlNRVR5cGUoKSk7CisKKyAgICBtb2Rl
bEVsZW1lbnQtPmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQpOworCisgICAgYm9keS0+YXBwZW5k
Q2hpbGQobW9kZWxFbGVtZW50KTsKKyAgICBkb2N1bWVudC5zZXRIYXNWaXN1YWxseU5vbkVtcHR5
Q3VzdG9tQ29udGVudCgpOworCisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50LmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWUtPmxv
YWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnNldE1haW5SZXNvdXJjZURhdGFCdWZmZXJp
bmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeTo6RG9Ob3RCdWZmZXJEYXRhKTsKKyAgICBmcmFt
ZS0+bG9hZGVyKCkuc2V0T3V0Z29pbmdSZWZlcnJlcihkb2N1bWVudC5jb21wbGV0ZVVSTChtX291
dGdvaW5nUmVmZXJyZXIpKTsKK30KKwordm9pZCBNb2RlbERvY3VtZW50UGFyc2VyOjphcHBlbmRC
eXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpCit7CisgICAgaWYg
KCFtX21vZGVsRWxlbWVudCkKKyAgICAgICAgY3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKK30K
Kwordm9pZCBNb2RlbERvY3VtZW50UGFyc2VyOjpmaW5pc2goKQoreworICAgIGRvY3VtZW50KCkt
PmZpbmlzaGVkUGFyc2luZygpOworfQorCitNb2RlbERvY3VtZW50OjpNb2RlbERvY3VtZW50KEZy
YW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCkKKyAg
ICA6IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgTW9kZWxEb2N1bWVudENsYXNz
KQoreworICAgIGlmIChmcmFtZSkKKyAgICAgICAgbV9vdXRnb2luZ1JlZmVycmVyID0gZnJhbWUt
PmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKTsKK30KKworUmVmPERvY3VtZW50UGFyc2VyPiBN
b2RlbERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQoreworICAgIHJldHVybiBNb2RlbERvY3VtZW50
UGFyc2VyOjpjcmVhdGUoKnRoaXMpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
ZGVsRG9jdW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTZmODk3Mzk5ZjA2ZjY3YWU1ODE4MTNkOWUxNmQx
MGZhY2JmOGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERv
Y3VtZW50LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQp
ICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNb2RlbERvY3VtZW50IGZpbmFsIDogcHVibGlj
IEhUTUxEb2N1bWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChNb2RlbERvY3VtZW50
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vZGVsRG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSog
ZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2RlbERvY3VtZW50KGZyYW1lLCBzZXR0aW5n
cywgdXJsKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+TW9kZWxEb2N1bWVudCgpID0gZGVmYXVs
dDsKKworICAgIFN0cmluZyBvdXRnb2luZ1JlZmVycmVyKCkgY29uc3QgeyByZXR1cm4gbV9vdXRn
b2luZ1JlZmVycmVyOyB9CisKK3ByaXZhdGU6CisgICAgTW9kZWxEb2N1bWVudChGcmFtZSosIGNv
bnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJik7CisKKyAgICBSZWY8RG9jdW1lbnRQYXJzZXI+IGNy
ZWF0ZVBhcnNlcigpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fb3V0Z29pbmdSZWZlcnJlcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19C
RUdJTihXZWJDb3JlOjpNb2RlbERvY3VtZW50KQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGRvY3VtZW50LmlzTW9kZWxE
b2N1bWVudCgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok5vZGUm
IG5vZGUpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OkRvY3VtZW50Pihub2RlKSAmJiBpc1R5cGUoZG93
bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KG5vZGUpKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAppbmRleCA2ZjdhZjEyN2NmY2UwNGUzYTA1Y2UwZmM2
OTZhNzZiOGQwYWQxZDczLi5jM2ViNjUzZDZlYzA1ZGQxZjIxYzY3ZDdhNGI3MTg4ZTIwYWZkZGNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAt
NjU4LDYgKzY1OCwxMSBAQCBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmNhblNob3dNSU1FVHlwZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisgICAgaWYg
KGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZShtaW1lVHlwZSkpCisgICAgICAgIHJldHVybiB0cnVl
OworI2VuZGlmCisKICAgICBpZiAoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSht
aW1lVHlwZSwgInRleHQvIikpCiAgICAgICAgIHJldHVybiAhaXNVbnN1cHBvcnRlZFRleHRNSU1F
VHlwZShtaW1lVHlwZSk7CiAKQEAgLTY4OCw2ICs2OTMsMTMgQEAgYm9vbCBNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1VTRE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgcmV0dXJuIHVz
ZE1JTUVUeXBlU2V0LmNvbnRhaW5zKG1pbWVUeXBlKTsKIH0KIAorI2lmIEVOQUJMRShNT0RFTF9F
TEVNRU5UKSAmJiBIQVZFKE1PREVMX0RPQ1VNRU5UKQorYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZE1vZGVsTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICBy
ZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6aXNVU0RNSU1FVHlwZShtaW1lVHlwZSk7Cit9CisjZW5k
aWYKKwogLy8gRklYTUU6IE5vdCBncmVhdCB0aGF0IENVUkwgbmVlZHMgdGhpcyBjb25jZXB0OyBv
dGhlciBwbGF0Zm9ybXMgZG8gbm90Lgogc3RhdGljIFN0cmluZyBub3JtYWxpemVkSW1hZ2VNSU1F
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5oCmluZGV4IDBhZDI2OTdiOTZkMmNlYTJiNzhiYjYyMTU0MjNjYzJh
NTYwNWE3YzYuLjM5NjM1NmVmNDBlYTdlZjE1NmQzYmI4YWM5ZDlhMzg4MGE2YWZlNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKQEAgLTEwOCw2ICsxMDgs
MTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNVU0RNSU1F
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5U
KSAmJiBIQVZFKE1PREVMX0RPQ1VNRU5UKQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29s
IGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyNlbmRp
ZgorCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgTUlNRSB0eXBlIGlzIHN1aXRhYmxlIGZvciBi
ZWluZyBzaG93biBpbnNpZGUgYSBwYWdlLgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2Yg
aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlKCksIGlzU3VwcG9ydGVkTm9uSW1hZ2VNSU1FVHlwZSgp
LAogICAgIC8vIGlzU3VwcG9ydGVkTWVkaWFNSU1FVHlwZSgpLCBpc1N1cHBvcnRlZEphdmFTY3Jp
cHRNSU1FVHlwZSgpLCBpc1N1cHBvcnRlZEpTT05NSU1FVHlwZSgpLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0
cnkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250ZW50UHJv
dmlkZXJSZWdpc3RyeS5tbQppbmRleCA2OTQyMGQ3OTc3NGQxNWQxMDAxMWZlZDNjZGFlOGY2YTc0
MGI2MjAxLi40NGYyMjEzYzM4YmMwMjYwYzkxZjkyYmExMDE3OTc1ZjM1N2RiNzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250ZW50UHJvdmlk
ZXJSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZp
ZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbQpAQCAtNTQsNyArNTQsNyBAQAogICAgICAgICBb
c2VsZiByZWdpc3RlclByb3ZpZGVyOltXS1BERlZpZXcgY2xhc3NdIGZvck1JTUVUeXBlOkAodHlw
ZSldOwogI2VuZGlmCiAKLSNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpICYmICFIQVZFKFVJS0lUX1dF
QktJVF9JTlRFUk5BTFMpCisjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKSAmJiAhSEFWRShVSUtJVF9X
RUJLSVRfSU5URVJOQUxTKSAmJiAhSEFWRShNT0RFTF9ET0NVTUVOVCkKICAgICBpZiAoY29uZmln
dXJhdGlvbi5fc3lzdGVtUHJldmlld0VuYWJsZWQpIHsKICAgICAgICAgZm9yIChhdXRvJiB0eXBl
IDogV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6dXNkTUlNRVR5cGVzKCkpCiAgICAgICAgICAg
ICBbc2VsZiByZWdpc3RlclByb3ZpZGVyOltXS1VTRFByZXZpZXdWaWV3IGNsYXNzXSBmb3JNSU1F
VHlwZTpAKHR5cGUpXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0OWJjYzA2N2NmZDVjYmIxZjk0NTc2ZTdkZmI3YTJjYzNm
Y2I3ZGQ0Li4zNTU0MGIzNTM2YjFkYjUyMjY0YTM3YzJiYWI5NzcwNTM1NmE4ODMwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5nIGNvbnRl
bnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1MjY1ODgw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IHRl
c3QgZm9yIE1vZGVsRG9jdW1lbnQuCisKKyAgICAgICAgKiBodHRwL2NvbmYvbWltZS50eXBlczog
Q29uZmlndXJlIHRoZSB0ZXN0aW5nIEFwYWNoZSBzZXJ2ZXIgdG8gc2VydmUgVVNEWiBmaWxlcwor
ICAgICAgICB3aXRoIHRoZSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21vZGVsL1VuaXRCb3gudXNkejogU2FtcGxlIGZpbGUuCisgICAgICAgICogaHR0cC90ZXN0cy9t
b2RlbC9tb2RlbC1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbDogTmV3IHRlc3QgZm9yIGEgTW9kZWxEb2N1
bWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvZmlsZS11cmwtbWltZXR5
cGVzLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9m
aWxlLXVybC1taW1ldHlwZXMtMy5odG1sOiBBZGQgLnVzZHogdG8gdGhlIGZpbGUgZXh0ZW5zaW9u
IHRlc3RzLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvbWlt
ZVR5cGVFeGFtcGxlcy9leGFtcGxlLXVzZHoudXNkejogQWRkZWQuCisKIDIwMjEtMTEtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB3aGVuIGFjY2Vz
c2luZyByZWFzb24gcHJvcGVydHkgb2YgYSBuZXdseSBjcmVhdGVkIEFib3J0U2lnbmFsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL2NvbmYvbWltZS50eXBlcyBiL0xheW91dFRlc3RzL2h0
dHAvY29uZi9taW1lLnR5cGVzCmluZGV4IDBhMmY3NTdkNWM4N2Q3ZmE2NTQ1NmQ1MGMzMjNlODFj
M2NhMTFjODkuLjQ3YjZiZTAwM2Y3ZmQ1MGJlODhmMzUxMDBkZWExYjA0ZGM2YzYxODQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvY29uZi9taW1lLnR5cGVzCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvY29uZi9taW1lLnR5cGVzCkBAIC01MTUsNiArNTE1LDcgQEAgbW9kZWwvdm5kLmd0dwog
bW9kZWwvdm5kLm10cwogbW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC5iaW5hcnkKIG1vZGVs
L3ZuZC5wYXJhc29saWQudHJhbnNtaXQudGV4dAorbW9kZWwvdm5kLnVzZHoremlwIHVzZHoKIG1v
ZGVsL3ZuZC52dHUKIG1vZGVsL3ZybWwJCQl3cmwgdnJtbAogbXVsdGlwYXJ0L2FsdGVybmF0aXZl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21vZGVsL1VuaXRCb3gudXNkeiBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwvVW5pdEJveC51c2R6Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2
YjcxMTgyOWUwMTYyYjVjNWIyY2M0N2JkODA5NjIyYmM3ODZlMjQKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDMyMzAKemNtYl9mVTVwITc2K1UtdGtMfnF0KldPKXNjYXUlKns1NDZGSHFJS0Z2THVf
P2RRSDA4SDAhS0FRQllmeVNeR0xXCnpzeSpZKmpNR2lVZ0RWaWNsbk4+a0ZGZHJXYGh0cDcxcFJx
fUFvPjdtKGlVaHomOyRZZlFCO0JBdXFvTkhOdFNjMgp6WEI9eXtzWCplJFhVQDZqZUNLRUcrP2pp
d29BJnY7Zk4xJllDdWZoJWclMiE2MEVsfmA5fkBxLSZENVAqLU1QRE4Kem14fHZRP2lKOUVPWVpw
V1UyMStaMUhxT3RnXn5YY1ZyfipZTj4zK0skaEVnQFU1ZStFSSgkQlg9fkJvPjZoclBxCnpfT0p0
fWRwXnA0Sjh+LXFVPVp+bzxZOHA1KV9ULU9rVClRMkx7MTxsa3R4cTZXR35sZClWQ21lYismY3Jj
YzMwWAp6Q2ZiMmE8REpOTkJKVj0+VnojNjE8QDBkZVhkfEs/e308aldxNXg4Xmd5dSNIU0ZAXm1S
OD9+LT55aUpfemomP1oKellTQDN7YG9GX2gqYGdmJHIwM0ZnYE1QezxGP1B2Y29PbyZmeDFPM0Vm
OCpAb2dGZGY4blZScWgtVkMrbyVxIUU5CnpqaTA7bkFqJF4qTkQ/KX42QD1mXyR3SzRSNy00dGdn
YihxbkY+Q1Q1ejd5bTE7bm5xT3dSMk5XdFN0ejJxQlN8Rwp6d15iTnshJitfR1NjX1NjPWpKQGRG
fEl3MndDWSshWXRKUmpFJClOcmV1Z2c0RjZMSWMkYiZpQmN8SnVLdjlBNDcKemIqJDB1PVFIJG40
flYmeS10TmNDYX1iZk1iUD87PypYbFJ0RE09WFEpJCtgRSVmNEM/UEkyKl9sNWpMJEVlWVIxCnpw
Qz9iPzcrZjZMcGAodDZMdSg2PElLbkZ+cDZyRDgjKktzRnI+fkJpa0gwV3BlcCZ0NUU5VlgmNHdO
VSU0R0lCZwp6LXN2YVZrYmImZUB4QlNQUXN+Pnt5QDlCPHpmKm8xSyRvSGozR2xXWF5wRj9hK3k/
ZDkjRFo/YW0hVzNxKXkld0oKekRPdWJBKXpGPiQlbXBhJXZSMUQrSXJLcjVKS1ZCISt9WiVtTHJ8
PlNqIylqZG8jeGkwPTRlb354YU9EXjtJe0MxCnooS0pxUiVTcU5PZW9FKCRCfnkzYkdZV1ElN3hs
OHZFcFNmUF96fHRqO2R0NCFzLVczNmNjelQ4Mn1UP2kqRlR+Zwp6QmBCS0puclUjdWZkQDNLcyVz
Uys0c28tSlU3OXNhdCNjY3k+ITJBTG4/dHk2b1A+TjQ5Z3hBYW1JZXpDIUR9PE0KekZ+YHlqeU1o
ViZwZkY+VnhZWXZfVzJVOC07YVA2YUwoUzk7I30yYklyIT5uUnZtRyQ3b3YqP1lEe0RvNTQ2RT5r
CnpETko2KEBLbmFFP31JRC1jNzNqLXBWRHBKSDFmckhqYHZWOT52SSpKKkdzJHZfZl9pcmI/X2Yh
ZVZPZlM4QEdsYgp6NVFkYXB3YEBxfD1kflpmKkcjY0ArR0RybFVPRVdSPlVoXjxkSUB4NkJmTURC
JWpMU3dHaUpwYzBYNl8lI3xoVWUKejZ9YDk+dTAkLWVlc2JSNndoZVFwU3BuPT0qWEh6IT93dE19
SmNJR2hnQWFwYUpgJDhoP05hVkYpfGRZZEIlJH5mCnpTUFoxZ1BfQ0dvMUNDfiQ8VzVkPT1JdmNm
TnRZamRJMEcrb3Q3aFUxO3ImMkZgWml5e25LdWt4Pjtvd1Uld1RLfQp6dXR9enZSJXZ1VUpaSW58
ZmsqM19RJncxQ2BianV9TVE2RzhMeD9CdVd5aDFGc3BPN0ZyNCNoRGNlZUw3KzdaSVkKenc7fEpk
cXlAYlhuVFRFI0w5P189c3RoaTc0YUMkIUViQ3tJI0YhN1NTRTVUeChXT3VgQnR0VjhVRTBocHo9
YURKCnpLISFockI+MF5lP0RDZD1Rb14/JjY7WH17VkZMRzNlK2JTKmwtNCZZdFNrZyM1S1JPPyEl
QkI1LTY3WjtRNXR3bgp6S3Zke0kydGolJHlieXZ8VCNSMjg8NnElO29md31GZnIyPzFLRzI9OEgz
JTdxQzw5VUdQbGxqPmB3O1orTSpWKSYKejMmXntaejxQMSMtO0Z0I3ZTJGNscjVLRio4ZHpoP0di
c2VgTWJJZHdLQShqMjVUdjhQZzc2Q25EZCowZiNXQEtuCnpBRVNMVVR0dmpASCZMVVozNj5zZT8y
QUcmPHFNUFJLblM4PT0qOFFORDdoJStYcEJXNnd4Rn4wSzt3KHAkYk83ZQp6WUFoWHQxODY3MkFk
RSskRil2T1drdyNVX0k+Mk1EZ2VJcCsjNj1nKyM/XlNDZlR3fGluI0R1R2dnNj11O0ltbmwKekti
Qj1ZNWQyZFBIKVQwK04kJm87LTIwSW5UYjVBekUpSVYlXjReSF94NVRwaW1yWn0oYSg7e1M/ei0r
anQ/VCpZCnpqXjhKYC0lMCM2KGV3NlF6dW1KZXptLUBYZH5Ae049VSVfKHtTQ2lQeGFCPWJ0M1hn
UU0ockgrMmpZfFFMTEItbwp6NFN5KWhRc0FUTFdtKW5zTWxUMSNiV3tANTk5JShDdjE+SmVRMiln
e3tKKVYjLWohSV9ScTVLXipzSWUmMn41NTYKeno+bFNsKyFTey04dnFKZVZZbUozKzZ+NVR1PCs2
ZlVLdzd6Y0lYJT1OVEZ7MEBLI1I2YElBOzhYfm5uRm5VTDBYCnpUPUI9JXF3eFdkZ01vbjAyUj1k
NDRiKipmRSk+KWhBS21+JkEmTSEzRTZjJTg9PWVsYm4zPktWJCt2WDZlJUMhNQp6SV98ZVJVem5Y
YmFfQS0/PFF9IT85N149MXNxRXAmbntMP1pgayRjUSt4fjM5Z0ZIXyFDREohcjAmKXxEYCNtMy0K
emNETWNuITFyQiRLOXxqT2BoViZBeWBffCFYNHZWaXwyZXA2VD04SDBrQythS3NiVG18PVA+R0Nh
cD9VSV43SXh9CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk1ZTBjMzk3NmFiY2JiNWY2ODExOTMwNmI1ZjFjOGJiYTVhY2U3YjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Jhc2ljIE1vZGVsRG9jdW1lbnQgdGVzdC4KKworUEFT
UzogPG1vZGVsPiBhbmQgPHNvdXJjZT4gc2VlbiBpbiBpZnJhbWUuCisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZk
YzM5ZjljMTA1NTNjYTZiYjJkYjRhMTZkYTJhYjBmOTIxZmY3YWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwKQEAgLTAs
MCArMSwzOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW4oKQorICAg
IHsKKyAgICAgICAgY29uc3QgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKKyAgICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKTsKKyAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZnJhbWUuY29udGVudERvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoIm1vZGVsIik7CisgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBmcmFtZS5j
b250ZW50RG9jdW1lbnQucXVlcnlTZWxlY3RvcigibW9kZWwgc291cmNlIik7CisgICAgICAgICAg
ICBpZiAoIW1vZGVsKQorICAgICAgICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICJGQUlM
OiA8bW9kZWw+IG5vdCBzZWVuIGluIGlmcmFtZS4iOworICAgICAgICAgICAgZWxzZSBpZiAoIXNv
dXJjZSkKKyAgICAgICAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiRkFJTDogPG1vZGVs
PiBmb3VuZCwgYnV0IG5vIDxzb3VyY2U+IGNoaWxkLiI7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gIlBBU1M6IDxtb2RlbD4gYW5kIDxzb3Vy
Y2U+IHNlZW4gaW4gaWZyYW1lLiI7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7
CisgICAgICAgIGZyYW1lLnNyYyA9ICJVbml0Qm94LnVzZHoiOworICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBydW4sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4K
K0Jhc2ljIE1vZGVsRG9jdW1lbnQgdGVzdC4KKzxwPgorPHAgaWQ9Im91dHB1dCI+PC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGUwYjExMjZmNDFhMWRiOGMzMGQ4OTU2YTYzYTM0OWNmOWYxZWZkNGYuLjk0
M2NiOTRiMTU2MzVhZjk4ODJhODcyNGIwMWYwZTM5ZDlmMTEyOGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3LDYgKzQ3LDcgQEAgY3Nz
LWN1c3RvbS1wcm9wZXJ0aWVzLWFwaSBbIFNraXAgXQogY3NzLXR5cGVkb20gWyBTa2lwIF0KIGNz
cy1kYXJrLW1vZGUgWyBTa2lwIF0KIG1vZGVsLWVsZW1lbnQgWyBTa2lwIF0KK2h0dHAvdGVzdHMv
bW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbCBbIFNraXAgXQogCiAjIE1lZGlhIFN0cmVhbSBBUEkg
dGVzdGluZyBpcyBub3Qgc3VwcG9ydGVkIGZvciBXSzEgeWV0LgogZmFzdC9tZWRpYXN0cmVhbQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5YmYwNTIyZjBj
ZTVmYmUxMjI4YjYyMDc0NDI5ZTMwMjQzMzExYWFiLi43N2ZhN2MzZDBmZTU1NWRkZDYwMTE5NzU0
ZjU2NzFlMWE5ZTljNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTcxMyw2ICsxNzEzLDcgQEAgd2Via2l0Lm9yZy9iLzIxNDE1NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXAKIFsgQ2F0
YWxpbmEgTW9qYXZlIEJpZ1N1ciBdIHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXdlYm0tb3B1
cy5odG1sIFsgU2tpcCBdCiBbIENhdGFsaW5hIE1vamF2ZSBCaWdTdXIgXSB3ZWJhdWRpby9kZWNv
ZGUtYXVkaW8tZGF0YS13ZWJtLW9wdXMtcmVzYW1wbGUuaHRtbCBbIFNraXAgXQogWyBDYXRhbGlu
YSBNb2phdmUgQmlnU3VyIF0gd2ViYXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtd2VibS12b3JiaXMu
aHRtbCBbIFNraXAgXQorWyBDYXRhbGluYSBNb2phdmUgQmlnU3VyIF0gaHR0cC90ZXN0cy9tb2Rl
bC9tb2RlbC1kb2N1bWVudC5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8yMTQ0MjIgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb2NvbnRleHQtaW50ZXJmYWNlL3N1c3BlbmQtYWZ0ZXItY29uc3RydWN0Lmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9s
b2FkZXIvZmlsZS11cmwtbWltZXR5cGVzLTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvbG9hZGVyL2ZpbGUtdXJsLW1pbWV0eXBlcy0zLWV4cGVjdGVkLnR4dApp
bmRleCBmYWQ0ZTc4MjVmYTc3NGUwNzgxNmJlODk4N2EyMjYxZGE2MmEyNWEwLi40ZTIwZDVlMGQ2
YjhkYzc0NmIwZWM4Y2VlMjViMDlhOWFkMDdhODg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvZmlsZS11cmwtbWltZXR5cGVzLTMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9maWxlLXVybC1taW1l
dHlwZXMtMy1leHBlY3RlZC50eHQKQEAgLTUzLDYgKzUzLDcgQEAgZXhhbXBsZS10eHQudHh0IGhh
cyBNSU1FIHR5cGUgdGV4dC9wbGFpbgogZXhhbXBsZS11bC51bCBoYXMgTUlNRSB0eXBlIGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbQogZXhhbXBsZS11bGF3LnVsYXcgaGFzIE1JTUUgdHlwZSBhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW0KIGV4YW1wbGUtdWx3LnVsdyBoYXMgTUlNRSB0eXBlIGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbQorZXhhbXBsZS11c2R6LnVzZHogaGFzIE1JTUUgdHlwZSBtb2Rl
bC92bmQudXNkeit6aXAKIGV4YW1wbGUtdXN0YXIudXN0YXIgaGFzIE1JTUUgdHlwZSBhcHBsaWNh
dGlvbi94LXVzdGFyCiBleGFtcGxlLXZjYXJkLnZjYXJkIGhhcyBNSU1FIHR5cGUgdGV4dC9kaXJl
Y3RvcnkKIGV4YW1wbGUtdmNkLnZjZCBoYXMgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL3gtY2RsaW5r
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvZmlsZS11
cmwtbWltZXR5cGVzLTMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRl
ci9maWxlLXVybC1taW1ldHlwZXMtMy5odG1sCmluZGV4IDdjMzM3NjQ2YjZmOTY3MTM2YjIxYmQ3
NTgwMzIyMGQyNmZkZTIzNjAuLjg4MjQwZGQyNDBhNTc2ZDU2Nzc3Yjc1MGFjYzdhNDEzYzFhMzRi
MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci9maWxl
LXVybC1taW1ldHlwZXMtMy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2xvYWRlci9maWxlLXVybC1taW1ldHlwZXMtMy5odG1sCkBAIC02NSw2ICs2NSw3IEBAIHZhciB0
ZXN0VVJMID0gbmV3IEFycmF5KCJyZXNvdXJjZXMvbWltZVR5cGVFeGFtcGxlcy9leGFtcGxlLXMu
cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2VzL21pbWVUeXBlRXhhbXBsZXMv
ZXhhbXBsZS11bC51bCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlcy9taW1l
VHlwZUV4YW1wbGVzL2V4YW1wbGUtdWxhdy51bGF3IiwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAicmVzb3VyY2VzL21pbWVUeXBlRXhhbXBsZXMvZXhhbXBsZS11bHcudWx3IiwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAicmVzb3VyY2VzL21pbWVUeXBlRXhhbXBsZXMvZXhhbXBsZS11c2R6
LnVzZHoiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZXMvbWltZVR5cGVFeGFt
cGxlcy9leGFtcGxlLXVzdGFyLnVzdGFyIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAicmVz
b3VyY2VzL21pbWVUeXBlRXhhbXBsZXMvZXhhbXBsZS12Y2FyZC52Y2FyZCIsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgInJlc291cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1wbGUtdmNkLnZj
ZCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Jl
c291cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1wbGUtdXNkei51c2R6IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9taW1lVHlwZUV4YW1wbGVzL2V4YW1w
bGUtdXNkei51c2R6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMy
ZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
MTgwZTJiNGNmNmU4MzRhMDU5MTBjYmQ0YjA1M2ZmNDQ0MDU5ZWY5NS4uODRmZmNiZTVmMjJiNGJk
NjA4MGNmY2ZjYjYxZjViYmE3NDdlMTA1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTEzMiw2ICsxMzIsOSBAQCB3ZWJraXQub3JnL2IvNzQ3MTYgY3Nz
My9maWx0ZXJzL2JhY2tkcm9wIFsgU2tpcCBdCiBmYXN0L2hhcm5lc3MvcGxhdGZvcm0tbGF5ZXIt
dHJlZS1hcy10ZXh0Lmh0bWwgWyBTa2lwIF0KIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1n
cmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1sIFsgU2tpcCBdCiAKKyMgQXBwbGUgQ29jb2Egb25s
eSBmb3IgdGhlIG1vbWVudC4KK2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbCBb
IFNraXAgXQorCiAjIGNvbG9yLWZpbHRlcnMgYXJlIG9mZiBieSBkZWZhdWx0CiB3ZWJraXQub3Jn
L2IvMTg1MDc2IGNzczMvY29sb3ItZmlsdGVycyBbIFNraXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444188</attachid>
            <date>2021-11-14 12:37:39 -0800</date>
            <delta_ts>2021-11-16 16:41:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233057-20211115073737.patch</filename>
            <type>text/plain</type>
            <size>30520</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDliNDEwNGJiNjE1YTEwMTI4OWM4Y2Y3
YzkyZGYwZjQ2YzczN2RiMDAuLjdmYTIzYzhkMTlmODU5MTRlNzdhZWM0MjhkOTAwMWZmZTAzZDAx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93
aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjov
Lzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IEhBVkUgbWFjcm86IE1PREVMX0RPQ1VNRU5ULCBpZGVudGlmeWluZyBpZiB3
ZSBzdXBwb3J0IGRpcmVjdGx5CisgICAgICAgIGxvYWRpbmcgY29udGVudCB0aGF0IGNhbiBiZSBo
YW5kbGVkIGJ5IDxtb2RlbD4uCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIw
MjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIE1hdGhNTCB3aGVuIGluIENhcHRpdmUgUG9ydGFsIE1vZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNGE3
YTFhZWFkMTlmZTZkMDM4ODcxZDc0ODk2Njc3NzA3MGM5Y2ZkLi43OTRmZTY0MmU4ZmM3Y2FkNjJi
NzhkNTE0MzU3MGYwMTUwZGNkMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEt
MTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2Rl
bERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxl
ZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IE1vZGVsRG9jdW1lbnQgY2xh
c3MgdGhhdCBpcyBjcmVhdGVkIHdoZW4gd2UgZW5jb3VudGVyIGEgTUlNRS10eXBlIHRoYXQKKyAg
ICAgICAgY2FuIGJlIGhhbmRsZWQgYnkgdGhlIDxtb2RlbD4gZWxlbWVudC4KKworICAgICAgICBU
ZXN0OiBodHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOiBDcmVh
dGUgYSBNb2RlbERvY3VtZW50IHdoZW4gd2UKKyAgICAgICAgc2VlIGEgTUlNRS10eXBlIHRoYXQg
PG1vZGVsPiBjYW4gc3VwcG9ydC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBBZGQgYSBu
ZXcgTW9kZWxEb2N1bWVudENsYXNzIHdoaWNoIG1lYW50IEkgYWxzbyBoYWQgdG8KKyAgICAgICAg
aW5jcmVhc2UgdGhlIHNpemVvZiBEb2N1bWVudENsYXNzRmxhZ3MuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNNb2RlbERvY3VtZW50IGNvbnN0KTogCisKKyAgICAgICAgKiBodG1sL01v
ZGVsRG9jdW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9jdW1lbnRQ
YXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVs
RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2RlbERvY3VtZW50OjpN
b2RlbERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcik6CisgICAgICAgICogaHRtbC9Nb2RlbERvY3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
aXNUeXBlKToKKworICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOiBBZGQg
aXNTdXBwb3J0ZWRNb2RlbE1JTUVUeXBlIGFuZCB0ZXN0IGZvciBpdAorICAgICAgICBpbiBjYW5T
aG93TUlNRVR5cGUuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpjYW5TaG93
TUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRNb2RlbE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5Lmg6
CisKIDIwMjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmFzaCB3aGVuIGFjY2Vzc2luZyByZWFzb24gcHJvcGVydHkgb2YgYSBuZXdseSBjcmVhdGVk
IEFib3J0U2lnbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3MTIzOTFiZTEzNTJmMDgyMWU0YTE0MmEyMTMwM2I5
MGY2ZTg2NTQuLmIxZGNiMDQ2Mzg2ZjlkYzRkODQ0NDc1ZWM4NDNkZTA4YWY2YTA3YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93aW5n
IGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjovLzg1
MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgZG9uJ3QgbmVlZCB0byB1c2UgV0tVU0RQcmV2aWV3VmlldyBpZiB3ZSBoYXZlIE1vZGVsRG9j
dW1lbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVudFByb3Zp
ZGVyUmVnaXN0cnkubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lz
dHJ5IGluaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKwogMjAyMS0xMS0xMiAgR2FycmV0dCBEYXZp
ZHNvbiAgPGRhdmlkc29uLmdhcnJldHRtQGdtYWlsLmNvbT4KIAogICAgICAgICBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsIHNob3VsZCBleHBvc2UgYSB3YXkgdG8gZW5jb2RlIENUQVAgY29tbWFu
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMTQyZmFlZDlmNmY1M2E3MzRlMTk1ZDJkODBiYjY1
NWRiMzM2MjQ2NS4uMDUzMjY0NjJhODBhZGZhZjM2YTY5NmQ2YWJmYzg5ZmJkY2ZjOWNmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwOTAsMyArMTA5MCw3IEBACiAgICAgfHwgKFBMQVRGT1JN
KFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSA4MDQwMCkKICNk
ZWZpbmUgSEFWRV9BVURJT1NFU1NJT05fUFJPQ0VTU0FTU0VSVElPTiAxCiAjZW5kaWYKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX01PREVMX0RPQ1VNRU5UIDEKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA1NGQ4ZDNiZDk4MGU4YjliNmI4MjFmOWNjYjRmYTUyMmUxYmYxZTAy
Li5mOTU2MmQ5YmY2MWMwYjVhN2Y1YTRlZGNmODRmOGRhM2NmMjhjYTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTI5Miw2ICsxMjkyLDcgQEAgaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCiBodG1sL01l
ZGlhRG9jdW1lbnQuY3BwCiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCiBodG1sL01lZGlh
RnJhZ21lbnRVUklQYXJzZXIuY3BwCitodG1sL01vZGVsRG9jdW1lbnQuY3BwCiBodG1sL01vbnRo
SW5wdXRUeXBlLmNwcAogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCiBodG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5OWM4NmQ5ZGJlN2I1ZjA5ODRlZWY1OTYwM2U1ZmJiNzhlMzJiZGY1Li44
MjY2ZmY5ZmU3ODE4YTFlZjEwNzQxYThiMWJlYzdhYmM1MWZlOGFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NDMsNiArOTQz
LDcgQEAKIAkJMzEzNTkxMEIxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNTFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCAqLzsgfTsKIAkJMzEzQkNFMUMy
MzVFM0JFNTAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxl
bWVudENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMTNERTg3MDIzQTk2OTczMDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZGMjNB
OTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAv
KiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTNFNzlFOTI3M0M4NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5oICovOyB9
OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0
QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBF
NCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3
MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAv
KiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTc4OTksNiAr
NzkwMCw4IEBACiAJCTMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50Q29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNERTg2RDIzQTk2OTY2MDA4RkM0N0IgLyogR3Jh
cGhpY3NDb250ZXh0R0wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0R0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNE
RTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0wuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzEzRTc5RTkyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVsRG9jdW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kZWxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTNFNzlFQzI3M0M4NkU4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNb2RlbERvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBF
NCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTQwMzc5OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTM4LDEx
ICsxODk0MSwxMSBAQAogCQkxQTU2OUNDNDBEN0UyQjYwMDA3QzM5ODMgLyogYnJpZGdlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1OUI1OTc3MTExMDg2
NTU2MDA3MTU5RTggLyoganNjICovLAogCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBv
YmpjICovLAogCQkJCTU5OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJ
CQkxQTcxRDU3OTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJ
MUE3MUQ1N0EwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKKwkJCQk1OUI1
OTc3MTExMDg2NTU2MDA3MTU5RTggLyoganNjICovLAogCQkJCTFBNTY5Q0VGMEQ3RTJCODIwMDdD
Mzk4MyAvKiBydW50aW1lX2FycmF5LmNwcCAqLywKIAkJCQkxQTU2OUNGMDBEN0UyQjgyMDA3QzM5
ODMgLyogcnVudGltZV9hcnJheS5oICovLAogCQkJCTFBNTY5Q0YxMEQ3RTJCODIwMDdDMzk4MyAv
KiBydW50aW1lX21ldGhvZC5jcHAgKi8sCkBAIC0yNDg4MCw2ICsyNDg4Myw4IEBACiAJCQkJRTQ0
NjEzOUMwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaWRsICovLAogCQkJCTA3QTZEMUU5
MTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAqLywKIAkJCQkw
N0E2RDFFQTE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5oICovLAor
CQkJCTMxM0U3OUVDMjczQzg2RTgwMDk3RjkwNSAvKiBNb2RlbERvY3VtZW50LmNwcCAqLywKKwkJ
CQkzMTNFNzlFOTI3M0M4NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5oICovLAogCQkJCUY1
NUIzRDkxMTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1
QjNEOTIxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBlLmggKi8sCiAJCQkJRjU1QjNE
OTMxMjUxRjEyRDAwM0VGMjY5IC8qIE51bWJlcklucHV0VHlwZS5jcHAgKi8sCkBAIC0zNTE3Niw2
ICszNTE4MSw3IEBACiAJCQkJQ0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3MTU2MTBDMjM0QzFDQTEwMDhGQzdBQiAvKiBNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREM4RDM5
ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9kZWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxM0U3OUVB
MjczQzg2QjgwMDk3RjkwNSAvKiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzJCNDExNzI3MzJGNDFFMDBBMkQxOTEgLyogTW9kZWxQbGF5ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMkI0MTE5MjczMkY0MjkwMEEyRDE5MSAvKiBNb2RlbFBsYXllckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMyQjQxMTgyNzMyRjQyMzAwQTJEMTkxIC8qIE1vZGVsUGxheWVyUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKaW5kZXggOTMxOWUwY2JmYjkyMTUwNjViMTMyNTA0ODYwZjVmODVkYTFiNDIzYy4uNjE2
ZGIzYWI2NWM3ZDQ3YzgyNTlhZWVlNDdkODg4NWViNWIyOTI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC01Nyw2ICs1NywxMCBAQAogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisj
aWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisjaW5jbHVk
ZSAiTW9kZWxEb2N1bWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTE2Miw2ICsxNjYsMTEgQEAgUmVmPERvY3VtZW50
PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgRnJhbWUKICAgICAgICAgcmV0dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwg
c2V0dGluZ3MsIHVybCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKSAmJiBI
QVZFKE1PREVMX0RPQ1VNRU5UKQorICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1VTRE1JTUVU
eXBlKGNvbnRlbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuIE1vZGVsRG9jdW1lbnQ6OmNyZWF0ZShm
cmFtZSwgc2V0dGluZ3MsIHVybCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVFBESVIpCiAgICAg
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnRlbnRUeXBlLCAiYXBwbGljYXRp
b24veC1mdHAtZGlyZWN0b3J5IikpCiAgICAgICAgIHJldHVybiBGVFBEaXJlY3RvcnlEb2N1bWVu
dDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
Y2QwM2RkMTc0ZTcyMzk5ODIyY2VhYTRjYjg0NzJjNGMxODJjZDJhNC4uYjZiYjI3NDg0NWM1ZTAz
NmQzZGQxNTk5NjlhMTgzZDAyMGUxZGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTMwMiw4
ICszMDIsMTEgQEAgZW51bSBEb2N1bWVudENsYXNzIHsKICAgICBTVkdEb2N1bWVudENsYXNzID0g
MSA8PCA1LAogICAgIFRleHREb2N1bWVudENsYXNzID0gMSA8PCA2LAogICAgIFhNTERvY3VtZW50
Q2xhc3MgPSAxIDw8IDcsCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxf
RE9DVU1FTlQpCisgICAgTW9kZWxEb2N1bWVudENsYXNzID0gMSA8PCA4LAorI2VuZGlmCiB9Owot
dXNpbmcgRG9jdW1lbnRDbGFzc0ZsYWdzID0gdW5zaWduZWQgY2hhcjsKK3VzaW5nIERvY3VtZW50
Q2xhc3NGbGFncyA9IHVpbnQzMl90OwogCiBlbnVtIGNsYXNzIERvY3VtZW50Q29tcGF0aWJpbGl0
eU1vZGUgOiB1bnNpZ25lZCBjaGFyIHsKICAgICBOb1F1aXJrc01vZGUgPSAxLApAQCAtNTQwLDYg
KzU0Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGx1Z2luRG9jdW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX2RvY3VtZW50Q2xhc3NlcyAmIFBsdWdpbkRvY3VtZW50Q2xhc3M7IH0KICAgICBib29s
IGlzTWVkaWFEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRDbGFzc2VzICYgTWVk
aWFEb2N1bWVudENsYXNzOyB9CiAgICAgYm9vbCBpc1RleHREb2N1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fZG9jdW1lbnRDbGFzc2VzICYgVGV4dERvY3VtZW50Q2xhc3M7IH0KKyNpZiBFTkFCTEUo
TU9ERUxfRUxFTUVOVCkgJiYgSEFWRShNT0RFTF9ET0NVTUVOVCkKKyAgICBib29sIGlzTW9kZWxE
b2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRDbGFzc2VzICYgTW9kZWxEb2N1bWVu
dENsYXNzOyB9CisjZW5kaWYKICAgICBib29sIGhhc1NWR1Jvb3ROb2RlKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIGlzRnJhbWVTZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTdhZWVlMTMyZjc4MzEw
NGU2MzlkMjE0MzUwNTRiOTZlZTE5ZGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb2RlbERvY3VtZW50LmNwcApAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNb2RlbERvY3VtZW50LmgiCisKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkgJiYg
SEFWRShNT0RFTF9ET0NVTUVOVCkKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkhU
TUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxNb2RlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJIVE1MU291cmNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJSYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTW9kZWxEb2N1bWVu
dCk7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK2NsYXNzIE1vZGVsRG9jdW1lbnRQ
YXJzZXIgZmluYWwgOiBwdWJsaWMgUmF3RGF0YURvY3VtZW50UGFyc2VyIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPE1vZGVsRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShNb2RlbERvY3VtZW50JiBk
b2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZGVsRG9jdW1l
bnRQYXJzZXIoZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTW9kZWxEb2N1bWVu
dFBhcnNlcihNb2RlbERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBSYXdEYXRhRG9jdW1l
bnRQYXJzZXIgeyBkb2N1bWVudCB9CisgICAgICAgICwgbV9vdXRnb2luZ1JlZmVycmVyIHsgZG9j
dW1lbnQub3V0Z29pbmdSZWZlcnJlcigpIH0KKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjcmVh
dGVEb2N1bWVudFN0cnVjdHVyZSgpOworCisgICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdy
aXRlciYsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQgZmluaXNoKCkg
ZmluYWw7CisKKyAgICBIVE1MTW9kZWxFbGVtZW50KiBtX21vZGVsRWxlbWVudCB7IG51bGxwdHIg
fTsKKyAgICBTdHJpbmcgbV9vdXRnb2luZ1JlZmVycmVyOworfTsKKwordm9pZCBNb2RlbERvY3Vt
ZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCit7CisgICAgYXV0byYgZG9jdW1l
bnQgPSAqdGhpcy0+ZG9jdW1lbnQoKTsKKworICAgIGF1dG8gcm9vdEVsZW1lbnQgPSBIVE1MSHRt
bEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQocm9v
dEVsZW1lbnQpOworICAgIGRvY3VtZW50LnNldENTU1RhcmdldChyb290RWxlbWVudC5wdHIoKSk7
CisgICAgcm9vdEVsZW1lbnQtPmluc2VydGVkQnlQYXJzZXIoKTsKKworICAgIGlmIChkb2N1bWVu
dC5mcmFtZSgpKQorICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhV
c2VyU2NyaXB0SW5qZWN0aW9uVGltZTo6RG9jdW1lbnRTdGFydCk7CisKKyAgICBhdXRvIGhlYWRF
bGVtZW50ID0gSFRNTEhlYWRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJvb3RFbGVt
ZW50LT5hcHBlbmRDaGlsZChoZWFkRWxlbWVudCk7CisKKyAgICBhdXRvIG1ldGFFbGVtZW50ID0g
SFRNTE1ldGFFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIG1ldGFFbGVtZW50LT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKG5hbWVBdHRyLCBBdG9tU3RyaW5nKCJ2aWV3
cG9ydCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgbWV0YUVsZW1l
bnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29udGVudEF0dHIsIEF0b21T
dHJpbmcoIndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZChtZXRh
RWxlbWVudCk7CisKKyAgICBhdXRvIHN0eWxlRWxlbWVudCA9IEhUTUxTdHlsZUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgYXV0byBzdHlsZUNvbnRlbnQgPSBtYWtlU3RyaW5nKCJib2R5
IHsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuIiwKKyAg
ICAgICAgIkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsgYm9keSB7IGJhY2tn
cm91bmQtY29sb3I6IHJnYigzMiwgMzIsIDM3KTsgfSB9XG4iLAorICAgICAgICAibW9kZWwgeyB3
aWR0aDogODB2dzsgaGVpZ2h0OiA4MHZoOyB9XG4iKTsKKyAgICBzdHlsZUVsZW1lbnQtPnNldFRl
eHRDb250ZW50KHN0eWxlQ29udGVudCk7CisgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKHN0
eWxlRWxlbWVudCk7CisKKyAgICBhdXRvIGJvZHkgPSBIVE1MQm9keUVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkpOworCisgICAgYXV0
byBtb2RlbEVsZW1lbnQgPSBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjptb2Rl
bFRhZywgZG9jdW1lbnQpOworICAgIG1fbW9kZWxFbGVtZW50ID0gbW9kZWxFbGVtZW50LnB0cigp
OworICAgIG1vZGVsRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihj
b250cm9sc0F0dHIsIGVtcHR5QXRvbSgpKTsKKworICAgIGF1dG8gc291cmNlRWxlbWVudCA9IEhU
TUxTb3VyY2VFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjpzb3VyY2VUYWcsIGRvY3VtZW50KTsK
KyAgICBzb3VyY2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHNy
Y0F0dHIsIGRvY3VtZW50LnVybCgpLnN0cmluZygpKTsKKyAgICBpZiAoUmVmUHRyIGxvYWRlciA9
IGRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICBzb3VyY2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKHR5cGVBdHRyLCBsb2FkZXItPnJlc3BvbnNlTUlNRVR5cGUo
KSk7CisKKyAgICBtb2RlbEVsZW1lbnQtPmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQpOworCisg
ICAgYm9keS0+YXBwZW5kQ2hpbGQobW9kZWxFbGVtZW50KTsKKyAgICBkb2N1bWVudC5zZXRIYXNW
aXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpOworCisgICAgUmVmUHRyPEZyYW1lPiBmcmFt
ZSA9IGRvY3VtZW50LmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZnJhbWUtPmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnNldE1haW5SZXNv
dXJjZURhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeTo6RG9Ob3RCdWZmZXJE
YXRhKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkuc2V0T3V0Z29pbmdSZWZlcnJlcihkb2N1bWVudC5j
b21wbGV0ZVVSTChtX291dGdvaW5nUmVmZXJyZXIpKTsKK30KKwordm9pZCBNb2RlbERvY3VtZW50
UGFyc2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QpCit7CisgICAgaWYgKCFtX21vZGVsRWxlbWVudCkKKyAgICAgICAgY3JlYXRlRG9jdW1lbnRT
dHJ1Y3R1cmUoKTsKK30KKwordm9pZCBNb2RlbERvY3VtZW50UGFyc2VyOjpmaW5pc2goKQorewor
ICAgIGRvY3VtZW50KCktPmZpbmlzaGVkUGFyc2luZygpOworfQorCitNb2RlbERvY3VtZW50OjpN
b2RlbERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25z
dCBVUkwmIHVybCkKKyAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgTW9k
ZWxEb2N1bWVudENsYXNzKQoreworICAgIGlmIChmcmFtZSkKKyAgICAgICAgbV9vdXRnb2luZ1Jl
ZmVycmVyID0gZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKTsKK30KKworUmVmPERv
Y3VtZW50UGFyc2VyPiBNb2RlbERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQoreworICAgIHJldHVy
biBNb2RlbERvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMpOworfQorCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTZmODk3Mzk5ZjA2ZjY3
YWU1ODE4MTNkOWUxNmQxMGZhY2JmOGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb2RlbERvY3VtZW50LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9DVU1FTlQpCisKKyNpbmNsdWRlICJIVE1M
RG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNb2RlbERvY3VtZW50
IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChNb2RlbERvY3VtZW50KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vZGVsRG9jdW1lbnQ+
IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJM
JiB1cmwpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2RlbERvY3VtZW50
KGZyYW1lLCBzZXR0aW5ncywgdXJsKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+TW9kZWxEb2N1
bWVudCgpID0gZGVmYXVsdDsKKworICAgIFN0cmluZyBvdXRnb2luZ1JlZmVycmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9vdXRnb2luZ1JlZmVycmVyOyB9CisKK3ByaXZhdGU6CisgICAgTW9kZWxEb2N1
bWVudChGcmFtZSosIGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJik7CisKKyAgICBSZWY8RG9j
dW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fb3V0
Z29pbmdSZWZlcnJlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpNb2RlbERvY3VtZW50KQorICAgIHN0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGRv
Y3VtZW50LmlzTW9kZWxEb2N1bWVudCgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6Ok5vZGUmIG5vZGUpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OkRvY3VtZW50Pihub2Rl
KSAmJiBpc1R5cGUoZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KG5vZGUpKTsgfQorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAppbmRleCA2ZjdhZjEyN2Nm
Y2UwNGUzYTA1Y2UwZmM2OTZhNzZiOGQwYWQxZDczLi5jM2ViNjUzZDZlYzA1ZGQxZjIxYzY3ZDdh
NGI3MTg4ZTIwYWZkZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJl
Z2lzdHJ5LmNwcApAQCAtNjU4LDYgKzY1OCwxMSBAQCBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmNh
blNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpICYmIEhBVkUoTU9ERUxfRE9D
VU1FTlQpCisgICAgaWYgKGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZShtaW1lVHlwZSkpCisgICAg
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKICAgICBpZiAoc3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShtaW1lVHlwZSwgInRleHQvIikpCiAgICAgICAgIHJldHVybiAhaXNVbnN1
cHBvcnRlZFRleHRNSU1FVHlwZShtaW1lVHlwZSk7CiAKQEAgLTY4OCw2ICs2OTMsMTMgQEAgYm9v
bCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1VTRE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
CiAgICAgcmV0dXJuIHVzZE1JTUVUeXBlU2V0LmNvbnRhaW5zKG1pbWVUeXBlKTsKIH0KIAorI2lm
IEVOQUJMRShNT0RFTF9FTEVNRU5UKSAmJiBIQVZFKE1PREVMX0RPQ1VNRU5UKQorYm9vbCBNSU1F
VHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1vZGVsTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSkKK3sKKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6aXNVU0RNSU1FVHlwZShtaW1l
VHlwZSk7Cit9CisjZW5kaWYKKwogLy8gRklYTUU6IE5vdCBncmVhdCB0aGF0IENVUkwgbmVlZHMg
dGhpcyBjb25jZXB0OyBvdGhlciBwbGF0Zm9ybXMgZG8gbm90Lgogc3RhdGljIFN0cmluZyBub3Jt
YWxpemVkSW1hZ2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCmluZGV4IDBhZDI2OTdiOTZkMmNlYTJi
NzhiYjYyMTU0MjNjYzJhNTYwNWE3YzYuLjM5NjM1NmVmNDBlYTdlZjE1NmQzYmI4YWM5ZDlhMzg4
MGE2YWZlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVn
aXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgK
QEAgLTEwOCw2ICsxMDgsMTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgaXNVU0RNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAorI2lmIEVOQUJM
RShNT0RFTF9FTEVNRU5UKSAmJiBIQVZFKE1PREVMX0RPQ1VNRU5UKQorICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKTsKKyNlbmRpZgorCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgTUlNRSB0eXBlIGlz
IHN1aXRhYmxlIGZvciBiZWluZyBzaG93biBpbnNpZGUgYSBwYWdlLgogICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiBhbnkgb2YgaXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlKCksIGlzU3VwcG9ydGVkTm9u
SW1hZ2VNSU1FVHlwZSgpLAogICAgIC8vIGlzU3VwcG9ydGVkTWVkaWFNSU1FVHlwZSgpLCBpc1N1
cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSgpLCBpc1N1cHBvcnRlZEpTT05NSU1FVHlwZSgpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVu
dFByb3ZpZGVyUmVnaXN0cnkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1dl
YlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbQppbmRleCA2OTQyMGQ3OTc3NGQxNWQxMDAx
MWZlZDNjZGFlOGY2YTc0MGI2MjAxLi40NGYyMjEzYzM4YmMwMjYwYzkxZjkyYmExMDE3OTc1ZjM1
N2RiNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZp
ZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbQpAQCAtNTQsNyArNTQs
NyBAQAogICAgICAgICBbc2VsZiByZWdpc3RlclByb3ZpZGVyOltXS1BERlZpZXcgY2xhc3NdIGZv
ck1JTUVUeXBlOkAodHlwZSldOwogI2VuZGlmCiAKLSNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpICYm
ICFIQVZFKFVJS0lUX1dFQktJVF9JTlRFUk5BTFMpCisjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKSAm
JiAhSEFWRShVSUtJVF9XRUJLSVRfSU5URVJOQUxTKSAmJiAhSEFWRShNT0RFTF9ET0NVTUVOVCkK
ICAgICBpZiAoY29uZmlndXJhdGlvbi5fc3lzdGVtUHJldmlld0VuYWJsZWQpIHsKICAgICAgICAg
Zm9yIChhdXRvJiB0eXBlIDogV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6dXNkTUlNRVR5cGVz
KCkpCiAgICAgICAgICAgICBbc2VsZiByZWdpc3RlclByb3ZpZGVyOltXS1VTRFByZXZpZXdWaWV3
IGNsYXNzXSBmb3JNSU1FVHlwZTpAKHR5cGUpXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0OWJjYzA2N2NmZDVjYmIxZjk0
NTc2ZTdkZmI3YTJjYzNmY2I3ZGQ0Li44YjMzNjg2MWYwZjJlZTc5Zjg5NjcxMjMwNjk2ZWZlNjQ2
MmJhNWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTEtMTIgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3Rs
eSBzaG93aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAg
cmRhcjovLzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmV3IHRlc3QgZm9yIE1vZGVsRG9jdW1lbnQuCisKKyAgICAgICAgKiBodHRwL2Nv
bmYvbWltZS50eXBlczogQ29uZmlndXJlIHRoZSB0ZXN0aW5nIEFwYWNoZSBzZXJ2ZXIgdG8gc2Vy
dmUgVVNEWiBmaWxlcworICAgICAgICB3aXRoIHRoZSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21vZGVsL1VuaXRCb3gudXNkejogU2FtcGxlIGZpbGUuCisgICAgICAg
ICogaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbDogTmV3IHRlc3Qg
Zm9yIGEgTW9kZWxEb2N1bWVudC4KKwogMjAyMS0xMS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIHdoZW4gYWNjZXNzaW5nIHJlYXNvbiBwcm9wZXJ0
eSBvZiBhIG5ld2x5IGNyZWF0ZWQgQWJvcnRTaWduYWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvY29uZi9taW1lLnR5cGVzIGIvTGF5b3V0VGVzdHMvaHR0cC9jb25mL21pbWUudHlwZXMK
aW5kZXggMGEyZjc1N2Q1Yzg3ZDdmYTY1NDU2ZDUwYzMyM2U4MWMzY2ExMWM4OS4uNDdiNmJlMDAz
ZjdmZDUwYmU4OGYzNTEwMGRlYTFiMDRkYzZjNjE4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC9jb25mL21pbWUudHlwZXMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC9jb25mL21pbWUudHlw
ZXMKQEAgLTUxNSw2ICs1MTUsNyBAQCBtb2RlbC92bmQuZ3R3CiBtb2RlbC92bmQubXRzCiBtb2Rl
bC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LmJpbmFyeQogbW9kZWwvdm5kLnBhcmFzb2xpZC50cmFu
c21pdC50ZXh0Cittb2RlbC92bmQudXNkeit6aXAgdXNkegogbW9kZWwvdm5kLnZ0dQogbW9kZWwv
dnJtbAkJCXdybCB2cm1sCiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwvVW5pdEJveC51c2R6IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tb2RlbC9Vbml0Qm94LnVzZHoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZiNzExODI5ZTAxNjJiNWM1YjJj
YzQ3YmQ4MDk2MjJiYzc4NmUyNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzIzMAp6Y21iX2ZV
NXAhNzYrVS10a0x+cXQqV08pc2NhdSUqezU0NkZIcUlLRnZMdV8/ZFFIMDhIMCFLQVFCWWZ5U15H
TFcKenN5Klkqak1HaVVnRFZpY2xuTj5rRkZkcldgaHRwNzFwUnF9QW8+N20oaVVoeiY7JFlmUUI7
QkF1cW9OSE50U2MyCnpYQj15e3NYKmUkWFVANmplQ0tFRys/aml3b0EmdjtmTjEmWUN1ZmglZyUy
ITYwRWx+YDl+QHEtJkQ1UCotTVBETgp6bXh8dlE/aUo5RU9ZWnBXVTIxK1oxSHFPdGdeflhjVnJ+
KllOPjMrSyRoRWdAVTVlK0VJKCRCWD1+Qm8+NmhyUHEKel9PSnR9ZHBecDRKOH4tcVU9Wn5vPFk4
cDUpX1QtT2tUKVEyTHsxPGxrdHhxNldHfmxkKVZDbWViKyZjcmNjMzBYCnpDZmIyYTxESk5OQkpW
PT5WeiM2MTxAMGRlWGR8Sz97fTxqV3E1eDheZ3l1I0hTRkBebVI4P34tPnlpSl96aiY/Wgp6WVNA
M3tgb0ZfaCpgZ2YkcjAzRmdgTVB7PEY/UHZjb09vJmZ4MU8zRWY4KkBvZ0ZkZjhuVlJxaC1WQytv
JXEhRTkKemppMDtuQWokXipORD8pfjZAPWZfJHdLNFI3LTR0Z2diKHFuRj5DVDV6N3ltMTtubnFP
d1IyTld0U3R6MnFCU3xHCnp3XmJOeyEmK19HU2NfU2M9akpAZEZ8SXcyd0NZKyFZdEpSakUkKU5y
ZXVnZzRGNkxJYyRiJmlCY3xKdUt2OUE0Nwp6YiokMHU9UUgkbjR+ViZ5LXROY0NhfWJmTWJQPzs/
KlhsUnRETT1YUSkkK2BFJWY0Qz9QSTIqX2w1akwkRWVZUjEKenBDP2I/NytmNkxwYCh0Nkx1KDY8
SUtuRn5wNnJEOCMqS3NGcj5+QmlrSDBXcGVwJnQ1RTlWWCY0d05VJTRHSUJnCnotc3ZhVmtiYiZl
QHhCU1BRc34+e3lAOUI8emYqbzFLJG9IajNHbFdYXnBGP2EreT9kOSNEWj9hbSFXM3EpeSV3Sgp6
RE91YkEpekY+JCVtcGEldlIxRCtJcktyNUpLVkIhK31aJW1Mcnw+U2ojKWpkbyN4aTA9NGVvfnhh
T0ReO0l7QzEKeihLSnFSJVNxTk9lb0UoJEJ+eTNiR1lXUSU3eGw4dkVwU2ZQX3p8dGo7ZHQ0IXMt
VzM2Y2N6VDgyfVQ/aSpGVH5nCnpCYEJLSm5yVSN1ZmRAM0tzJXNTKzRzby1KVTc5c2F0I2NjeT4h
MkFMbj90eTZvUD5ONDlneEFhbUllekMhRH08TQp6Rn5geWp5TWhWJnBmRj5WeFlZdl9XMlU4LTth
UDZhTChTOTsjfTJiSXIhPm5Sdm1HJDdvdio/WUR7RG81NDZFPmsKekROSjYoQEtuYUU/fUlELWM3
M2otcFZEcEpIMWZySGpgdlY5PnZJKkoqR3Mkdl9mX2lyYj9fZiFlVk9mUzhAR2xiCno1UWRhcHdg
QHF8PWR+WmYqRyNjQCtHRHJsVU9FV1I+VWhePGRJQHg2QmZNREIlakxTd0dpSnBjMFg2XyUjfGhV
ZQp6Nn1gOT51MCQtZWVzYlI2d2hlUXBTcG49PSpYSHohP3d0TX1KY0lHaGdBYXBhSmAkOGg/TmFW
Ril8ZFlkQiUkfmYKelNQWjFnUF9DR28xQ0N+JDxXNWQ9PUl2Y2ZOdFlqZEkwRytvdDdoVTE7ciYy
RmBaaXl7bkt1a3g+O293VSV3VEt9Cnp1dH16dlIldnVVSlpJbnxmayozX1EmdzFDYGJqdX1NUTZH
OEx4P0J1V3loMUZzcE83RnI0I2hEY2VlTDcrN1pJWQp6dzt8SmRxeUBiWG5UVEUjTDk/Xz1zdGhp
NzRhQyQhRWJDe0kjRiE3U1NFNVR4KFdPdWBCdHRWOFVFMGhwej1hREoKekshIWhyQj4wXmU/RENk
PVFvXj8mNjtYfXtWRkxHM2UrYlMqbC00Jll0U2tnIzVLUk8/ISVCQjUtNjdaO1E1dHduCnpLdmR7
STJ0aiUkeWJ5dnxUI1IyODw2cSU7b2Z3fUZmcjI/MUtHMj04SDMlN3FDPDlVR1BsbGo+YHc7WitN
KlYpJgp6MyZee1p6PFAxIy07RnQjdlMkY2xyNUtGKjhkemg/R2JzZWBNYklkd0tBKGoyNVR2OFBn
NzZDbkRkKjBmI1dAS24KekFFU0xVVHR2akBIJkxVWjM2PnNlPzJBRyY8cU1QUktuUzg9PSo4UU5E
N2glK1hwQlc2d3hGfjBLO3cocCRiTzdlCnpZQWhYdDE4NjcyQWRFKyRGKXZPV2t3I1VfST4yTURn
ZUlwKyM2PWcrIz9eU0NmVHd8aW4jRHVHZ2c2PXU7SW1ubAp6S2JCPVk1ZDJkUEgpVDArTiQmbzst
MjBJblRiNUF6RSlJViVeNF5IX3g1VHBpbXJafShhKDt7Uz96LStqdD9UKlkKempeOEpgLSUwIzYo
ZXc2UXp1bUplem0tQFhkfkB7Tj1VJV8oe1NDaVB4YUI9YnQzWGdRTShySCsyall8UUxMQi1vCno0
U3kpaFFzQVRMV20pbnNNbFQxI2JXe0A1OTklKEN2MT5KZVEyKWd7e0opViMtaiFJX1JxNUteKnNJ
ZSYyfjU1Ngp6ej5sU2wrIVN7LTh2cUplVlltSjMrNn41VHU8KzZmVUt3N3pjSVglPU5URnswQEsj
UjZgSUE7OFh+bm5GblVMMFgKelQ9Qj0lcXd4V2RnTW9uMDJSPWQ0NGIqKmZFKT4paEFLbX4mQSZN
ITNFNmMlOD09ZWxibjM+S1YkK3ZYNmUlQyE1CnpJX3xlUlV6blhiYV9BLT88UX0hPzk3Xj0xc3FF
cCZue0w/WmBrJGNRK3h+MzlnRkhfIUNESiFyMCYpfERgI20zLQp6Y0RNY24hMXJCJEs5fGpPYGhW
JkF5YF98IVg0dlZpfDJlcDZUPThIMGtDK2FLc2JUbXw9UD5HQ2FwP1VJXjdJeH0KCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwv
bW9kZWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tb2Rl
bC9tb2RlbC1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVlMGMzOTc2YWJjYmI1
ZjY4MTE5MzA2YjVmMWM4YmJhNWFjZTdiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorQmFzaWMgTW9kZWxEb2N1bWVudCB0ZXN0LgorCitQQVNTOiA8bW9kZWw+IGFuZCA8c291
cmNlPiBzZWVuIGluIGlmcmFtZS4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21v
ZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRjMzlmOWMxMDU1M2NhNmJiMmRi
NGExNmRhMmFiMGY5MjFmZjdhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1bigpCisgICAgeworICAgICAgICBjb25zdCBm
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBmcmFtZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgY29uc3Qg
b3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOworICAgICAgICAgICAg
Y29uc3QgbW9kZWwgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxlY3RvcigibW9kZWwi
KTsKKyAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJtb2RlbCBzb3VyY2UiKTsKKyAgICAgICAgICAgIGlmICghbW9kZWwpCisgICAg
ICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gIkZBSUw6IDxtb2RlbD4gbm90IHNlZW4g
aW4gaWZyYW1lLiI7CisgICAgICAgICAgICBlbHNlIGlmICghc291cmNlKQorICAgICAgICAgICAg
ICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICJGQUlMOiA8bW9kZWw+IGZvdW5kLCBidXQgbm8gPHNv
dXJjZT4gY2hpbGQuIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvdXRwdXQu
dGV4dENvbnRlbnQgPSAiUEFTUzogPG1vZGVsPiBhbmQgPHNvdXJjZT4gc2VlbiBpbiBpZnJhbWUu
IjsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgZnJhbWUuc3Jj
ID0gIlVuaXRCb3gudXNkeiI7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJh
bWUpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1biwgZmFs
c2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorQmFzaWMgTW9kZWxEb2N1bWVu
dCB0ZXN0LgorPHA+Cis8cCBpZD0ib3V0cHV0Ij48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTBiMTEy
NmY0MWExZGI4YzMwZDg5NTZhNjNhMzQ5Y2Y5ZjFlZmQ0Zi4uOTQzY2I5NGIxNTYzNWFmOTg4MmE4
NzI0YjAxZjBlMzlkOWYxMTI4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNDcsNiArNDcsNyBAQCBjc3MtY3VzdG9tLXByb3BlcnRpZXMt
YXBpIFsgU2tpcCBdCiBjc3MtdHlwZWRvbSBbIFNraXAgXQogY3NzLWRhcmstbW9kZSBbIFNraXAg
XQogbW9kZWwtZWxlbWVudCBbIFNraXAgXQoraHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVu
dC5odG1sIFsgU2tpcCBdCiAKICMgTWVkaWEgU3RyZWFtIEFQSSB0ZXN0aW5nIGlzIG5vdCBzdXBw
b3J0ZWQgZm9yIFdLMSB5ZXQuCiBmYXN0L21lZGlhc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDliZjA1MjJmMGNlNWZiZTEyMjhiNjIwNzQ0Mjll
MzAyNDMzMTFhYWIuLjc3ZmE3YzNkMGZlNTU1ZGRkNjAxMTk3NTRmNTY3MWUxYTllOWM3MDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzEzLDYgKzE3
MTMsNyBAQCB3ZWJraXQub3JnL2IvMjE0MTU1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcAogWyBDYXRhbGluYSBNb2phdmUgQmlnU3Vy
IF0gd2ViYXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtd2VibS1vcHVzLmh0bWwgWyBTa2lwIF0KIFsg
Q2F0YWxpbmEgTW9qYXZlIEJpZ1N1ciBdIHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXdlYm0t
b3B1cy1yZXNhbXBsZS5odG1sIFsgU2tpcCBdCiBbIENhdGFsaW5hIE1vamF2ZSBCaWdTdXIgXSB3
ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS13ZWJtLXZvcmJpcy5odG1sIFsgU2tpcCBdCitbIENh
dGFsaW5hIE1vamF2ZSBCaWdTdXIgXSBodHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0
bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzIxNDQyMiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZh
Y2Uvc3VzcGVuZC1hZnRlci1jb25zdHJ1Y3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTgwZTJiNGNmNmU4MzRh
MDU5MTBjYmQ0YjA1M2ZmNDQ0MDU5ZWY5NS4uODRmZmNiZTVmMjJiNGJkNjA4MGNmY2ZjYjYxZjVi
YmE3NDdlMTA1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzMiw2ICsxMzIsOSBAQCB3ZWJraXQub3JnL2IvNzQ3MTYgY3NzMy9maWx0ZXJzL2JhY2tk
cm9wIFsgU2tpcCBdCiBmYXN0L2hhcm5lc3MvcGxhdGZvcm0tbGF5ZXItdHJlZS1hcy10ZXh0Lmh0
bWwgWyBTa2lwIF0KIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMt
b3BhY2l0eS5odG1sIFsgU2tpcCBdCiAKKyMgQXBwbGUgQ29jb2Egb25seSBmb3IgdGhlIG1vbWVu
dC4KK2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbCBbIFNraXAgXQorCiAjIGNv
bG9yLWZpbHRlcnMgYXJlIG9mZiBieSBkZWZhdWx0CiB3ZWJraXQub3JnL2IvMTg1MDc2IGNzczMv
Y29sb3ItZmlsdGVycyBbIFNraXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444452</attachid>
            <date>2021-11-16 16:41:52 -0800</date>
            <delta_ts>2021-11-16 17:18:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233057-20211117114150.patch</filename>
            <type>text/plain</type>
            <size>31809</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkNDhhMjBkMDQyMDczZTkwNzc4NDk1
ZWNlNDQzYWJkYTdkYzQwOWUuLmEyNTMzNTE1M2I0NDI5NGQ1MmVkYzcxZjk1N2E4YzM4MDc4MzRk
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTYgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBNb2RlbERvY3VtZW50IGZvciBkaXJlY3RseSBzaG93
aW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwNTcKKyAgICAgICAgcmRhcjov
Lzg1MjY1ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgZXhwZXJpbWVudGFsIGZlYXR1cmU6IE1vZGVsRG9jdW1lbnRFbmFibGVkCisgICAg
ICAgIGZvciBsb2FkaW5nIGNvbnRlbnQgdGhhdCBjYW4gYmUgaGFuZGxlZCBieSA8bW9kZWw+Lgor
CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bC55YW1sOgorCiAyMDIxLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgYW5vdGhlciA8bW9kZWw+IGJhY2tlbmQgYmFja2VkIGJ5IFNjZW5lS2l0IHRv
IHByb3ZlIG91dCBNb2RlbFBsYXllciBpbmZyYXN0cnVjdHVyZSBhIGJpdCBtb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDdjODk1MGJiMmY4YjYzNGU2ODBiZDkxOTBkZWVhM2MxZDlhOTgwNC4uZTJkNTFmNDkw
YjRlNDY2NmM1NDFhNGQ3OGFhMGRmNzEwOGIzYTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQy
IEBACisyMDIxLTExLTEyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgTW9kZWxEb2N1bWVudCBmb3IgZGlyZWN0bHkgc2hvd2luZyBjb250ZW50IHRoYXQgY2Fu
IGJlIGhhbmRsZWQgYnkgPG1vZGVsPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzMDU3CisgICAgICAgIHJkYXI6Ly84NTI2NTg4MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBNb2RlbERv
Y3VtZW50IGNsYXNzIHRoYXQgaXMgY3JlYXRlZCB3aGVuIHdlIGVuY291bnRlciBhIE1JTUUtdHlw
ZSB0aGF0CisgICAgICAgIGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSA8bW9kZWw+IGVsZW1lbnQuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC5odG1sCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3Vt
ZW50KTogQ3JlYXRlIGEgTW9kZWxEb2N1bWVudCB3aGVuIHdlCisgICAgICAgIHNlZSBhIE1JTUUt
dHlwZSB0aGF0IDxtb2RlbD4gY2FuIHN1cHBvcnQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDogQWRkIGEgbmV3IE1vZGVsRG9jdW1lbnRDbGFzcyB3aGljaCBtZWFudCBJIGFsc28gaGFkIHRv
CisgICAgICAgIGluY3JlYXNlIHRoZSBzaXplb2YgRG9jdW1lbnRDbGFzc0ZsYWdzLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmlzTW9kZWxEb2N1bWVudCBjb25zdCk6IAorCisgICAgICAg
ICogaHRtbC9Nb2RlbERvY3VtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2Rl
bERvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2RlbERvY3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2RlbERvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6TW9kZWxE
b2N1bWVudDo6TW9kZWxEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNb2RlbERvY3VtZW50
OjpjcmVhdGVQYXJzZXIpOgorICAgICAgICAqIGh0bWwvTW9kZWxEb2N1bWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKGlzVHlwZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5
LmNwcDogQWRkIGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZSBhbmQgdGVzdCBmb3IgaXQKKyAgICAg
ICAgaW4gY2FuU2hvd01JTUVUeXBlLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3Ry
eTo6Y2FuU2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5oOgorCiAyMDIxLTExLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW2Nzcy1jb250YWluXSBTdXBwb3J0IGNvbnRhaW46cGFpbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YTM2ZTg4MDRlZTg2NzE5YzkxY2ZlYjAwNzRmNTE3NDQ4NzEwNmNiNC4uZjg1NGVlNzIyYmJlNmYx
OTI1NzhlNTk1YzgyZGU0YzczYjFjYmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0xMS0xMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIE1v
ZGVsRG9jdW1lbnQgZm9yIGRpcmVjdGx5IHNob3dpbmcgY29udGVudCB0aGF0IGNhbiBiZSBoYW5k
bGVkIGJ5IDxtb2RlbD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzA1NworICAgICAgICByZGFyOi8vODUyNjU4ODAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBkb24ndCBuZWVkIHRvIHVzZSBXS1VT
RFByZXZpZXdWaWV3IGlmIHdlIGhhdmUgTW9kZWxEb2N1bWVudC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkgaW5pdFdpdGhDb25maWd1cmF0aW9u
Ol0pOgorCiAyMDIxLTExLTE2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGp1c3QgZ3JhcGhpY3MgcmVsYXRlZCBtZXNzYWdlIGZpbHRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA2NTY3ZThkOTRlYTRhMjM2ODEzOTYwMWNmOTZkNmI1
OWViNDE1ZWE0Li5kOWQ1ODgwNWNiMDJlNzk2NGIxZjc2MWQyZTI3ZTNmOGVkZmYxOTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODk0LDYgKzg5NCwxOSBAQCBNZWRpYVNvdXJj
ZUlubGluZVBhaW50aW5nRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogCitNb2RlbERvY3VtZW50RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIkhUTUwgPG1vZGVsPiBlbGVtZW50cyBmb3Igc3RhbmQtYWxvbmUgZG9jdW1lbnQiCisg
IGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkhUTUwgPG1vZGVsPiBlbGVtZW50IGZvciBtb2Rl
bCBkb2N1bWVudHMiCisgIGNvbmRpdGlvbjogRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgIHdlYmNv
cmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgICJF
TkFCTEUoU0VQQVJBVEVEX01PREVMKSI6IHRydWUKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1v
ZGVsRWxlbWVudEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJI
VE1MIDxtb2RlbD4gZWxlbWVudCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOWQ3NzU0OGNkZWEwYjQ3YjIy
MDZiYjU4ZGU2ZDNkYTA4NGU1Yzc0OC4uMGQzMWJhNWQ3MTE5YmRjMmY1MzU0Nzc0OTQ2OGExMDVh
NzkzMDljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEyOTMsNiArMTI5Myw3IEBAIGh0bWwvTWVkaWFD
b250cm9sbGVyLmNwcAogaHRtbC9NZWRpYURvY3VtZW50LmNwcAogaHRtbC9NZWRpYUVsZW1lbnRT
ZXNzaW9uLmNwcAogaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAoraHRtbC9Nb2RlbERv
Y3VtZW50LmNwcAogaHRtbC9Nb250aElucHV0VHlwZS5jcHAKIGh0bWwvTnVtYmVySW5wdXRUeXBl
LmNwcAogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGYyZTI1MzAxMjQ2NzUxY2JiZDI3
NGY3ZDIwZDlkMWQxYjc1YWMwMi4uMWYzZGM1ODNjYjQ0OTg5ZGU2ODg3ODBiMjRiMjgwM2RjOTQx
NWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQzLDYgKzk0Myw3IEBACiAJCTMxMzU5MTBCMUU3RERDNzMwMEYzMDYzMCAv
KiBSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRl
LmggKi87IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzQkNFMUIy
MzVFM0JEQjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzEzREU4NzAyM0E5Njk3MzAwOEZDNDdCIC8q
IEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTNF
NzlFQTI3M0M4NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzRTc5RTkyNzNDODZCODAwOTdGOTA1IC8q
IE1vZGVsRG9jdW1lbnQuaCAqLzsgfTsKIAkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFn
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
MTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk5MTI0
QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovOyB9OwogCQkz
MTQwQzUyMDFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQw
QzUxRTFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmggKi87IH07CkBAIC03OTAyLDYgKzc5MDMsOCBAQAogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5
RTUgLyogRWxlbWVudENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RWxlbWVudENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzREU4NkQy
M0E5Njk2NjAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzEzREU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29u
dGV4dEdMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dEdMLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxM0U3OUU5MjczQzg2QjgwMDk3
RjkwNSAvKiBNb2RlbERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGVsRG9jdW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzRTc5RUMyNzNDODZFODAwOTdGOTA1IC8q
IE1vZGVsRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kZWxEb2N1bWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb3JlTW90aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MTQwMzc5ODEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTW90aW9uTWFuYWdlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0
IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xODk1MywxMSArMTg5NTYsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAw
N0MzOTgzIC8qIGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCi0JCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNF
MjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0
RkEgLyogQnJpZGdlLmggKi8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50
aWZpZXJSZXAuY3BwICovLAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlm
aWVyUmVwLmggKi8sCisJCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJ
CQkxQTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJ
MUE1NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2
OUNGMTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjQ4OTQs
NiArMjQ4OTcsOCBAQAogCQkJCUU0NDYxMzlDMENENjMzMTAwMEZBREE3NSAvKiBNZWRpYUVycm9y
LmlkbCAqLywKIAkJCQkwN0E2RDFFOTE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVS
SVBhcnNlci5jcHAgKi8sCiAJCQkJMDdBNkQxRUExNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJh
Z21lbnRVUklQYXJzZXIuaCAqLywKKwkJCQkzMTNFNzlFQzI3M0M4NkU4MDA5N0Y5MDUgLyogTW9k
ZWxEb2N1bWVudC5jcHAgKi8sCisJCQkJMzEzRTc5RTkyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVs
RG9jdW1lbnQuaCAqLywKIAkJCQlGNTVCM0Q5MTEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1
dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDkyMTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0
VHlwZS5oICovLAogCQkJCUY1NUIzRDkzMTI1MUYxMkQwMDNFRjI2OSAvKiBOdW1iZXJJbnB1dFR5
cGUuY3BwICovLApAQCAtMzUyMTEsNiArMzUyMTYsNyBAQAogCQkJCUNERjJCMDE5MTgyMDU0MDcw
MEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzE1NjEwQzIzNEMx
Q0ExMDA4RkM3QUIgLyogTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkRDOEQzOTgyNUYyRkU5NzAwQ0ZDQkFCIC8qIE1vZGVsLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkzMTNFNzlFQTI3M0M4NkI4MDA5N0Y5MDUgLyogTW9kZWxEb2N1bWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQjQxMTcyNzMyRjQxRTAwQTJEMTkxIC8qIE1vZGVsUGxh
eWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJCNDExOTI3MzJGNDI5MDBBMkQxOTEgLyogTW9k
ZWxQbGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkI0MTE4MjczMkY0MjMwMEEy
RDE5MSAvKiBNb2RlbFBsYXllclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDkzMTllMGNiZmI5MjE1MDY1YjEzMjUw
NDg2MGY1Zjg1ZGExYjQyM2MuLmEyODU3NTJjYzY4ZjY4YzhjM2Q3YmM2NjQ2NTdiYWNiMDU1MmVm
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCiAjaW5j
bHVkZSAiUGx1Z2luRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC01Nyw2ICs1OCwxMCBAQAogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisj
aWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisjaW5jbHVkZSAiTW9kZWxEb2N1bWVudC5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
QEAgLTE2Miw2ICsxNjcsMTEgQEAgUmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3Jl
YXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgRnJhbWUKICAgICAgICAgcmV0
dXJuIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0dGluZ3MsIHVybCk7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1VTRE1JTUVUeXBlKGNvbnRlbnRUeXBlKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLm1vZGVsRG9jdW1lbnRFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBNb2Rl
bERvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHNldHRpbmdzLCB1cmwpOworI2VuZGlmCisKICNpZiBF
TkFCTEUoRlRQRElSKQogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb250
ZW50VHlwZSwgImFwcGxpY2F0aW9uL3gtZnRwLWRpcmVjdG9yeSIpKQogICAgICAgICByZXR1cm4g
RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0dGluZ3MsIHVybCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCmluZGV4IGNkMDNkZDE3NGU3MjM5OTgyMmNlYWE0Y2I4NDcyYzRjMTgyY2Qy
YTQuLjhkMmFjZDg3NDRmYjhlNzc1NWUzN2Q2MWZkOGY2MWIzMmFkNjFiZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC0zMDIsOCArMzAyLDExIEBAIGVudW0gRG9jdW1lbnRDbGFzcyB7CiAgICAg
U1ZHRG9jdW1lbnRDbGFzcyA9IDEgPDwgNSwKICAgICBUZXh0RG9jdW1lbnRDbGFzcyA9IDEgPDwg
NiwKICAgICBYTUxEb2N1bWVudENsYXNzID0gMSA8PCA3LAorI2lmIEVOQUJMRShNT0RFTF9FTEVN
RU5UKQorICAgIE1vZGVsRG9jdW1lbnRDbGFzcyA9IDEgPDwgOCwKKyNlbmRpZgogfTsKLXVzaW5n
IERvY3VtZW50Q2xhc3NGbGFncyA9IHVuc2lnbmVkIGNoYXI7Cit1c2luZyBEb2N1bWVudENsYXNz
RmxhZ3MgPSB1aW50MTZfdDsKIAogZW51bSBjbGFzcyBEb2N1bWVudENvbXBhdGliaWxpdHlNb2Rl
IDogdW5zaWduZWQgY2hhciB7CiAgICAgTm9RdWlya3NNb2RlID0gMSwKQEAgLTU0MCw2ICs1NDMs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BsdWdpbkRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9kb2N1bWVudENsYXNzZXMgJiBQbHVnaW5Eb2N1bWVudENsYXNzOyB9CiAgICAgYm9vbCBpc01l
ZGlhRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50Q2xhc3NlcyAmIE1lZGlhRG9j
dW1lbnRDbGFzczsgfQogICAgIGJvb2wgaXNUZXh0RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X2RvY3VtZW50Q2xhc3NlcyAmIFRleHREb2N1bWVudENsYXNzOyB9CisjaWYgRU5BQkxFKE1PREVM
X0VMRU1FTlQpCisgICAgYm9vbCBpc01vZGVsRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50Q2xhc3NlcyAmIE1vZGVsRG9jdW1lbnRDbGFzczsgfQorI2VuZGlmCiAgICAgYm9vbCBo
YXNTVkdSb290Tm9kZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lU2V0KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
b2RlbERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9kZWxEb2N1bWVudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDRkMGU0ZGE2YjQ3YzlkNWUzNWVkMTBlN2U0YzFhYWNhNDkxYjllNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9kZWxEb2N1bWVudC5jcHAKQEAg
LTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kZWxEb2N1bWVudC5oIgorCisj
aWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTW9kZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiSFRNTFNvdXJjZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUmF3RGF0YURvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE1vZGVsRG9j
dW1lbnQpOworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitjbGFzcyBNb2RlbERvY3Vt
ZW50UGFyc2VyIGZpbmFsIDogcHVibGljIFJhd0RhdGFEb2N1bWVudFBhcnNlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxNb2RlbERvY3VtZW50UGFyc2VyPiBjcmVhdGUoTW9kZWxEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2RlbERv
Y3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIE1vZGVsRG9j
dW1lbnRQYXJzZXIoTW9kZWxEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogUmF3RGF0YURv
Y3VtZW50UGFyc2VyIHsgZG9jdW1lbnQgfQorICAgICAgICAsIG1fb3V0Z29pbmdSZWZlcnJlciB7
IGRvY3VtZW50Lm91dGdvaW5nUmVmZXJyZXIoKSB9CisgICAgeworICAgIH0KKworICAgIHZvaWQg
Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKKworICAgIHZvaWQgYXBwZW5kQnl0ZXMoRG9jdW1l
bnRXcml0ZXImLCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIGZpbmlz
aCgpIGZpbmFsOworCisgICAgSFRNTE1vZGVsRWxlbWVudCogbV9tb2RlbEVsZW1lbnQgeyBudWxs
cHRyIH07CisgICAgU3RyaW5nIG1fb3V0Z29pbmdSZWZlcnJlcjsKK307CisKK3ZvaWQgTW9kZWxE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQoreworICAgIGF1dG8mIGRv
Y3VtZW50ID0gKnRoaXMtPmRvY3VtZW50KCk7CisKKyAgICBhdXRvIHJvb3RFbGVtZW50ID0gSFRN
TEh0bWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGRvY3VtZW50LmFwcGVuZENoaWxk
KHJvb3RFbGVtZW50KTsKKyAgICBkb2N1bWVudC5zZXRDU1NUYXJnZXQocm9vdEVsZW1lbnQucHRy
KCkpOworICAgIHJvb3RFbGVtZW50LT5pbnNlcnRlZEJ5UGFyc2VyKCk7CisKKyAgICBpZiAoZG9j
dW1lbnQuZnJhbWUoKSkKKyAgICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlw
dHMoVXNlclNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50U3RhcnQpOworCisgICAgYXV0byBo
ZWFkRWxlbWVudCA9IEhUTUxIZWFkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICByb290
RWxlbWVudC0+YXBwZW5kQ2hpbGQoaGVhZEVsZW1lbnQpOworCisgICAgYXV0byBtZXRhRWxlbWVu
dCA9IEhUTUxNZXRhRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBtZXRhRWxlbWVudC0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihuYW1lQXR0ciwgQXRvbVN0cmluZygi
dmlld3BvcnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1ldGFF
bGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnRlbnRBdHRyLCBB
dG9tU3RyaW5nKCJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQo
bWV0YUVsZW1lbnQpOworCisgICAgYXV0byBzdHlsZUVsZW1lbnQgPSBIVE1MU3R5bGVFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gc3R5bGVDb250ZW50ID0gImJvZHkgeyBiYWNr
Z3JvdW5kLWNvbG9yOiB3aGl0ZTsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5AbWVkaWEgKHByZWZl
cnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7IGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzIs
IDMyLCAzNyk7IH0gfVxubW9kZWwgeyB3aWR0aDogODB2dzsgaGVpZ2h0OiA4MHZoOyB9XG4iX3M7
CisgICAgc3R5bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudChzdHlsZUNvbnRlbnQpOworICAgIGhl
YWRFbGVtZW50LT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpOworCisgICAgYXV0byBib2R5ID0g
SFRNTEJvZHlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJvb3RFbGVtZW50LT5hcHBl
bmRDaGlsZChib2R5KTsKKworICAgIGF1dG8gbW9kZWxFbGVtZW50ID0gSFRNTE1vZGVsRWxlbWVu
dDo6Y3JlYXRlKEhUTUxOYW1lczo6bW9kZWxUYWcsIGRvY3VtZW50KTsKKyAgICBtX21vZGVsRWxl
bWVudCA9IG1vZGVsRWxlbWVudC5wdHIoKTsKKyAgICBtb2RlbEVsZW1lbnQtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29udHJvbHNBdHRyLCBlbXB0eUF0b20oKSk7CisKKyAg
ICBhdXRvIHNvdXJjZUVsZW1lbnQgPSBIVE1MU291cmNlRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1l
czo6c291cmNlVGFnLCBkb2N1bWVudCk7CisgICAgc291cmNlRWxlbWVudC0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyLCBkb2N1bWVudC51cmwoKS5zdHJpbmcoKSk7
CisgICAgaWYgKFJlZlB0ciBsb2FkZXIgPSBkb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgc291
cmNlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0ciwg
bG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCkpOworCisgICAgbW9kZWxFbGVtZW50LT5hcHBlbmRD
aGlsZChzb3VyY2VFbGVtZW50KTsKKworICAgIGJvZHktPmFwcGVuZENoaWxkKG1vZGVsRWxlbWVu
dCk7CisgICAgZG9jdW1lbnQuc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKTsK
KworICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOworICAgIGlmICgh
ZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIGZyYW1lLT5sb2FkZXIoKS5hY3RpdmVEb2N1
bWVudExvYWRlcigpLT5zZXRNYWluUmVzb3VyY2VEYXRhQnVmZmVyaW5nUG9saWN5KERhdGFCdWZm
ZXJpbmdQb2xpY3k6OkRvTm90QnVmZmVyRGF0YSk7CisgICAgZnJhbWUtPmxvYWRlcigpLnNldE91
dGdvaW5nUmVmZXJyZXIoZG9jdW1lbnQuY29tcGxldGVVUkwobV9vdXRnb2luZ1JlZmVycmVyKSk7
Cit9CisKK3ZvaWQgTW9kZWxEb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0
ZXImLCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KQoreworICAgIGlmICghbV9tb2RlbEVsZW1lbnQp
CisgICAgICAgIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7Cit9CisKK3ZvaWQgTW9kZWxEb2N1
bWVudFBhcnNlcjo6ZmluaXNoKCkKK3sKKyAgICBkb2N1bWVudCgpLT5maW5pc2hlZFBhcnNpbmco
KTsKK30KKworTW9kZWxEb2N1bWVudDo6TW9kZWxEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0
IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwpCisgICAgOiBIVE1MRG9jdW1lbnQo
ZnJhbWUsIHNldHRpbmdzLCB1cmwsIE1vZGVsRG9jdW1lbnRDbGFzcykKK3sKKyAgICBpZiAoZnJh
bWUpCisgICAgICAgIG1fb3V0Z29pbmdSZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIoKS5vdXRnb2lu
Z1JlZmVycmVyKCk7Cit9CisKK1JlZjxEb2N1bWVudFBhcnNlcj4gTW9kZWxEb2N1bWVudDo6Y3Jl
YXRlUGFyc2VyKCkKK3sKKyAgICByZXR1cm4gTW9kZWxEb2N1bWVudFBhcnNlcjo6Y3JlYXRlKCp0
aGlzKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9kZWxEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWMyYTA0MTg0MGRjMWUwZmVkZTdjZWM3OGY1ZDExNTAwNjY4NWNmNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9kZWxEb2N1bWVudC5oCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kZWxEb2N1bWVu
dCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoTW9kZWxEb2N1bWVudCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNb2RlbERvY3VtZW50
PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVS
TCYgdXJsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kZWxEb2N1bWVu
dChmcmFtZSwgc2V0dGluZ3MsIHVybCkpOworICAgIH0KKworICAgIHZpcnR1YWwgfk1vZGVsRG9j
dW1lbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fb3V0Z29pbmdSZWZlcnJlcjsgfQorCitwcml2YXRlOgorICAgIE1vZGVsRG9j
dW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYpOworCisgICAgUmVmPERv
Y3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX291
dGdvaW5nUmVmZXJyZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6TW9kZWxEb2N1bWVudCkKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBk
b2N1bWVudC5pc01vZGVsRG9jdW1lbnQoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpOb2RlJiBub2RlKSB7IHJldHVybiBpczxXZWJDb3JlOjpEb2N1bWVudD4obm9k
ZSkgJiYgaXNUeXBlKGRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50Pihub2RlKSk7IH0KK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggY2ZjNzczMTc3
N2EzN2Y2YmEyZDJhYzI4MDU2NTQ0ZTc5YzI2MGVmMi4uMjRlZGM5NjEwZTZhNGRiNThlNjc3MWMy
NTE3YjMzM2IyOGY2NDM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKQEAgLTI1OCw2ICsyNTgsMTEgQEAgcHVibGljOgogICAgIGJvb2wgYnVpbHRJ
bk5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9idWlsdEluTm90aWZpY2F0
aW9uc0VuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisgICAg
dm9pZCBzZXRNb2RlbERvY3VtZW50RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX21vZGVsRG9j
dW1lbnRFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBtb2RlbERvY3VtZW50RW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZWxEb2N1bWVudEVuYWJsZWQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKTsKQEAgLTM5OCw2ICs0MDMsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYnVpbHRJ
bk5vdGlmaWNhdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1P
REVMX0VMRU1FTlQpCisgICAgYm9vbCBtX21vZGVsRG9jdW1lbnRFbmFibGVkIHsgZmFsc2UgfTsK
KyNlbmRpZgorCiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlN
RVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmNwcAppbmRleCA2ZjdhZjEyN2NmY2UwNGUzYTA1Y2UwZmM2OTZhNzZiOGQwYWQxZDczLi45
NzNmOWNkMTNhNzYwMTQxODA3ZGE2MWViNjkxOWI5ODNiOWY4NTc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtNjU4LDYgKzY1OCwxMSBAQCBi
b29sIE1JTUVUeXBlUmVnaXN0cnk6OmNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1PREVMX0VM
RU1FTlQpCisgICAgaWYgKGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZShtaW1lVHlwZSkpCisgICAg
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKICAgICBpZiAoc3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShtaW1lVHlwZSwgInRleHQvIikpCiAgICAgICAgIHJldHVybiAhaXNVbnN1
cHBvcnRlZFRleHRNSU1FVHlwZShtaW1lVHlwZSk7CiAKQEAgLTY4OCw2ICs2OTMsMTEgQEAgYm9v
bCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1VTRE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
CiAgICAgcmV0dXJuIHVzZE1JTUVUeXBlU2V0LmNvbnRhaW5zKG1pbWVUeXBlKTsKIH0KIAorYm9v
bCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1vZGVsTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkKK3sKKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6aXNVU0RNSU1FVHlw
ZShtaW1lVHlwZSk7Cit9CisKIC8vIEZJWE1FOiBOb3QgZ3JlYXQgdGhhdCBDVVJMIG5lZWRzIHRo
aXMgY29uY2VwdDsgb3RoZXIgcGxhdGZvcm1zIGRvIG5vdC4KIHN0YXRpYyBTdHJpbmcgbm9ybWFs
aXplZEltYWdlTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAppbmRleCAwYWQyNjk3Yjk2ZDJjZWEyYjc4
YmI2MjE1NDIzY2MyYTU2MDVhN2M2Li41ODAyMTRiMWJjMzAxYmQ3M2YxOWQ0MTMyODliNTVlMzg4
ZTE3MGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCkBA
IC0xMDgsNiArMTA4LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgaXNVU0RNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkTW9kZWxNSU1FVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKTsKKwogICAgIC8vIENoZWNrIHRvIHNlZSBpZiBhIE1JTUUgdHlwZSBpcyBzdWl0
YWJsZSBmb3IgYmVpbmcgc2hvd24gaW5zaWRlIGEgcGFnZS4KICAgICAvLyBSZXR1cm5zIHRydWUg
aWYgYW55IG9mIGlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZSgpLCBpc1N1cHBvcnRlZE5vbkltYWdl
TUlNRVR5cGUoKSwKICAgICAvLyBpc1N1cHBvcnRlZE1lZGlhTUlNRVR5cGUoKSwgaXNTdXBwb3J0
ZWRKYXZhU2NyaXB0TUlNRVR5cGUoKSwgaXNTdXBwb3J0ZWRKU09OTUlNRVR5cGUoKSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQcm92
aWRlclJlZ2lzdHJ5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3
Q29udGVudFByb3ZpZGVyUmVnaXN0cnkubW0KaW5kZXggNjk0MjBkNzk3NzRkMTVkMTAwMTFmZWQz
Y2RhZThmNmE3NDBiNjIwMS4uM2MzNGNjN2ZkOGQ5ZmZjYzFkZTcwZWEyZGQ1ZTM1YTlhNmU4ZTk3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29u
dGVudFByb3ZpZGVyUmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkubW0KQEAgLTU0LDcgKzU0LDcgQEAK
ICAgICAgICAgW3NlbGYgcmVnaXN0ZXJQcm92aWRlcjpbV0tQREZWaWV3IGNsYXNzXSBmb3JNSU1F
VHlwZTpAKHR5cGUpXTsKICNlbmRpZgogCi0jaWYgVVNFKFNZU1RFTV9QUkVWSUVXKSAmJiAhSEFW
RShVSUtJVF9XRUJLSVRfSU5URVJOQUxTKQorI2lmIFVTRShTWVNURU1fUFJFVklFVykgJiYgIUhB
VkUoVUlLSVRfV0VCS0lUX0lOVEVSTkFMUykgJiYgIUVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAg
IGlmIChjb25maWd1cmF0aW9uLl9zeXN0ZW1QcmV2aWV3RW5hYmxlZCkgewogICAgICAgICBmb3Ig
KGF1dG8mIHR5cGUgOiBXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojp1c2RNSU1FVHlwZXMoKSkK
ICAgICAgICAgICAgIFtzZWxmIHJlZ2lzdGVyUHJvdmlkZXI6W1dLVVNEUHJldmlld1ZpZXcgY2xh
c3NdIGZvck1JTUVUeXBlOkAodHlwZSldOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlhY2M0NzQxNzY0MGY3NzM0NzdlZmYx
Y2M2NDM3YjA5MjU2ODEwMWUuLjM3NjAyZGE1MWE1NDQyODU1YjA4N2VjOWNmMjA1ZmExZWYzNWJi
NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0xMS0xMiAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIE1vZGVsRG9jdW1lbnQgZm9yIGRpcmVjdGx5IHNo
b3dpbmcgY29udGVudCB0aGF0IGNhbiBiZSBoYW5kbGVkIGJ5IDxtb2RlbD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzA1NworICAgICAgICByZGFy
Oi8vODUyNjU4ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZXcgdGVzdCBmb3IgTW9kZWxEb2N1bWVudC4KKworICAgICAgICAqIGh0dHAvY29uZi9t
aW1lLnR5cGVzOiBDb25maWd1cmUgdGhlIHRlc3RpbmcgQXBhY2hlIHNlcnZlciB0byBzZXJ2ZSBV
U0RaIGZpbGVzCisgICAgICAgIHdpdGggdGhlIGNvcnJlY3QgTUlNRSB0eXBlLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbW9kZWwvVW5pdEJveC51c2R6OiBTYW1wbGUgZmlsZS4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC5odG1sOiBOZXcgdGVzdCBmb3Ig
YSBNb2RlbERvY3VtZW50LgorCiAyMDIxLTExLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW2Nzcy1jb250YWluXSBTdXBwb3J0IGNvbnRhaW46cGFpbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvY29uZi9taW1lLnR5cGVzIGIvTGF5b3V0VGVzdHMvaHR0
cC9jb25mL21pbWUudHlwZXMKaW5kZXggMGEyZjc1N2Q1Yzg3ZDdmYTY1NDU2ZDUwYzMyM2U4MWMz
Y2ExMWM4OS4uNDdiNmJlMDAzZjdmZDUwYmU4OGYzNTEwMGRlYTFiMDRkYzZjNjE4NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC9jb25mL21pbWUudHlwZXMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC9jb25mL21pbWUudHlwZXMKQEAgLTUxNSw2ICs1MTUsNyBAQCBtb2RlbC92bmQuZ3R3CiBt
b2RlbC92bmQubXRzCiBtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LmJpbmFyeQogbW9kZWwv
dm5kLnBhcmFzb2xpZC50cmFuc21pdC50ZXh0Cittb2RlbC92bmQudXNkeit6aXAgdXNkegogbW9k
ZWwvdm5kLnZ0dQogbW9kZWwvdnJtbAkJCXdybCB2cm1sCiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwvVW5pdEJveC51c2R6IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tb2RlbC9Vbml0Qm94LnVzZHoKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZi
NzExODI5ZTAxNjJiNWM1YjJjYzQ3YmQ4MDk2MjJiYzc4NmUyNApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMzIzMAp6Y21iX2ZVNXAhNzYrVS10a0x+cXQqV08pc2NhdSUqezU0NkZIcUlLRnZMdV8/
ZFFIMDhIMCFLQVFCWWZ5U15HTFcKenN5Klkqak1HaVVnRFZpY2xuTj5rRkZkcldgaHRwNzFwUnF9
QW8+N20oaVVoeiY7JFlmUUI7QkF1cW9OSE50U2MyCnpYQj15e3NYKmUkWFVANmplQ0tFRys/aml3
b0EmdjtmTjEmWUN1ZmglZyUyITYwRWx+YDl+QHEtJkQ1UCotTVBETgp6bXh8dlE/aUo5RU9ZWnBX
VTIxK1oxSHFPdGdeflhjVnJ+KllOPjMrSyRoRWdAVTVlK0VJKCRCWD1+Qm8+NmhyUHEKel9PSnR9
ZHBecDRKOH4tcVU9Wn5vPFk4cDUpX1QtT2tUKVEyTHsxPGxrdHhxNldHfmxkKVZDbWViKyZjcmNj
MzBYCnpDZmIyYTxESk5OQkpWPT5WeiM2MTxAMGRlWGR8Sz97fTxqV3E1eDheZ3l1I0hTRkBebVI4
P34tPnlpSl96aiY/Wgp6WVNAM3tgb0ZfaCpgZ2YkcjAzRmdgTVB7PEY/UHZjb09vJmZ4MU8zRWY4
KkBvZ0ZkZjhuVlJxaC1WQytvJXEhRTkKemppMDtuQWokXipORD8pfjZAPWZfJHdLNFI3LTR0Z2di
KHFuRj5DVDV6N3ltMTtubnFPd1IyTld0U3R6MnFCU3xHCnp3XmJOeyEmK19HU2NfU2M9akpAZEZ8
SXcyd0NZKyFZdEpSakUkKU5yZXVnZzRGNkxJYyRiJmlCY3xKdUt2OUE0Nwp6YiokMHU9UUgkbjR+
ViZ5LXROY0NhfWJmTWJQPzs/KlhsUnRETT1YUSkkK2BFJWY0Qz9QSTIqX2w1akwkRWVZUjEKenBD
P2I/NytmNkxwYCh0Nkx1KDY8SUtuRn5wNnJEOCMqS3NGcj5+QmlrSDBXcGVwJnQ1RTlWWCY0d05V
JTRHSUJnCnotc3ZhVmtiYiZlQHhCU1BRc34+e3lAOUI8emYqbzFLJG9IajNHbFdYXnBGP2EreT9k
OSNEWj9hbSFXM3EpeSV3Sgp6RE91YkEpekY+JCVtcGEldlIxRCtJcktyNUpLVkIhK31aJW1Mcnw+
U2ojKWpkbyN4aTA9NGVvfnhhT0ReO0l7QzEKeihLSnFSJVNxTk9lb0UoJEJ+eTNiR1lXUSU3eGw4
dkVwU2ZQX3p8dGo7ZHQ0IXMtVzM2Y2N6VDgyfVQ/aSpGVH5nCnpCYEJLSm5yVSN1ZmRAM0tzJXNT
KzRzby1KVTc5c2F0I2NjeT4hMkFMbj90eTZvUD5ONDlneEFhbUllekMhRH08TQp6Rn5geWp5TWhW
JnBmRj5WeFlZdl9XMlU4LTthUDZhTChTOTsjfTJiSXIhPm5Sdm1HJDdvdio/WUR7RG81NDZFPmsK
ekROSjYoQEtuYUU/fUlELWM3M2otcFZEcEpIMWZySGpgdlY5PnZJKkoqR3Mkdl9mX2lyYj9fZiFl
Vk9mUzhAR2xiCno1UWRhcHdgQHF8PWR+WmYqRyNjQCtHRHJsVU9FV1I+VWhePGRJQHg2QmZNREIl
akxTd0dpSnBjMFg2XyUjfGhVZQp6Nn1gOT51MCQtZWVzYlI2d2hlUXBTcG49PSpYSHohP3d0TX1K
Y0lHaGdBYXBhSmAkOGg/TmFWRil8ZFlkQiUkfmYKelNQWjFnUF9DR28xQ0N+JDxXNWQ9PUl2Y2ZO
dFlqZEkwRytvdDdoVTE7ciYyRmBaaXl7bkt1a3g+O293VSV3VEt9Cnp1dH16dlIldnVVSlpJbnxm
ayozX1EmdzFDYGJqdX1NUTZHOEx4P0J1V3loMUZzcE83RnI0I2hEY2VlTDcrN1pJWQp6dzt8SmRx
eUBiWG5UVEUjTDk/Xz1zdGhpNzRhQyQhRWJDe0kjRiE3U1NFNVR4KFdPdWBCdHRWOFVFMGhwej1h
REoKekshIWhyQj4wXmU/RENkPVFvXj8mNjtYfXtWRkxHM2UrYlMqbC00Jll0U2tnIzVLUk8/ISVC
QjUtNjdaO1E1dHduCnpLdmR7STJ0aiUkeWJ5dnxUI1IyODw2cSU7b2Z3fUZmcjI/MUtHMj04SDMl
N3FDPDlVR1BsbGo+YHc7WitNKlYpJgp6MyZee1p6PFAxIy07RnQjdlMkY2xyNUtGKjhkemg/R2Jz
ZWBNYklkd0tBKGoyNVR2OFBnNzZDbkRkKjBmI1dAS24KekFFU0xVVHR2akBIJkxVWjM2PnNlPzJB
RyY8cU1QUktuUzg9PSo4UU5EN2glK1hwQlc2d3hGfjBLO3cocCRiTzdlCnpZQWhYdDE4NjcyQWRF
KyRGKXZPV2t3I1VfST4yTURnZUlwKyM2PWcrIz9eU0NmVHd8aW4jRHVHZ2c2PXU7SW1ubAp6S2JC
PVk1ZDJkUEgpVDArTiQmbzstMjBJblRiNUF6RSlJViVeNF5IX3g1VHBpbXJafShhKDt7Uz96LStq
dD9UKlkKempeOEpgLSUwIzYoZXc2UXp1bUplem0tQFhkfkB7Tj1VJV8oe1NDaVB4YUI9YnQzWGdR
TShySCsyall8UUxMQi1vCno0U3kpaFFzQVRMV20pbnNNbFQxI2JXe0A1OTklKEN2MT5KZVEyKWd7
e0opViMtaiFJX1JxNUteKnNJZSYyfjU1Ngp6ej5sU2wrIVN7LTh2cUplVlltSjMrNn41VHU8KzZm
VUt3N3pjSVglPU5URnswQEsjUjZgSUE7OFh+bm5GblVMMFgKelQ9Qj0lcXd4V2RnTW9uMDJSPWQ0
NGIqKmZFKT4paEFLbX4mQSZNITNFNmMlOD09ZWxibjM+S1YkK3ZYNmUlQyE1CnpJX3xlUlV6blhi
YV9BLT88UX0hPzk3Xj0xc3FFcCZue0w/WmBrJGNRK3h+MzlnRkhfIUNESiFyMCYpfERgI20zLQp6
Y0RNY24hMXJCJEs5fGpPYGhWJkF5YF98IVg0dlZpfDJlcDZUPThIMGtDK2FLc2JUbXw9UD5HQ2Fw
P1VJXjdJeH0KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTVlMGMzOTc2YWJjYmI1ZjY4MTE5MzA2YjVmMWM4YmJhNWFjZTdiMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQmFzaWMgTW9kZWxEb2N1bWVudCB0ZXN0LgorCitQQVNT
OiA8bW9kZWw+IGFuZCA8c291cmNlPiBzZWVuIGluIGlmcmFtZS4KKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21vZGVsL21vZGVsLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRj
MzlmOWMxMDU1M2NhNmJiMmRiNGExNmRhMmFiMGY5MjFmZjdhYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9jdW1lbnQuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1bigpCisgICAg
eworICAgICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICAgICAgICBmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpOworICAgICAgICAgICAgY29uc3QgbW9kZWwgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQucXVl
cnlTZWxlY3RvcigibW9kZWwiKTsKKyAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGZyYW1lLmNv
bnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtb2RlbCBzb3VyY2UiKTsKKyAgICAgICAgICAg
IGlmICghbW9kZWwpCisgICAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gIkZBSUw6
IDxtb2RlbD4gbm90IHNlZW4gaW4gaWZyYW1lLiI7CisgICAgICAgICAgICBlbHNlIGlmICghc291
cmNlKQorICAgICAgICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICJGQUlMOiA8bW9kZWw+
IGZvdW5kLCBidXQgbm8gPHNvdXJjZT4gY2hpbGQuIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiUEFTUzogPG1vZGVsPiBhbmQgPHNvdXJj
ZT4gc2VlbiBpbiBpZnJhbWUuIjsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsK
KyAgICAgICAgZnJhbWUuc3JjID0gIlVuaXRCb3gudXNkeiI7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsIHJ1biwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgor
QmFzaWMgTW9kZWxEb2N1bWVudCB0ZXN0LgorPHA+Cis8cCBpZD0ib3V0cHV0Ij48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNDQ3NTE4ZWExNzVmOThiNGViNGI2YzAxNWM0NjAxZDRlODY4M2JkOC4uNmRk
MWEyZWE3NTlhNzA2ODgxM2VkMjM1YTQ2MGY5NTQyMmQyNGJkYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDcsNiArNDcsNyBAQCBjc3Mt
Y3VzdG9tLXByb3BlcnRpZXMtYXBpIFsgU2tpcCBdCiBjc3MtdHlwZWRvbSBbIFNraXAgXQogY3Nz
LWRhcmstbW9kZSBbIFNraXAgXQogbW9kZWwtZWxlbWVudCBbIFNraXAgXQoraHR0cC90ZXN0cy9t
b2RlbCBbIFNraXAgXQogCiAjIE1lZGlhIFN0cmVhbSBBUEkgdGVzdGluZyBpcyBub3Qgc3VwcG9y
dGVkIGZvciBXSzEgeWV0LgogZmFzdC9tZWRpYXN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5YmYwNTIyZjBjZTVmYmUxMjI4YjYyMDc0NDI5ZTMw
MjQzMzExYWFiLi43N2ZhN2MzZDBmZTU1NWRkZDYwMTE5NzU0ZjU2NzFlMWE5ZTljNzA5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTcxMyw2ICsxNzEz
LDcgQEAgd2Via2l0Lm9yZy9iLzIxNDE1NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXAKIFsgQ2F0YWxpbmEgTW9qYXZlIEJpZ1N1ciBd
IHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXdlYm0tb3B1cy5odG1sIFsgU2tpcCBdCiBbIENh
dGFsaW5hIE1vamF2ZSBCaWdTdXIgXSB3ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS13ZWJtLW9w
dXMtcmVzYW1wbGUuaHRtbCBbIFNraXAgXQogWyBDYXRhbGluYSBNb2phdmUgQmlnU3VyIF0gd2Vi
YXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtd2VibS12b3JiaXMuaHRtbCBbIFNraXAgXQorWyBDYXRh
bGluYSBNb2phdmUgQmlnU3VyIF0gaHR0cC90ZXN0cy9tb2RlbC9tb2RlbC1kb2N1bWVudC5odG1s
IFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8yMTQ0MjIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQtaW50ZXJmYWNl
L3N1c3BlbmQtYWZ0ZXItY29uc3RydWN0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFmYTIyOTEzMTZkMjllOTQz
ZjIxZTNjNTc0YmM1MDBlNzg5MGM5MTcuLmM3MGVhOGNhZjM1ODM2MTc0OWRlMmY2ODFkOWI3MDli
MzAwMTg0YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzIsNiArMTMyLDkgQEAgd2Via2l0Lm9yZy9iLzc0NzE2IGNzczMvZmlsdGVycy9iYWNrZHJv
cCBbIFNraXAgXQogZmFzdC9oYXJuZXNzL3BsYXRmb3JtLWxheWVyLXRyZWUtYXMtdGV4dC5odG1s
IFsgU2tpcCBdCiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLW9w
YWNpdHkuaHRtbCBbIFNraXAgXQogCisjIEFwcGxlIENvY29hIG9ubHkgZm9yIHRoZSBtb21lbnQu
CitodHRwL3Rlc3RzL21vZGVsIFsgU2tpcCBdCisKICMgY29sb3ItZmlsdGVycyBhcmUgb2ZmIGJ5
IGRlZmF1bHQKIHdlYmtpdC5vcmcvYi8xODUwNzYgY3NzMy9jb2xvci1maWx0ZXJzIFsgU2tpcCBd
CiAK
</data>
<flag name="review"
          id="469474"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>