<?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>237969</bug_id>
          
          <creation_ts>2022-03-16 10:40:37 -0700</creation_ts>
          <short_desc>Implement PCM to SKAdNetwork bridge</short_desc>
          <delta_ts>2022-03-22 22:26:21 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>mkwst</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851887</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-16 10:40:37 -0700</bug_when>
    <thetext>Implement PCM to SKAdNetwork bridge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851892</commentid>
    <comment_count>1</comment_count>
      <attachid>454864</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-16 10:47:25 -0700</bug_when>
    <thetext>Created attachment 454864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851977</commentid>
    <comment_count>2</comment_count>
      <attachid>454891</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-16 14:05:40 -0700</bug_when>
    <thetext>Created attachment 454891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853500</commentid>
    <comment_count>3</comment_count>
      <attachid>454891</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2022-03-21 20:35:54 -0700</bug_when>
    <thetext>Comment on attachment 454891
Patch

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

r=me with comments. Please make sure the WK2 bots are green before landing.

&gt; Source/WTF/wtf/PlatformHave.h:1227
&gt; +#if (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MAX_ALLOWED &gt;= 160000)

I think this should be TBD.

&gt; Source/WebKit/ChangeLog:8
&gt; +

Please add some comments on the changes in the WebKit layer.

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1822
&gt; +void NetworkSessionCocoa::donateToSKAdNetwork(WebCore::PrivateClickMeasurement&amp;&amp; pcm)

This method doesn&apos;t move the pcm object further. Would it make sense to use &amp; const instead?

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1826
&gt; +    config.get().appAdamId = @(*pcm.adamID());

I think we should check that there is an adamID and if not, broadcast an error message and return without forwarding to the daemon. See my comment further down on isSKAdNetworkAttribution().

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:4982
&gt; +            if (privateClickMeasurement-&gt;destinationSite().matches(frame-&gt;url()) || privateClickMeasurement-&gt;adamID())

Since we use it this way, I&apos;d prefer a convenience function isSKAdNetworkAttribution() which internally checks whether it is a valid such PCM object.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:599
&gt; +    EXPECT_WK_STREQ(consoleMessages[1], &quot;Submitting potential install attribution for AdamId: 1234567890, adNetworkRegistrableDomain: destination, impressionId: MTIzNDU2Nzg5MDEyMzQ1Ng, sourceWebRegistrableDomain: example.com, version: 3&quot;);

Huh, I didn&apos;t know you could test console messages. Neat.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853966</commentid>
    <comment_count>4</comment_count>
      <attachid>455446</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-22 16:07:15 -0700</bug_when>
    <thetext>Created attachment 455446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853969</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-22 16:09:10 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #3)
&gt; This method doesn&apos;t move the pcm object further. Would it make sense to use
&gt; &amp; const instead?
It is consuming the pcm, so although it doesn&apos;t call a move constructor or anything, I think move semantics is conceptually how we should be thinking about the pcm that is moved here and we shouldn&apos;t do anything with it afterwards.

&gt; Since we use it this way, I&apos;d prefer a convenience function
&gt; isSKAdNetworkAttribution() which internally checks whether it is a valid
&gt; such PCM object.
Good idea.  Better name for the same thing.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:599
&gt; &gt; +    EXPECT_WK_STREQ(consoleMessages[1], &quot;Submitting potential install attribution for AdamId: 1234567890, adNetworkRegistrableDomain: destination, impressionId: MTIzNDU2Nzg5MDEyMzQ1Ng, sourceWebRegistrableDomain: example.com, version: 3&quot;);
&gt; 
&gt; Huh, I didn&apos;t know you could test console messages. Neat.
You can on macOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854055</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-22 22:26:21 -0700</bug_when>
    <thetext>r291735</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454864</attachid>
            <date>2022-03-16 10:47:25 -0700</date>
            <delta_ts>2022-03-16 14:05:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237969-20220316104724.patch</filename>
            <type>text/plain</type>
            <size>37603</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzA0Cndhcm5pbmc6IHVuYWJsZSB0byBhY2Nlc3MgJy9V
c2Vycy9hbGV4Y2hyaXN0ZW5zZW4vLmNvbmZpZy9naXQvYXR0cmlidXRlcyc6IFBlcm1pc3Npb24g
ZGVuaWVkCndhcm5pbmc6IHVuYWJsZSB0byBhY2Nlc3MgJy9Vc2Vycy9hbGV4Y2hyaXN0ZW5zZW4v
LmNvbmZpZy9naXQvYXR0cmlidXRlcyc6IFBlcm1pc3Npb24gZGVuaWVkCndhcm5pbmc6IHVuYWJs
ZSB0byBhY2Nlc3MgJy9Vc2Vycy9hbGV4Y2hyaXN0ZW5zZW4vLmNvbmZpZy9naXQvYXR0cmlidXRl
cyc6IFBlcm1pc3Npb24gZGVuaWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI2N2MyYjNiNzc3YTE0ZTRmNGQ4MzViNjRjMDJh
ZDliNDg0NmExMjMuLjhjODI4YzQ2NTNiNzJjMjRmOWNhOTQ1MTI2NDVmZDYxOWNmMDUzNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgUENNIHRvIFNLQWROZXR3b3Jr
IGJyaWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3OTY5CisgICAgICAgIDxyZGFyOi8vODI5ODgwNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjIt
MDMtMTUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIEluZGVmaW5pdGUgaGFuZyB3aGVuIHByaW50aW5nIHVzaW5nIGEgVUlQcmludFBhZ2VSZW5k
ZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDJjN2M4YTdmNDAxZDgzMjQ3NTg2MDFkMzkwMDhhYjZmZmZmMzJj
ZDQuLjkzNjc3NzViMjY5M2NlNmQ3YWZjNjhlYmFlNjZjMzFlNmRkMWNkZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBQQ00gdG8gU0tBZE5ldHdvcmsg
YnJpZGdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzc5NjkKKyAgICAgICAgPHJkYXI6Ly84Mjk4ODA1ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNsaWNraW5nIG9uIGFuIGFwcCBzdG9yZSBs
aW5rIHRoYXQgaGFzIGJlZW4gZGVjb3JhdGVkIHdpdGggdGhlIG5lY2Vzc2FyeSBQQ00gYXR0cmli
dXRlcywKKyAgICAgICAgd2UgZ2l2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2xpY2sgdG8gU0tB
ZE5ldHdvcmsgdG8gc2VuZCBhbiBhbm9ueW1vdXMgYXR0cmlidXRpb24gcmVwb3J0IGxhdGVyCisg
ICAgICAgIGlmIHRoZSB1c2VyIGJ1eXMgdGhlIGFwcCBiZWNhdXNlIG9mIHRoZSBjbGljay4gIFRo
YXQgcGFydCBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgeWV0LCBzbyB0byB0ZXN0CisgICAgICAg
IHdlIHNpbXBseSByZXBvcnQgdGhlIGluZm9ybWF0aW9uIHRoYXQgd2UgYXJlIGdpdmluZyB0byBT
S0FkTmV0d29yayBpbiBhbiBBUEkgdGVzdCB3aGljaCB1c2VzIGFuIEhUVFBTCisgICAgICAgIHBy
b3h5IHNvIHdlIGRvbid0IGFjdHVhbGx5IGNvbm5lY3QgdG8gYXBwcy5hcHBsZS5jb20gd2hlbiBy
dW5uaW5nIHRoZSB0ZXN0LgorCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6YXR0cmlidXRpb25EZXN0aW5h
dGlvblVSTEZvclBDTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVu
dDo6bWFpbkRvY3VtZW50UmVnaXN0cmFibGVEb21haW5Gb3JQQ00gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0aW9uU291cmNlTm9uY2VGb3JQQ00g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRGb3JTS0FkTmV0d29yayBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2spOgorICAg
ICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmFwcFN0b3JlVVJMQWRhbUlEKToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjphZGFtSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnNldEFkYW1JRCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpkZWNvZGUpOgorCiAyMDIyLTAzLTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dCBkb2Vzbid0IHdvcmsgd2l0
aCBkaXNwbGF5OmZsZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODE5NTVlMWRhYzU3MmExMzQwNjZiYjJjYWEwOGEz
ZTNiNmMxMWM2Yi4uZWNmYTAxNTAwNDc1NmU5MDYyMzM4NjI1NWY5ZmEzNDA3M2ExNDUyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMi0wMy0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBQQ00gdG8gU0tBZE5l
dHdvcmsgYnJpZGdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzc5NjkKKyAgICAgICAgPHJkYXI6Ly84Mjk4ODA1ND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54
Y2NvbmZpZzoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZG9uYXRlVG9TS0FkTmV0d29yayk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvQXBwU3RvcmVEYWVtb25TUEkuaDogQWRkZWQuCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmRvbmF0ZVRvU0tBZE5ldHdvcmspOgorICAg
ICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZy5zYjoKKyAgICAgICAgKiBTY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjItMDMtMTUgIEFkaXR5YSBLZWVydGhpICA8
YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEluZGVmaW5pdGUgaGFuZyB3aGVu
IHByaW50aW5nIHVzaW5nIGEgVUlQcmludFBhZ2VSZW5kZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApp
bmRleCAxNmQ3YWNhNGQ4MmFiZjJmODM2YzRiYmEzNmJmNzcwNDY0Mjc2ZjIzLi4xYmIyNTJjYjVl
NWU3NzYwZGY0OGEzZDNmMzNiNzhhNzBhZDE4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAt
MTIyMywzICsxMjIzLDcgQEAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTYwMDAwKSB8fCAoUExBVEZPUk0oV0FUQ0hPUykg
JiYgX19XQVRDSF9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA5MDAwMCkKICNkZWZpbmUgSEFW
RV9TQUZFX0JST1dTSU5HX1JFU1VMVF9ERVRBSUxTIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxNjAwMDApCisjZGVm
aW5lIEhBVkVfU0tBRE5FVFdPUktfdjQgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDE2OTFlMmViNzZmOGFiMGY4Y2FmZmMxOTY0NjVhM2Zl
OWMzOWFjMWUuLjIwYzk1NmZjNDlhMTJlM2ZlODBlMjY4MmI1NDc0MjY3M2FiODVkM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zOTUsNyArMzk1LDgw
IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0xpbmsoKQogfQogI2Vu
ZGlmCiAKLXN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JF
bGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgY29uc3QKK3N0ZDo6b3B0aW9u
YWw8VVJMPiBIVE1MQW5jaG9yRWxlbWVudDo6YXR0cmlidXRpb25EZXN0aW5hdGlvblVSTEZvclBD
TSgpIGNvbnN0Cit7CisgICAgVVJMIGRlc3RpbmF0aW9uVVJMIHsgYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uQXR0cikgfTsKKyAgICBpZiAoZGVz
dGluYXRpb25VUkwuaXNWYWxpZCgpICYmIGRlc3RpbmF0aW9uVVJMLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSkKKyAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uVVJMOworCisgICAgZG9jdW1lbnQo
KS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCAiYXR0cmlidXRpb25kZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUgY29udmVydGVkIHRv
IGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLiJfcyk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
K30KKworc3RkOjpvcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gSFRNTEFuY2hvckVsZW1lbnQ6
Om1haW5Eb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluRm9yUENNKCkgY29uc3QKK3sKKyAgICBpZiAo
YXV0byBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICBpZiAoYXV0byBtYWlu
RG9jdW1lbnQgPSBmcmFtZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8gbWFpbkRvY3VtZW50UmVnaXN0cmFibGVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFp
biB7IG1haW5Eb2N1bWVudC0+dXJsKCkgfTsgIW1haW5Eb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWlu
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFpbkRvY3VtZW50UmVnaXN0cmFi
bGVEb21haW47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJDb3Vs
ZCBub3QgZmluZCBhIG1haW4gZG9jdW1lbnQgdG8gdXNlIGFzIHNvdXJjZSBzaXRlIGZvciBQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50LiJfcyk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30K
Kworc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsTm9uY2U+
IEhUTUxBbmNob3JFbGVtZW50OjphdHRyaWJ1dGlvblNvdXJjZU5vbmNlRm9yUENNKCkgY29uc3QK
K3sKKyAgICBhdXRvIGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyID0gYXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlQXR0cik7CisgICAgaWYgKGF0
dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RXBoZW1lcmFsTm9uY2UgeyBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlQXR0ciB9OworICAg
IGlmICghZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKSB7CisgICAgICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgImF0dHJpYnV0aW9uc291cmNlbm9uY2Ugd2FzIG5vdCB2YWxpZC4iX3MpOworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBlcGhlbWVyYWxOb25jZTsK
K30KKworc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVs
ZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JTS0FkTmV0d29yayhjb25zdCBV
UkwmIGhyZWZVUkwpIGNvbnN0Cit7CisgICAgdXNpbmcgU291cmNlSUQgPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlSUQ7CisgICAgdXNpbmcgU291cmNlU2l0ZSA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOworICAgIHVzaW5nIEF0dHJpYnV0aW9uRGVzdGluYXRp
b25TaXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlOworCisgICAgYXV0byBhZGFtSUQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXBwU3Rv
cmVVUkxBZGFtSUQoaHJlZlVSTCk7CisgICAgaWYgKCFhZGFtSUQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIGF0dHJpYnV0aW9uRGVzdGluYXRpb25Eb21haW4gPSBh
dHRyaWJ1dGlvbkRlc3RpbmF0aW9uVVJMRm9yUENNKCk7CisgICAgaWYgKCFhdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uRG9tYWluKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0
byBtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiA9IG1haW5Eb2N1bWVudFJlZ2lzdHJhYmxl
RG9tYWluRm9yUENNKCk7CisgICAgaWYgKCFtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYXR0cmlidXRpb25Tb3Vy
Y2VOb25jZSA9IGF0dHJpYnV0aW9uU291cmNlTm9uY2VGb3JQQ00oKTsKKyAgICBpZiAoIWF0dHJp
YnV0aW9uU291cmNlTm9uY2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBh
dXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgewor
ICAgICAgICBTb3VyY2VJRCgwKSwKKyAgICAgICAgU291cmNlU2l0ZShXVEZNb3ZlKCptYWluRG9j
dW1lbnRSZWdpc3RyYWJsZURvbWFpbikpLAorICAgICAgICBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9u
U2l0ZSgqYXR0cmlidXRpb25EZXN0aW5hdGlvbkRvbWFpbiksCisgICAgICAgIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcigpLAorICAgICAgICBXYWxsVGltZTo6bm93KCksCisgICAgICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkVwaGVtZXJhbDo6Tm8KKyAgICB9Owor
ICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50LnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1v
dmUoKmF0dHJpYnV0aW9uU291cmNlTm9uY2UpKTsKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5zZXRBZGFtSUQoKmFkYW1JRCk7CisgICAgcmV0dXJuIHByaXZhdGVDbGlja01lYXN1cmVtZW50
OworfQorCitzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5jaG9y
RWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBVUkwmIGhyZWZVUkwp
IGNvbnN0CiB7CiAgICAgdXNpbmcgU291cmNlSUQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlSUQ7CiAgICAgdXNpbmcgU291cmNlU2l0ZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VTaXRlOwpAQCAtNDAzLDExICs0NzYsMTQgQEAgc3RkOjpvcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVh
c3UKIAogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CiAgICAg
YXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwotICAgIGlmICghZnJhbWUgfHwhcGFnZSB8
fCBwYWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpCisgICAgaWYgKCFmcmFtZSB8fCAhcGFn
ZSB8fCBwYWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpCiAgICAgICAgIHx8ICFkb2N1bWVu
dCgpLnNldHRpbmdzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKCkKICAgICAgICAg
fHwgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIGlmIChhdXRvIHBjbSA9IHBhcnNlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRGb3JTS0FkTmV0d29yayhocmVmVVJMKSkKKyAgICAgICAgcmV0dXJu
IHBjbTsKKwogICAgIGF1dG8gaGFzQXR0cmlidXRpb25Tb3VyY2VJREF0dHIgPSBoYXNBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uc291cmNlaWRBdHRyKTsKICAgICBh
dXRvIGhhc0F0dHJpYnV0aW9uRGVzdGluYXRpb25BdHRyID0gaGFzQXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uQXR0cik7CiAgICAgaWYgKCFoYXNB
dHRyaWJ1dGlvblNvdXJjZUlEQXR0ciAmJiAhaGFzQXR0cmlidXRpb25EZXN0aW5hdGlvbkF0dHIp
CkBAIC00NTgsMTUgKzUzNCw4IEBAIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1CiAjZW5kaWYKICAg
ICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
eyBTb3VyY2VJRChhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2VTaXRlKFdURk1v
dmUobWFpbkRvY3VtZW50UmVnaXN0cmFibGVEb21haW4pKSwgQXR0cmlidXRpb25EZXN0aW5hdGlv
blNpdGUoZGVzdGluYXRpb25VUkwpLCBidW5kbGVJRCwgV2FsbFRpbWU6Om5vdygpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07CiAKLSAgICBhdXRv
IGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlQXR0cik7Ci0gICAgaWYgKCFhdHRyaWJ1dGlvblNv
dXJjZU5vbmNlQXR0ci5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxOb25jZSB7IGF0dHJpYnV0aW9uU291
cmNlTm9uY2VBdHRyIH07Ci0gICAgICAgIGlmICghZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKSB7
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlIHdh
cyBub3QgdmFsaWQuIl9zKTsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuc2V0RXBoZW1lcmFsU291cmNl
Tm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOwotICAgIH0KKyAgICBpZiAoYXV0byBlcGhl
bWVyYWxOb25jZSA9IGF0dHJpYnV0aW9uU291cmNlTm9uY2VGb3JQQ00oKSkKKyAgICAgICAgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZSgqZXBo
ZW1lcmFsTm9uY2UpKTsKIAogICAgIHJldHVybiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH0K
QEAgLTUyOCw3ICs1OTcsNyBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhF
dmVudCYgZXZlbnQpCiAgICAgaWYgKGhhc1JlbChSZWxhdGlvbjo6Tm9PcGVuZXIpIHx8IGhhc1Jl
bChSZWxhdGlvbjo6Tm9SZWZlcnJlcikgfHwgKCFoYXNSZWwoUmVsYXRpb246Ok9wZW5lcikgJiYg
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLmJsYW5rQW5jaG9yVGFyZ2V0SW1wbGllc05vT3BlbmVyRW5h
YmxlZCgpICYmIGlzQmxhbmtUYXJnZXRGcmFtZU5hbWUoZWZmZWN0aXZlVGFyZ2V0KSAmJiAhY29t
cGxldGVkVVJMLnByb3RvY29sSXNKYXZhU2NyaXB0KCkpKQogICAgICAgICBuZXdGcmFtZU9wZW5l
clBvbGljeSA9IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzczsKIAotICAgIGF1dG8gcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Cisg
ICAgYXV0byBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoY29tcGxldGVkVVJMKTsKICAgICAvLyBBIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZlbnQg
bmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBhbiBhdHRyaWJ1dGlvbiByZXBvcnQgY2FuIGJlIHNlbnQu
CiAgICAgLy8gVGh1cywgVVJMcyBzaG91bGQgYmUgZW1wdHkgZm9yIG5vdy4KICAgICBBU1NFUlQo
IXByaXZhdGVDbGlja01lYXN1cmVtZW50IHx8IChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+YXR0
cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTCgpLmlzTnVsbCgpICYmIHByaXZhdGVDbGlja01l
YXN1cmVtZW50LT5hdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKS5pc051bGwo
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDE1ODA3ZDcw
ZDkzNzk1NDBjYTM2MGZiMmI5ZjA4NzI4NTY1NmY5NWYuLmFkZDYxODMwODZhNDE2YmU3M2RiZmQ3
NWI5MmEyZGNhYWEzZGQ0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmgKQEAgLTI2LDEzICsyNiwxMyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oIgogI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2guaCIKICNpbmNs
dWRlICJVUkxEZWNvbXBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50OwogY2xh
c3MgRE9NVG9rZW5MaXN0OwogCiBlbnVtIGNsYXNzIFJlZmVycmVyUG9saWN5IDogdWludDhfdDsK
QEAgLTEwMiw3ICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2VuZFBpbmdzKGNvbnN0
IFVSTCYgZGVzdGluYXRpb25VUkwpOwogCi0gICAgc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0OworICAgIHN0
ZDo6b3B0aW9uYWw8VVJMPiBhdHRyaWJ1dGlvbkRlc3RpbmF0aW9uVVJMRm9yUENNKCkgY29uc3Q7
CisgICAgc3RkOjpvcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gbWFpbkRvY3VtZW50UmVnaXN0
cmFibGVEb21haW5Gb3JQQ00oKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpFcGhlbWVyYWxOb25jZT4gYXR0cmlidXRpb25Tb3VyY2VOb25jZUZvclBD
TSgpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHBh
cnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JTS0FkTmV0d29yayhjb25zdCBVUkwmKSBjb25z
dDsKKyAgICBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBwYXJzZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFVSTCYpIGNvbnN0OwogCiAgICAgdm9pZCBoYW5kbGVD
bGljayhFdmVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcAppbmRleCBiM2E5ZjgwYWY2MDI4M2I5MjRkNDc1OTg2ZTBmNGVmYTZj
ZDAxOGNhLi43M2U2OTYxM2EwZDIxYzYwZDRlMGIxYmI5MGZlYWVjNzVjMDI1MDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
cmlnZ2VyQXR0cmlidXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3cKIHN0YXRpYyBjb25zdCBjaGFy
IHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi11bmxpbmthYmxlLXRva2VuLyI7CiBz
dGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5UGF0
aFtdID0gIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L2dldC10b2tlbi1w
dWJsaWMta2V5LyI7CiBzdGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFJl
cG9ydEF0dHJpYnV0aW9uUGF0aFtdID0gIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50L3JlcG9ydC1hdHRyaWJ1dGlvbi8iOworc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb1NLQWROZXR3b3JrVVJMUHJlZml4W10gPSAiaHR0cHM6Ly9hcHBzLmFw
cGxlLmNvbS9hcHAvYXBwbGUtc3RvcmUvaWQiOwogY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSA9IDI7CiBjb25z
dCBzaXplX3QgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSA9
IDI7CiBjb25zdCB1aW50OF90IHByaXZhdGVDbGlja01lYXN1cmVtZW50VmVyc2lvbiA9IDM7CkBA
IC00MTYsNCArNDE3LDEyIEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldERlc3Rp
bmF0aW9uU2VjcmV0VG9rZW4oRGVzdGluYXRpb25TZWNyZXRUb2tlbiYmCiAgICAgbV9hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhLT5kZXN0aW5hdGlvblNlY3JldFRva2VuID0gV1RGTW92ZSh0b2tlbik7
CiB9CiAKK3N0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
cHBTdG9yZVVSTEFkYW1JRChjb25zdCBVUkwmIHVybCkKK3sKKyAgICBTdHJpbmdWaWV3IHN0cmlu
Z1ZpZXcgeyB1cmwuc3RyaW5nKCkgfTsKKyAgICBpZiAoIXN0cmluZ1ZpZXcuc3RhcnRzV2l0aChw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU0tBZE5ldHdvcmtVUkxQcmVmaXgpKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBwYXJzZUludGVnZXI8dWludDY0X3Q+KHN0
cmluZ1ZpZXcuc3Vic3RyaW5nKHN0cmxlbihwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU0tBZE5l
dHdvcmtVUkxQcmVmaXgpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggMWU3ODFh
OWRlZGE5MDZhZjMxZWQwYjIwOWI1NTlhNGMxZDRhMjU3Yy4uMzUyNDgwMWRlYWI5YjYzMjExOGI0
MzgzMjk2MDQyN2RkZmY0Yjc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTQzNCw2ICs0MzQsOSBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTb3VyY2VTZWNyZXRUb2tlbihTb3VyY2VTZWNyZXRUb2tlbiYm
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlc3RpbmF0aW9uU2VjcmV0VG9rZW4oRGVz
dGluYXRpb25TZWNyZXRUb2tlbiYmKTsKIAorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBhcHBTdG9yZVVSTEFkYW1JRChjb25zdCBVUkwmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBhZGFtSUQoKSBjb25zdCB7IHJldHVybiBtX2FkYW1JRDsgfTsKKyAgICB2b2lkIHNl
dEFkYW1JRCh1aW50NjRfdCBhZGFtSUQpIHsgbV9hZGFtSUQgPSBhZGFtSUQ7IH07CiAKICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CkBAIC00NTUsNiArNDU4LDcgQEAgcHJpdmF0
ZToKICAgICBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSBtX2Rlc3RpbmF0aW9uU2l0ZTsKICAg
ICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAgICAgQXR0cmlidXRpb25FcGhlbWVyYWwgbV9p
c0VwaGVtZXJhbDsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtX2FkYW1JRDsKIAogICAg
IHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9hdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOwogICAgIEF0dHJpYnV0aW9uVGltZVRvU2VuZERhdGEgbV90aW1lc1RvU2VuZDsKQEAg
LTQ3Niw3ICs0ODAsOCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgPDwgbV9pc0VwaGVtZXJhbAogICAgICAgICA8
PCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEKICAgICAgICAgPDwgbV9zb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlECi0gICAgICAgIDw8IG1fdGltZXNUb1NlbmQ7CisgICAgICAgIDw8IG1fdGltZXNU
b1NlbmQKKyAgICAgICAgPDwgbV9hZGFtSUQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
CkBAIC01MjYsNyArNTMxLDEyIEBAIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYKICAgICBkZWNvZGVy
ID4+IHRpbWVzVG9TZW5kOwogICAgIGlmICghdGltZXNUb1NlbmQpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0gICAgCisKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+PiBhZGFtSUQ7CisgICAgZGVjb2RlciA+PiBhZGFtSUQ7CisgICAgaWYgKCFhZGFtSUQp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBhdHRyaWJ1dGlvbiB7CiAgICAgICAgIFNvdXJjZUlEIHsgV1RGTW92ZSgqc291cmNlSUQp
IH0sCiAgICAgICAgIFNvdXJjZVNpdGUgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3RyYWJsZURvbWFp
bikgfSwKQEAgLTUzOCw3ICs1NDgsOCBAQCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXImCiAgICAgYXR0
cmlidXRpb24ubV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUoKmVwaGVtZXJhbFNvdXJj
ZU5vbmNlKTsKICAgICBhdHRyaWJ1dGlvbi5tX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZN
b3ZlKCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICBhdHRyaWJ1dGlvbi5tX3RpbWVzVG9T
ZW5kID0gV1RGTW92ZSgqdGltZXNUb1NlbmQpOwotICAgIAorICAgIGF0dHJpYnV0aW9uLm1fYWRh
bUlEID0gV1RGTW92ZSgqYWRhbUlEKTsKKwogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcg
Yi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCBjYjYw
MDQ3YzczNTg0M2NkZWZkZDM1NjM3MzhiZmQyMThmZjFmNTVlLi40MjMyM2M1OTdlZTBhZjhmYzNm
MjZlMmFkOGZhODFmZDY5YTU3ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1dlYktpdC54Y2NvbmZpZwpAQCAtMTMwLDYgKzEzMCwxMSBAQCBXS19VTklGT1JNX1RZUEVfSURF
TlRJRklFUlNfTERGTEFHU193YXRjaHNpbXVsYXRvciA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJ
ZGVudAogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfYXBwbGV0dm9zID0gLWZy
YW1ld29yayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzOwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJ
RVJTX0xERkxBR1NfYXBwbGV0dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVu
dGlmaWVyczsKIAorV0tfQVBQX1NUT1JFX0RBRU1PTl9MREZMQUdTID0gJChXS19BUFBfU1RPUkVf
REFFTU9OX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19BUFBfU1RPUkVfREFFTU9O
X0xERkxBR1NfaXBob25lb3MgPSAkKFdLX0FQUF9TVE9SRV9EQUVNT05fTERGTEFHUyQoV0tfSU9T
XzE2KSk7CitXS19BUFBfU1RPUkVfREFFTU9OX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChX
S19BUFBfU1RPUkVfREFFTU9OX0xERkxBR1MkKFdLX0lPU18xNikpOworV0tfQVBQX1NUT1JFX0RB
RU1PTl9MREZMQUdTX0lPU19TSU5DRV8xNiA9IC1mcmFtZXdvcmsgQXBwU3RvcmVEYWVtb247CisK
IFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1Nf
JChXS19IQVZFX1VSTF9GT1JNQVRUSU5HKSk7CiBXS19VUkxfRk9STUFUVElOR19MREZMQUdTX1lF
UyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKIApAQCAtMTYyLDcgKzE2Nyw3IEBAIFdLX0lO
U1RBTExfQ09PUkRJTkFUSU9OX0xERkxBR1MgPSAkKFdLX0lOU1RBTExfQ09PUkRJTkFUSU9OX0xE
RkxBR1NfJChXS19QTEFURk9SCiBXS19JTlNUQUxMX0NPT1JESU5BVElPTl9MREZMQUdTX2lwaG9u
ZW9zID0gLWZyYW1ld29yayBJbnN0YWxsQ29vcmRpbmF0aW9uOwogV0tfSU5TVEFMTF9DT09SRElO
QVRJT05fTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAkKFdLX0lOU1RBTExfQ09PUkRJTkFUSU9O
X0xERkxBR1NfaXBob25lb3MpCiAKLUZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxv
YmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsg
Q29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4
dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9L
aXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3Jr
IC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lU
X0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JP
QVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9M
REZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxB
R1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hf
TERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNF
U19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxB
R1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1Mp
ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJ
TkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9S
X0xERkxBR1MpICQoV0tfSU5TVEFMTF9DT09SRElOQVRJT05fTERGTEFHUykgJChXS19BVktJVF9M
REZMQUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdv
cmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRp
b24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3Jr
IEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsg
TWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQo
V0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdL
X0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09S
RV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
TElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChX
S19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAk
KFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJP
VE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NF
Q1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9S
TV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfQVBQX1NUT1JFX0RBRU1PTl9MREZMQUdT
KSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFH
UykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKSAkKFdLX0lOU1RBTExfQ09PUkRJTkFUSU9OX0xE
RkxBR1MpICQoV0tfQVZLSVRfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJkIGxp
YnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIg
cmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJv
bHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDliYWRfYWxsb2MgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzE0YmFzaWNfaW9zdHJl
YW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9O
U18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRU
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTViYXNp
Y19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4
IDRkMDljM2JiNDI5YzRjMGYzNDQ4Yzk5NmRlYTk5MWRjNGY4MmY2ODkuLmI1YzhhZDFmOGFjOGYz
ZDQxOGYxZTczMzFhYTQxZWM4YTg2ODkzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0zNzMsNiArMzczLDEwIEBAIHZvaWQgTmV0
d29ya1Nlc3Npb246OnN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lCiAgICAgICAgIG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQgPSBXVEZNb3Zl
KHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKworICAgIGlmICh1bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5hZGFt
SUQoKSkKKyAgICAgICAgcmV0dXJuIGRvbmF0ZVRvU0tBZE5ldHdvcmsoV1RGTW92ZSh1bmF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOworCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoKS5zdG9yZVVuYXR0cmlidXRlZChXVEZNb3ZlKHVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KSwgW10geyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGZmZjg3ZTg0ZTA2Njg5MzBlNjExYmMzNWMyNGY3
OGYzMjI1NDg3ZjAuLmZhYWFjZDg2MDhkZjUxZTk2MGVhYjQ4MWUyNzU0OWQwZjEzMjNhODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTE1
MCw2ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHdlYlB1c2hEYWVtb25Vc2Vz
TW9ja0J1bmRsZXNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZv
aWQgc3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uYXRlVG9TS0FkTmV0d29yayhXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSB7IH0KICAgICB2b2lkIGhhbmRsZVByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBTdHJpbmcmJiBhdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIGNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvQXBwU3RvcmVEYWVt
b25TUEkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvQXBwU3RvcmVEYWVt
b25TUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMTY2NWU0ZWRiNzJkNGI0Y2Q2ZTljZmYyNDRkOTc1MDRmNGI3
ODVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9BcHBTdG9yZURhZW1vblNQSS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEhBVkUoU0tBRE5FVFdPUktfdjQpCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKworI2ltcG9ydCA8QXBwU3RvcmVEYWVtb24vQVNESW5zdGFsbEF0dHJpYnV0aW9u
Lmg+CisjaW1wb3J0IDxBcHBTdG9yZURhZW1vbi9BU0RJbnN0YWxsV2ViQXR0cmlidXRpb25QYXJh
bXNDb25maWcuaD4KKworI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworQGludGVy
ZmFjZSBBU0RJbnN0YWxsV2ViQXR0cmlidXRpb25QYXJhbXNDb25maWcgOiBOU09iamVjdCA8TlNT
ZWN1cmVDb2Rpbmc+Cit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBU0RJbnN0YWxsV2ViQXR0
cmlidXRpb25Db250ZXh0KSB7CisgICAgQXR0cmlidXRpb25UeXBlRGVmYXVsdCA9IDAsCit9Owor
QHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNOdW1iZXIgKmFwcEFkYW1JZDsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5nICphZE5ldHdvcmtSZWdpc3RyYWJsZURv
bWFpbjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5nICppbXByZXNzaW9u
SWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU1N0cmluZyAqc291cmNlV2ViUmVn
aXN0cmFibGVEb21haW47CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU1N0cmluZyAq
dmVyc2lvbjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEFTREluc3RhbGxXZWJBdHRy
aWJ1dGlvbkNvbnRleHQgYXR0cmlidXRpb25Db250ZXh0OworQGVuZAorCitAaW50ZXJmYWNlIEFT
REluc3RhbGxBdHRyaWJ1dGlvbiA6IE5TT2JqZWN0CisrIChpbnN0YW5jZXR5cGUpc2hhcmVkSW5z
dGFuY2U7CistICh2b2lkKWFkZEluc3RhbGxXZWJBdHRyaWJ1dGlvblBhcmFtc1dpdGhDb25maWc6
KEFTREluc3RhbGxXZWJBdHRyaWJ1dGlvblBhcmFtc0NvbmZpZyAqKWNvbmZpZyBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyOworQGVu
ZAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNlbmRpZiAvLyBIQVZFKFNL
QURORVRXT1JLX3Y0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCA4NzliM2NkOWIwMWNiY2Y2ZTc1YTY3
NTk1ZGE5YzkwOWI3ZGYwYmJmLi40ZmRjOTFmMzM0YzlkZjIyODU0NDY2ZWYxZGYwMTg4MDYxYmFk
N2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtMTU0LDYgKzE1NCw4IEBAIHByaXZhdGU6CiAgICAg
U2Vzc2lvbldyYXBwZXImIGFwcEJvdW5kU2Vzc2lvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAjZW5kaWYKIAorICAgIHZvaWQgZG9u
YXRlVG9TS0FkTmV0d29yayhXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSBmaW5h
bDsKKwogICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IGhvc3ROYW1lc1dp
dGhBbHRlcm5hdGl2ZVNlcnZpY2VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWxldGVB
bHRlcm5hdGl2ZVNlcnZpY2VzRm9ySG9zdE5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjbGVhckFsdGVybmF0aXZlU2VydmljZXMoV2FsbFRpbWUpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDVkZDFiYzhhOTM2YWQ4MTQ2NDkyMThkOWI0MDky
MWIwN2JkNmJmM2IuLmI1ZjdkOWRiZTRlMmM4NzEzMGQ5N2NhYWYwNWUyNGY3MjJmMjU2MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgogCisjaW1wb3J0ICJBcHBTdG9yZURhZW1v
blNQSS5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgog
I2ltcG9ydCAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNl
LmgiCkBAIC0xODE4LDYgKzE4MTksMzUgQEAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gTmV0d29ya1Nlc3Npb25Db2NvYTo6aG9zdE5hbWVzV2l0aEFsdGVybmF0aXYKICNlbmRp
ZgogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmRvbmF0ZVRvU0tBZE5ldHdvcmsoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBwY20pCit7CisjaWYgSEFWRShTS0FETkVU
V09SS192NCkKKyAgICBhdXRvIGNvbmZpZyA9IGFkb3B0TlMoW0FTREluc3RhbGxXZWJBdHRyaWJ1
dGlvblBhcmFtc0NvbmZpZyBuZXddKTsKKyAgICBjb25maWcuZ2V0KCkuYXBwQWRhbUlkID0gQCgq
cGNtLmFkYW1JRCgpKTsKKyAgICBjb25maWcuZ2V0KCkuYWROZXR3b3JrUmVnaXN0cmFibGVEb21h
aW4gPSBwY20uZGVzdGluYXRpb25TaXRlKCkucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCk7Cisg
ICAgY29uZmlnLmdldCgpLmltcHJlc3Npb25JZCA9IHBjbS5lcGhlbWVyYWxTb3VyY2VOb25jZSgp
LT5ub25jZTsKKyAgICBjb25maWcuZ2V0KCkuc291cmNlV2ViUmVnaXN0cmFibGVEb21haW4gPSBw
Y20uc291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpOworICAgIGNvbmZpZy5n
ZXQoKS52ZXJzaW9uID0gQCIzIjsKKyAgICBjb25maWcuZ2V0KCkuYXR0cmlidXRpb25Db250ZXh0
ID0gQXR0cmlidXRpb25UeXBlRGVmYXVsdDsKKyAgICBbW0FTREluc3RhbGxBdHRyaWJ1dGlvbiBz
aGFyZWRJbnN0YW5jZV0gYWRkSW5zdGFsbFdlYkF0dHJpYnV0aW9uUGFyYW1zV2l0aENvbmZpZzpj
b25maWcuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyNlbmRpZgorCisgICAgaWYgKCFt
X3ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nQnVpbGRlciBkZWJ1Z1N0cmluZzsKKyAgICBkZWJ1Z1N0cmluZy5hcHBl
bmQoIlN1Ym1pdHRpbmcgcG90ZW50aWFsIGluc3RhbGwgYXR0cmlidXRpb24gZm9yIEFkYW1JZDog
Iik7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKG1ha2VTdHJpbmcoKnBjbS5hZGFtSUQoKSkpOwor
ICAgIGRlYnVnU3RyaW5nLmFwcGVuZCgiLCBhZE5ldHdvcmtSZWdpc3RyYWJsZURvbWFpbjogIik7
CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKHBjbS5kZXN0aW5hdGlvblNpdGUoKS5yZWdpc3RyYWJs
ZURvbWFpbi5zdHJpbmcoKSk7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKCIsIGltcHJlc3Npb25J
ZDogIik7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKHBjbS5lcGhlbWVyYWxTb3VyY2VOb25jZSgp
LT5ub25jZSk7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKCIsIHNvdXJjZVdlYlJlZ2lzdHJhYmxl
RG9tYWluOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQocGNtLnNvdXJjZVNpdGUoKS5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKCIsIHZlcnNp
b246IDMiKTsKKyAgICBuZXR3b3JrUHJvY2VzcygpLmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKHNl
c3Npb25JRCgpLCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2Fn
ZUxldmVsOjpEZWJ1ZywgZGVidWdTdHJpbmcudG9TdHJpbmcoKSk7Cit9CisKIHZvaWQgTmV0d29y
a1Nlc3Npb25Db2NvYTo6ZGVsZXRlQWx0ZXJuYXRpdmVTZXJ2aWNlc0Zvckhvc3ROYW1lcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgaG9zdHMpCiB7CiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJ
VkVfU0VSVklDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIGIvU291cmNlL1dlYktp
dC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtp
bmcuc2IKaW5kZXggNTNiZmY2ZTY5ZGRjYThiNzM3NDZiYzAxZWUwOGIzMDU2OGEyODA3ZC4uYTQ1
ZmQ0ZmY1MTYwMzJmYTg1MmU3ZThkODE1ZWNjMDczYWIzMmY1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcuc2IKKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVz
L2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKQEAgLTIxNSw2ICsyMTUsOSBAQAog
ICAgIChhbGxvdyBtYWNoLWxvb2t1cAogICAgICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5uZWhlbHBlciIpKQogCisgICAgKGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmFwcHN0b3JlZC54cGMucmVxdWVzdCIpKQorCiAgICAgOzsgPHJk
YXI6Ly84OTAzMTczMT4KICAgICAoYWxsb3cgbWFjaC1sb29rdXAKICAgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubmV0d29ya3NlcnZpY2Vwcm94eS5mZXRjaC10b2tlbiIpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCmluZGV4IDExOTQxZWE3
NzhjNDAyM2YxZTg3M2MzN2Y0ZjNlNzRkNDIxMGFhMzkuLmE5MGYxOWZhMzk3ZjJlY2Q3Zjc3MTVh
MDE1NzUyMDZlMjI1ZGMzMzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9j
ZXNzLWVudGl0bGVtZW50cy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1l
bnRpdGxlbWVudHMuc2gKQEAgLTQ5NSw2ICs0OTUsOSBAQCBmdW5jdGlvbiBpb3NfZmFtaWx5X3By
b2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMoKQogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUucHJpdmF0ZS50Y2MubWFuYWdlci5jaGVjay1ieS1hdWRpdC10b2tlbiBhcnJheQogICAgIHBs
aXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS50Y2MubWFuYWdlci5jaGVjay1ieS1hdWRp
dC10b2tlbjowIHN0cmluZyBrVENDU2VydmljZVdlYktpdEludGVsbGlnZW50VHJhY2tpbmdQcmV2
ZW50aW9uCiAKKyAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuYXBwc3RvcmVk
IGFycmF5CisgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLmFwcHN0b3JlZDow
IHN0cmluZyBJbnN0YWxsQXR0cmlidXRpb24KKwogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUucHJpdmF0ZS5zYW5kYm94LnByb2ZpbGUgc3RyaW5nIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZwogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUuc3ltcHRvbV9hbmFseXRpY3MuY29u
ZmlndXJlIGJvb2wgWUVTCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBhMjdmZDQzM2M2ZWFkMzVhOTBlZTljZjNjYjBiMDZmZmIyNWIyN2U0Li5kNWFjM2Y3
NzAzNDRlMzVkODM2NDgyNjQ2MzI3ZWJiNDk5Y2U3Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ5NzcsNyArNDk3Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmCiAgICAgICAgIGVsc2UgaWYgKG5hdmlnYXRpb24gJiYgbmF2aWdhdGlvbi0+cHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSkKICAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICAgICAgaWYg
KHByaXZhdGVDbGlja01lYXN1cmVtZW50KSB7Ci0gICAgICAgICAgICBpZiAocHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQtPmRlc3RpbmF0aW9uU2l0ZSgpLm1hdGNoZXMoZnJhbWUtPnVybCgpKSkKKyAg
ICAgICAgICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+ZGVzdGluYXRpb25TaXRlKCku
bWF0Y2hlcyhmcmFtZS0+dXJsKCkpIHx8IHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5hZGFtSUQo
KSkKICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCAqcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpLCAwKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQyMDdiYTU4MWViZDM1YTg5YTUyZjFmNjQ3ZDky
MjQ5ZDlkYTIxMGQuLmQ4YThkYTgzOTc4NDgzOTgyOTJkNDNiNzUzZWRkN2E5NjYxZTNiZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NDg4MCw2ICs0ODgwLDcgQEAKIAkJNUMxMjFFODgyNDEwMjkwRDAwNDg2RjlCIC8qIF9XS0ZyYW1l
VHJlZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRnJhbWVUcmVl
Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzEyMUU4QjI0MTAzMDY2MDA0
ODZGOUIgLyogQVBJRnJhbWVUcmVlTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBUElGcmFtZVRyZWVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUMxMzAyNEExRkUzNDFBNzAwMEQ5QjMxIC8qIFdlYnNpdGVQb2xpY2llc0RhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZVBvbGljaWVzRGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzEzNTU5RTI3RTI1MDAzMDAyMkI1MjcgLyog
QXBwU3RvcmVEYWVtb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXBwU3RvcmVEYWVtb25TUEkuaDsg
cGF0aCA9IEFwcFN0b3JlRGFlbW9uU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDMTQyNkUyMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDMTQyNkUzMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzE0MjZF
NDFDMjNGODA1MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0NzUsNiArMTA0NzYsNyBAQAogCQk3RUM0RjBG
ODE4RTRBOTIyMDA4MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTVDMTM1NTlFMjdFMjUwMDMwMDIyQjUyNyAvKiBBcHBTdG9yZURh
ZW1vblNQSS5oICovLAogCQkJCTJEMEM1NkZCMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5h
Z2VtZW50U29mdExpbmsuaCAqLywKIAkJCQkyRDBDNTZGQzIyOUYxREVBMDBCRDMzRTcgLyogRGV2
aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICovLAogCQkJCUMxNzEwQ0Y1MjRBQTYzNDUwMEQ3QzEx
MiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIuaCAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YWIwZDViMDhmYzZjNmU1YmJh
NzIwYmUwZGRjMjIwZTY4ZDcwMTY2Li44N2FhOTY4NmZiOWQyYWM1NzQxOTM3MTE1NzQyZjVkMDkw
NDA1YzI4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDMtMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgUENNIHRvIFNLQWROZXR3b3Jr
IGJyaWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3OTY5CisgICAgICAgIDxyZGFyOi8vODI5ODgwNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KwogMjAyMi0wMy0xNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gSW5kZWZpbml0ZSBoYW5nIHdoZW4gcHJpbnRpbmcgdXNpbmcgYSBVSVByaW50
UGFnZVJlbmRlcmVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggM2M1NjFiMjcyYTFhZGY1NDU3YmQy
YzY1ZjhlY2Y1ODQzZTUzZDNkMS4uNGM4ZDM1ZjI1ZTg1ZmY5NDUwYjBiZDgyZWI0MmQ5YjA2NGE5
NGYxOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9F
dmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtNTU5LDYgKzU1OSw0NiBAQCBURVNUKFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBEYWVtb25EZWJ1Z01vZGUpCiAgICAgY2xlYW5VcERhZW1vbih0
ZW1wRGlyKTsKIH0KIAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgU0tBZE5ldHdvcmsp
Cit7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeyB7ICIvYXBwL2FwcGxlLXN0b3JlL2lkMTIzNDU2
Nzg5MCIsIHsgImhlbGxvIiB9IH0gfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzUHJveHkp
OworCisgICAgYXV0byBzdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbc3RvcmVDb25maWd1cmF0
aW9uIHNldFByb3h5Q29uZmlndXJhdGlvbjpAeworICAgICAgICAoTlNTdHJpbmcgKilrQ0ZTdHJl
YW1Qcm9wZXJ0eUhUVFBTUHJveHlIb3N0OiBAIjEyNy4wLjAuMSIsCisgICAgICAgIChOU1N0cmlu
ZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFNQcm94eVBvcnQ6IEAoc2VydmVyLnBvcnQoKSkKKyAg
ICB9XTsKKworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKnZpZXdDb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlIl07CisgICAgdmlld0NvbmZpZ3Vy
YXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0
KCk7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld1dpdGhPcGVuSW5zcGVjdG9yKHZpZXdDb25m
aWd1cmF0aW9uKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlczsKKyAgICBz
ZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3ZWJWaWV3LmdldCgpLCBjb25zb2xlTWVzc2FnZXMpOwor
ICAgIFt2aWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWRGb3JUZXN0aW5nOllFU107CisKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keT4iCisgICAgICAgICI8YSBocmVm
PSdodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDEyMzQ1Njc4OTAnIGlk
PSdhbmNob3JpZCcgYXR0cmlidXRpb25kZXN0aW5hdGlvbj0naHR0cHM6Ly9kZXN0aW5hdGlvbi8n
IGF0dHJpYnV0aW9uU291cmNlTm9uY2U9J01USXpORFUyTnpnNU1ERXlNelExTmcnPmFuY2hvcjwv
YT4iCisgICAgICAgICI8L2JvZHk+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0
cHM6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICB3aGlsZSAoY29uc29sZU1lc3NhZ2VzLmlzRW1w
dHkoKSkKKyAgICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
Y29uc29sZU1lc3NhZ2VzWzBdLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFR1cm5lZCBE
ZWJ1ZyBNb2RlIG9uLiIpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW2RlbGVnYXRlIHNldERpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTpeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICpjaGFsbGVuZ2UsIHZvaWQgKF5jYWxsYmFjaykoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5n
ZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QsIE5TVVJM
QXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdCk7CisgICAgICAgIGNhbGxiYWNrKE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRl
bnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7Cisg
ICAgfV07CisgICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZS5n
ZXQoKTsKKworICAgIFt3ZWJWaWV3IGNsaWNrT25FbGVtZW50SUQ6QCJhbmNob3JpZCJdOworCisg
ICAgd2hpbGUgKGNvbnNvbGVNZXNzYWdlcy5zaXplKCkgPCAyKQorICAgICAgICBVdGlsOjpzcGlu
UnVuTG9vcCgpOworICAgIEVYUEVDVF9XS19TVFJFUShjb25zb2xlTWVzc2FnZXNbMV0sICJTdWJt
aXR0aW5nIHBvdGVudGlhbCBpbnN0YWxsIGF0dHJpYnV0aW9uIGZvciBBZGFtSWQ6IDEyMzQ1Njc4
OTAsIGFkTmV0d29ya1JlZ2lzdHJhYmxlRG9tYWluOiBkZXN0aW5hdGlvbiwgaW1wcmVzc2lvbklk
OiBNVEl6TkRVMk56ZzVNREV5TXpRMU5nLCBzb3VyY2VXZWJSZWdpc3RyYWJsZURvbWFpbjogZXhh
bXBsZS5jb20sIHZlcnNpb246IDMiKTsKK30KKwogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTmV0d29ya1Byb2Nlc3NEZWJ1Z01vZGUpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlIl07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454891</attachid>
            <date>2022-03-16 14:05:40 -0700</date>
            <delta_ts>2022-03-22 16:07:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237969-20220316140540.patch</filename>
            <type>text/plain</type>
            <size>35941</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyOTEzNjQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTE2ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IFBDTSB0byBTS0Fk
TmV0d29yayBicmlkZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzk2OQorICAgICAgICA8cmRhcjovLzgyOTg4MDU0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOgor
CiAyMDIyLTAzLTE1ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEFkZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEZldGNoIE1ldGFkYXRhCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAkocmV2aXNpb24gMjkxMzY0KQorKysgU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMjMsMyArMTIyMyw3IEBACiAjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAw
MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDE2MDAwMCkgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gOTAwMDApCiAjZGVmaW5lIEhBVkVfU0FGRV9CUk9XU0lOR19SRVNVTFRf
REVUQUlMUyAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gMTYwMDAwKQorI2RlZmluZSBIQVZFX1NLQURORVRXT1JLX3Y0
IDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjkxMzY0KQorKysgU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDMt
MTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBJbXBsZW1lbnQgUENNIHRvIFNLQWROZXR3b3JrIGJyaWRnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTY5CisgICAgICAgIDxyZGFyOi8vODI5
ODgwNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2hlbiBjbGlja2luZyBvbiBhbiBhcHAgc3RvcmUgbGluayB0aGF0IGhhcyBiZWVuIGRlY29yYXRl
ZCB3aXRoIHRoZSBuZWNlc3NhcnkgUENNIGF0dHJpYnV0ZXMsCisgICAgICAgIHdlIGdpdmUgaW5m
b3JtYXRpb24gYWJvdXQgdGhlIGNsaWNrIHRvIFNLQWROZXR3b3JrIHRvIHNlbmQgYW4gYW5vbnlt
b3VzIGF0dHJpYnV0aW9uIHJlcG9ydCBsYXRlcgorICAgICAgICBpZiB0aGUgdXNlciBidXlzIHRo
ZSBhcHAgYmVjYXVzZSBvZiB0aGUgY2xpY2suICBUaGF0IHBhcnQgaGFzIG5vdCBiZWVuIGltcGxl
bWVudGVkIHlldCwgc28gdG8gdGVzdAorICAgICAgICB3ZSBzaW1wbHkgcmVwb3J0IHRoZSBpbmZv
cm1hdGlvbiB0aGF0IHdlIGFyZSBnaXZpbmcgdG8gU0tBZE5ldHdvcmsgaW4gYW4gQVBJIHRlc3Qg
d2hpY2ggdXNlcyBhbiBIVFRQUworICAgICAgICBwcm94eSBzbyB3ZSBkb24ndCBhY3R1YWxseSBj
b25uZWN0IHRvIGFwcHMuYXBwbGUuY29tIHdoZW4gcnVubmluZyB0aGUgdGVzdC4KKworICAgICAg
ICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFu
Y2hvckVsZW1lbnQ6OmF0dHJpYnV0aW9uRGVzdGluYXRpb25VUkxGb3JQQ00gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6Om1haW5Eb2N1bWVudFJlZ2lzdHJhYmxl
RG9tYWluRm9yUENNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50
OjphdHRyaWJ1dGlvblNvdXJjZU5vbmNlRm9yUENNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yU0tBZE5l
dHdvcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFu
Y2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVt
ZW50Lmg6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjphcHBTdG9yZVVSTEFkYW1J
RCk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YWRhbUlEIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRBZGFtSUQpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKToKKwogMjAyMi0w
My0xNiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
IFByb2Nlc3NdIE1vdmUgb3RoZXIgY2xhc3NlcyBvdXQgb2YgR3JhcGhpY3NDb250ZXh0LmgKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAy
OTEzNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzk1LDcgKzM5NSw4NiBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojpp
c1N5c3RlbVByZXZpZXdMCiB9CiAjZW5kaWYKIAotc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoKSBjb25zdAorc3RkOjpvcHRpb25hbDxVUkw+IEhUTUxBbmNob3JFbGVtZW50OjphdHRyaWJ1
dGlvbkRlc3RpbmF0aW9uVVJMRm9yUENNKCkgY29uc3QKK3sKKyAgICBVUkwgZGVzdGluYXRpb25V
UkwgeyBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uZGVzdGluYXRp
b25BdHRyKSB9OworICAgIGlmIChkZXN0aW5hdGlvblVSTC5pc1ZhbGlkKCkgJiYgZGVzdGluYXRp
b25VUkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1cm4gZGVzdGluYXRp
b25VUkw7CisKKyAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uIGNv
dWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuIl9zKTsKKyAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9t
YWluPiBIVE1MQW5jaG9yRWxlbWVudDo6bWFpbkRvY3VtZW50UmVnaXN0cmFibGVEb21haW5Gb3JQ
Q00oKSBjb25zdAoreworICAgIGlmIChhdXRvIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKSB7
CisgICAgICAgIGlmIChhdXRvIG1haW5Eb2N1bWVudCA9IGZyYW1lLT5tYWluRnJhbWUoKS5kb2N1
bWVudCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURv
bWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluIHsgbWFpbkRvY3VtZW50LT51cmwoKSB9OyAhbWFpbkRv
Y3VtZW50UmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVy
biBtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbjsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgIkNvdWxkIG5vdCBmaW5kIGEgbWFpbiBkb2N1bWVudCB0byB1c2Ug
YXMgc291cmNlIHNpdGUgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuIl9zKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpFcGhlbWVyYWxOb25jZT4gSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0aW9uU291
cmNlTm9uY2VGb3JQQ00oKSBjb25zdAoreworICAgIGF1dG8gYXR0cmlidXRpb25Tb3VyY2VOb25j
ZUF0dHIgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uc291cmNl
bm9uY2VBdHRyKTsKKyAgICBpZiAoYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBlcGhlbWVyYWxOb25j
ZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxOb25jZSB7IGF0dHJpYnV0aW9u
U291cmNlTm9uY2VBdHRyIH07CisgICAgaWYgKCFlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpIHsK
KyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhl
ciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiYXR0cmlidXRpb25zb3VyY2Vub25jZSB3YXMgbm90
IHZhbGlkLiJfcyk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAg
cmV0dXJuIGVwaGVtZXJhbE5vbmNlOworfQorCitzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEZvclNLQWROZXR3b3JrKGNvbnN0IFVSTCYgaHJlZlVSTCkgY29uc3QKK3sKKyAgICB1c2luZyBT
b3VyY2VJRCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDsKKyAgICB1c2luZyBT
b3VyY2VTaXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU7CisgICAgdXNp
bmcgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGU7CisKKyAgICBhdXRvIGFkYW1JRCA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjphcHBTdG9yZVVSTEFkYW1JRChocmVmVVJMKTsKKyAgICBpZiAoIWFk
YW1JRCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYXR0cmlidXRp
b25EZXN0aW5hdGlvbkRvbWFpbiA9IGF0dHJpYnV0aW9uRGVzdGluYXRpb25VUkxGb3JQQ00oKTsK
KyAgICBpZiAoIWF0dHJpYnV0aW9uRGVzdGluYXRpb25Eb21haW4pCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIG1haW5Eb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluID0g
bWFpbkRvY3VtZW50UmVnaXN0cmFibGVEb21haW5Gb3JQQ00oKTsKKyAgICBpZiAoIW1haW5Eb2N1
bWVudFJlZ2lzdHJhYmxlRG9tYWluKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgYXV0byBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlID0gYXR0cmlidXRpb25Tb3VyY2VOb25jZUZv
clBDTSgpOworICAgIGlmICghYXR0cmlidXRpb25Tb3VyY2VOb25jZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gYnVuZGxlSUQg
PSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgU3RyaW5nIGJ1bmRs
ZUlEOworI2VuZGlmCisKKyAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgeworICAgICAgICBTb3VyY2VJRCgwKSwKKyAgICAgICAgU291cmNl
U2l0ZShXVEZNb3ZlKCptYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbikpLAorICAgICAgICBB
dHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSgqYXR0cmlidXRpb25EZXN0aW5hdGlvbkRvbWFpbiks
CisgICAgICAgIGJ1bmRsZUlELAorICAgICAgICBXYWxsVGltZTo6bm93KCksCisgICAgICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkVwaGVtZXJhbDo6Tm8KKyAgICB9Owor
ICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50LnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1v
dmUoKmF0dHJpYnV0aW9uU291cmNlTm9uY2UpKTsKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5zZXRBZGFtSUQoKmFkYW1JRCk7CisgICAgcmV0dXJuIHByaXZhdGVDbGlja01lYXN1cmVtZW50
OworfQorCitzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5jaG9y
RWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBVUkwmIGhyZWZVUkwp
IGNvbnN0CiB7CiAgICAgdXNpbmcgU291cmNlSUQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlSUQ7CiAgICAgdXNpbmcgU291cmNlU2l0ZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VTaXRlOwpAQCAtNDAzLDExICs0ODIsMTQgQEAgc3RkOjpvcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4gSAogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50
KCkuZnJhbWUoKTsKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7Ci0gICAgaWYg
KCFmcmFtZSB8fCFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkKKyAgICBp
ZiAoIWZyYW1lIHx8ICFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkKICAg
ICAgICAgfHwgIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
YWJsZWQoKQogICAgICAgICB8fCAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisgICAgaWYgKGF1dG8g
cGNtID0gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclNLQWROZXR3b3JrKGhyZWZVUkwp
KQorICAgICAgICByZXR1cm4gcGNtOworCiAgICAgYXV0byBoYXNBdHRyaWJ1dGlvblNvdXJjZUlE
QXR0ciA9IGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXR0cmlidXRpb25zb3Vy
Y2VpZEF0dHIpOwogICAgIGF1dG8gaGFzQXR0cmlidXRpb25EZXN0aW5hdGlvbkF0dHIgPSBoYXNB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uZGVzdGluYXRpb25BdHRy
KTsKICAgICBpZiAoIWhhc0F0dHJpYnV0aW9uU291cmNlSURBdHRyICYmICFoYXNBdHRyaWJ1dGlv
bkRlc3RpbmF0aW9uQXR0cikKQEAgLTQ1OCwxNSArNTQwLDggQEAgc3RkOjpvcHRpb25hbDxQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4gSAogI2VuZGlmCiAgICAgYXV0byBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgU291cmNlSUQoYXR0cmlidXRpb25T
b3VyY2VJRC52YWx1ZSgpKSwgU291cmNlU2l0ZShXVEZNb3ZlKG1haW5Eb2N1bWVudFJlZ2lzdHJh
YmxlRG9tYWluKSksIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlKGRlc3RpbmF0aW9uVVJMKSwg
YnVuZGxlSUQsIFdhbGxUaW1lOjpub3coKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uRXBoZW1lcmFsOjpObyB9OwogCi0gICAgYXV0byBhdHRyaWJ1dGlvblNvdXJjZU5vbmNl
QXR0ciA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXR0cmlidXRpb25zb3VyY2Vu
b25jZUF0dHIpOwotICAgIGlmICghYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RXBoZW1lcmFsTm9uY2UgeyBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlQXR0ciB9OwotICAgICAg
ICBpZiAoIWVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgZG9jdW1lbnQo
KS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCAiYXR0cmlidXRpb25zb3VyY2Vub25jZSB3YXMgbm90IHZhbGlkLiJfcyk7Ci0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICB9Ci0gICAgICAgIHByaXZhdGVD
bGlja01lYXN1cmVtZW50LnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1vdmUoZXBoZW1lcmFs
Tm9uY2UpKTsKLSAgICB9CisgICAgaWYgKGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBhdHRyaWJ1dGlv
blNvdXJjZU5vbmNlRm9yUENNKCkpCisgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50LnNl
dEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1vdmUoKmVwaGVtZXJhbE5vbmNlKSk7CiAKICAgICBy
ZXR1cm4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9CkBAIC01MjgsNyArNjAzLDcgQEAgdm9p
ZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbgogICAgIGlmIChoYXNSZWwoUmVs
YXRpb246Ok5vT3BlbmVyKSB8fCBoYXNSZWwoUmVsYXRpb246Ok5vUmVmZXJyZXIpIHx8ICghaGFz
UmVsKFJlbGF0aW9uOjpPcGVuZXIpICYmIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5ibGFua0FuY2hv
clRhcmdldEltcGxpZXNOb09wZW5lckVuYWJsZWQoKSAmJiBpc0JsYW5rVGFyZ2V0RnJhbWVOYW1l
KGVmZmVjdGl2ZVRhcmdldCkgJiYgIWNvbXBsZXRlZFVSTC5wcm90b2NvbElzSmF2YVNjcmlwdCgp
KSkKICAgICAgICAgbmV3RnJhbWVPcGVuZXJQb2xpY3kgPSBOZXdGcmFtZU9wZW5lclBvbGljeTo6
U3VwcHJlc3M7CiAKLSAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gcGFyc2VQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgIGF1dG8gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
PSBwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbXBsZXRlZFVSTCk7CiAgICAgLy8gQSBt
YXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50IG5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgYW4gYXR0cmli
dXRpb24gcmVwb3J0IGNhbiBiZSBzZW50LgogICAgIC8vIFRodXMsIFVSTHMgc2hvdWxkIGJlIGVt
cHR5IGZvciBub3cuCiAgICAgQVNTRVJUKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB8fCAocHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKS5p
c051bGwoKSAmJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+YXR0cmlidXRpb25SZXBvcnRDbGlj
a0Rlc3RpbmF0aW9uVVJMKCkuaXNOdWxsKCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgJKHJldmlzaW9uIDI5MTM2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDEzIEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCiAj
aW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlVSTERlY29tcG9zaXRpb24u
aCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiAKIGVu
dW0gY2xhc3MgUmVmZXJyZXJQb2xpY3kgOiB1aW50OF90OwpAQCAtMTAyLDcgKzEwMiwxMSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7
CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBwYXJzZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxVUkw+IGF0dHJp
YnV0aW9uRGVzdGluYXRpb25VUkxGb3JQQ00oKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJl
Z2lzdHJhYmxlRG9tYWluPiBtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbkZvclBDTSgpIGNv
bnN0OworICAgIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJh
bE5vbmNlPiBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlRm9yUENNKCkgY29uc3Q7CisgICAgc3RkOjpv
cHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEZvclNLQWROZXR3b3JrKGNvbnN0IFVSTCYpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29u
c3QgVVJMJikgY29uc3Q7CiAKICAgICB2b2lkIGhhbmRsZUNsaWNrKEV2ZW50Jik7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cAkocmV2aXNpb24gMjkxMzY0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMg
Y29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVuCiBzdGF0aWMgY29uc3QgY2hhciBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlUGF0aFtdID0gIi8ud2VsbC1rbm93bi9w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3NpZ24tdW5saW5rYWJsZS10b2tlbi8iOwogc3RhdGlj
IGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblB1YmxpY0tleVBhdGhbXSA9
ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9nZXQtdG9rZW4tcHVibGlj
LWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXBvcnRB
dHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC9yZXBvcnQtYXR0cmlidXRpb24vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9TS0FkTmV0d29ya1VSTFByZWZpeFtdID0gImh0dHBzOi8vYXBwcy5hcHBsZS5j
b20vYXBwL2FwcGxlLXN0b3JlL2lkIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qgc2l6
ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOwog
Y29uc3QgdWludDhfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24gPSAzOwpAQCAtNDE2
LDQgKzQxNywxMiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXREZXN0aW5hCiAg
ICAgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5kZXN0aW5hdGlvblNlY3JldFRva2VuID0gV1RG
TW92ZSh0b2tlbik7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphcHBTdG9yZVVSTEFkYW1JRChjb25zdCBVUkwmIHVybCkKK3sKKyAgICBTdHJp
bmdWaWV3IHN0cmluZ1ZpZXcgeyB1cmwuc3RyaW5nKCkgfTsKKyAgICBpZiAoIXN0cmluZ1ZpZXcu
c3RhcnRzV2l0aChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU0tBZE5ldHdvcmtVUkxQcmVmaXgp
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBwYXJzZUludGVnZXI8
dWludDY0X3Q+KHN0cmluZ1ZpZXcuc3Vic3RyaW5nKHN0cmxlbihwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRvU0tBZE5ldHdvcmtVUkxQcmVmaXgpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oCShyZXZpc2lvbiAyOTEzNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDM0LDYgKzQzNCw5IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNvdXJjZVNlY3JldFRva2VuKFNvdXJj
ZVNlY3JldFRva2VuJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVzdGluYXRpb25T
ZWNyZXRUb2tlbihEZXN0aW5hdGlvblNlY3JldFRva2VuJiYpOwogCisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IGFwcFN0b3JlVVJMQWRhbUlEKGNvbnN0IFVSTCYpOworICAgIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGFkYW1JRCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRhbUlEOyB9
OworICAgIHZvaWQgc2V0QWRhbUlEKHVpbnQ2NF90IGFkYW1JRCkgeyBtX2FkYW1JRCA9IGFkYW1J
RDsgfTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ1NSw2ICs0
NTgsNyBAQCBwcml2YXRlOgogICAgIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIG1fZGVzdGlu
YXRpb25TaXRlOwogICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKICAgICBBdHRyaWJ1dGlv
bkVwaGVtZXJhbCBtX2lzRXBoZW1lcmFsOworICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG1f
YWRhbUlEOwogCiAgICAgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0
dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgQXR0cmlidXRpb25UaW1lVG9TZW5kRGF0YSBtX3Rp
bWVzVG9TZW5kOwpAQCAtNDc2LDcgKzQ4MCw4IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OmVuY29kZShFbmMKICAgICAgICAgPDwgbV9pc0VwaGVtZXJhbAogICAgICAgICA8PCBtX2F0
dHJpYnV0aW9uVHJpZ2dlckRhdGEKICAgICAgICAgPDwgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlECi0gICAgICAgIDw8IG1fdGltZXNUb1NlbmQ7CisgICAgICAgIDw8IG1fdGltZXNUb1NlbmQK
KyAgICAgICAgPDwgbV9hZGFtSUQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01
MjYsNyArNTMxLDEyIEBAIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFAK
ICAgICBkZWNvZGVyID4+IHRpbWVzVG9TZW5kOwogICAgIGlmICghdGltZXNUb1NlbmQpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgCisKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+PiBhZGFtSUQ7CisgICAgZGVjb2RlciA+PiBhZGFtSUQ7CisgICAg
aWYgKCFhZGFtSUQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7CiAgICAgICAgIFNvdXJjZUlEIHsgV1RGTW92
ZSgqc291cmNlSUQpIH0sCiAgICAgICAgIFNvdXJjZVNpdGUgeyBXVEZNb3ZlKCpzb3VyY2VSZWdp
c3RyYWJsZURvbWFpbikgfSwKQEAgLTUzOCw3ICs1NDgsOCBAQCBzdGQ6Om9wdGlvbmFsPFByaXZh
dGVDbGlja01lYXN1cmVtZW50PiBQCiAgICAgYXR0cmlidXRpb24ubV9lcGhlbWVyYWxTb3VyY2VO
b25jZSA9IFdURk1vdmUoKmVwaGVtZXJhbFNvdXJjZU5vbmNlKTsKICAgICBhdHRyaWJ1dGlvbi5t
X2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKCphdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KTsKICAgICBhdHRyaWJ1dGlvbi5tX3RpbWVzVG9TZW5kID0gV1RGTW92ZSgqdGltZXNUb1NlbmQp
OwotICAgIAorICAgIGF0dHJpYnV0aW9uLm1fYWRhbUlEID0gV1RGTW92ZSgqYWRhbUlEKTsKKwog
ICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MTM2
NCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjItMDMtMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgUENNIHRvIFNLQWROZXR3b3JrIGJyaWRnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTY5CisgICAg
ICAgIDxyZGFyOi8vODI5ODgwNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb246OmRvbmF0ZVRvU0tBZE5ldHdvcmspOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL0FwcFN0b3JlRGFlbW9uU1BJLmg6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNvY29hOjpkb25hdGVUb1NLQWROZXR3b3JrKToKKyAgICAgICAgKiBSZXNvdXJjZXMv
U2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2I6CisgICAg
ICAgICogU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIyLTAzLTE2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bV2ViR0xdIENyYXNoIGluIFdlYktpdDo6V0ND
b250ZW50QnVmZmVyOjpwbGF0Zm9ybUxheWVyV2lsbEJlRGVzdHJveWVkKCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCShyZXZpc2lvbiAyOTEz
NjQpCisrKyBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwkod29y
a2luZyBjb3B5KQpAQCAtMTMwLDYgKzEzMCwxMSBAQCBXS19VTklGT1JNX1RZUEVfSURFTlRJRklF
UlNfTERGTEFHU193YXRjCiBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19hcHBs
ZXR2b3MgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmllcnM7CiBXS19VTklGT1JNX1RZ
UEVfSURFTlRJRklFUlNfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9yID0gLWZyYW1ld29yayBVbmlm
b3JtVHlwZUlkZW50aWZpZXJzOwogCitXS19BUFBfU1RPUkVfREFFTU9OX0xERkxBR1MgPSAkKFdL
X0FQUF9TVE9SRV9EQUVNT05fTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FQUF9T
VE9SRV9EQUVNT05fTERGTEFHU19pcGhvbmVvcyA9ICQoV0tfQVBQX1NUT1JFX0RBRU1PTl9MREZM
QUdTJChXS19JT1NfMTYpKTsKK1dLX0FQUF9TVE9SRV9EQUVNT05fTERGTEFHU19pcGhvbmVzaW11
bGF0b3IgPSAkKFdLX0FQUF9TVE9SRV9EQUVNT05fTERGTEFHUyQoV0tfSU9TXzE2KSk7CitXS19B
UFBfU1RPUkVfREFFTU9OX0xERkxBR1NfSU9TX1NJTkNFXzE2ID0gLWZyYW1ld29yayBBcHBTdG9y
ZURhZW1vbjsKKwogV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyA9ICQoV0tfVVJMX0ZPUk1BVFRJ
TkdfTERGTEFHU18kKFdLX0hBVkVfVVJMX0ZPUk1BVFRJTkcpKTsKIFdLX1VSTF9GT1JNQVRUSU5H
X0xERkxBR1NfWUVTID0gLWZyYW1ld29yayBVUkxGb3JtYXR0aW5nOwogCkBAIC0xNjIsNyArMTY3
LDcgQEAgV0tfSU5TVEFMTF9DT09SRElOQVRJT05fTERGTEFHUyA9ICQoV0tfSQogV0tfSU5TVEFM
TF9DT09SRElOQVRJT05fTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgSW5zdGFsbENvb3Jk
aW5hdGlvbjsKIFdLX0lOU1RBTExfQ09PUkRJTkFUSU9OX0xERkxBR1NfaXBob25lc2ltdWxhdG9y
ID0gJChXS19JTlNUQUxMX0NPT1JESU5BVElPTl9MREZMQUdTX2lwaG9uZW9zKQogCi1GUkFNRVdP
UktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJh
bWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29y
ZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFt
ZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFt
ZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNT
SUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FV
VEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdT
KSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJ
T05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxB
R1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFM
VF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZM
QUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0Vf
TERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVS
U19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9S
VUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKSAkKFdLX0lOU1RBTExfQ09PUkRJ
TkFUSU9OX0xERkxBR1MpICQoV0tfQVZLSVRfTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJB
UllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1m
cmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJ
TyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0
TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZM
QUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdT
KSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFH
UykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVf
UFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQ
SElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykg
JChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9C
SUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAk
KFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTKSAkKFdLX1NB
RkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChX
S19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTKSAk
KFdLX0FQUF9TVE9SRV9EQUVNT05fTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdT
KSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUykg
JChXS19JTlNUQUxMX0NPT1JESU5BVElPTl9MREZMQUdTKSAkKFdLX0FWS0lUX0xERkxBR1MpOwog
CiAvLyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwgb3Bl
cmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20g
YmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFH
UyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRT
U3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rp
b25fY2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19z
dHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNf
MTNiYXNpY19pc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05T
dDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2Nh
dG9ySWNFRUVFMF9OU18xNGJhc2ljX2lvc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMTZfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVE5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRWTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRz
SWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFOF9O
U18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHJldmlzaW9uIDI5MTM2NCkKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNzMsNiArMzczLDEwIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlUHJpdmF0ZUNs
aWNrTWUKICAgICAgICAgbV9lcGhlbWVyYWxNZWFzdXJlbWVudCA9IFdURk1vdmUodW5hdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisg
ICAgaWYgKHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50LmFkYW1JRCgpKQorICAg
ICAgICByZXR1cm4gZG9uYXRlVG9TS0FkTmV0d29yayhXVEZNb3ZlKHVuYXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50KSk7CisKICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLnN0
b3JlVW5hdHRyaWJ1dGVkKFdURk1vdmUodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpLCBbXSB7IH0pOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCShyZXZpc2lvbiAyOTEzNjQpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw2ICsx
NTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHdlYlB1c2hEYWVtb25Vc2VzTW9ja0J1
bmRsZXNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgc3Rv
cmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCYmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uYXRlVG9TS0FkTmV0d29yayhXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSB7IH0KICAgICB2b2lkIGhhbmRsZVByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBTdHJpbmcmJiBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvQXBwU3RvcmVEYWVtb25TUEkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0FwcFN0b3JlRGFl
bW9uU1BJLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9BcHBTdG9yZURhZW1vblNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoU0tBRE5FVFdPUktfdjQpCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwU3RvcmVEYWVtb24vQVNE
SW5zdGFsbEF0dHJpYnV0aW9uLmg+CisjaW1wb3J0IDxBcHBTdG9yZURhZW1vbi9BU0RJbnN0YWxs
V2ViQXR0cmlidXRpb25QYXJhbXNDb25maWcuaD4KKworI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKworQGludGVyZmFjZSBBU0RJbnN0YWxsV2ViQXR0cmlidXRpb25QYXJhbXNDb25m
aWcgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+Cit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBBU0RJbnN0YWxsV2ViQXR0cmlidXRpb25Db250ZXh0KSB7CisgICAgQXR0cmlidXRpb25UeXBl
RGVmYXVsdCA9IDAsCit9OworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNOdW1iZXIg
KmFwcEFkYW1JZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5nICphZE5l
dHdvcmtSZWdpc3RyYWJsZURvbWFpbjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5T
U3RyaW5nICppbXByZXNzaW9uSWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU1N0
cmluZyAqc291cmNlV2ViUmVnaXN0cmFibGVEb21haW47CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c3Ryb25nKSBOU1N0cmluZyAqdmVyc2lvbjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24p
IEFTREluc3RhbGxXZWJBdHRyaWJ1dGlvbkNvbnRleHQgYXR0cmlidXRpb25Db250ZXh0OworQGVu
ZAorCitAaW50ZXJmYWNlIEFTREluc3RhbGxBdHRyaWJ1dGlvbiA6IE5TT2JqZWN0CisrIChpbnN0
YW5jZXR5cGUpc2hhcmVkSW5zdGFuY2U7CistICh2b2lkKWFkZEluc3RhbGxXZWJBdHRyaWJ1dGlv
blBhcmFtc1dpdGhDb25maWc6KEFTREluc3RhbGxXZWJBdHRyaWJ1dGlvblBhcmFtc0NvbmZpZyAq
KWNvbmZpZyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNFcnJvciAqZXJyb3IpKWNvbXBs
ZXRpb25IYW5kbGVyOworQGVuZAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyNlbmRpZiAvLyBIQVZFKFNLQURORVRXT1JLX3Y0KQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgJKHJl
dmlzaW9uIDI5MTM2NCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNiArMTU0LDggQEAgcHJp
dmF0ZToKICAgICBTZXNzaW9uV3JhcHBlciYgYXBwQm91bmRTZXNzaW9uKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKICNlbmRpZgogCisg
ICAgdm9pZCBkb25hdGVUb1NLQWROZXR3b3JrKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiYpIGZpbmFsOworCiAgICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4g
aG9zdE5hbWVzV2l0aEFsdGVybmF0aXZlU2VydmljZXMoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIGRlbGV0ZUFsdGVybmF0aXZlU2VydmljZXNGb3JIb3N0TmFtZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQWx0ZXJuYXRpdmVTZXJ2aWNlcyhXYWxs
VGltZSkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCShyZXZpc2lvbiAyOTEzNjQp
CisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgogCisjaW1wb3J0ICJBcHBTdG9yZURh
ZW1vblNQSS5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5o
IgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJl
bmNlLmgiCkBAIC0xODE4LDYgKzE4MTksMzUgQEAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gTmV0dwogI2VuZGlmCiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6ZG9u
YXRlVG9TS0FkTmV0d29yayhXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHBjbSkK
K3sKKyNpZiBIQVZFKFNLQURORVRXT1JLX3Y0KQorICAgIGF1dG8gY29uZmlnID0gYWRvcHROUyhb
QVNESW5zdGFsbFdlYkF0dHJpYnV0aW9uUGFyYW1zQ29uZmlnIG5ld10pOworICAgIGNvbmZpZy5n
ZXQoKS5hcHBBZGFtSWQgPSBAKCpwY20uYWRhbUlEKCkpOworICAgIGNvbmZpZy5nZXQoKS5hZE5l
dHdvcmtSZWdpc3RyYWJsZURvbWFpbiA9IHBjbS5kZXN0aW5hdGlvblNpdGUoKS5yZWdpc3RyYWJs
ZURvbWFpbi5zdHJpbmcoKTsKKyAgICBjb25maWcuZ2V0KCkuaW1wcmVzc2lvbklkID0gcGNtLmVw
aGVtZXJhbFNvdXJjZU5vbmNlKCktPm5vbmNlOworICAgIGNvbmZpZy5nZXQoKS5zb3VyY2VXZWJS
ZWdpc3RyYWJsZURvbWFpbiA9IHBjbS5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21haW4uc3Ry
aW5nKCk7CisgICAgY29uZmlnLmdldCgpLnZlcnNpb24gPSBAIjMiOworICAgIGNvbmZpZy5nZXQo
KS5hdHRyaWJ1dGlvbkNvbnRleHQgPSBBdHRyaWJ1dGlvblR5cGVEZWZhdWx0OworICAgIFtbQVNE
SW5zdGFsbEF0dHJpYnV0aW9uIHNoYXJlZEluc3RhbmNlXSBhZGRJbnN0YWxsV2ViQXR0cmlidXRp
b25QYXJhbXNXaXRoQ29uZmlnOmNvbmZpZy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwor
I2VuZGlmCisKKyAgICBpZiAoIW1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFi
bGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmdCdWlsZGVyIGRlYnVnU3RyaW5nOwor
ICAgIGRlYnVnU3RyaW5nLmFwcGVuZCgiU3VibWl0dGluZyBwb3RlbnRpYWwgaW5zdGFsbCBhdHRy
aWJ1dGlvbiBmb3IgQWRhbUlkOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQobWFrZVN0cmlu
ZygqcGNtLmFkYW1JRCgpKSk7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKCIsIGFkTmV0d29ya1Jl
Z2lzdHJhYmxlRG9tYWluOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQocGNtLmRlc3RpbmF0
aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBkZWJ1Z1N0cmluZy5h
cHBlbmQoIiwgaW1wcmVzc2lvbklkOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQocGNtLmVw
aGVtZXJhbFNvdXJjZU5vbmNlKCktPm5vbmNlKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQoIiwg
c291cmNlV2ViUmVnaXN0cmFibGVEb21haW46ICIpOworICAgIGRlYnVnU3RyaW5nLmFwcGVuZChw
Y20uc291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBkZWJ1Z1N0
cmluZy5hcHBlbmQoIiwgdmVyc2lvbjogMyIpOworICAgIG5ldHdvcmtQcm9jZXNzKCkuYnJvYWRj
YXN0Q29uc29sZU1lc3NhZ2Uoc2Vzc2lvbklEKCksIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBkZWJ1Z1N0cmluZy50b1N0cmluZygp
KTsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZWxldGVBbHRlcm5hdGl2ZVNlcnZp
Y2VzRm9ySG9zdE5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBob3N0cykKIHsKICNpZiBIQVZF
KENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQpJbmRleDogU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IJKHJldmlzaW9uIDI5MTM2NCkKKysrIFNv
dXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktp
dC5OZXR3b3JraW5nLnNiCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1LDkgQEAKICAgICAo
YWxsb3cgbWFjaC1sb29rdXAKICAgICAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubmVo
ZWxwZXIiKSkKIAorICAgIChhbGxvdyBtYWNoLWxvb2t1cAorICAgICAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5hcHBzdG9yZWQueHBjLnJlcXVlc3QiKSkKKwogICAgIDs7IDxyZGFyOi8v
ODkwMzE3MzE+CiAgICAgKGFsbG93IG1hY2gtbG9va3VwCiAgICAgICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLm5ldHdvcmtzZXJ2aWNlcHJveHkuZmV0Y2gtdG9rZW4iKSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gJKHJldmlzaW9uIDI5
MTM2NCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAko
d29ya2luZyBjb3B5KQpAQCAtNDk1LDYgKzQ5NSw5IEBAIGZ1bmN0aW9uIGlvc19mYW1pbHlfcHJv
Y2Vzc19uZXR3b3JrX2VudGkKICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUu
dGNjLm1hbmFnZXIuY2hlY2stYnktYXVkaXQtdG9rZW4gYXJyYXkKICAgICBwbGlzdGJ1ZGR5IEFk
ZCA6Y29tLmFwcGxlLnByaXZhdGUudGNjLm1hbmFnZXIuY2hlY2stYnktYXVkaXQtdG9rZW46MCBz
dHJpbmcga1RDQ1NlcnZpY2VXZWJLaXRJbnRlbGxpZ2VudFRyYWNraW5nUHJldmVudGlvbgogCisg
ICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLmFwcHN0b3JlZCBhcnJheQorICAg
IHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5hcHBzdG9yZWQ6MCBzdHJpbmcgSW5z
dGFsbEF0dHJpYnV0aW9uCisKICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUu
c2FuZGJveC5wcm9maWxlIHN0cmluZyBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcKICAgICBw
bGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnN5bXB0b21fYW5hbHl0aWNzLmNvbmZpZ3VyZSBib29s
IFlFUwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShy
ZXZpc2lvbiAyOTEzNjQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTc5LDcgKzQ5NzksNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lCiAgICAgICAgIGVsc2UgaWYgKG5hdmlnYXRpb24gJiYg
bmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSkKICAgICAgICAgICAgIHByaXZh
dGVDbGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
KTsKICAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSB7Ci0gICAgICAgICAgICBp
ZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmRlc3RpbmF0aW9uU2l0ZSgpLm1hdGNoZXMoZnJh
bWUtPnVybCgpKSkKKyAgICAgICAgICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+ZGVz
dGluYXRpb25TaXRlKCkubWF0Y2hlcyhmcmFtZS0+dXJsKCkpIHx8IHByaXZhdGVDbGlja01lYXN1
cmVtZW50LT5hZGFtSUQoKSkKICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RvcmVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCAqcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpLCAwKTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjkx
MzY0KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtNDg4MCw2ICs0ODgwLDcgQEAKIAkJNUMxMjFFODgyNDEwMjkwRDAw
NDg2RjlCIC8qIF9XS0ZyYW1lVHJlZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLRnJhbWVUcmVlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzEyMUU4QjI0MTAzMDY2MDA0ODZGOUIgLyogQVBJRnJhbWVUcmVlTm9kZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElGcmFtZVRyZWVOb2RlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxMzAyNEExRkUzNDFBNzAwMEQ5QjMxIC8qIFdlYnNp
dGVQb2xpY2llc0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0
ZVBvbGljaWVzRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzEzNTU5RTI3
RTI1MDAzMDAyMkI1MjcgLyogQXBwU3RvcmVEYWVtb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXBw
U3RvcmVEYWVtb25TUEkuaDsgcGF0aCA9IEFwcFN0b3JlRGFlbW9uU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMTQyNkUyMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMTQyNkUzMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzE0MjZFNDFDMjNGODA1MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NTdXBw
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNz
U3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0NzUsNiArMTA0
NzYsNyBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDMTM1NTlFMjdFMjUwMDMwMDIy
QjUyNyAvKiBBcHBTdG9yZURhZW1vblNQSS5oICovLAogCQkJCTJEMEM1NkZCMjI5RjFERUEwMEJE
MzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsuaCAqLywKIAkJCQkyRDBDNTZGQzIyOUYx
REVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLm1tICovLAogCQkJCUMxNzEw
Q0Y1MjRBQTYzNDUwMEQ3QzExMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIuaCAq
LywKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI5MTM2NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDIyLTAzLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IFBDTSB0byBTS0FkTmV0d29yayBicmlk
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk2
OQorICAgICAgICA8cmRhcjovLzgyOTg4MDU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9F
dmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIw
MjItMDMtMTYgIEJhc3VrZSBTdXp1a2kgIDxiYXN1a2Uuc3V6dWtpQHNvbnkuY29tPgogCiAgICAg
ICAgIFN1cHByZXNzIHdhcm5pbmdzIGZvciBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gdW5zaWdu
ZWQgbG9uZyB0byBkb3VibGUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0JKHJldmlzaW9uIDI5MTM2
NCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNTU5LDYgKzU1OSw0NiBAQCBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBEYWVtb25EZWJ1CiAgICAgY2xlYW5VcERhZW1vbih0ZW1wRGlyKTsK
IH0KIAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgU0tBZE5ldHdvcmspCit7CisgICAg
SFRUUFNlcnZlciBzZXJ2ZXIoeyB7ICIvYXBwL2FwcGxlLXN0b3JlL2lkMTIzNDU2Nzg5MCIsIHsg
ImhlbGxvIiB9IH0gfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzUHJveHkpOworCisgICAg
YXV0byBzdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldFBy
b3h5Q29uZmlndXJhdGlvbjpAeworICAgICAgICAoTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0
eUhUVFBTUHJveHlIb3N0OiBAIjEyNy4wLjAuMSIsCisgICAgICAgIChOU1N0cmluZyAqKWtDRlN0
cmVhbVByb3BlcnR5SFRUUFNQcm94eVBvcnQ6IEAoc2VydmVyLnBvcnQoKSkKKyAgICB9XTsKKwor
ICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKnZpZXdDb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlIl07CisgICAgdmlld0NvbmZpZ3VyYXRpb24ud2Vi
c2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0
V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCk7CisgICAg
YXV0byB3ZWJWaWV3ID0gd2ViVmlld1dpdGhPcGVuSW5zcGVjdG9yKHZpZXdDb25maWd1cmF0aW9u
KTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlczsKKyAgICBzZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudCh3ZWJWaWV3LmdldCgpLCBjb25zb2xlTWVzc2FnZXMpOworICAgIFt2aWV3
Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWRGb3JUZXN0aW5nOllFU107CisKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keT4iCisgICAgICAgICI8YSBocmVmPSdodHRwczov
L2FwcHMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDEyMzQ1Njc4OTAnIGlkPSdhbmNob3Jp
ZCcgYXR0cmlidXRpb25kZXN0aW5hdGlvbj0naHR0cHM6Ly9kZXN0aW5hdGlvbi8nIGF0dHJpYnV0
aW9uU291cmNlTm9uY2U9J01USXpORFUyTnpnNU1ERXlNelExTmcnPmFuY2hvcjwvYT4iCisgICAg
ICAgICI8L2JvZHk+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFt
cGxlLmNvbS8iXV07CisKKyAgICB3aGlsZSAoY29uc29sZU1lc3NhZ2VzLmlzRW1wdHkoKSkKKyAg
ICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoY29uc29sZU1l
c3NhZ2VzWzBdLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFR1cm5lZCBEZWJ1ZyBNb2Rl
IG9uLiIpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUgbmV3XSk7CisgICAgW2RlbGVnYXRlIHNldERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTpeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFs
bGVuZ2UsIHZvaWQgKF5jYWxsYmFjaykoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0
aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGNoYWxs
ZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QsIE5TVVJMQXV0aGVudGlj
YXRpb25NZXRob2RTZXJ2ZXJUcnVzdCk7CisgICAgICAgIGNhbGxiYWNrKE5TVVJMU2Vzc2lvbkF1
dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxGb3JU
cnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CisgICAgfV07Cisg
ICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKwor
ICAgIFt3ZWJWaWV3IGNsaWNrT25FbGVtZW50SUQ6QCJhbmNob3JpZCJdOworCisgICAgd2hpbGUg
KGNvbnNvbGVNZXNzYWdlcy5zaXplKCkgPCAyKQorICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgp
OworICAgIEVYUEVDVF9XS19TVFJFUShjb25zb2xlTWVzc2FnZXNbMV0sICJTdWJtaXR0aW5nIHBv
dGVudGlhbCBpbnN0YWxsIGF0dHJpYnV0aW9uIGZvciBBZGFtSWQ6IDEyMzQ1Njc4OTAsIGFkTmV0
d29ya1JlZ2lzdHJhYmxlRG9tYWluOiBkZXN0aW5hdGlvbiwgaW1wcmVzc2lvbklkOiBNVEl6TkRV
Mk56ZzVNREV5TXpRMU5nLCBzb3VyY2VXZWJSZWdpc3RyYWJsZURvbWFpbjogZXhhbXBsZS5jb20s
IHZlcnNpb246IDMiKTsKK30KKwogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTmV0d29y
a1Byb2Nlc3NEZWJ1Z01vZGUpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlIl07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455446</attachid>
            <date>2022-03-22 16:07:15 -0700</date>
            <delta_ts>2022-03-22 21:00:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237969-20220322160714.patch</filename>
            <type>text/plain</type>
            <size>38064</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzEyCndhcm5pbmc6IHVuYWJsZSB0byBhY2Nlc3MgJy9V
c2Vycy9hbGV4Y2hyaXN0ZW5zZW4vLmNvbmZpZy9naXQvYXR0cmlidXRlcyc6IFBlcm1pc3Npb24g
ZGVuaWVkCndhcm5pbmc6IHVuYWJsZSB0byBhY2Nlc3MgJy9Vc2Vycy9hbGV4Y2hyaXN0ZW5zZW4v
LmNvbmZpZy9naXQvYXR0cmlidXRlcyc6IFBlcm1pc3Npb24gZGVuaWVkCndhcm5pbmc6IHVuYWJs
ZSB0byBhY2Nlc3MgJy9Vc2Vycy9hbGV4Y2hyaXN0ZW5zZW4vLmNvbmZpZy9naXQvYXR0cmlidXRl
cyc6IFBlcm1pc3Npb24gZGVuaWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ2M2E2ZmMwZWMzZjk0YmE4NzdmMzY4NWI1OTNi
OTRhNjRiZGI1MjUuLmM0Y2E1NmU5N2Y5ZTlkYmRlMTRiZmQ2YWJkZjYzMGU2YTgyZTEzMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgUENNIHRvIFNLQWROZXR3b3Jr
IGJyaWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3OTY5CisgICAgICAgIDxyZGFyOi8vODI5ODgwNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9obiBXaWxhbmRlci4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMi0w
My0yMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIGNvbnRlbnQgZmlsdGVyaW5nIGluIHRoZSBOZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA3N2RjY2JmOTYwYWYwYTYwYzQ0OTE1MThhZjNjMmRlODgxNGM0MGQ4Li44ZGVlODBiM2ZkMmZk
ZDE4OGE5NjY0NmZmZDhhNGU4MDU4YjU2NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMjItMDMtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBJbXBsZW1lbnQgUENNIHRvIFNLQWROZXR3b3JrIGJyaWRnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTY5CisgICAgICAgIDxy
ZGFyOi8vODI5ODgwNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKwor
ICAgICAgICBXaGVuIGNsaWNraW5nIG9uIGFuIGFwcCBzdG9yZSBsaW5rIHRoYXQgaGFzIGJlZW4g
ZGVjb3JhdGVkIHdpdGggdGhlIG5lY2Vzc2FyeSBQQ00gYXR0cmlidXRlcywKKyAgICAgICAgd2Ug
Z2l2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2xpY2sgdG8gU0tBZE5ldHdvcmsgdG8gc2VuZCBh
biBhbm9ueW1vdXMgYXR0cmlidXRpb24gcmVwb3J0IGxhdGVyCisgICAgICAgIGlmIHRoZSB1c2Vy
IGJ1eXMgdGhlIGFwcCBiZWNhdXNlIG9mIHRoZSBjbGljay4gIFRoYXQgcGFydCBoYXMgbm90IGJl
ZW4gaW1wbGVtZW50ZWQgeWV0LCBzbyB0byB0ZXN0CisgICAgICAgIHdlIHNpbXBseSByZXBvcnQg
dGhlIGluZm9ybWF0aW9uIHRoYXQgd2UgYXJlIGdpdmluZyB0byBTS0FkTmV0d29yayBpbiBhbiBB
UEkgdGVzdCB3aGljaCB1c2VzIGFuIEhUVFBTCisgICAgICAgIHByb3h5IHNvIHdlIGRvbid0IGFj
dHVhbGx5IGNvbm5lY3QgdG8gYXBwcy5hcHBsZS5jb20gd2hlbiBydW5uaW5nIHRoZSB0ZXN0Lgor
CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQW5jaG9yRWxlbWVudDo6YXR0cmlidXRpb25EZXN0aW5hdGlvblVSTEZvclBDTSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6bWFpbkRvY3VtZW50UmVn
aXN0cmFibGVEb21haW5Gb3JQQ00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OmF0dHJpYnV0aW9uU291cmNlTm9uY2VGb3JQQ00gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRG
b3JTS0FkTmV0d29yayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVu
dDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2spOgorICAgICAgICAqIGh0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmFwcFN0b3Jl
VVJMQWRhbUlEKToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjphZGFtSUQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEFkYW1JRCk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUpOgor
CiAyMDIyLTAzLTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgog
CiAgICAgICAgIFtXaW5DYWlyb10gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCg3OCk6IGVycm9y
IEMyMDI3OiB1c2Ugb2YgdW5kZWZpbmVkIHR5cGUgJ1dlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
JwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAxYjIxNDA0OTdlZjU5NjcwMGI2MDA1MWY0MDkyZGRkMzdkMGEyOWIzLi5h
MTM2ZjU1NWUzYzhmOTViYmUzNzkxNTlhZWI3ZWIzYTc4NDc5ZmI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDIyLTAzLTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IFBDTSB0byBTS0FkTmV0d29yayBicmlkZ2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk2OQor
ICAgICAgICA8cmRhcjovLzgyOTg4MDU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2ls
YW5kZXIuCisKKyAgICAgICAgVGhlIFdlYktpdCBwYXJ0cyBvZiB0aGlzIGp1c3QgaW50cm9kdWNl
IGEgbmV3IGluZm9ybWF0aW9uIGZsb3cgdG8gU0tBZE5ldHdvcmsgdG8gc2VuZCB0aGUgYXBwIHB1
cmNoYXNlIGF0dHJpYnV0aW9uCisgICAgICAgIGtpbmQgb2YgbGlrZSBXZWJLaXQgc2VuZHMgYSBQ
Q00gYXR0cmlidXRpb24gcmVwb3J0IDI0LTQ4IGhvdXJzIGFmdGVyIGEgbm9uLWFwcC1wdXJjaGFz
ZSBjbGljayB3aXRoIGF0dHJpYnV0aW9uLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnN0b3JlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpkb25hdGVUb1NLQWROZXR3b3JrKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9BcHBTdG9yZURhZW1vblNQSS5oOiBBZGRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6ZG9uYXRlVG9TS0FkTmV0d29yayk6
CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktp
dC5OZXR3b3JraW5nLnNiOgorICAgICAgICAqIFNjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMu
c2g6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMi0wMy0yMiAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmgoNzgpOiBlcnJvciBDMjAyNzogdXNlIG9mIHVuZGVmaW5lZCB0
eXBlICdXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXgg
MTZkN2FjYTRkODJhYmYyZjgzNmM0YmJhMzZiZjc3MDQ2NDI3NmYyMy4uMWJiMjUyY2I1ZTVlNzc2
MGRmNDhhM2QzZjMzYjc4YTcwYWQxOGExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEyMjMs
MyArMTIyMyw3IEBACiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDE2MDAwMCkgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9f
V0FUQ0hfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gOTAwMDApCiAjZGVmaW5lIEhBVkVfU0FG
RV9CUk9XU0lOR19SRVNVTFRfREVUQUlMUyAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTYwMDAwKQorI2RlZmluZSBI
QVZFX1NLQURORVRXT1JLX3Y0IDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcAppbmRleCAxNjkxZTJlYjc2ZjhhYjBmOGNhZmZjMTk2NDY1YTNmZTljMzlh
YzFlLi4xMDc2ZjE4YmQ0OTk2NmI0MWRjNGM5NTEyMzEyZGM5NWI2NzQzYmUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMzk1LDcgKzM5NSw4NiBAQCBi
b29sIEhUTUxBbmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rKCkKIH0KICNlbmRpZgog
Ci1zdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVu
dDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPFVS
TD4gSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0aW9uRGVzdGluYXRpb25VUkxGb3JQQ00oKSBj
b25zdAoreworICAgIFVSTCBkZXN0aW5hdGlvblVSTCB7IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oYXR0cmlidXRpb25kZXN0aW5hdGlvbkF0dHIpIH07CisgICAgaWYgKGRlc3RpbmF0
aW9uVVJMLmlzVmFsaWQoKSAmJiBkZXN0aW5hdGlvblVSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5
KCkpCisgICAgICAgIHJldHVybiBkZXN0aW5hdGlvblVSTDsKKworICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgImF0dHJpYnV0aW9uZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZh
bGlkIEhUVFAtZmFtaWx5IFVSTC4iX3MpOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisK
K3N0ZDo6b3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IEhUTUxBbmNob3JFbGVtZW50OjptYWlu
RG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbkZvclBDTSgpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8g
ZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbWFpbkRvY3Vt
ZW50ID0gZnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvIG1haW5Eb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0cmFibGVEb21haW4geyBt
YWluRG9jdW1lbnQtPnVybCgpIH07ICFtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbi5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1haW5Eb2N1bWVudFJlZ2lzdHJhYmxlRG9t
YWluOworICAgICAgICB9CisgICAgfQorCisgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ291bGQgbm90
IGZpbmQgYSBtYWluIGRvY3VtZW50IHRvIHVzZSBhcyBzb3VyY2Ugc2l0ZSBmb3IgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudC4iX3MpOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0
ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbE5vbmNlPiBIVE1M
QW5jaG9yRWxlbWVudDo6YXR0cmlidXRpb25Tb3VyY2VOb25jZUZvclBDTSgpIGNvbnN0Cit7Cisg
ICAgYXV0byBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlQXR0ciA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oYXR0cmlidXRpb25zb3VyY2Vub25jZUF0dHIpOworICAgIGlmIChhdHRyaWJ1
dGlvblNvdXJjZU5vbmNlQXR0ci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkVwaGVtZXJhbE5vbmNlIHsgYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIgfTsKKyAgICBpZiAo
IWVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSkgeworICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJh
dHRyaWJ1dGlvbnNvdXJjZW5vbmNlIHdhcyBub3QgdmFsaWQuIl9zKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICByZXR1cm4gZXBoZW1lcmFsTm9uY2U7Cit9CisK
K3N0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50
OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yU0tBZE5ldHdvcmsoY29uc3QgVVJMJiBo
cmVmVVJMKSBjb25zdAoreworICAgIHVzaW5nIFNvdXJjZUlEID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZUlEOworICAgIHVzaW5nIFNvdXJjZVNpdGUgPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlU2l0ZTsKKyAgICB1c2luZyBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0
ZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZTsK
KworICAgIGF1dG8gYWRhbUlEID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmFwcFN0b3JlVVJM
QWRhbUlEKGhyZWZVUkwpOworICAgIGlmICghYWRhbUlEKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgYXV0byBhdHRyaWJ1dGlvbkRlc3RpbmF0aW9uRG9tYWluID0gYXR0cmli
dXRpb25EZXN0aW5hdGlvblVSTEZvclBDTSgpOworICAgIGlmICghYXR0cmlidXRpb25EZXN0aW5h
dGlvbkRvbWFpbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gbWFp
bkRvY3VtZW50UmVnaXN0cmFibGVEb21haW4gPSBtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFp
bkZvclBDTSgpOworICAgIGlmICghbWFpbkRvY3VtZW50UmVnaXN0cmFibGVEb21haW4pCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIGF0dHJpYnV0aW9uU291cmNlTm9u
Y2UgPSBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlRm9yUENNKCk7CisgICAgaWYgKCFhdHRyaWJ1dGlv
blNvdXJjZU5vbmNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgYXV0byBidW5kbGVJRCA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cigpOworI2Vsc2UKKyAgICBTdHJpbmcgYnVuZGxlSUQ7CisjZW5kaWYKKworICAgIGF1dG8gcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CisgICAgICAg
IFNvdXJjZUlEKDApLAorICAgICAgICBTb3VyY2VTaXRlKFdURk1vdmUoKm1haW5Eb2N1bWVudFJl
Z2lzdHJhYmxlRG9tYWluKSksCisgICAgICAgIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlKCph
dHRyaWJ1dGlvbkRlc3RpbmF0aW9uRG9tYWluKSwKKyAgICAgICAgYnVuZGxlSUQsCisgICAgICAg
IFdhbGxUaW1lOjpub3coKSwKKyAgICAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uRXBoZW1lcmFsOjpObworICAgIH07CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZSgqYXR0cmlidXRpb25Tb3VyY2VOb25jZSkp
OworICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50LnNldEFkYW1JRCgqYWRhbUlEKTsKKyAgICBy
ZXR1cm4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7Cit9CisKK3N0ZDo6b3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01l
YXN1cmVtZW50KGNvbnN0IFVSTCYgaHJlZlVSTCkgY29uc3QKIHsKICAgICB1c2luZyBTb3VyY2VJ
RCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDsKICAgICB1c2luZyBTb3VyY2VT
aXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU7CkBAIC00MDMsMTEgKzQ4
MiwxNCBAQCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5jaG9y
RWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdQogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCk7Ci0gICAgaWYgKCFmcmFtZSB8fCFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBoZW1l
cmFsKCkKKyAgICBpZiAoIWZyYW1lIHx8ICFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBo
ZW1lcmFsKCkKICAgICAgICAgfHwgIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVuYWJsZWQoKQogICAgICAgICB8fCAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisg
ICAgaWYgKGF1dG8gcGNtID0gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclNLQWROZXR3
b3JrKGhyZWZVUkwpKQorICAgICAgICByZXR1cm4gcGNtOworCiAgICAgYXV0byBoYXNBdHRyaWJ1
dGlvblNvdXJjZUlEQXR0ciA9IGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXR0
cmlidXRpb25zb3VyY2VpZEF0dHIpOwogICAgIGF1dG8gaGFzQXR0cmlidXRpb25EZXN0aW5hdGlv
bkF0dHIgPSBoYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uZGVz
dGluYXRpb25BdHRyKTsKICAgICBpZiAoIWhhc0F0dHJpYnV0aW9uU291cmNlSURBdHRyICYmICFo
YXNBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uQXR0cikKQEAgLTQ1OCwxNSArNTQwLDggQEAgc3RkOjpv
cHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNl
UHJpdmF0ZUNsaWNrTWVhc3UKICNlbmRpZgogICAgIGF1dG8gcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IFNvdXJjZUlEKGF0dHJpYnV0aW9uU291cmNl
SUQudmFsdWUoKSksIFNvdXJjZVNpdGUoV1RGTW92ZShtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURv
bWFpbikpLCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZShkZXN0aW5hdGlvblVSTCksIGJ1bmRs
ZUlELCBXYWxsVGltZTo6bm93KCksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
bkVwaGVtZXJhbDo6Tm8gfTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIg
PSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uc291cmNlbm9uY2VB
dHRyKTsKLSAgICBpZiAoIWF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyLmlzRW1wdHkoKSkgewot
ICAgICAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVw
aGVtZXJhbE5vbmNlIHsgYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIgfTsKLSAgICAgICAgaWYg
KCFlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgImF0dHJpYnV0aW9uc291cmNlbm9uY2Ugd2FzIG5vdCB2YWxpZC4iX3MpOwotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgfQotICAgICAgICBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNl
KSk7Ci0gICAgfQorICAgIGlmIChhdXRvIGVwaGVtZXJhbE5vbmNlID0gYXR0cmlidXRpb25Tb3Vy
Y2VOb25jZUZvclBDTSgpKQorICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5zZXRFcGhl
bWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKCplcGhlbWVyYWxOb25jZSkpOwogCiAgICAgcmV0dXJu
IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogfQpAQCAtNTI4LDcgKzYwMyw3IEBAIHZvaWQgSFRN
TEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBpZiAoaGFzUmVs
KFJlbGF0aW9uOjpOb09wZW5lcikgfHwgaGFzUmVsKFJlbGF0aW9uOjpOb1JlZmVycmVyKSB8fCAo
IWhhc1JlbChSZWxhdGlvbjo6T3BlbmVyKSAmJiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYmxhbmtB
bmNob3JUYXJnZXRJbXBsaWVzTm9PcGVuZXJFbmFibGVkKCkgJiYgaXNCbGFua1RhcmdldEZyYW1l
TmFtZShlZmZlY3RpdmVUYXJnZXQpICYmICFjb21wbGV0ZWRVUkwucHJvdG9jb2xJc0phdmFTY3Jp
cHQoKSkpCiAgICAgICAgIG5ld0ZyYW1lT3BlbmVyUG9saWN5ID0gTmV3RnJhbWVPcGVuZXJQb2xp
Y3k6OlN1cHByZXNzOwogCi0gICAgYXV0byBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHBhcnNl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb21wbGV0ZWRVUkwpOwogICAgIC8v
IEEgbWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudCBuZWVkcyB0byBoYXBwZW4gYmVmb3JlIGFuIGF0
dHJpYnV0aW9uIHJlcG9ydCBjYW4gYmUgc2VudC4KICAgICAvLyBUaHVzLCBVUkxzIHNob3VsZCBi
ZSBlbXB0eSBmb3Igbm93LgogICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgfHwg
KHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5hdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJM
KCkuaXNOdWxsKCkgJiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0
Q2xpY2tEZXN0aW5hdGlvblVSTCgpLmlzTnVsbCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmgKaW5kZXggMTU4MDdkNzBkOTM3OTU0MGNhMzYwZmIyYjlmMDg3Mjg1NjU2
Zjk1Zi4uYWRkNjE4MzA4NmE0MTZiZTczZGJmZDc1YjkyYTJkY2FhYTNkZDQ2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtMjYsMTMgKzI2LDEzIEBACiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCiAjaW5jbHVk
ZSAiU2hhcmVkU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlVSTERlY29tcG9zaXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiAKIGVudW0gY2xh
c3MgUmVmZXJyZXJQb2xpY3kgOiB1aW50OF90OwpAQCAtMTAyLDcgKzEwMiwxMSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKLSAg
ICBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBwYXJzZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxVUkw+IGF0dHJpYnV0aW9u
RGVzdGluYXRpb25VUkxGb3JQQ00oKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZ2lzdHJh
YmxlRG9tYWluPiBtYWluRG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbkZvclBDTSgpIGNvbnN0Owor
ICAgIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbE5vbmNl
PiBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlRm9yUENNKCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25h
bDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZv
clNLQWROZXR3b3JrKGNvbnN0IFVSTCYpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgVVJM
JikgY29uc3Q7CiAKICAgICB2b2lkIGhhbmRsZUNsaWNrKEV2ZW50Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IGIzYTlm
ODBhZjYwMjgzYjkyNGQ0NzU5ODZlMGY0ZWZhNmNkMDE4Y2EuLjczZTY5NjEzYTBkMjFjNjBkNGUw
YjFiYjkwZmVhZWM3NWMwMjUwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgY29uc3Qg
Y2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRyaWdnZXJBdHRyaWJ1dGlvblBhdGhbXSA9ICIv
LndlbGwta25vdwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tl
blNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKIHN0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvZ2V0LXRva2VuLXB1YmxpYy1rZXkvIjsKIHN0YXRpYyBjb25zdCBj
aGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwb3J0QXR0cmlidXRpb25QYXRoW10gPSAiLy53
ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvcmVwb3J0LWF0dHJpYnV0aW9uLyI7
CitzdGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU0tBZE5ldHdvcmtV
UkxQcmVmaXhbXSA9ICJodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZCI7
CiBjb25zdCBzaXplX3QgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhUGF0aFNlZ21lbnRTaXplID0gMjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFByaW9yaXR5UGF0aFNlZ21lbnRTaXplID0gMjsKIGNvbnN0IHVpbnQ4X3QgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRWZXJzaW9uID0gMzsKQEAgLTQxNiw0ICs0MTcsMTIgQEAgdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0RGVzdGluYXRpb25TZWNyZXRUb2tlbihEZXN0aW5hdGlv
blNlY3JldFRva2VuJiYKICAgICBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRlc3RpbmF0aW9u
U2VjcmV0VG9rZW4gPSBXVEZNb3ZlKHRva2VuKTsKIH0KIAorc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmFwcFN0b3JlVVJMQWRhbUlEKGNvbnN0IFVSTCYg
dXJsKQoreworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHVybC5zdHJpbmcoKSB9OworICAg
IGlmICghc3RyaW5nVmlldy5zdGFydHNXaXRoKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TS0Fk
TmV0d29ya1VSTFByZWZpeCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0
dXJuIHBhcnNlSW50ZWdlcjx1aW50NjRfdD4oc3RyaW5nVmlldy5zdWJzdHJpbmcoc3RybGVuKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9TS0FkTmV0d29ya1VSTFByZWZpeCkpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaAppbmRleCAxZTc4MWE5ZGVkYTkwNmFmMzFlZDBiMjA5YjU1OWE0YzFk
NGEyNTdjLi43MTkzOWY0YTI3NmE2OTc5Mzc3YmRkYTRhOWViOGMzM2ZkMDQ3ZjU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtNDM0
LDYgKzQzNCwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTb3VyY2VT
ZWNyZXRUb2tlbihTb3VyY2VTZWNyZXRUb2tlbiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldERlc3RpbmF0aW9uU2VjcmV0VG9rZW4oRGVzdGluYXRpb25TZWNyZXRUb2tlbiYmKTsKIAor
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBhcHBTdG9yZVVSTEFkYW1JRChjb25z
dCBVUkwmKTsKKyAgICBib29sIGlzU0tBZE5ldHdvcmtBdHRyaWJ1dGlvbigpIGNvbnN0IHsgcmV0
dXJuICEhbV9hZGFtSUQ7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBhZGFtSUQoKSBj
b25zdCB7IHJldHVybiBtX2FkYW1JRDsgfTsKKyAgICB2b2lkIHNldEFkYW1JRCh1aW50NjRfdCBh
ZGFtSUQpIHsgbV9hZGFtSUQgPSBhZGFtSUQ7IH07CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29k
ZShEZWNvZGVyJik7CkBAIC00NTUsNiArNDU5LDcgQEAgcHJpdmF0ZToKICAgICBBdHRyaWJ1dGlv
bkRlc3RpbmF0aW9uU2l0ZSBtX2Rlc3RpbmF0aW9uU2l0ZTsKICAgICBXYWxsVGltZSBtX3RpbWVP
ZkFkQ2xpY2s7CiAgICAgQXR0cmlidXRpb25FcGhlbWVyYWwgbV9pc0VwaGVtZXJhbDsKKyAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtX2FkYW1JRDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8QXR0
cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIEF0dHJp
YnV0aW9uVGltZVRvU2VuZERhdGEgbV90aW1lc1RvU2VuZDsKQEAgLTQ3Niw3ICs0ODEsOCBAQCB2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICAgICAgPDwgbV9pc0VwaGVtZXJhbAogICAgICAgICA8PCBtX2F0dHJpYnV0aW9uVHJp
Z2dlckRhdGEKICAgICAgICAgPDwgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlECi0gICAgICAg
IDw8IG1fdGltZXNUb1NlbmQ7CisgICAgICAgIDw8IG1fdGltZXNUb1NlbmQKKyAgICAgICAgPDwg
bV9hZGFtSUQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01MjYsNyArNTMyLDEy
IEBAIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYKICAgICBkZWNvZGVyID4+IHRpbWVzVG9TZW5kOwog
ICAgIGlmICghdGltZXNUb1NlbmQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
CisKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+PiBhZGFtSUQ7Cisg
ICAgZGVjb2RlciA+PiBhZGFtSUQ7CisgICAgaWYgKCFhZGFtSUQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
CiAgICAgICAgIFNvdXJjZUlEIHsgV1RGTW92ZSgqc291cmNlSUQpIH0sCiAgICAgICAgIFNvdXJj
ZVNpdGUgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3RyYWJsZURvbWFpbikgfSwKQEAgLTUzOCw3ICs1
NDksOCBAQCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXImCiAgICAgYXR0cmlidXRpb24ubV9lcGhlbWVy
YWxTb3VyY2VOb25jZSA9IFdURk1vdmUoKmVwaGVtZXJhbFNvdXJjZU5vbmNlKTsKICAgICBhdHRy
aWJ1dGlvbi5tX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKCphdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKTsKICAgICBhdHRyaWJ1dGlvbi5tX3RpbWVzVG9TZW5kID0gV1RGTW92ZSgqdGlt
ZXNUb1NlbmQpOwotICAgIAorICAgIGF0dHJpYnV0aW9uLm1fYWRhbUlEID0gV1RGTW92ZSgqYWRh
bUlEKTsKKwogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCA0YTYwMzYwNWQ5NThjZTM4YzA1ODYw
ZjQ4NzM1YzlhMzY1YjYyYzk1Li4yOWJmNzU5NTU2MThmNzMzYjliNzIzMTY1ZDA2ZTZkMzg5YzEz
ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpA
QCAtMTMwLDYgKzEzMCwxMSBAQCBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU193
YXRjaHNpbXVsYXRvciA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudAogV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1NfYXBwbGV0dm9zID0gLWZyYW1ld29yayBVbmlmb3JtVHlw
ZUlkZW50aWZpZXJzOwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfYXBwbGV0
dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKIAorV0tfQVBQ
X1NUT1JFX0RBRU1PTl9MREZMQUdTID0gJChXS19BUFBfU1RPUkVfREFFTU9OX0xERkxBR1NfJChX
S19QTEFURk9STV9OQU1FKSk7CitXS19BUFBfU1RPUkVfREFFTU9OX0xERkxBR1NfaXBob25lb3Mg
PSAkKFdLX0FQUF9TVE9SRV9EQUVNT05fTERGTEFHUyQoV0tfSU9TXzE2KSk7CitXS19BUFBfU1RP
UkVfREFFTU9OX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19BUFBfU1RPUkVfREFFTU9O
X0xERkxBR1MkKFdLX0lPU18xNikpOworV0tfQVBQX1NUT1JFX0RBRU1PTl9MREZMQUdTX0lPU19T
SU5DRV8xNiA9IC1mcmFtZXdvcmsgQXBwU3RvcmVEYWVtb247CisKIFdLX1VSTF9GT1JNQVRUSU5H
X0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JN
QVRUSU5HKSk7CiBXS19VUkxfRk9STUFUVElOR19MREZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJM
Rm9ybWF0dGluZzsKIApAQCAtMTU2LDcgKzE2MSw3IEBAIFdLX0lOU1RBTExfQ09PUkRJTkFUSU9O
X0xERkxBR1MgPSAkKFdLX0lOU1RBTExfQ09PUkRJTkFUSU9OX0xERkxBR1NfJChXS19QTEFURk9S
CiBXS19JTlNUQUxMX0NPT1JESU5BVElPTl9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBJ
bnN0YWxsQ29vcmRpbmF0aW9uOwogV0tfSU5TVEFMTF9DT09SRElOQVRJT05fTERGTEFHU19pcGhv
bmVzaW11bGF0b3IgPSAkKFdLX0lOU1RBTExfQ09PUkRJTkFUSU9OX0xERkxBR1NfaXBob25lb3Mp
CiAKLUZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZO
ZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZy
YW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5k
YXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwg
JChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFD
S0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxB
R1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRB
Q1RTX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVU
V09SS0VYVEVOU0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBF
X1RPT0xTX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZ
X0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBF
X0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19X
RUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpICQoV0tfSU5T
VEFMTF9DT09SRElOQVRJT05fTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFH
UyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJh
bWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
Q29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3
b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1s
bmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdL
X0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JV
Tk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19D
QVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElP
Tl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykgJChXS19MSUJT
QU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVf
U0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJ
VF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJ
TkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9M
REZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTKSAkKFdLX1VSTF9G
T1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUykgJChXS19DT09S
RElOQVRPUl9MREZMQUdTKSAkKFdLX0lOU1RBTExfQ09PUkRJTkFUSU9OX0xERkxBR1MpICQoV0tf
QVBQX1NUT1JFX0RBRU1PTl9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGli
cmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciBy
ZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9s
cy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4
Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRz
SWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVhbUljUzJfRUUgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05T
XzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTRiYXNpY19pb3N0cmVh
bUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19z
dHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTE2X05T
XzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFRO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExNWJhc2lj
X3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXgg
ZTgwZTI2MWZiMDIyZWJlNTM2YzgwOTlhNDQ5MGYxMzQ4OWI0MjNjMC4uNmVjODI4ODcyMzNhYTIy
MGU5MjZkZTdiN2FjMmYwNGQ5Mjk5ZTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM3Myw2ICszNzMsMTAgQEAgdm9pZCBOZXR3
b3JrU2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWUKICAgICAgICAgbV9lcGhlbWVyYWxNZWFzdXJlbWVudCA9IFdURk1vdmUo
dW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQorCisgICAgaWYgKHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50LmlzU0tB
ZE5ldHdvcmtBdHRyaWJ1dGlvbigpKQorICAgICAgICByZXR1cm4gZG9uYXRlVG9TS0FkTmV0d29y
ayhXVEZNb3ZlKHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CisKICAgICBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLnN0b3JlVW5hdHRyaWJ1dGVkKFdURk1vdmUodW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBbXSB7IH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZmZmODdlODRlMDY2
ODkzMGU2MTFiYzM1YzI0Zjc4ZjMyMjU0ODdmMC4uZmFhYWNkODYwOGRmNTFlOTYwZWFiNDgxZTI3
NTQ5ZDBmMTMyM2E4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaApAQCAtMTUwLDYgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
d2ViUHVzaERhZW1vblVzZXNNb2NrQnVuZGxlc0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdm9pZCBzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOworICAgIHZpcnR1YWwgdm9pZCBkb25hdGVUb1NL
QWROZXR3b3JrKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpIHsgfQogICAgIHZv
aWQgaGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYg
cmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVl
c3QsIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYp
OwogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9BcHBTdG9yZURhZW1vblNQSS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9BcHBTdG9yZURhZW1vblNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNjY1ZTRlZGI3MmQ0YjRjZDZl
OWNmZjI0NGQ5NzUwNGY0Yjc4NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL0FwcFN0b3JlRGFlbW9uU1BJLmgKQEAgLTAsMCArMSw1NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShTS0FETkVUV09SS192NCkKKyNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBTdG9yZURhZW1vbi9BU0RJ
bnN0YWxsQXR0cmlidXRpb24uaD4KKyNpbXBvcnQgPEFwcFN0b3JlRGFlbW9uL0FTREluc3RhbGxX
ZWJBdHRyaWJ1dGlvblBhcmFtc0NvbmZpZy5oPgorCisjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorCitAaW50ZXJmYWNlIEFTREluc3RhbGxXZWJBdHRyaWJ1dGlvblBhcmFtc0NvbmZp
ZyA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IEFTREluc3RhbGxXZWJBdHRyaWJ1dGlvbkNvbnRleHQpIHsKKyAgICBBdHRyaWJ1dGlvblR5cGVE
ZWZhdWx0ID0gMCwKK307CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU051bWJlciAq
YXBwQWRhbUlkOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNTdHJpbmcgKmFkTmV0
d29ya1JlZ2lzdHJhYmxlRG9tYWluOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNT
dHJpbmcgKmltcHJlc3Npb25JZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3Ry
aW5nICpzb3VyY2VXZWJSZWdpc3RyYWJsZURvbWFpbjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIE5TU3RyaW5nICp2ZXJzaW9uOworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikg
QVNESW5zdGFsbFdlYkF0dHJpYnV0aW9uQ29udGV4dCBhdHRyaWJ1dGlvbkNvbnRleHQ7CitAZW5k
CisKK0BpbnRlcmZhY2UgQVNESW5zdGFsbEF0dHJpYnV0aW9uIDogTlNPYmplY3QKKysgKGluc3Rh
bmNldHlwZSlzaGFyZWRJbnN0YW5jZTsKKy0gKHZvaWQpYWRkSW5zdGFsbFdlYkF0dHJpYnV0aW9u
UGFyYW1zV2l0aENvbmZpZzooQVNESW5zdGFsbFdlYkF0dHJpYnV0aW9uUGFyYW1zQ29uZmlnICop
Y29uZmlnIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0Vycm9yICplcnJvcikpY29tcGxl
dGlvbkhhbmRsZXI7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2VuZGlmIC8vIEhBVkUoU0tBRE5FVFdPUktfdjQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDg3OWIz
Y2Q5YjAxY2JjZjZlNzVhNjc1OTVkYTljOTA5YjdkZjBiYmYuLjRmZGM5MWYzMzRjOWRmMjI4NTQ0
NjZlZjFkZjAxODgwNjFiYWQ3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC0xNTQsNiArMTU0LDgg
QEAgcHJpdmF0ZToKICAgICBTZXNzaW9uV3JhcHBlciYgYXBwQm91bmRTZXNzaW9uKFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKICNlbmRp
ZgogCisgICAgdm9pZCBkb25hdGVUb1NLQWROZXR3b3JrKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYpIGZpbmFsOworCiAgICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gaG9zdE5hbWVzV2l0aEFsdGVybmF0aXZlU2VydmljZXMoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIGRlbGV0ZUFsdGVybmF0aXZlU2VydmljZXNGb3JIb3N0TmFtZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQWx0ZXJuYXRpdmVTZXJ2aWNl
cyhXYWxsVGltZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMTY0YTJmMmI5MWFh
NmMyNWQxNTJiZTk4YzZiZWRkYjc4NGM3MTMyYS4uM2FiNGE3MDUxYTVhZmUzNjhmOWRkNTBhODlm
OGFkNGQxMTdmYzM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCiAKKyNpbXBv
cnQgIkFwcFN0b3JlRGFlbW9uU1BJLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbXBv
cnQgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTE4MjksNiArMTgzMCwzNSBAQCBWZWN0b3I8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpob3N0TmFtZXNXaXRo
QWx0ZXJuYXRpdgogI2VuZGlmCiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6ZG9uYXRl
VG9TS0FkTmV0d29yayhXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHBjbSkKK3sK
KyNpZiBIQVZFKFNLQURORVRXT1JLX3Y0KQorICAgIGF1dG8gY29uZmlnID0gYWRvcHROUyhbQVNE
SW5zdGFsbFdlYkF0dHJpYnV0aW9uUGFyYW1zQ29uZmlnIG5ld10pOworICAgIGNvbmZpZy5nZXQo
KS5hcHBBZGFtSWQgPSBAKCpwY20uYWRhbUlEKCkpOworICAgIGNvbmZpZy5nZXQoKS5hZE5ldHdv
cmtSZWdpc3RyYWJsZURvbWFpbiA9IHBjbS5kZXN0aW5hdGlvblNpdGUoKS5yZWdpc3RyYWJsZURv
bWFpbi5zdHJpbmcoKTsKKyAgICBjb25maWcuZ2V0KCkuaW1wcmVzc2lvbklkID0gcGNtLmVwaGVt
ZXJhbFNvdXJjZU5vbmNlKCktPm5vbmNlOworICAgIGNvbmZpZy5nZXQoKS5zb3VyY2VXZWJSZWdp
c3RyYWJsZURvbWFpbiA9IHBjbS5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21haW4uc3RyaW5n
KCk7CisgICAgY29uZmlnLmdldCgpLnZlcnNpb24gPSBAIjMiOworICAgIGNvbmZpZy5nZXQoKS5h
dHRyaWJ1dGlvbkNvbnRleHQgPSBBdHRyaWJ1dGlvblR5cGVEZWZhdWx0OworICAgIFtbQVNESW5z
dGFsbEF0dHJpYnV0aW9uIHNoYXJlZEluc3RhbmNlXSBhZGRJbnN0YWxsV2ViQXR0cmlidXRpb25Q
YXJhbXNXaXRoQ29uZmlnOmNvbmZpZy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworI2Vu
ZGlmCisKKyAgICBpZiAoIW1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmdCdWlsZGVyIGRlYnVnU3RyaW5nOworICAg
IGRlYnVnU3RyaW5nLmFwcGVuZCgiU3VibWl0dGluZyBwb3RlbnRpYWwgaW5zdGFsbCBhdHRyaWJ1
dGlvbiBmb3IgQWRhbUlkOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQobWFrZVN0cmluZygq
cGNtLmFkYW1JRCgpKSk7CisgICAgZGVidWdTdHJpbmcuYXBwZW5kKCIsIGFkTmV0d29ya1JlZ2lz
dHJhYmxlRG9tYWluOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQocGNtLmRlc3RpbmF0aW9u
U2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBl
bmQoIiwgaW1wcmVzc2lvbklkOiAiKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQocGNtLmVwaGVt
ZXJhbFNvdXJjZU5vbmNlKCktPm5vbmNlKTsKKyAgICBkZWJ1Z1N0cmluZy5hcHBlbmQoIiwgc291
cmNlV2ViUmVnaXN0cmFibGVEb21haW46ICIpOworICAgIGRlYnVnU3RyaW5nLmFwcGVuZChwY20u
c291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBkZWJ1Z1N0cmlu
Zy5hcHBlbmQoIiwgdmVyc2lvbjogMyIpOworICAgIG5ldHdvcmtQcm9jZXNzKCkuYnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2Uoc2Vzc2lvbklEKCksIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBkZWJ1Z1N0cmluZy50b1N0cmluZygpKTsK
K30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZWxldGVBbHRlcm5hdGl2ZVNlcnZpY2Vz
Rm9ySG9zdE5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBob3N0cykKIHsKICNpZiBIQVZFKENG
TkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
c2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya2luZy5zYgppbmRleCBkNWNiZmZhNGI0ZjY4MTUzNWY0ZGRlZDYxMjVj
MzUwYTVkN2E2OWNhLi4zYWVkMmY2MWQ1NDBhY2MyMjk0NGQ5NTlhYWVlMDllYzVkOWYxZDUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpAQCAt
MjE1LDYgKzIxNSw5IEBACiAgICAgKGFsbG93IG1hY2gtbG9va3VwCiAgICAgICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLm5laGVscGVyIikpCiAKKyAgICAoYWxsb3cgbWFjaC1sb29rdXAK
KyAgICAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXBwc3RvcmVkLnhwYy5yZXF1ZXN0
IikpCisKICAgICA7OyA8cmRhcjovLzg5MDMxNzMxPgogICAgIChhbGxvdyBtYWNoLWxvb2t1cAog
ICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5uZXR3b3Jrc2VydmljZXByb3h5LmZldGNo
LXRva2VuIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRp
dGxlbWVudHMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMu
c2gKaW5kZXggMTE5NDFlYTc3OGM0MDIzZjFlODczYzM3ZjRmM2U3NGQ0MjEwYWEzOS4uYTkwZjE5
ZmEzOTdmMmVjZDdmNzcxNWEwMTU3NTIwNmUyMjVkYzMzMSAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaApAQCAtNDk1LDYgKzQ5NSw5IEBAIGZ1bmN0
aW9uIGlvc19mYW1pbHlfcHJvY2Vzc19uZXR3b3JrX2VudGl0bGVtZW50cygpCiAgICAgcGxpc3Ri
dWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnRjYy5tYW5hZ2VyLmNoZWNrLWJ5LWF1ZGl0LXRv
a2VuIGFycmF5CiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnRjYy5tYW5h
Z2VyLmNoZWNrLWJ5LWF1ZGl0LXRva2VuOjAgc3RyaW5nIGtUQ0NTZXJ2aWNlV2ViS2l0SW50ZWxs
aWdlbnRUcmFja2luZ1ByZXZlbnRpb24KIAorICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUu
cHJpdmF0ZS5hcHBzdG9yZWQgYXJyYXkKKyAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnBy
aXZhdGUuYXBwc3RvcmVkOjAgc3RyaW5nIEluc3RhbGxBdHRyaWJ1dGlvbgorCiAgICAgcGxpc3Ri
dWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnNhbmRib3gucHJvZmlsZSBzdHJpbmcgY29tLmFw
cGxlLldlYktpdC5OZXR3b3JraW5nCiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zeW1w
dG9tX2FuYWx5dGljcy5jb25maWd1cmUgYm9vbCBZRVMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDFjN2FkNDRjMjQ2YWQ3MDk3N2FmYTdjNmU0M2JkMDNj
YzIwNWI2ZWMuLjk4ZmE1NzBlZmIxNmFiM2ZiYWI5NGUwNDU5ZjVkOGE0ZDZiOWM3ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDk4Miw3ICs0OTgyLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICAgICAgZWxzZSBpZiAobmF2aWdhdGlvbiAm
JiBuYXZpZ2F0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpKQogICAgICAgICAgICAgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpOwogICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsKLSAgICAgICAgICAg
IGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+ZGVzdGluYXRpb25TaXRlKCkubWF0Y2hlcyhm
cmFtZS0+dXJsKCkpKQorICAgICAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5k
ZXN0aW5hdGlvblNpdGUoKS5tYXRjaGVzKGZyYW1lLT51cmwoKSkgfHwgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQtPmlzU0tBZE5ldHdvcmtBdHRyaWJ1dGlvbigpKQogICAgICAgICAgICAgICAgIHdl
YnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksICpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIDApOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMmIxMTM3Yzk0M2E5ZmVmNTljMzY3ZWMyYmMxOGUyOGMzYjQ4YWEzYy4uMzM3Yzc0NjM5
OTg3NzQ3MTIzZjU0MGI2MjQyODU2OGYzNjBkZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODkwLDYgKzQ4OTAsNyBAQAogCQk1
QzEyMUU4ODI0MTAyOTBEMDA0ODZGOUIgLyogX1dLRnJhbWVUcmVlTm9kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tGcmFtZVRyZWVOb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDMTIxRThCMjQxMDMwNjYwMDQ4NkY5QiAvKiBBUElGcmFtZVRyZWVO
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUZyYW1lVHJl
ZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzEzMDI0QTFGRTM0MUE3
MDAwRDlCMzEgLyogV2Vic2l0ZVBvbGljaWVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJzaXRlUG9saWNpZXNEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTVDMTM1NTlFMjdFMjUwMDMwMDIyQjUyNyAvKiBBcHBTdG9yZURhZW1vblNQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBBcHBTdG9yZURhZW1vblNQSS5oOyBwYXRoID0gQXBwU3RvcmVEYWVtb25T
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxNDI2RTIxQzIzRjgwNTAwRDQx
MTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxNDI2RTMxQzIzRjgwNTAwRDQx
MTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTQyNkU0MUMyM0Y4MDUwMEQ0MTE4MyAvKiBO
ZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDQ5OCw2ICsxMDQ5OSw3IEBACiAJCTdFQzRGMEY4MThFNEE5MjIwMDgwNTZBRiAvKiBj
b2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNUMx
MzU1OUUyN0UyNTAwMzAwMjJCNTI3IC8qIEFwcFN0b3JlRGFlbW9uU1BJLmggKi8sCiAJCQkJMkQw
QzU2RkIyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0TGluay5oICovLAog
CQkJCTJEMEM1NkZDMjI5RjFERUEwMEJEMzNFNyAvKiBEZXZpY2VNYW5hZ2VtZW50U29mdExpbmsu
bW0gKi8sCiAJCQkJQzE3MTBDRjUyNEFBNjM0NTAwRDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0
YWJhc2VPYnNlcnZlci5oICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGIzZTZhZDRiMjNkZmU2NTRhOTJlYzNlZDdiZWM3NTcxN2E4Nzk0ZTYu
LjA4YTlmOWQ5N2Y0ZTk3ZTBkZmE3NTM5NTY4MTdjYzAyZTNhZGYyNTkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
Mi0wMy0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIEltcGxlbWVudCBQQ00gdG8gU0tBZE5ldHdvcmsgYnJpZGdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjkKKyAgICAgICAgPHJkYXI6
Ly84Mjk4ODA1ND4KKworICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDMtMjIgIEpvbmF0aGFu
IEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0gQWRk
IFZhbGlkYXRlU3F1YXNoZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCAzYzU2MWIyNzJhMWFkZjU0
NTdiZDJjNjVmOGVjZjU4NDNlNTNkM2QxLi40YzhkMzVmMjVlODVmZjk0NTBiMGJkODJlYjQyZDli
MDY0YTk0ZjE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC01NTksNiArNTU5LDQ2IEBAIFRFU1Qo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIERhZW1vbkRlYnVnTW9kZSkKICAgICBjbGVhblVwRGFl
bW9uKHRlbXBEaXIpOwogfQogCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBTS0FkTmV0
d29yaykKK3sKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7IHsgIi9hcHAvYXBwbGUtc3RvcmUvaWQx
MjM0NTY3ODkwIiwgeyAiaGVsbG8iIH0gfSB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHNQ
cm94eSk7CisKKyAgICBhdXRvIHN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtzdG9yZUNvbmZp
Z3VyYXRpb24gc2V0UHJveHlDb25maWd1cmF0aW9uOkB7CisgICAgICAgIChOU1N0cmluZyAqKWtD
RlN0cmVhbVByb3BlcnR5SFRUUFNQcm94eUhvc3Q6IEAiMTI3LjAuMC4xIiwKKyAgICAgICAgKE5T
U3RyaW5nICopa0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5UG9ydDogQChzZXJ2ZXIucG9ydCgp
KQorICAgIH1dOworCisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqdmlld0NvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2UiXTsKKyAgICB2aWV3Q29u
ZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9y
ZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCld
KS5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3V2l0aE9wZW5JbnNwZWN0b3Iodmll
d0NvbmZpZ3VyYXRpb24pOworCisgICAgVmVjdG9yPFN0cmluZz4gY29uc29sZU1lc3NhZ2VzOwor
ICAgIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KHdlYlZpZXcuZ2V0KCksIGNvbnNvbGVNZXNzYWdl
cyk7CisgICAgW3ZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3NldFByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZEZvclRlc3Rpbmc6WUVTXTsKKworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5PiIKKyAgICAgICAgIjxh
IGhyZWY9J2h0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL2FwcGxlLXN0b3JlL2lkMTIzNDU2Nzg5
MCcgaWQ9J2FuY2hvcmlkJyBhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uPSdodHRwczovL2Rlc3RpbmF0
aW9uLycgYXR0cmlidXRpb25Tb3VyY2VOb25jZT0nTVRJek5EVTJOemc1TURFeU16UTFOZyc+YW5j
aG9yPC9hPiIKKyAgICAgICAgIjwvYm9keT4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwczovL2V4YW1wbGUuY29tLyJdXTsKKworICAgIHdoaWxlIChjb25zb2xlTWVzc2FnZXMu
aXNFbXB0eSgpKQorICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgpOworICAgIEVYUEVDVF9XS19T
VFJFUShjb25zb2xlTWVzc2FnZXNbMF0sICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gVHVy
bmVkIERlYnVnIE1vZGUgb24uIik7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbZGVsZWdhdGUgc2V0RGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOl4oV0tXZWJWaWV3ICosIE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKmNoYWxsZW5nZSwgdm9pZCAoXmNhbGxiYWNrKShOU1VSTFNlc3Npb25BdXRoQ2hh
bGxlbmdlRGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqKSkgeworICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCwg
TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0KTsKKyAgICAgICAgY2FsbGJhY2so
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwg
Y3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3Rd
KTsKKyAgICB9XTsKKyAgICB3ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IGRlbGVn
YXRlLmdldCgpOworCisgICAgW3dlYlZpZXcgY2xpY2tPbkVsZW1lbnRJRDpAImFuY2hvcmlkIl07
CisKKyAgICB3aGlsZSAoY29uc29sZU1lc3NhZ2VzLnNpemUoKSA8IDIpCisgICAgICAgIFV0aWw6
OnNwaW5SdW5Mb29wKCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKGNvbnNvbGVNZXNzYWdlc1sxXSwg
IlN1Ym1pdHRpbmcgcG90ZW50aWFsIGluc3RhbGwgYXR0cmlidXRpb24gZm9yIEFkYW1JZDogMTIz
NDU2Nzg5MCwgYWROZXR3b3JrUmVnaXN0cmFibGVEb21haW46IGRlc3RpbmF0aW9uLCBpbXByZXNz
aW9uSWQ6IE1USXpORFUyTnpnNU1ERXlNelExTmcsIHNvdXJjZVdlYlJlZ2lzdHJhYmxlRG9tYWlu
OiBleGFtcGxlLmNvbSwgdmVyc2lvbjogMyIpOworfQorCiBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBOZXR3b3JrUHJvY2Vzc0RlYnVnTW9kZSkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2UiXTsK
</data>
<flag name="commit-queue"
          id="483465"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>