<?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>225941</bug_id>
          
          <creation_ts>2021-05-18 16:33:21 -0700</creation_ts>
          <short_desc>WKRemoteObjectRegistry  _invokeMethod needs to check for nil completionHandlers</short_desc>
          <delta_ts>2021-05-20 21:15:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</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="Julian Gonzalez">julian_a_gonzalez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1761364</commentid>
    <comment_count>0</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-05-18 16:33:21 -0700</bug_when>
    <thetext>If a reply block is provided but is nil, we shouldn&apos;t call `invokeMethod` - invocations expect callbacks to be callable.

&lt;rdar://problem/75781150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761372</commentid>
    <comment_count>1</comment_count>
      <attachid>428999</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-05-18 16:40:38 -0700</bug_when>
    <thetext>Created attachment 428999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761378</commentid>
    <comment_count>2</comment_count>
      <attachid>428999</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-05-18 16:55:18 -0700</bug_when>
    <thetext>Comment on attachment 428999
Patch

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

&gt; Source/WebKit/Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:269
&gt; +        if (!replyInfo)
&gt; +            return;

We should NSLog an error message here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761403</commentid>
    <comment_count>3</comment_count>
      <attachid>428999</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-18 17:55:43 -0700</bug_when>
    <thetext>Comment on attachment 428999
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        _invokeMethod&apos;s argument-checking loop needs to be run
&gt; +        even if replyInfo is nil, as otherwise we can call perform an invocation
&gt; +        with a nil completion handler.

I&apos;m not sure this description is complete.  I think the problem is that we call [invocation invoke] on an invocation that says it has a block argument by having the description be &quot;@?&quot; but doesn&apos;t actually have one.

The change looks good, though.  I&apos;m not sure a log is necessary but it wouldn&apos;t hurt.  The other logs are to help with legitimate use, but this can&apos;t happen with legitimate use.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:112
&gt; +TEST(IPCTestingAPI, CanDetectNilReplyBlocks)

Test needs some work.  It passes for me even without the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761407</commentid>
    <comment_count>4</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-05-18 18:12:40 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 428999 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428999&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:10
&gt; &gt; +        _invokeMethod&apos;s argument-checking loop needs to be run
&gt; &gt; +        even if replyInfo is nil, as otherwise we can call perform an invocation
&gt; &gt; +        with a nil completion handler.
&gt; 
&gt; I&apos;m not sure this description is complete.  I think the problem is that we
&gt; call [invocation invoke] on an invocation that says it has a block argument
&gt; by having the description be &quot;@?&quot; but doesn&apos;t actually have one.
&gt; 

Yep, the `nil` completion block is really from the perspective of the called function. I&apos;ll re-word this.

&gt; The change looks good, though.  I&apos;m not sure a log is necessary but it
&gt; wouldn&apos;t hurt.  The other logs are to help with legitimate use, but this
&gt; can&apos;t happen with legitimate use.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:112
&gt; &gt; +TEST(IPCTestingAPI, CanDetectNilReplyBlocks)
&gt; 
&gt; Test needs some work.  It passes for me even without the fix.

Working on this, we turned up some interesting causes in chat.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761746</commentid>
    <comment_count>5</comment_count>
      <attachid>429105</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-05-19 15:54:52 -0700</bug_when>
    <thetext>Created attachment 429105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762159</commentid>
    <comment_count>6</comment_count>
      <attachid>429105</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 14:58:12 -0700</bug_when>
    <thetext>Comment on attachment 429105
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:51
&gt; +    BOOL didCallSayHello = NO;

Don&apos;t we usually have curly brackets around the data members?

@implementation IPCTestingAPIDelegate {
    BOOL didCallSayHello;
}

Also, I don&apos;t believe we need the NO initializer in ObjC.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:161
&gt; +    EXPECT_EQ([delegate.get() sayHelloWasCalled], NO);

EXPECT_FALSE([delegate.get() sayHelloWasCalled]);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762173</commentid>
    <comment_count>7</comment_count>
      <attachid>429105</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-20 15:26:20 -0700</bug_when>
    <thetext>Comment on attachment 429105
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:51
&gt;&gt; +    BOOL didCallSayHello = NO;
&gt; 
&gt; Don&apos;t we usually have curly brackets around the data members?
&gt; 
&gt; @implementation IPCTestingAPIDelegate {
&gt;     BOOL didCallSayHello;
&gt; }
&gt; 
&gt; Also, I don&apos;t believe we need the NO initializer in ObjC.

(and a leading underscore)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762244</commentid>
    <comment_count>8</comment_count>
      <attachid>429250</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-05-20 17:45:06 -0700</bug_when>
    <thetext>Created attachment 429250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762289</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-20 21:15:04 -0700</bug_when>
    <thetext>Committed r277849 (237991@main): &lt;https://commits.webkit.org/237991@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429250.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428999</attachid>
            <date>2021-05-18 16:40:38 -0700</date>
            <delta_ts>2021-05-19 15:54:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225941-20210518164037.patch</filename>
            <type>text/plain</type>
            <size>16154</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZWNlZmZlNzU2NTQxYzhh
YjMyNmRlYmQzYjBkNDlhNGFjMmRmMzMuLmE2Mzk0Yjg0MmY1YWJmYmFlMWY3ZWUyZGFjYjAyMjQ4
MDJkYTBmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDUtMTggIEp1bGlhbiBH
b256YWxleiAgPGp1bGlhbl9hX2dvbnphbGV6QGFwcGxlLmNvbT4KKworICAgICAgICBXS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5ICBfaW52b2tlTWV0aG9kIG5lZWRzIHRvIGNoZWNrIGZvciBuaWwgY29t
cGxldGlvbkhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBfaW52b2tlTWV0aG9kJ3MgYXJndW1lbnQtY2hlY2tpbmcgbG9vcCBuZWVkcyB0byBi
ZSBydW4KKyAgICAgICAgZXZlbiBpZiByZXBseUluZm8gaXMgbmlsLCBhcyBvdGhlcndpc2Ugd2Ug
Y2FuIGNhbGwgcGVyZm9ybSBhbiBpbnZvY2F0aW9uCisgICAgICAgIHdpdGggYSBuaWwgY29tcGxl
dGlvbiBoYW5kbGVyLgorCisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5tbToKKyAgICAgICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2ludm9r
ZU1ldGhvZDpdKToKKwogMjAyMS0wNS0xOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxl
LmNvbT4KIAogICAgICAgICBBbGxvdyBsb2dnaW5nIG1pbmltYWwgaW5mbyBhYm91dCB1cGxvYWRp
bmcgbWVkaWEgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCAwNWY0NDg3ZTgxYzVlMGRkMThl
ZmRkOGNmZGNlOWJkYzRkYWU2MThlLi5lZTNkM2Y1MDE3NGE2MGM0MTM5ZTA3ODk0ZmRhMmJjZGEy
NzVlMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0yNTMsODUgKzI1Myw4OCBAQCAtICh2b2lk
KV9pbnZva2VNZXRob2Q6KGNvbnN0IFdlYktpdDo6UmVtb3RlT2JqZWN0SW52b2NhdGlvbiYpcmVt
b3RlT2JqZWN0SW52b2NhdAogICAgICAgICBOU0xvZyhAIkV4Y2VwdGlvbiBjYXVnaHQgZHVyaW5n
IGRlY29kaW5nIG9mIG1lc3NhZ2U6ICVAIiwgZXhjZXB0aW9uKTsKICAgICB9CiAKLSAgICBpZiAo
YXV0byogcmVwbHlJbmZvID0gcmVtb3RlT2JqZWN0SW52b2NhdGlvbi5yZXBseUluZm8oKSkgewot
ICAgICAgICBOU01ldGhvZFNpZ25hdHVyZSAqbWV0aG9kU2lnbmF0dXJlID0gaW52b2NhdGlvbi5t
ZXRob2RTaWduYXR1cmU7CisgICAgTlNNZXRob2RTaWduYXR1cmUgKm1ldGhvZFNpZ25hdHVyZSA9
IGludm9jYXRpb24ubWV0aG9kU2lnbmF0dXJlOworICAgIGF1dG8qIHJlcGx5SW5mbyA9IHJlbW90
ZU9iamVjdEludm9jYXRpb24ucmVwbHlJbmZvKCk7CiAKLSAgICAgICAgLy8gTG9vayBmb3IgdGhl
IGJsb2NrIGFyZ3VtZW50LgotICAgICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDAsIGNvdW50ID0g
bWV0aG9kU2lnbmF0dXJlLm51bWJlck9mQXJndW1lbnRzOyBpIDwgY291bnQ7ICsraSkgewotICAg
ICAgICAgICAgY29uc3QgY2hhciAqdHlwZSA9IFttZXRob2RTaWduYXR1cmUgZ2V0QXJndW1lbnRU
eXBlQXRJbmRleDppXTsKKyAgICAvLyBMb29rIGZvciB0aGUgYmxvY2sgYXJndW1lbnQgKGlmIGFu
eSkuCisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwLCBjb3VudCA9IG1ldGhvZFNpZ25hdHVyZS5u
dW1iZXJPZkFyZ3VtZW50czsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgY29uc3QgY2hhciAq
dHlwZSA9IFttZXRob2RTaWduYXR1cmUgZ2V0QXJndW1lbnRUeXBlQXRJbmRleDppXTsKIAotICAg
ICAgICAgICAgaWYgKHN0cmNtcCh0eXBlLCAiQD8iKSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgaWYgKHN0cmNtcCh0eXBlLCAiQD8iKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgICAgICAvLyBXZSBmb3VuZCB0aGUgYmxvY2suCi0gICAgICAgICAgICBTdHJp
bmcgd2lyZUJsb2NrU2lnbmF0dXJlID0gW05TTWV0aG9kU2lnbmF0dXJlIHNpZ25hdHVyZVdpdGhP
YmpDVHlwZXM6cmVwbHlJbmZvLT5ibG9ja1NpZ25hdHVyZS51dGY4KCkuZGF0YSgpXS5fdHlwZVN0
cmluZy5VVEY4U3RyaW5nOwotICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkQmxvY2tTaWduYXR1
cmUgPSByZXBseUJsb2NrU2lnbmF0dXJlKFtpbnRlcmZhY2UgcHJvdG9jb2xdLCBpbnZvY2F0aW9u
LnNlbGVjdG9yLCBpKTsKKyAgICAgICAgLy8gV2UgZm91bmQgdGhlIGJsb2NrLgorICAgICAgICAv
LyBJZiB0aGUgd2lyZSBoYWQgbm8gYmxvY2sgc2lnbmF0dXJlIGJ1dCB3ZSBleHBlY3Qgb25lLCB3
ZSBkcm9wIHRoZSBtZXNzYWdlLgorICAgICAgICBpZiAoIXJlcGx5SW5mbykKKyAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICAgICAgaWYgKGV4cGVjdGVkQmxvY2tTaWduYXR1cmUuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VNZXRob2Q6IEZhaWxlZCB0byB2
YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6IGNvdWxkIG5vdCBmaW5kIGxvY2FsIHNpZ25h
dHVyZSIpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQorICAgICAgICBTdHJpbmcgd2lyZUJsb2Nr
U2lnbmF0dXJlID0gW05TTWV0aG9kU2lnbmF0dXJlIHNpZ25hdHVyZVdpdGhPYmpDVHlwZXM6cmVw
bHlJbmZvLT5ibG9ja1NpZ25hdHVyZS51dGY4KCkuZGF0YSgpXS5fdHlwZVN0cmluZy5VVEY4U3Ry
aW5nOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRCbG9ja1NpZ25hdHVyZSA9IHJlcGx5QmxvY2tT
aWduYXR1cmUoW2ludGVyZmFjZSBwcm90b2NvbF0sIGludm9jYXRpb24uc2VsZWN0b3IsIGkpOwog
Ci0gICAgICAgICAgICBpZiAoIWJsb2NrU2lnbmF0dXJlc0FyZUNvbXBhdGlibGUod2lyZUJsb2Nr
U2lnbmF0dXJlLCBleHBlY3RlZEJsb2NrU2lnbmF0dXJlKSkgewotICAgICAgICAgICAgICAgIE5T
TG9nKEAiX2ludm9rZU1ldGhvZDogRmFpbGVkIHRvIHZhbGlkYXRlIHJlcGx5IGJsb2NrIHNpZ25h
dHVyZTogJXMgIT0gJXMiLCB3aXJlQmxvY2tTaWduYXR1cmUudXRmOCgpLmRhdGEoKSwgZXhwZWN0
ZWRCbG9ja1NpZ25hdHVyZS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0K
KyAgICAgICAgaWYgKGV4cGVjdGVkQmxvY2tTaWduYXR1cmUuaXNOdWxsKCkpIHsKKyAgICAgICAg
ICAgIE5TTG9nKEAiX2ludm9rZU1ldGhvZDogRmFpbGVkIHRvIHZhbGlkYXRlIHJlcGx5IGJsb2Nr
IHNpZ25hdHVyZTogY291bGQgbm90IGZpbmQgbG9jYWwgc2lnbmF0dXJlIik7CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CiAKLSAgICAgICAgICAgIFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gcmVtb3Rl
T2JqZWN0UmVnaXN0cnkgPSBzZWxmOwotICAgICAgICAgICAgdWludDY0X3QgcmVwbHlJRCA9IHJl
cGx5SW5mby0+cmVwbHlJRDsKKyAgICAgICAgaWYgKCFibG9ja1NpZ25hdHVyZXNBcmVDb21wYXRp
YmxlKHdpcmVCbG9ja1NpZ25hdHVyZSwgZXhwZWN0ZWRCbG9ja1NpZ25hdHVyZSkpIHsKKyAgICAg
ICAgICAgIE5TTG9nKEAiX2ludm9rZU1ldGhvZDogRmFpbGVkIHRvIHZhbGlkYXRlIHJlcGx5IGJs
b2NrIHNpZ25hdHVyZTogJXMgIT0gJXMiLCB3aXJlQmxvY2tTaWduYXR1cmUudXRmOCgpLmRhdGEo
KSwgZXhwZWN0ZWRCbG9ja1NpZ25hdHVyZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAot
ICAgICAgICAgICAgY2xhc3MgUmVwbHlCbG9ja0NhbGxDaGVja2VyIDogcHVibGljIFdURjo6VGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UmVwbHlCbG9ja0NhbGxDaGVja2VyPiB7Ci0gICAgICAgICAgICBw
dWJsaWM6Ci0gICAgICAgICAgICAgICAgc3RhdGljIFJlZjxSZXBseUJsb2NrQ2FsbENoZWNrZXI+
IGNyZWF0ZShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVnaXN0cnksIHVpbnQ2NF90IHJlcGx5
SUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbHlCbG9ja0NhbGxDaGVja2VyKHJlZ2lzdHJ5
LCByZXBseUlEKSk7IH0KKyAgICAgICAgUmV0YWluUHRyPF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
PiByZW1vdGVPYmplY3RSZWdpc3RyeSA9IHNlbGY7CisgICAgICAgIHVpbnQ2NF90IHJlcGx5SUQg
PSByZXBseUluZm8tPnJlcGx5SUQ7CiAKLSAgICAgICAgICAgICAgICB+UmVwbHlCbG9ja0NhbGxD
aGVja2VyKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX2Rp
ZENhbGxSZXBseUJsb2NrKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBjbGFzcyBSZXBseUJsb2NrQ2FsbENoZWNrZXIgOiBwdWJsaWMgV1RGOjpUaHJlYWRTYWZlUmVm
Q291bnRlZDxSZXBseUJsb2NrQ2FsbENoZWNrZXI+IHsKKyAgICAgICAgcHVibGljOgorICAgICAg
ICAgICAgc3RhdGljIFJlZjxSZXBseUJsb2NrQ2FsbENoZWNrZXI+IGNyZWF0ZShfV0tSZW1vdGVP
YmplY3RSZWdpc3RyeSAqcmVnaXN0cnksIHVpbnQ2NF90IHJlcGx5SUQpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVwbHlCbG9ja0NhbGxDaGVja2VyKHJlZ2lzdHJ5LCByZXBseUlEKSk7IH0KIAot
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW5zdGVhZCBvZiBub3Qgc2VuZGluZyBhbnl0
aGluZyB3aGVuIHRoZSByZW1vdGUgb2JqZWN0IHJlZ2lzdHJ5IGlzIG51bGwsIHdlIHNob3VsZAot
ICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIHRyYWNrIG9mIGFsbCByZXBseSBibG9jayBjaGVj
a2VycyBhbmQgaW52YWxpZGF0ZSB0aGVtIChzZW5kaW5nIHRoZSB1bnVzZWQgcmVwbHkgbWVzc2Fn
ZSkgaW4KLSAgICAgICAgICAgICAgICAgICAgLy8gLVtfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBf
aW52YWxpZGF0ZV0uCi0gICAgICAgICAgICAgICAgICAgIGlmICghbV9yZW1vdGVPYmplY3RSZWdp
c3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgflJlcGx5QmxvY2tDYWxsQ2hlY2tlcigpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgaWYgKG1fZGlkQ2FsbFJlcGx5QmxvY2spCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LT5fcmVtb3RlT2JqZWN0UmVnaXN0cnktPnNlbmRVbnVzZWRSZXBseShtX3JlcGx5SUQpOwot
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW5zdGVhZCBvZiBu
b3Qgc2VuZGluZyBhbnl0aGluZyB3aGVuIHRoZSByZW1vdGUgb2JqZWN0IHJlZ2lzdHJ5IGlzIG51
bGwsIHdlIHNob3VsZAorICAgICAgICAgICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgYWxsIHJlcGx5
IGJsb2NrIGNoZWNrZXJzIGFuZCBpbnZhbGlkYXRlIHRoZW0gKHNlbmRpbmcgdGhlIHVudXNlZCBy
ZXBseSBtZXNzYWdlKSBpbgorICAgICAgICAgICAgICAgIC8vIC1bX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnkgX2ludmFsaWRhdGVdLgorICAgICAgICAgICAgICAgIGlmICghbV9yZW1vdGVPYmplY3RS
ZWdpc3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgICAgICAgICB2b2lkIGRpZENhbGxSZXBseUJsb2NrKCkgeyBtX2RpZENh
bGxSZXBseUJsb2NrID0gdHJ1ZTsgfQorICAgICAgICAgICAgICAgIG1fcmVtb3RlT2JqZWN0UmVn
aXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeS0+c2VuZFVudXNlZFJlcGx5KG1fcmVwbHlJRCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQgZGlkQ2FsbFJlcGx5QmxvY2soKSB7
IG1fZGlkQ2FsbFJlcGx5QmxvY2sgPSB0cnVlOyB9CiAKLSAgICAgICAgICAgIHByaXZhdGU6Ci0g
ICAgICAgICAgICAgICAgUmVwbHlCbG9ja0NhbGxDaGVja2VyKF9XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5ICpyZWdpc3RyeSwgdWludDY0X3QgcmVwbHlJRCkKLSAgICAgICAgICAgICAgICAgICAgOiBt
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KHJlZ2lzdHJ5KQotICAgICAgICAgICAgICAgICAgICAsIG1f
cmVwbHlJRChyZXBseUlEKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB9Cisg
ICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBSZXBseUJsb2NrQ2FsbENoZWNrZXIoX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkgKnJlZ2lzdHJ5LCB1aW50NjRfdCByZXBseUlEKQorICAgICAgICAg
ICAgICAgIDogbV9yZW1vdGVPYmplY3RSZWdpc3RyeShyZWdpc3RyeSkKKyAgICAgICAgICAgICAg
ICAsIG1fcmVwbHlJRChyZXBseUlEKQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAgICAgUmV0YWluUHRyPF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5PiBtX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5OwotICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1fcmVwbHlJRCA9IDA7
Ci0gICAgICAgICAgICAgICAgYm9vbCBtX2RpZENhbGxSZXBseUJsb2NrID0gZmFsc2U7Ci0gICAg
ICAgICAgICB9OworICAgICAgICAgICAgUmV0YWluUHRyPF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
PiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OworICAgICAgICAgICAgdWludDY0X3QgbV9yZXBseUlE
ID0gMDsKKyAgICAgICAgICAgIGJvb2wgbV9kaWRDYWxsUmVwbHlCbG9jayA9IGZhbHNlOworICAg
ICAgICB9OwogCi0gICAgICAgICAgICBSZWZQdHI8UmVwbHlCbG9ja0NhbGxDaGVja2VyPiBjaGVj
a2VyID0gUmVwbHlCbG9ja0NhbGxDaGVja2VyOjpjcmVhdGUoc2VsZiwgcmVwbHlJRCk7Ci0gICAg
ICAgICAgICBpZCByZXBseUJsb2NrID0gX19OU01ha2VTcGVjaWFsRm9yd2FyZGluZ0NhcHR1cmVC
bG9jayh3aXJlQmxvY2tTaWduYXR1cmUudXRmOCgpLmRhdGEoKSwgW2ludGVyZmFjZSwgcmVtb3Rl
T2JqZWN0UmVnaXN0cnksIHJlcGx5SUQsIGNoZWNrZXJdKE5TSW52b2NhdGlvbiAqaW52b2NhdGlv
bikgewotICAgICAgICAgICAgICAgIGF1dG8gZW5jb2RlciA9IGFkb3B0TlMoW1tXS1JlbW90ZU9i
amVjdEVuY29kZXIgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgICAgICAgICBbZW5jb2RlciBlbmNv
ZGVPYmplY3Q6aW52b2NhdGlvbiBmb3JLZXk6aW52b2NhdGlvbktleV07CisgICAgICAgIFJlZlB0
cjxSZXBseUJsb2NrQ2FsbENoZWNrZXI+IGNoZWNrZXIgPSBSZXBseUJsb2NrQ2FsbENoZWNrZXI6
OmNyZWF0ZShzZWxmLCByZXBseUlEKTsKKyAgICAgICAgaWQgcmVwbHlCbG9jayA9IF9fTlNNYWtl
U3BlY2lhbEZvcndhcmRpbmdDYXB0dXJlQmxvY2sod2lyZUJsb2NrU2lnbmF0dXJlLnV0ZjgoKS5k
YXRhKCksIFtpbnRlcmZhY2UsIHJlbW90ZU9iamVjdFJlZ2lzdHJ5LCByZXBseUlELCBjaGVja2Vy
XShOU0ludm9jYXRpb24gKmludm9jYXRpb24pIHsKKyAgICAgICAgICAgIGF1dG8gZW5jb2RlciA9
IGFkb3B0TlMoW1tXS1JlbW90ZU9iamVjdEVuY29kZXIgYWxsb2NdIGluaXRdKTsKKyAgICAgICAg
ICAgIFtlbmNvZGVyIGVuY29kZU9iamVjdDppbnZvY2F0aW9uIGZvcktleTppbnZvY2F0aW9uS2V5
XTsKIAotICAgICAgICAgICAgICAgIGlmIChyZW1vdGVPYmplY3RSZWdpc3RyeS0+X3JlbW90ZU9i
amVjdFJlZ2lzdHJ5KQotICAgICAgICAgICAgICAgICAgICByZW1vdGVPYmplY3RSZWdpc3RyeS0+
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kUmVwbHlCbG9jayhyZXBseUlELCBXZWJLaXQ6OlVz
ZXJEYXRhKFtlbmNvZGVyIHJvb3RPYmplY3REaWN0aW9uYXJ5XSkpOwotICAgICAgICAgICAgICAg
IGNoZWNrZXItPmRpZENhbGxSZXBseUJsb2NrKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIGlmIChyZW1vdGVPYmplY3RSZWdpc3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQorICAg
ICAgICAgICAgICAgIHJlbW90ZU9iamVjdFJlZ2lzdHJ5LT5fcmVtb3RlT2JqZWN0UmVnaXN0cnkt
PnNlbmRSZXBseUJsb2NrKHJlcGx5SUQsIFdlYktpdDo6VXNlckRhdGEoW2VuY29kZXIgcm9vdE9i
amVjdERpY3Rpb25hcnldKSk7CisgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsUmVwbHlCbG9j
aygpOworICAgICAgICB9KTsKIAotICAgICAgICAgICAgW2ludm9jYXRpb24gc2V0QXJndW1lbnQ6
JnJlcGx5QmxvY2sgYXRJbmRleDppXTsKKyAgICAgICAgW2ludm9jYXRpb24gc2V0QXJndW1lbnQ6
JnJlcGx5QmxvY2sgYXRJbmRleDppXTsKIAotICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQg
dGhlIGJsb2NrIHdvbid0IGJlIGRlc3Ryb3llZCBiZWZvcmUgdGhlIGludm9jYXRpb24uCi0gICAg
ICAgICAgICBvYmpjX3NldEFzc29jaWF0ZWRPYmplY3QoaW52b2NhdGlvbiwgcmVwbHlCbG9ja0tl
eSwgcmVwbHlCbG9jaywgT0JKQ19BU1NPQ0lBVElPTl9SRVRBSU4pOwotICAgICAgICAgICAgW3Jl
cGx5QmxvY2sgcmVsZWFzZV07CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBibG9jayB3
b24ndCBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBpbnZvY2F0aW9uLgorICAgICAgICBvYmpjX3Nl
dEFzc29jaWF0ZWRPYmplY3QoaW52b2NhdGlvbiwgcmVwbHlCbG9ja0tleSwgcmVwbHlCbG9jaywg
T0JKQ19BU1NPQ0lBVElPTl9SRVRBSU4pOworICAgICAgICBbcmVwbHlCbG9jayByZWxlYXNlXTsK
IAotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgaW52b2NhdGlvbi50YXJnZXQgPSBpbnRlcmZhY2VBbmRPYmplY3QuZmlyc3QuZ2V0KCk7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzA4
ZGVjMzE1YWQ4YjVlOGQwYmJiMWNiNTE3NjRiMjk0Yjk5MTFlZS4uM2FkMDJmNWMwNTk2N2NjYTBl
MzFkN2ZlMzAxOGU5ODk4MDZjNTlkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTE4ICBKdWxpYW4gR29u
emFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgV0tSZW1vdGVP
YmplY3RSZWdpc3RyeSAgX2ludm9rZU1ldGhvZCBuZWVkcyB0byBjaGVjayBmb3IgbmlsIGNvbXBs
ZXRpb25IYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI1OTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGFuIElQQyB0ZXN0IHdpdGggYSBuaWwgKHJlYWxseSBtYWxmb3JtZWQpIGNvbXBs
ZXRpb24gaGFuZGxlcgorICAgICAgICB0aGF0IG1ha2VzIHN1cmUgdGhlIGludm9jYXRpb24gaXMg
bm90IHBlcmZvcm1lZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSVBDVGVzdGluZ0FQSS5tbToKKyAgICAgICAgKC1bSVBDVGVzdGluZ0FQSURlbGVnYXRlIHNh
eUhlbGxvOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtJUENUZXN0aW5nQVBJRGVs
ZWdhdGUgc2F5SGVsbG9XYXNDYWxsZWRdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTA1LTE4
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbbGludC10
ZXN0LWV4cGVjdGF0aW9uc10gQ2hhbmdlIHNoZWJhbmcgdG8gUHl0aG9uIDMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQpp
bmRleCAzNTJkM2VhNzgxYzgzMzQzZDJkYWY1NDEzZjk1NzZmNDU4ZjYzMzJlLi4xYWNmMzJlZWQ0
YTVkZDA2ZGM5MzkzN2NlMGQ3ODkxN2M5NjM4ZjkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tCkBAIC0yNSwxMiAr
MjUsMTYgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIlJlbW90ZU9iamVjdFJl
Z2lzdHJ5LmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVdGlsaXRpZXMu
aCIKICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90
ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHN0YXRpYyBib29sIGRvbmUgPSBm
YWxzZTsKQEAgLTQwLDkgKzQ0LDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNTdHJpbmc+IHByb21w
dERlZmF1bHQ7CiBzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBwcm9tcHRSZXN1bHQ7CiAKIEBp
bnRlcmZhY2UgSVBDVGVzdGluZ0FQSURlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZSwg
V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CistIChCT09MKXNheUhlbGxvV2FzQ2FsbGVkOwogQGVuZAog
ICAgIAogQGltcGxlbWVudGF0aW9uIElQQ1Rlc3RpbmdBUElEZWxlZ2F0ZQorICAgIEJPT0wgZGlk
Q2FsbFNheUhlbGxvID0gTk87CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2Ug
aW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKQEAgLTY0LDYgKzcwLDE2IEBAIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2ViQ29udGVudFByb2Nlc3NEaWRU
ZXJtaW5hdGVXaXRoUmVhc29uOihfCiAgICAgZG9uZSA9IHRydWU7CiB9CiAKKy0gKHZvaWQpc2F5
SGVsbG86KE5TU3RyaW5nICopaGVsbG8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgZGlkQ2FsbFNheUhlbGxvID0gWUVTOwor
fQorCistIChCT09MKXNheUhlbGxvV2FzQ2FsbGVkCit7CisgICAgcmV0dXJuIGRpZENhbGxTYXlI
ZWxsbzsKK30KKwogQGVuZAogCiBURVNUKElQQ1Rlc3RpbmdBUEksIElzRGlzYWJsZWRCeURlZmF1
bHQpCkBAIC05Myw2ICsxMDksNTggQEAgc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBj
cmVhdGVXZWJWaWV3V2l0aElQQ1Rlc3RpbmdBUEkoKQogICAgIHJldHVybiBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIH0KIAorVEVTVChJUENUZXN0
aW5nQVBJLCBDYW5EZXRlY3ROaWxSZXBseUJsb2NrcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBj
cmVhdGVXZWJWaWV3V2l0aElQQ1Rlc3RpbmdBUEkoKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbSVBDVGVzdGluZ0FQSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgKmludGVyZmFjZSA9IHJlbW90ZU9iamVjdEludGVyZmFjZSgpOworICAgIFtbd2Vi
VmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFj
ZTppbnRlcmZhY2VdOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lz
dGVyRXhwb3J0ZWRPYmplY3Q6ZGVsZWdhdGUuZ2V0KCkgaW50ZXJmYWNlOmludGVyZmFjZV07CisK
KyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPCFET0NUWVBFIGh0bWw+PHNjcmlwdD5idWYgPSBuZXcgVWludDhBcnJheShbIgorICAg
ICAgICAvLyBTdHJpbmdzIGluIHRoaXMgYnVmZmVyIGFyZSBlbmNvZGVkIGFzIGZvbGxvd3M6Cisg
ICAgICAgIC8vIHN0cmluZyBsZW5ndGgsIDMgTlVMIGJ5dGVzLCAweDEgYnl0ZSwgdGhlbiBzdHJp
bmcgY29udGVudHMKKyAgICAgICAgLy8gRm9yIGV4YW1wbGUsIHRoaXMgc3RyaW5nIGlzIDB4MTQg
bGVuZ3RoICgyMCBieXRlcyksIDMgTlVMIGJ5dGVzICsgMHgxLCB0aGVuICJSZW1vdGVPYmplY3RQ
cm90b2NvbCIKKyAgICAgICAgIjB4MTQsMHgwLDB4MCwweDAsMHgxLDB4NTIsMHg2NSwweDZkLDB4
NmYsMHg3NCwweDY1LDB4NGYsMHg2MiwweDZhLDB4NjUsMHg2MywweDc0LDB4NTAsMHg3MiwweDZm
LDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywiCisgICAgICAgIC8vIHBhZGRpbmcgKyAiaW52b2Nh
dGlvbiIKKyAgICAgICAgIjB4MCwweDAsMHgwLDB4OSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCww
eDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHg2OSwweDZlLDB4NzYsMHg2
ZiwweDYzLDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwiCisgICAgICAgIC8vIGEgc2VyaWFsaXpl
ZCBvYmplY3QgKyAidHlwZVN0cmluZyIKKyAgICAgICAgIjB4MCwweDksMHgwLDB4MCwweDAsMHhm
NSwweGViLDB4NTQsMHhhOSwweDMsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAs
MHgwLDB4MCwweDEsMHg3NCwweDc5LDB4NzAsMHg2NSwweDUzLDB4NzQsMHg3MiwweDY5LDB4NmUs
MHg2NywweDAsIgorICAgICAgICAvLyBhIHplcm9lZCBvYmplY3QgKyAiJHN0cmluZyIKKyAgICAg
ICAgIjB4OSwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCww
eDAsMHgwLDB4MCwweDcsMHgwLDB4MCwweDAsMHgxLDB4MjQsMHg3MywweDc0LDB4NzIsMHg2OSww
eDZlLDB4NjcsMHgxNSwweDAsMHgwLDB4MCwiCisgICAgICAgIC8vICJ2QDpALkAuPyIgKGFuIG9i
amVjdGl2ZS1DIG1ldGhvZCBzaWduYXR1cmUpICsgImNsYXNzIgorICAgICAgICAiMHg2LDB4MCww
eDAsMHgwLDB4MSwweDc2LDB4NDAsMHgzYSwweDQwLDB4NDAsMHgzZiwweDAsMHg2LDB4MCwweDAs
MHgwLDB4MSwweDI0LDB4NjMsMHg2YywweDYxLDB4NzMsMHg3MywweDAsIgorICAgICAgICAvLyAi
TlNTdHJpbmciICsgInNlbGVjdG9yIgorICAgICAgICAiMHgxNSwweDAsMHgwLDB4MCwweDgsMHgw
LDB4MCwweDAsMHgxLDB4NGUsMHg1MywweDUzLDB4NzQsMHg3MiwweDY5LDB4NmUsMHg2NywweDAs
MHgwLDB4MCwweDgsMHgwLDB4MCwweDAsMHgxLDB4NzMsMHg2NSwweDZjLDB4NjUsMHg2MywweDc0
LDB4NmYsMHg3MiwweDAsMHgwLDB4MCwiCisgICAgICAgIC8vIGEgemVyb2VkIG9iamVjdCArICIk
c3RyaW5nIgorICAgICAgICAiMHg5LDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHg3LDB4MCwweDAsMHgwLDB4MSwweDI0LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2
ZSwweDY3LDB4MTUsMHgwLDB4MCwweDAsIgorICAgICAgICAvLyAic2F5SGVsbG86Y29tcGxldGlv
bkhhbmRsZXI6IiAobWV0aG9kIG5hbWUgd2UncmUgdHJ5aW5nIHRvIGNhbGwpCisgICAgICAgICIw
eDFiLDB4MCwweDAsMHgwLDB4MSwweDczLDB4NjEsMHg3OSwweDQ4LDB4NjUsMHg2YywweDZjLDB4
NmYsMHgzYSwweDYzLDB4NmYsMHg2ZCwweDcwLDB4NmMsMHg2NSwweDc0LDB4NjksMHg2ZiwweDZl
LDB4NDgsMHg2MSwweDZlLDB4NjQsMHg2YywweDY1LDB4NzIsMHgzYSwiCisgICAgICAgIC8vICIk
Y2xhc3MiICsgIk5TU3RyaW5nIgorICAgICAgICAiMHg2LDB4MCwweDAsMHgwLDB4MSwweDI0LDB4
NjMsMHg2YywweDYxLDB4NzMsMHg3MywweDAsMHgxNSwweDAsMHgwLDB4MCwweDgsMHgwLDB4MCww
eDAsMHgxLDB4NGUsMHg1MywweDUzLDB4NzQsMHg3MiwweDY5LDB4NmUsMHg2NywweDAsMHgwLDB4
MCwiCisgICAgICAgIC8vICIkY2xhc3MiICsgIk5TSW52b2NhdGlvbiIKKyAgICAgICAgIjB4Niww
eDAsMHgwLDB4MCwweDEsMHgyNCwweDYzLDB4NmMsMHg2MSwweDczLDB4NzMsMHgwLDB4MTUsMHgw
LDB4MCwweDAsMHhjLDB4MCwweDAsMHgwLDB4MSwweDRlLDB4NTMsMHg0OSwweDZlLDB4NzYsMHg2
ZiwweDYzLDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDAsMHgwLDB4MCwiCisgICAgICAgIC8v
ICIkb2JqZWN0U3RhbSIgKyB6ZXJvIG9iamVjdAorICAgICAgICAiMHhkLDB4MCwweDAsMHgwLDB4
MSwweDI0LDB4NmYsMHg2MiwweDZhLDB4NjUsMHg2MywweDc0LDB4NTMsMHg3NCwweDYxLDB4NmQs
MHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCww
eDAsMHgwLDB4MCwweDAsIgorICAgICAgICAvLyB6ZXJvZWQgb2JqZWN0cyArICIuTlMudXVpZGJ5
dGVzIgorICAgICAgICAiMHg5LDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDIsMHgwLDB4
MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YywweDAsMHgwLDB4MCwweDkxLDB4NGUsMHg1MywweDJl
LDB4NzUsMHg3NSwweDY5LDB4NjQsMHg2MiwweDc5LDB4NzQsMHg2NSwweDczLDB4MCwweDAsMHgw
LCIKKyAgICAgICAgLy8gc29tZSB6ZXJvZWQgb2JqZWN0cworICAgICAgICAiMHg4LDB4MCwweDAs
MHgwLDB4MTAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MjksMHhjNSwweDZkLDB4Miww
eDEzLDB4YSwweDRlLDB4ZTcsMHhhYSwweGFjLDB4OCwweDU1LDB4ZjIsMHg2NiwweDJjLDB4N2Ms
IgorICAgICAgICAvLyAiJGNsYXNzIiArICJOU1VVSUQiCisgICAgICAgICIweDYsMHgwLDB4MCww
eDAsMHgxLDB4MjQsMHg2MywweDZjLDB4NjEsMHg3MywweDczLDB4MCwweDE1LDB4MCwweDAsMHgw
LDB4NiwweDAsMHgwLDB4MCwweDEsMHg0ZSwweDUzLDB4NTUsMHg1NSwweDQ5LDB4NDQsMHgwLDB4
MCwweDAsIgorICAgICAgICAvLyBtb3N0bHkgemVybyBvYmplY3RzICsgInZAP2MiIChvYmplY3Rp
dmUtQyBtZXRob2Qgc2lnbmF0dXJlKQorICAgICAgICAiMHgwLDB4MCwweDEsMHgwLDB4MCwweDAs
MHgyYywweDAsMHgwLDB4MCwweDU5LDB4MSwweDAsMHgwLDB4MCwweDliLDB4MCwweDAsMHg0LDB4
MCwweDAsMHgwLDB4MSwweDc2LDB4NDAsMHgzZiwweDYzLDB4MCxdKTsiCisgICAgICAgICJJUEMu
c2VuZE1lc3NhZ2UoJ1VJJywgMTYsIElQQy5tZXNzYWdlcy5SZW1vdGVPYmplY3RSZWdpc3RyeV9J
bnZva2VNZXRob2QubmFtZSwgW2J1Zl0pOzwvc2NyaXB0PiJdOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bkZvcigmZG9uZSwgMSk7CisKKyAgICAvLyBNYWtlIHN1cmUgc2F5SGVsbG8gd2Fz
IG5vdCBjYWxsZWQsIGFzIHRoZSByZXBseSBibG9jayB3YXMgbmlsLgorICAgIEVYUEVDVF9FUShb
ZGVsZWdhdGUuZ2V0KCkgc2F5SGVsbG9XYXNDYWxsZWRdLCBOTyk7Cit9CisKIFRFU1QoSVBDVGVz
dGluZ0FQSSwgQ2FuU2VuZEFsZXJ0KQogewogICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZp
ZXdXaXRoSVBDVGVzdGluZ0FQSSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429105</attachid>
            <date>2021-05-19 15:54:52 -0700</date>
            <delta_ts>2021-05-20 17:45:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225941-20210519155452.patch</filename>
            <type>text/plain</type>
            <size>16326</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZWNlZmZlNzU2NTQxYzhh
YjMyNmRlYmQzYjBkNDlhNGFjMmRmMzMuLjE1MWYwYTQxNTQ2ZDhjYzI5YTEzZTIxOTVmNTg4YmVj
ZDdlZjY3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMTkgIEp1bGlhbiBH
b256YWxleiAgPGp1bGlhbl9hX2dvbnphbGV6QGFwcGxlLmNvbT4KKworICAgICAgICBXS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5ICBfaW52b2tlTWV0aG9kIG5lZWRzIHRvIGNoZWNrIGZvciBuaWwgY29t
cGxldGlvbkhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBfaW52b2tlTWV0aG9kJ3MgYXJndW1lbnQtY2hlY2tpbmcgbG9vcCBuZWVkcyB0byBi
ZSBydW4KKyAgICAgICAgZXZlbiBpZiByZXBseUluZm8gaXMgbmlsLCBhcyBvdGhlcndpc2Ugd2Ug
Y2FuIHBlcmZvcm0gYW4gaW52b2NhdGlvbgorICAgICAgICBpZiBhIG1ldGhvZCBzaWduYXR1cmUg
c3BlY2lmaWVzIGEgY29tcGxldGlvbiBoYW5kbGVyIGV2ZW4gdGhvdWdoCisgICAgICAgIG5vbmUg
aXMgcHJvdmlkZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52b2tl
TWV0aG9kOl0pOgorCiAyMDIxLTA1LTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvZ2dpbmcgbWluaW1hbCBpbmZvIGFib3V0IHVwbG9hZGlu
ZyBtZWRpYSBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCmluZGV4IDA1ZjQ0ODdlODFjNWUwZGQxOGVm
ZGQ4Y2ZkY2U5YmRjNGRhZTYxOGUuLjZiYmEwYTk0ZTI0MzgwYjg0OTk4OTVlYjQ3MDMzYjk5YTZm
MDA5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1v
dGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KQEAgLTI1Myw4NSArMjUzLDkwIEBAIC0gKHZvaWQp
X2ludm9rZU1ldGhvZDooY29uc3QgV2ViS2l0OjpSZW1vdGVPYmplY3RJbnZvY2F0aW9uJilyZW1v
dGVPYmplY3RJbnZvY2F0CiAgICAgICAgIE5TTG9nKEAiRXhjZXB0aW9uIGNhdWdodCBkdXJpbmcg
ZGVjb2Rpbmcgb2YgbWVzc2FnZTogJUAiLCBleGNlcHRpb24pOwogICAgIH0KIAotICAgIGlmIChh
dXRvKiByZXBseUluZm8gPSByZW1vdGVPYmplY3RJbnZvY2F0aW9uLnJlcGx5SW5mbygpKSB7Ci0g
ICAgICAgIE5TTWV0aG9kU2lnbmF0dXJlICptZXRob2RTaWduYXR1cmUgPSBpbnZvY2F0aW9uLm1l
dGhvZFNpZ25hdHVyZTsKKyAgICBOU01ldGhvZFNpZ25hdHVyZSAqbWV0aG9kU2lnbmF0dXJlID0g
aW52b2NhdGlvbi5tZXRob2RTaWduYXR1cmU7CisgICAgYXV0byogcmVwbHlJbmZvID0gcmVtb3Rl
T2JqZWN0SW52b2NhdGlvbi5yZXBseUluZm8oKTsKIAotICAgICAgICAvLyBMb29rIGZvciB0aGUg
YmxvY2sgYXJndW1lbnQuCi0gICAgICAgIGZvciAoTlNVSW50ZWdlciBpID0gMCwgY291bnQgPSBt
ZXRob2RTaWduYXR1cmUubnVtYmVyT2ZBcmd1bWVudHM7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAg
ICAgICAgICBjb25zdCBjaGFyICp0eXBlID0gW21ldGhvZFNpZ25hdHVyZSBnZXRBcmd1bWVudFR5
cGVBdEluZGV4OmldOworICAgIC8vIExvb2sgZm9yIHRoZSBibG9jayBhcmd1bWVudCAoaWYgYW55
KS4KKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDAsIGNvdW50ID0gbWV0aG9kU2lnbmF0dXJlLm51
bWJlck9mQXJndW1lbnRzOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBjaGFyICp0
eXBlID0gW21ldGhvZFNpZ25hdHVyZSBnZXRBcmd1bWVudFR5cGVBdEluZGV4OmldOwogCi0gICAg
ICAgICAgICBpZiAoc3RyY21wKHR5cGUsICJAPyIpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBpZiAoc3RyY21wKHR5cGUsICJAPyIpKQorICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgICAgIC8vIFdlIGZvdW5kIHRoZSBibG9jay4KLSAgICAgICAgICAgIFN0cmlu
ZyB3aXJlQmxvY2tTaWduYXR1cmUgPSBbTlNNZXRob2RTaWduYXR1cmUgc2lnbmF0dXJlV2l0aE9i
akNUeXBlczpyZXBseUluZm8tPmJsb2NrU2lnbmF0dXJlLnV0ZjgoKS5kYXRhKCldLl90eXBlU3Ry
aW5nLlVURjhTdHJpbmc7Ci0gICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRCbG9ja1NpZ25hdHVy
ZSA9IHJlcGx5QmxvY2tTaWduYXR1cmUoW2ludGVyZmFjZSBwcm90b2NvbF0sIGludm9jYXRpb24u
c2VsZWN0b3IsIGkpOworICAgICAgICAvLyBXZSBmb3VuZCB0aGUgYmxvY2suCisgICAgICAgIC8v
IElmIHRoZSB3aXJlIGhhZCBubyBibG9jayBzaWduYXR1cmUgYnV0IHdlIGV4cGVjdCBvbmUsIHdl
IGRyb3AgdGhlIG1lc3NhZ2UuCisgICAgICAgIGlmICghcmVwbHlJbmZvKSB7CisgICAgICAgICAg
ICBOU0xvZyhAIl9pbnZva2VNZXRob2Q6IEV4cGVjdGVkIHJlcGx5IGJsb2NrLCBidXQgbm9uZSBw
cm92aWRlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgICAg
IGlmIChleHBlY3RlZEJsb2NrU2lnbmF0dXJlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICAgICAg
TlNMb2coQCJfaW52b2tlTWV0aG9kOiBGYWlsZWQgdG8gdmFsaWRhdGUgcmVwbHkgYmxvY2sgc2ln
bmF0dXJlOiBjb3VsZCBub3QgZmluZCBsb2NhbCBzaWduYXR1cmUiKTsKLSAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHdpcmVCbG9ja1NpZ25hdHVyZSA9IFtOU01ldGhvZFNp
Z25hdHVyZSBzaWduYXR1cmVXaXRoT2JqQ1R5cGVzOnJlcGx5SW5mby0+YmxvY2tTaWduYXR1cmUu
dXRmOCgpLmRhdGEoKV0uX3R5cGVTdHJpbmcuVVRGOFN0cmluZzsKKyAgICAgICAgU3RyaW5nIGV4
cGVjdGVkQmxvY2tTaWduYXR1cmUgPSByZXBseUJsb2NrU2lnbmF0dXJlKFtpbnRlcmZhY2UgcHJv
dG9jb2xdLCBpbnZvY2F0aW9uLnNlbGVjdG9yLCBpKTsKIAotICAgICAgICAgICAgaWYgKCFibG9j
a1NpZ25hdHVyZXNBcmVDb21wYXRpYmxlKHdpcmVCbG9ja1NpZ25hdHVyZSwgZXhwZWN0ZWRCbG9j
a1NpZ25hdHVyZSkpIHsKLSAgICAgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VNZXRob2Q6IEZh
aWxlZCB0byB2YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6ICVzICE9ICVzIiwgd2lyZUJs
b2NrU2lnbmF0dXJlLnV0ZjgoKS5kYXRhKCksIGV4cGVjdGVkQmxvY2tTaWduYXR1cmUudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChleHBlY3RlZEJs
b2NrU2lnbmF0dXJlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VNZXRo
b2Q6IEZhaWxlZCB0byB2YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6IGNvdWxkIG5vdCBm
aW5kIGxvY2FsIHNpZ25hdHVyZSIpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0gICAgICAgICAgICBSZXRhaW5Q
dHI8X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk+IHJlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gc2VsZjsK
LSAgICAgICAgICAgIHVpbnQ2NF90IHJlcGx5SUQgPSByZXBseUluZm8tPnJlcGx5SUQ7CisgICAg
ICAgIGlmICghYmxvY2tTaWduYXR1cmVzQXJlQ29tcGF0aWJsZSh3aXJlQmxvY2tTaWduYXR1cmUs
IGV4cGVjdGVkQmxvY2tTaWduYXR1cmUpKSB7CisgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VN
ZXRob2Q6IEZhaWxlZCB0byB2YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6ICVzICE9ICVz
Iiwgd2lyZUJsb2NrU2lnbmF0dXJlLnV0ZjgoKS5kYXRhKCksIGV4cGVjdGVkQmxvY2tTaWduYXR1
cmUudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAKLSAgICAgICAgICAgIGNsYXNzIFJlcGx5
QmxvY2tDYWxsQ2hlY2tlciA6IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPFJlcGx5
QmxvY2tDYWxsQ2hlY2tlcj4gewotICAgICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgICAg
IHN0YXRpYyBSZWY8UmVwbHlCbG9ja0NhbGxDaGVja2VyPiBjcmVhdGUoX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkgKnJlZ2lzdHJ5LCB1aW50NjRfdCByZXBseUlEKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFJlcGx5QmxvY2tDYWxsQ2hlY2tlcihyZWdpc3RyeSwgcmVwbHlJRCkpOyB9CisgICAgICAg
IFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gcmVtb3RlT2JqZWN0UmVnaXN0cnkg
PSBzZWxmOworICAgICAgICB1aW50NjRfdCByZXBseUlEID0gcmVwbHlJbmZvLT5yZXBseUlEOwog
Ci0gICAgICAgICAgICAgICAgflJlcGx5QmxvY2tDYWxsQ2hlY2tlcigpCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICBpZiAobV9kaWRDYWxsUmVwbHlCbG9jaykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2xhc3MgUmVwbHlCbG9ja0NhbGxD
aGVja2VyIDogcHVibGljIFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVwbHlCbG9ja0NhbGxD
aGVja2VyPiB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHN0YXRpYyBSZWY8UmVwbHlC
bG9ja0NhbGxDaGVja2VyPiBjcmVhdGUoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlZ2lzdHJ5
LCB1aW50NjRfdCByZXBseUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGx5QmxvY2tDYWxs
Q2hlY2tlcihyZWdpc3RyeSwgcmVwbHlJRCkpOyB9CiAKLSAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEluc3RlYWQgb2Ygbm90IHNlbmRpbmcgYW55dGhpbmcgd2hlbiB0aGUgcmVtb3RlIG9i
amVjdCByZWdpc3RyeSBpcyBudWxsLCB3ZSBzaG91bGQKLSAgICAgICAgICAgICAgICAgICAgLy8g
a2VlcCB0cmFjayBvZiBhbGwgcmVwbHkgYmxvY2sgY2hlY2tlcnMgYW5kIGludmFsaWRhdGUgdGhl
bSAoc2VuZGluZyB0aGUgdW51c2VkIHJlcGx5IG1lc3NhZ2UpIGluCi0gICAgICAgICAgICAgICAg
ICAgIC8vIC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2ludmFsaWRhdGVdLgotICAgICAgICAg
ICAgICAgICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RSZWdp
c3RyeSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH5SZXBs
eUJsb2NrQ2FsbENoZWNrZXIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICht
X2RpZENhbGxSZXBseUJsb2NrKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgICAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LT5zZW5kVW51c2VkUmVwbHkobV9yZXBseUlEKTsKLSAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEluc3RlYWQgb2Ygbm90IHNlbmRpbmcgYW55dGhpbmcgd2hl
biB0aGUgcmVtb3RlIG9iamVjdCByZWdpc3RyeSBpcyBudWxsLCB3ZSBzaG91bGQKKyAgICAgICAg
ICAgICAgICAvLyBrZWVwIHRyYWNrIG9mIGFsbCByZXBseSBibG9jayBjaGVja2VycyBhbmQgaW52
YWxpZGF0ZSB0aGVtIChzZW5kaW5nIHRoZSB1bnVzZWQgcmVwbHkgbWVzc2FnZSkgaW4KKyAgICAg
ICAgICAgICAgICAvLyAtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXS4KKyAg
ICAgICAgICAgICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RS
ZWdpc3RyeSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICAgICAg
dm9pZCBkaWRDYWxsUmVwbHlCbG9jaygpIHsgbV9kaWRDYWxsUmVwbHlCbG9jayA9IHRydWU7IH0K
KyAgICAgICAgICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5fcmVtb3RlT2JqZWN0UmVn
aXN0cnktPnNlbmRVbnVzZWRSZXBseShtX3JlcGx5SUQpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICB2b2lkIGRpZENhbGxSZXBseUJsb2NrKCkgeyBtX2RpZENhbGxSZXBseUJsb2NrID0g
dHJ1ZTsgfQogCi0gICAgICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgICAgIFJlcGx5Qmxv
Y2tDYWxsQ2hlY2tlcihfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVnaXN0cnksIHVpbnQ2NF90
IHJlcGx5SUQpCi0gICAgICAgICAgICAgICAgICAgIDogbV9yZW1vdGVPYmplY3RSZWdpc3RyeShy
ZWdpc3RyeSkKLSAgICAgICAgICAgICAgICAgICAgLCBtX3JlcGx5SUQocmVwbHlJRCkKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAg
ICAgICAgUmVwbHlCbG9ja0NhbGxDaGVja2VyKF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZWdp
c3RyeSwgdWludDY0X3QgcmVwbHlJRCkKKyAgICAgICAgICAgICAgICA6IG1fcmVtb3RlT2JqZWN0
UmVnaXN0cnkocmVnaXN0cnkpCisgICAgICAgICAgICAgICAgLCBtX3JlcGx5SUQocmVwbHlJRCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIFJldGFpblB0
cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKLSAgICAg
ICAgICAgICAgICB1aW50NjRfdCBtX3JlcGx5SUQgPSAwOwotICAgICAgICAgICAgICAgIGJvb2wg
bV9kaWRDYWxsUmVwbHlCbG9jayA9IGZhbHNlOwotICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3Ry
eTsKKyAgICAgICAgICAgIHVpbnQ2NF90IG1fcmVwbHlJRCA9IDA7CisgICAgICAgICAgICBib29s
IG1fZGlkQ2FsbFJlcGx5QmxvY2sgPSBmYWxzZTsKKyAgICAgICAgfTsKIAotICAgICAgICAgICAg
UmVmUHRyPFJlcGx5QmxvY2tDYWxsQ2hlY2tlcj4gY2hlY2tlciA9IFJlcGx5QmxvY2tDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKHNlbGYsIHJlcGx5SUQpOwotICAgICAgICAgICAgaWQgcmVwbHlCbG9jayA9
IF9fTlNNYWtlU3BlY2lhbEZvcndhcmRpbmdDYXB0dXJlQmxvY2sod2lyZUJsb2NrU2lnbmF0dXJl
LnV0ZjgoKS5kYXRhKCksIFtpbnRlcmZhY2UsIHJlbW90ZU9iamVjdFJlZ2lzdHJ5LCByZXBseUlE
LCBjaGVja2VyXShOU0ludm9jYXRpb24gKmludm9jYXRpb24pIHsKLSAgICAgICAgICAgICAgICBh
dXRvIGVuY29kZXIgPSBhZG9wdE5TKFtbV0tSZW1vdGVPYmplY3RFbmNvZGVyIGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgICAgICAgICAgW2VuY29kZXIgZW5jb2RlT2JqZWN0Omludm9jYXRpb24gZm9y
S2V5Omludm9jYXRpb25LZXldOworICAgICAgICBSZWZQdHI8UmVwbHlCbG9ja0NhbGxDaGVja2Vy
PiBjaGVja2VyID0gUmVwbHlCbG9ja0NhbGxDaGVja2VyOjpjcmVhdGUoc2VsZiwgcmVwbHlJRCk7
CisgICAgICAgIGlkIHJlcGx5QmxvY2sgPSBfX05TTWFrZVNwZWNpYWxGb3J3YXJkaW5nQ2FwdHVy
ZUJsb2NrKHdpcmVCbG9ja1NpZ25hdHVyZS51dGY4KCkuZGF0YSgpLCBbaW50ZXJmYWNlLCByZW1v
dGVPYmplY3RSZWdpc3RyeSwgcmVwbHlJRCwgY2hlY2tlcl0oTlNJbnZvY2F0aW9uICppbnZvY2F0
aW9uKSB7CisgICAgICAgICAgICBhdXRvIGVuY29kZXIgPSBhZG9wdE5TKFtbV0tSZW1vdGVPYmpl
Y3RFbmNvZGVyIGFsbG9jXSBpbml0XSk7CisgICAgICAgICAgICBbZW5jb2RlciBlbmNvZGVPYmpl
Y3Q6aW52b2NhdGlvbiBmb3JLZXk6aW52b2NhdGlvbktleV07CiAKLSAgICAgICAgICAgICAgICBp
ZiAocmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeSkKLSAgICAgICAg
ICAgICAgICAgICAgcmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeS0+
c2VuZFJlcGx5QmxvY2socmVwbHlJRCwgV2ViS2l0OjpVc2VyRGF0YShbZW5jb2RlciByb290T2Jq
ZWN0RGljdGlvbmFyeV0pKTsKLSAgICAgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsUmVwbHlC
bG9jaygpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAocmVtb3RlT2JqZWN0UmVn
aXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeSkKKyAgICAgICAgICAgICAgICByZW1vdGVPYmpl
Y3RSZWdpc3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kUmVwbHlCbG9jayhyZXBseUlE
LCBXZWJLaXQ6OlVzZXJEYXRhKFtlbmNvZGVyIHJvb3RPYmplY3REaWN0aW9uYXJ5XSkpOworICAg
ICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbFJlcGx5QmxvY2soKTsKKyAgICAgICAgfSk7CiAKLSAg
ICAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZyZXBseUJsb2NrIGF0SW5kZXg6aV07
CisgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZyZXBseUJsb2NrIGF0SW5kZXg6aV07
CiAKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBibG9jayB3b24ndCBiZSBkZXN0
cm95ZWQgYmVmb3JlIHRoZSBpbnZvY2F0aW9uLgotICAgICAgICAgICAgb2JqY19zZXRBc3NvY2lh
dGVkT2JqZWN0KGludm9jYXRpb24sIHJlcGx5QmxvY2tLZXksIHJlcGx5QmxvY2ssIE9CSkNfQVNT
T0NJQVRJT05fUkVUQUlOKTsKLSAgICAgICAgICAgIFtyZXBseUJsb2NrIHJlbGVhc2VdOworICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sgd29uJ3QgYmUgZGVzdHJveWVkIGJlZm9y
ZSB0aGUgaW52b2NhdGlvbi4KKyAgICAgICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGludm9j
YXRpb24sIHJlcGx5QmxvY2tLZXksIHJlcGx5QmxvY2ssIE9CSkNfQVNTT0NJQVRJT05fUkVUQUlO
KTsKKyAgICAgICAgW3JlcGx5QmxvY2sgcmVsZWFzZV07CiAKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGludm9jYXRpb24udGFyZ2V0
ID0gaW50ZXJmYWNlQW5kT2JqZWN0LmZpcnN0LmdldCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMwOGRlYzMxNWFkOGI1ZThkMGJiYjFjYjUx
NzY0YjI5NGI5OTExZWUuLmRlNmRiMjVkODkyYjBjZjJkNzY5Nzc1NTQyYzk1MmQ0MGVlY2YzZmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMS0wNS0xOSAgSnVsaWFuIEdvbnphbGV6ICA8anVsaWFuX2FfZ29uemFs
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnkgIF9pbnZva2VN
ZXRob2QgbmVlZHMgdG8gY2hlY2sgZm9yIG5pbCBjb21wbGV0aW9uSGFuZGxlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBJUEMgdGVzdCB3
aXRoIGEgbmlsIChyZWFsbHkgbWFsZm9ybWVkKSBjb21wbGV0aW9uIGhhbmRsZXIKKyAgICAgICAg
dGhhdCBtYWtlcyBzdXJlIHRoZSBpbnZvY2F0aW9uIGlzIG5vdCBwZXJmb3JtZWQuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW06Cisg
ICAgICAgICgtW0lQQ1Rlc3RpbmdBUElEZWxlZ2F0ZSBzYXlIZWxsbzpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bSVBDVGVzdGluZ0FQSURlbGVnYXRlIHNheUhlbGxvV2FzQ2FsbGVk
XSk6CisgICAgICAgIChURVNUKToKKwogMjAyMS0wNS0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJl
ZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2xpbnQtdGVzdC1leHBlY3RhdGlvbnNdIENoYW5n
ZSBzaGViYW5nIHRvIFB5dGhvbiAzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KaW5kZXggMzUyZDNlYTc4MWM4MzM0M2Qy
ZGFmNTQxM2Y5NTc2ZjQ1OGY2MzMyZS4uOGQyNWU4MDdhMzk1NTU2MGIwYmMxNmYzNTQzOTM3MzRh
OTg2NmIzMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JUENUZXN0aW5nQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQpAQCAtMjUsMTIgKzI1LDE2IEBACiAKICNpbXBvcnQgImNv
bmZpZy5oIgogCisjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgogI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNp
bXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogCiBzdGF0aWMgYm9vbCBkb25lID0gZmFsc2U7CkBAIC00MCw5ICs0NCwxMSBA
QCBzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBwcm9tcHREZWZhdWx0Owogc3RhdGljIFJldGFp
blB0cjxOU1N0cmluZz4gcHJvbXB0UmVzdWx0OwogCiBAaW50ZXJmYWNlIElQQ1Rlc3RpbmdBUElE
ZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGUsIFdLTmF2aWdhdGlvbkRlbGVnYXRlPgor
LSAoQk9PTClzYXlIZWxsb1dhc0NhbGxlZDsKIEBlbmQKICAgICAKIEBpbXBsZW1lbnRhdGlvbiBJ
UENUZXN0aW5nQVBJRGVsZWdhdGUKKyAgICBCT09MIGRpZENhbGxTYXlIZWxsbyA9IE5POwogCiAt
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJh
bWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRp
b25IYW5kbGVyCiB7CkBAIC02NCw2ICs3MCwxNiBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbjooXwog
ICAgIGRvbmUgPSB0cnVlOwogfQogCistICh2b2lkKXNheUhlbGxvOihOU1N0cmluZyAqKWhlbGxv
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxl
cgoreworICAgIGRpZENhbGxTYXlIZWxsbyA9IFlFUzsKK30KKworLSAoQk9PTClzYXlIZWxsb1dh
c0NhbGxlZAoreworICAgIHJldHVybiBkaWRDYWxsU2F5SGVsbG87Cit9CisKIEBlbmQKIAogVEVT
VChJUENUZXN0aW5nQVBJLCBJc0Rpc2FibGVkQnlEZWZhdWx0KQpAQCAtOTMsNiArMTA5LDU4IEBA
IHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0
aW5nQVBJKCkKICAgICByZXR1cm4gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CiB9CiAKK1RFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuRGV0ZWN0TmlsUmVw
bHlCbG9ja3MpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0
aW5nQVBJKCk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0lQQ1Rlc3RpbmdBUElE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdh
dGUuZ2V0KCldOworCisgICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2UgPSBy
ZW1vdGVPYmplY3RJbnRlcmZhY2UoKTsKKyAgICBbW3dlYlZpZXcgX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5XSByZW1vdGVPYmplY3RQcm94eVdpdGhJbnRlcmZhY2U6aW50ZXJmYWNlXTsKKyAgICBbW3dl
YlZpZXcgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0OmRlbGVn
YXRlLmdldCgpIGludGVyZmFjZTppbnRlcmZhY2VdOworCisgICAgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1sPjxz
Y3JpcHQ+YnVmID0gbmV3IFVpbnQ4QXJyYXkoWyIKKyAgICAgICAgLy8gU3RyaW5ncyBpbiB0aGlz
IGJ1ZmZlciBhcmUgZW5jb2RlZCBhcyBmb2xsb3dzOgorICAgICAgICAvLyBzdHJpbmcgbGVuZ3Ro
LCAzIE5VTCBieXRlcywgMHgxIGJ5dGUsIHRoZW4gc3RyaW5nIGNvbnRlbnRzCisgICAgICAgIC8v
IEZvciBleGFtcGxlLCB0aGlzIHN0cmluZyBpcyAweDE0IGxlbmd0aCAoMjAgYnl0ZXMpLCAzIE5V
TCBieXRlcyArIDB4MSwgdGhlbiAiUmVtb3RlT2JqZWN0UHJvdG9jb2wiCisgICAgICAgICIweDE0
LDB4MCwweDAsMHgwLDB4MSwweDUyLDB4NjUsMHg2ZCwweDZmLDB4NzQsMHg2NSwweDRmLDB4NjIs
MHg2YSwweDY1LDB4NjMsMHg3NCwweDUwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4
NmMsIgorICAgICAgICAvLyBwYWRkaW5nICsgImludm9jYXRpb24iCisgICAgICAgICIweDAsMHgw
LDB4MCwweDksMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEs
MHgwLDB4MCwweDAsMHgxLDB4NjksMHg2ZSwweDc2LDB4NmYsMHg2MywweDYxLDB4NzQsMHg2OSww
eDZmLDB4NmUsIgorICAgICAgICAvLyBhIHNlcmlhbGl6ZWQgb2JqZWN0ICsgInR5cGVTdHJpbmci
CisgICAgICAgICIweDAsMHg5LDB4MCwweDAsMHgwLDB4ZjUsMHhlYiwweDU0LDB4YTksMHgzLDB4
MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4NzQsMHg3OSww
eDcwLDB4NjUsMHg1MywweDc0LDB4NzIsMHg2OSwweDZlLDB4NjcsMHgwLCIKKyAgICAgICAgLy8g
YSB6ZXJvZWQgb2JqZWN0ICsgIiRzdHJpbmciCisgICAgICAgICIweDksMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHg3LDB4MCwweDAs
MHgwLDB4MSwweDI0LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2ZSwweDY3LDB4MTUsMHgwLDB4MCww
eDAsIgorICAgICAgICAvLyAidkA6QC5ALj8iIChhbiBvYmplY3RpdmUtQyBtZXRob2Qgc2lnbmF0
dXJlKSArICJjbGFzcyIKKyAgICAgICAgIjB4NiwweDAsMHgwLDB4MCwweDEsMHg3NiwweDQwLDB4
M2EsMHg0MCwweDQwLDB4M2YsMHgwLDB4NiwweDAsMHgwLDB4MCwweDEsMHgyNCwweDYzLDB4NmMs
MHg2MSwweDczLDB4NzMsMHgwLCIKKyAgICAgICAgLy8gIk5TU3RyaW5nIiArICJzZWxlY3RvciIK
KyAgICAgICAgIjB4MTUsMHgwLDB4MCwweDAsMHg4LDB4MCwweDAsMHgwLDB4MSwweDRlLDB4NTMs
MHg1MywweDc0LDB4NzIsMHg2OSwweDZlLDB4NjcsMHgwLDB4MCwweDAsMHg4LDB4MCwweDAsMHgw
LDB4MSwweDczLDB4NjUsMHg2YywweDY1LDB4NjMsMHg3NCwweDZmLDB4NzIsMHgwLDB4MCwweDAs
IgorICAgICAgICAvLyBhIHplcm9lZCBvYmplY3QgKyAiJHN0cmluZyIKKyAgICAgICAgIjB4OSww
eDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4NywweDAsMHgwLDB4
MCwweDEsMHgyNCwweDczLDB4NzQsMHg3MiwweDY5LDB4NmUsMHg2NywweDE1LDB4MCwweDAsMHgw
LCIKKyAgICAgICAgLy8gInNheUhlbGxvOmNvbXBsZXRpb25IYW5kbGVyOiIgKG1ldGhvZCBuYW1l
IHdlJ3JlIHRyeWluZyB0byBjYWxsKQorICAgICAgICAiMHgxYiwweDAsMHgwLDB4MCwweDEsMHg3
MywweDYxLDB4NzksMHg0OCwweDY1LDB4NmMsMHg2YywweDZmLDB4M2EsMHg2MywweDZmLDB4NmQs
MHg3MCwweDZjLDB4NjUsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDQ4LDB4NjEsMHg2ZSwweDY0LDB4
NmMsMHg2NSwweDcyLDB4M2EsIgorICAgICAgICAvLyAiJGNsYXNzIiArICJOU1N0cmluZyIKKyAg
ICAgICAgIjB4NiwweDAsMHgwLDB4MCwweDEsMHgyNCwweDYzLDB4NmMsMHg2MSwweDczLDB4NzMs
MHgwLDB4MTUsMHgwLDB4MCwweDAsMHg4LDB4MCwweDAsMHgwLDB4MSwweDRlLDB4NTMsMHg1Myww
eDc0LDB4NzIsMHg2OSwweDZlLDB4NjcsMHgwLDB4MCwweDAsIgorICAgICAgICAvLyAiJGNsYXNz
IiArICJOU0ludm9jYXRpb24iCisgICAgICAgICIweDYsMHgwLDB4MCwweDAsMHgxLDB4MjQsMHg2
MywweDZjLDB4NjEsMHg3MywweDczLDB4MCwweDE1LDB4MCwweDAsMHgwLDB4YywweDAsMHgwLDB4
MCwweDEsMHg0ZSwweDUzLDB4NDksMHg2ZSwweDc2LDB4NmYsMHg2MywweDYxLDB4NzQsMHg2OSww
eDZmLDB4NmUsMHgwLDB4MCwweDAsIgorICAgICAgICAvLyAiJG9iamVjdFN0YW0iICsgemVybyBv
YmplY3QKKyAgICAgICAgIjB4ZCwweDAsMHgwLDB4MCwweDEsMHgyNCwweDZmLDB4NjIsMHg2YSww
eDY1LDB4NjMsMHg3NCwweDUzLDB4NzQsMHg2MSwweDZkLDB4MCwweDAsMHgxLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLCIKKyAgICAg
ICAgLy8gemVyb2VkIG9iamVjdHMgKyAiLk5TLnV1aWRieXRlcyIKKyAgICAgICAgIjB4OSwweDAs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCww
eGMsMHgwLDB4MCwweDAsMHg5MSwweDRlLDB4NTMsMHgyZSwweDc1LDB4NzUsMHg2OSwweDY0LDB4
NjIsMHg3OSwweDc0LDB4NjUsMHg3MywweDAsMHgwLDB4MCwiCisgICAgICAgIC8vIHNvbWUgemVy
b2VkIG9iamVjdHMKKyAgICAgICAgIjB4OCwweDAsMHgwLDB4MCwweDEwLDB4MCwweDAsMHgwLDB4
MCwweDAsMHgwLDB4MCwweDI5LDB4YzUsMHg2ZCwweDIsMHgxMywweGEsMHg0ZSwweGU3LDB4YWEs
MHhhYywweDgsMHg1NSwweGYyLDB4NjYsMHgyYywweDdjLCIKKyAgICAgICAgLy8gIiRjbGFzcyIg
KyAiTlNVVUlEIgorICAgICAgICAiMHg2LDB4MCwweDAsMHgwLDB4MSwweDI0LDB4NjMsMHg2Yyww
eDYxLDB4NzMsMHg3MywweDAsMHgxNSwweDAsMHgwLDB4MCwweDYsMHgwLDB4MCwweDAsMHgxLDB4
NGUsMHg1MywweDU1LDB4NTUsMHg0OSwweDQ0LDB4MCwweDAsMHgwLCIKKyAgICAgICAgLy8gbW9z
dGx5IHplcm8gb2JqZWN0cyArICJ2QD9jIiAob2JqZWN0aXZlLUMgbWV0aG9kIHNpZ25hdHVyZSkK
KyAgICAgICAgIjB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MmMsMHgwLDB4MCwweDAsMHg1OSww
eDEsMHgwLDB4MCwweDAsMHg5YiwweDAsMHgwLDB4NCwweDAsMHgwLDB4MCwweDEsMHg3NiwweDQw
LDB4M2YsMHg2MywweDAsXSk7IgorICAgICAgICAiZm9yKHZhciB4PTA7IHg8MTAwOyB4KyspIElQ
Qy5zZW5kTWVzc2FnZSgnVUknLCB4LCBJUEMubWVzc2FnZXMuUmVtb3RlT2JqZWN0UmVnaXN0cnlf
SW52b2tlTWV0aG9kLm5hbWUsIFtidWZdKTs8L3NjcmlwdD4iXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW5Gb3IoJmRvbmUsIDEpOworCisgICAgLy8gTWFrZSBzdXJlIHNheUhlbGxvIHdh
cyBub3QgY2FsbGVkLCBhcyB0aGUgcmVwbHkgYmxvY2sgd2FzIG5pbC4KKyAgICBFWFBFQ1RfRVEo
W2RlbGVnYXRlLmdldCgpIHNheUhlbGxvV2FzQ2FsbGVkXSwgTk8pOworfQorCiBURVNUKElQQ1Rl
c3RpbmdBUEksIENhblNlbmRBbGVydCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBjcmVhdGVXZWJW
aWV3V2l0aElQQ1Rlc3RpbmdBUEkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429250</attachid>
            <date>2021-05-20 17:45:06 -0700</date>
            <delta_ts>2021-05-20 21:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225941-20210520174505.patch</filename>
            <type>text/plain</type>
            <size>16367</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZWNlZmZlNzU2NTQxYzhh
YjMyNmRlYmQzYjBkNDlhNGFjMmRmMzMuLjdjNzA3NWQxZDEzYzQ5NTY3M2MxOGIwNGU2YjQ3NmYz
Y2ViMGQwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMjAgIEp1bGlhbiBH
b256YWxleiAgPGp1bGlhbl9hX2dvbnphbGV6QGFwcGxlLmNvbT4KKworICAgICAgICBXS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5ICBfaW52b2tlTWV0aG9kIG5lZWRzIHRvIGNoZWNrIGZvciBuaWwgY29t
cGxldGlvbkhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBfaW52b2tlTWV0aG9kJ3MgYXJndW1lbnQtY2hlY2tpbmcgbG9vcCBuZWVkcyB0byBi
ZSBydW4KKyAgICAgICAgZXZlbiBpZiByZXBseUluZm8gaXMgbmlsLCBhcyBvdGhlcndpc2Ugd2Ug
Y2FuIHBlcmZvcm0gYW4gaW52b2NhdGlvbgorICAgICAgICBpZiBhIG1ldGhvZCBzaWduYXR1cmUg
c3BlY2lmaWVzIGEgY29tcGxldGlvbiBoYW5kbGVyIGV2ZW4gdGhvdWdoCisgICAgICAgIG5vbmUg
aXMgcHJvdmlkZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52b2tl
TWV0aG9kOl0pOgorCiAyMDIxLTA1LTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvZ2dpbmcgbWluaW1hbCBpbmZvIGFib3V0IHVwbG9hZGlu
ZyBtZWRpYSBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCmluZGV4IDA1ZjQ0ODdlODFjNWUwZGQxOGVm
ZGQ4Y2ZkY2U5YmRjNGRhZTYxOGUuLjZiYmEwYTk0ZTI0MzgwYjg0OTk4OTVlYjQ3MDMzYjk5YTZm
MDA5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1v
dGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KQEAgLTI1Myw4NSArMjUzLDkwIEBAIC0gKHZvaWQp
X2ludm9rZU1ldGhvZDooY29uc3QgV2ViS2l0OjpSZW1vdGVPYmplY3RJbnZvY2F0aW9uJilyZW1v
dGVPYmplY3RJbnZvY2F0CiAgICAgICAgIE5TTG9nKEAiRXhjZXB0aW9uIGNhdWdodCBkdXJpbmcg
ZGVjb2Rpbmcgb2YgbWVzc2FnZTogJUAiLCBleGNlcHRpb24pOwogICAgIH0KIAotICAgIGlmIChh
dXRvKiByZXBseUluZm8gPSByZW1vdGVPYmplY3RJbnZvY2F0aW9uLnJlcGx5SW5mbygpKSB7Ci0g
ICAgICAgIE5TTWV0aG9kU2lnbmF0dXJlICptZXRob2RTaWduYXR1cmUgPSBpbnZvY2F0aW9uLm1l
dGhvZFNpZ25hdHVyZTsKKyAgICBOU01ldGhvZFNpZ25hdHVyZSAqbWV0aG9kU2lnbmF0dXJlID0g
aW52b2NhdGlvbi5tZXRob2RTaWduYXR1cmU7CisgICAgYXV0byogcmVwbHlJbmZvID0gcmVtb3Rl
T2JqZWN0SW52b2NhdGlvbi5yZXBseUluZm8oKTsKIAotICAgICAgICAvLyBMb29rIGZvciB0aGUg
YmxvY2sgYXJndW1lbnQuCi0gICAgICAgIGZvciAoTlNVSW50ZWdlciBpID0gMCwgY291bnQgPSBt
ZXRob2RTaWduYXR1cmUubnVtYmVyT2ZBcmd1bWVudHM7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAg
ICAgICAgICBjb25zdCBjaGFyICp0eXBlID0gW21ldGhvZFNpZ25hdHVyZSBnZXRBcmd1bWVudFR5
cGVBdEluZGV4OmldOworICAgIC8vIExvb2sgZm9yIHRoZSBibG9jayBhcmd1bWVudCAoaWYgYW55
KS4KKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDAsIGNvdW50ID0gbWV0aG9kU2lnbmF0dXJlLm51
bWJlck9mQXJndW1lbnRzOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBjaGFyICp0
eXBlID0gW21ldGhvZFNpZ25hdHVyZSBnZXRBcmd1bWVudFR5cGVBdEluZGV4OmldOwogCi0gICAg
ICAgICAgICBpZiAoc3RyY21wKHR5cGUsICJAPyIpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBpZiAoc3RyY21wKHR5cGUsICJAPyIpKQorICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgICAgIC8vIFdlIGZvdW5kIHRoZSBibG9jay4KLSAgICAgICAgICAgIFN0cmlu
ZyB3aXJlQmxvY2tTaWduYXR1cmUgPSBbTlNNZXRob2RTaWduYXR1cmUgc2lnbmF0dXJlV2l0aE9i
akNUeXBlczpyZXBseUluZm8tPmJsb2NrU2lnbmF0dXJlLnV0ZjgoKS5kYXRhKCldLl90eXBlU3Ry
aW5nLlVURjhTdHJpbmc7Ci0gICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRCbG9ja1NpZ25hdHVy
ZSA9IHJlcGx5QmxvY2tTaWduYXR1cmUoW2ludGVyZmFjZSBwcm90b2NvbF0sIGludm9jYXRpb24u
c2VsZWN0b3IsIGkpOworICAgICAgICAvLyBXZSBmb3VuZCB0aGUgYmxvY2suCisgICAgICAgIC8v
IElmIHRoZSB3aXJlIGhhZCBubyBibG9jayBzaWduYXR1cmUgYnV0IHdlIGV4cGVjdCBvbmUsIHdl
IGRyb3AgdGhlIG1lc3NhZ2UuCisgICAgICAgIGlmICghcmVwbHlJbmZvKSB7CisgICAgICAgICAg
ICBOU0xvZyhAIl9pbnZva2VNZXRob2Q6IEV4cGVjdGVkIHJlcGx5IGJsb2NrLCBidXQgbm9uZSBw
cm92aWRlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgICAg
IGlmIChleHBlY3RlZEJsb2NrU2lnbmF0dXJlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICAgICAg
TlNMb2coQCJfaW52b2tlTWV0aG9kOiBGYWlsZWQgdG8gdmFsaWRhdGUgcmVwbHkgYmxvY2sgc2ln
bmF0dXJlOiBjb3VsZCBub3QgZmluZCBsb2NhbCBzaWduYXR1cmUiKTsKLSAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHdpcmVCbG9ja1NpZ25hdHVyZSA9IFtOU01ldGhvZFNp
Z25hdHVyZSBzaWduYXR1cmVXaXRoT2JqQ1R5cGVzOnJlcGx5SW5mby0+YmxvY2tTaWduYXR1cmUu
dXRmOCgpLmRhdGEoKV0uX3R5cGVTdHJpbmcuVVRGOFN0cmluZzsKKyAgICAgICAgU3RyaW5nIGV4
cGVjdGVkQmxvY2tTaWduYXR1cmUgPSByZXBseUJsb2NrU2lnbmF0dXJlKFtpbnRlcmZhY2UgcHJv
dG9jb2xdLCBpbnZvY2F0aW9uLnNlbGVjdG9yLCBpKTsKIAotICAgICAgICAgICAgaWYgKCFibG9j
a1NpZ25hdHVyZXNBcmVDb21wYXRpYmxlKHdpcmVCbG9ja1NpZ25hdHVyZSwgZXhwZWN0ZWRCbG9j
a1NpZ25hdHVyZSkpIHsKLSAgICAgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VNZXRob2Q6IEZh
aWxlZCB0byB2YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6ICVzICE9ICVzIiwgd2lyZUJs
b2NrU2lnbmF0dXJlLnV0ZjgoKS5kYXRhKCksIGV4cGVjdGVkQmxvY2tTaWduYXR1cmUudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChleHBlY3RlZEJs
b2NrU2lnbmF0dXJlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VNZXRo
b2Q6IEZhaWxlZCB0byB2YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6IGNvdWxkIG5vdCBm
aW5kIGxvY2FsIHNpZ25hdHVyZSIpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0gICAgICAgICAgICBSZXRhaW5Q
dHI8X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk+IHJlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gc2VsZjsK
LSAgICAgICAgICAgIHVpbnQ2NF90IHJlcGx5SUQgPSByZXBseUluZm8tPnJlcGx5SUQ7CisgICAg
ICAgIGlmICghYmxvY2tTaWduYXR1cmVzQXJlQ29tcGF0aWJsZSh3aXJlQmxvY2tTaWduYXR1cmUs
IGV4cGVjdGVkQmxvY2tTaWduYXR1cmUpKSB7CisgICAgICAgICAgICBOU0xvZyhAIl9pbnZva2VN
ZXRob2Q6IEZhaWxlZCB0byB2YWxpZGF0ZSByZXBseSBibG9jayBzaWduYXR1cmU6ICVzICE9ICVz
Iiwgd2lyZUJsb2NrU2lnbmF0dXJlLnV0ZjgoKS5kYXRhKCksIGV4cGVjdGVkQmxvY2tTaWduYXR1
cmUudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAKLSAgICAgICAgICAgIGNsYXNzIFJlcGx5
QmxvY2tDYWxsQ2hlY2tlciA6IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPFJlcGx5
QmxvY2tDYWxsQ2hlY2tlcj4gewotICAgICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgICAg
IHN0YXRpYyBSZWY8UmVwbHlCbG9ja0NhbGxDaGVja2VyPiBjcmVhdGUoX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkgKnJlZ2lzdHJ5LCB1aW50NjRfdCByZXBseUlEKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFJlcGx5QmxvY2tDYWxsQ2hlY2tlcihyZWdpc3RyeSwgcmVwbHlJRCkpOyB9CisgICAgICAg
IFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gcmVtb3RlT2JqZWN0UmVnaXN0cnkg
PSBzZWxmOworICAgICAgICB1aW50NjRfdCByZXBseUlEID0gcmVwbHlJbmZvLT5yZXBseUlEOwog
Ci0gICAgICAgICAgICAgICAgflJlcGx5QmxvY2tDYWxsQ2hlY2tlcigpCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICBpZiAobV9kaWRDYWxsUmVwbHlCbG9jaykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2xhc3MgUmVwbHlCbG9ja0NhbGxD
aGVja2VyIDogcHVibGljIFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVwbHlCbG9ja0NhbGxD
aGVja2VyPiB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHN0YXRpYyBSZWY8UmVwbHlC
bG9ja0NhbGxDaGVja2VyPiBjcmVhdGUoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlZ2lzdHJ5
LCB1aW50NjRfdCByZXBseUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGx5QmxvY2tDYWxs
Q2hlY2tlcihyZWdpc3RyeSwgcmVwbHlJRCkpOyB9CiAKLSAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEluc3RlYWQgb2Ygbm90IHNlbmRpbmcgYW55dGhpbmcgd2hlbiB0aGUgcmVtb3RlIG9i
amVjdCByZWdpc3RyeSBpcyBudWxsLCB3ZSBzaG91bGQKLSAgICAgICAgICAgICAgICAgICAgLy8g
a2VlcCB0cmFjayBvZiBhbGwgcmVwbHkgYmxvY2sgY2hlY2tlcnMgYW5kIGludmFsaWRhdGUgdGhl
bSAoc2VuZGluZyB0aGUgdW51c2VkIHJlcGx5IG1lc3NhZ2UpIGluCi0gICAgICAgICAgICAgICAg
ICAgIC8vIC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2ludmFsaWRhdGVdLgotICAgICAgICAg
ICAgICAgICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RSZWdp
c3RyeSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH5SZXBs
eUJsb2NrQ2FsbENoZWNrZXIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICht
X2RpZENhbGxSZXBseUJsb2NrKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgICAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LT5zZW5kVW51c2VkUmVwbHkobV9yZXBseUlEKTsKLSAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEluc3RlYWQgb2Ygbm90IHNlbmRpbmcgYW55dGhpbmcgd2hl
biB0aGUgcmVtb3RlIG9iamVjdCByZWdpc3RyeSBpcyBudWxsLCB3ZSBzaG91bGQKKyAgICAgICAg
ICAgICAgICAvLyBrZWVwIHRyYWNrIG9mIGFsbCByZXBseSBibG9jayBjaGVja2VycyBhbmQgaW52
YWxpZGF0ZSB0aGVtIChzZW5kaW5nIHRoZSB1bnVzZWQgcmVwbHkgbWVzc2FnZSkgaW4KKyAgICAg
ICAgICAgICAgICAvLyAtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXS4KKyAg
ICAgICAgICAgICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RS
ZWdpc3RyeSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICAgICAg
dm9pZCBkaWRDYWxsUmVwbHlCbG9jaygpIHsgbV9kaWRDYWxsUmVwbHlCbG9jayA9IHRydWU7IH0K
KyAgICAgICAgICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5fcmVtb3RlT2JqZWN0UmVn
aXN0cnktPnNlbmRVbnVzZWRSZXBseShtX3JlcGx5SUQpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICB2b2lkIGRpZENhbGxSZXBseUJsb2NrKCkgeyBtX2RpZENhbGxSZXBseUJsb2NrID0g
dHJ1ZTsgfQogCi0gICAgICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgICAgIFJlcGx5Qmxv
Y2tDYWxsQ2hlY2tlcihfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVnaXN0cnksIHVpbnQ2NF90
IHJlcGx5SUQpCi0gICAgICAgICAgICAgICAgICAgIDogbV9yZW1vdGVPYmplY3RSZWdpc3RyeShy
ZWdpc3RyeSkKLSAgICAgICAgICAgICAgICAgICAgLCBtX3JlcGx5SUQocmVwbHlJRCkKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAg
ICAgICAgUmVwbHlCbG9ja0NhbGxDaGVja2VyKF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZWdp
c3RyeSwgdWludDY0X3QgcmVwbHlJRCkKKyAgICAgICAgICAgICAgICA6IG1fcmVtb3RlT2JqZWN0
UmVnaXN0cnkocmVnaXN0cnkpCisgICAgICAgICAgICAgICAgLCBtX3JlcGx5SUQocmVwbHlJRCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIFJldGFpblB0
cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKLSAgICAg
ICAgICAgICAgICB1aW50NjRfdCBtX3JlcGx5SUQgPSAwOwotICAgICAgICAgICAgICAgIGJvb2wg
bV9kaWRDYWxsUmVwbHlCbG9jayA9IGZhbHNlOwotICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3Ry
eTsKKyAgICAgICAgICAgIHVpbnQ2NF90IG1fcmVwbHlJRCA9IDA7CisgICAgICAgICAgICBib29s
IG1fZGlkQ2FsbFJlcGx5QmxvY2sgPSBmYWxzZTsKKyAgICAgICAgfTsKIAotICAgICAgICAgICAg
UmVmUHRyPFJlcGx5QmxvY2tDYWxsQ2hlY2tlcj4gY2hlY2tlciA9IFJlcGx5QmxvY2tDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKHNlbGYsIHJlcGx5SUQpOwotICAgICAgICAgICAgaWQgcmVwbHlCbG9jayA9
IF9fTlNNYWtlU3BlY2lhbEZvcndhcmRpbmdDYXB0dXJlQmxvY2sod2lyZUJsb2NrU2lnbmF0dXJl
LnV0ZjgoKS5kYXRhKCksIFtpbnRlcmZhY2UsIHJlbW90ZU9iamVjdFJlZ2lzdHJ5LCByZXBseUlE
LCBjaGVja2VyXShOU0ludm9jYXRpb24gKmludm9jYXRpb24pIHsKLSAgICAgICAgICAgICAgICBh
dXRvIGVuY29kZXIgPSBhZG9wdE5TKFtbV0tSZW1vdGVPYmplY3RFbmNvZGVyIGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgICAgICAgICAgW2VuY29kZXIgZW5jb2RlT2JqZWN0Omludm9jYXRpb24gZm9y
S2V5Omludm9jYXRpb25LZXldOworICAgICAgICBSZWZQdHI8UmVwbHlCbG9ja0NhbGxDaGVja2Vy
PiBjaGVja2VyID0gUmVwbHlCbG9ja0NhbGxDaGVja2VyOjpjcmVhdGUoc2VsZiwgcmVwbHlJRCk7
CisgICAgICAgIGlkIHJlcGx5QmxvY2sgPSBfX05TTWFrZVNwZWNpYWxGb3J3YXJkaW5nQ2FwdHVy
ZUJsb2NrKHdpcmVCbG9ja1NpZ25hdHVyZS51dGY4KCkuZGF0YSgpLCBbaW50ZXJmYWNlLCByZW1v
dGVPYmplY3RSZWdpc3RyeSwgcmVwbHlJRCwgY2hlY2tlcl0oTlNJbnZvY2F0aW9uICppbnZvY2F0
aW9uKSB7CisgICAgICAgICAgICBhdXRvIGVuY29kZXIgPSBhZG9wdE5TKFtbV0tSZW1vdGVPYmpl
Y3RFbmNvZGVyIGFsbG9jXSBpbml0XSk7CisgICAgICAgICAgICBbZW5jb2RlciBlbmNvZGVPYmpl
Y3Q6aW52b2NhdGlvbiBmb3JLZXk6aW52b2NhdGlvbktleV07CiAKLSAgICAgICAgICAgICAgICBp
ZiAocmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeSkKLSAgICAgICAg
ICAgICAgICAgICAgcmVtb3RlT2JqZWN0UmVnaXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeS0+
c2VuZFJlcGx5QmxvY2socmVwbHlJRCwgV2ViS2l0OjpVc2VyRGF0YShbZW5jb2RlciByb290T2Jq
ZWN0RGljdGlvbmFyeV0pKTsKLSAgICAgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsUmVwbHlC
bG9jaygpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAocmVtb3RlT2JqZWN0UmVn
aXN0cnktPl9yZW1vdGVPYmplY3RSZWdpc3RyeSkKKyAgICAgICAgICAgICAgICByZW1vdGVPYmpl
Y3RSZWdpc3RyeS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kUmVwbHlCbG9jayhyZXBseUlE
LCBXZWJLaXQ6OlVzZXJEYXRhKFtlbmNvZGVyIHJvb3RPYmplY3REaWN0aW9uYXJ5XSkpOworICAg
ICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbFJlcGx5QmxvY2soKTsKKyAgICAgICAgfSk7CiAKLSAg
ICAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZyZXBseUJsb2NrIGF0SW5kZXg6aV07
CisgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZyZXBseUJsb2NrIGF0SW5kZXg6aV07
CiAKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBibG9jayB3b24ndCBiZSBkZXN0
cm95ZWQgYmVmb3JlIHRoZSBpbnZvY2F0aW9uLgotICAgICAgICAgICAgb2JqY19zZXRBc3NvY2lh
dGVkT2JqZWN0KGludm9jYXRpb24sIHJlcGx5QmxvY2tLZXksIHJlcGx5QmxvY2ssIE9CSkNfQVNT
T0NJQVRJT05fUkVUQUlOKTsKLSAgICAgICAgICAgIFtyZXBseUJsb2NrIHJlbGVhc2VdOworICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sgd29uJ3QgYmUgZGVzdHJveWVkIGJlZm9y
ZSB0aGUgaW52b2NhdGlvbi4KKyAgICAgICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGludm9j
YXRpb24sIHJlcGx5QmxvY2tLZXksIHJlcGx5QmxvY2ssIE9CSkNfQVNTT0NJQVRJT05fUkVUQUlO
KTsKKyAgICAgICAgW3JlcGx5QmxvY2sgcmVsZWFzZV07CiAKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGludm9jYXRpb24udGFyZ2V0
ID0gaW50ZXJmYWNlQW5kT2JqZWN0LmZpcnN0LmdldCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMwOGRlYzMxNWFkOGI1ZThkMGJiYjFjYjUx
NzY0YjI5NGI5OTExZWUuLjFmZWFlZmU2ODk2ZTkzNzUyZDQ0M2Y5NTg3MzdiMjlhYmRjZjIxMTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMS0wNS0yMCAgSnVsaWFuIEdvbnphbGV6ICA8anVsaWFuX2FfZ29uemFs
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnkgIF9pbnZva2VN
ZXRob2QgbmVlZHMgdG8gY2hlY2sgZm9yIG5pbCBjb21wbGV0aW9uSGFuZGxlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBJUEMgdGVzdCB3
aXRoIGEgbmlsIChyZWFsbHkgbWFsZm9ybWVkKSBjb21wbGV0aW9uIGhhbmRsZXIKKyAgICAgICAg
dGhhdCBtYWtlcyBzdXJlIHRoZSBpbnZvY2F0aW9uIGlzIG5vdCBwZXJmb3JtZWQuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW06Cisg
ICAgICAgICgtW0lQQ1Rlc3RpbmdBUElEZWxlZ2F0ZSBzYXlIZWxsbzpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bSVBDVGVzdGluZ0FQSURlbGVnYXRlIHNheUhlbGxvV2FzQ2FsbGVk
XSk6CisgICAgICAgIChURVNUKToKKwogMjAyMS0wNS0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJl
ZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2xpbnQtdGVzdC1leHBlY3RhdGlvbnNdIENoYW5n
ZSBzaGViYW5nIHRvIFB5dGhvbiAzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KaW5kZXggMzUyZDNlYTc4MWM4MzM0M2Qy
ZGFmNTQxM2Y5NTc2ZjQ1OGY2MzMyZS4uMjg0NTM0YTQ2OTEwMDBjYmUxN2FlYjc4ZDZhM2EyYWRh
YTljNGQ0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JUENUZXN0aW5nQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQpAQCAtMjUsMTIgKzI1LDE2IEBACiAKICNpbXBvcnQgImNv
bmZpZy5oIgogCisjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgogI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNp
bXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogCiBzdGF0aWMgYm9vbCBkb25lID0gZmFsc2U7CkBAIC00MCw5ICs0NCwxMiBA
QCBzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBwcm9tcHREZWZhdWx0Owogc3RhdGljIFJldGFp
blB0cjxOU1N0cmluZz4gcHJvbXB0UmVzdWx0OwogCiBAaW50ZXJmYWNlIElQQ1Rlc3RpbmdBUElE
ZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGUsIFdLTmF2aWdhdGlvbkRlbGVnYXRlPgor
LSAoQk9PTClzYXlIZWxsb1dhc0NhbGxlZDsKIEBlbmQKICAgICAKLUBpbXBsZW1lbnRhdGlvbiBJ
UENUZXN0aW5nQVBJRGVsZWdhdGUKK0BpbXBsZW1lbnRhdGlvbiBJUENUZXN0aW5nQVBJRGVsZWdh
dGUgeworICAgIEJPT0wgX2RpZENhbGxTYXlIZWxsbzsKK30KIAogLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5T
U3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewpAQCAt
NjQsNiArNzEsMTYgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3ZWJD
b250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFzb246KF8KICAgICBkb25lID0gdHJ1ZTsK
IH0KIAorLSAodm9pZClzYXlIZWxsbzooTlNTdHJpbmcgKiloZWxsbyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfZGlkQ2Fs
bFNheUhlbGxvID0gWUVTOworfQorCistIChCT09MKXNheUhlbGxvV2FzQ2FsbGVkCit7CisgICAg
cmV0dXJuIF9kaWRDYWxsU2F5SGVsbG87Cit9CisKIEBlbmQKIAogVEVTVChJUENUZXN0aW5nQVBJ
LCBJc0Rpc2FibGVkQnlEZWZhdWx0KQpAQCAtOTMsNiArMTEwLDU4IEBAIHN0YXRpYyBSZXRhaW5Q
dHI8VGVzdFdLV2ViVmlldz4gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0aW5nQVBJKCkKICAgICBy
ZXR1cm4gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CiB9CiAKK1RFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuRGV0ZWN0TmlsUmVwbHlCbG9ja3MpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0aW5nQVBJKCk7CisKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0lQQ1Rlc3RpbmdBUElEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisg
ICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2UgPSByZW1vdGVPYmplY3RJbnRl
cmZhY2UoKTsKKyAgICBbW3dlYlZpZXcgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5XSByZW1vdGVPYmpl
Y3RQcm94eVdpdGhJbnRlcmZhY2U6aW50ZXJmYWNlXTsKKyAgICBbW3dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0OmRlbGVnYXRlLmdldCgpIGludGVy
ZmFjZTppbnRlcmZhY2VdOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1sPjxzY3JpcHQ+YnVmID0gbmV3
IFVpbnQ4QXJyYXkoWyIKKyAgICAgICAgLy8gU3RyaW5ncyBpbiB0aGlzIGJ1ZmZlciBhcmUgZW5j
b2RlZCBhcyBmb2xsb3dzOgorICAgICAgICAvLyBzdHJpbmcgbGVuZ3RoLCAzIE5VTCBieXRlcywg
MHgxIGJ5dGUsIHRoZW4gc3RyaW5nIGNvbnRlbnRzCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB0
aGlzIHN0cmluZyBpcyAweDE0IGxlbmd0aCAoMjAgYnl0ZXMpLCAzIE5VTCBieXRlcyArIDB4MSwg
dGhlbiAiUmVtb3RlT2JqZWN0UHJvdG9jb2wiCisgICAgICAgICIweDE0LDB4MCwweDAsMHgwLDB4
MSwweDUyLDB4NjUsMHg2ZCwweDZmLDB4NzQsMHg2NSwweDRmLDB4NjIsMHg2YSwweDY1LDB4NjMs
MHg3NCwweDUwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsIgorICAgICAgICAv
LyBwYWRkaW5nICsgImludm9jYXRpb24iCisgICAgICAgICIweDAsMHgwLDB4MCwweDksMHgwLDB4
MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgx
LDB4NjksMHg2ZSwweDc2LDB4NmYsMHg2MywweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsIgorICAg
ICAgICAvLyBhIHNlcmlhbGl6ZWQgb2JqZWN0ICsgInR5cGVTdHJpbmciCisgICAgICAgICIweDAs
MHg5LDB4MCwweDAsMHgwLDB4ZjUsMHhlYiwweDU0LDB4YTksMHgzLDB4MCwweDAsMHgwLDB4MCww
eDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4NzQsMHg3OSwweDcwLDB4NjUsMHg1Myww
eDc0LDB4NzIsMHg2OSwweDZlLDB4NjcsMHgwLCIKKyAgICAgICAgLy8gYSB6ZXJvZWQgb2JqZWN0
ICsgIiRzdHJpbmciCisgICAgICAgICIweDksMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHg3LDB4MCwweDAsMHgwLDB4MSwweDI0LDB4
NzMsMHg3NCwweDcyLDB4NjksMHg2ZSwweDY3LDB4MTUsMHgwLDB4MCwweDAsIgorICAgICAgICAv
LyAidkA6QC5ALj8iIChhbiBvYmplY3RpdmUtQyBtZXRob2Qgc2lnbmF0dXJlKSArICJjbGFzcyIK
KyAgICAgICAgIjB4NiwweDAsMHgwLDB4MCwweDEsMHg3NiwweDQwLDB4M2EsMHg0MCwweDQwLDB4
M2YsMHgwLDB4NiwweDAsMHgwLDB4MCwweDEsMHgyNCwweDYzLDB4NmMsMHg2MSwweDczLDB4NzMs
MHgwLCIKKyAgICAgICAgLy8gIk5TU3RyaW5nIiArICJzZWxlY3RvciIKKyAgICAgICAgIjB4MTUs
MHgwLDB4MCwweDAsMHg4LDB4MCwweDAsMHgwLDB4MSwweDRlLDB4NTMsMHg1MywweDc0LDB4NzIs
MHg2OSwweDZlLDB4NjcsMHgwLDB4MCwweDAsMHg4LDB4MCwweDAsMHgwLDB4MSwweDczLDB4NjUs
MHg2YywweDY1LDB4NjMsMHg3NCwweDZmLDB4NzIsMHgwLDB4MCwweDAsIgorICAgICAgICAvLyBh
IHplcm9lZCBvYmplY3QgKyAiJHN0cmluZyIKKyAgICAgICAgIjB4OSwweDAsMHgwLDB4MCwweDIs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4NywweDAsMHgwLDB4MCwweDEsMHgyNCwweDcz
LDB4NzQsMHg3MiwweDY5LDB4NmUsMHg2NywweDE1LDB4MCwweDAsMHgwLCIKKyAgICAgICAgLy8g
InNheUhlbGxvOmNvbXBsZXRpb25IYW5kbGVyOiIgKG1ldGhvZCBuYW1lIHdlJ3JlIHRyeWluZyB0
byBjYWxsKQorICAgICAgICAiMHgxYiwweDAsMHgwLDB4MCwweDEsMHg3MywweDYxLDB4NzksMHg0
OCwweDY1LDB4NmMsMHg2YywweDZmLDB4M2EsMHg2MywweDZmLDB4NmQsMHg3MCwweDZjLDB4NjUs
MHg3NCwweDY5LDB4NmYsMHg2ZSwweDQ4LDB4NjEsMHg2ZSwweDY0LDB4NmMsMHg2NSwweDcyLDB4
M2EsIgorICAgICAgICAvLyAiJGNsYXNzIiArICJOU1N0cmluZyIKKyAgICAgICAgIjB4NiwweDAs
MHgwLDB4MCwweDEsMHgyNCwweDYzLDB4NmMsMHg2MSwweDczLDB4NzMsMHgwLDB4MTUsMHgwLDB4
MCwweDAsMHg4LDB4MCwweDAsMHgwLDB4MSwweDRlLDB4NTMsMHg1MywweDc0LDB4NzIsMHg2OSww
eDZlLDB4NjcsMHgwLDB4MCwweDAsIgorICAgICAgICAvLyAiJGNsYXNzIiArICJOU0ludm9jYXRp
b24iCisgICAgICAgICIweDYsMHgwLDB4MCwweDAsMHgxLDB4MjQsMHg2MywweDZjLDB4NjEsMHg3
MywweDczLDB4MCwweDE1LDB4MCwweDAsMHgwLDB4YywweDAsMHgwLDB4MCwweDEsMHg0ZSwweDUz
LDB4NDksMHg2ZSwweDc2LDB4NmYsMHg2MywweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgwLDB4
MCwweDAsIgorICAgICAgICAvLyAiJG9iamVjdFN0YW0iICsgemVybyBvYmplY3QKKyAgICAgICAg
IjB4ZCwweDAsMHgwLDB4MCwweDEsMHgyNCwweDZmLDB4NjIsMHg2YSwweDY1LDB4NjMsMHg3NCww
eDUzLDB4NzQsMHg2MSwweDZkLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLCIKKyAgICAgICAgLy8gemVyb2VkIG9i
amVjdHMgKyAiLk5TLnV1aWRieXRlcyIKKyAgICAgICAgIjB4OSwweDAsMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGMsMHgwLDB4MCwweDAs
MHg5MSwweDRlLDB4NTMsMHgyZSwweDc1LDB4NzUsMHg2OSwweDY0LDB4NjIsMHg3OSwweDc0LDB4
NjUsMHg3MywweDAsMHgwLDB4MCwiCisgICAgICAgIC8vIHNvbWUgemVyb2VkIG9iamVjdHMKKyAg
ICAgICAgIjB4OCwweDAsMHgwLDB4MCwweDEwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCww
eDI5LDB4YzUsMHg2ZCwweDIsMHgxMywweGEsMHg0ZSwweGU3LDB4YWEsMHhhYywweDgsMHg1NSww
eGYyLDB4NjYsMHgyYywweDdjLCIKKyAgICAgICAgLy8gIiRjbGFzcyIgKyAiTlNVVUlEIgorICAg
ICAgICAiMHg2LDB4MCwweDAsMHgwLDB4MSwweDI0LDB4NjMsMHg2YywweDYxLDB4NzMsMHg3Myww
eDAsMHgxNSwweDAsMHgwLDB4MCwweDYsMHgwLDB4MCwweDAsMHgxLDB4NGUsMHg1MywweDU1LDB4
NTUsMHg0OSwweDQ0LDB4MCwweDAsMHgwLCIKKyAgICAgICAgLy8gbW9zdGx5IHplcm8gb2JqZWN0
cyArICJ2QD9jIiAob2JqZWN0aXZlLUMgbWV0aG9kIHNpZ25hdHVyZSkKKyAgICAgICAgIjB4MCww
eDAsMHgxLDB4MCwweDAsMHgwLDB4MmMsMHgwLDB4MCwweDAsMHg1OSwweDEsMHgwLDB4MCwweDAs
MHg5YiwweDAsMHgwLDB4NCwweDAsMHgwLDB4MCwweDEsMHg3NiwweDQwLDB4M2YsMHg2MywweDAs
XSk7IgorICAgICAgICAiZm9yKHZhciB4PTA7IHg8MTAwOyB4KyspIElQQy5zZW5kTWVzc2FnZSgn
VUknLCB4LCBJUEMubWVzc2FnZXMuUmVtb3RlT2JqZWN0UmVnaXN0cnlfSW52b2tlTWV0aG9kLm5h
bWUsIFtidWZdKTs8L3NjcmlwdD4iXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW5Gb3Io
JmRvbmUsIDEpOworCisgICAgLy8gTWFrZSBzdXJlIHNheUhlbGxvIHdhcyBub3QgY2FsbGVkLCBh
cyB0aGUgcmVwbHkgYmxvY2sgd2FzIG5pbC4KKyAgICBFWFBFQ1RfRkFMU0UoW2RlbGVnYXRlLmdl
dCgpIHNheUhlbGxvV2FzQ2FsbGVkXSk7Cit9CisKIFRFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuU2Vu
ZEFsZXJ0KQogewogICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXdXaXRoSVBDVGVzdGlu
Z0FQSSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>