<?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>232113</bug_id>
          
          <creation_ts>2021-10-21 16:06:05 -0700</creation_ts>
          <short_desc>REGRESSION (r284079): Audio continues playing on hulu.com in private browsing mode after closing the tab</short_desc>
          <delta_ts>2021-10-25 08:37:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232179</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1807416</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-21 16:06:05 -0700</bug_when>
    <thetext>rdar://84399283</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807483</commentid>
    <comment_count>1</comment_count>
      <attachid>442099</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-21 18:11:28 -0700</bug_when>
    <thetext>Created attachment 442099
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807484</commentid>
    <comment_count>2</comment_count>
      <attachid>442100</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-21 18:15:28 -0700</bug_when>
    <thetext>Created attachment 442100
Minor renaming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807765</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 10:52:42 -0700</bug_when>
    <thetext>*** Bug 232139 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807768</commentid>
    <comment_count>4</comment_count>
      <attachid>442100</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 10:54:58 -0700</bug_when>
    <thetext>Comment on attachment 442100
Minor renaming

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

&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:152
&gt;      Ref&lt;WebCore::ImageBuffer&gt; m_imageBuffer;

This backpointer should be weak, since RemoteImageBuffer (strongly) owns its RemoteDisplayListRecorder.

Going to make this adjustment along with the rest of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807814</commentid>
    <comment_count>5</comment_count>
      <attachid>442184</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 12:12:13 -0700</bug_when>
    <thetext>Created attachment 442184
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807845</commentid>
    <comment_count>6</comment_count>
      <attachid>442189</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 13:21:31 -0700</bug_when>
    <thetext>Created attachment 442189
Add missing &apos;Reviewed by&apos; line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807847</commentid>
    <comment_count>7</comment_count>
      <attachid>442191</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 13:22:45 -0700</bug_when>
    <thetext>Created attachment 442191
Add missing &apos;Reviewed by&apos; line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807909</commentid>
    <comment_count>8</comment_count>
      <attachid>442206</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 15:40:42 -0700</bug_when>
    <thetext>Created attachment 442206
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807911</commentid>
    <comment_count>9</comment_count>
      <attachid>442206</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-22 15:46:13 -0700</bug_when>
    <thetext>Comment on attachment 442206
For EWS

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

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:173
&gt; +    inline static uint64_t objectCountForTesting() { return gObjectCountForTesting; }

inline seems redundant?

&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:424
&gt; +    m_renderingBackend-&gt;performWithMediaPlayerOnMainThread(identifier, [RefPtr imageBuffer = m_imageBuffer.get(), destination](MediaPlayer&amp; player) {

I think we usually use `imageBuffer = RefPtr { m_imageBuffer.get() }` ?

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:137
&gt; +    Lock m_remoteDisplayListsLock;

That seems a bit fishy given that m_remoteDisplayLists is a WeakHashSet. How could it be used safely from multiple threads given that WeakPtr cannot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807916</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 15:54:14 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Comment on attachment 442206 [details]
&gt; For EWS
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=442206&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:173
&gt; &gt; +    inline static uint64_t objectCountForTesting() { return gObjectCountForTesting; }
&gt; 
&gt; inline seems redundant?

Good point — removed the `inline`.

&gt; 
&gt; &gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:424
&gt; &gt; +    m_renderingBackend-&gt;performWithMediaPlayerOnMainThread(identifier, [RefPtr imageBuffer = m_imageBuffer.get(), destination](MediaPlayer&amp; player) {
&gt; 
&gt; I think we usually use `imageBuffer = RefPtr { m_imageBuffer.get() }` ?

👍🏻

&gt; 
&gt; &gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:137
&gt; &gt; +    Lock m_remoteDisplayListsLock;
&gt; 
&gt; That seems a bit fishy given that m_remoteDisplayLists is a WeakHashSet. How
&gt; could it be used safely from multiple threads given that WeakPtr cannot?

That&apos;s true — though, I&apos;m curious why this isn&apos;t already causing all sorts of &quot;!= constructed on main thread&quot; assertions already, given that this is already an issue.

I&apos;m going to clean this up in https://bugs.webkit.org/show_bug.cgi?id=232183, and leave it as it is currently. I plan to turn this into a regular HashSet of either RefPtr or Ref, and manually remove entries when image buffers are released (based on rendering resource ID)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807919</commentid>
    <comment_count>11</comment_count>
      <attachid>442207</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-22 15:56:53 -0700</bug_when>
    <thetext>Created attachment 442207
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808260</commentid>
    <comment_count>12</comment_count>
      <attachid>442321</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-24 14:00:14 -0700</bug_when>
    <thetext>Created attachment 442321
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808277</commentid>
    <comment_count>13</comment_count>
      <attachid>442330</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-24 16:47:38 -0700</bug_when>
    <thetext>Created attachment 442330
Try to fix layout test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808401</commentid>
    <comment_count>14</comment_count>
      <attachid>442330</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-25 08:06:22 -0700</bug_when>
    <thetext>Comment on attachment 442330
Try to fix layout test?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808414</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-25 08:37:25 -0700</bug_when>
    <thetext>Committed r284786 (243495@main): &lt;https://commits.webkit.org/243495@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442330.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442099</attachid>
            <date>2021-10-21 18:11:28 -0700</date>
            <delta_ts>2021-10-21 18:15:27 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-232113-20211021181127.patch</filename>
            <type>text/plain</type>
            <size>26477</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY4MDQwNGY3MDFlZTA2YWM1
ZjU3ZGU5NTY3M2I3NDU0N2UzYWEwMDQuLmJjYjk4M2RiMGM3NjAyNTllYTgzZmE3ODgwMzM0MWY0
ZWQzYmU1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMTAtMjEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIGluYWR2
ZXJ0ZW50bHkgaW50cm9kdWNlZCBhIHJlZi1jb3VudGluZyBjeWNsZSBiZXR3ZWVuIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIKKyAgICAgICAgYWZ0
ZXIgSVBDIHN0cmVhbSByZWZhY3RvcmluZyBpbiByMjg0MDc5LCBzaW5jZSBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyIGRpcmVjdGx5IHN0cm9uZ2x5IHJlZnMgdGhlIHJlbmRlcmluZworICAgICAg
ICBiYWNrZW5kLCBhbmQgdGhlIHJlbmRlcmluZyBiYWNrZW5kIGluZGlyZWN0bHkgaG9sZHMgb24g
dG8gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcnMgdGhyb3VnaCByZW1vdGUgaW1hZ2UKKyAgICAg
ICAgYnVmZmVycyBpbiB0aGUgcmVzb3VyY2UgY2FjaGUuIFNpbmNlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgYWxzbyBzdHJvbmdseSByZWZzICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGFzCisg
ICAgICAgIHdlbGwsIHRoaXMgY2F1c2VkIHRoZSBlbnRpcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyB0byBsZWFrIGFmdGVyIHRlYXJpbmcgZG93biB0aGUgY29ubmVjdGVkIHdlYiBwcm9jZXNz
LCBpZgorICAgICAgICB0aGUgd2ViIHByb2Nlc3MgZXZlciBpbnN0YWxsZWQgYSByZW1vdGUgcmVu
ZGVyaW5nIGJhY2tlbmQgZm9yIDJEIGNhbnZhcy4KKworICAgICAgICBUbyBhdm9pZCB0aGlzIGN5
Y2xlLCB0dXJuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIncyBgbV9yZW5kZXJpbmdCYWNrZW5k
YCBpbnRvIGEgUmVmUHRyIGluc3RlYWQgb2YgYSBSZWYsIGFuZAorICAgICAgICBjbGVhciBpdCBv
dXQgaW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAuIFRoaXMgYWxzbyBtZWFucyB0aGF0IHdlIG5v
IGxvbmdlciBuZWVkIGEgc2VwYXJhdGUgYm9vbGVhbiBmbGFnIHRvCisgICAgICAgIGVuc3VyZSB0
aGF0IGBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKClgIGlz
IGlkZW1wb3RlbnQsIHNvIHdlIGFsc28gcmVtb3ZlCisgICAgICAgIGBtX2lzTGlzdGVuaW5nRm9y
SVBDYCBhbHRvZ2V0aGVyLgorCisgICAgICAgIFRlc3Q6IEdQVVByb2Nlc3MuRG9Ob3RMZWFrQ29u
bmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UKKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvdW50Rm9yVGVzdGluZyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcpOgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBhIHRlc3Rpbmctb25seSBTUEkgaG9vayB0byBhc2sgZm9yIHRo
ZSBsaXZlIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgY291bnQuIFRoaXMgcmV0cmlldmVzIGEK
KyAgICAgICAgc3RhdGljYWxseSBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBjb3VudCBvZiB0aGUg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBpbnN0YW5jZXMgdGhhdCBleGlzdCBpbiB0aGUgR1BV
CisgICAgICAgIHByb2Nlc3M7IGltcG9ydGFudGx5LCB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIGFz
a2luZyB0aGUgR1BVUHJvY2VzcyBmb3IgdGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyBpbgorICAg
ICAgICBgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnNgLCBzaW5jZSB0aGUgbGF0dGVyIHdpbGwgYmUg
MCBldmVuIHdoZW4gb25lIG9yIG1vcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc2VzIGFyZQor
ICAgICAgICBzdGlsbCBhbGl2ZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5k
KToKKworICAgICAgICBBbHNvIG1ha2UgYG1fcmVtb3RlRGlzcGxheUxpc3RzYCBhY2Nlc3MgdGhy
ZWFkLXNhZmUgdXNpbmcgYSBMb2NrLiBUaGlzIGlzIGJlY2F1c2UgYGRpZENyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZGAKKyAgICAgICAgaXMgbm93IGludm9rZWQgb24gdGhlIHJlbmRlcmluZyBiYWNr
ZW5kIHRocmVhZCB3aGlsZSBwcm9jZXNzaW5nIHN0cmVhbWluZyBJUEMsIGJ1dCBgc3RvcExpc3Rl
bmluZ0ZvcklQQygpYAorICAgICAgICAod2hpY2ggZ29lcyB0aHJvdWdoIGFuZCBjbG9zZXMgSVBD
IHN0cmVhbSBjb25uZWN0aW9ucyBmb3IgZWFjaCBvZiB0aGUgcmVtb3RlIGRpc3BsYXkgbGlzdHMp
IGlzIGludm9rZWQgb24gdGhlCisgICAgICAgIG1haW4gcnVubG9vcC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKworICAgICAg
ICBBZGQgdGhlIG5ldyB0ZXN0aW5nIFNQSSAoc2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rp
bmc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgor
CiAyMDIxLTEwLTIwICBQZXIgQXJuZSBWb2xsYW4gPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSBpcyBub3QgYWx3YXlzIHNlbnQgdG8gR1BVUApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGZiMjA3YzQ2MzZjZDVmMWQ4YTI2MTVkNDgxYzVmYjdjMGVkOTQzYWMu
LjlkNDBiMzIyODZlYmI4ZjRmY2E5ZjE2NWM3M2NlMjFkZDljNzgzMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTI0OCw2ICsyNDgsOCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIC8vIHJlcGx5
IGZyb20gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCiAgICAgbV9jb25u
ZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25uZWN0aW9uLT5v
cGVuKCk7CisKKyAgICArK2dDb3VudEZvclRlc3Rpbmc7CiB9CiAKIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKQEAgLTI2Miw4ICsyNjQsMTIg
QEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIG1fbGliV2ViUlRD
Q29kZWNzUHJveHktPmNsb3NlKCk7CiAjZW5kaWYKKworICAgIC0tZ0NvdW50Rm9yVGVzdGluZzsK
IH0KIAordWludDY0X3QgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z0NvdW50Rm9yVGVzdGlu
ZyA9IDA7CisKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9O
KSAmJiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOWM1MjM2NDE0
MjI0YTkyZGNmNjBkZGUxZTBjOGRiNmNjNTZlOGI0ZS4uZWYwZGFiODEzOGU2NWY4ZWE5NmU0NTc3
ODRkMGJmMGE5ZjU3NWFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xNzAsNiArMTcwLDggQEAgcHVibGljOgog
ICAgIHZvaWQgcmVsZWFzZUdyYXBoaWNzQ29udGV4dEdMRm9yVGVzdGluZyhHcmFwaGljc0NvbnRl
eHRHTElkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAgICBpbmxpbmUgc3RhdGljIHVpbnQ2NF90IGNv
dW50Rm9yVGVzdGluZygpIHsgcmV0dXJuIGdDb3VudEZvclRlc3Rpbmc7IH0KKwogICAgIHVzaW5n
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyLCBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3RlUmVuZGVy
aW5nQmFja2VuZD4+OwogICAgIGNvbnN0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXAmIHJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRNYXAoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRNYXA7IH0KIApAQCAtMjQyLDYgKzI0NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNw
YXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKICNlbmRpZgogCisgICAgc3RhdGljIHVpbnQ2
NF90IGdDb3VudEZvclRlc3Rpbmc7CisKICAgICBSZWZQdHI8TG9nZ2VyPiBtX2xvZ2dlcjsKIAog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCAyZTc2MmE3ODE0MjRhOGQ4MTNiZWFmNzczYjk3YTBh
YTMzYTI3M2IwLi5jMGVkZGFiYmY4OGVkOGJkYmZjMGE0MzEwNzk0OGM5YjRmMjBkNjFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC00OTgsNiArNDk4LDExIEBA
IHZvaWQgR1BVUHJvY2Vzczo6c2V0Vm9yYmlzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQog
fQogI2VuZGlmCiAKK3ZvaWQgR1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZv
clRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y291bnRGb3JUZXN0aW5nKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oCmluZGV4IDU0MWY1YjBmZjJjZDAxNmRkN2EyNDRhMzUzMmJlOTQ3ZWQ0YTg0OTEuLjBhZjQ5
ODI3ODRhOGE2NDJlODZhZDU2MDhhM2RjZDVhMTk1ZDg5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuaApAQCAtMTAwLDYgKzEwMCw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0
IFN0cmluZyYgYXBwbGljYXRpb25WaXNpYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGlj
YXRpb25WaXNpYmxlTmFtZTsgfQogCisgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50
Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisKIHByaXZh
dGU6CiAgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsLCBTeW5jaHJvbm91cyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggYjY0YmExNjRhOTJkN2JhNjFiZWRlZDJhNWFlMzAyYTYwMmVjYjhmNy4uYmE4NGE3YzUzMmUy
YTAxYmEyMzQ5NmI0ZmNiZDljNjAwNjY0OTQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTY4LDYgKzY4LDggQEAgbWVzc2FnZXMg
LT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNU
X01PREUpCiAgICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmlu
ZyBrZXksIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAjZW5kaWYKKworICAg
IFdlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKCkgLT4gKHVpbnQ2NF90IGNvdW50
KSBBc3luYwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCmluZGV4IDdmNjNmOTZjMTVkM2U0MmNmOTQ4YjhkZmJhOTFmNWIxZjQx
ZDFjMTguLjFkMDIzZDJmOGM4YmNjOTgwYWZkZWExMWUwNmJmNGEyOTIyZGY0NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcihJbWFnZUJ1ZmZlciYgaW1hZ2VC
dWZmZXIsIFEKICAgICA6IG1faW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpCiAgICAgLCBtX2ltYWdl
QnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nl
c3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotICAgICwgbV9yZW5kZXJpbmdCYWNr
ZW5kKHJlbmRlcmluZ0JhY2tlbmQpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQoJnJlbmRlcmlu
Z0JhY2tlbmQpCiB7CiB9CiAKQEAgLTUzLDggKzUzLDYgQEAgR3JhcGhpY3NDb250ZXh0JiBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCgpCiAKIHZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIEFTU0VSVCgh
bV9pc0xpc3RlbmluZ0ZvcklQQyk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IHRydWU7CiAg
ICAgLy8gRklYTUU6IENhbiB3ZSBhdm9pZCBzeW5jaHJvbm91cyBkaXNwYXRjaCBoZXJlIGJ5IGFk
anVzdGluZyB0aGUgYXNzZXJ0aW9uIGluIGBDb25uZWN0aW9uOjplbnF1ZXVlTWF0Y2hpbmdNZXNz
YWdlc1RvTWVzc2FnZVJlY2VpdmVRdWV1ZWA/CiAgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0
KFsmXSB7CiAgICAgICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0
YXJ0UmVjZWl2aW5nTWVzc2FnZXMoKnRoaXMsIE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9i
amVjdCgpLnRvVUludDY0KCkpOwpAQCAtNjMsMTEgKzYxLDggQEAgdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCiAKIHZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c3RvcExpc3RlbmluZ0ZvcklQQygpCiB7Ci0gICAgaWYgKCFtX2lzTGlz
dGVuaW5nRm9ySVBDKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3JlbmRlcmluZ0JhY2tlbmQt
PnN0cmVhbUNvbm5lY3Rpb24oKS5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZl
cklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50NjQoKSk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQ
QyA9IGZhbHNlOworICAgIGlmIChhdXRvIHJlbmRlcmluZ0JhY2tlbmQgPSBzdGQ6OmV4Y2hhbmdl
KG1fcmVuZGVyaW5nQmFja2VuZCwgeyB9KSkKKyAgICAgICAgcmVuZGVyaW5nQmFja2VuZC0+c3Ry
ZWFtQ29ubmVjdGlvbigpLnN0b3BSZWNlaXZpbmdNZXNzYWdlcyhNZXNzYWdlczo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2ltYWdlQnVmZmVySWRl
bnRpZmllci5vYmplY3QoKS50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzYXZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDYyYTQ5NzA2
ZTI4YjAxZTBhNmI4NjliZDMzZTYyNGVjN2Q4YjM2OTEuLmI0NGUzODI0ODA4YTAwY2Y3ZDk4MTFj
MDhkMDNiYWI4OTU0NjE1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMTUyLDkg
KzE1Miw4IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdl
QnVmZmVyOwogICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdl
QnVmZmVySWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOwotICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRl
cmluZ0JhY2tlbmQ7CisgICAgUmVmUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVy
aW5nQmFja2VuZDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdl
QnVmZmVyOwotICAgIGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmNThjMzY5
NmY1M2VmZDE1MGIxZGI5MGUzMWIzOWViNTY2YjVkY2ZjLi44MzNjMDgzYmY3M2I4MzgyOGZjNGIz
ZTcwNWQ0N2I3ZjQxMzRlMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMDYsNiAr
MTA2LDggQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBD
KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fc3RyZWFtQ29ubmVj
dGlvbi0+c3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIu
dG9VSW50NjQoKSk7CisKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZW1vdGVEaXNwbGF5TGlzdHNM
b2NrIH07CiAgICAgZm9yIChhdXRvJiByZW1vdGVDb250ZXh0IDogc3RkOjpleGNoYW5nZShtX3Jl
bW90ZURpc3BsYXlMaXN0cywgeyB9KSkKICAgICAgICAgcmVtb3RlQ29udGV4dC5zdG9wTGlzdGVu
aW5nRm9ySVBDKCk7CiB9CkBAIC0xMjcsNyArMTI5LDEwIEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlciYgcmVtb3RlRGlzcGxheUxpc3QpCiB7Ci0gICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRk
KHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3Jl
bW90ZURpc3BsYXlMaXN0c0xvY2sgfTsKKyAgICAgICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRk
KHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB9CiAgICAgTUVTU0FHRV9DSEVDSyhyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX2dwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGlmaWVyKCksICJTZW5kaW5nIGRpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZCgpIG1lc3NhZ2UgdG8gdGhlIHdyb25nIHdlYiBwcm9jZXNzLiIpOwog
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKFdURk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLm9iamVjdCgpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAppbmRleCAzMWFkOTI5ODk5YmRjZmI4MDBlYWViZGNhOWIzMWY4YWE5MzBh
YzQ5Li43YjdmMjE5YWMzMDQyNzlhZDM5N2YyNDk2NWUwZjAwYjljYmE2NTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKQEAgLTEzMyw3ICsxMzMsOSBAQCBwcml2YXRlOgogICAgIElQQzo6U2VtYXBo
b3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4g
bV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJj
ZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKLSAgICBXZWFrSGFzaFNldDxS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyPiBtX3JlbW90ZURpc3BsYXlMaXN0czsKKworICAgIExv
Y2sgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrOworICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI+IG1fcmVtb3RlRGlzcGxheUxpc3RzIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCBmNmExY2ZkODBkMzRiN2MxOWRhNTJjYTU2
NDBhMTdlNmFjZTk4ODQyLi45YTk5NDYxYjQxZTQ1OTVkMGUwMzViZmFjYjFkNzVhNmQ4MmNhMGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVj
dCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9jbGVhckFwcFByaXZh
Y3lSZXBvcnRUZXN0aW5nRGF0YToodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAog
LSAodm9pZClfY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dL
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+KXByaXZhdGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX2dwdVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDU5ZDllZDE0ZDMyOTNhZTBkZDEx
NzkxZDBkMWU3ODQ1MWRlOGNhNjQuLmM2OTNlNTRlMzg5MWFmMTQ0ZWUxZTVjMWE3MjEzYmI2YmJk
YjkwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdUZXN0aW5nLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oIgogCiAjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5LmgiCisjaW1wb3J0ICJHUFVQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIk1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCkBA
IC00MjMsNiArNDI0LDE5IEBAIC0gKHZvaWQpX2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAgICAgfSk7CiB9CiAKKy0gKHZv
aWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNV
SW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IF9w
YWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5ncHVQcm9jZXNzKCk7CisgICAgaWYgKCFncHVQ
cm9jZXNzKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKDApOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZ3B1UHJvY2Vzcy0+d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRl
c3RpbmcoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVy
KV0odWludDY0X3QgY291bnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQpOwor
ICAgIH0pOworfQorCiAtICh2b2lkKV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRl
c3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9y
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IGY0N2E3ZDMxZTYyZGY2YjY5
ZWQ1OGM2N2UxODVkOTRmOGE1N2ZjZmYuLmFiOTA0ZDA0NTg4ZDhjZGMwNDgzMDE5ZWUxYTcxMWI5
YWU4MDMwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwCkBAIC0zOTksNiArMzk5LDExIEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp0ZXJt
aW5hdGVGb3JUZXN0aW5nKCkKICAgICBwcm9jZXNzSXNSZWFkeVRvRXhpdCgpOwogfQogCit2b2lk
IEdQVVByb2Nlc3NQcm94eTo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpXZWJQcm9jZXNzQ29u
bmVjdGlvbkNvdW50Rm9yVGVzdGluZygpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9
CisKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewog
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICIlcCAtIEdQVVByb2Nlc3NQcm94eTo6ZGlk
Q2xvc2U6IiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c1Byb3h5LmgKaW5kZXggNzBjYzIxNTBlYTcxMTE2NjVmMDQ2NTYzMzE5NDc0ZmVkYjljMThlYy4u
ZDA5NjRhZDMyMWQ5MTc4NzM4NWMwZjQyZDVhNDViZTkzOThhNjc4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcygpOwogCiAgICAgdm9pZCB0ZXJtaW5h
dGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgR1BVUHJvY2Vzc1Byb3h5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDFjMjU5YjU2ODViNDc5MWViMjM4N2RhMjhlZGU0
OTE2MzNlMWE0ZS4uMTA4Y2I0ODU3YzVjNWMzNGE0Yzc4NDc3MGRiMTNkNGMyNzU3ZjA2NSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDIxLTEwLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODQwNzkpOiBBdWRpbyBjb250aW51ZXMgcGxheWlu
ZyBvbiBodWx1LmNvbSBpbiBwcml2YXRlIGJyb3dzaW5nIG1vZGUgYWZ0ZXIgY2xvc2luZyB0aGUg
dGFiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIx
MTMKKyAgICAgICAgcmRhcjovLzg0Mzk5MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRo
ZSBHUFUgdG8gd2ViIHByY29lc3MgY29ubmVjdGlvbiBpc24ndCBsZWFrZWQgaW4gdGhlIEdQVSBw
cm9jZXNzLiBTZWUgV2ViS2l0CisgICAgICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQ
cm9jZXNzLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2Fu
dmFzLWltYWdlLWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bkNvdW50XSk6CisKIDIwMjEtMTAtMjAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPiBh
bmQgRGFuYSBFc3RyYSA8ZGVzdHJhQGFwcGxlLmNvbT4KIAogICAgICAgICBtYWNPUyBrZXktZHJp
dmVuIHNtb290aCBzY3JvbGxpbmcgZG9lcyBub3Qgc3RvcCB3aGVuIGZvY3VzIGNoYW5nZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzE3OTE2NzZiNThhNTk0YWEwZWY4YjM0NGRiYTFjNTBi
YzJkNmMxYi4uNTVhZTEyN2UxZjYwOGM3ZTIxYjM0NmVkNDM2MjlhZGVjMzc5MTcyNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEyOTEsNiArMTI5MSw3IEBACiAJCUY0RTBBMkI0MjEyMjQw
MkIwMEFGN0M3RiAvKiBpbWFnZS1hbmQtZmlsZS11cGxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwQTJCMzIxMjIzRjJEMDBB
RjdDN0YgLyogaW1hZ2UtYW5kLWZpbGUtdXBsb2FkLmh0bWwgKi87IH07CiAJCUY0RTBBMkI4MjEy
Mjg0NzQwMEFGN0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTBBMkI3MjEyMjg0NzQwMEFGN0M3
RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSAqLzsgfTsKIAkJRjRFM0Q4MDgyMEY3MEJC
OTAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUzRDgw
NzIwRjcwOEU0MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUtYXJ0aWNsZS5o
dG1sICovOyB9OworCQlGNEU3QTY2MzI3MjIyQ0E5MDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRh
dGEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCAq
LzsgfTsKIAkJRjRFQjRFOTEyMzI4QUMzMDAwNTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRp
b25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
QjRFOTAyMzI4QUMzMDAwNTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tICovOyB9
OwogCQlGNEVDODA5NDI2MEQzMDU0MDAxMDMxMUQgLyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEVDODA5MzI2MEQyRTYyMDAxMDMxMUQgLyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCAqLzsg
fTsKIAkJRjRGMTM3OTIxRDlCNjgzRTAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBs
YXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ct
cGxheWluZy5odG1sICovOyB9OwpAQCAtMTQ0MSw2ICsxNDQyLDcgQEAKIAkJCQkyREU3MUIwMDFE
NDlDM0VEMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJN0M0ODZCQTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMjZERjVBNjMxNUEyQTI3RTAwMzY4OUMyIC8qIENhbmNlbExv
YWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJ
CQlGNEU3QTY2MzI3MjIyQ0E5MDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAgLyogY2hhbmdl
LXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJF
RkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTlCRDQyMzlDMUUwNEMwMUMwMDIwMDM5NSAvKiBj
aGluZXNlLWNoYXJhY3Rlci13aXRoLWltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBA
IC0zMTc5LDYgKzMxODEsNyBAQAogCQlGNEUwQTJCNjIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZp
bGVQcm9taXNlUmVjZWl2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdEZpbGVQcm9taXNlUmVjZWl2
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMEEyQjcyMTIyODQ3NDAwQUY3
QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RTNEODA3MjBGNzA4RTQwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1h
cnRpY2xlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2lnbmlmaWNhbnQtdGV4
dC1taWxlc3RvbmUtYXJ0aWNsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2FudmFzLWltYWdlLWRhdGEuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUI0RThGMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Q
cm92aWRlckFkZGl0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOU0l0ZW1Qcm92aWRlckFkZGl0aW9u
cy5oOyBwYXRoID0gY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMuaDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OwogCQlGNEVCNEU5MDIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJv
dmlkZXJBZGRpdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOU0l0ZW1Qcm92aWRlckFk
ZGl0aW9ucy5tbTsgcGF0aCA9IGNvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0RUM4MDkzMjYwRDJFNjIwMDEwMzExRCAvKiBz
aW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNp
bXBsZS1pbWFnZS1vdmVybGF5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDA0MSw2ICs0MDQ0LDcgQEAKIAkJCQlGNDFBQjk5NzFFRjQ2OTJDMDA4M0ZBMDggLyogYmFja2dy
b3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICovLAogCQkJCTQ2NEM3NjRDMjMwREY4MzIw
MEFGQjAyMCAvKiBCYWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMgKi8sCiAJ
CQkJMkRFNzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sICovLAorCQkJ
CUY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sICovLAog
CQkJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRl
by1zb3VyY2Utb24tZW5kLmh0bWwgKi8sCiAJCQkJODM5QUEzNUUyMUEyNkFDRDAwOTgwREQ2IC8q
IGNsaWVudC1zaWRlLXJlZGlyZWN0Lmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KaW5kZXggODQwOTY5NzU2MTQ0NmVi
ZjhhZThjNjVmZGJjOWUxMDIyOTQzZDFmMy4uNDRjOGE4ZGU5ODBjY2MxMDJiMjE3YWE4NjlhZWI4
YzhlNTUwZjYyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9HUFVQcm9jZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvR1BVUHJvY2Vzcy5tbQpAQCAtMjgyLDYgKzI4MiwyMSBAQCBURVNUKEdQVVByb2Nlc3Ms
IE9ubHlMYXVuY2hlc0dQVVByb2Nlc3NXaGVuTmVjZXNzYXJ5TWVkaWFGZWF0dXJlRGV0ZWN0aW9u
KQogICAgIEVYUEVDVF9FUShbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfZ3B1UHJv
Y2Vzc0lkZW50aWZpZXJdLCAwKTsKIH0KIAorVEVTVChHUFVQcm9jZXNzLCBEb05vdExlYWtDb25u
ZWN0aW9uQWZ0ZXJDbG9zaW5nV2ViUGFnZSkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUHJl
ZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRnZSBXS1ByZWZlcmVu
Y2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgdHJ1ZSwgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkIikp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRn
ZSBXS1ByZWZlcmVuY2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgZmFsc2UsIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5n
RW5hYmxlZCIpKTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkVGVzdFBhZ2VOYW1lZDpAImNhbnZhcy1pbWFnZS1kYXRhIl07CisgICAgRVhQRUNUX0VRKDFV
LCBbd2ViVmlldyBncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKTsKKyAgICBbd2ViVmll
dyBfY2xvc2VdOworCisgICAgd2hpbGUgKFt3ZWJWaWV3IGdwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25Db3VudF0pCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7Cit9CisK
ICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIFRFU1QoR1BVUHJvY2VzcywgTGVn
YWN5Q0RNKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1Y2ExMjM2MDFl
ZmZkYjM0OTM1Y2JiNmE3NDkwYjBhNjQwYjZkNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0bWwKQEAg
LTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
Y2FudmFzIHsKKyAgICB3aWR0aDogMTYwcHg7CisgICAgaGVpZ2h0OiAxNjBweDsKKyAgICBkaXNw
bGF5OiBibG9jazsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzdHJvbmc+U291cmNl
PC9zdHJvbmc+Cis8Y2FudmFzIGlkPSJzb3VyY2UiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIj48
L2NhbnZhcz4KKzxzdHJvbmc+RGVzdGluYXRpb248L3N0cm9uZz4KKzxjYW52YXMgaWQ9ImRlc3Rp
bmF0aW9uIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjMyMCI+PC9jYW52YXM+Cis8c2NyaXB0PgorY29u
c3Qgc291cmNlQ2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdXJjZSIpOworY29u
c3Qgc291cmNlQ29udGV4dCA9IHNvdXJjZUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworc291cmNl
Q29udGV4dC5zYXZlKCk7Citzb3VyY2VDb250ZXh0LnN0cm9rZVN0eWxlID0gInJlZCI7Citzb3Vy
Y2VDb250ZXh0LmZpbGxTdHlsZSA9ICJyZ2JhKDIwMCwgMTAwLCAxMDAsIDAuMjUpIjsKK3NvdXJj
ZUNvbnRleHQubGluZVdpZHRoID0gNDsKK3NvdXJjZUNvbnRleHQucmVjdCg0MCwgNDAsIDI0MCwg
MjQwKTsKK3NvdXJjZUNvbnRleHQuc3Ryb2tlKCk7Citzb3VyY2VDb250ZXh0LmZpbGwoKTsKK3Nv
dXJjZUNvbnRleHQucmVzdG9yZSgpOworCitjb25zdCBpbWFnZURhdGEgPSBzb3VyY2VDb250ZXh0
LmdldEltYWdlRGF0YSgwLCAwLCAzMjAsIDMyMCk7Citjb25zdCBkZXN0aW5hdGlvbkNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXN0aW5hdGlvbiIpOworY29uc3QgZGVzdGluYXRp
b25Db250ZXh0ID0gZGVzdGluYXRpb25DYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2Rlc3RpbmF0
aW9uQ29udGV4dC5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAwLCAwLCAwLCAzMjAsIDMyMCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3LmgKaW5kZXggOWIxMWE3OTUyNGU4MTViMWFjMDkyN2M1MDk1MDFlZWQwNTUz
ZDQyZi4uMWZhNjE3NTc2ODEyNjFlMTZlNzdlZTE2NzMyM2FhNTc3YTU5NzljYyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTUzLDYgKzUzLDcgQEAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3IDxVSVRleHRJbnB1dFByaXZhdGUs
IFVJVGV4dElucHV0SW50ZXJuYWwsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudCwgVUlXS0ludGVy
YWN0aW9uVmlld1Byb3RvY29sLCBVSVRleHRJbnB1dFRva2VuaXplcj4gKnRleHRJbnB1dENvbnRl
bnRWaWV3OwogLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3luY2hyb25vdXNs
eVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3Q7CiAjZW5kaWYKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgZ3B1VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbkNvdW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAq
Y29udGVudHNBc1N0cmluZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJh
eTxOU1N0cmluZyAqPiAqdGFnc0luQm9keTsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5T
U3RyaW5nICopcGFnZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0KaW5kZXggYzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkwYTFjNjRlNzc3ZmE1OGY4Yi4uMjk2
YjliMDg5Y2JjMjk0MTE2NGRjZDA4MTg2MTU4ZTJhODY1ZmQyYyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTU0LDYgKzE1NCwxOCBAQCAtIChOU0Fy
cmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1
dENvbnRleHRzSW5SZWN0OgogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorLSAo
dWludDY0X3QpZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Cit7CisgICAgX19ibG9jayBi
b29sIGRvbmUgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIE5TVUludGVnZXIgY291bnQgPSAwOworICAg
IFtzZWxmIF9ncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl4oTlNVSW50
ZWdlciByZXN1bHQpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIGNvdW50ID0gcmVz
dWx0OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
cmV0dXJuIGNvdW50OworfQorCiAtIChOU1N0cmluZyAqKWNvbnRlbnRzQXNTdHJpbmcKIHsKICAg
ICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442100</attachid>
            <date>2021-10-21 18:15:28 -0700</date>
            <delta_ts>2021-10-22 12:12:12 -0700</delta_ts>
            <desc>Minor renaming</desc>
            <filename>bug-232113-20211021181527.patch</filename>
            <type>text/plain</type>
            <size>26525</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY4MDQwNGY3MDFlZTA2YWM1
ZjU3ZGU5NTY3M2I3NDU0N2UzYWEwMDQuLjFiMzc4MzNlNDY4NDZmZWFhMjM1YTljYWI4YjdlYzk2
MzdmMjcxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMTAtMjEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIGluYWR2
ZXJ0ZW50bHkgaW50cm9kdWNlZCBhIHJlZi1jb3VudGluZyBjeWNsZSBiZXR3ZWVuIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIKKyAgICAgICAgYWZ0
ZXIgSVBDIHN0cmVhbSByZWZhY3RvcmluZyBpbiByMjg0MDc5LCBzaW5jZSBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyIGRpcmVjdGx5IHN0cm9uZ2x5IHJlZnMgdGhlIHJlbmRlcmluZworICAgICAg
ICBiYWNrZW5kLCBhbmQgdGhlIHJlbmRlcmluZyBiYWNrZW5kIGluZGlyZWN0bHkgaG9sZHMgb24g
dG8gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcnMgdGhyb3VnaCByZW1vdGUgaW1hZ2UKKyAgICAg
ICAgYnVmZmVycyBpbiB0aGUgcmVzb3VyY2UgY2FjaGUuIFNpbmNlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgYWxzbyBzdHJvbmdseSByZWZzICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGFzCisg
ICAgICAgIHdlbGwsIHRoaXMgY2F1c2VkIHRoZSBlbnRpcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyB0byBsZWFrIGFmdGVyIHRlYXJpbmcgZG93biB0aGUgY29ubmVjdGVkIHdlYiBwcm9jZXNz
LCBpZgorICAgICAgICB0aGUgd2ViIHByb2Nlc3MgZXZlciBpbnN0YWxsZWQgYSByZW1vdGUgcmVu
ZGVyaW5nIGJhY2tlbmQgZm9yIDJEIGNhbnZhcy4KKworICAgICAgICBUbyBhdm9pZCB0aGlzIGN5
Y2xlLCB0dXJuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIncyBgbV9yZW5kZXJpbmdCYWNrZW5k
YCBpbnRvIGEgUmVmUHRyIGluc3RlYWQgb2YgYSBSZWYsIGFuZAorICAgICAgICBjbGVhciBpdCBv
dXQgaW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAuIFRoaXMgYWxzbyBtZWFucyB0aGF0IHdlIG5v
IGxvbmdlciBuZWVkIGEgc2VwYXJhdGUgYm9vbGVhbiBmbGFnIHRvCisgICAgICAgIGVuc3VyZSB0
aGF0IGBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKClgIGlz
IGlkZW1wb3RlbnQsIHNvIHdlIGFsc28gcmVtb3ZlCisgICAgICAgIGBtX2lzTGlzdGVuaW5nRm9y
SVBDYCBhbHRvZ2V0aGVyLgorCisgICAgICAgIFRlc3Q6IEdQVVByb2Nlc3MuRG9Ob3RMZWFrQ29u
bmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UKKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om9iamVjdENvdW50Rm9yVGVz
dGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcpOgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIHRlc3Rpbmctb25seSBTUEkgaG9vayB0byBhc2sg
Zm9yIHRoZSBsaXZlIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgY291bnQuIFRoaXMgcmV0cmll
dmVzIGEKKyAgICAgICAgc3RhdGljYWxseSBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBjb3VudCBv
ZiB0aGUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBpbnN0YW5jZXMgdGhhdCBleGlzdCBpbiB0
aGUgR1BVCisgICAgICAgIHByb2Nlc3M7IGltcG9ydGFudGx5LCB0aGlzIGlzIGRpZmZlcmVudCBm
cm9tIGFza2luZyB0aGUgR1BVUHJvY2VzcyBmb3IgdGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyBp
bgorICAgICAgICBgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnNgLCBzaW5jZSB0aGUgbGF0dGVyIHdp
bGwgYmUgMCBldmVuIHdoZW4gb25lIG9yIG1vcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc2Vz
IGFyZQorICAgICAgICBzdGlsbCBhbGl2ZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kKToKKworICAgICAgICBBbHNvIG1ha2UgYG1fcmVtb3RlRGlzcGxheUxpc3RzYCBhY2Nl
c3MgdGhyZWFkLXNhZmUgdXNpbmcgYSBMb2NrLiBUaGlzIGlzIGJlY2F1c2UgYGRpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZGAKKyAgICAgICAgaXMgbm93IGludm9rZWQgb24gdGhlIHJlbmRlcmlu
ZyBiYWNrZW5kIHRocmVhZCB3aGlsZSBwcm9jZXNzaW5nIHN0cmVhbWluZyBJUEMsIGJ1dCBgc3Rv
cExpc3RlbmluZ0ZvcklQQygpYAorICAgICAgICAod2hpY2ggZ29lcyB0aHJvdWdoIGFuZCBjbG9z
ZXMgSVBDIHN0cmVhbSBjb25uZWN0aW9ucyBmb3IgZWFjaCBvZiB0aGUgcmVtb3RlIGRpc3BsYXkg
bGlzdHMpIGlzIGludm9rZWQgb24gdGhlCisgICAgICAgIG1haW4gcnVubG9vcC4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKwor
ICAgICAgICBBZGQgdGhlIG5ldyB0ZXN0aW5nIFNQSSAoc2VlIGFib3ZlIGZvciBtb3JlIGRldGFp
bHMpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZv
clRlc3Rpbmc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OndlYlByb2Nlc3NDb25uZWN0aW9u
Q291bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94
eS5oOgorCiAyMDIxLTEwLTIwICBQZXIgQXJuZSBWb2xsYW4gPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSBpcyBub3QgYWx3YXlzIHNlbnQgdG8g
R1BVUApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IGZiMjA3YzQ2MzZjZDVmMWQ4YTI2MTVkNDgxYzVmYjdjMGVk
OTQzYWMuLjg3MGUzN2UwNWUwNTRlZDdhMDZkN2RlYmY1MjFlYWQ1ODEzMjEwNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTI0OCw2ICsyNDgsOCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIC8v
IHJlcGx5IGZyb20gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCiAgICAg
bV9jb25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9y
U3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25uZWN0
aW9uLT5vcGVuKCk7CisKKyAgICArK2dPYmplY3RDb3VudEZvclRlc3Rpbmc7CiB9CiAKIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKQEAgLTI2
Miw4ICsyNjQsMTIgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAg
IG1fbGliV2ViUlRDQ29kZWNzUHJveHktPmNsb3NlKCk7CiAjZW5kaWYKKworICAgIC0tZ09iamVj
dENvdW50Rm9yVGVzdGluZzsKIH0KIAordWludDY0X3QgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Z09iamVjdENvdW50Rm9yVGVzdGluZyA9IDA7CisKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogI2lmIEVO
QUJMRShST1VUSU5HX0FSQklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKaW5kZXggOWM1MjM2NDE0MjI0YTkyZGNmNjBkZGUxZTBjOGRiNmNjNTZlOGI0ZS4u
NDEwZjhlZjk1NzUxMjJiODIyNjU1OTllYWNjYWExNGM2MmNiMjExMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0x
NzAsNiArMTcwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUdyYXBoaWNzQ29udGV4dEdM
Rm9yVGVzdGluZyhHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAgICBp
bmxpbmUgc3RhdGljIHVpbnQ2NF90IG9iamVjdENvdW50Rm9yVGVzdGluZygpIHsgcmV0dXJuIGdP
YmplY3RDb3VudEZvclRlc3Rpbmc7IH0KKwogICAgIHVzaW5nIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBJUEM6OlNjb3BlZEFj
dGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4+OwogICAgIGNv
bnN0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXAmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXAo
KSBjb25zdCB7IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXA7IH0KIApAQCAtMjQy
LDYgKzI0NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZp
Z3VyZWQoKTsKICNlbmRpZgogCisgICAgc3RhdGljIHVpbnQ2NF90IGdPYmplY3RDb3VudEZvclRl
c3Rpbmc7CisKICAgICBSZWZQdHI8TG9nZ2VyPiBtX2xvZ2dlcjsKIAogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
LmNwcAppbmRleCAyZTc2MmE3ODE0MjRhOGQ4MTNiZWFmNzczYjk3YTBhYTMzYTI3M2IwLi43MGNj
MzgxYTFmNDkxYzQ0Zjk4ZGVhZTAwZjc1NjY4YzAwODFlYWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC00OTgsNiArNDk4LDExIEBAIHZvaWQgR1BVUHJvY2Vz
czo6c2V0Vm9yYmlzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQogfQogI2VuZGlmCiAKK3Zv
aWQgR1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6b2JqZWN0Q291bnRG
b3JUZXN0aW5nKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4
IDU0MWY1YjBmZjJjZDAxNmRkN2EyNDRhMzUzMmJlOTQ3ZWQ0YTg0OTEuLjBhZjQ5ODI3ODRhOGE2
NDJlODZhZDU2MDhhM2RjZDVhMTk1ZDg5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuaApAQCAtMTAwLDYgKzEwMCw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYg
YXBwbGljYXRpb25WaXNpYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25WaXNp
YmxlTmFtZTsgfQogCisgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisKIHByaXZhdGU6CiAgICAg
dm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsLCBTeW5jaHJvbm91cyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYjY0YmEx
NjRhOTJkN2JhNjFiZWRlZDJhNWFlMzAyYTYwMmVjYjhmNy4uYmE4NGE3YzUzMmUyYTAxYmEyMzQ5
NmI0ZmNiZDljNjAwNjY0OTQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTY4LDYgKzY4LDggQEAgbWVzc2FnZXMgLT4gR1BVUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAg
ICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAjZW5kaWYKKworICAgIFdlYlByb2Nl
c3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKCkgLT4gKHVpbnQ2NF90IGNvdW50KSBBc3luYwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCmluZGV4IDdmNjNmOTZjMTVkM2U0MmNmOTQ4YjhkZmJhOTFmNWIxZjQxZDFjMTguLjFk
MDIzZDJmOGM4YmNjOTgwYWZkZWExMWUwNmJmNGEyOTIyZGY0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIFEK
ICAgICA6IG1faW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpCiAgICAgLCBtX2ltYWdlQnVmZmVySWRl
bnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVudGlm
aWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKHJlbmRl
cmluZ0JhY2tlbmQpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQoJnJlbmRlcmluZ0JhY2tlbmQp
CiB7CiB9CiAKQEAgLTUzLDggKzUzLDYgQEAgR3JhcGhpY3NDb250ZXh0JiBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCgpCiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIEFTU0VSVCghbV9pc0xpc3Rl
bmluZ0ZvcklQQyk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IHRydWU7CiAgICAgLy8gRklY
TUU6IENhbiB3ZSBhdm9pZCBzeW5jaHJvbm91cyBkaXNwYXRjaCBoZXJlIGJ5IGFkanVzdGluZyB0
aGUgYXNzZXJ0aW9uIGluIGBDb25uZWN0aW9uOjplbnF1ZXVlTWF0Y2hpbmdNZXNzYWdlc1RvTWVz
c2FnZVJlY2VpdmVRdWV1ZWA/CiAgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFsmXSB7CiAg
ICAgICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0YXJ0UmVjZWl2
aW5nTWVzc2FnZXMoKnRoaXMsIE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9iamVjdCgpLnRv
VUludDY0KCkpOwpAQCAtNjMsMTEgKzYxLDggQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3RvcExpc3RlbmluZ0ZvcklQQygpCiB7Ci0gICAgaWYgKCFtX2lzTGlzdGVuaW5nRm9y
SVBDKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNv
bm5lY3Rpb24oKS5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXIub2JqZWN0KCkudG9VSW50NjQoKSk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IGZhbHNl
OworICAgIGlmIChhdXRvIHJlbmRlcmluZ0JhY2tlbmQgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVuZGVy
aW5nQmFja2VuZCwgeyB9KSkKKyAgICAgICAgcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVj
dGlvbigpLnN0b3BSZWNlaXZpbmdNZXNzYWdlcyhNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5v
YmplY3QoKS50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzYXZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDYyYTQ5NzA2ZTI4YjAxZTBh
NmI4NjliZDMzZTYyNGVjN2Q4YjM2OTEuLmI0NGUzODI0ODA4YTAwY2Y3ZDk4MTFjMDhkMDNiYWI4
OTU0NjE1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMTUyLDkgKzE1Miw4IEBA
IHByaXZhdGU6CiAgICAgUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOwog
ICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRl
bnRpZmllcjsKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVu
dGlmaWVyOwotICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tl
bmQ7CisgICAgUmVmUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2Vu
ZDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwot
ICAgIGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmNThjMzY5NmY1M2VmZDE1
MGIxZGI5MGUzMWIzOWViNTY2YjVkY2ZjLi44MzNjMDgzYmY3M2I4MzgyOGZjNGIzZTcwNWQ0N2I3
ZjQxMzRlMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMDYsNiArMTA2LDggQEAg
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3Rv
cFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQo
KSk7CisKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrIH07CiAg
ICAgZm9yIChhdXRvJiByZW1vdGVDb250ZXh0IDogc3RkOjpleGNoYW5nZShtX3JlbW90ZURpc3Bs
YXlMaXN0cywgeyB9KSkKICAgICAgICAgcmVtb3RlQ29udGV4dC5zdG9wTGlzdGVuaW5nRm9ySVBD
KCk7CiB9CkBAIC0xMjcsNyArMTI5LDEwIEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlIGhhbmRsZSwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciYgcmVt
b3RlRGlzcGxheUxpc3QpCiB7Ci0gICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURp
c3BsYXlMaXN0KTsKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3JlbW90ZURpc3Bs
YXlMaXN0c0xvY2sgfTsKKyAgICAgICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURp
c3BsYXlMaXN0KTsKKyAgICB9CiAgICAgTUVTU0FHRV9DSEVDSyhyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MtPndlYlByb2Nlc3NJZGVudGlmaWVyKCksICJTZW5kaW5nIGRpZENyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZCgpIG1lc3NhZ2UgdG8gdGhlIHdyb25nIHdlYiBwcm9jZXNzLiIpOwogICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKFdURk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9i
amVjdCgpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaAppbmRleCAzMWFkOTI5ODk5YmRjZmI4MDBlYWViZGNhOWIzMWY4YWE5MzBhYzQ5Li43Yjdm
MjE5YWMzMDQyNzlhZDM5N2YyNDk2NWUwZjAwYjljYmE2NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmgKQEAgLTEzMyw3ICsxMzMsOSBAQCBwcml2YXRlOgogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0
UGl4ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhl
bEJ1ZmZlclNoYXJlZE1lbW9yeTsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0
IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKLSAgICBXZWFrSGFzaFNldDxSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyPiBtX3JlbW90ZURpc3BsYXlMaXN0czsKKworICAgIExvY2sgbV9yZW1v
dGVEaXNwbGF5TGlzdHNMb2NrOworICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI+IG1fcmVtb3RlRGlzcGxheUxpc3RzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZW1vdGVE
aXNwbGF5TGlzdHNMb2NrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmcuaAppbmRleCBmNmExY2ZkODBkMzRiN2MxOWRhNTJjYTU2NDBhMTdlNmFj
ZTk4ODQyLi45YTk5NDYxYjQxZTQ1OTVkMGUwMzViZmFjYjFkNzVhNmQ4MmNhMGIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVjdCBXS0FwcFBy
aXZhY3lSZXBvcnRUZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9jbGVhckFwcFByaXZhY3lSZXBvcnRU
ZXN0aW5nRGF0YToodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAogLSAodm9pZClf
Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dLTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+KXByaXZhdGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDU5ZDllZDE0ZDMyOTNhZTBkZDExNzkxZDBkMWU3
ODQ1MWRlOGNhNjQuLmM2OTNlNTRlMzg5MWFmMTQ0ZWUxZTVjMWE3MjEzYmI2YmJkYjkwNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0
aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oIgogCiAjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
LmgiCisjaW1wb3J0ICJHUFVQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCkBAIC00MjMsNiAr
NDI0LDE5IEBAIC0gKHZvaWQpX2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOih2b2lk
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX2dwdVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikp
Y29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IF9wYWdlLT5wcm9j
ZXNzKCkucHJvY2Vzc1Bvb2woKS5ncHVQcm9jZXNzKCk7CisgICAgaWYgKCFncHVQcm9jZXNzKSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKDApOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZ3B1UHJvY2Vzcy0+d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoW2Nv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0odWludDY0
X3QgY291bnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQpOworICAgIH0pOwor
fQorCiAtICh2b2lkKV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rpbmc6KGlk
IDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9yIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IGY0N2E3ZDMxZTYyZGY2YjY5ZWQ1OGM2N2Ux
ODVkOTRmOGE1N2ZjZmYuLmFiOTA0ZDA0NTg4ZDhjZGMwNDgzMDE5ZWUxYTcxMWI5YWU4MDMwYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3Bw
CkBAIC0zOTksNiArMzk5LDExIEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JU
ZXN0aW5nKCkKICAgICBwcm9jZXNzSXNSZWFkeVRvRXhpdCgpOwogfQogCit2b2lkIEdQVVByb2Nl
c3NQcm94eTo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbkNv
dW50Rm9yVGVzdGluZygpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewogICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFByb2Nlc3MsICIlcCAtIEdQVVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2U6Iiwg
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgK
aW5kZXggNzBjYzIxNTBlYTcxMTE2NjVmMDQ2NTYzMzE5NDc0ZmVkYjljMThlYy4uZDA5NjRhZDMy
MWQ5MTc4NzM4NWMwZjQyZDVhNDViZTkzOThhNjc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcygpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0
aW5nKCk7CisgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgR1BVUHJvY2Vzc1Byb3h5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMDFjMjU5YjU2ODViNDc5MWViMjM4N2RhMjhlZGU0OTE2MzNlMWE0
ZS4uMTA4Y2I0ODU3YzVjNWMzNGE0Yzc4NDc3MGRiMTNkNGMyNzU3ZjA2NSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDIxLTEwLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04gKHIyODQwNzkpOiBBdWRpbyBjb250aW51ZXMgcGxheWluZyBvbiBodWx1
LmNvbSBpbiBwcml2YXRlIGJyb3dzaW5nIG1vZGUgYWZ0ZXIgY2xvc2luZyB0aGUgdGFiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIxMTMKKyAgICAg
ICAgcmRhcjovLzg0Mzk5MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBHUFUgdG8g
d2ViIHByY29lc3MgY29ubmVjdGlvbiBpc24ndCBsZWFrZWQgaW4gdGhlIEdQVSBwcm9jZXNzLiBT
ZWUgV2ViS2l0CisgICAgICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1t
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdl
LWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50XSk6
CisKIDIwMjEtMTAtMjAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPiBhbmQgRGFuYSBF
c3RyYSA8ZGVzdHJhQGFwcGxlLmNvbT4KIAogICAgICAgICBtYWNPUyBrZXktZHJpdmVuIHNtb290
aCBzY3JvbGxpbmcgZG9lcyBub3Qgc3RvcCB3aGVuIGZvY3VzIGNoYW5nZXMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYzE3OTE2NzZiNThhNTk0YWEwZWY4YjM0NGRiYTFjNTBiYzJkNmMxYi4u
NTVhZTEyN2UxZjYwOGM3ZTIxYjM0NmVkNDM2MjlhZGVjMzc5MTcyNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEyOTEsNiArMTI5MSw3IEBACiAJCUY0RTBBMkI0MjEyMjQwMkIwMEFGN0M3
RiAvKiBpbWFnZS1hbmQtZmlsZS11cGxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwQTJCMzIxMjIzRjJEMDBBRjdDN0YgLyog
aW1hZ2UtYW5kLWZpbGUtdXBsb2FkLmh0bWwgKi87IH07CiAJCUY0RTBBMkI4MjEyMjg0NzQwMEFG
N0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTBBMkI3MjEyMjg0NzQwMEFGN0M3RiAvKiBUZXN0
RmlsZVByb21pc2VSZWNlaXZlci5tbSAqLzsgfTsKIAkJRjRFM0Q4MDgyMEY3MEJCOTAwN0I1OEM1
IC8qIHNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUzRDgwNzIwRjcwOEU0
MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUtYXJ0aWNsZS5odG1sICovOyB9
OworCQlGNEU3QTY2MzI3MjIyQ0E5MDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU3
QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCAqLzsgfTsKIAkJ
RjRFQjRFOTEyMzI4QUMzMDAwNTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQjRFOTAyMzI4
QUMzMDAwNTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tICovOyB9OwogCQlGNEVD
ODA5NDI2MEQzMDU0MDAxMDMxMUQgLyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVDODA5MzI2
MEQyRTYyMDAxMDMxMUQgLyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCAqLzsgfTsKIAkJRjRG
MTM3OTIxRDlCNjgzRTAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5o
dG1sICovOyB9OwpAQCAtMTQ0MSw2ICsxNDQyLDcgQEAKIAkJCQkyREU3MUIwMDFENDlDM0VEMDA5
MDQwOTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0M0
ODZCQTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMjZERjVBNjMxNUEyQTI3RTAwMzY4OUMyIC8qIENhbmNlbExvYWRGcm9tUmVz
b3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNEU3QTY2
MzI3MjIyQ0E5MDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNv
dXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkM3MUQ4
ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTlCRDQyMzlDMUUwNEMwMUMwMDIwMDM5NSAvKiBjaGluZXNlLWNo
YXJhY3Rlci13aXRoLWltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0zMTc5LDYg
KzMxODEsNyBAQAogCQlGNEUwQTJCNjIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNl
UmVjZWl2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMEEyQjcyMTIyODQ3NDAwQUY3QzdGIC8qIFRl
c3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdEZpbGVQ
cm9taXNlUmVjZWl2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTNEODA3
MjBGNzA4RTQwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2lnbmlmaWNhbnQtdGV4dC1taWxlc3Rv
bmUtYXJ0aWNsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFN0E2NjIy
NzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiY2FudmFzLWltYWdlLWRhdGEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0RUI0RThGMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFk
ZGl0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5oOyBwYXRo
ID0gY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwogCQlGNEVCNEU5MDIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJvdmlkZXJBZGRp
dGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5t
bTsgcGF0aCA9IGNvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CiAJCUY0RUM4MDkzMjYwRDJFNjIwMDEwMzExRCAvKiBzaW1wbGUtaW1h
Z2Utb3ZlcmxheS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNpbXBsZS1pbWFn
ZS1vdmVybGF5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDA0MSw2ICs0
MDQ0LDcgQEAKIAkJCQlGNDFBQjk5NzFFRjQ2OTJDMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFn
ZS1saW5rLWFuZC1pbnB1dC5odG1sICovLAogCQkJCTQ2NEM3NjRDMjMwREY4MzIwMEFGQjAyMCAv
KiBCYWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMgKi8sCiAJCQkJMkRFNzFB
RkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sICovLAorCQkJCUY0RTdBNjYy
MjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sICovLAogCQkJCTJFRkYw
NkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwg
Ki8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwgKi8sCiAJCQkJODM5QUEzNUUyMUEyNkFDRDAwOTgwREQ2IC8qIGNsaWVudC1z
aWRlLXJlZGlyZWN0Lmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KaW5kZXggODQwOTY5NzU2MTQ0NmViZjhhZThjNjVm
ZGJjOWUxMDIyOTQzZDFmMy4uNDRjOGE4ZGU5ODBjY2MxMDJiMjE3YWE4NjlhZWI4YzhlNTUwZjYy
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQ
cm9jZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BV
UHJvY2Vzcy5tbQpAQCAtMjgyLDYgKzI4MiwyMSBAQCBURVNUKEdQVVByb2Nlc3MsIE9ubHlMYXVu
Y2hlc0dQVVByb2Nlc3NXaGVuTmVjZXNzYXJ5TWVkaWFGZWF0dXJlRGV0ZWN0aW9uKQogICAgIEVY
UEVDVF9FUShbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50
aWZpZXJdLCAwKTsKIH0KIAorVEVTVChHUFVQcm9jZXNzLCBEb05vdExlYWtDb25uZWN0aW9uQWZ0
ZXJDbG9zaW5nV2ViUGFnZSkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKVtj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgdHJ1ZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkIikpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRnZSBXS1ByZWZl
cmVuY2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgZmFsc2UsIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCIp
KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDpAImNhbnZhcy1pbWFnZS1kYXRhIl07CisgICAgRVhQRUNUX0VRKDFVLCBbd2ViVmll
dyBncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKTsKKyAgICBbd2ViVmlldyBfY2xvc2Vd
OworCisgICAgd2hpbGUgKFt3ZWJWaWV3IGdwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudF0p
CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7Cit9CisKICNpZiBFTkFC
TEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIFRFU1QoR1BVUHJvY2VzcywgTGVnYWN5Q0RNKQog
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52
YXMtaW1hZ2UtZGF0YS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9jYW52YXMtaW1hZ2UtZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1Y2ExMjM2MDFlZmZkYjM0OTM1
Y2JiNmE3NDkwYjBhNjQwYjZkNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0bWwKQEAgLTAsMCArMSwz
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorY2FudmFzIHsK
KyAgICB3aWR0aDogMTYwcHg7CisgICAgaGVpZ2h0OiAxNjBweDsKKyAgICBkaXNwbGF5OiBibG9j
azsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzdHJvbmc+U291cmNlPC9zdHJvbmc+
Cis8Y2FudmFzIGlkPSJzb3VyY2UiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIj48L2NhbnZhcz4K
KzxzdHJvbmc+RGVzdGluYXRpb248L3N0cm9uZz4KKzxjYW52YXMgaWQ9ImRlc3RpbmF0aW9uIiB3
aWR0aD0iMzIwIiBoZWlnaHQ9IjMyMCI+PC9jYW52YXM+Cis8c2NyaXB0PgorY29uc3Qgc291cmNl
Q2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdXJjZSIpOworY29uc3Qgc291cmNl
Q29udGV4dCA9IHNvdXJjZUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworc291cmNlQ29udGV4dC5z
YXZlKCk7Citzb3VyY2VDb250ZXh0LnN0cm9rZVN0eWxlID0gInJlZCI7Citzb3VyY2VDb250ZXh0
LmZpbGxTdHlsZSA9ICJyZ2JhKDIwMCwgMTAwLCAxMDAsIDAuMjUpIjsKK3NvdXJjZUNvbnRleHQu
bGluZVdpZHRoID0gNDsKK3NvdXJjZUNvbnRleHQucmVjdCg0MCwgNDAsIDI0MCwgMjQwKTsKK3Nv
dXJjZUNvbnRleHQuc3Ryb2tlKCk7Citzb3VyY2VDb250ZXh0LmZpbGwoKTsKK3NvdXJjZUNvbnRl
eHQucmVzdG9yZSgpOworCitjb25zdCBpbWFnZURhdGEgPSBzb3VyY2VDb250ZXh0LmdldEltYWdl
RGF0YSgwLCAwLCAzMjAsIDMyMCk7Citjb25zdCBkZXN0aW5hdGlvbkNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkZXN0aW5hdGlvbiIpOworY29uc3QgZGVzdGluYXRpb25Db250ZXh0
ID0gZGVzdGluYXRpb25DYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2Rlc3RpbmF0aW9uQ29udGV4
dC5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAwLCAwLCAwLCAzMjAsIDMyMCk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3LmgKaW5kZXggOWIxMWE3OTUyNGU4MTViMWFjMDkyN2M1MDk1MDFlZWQwNTUzZDQyZi4uMWZh
NjE3NTc2ODEyNjFlMTZlNzdlZTE2NzMyM2FhNTc3YTU5NzljYyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTUzLDYgKzUzLDcgQEAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3IDxVSVRleHRJbnB1dFByaXZhdGUsIFVJVGV4dElu
cHV0SW50ZXJuYWwsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudCwgVUlXS0ludGVyYWN0aW9uVmll
d1Byb3RvY29sLCBVSVRleHRJbnB1dFRva2VuaXplcj4gKnRleHRJbnB1dENvbnRlbnRWaWV3Owog
LSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3luY2hyb25vdXNseVJlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3Q7CiAjZW5kaWYKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNv
dW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqY29udGVudHNB
c1N0cmluZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqdGFnc0luQm9keTsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICop
cGFnZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5k
ZXggYzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkwYTFjNjRlNzc3ZmE1OGY4Yi4uMjk2YjliMDg5Y2Jj
Mjk0MTE2NGRjZDA4MTg2MTU4ZTJhODY1ZmQyYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTU0LDYgKzE1NCwxOCBAQCAtIChOU0FycmF5PF9XS1Rl
eHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRz
SW5SZWN0OgogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorLSAodWludDY0X3Qp
Z3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Cit7CisgICAgX19ibG9jayBib29sIGRvbmUg
PSBmYWxzZTsKKyAgICBfX2Jsb2NrIE5TVUludGVnZXIgY291bnQgPSAwOworICAgIFtzZWxmIF9n
cHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl4oTlNVSW50ZWdlciByZXN1
bHQpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIGNvdW50ID0gcmVzdWx0OworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgcmV0dXJuIGNv
dW50OworfQorCiAtIChOU1N0cmluZyAqKWNvbnRlbnRzQXNTdHJpbmcKIHsKICAgICBfX2Jsb2Nr
IGJvb2wgZG9uZSA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442184</attachid>
            <date>2021-10-22 12:12:13 -0700</date>
            <delta_ts>2021-10-22 13:21:29 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-232113-20211022121213.patch</filename>
            <type>text/plain</type>
            <size>27824</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExMWUyZGIyNGQ3ZmRlYzQ4
ZDIzZmZiYmMxN2M3ZjZhYWMxYTA0YTYuLjJlNzQxMTM2N2QxMDhkNmM4N2QzYjYwOWRjOTA3NzFj
YmU3Mzc4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBJIGluYWR2ZXJ0ZW50bHkgaW50cm9kdWNlZCBhIHJlZi1jb3VudGluZyBjeWNs
ZSBiZXR3ZWVuIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIKKyAgICAgICAgYWZ0ZXIgSVBDIHN0cmVhbSByZWZhY3RvcmluZyBpbiByMjg0MDc5LCBz
aW5jZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIGRpcmVjdGx5IHN0cm9uZ2x5IHJlZnMgdGhl
IHJlbmRlcmluZworICAgICAgICBiYWNrZW5kLCBhbmQgdGhlIHJlbmRlcmluZyBiYWNrZW5kIGlu
ZGlyZWN0bHkgaG9sZHMgb24gdG8gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcnMgdGhyb3VnaCBy
ZW1vdGUgaW1hZ2UKKyAgICAgICAgYnVmZmVycyBpbiB0aGUgcmVzb3VyY2UgY2FjaGUuIFNpbmNl
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgYWxzbyBzdHJvbmdseSByZWZzICBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIGFzCisgICAgICAgIHdlbGwsIHRoaXMgY2F1c2VkIHRoZSBlbnRpcmUgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyB0byBsZWFrIGFmdGVyIHRlYXJpbmcgZG93biB0aGUgY29u
bmVjdGVkIHdlYiBwcm9jZXNzLCBpZgorICAgICAgICB0aGUgd2ViIHByb2Nlc3MgZXZlciBpbnN0
YWxsZWQgYSByZW1vdGUgcmVuZGVyaW5nIGJhY2tlbmQgZm9yIDJEIGNhbnZhcy4KKworICAgICAg
ICBUbyBhdm9pZCB0aGlzIGN5Y2xlLCB0dXJuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIncyBg
bV9yZW5kZXJpbmdCYWNrZW5kYCBpbnRvIGEgUmVmUHRyIGluc3RlYWQgb2YgYSBSZWYsIGFuZAor
ICAgICAgICBjbGVhciBpdCBvdXQgaW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAuIFRoaXMgYWxz
byBtZWFucyB0aGF0IHdlIG5vIGxvbmdlciBuZWVkIGEgc2VwYXJhdGUgYm9vbGVhbiBmbGFnIHRv
CisgICAgICAgIGVuc3VyZSB0aGF0IGBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlz
dGVuaW5nRm9ySVBDKClgIGlzIGlkZW1wb3RlbnQsIHNvIHdlIGFsc28gcmVtb3ZlCisgICAgICAg
IGBtX2lzTGlzdGVuaW5nRm9ySVBDYCBhbHRvZ2V0aGVyLgorCisgICAgICAgIFRlc3Q6IEdQVVBy
b2Nlc3MuRG9Ob3RMZWFrQ29ubmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UKKworICAgICAgICAq
IEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om9iamVjdENvdW50Rm9yVGVzdGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25D
b3VudEZvclRlc3RpbmcpOgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIHRlc3Rpbmctb25s
eSBTUEkgaG9vayB0byBhc2sgZm9yIHRoZSBsaXZlIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
Y291bnQuIFRoaXMgcmV0cmlldmVzIGEKKyAgICAgICAgc3RhdGljYWxseSBpbmNyZW1lbnRlZC9k
ZWNyZW1lbnRlZCBjb3VudCBvZiB0aGUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBpbnN0YW5j
ZXMgdGhhdCBleGlzdCBpbiB0aGUgR1BVCisgICAgICAgIHByb2Nlc3M7IGltcG9ydGFudGx5LCB0
aGlzIGlzIGRpZmZlcmVudCBmcm9tIGFza2luZyB0aGUgR1BVUHJvY2VzcyBmb3IgdGhlIG51bWJl
ciBvZiBjb25uZWN0aW9ucyBpbgorICAgICAgICBgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnNgLCBz
aW5jZSB0aGUgbGF0dGVyIHdpbGwgYmUgMCBldmVuIHdoZW4gb25lIG9yIG1vcmUgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc2VzIGFyZQorICAgICAgICBzdGlsbCBhbGl2ZS4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyKToKKworICAgICAgICBBbHNvIGZpeCBh
IGxlYWsgY2F1c2VkIGJ5IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgYW5kIFJlbW90ZUltYWdl
QnVmZmVyIHN0cm9uZ2x5IHJlZmZpbmcgZWFjaCBvdGhlci4gU2luY2UKKyAgICAgICAgUmVtb3Rl
SW1hZ2VCdWZmZXIgb3ducyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLCB0aGUgYmFja3BvaW50
ZXIgZnJvbSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIHRvIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgc2hvdWxkIGJlIHdlYWssIG5vdCBzdHJvbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZv
ck1lZGlhKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6c3RvcExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6
CisKKyAgICAgICAgQWxzbyBtYWtlIGBtX3JlbW90ZURpc3BsYXlMaXN0c2AgYWNjZXNzIHRocmVh
ZC1zYWZlIHVzaW5nIGEgTG9jay4gVGhpcyBpcyBiZWNhdXNlIGBkaWRDcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmRgCisgICAgICAgIGlzIG5vdyBpbnZva2VkIG9uIHRoZSByZW5kZXJpbmcgYmFja2Vu
ZCB0aHJlYWQgd2hpbGUgcHJvY2Vzc2luZyBzdHJlYW1pbmcgSVBDLCBidXQgYHN0b3BMaXN0ZW5p
bmdGb3JJUEMoKWAKKyAgICAgICAgKHdoaWNoIGdvZXMgdGhyb3VnaCBhbmQgY2xvc2VzIElQQyBz
dHJlYW0gY29ubmVjdGlvbnMgZm9yIGVhY2ggb2YgdGhlIHJlbW90ZSBkaXNwbGF5IGxpc3RzKSBp
cyBpbnZva2VkIG9uIHRoZQorICAgICAgICBtYWluIHJ1bmxvb3AuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisKKyAgICAgICAg
QWRkIHRoZSBuZXcgdGVzdGluZyBTUEkgKHNlZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9ncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5n
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9y
VGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKwog
MjAyMS0xMC0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlciBzaG91bGQgYmUg
YW4gYXN5bmMgSVBDIHN0cmVhbSBtZXNzYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZmIyMDdjNDYzNmNk
NWYxZDhhMjYxNWQ0ODFjNWZiN2MwZWQ5NDNhYy4uODcwZTM3ZTA1ZTA1NGVkN2EwNmQ3ZGViZjUy
MWVhZDU4MTMyMTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMjQ4LDYgKzI0OCw4IEBAIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYg
Z3B1UHJvY2VzcywgV2ViCiAgICAgLy8gcmVwbHkgZnJvbSB0aGUgR1BVIHByb2Nlc3MsIHdoaWNo
IHdvdWxkIGJlIHVuc2FmZS4KICAgICBtX2Nvbm5lY3Rpb24tPnNldE9ubHlTZW5kTWVzc2FnZXNB
c0Rpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2Fn
ZSh0cnVlKTsKICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKKworICAgICsrZ09iamVjdENvdW50
Rm9yVGVzdGluZzsKIH0KIAogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKQpAQCAtMjYyLDggKzI2NCwxMiBAQCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiAgICAgbV9saWJXZWJSVENDb2RlY3NQcm94eS0+Y2xvc2UoKTsK
ICNlbmRpZgorCisgICAgLS1nT2JqZWN0Q291bnRGb3JUZXN0aW5nOwogfQogCit1aW50NjRfdCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnT2JqZWN0Q291bnRGb3JUZXN0aW5nID0gMDsKKwog
dm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24pCiB7CiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUo
QVZBVURJT19ST1VUSU5HX0FSQklURVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA5YzUyMzY0MTQyMjRhOTJkY2Y2
MGRkZTFlMGM4ZGI2Y2M1NmU4YjRlLi40MTBmOGVmOTU3NTEyMmI4MjI2NTU5OWVhY2NhYTE0YzYy
Y2IyMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE3MCw2ICsxNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWxlYXNlR3JhcGhpY3NDb250ZXh0R0xGb3JUZXN0aW5nKEdyYXBoaWNzQ29udGV4dEdMSWRlbnRp
Zmllcik7CiAjZW5kaWYKIAorICAgIGlubGluZSBzdGF0aWMgdWludDY0X3Qgb2JqZWN0Q291bnRG
b3JUZXN0aW5nKCkgeyByZXR1cm4gZ09iamVjdENvdW50Rm9yVGVzdGluZzsgfQorCiAgICAgdXNp
bmcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCA9IEhhc2hNYXA8UmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIsIElQQzo6U2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kPj47CiAgICAgY29uc3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCYgcmVt
b3RlUmVuZGVyaW5nQmFja2VuZE1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZE1hcDsgfQogCkBAIC0yNDIsNiArMjQ0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
c3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgdWlu
dDY0X3QgZ09iamVjdENvdW50Rm9yVGVzdGluZzsKKwogICAgIFJlZlB0cjxMb2dnZXI+IG1fbG9n
Z2VyOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IDJlNzYyYTc4MTQyNGE4ZDgxM2JlYWY3
NzNiOTdhMGFhMzNhMjczYjAuLjcwY2MzODFhMWY0OTFjNDRmOThkZWFlMDBmNzU2NjhjMDA4MWVh
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTQ5OCw2ICs0
OTgsMTEgQEAgdm9pZCBHUFVQcm9jZXNzOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChib29sIGVu
YWJsZWQpCiB9CiAjZW5kaWYKIAordm9pZCBHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlv
bkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpvYmplY3RDb3VudEZvclRlc3RpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNTQxZjViMGZmMmNkMDE2ZGQ3YTI0NGEzNTMyYmU5NDdl
ZDRhODQ5MS4uMGFmNDk4Mjc4NGE4YTY0MmU4NmFkNTYwOGEzZGNkNWExOTVkODljNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC0xMDAsNiArMTAwLDggQEAgcHVibGlj
OgogCiAgICAgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblZpc2libGVOYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9hcHBsaWNhdGlvblZpc2libGVOYW1lOyB9CiAKKyAgICB2b2lkIHdlYlByb2Nlc3ND
b25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3Qp
PiYmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwsIFN5
bmNocm9ub3VzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5t
ZXNzYWdlcy5pbgppbmRleCBiNjRiYTE2NGE5MmQ3YmE2MWJlZGVkMmE1YWUzMDJhNjAyZWNiOGY3
Li5iYTg0YTdjNTMyZTJhMDFiYTIzNDk2YjRmY2JkOWM2MDA2NjQ5NDRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNjgsNiArNjgs
OCBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNpZiBFTkFCTEUo
Q0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5n
IGRvbWFpbiwgU3RyaW5nIGtleSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkK
ICNlbmRpZgorCisgICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAtPiAo
dWludDY0X3QgY291bnQpIEFzeW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZWVhOTJmZGZhZmFmODYyZjAwZDIx
Mjk0ODNlNzE5MWMxN2M2YjY3Mi4uMDg5MzU2ZWMyNjliZjBmODk1ZDdhNzIyM2U0YzZiZjM1OTdm
YzY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMzcsNyArMzcsNyBAQCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyKEltYWdl
QnVmZmVyJiBpbWFnZUJ1ZmZlciwgUQogICAgIDogbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikK
ICAgICAsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKICAg
ICAsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0gICAgLCBt
X3JlbmRlcmluZ0JhY2tlbmQocmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcmVuZGVyaW5nQmFj
a2VuZCgmcmVuZGVyaW5nQmFja2VuZCkKIHsKIH0KIApAQCAtNTMsMTggKzUzLDEzIEBAIEdyYXBo
aWNzQ29udGV4dCYgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRleHQoKQog
CiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkK
IHsKLSAgICBBU1NFUlQoIW1faXNMaXN0ZW5pbmdGb3JJUEMpOwotICAgIG1faXNMaXN0ZW5pbmdG
b3JJUEMgPSB0cnVlOwogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigp
LnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXMoKnRoaXMsIE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVy
Lm9iamVjdCgpLnRvVUludDY0KCkpOwogfQogCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIGlmICghbV9pc0xpc3RlbmluZ0ZvcklQ
QykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zdHJlYW1Db25u
ZWN0aW9uKCkuc3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVy
Lm9iamVjdCgpLnRvVUludDY0KCkpOwotICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSBmYWxzZTsK
KyAgICBpZiAoYXV0byByZW5kZXJpbmdCYWNrZW5kID0gc3RkOjpleGNoYW5nZShtX3JlbmRlcmlu
Z0JhY2tlbmQsIHsgfSkpCisgICAgICAgIHJlbmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNvbm5lY3Rp
b24oKS5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2Jq
ZWN0KCkudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c2F2ZSgpCkBAIC00MjYsOSArNDIxLDExIEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50CiAKIHZv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxh
eWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQog
ewotICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRo
cmVhZChpZGVudGlmaWVyLCBbaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyLmNvcHlSZWYoKSwg
ZGVzdGluYXRpb25dKE1lZGlhUGxheWVyJiBwbGF5ZXIpIHsKLSAgICAgICAgLy8gSXQgaXMgY3Vy
cmVudGx5IG5vdCBzYWZlIHRvIGNhbGwgcGFpbnRGcmFtZUZvck1lZGlhKCkgb2ZmIHRoZSBtYWlu
IHRocmVhZC4KLSAgICAgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5wYWludEZyYW1lRm9yTWVk
aWEocGxheWVyLCBkZXN0aW5hdGlvbik7CisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5wZXJmb3Jt
V2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIsIFt3ZWFrSW1hZ2VCdWZmZXIg
PSBtX2ltYWdlQnVmZmVyLCBkZXN0aW5hdGlvbl0oTWVkaWFQbGF5ZXImIHBsYXllcikgeworICAg
ICAgICBpZiAoUmVmUHRyIGltYWdlQnVmZmVyID0gd2Vha0ltYWdlQnVmZmVyLmdldCgpKSB7Cisg
ICAgICAgICAgICAvLyBJdCBpcyBjdXJyZW50bHkgbm90IHNhZmUgdG8gY2FsbCBwYWludEZyYW1l
Rm9yTWVkaWEoKSBvZmYgdGhlIG1haW4gdGhyZWFkLgorICAgICAgICAgICAgaW1hZ2VCdWZmZXIt
PmNvbnRleHQoKS5wYWludEZyYW1lRm9yTWVkaWEocGxheWVyLCBkZXN0aW5hdGlvbik7CisgICAg
ICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNjJhNDk3
MDZlMjhiMDFlMGE2Yjg2OWJkMzNlNjI0ZWM3ZDhiMzY5MS4uNTk4MmNiYWViODdlNjYwYzViYWI3
N2E2ZDdhMjk1NzAzNTdiYmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNDks
MTIgKzE0OSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVj
dGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAotICAgIFJlZjxXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAgICBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVy
PiBtX2ltYWdlQnVmZmVyOwogICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
PiBtX3JlbmRlcmluZ0JhY2tlbmQ7CisgICAgUmVmUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+
IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1f
bWFza0ltYWdlQnVmZmVyOwotICAgIGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRl
eCA1Yzg4MTkzMDg3NTA2OTM2NDZiNjdhNWM0Y2U3MTcxZjNiZTFkYzc1Li5hMjIwZWEwODNmOTRk
OGE3NTQzY2Y1MTE1Y2RjNDI1YTJiMGQ4OWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBA
IC0xMTEsNiArMTExLDggQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVu
aW5nRm9ySVBDKCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fc3RyZWFt
Q29ubmVjdGlvbi0+c3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIudG9VSW50NjQoKSk7CiAgICAgbV9zdHJlYW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5n
TWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSk7CisKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZW1vdGVEaXNwbGF5TGlzdHNM
b2NrIH07CiAgICAgZm9yIChhdXRvJiByZW1vdGVDb250ZXh0IDogc3RkOjpleGNoYW5nZShtX3Jl
bW90ZURpc3BsYXlMaXN0cywgeyB9KSkKICAgICAgICAgcmVtb3RlQ29udGV4dC5zdG9wTGlzdGVu
aW5nRm9ySVBDKCk7CiB9CkBAIC0xMzIsNyArMTM0LDEwIEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlciYgcmVtb3RlRGlzcGxheUxpc3QpCiB7Ci0gICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRk
KHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3Jl
bW90ZURpc3BsYXlMaXN0c0xvY2sgfTsKKyAgICAgICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRk
KHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB9CiAgICAgTUVTU0FHRV9DSEVDSyhyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX2dwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGlmaWVyKCksICJTZW5kaW5nIGRpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZCgpIG1lc3NhZ2UgdG8gdGhlIHdyb25nIHdlYiBwcm9jZXNzLiIpOwog
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKFdURk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLm9iamVjdCgpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAppbmRleCA5NWRmOGVhNTU1NmY5MjNjZjQxZjY3NmEzZWRjZGNlYmY5NzAz
ZjBkLi5iNmUxOWRhYzkzZGY3MmI5MTQ1ZjUxZTBjMjExNTJkYzExNjk2Y2NiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKQEAgLTEzMyw3ICsxMzMsOSBAQCBwcml2YXRlOgogICAgIElQQzo6U2VtYXBo
b3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4g
bV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJj
ZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKLSAgICBXZWFrSGFzaFNldDxS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyPiBtX3JlbW90ZURpc3BsYXlMaXN0czsKKworICAgIExv
Y2sgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrOworICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI+IG1fcmVtb3RlRGlzcGxheUxpc3RzIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCBmNmExY2ZkODBkMzRiN2MxOWRhNTJjYTU2
NDBhMTdlNmFjZTk4ODQyLi45YTk5NDYxYjQxZTQ1OTVkMGUwMzViZmFjYjFkNzVhNmQ4MmNhMGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVj
dCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9jbGVhckFwcFByaXZh
Y3lSZXBvcnRUZXN0aW5nRGF0YToodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAog
LSAodm9pZClfY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dL
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+KXByaXZhdGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX2dwdVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDU5ZDllZDE0ZDMyOTNhZTBkZDEx
NzkxZDBkMWU3ODQ1MWRlOGNhNjQuLmM2OTNlNTRlMzg5MWFmMTQ0ZWUxZTVjMWE3MjEzYmI2YmJk
YjkwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdUZXN0aW5nLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oIgogCiAjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5LmgiCisjaW1wb3J0ICJHUFVQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIk1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCkBA
IC00MjMsNiArNDI0LDE5IEBAIC0gKHZvaWQpX2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAgICAgfSk7CiB9CiAKKy0gKHZv
aWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNV
SW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IF9w
YWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5ncHVQcm9jZXNzKCk7CisgICAgaWYgKCFncHVQ
cm9jZXNzKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKDApOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZ3B1UHJvY2Vzcy0+d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRl
c3RpbmcoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVy
KV0odWludDY0X3QgY291bnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQpOwor
ICAgIH0pOworfQorCiAtICh2b2lkKV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRl
c3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9y
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IGY4YTE5M2Y5NmY1Mjc3NGU1
MDU1MDA2OTQwOTU2ZWI4NTczN2ZhN2QuLmQ3MjNhODZlNDM4MWJkN2NkM2JjYTQ4MzkxMzc1NWNk
YjAxODRmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwCkBAIC0zOTksNiArMzk5LDExIEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp0ZXJt
aW5hdGVGb3JUZXN0aW5nKCkKICAgICBwcm9jZXNzSXNSZWFkeVRvRXhpdCgpOwogfQogCit2b2lk
IEdQVVByb2Nlc3NQcm94eTo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpXZWJQcm9jZXNzQ29u
bmVjdGlvbkNvdW50Rm9yVGVzdGluZygpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9
CisKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewog
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICIlcCAtIEdQVVByb2Nlc3NQcm94eTo6ZGlk
Q2xvc2U6IiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c1Byb3h5LmgKaW5kZXggZDU2YWYwMGIzZmMwMWMzY2ZiNDQ5N2NlOTY0YjZkNDMwMWE4MzM4ZS4u
YjExMDQxMDIzN2VlZWNjOGYwMjU2NzdhMDYyZTY3OTFmNmViMDM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcygpOwogCiAgICAgdm9pZCB0ZXJtaW5h
dGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgR1BVUHJvY2Vzc1Byb3h5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTY3NGZkOGM5MjI4MGZjZTZiYTMyMWE0ZTkzYmVk
ZWVkMTc4YjI4Mi4uYzBhY2I1ZjlkMDBhNTI5NWNmYjEyZWM0MmIwNzE5MGE5MWRjNWNkOCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDIxLTEwLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODQwNzkpOiBBdWRpbyBjb250aW51ZXMgcGxheWlu
ZyBvbiBodWx1LmNvbSBpbiBwcml2YXRlIGJyb3dzaW5nIG1vZGUgYWZ0ZXIgY2xvc2luZyB0aGUg
dGFiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIx
MTMKKyAgICAgICAgcmRhcjovLzg0Mzk5MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRo
ZSBHUFUgdG8gd2ViIHByY29lc3MgY29ubmVjdGlvbiBpc24ndCBsZWFrZWQgaW4gdGhlIEdQVSBw
cm9jZXNzLiBTZWUgV2ViS2l0CisgICAgICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQ
cm9jZXNzLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2Fu
dmFzLWltYWdlLWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bkNvdW50XSk6CisKIDIwMjEtMTAtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2ExMXldIExvY2FsaXplZCByb2xlIG5hbWUgZG9l
c24ndCB3b3JrIHdpdGggQVRTUEkgZW5hYmxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
YjQzZjljYTY2ODZmN2VjMjBhZTZlNjM1MzNkZjdmZTg1Y2M4YzY5Li42NTQyZjhjNTQ4NDRhODJj
Y2I3MjY2MmIyZGQ5NDZhZmIxZWEyYmY4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI5
NSw2ICsxMjk1LDcgQEAKIAkJRjRFMEEyQjQyMTIyNDAyQjAwQUY3QzdGIC8qIGltYWdlLWFuZC1m
aWxlLXVwbG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RTBBMkIzMjEyMjNGMkQwMEFGN0M3RiAvKiBpbWFnZS1hbmQtZmlsZS11
cGxvYWQuaHRtbCAqLzsgfTsKIAkJRjRFMEEyQjgyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxl
UHJvbWlzZVJlY2VpdmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRFMEEyQjcyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2Vp
dmVyLm1tICovOyB9OwogCQlGNEUzRDgwODIwRjcwQkI5MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQt
dGV4dC1taWxlc3RvbmUtYXJ0aWNsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTNEODA3MjBGNzA4RTQwMDdCNThDNSAvKiBzaWdu
aWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwgKi87IH07CisJCUY0RTdBNjYzMjcy
MjJDQTkwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTdBNjYyMjcyMjJCQjEwMEU3
NEQzNiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sICovOyB9OwogCQlGNEVCNEU5MTIzMjhBQzMw
MDA1NzREQUIgLyogTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVCNEU5MDIzMjhBQzMwMDA1NzREQUIgLyog
TlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW0gKi87IH07CiAJCUY0RUM4MDk0MjYwRDMwNTQwMDEw
MzExRCAvKiBzaW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUM4MDkzMjYwRDJFNjIwMDEwMzExRCAv
KiBzaW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sICovOyB9OwogCQlGNEYxMzc5MjFEOUI2ODNFMDAy
QkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjEzNzkxMUQ5QjY4MzIw
MDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi87IH07CkBAIC0x
NDQ1LDYgKzE0NDYsNyBAQAogCQkJCTJERTcxQjAwMUQ0OUMzRUQwMDkwNDA5NCAvKiBibGlua2lu
Zy1kaXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QzQ4NkJBMTFBQTEyNTY3MDAz
RjZGOUIgLyogYnVuZGxlLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyNkRG
NUE2MzE1QTJBMjdFMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0RTdBNjYzMjcyMjJDQTkwMEU3NEQz
NiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJF
RkYwNkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8q
IGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJOUJENDIzOUMxRTA0QzAxQzAwMjAwMzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1h
Z2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTMxODgsNiArMzE5MCw3IEBACiAJCUY0
RTBBMkI2MjEyMjg0NzQwMEFGN0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEUwQTJCNzIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVj
ZWl2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFM0Q4MDcyMEY3MDhFNDAwN0I1OEM1
IC8qIHNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYg
LyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJj
YW52YXMtaW1hZ2UtZGF0YS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRF
QjRFOEYyMzI4QUMzMDAwNTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmg7IHBhdGggPSBjb2NvYS9OU0l0ZW1Q
cm92aWRlckFkZGl0aW9ucy5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0RUI0
RTkwMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOyBwYXRoID0gY29jb2Ev
TlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
IAkJRjRFQzgwOTMyNjBEMkU2MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5Lmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDUyLDYgKzQwNTUsNyBAQAogCQkJCUY0
MUFCOTk3MUVGNDY5MkMwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0
Lmh0bWwgKi8sCiAJCQkJNDY0Qzc2NEMyMzBERjgzMjAwQUZCMDIwIC8qIEJhZFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyAqLywKIAkJCQkyREU3MUFGRjFENDlDMkYwMDA5MDQw
OTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgKi8sCisJCQkJRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2
IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRC
QjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywKIAkJCQkyRUZGMDZD
NjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLywK
IAkJCQk4MzlBQTM1RTIxQTI2QUNEMDA5ODBERDYgLyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRt
bCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
R1BVUHJvY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BV
UHJvY2Vzcy5tbQppbmRleCA4NDA5Njk3NTYxNDQ2ZWJmOGFlOGM2NWZkYmM5ZTEwMjI5NDNkMWYz
Li40NGM4YThkZTk4MGNjYzEwMmIyMTdhYTg2OWFlYjhjOGU1NTBmNjJhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCkBAIC0y
ODIsNiArMjgyLDIxIEBAIFRFU1QoR1BVUHJvY2VzcywgT25seUxhdW5jaGVzR1BVUHJvY2Vzc1do
ZW5OZWNlc3NhcnlNZWRpYUZlYXR1cmVEZXRlY3Rpb24pCiAgICAgRVhQRUNUX0VRKFtjb25maWd1
cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIDApOwogfQog
CitURVNUKEdQVVByb2Nlc3MsIERvTm90TGVha0Nvbm5lY3Rpb25BZnRlckNsb3NpbmdXZWJQYWdl
KQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktl
eUZvclRlc3RpbmcoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdLCB0cnVlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJv
Y2Vzc0ZvckNhbnZhc1JlbmRlcmluZ0VuYWJsZWQiKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJv
b2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdLCBmYWxzZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkIikpOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiY2FudmFz
LWltYWdlLWRhdGEiXTsKKyAgICBFWFBFQ1RfRVEoMVUsIFt3ZWJWaWV3IGdwdVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25Db3VudF0pOworICAgIFt3ZWJWaWV3IF9jbG9zZV07CisKKyAgICB3aGlsZSAo
W3dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50XSkKKyAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKK30KKwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQ
VEVEX01FRElBKQogVEVTVChHUFVQcm9jZXNzLCBMZWdhY3lDRE0pCiB7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0
bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1k
YXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVjYTEyMzYwMWVmZmRiMzQ5MzVjYmI2YTc0OTBiMGE2NDBi
NmQ3OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitjYW52YXMgeworICAgIHdpZHRoOiAxNjBw
eDsKKyAgICBoZWlnaHQ6IDE2MHB4OworICAgIGRpc3BsYXk6IGJsb2NrOworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPHN0cm9uZz5Tb3VyY2U8L3N0cm9uZz4KKzxjYW52YXMgaWQ9InNv
dXJjZSIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIzMjAiPjwvY2FudmFzPgorPHN0cm9uZz5EZXN0aW5h
dGlvbjwvc3Ryb25nPgorPGNhbnZhcyBpZD0iZGVzdGluYXRpb24iIHdpZHRoPSIzMjAiIGhlaWdo
dD0iMzIwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25zdCBzb3VyY2VDYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic291cmNlIik7Citjb25zdCBzb3VyY2VDb250ZXh0ID0gc291cmNl
Q2FudmFzLmdldENvbnRleHQoIjJkIik7Citzb3VyY2VDb250ZXh0LnNhdmUoKTsKK3NvdXJjZUNv
bnRleHQuc3Ryb2tlU3R5bGUgPSAicmVkIjsKK3NvdXJjZUNvbnRleHQuZmlsbFN0eWxlID0gInJn
YmEoMjAwLCAxMDAsIDEwMCwgMC4yNSkiOworc291cmNlQ29udGV4dC5saW5lV2lkdGggPSA0Owor
c291cmNlQ29udGV4dC5yZWN0KDQwLCA0MCwgMjQwLCAyNDApOworc291cmNlQ29udGV4dC5zdHJv
a2UoKTsKK3NvdXJjZUNvbnRleHQuZmlsbCgpOworc291cmNlQ29udGV4dC5yZXN0b3JlKCk7CisK
K2NvbnN0IGltYWdlRGF0YSA9IHNvdXJjZUNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDMyMCwg
MzIwKTsKK2NvbnN0IGRlc3RpbmF0aW9uQ2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRlc3RpbmF0aW9uIik7Citjb25zdCBkZXN0aW5hdGlvbkNvbnRleHQgPSBkZXN0aW5hdGlvbkNh
bnZhcy5nZXRDb250ZXh0KCIyZCIpOworZGVzdGluYXRpb25Db250ZXh0LnB1dEltYWdlRGF0YShp
bWFnZURhdGEsIDAsIDAsIDAsIDAsIDMyMCwgMzIwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3
LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA5NWU2
NGE2NzQ0Mzk4MGVhZmViMzA4N2QwODFkNzIzN2M5Yzc5MzQyLi5jMmI3MTE2ZTMwYjY4NmUzMDg4
YTVjNjYyZTUwNjRhYmFkZWQyZjRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcuaApAQCAtNTMsNiArNTMsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBVSVZpZXcgPFVJVGV4dElucHV0UHJpdmF0ZSwgVUlUZXh0SW5wdXRJbnRlcm5hbCwgVUlU
ZXh0SW5wdXRNdWx0aURvY3VtZW50LCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFVJVGV4
dElucHV0VG9rZW5pemVyPiAqdGV4dElucHV0Q29udGVudFZpZXc7CiAtIChOU0FycmF5PF9XS1Rl
eHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRz
SW5SZWN0OihDR1JlY3QpcmVjdDsKICNlbmRpZgorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1VJbnRlZ2VyIGdwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmNvbnRlbnRzQXNTdHJpbmc7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKnRhZ3NJbkJv
ZHk7CiAtICh2b2lkKWxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDBhZGZhZTA1Mjk3
OTZmNmU2M2NlOTI3YmZmMjFiYzg1MTc0Nzc3MWYuLjIwYzRmZWRiYzkzMDA3YjlmNzM0MDU2ZTI5
ZGFlMTRmNmEyYTc5MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0KQEAgLTE1NCw2ICsxNTQsMTggQEAgLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0
ICo+ICopc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDoKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKy0gKE5TVUludGVnZXIpZ3B1VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbkNvdW50Cit7CisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAg
ICBfX2Jsb2NrIE5TVUludGVnZXIgY291bnQgPSAwOworICAgIFtzZWxmIF9ncHVUb1dlYlByb2Nl
c3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl4oTlNVSW50ZWdlciByZXN1bHQpIHsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgICAgIGNvdW50ID0gcmVzdWx0OworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgcmV0dXJuIGNvdW50OworfQorCiAt
IChOU1N0cmluZyAqKWNvbnRlbnRzQXNTdHJpbmcKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9
IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442189</attachid>
            <date>2021-10-22 13:21:31 -0700</date>
            <delta_ts>2021-10-22 13:22:43 -0700</delta_ts>
            <desc>Add missing &apos;Reviewed by&apos; line</desc>
            <filename>bug-232113-20211022132130.patch</filename>
            <type>text/plain</type>
            <size>29003</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmNDVmMDgxN2QxMjU1NDEy
NmI1YTJhNzk0MGQ0NDkxZDdiNzVlOTYuLmY3M2RmZmM1MWE0ZGU1MGQ5N2RjZTUzODQ0OTM5ZjJh
N2Q5ZmU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEtMTAtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIGluYWR2
ZXJ0ZW50bHkgaW50cm9kdWNlZCBhIHJlZi1jb3VudGluZyBjeWNsZSBiZXR3ZWVuIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIKKyAgICAgICAgYWZ0
ZXIgSVBDIHN0cmVhbSByZWZhY3RvcmluZyBpbiByMjg0MDc5LCBzaW5jZSBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyIGRpcmVjdGx5IHN0cm9uZ2x5IHJlZnMgdGhlIHJlbmRlcmluZworICAgICAg
ICBiYWNrZW5kLCBhbmQgdGhlIHJlbmRlcmluZyBiYWNrZW5kIGluZGlyZWN0bHkgaG9sZHMgb24g
dG8gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcnMgdGhyb3VnaCByZW1vdGUgaW1hZ2UKKyAgICAg
ICAgYnVmZmVycyBpbiB0aGUgcmVzb3VyY2UgY2FjaGUuIFNpbmNlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgYWxzbyBzdHJvbmdseSByZWZzICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGFzCisg
ICAgICAgIHdlbGwsIHRoaXMgY2F1c2VkIHRoZSBlbnRpcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyB0byBsZWFrIGFmdGVyIHRlYXJpbmcgZG93biB0aGUgY29ubmVjdGVkIHdlYiBwcm9jZXNz
LCBpZgorICAgICAgICB0aGUgd2ViIHByb2Nlc3MgZXZlciBpbnN0YWxsZWQgYSByZW1vdGUgcmVu
ZGVyaW5nIGJhY2tlbmQgZm9yIDJEIGNhbnZhcy4KKworICAgICAgICBUbyBhdm9pZCB0aGlzIGN5
Y2xlLCB0dXJuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIncyBgbV9yZW5kZXJpbmdCYWNrZW5k
YCBpbnRvIGEgUmVmUHRyIGluc3RlYWQgb2YgYSBSZWYsIGFuZAorICAgICAgICBjbGVhciBpdCBv
dXQgaW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAuIFRoaXMgYWxzbyBtZWFucyB0aGF0IHdlIG5v
IGxvbmdlciBuZWVkIGEgc2VwYXJhdGUgYm9vbGVhbiBmbGFnIHRvCisgICAgICAgIGVuc3VyZSB0
aGF0IGBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKClgIGlz
IGlkZW1wb3RlbnQsIHNvIHdlIGFsc28gcmVtb3ZlCisgICAgICAgIGBtX2lzTGlzdGVuaW5nRm9y
SVBDYCBhbHRvZ2V0aGVyLgorCisgICAgICAgIFRlc3Q6IEdQVVByb2Nlc3MuRG9Ob3RMZWFrQ29u
bmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UKKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om9iamVjdENvdW50Rm9yVGVz
dGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcpOgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIHRlc3Rpbmctb25seSBTUEkgaG9vayB0byBhc2sg
Zm9yIHRoZSBsaXZlIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgY291bnQuIFRoaXMgcmV0cmll
dmVzIGEKKyAgICAgICAgc3RhdGljYWxseSBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBjb3VudCBv
ZiB0aGUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBpbnN0YW5jZXMgdGhhdCBleGlzdCBpbiB0
aGUgR1BVCisgICAgICAgIHByb2Nlc3M7IGltcG9ydGFudGx5LCB0aGlzIGlzIGRpZmZlcmVudCBm
cm9tIGFza2luZyB0aGUgR1BVUHJvY2VzcyBmb3IgdGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyBp
bgorICAgICAgICBgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnNgLCBzaW5jZSB0aGUgbGF0dGVyIHdp
bGwgYmUgMCBldmVuIHdoZW4gb25lIG9yIG1vcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc2Vz
IGFyZQorICAgICAgICBzdGlsbCBhbGl2ZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyKToKKworICAgICAgICBBbHNvIGZpeCBhIGxlYWsgY2F1c2VkIGJ5IFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgYW5kIFJlbW90ZUltYWdlQnVmZmVyIHN0cm9uZ2x5IHJl
ZmZpbmcgZWFjaCBvdGhlci4gU2luY2UKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXIgb3ducyBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLCB0aGUgYmFja3BvaW50ZXIgZnJvbSBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyIHRvIHRoZSBpbWFnZQorICAgICAgICBidWZmZXIgc2hvdWxkIGJlIHdl
YWssIG5vdCBzdHJvbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1lZGlhKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6c3RvcExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisKKyAgICAgICAgQWxzbyBt
YWtlIGBtX3JlbW90ZURpc3BsYXlMaXN0c2AgYWNjZXNzIHRocmVhZC1zYWZlIHVzaW5nIGEgTG9j
ay4gVGhpcyBpcyBiZWNhdXNlIGBkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRgCisgICAgICAg
IGlzIG5vdyBpbnZva2VkIG9uIHRoZSByZW5kZXJpbmcgYmFja2VuZCB0aHJlYWQgd2hpbGUgcHJv
Y2Vzc2luZyBzdHJlYW1pbmcgSVBDLCBidXQgYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAKKyAgICAg
ICAgKHdoaWNoIGdvZXMgdGhyb3VnaCBhbmQgY2xvc2VzIElQQyBzdHJlYW0gY29ubmVjdGlvbnMg
Zm9yIGVhY2ggb2YgdGhlIHJlbW90ZSBkaXNwbGF5IGxpc3RzKSBpcyBpbnZva2VkIG9uIHRoZQor
ICAgICAgICBtYWluIHJ1bmxvb3AuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisKKyAgICAgICAgQWRkIHRoZSBuZXcgdGVzdGlu
ZyBTUEkgKHNlZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9n
cHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc1Byb3h5Ojp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKwogMjAyMS0xMC0yMiAgUGVyIEFy
bmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIHJlcXVp
cmVkIHN5c2NhbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBmYjIwN2M0NjM2Y2Q1ZjFkOGEyNjE1ZDQ4MWM1
ZmI3YzBlZDk0M2FjLi44NzBlMzdlMDVlMDU0ZWQ3YTA2ZDdkZWJmNTIxZWFkNTgxMzIxMDU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCkBAIC0yNDgsNiArMjQ4LDggQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIK
ICAgICAvLyByZXBseSBmcm9tIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZl
LgogICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpOwogICAgIG1f
Y29ubmVjdGlvbi0+b3BlbigpOworCisgICAgKytnT2JqZWN0Q291bnRGb3JUZXN0aW5nOwogfQog
CiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
CkBAIC0yNjIsOCArMjY0LDEyIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJU
QykKICAgICBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5LT5jbG9zZSgpOwogI2VuZGlmCisKKyAgICAt
LWdPYmplY3RDb3VudEZvclRlc3Rpbmc7CiB9CiAKK3VpbnQ2NF90IEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmdPYmplY3RDb3VudEZvclRlc3RpbmcgPSAwOworCiB2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgSEFWRShBVkFVRElPX1JPVVRJTkdf
QVJCSVRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCmluZGV4IDljNTIzNjQxNDIyNGE5MmRjZjYwZGRlMWUwYzhkYjZjYzU2
ZThiNGUuLjQxMGY4ZWY5NTc1MTIyYjgyMjY1NTk5ZWFjY2FhMTRjNjJjYjIxMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMTcwLDYgKzE3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VHcmFwaGljc0Nv
bnRleHRHTEZvclRlc3RpbmcoR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKTsKICNlbmRpZgog
CisgICAgaW5saW5lIHN0YXRpYyB1aW50NjRfdCBvYmplY3RDb3VudEZvclRlc3RpbmcoKSB7IHJl
dHVybiBnT2JqZWN0Q291bnRGb3JUZXN0aW5nOyB9CisKICAgICB1c2luZyBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kTWFwID0gSGFzaE1hcDxSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgSVBDOjpT
Y29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2ZVF1ZXVlPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+PjsK
ICAgICBjb25zdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWFwJiByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kTWFwKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWFwOyB9CiAK
QEAgLTI0Miw2ICsyNDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2Fz
UmVjb25maWd1cmVkKCk7CiAjZW5kaWYKIAorICAgIHN0YXRpYyB1aW50NjRfdCBnT2JqZWN0Q291
bnRGb3JUZXN0aW5nOworCiAgICAgUmVmUHRyPExvZ2dlcj4gbV9sb2dnZXI7CiAKICAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
UHJvY2Vzcy5jcHAKaW5kZXggMmU3NjJhNzgxNDI0YThkODEzYmVhZjc3M2I5N2EwYWEzM2EyNzNi
MC4uNzBjYzM4MWExZjQ5MWM0NGY5OGRlYWUwMGY3NTY2OGMwMDgxZWFmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtNDk4LDYgKzQ5OCwxMSBAQCB2b2lkIEdQ
VVByb2Nlc3M6OnNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRp
ZgogCit2b2lkIEdQVVByb2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGNvbXBsZXRpb25IYW5kbGVyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om9iamVj
dENvdW50Rm9yVGVzdGluZygpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
aAppbmRleCA1NDFmNWIwZmYyY2QwMTZkZDdhMjQ0YTM1MzJiZTk0N2VkNGE4NDkxLi4wYWY0OTgy
Nzg0YThhNjQyZTg2YWQ1NjA4YTNkY2Q1YTE5NWQ4OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmgKQEAgLTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBT
dHJpbmcmIGFwcGxpY2F0aW9uVmlzaWJsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0
aW9uVmlzaWJsZU5hbWU7IH0KIAorICAgIHZvaWQgd2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZv
clRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworCiBwcml2YXRl
OgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCwgU3luY2hyb25vdXMpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IGI2NGJhMTY0YTkyZDdiYTYxYmVkZWQyYTVhZTMwMmE2MDJlY2I4ZjcuLmJhODRhN2M1MzJlMmEw
MWJhMjM0OTZiNGZjYmQ5YzYwMDY2NDk0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC02OCw2ICs2OCw4IEBAIG1lc3NhZ2VzIC0+
IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9N
T0RFKQogICAgIE5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChTdHJpbmcgZG9tYWluLCBTdHJpbmcg
a2V5LCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZW5jb2RlZFZhbHVlKQogI2VuZGlmCisKKyAgICBX
ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZygpIC0+ICh1aW50NjRfdCBjb3VudCkg
QXN5bmMKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAppbmRleCBlZWE5MmZkZmFmYWY4NjJmMDBkMjEyOTQ4M2U3MTkxYzE3YzZi
NjcyLi4wODkzNTZlYzI2OWJmMGY4OTVkN2E3MjIzZTRjNmJmMzU5N2ZjNjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIoSW1hZ2VCdWZmZXImIGltYWdlQnVm
ZmVyLCBRCiAgICAgOiBtX2ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKQogICAgICwgbV9pbWFnZUJ1
ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQogICAgICwgbV93ZWJQcm9jZXNz
SWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRpZmllcikKLSAgICAsIG1fcmVuZGVyaW5nQmFja2Vu
ZChyZW5kZXJpbmdCYWNrZW5kKQorICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKCZyZW5kZXJpbmdC
YWNrZW5kKQogewogfQogCkBAIC01MywxOCArNTMsMTMgQEAgR3JhcGhpY3NDb250ZXh0JiBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCgpCiAKIHZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIEFTU0VSVCgh
bV9pc0xpc3RlbmluZ0ZvcklQQyk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IHRydWU7CiAg
ICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zdHJlYW1Db25uZWN0aW9uKCkuc3RhcnRSZWNlaXZpbmdN
ZXNzYWdlcygqdGhpcywgTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3RvcExpc3Rlbmlu
Z0ZvcklQQygpCiB7Ci0gICAgaWYgKCFtX2lzTGlzdGVuaW5nRm9ySVBDKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNvbm5lY3Rpb24oKS5zdG9wUmVj
ZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50
NjQoKSk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IGZhbHNlOworICAgIGlmIChhdXRvIHJl
bmRlcmluZ0JhY2tlbmQgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVuZGVyaW5nQmFja2VuZCwgeyB9KSkK
KyAgICAgICAgcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0b3BSZWNlaXZp
bmdNZXNzYWdlcyhNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5vYmplY3QoKS50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzYXZlKCkKQEAgLTQyNiw5
ICs0MjEsMTEgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZl
cihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnQKIAogdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCiB7Ci0gICAgbV9yZW5kZXJp
bmdCYWNrZW5kLT5wZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIs
IFtpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIuY29weVJlZigpLCBkZXN0aW5hdGlvbl0oTWVk
aWFQbGF5ZXImIHBsYXllcikgewotICAgICAgICAvLyBJdCBpcyBjdXJyZW50bHkgbm90IHNhZmUg
dG8gY2FsbCBwYWludEZyYW1lRm9yTWVkaWEoKSBvZmYgdGhlIG1haW4gdGhyZWFkLgotICAgICAg
ICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnBhaW50RnJhbWVGb3JNZWRpYShwbGF5ZXIsIGRlc3Rp
bmF0aW9uKTsKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJP
bk1haW5UaHJlYWQoaWRlbnRpZmllciwgW3dlYWtJbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIs
IGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CisgICAgICAgIGlmIChSZWZQdHIg
aW1hZ2VCdWZmZXIgPSB3ZWFrSW1hZ2VCdWZmZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgIC8vIEl0
IGlzIGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRpYSgpIG9mZiB0
aGUgbWFpbiB0aHJlYWQuCisgICAgICAgICAgICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnBhaW50
RnJhbWVGb3JNZWRpYShwbGF5ZXIsIGRlc3RpbmF0aW9uKTsKKyAgICAgICAgfQogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2MmE0OTcwNmUyOGIwMWUwYTZiODY5
YmQzM2U2MjRlYzdkOGIzNjkxLi41OTgyY2JhZWI4N2U2NjBjNWJhYjc3YTZkN2EyOTU3MDM1N2Ji
ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE0OSwxMiArMTQ5LDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQQygpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOwogCi0gICAgUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdl
QnVmZmVyOworICAgIFdlYWtQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7
CiAgICAgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXI7Ci0gICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFj
a2VuZDsKKyAgICBSZWZQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdCYWNr
ZW5kOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9tYXNrSW1hZ2VCdWZmZXI7
Ci0gICAgYm9vbCBtX2lzTGlzdGVuaW5nRm9ySVBDIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0
MDQyYWVjZTY3MjIwLi4zMmM5ZmY5NWQ5MDVkMWNiMDMwZTA3NGVkMmJjODNjZGM2MDNjZjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaApAQCAtNTgsMTEgKzU4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAg
ICAgICwgbV9yZW1vdGVEaXNwbGF5TGlzdCh7IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNy
ZWF0ZSgqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkg
fSkKICAgICB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiPFdLPjogKEdQVSkgQ3JlYXRpbmcgUmVt
b3RlSW1hZ2VCdWZmZXIoJXApIiwgdGhpcyk7CiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5kaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCAqbV9yZW1v
dGVEaXNwbGF5TGlzdC5nZXQoKSk7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyKCkK
ICAgICB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiPFdLPjogKEdQVSkgRGVzdHJveWluZyBSZW1v
dGVJbWFnZUJ1ZmZlciglcCkiLCB0aGlzKTsKICAgICAgICAgLy8gVW53aW5kIHRoZSBjb250ZXh0
J3Mgc3RhdGUgc3RhY2sgYmVmb3JlIGRlc3RydWN0aW9uLCBzaW5jZSBjYWxscyB0byByZXN0b3Jl
IG1heSBub3QgaGF2ZQogICAgICAgICAvLyBiZWVuIGZsdXNoZWQgeWV0LCBvciB0aGUgd2ViIHBy
b2Nlc3MgbWF5IGhhdmUgdGVybWluYXRlZC4KICAgICAgICAgd2hpbGUgKGNvbnRleHQoKS5zdGFj
a1NpemUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA1Yzg4MTkzMDg3NTA2OTM2NDZi
NjdhNWM0Y2U3MTcxZjNiZTFkYzc1Li5hMjIwZWEwODNmOTRkOGE3NTQzY2Y1MTE1Y2RjNDI1YTJi
MGQ4OWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMTEsNiArMTExLDggQEAgdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RvcFJlY2Vp
dmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAg
ICAgbV9zdHJlYW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisKKyAgICBM
b2NrZXIgbG9ja2VyIHsgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrIH07CiAgICAgZm9yIChhdXRv
JiByZW1vdGVDb250ZXh0IDogc3RkOjpleGNoYW5nZShtX3JlbW90ZURpc3BsYXlMaXN0cywgeyB9
KSkKICAgICAgICAgcmVtb3RlQ29udGV4dC5zdG9wTGlzdGVuaW5nRm9ySVBDKCk7CiB9CkBAIC0x
MzIsNyArMTM0LDEwIEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhh
bmRsZSwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciYgcmVtb3RlRGlzcGxheUxp
c3QpCiB7Ci0gICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURpc3BsYXlMaXN0KTsK
KyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3JlbW90ZURpc3BsYXlMaXN0c0xvY2sg
fTsKKyAgICAgICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURpc3BsYXlMaXN0KTsK
KyAgICB9CiAgICAgTUVTU0FHRV9DSEVDSyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIucHJv
Y2Vzc0lkZW50aWZpZXIoKSA9PSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nl
c3NJZGVudGlmaWVyKCksICJTZW5kaW5nIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpIG1l
c3NhZ2UgdG8gdGhlIHdyb25nIHdlYiBwcm9jZXNzLiIpOwogICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdU
Rk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVjdCgpKSwgbV9y
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA5
NWRmOGVhNTU1NmY5MjNjZjQxZjY3NmEzZWRjZGNlYmY5NzAzZjBkLi5iNmUxOWRhYzkzZGY3MmI5
MTQ1ZjUxZTBjMjExNTJkYzExNjk2Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTEzMyw3
ICsxMzMsOSBAQCBwcml2YXRlOgogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4ZWxCdWZmZXJT
ZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJl
ZE1lbW9yeTsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5n
UmVzb3VyY2VzUmVxdWVzdDsKLSAgICBXZWFrSGFzaFNldDxSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyPiBtX3JlbW90ZURpc3BsYXlMaXN0czsKKworICAgIExvY2sgbV9yZW1vdGVEaXNwbGF5TGlz
dHNMb2NrOworICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IG1fcmVt
b3RlRGlzcGxheUxpc3RzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZW1vdGVEaXNwbGF5TGlzdHNM
b2NrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaAppbmRleCBmNmExY2ZkODBkMzRiN2MxOWRhNTJjYTU2NDBhMTdlNmFjZTk4ODQyLi45YTk5
NDYxYjQxZTQ1OTVkMGUwMzViZmFjYjFkNzVhNmQ4MmNhMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVjdCBXS0FwcFByaXZhY3lSZXBvcnRU
ZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9jbGVhckFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YToo
dm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAogLSAodm9pZClfY3JlYXRlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dLTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I+KXByaXZhdGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3Vu
dEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCmluZGV4IDU5ZDllZDE0ZDMyOTNhZTBkZDExNzkxZDBkMWU3ODQ1MWRlOGNhNjQu
LmM2OTNlNTRlMzg5MWFmMTQ0ZWUxZTVjMWE3MjEzYmI2YmJkYjkwNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgog
CiAjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgiCisjaW1wb3J0
ICJHUFVQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHlQcml2YXRlLmgiCiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNp
bXBvcnQgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCkBAIC00MjMsNiArNDI0LDE5IEBAIC0g
KHZvaWQpX2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOih2b2lkKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhh
bmRsZXIKK3sKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vz
c1Bvb2woKS5ncHVQcm9jZXNzKCk7CisgICAgaWYgKCFncHVQcm9jZXNzKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZ3B1UHJv
Y2Vzcy0+d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoW2NvbXBsZXRpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0odWludDY0X3QgY291bnQpIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQpOworICAgIH0pOworfQorCiAtICh2b2lk
KV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNl
c3Npb25Db29yZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9yIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IGY4YTE5M2Y5NmY1Mjc3NGU1MDU1MDA2OTQwOTU2ZWI4NTczN2Zh
N2QuLmQ3MjNhODZlNDM4MWJkN2NkM2JjYTQ4MzkxMzc1NWNkYjAxODRmYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTksNiAr
Mzk5LDExIEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKICAg
ICBwcm9jZXNzSXNSZWFkeVRvRXhpdCgpOwogfQogCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6d2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1
aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGlu
ZygpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgR1BVUHJvY2Vzc1By
b3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewogICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFByb2Nlc3MsICIlcCAtIEdQVVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2U6IiwgdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggZDU2YWYw
MGIzZmMwMWMzY2ZiNDQ5N2NlOTY0YjZkNDMwMWE4MzM4ZS4uYjExMDQxMDIzN2VlZWNjOGYwMjU2
NzdhMDYyZTY3OTFmNmViMDM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRh
dGVQcmVmZXJlbmNlcygpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAg
dm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVUHJvY2Vz
c1Byb3h5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMmI3MTViNzExM2ZjODg2ZTc1NTA3M2UwMTk2YWUxNDdjMGQyNjJmOC4uZDMwYTY5MDMz
NWJlY2Q5OWFlODYzYjYzYjk5ODU1NTc0MzE0MWQ5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTIxICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04gKHIyODQwNzkpOiBBdWRpbyBjb250aW51ZXMgcGxheWluZyBvbiBodWx1LmNvbSBpbiBwcml2
YXRlIGJyb3dzaW5nIG1vZGUgYWZ0ZXIgY2xvc2luZyB0aGUgdGFiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIxMTMKKyAgICAgICAgcmRhcjovLzg0
Mzk5MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBHUFUgdG8gd2ViIHByY29lc3Mg
Y29ubmVjdGlvbiBpc24ndCBsZWFrZWQgaW4gdGhlIEdQVSBwcm9jZXNzLiBTZWUgV2ViS2l0Cisg
ICAgICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50XSk6CisKIDIwMjEtMTAt
MjIgIFJveSBSZWFwb3IgIDxycmVhcG9yQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJraXRweS9h
dXRvaW5zdGFsbGVkL3B5b2JqY19mcmFtZXdvcmtzLnB5IHNob3VsZCBpbnN0YWxsIHdoZWVsIGRp
c3RyaWJ1dGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZWQyYmRhZDg1OTRlMGI0OGYw
N2FhNzA2NjY3OTMwMWU2NDY1OTA5Li4wNTRkODM1Y2RhMGIxYWQ5MTQwYjQ0NzVhYTVkN2FjMDhl
ZWYzYmE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI5NCw2ICsxMjk0LDcgQEAKIAkJ
RjRFMEEyQjQyMTIyNDAyQjAwQUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTBB
MkIzMjEyMjNGMkQwMEFGN0M3RiAvKiBpbWFnZS1hbmQtZmlsZS11cGxvYWQuaHRtbCAqLzsgfTsK
IAkJRjRFMEEyQjgyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFMEEyQjcy
MTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tICovOyB9OwogCQlG
NEUzRDgwODIwRjcwQkI5MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUtYXJ0
aWNsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0RTNEODA3MjBGNzA4RTQwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVz
dG9uZS1hcnRpY2xlLmh0bWwgKi87IH07CisJCUY0RTdBNjYzMjcyMjJDQTkwMEU3NEQzNiAvKiBj
YW52YXMtaW1hZ2UtZGF0YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1h
Z2UtZGF0YS5odG1sICovOyB9OwogCQlGNEVCNEU5MTIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVt
UHJvdmlkZXJBZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEVCNEU5MDIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJvdmlkZXJBZGRp
dGlvbnMubW0gKi87IH07CiAJCUY0RUM4MDk0MjYwRDMwNTQwMDEwMzExRCAvKiBzaW1wbGUtaW1h
Z2Utb3ZlcmxheS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUM4MDkzMjYwRDJFNjIwMDEwMzExRCAvKiBzaW1wbGUtaW1hZ2Utb3Zl
cmxheS5odG1sICovOyB9OwogCQlGNEYxMzc5MjFEOUI2ODNFMDAyQkVDNTcgLyogbGFyZ2Utdmlk
ZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12
aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi87IH07CkBAIC0xNDQ0LDYgKzE0NDUsNyBAQAog
CQkJCTJERTcxQjAwMUQ0OUMzRUQwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk3QzQ4NkJBMTFBQTEyNTY3MDAzRjZGOUIgLyogYnVuZGxlLWZp
bGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyNkRGNUE2MzE1QTJBMjdFMDAzNjg5
QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCUY0RTdBNjYzMjcyMjJDQTkwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2Ut
ZGF0YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0
QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3Vy
Y2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUJENDIzOUMxRTA0QzAx
QzAwMjAwMzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKQEAgLTMxODcsNiArMzE4OSw3IEBACiAJCUY0RTBBMkI2MjEyMjg0NzQwMEFG
N0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0Rmls
ZVByb21pc2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUwQTJC
NzIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFM0Q4MDcyMEY3MDhFNDAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRl
eHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJz
aWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRh
dGEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjYW52YXMtaW1hZ2UtZGF0YS5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQjRFOEYyMzI4QUMzMDAwNTc0
REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5TSXRlbVBy
b3ZpZGVyQWRkaXRpb25zLmg7IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5o
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0RUI0RTkwMjMyOEFDMzAwMDU3NERB
QiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5T
SXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOyBwYXRoID0gY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRp
dGlvbnMubW07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRFQzgwOTMyNjBEMkU2
MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAic2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00MDUxLDYgKzQwNTQsNyBAQAogCQkJCUY0MUFCOTk3MUVGNDY5MkMwMDgz
RkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJNDY0
Qzc2NEMyMzBERjgzMjAwQUZCMDIwIC8qIEJhZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQu
c3FsaXRlMyAqLywKIAkJCQkyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2
Lmh0bWwgKi8sCisJCQkJRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1k
YXRhLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRl
by1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywKIAkJCQkyRUZGMDZDNjFEODg2QTU2MDAwNEJCMzAg
LyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLywKIAkJCQk4MzlBQTM1RTIxQTI2
QUNEMDA5ODBERDYgLyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQppbmRleCA4
NDA5Njk3NTYxNDQ2ZWJmOGFlOGM2NWZkYmM5ZTEwMjI5NDNkMWYzLi40NGM4YThkZTk4MGNjYzEw
MmIyMTdhYTg2OWFlYjhjOGU1NTBmNjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCkBAIC0yODIsNiArMjgyLDIxIEBAIFRF
U1QoR1BVUHJvY2VzcywgT25seUxhdW5jaGVzR1BVUHJvY2Vzc1doZW5OZWNlc3NhcnlNZWRpYUZl
YXR1cmVEZXRlY3Rpb24pCiAgICAgRVhQRUNUX0VRKFtjb25maWd1cmF0aW9uLmdldCgpLnByb2Nl
c3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIDApOwogfQogCitURVNUKEdQVVByb2Nlc3Ms
IERvTm90TGVha0Nvbm5lY3Rpb25BZnRlckNsb3NpbmdXZWJQYWdlKQoreworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJp
ZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLCB0cnVlLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRl
cmluZ0VuYWJsZWQiKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRl
c3RpbmcoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdLCBmYWxzZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlVzZUdQVVByb2Nlc3NG
b3JET01SZW5kZXJpbmdFbmFibGVkIikpOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAs
IDQwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiY2FudmFzLWltYWdlLWRhdGEiXTsKKyAg
ICBFWFBFQ1RfRVEoMVUsIFt3ZWJWaWV3IGdwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudF0p
OworICAgIFt3ZWJWaWV3IF9jbG9zZV07CisKKyAgICB3aGlsZSAoW3dlYlZpZXcgZ3B1VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbkNvdW50XSkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xl
ZXAoMC4xKTsKK30KKwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogVEVTVChH
UFVQcm9jZXNzLCBMZWdhY3lDRE0pCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjVjYTEyMzYwMWVmZmRiMzQ5MzVjYmI2YTc0OTBiMGE2NDBiNmQ3OAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdl
LWRhdGEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CitjYW52YXMgeworICAgIHdpZHRoOiAxNjBweDsKKyAgICBoZWlnaHQ6IDE2
MHB4OworICAgIGRpc3BsYXk6IGJsb2NrOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHN0cm9uZz5Tb3VyY2U8L3N0cm9uZz4KKzxjYW52YXMgaWQ9InNvdXJjZSIgd2lkdGg9IjMyMCIg
aGVpZ2h0PSIzMjAiPjwvY2FudmFzPgorPHN0cm9uZz5EZXN0aW5hdGlvbjwvc3Ryb25nPgorPGNh
bnZhcyBpZD0iZGVzdGluYXRpb24iIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIj48L2NhbnZhcz4K
KzxzY3JpcHQ+Citjb25zdCBzb3VyY2VDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c291cmNlIik7Citjb25zdCBzb3VyY2VDb250ZXh0ID0gc291cmNlQ2FudmFzLmdldENvbnRleHQo
IjJkIik7Citzb3VyY2VDb250ZXh0LnNhdmUoKTsKK3NvdXJjZUNvbnRleHQuc3Ryb2tlU3R5bGUg
PSAicmVkIjsKK3NvdXJjZUNvbnRleHQuZmlsbFN0eWxlID0gInJnYmEoMjAwLCAxMDAsIDEwMCwg
MC4yNSkiOworc291cmNlQ29udGV4dC5saW5lV2lkdGggPSA0Oworc291cmNlQ29udGV4dC5yZWN0
KDQwLCA0MCwgMjQwLCAyNDApOworc291cmNlQ29udGV4dC5zdHJva2UoKTsKK3NvdXJjZUNvbnRl
eHQuZmlsbCgpOworc291cmNlQ29udGV4dC5yZXN0b3JlKCk7CisKK2NvbnN0IGltYWdlRGF0YSA9
IHNvdXJjZUNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDMyMCwgMzIwKTsKK2NvbnN0IGRlc3Rp
bmF0aW9uQ2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uIik7Citj
b25zdCBkZXN0aW5hdGlvbkNvbnRleHQgPSBkZXN0aW5hdGlvbkNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOworZGVzdGluYXRpb25Db250ZXh0LnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDAsIDAs
IDAsIDMyMCwgMzIwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA5YjExYTc5NTI0ZTgxNWIxYWMwOTI3
YzUwOTUwMWVlZDA1NTNkNDJmLi41YzU0MGZjOTBlMDk2OGExYTFmOWQ1YzUwYmEwZDRmMWYyYWIz
ZDU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNTMs
NiArNTMsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVZpZXcgPFVJVGV4
dElucHV0UHJpdmF0ZSwgVUlUZXh0SW5wdXRJbnRlcm5hbCwgVUlUZXh0SW5wdXRNdWx0aURvY3Vt
ZW50LCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFVJVGV4dElucHV0VG9rZW5pemVyPiAq
dGV4dElucHV0Q29udGVudFZpZXc7CiAtIChOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4g
KilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OihDR1JlY3QpcmVj
dDsKICNlbmRpZgorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VJbnRlZ2VyIGdw
dVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNTdHJpbmcgKmNvbnRlbnRzQXNTdHJpbmc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKnRhZ3NJbkJvZHk7CiAtICh2b2lkKWxvYWRU
ZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IGMwMmUwZGY0MjY3MDY4M2RiNTdmMDM5MGExYzY0
ZTc3N2ZhNThmOGIuLmJiZWI1MDA4ZDlhNGJmNjZjMGY2OTc2YmViZDRkZDlhNjRiMGNjZWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTE1NCw2ICsx
NTQsMTggQEAgLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3luY2hyb25vdXNs
eVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDoKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKKy0gKE5TVUludGVnZXIpZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50
Cit7CisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIE5TVUludGVn
ZXIgY291bnQgPSAwOworICAgIFtzZWxmIF9ncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRG
b3JUZXN0aW5nOl4oTlNVSW50ZWdlciByZXN1bHQpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7Cisg
ICAgICAgIGNvdW50ID0gcmVzdWx0OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgcmV0dXJuIGNvdW50OworfQorCiAtIChOU1N0cmluZyAqKWNvbnRl
bnRzQXNTdHJpbmcKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442191</attachid>
            <date>2021-10-22 13:22:45 -0700</date>
            <delta_ts>2021-10-22 15:40:40 -0700</delta_ts>
            <desc>Add missing &apos;Reviewed by&apos; line</desc>
            <filename>bug-232113-20211022132244.patch</filename>
            <type>text/plain</type>
            <size>27811</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmNDVmMDgxN2QxMjU1NDEy
NmI1YTJhNzk0MGQ0NDkxZDdiNzVlOTYuLmY3M2RmZmM1MWE0ZGU1MGQ5N2RjZTUzODQ0OTM5ZjJh
N2Q5ZmU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEtMTAtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIGluYWR2
ZXJ0ZW50bHkgaW50cm9kdWNlZCBhIHJlZi1jb3VudGluZyBjeWNsZSBiZXR3ZWVuIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIKKyAgICAgICAgYWZ0
ZXIgSVBDIHN0cmVhbSByZWZhY3RvcmluZyBpbiByMjg0MDc5LCBzaW5jZSBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyIGRpcmVjdGx5IHN0cm9uZ2x5IHJlZnMgdGhlIHJlbmRlcmluZworICAgICAg
ICBiYWNrZW5kLCBhbmQgdGhlIHJlbmRlcmluZyBiYWNrZW5kIGluZGlyZWN0bHkgaG9sZHMgb24g
dG8gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcnMgdGhyb3VnaCByZW1vdGUgaW1hZ2UKKyAgICAg
ICAgYnVmZmVycyBpbiB0aGUgcmVzb3VyY2UgY2FjaGUuIFNpbmNlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgYWxzbyBzdHJvbmdseSByZWZzICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGFzCisg
ICAgICAgIHdlbGwsIHRoaXMgY2F1c2VkIHRoZSBlbnRpcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyB0byBsZWFrIGFmdGVyIHRlYXJpbmcgZG93biB0aGUgY29ubmVjdGVkIHdlYiBwcm9jZXNz
LCBpZgorICAgICAgICB0aGUgd2ViIHByb2Nlc3MgZXZlciBpbnN0YWxsZWQgYSByZW1vdGUgcmVu
ZGVyaW5nIGJhY2tlbmQgZm9yIDJEIGNhbnZhcy4KKworICAgICAgICBUbyBhdm9pZCB0aGlzIGN5
Y2xlLCB0dXJuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIncyBgbV9yZW5kZXJpbmdCYWNrZW5k
YCBpbnRvIGEgUmVmUHRyIGluc3RlYWQgb2YgYSBSZWYsIGFuZAorICAgICAgICBjbGVhciBpdCBv
dXQgaW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAuIFRoaXMgYWxzbyBtZWFucyB0aGF0IHdlIG5v
IGxvbmdlciBuZWVkIGEgc2VwYXJhdGUgYm9vbGVhbiBmbGFnIHRvCisgICAgICAgIGVuc3VyZSB0
aGF0IGBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKClgIGlz
IGlkZW1wb3RlbnQsIHNvIHdlIGFsc28gcmVtb3ZlCisgICAgICAgIGBtX2lzTGlzdGVuaW5nRm9y
SVBDYCBhbHRvZ2V0aGVyLgorCisgICAgICAgIFRlc3Q6IEdQVVByb2Nlc3MuRG9Ob3RMZWFrQ29u
bmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UKKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om9iamVjdENvdW50Rm9yVGVz
dGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcpOgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIHRlc3Rpbmctb25seSBTUEkgaG9vayB0byBhc2sg
Zm9yIHRoZSBsaXZlIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgY291bnQuIFRoaXMgcmV0cmll
dmVzIGEKKyAgICAgICAgc3RhdGljYWxseSBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBjb3VudCBv
ZiB0aGUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBpbnN0YW5jZXMgdGhhdCBleGlzdCBpbiB0
aGUgR1BVCisgICAgICAgIHByb2Nlc3M7IGltcG9ydGFudGx5LCB0aGlzIGlzIGRpZmZlcmVudCBm
cm9tIGFza2luZyB0aGUgR1BVUHJvY2VzcyBmb3IgdGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyBp
bgorICAgICAgICBgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnNgLCBzaW5jZSB0aGUgbGF0dGVyIHdp
bGwgYmUgMCBldmVuIHdoZW4gb25lIG9yIG1vcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc2Vz
IGFyZQorICAgICAgICBzdGlsbCBhbGl2ZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyKToKKworICAgICAgICBBbHNvIGZpeCBhIGxlYWsgY2F1c2VkIGJ5IFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgYW5kIFJlbW90ZUltYWdlQnVmZmVyIHN0cm9uZ2x5IHJl
ZmZpbmcgZWFjaCBvdGhlci4gU2luY2UKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXIgb3ducyBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLCB0aGUgYmFja3BvaW50ZXIgZnJvbSBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyIHRvIHRoZSBpbWFnZQorICAgICAgICBidWZmZXIgc2hvdWxkIGJlIHdl
YWssIG5vdCBzdHJvbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1lZGlhKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6c3RvcExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisKKyAgICAgICAgQWxzbyBt
YWtlIGBtX3JlbW90ZURpc3BsYXlMaXN0c2AgYWNjZXNzIHRocmVhZC1zYWZlIHVzaW5nIGEgTG9j
ay4gVGhpcyBpcyBiZWNhdXNlIGBkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRgCisgICAgICAg
IGlzIG5vdyBpbnZva2VkIG9uIHRoZSByZW5kZXJpbmcgYmFja2VuZCB0aHJlYWQgd2hpbGUgcHJv
Y2Vzc2luZyBzdHJlYW1pbmcgSVBDLCBidXQgYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAKKyAgICAg
ICAgKHdoaWNoIGdvZXMgdGhyb3VnaCBhbmQgY2xvc2VzIElQQyBzdHJlYW0gY29ubmVjdGlvbnMg
Zm9yIGVhY2ggb2YgdGhlIHJlbW90ZSBkaXNwbGF5IGxpc3RzKSBpcyBpbnZva2VkIG9uIHRoZQor
ICAgICAgICBtYWluIHJ1bmxvb3AuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisKKyAgICAgICAgQWRkIHRoZSBuZXcgdGVzdGlu
ZyBTUEkgKHNlZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9n
cHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc1Byb3h5Ojp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKwogMjAyMS0xMC0yMiAgUGVyIEFy
bmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIHJlcXVp
cmVkIHN5c2NhbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBmYjIwN2M0NjM2Y2Q1ZjFkOGEyNjE1ZDQ4MWM1
ZmI3YzBlZDk0M2FjLi44NzBlMzdlMDVlMDU0ZWQ3YTA2ZDdkZWJmNTIxZWFkNTgxMzIxMDU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCkBAIC0yNDgsNiArMjQ4LDggQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIK
ICAgICAvLyByZXBseSBmcm9tIHRoZSBHUFUgcHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZl
LgogICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpOwogICAgIG1f
Y29ubmVjdGlvbi0+b3BlbigpOworCisgICAgKytnT2JqZWN0Q291bnRGb3JUZXN0aW5nOwogfQog
CiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
CkBAIC0yNjIsOCArMjY0LDEyIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJU
QykKICAgICBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5LT5jbG9zZSgpOwogI2VuZGlmCisKKyAgICAt
LWdPYmplY3RDb3VudEZvclRlc3Rpbmc7CiB9CiAKK3VpbnQ2NF90IEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmdPYmplY3RDb3VudEZvclRlc3RpbmcgPSAwOworCiB2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgSEFWRShBVkFVRElPX1JPVVRJTkdf
QVJCSVRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCmluZGV4IDljNTIzNjQxNDIyNGE5MmRjZjYwZGRlMWUwYzhkYjZjYzU2
ZThiNGUuLjQxMGY4ZWY5NTc1MTIyYjgyMjY1NTk5ZWFjY2FhMTRjNjJjYjIxMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMTcwLDYgKzE3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VHcmFwaGljc0Nv
bnRleHRHTEZvclRlc3RpbmcoR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKTsKICNlbmRpZgog
CisgICAgaW5saW5lIHN0YXRpYyB1aW50NjRfdCBvYmplY3RDb3VudEZvclRlc3RpbmcoKSB7IHJl
dHVybiBnT2JqZWN0Q291bnRGb3JUZXN0aW5nOyB9CisKICAgICB1c2luZyBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kTWFwID0gSGFzaE1hcDxSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgSVBDOjpT
Y29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2ZVF1ZXVlPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+PjsK
ICAgICBjb25zdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWFwJiByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kTWFwKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWFwOyB9CiAK
QEAgLTI0Miw2ICsyNDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2Fz
UmVjb25maWd1cmVkKCk7CiAjZW5kaWYKIAorICAgIHN0YXRpYyB1aW50NjRfdCBnT2JqZWN0Q291
bnRGb3JUZXN0aW5nOworCiAgICAgUmVmUHRyPExvZ2dlcj4gbV9sb2dnZXI7CiAKICAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
UHJvY2Vzcy5jcHAKaW5kZXggMmU3NjJhNzgxNDI0YThkODEzYmVhZjc3M2I5N2EwYWEzM2EyNzNi
MC4uNzBjYzM4MWExZjQ5MWM0NGY5OGRlYWUwMGY3NTY2OGMwMDgxZWFmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtNDk4LDYgKzQ5OCwxMSBAQCB2b2lkIEdQ
VVByb2Nlc3M6OnNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRp
ZgogCit2b2lkIEdQVVByb2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGNvbXBsZXRpb25IYW5kbGVyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om9iamVj
dENvdW50Rm9yVGVzdGluZygpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
aAppbmRleCA1NDFmNWIwZmYyY2QwMTZkZDdhMjQ0YTM1MzJiZTk0N2VkNGE4NDkxLi4wYWY0OTgy
Nzg0YThhNjQyZTg2YWQ1NjA4YTNkY2Q1YTE5NWQ4OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmgKQEAgLTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBT
dHJpbmcmIGFwcGxpY2F0aW9uVmlzaWJsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0
aW9uVmlzaWJsZU5hbWU7IH0KIAorICAgIHZvaWQgd2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZv
clRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworCiBwcml2YXRl
OgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCwgU3luY2hyb25vdXMpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IGI2NGJhMTY0YTkyZDdiYTYxYmVkZWQyYTVhZTMwMmE2MDJlY2I4ZjcuLmJhODRhN2M1MzJlMmEw
MWJhMjM0OTZiNGZjYmQ5YzYwMDY2NDk0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC02OCw2ICs2OCw4IEBAIG1lc3NhZ2VzIC0+
IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9N
T0RFKQogICAgIE5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChTdHJpbmcgZG9tYWluLCBTdHJpbmcg
a2V5LCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZW5jb2RlZFZhbHVlKQogI2VuZGlmCisKKyAgICBX
ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZygpIC0+ICh1aW50NjRfdCBjb3VudCkg
QXN5bmMKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAppbmRleCBlZWE5MmZkZmFmYWY4NjJmMDBkMjEyOTQ4M2U3MTkxYzE3YzZi
NjcyLi4wODkzNTZlYzI2OWJmMGY4OTVkN2E3MjIzZTRjNmJmMzU5N2ZjNjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIoSW1hZ2VCdWZmZXImIGltYWdlQnVm
ZmVyLCBRCiAgICAgOiBtX2ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKQogICAgICwgbV9pbWFnZUJ1
ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQogICAgICwgbV93ZWJQcm9jZXNz
SWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRpZmllcikKLSAgICAsIG1fcmVuZGVyaW5nQmFja2Vu
ZChyZW5kZXJpbmdCYWNrZW5kKQorICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKCZyZW5kZXJpbmdC
YWNrZW5kKQogewogfQogCkBAIC01MywxOCArNTMsMTMgQEAgR3JhcGhpY3NDb250ZXh0JiBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCgpCiAKIHZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIEFTU0VSVCgh
bV9pc0xpc3RlbmluZ0ZvcklQQyk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IHRydWU7CiAg
ICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zdHJlYW1Db25uZWN0aW9uKCkuc3RhcnRSZWNlaXZpbmdN
ZXNzYWdlcygqdGhpcywgTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3RvcExpc3Rlbmlu
Z0ZvcklQQygpCiB7Ci0gICAgaWYgKCFtX2lzTGlzdGVuaW5nRm9ySVBDKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNvbm5lY3Rpb24oKS5zdG9wUmVj
ZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50
NjQoKSk7Ci0gICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IGZhbHNlOworICAgIGlmIChhdXRvIHJl
bmRlcmluZ0JhY2tlbmQgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVuZGVyaW5nQmFja2VuZCwgeyB9KSkK
KyAgICAgICAgcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0b3BSZWNlaXZp
bmdNZXNzYWdlcyhNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5vYmplY3QoKS50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzYXZlKCkKQEAgLTQyNiw5
ICs0MjEsMTEgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZl
cihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnQKIAogdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCiB7Ci0gICAgbV9yZW5kZXJp
bmdCYWNrZW5kLT5wZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIs
IFtpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIuY29weVJlZigpLCBkZXN0aW5hdGlvbl0oTWVk
aWFQbGF5ZXImIHBsYXllcikgewotICAgICAgICAvLyBJdCBpcyBjdXJyZW50bHkgbm90IHNhZmUg
dG8gY2FsbCBwYWludEZyYW1lRm9yTWVkaWEoKSBvZmYgdGhlIG1haW4gdGhyZWFkLgotICAgICAg
ICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnBhaW50RnJhbWVGb3JNZWRpYShwbGF5ZXIsIGRlc3Rp
bmF0aW9uKTsKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJP
bk1haW5UaHJlYWQoaWRlbnRpZmllciwgW3dlYWtJbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIs
IGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CisgICAgICAgIGlmIChSZWZQdHIg
aW1hZ2VCdWZmZXIgPSB3ZWFrSW1hZ2VCdWZmZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgIC8vIEl0
IGlzIGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRpYSgpIG9mZiB0
aGUgbWFpbiB0aHJlYWQuCisgICAgICAgICAgICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnBhaW50
RnJhbWVGb3JNZWRpYShwbGF5ZXIsIGRlc3RpbmF0aW9uKTsKKyAgICAgICAgfQogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2MmE0OTcwNmUyOGIwMWUwYTZiODY5
YmQzM2U2MjRlYzdkOGIzNjkxLi41OTgyY2JhZWI4N2U2NjBjNWJhYjc3YTZkN2EyOTU3MDM1N2Ji
ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE0OSwxMiArMTQ5LDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQQygpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOwogCi0gICAgUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdl
QnVmZmVyOworICAgIFdlYWtQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7
CiAgICAgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXI7Ci0gICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFj
a2VuZDsKKyAgICBSZWZQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdCYWNr
ZW5kOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9tYXNrSW1hZ2VCdWZmZXI7
Ci0gICAgYm9vbCBtX2lzTGlzdGVuaW5nRm9ySVBDIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDVjODgxOTMwODc1MDY5
MzY0NmI2N2E1YzRjZTcxNzFmM2JlMWRjNzUuLmEyMjBlYTA4M2Y5NGQ4YTc1NDNjZjUxMTVjZGM0
MjVhMmIwZDg5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTExMSw2ICsxMTEsOCBA
QCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgbV9zdHJlYW1Db25uZWN0aW9uLT5zdG9w
UmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPnN0b3BSZWNlaXZpbmdNZXNzYWdlcyhNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX3JlbW90ZURpc3BsYXlMaXN0c0xvY2sgfTsKICAgICBmb3Ig
KGF1dG8mIHJlbW90ZUNvbnRleHQgOiBzdGQ6OmV4Y2hhbmdlKG1fcmVtb3RlRGlzcGxheUxpc3Rz
LCB7IH0pKQogICAgICAgICByZW1vdGVDb250ZXh0LnN0b3BMaXN0ZW5pbmdGb3JJUEMoKTsKIH0K
QEAgLTEzMiw3ICsxMzQsMTAgQEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgaGFuZGxlLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyJiByZW1vdGVEaXNw
bGF5TGlzdCkKIHsKLSAgICBtX3JlbW90ZURpc3BsYXlMaXN0cy5hZGQocmVtb3RlRGlzcGxheUxp
c3QpOworICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcmVtb3RlRGlzcGxheUxpc3Rz
TG9jayB9OworICAgICAgICBtX3JlbW90ZURpc3BsYXlMaXN0cy5hZGQocmVtb3RlRGlzcGxheUxp
c3QpOworICAgIH0KICAgICBNRVNTQUdFX0NIRUNLKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2Vi
UHJvY2Vzc0lkZW50aWZpZXIoKSwgIlNlbmRpbmcgZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5k
KCkgbWVzc2FnZSB0byB0aGUgd3Jvbmcgd2ViIHByb2Nlc3MuIik7CiAgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpEaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQoV1RGTW92ZShoYW5kbGUpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIub2JqZWN0KCkp
LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmlu
ZGV4IDk1ZGY4ZWE1NTU2ZjkyM2NmNDFmNjc2YTNlZGNkY2ViZjk3MDNmMGQuLmI2ZTE5ZGFjOTNk
ZjcyYjkxNDVmNTFlMGMyMTE1MmRjMTE2OTZjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAt
MTMzLDcgKzEzMyw5IEBAIHByaXZhdGU6CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1
ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5OwogICAgIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5k
ZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwotICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI+IG1fcmVtb3RlRGlzcGxheUxpc3RzOworCisgICAgTG9jayBtX3JlbW90ZURpc3Bs
YXlMaXN0c0xvY2s7CisgICAgV2Vha0hhc2hTZXQ8UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcj4g
bV9yZW1vdGVEaXNwbGF5TGlzdHMgV1RGX0dVQVJERURfQllfTE9DSyhtX3JlbW90ZURpc3BsYXlM
aXN0c0xvY2spOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oCmluZGV4IGY2YTFjZmQ4MGQzNGI3YzE5ZGE1MmNhNTY0MGExN2U2YWNlOTg4NDIu
LjlhOTk0NjFiNDFlNDU5NWQwZTAzNWJmYWNiMWQ3NWE2ZDgyY2EwYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlRm9yVGVzdGluZy5oCkBAIC0xMTQsNiArMTE0LDcgQEAgc3RydWN0IFdLQXBwUHJpdmFjeVJl
cG9ydFRlc3RpbmdEYXRhIHsKIC0gKHZvaWQpX2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCiAtICh2b2lkKV9jcmVhdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9yIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bkNvdW50Rm9yVGVzdGluZzoodm9pZCheKShOU1VJbnRlZ2VyKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBA
ZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0KaW5kZXggNTlkOWVkMTRkMzI5M2FlMGRkMTE3OTFkMGQxZTc4NDUxZGU4
Y2E2NC4uYzY5M2U1NGUzODkxYWYxNDRlZTFlNWMxYTcyMTNiYjZiYmRiOTA3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
LmgiCiAKICNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNp
bXBvcnQgIkdQVVByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eVByaXZhdGUuaCIKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5o
IgogI2ltcG9ydCAiVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCIKQEAgLTQyMyw2ICs0MjQsMTkg
QEAgLSAodm9pZClfY2xlYXJBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGE6KHZvaWQoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIKICAgICB9KTsKIH0KIAorLSAodm9pZClfZ3B1VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZzoodm9pZCheKShOU1VJbnRlZ2VyKSljb21wbGV0
aW9uSGFuZGxlcgoreworICAgIFJlZlB0ciBncHVQcm9jZXNzID0gX3BhZ2UtPnByb2Nlc3MoKS5w
cm9jZXNzUG9vbCgpLmdwdVByb2Nlc3MoKTsKKyAgICBpZiAoIWdwdVByb2Nlc3MpIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBn
cHVQcm9jZXNzLT53ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhbY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSh1aW50NjRfdCBjb3Vu
dCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb3VudCk7CisgICAgfSk7Cit9CisKIC0g
KHZvaWQpX2NyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzooaWQgPF9XS01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPilwcml2YXRlQ29vcmRpbmF0b3IgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NQcm94eS5jcHAKaW5kZXggZjhhMTkzZjk2ZjUyNzc0ZTUwNTUwMDY5NDA5NTZlYjg1
NzM3ZmE3ZC4uZDcyM2E4NmU0MzgxYmQ3Y2QzYmNhNDgzOTEzNzU1Y2RiMDE4NGZiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTM5
OSw2ICszOTksMTEgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3Rpbmco
KQogICAgIHByb2Nlc3NJc1JlYWR5VG9FeGl0KCk7CiB9CiAKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5
Ojp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OldlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JU
ZXN0aW5nKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBHUFVQcm9j
ZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CiAgICAgUkVMRUFTRV9MT0df
RVJST1IoUHJvY2VzcywgIiVwIC0gR1BVUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZToiLCB0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAppbmRleCBk
NTZhZjAwYjNmYzAxYzNjZmI0NDk3Y2U5NjRiNmQ0MzAxYTgzMzhlLi5iMTEwNDEwMjM3ZWVlY2M4
ZjAyNTY3N2EwNjJlNjc5MWY2ZWIwMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZVByZWZlcmVuY2VzKCk7CiAKICAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsK
KyAgICB2b2lkIHdlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBHUFVQ
cm9jZXNzUHJveHkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAyYjcxNWI3MTEzZmM4ODZlNzU1MDczZTAxOTZhZTE0N2MwZDI2MmY4Li5kMzBh
NjkwMzM1YmVjZDk5YWU4NjNiNjNiOTk4NTU1NzQzMTQxZDlmIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAt
MjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAocjI4NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGlu
IHByaXZhdGUgYnJvd3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFy
Oi8vODQzOTkyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBuZXcgQVBJIHRlc3QgdG8gdmVyaWZ5IHRoYXQgdGhlIEdQVSB0byB3ZWIgcHJj
b2VzcyBjb25uZWN0aW9uIGlzbid0IGxlYWtlZCBpbiB0aGUgR1BVIHByb2Nlc3MuIFNlZSBXZWJL
aXQKKyAgICAgICAgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dLV2ViVmlldyBncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKToKKwogMjAy
MS0xMC0yMiAgUm95IFJlYXBvciAgPHJyZWFwb3JAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtp
dHB5L2F1dG9pbnN0YWxsZWQvcHlvYmpjX2ZyYW1ld29ya3MucHkgc2hvdWxkIGluc3RhbGwgd2hl
ZWwgZGlzdHJpYnV0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlZDJiZGFkODU5NGUw
YjQ4ZjA3YWE3MDY2Njc5MzAxZTY0NjU5MDkuLjA1NGQ4MzVjZGEwYjFhZDkxNDBiNDQ3NWFhNWQ3
YWMwOGVlZjNiYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjk0LDYgKzEyOTQsNyBA
QAogCQlGNEUwQTJCNDIxMjI0MDJCMDBBRjdDN0YgLyogaW1hZ2UtYW5kLWZpbGUtdXBsb2FkLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjRFMEEyQjMyMTIyM0YyRDAwQUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sICov
OyB9OwogCQlGNEUwQTJCODIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUw
QTJCNzIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gKi87IH07
CiAJCUY0RTNEODA4MjBGNzBCQjkwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9u
ZS1hcnRpY2xlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjRFM0Q4MDcyMEY3MDhFNDAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRleHQt
bWlsZXN0b25lLWFydGljbGUuaHRtbCAqLzsgfTsKKwkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2
IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZh
cy1pbWFnZS1kYXRhLmh0bWwgKi87IH07CiAJCUY0RUI0RTkxMjMyOEFDMzAwMDU3NERBQiAvKiBO
U0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0RUI0RTkwMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRl
ckFkZGl0aW9ucy5tbSAqLzsgfTsKIAkJRjRFQzgwOTQyNjBEMzA1NDAwMTAzMTFEIC8qIHNpbXBs
ZS1pbWFnZS1vdmVybGF5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRFQzgwOTMyNjBEMkU2MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFn
ZS1vdmVybGF5Lmh0bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJn
ZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxh
cmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKQEAgLTE0NDQsNiArMTQ0NSw3
IEBACiAJCQkJMkRFNzFCMDAxRDQ5QzNFRDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdDNDg2QkExMUFBMTI1NjcwMDNGNkY5QiAvKiBidW5k
bGUtZmlsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTI2REY1QTYzMTVBMkEyN0Uw
MDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCisJCQkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8qIGNhbnZhcy1p
bWFnZS1kYXRhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUxRDg4Njc3
NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkyRUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVv
LXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QkQ0MjM5QzFF
MDRDMDFDMDAyMDAzOTUgLyogY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMzE4Nyw2ICszMTg5LDcgQEAKIAkJRjRFMEEyQjYyMTIyODQ3
NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
c3RGaWxlUHJvbWlzZVJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RTBBMkI3MjEyMjg0NzQwMEFGN0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNEUzRDgwNzIwRjcwOEU0MDA3QjU4QzUgLyogc2lnbmlmaWNh
bnQtdGV4dC1taWxlc3RvbmUtYXJ0aWNsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gInNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1h
Z2UtZGF0YS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNhbnZhcy1pbWFnZS1k
YXRhLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVCNEU4RjIzMjhBQzMw
MDA1NzREQUIgLyogTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTlNJ
dGVtUHJvdmlkZXJBZGRpdGlvbnMuaDsgcGF0aCA9IGNvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRp
b25zLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRFQjRFOTAyMzI4QUMzMDAw
NTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW07IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRl
ckFkZGl0aW9ucy5tbTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNEVDODA5MzI2
MEQyRTYyMDAxMDMxMUQgLyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJzaW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQwNTEsNiArNDA1NCw3IEBACiAJCQkJRjQxQUI5OTcxRUY0Njky
QzAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCAqLywKIAkJ
CQk0NjRDNzY0QzIzMERGODMyMDBBRkIwMjAgLyogQmFkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bnMtNC5zcWxpdGUzICovLAogCQkJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2lu
Zy1kaXYuaHRtbCAqLywKKwkJCQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWlt
YWdlLWRhdGEuaHRtbCAqLywKIAkJCQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdl
LXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0
QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovLAogCQkJCTgzOUFBMzVF
MjFBMjZBQ0QwMDk4MERENiAvKiBjbGllbnQtc2lkZS1yZWRpcmVjdC5odG1sICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmlu
ZGV4IDg0MDk2OTc1NjE0NDZlYmY4YWU4YzY1ZmRiYzllMTAyMjk0M2QxZjMuLjQ0YzhhOGRlOTgw
Y2NjMTAyYjIxN2FhODY5YWViOGM4ZTU1MGY2MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTI4Miw2ICsyODIsMjEg
QEAgVEVTVChHUFVQcm9jZXNzLCBPbmx5TGF1bmNoZXNHUFVQcm9jZXNzV2hlbk5lY2Vzc2FyeU1l
ZGlhRmVhdHVyZURldGVjdGlvbikKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24uZ2V0KCku
cHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CiB9CiAKK1RFU1QoR1BVUHJv
Y2VzcywgRG9Ob3RMZWFrQ29ubmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UpCit7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygo
X19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIHRy
dWUsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yQ2FudmFz
UmVuZGVyaW5nRW5hYmxlZCIpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5
Rm9yVGVzdGluZygoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10sIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJv
Y2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQiKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDQwMCwgNDAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjYW52YXMtaW1hZ2UtZGF0YSJd
OworICAgIEVYUEVDVF9FUSgxVSwgW3dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNv
dW50XSk7CisgICAgW3dlYlZpZXcgX2Nsb3NlXTsKKworICAgIHdoaWxlIChbd2ViVmlldyBncHVU
b1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpzbGVlcCgwLjEpOworfQorCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiBU
RVNUKEdQVVByb2Nlc3MsIExlZ2FjeUNETSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNWNhMTIzNjAxZWZmZGIzNDkzNWNiYjZhNzQ5MGIwYTY0MGI2ZDc4Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMt
aW1hZ2UtZGF0YS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK2NhbnZhcyB7CisgICAgd2lkdGg6IDE2MHB4OworICAgIGhlaWdo
dDogMTYwcHg7CisgICAgZGlzcGxheTogYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8c3Ryb25nPlNvdXJjZTwvc3Ryb25nPgorPGNhbnZhcyBpZD0ic291cmNlIiB3aWR0aD0i
MzIwIiBoZWlnaHQ9IjMyMCI+PC9jYW52YXM+Cis8c3Ryb25nPkRlc3RpbmF0aW9uPC9zdHJvbmc+
Cis8Y2FudmFzIGlkPSJkZXN0aW5hdGlvbiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIzMjAiPjwvY2Fu
dmFzPgorPHNjcmlwdD4KK2NvbnN0IHNvdXJjZUNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzb3VyY2UiKTsKK2NvbnN0IHNvdXJjZUNvbnRleHQgPSBzb3VyY2VDYW52YXMuZ2V0Q29u
dGV4dCgiMmQiKTsKK3NvdXJjZUNvbnRleHQuc2F2ZSgpOworc291cmNlQ29udGV4dC5zdHJva2VT
dHlsZSA9ICJyZWQiOworc291cmNlQ29udGV4dC5maWxsU3R5bGUgPSAicmdiYSgyMDAsIDEwMCwg
MTAwLCAwLjI1KSI7Citzb3VyY2VDb250ZXh0LmxpbmVXaWR0aCA9IDQ7Citzb3VyY2VDb250ZXh0
LnJlY3QoNDAsIDQwLCAyNDAsIDI0MCk7Citzb3VyY2VDb250ZXh0LnN0cm9rZSgpOworc291cmNl
Q29udGV4dC5maWxsKCk7Citzb3VyY2VDb250ZXh0LnJlc3RvcmUoKTsKKworY29uc3QgaW1hZ2VE
YXRhID0gc291cmNlQ29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMzIwLCAzMjApOworY29uc3Qg
ZGVzdGluYXRpb25DYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzdGluYXRpb24i
KTsKK2NvbnN0IGRlc3RpbmF0aW9uQ29udGV4dCA9IGRlc3RpbmF0aW9uQ2FudmFzLmdldENvbnRl
eHQoIjJkIik7CitkZXN0aW5hdGlvbkNvbnRleHQucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwg
MCwgMCwgMCwgMzIwLCAzMjApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IDliMTFhNzk1MjRlODE1YjFh
YzA5MjdjNTA5NTAxZWVkMDU1M2Q0MmYuLjVjNTQwZmM5MGUwOTY4YTFhMWY5ZDVjNTBiYTBkNGYx
ZjJhYjNkNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2Vi
Vmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBA
IC01Myw2ICs1Myw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyA8
VUlUZXh0SW5wdXRQcml2YXRlLCBVSVRleHRJbnB1dEludGVybmFsLCBVSVRleHRJbnB1dE11bHRp
RG9jdW1lbnQsIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbCwgVUlUZXh0SW5wdXRUb2tlbml6
ZXI+ICp0ZXh0SW5wdXRDb250ZW50VmlldzsKIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4
dCAqPiAqKXN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVj
dClyZWN0OwogI2VuZGlmCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVUludGVn
ZXIgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50OwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU1N0cmluZyAqY29udGVudHNBc1N0cmluZzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNBcnJheTxOU1N0cmluZyAqPiAqdGFnc0luQm9keTsKIC0gKHZvaWQp
bG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggYzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkw
YTFjNjRlNzc3ZmE1OGY4Yi4uYmJlYjUwMDhkOWE0YmY2NmMwZjY5NzZiZWJkNGRkOWE2NGIwY2Nl
YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTU0
LDYgKzE1NCwxOCBAQCAtIChOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJv
bm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OgogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAorLSAoTlNVSW50ZWdlcilncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Q291bnQKK3sKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNV
SW50ZWdlciBjb3VudCA9IDA7CisgICAgW3NlbGYgX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25D
b3VudEZvclRlc3Rpbmc6XihOU1VJbnRlZ2VyIHJlc3VsdCkgeworICAgICAgICBkb25lID0gdHJ1
ZTsKKyAgICAgICAgY291bnQgPSByZXN1bHQ7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKIC0gKE5TU3RyaW5nICop
Y29udGVudHNBc1N0cmluZwogewogICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442206</attachid>
            <date>2021-10-22 15:40:42 -0700</date>
            <delta_ts>2021-10-22 16:04:35 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-232113-20211022154042.patch</filename>
            <type>text/plain</type>
            <size>27568</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmNDVmMDgxN2QxMjU1NDEy
NmI1YTJhNzk0MGQ0NDkxZDdiNzVlOTYuLjhlM2I4NjU2MTgzY2VmYjVkNGQ1ZGUyM2RlZTEzM2Ix
MzVjMDgwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEtMTAtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEkgaW5hZHZlcnRl
bnRseSBpbnRyb2R1Y2VkIGEgcmVmLWNvdW50aW5nIGN5Y2xlIGJldHdlZW4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcgorICAgICAgICBhZnRlciBJ
UEMgc3RyZWFtIHJlZmFjdG9yaW5nIGluIHIyODQwNzksIHNpbmNlIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIgZGlyZWN0bHkgc3Ryb25nbHkgcmVmcyB0aGUgcmVuZGVyaW5nCisgICAgICAgIGJh
Y2tlbmQsIGFuZCB0aGUgcmVuZGVyaW5nIGJhY2tlbmQgaW5kaXJlY3RseSBob2xkcyBvbiB0byBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVycyB0aHJvdWdoIHJlbW90ZSBpbWFnZQorICAgICAgICBi
dWZmZXJzIGluIHRoZSByZXNvdXJjZSBjYWNoZS4gU2luY2UgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCBhbHNvIHN0cm9uZ2x5IHJlZnMgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgYXMKKyAgICAg
ICAgd2VsbCwgdGhpcyBjYXVzZWQgdGhlIGVudGlyZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
IHRvIGxlYWsgYWZ0ZXIgdGVhcmluZyBkb3duIHRoZSBjb25uZWN0ZWQgd2ViIHByb2Nlc3MsIGlm
CisgICAgICAgIHRoZSB3ZWIgcHJvY2VzcyBldmVyIGluc3RhbGxlZCBhIHJlbW90ZSByZW5kZXJp
bmcgYmFja2VuZCBmb3IgMkQgY2FudmFzLgorCisgICAgICAgIFRvIGF2b2lkIHRoaXMgY3ljbGUs
IHR1cm4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcidzIGBtX3JlbmRlcmluZ0JhY2tlbmRgIGlu
dG8gYSBSZWZQdHIgaW5zdGVhZCBvZiBhIFJlZiwgYW5kCisgICAgICAgIGNsZWFyIGl0IG91dCBp
biBgc3RvcExpc3RlbmluZ0ZvcklQQygpYC4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgd2Ugbm8gbG9u
Z2VyIG5lZWQgYSBzZXBhcmF0ZSBib29sZWFuIGZsYWcgdG8KKyAgICAgICAgZW5zdXJlIHRoYXQg
YFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAgaXMgaWRl
bXBvdGVudCwgc28gd2UgYWxzbyByZW1vdmUKKyAgICAgICAgYG1faXNMaXN0ZW5pbmdGb3JJUENg
IGFsdG9nZXRoZXIuCisKKyAgICAgICAgVGVzdDogR1BVUHJvY2Vzcy5Eb05vdExlYWtDb25uZWN0
aW9uQWZ0ZXJDbG9zaW5nV2ViUGFnZQorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6b2JqZWN0Q291bnRGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyk6CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgdGVzdGluZy1vbmx5IFNQSSBob29rIHRvIGFzayBmb3Ig
dGhlIGxpdmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb3VudC4gVGhpcyByZXRyaWV2ZXMg
YQorICAgICAgICBzdGF0aWNhbGx5IGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGNvdW50IG9mIHRo
ZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGluc3RhbmNlcyB0aGF0IGV4aXN0IGluIHRoZSBH
UFUKKyAgICAgICAgcHJvY2VzczsgaW1wb3J0YW50bHksIHRoaXMgaXMgZGlmZmVyZW50IGZyb20g
YXNraW5nIHRoZSBHUFVQcm9jZXNzIGZvciB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGluCisg
ICAgICAgIGBtX3dlYlByb2Nlc3NDb25uZWN0aW9uc2AsIHNpbmNlIHRoZSBsYXR0ZXIgd2lsbCBi
ZSAwIGV2ZW4gd2hlbiBvbmUgb3IgbW9yZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzZXMgYXJl
CisgICAgICAgIHN0aWxsIGFsaXZlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIpOgorCisgICAgICAgIEFsc28gZml4IGEgbGVhayBjYXVzZWQgYnkgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlciBhbmQgUmVtb3RlSW1hZ2VCdWZmZXIgc3Ryb25nbHkgcmVmZmlu
ZyBlYWNoIG90aGVyLiBTaW5jZQorICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlciBvd25zIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXIsIHRoZSBiYWNrcG9pbnRlciBmcm9tIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIgdG8gdGhlIGltYWdlCisgICAgICAgIGJ1ZmZlciBzaG91bGQgYmUgd2Vhaywg
bm90IHN0cm9uZy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzdGFydExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpz
dG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKworICAgICAgICBBbHNvIG1ha2Ug
YG1fcmVtb3RlRGlzcGxheUxpc3RzYCBhY2Nlc3MgdGhyZWFkLXNhZmUgdXNpbmcgYSBMb2NrLiBU
aGlzIGlzIGJlY2F1c2UgYGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZGAKKyAgICAgICAgaXMg
bm93IGludm9rZWQgb24gdGhlIHJlbmRlcmluZyBiYWNrZW5kIHRocmVhZCB3aGlsZSBwcm9jZXNz
aW5nIHN0cmVhbWluZyBJUEMsIGJ1dCBgc3RvcExpc3RlbmluZ0ZvcklQQygpYAorICAgICAgICAo
d2hpY2ggZ29lcyB0aHJvdWdoIGFuZCBjbG9zZXMgSVBDIHN0cmVhbSBjb25uZWN0aW9ucyBmb3Ig
ZWFjaCBvZiB0aGUgcmVtb3RlIGRpc3BsYXkgbGlzdHMpIGlzIGludm9rZWQgb24gdGhlCisgICAg
ICAgIG1haW4gcnVubG9vcC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKworICAgICAgICBBZGQgdGhlIG5ldyB0ZXN0aW5nIFNQ
SSAoc2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dwdVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
UHJveHk6OndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorCiAyMDIxLTEwLTIyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgcmVxdWlyZWQg
c3lzY2FsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGZiMjA3YzQ2MzZjZDVmMWQ4YTI2MTVkNDgxYzVmYjdj
MGVkOTQzYWMuLjg3MGUzN2UwNWUwNTRlZDdhMDZkN2RlYmY1MjFlYWQ1ODEzMjEwNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTI0OCw2ICsyNDgsOCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAg
IC8vIHJlcGx5IGZyb20gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCiAg
ICAgbV9jb25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25u
ZWN0aW9uLT5vcGVuKCk7CisKKyAgICArK2dPYmplY3RDb3VudEZvclRlc3Rpbmc7CiB9CiAKIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKQEAg
LTI2Miw4ICsyNjQsMTIgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQog
ICAgIG1fbGliV2ViUlRDQ29kZWNzUHJveHktPmNsb3NlKCk7CiAjZW5kaWYKKworICAgIC0tZ09i
amVjdENvdW50Rm9yVGVzdGluZzsKIH0KIAordWludDY0X3QgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Z09iamVjdENvdW50Rm9yVGVzdGluZyA9IDA7CisKIHZvaWQgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogI2lm
IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJ
VEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKaW5kZXggOWM1MjM2NDE0MjI0YTkyZGNmNjBkZGUxZTBjOGRiNmNjNTZlOGI0
ZS4uNDEwZjhlZjk1NzUxMjJiODIyNjU1OTllYWNjYWExNGM2MmNiMjExMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBA
IC0xNzAsNiArMTcwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUdyYXBoaWNzQ29udGV4
dEdMRm9yVGVzdGluZyhHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAg
ICBpbmxpbmUgc3RhdGljIHVpbnQ2NF90IG9iamVjdENvdW50Rm9yVGVzdGluZygpIHsgcmV0dXJu
IGdPYmplY3RDb3VudEZvclRlc3Rpbmc7IH0KKwogICAgIHVzaW5nIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBJUEM6OlNjb3Bl
ZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4+OwogICAg
IGNvbnN0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXAmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRN
YXAoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXA7IH0KIApAQCAt
MjQyLDYgKzI0NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQoKTsKICNlbmRpZgogCisgICAgc3RhdGljIHVpbnQ2NF90IGdPYmplY3RDb3VudEZv
clRlc3Rpbmc7CisKICAgICBSZWZQdHI8TG9nZ2VyPiBtX2xvZ2dlcjsKIAogICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLmNwcAppbmRleCAyZTc2MmE3ODE0MjRhOGQ4MTNiZWFmNzczYjk3YTBhYTMzYTI3M2IwLi43
MGNjMzgxYTFmNDkxYzQ0Zjk4ZGVhZTAwZjc1NjY4YzAwODFlYWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC00OTgsNiArNDk4LDExIEBAIHZvaWQgR1BVUHJv
Y2Vzczo6c2V0Vm9yYmlzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQogfQogI2VuZGlmCiAK
K3ZvaWQgR1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6b2JqZWN0Q291
bnRGb3JUZXN0aW5nKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmlu
ZGV4IDU0MWY1YjBmZjJjZDAxNmRkN2EyNDRhMzUzMmJlOTQ3ZWQ0YTg0OTEuLjBhZjQ5ODI3ODRh
OGE2NDJlODZhZDU2MDhhM2RjZDVhMTk1ZDg5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MuaApAQCAtMTAwLDYgKzEwMCw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmlu
ZyYgYXBwbGljYXRpb25WaXNpYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25W
aXNpYmxlTmFtZTsgfQogCisgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisKIHByaXZhdGU6CiAg
ICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsLCBTeW5jaHJvbm91cyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYjY0
YmExNjRhOTJkN2JhNjFiZWRlZDJhNWFlMzAyYTYwMmVjYjhmNy4uYmE4NGE3YzUzMmUyYTAxYmEy
MzQ5NmI0ZmNiZDljNjAwNjY0OTQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTY4LDYgKzY4LDggQEAgbWVzc2FnZXMgLT4gR1BV
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUp
CiAgICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXks
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAjZW5kaWYKKworICAgIFdlYlBy
b2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKCkgLT4gKHVpbnQ2NF90IGNvdW50KSBBc3lu
YwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCmluZGV4IGVlYTkyZmRmYWZhZjg2MmYwMGQyMTI5NDgzZTcxOTFjMTdjNmI2NzIu
LmZhMTZlY2RhYjQ2NjRlZjI1NDQ2NzNkMjliZDJlZWNhNmQ1OTY1YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIs
IFEKICAgICA6IG1faW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpCiAgICAgLCBtX2ltYWdlQnVmZmVy
SWRlbnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVu
dGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKHJl
bmRlcmluZ0JhY2tlbmQpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQoJnJlbmRlcmluZ0JhY2tl
bmQpCiB7CiB9CiAKQEAgLTUzLDE4ICs1MywxMyBAQCBHcmFwaGljc0NvbnRleHQmIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdpbmdDb250ZXh0KCkKIAogdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCiB7Ci0gICAgQVNTRVJUKCFtX2lz
TGlzdGVuaW5nRm9ySVBDKTsKLSAgICBtX2lzTGlzdGVuaW5nRm9ySVBDID0gdHJ1ZTsKICAgICBt
X3JlbmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNvbm5lY3Rpb24oKS5zdGFydFJlY2VpdmluZ01lc3Nh
Z2VzKCp0aGlzLCBNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5vYmplY3QoKS50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9y
SVBDKCkKIHsKLSAgICBpZiAoIW1faXNMaXN0ZW5pbmdGb3JJUEMpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0b3BSZWNlaXZp
bmdNZXNzYWdlcyhNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5vYmplY3QoKS50b1VJbnQ2NCgp
KTsKLSAgICBtX2lzTGlzdGVuaW5nRm9ySVBDID0gZmFsc2U7CisgICAgaWYgKGF1dG8gcmVuZGVy
aW5nQmFja2VuZCA9IHN0ZDo6ZXhjaGFuZ2UobV9yZW5kZXJpbmdCYWNrZW5kLCB7IH0pKQorICAg
ICAgICByZW5kZXJpbmdCYWNrZW5kLT5zdHJlYW1Db25uZWN0aW9uKCkuc3RvcFJlY2VpdmluZ01l
c3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0KCkpOwog
fQogCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNhdmUoKQpAQCAtNDI2LDcgKzQy
MSw3IEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cHV0UGl4ZWxCdWZmZXIoY29u
c3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQogewotICAgIG1fcmVuZGVyaW5nQmFj
a2VuZC0+cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZChpZGVudGlmaWVyLCBbaW1h
Z2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyLmNvcHlSZWYoKSwgZGVzdGluYXRpb25dKE1lZGlhUGxh
eWVyJiBwbGF5ZXIpIHsKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnBlcmZvcm1XaXRoTWVkaWFQ
bGF5ZXJPbk1haW5UaHJlYWQoaWRlbnRpZmllciwgW1JlZlB0ciBpbWFnZUJ1ZmZlciA9IG1faW1h
Z2VCdWZmZXIuZ2V0KCksIGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CiAgICAg
ICAgIC8vIEl0IGlzIGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRp
YSgpIG9mZiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCku
cGFpbnRGcmFtZUZvck1lZGlhKHBsYXllciwgZGVzdGluYXRpb24pOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNjJhNDk3MDZlMjhiMDFlMGE2Yjg2OWJkMzNlNjI0ZWM3
ZDhiMzY5MS4uNTk4MmNiYWViODdlNjYwYzViYWI3N2E2ZDdhMjk1NzAzNTdiYmY5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNDksMTIgKzE0OSwxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKIAotICAgIFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAg
ICBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOwogICAgIFF1YWxp
ZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsK
ICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwot
ICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7CisgICAg
UmVmUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwotICAgIGJvb2wg
bV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA1Yzg4MTkzMDg3NTA2OTM2NDZiNjdhNWM0
Y2U3MTcxZjNiZTFkYzc1Li5hMjIwZWEwODNmOTRkOGE3NTQzY2Y1MTE1Y2RjNDI1YTJiMGQ4OWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMTEsNiArMTExLDggQEAgdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RvcFJlY2VpdmluZ01l
c3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgbV9z
dHJlYW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisKKyAgICBMb2NrZXIg
bG9ja2VyIHsgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrIH07CiAgICAgZm9yIChhdXRvJiByZW1v
dGVDb250ZXh0IDogc3RkOjpleGNoYW5nZShtX3JlbW90ZURpc3BsYXlMaXN0cywgeyB9KSkKICAg
ICAgICAgcmVtb3RlQ29udGV4dC5zdG9wTGlzdGVuaW5nRm9ySVBDKCk7CiB9CkBAIC0xMzIsNyAr
MTM0LDEwIEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRD
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwg
UXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciwgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciYgcmVtb3RlRGlzcGxheUxpc3QpCiB7
Ci0gICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3JlbW90ZURpc3BsYXlMaXN0c0xvY2sgfTsKKyAg
ICAgICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB9
CiAgICAgTUVTU0FHRV9DSEVDSyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lk
ZW50aWZpZXIoKSA9PSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVu
dGlmaWVyKCksICJTZW5kaW5nIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpIG1lc3NhZ2Ug
dG8gdGhlIHdyb25nIHdlYiBwcm9jZXNzLiIpOwogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdURk1vdmUo
aGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVjdCgpKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA5NWRmOGVh
NTU1NmY5MjNjZjQxZjY3NmEzZWRjZGNlYmY5NzAzZjBkLi5iNmUxOWRhYzkzZGY3MmI5MTQ1ZjUx
ZTBjMjExNTJkYzExNjk2Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTEzMyw3ICsxMzMs
OSBAQCBwcml2YXRlOgogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhv
cmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9y
eTsKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3Vy
Y2VzUmVxdWVzdDsKLSAgICBXZWFrSGFzaFNldDxSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyPiBt
X3JlbW90ZURpc3BsYXlMaXN0czsKKworICAgIExvY2sgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2Nr
OworICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IG1fcmVtb3RlRGlz
cGxheUxpc3RzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApp
bmRleCBmNmExY2ZkODBkMzRiN2MxOWRhNTJjYTU2NDBhMTdlNmFjZTk4ODQyLi45YTk5NDYxYjQx
ZTQ1OTVkMGUwMzViZmFjYjFkNzVhNmQ4MmNhMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVjdCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0aW5n
RGF0YSB7CiAtICh2b2lkKV9jbGVhckFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YToodm9pZChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAogLSAodm9pZClfY3JlYXRlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+KXBy
aXZhdGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0
aW9uSGFuZGxlcjsKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRl
c3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGlu
Zy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5n
Lm1tCmluZGV4IDU5ZDllZDE0ZDMyOTNhZTBkZDExNzkxZDBkMWU3ODQ1MWRlOGNhNjQuLmM2OTNl
NTRlMzg5MWFmMTQ0ZWUxZTVjMWE3MjEzYmI2YmJkYjkwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogCiAjaW1w
b3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgiCisjaW1wb3J0ICJHUFVQ
cm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2
YXRlLmgiCiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQg
IlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCkBAIC00MjMsNiArNDI0LDE5IEBAIC0gKHZvaWQp
X2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRp
b25IYW5kbGVyCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25Db3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIK
K3sKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2wo
KS5ncHVQcm9jZXNzKCk7CisgICAgaWYgKCFncHVQcm9jZXNzKSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZ3B1UHJvY2Vzcy0+
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoW2NvbXBsZXRpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0odWludDY0X3QgY291bnQpIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQpOworICAgIH0pOworfQorCiAtICh2b2lkKV9jcmVh
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25D
b29yZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9yIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IGY4YTE5M2Y5NmY1Mjc3NGU1MDU1MDA2OTQwOTU2ZWI4NTczN2ZhN2QuLmQ3
MjNhODZlNDM4MWJkN2NkM2JjYTQ4MzkxMzc1NWNkYjAxODRmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTksNiArMzk5LDEx
IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKICAgICBwcm9j
ZXNzSXNSZWFkeVRvRXhpdCgpOwogfQogCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6d2ViUHJvY2Vz
c0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRf
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpHUFVQcm9jZXNzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZygpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojpk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nl
c3MsICIlcCAtIEdQVVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2U6IiwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggZDU2YWYwMGIzZmMw
MWMzY2ZiNDQ5N2NlOTY0YjZkNDMwMWE4MzM4ZS4uYjExMDQxMDIzN2VlZWNjOGYwMjU2NzdhMDYy
ZTY3OTFmNmViMDM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVm
ZXJlbmNlcygpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCB3
ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVUHJvY2Vzc1Byb3h5
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MmI3MTViNzExM2ZjODg2ZTc1NTA3M2UwMTk2YWUxNDdjMGQyNjJmOC4uY2ZiMTEyYjJjMzdkNTUx
MjExMjFmYmRhMGY1YTRjZjIxNWNjNjgwNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTIxICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
ODQwNzkpOiBBdWRpbyBjb250aW51ZXMgcGxheWluZyBvbiBodWx1LmNvbSBpbiBwcml2YXRlIGJy
b3dzaW5nIG1vZGUgYWZ0ZXIgY2xvc2luZyB0aGUgdGFiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIxMTMKKyAgICAgICAgcmRhcjovLzg0Mzk5Mjgz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgYSBuZXcg
QVBJIHRlc3QgdG8gdmVyaWZ5IHRoYXQgdGhlIEdQVSB0byB3ZWIgcHJjb2VzcyBjb25uZWN0aW9u
IGlzbid0IGxlYWtlZCBpbiB0aGUgR1BVIHByb2Nlc3MuIFNlZSBXZWJLaXQKKyAgICAgICAgQ2hh
bmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKToKKwogMjAyMS0xMC0yMiAgUm95IFJl
YXBvciAgPHJyZWFwb3JAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5L2F1dG9pbnN0YWxs
ZWQvcHlvYmpjX2ZyYW1ld29ya3MucHkgc2hvdWxkIGluc3RhbGwgd2hlZWwgZGlzdHJpYnV0aW9u
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlZDJiZGFkODU5NGUwYjQ4ZjA3YWE3MDY2Njc5
MzAxZTY0NjU5MDkuLjA1NGQ4MzVjZGEwYjFhZDkxNDBiNDQ3NWFhNWQ3YWMwOGVlZjNiYTYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjk0LDYgKzEyOTQsNyBAQAogCQlGNEUwQTJCNDIx
MjI0MDJCMDBBRjdDN0YgLyogaW1hZ2UtYW5kLWZpbGUtdXBsb2FkLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFMEEyQjMyMTIyM0Yy
RDAwQUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sICovOyB9OwogCQlGNEUwQTJC
ODIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwQTJCNzIxMjI4NDc0MDBB
RjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gKi87IH07CiAJCUY0RTNEODA4MjBG
NzBCQjkwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
M0Q4MDcyMEY3MDhFNDAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGlj
bGUuaHRtbCAqLzsgfTsKKwkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFn
ZS1kYXRhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0
bWwgKi87IH07CiAJCUY0RUI0RTkxMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFk
ZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0RUI0RTkwMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSAq
LzsgfTsKIAkJRjRFQzgwOTQyNjBEMzA1NDAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjRFQzgwOTMyNjBEMkU2MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5Lmh0bWwg
Ki87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5v
dy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qt
bm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKQEAgLTE0NDQsNiArMTQ0NSw3IEBACiAJCQkJMkRFNzFC
MDAxRDQ5QzNFRDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTdDNDg2QkExMUFBMTI1NjcwMDNGNkY5QiAvKiBidW5kbGUtZmlsZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTI2REY1QTYzMTVBMkEyN0UwMDM2ODlDMiAvKiBDYW5j
ZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkyRUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QkQ0MjM5QzFFMDRDMDFDMDAyMDAzOTUg
LyogY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LApAQCAtMzE4Nyw2ICszMTg5LDcgQEAKIAkJRjRFMEEyQjYyMTIyODQ3NDAwQUY3QzdGIC8qIFRl
c3RGaWxlUHJvbWlzZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RGaWxlUHJvbWlzZVJl
Y2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTBBMkI3MjEyMjg0NzQw
MEFGN0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEUzRDgwNzIwRjcwOEU0MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3Rv
bmUtYXJ0aWNsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNpZ25pZmljYW50
LXRleHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNhbnZhcy1pbWFnZS1kYXRhLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVCNEU4RjIzMjhBQzMwMDA1NzREQUIgLyogTlNJ
dGVtUHJvdmlkZXJBZGRpdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTlNJdGVtUHJvdmlkZXJBZGRp
dGlvbnMuaDsgcGF0aCA9IGNvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmg7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRFQjRFOTAyMzI4QUMzMDAwNTc0REFCIC8qIE5TSXRl
bVByb3ZpZGVyQWRkaXRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTlNJdGVtUHJvdmlk
ZXJBZGRpdGlvbnMubW07IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbTsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNEVDODA5MzI2MEQyRTYyMDAxMDMxMUQg
Lyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJzaW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQwNTEsNiArNDA1NCw3IEBACiAJCQkJRjQxQUI5OTcxRUY0NjkyQzAwODNGQTA4IC8qIGJh
Y2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCAqLywKIAkJCQk0NjRDNzY0QzIzMERG
ODMyMDBBRkIwMjAgLyogQmFkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzICov
LAogCQkJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCAqLywK
KwkJCQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCAq
LywKIAkJCQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1v
bi1jbGljay5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovLAogCQkJCTgzOUFBMzVFMjFBMjZBQ0QwMDk4MERE
NiAvKiBjbGllbnQtc2lkZS1yZWRpcmVjdC5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmluZGV4IDg0MDk2OTc1NjE0
NDZlYmY4YWU4YzY1ZmRiYzllMTAyMjk0M2QxZjMuLjQ0YzhhOGRlOTgwY2NjMTAyYjIxN2FhODY5
YWViOGM4ZTU1MGY2MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTI4Miw2ICsyODIsMjEgQEAgVEVTVChHUFVQcm9j
ZXNzLCBPbmx5TGF1bmNoZXNHUFVQcm9jZXNzV2hlbk5lY2Vzc2FyeU1lZGlhRmVhdHVyZURldGVj
dGlvbikKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgX2dw
dVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CiB9CiAKK1RFU1QoR1BVUHJvY2VzcywgRG9Ob3RMZWFr
Q29ubmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19icmlkZ2UgV0tQcmVm
ZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIHRydWUsIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxl
ZCIpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19i
cmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIGZhbHNl
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRl
cmluZ0VuYWJsZWQiKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjYW52YXMtaW1hZ2UtZGF0YSJdOworICAgIEVYUEVDVF9F
USgxVSwgW3dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50XSk7CisgICAgW3dl
YlZpZXcgX2Nsb3NlXTsKKworICAgIHdoaWxlIChbd2ViVmlldyBncHVUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uQ291bnRdKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOwor
fQorCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiBURVNUKEdQVVByb2Nlc3Ms
IExlZ2FjeUNETSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWNhMTIz
NjAxZWZmZGIzNDkzNWNiYjZhNzQ5MGIwYTY0MGI2ZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1s
CkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZT4KK2NhbnZhcyB7CisgICAgd2lkdGg6IDE2MHB4OworICAgIGhlaWdodDogMTYwcHg7CisgICAg
ZGlzcGxheTogYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8c3Ryb25nPlNv
dXJjZTwvc3Ryb25nPgorPGNhbnZhcyBpZD0ic291cmNlIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjMy
MCI+PC9jYW52YXM+Cis8c3Ryb25nPkRlc3RpbmF0aW9uPC9zdHJvbmc+Cis8Y2FudmFzIGlkPSJk
ZXN0aW5hdGlvbiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIzMjAiPjwvY2FudmFzPgorPHNjcmlwdD4K
K2NvbnN0IHNvdXJjZUNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsK
K2NvbnN0IHNvdXJjZUNvbnRleHQgPSBzb3VyY2VDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK3Nv
dXJjZUNvbnRleHQuc2F2ZSgpOworc291cmNlQ29udGV4dC5zdHJva2VTdHlsZSA9ICJyZWQiOwor
c291cmNlQ29udGV4dC5maWxsU3R5bGUgPSAicmdiYSgyMDAsIDEwMCwgMTAwLCAwLjI1KSI7Citz
b3VyY2VDb250ZXh0LmxpbmVXaWR0aCA9IDQ7Citzb3VyY2VDb250ZXh0LnJlY3QoNDAsIDQwLCAy
NDAsIDI0MCk7Citzb3VyY2VDb250ZXh0LnN0cm9rZSgpOworc291cmNlQ29udGV4dC5maWxsKCk7
Citzb3VyY2VDb250ZXh0LnJlc3RvcmUoKTsKKworY29uc3QgaW1hZ2VEYXRhID0gc291cmNlQ29u
dGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMzIwLCAzMjApOworY29uc3QgZGVzdGluYXRpb25DYW52
YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzdGluYXRpb24iKTsKK2NvbnN0IGRlc3Rp
bmF0aW9uQ29udGV4dCA9IGRlc3RpbmF0aW9uQ2FudmFzLmdldENvbnRleHQoIjJkIik7CitkZXN0
aW5hdGlvbkNvbnRleHQucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwgMCwgMCwgMCwgMzIwLCAz
MjApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IDliMTFhNzk1MjRlODE1YjFhYzA5MjdjNTA5NTAxZWVk
MDU1M2Q0MmYuLjVjNTQwZmM5MGUwOTY4YTFhMWY5ZDVjNTBiYTBkNGYxZjJhYjNkNTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01Myw2ICs1Myw3IEBA
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyA8VUlUZXh0SW5wdXRQcml2
YXRlLCBVSVRleHRJbnB1dEludGVybmFsLCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJV0tJ
bnRlcmFjdGlvblZpZXdQcm90b2NvbCwgVUlUZXh0SW5wdXRUb2tlbml6ZXI+ICp0ZXh0SW5wdXRD
b250ZW50VmlldzsKIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKXN5bmNocm9u
b3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0OwogI2VuZGlm
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVUludGVnZXIgZ3B1VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbkNvdW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0
cmluZyAqY29udGVudHNBc1N0cmluZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNBcnJheTxOU1N0cmluZyAqPiAqdGFnc0luQm9keTsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFt
ZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcubW0KaW5kZXggYzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkwYTFjNjRlNzc3ZmE1OGY4
Yi4uYmJlYjUwMDhkOWE0YmY2NmMwZjY5NzZiZWJkNGRkOWE2NGIwY2NlYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTU0LDYgKzE1NCwxOCBAQCAt
IChOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJvbm91c2x5UmVxdWVzdFRl
eHRJbnB1dENvbnRleHRzSW5SZWN0OgogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
IAorLSAoTlNVSW50ZWdlcilncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnQKK3sKKyAgICBf
X2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNVSW50ZWdlciBjb3VudCA9
IDA7CisgICAgW3NlbGYgX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6
XihOU1VJbnRlZ2VyIHJlc3VsdCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgY291
bnQgPSByZXN1bHQ7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKIC0gKE5TU3RyaW5nICopY29udGVudHNBc1N0cmlu
ZwogewogICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Cg==
</data>
<flag name="commit-queue"
          id="466666"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442207</attachid>
            <date>2021-10-22 15:56:53 -0700</date>
            <delta_ts>2021-10-24 14:00:12 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-232113-20211022155652.patch</filename>
            <type>text/plain</type>
            <size>27565</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmNDVmMDgxN2QxMjU1NDEy
NmI1YTJhNzk0MGQ0NDkxZDdiNzVlOTYuLjhlM2I4NjU2MTgzY2VmYjVkNGQ1ZGUyM2RlZTEzM2Ix
MzVjMDgwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEtMTAtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEkgaW5hZHZlcnRl
bnRseSBpbnRyb2R1Y2VkIGEgcmVmLWNvdW50aW5nIGN5Y2xlIGJldHdlZW4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcgorICAgICAgICBhZnRlciBJ
UEMgc3RyZWFtIHJlZmFjdG9yaW5nIGluIHIyODQwNzksIHNpbmNlIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIgZGlyZWN0bHkgc3Ryb25nbHkgcmVmcyB0aGUgcmVuZGVyaW5nCisgICAgICAgIGJh
Y2tlbmQsIGFuZCB0aGUgcmVuZGVyaW5nIGJhY2tlbmQgaW5kaXJlY3RseSBob2xkcyBvbiB0byBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVycyB0aHJvdWdoIHJlbW90ZSBpbWFnZQorICAgICAgICBi
dWZmZXJzIGluIHRoZSByZXNvdXJjZSBjYWNoZS4gU2luY2UgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCBhbHNvIHN0cm9uZ2x5IHJlZnMgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgYXMKKyAgICAg
ICAgd2VsbCwgdGhpcyBjYXVzZWQgdGhlIGVudGlyZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
IHRvIGxlYWsgYWZ0ZXIgdGVhcmluZyBkb3duIHRoZSBjb25uZWN0ZWQgd2ViIHByb2Nlc3MsIGlm
CisgICAgICAgIHRoZSB3ZWIgcHJvY2VzcyBldmVyIGluc3RhbGxlZCBhIHJlbW90ZSByZW5kZXJp
bmcgYmFja2VuZCBmb3IgMkQgY2FudmFzLgorCisgICAgICAgIFRvIGF2b2lkIHRoaXMgY3ljbGUs
IHR1cm4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcidzIGBtX3JlbmRlcmluZ0JhY2tlbmRgIGlu
dG8gYSBSZWZQdHIgaW5zdGVhZCBvZiBhIFJlZiwgYW5kCisgICAgICAgIGNsZWFyIGl0IG91dCBp
biBgc3RvcExpc3RlbmluZ0ZvcklQQygpYC4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgd2Ugbm8gbG9u
Z2VyIG5lZWQgYSBzZXBhcmF0ZSBib29sZWFuIGZsYWcgdG8KKyAgICAgICAgZW5zdXJlIHRoYXQg
YFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAgaXMgaWRl
bXBvdGVudCwgc28gd2UgYWxzbyByZW1vdmUKKyAgICAgICAgYG1faXNMaXN0ZW5pbmdGb3JJUENg
IGFsdG9nZXRoZXIuCisKKyAgICAgICAgVGVzdDogR1BVUHJvY2Vzcy5Eb05vdExlYWtDb25uZWN0
aW9uQWZ0ZXJDbG9zaW5nV2ViUGFnZQorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6b2JqZWN0Q291bnRGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyk6CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgdGVzdGluZy1vbmx5IFNQSSBob29rIHRvIGFzayBmb3Ig
dGhlIGxpdmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb3VudC4gVGhpcyByZXRyaWV2ZXMg
YQorICAgICAgICBzdGF0aWNhbGx5IGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGNvdW50IG9mIHRo
ZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGluc3RhbmNlcyB0aGF0IGV4aXN0IGluIHRoZSBH
UFUKKyAgICAgICAgcHJvY2VzczsgaW1wb3J0YW50bHksIHRoaXMgaXMgZGlmZmVyZW50IGZyb20g
YXNraW5nIHRoZSBHUFVQcm9jZXNzIGZvciB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGluCisg
ICAgICAgIGBtX3dlYlByb2Nlc3NDb25uZWN0aW9uc2AsIHNpbmNlIHRoZSBsYXR0ZXIgd2lsbCBi
ZSAwIGV2ZW4gd2hlbiBvbmUgb3IgbW9yZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzZXMgYXJl
CisgICAgICAgIHN0aWxsIGFsaXZlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIpOgorCisgICAgICAgIEFsc28gZml4IGEgbGVhayBjYXVzZWQgYnkgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlciBhbmQgUmVtb3RlSW1hZ2VCdWZmZXIgc3Ryb25nbHkgcmVmZmlu
ZyBlYWNoIG90aGVyLiBTaW5jZQorICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlciBvd25zIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXIsIHRoZSBiYWNrcG9pbnRlciBmcm9tIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIgdG8gdGhlIGltYWdlCisgICAgICAgIGJ1ZmZlciBzaG91bGQgYmUgd2Vhaywg
bm90IHN0cm9uZy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzdGFydExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpz
dG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKworICAgICAgICBBbHNvIG1ha2Ug
YG1fcmVtb3RlRGlzcGxheUxpc3RzYCBhY2Nlc3MgdGhyZWFkLXNhZmUgdXNpbmcgYSBMb2NrLiBU
aGlzIGlzIGJlY2F1c2UgYGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZGAKKyAgICAgICAgaXMg
bm93IGludm9rZWQgb24gdGhlIHJlbmRlcmluZyBiYWNrZW5kIHRocmVhZCB3aGlsZSBwcm9jZXNz
aW5nIHN0cmVhbWluZyBJUEMsIGJ1dCBgc3RvcExpc3RlbmluZ0ZvcklQQygpYAorICAgICAgICAo
d2hpY2ggZ29lcyB0aHJvdWdoIGFuZCBjbG9zZXMgSVBDIHN0cmVhbSBjb25uZWN0aW9ucyBmb3Ig
ZWFjaCBvZiB0aGUgcmVtb3RlIGRpc3BsYXkgbGlzdHMpIGlzIGludm9rZWQgb24gdGhlCisgICAg
ICAgIG1haW4gcnVubG9vcC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKworICAgICAgICBBZGQgdGhlIG5ldyB0ZXN0aW5nIFNQ
SSAoc2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dwdVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
UHJveHk6OndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorCiAyMDIxLTEwLTIyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgcmVxdWlyZWQg
c3lzY2FsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGZiMjA3YzQ2MzZjZDVmMWQ4YTI2MTVkNDgxYzVmYjdj
MGVkOTQzYWMuLjg3MGUzN2UwNWUwNTRlZDdhMDZkN2RlYmY1MjFlYWQ1ODEzMjEwNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTI0OCw2ICsyNDgsOCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAg
IC8vIHJlcGx5IGZyb20gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCiAg
ICAgbV9jb25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25u
ZWN0aW9uLT5vcGVuKCk7CisKKyAgICArK2dPYmplY3RDb3VudEZvclRlc3Rpbmc7CiB9CiAKIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKQEAg
LTI2Miw4ICsyNjQsMTIgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQog
ICAgIG1fbGliV2ViUlRDQ29kZWNzUHJveHktPmNsb3NlKCk7CiAjZW5kaWYKKworICAgIC0tZ09i
amVjdENvdW50Rm9yVGVzdGluZzsKIH0KIAordWludDY0X3QgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Z09iamVjdENvdW50Rm9yVGVzdGluZyA9IDA7CisKIHZvaWQgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogI2lm
IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJ
VEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKaW5kZXggOWM1MjM2NDE0MjI0YTkyZGNmNjBkZGUxZTBjOGRiNmNjNTZlOGI0
ZS4uMjFhYWI1Y2M4MmM2YWViZjc0ZTllNTFhZDdlMzRjODYzODdkNjk2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBA
IC0xNzAsNiArMTcwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUdyYXBoaWNzQ29udGV4
dEdMRm9yVGVzdGluZyhHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAg
ICBzdGF0aWMgdWludDY0X3Qgb2JqZWN0Q291bnRGb3JUZXN0aW5nKCkgeyByZXR1cm4gZ09iamVj
dENvdW50Rm9yVGVzdGluZzsgfQorCiAgICAgdXNpbmcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1h
cCA9IEhhc2hNYXA8UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIElQQzo6U2NvcGVkQWN0aXZl
TWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPj47CiAgICAgY29uc3Qg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcDsgfQogCkBAIC0yNDIsNiAr
MjQ0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgdWludDY0X3QgZ09iamVjdENvdW50Rm9yVGVzdGlu
ZzsKKwogICAgIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwogCiAgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3Bw
CmluZGV4IDJlNzYyYTc4MTQyNGE4ZDgxM2JlYWY3NzNiOTdhMGFhMzNhMjczYjAuLjcwY2MzODFh
MWY0OTFjNDRmOThkZWFlMDBmNzU2NjhjMDA4MWVhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTQ5OCw2ICs0OTgsMTEgQEAgdm9pZCBHUFVQcm9jZXNzOjpz
ZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCiB9CiAjZW5kaWYKIAordm9pZCBH
UFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21w
bGV0aW9uSGFuZGxlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpvYmplY3RDb3VudEZvclRl
c3RpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNTQx
ZjViMGZmMmNkMDE2ZGQ3YTI0NGEzNTMyYmU5NDdlZDRhODQ5MS4uMGFmNDk4Mjc4NGE4YTY0MmU4
NmFkNTYwOGEzZGNkNWExOTVkODljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oCkBAIC0xMDAsNiArMTAwLDggQEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvblZpc2libGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvblZpc2libGVO
YW1lOyB9CiAKKyAgICB2b2lkIHdlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKwogcHJpdmF0ZToKICAgICB2b2lk
IGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwsIFN5bmNocm9ub3VzKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBiNjRiYTE2NGE5
MmQ3YmE2MWJlZGVkMmE1YWUzMDJhNjAyZWNiOGY3Li5iYTg0YTdjNTMyZTJhMDFiYTIzNDk2YjRm
Y2JkOWM2MDA2NjQ5NDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNjgsNiArNjgsOCBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBO
b3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKICNlbmRpZgorCisgICAgV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAtPiAodWludDY0X3QgY291bnQpIEFzeW5jCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAKaW5kZXggZWVhOTJmZGZhZmFmODYyZjAwZDIxMjk0ODNlNzE5MWMxN2M2YjY3Mi4uYWRhNTRk
NDE4YTBiNjAyNTQ2YjE3ZTU3YzY2ZGQwY2Q2OTAzMGQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcApAQCAtMzcsNyArMzcsNyBAQCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUQogICAg
IDogbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKICAgICAsIG1faW1hZ2VCdWZmZXJJZGVudGlm
aWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKICAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIo
d2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0gICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQocmVuZGVyaW5n
QmFja2VuZCkKKyAgICAsIG1fcmVuZGVyaW5nQmFja2VuZCgmcmVuZGVyaW5nQmFja2VuZCkKIHsK
IH0KIApAQCAtNTMsMTggKzUzLDEzIEBAIEdyYXBoaWNzQ29udGV4dCYgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRleHQoKQogCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKIHsKLSAgICBBU1NFUlQoIW1faXNMaXN0ZW5p
bmdGb3JJUEMpOwotICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSB0cnVlOwogICAgIG1fcmVuZGVy
aW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXMoKnRo
aXMsIE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0KCkpOwogfQog
CiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQog
ewotICAgIGlmICghbV9pc0xpc3RlbmluZ0ZvcklQQykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9yZW5kZXJpbmdCYWNrZW5kLT5zdHJlYW1Db25uZWN0aW9uKCkuc3RvcFJlY2VpdmluZ01lc3Nh
Z2VzKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0KCkpOwotICAg
IG1faXNMaXN0ZW5pbmdGb3JJUEMgPSBmYWxzZTsKKyAgICBpZiAoYXV0byByZW5kZXJpbmdCYWNr
ZW5kID0gc3RkOjpleGNoYW5nZShtX3JlbmRlcmluZ0JhY2tlbmQsIHsgfSkpCisgICAgICAgIHJl
bmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNvbm5lY3Rpb24oKS5zdG9wUmVjZWl2aW5nTWVzc2FnZXMo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50NjQoKSk7CiB9CiAKIHZv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2F2ZSgpCkBAIC00MjYsNyArNDIxLDcgQEAg
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBJbnRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbnQKIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpwYWludEZyYW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCiB7Ci0gICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5w
ZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIsIFtpbWFnZUJ1ZmZl
ciA9IG1faW1hZ2VCdWZmZXIuY29weVJlZigpLCBkZXN0aW5hdGlvbl0oTWVkaWFQbGF5ZXImIHBs
YXllcikgeworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cGVyZm9ybVdpdGhNZWRpYVBsYXllck9u
TWFpblRocmVhZChpZGVudGlmaWVyLCBbaW1hZ2VCdWZmZXIgPSBSZWZQdHIgeyBtX2ltYWdlQnVm
ZmVyLmdldCgpIH0sIGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CiAgICAgICAg
IC8vIEl0IGlzIGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRpYSgp
IG9mZiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkucGFp
bnRGcmFtZUZvck1lZGlhKHBsYXllciwgZGVzdGluYXRpb24pOwogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyLmgKaW5kZXggNjJhNDk3MDZlMjhiMDFlMGE2Yjg2OWJkMzNlNjI0ZWM3ZDhi
MzY5MS4uNTk4MmNiYWViODdlNjYwYzViYWI3N2E2ZDdhMjk1NzAzNTdiYmY5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNDksMTIgKzE0OSwxMSBAQCBwcml2YXRlOgogICAgIHZv
aWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKIAotICAgIFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAgICBX
ZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOwogICAgIFF1YWxpZmll
ZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKICAg
ICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotICAg
IFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7CisgICAgUmVm
UHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwotICAgIGJvb2wgbV9p
c0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA1Yzg4MTkzMDg3NTA2OTM2NDZiNjdhNWM0Y2U3
MTcxZjNiZTFkYzc1Li5hMjIwZWEwODNmOTRkOGE3NTQzY2Y1MTE1Y2RjNDI1YTJiMGQ4OWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMTEsNiArMTExLDggQEAgdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RvcFJlY2VpdmluZ01lc3Nh
Z2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgbV9zdHJl
YW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrIH07CiAgICAgZm9yIChhdXRvJiByZW1vdGVD
b250ZXh0IDogc3RkOjpleGNoYW5nZShtX3JlbW90ZURpc3BsYXlMaXN0cywgeyB9KSkKICAgICAg
ICAgcmVtb3RlQ29udGV4dC5zdG9wTGlzdGVuaW5nRm9ySVBDKCk7CiB9CkBAIC0xMzIsNyArMTM0
LDEwIEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUXVh
bGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciYgcmVtb3RlRGlzcGxheUxpc3QpCiB7Ci0g
ICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB7Cisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3JlbW90ZURpc3BsYXlMaXN0c0xvY2sgfTsKKyAgICAg
ICAgbV9yZW1vdGVEaXNwbGF5TGlzdHMuYWRkKHJlbW90ZURpc3BsYXlMaXN0KTsKKyAgICB9CiAg
ICAgTUVTU0FHRV9DSEVDSyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50
aWZpZXIoKSA9PSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGlm
aWVyKCksICJTZW5kaW5nIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpIG1lc3NhZ2UgdG8g
dGhlIHdyb25nIHdlYiBwcm9jZXNzLiIpOwogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6RGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdURk1vdmUoaGFu
ZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLm9iamVjdCgpKSwgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA5NWRmOGVhNTU1
NmY5MjNjZjQxZjY3NmEzZWRjZGNlYmY5NzAzZjBkLi5iNmUxOWRhYzkzZGY3MmI5MTQ1ZjUxZTBj
MjExNTJkYzExNjk2Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTEzMyw3ICsxMzMsOSBA
QCBwcml2YXRlOgogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmU7
CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsK
ICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdDsKLSAgICBXZWFrSGFzaFNldDxSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyPiBtX3Jl
bW90ZURpc3BsYXlMaXN0czsKKworICAgIExvY2sgbV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrOwor
ICAgIFdlYWtIYXNoU2V0PFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IG1fcmVtb3RlRGlzcGxh
eUxpc3RzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZW1vdGVEaXNwbGF5TGlzdHNMb2NrKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRl
eCBmNmExY2ZkODBkMzRiN2MxOWRhNTJjYTU2NDBhMTdlNmFjZTk4ODQyLi45YTk5NDYxYjQxZTQ1
OTVkMGUwMzViZmFjYjFkNzVhNmQ4MmNhMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVjdCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0
YSB7CiAtICh2b2lkKV9jbGVhckFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YToodm9pZCheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAogLSAodm9pZClfY3JlYXRlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+KXByaXZh
dGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9u
SGFuZGxlcjsKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rp
bmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1t
CmluZGV4IDU5ZDllZDE0ZDMyOTNhZTBkZDExNzkxZDBkMWU3ODQ1MWRlOGNhNjQuLmM2OTNlNTRl
Mzg5MWFmMTQ0ZWUxZTVjMWE3MjEzYmI2YmJkYjkwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogCiAjaW1wb3J0
ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgiCisjaW1wb3J0ICJHUFVQcm9j
ZXNzUHJveHkuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRl
LmgiCiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIlVz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCkBAIC00MjMsNiArNDI0LDE5IEBAIC0gKHZvaWQpX2Ns
ZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25D
b3VudEZvclRlc3Rpbmc6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5n
cHVQcm9jZXNzKCk7CisgICAgaWYgKCFncHVQcm9jZXNzKSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZ3B1UHJvY2Vzcy0+d2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFr
ZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0odWludDY0X3QgY291bnQpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoY291bnQpOworICAgIH0pOworfQorCiAtICh2b2lkKV9jcmVhdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9yIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
Y3BwCmluZGV4IGY4YTE5M2Y5NmY1Mjc3NGU1MDU1MDA2OTQwOTU2ZWI4NTczN2ZhN2QuLmQ3MjNh
ODZlNDM4MWJkN2NkM2JjYTQ4MzkxMzc1NWNkYjAxODRmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTksNiArMzk5LDExIEBA
IHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKICAgICBwcm9jZXNz
SXNSZWFkeVRvRXhpdCgpOwogfQogCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6d2ViUHJvY2Vzc0Nv
bm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpHUFVQcm9jZXNzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZygpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3Ms
ICIlcCAtIEdQVVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2U6IiwgdGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggZDU2YWYwMGIzZmMwMWMz
Y2ZiNDQ5N2NlOTY0YjZkNDMwMWE4MzM4ZS4uYjExMDQxMDIzN2VlZWNjOGYwMjU2NzdhMDYyZTY3
OTFmNmViMDM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVmZXJl
bmNlcygpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCB3ZWJQ
cm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVp
bnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgR1BVUHJvY2Vzc1Byb3h5KCk7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI3
MTViNzExM2ZjODg2ZTc1NTA3M2UwMTk2YWUxNDdjMGQyNjJmOC4uY2ZiMTEyYjJjMzdkNTUxMjEx
MjFmYmRhMGY1YTRjZjIxNWNjNjgwNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTIxICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODQw
NzkpOiBBdWRpbyBjb250aW51ZXMgcGxheWluZyBvbiBodWx1LmNvbSBpbiBwcml2YXRlIGJyb3dz
aW5nIG1vZGUgYWZ0ZXIgY2xvc2luZyB0aGUgdGFiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIxMTMKKyAgICAgICAgcmRhcjovLzg0Mzk5MjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgYSBuZXcgQVBJ
IHRlc3QgdG8gdmVyaWZ5IHRoYXQgdGhlIEdQVSB0byB3ZWIgcHJjb2VzcyBjb25uZWN0aW9uIGlz
bid0IGxlYWtlZCBpbiB0aGUgR1BVIHByb2Nlc3MuIFNlZSBXZWJLaXQKKyAgICAgICAgQ2hhbmdl
TG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBn
cHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKToKKwogMjAyMS0xMC0yMiAgUm95IFJlYXBv
ciAgPHJyZWFwb3JAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5L2F1dG9pbnN0YWxsZWQv
cHlvYmpjX2ZyYW1ld29ya3MucHkgc2hvdWxkIGluc3RhbGwgd2hlZWwgZGlzdHJpYnV0aW9uCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlZDJiZGFkODU5NGUwYjQ4ZjA3YWE3MDY2Njc5MzAx
ZTY0NjU5MDkuLjA1NGQ4MzVjZGEwYjFhZDkxNDBiNDQ3NWFhNWQ3YWMwOGVlZjNiYTYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjk0LDYgKzEyOTQsNyBAQAogCQlGNEUwQTJCNDIxMjI0
MDJCMDBBRjdDN0YgLyogaW1hZ2UtYW5kLWZpbGUtdXBsb2FkLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFMEEyQjMyMTIyM0YyRDAw
QUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sICovOyB9OwogCQlGNEUwQTJCODIx
MjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwQTJCNzIxMjI4NDc0MDBBRjdD
N0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gKi87IH07CiAJCUY0RTNEODA4MjBGNzBC
QjkwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFM0Q4
MDcyMEY3MDhFNDAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGljbGUu
aHRtbCAqLzsgfTsKKwkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1k
YXRhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwg
Ki87IH07CiAJCUY0RUI0RTkxMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0
aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RUI0RTkwMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSAqLzsg
fTsKIAkJRjRFQzgwOTQyNjBEMzA1NDAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjRFQzgwOTMyNjBEMkU2MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5Lmh0bWwgKi87
IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1w
bGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93
LXBsYXlpbmcuaHRtbCAqLzsgfTsKQEAgLTE0NDQsNiArMTQ0NSw3IEBACiAJCQkJMkRFNzFCMDAx
RDQ5QzNFRDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTdDNDg2QkExMUFBMTI1NjcwMDNGNkY5QiAvKiBidW5kbGUtZmlsZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTI2REY1QTYzMTVBMkEyN0UwMDM2ODlDMiAvKiBDYW5jZWxM
b2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5n
ZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQky
RUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QkQ0MjM5QzFFMDRDMDFDMDAyMDAzOTUgLyog
Y2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApA
QCAtMzE4Nyw2ICszMTg5LDcgQEAKIAkJRjRFMEEyQjYyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RG
aWxlUHJvbWlzZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RGaWxlUHJvbWlzZVJlY2Vp
dmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTBBMkI3MjEyMjg0NzQwMEFG
N0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNEUzRDgwNzIwRjcwOEU0MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUt
YXJ0aWNsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNpZ25pZmljYW50LXRl
eHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2UtZGF0YS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNhbnZhcy1pbWFnZS1kYXRhLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVCNEU4RjIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVt
UHJvdmlkZXJBZGRpdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTlNJdGVtUHJvdmlkZXJBZGRpdGlv
bnMuaDsgcGF0aCA9IGNvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmg7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRFQjRFOTAyMzI4QUMzMDAwNTc0REFCIC8qIE5TSXRlbVBy
b3ZpZGVyQWRkaXRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTlNJdGVtUHJvdmlkZXJB
ZGRpdGlvbnMubW07IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbTsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNEVDODA5MzI2MEQyRTYyMDAxMDMxMUQgLyog
c2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJz
aW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQwNTEsNiArNDA1NCw3IEBACiAJCQkJRjQxQUI5OTcxRUY0NjkyQzAwODNGQTA4IC8qIGJhY2tn
cm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCAqLywKIAkJCQk0NjRDNzY0QzIzMERGODMy
MDBBRkIwMjAgLyogQmFkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzICovLAog
CQkJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCAqLywKKwkJ
CQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRhdGEuaHRtbCAqLywK
IAkJCQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1j
bGljay5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWVuZC5odG1sICovLAogCQkJCTgzOUFBMzVFMjFBMjZBQ0QwMDk4MERENiAv
KiBjbGllbnQtc2lkZS1yZWRpcmVjdC5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmluZGV4IDg0MDk2OTc1NjE0NDZl
YmY4YWU4YzY1ZmRiYzllMTAyMjk0M2QxZjMuLjQ0YzhhOGRlOTgwY2NjMTAyYjIxN2FhODY5YWVi
OGM4ZTU1MGY2MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTI4Miw2ICsyODIsMjEgQEAgVEVTVChHUFVQcm9jZXNz
LCBPbmx5TGF1bmNoZXNHUFVQcm9jZXNzV2hlbk5lY2Vzc2FyeU1lZGlhRmVhdHVyZURldGVjdGlv
bikKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgX2dwdVBy
b2Nlc3NJZGVudGlmaWVyXSwgMCk7CiB9CiAKK1RFU1QoR1BVUHJvY2VzcywgRG9Ob3RMZWFrQ29u
bmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1By
ZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19icmlkZ2UgV0tQcmVmZXJl
bmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIHRydWUsIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCIp
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19icmlk
Z2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIGZhbHNlLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmlu
Z0VuYWJsZWQiKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJjYW52YXMtaW1hZ2UtZGF0YSJdOworICAgIEVYUEVDVF9FUSgx
VSwgW3dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50XSk7CisgICAgW3dlYlZp
ZXcgX2Nsb3NlXTsKKworICAgIHdoaWxlIChbd2ViVmlldyBncHVUb1dlYlByb2Nlc3NDb25uZWN0
aW9uQ291bnRdKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworfQor
CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiBURVNUKEdQVVByb2Nlc3MsIExl
Z2FjeUNETSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWNhMTIzNjAx
ZWZmZGIzNDkzNWNiYjZhNzQ5MGIwYTY0MGI2ZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K2NhbnZhcyB7CisgICAgd2lkdGg6IDE2MHB4OworICAgIGhlaWdodDogMTYwcHg7CisgICAgZGlz
cGxheTogYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8c3Ryb25nPlNvdXJj
ZTwvc3Ryb25nPgorPGNhbnZhcyBpZD0ic291cmNlIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjMyMCI+
PC9jYW52YXM+Cis8c3Ryb25nPkRlc3RpbmF0aW9uPC9zdHJvbmc+Cis8Y2FudmFzIGlkPSJkZXN0
aW5hdGlvbiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIzMjAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2Nv
bnN0IHNvdXJjZUNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsKK2Nv
bnN0IHNvdXJjZUNvbnRleHQgPSBzb3VyY2VDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK3NvdXJj
ZUNvbnRleHQuc2F2ZSgpOworc291cmNlQ29udGV4dC5zdHJva2VTdHlsZSA9ICJyZWQiOworc291
cmNlQ29udGV4dC5maWxsU3R5bGUgPSAicmdiYSgyMDAsIDEwMCwgMTAwLCAwLjI1KSI7Citzb3Vy
Y2VDb250ZXh0LmxpbmVXaWR0aCA9IDQ7Citzb3VyY2VDb250ZXh0LnJlY3QoNDAsIDQwLCAyNDAs
IDI0MCk7Citzb3VyY2VDb250ZXh0LnN0cm9rZSgpOworc291cmNlQ29udGV4dC5maWxsKCk7Citz
b3VyY2VDb250ZXh0LnJlc3RvcmUoKTsKKworY29uc3QgaW1hZ2VEYXRhID0gc291cmNlQ29udGV4
dC5nZXRJbWFnZURhdGEoMCwgMCwgMzIwLCAzMjApOworY29uc3QgZGVzdGluYXRpb25DYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzdGluYXRpb24iKTsKK2NvbnN0IGRlc3RpbmF0
aW9uQ29udGV4dCA9IGRlc3RpbmF0aW9uQ2FudmFzLmdldENvbnRleHQoIjJkIik7CitkZXN0aW5h
dGlvbkNvbnRleHQucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwgMCwgMCwgMCwgMzIwLCAzMjAp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5oCmluZGV4IDliMTFhNzk1MjRlODE1YjFhYzA5MjdjNTA5NTAxZWVkMDU1
M2Q0MmYuLjVjNTQwZmM5MGUwOTY4YTFhMWY5ZDVjNTBiYTBkNGYxZjJhYjNkNTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01Myw2ICs1Myw3IEBACiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyA8VUlUZXh0SW5wdXRQcml2YXRl
LCBVSVRleHRJbnB1dEludGVybmFsLCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJV0tJbnRl
cmFjdGlvblZpZXdQcm90b2NvbCwgVUlUZXh0SW5wdXRUb2tlbml6ZXI+ICp0ZXh0SW5wdXRDb250
ZW50VmlldzsKIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKXN5bmNocm9ub3Vz
bHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0OwogI2VuZGlmCitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVUludGVnZXIgZ3B1VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbkNvdW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmlu
ZyAqY29udGVudHNBc1N0cmluZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNB
cnJheTxOU1N0cmluZyAqPiAqdGFnc0luQm9keTsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6
KE5TU3RyaW5nICopcGFnZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcubW0KaW5kZXggYzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkwYTFjNjRlNzc3ZmE1OGY4Yi4u
YmJlYjUwMDhkOWE0YmY2NmMwZjY5NzZiZWJkNGRkOWE2NGIwY2NlYiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTU0LDYgKzE1NCwxOCBAQCAtIChO
U0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJ
bnB1dENvbnRleHRzSW5SZWN0OgogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAor
LSAoTlNVSW50ZWdlcilncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnQKK3sKKyAgICBfX2Js
b2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNVSW50ZWdlciBjb3VudCA9IDA7
CisgICAgW3NlbGYgX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3Rpbmc6XihO
U1VJbnRlZ2VyIHJlc3VsdCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgY291bnQg
PSByZXN1bHQ7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICByZXR1cm4gY291bnQ7Cit9CisKIC0gKE5TU3RyaW5nICopY29udGVudHNBc1N0cmluZwog
ewogICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442321</attachid>
            <date>2021-10-24 14:00:14 -0700</date>
            <delta_ts>2021-10-24 16:45:36 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-232113-20211024140013.patch</filename>
            <type>text/plain</type>
            <size>24500</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUyYjUwYjcwYWRmMjVhZjdh
NDM5NjMyZjJhY2RjYWE0NWIwMThlYmUuLmJjMWQ3NGM0ODdmNTk3OWMyY2RhYzkzYWQ4MWY2NWZh
YjJhNWYyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjEtMTAtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEkgaW5hZHZlcnRl
bnRseSBpbnRyb2R1Y2VkIGEgcmVmLWNvdW50aW5nIGN5Y2xlIGJldHdlZW4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcgorICAgICAgICBhZnRlciBJ
UEMgc3RyZWFtIHJlZmFjdG9yaW5nIGluIHIyODQwNzksIHNpbmNlIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIgZGlyZWN0bHkgc3Ryb25nbHkgcmVmcyB0aGUgcmVuZGVyaW5nCisgICAgICAgIGJh
Y2tlbmQsIGFuZCB0aGUgcmVuZGVyaW5nIGJhY2tlbmQgaW5kaXJlY3RseSBob2xkcyBvbiB0byBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVycyB0aHJvdWdoIHJlbW90ZSBpbWFnZQorICAgICAgICBi
dWZmZXJzIGluIHRoZSByZXNvdXJjZSBjYWNoZS4gU2luY2UgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCBhbHNvIHN0cm9uZ2x5IHJlZnMgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgYXMKKyAgICAg
ICAgd2VsbCwgdGhpcyBjYXVzZWQgdGhlIGVudGlyZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
IHRvIGxlYWsgYWZ0ZXIgdGVhcmluZyBkb3duIHRoZSBjb25uZWN0ZWQgd2ViIHByb2Nlc3MsIGlm
CisgICAgICAgIHRoZSB3ZWIgcHJvY2VzcyBldmVyIGluc3RhbGxlZCBhIHJlbW90ZSByZW5kZXJp
bmcgYmFja2VuZCBmb3IgMkQgY2FudmFzLgorCisgICAgICAgIFRvIGF2b2lkIHRoaXMgY3ljbGUs
IHR1cm4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcidzIGBtX3JlbmRlcmluZ0JhY2tlbmRgIGlu
dG8gYSBSZWZQdHIgaW5zdGVhZCBvZiBhIFJlZiwgYW5kCisgICAgICAgIGNsZWFyIGl0IG91dCBp
biBgc3RvcExpc3RlbmluZ0ZvcklQQygpYC4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgd2Ugbm8gbG9u
Z2VyIG5lZWQgYSBzZXBhcmF0ZSBib29sZWFuIGZsYWcgdG8KKyAgICAgICAgZW5zdXJlIHRoYXQg
YFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAgaXMgaWRl
bXBvdGVudCwgc28gd2UgYWxzbyByZW1vdmUKKyAgICAgICAgYG1faXNMaXN0ZW5pbmdGb3JJUENg
IGFsdG9nZXRoZXIuCisKKyAgICAgICAgVGVzdDogR1BVUHJvY2Vzcy5Eb05vdExlYWtDb25uZWN0
aW9uQWZ0ZXJDbG9zaW5nV2ViUGFnZQorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6b2JqZWN0Q291bnRGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyk6CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgdGVzdGluZy1vbmx5IFNQSSBob29rIHRvIGFzayBmb3Ig
dGhlIGxpdmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb3VudC4gVGhpcyByZXRyaWV2ZXMg
YQorICAgICAgICBzdGF0aWNhbGx5IGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGNvdW50IG9mIHRo
ZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGluc3RhbmNlcyB0aGF0IGV4aXN0IGluIHRoZSBH
UFUKKyAgICAgICAgcHJvY2VzczsgaW1wb3J0YW50bHksIHRoaXMgaXMgZGlmZmVyZW50IGZyb20g
YXNraW5nIHRoZSBHUFVQcm9jZXNzIGZvciB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGluCisg
ICAgICAgIGBtX3dlYlByb2Nlc3NDb25uZWN0aW9uc2AsIHNpbmNlIHRoZSBsYXR0ZXIgd2lsbCBi
ZSAwIGV2ZW4gd2hlbiBvbmUgb3IgbW9yZSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzZXMgYXJl
CisgICAgICAgIHN0aWxsIGFsaXZlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIpOgorCisgICAgICAgIEFsc28gZml4IGEgbGVhayBjYXVzZWQgYnkgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlciBhbmQgUmVtb3RlSW1hZ2VCdWZmZXIgc3Ryb25nbHkgcmVmZmlu
ZyBlYWNoIG90aGVyLiBTaW5jZQorICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlciBvd25zIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXIsIHRoZSBiYWNrcG9pbnRlciBmcm9tIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIgdG8gdGhlIGltYWdlCisgICAgICAgIGJ1ZmZlciBzaG91bGQgYmUgd2Vhaywg
bm90IHN0cm9uZy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzdGFydExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmg6CisKKyAgICAgICAgQWRkIHRoZSBuZXcgdGVzdGluZyBTUEkgKHNlZSBh
Ym92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ncHVUb1dlYlByb2Nl
c3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojp3
ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKwogMjAyMS0xMC0yNCAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHNo
b3VsZCBub3Qgc2VuZCBJUEMgaW4gdGhlIG1pZGRsZSBvZiBkZXN0cnVjdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGZiMjA3YzQ2MzZjZDVmMWQ4YTI2MTVkNDgxYzVmYjdjMGVkOTQzYWMuLjg3MGUzN2Uw
NWUwNTRlZDdhMDZkN2RlYmY1MjFlYWQ1ODEzMjEwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI0OCw2
ICsyNDgsOCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIC8vIHJlcGx5IGZyb20gdGhl
IEdQVSBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCiAgICAgbV9jb25uZWN0aW9uLT5z
ZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblBy
b2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CisK
KyAgICArK2dPYmplY3RDb3VudEZvclRlc3Rpbmc7CiB9CiAKIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKQEAgLTI2Miw4ICsyNjQsMTIgQEAg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIG1fbGliV2ViUlRDQ29k
ZWNzUHJveHktPmNsb3NlKCk7CiAjZW5kaWYKKworICAgIC0tZ09iamVjdENvdW50Rm9yVGVzdGlu
ZzsKIH0KIAordWludDY0X3QgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z09iamVjdENvdW50
Rm9yVGVzdGluZyA9IDA7CisKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogI2lmIEVOQUJMRShST1VUSU5HX0FS
QklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXgg
OWM1MjM2NDE0MjI0YTkyZGNmNjBkZGUxZTBjOGRiNmNjNTZlOGI0ZS4uMjFhYWI1Y2M4MmM2YWVi
Zjc0ZTllNTFhZDdlMzRjODYzODdkNjk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xNzAsNiArMTcwLDggQEAg
cHVibGljOgogICAgIHZvaWQgcmVsZWFzZUdyYXBoaWNzQ29udGV4dEdMRm9yVGVzdGluZyhHcmFw
aGljc0NvbnRleHRHTElkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgdWludDY0X3Qg
b2JqZWN0Q291bnRGb3JUZXN0aW5nKCkgeyByZXR1cm4gZ09iamVjdENvdW50Rm9yVGVzdGluZzsg
fQorCiAgICAgdXNpbmcgUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCA9IEhhc2hNYXA8UmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIsIElQQzo6U2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1
ZTxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPj47CiAgICAgY29uc3QgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZE1hcCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZE1hcDsgfQogCkBAIC0yNDIsNiArMjQ0LDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwogI2VuZGlmCiAKKyAg
ICBzdGF0aWMgdWludDY0X3QgZ09iamVjdENvdW50Rm9yVGVzdGluZzsKKwogICAgIFJlZlB0cjxM
b2dnZXI+IG1fbG9nZ2VyOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IDJlNzYyYTc4MTQy
NGE4ZDgxM2JlYWY3NzNiOTdhMGFhMzNhMjczYjAuLjcwY2MzODFhMWY0OTFjNDRmOThkZWFlMDBm
NzU2NjhjMDA4MWVhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAK
QEAgLTQ5OCw2ICs0OTgsMTEgQEAgdm9pZCBHUFVQcm9jZXNzOjpzZXRWb3JiaXNEZWNvZGVyRW5h
YmxlZChib29sIGVuYWJsZWQpCiB9CiAjZW5kaWYKIAordm9pZCBHUFVQcm9jZXNzOjp3ZWJQcm9j
ZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2
NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpvYmplY3RDb3VudEZvclRlc3RpbmcoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNTQxZjViMGZmMmNkMDE2ZGQ3YTI0
NGEzNTMyYmU5NDdlZDRhODQ5MS4uMGFmNDk4Mjc4NGE4YTY0MmU4NmFkNTYwOGEzZGNkNWExOTVk
ODljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC0xMDAsNiArMTAw
LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblZpc2libGVOYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvblZpc2libGVOYW1lOyB9CiAKKyAgICB2b2lk
IHdlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIo
Q3JpdGljYWwsIFN5bmNocm9ub3VzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBiNjRiYTE2NGE5MmQ3YmE2MWJlZGVkMmE1YWUz
MDJhNjAyZWNiOGY3Li5iYTg0YTdjNTMyZTJhMDFiYTIzNDk2YjRmY2JkOWM2MDA2NjQ5NDRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNjgsNiArNjgsOCBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0No
YW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVu
Y29kZWRWYWx1ZSkKICNlbmRpZgorCisgICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRl
c3RpbmcoKSAtPiAodWludDY0X3QgY291bnQpIEFzeW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZWVhOTJmZGZh
ZmFmODYyZjAwZDIxMjk0ODNlNzE5MWMxN2M2YjY3Mi4uYWRhNTRkNDE4YTBiNjAyNTQ2YjE3ZTU3
YzY2ZGQwY2Q2OTAzMGQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMzcs
NyArMzcsNyBAQCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUQogICAgIDogbV9pbWFnZUJ1ZmZlcihp
bWFnZUJ1ZmZlcikKICAgICAsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVySWRl
bnRpZmllcikKICAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZp
ZXIpCi0gICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQocmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZCgmcmVuZGVyaW5nQmFja2VuZCkKIHsKIH0KIApAQCAtNTMsMTggKzUz
LDEzIEBAIEdyYXBoaWNzQ29udGV4dCYgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd2lu
Z0NvbnRleHQoKQogCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0YXJ0TGlzdGVu
aW5nRm9ySVBDKCkKIHsKLSAgICBBU1NFUlQoIW1faXNMaXN0ZW5pbmdGb3JJUEMpOwotICAgIG1f
aXNMaXN0ZW5pbmdGb3JJUEMgPSB0cnVlOwogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFt
Q29ubmVjdGlvbigpLnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXMoKnRoaXMsIE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0KCkpOwogfQogCiB2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIGlmICghbV9pc0xp
c3RlbmluZ0ZvcklQQykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9yZW5kZXJpbmdCYWNrZW5k
LT5zdHJlYW1Db25uZWN0aW9uKCkuc3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0KCkpOwotICAgIG1faXNMaXN0ZW5pbmdGb3JJ
UEMgPSBmYWxzZTsKKyAgICBpZiAoYXV0byByZW5kZXJpbmdCYWNrZW5kID0gc3RkOjpleGNoYW5n
ZShtX3JlbmRlcmluZ0JhY2tlbmQsIHsgfSkpCisgICAgICAgIHJlbmRlcmluZ0JhY2tlbmQtPnN0
cmVhbUNvbm5lY3Rpb24oKS5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklk
ZW50aWZpZXIub2JqZWN0KCkudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6c2F2ZSgpCkBAIC00MjYsNyArNDIxLDcgQEAgdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbnQKIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVk
aWEoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24pCiB7Ci0gICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5wZXJmb3JtV2l0aE1lZGlhUGxh
eWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIsIFtpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIu
Y29weVJlZigpLCBkZXN0aW5hdGlvbl0oTWVkaWFQbGF5ZXImIHBsYXllcikgeworICAgIG1fcmVu
ZGVyaW5nQmFja2VuZC0+cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZChpZGVudGlm
aWVyLCBbaW1hZ2VCdWZmZXIgPSBSZWZQdHIgeyBtX2ltYWdlQnVmZmVyLmdldCgpIH0sIGRlc3Rp
bmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CiAgICAgICAgIC8vIEl0IGlzIGN1cnJlbnRs
eSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRpYSgpIG9mZiB0aGUgbWFpbiB0aHJl
YWQuCiAgICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkucGFpbnRGcmFtZUZvck1lZGlhKHBs
YXllciwgZGVzdGluYXRpb24pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5k
ZXggNjJhNDk3MDZlMjhiMDFlMGE2Yjg2OWJkMzNlNjI0ZWM3ZDhiMzY5MS4uNTk4MmNiYWViODdl
NjYwYzViYWI3N2E2ZDdhMjk1NzAzNTdiYmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5o
CkBAIC0xNDksMTIgKzE0OSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdG
b3JJUEMoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAotICAgIFJlZjxXZWJD
b3JlOjpJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAgICBXZWFrUHRyPFdlYkNvcmU6Oklt
YWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOwogICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotICAgIFJlZjxSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7CisgICAgUmVmUHRyPFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VC
dWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwotICAgIGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7
IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmgKaW5kZXggZjZhMWNmZDgwZDM0YjdjMTlkYTUyY2E1NjQwYTE3ZTZhY2U5ODg0Mi4u
OWE5OTQ2MWI0MWU0NTk1ZDBlMDM1YmZhY2IxZDc1YTZkODJjYTBiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmgKQEAgLTExNCw2ICsxMTQsNyBAQCBzdHJ1Y3QgV0tBcHBQcml2YWN5UmVw
b3J0VGVzdGluZ0RhdGEgewogLSAodm9pZClfY2xlYXJBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0Rh
dGE6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CiAKIC0gKHZvaWQpX2NyZWF0ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzooaWQgPF9XS01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPilwcml2YXRlQ29vcmRpbmF0b3IgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9P
TCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9ncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Q291bnRGb3JUZXN0aW5nOih2b2lkKF4pKE5TVUludGVnZXIpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBl
bmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3VGVzdGluZy5tbQppbmRleCA1OWQ5ZWQxNGQzMjkzYWUwZGQxMTc5MWQwZDFlNzg0NTFkZThj
YTY0Li5jNjkzZTU0ZTM4OTFhZjE0NGVlMWU1YzFhNzIxM2JiNmJiZGI5MDc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5t
bQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aCIKIAogI2ltcG9ydCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorI2lt
cG9ydCAiR1BVUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5UHJpdmF0ZS5oIgogI2ltcG9ydCAiUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lmgi
CiAjaW1wb3J0ICJVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIgpAQCAtNDIzLDYgKzQyNCwxOSBA
QCAtICh2b2lkKV9jbGVhckFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YToodm9pZCheKSh2b2lk
KSljb21wbGV0aW9uSGFuZGxlcgogICAgIH0pOwogfQogCistICh2b2lkKV9ncHVUb1dlYlByb2Nl
c3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOih2b2lkKF4pKE5TVUludGVnZXIpKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgUmVmUHRyIGdwdVByb2Nlc3MgPSBfcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkuZ3B1UHJvY2VzcygpOworICAgIGlmICghZ3B1UHJvY2VzcykgeworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGdw
dVByb2Nlc3MtPndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKFtjb21wbGV0aW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKHVpbnQ2NF90IGNvdW50
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvdW50KTsKKyAgICB9KTsKK30KKwogLSAo
dm9pZClfY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dLTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+KXByaXZhdGVDb29yZGluYXRvciBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmOGExOTNmOTZmNTI3NzRlNTA1NTAwNjk0MDk1NmViODU3
MzdmYTdkLi5kNzIzYTg2ZTQzODFiZDdjZDNiY2E0ODM5MTM3NTVjZGIwMTg0ZmI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk5
LDYgKzM5OSwxMSBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZygp
CiAgICAgcHJvY2Vzc0lzUmVhZHlUb0V4aXQoKTsKIH0KIAordm9pZCBHUFVQcm9jZXNzUHJveHk6
OndlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRl
c3RpbmcoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIEdQVVByb2Nl
c3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcm9jZXNzLCAiJXAgLSBHUFVQcm9jZXNzUHJveHk6OmRpZENsb3NlOiIsIHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4IGQ1
NmFmMDBiM2ZjMDFjM2NmYjQ0OTdjZTk2NGI2ZDQzMDFhODMzOGUuLmIxMTA0MTAyMzdlZWVjYzhm
MDI1Njc3YTA2MmU2NzkxZjZlYjAzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTk0LDYgKzk0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlUHJlZmVyZW5jZXMoKTsKIAogICAgIHZvaWQgdGVybWluYXRlRm9yVGVzdGluZygpOwor
ICAgIHZvaWQgd2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdQVVBy
b2Nlc3NQcm94eSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDBmODkzOTY2MWE0ZmJjODViZDUzYWUxNjRiY2FlMTMwYjAxMTg3NmEuLjZkYWEz
ZGRiODNmYWNmMWU2ZGY1ODZjY2U5NzhlNzU3NjA0ZGFmZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMC0y
MiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdS
RVNTSU9OIChyMjg0MDc5KTogQXVkaW8gY29udGludWVzIHBsYXlpbmcgb24gaHVsdS5jb20gaW4g
cHJpdmF0ZSBicm93c2luZyBtb2RlIGFmdGVyIGNsb3NpbmcgdGhlIHRhYgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMTEzCisgICAgICAgIHJkYXI6
Ly84NDM5OTI4MworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAg
QWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBHUFUgdG8gd2ViIHByY29lc3Mg
Y29ubmVjdGlvbiBpc24ndCBsZWFrZWQgaW4gdGhlIEdQVSBwcm9jZXNzLiBTZWUgV2ViS2l0Cisg
ICAgICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50XSk6CisKIDIwMjEtMTAt
MjQgIEFyY2FkeSBHb2xkbWludHMtT3Jsb3YgIDxhZ29sZG1pbnRzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjgyNjg2KSBbR1RLXSBUZXN0cyBhcmUgZmxha3kgZHVlIHRvIHNw
dXJpb3VzICJNYWluRnJhbWVWaWV3OiBtb3VzZUVudGVyZWRDb250ZW50QXJlYSIgbWVzc2FnZXMg
aW4gdGhlIGxvZwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NzUwMDQzNGU2Y2I1MTc3ZDIy
ODA1YWM3NDdmNjI0NTNjZTllNTE3Li5iZTE3MTkxMDc3M2YwYTFmY2MxYmYwOThiNThiNTNiMjZk
OTM0YWM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI5NSw2ICsxMjk1LDcgQEAKIAkJ
RjRFMEEyQjQyMTIyNDAyQjAwQUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTBB
MkIzMjEyMjNGMkQwMEFGN0M3RiAvKiBpbWFnZS1hbmQtZmlsZS11cGxvYWQuaHRtbCAqLzsgfTsK
IAkJRjRFMEEyQjgyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFMEEyQjcy
MTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tICovOyB9OwogCQlG
NEUzRDgwODIwRjcwQkI5MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUtYXJ0
aWNsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0RTNEODA3MjBGNzA4RTQwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVz
dG9uZS1hcnRpY2xlLmh0bWwgKi87IH07CisJCUY0RTdBNjYzMjcyMjJDQTkwMEU3NEQzNiAvKiBj
YW52YXMtaW1hZ2UtZGF0YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1h
Z2UtZGF0YS5odG1sICovOyB9OwogCQlGNEVCNEU5MTIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVt
UHJvdmlkZXJBZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEVCNEU5MDIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJvdmlkZXJBZGRp
dGlvbnMubW0gKi87IH07CiAJCUY0RUM4MDk0MjYwRDMwNTQwMDEwMzExRCAvKiBzaW1wbGUtaW1h
Z2Utb3ZlcmxheS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUM4MDkzMjYwRDJFNjIwMDEwMzExRCAvKiBzaW1wbGUtaW1hZ2Utb3Zl
cmxheS5odG1sICovOyB9OwogCQlGNEYxMzc5MjFEOUI2ODNFMDAyQkVDNTcgLyogbGFyZ2Utdmlk
ZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12
aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi87IH07CkBAIC0xNDQ0LDYgKzE0NDUsNyBAQAog
CQkJCTJERTcxQjAwMUQ0OUMzRUQwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk3QzQ4NkJBMTFBQTEyNTY3MDAzRjZGOUIgLyogYnVuZGxlLWZp
bGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyNkRGNUE2MzE1QTJBMjdFMDAzNjg5
QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCUY0RTdBNjYzMjcyMjJDQTkwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2Ut
ZGF0YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0
QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3Vy
Y2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUJENDIzOUMxRTA0QzAx
QzAwMjAwMzk1IC8qIGNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKQEAgLTMxODcsNiArMzE4OSw3IEBACiAJCUY0RTBBMkI2MjEyMjg0NzQwMEFG
N0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0Rmls
ZVByb21pc2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUwQTJC
NzIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFM0Q4MDcyMEY3MDhFNDAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRl
eHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJz
aWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdlLWRh
dGEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjYW52YXMtaW1hZ2UtZGF0YS5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQjRFOEYyMzI4QUMzMDAwNTc0
REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5TSXRlbVBy
b3ZpZGVyQWRkaXRpb25zLmg7IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5o
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0RUI0RTkwMjMyOEFDMzAwMDU3NERB
QiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5T
SXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOyBwYXRoID0gY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRp
dGlvbnMubW07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRFQzgwOTMyNjBEMkU2
MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1vdmVybGF5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAic2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00MDUwLDYgKzQwNTMsNyBAQAogCQkJCUY0MUFCOTk3MUVGNDY5MkMwMDgz
RkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJNDY0
Qzc2NEMyMzBERjgzMjAwQUZCMDIwIC8qIEJhZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQu
c3FsaXRlMyAqLywKIAkJCQkyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2
Lmh0bWwgKi8sCisJCQkJRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFnZS1k
YXRhLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRl
by1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywKIAkJCQkyRUZGMDZDNjFEODg2QTU2MDAwNEJCMzAg
LyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLywKIAkJCQk4MzlBQTM1RTIxQTI2
QUNEMDA5ODBERDYgLyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQppbmRleCA4
NDA5Njk3NTYxNDQ2ZWJmOGFlOGM2NWZkYmM5ZTEwMjI5NDNkMWYzLi40NGM4YThkZTk4MGNjYzEw
MmIyMTdhYTg2OWFlYjhjOGU1NTBmNjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCkBAIC0yODIsNiArMjgyLDIxIEBAIFRF
U1QoR1BVUHJvY2VzcywgT25seUxhdW5jaGVzR1BVUHJvY2Vzc1doZW5OZWNlc3NhcnlNZWRpYUZl
YXR1cmVEZXRlY3Rpb24pCiAgICAgRVhQRUNUX0VRKFtjb25maWd1cmF0aW9uLmdldCgpLnByb2Nl
c3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIDApOwogfQogCitURVNUKEdQVVByb2Nlc3Ms
IERvTm90TGVha0Nvbm5lY3Rpb25BZnRlckNsb3NpbmdXZWJQYWdlKQoreworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJp
ZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLCB0cnVlLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRl
cmluZ0VuYWJsZWQiKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRl
c3RpbmcoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdLCBmYWxzZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlVzZUdQVVByb2Nlc3NG
b3JET01SZW5kZXJpbmdFbmFibGVkIikpOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAs
IDQwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiY2FudmFzLWltYWdlLWRhdGEiXTsKKyAg
ICBFWFBFQ1RfRVEoMVUsIFt3ZWJWaWV3IGdwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudF0p
OworICAgIFt3ZWJWaWV3IF9jbG9zZV07CisKKyAgICB3aGlsZSAoW3dlYlZpZXcgZ3B1VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbkNvdW50XSkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xl
ZXAoMC4xKTsKK30KKwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogVEVTVChH
UFVQcm9jZXNzLCBMZWdhY3lDRE0pCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2NhbnZhcy1pbWFnZS1kYXRhLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjVjYTEyMzYwMWVmZmRiMzQ5MzVjYmI2YTc0OTBiMGE2NDBiNmQ3OAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdl
LWRhdGEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CitjYW52YXMgeworICAgIHdpZHRoOiAxNjBweDsKKyAgICBoZWlnaHQ6IDE2
MHB4OworICAgIGRpc3BsYXk6IGJsb2NrOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHN0cm9uZz5Tb3VyY2U8L3N0cm9uZz4KKzxjYW52YXMgaWQ9InNvdXJjZSIgd2lkdGg9IjMyMCIg
aGVpZ2h0PSIzMjAiPjwvY2FudmFzPgorPHN0cm9uZz5EZXN0aW5hdGlvbjwvc3Ryb25nPgorPGNh
bnZhcyBpZD0iZGVzdGluYXRpb24iIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIj48L2NhbnZhcz4K
KzxzY3JpcHQ+Citjb25zdCBzb3VyY2VDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c291cmNlIik7Citjb25zdCBzb3VyY2VDb250ZXh0ID0gc291cmNlQ2FudmFzLmdldENvbnRleHQo
IjJkIik7Citzb3VyY2VDb250ZXh0LnNhdmUoKTsKK3NvdXJjZUNvbnRleHQuc3Ryb2tlU3R5bGUg
PSAicmVkIjsKK3NvdXJjZUNvbnRleHQuZmlsbFN0eWxlID0gInJnYmEoMjAwLCAxMDAsIDEwMCwg
MC4yNSkiOworc291cmNlQ29udGV4dC5saW5lV2lkdGggPSA0Oworc291cmNlQ29udGV4dC5yZWN0
KDQwLCA0MCwgMjQwLCAyNDApOworc291cmNlQ29udGV4dC5zdHJva2UoKTsKK3NvdXJjZUNvbnRl
eHQuZmlsbCgpOworc291cmNlQ29udGV4dC5yZXN0b3JlKCk7CisKK2NvbnN0IGltYWdlRGF0YSA9
IHNvdXJjZUNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDMyMCwgMzIwKTsKK2NvbnN0IGRlc3Rp
bmF0aW9uQ2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uIik7Citj
b25zdCBkZXN0aW5hdGlvbkNvbnRleHQgPSBkZXN0aW5hdGlvbkNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOworZGVzdGluYXRpb25Db250ZXh0LnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDAsIDAs
IDAsIDMyMCwgMzIwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA5NWU2NGE2NzQ0Mzk4MGVhZmViMzA4
N2QwODFkNzIzN2M5Yzc5MzQyLi5jMmI3MTE2ZTMwYjY4NmUzMDg4YTVjNjYyZTUwNjRhYmFkZWQy
ZjRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNTMs
NiArNTMsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVZpZXcgPFVJVGV4
dElucHV0UHJpdmF0ZSwgVUlUZXh0SW5wdXRJbnRlcm5hbCwgVUlUZXh0SW5wdXRNdWx0aURvY3Vt
ZW50LCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFVJVGV4dElucHV0VG9rZW5pemVyPiAq
dGV4dElucHV0Q29udGVudFZpZXc7CiAtIChOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4g
KilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OihDR1JlY3QpcmVj
dDsKICNlbmRpZgorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VJbnRlZ2VyIGdw
dVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNTdHJpbmcgKmNvbnRlbnRzQXNTdHJpbmc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKnRhZ3NJbkJvZHk7CiAtICh2b2lkKWxvYWRU
ZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDBhZGZhZTA1Mjk3OTZmNmU2M2NlOTI3YmZmMjFi
Yzg1MTc0Nzc3MWYuLjIwYzRmZWRiYzkzMDA3YjlmNzM0MDU2ZTI5ZGFlMTRmNmEyYTc5MjkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTE1NCw2ICsx
NTQsMTggQEAgLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3luY2hyb25vdXNs
eVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDoKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKKy0gKE5TVUludGVnZXIpZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50
Cit7CisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIE5TVUludGVn
ZXIgY291bnQgPSAwOworICAgIFtzZWxmIF9ncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRG
b3JUZXN0aW5nOl4oTlNVSW50ZWdlciByZXN1bHQpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7Cisg
ICAgICAgIGNvdW50ID0gcmVzdWx0OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgcmV0dXJuIGNvdW50OworfQorCiAtIChOU1N0cmluZyAqKWNvbnRl
bnRzQXNTdHJpbmcKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442330</attachid>
            <date>2021-10-24 16:47:38 -0700</date>
            <delta_ts>2021-10-25 08:37:26 -0700</delta_ts>
            <desc>Try to fix layout test?</desc>
            <filename>bug-232113-20211024164737.patch</filename>
            <type>text/plain</type>
            <size>27010</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUyYjUwYjcwYWRmMjVhZjdh
NDM5NjMyZjJhY2RjYWE0NWIwMThlYmUuLjhhNGMwYTI3MzEzNjBjMDBhODZmNjFkNTBlNWMwZGU5
ZWViOWU5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMTAtMjQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4
NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHByaXZhdGUgYnJv
d3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8vODQzOTkyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIGluYWR2
ZXJ0ZW50bHkgaW50cm9kdWNlZCBhIHJlZi1jb3VudGluZyBjeWNsZSBiZXR3ZWVuIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIKKyAgICAgICAgYWZ0
ZXIgSVBDIHN0cmVhbSByZWZhY3RvcmluZyBpbiByMjg0MDc5LCBzaW5jZSBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyIGRpcmVjdGx5IHN0cm9uZ2x5IHJlZnMgdGhlIHJlbmRlcmluZworICAgICAg
ICBiYWNrZW5kLCBhbmQgdGhlIHJlbmRlcmluZyBiYWNrZW5kIGluZGlyZWN0bHkgaG9sZHMgb24g
dG8gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcnMgdGhyb3VnaCByZW1vdGUgaW1hZ2UKKyAgICAg
ICAgYnVmZmVycyBpbiB0aGUgcmVzb3VyY2UgY2FjaGUuIFNpbmNlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgYWxzbyBzdHJvbmdseSByZWZzICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGFzCisg
ICAgICAgIHdlbGwsIHRoaXMgY2F1c2VkIHRoZSBlbnRpcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyB0byBsZWFrIGFmdGVyIHRlYXJpbmcgZG93biB0aGUgY29ubmVjdGVkIHdlYiBwcm9jZXNz
LCBpZgorICAgICAgICB0aGUgd2ViIHByb2Nlc3MgZXZlciBpbnN0YWxsZWQgYSByZW1vdGUgcmVu
ZGVyaW5nIGJhY2tlbmQgZm9yIDJEIGNhbnZhcy4KKworICAgICAgICBUbyBhdm9pZCB0aGlzIGN5
Y2xlLCB0dXJuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIncyBgbV9yZW5kZXJpbmdCYWNrZW5k
YCBpbnRvIGEgUmVmUHRyIGluc3RlYWQgb2YgYSBSZWYsIGFuZAorICAgICAgICBjbGVhciBpdCBv
dXQgaW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAuIFRoaXMgYWxzbyBtZWFucyB0aGF0IHdlIG5v
IGxvbmdlciBuZWVkIGEgc2VwYXJhdGUgYm9vbGVhbiBmbGFnIHRvCisgICAgICAgIGVuc3VyZSB0
aGF0IGBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKClgIGlz
IGlkZW1wb3RlbnQsIHNvIHdlIGFsc28gcmVtb3ZlCisgICAgICAgIGBtX2lzTGlzdGVuaW5nRm9y
SVBDYCBhbHRvZ2V0aGVyLgorCisgICAgICAgIFRlc3Q6IEdQVVByb2Nlc3MuRG9Ob3RMZWFrQ29u
bmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UKKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om9iamVjdENvdW50Rm9yVGVz
dGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcpOgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIHRlc3Rpbmctb25seSBTUEkgaG9vayB0byBhc2sg
Zm9yIHRoZSBsaXZlIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgY291bnQuIFRoaXMgcmV0cmll
dmVzIGEKKyAgICAgICAgc3RhdGljYWxseSBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBjb3VudCBv
ZiB0aGUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBpbnN0YW5jZXMgdGhhdCBleGlzdCBpbiB0
aGUgR1BVCisgICAgICAgIHByb2Nlc3M7IGltcG9ydGFudGx5LCB0aGlzIGlzIGRpZmZlcmVudCBm
cm9tIGFza2luZyB0aGUgR1BVUHJvY2VzcyBmb3IgdGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyBp
bgorICAgICAgICBgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnNgLCBzaW5jZSB0aGUgbGF0dGVyIHdp
bGwgYmUgMCBldmVuIHdoZW4gb25lIG9yIG1vcmUgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc2Vz
IGFyZQorICAgICAgICBzdGlsbCBhbGl2ZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyKToKKworICAgICAgICBBbHNvIGZpeCBhIGxlYWsgY2F1c2VkIGJ5IFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgYW5kIFJlbW90ZUltYWdlQnVmZmVyIHN0cm9uZ2x5IHJl
ZmZpbmcgZWFjaCBvdGhlci4gU2luY2UKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXIgb3ducyBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLCB0aGUgYmFja3BvaW50ZXIgZnJvbSBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyIHRvIHRoZSBpbWFnZQorICAgICAgICBidWZmZXIgc2hvdWxkIGJlIHdl
YWssIG5vdCBzdHJvbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1lZGlhKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6c3RvcExpc3RlbmluZ0ZvcklQQyk6CisKKyAgICAgICAgQWRqdXN0IHRoaXMgbG9naWMgdG8g
ZW5zdXJlIHRoYXQgd2UgZmluaXNoIHBlbmRpbmcgd29yayBhbmQgZGVzdHJveSBjYWNoZWQgcmVz
b3VyY2VzICpyaWdodCBiZWZvcmUqIHdlIHN0b3AKKyAgICAgICAgbGlzdGVuaW5nIGZvciBhbGwg
c3RyZWFtIElQQyBtZXNzYWdlcy4gU2luY2UgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBub3cg
Y2xlYXJzIG91dCBpdHMgcG9pbnRlciB0byB0aGUKKyAgICAgICAgcmVuZGVyaW5nIGJhY2tlbmQg
aW4gYHN0b3BMaXN0ZW5pbmdGb3JJUEMoKWAsIHdlJ2xsIG5lZWQgdG8gZW5zdXJlIHRoYXQgYW55
IHBlbmRpbmcgSVBDIHN0cmVhbSBtZXNzYWdlcyB0aGF0CisgICAgICAgIG1pZ2h0IGNhdXNlIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgdG8gY2FsbCBpbnRvIHRoZSBiYWNrIGVuZCBhcmUgcHJv
Y2Vzc2VkIGJlZm9yZSB3ZSBzZXZlciB0aGUgSVBDIHN0cmVhbQorICAgICAgICBjb25uZWN0aW9u
IGZvciBnb29kIGJ5IHJlbW92aW5nIGFsbCByZWNlaXZlcnMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisKKyAgICAgICAgQWRk
IHRoZSBuZXcgdGVzdGluZyBTUEkgKHNlZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9ncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVz
dGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKwogMjAy
MS0xMC0yNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHNob3VsZCBub3Qgc2VuZCBJUEMgaW4gdGhlIG1pZGRs
ZSBvZiBkZXN0cnVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGZiMjA3YzQ2MzZjZDVmMWQ4YTI2MTVk
NDgxYzVmYjdjMGVkOTQzYWMuLjg3MGUzN2UwNWUwNTRlZDdhMDZkN2RlYmY1MjFlYWQ1ODEzMjEw
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI0OCw2ICsyNDgsOCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3Ms
IFdlYgogICAgIC8vIHJlcGx5IGZyb20gdGhlIEdQVSBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1
bnNhZmUuCiAgICAgbV9jb25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAg
ICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CisKKyAgICArK2dPYmplY3RDb3VudEZvclRlc3Rpbmc7
CiB9CiAKIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKCkKQEAgLTI2Miw4ICsyNjQsMTIgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElC
V0VCUlRDKQogICAgIG1fbGliV2ViUlRDQ29kZWNzUHJveHktPmNsb3NlKCk7CiAjZW5kaWYKKwor
ICAgIC0tZ09iamVjdENvdW50Rm9yVGVzdGluZzsKIH0KIAordWludDY0X3QgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Z09iamVjdENvdW50Rm9yVGVzdGluZyA9IDA7CisKIHZvaWQgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQogewogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9V
VElOR19BUkJJVEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOWM1MjM2NDE0MjI0YTkyZGNmNjBkZGUxZTBjOGRi
NmNjNTZlOGI0ZS4uMjFhYWI1Y2M4MmM2YWViZjc0ZTllNTFhZDdlMzRjODYzODdkNjk2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCkBAIC0xNzAsNiArMTcwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUdyYXBo
aWNzQ29udGV4dEdMRm9yVGVzdGluZyhHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpOwogI2Vu
ZGlmCiAKKyAgICBzdGF0aWMgdWludDY0X3Qgb2JqZWN0Q291bnRGb3JUZXN0aW5nKCkgeyByZXR1
cm4gZ09iamVjdENvdW50Rm9yVGVzdGluZzsgfQorCiAgICAgdXNpbmcgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZE1hcCA9IEhhc2hNYXA8UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIElQQzo6U2Nv
cGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPj47CiAg
ICAgY29uc3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcCYgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZE1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZE1hcDsgfQogCkBA
IC0yNDIsNiArMjQ0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1Jl
Y29uZmlndXJlZCgpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgdWludDY0X3QgZ09iamVjdENvdW50
Rm9yVGVzdGluZzsKKwogICAgIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwogCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuY3BwCmluZGV4IDJlNzYyYTc4MTQyNGE4ZDgxM2JlYWY3NzNiOTdhMGFhMzNhMjczYjAu
LjcwY2MzODFhMWY0OTFjNDRmOThkZWFlMDBmNzU2NjhjMDA4MWVhZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTQ5OCw2ICs0OTgsMTEgQEAgdm9pZCBHUFVQ
cm9jZXNzOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCiB9CiAjZW5kaWYK
IAordm9pZCBHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpvYmplY3RD
b3VudEZvclRlc3RpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgK
aW5kZXggNTQxZjViMGZmMmNkMDE2ZGQ3YTI0NGEzNTMyYmU5NDdlZDRhODQ5MS4uMGFmNDk4Mjc4
NGE4YTY0MmU4NmFkNTYwOGEzZGNkNWExOTVkODljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5oCkBAIC0xMDAsNiArMTAwLDggQEAgcHVibGljOgogCiAgICAgY29uc3QgU3Ry
aW5nJiBhcHBsaWNhdGlvblZpc2libGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlv
blZpc2libGVOYW1lOyB9CiAKKyAgICB2b2lkIHdlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JU
ZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwsIFN5bmNocm9ub3VzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBi
NjRiYTE2NGE5MmQ3YmE2MWJlZGVkMmE1YWUzMDJhNjAyZWNiOGY3Li5iYTg0YTdjNTMyZTJhMDFi
YTIzNDk2YjRmY2JkOWM2MDA2NjQ5NDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNjgsNiArNjgsOCBAQCBtZXNzYWdlcyAtPiBH
UFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9E
RSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtl
eSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKICNlbmRpZgorCisgICAgV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAtPiAodWludDY0X3QgY291bnQpIEFz
eW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHAKaW5kZXggZWVhOTJmZGZhZmFmODYyZjAwZDIxMjk0ODNlNzE5MWMxN2M2YjY3
Mi4uYWRhNTRkNDE4YTBiNjAyNTQ2YjE3ZTU3YzY2ZGQwY2Q2OTAzMGQxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMzcsNyArMzcsNyBAQCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZl
ciwgUQogICAgIDogbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKICAgICAsIG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKICAgICAsIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0gICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQo
cmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcmVuZGVyaW5nQmFja2VuZCgmcmVuZGVyaW5nQmFj
a2VuZCkKIHsKIH0KIApAQCAtNTMsMTggKzUzLDEzIEBAIEdyYXBoaWNzQ29udGV4dCYgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRleHQoKQogCiB2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKIHsKLSAgICBBU1NFUlQoIW1f
aXNMaXN0ZW5pbmdGb3JJUEMpOwotICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSB0cnVlOwogICAg
IG1fcmVuZGVyaW5nQmFja2VuZC0+c3RyZWFtQ29ubmVjdGlvbigpLnN0YXJ0UmVjZWl2aW5nTWVz
c2FnZXMoKnRoaXMsIE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0
KCkpOwogfQogCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0b3BMaXN0ZW5pbmdG
b3JJUEMoKQogewotICAgIGlmICghbV9pc0xpc3RlbmluZ0ZvcklQQykKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zdHJlYW1Db25uZWN0aW9uKCkuc3RvcFJlY2Vp
dmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyLm9iamVjdCgpLnRvVUludDY0
KCkpOwotICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSBmYWxzZTsKKyAgICBpZiAoYXV0byByZW5k
ZXJpbmdCYWNrZW5kID0gc3RkOjpleGNoYW5nZShtX3JlbmRlcmluZ0JhY2tlbmQsIHsgfSkpCisg
ICAgICAgIHJlbmRlcmluZ0JhY2tlbmQtPnN0cmVhbUNvbm5lY3Rpb24oKS5zdG9wUmVjZWl2aW5n
TWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIub2JqZWN0KCkudG9VSW50NjQoKSk7
CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2F2ZSgpCkBAIC00MjYsNyAr
NDIxLDcgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihj
b25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnQKIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCiB7Ci0gICAgbV9yZW5kZXJpbmdC
YWNrZW5kLT5wZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIsIFtp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIuY29weVJlZigpLCBkZXN0aW5hdGlvbl0oTWVkaWFQ
bGF5ZXImIHBsYXllcikgeworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cGVyZm9ybVdpdGhNZWRp
YVBsYXllck9uTWFpblRocmVhZChpZGVudGlmaWVyLCBbaW1hZ2VCdWZmZXIgPSBSZWZQdHIgeyBt
X2ltYWdlQnVmZmVyLmdldCgpIH0sIGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7
CiAgICAgICAgIC8vIEl0IGlzIGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVG
b3JNZWRpYSgpIG9mZiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgIGltYWdlQnVmZmVyLT5jb250
ZXh0KCkucGFpbnRGcmFtZUZvck1lZGlhKHBsYXllciwgZGVzdGluYXRpb24pOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNjJhNDk3MDZlMjhiMDFlMGE2Yjg2OWJkMzNl
NjI0ZWM3ZDhiMzY5MS4uNTk4MmNiYWViODdlNjYwYzViYWI3N2E2ZDdhMjk1NzAzNTdiYmY5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNDksMTIgKzE0OSwxMSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVT
dHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKIAotICAgIFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZl
cjsKKyAgICBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOwogICAg
IFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRp
ZmllcjsKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlm
aWVyOwotICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7
CisgICAgUmVmUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOwotICAg
IGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBjMjlhYTg2YzRlYWVkMjJlMDc0
YjZlNTcyYTgyYWJiMDc2ZWE1MDM0Li43MDA3NmZkNWM1MWE4MDkyNWQ1OTEzODJlOTRjNTExOTY3
ZWIyNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMDgsNiArMTA4LDExIEBAIHZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIC8vIE1ha2Ugc3VyZSB3ZSBkZXN0cm95IHRoZSBS
ZXNvdXJjZUNhY2hlIG9uIHRoZSBXb3JrUXVldWUgc2luY2UgaXQgZ2V0cyBwb3B1bGF0ZWQgb24g
dGhlIFdvcmtRdWV1ZS4KKyAgICAvLyBNYWtlIHN1cmUgcmVuZGVyaW5nIHJlc291cmNlIHJlcXVl
c3QgaXMgcmVsZWFzZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY2FjaGUuCisgICAgbV93b3JrUXVl
dWUtPmRpc3BhdGNoKFtyZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0gV1RGTW92ZShtX3JlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3QpLCByZW1vdGVSZXNvdXJjZUNhY2hlID0gV1RGTW92ZShtX3Jl
bW90ZVJlc291cmNlQ2FjaGUpXSB7IH0pOworICAgIG1fd29ya1F1ZXVlLT5zdG9wQW5kV2FpdEZv
ckNvbXBsZXRpb24oKTsKKwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RvcFJlY2VpdmluZ01l
c3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgbV9z
dHJlYW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAKQEAgLTExNywxMSAr
MTIyLDYgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBD
KCkKICAgICAgICAgZm9yIChhdXRvJiByZW1vdGVDb250ZXh0IDogc3RkOjpleGNoYW5nZShtX3Jl
bW90ZURpc3BsYXlMaXN0cywgeyB9KSkKICAgICAgICAgICAgIHJlbW90ZUNvbnRleHQudmFsdWUt
PnN0b3BMaXN0ZW5pbmdGb3JJUEMoKTsKICAgICB9Ci0KLSAgICAvLyBNYWtlIHN1cmUgd2UgZGVz
dHJveSB0aGUgUmVzb3VyY2VDYWNoZSBvbiB0aGUgV29ya1F1ZXVlIHNpbmNlIGl0IGdldHMgcG9w
dWxhdGVkIG9uIHRoZSBXb3JrUXVldWUuCi0gICAgLy8gTWFrZSBzdXJlIHJlbmRlcmluZyByZXNv
dXJjZSByZXF1ZXN0IGlzIHJlbGVhc2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNhY2hlLgotICAg
IG1fd29ya1F1ZXVlLT5kaXNwYXRjaChbcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCA9IFdURk1v
dmUobV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0KSwgcmVtb3RlUmVzb3VyY2VDYWNoZSA9IFdU
Rk1vdmUobV9yZW1vdGVSZXNvdXJjZUNhY2hlKV0geyB9KTsKLSAgICBtX3dvcmtRdWV1ZS0+c3Rv
cEFuZFdhaXRGb3JDb21wbGV0aW9uKCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZy5oCmluZGV4IGY2YTFjZmQ4MGQzNGI3YzE5ZGE1MmNhNTY0MGExN2U2YWNlOTg4NDIuLjlh
OTk0NjFiNDFlNDU5NWQwZTAzNWJmYWNiMWQ3NWE2ZDgyY2EwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oCkBAIC0xMTQsNiArMTE0LDcgQEAgc3RydWN0IFdLQXBwUHJpdmFjeVJlcG9y
dFRlc3RpbmdEYXRhIHsKIC0gKHZvaWQpX2NsZWFyQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRh
Oih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCiAtICh2b2lkKV9jcmVhdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4pcHJpdmF0ZUNvb3JkaW5hdG9yIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wp
KWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNv
dW50Rm9yVGVzdGluZzoodm9pZCheKShOU1VJbnRlZ2VyKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0KaW5kZXggNTlkOWVkMTRkMzI5M2FlMGRkMTE3OTFkMGQxZTc4NDUxZGU4Y2E2
NC4uYzY5M2U1NGUzODkxYWYxNDRlZTFlNWMxYTcyMTNiYjZiYmRiOTA3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
QEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgi
CiAKICNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNpbXBv
cnQgIkdQVVByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eVByaXZhdGUuaCIKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oIgog
I2ltcG9ydCAiVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCIKQEAgLTQyMyw2ICs0MjQsMTkgQEAg
LSAodm9pZClfY2xlYXJBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGE6KHZvaWQoXikodm9pZCkp
Y29tcGxldGlvbkhhbmRsZXIKICAgICB9KTsKIH0KIAorLSAodm9pZClfZ3B1VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZzoodm9pZCheKShOU1VJbnRlZ2VyKSljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIFJlZlB0ciBncHVQcm9jZXNzID0gX3BhZ2UtPnByb2Nlc3MoKS5wcm9j
ZXNzUG9vbCgpLmdwdVByb2Nlc3MoKTsKKyAgICBpZiAoIWdwdVByb2Nlc3MpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBncHVQ
cm9jZXNzLT53ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhbY29tcGxldGlvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSh1aW50NjRfdCBjb3VudCkg
eworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb3VudCk7CisgICAgfSk7Cit9CisKIC0gKHZv
aWQpX2NyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzooaWQgPF9XS01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPilwcml2YXRlQ29vcmRpbmF0b3IgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggZjhhMTkzZjk2ZjUyNzc0ZTUwNTUwMDY5NDA5NTZlYjg1NzM3
ZmE3ZC4uZDcyM2E4NmU0MzgxYmQ3Y2QzYmNhNDgzOTEzNzU1Y2RiMDE4NGZiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTM5OSw2
ICszOTksMTEgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQog
ICAgIHByb2Nlc3NJc1JlYWR5VG9FeGl0KCk7CiB9CiAKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp3
ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OldlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0
aW5nKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBHUFVQcm9jZXNz
UHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoUHJvY2VzcywgIiVwIC0gR1BVUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZToiLCB0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAppbmRleCBkNTZh
ZjAwYjNmYzAxYzNjZmI0NDk3Y2U5NjRiNmQ0MzAxYTgzMzhlLi5iMTEwNDEwMjM3ZWVlY2M4ZjAy
NTY3N2EwNjJlNjc5MWY2ZWIwMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NQcm94eS5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZVByZWZlcmVuY2VzKCk7CiAKICAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKyAg
ICB2b2lkIHdlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBHUFVQcm9j
ZXNzUHJveHkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAwZjg5Mzk2NjFhNGZiYzg1YmQ1M2FlMTY0YmNhZTEzMGIwMTE4NzZhLi43YTIxMjc5
Mjc4ZDQ5MmYxM2FiYTRkYzliMGYxZjVjNWY3MTI4Y2VkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAtMjQg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVT
U0lPTiAocjI4NDA3OSk6IEF1ZGlvIGNvbnRpbnVlcyBwbGF5aW5nIG9uIGh1bHUuY29tIGluIHBy
aXZhdGUgYnJvd3NpbmcgbW9kZSBhZnRlciBjbG9zaW5nIHRoZSB0YWIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjExMworICAgICAgICByZGFyOi8v
ODQzOTkyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYSBuZXcgQVBJIHRlc3QgdG8gdmVyaWZ5IHRoYXQgdGhlIEdQVSB0byB3ZWIgcHJjb2Vz
cyBjb25uZWN0aW9uIGlzbid0IGxlYWtlZCBpbiB0aGUgR1BVIHByb2Nlc3MuIFNlZSBXZWJLaXQK
KyAgICAgICAgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1hZ2UtZGF0YS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKToKKwogMjAyMS0x
MC0yNCAgQXJjYWR5IEdvbGRtaW50cy1PcmxvdiAgPGFnb2xkbWludHNAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIyODI2ODYpIFtHVEtdIFRlc3RzIGFyZSBmbGFreSBkdWUgdG8g
c3B1cmlvdXMgIk1haW5GcmFtZVZpZXc6IG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhIiBtZXNzYWdl
cyBpbiB0aGUgbG9nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ3NTAwNDM0ZTZjYjUxNzdk
MjI4MDVhYzc0N2Y2MjQ1M2NlOWU1MTcuLmJlMTcxOTEwNzczZjBhMWZjYzFiZjA5OGI1OGI1M2Iy
NmQ5MzRhYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjk1LDYgKzEyOTUsNyBAQAog
CQlGNEUwQTJCNDIxMjI0MDJCMDBBRjdDN0YgLyogaW1hZ2UtYW5kLWZpbGUtdXBsb2FkLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
MEEyQjMyMTIyM0YyRDAwQUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sICovOyB9
OwogCQlGNEUwQTJCODIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwQTJC
NzIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIubW0gKi87IH07CiAJ
CUY0RTNEODA4MjBGNzBCQjkwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1h
cnRpY2xlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRFM0Q4MDcyMEY3MDhFNDAwN0I1OEM1IC8qIHNpZ25pZmljYW50LXRleHQtbWls
ZXN0b25lLWFydGljbGUuaHRtbCAqLzsgfTsKKwkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8q
IGNhbnZhcy1pbWFnZS1kYXRhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFN0E2NjIyNzIyMkJCMTAwRTc0RDM2IC8qIGNhbnZhcy1p
bWFnZS1kYXRhLmh0bWwgKi87IH07CiAJCUY0RUI0RTkxMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0
ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUI0RTkwMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFk
ZGl0aW9ucy5tbSAqLzsgfTsKIAkJRjRFQzgwOTQyNjBEMzA1NDAwMTAzMTFEIC8qIHNpbXBsZS1p
bWFnZS1vdmVybGF5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRFQzgwOTMyNjBEMkU2MjAwMTAzMTFEIC8qIHNpbXBsZS1pbWFnZS1v
dmVybGF5Lmh0bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12
aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdl
LXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKQEAgLTE0NDQsNiArMTQ0NSw3IEBA
CiAJCQkJMkRFNzFCMDAxRDQ5QzNFRDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTdDNDg2QkExMUFBMTI1NjcwMDNGNkY5QiAvKiBidW5kbGUt
ZmlsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTI2REY1QTYzMTVBMkEyN0UwMDM2
ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCisJCQkJRjRFN0E2NjMyNzIyMkNBOTAwRTc0RDM2IC8qIGNhbnZhcy1pbWFn
ZS1kYXRhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUxRDg4Njc3NjAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQkyRUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNv
dXJjZS1vbi1lbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QkQ0MjM5QzFFMDRD
MDFDMDAyMDAzOTUgLyogY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLApAQCAtMzE4Nyw2ICszMTg5LDcgQEAKIAkJRjRFMEEyQjYyMTIyODQ3NDAw
QUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RG
aWxlUHJvbWlzZVJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTBB
MkI3MjEyMjg0NzQwMEFGN0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEUzRDgwNzIwRjcwOEU0MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQt
dGV4dC1taWxlc3RvbmUtYXJ0aWNsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
InNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLWFydGljbGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0RTdBNjYyMjcyMjJCQjEwMEU3NEQzNiAvKiBjYW52YXMtaW1hZ2Ut
ZGF0YS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNhbnZhcy1pbWFnZS1kYXRh
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVCNEU4RjIzMjhBQzMwMDA1
NzREQUIgLyogTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTlNJdGVt
UHJvdmlkZXJBZGRpdGlvbnMuaDsgcGF0aCA9IGNvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25z
Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRFQjRFOTAyMzI4QUMzMDAwNTc0
REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
TlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW07IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRlckFk
ZGl0aW9ucy5tbTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNEVDODA5MzI2MEQy
RTYyMDAxMDMxMUQgLyogc2ltcGxlLWltYWdlLW92ZXJsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJzaW1wbGUtaW1hZ2Utb3ZlcmxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQwNTAsNiArNDA1Myw3IEBACiAJCQkJRjQxQUI5OTcxRUY0NjkyQzAw
ODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCAqLywKIAkJCQk0
NjRDNzY0QzIzMERGODMyMDBBRkIwMjAgLyogQmFkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMt
NC5zcWxpdGUzICovLAogCQkJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1k
aXYuaHRtbCAqLywKKwkJCQlGNEU3QTY2MjI3MjIyQkIxMDBFNzREMzYgLyogY2FudmFzLWltYWdl
LWRhdGEuaHRtbCAqLywKIAkJCQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZp
ZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIz
MCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovLAogCQkJCTgzOUFBMzVFMjFB
MjZBQ0QwMDk4MERENiAvKiBjbGllbnQtc2lkZS1yZWRpcmVjdC5odG1sICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmluZGV4
IDg0MDk2OTc1NjE0NDZlYmY4YWU4YzY1ZmRiYzllMTAyMjk0M2QxZjMuLjQ0YzhhOGRlOTgwY2Nj
MTAyYjIxN2FhODY5YWViOGM4ZTU1MGY2MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTI4Miw2ICsyODIsMjEgQEAg
VEVTVChHUFVQcm9jZXNzLCBPbmx5TGF1bmNoZXNHUFVQcm9jZXNzV2hlbk5lY2Vzc2FyeU1lZGlh
RmVhdHVyZURldGVjdGlvbikKICAgICBFWFBFQ1RfRVEoW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJv
Y2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CiB9CiAKK1RFU1QoR1BVUHJvY2Vz
cywgRG9Ob3RMZWFrQ29ubmVjdGlvbkFmdGVyQ2xvc2luZ1dlYlBhZ2UpCit7CisgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19i
cmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIHRydWUs
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVu
ZGVyaW5nRW5hYmxlZCIpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9y
VGVzdGluZygoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10sIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vz
c0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQiKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQw
MCwgNDAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjYW52YXMtaW1hZ2UtZGF0YSJdOwor
ICAgIEVYUEVDVF9FUSgxVSwgW3dlYlZpZXcgZ3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50
XSk7CisgICAgW3dlYlZpZXcgX2Nsb3NlXTsKKworICAgIHdoaWxlIChbd2ViVmlldyBncHVUb1dl
YlByb2Nlc3NDb25uZWN0aW9uQ291bnRdKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpz
bGVlcCgwLjEpOworfQorCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiBURVNU
KEdQVVByb2Nlc3MsIExlZ2FjeUNETSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY2FudmFzLWltYWdlLWRhdGEuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNWNhMTIzNjAxZWZmZGIzNDkzNWNiYjZhNzQ5MGIwYTY0MGI2ZDc4Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jYW52YXMtaW1h
Z2UtZGF0YS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2NhbnZhcyB7CisgICAgd2lkdGg6IDE2MHB4OworICAgIGhlaWdodDog
MTYwcHg7CisgICAgZGlzcGxheTogYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8c3Ryb25nPlNvdXJjZTwvc3Ryb25nPgorPGNhbnZhcyBpZD0ic291cmNlIiB3aWR0aD0iMzIw
IiBoZWlnaHQ9IjMyMCI+PC9jYW52YXM+Cis8c3Ryb25nPkRlc3RpbmF0aW9uPC9zdHJvbmc+Cis8
Y2FudmFzIGlkPSJkZXN0aW5hdGlvbiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIzMjAiPjwvY2FudmFz
PgorPHNjcmlwdD4KK2NvbnN0IHNvdXJjZUNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzb3VyY2UiKTsKK2NvbnN0IHNvdXJjZUNvbnRleHQgPSBzb3VyY2VDYW52YXMuZ2V0Q29udGV4
dCgiMmQiKTsKK3NvdXJjZUNvbnRleHQuc2F2ZSgpOworc291cmNlQ29udGV4dC5zdHJva2VTdHls
ZSA9ICJyZWQiOworc291cmNlQ29udGV4dC5maWxsU3R5bGUgPSAicmdiYSgyMDAsIDEwMCwgMTAw
LCAwLjI1KSI7Citzb3VyY2VDb250ZXh0LmxpbmVXaWR0aCA9IDQ7Citzb3VyY2VDb250ZXh0LnJl
Y3QoNDAsIDQwLCAyNDAsIDI0MCk7Citzb3VyY2VDb250ZXh0LnN0cm9rZSgpOworc291cmNlQ29u
dGV4dC5maWxsKCk7Citzb3VyY2VDb250ZXh0LnJlc3RvcmUoKTsKKworY29uc3QgaW1hZ2VEYXRh
ID0gc291cmNlQ29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMzIwLCAzMjApOworY29uc3QgZGVz
dGluYXRpb25DYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzdGluYXRpb24iKTsK
K2NvbnN0IGRlc3RpbmF0aW9uQ29udGV4dCA9IGRlc3RpbmF0aW9uQ2FudmFzLmdldENvbnRleHQo
IjJkIik7CitkZXN0aW5hdGlvbkNvbnRleHQucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwgMCwg
MCwgMCwgMzIwLCAzMjApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IDk1ZTY0YTY3NDQzOTgwZWFmZWIz
MDg3ZDA4MWQ3MjM3YzljNzkzNDIuLmMyYjcxMTZlMzBiNjg2ZTMwODhhNWM2NjJlNTA2NGFiYWRl
ZDJmNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01
Myw2ICs1Myw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyA8VUlU
ZXh0SW5wdXRQcml2YXRlLCBVSVRleHRJbnB1dEludGVybmFsLCBVSVRleHRJbnB1dE11bHRpRG9j
dW1lbnQsIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbCwgVUlUZXh0SW5wdXRUb2tlbml6ZXI+
ICp0ZXh0SW5wdXRDb250ZW50VmlldzsKIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAq
PiAqKXN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdCly
ZWN0OwogI2VuZGlmCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVUludGVnZXIg
Z3B1VG9XZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU1N0cmluZyAqY29udGVudHNBc1N0cmluZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNBcnJheTxOU1N0cmluZyAqPiAqdGFnc0luQm9keTsKIC0gKHZvaWQpbG9h
ZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggMGFkZmFlMDUyOTc5NmY2ZTYzY2U5MjdiZmYy
MWJjODUxNzQ3NzcxZi4uMjBjNGZlZGJjOTMwMDdiOWY3MzQwNTZlMjlkYWUxNGY2YTJhNzkyOSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTU0LDYg
KzE1NCwxOCBAQCAtIChOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKilzeW5jaHJvbm91
c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OgogCiAjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIAorLSAoTlNVSW50ZWdlcilncHVUb1dlYlByb2Nlc3NDb25uZWN0aW9uQ291
bnQKK3sKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNVSW50
ZWdlciBjb3VudCA9IDA7CisgICAgW3NlbGYgX2dwdVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3Vu
dEZvclRlc3Rpbmc6XihOU1VJbnRlZ2VyIHJlc3VsdCkgeworICAgICAgICBkb25lID0gdHJ1ZTsK
KyAgICAgICAgY291bnQgPSByZXN1bHQ7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKIC0gKE5TU3RyaW5nICopY29u
dGVudHNBc1N0cmluZwogewogICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>