<?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>109239</bug_id>
          
          <creation_ts>2013-02-07 16:17:20 -0800</creation_ts>
          <short_desc>Move workerThreadCount from TestRunner to WebCore Internals</short_desc>
          <delta_ts>2013-02-08 21:19:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jochen</cc>
    
    <cc>mifenton</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>827972</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-07 16:17:20 -0800</bug_when>
    <thetext>Move workerThreadCount from TestRunner to WebCore Internals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827978</commentid>
    <comment_count>1</comment_count>
      <attachid>187193</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-07 16:20:17 -0800</bug_when>
    <thetext>Created attachment 187193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828055</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-07 17:37:22 -0800</bug_when>
    <thetext>Damn, why does it always have to be GTK :( :(

I&apos;ll add the symbol before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828095</commentid>
    <comment_count>3</comment_count>
      <attachid>187193</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-02-07 18:54:33 -0800</bug_when>
    <thetext>Comment on attachment 187193
Patch

Attachment 187193 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/16427430</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828133</commentid>
    <comment_count>4</comment_count>
      <attachid>187193</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-07 20:16:46 -0800</bug_when>
    <thetext>Comment on attachment 187193
Patch

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

Please check into the GTK build failure before landing.

&gt; Source/WebCore/testing/Internals.h:209
&gt; +    unsigned long workerThreadCount() const;

IDL unsigned long is equivalent to C++ unsigned, just as IDL long is equivalent to C++ int. It’s incorrect to use unsigned long here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828308</commentid>
    <comment_count>5</comment_count>
      <attachid>187193</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 01:01:42 -0800</bug_when>
    <thetext>Comment on attachment 187193
Patch

Attachment 187193 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16427530</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828332</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 01:45:49 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/testing/Internals.h:209
&gt; &gt; +    unsigned long workerThreadCount() const;
&gt; 
&gt; IDL unsigned long is equivalent to C++ unsigned, just as IDL long is equivalent to C++ int. It’s incorrect to use unsigned long here.

Good catch! An unfortunate copy-paste.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828334</commentid>
    <comment_count>7</comment_count>
      <attachid>187268</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 01:48:03 -0800</bug_when>
    <thetext>Created attachment 187268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828340</commentid>
    <comment_count>8</comment_count>
      <attachid>187268</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-08 01:56:30 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16445616</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828341</commentid>
    <comment_count>9</comment_count>
      <attachid>187268</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 01:56:54 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16428580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828343</commentid>
    <comment_count>10</comment_count>
      <attachid>187268</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 01:59:05 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16453015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828345</commentid>
    <comment_count>11</comment_count>
      <attachid>187268</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-08 02:00:16 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16435551</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828346</commentid>
    <comment_count>12</comment_count>
      <attachid>187268</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-08 02:03:35 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16408680</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828349</commentid>
    <comment_count>13</comment_count>
      <attachid>187268</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 02:08:04 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16415673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828352</commentid>
    <comment_count>14</comment_count>
      <attachid>187268</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-08 02:12:50 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16443527</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828354</commentid>
    <comment_count>15</comment_count>
      <attachid>187268</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 02:14:43 -0800</bug_when>
    <thetext>Comment on attachment 187268
Patch

Attachment 187268 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16432580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828717</commentid>
    <comment_count>16</comment_count>
      <attachid>187348</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 12:28:39 -0800</bug_when>
    <thetext>Created attachment 187348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828922</commentid>
    <comment_count>17</comment_count>
      <attachid>187348</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 21:19:22 -0800</bug_when>
    <thetext>Comment on attachment 187348
Patch

Clearing flags on attachment: 187348

Committed r142348: &lt;http://trac.webkit.org/changeset/142348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828923</commentid>
    <comment_count>18</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 21:19:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187193</attachid>
            <date>2013-02-07 16:20:17 -0800</date>
            <delta_ts>2013-02-08 01:47:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109239-20130207161652.patch</filename>
            <type>text/plain</type>
            <size>46916</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE3MTRkM2IxNTc1Nzk0
OWE0OTQ3ZGFmZmE1MDQ5ZTljZjExNDQ3Zi4uM2U2ZGVmNzJhOGFjYmYwNjVhODkzNDM4Y2JmYWQy
YjJhOGZjOWI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEzLTAyLTA3ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCisgICAgICAgIE1vdmUgd29ya2Vy
VGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIG5ldyByZWFk
LW9ubHkgcHJvcGVydHkgd29ya2VyVGhyZWFkQ291bnQuCisKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndvcmtlclRocmVhZENv
dW50KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmlkbDoKKworMjAxMy0wMi0wNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWlu
QGFwcGxlLmNvbT4KKwogICAgICAgICBGaXggdHdvIGV4cG9ydHMgb2YgV2ViQ29yZSBzeW1ib2xz
IG9uIGlPUwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5MjM4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNTk3ODE3NTZkZjYwMDllZmRmNDczYmU5ODQ5YzIzNDMwOTEy
ZjRkNS4uNDI5ZWQyMjBmNGZkY2FjYzlmNGIxODQxYTcwYzA5MDcxNjU0OWM3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0wNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWlu
QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1
bm5lciB0byBXZWJDb3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAxMy0wMi0wNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQuIFRvdWNodXBzIHRvIFZTMjAxMCBXZWJLaXQgc29sdXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKaW5kZXggZTAxMzdkNjI3NWIxM2Y0Njc4Yzg4NDAyNjc3MGRiOTQ5MDhiNDUzMS4uNDVh
NmRkM2MxZjY4YmIzZThlZDFmYTczYjE3MzBjMTEyMTQ2YTUxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgogCisgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVu
bmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
Lmg6CisKKzIwMTMtMDItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+
CisKICAgICAgICAgTW92ZSBwYXVzZUFuaW1hdGlvbi9wYXVzZVRyYW5zaXRpb24gZnJvbSBUZXN0
UnVubmVyIHRvIEludGVybmFscwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA5MTA3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAxOGFjN2E4NDE1ZmQ4NDU1
NzYxYzgwZWU4OTFjZDNlMWQ0OGM1OWU5Li44ZGFjNjM3ZDE2M2FmYzRhNGQ3ZTE1MWU3MzYxZmU4
M2RiN2E1ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMDcg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB3
b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ayk6CisKIDIwMTMtMDItMDcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIENsZWFudXAgY29tbWFuZC1saW5lIGRlZmluZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxN2UxMjc5MGYxZDA3ZTYyYjU4NWI3NDE3N2UzODg2NGYzNjI4
OWQzLi42MWI0OTY0ZmVhYjhiMzNiY2MzYWYzMWM3M2UxZmVkNmJlMzgwNjkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTMtMDItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9t
IFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2YgV2ViV29ya2Vyc1ByaXZhdGUsIHdo
aWNoIHdhcyBvbmx5IG5lZWRlZCBmb3IgRFJULgorCisgICAgICAgICogV2ViS2l0LmV4cDoKKyAg
ICAgICAgKiBXb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICog
V29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5tbTogUmVtb3ZlZC4KKworMjAxMy0wMi0wNyAgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKwogICAgICAgICBNb3ZlIHBhdXNl
QW5pbWF0aW9uL3BhdXNlVHJhbnNpdGlvbiBmcm9tIFRlc3RSdW5uZXIgdG8gSW50ZXJuYWxzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkxMDcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwppbmRleCAxMjA2NDg3MzA5M2YzZDVlODc5YjRjNTA1YjBhZjA0YjRiNzRiNGJk
Li5mMDMxMDc0YjU3ZDQ0MTZmYjE2NjEyOGY0ZjdhOTZlYzMzMzNiZWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxh
aW5AYXBwbGUuY29tPgogCisgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0
UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oOgorCisyMDEzLTAyLTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgorCiAgICAgICAgIE1vdmUgcGF1c2VBbmltYXRpb24vcGF1c2VUcmFuc2l0aW9uIGZyb20gVGVz
dFJ1bm5lciB0byBJbnRlcm5hbHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTEwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWI0YzMzOWI4ZTE3MTU3YTcyNTZj
ZTViMjY5Mjc3NDllZmMxNmRhMS4uN2Q5NWFkYjllZmJjYTNkMWZlODE2YTUzZWE2N2Q0MWJkNmI1
NDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAyLTA3ICBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29ya2VyVGhyZWFk
Q291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6IFJlbW92ZSBhIHVzZWxl
c3MgI2luY2x1ZGUuCisKIDIwMTMtMDItMDcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIENsZWFudXAgY29tbWFuZC1saW5lIGRlZmluZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBhZDRkZDlkYjgxNTI1MjQ2YzEy
Yjk5YWJkMWI3NzQ3YTViNTE4YzlkLi4wNThiMGI5OTFiZjY5Y2NmNGE2MDQ3M2RkNjE5ODI1YzZj
YmU4YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04Nyw2ICs4Nyw3
IEBACiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiVHlwZUNvbnZlcnNpb25zLmgi
CiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KIAogI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQpAQCAtMjc4LDYgKzI3OSwxNSBAQCBJbnRlcm5hbFNldHRpbmdzKiBJbnRl
cm5hbHM6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gSW50ZXJuYWxTZXR0aW5nczo6ZnJv
bShwYWdlKTsKIH0KIAordW5zaWduZWQgbG9uZyBJbnRlcm5hbHM6OndvcmtlclRocmVhZENvdW50
KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoV09SS0VSUykKKyAgICByZXR1cm4gV29ya2VyVGhyZWFk
Ojp3b3JrZXJUaHJlYWRDb3VudCgpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
CiBTdHJpbmcgSW50ZXJuYWxzOjphZGRyZXNzKE5vZGUqIG5vZGUpCiB7CiAgICAgY2hhciBidWZb
MzJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNjQ2YjE1NTlmODNmMzI0M2Zm
ZTZiNjJlNDFhYzQyOWJhY2U4MTE3MS4uODBhMWY0MjY2MTkwOGExMjU4N2Q5MmMzMjhlODAzOWZm
OGYwN2Y5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yMDYsNiArMjA2LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogICAgIElu
dGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyB3b3Jr
ZXJUaHJlYWRDb3VudCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRCYXR0ZXJ5U3RhdHVzKERvY3Vt
ZW50KiwgY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2hhcmdpbmcsIGRvdWJsZSBjaGFy
Z2luZ1RpbWUsIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGRvdWJsZSBsZXZlbCwgRXhjZXB0aW9u
Q29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYTUwYjc5Y2U1
YzZiNGFjNzc5M2Q4ODdiMjU2MmY1ZjU4M2RhZjQ1NS4uY2MxNDE0N2U0ZmZiNjg5MDBlMDQwNzMx
ODU5ZWI2MTU1OTM3ZGEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
MTcyLDYgKzE3Miw3IEBACiAgICAgYm9vbGVhbiBpc1BhZ2VCb3hWaXNpYmxlKGluIERvY3VtZW50
IGRvY3VtZW50LCBpbiBsb25nIHBhZ2VOdW1iZXIpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdvcmtlclRocmVhZENvdW50OwogCiAgICAg
Ly8gRmxhZ3MgZm9yIGxheWVyVHJlZUFzVGV4dC4KICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBM
QVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzA4Y2NjM2ZjZjY1YjI5NzBh
YmExOWZlNTQ0NGE0OGM1YjkzZjA5Ny4uYjYzODkzZTg2YjIwNWY0ZDExYTMwNTBkOWQ1NzI3ZDg5
Yzg3MGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04NSw4ICs4NSw2IEBACiAJCTNBQkIzQzdBMTMwOUMzQjUwMEU5M0Q5NCAvKiBX
ZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gM0FCQjNDNzgxMzA5QzNCNTAwRTkzRDk0IC8qIFdlYlN0b3JhZ2VUcmFj
a2VyQ2xpZW50LmggKi87IH07CiAJCTNBQkIzQzdCMTMwOUMzQjUwMEU5M0Q5NCAvKiBXZWJTdG9y
YWdlVHJhY2tlckNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNBQkIzQzc5MTMwOUMzQjUwMEU5M0Q5NCAvKiBXZWJTdG9yYWdlVHJhY2tlckNs
aWVudC5tbSAqLzsgfTsKIAkJM0FFMTVENTAxMkRCREVENDAwOTMyM0M4IC8qIFdlYlN0b3JhZ2VN
YW5hZ2VySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNBRTE1RDRGMTJEQkRFRDQwMDkzMjNDOCAvKiBXZWJTdG9yYWdlTWFuYWdlckludGVy
bmFsLmggKi87IH07Ci0JCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFG
NDQ4NEQxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDFGNDQ4NTAxMDMzOEU4QzAw
MzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNDQ4NEUxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtl
cnNQcml2YXRlLm1tICovOyB9OwogCQk0NEJCOEIxNDEyNDFBMDIyMDAxRTNBMjIgLyogV2ViQXJj
aGl2ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NEJCOEIxMzEyNDFBMDIyMDAxRTNBMjIgLyogV2ViQXJjaGl2ZUludGVybmFsLmggKi87
IH07CiAJCTRCRjk5RjkwMEFFMDUwQkMwMDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRjk5RjhFMEFFMDUw
QkMwMDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OwogCQk0QkY5OUY5MTBBRTA1MEJDMDA4MTVDMkIgLyogV2ViRWRpdG9yQ2xp
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJG
OTlGOEYwQUUwNTBCQzAwODE1QzJCIC8qIFdlYkVkaXRvckNsaWVudC5tbSAqLzsgfTsKQEAgLTQ4
MSw4ICs0NzksNiBAQAogCQkzQUJCM0M3ODEzMDlDM0I1MDBFOTNEOTQgLyogV2ViU3RvcmFnZVRy
YWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3RvcmFn
ZVRyYWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0FCQjNDNzkx
MzA5QzNCNTAwRTkzRDk0IC8qIFdlYlN0b3JhZ2VUcmFja2VyQ2xpZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNBRTE1RDRGMTJEQkRFRDQwMDkzMjNDOCAv
KiBXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlN0b3JhZ2VNYW5hZ2VySW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDFGNDQ4NEQxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYldvcmtlcnNQcml2YXRlLmg7IHBh
dGggPSBtYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MUY0NDg0RTEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJXb3JrZXJzUHJp
dmF0ZS5tbTsgcGF0aCA9IG1hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NDkwOThCOTBGOEY4MkRGMDA3NkEzMjcgLyogRmVhdHVy
ZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVy
ZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0QkI4QjEz
MTI0MUEwMjIwMDFFM0EyMiAvKiBXZWJBcmNoaXZlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXJjaGl2ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRCRjk5RjhFMEFFMDUwQkMwMDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVkaXRvckNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODAxLDcgKzc5Nyw2IEBACiAJCQkJRjVCMzZC
NDAwMjgxREU4NzAxODYzNUNCIC8qIFdlYkNvcmVTdXBwb3J0ICovLAogCQkJCTlDN0NBQkJCMDE5
MEEzN0MwRUNBMTZFQSAvKiBXZWJWaWV3ICovLAogCQkJCTFDNjhGNjNGMDk1QjVGOUMwMEMyOTg0
RSAvKiBXZWJJbnNwZWN0b3IgKi8sCi0JCQkJNDFGNDQ4NEMxMDMzOEU1NzAwMzBFNTVFIC8qIFdv
cmtlcnMgKi8sCiAJCQkJRjdFQkVFNTkwM0Y5REIyMjAzQ0EwREU2IC8qIENhcmJvbiAqLywKIAkJ
CQkwODlDMTY2NUZFODQxMTU4QzAyQUFDMDcgLyogUmVzb3VyY2VzICovLAogCQkJCTA4NjdENjlB
RkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8sCkBAIC0xMDMz
LDE1ICsxMDI4LDYgQEAKIAkJCXRhYldpZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsK
LQkJNDFGNDQ4NEMxMDMzOEU1NzAwMzBFNTVFIC8qIFdvcmtlcnMgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQxRjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAv
KiBXZWJXb3JrZXJzUHJpdmF0ZS5oICovLAotCQkJCTQxRjQ0ODRFMTAzMzhFOEMwMDMwRTU1RSAv
KiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSAqLywKLQkJCSk7Ci0JCQluYW1lID0gV29ya2VyczsKLQkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTUxMUYzRkMzMENFQ0M3RTIwMDg1MjU2
NSAvKiBTdG9yYWdlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTE2MjgsNyArMTYxNCw2IEBACiAJCQkJQkMyRTQ2NEQwRkQ4QTk2ODAwQTlEOURFIC8qIFdl
YlZpZXdEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTA5QjA4MjRCRjAxMDA4REYwMzgg
LyogV2ViVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTA3MTA4MjRCRjAx
MDA4REYwMzggLyogV2ViVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxRjQ0ODRG
MTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMDAyLDcgKzE5ODcsNiBAQAogCQkJCUMwQzVCM0VGMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTEwNzA4MjRC
RjAxMDA4REYwMzggLyogV2ViVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMkU0NjRFMEZE
OEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTQxRjQ0
ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggNDhiY2YxZTZmZDJhYzllOWI5Yzg0MGNk
NTJhZjFlNWYzNmNjNWRhNC4uOGJiNDg2ZGFkOWMzNzhmZDYzY2ViYTU1ZTQwMmZhNjAzMDIzNjJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC01OCw3ICs1OCw2IEBACiAjaW5jbHVk
ZSA8VGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8YmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg+
CiAjaW5jbHVkZSA8aGlzdG9yeS9IaXN0b3J5SXRlbS5oPgotI2luY2x1ZGUgPHdvcmtlcnMvV29y
a2VyVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KIApAQCAtNDM5LDE1ICs0MzgsNiBAQCBzaXplX3QgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpqYXZhU2NyaXB0T2JqZWN0c0NvdW50KCkKICAgICByZXR1cm4gV2ViQ29yZTo6
SlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLm9iamVjdENvdW50KCk7CiB9
CiAKLXVuc2lnbmVkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6d29ya2VyVGhyZWFkQ291bnQo
KQotewotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHJldHVybiBXZWJDb3JlOjpXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19
Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKIHsKICAgICBXZWJDb3JlOjptZW1vcnlDYWNo
ZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGludGVydmFsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmgKaW5kZXggNjJkYTU3Y2M3ZjZiMzVlMGI3NDU3MWQ2NDdmNmY3NWExNDEy
NDUwZC4uZTkyNTA1NzkyYmZhNWNlZTQ3MDQ3OWI4ZjNjMGQyM2Y3MjRhYzQ4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmgKQEAgLTk1LDcgKzk1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CiAgICAgc3RhdGljIHZvaWQgZ2FyYmFnZUNvbGxl
Y3RvckNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZChib29sIHdhaXRVbnRpbERvbmUpOwogICAgIHN0
YXRpYyBzaXplX3QgamF2YVNjcmlwdE9iamVjdHNDb3VudCgpOwotICAgIHN0YXRpYyB1bnNpZ25l
ZCB3b3JrZXJUaHJlYWRDb3VudCgpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0RGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbChkb3VibGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApp
bmRleCA5MjM0MDdiZmY5MzdiMjI0ODFhODQyMWYzN2M3NTU1ZGI2MDIwZjVmLi5iYzEzYWZhYjRm
YTE4YWI4YmU2MTk1YmVjMjEwYzYyMGQxZjg4ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHAKQEAgLTY4LDcgKzY4LDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmgiCi0j
aW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1l
cHJpdmF0ZS5oIgpAQCAtNTMyLDE1ICs1MzEsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6Y2xlYXJPcGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogICAgICAgICBjb3JlRnJh
bWUtPmxvYWRlcigpLT5zZXRPcGVuZXIoMCk7CiB9CiAKLXVuc2lnbmVkIGludCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OndvcmtlclRocmVhZENvdW50KCkKLXsKLSNpZiBFTkFCTEUoV09SS0VS
UykKLSAgICByZXR1cm4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgp
OwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCiBib29sIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6ZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hh
ciogdGFyZ2V0U3RyaW5nLCBXZWJLaXRGaW5kT3B0aW9ucyBmaW5kT3B0aW9ucykKIHsKICAgICBy
ZXR1cm4gY29yZSh3ZWJWaWV3KS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRhcmdldFN0
cmluZyksIGZpbmRPcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggZDEyYmJkNDc3
YmYxM2ZmZjAyMDdlMTk4YTczMWRkNjUzN2M5Y2E3Yi4uNDdlY2E3YTNkNmJhYjc5MjA2MDNmMzA3
YTdkODE3YWI4ODExMWFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTEwNSw3ICsxMDUs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihj
b25zdCBnY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBnY2hhciogZGVzdGluYXRpb25Qcm90b2Nv
bCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdp
bihjb25zdCBjaGFyKiBzb3VyY2VPcmlnaW4sIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiAgICAgc3RhdGljIHZvaWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCk7
Ci0gICAgc3RhdGljIHVuc2lnbmVkIGludCB3b3JrZXJUaHJlYWRDb3VudCgpOwogCiAgICAgc3Rh
dGljIHZvaWQgcmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2ViVmlldyopOwogICAg
IHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oV2ViS2l0V2ViVmlldyos
IGJvb2wgYWxsb3dlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQuZXhw
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0LmV4cAppbmRleCAwNWNiMzI3OWRkZDI5N2M2YmJj
ZTBiMmFjMGY4ZWI4OTRmZTY2MDBjLi5hZmExNjk0M2Q3ZGJjNGUxN2QyN2RiNmVlMTUxODkyZjQx
OWEyZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQuZXhwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAKQEAgLTQwLDcgKzQwLDYgQEAKIC5vYmpjX2NsYXNz
X25hbWVfV2ViVVJMc1dpdGhUaXRsZXMKIC5vYmpjX2NsYXNzX25hbWVfV2ViVXNlckNvbnRlbnRV
UkxQYXR0ZXJuCiAub2JqY19jbGFzc19uYW1lX1dlYlZpZXcKLS5vYmpjX2NsYXNzX25hbWVfV2Vi
V29ya2Vyc1ByaXZhdGUKIF9ISVdlYlZpZXdDcmVhdGUKIF9ISVdlYlZpZXdHZXRXZWJWaWV3CiBf
V2ViQWN0aW9uQnV0dG9uS2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Xb3JrZXJz
L1dlYldvcmtlcnNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtl
cnNQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZjYwZDVkZWQ5OTcy
YmNjMmQ5Y2I5MGQ1YTc3NGQ5NDk5OTAzNDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJp
dmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLUBpbnRlcmZhY2UgV2ViV29ya2Vy
c1ByaXZhdGUgOiBOU09iamVjdCB7Ci19Ci0KLS8vIFJldHVybnMgdGhlIHRvdGFsIG51bWJlciBv
ZiBjdXJyZW50bHkgZXhlY3V0aW5nIHdvcmtlciB0aHJlYWRzIChzaGFyZWQgKyBkZWRpY2F0ZWQp
LgotKyAodW5zaWduZWQpIHdvcmtlclRocmVhZENvdW50OwotCi1AZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5tbQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTZlYThjMDUxYjg4NzU2NWM1YzA0ZTM3YmM5NWE3ZjFkYjBmNzYxNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgIldlYldvcmtlcnNQcml2YXRlLmgiCi0KLSNpbXBvcnQgPFdlYkNvcmUv
V29ya2VyVGhyZWFkLmg+Ci0KLUBpbXBsZW1lbnRhdGlvbiBXZWJXb3JrZXJzUHJpdmF0ZQotCi0r
ICh1bnNpZ25lZCkgd29ya2VyVGhyZWFkQ291bnQKLXsKLSNpZiBkZWZpbmVkKEVOQUJMRV9XT1JL
RVJTKSAmJiBFTkFCTEVfV09SS0VSUwotICAgIHJldHVybiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0K
LUBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNWFiOTQyZjRlNmViM2U3ZTI1NTUxNzE3
NzgzYjU1ODM2ZWZiY2Y0OS4uMGI3ODU2YTIzZDM5MjNhYzUwNmQ4OWQ1N2IxM2VhMzc1M2MyOGEx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTc3LDcgKzc3LDYgQEAKICNpbmNsdWRlICJU
ZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUaGlyZFBhcnR5Q29va2llc1F0LmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCi0jaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5j
bHVkZSAicXRfcnVudGltZS5oIgogI2luY2x1ZGUgInF3ZWJlbGVtZW50LmgiCiAjaW5jbHVkZSAi
cXdlYmhpc3RvcnkuaCIKQEAgLTIwOSwxNSArMjA4LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6b3ZlcndyaXRlUGx1Z2luRGlyZWN0b3JpZXMoKQogICAgIGRiLT5yZWZyZXNoKCk7
CiB9CiAKLWludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d29ya2VyVGhyZWFkQ291bnQoKQot
ewotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHJldHVybiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0K
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldER1bXBSZW5kZXJUcmVlTW9kZUVuYWJs
ZWQoYm9vbCBiKQogewogICAgIFFXZWJQYWdlQWRhcHRlcjo6ZHJ0UnVuID0gYjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaAppbmRleCAyZDZhODg2NzZjNjRiN2UwYmRmODM1NmJjZDc1YmY5N2M0NWU4NGVjLi41
MWI4NWExNTJlZmRjOTIyYzdjODAyNjZiNzMzMmNiOTRjNTNkZTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oCkBAIC0xMzksOCArMTM5LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihRV2ViUGFnZUFkYXB0ZXIqLCBjb25z
dCBRU3RyaW5nJiBtZXNzYWdlKTsKICAgICBzdGF0aWMgaW50IG51bWJlck9mUGVuZGluZ0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFFXZWJQYWdlQWRhcHRlciopOwogCi0gICAgc3RhdGlj
IGludCB3b3JrZXJUaHJlYWRDb3VudCgpOwotCiAgICAgc3RhdGljIFFTdHJpbmcgbWFya2VyVGV4
dEZvckxpc3RJdGVtKGNvbnN0IFFXZWJFbGVtZW50JiBsaXN0SXRlbSk7CiAgICAgc3RhdGljIFFW
YXJpYW50TWFwIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhjb25zdCBRV2ViRWxl
bWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IDFjYWRkZTAxY2U3ZjM4N2ZmODY3
ZDMwNzRhZWUxMzRiZDcyY2RlY2IuLmNlODZhNDU4ZWM2Y2U1M2QxOWI3YjkzYmMxMWEzZmJkMzg2
ZTJlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0zMDAsMTIgKzMwMCw2IEBAIGJvb2wg
V0tCdW5kbGVJc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZShXS0J1bmRsZVJlZikKICAgICByZXR1cm4g
SW5qZWN0ZWRCdW5kbGU6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKLXNpemVfdCBX
S0J1bmRsZUdldFdvcmtlclRocmVhZENvdW50KFdLQnVuZGxlUmVmKQotewotICAgIC8vIEFjdHVh
bGx5IGRvIG5vdCBuZWVkIGFyZ3VtZW50IGhlcmUsIGtlZXBpbmcgaXQgaG93ZXZlciBmb3IgY29u
c2lzdGVuY3kuCi0gICAgcmV0dXJuIEluamVjdGVkQnVuZGxlOjp3b3JrZXJUaHJlYWRDb3VudCgp
OwotfQotCiB2b2lkIFdLQnVuZGxlU2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihXS0J1bmRsZVJl
ZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tTdHJpbmdS
ZWYgbG9jYXRpb24pCiB7CiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24odG9JbXBsKHBhZ2VHcm91cFJlZiksIHRvV1RGU3RyaW5nKGxvY2F0aW9uKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAppbmRleCA5MmVmNGRiNDk5YmQ3MWYyYThhNmUx
MDY1NjY3NGIyZmYyYTc3MGIyLi4yM2U4NDA5MjA2ZjZiNmUwMThjNmFhNmYyZjUzYjRjNzU5Zjk2
OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKQEAgLTk4LDggKzk4LDYgQEAg
V0tfRVhQT1JUIHNpemVfdCBXS0J1bmRsZUdldEphdmFTY3JpcHRPYmplY3RzQ291bnQoV0tCdW5k
bGVSZWYgYnVuZGxlKTsKIAogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVJc1Byb2Nlc3NpbmdVc2Vy
R2VzdHVyZShXS0J1bmRsZVJlZiBidW5kbGUpOwogCi1XS19FWFBPUlQgc2l6ZV90IFdLQnVuZGxl
R2V0V29ya2VyVGhyZWFkQ291bnQoV0tCdW5kbGVSZWYgYnVuZGxlKTsKLQogV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVTZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoV0tCdW5kbGVSZWYgYnVu
ZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlU2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoV0tCdW5kbGVSZWYgYnVuZGxlLCBib29s
IGVuYWJsZWQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRTaGFkb3dET01FbmFibGVkKFdL
QnVuZGxlUmVmIGJ1bmRsZSwgYm9vbCBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5k
ZXggMTIyYjliOTc2YWU0YjIzMDM3ZjhiNWNiMmQ5MWY2OTA4MmIyMmJlOS4uYTUzNzljZjJmYTc5
M2JhZmQ2ZmQ3NTE2MWU4NjJjYjQwMGVhOGM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAg
LTY5LDcgKzY5LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duQXJyYXlQdHIuaD4KIApA
QCAtNTc5LDE1ICs1NzgsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2Fn
ZVRvUGFnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgIG1fY2xpZW50
LmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKHRoaXMsIHBhZ2UsIG1lc3NhZ2VOYW1lLCBtZXNzYWdl
Qm9keSk7CiB9CiAKLXNpemVfdCBJbmplY3RlZEJ1bmRsZTo6d29ya2VyVGhyZWFkQ291bnQoKQot
ewotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHJldHVybiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0K
IHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFnZUdy
b3VwUHJveHkqIHBhZ2VHcm91cCwgY29uc3QgU3RyaW5nJiBsb2NhdGlvbikKIHsKICAgICBjb25z
dCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAt
PmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggYmQxMDk1OTI3
NTBhNzkzODczMjljMGM1NmY5YTMwMDViYmMwMmM0MS4uY2U0YmZkMTU0YWRhMGE4N2ExNWU2NGEw
MzFkZjBhZDZkZjY2NTVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTY4LDggKzE2OCw2IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiAK
LSAgICBzdGF0aWMgc2l6ZV90IHdvcmtlclRocmVhZENvdW50KCk7Ci0KICAgICB2b2lkIHNldFRh
YktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhXZWJQYWdlKiwgYm9vbCBlbmFibGVkKTsKICAgICB2
b2lkIHNldFNlcmlhbExvYWRpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2hhZG93RE9N
RW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCmluZGV4IDYwMmJlYzlkMjNhN2U1NDMyNTA4YTk5ZWE3N2EyMTE0MWNjOGM1Yjku
LjRmZTMxN2VmNzYyM2E4NmJmZTM0MzYwNWVkZDBkOTY2ZWJkYzAwZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNDIsNyArNDIsNiBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVS
ZWYuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbkNvbnRyb2xsZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZTdmMzFiODIz
ZGI5NWUwN2UxYzkzMzY1ZDVkNDg5NjkwNDYzMTliLi5hNmI5MTVmZTYyZjY0ZDVkYWI0Mjg4ODYz
YmM1OTNiYzI0NDc5M2Y2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMtMDItMDcgIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBm
cm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNWYWx1ZXMpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVu
bmVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5t
bToKKyAgICAgICAgKFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvVGVzdFJ1bm5lclF0Lmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisKIDIwMTMtMDItMDcg
IFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LiBBbm90aGVyIHRlbXBvcmFyeSBFV1MgYm90IGZpeC4gSXQnbGwgdG90YWxseSB3b3JrIHRoaXMg
dGltZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYjMyOWYxNGVkOWIxNDcw
OTk2MmYyZTgxZWU0ODJiMzhlNGQxOTU3Zi4uYzgxN2Q1MjMwYzQ0OGE3YTFkZDdkNzQzOWFiMTJh
YTNhMDg5ZDM0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE5MzIsMTIg
KzE5MzIsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UgogICAgIHJldHVybiBKU1ZhbHVlTWFr
ZU51bWJlcihjb250ZXh0LCBjb250cm9sbGVyLT53ZWJIaXN0b3J5SXRlbUNvdW50KCkpOwogfQog
Ci1zdGF0aWMgSlNWYWx1ZVJlZiBnZXRXb3JrZXJUaHJlYWRDb3VudENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBUZXN0UnVubmVyKiBjb250cm9s
bGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2Jq
ZWN0KSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNvbnRyb2xsZXIt
PndvcmtlclRocmVhZENvdW50KCkpOwotfQotCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldFBsYXRmb3JtTmFt
ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBK
U1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKQEAgLTIx
MjcsNyArMjEyMSw2IEBAIEpTU3RhdGljVmFsdWUqIFRlc3RSdW5uZXI6OnN0YXRpY1ZhbHVlcygp
CiAgICAgc3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGljVmFsdWVzW10gPSB7CiAgICAgICAgIHsg
Imdsb2JhbEZsYWciLCBnZXRHbG9iYWxGbGFnQ2FsbGJhY2ssIHNldEdsb2JhbEZsYWdDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCiAgICAgICAgIHsgIndlYkhpc3RvcnlJdGVt
Q291bnQiLCBnZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAg
ICAgeyAid29ya2VyVGhyZWFkQ291bnQiLCBnZXRXb3JrZXJUaHJlYWRDb3VudENhbGxiYWNrLCAw
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdJTikKICAgICAgICAgeyAicGxhdGZvcm1OYW1lIiwgZ2V0UGxhdGZvcm1OYW1lQ2FsbGJhY2ss
IDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGU4YjJj
NjJmMzdjYzA1MGIxYWFhZTRiYmMyNzFlZTBiODc0Nzk2YjMuLmFhNGFhYzIxYTBjZDExN2RhY2M0
NTU4ZWQzYmNkOGIzNTgzYTc1YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTEy
NSw3ICsxMjUsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgp
OwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50KCk7Ci0gICAgdW5zaWduZWQgd29ya2Vy
VGhyZWFkQ291bnQoKSBjb25zdDsKICAgICBpbnQgd2luZG93Q291bnQoKTsKICAgICAKICNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5
LmNwcAppbmRleCA0ZDU4Y2M0MTcyYWRkODg5NzExYWE0MWQ1OTA0NzAxZWNiMzgwOGI1Li42YmNl
ZmU1ZGFiNDViNjQwOWIxYzUyYzU1NzE0MDY4YzAzODE1Y2ZmIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApA
QCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya1F1
ZXVlLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlSXRlbS5oIgotI2luY2x1ZGUgIldvcmtlclRocmVh
ZC5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFNo
YXJlZFBvaW50ZXIuaD4KQEAgLTM0MSwxNSArMzQwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRX
aW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXVuc2lnbmVkIFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KCkgY29uc3QKLXsKLSNpZiBF
TkFCTEVfV09SS0VSUwotICAgIHJldHVybiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRo
cmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KIHZvaWQgVGVz
dFJ1bm5lcjo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAxZWE4ZDA2ZjA1OGM1ODA1MzhmZWY5NjgwMDMw
MzY4OGY0YzQ1YzJlLi41NTZjNjE0ZTgzZjhlNzY1ZTRiZTBhNDM3NTI1NGI0ZjE0NmIzZThiIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgIldlYlRh
c2suaCIKICNpbmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKICNpbmNsdWRlICJXZWJWaWV3Lmgi
Ci0jaW5jbHVkZSAiV2ViV29ya2VySW5mby5oIgogI2luY2x1ZGUgInY4L2luY2x1ZGUvdjguaCIK
ICNpbmNsdWRlIDxwdWJsaWMvV2ViRGF0YS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJQb2ludC5o
PgpAQCAtMzA5LDcgKzMwOCw2IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgIGJpbmRN
ZXRob2QoImRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiIsICZUZXN0UnVubmVyOjpkaXNwbGF5SW52
YWxpZGF0ZWRSZWdpb24pOwogCiAgICAgLy8gUHJvcGVydGllcy4KLSAgICBiaW5kUHJvcGVydHko
IndvcmtlclRocmVhZENvdW50IiwgJlRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KTsKICAg
ICBiaW5kUHJvcGVydHkoImdsb2JhbEZsYWciLCAmbV9nbG9iYWxGbGFnKTsKICAgICBiaW5kUHJv
cGVydHkoInRpdGxlVGV4dERpcmVjdGlvbiIsICZtX3RpdGxlVGV4dERpcmVjdGlvbik7CiAgICAg
YmluZFByb3BlcnR5KCJwbGF0Zm9ybU5hbWUiLCAmbV9wbGF0Zm9ybU5hbWUpOwpAQCAtMjAwMCwx
MSArMTk5OCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFuCiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoQ3BwVmFyaWFudCog
cmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0KHN0YXRpY19jYXN0PGludD4oV2ViV29ya2VySW5m
bzo6ZGVkaWNhdGVkV29ya2VyQ291bnQoKSkpOwotfQotCiAvLyBOZWVkIHRoZXNlIGNvbnZlcnNp
b25zIGJlY2F1c2UgdGhlIGZvcm1hdCBvZiB0aGUgdmFsdWUgZm9yIGJvb2xlYW5zCiAvLyBtYXkg
dmFyeSAtIGZvciBleGFtcGxlLCBvbiBtYWMgIjEiIGFuZCAiMCIgYXJlIHVzZWQgZm9yIGJvb2xl
YW4uCiBib29sIFRlc3RSdW5uZXI6OmNwcFZhcmlhbnRUb0Jvb2woY29uc3QgQ3BwVmFyaWFudCYg
dmFsdWUpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMjMwNzNlMzg1NTQwNmE0MGVmZjJlOWUzNjJi
ZmRhYTNlZTI0YjJmMS4uODBlOTFmOTY3ODM0NDhhZjcwZWE5NWZkYWFhMmZmM2VmNDgzNDkzMyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtNDg3LDEwICs0ODcsNiBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlzcGxheShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogCi0gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gICAgLy8gUHJvcGVydGllcwotICAg
IHZvaWQgd29ya2VyVGhyZWFkQ291bnQoQ3BwVmFyaWFudCopOwotCiAgICAgLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KICAgICAvLyBGYWxsYmFjayBhbmQgc3R1YiBtZXRob2RzCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAppbmRleCAzMGNlYTI0ZmI0ZWY5OGM5NWM1ZDRi
ZTE1NmQyMTViZDM5YzE4OTRkLi41ODBjNTAwZGU5NmQyYzM3Y2IxNzg2NmVkNmY2ODUyZWFkYmY3
MWFiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0x
MjYsMTEgKzEyNiw2IEBAIHNpemVfdCBUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50KCkK
ICAgICByZXR1cm4gZXdrX2hpc3RvcnlfYmFja19saXN0X2xlbmd0aChoaXN0b3J5KSArIGV3a19o
aXN0b3J5X2ZvcndhcmRfbGlzdF9sZW5ndGgoaGlzdG9yeSk7CiB9CiAKLXVuc2lnbmVkIFRlc3RS
dW5uZXI6OndvcmtlclRocmVhZENvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjp3b3JrZXJUaHJlYWRDb3VudCgpOwotfQotCiB2b2lkIFRlc3RSdW5u
ZXI6Om5vdGlmeURvbmUoKQogewogICAgIGlmIChtX3dhaXRUb0R1bXAgJiYgIXRvcExvYWRpbmdG
cmFtZSAmJiAhV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCAyMjFkZTBhNzY5NjA1NjUzMzZkNDU1ZTRj
ODM1NDExYTJlMzRmNzQzLi5hMjM3M2I2NGZmYTViYTQxYjgxY2I5ZGNiNDRkMmJkMDA2MDYxMDMw
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0xMjcs
MTEgKzEyNyw2IEBAIHNpemVfdCBUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50KCkKICAg
ICAgICAgICAgIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGVuZ3Ro
KGxpc3QpOwogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6d29ya2VyVGhyZWFk
Q291bnQoKTsKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRm
b3JtTmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3Jt
TmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImd0ayIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggODY0ZWRhODViYjU5YWNj
NWZmMGI3ZmRhNjA2NDFlYjZmODM4ZDM0NS4uN2Q2MmI4ZmE1MWZkZjQ4OTBkZjJmZGViY2E3ZjEx
OGQxMzYyMjc4MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0K
QEAgLTczLDcgKzczLDYgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJUeXBlc0ludGVybmFsLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRl
Lmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2ViV29ya2Vyc1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9D
dXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KQEAgLTI5OSwxMSArMjk4LDYgQEAgc2l6ZV90IFRlc3RSdW5uZXI6OndlYkhpc3Rv
cnlJdGVtQ291bnQoKQogICAgIHJldHVybiBbW1tXZWJIaXN0b3J5IG9wdGlvbmFsU2hhcmVkSGlz
dG9yeV0gYWxsSXRlbXNdIGNvdW50XTsKIH0KIAotdW5zaWduZWQgVGVzdFJ1bm5lcjo6d29ya2Vy
VGhyZWFkQ291bnQoKSBjb25zdAotewotICAgIHJldHVybiBbV2ViV29ya2Vyc1ByaXZhdGUgd29y
a2VyVGhyZWFkQ291bnRdOwotfQotCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5l
cjo6cGxhdGZvcm1OYW1lKCkgY29uc3QKIHsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
cGxhdGZvcm1OYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibWFjIikp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKaW5kZXggMGVkMGM2MmUx
YjA0MWMwYTBhNDQ4MjY0ZmNmZWE4ZTZmMzE4MWIzNS4uNmRhYzIyZDg2Yjk4ZDBkMTViNzFhYTVj
MmIyMjdhYWVmZWRkMmVkNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
Y3BwCkBAIC03MDEsMTEgKzcwMSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNj
aGVtZShmb3JiaWRkZW4sIHNjaGVtZSk7CiB9CiAKLWludCBUZXN0UnVubmVyOjp3b3JrZXJUaHJl
YWRDb3VudCgpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp3b3JrZXJU
aHJlYWRDb3VudCgpOwotfQotCiBib29sIFRlc3RSdW5uZXI6OmNhbGxTaG91bGRDbG9zZU9uV2Vi
VmlldygpCiB7CiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzaG91bGRDbG9z
ZShtX2RydC0+bWFpbkZyYW1lQWRhcHRlcigpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1
bm5lclF0LmgKaW5kZXggMzZmZWVjMWE4OTFhMDYzZGI3OGZjMmU5ZjZlZGFmNzU4MmNhMWIyNS4u
ZWMzNWE5MWEyZTkwYTBkYTBjMjdkMzNmMWZiOTgyNzc1NmQ3OTExNiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKQEAgLTU2LDcgKzU2LDYgQEAgY2xhc3MgRHVtcFJlbmRl
clRyZWU7CiBjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNU
CiAgICAgUV9QUk9QRVJUWShpbnQgd2ViSGlzdG9yeUl0ZW1Db3VudCBSRUFEIHdlYkhpc3RvcnlJ
dGVtQ291bnQpCi0gICAgUV9QUk9QRVJUWShpbnQgd29ya2VyVGhyZWFkQ291bnQgUkVBRCB3b3Jr
ZXJUaHJlYWRDb3VudCkKICAgICBRX1BST1BFUlRZKGJvb2wgZ2xvYmFsRmxhZyBSRUFEIGdsb2Jh
bEZsYWcgV1JJVEUgc2V0R2xvYmFsRmxhZykKIHB1YmxpYzoKICAgICBUZXN0UnVubmVyKFdlYkNv
cmU6OkR1bXBSZW5kZXJUcmVlKik7CkBAIC0yMTIsNyArMjExLDYgQEAgcHVibGljIFFfU0xPVFM6
CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IFFTdHJpbmcmIHVybCk7
CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRE
b21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25z
dCBRU3RyaW5nJiBzY2hlbWUpOwotICAgIGludCB3b3JrZXJUaHJlYWRDb3VudCgpOwogICAgIGJv
b2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7CiAgICAgLy8gRm9yIG5vdywgdGhpcyBpcyBh
IG5vLW9wLiBUaGlzIG1heSBjaGFuZ2UgZGVwZW5kaW5nIG9uIG91dGNvbWUgb2YKICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMzMzMKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCBmMjNmNDcxMmRlZWVkOWM5NjAz
MTUxZDZhZmE5YTMwNTQ4OGQyM2YzLi5mZmMxYTdjZTcyYjY2ZGQ2OTk5MTE5YTdjOGNiNzg3NmM3
NzVkYjY4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBA
IC0yMjUsMTcgKzIyNSw2IEBAIHNpemVfdCBUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50
KCkKICAgICByZXR1cm4gY291bnQ7CiB9CiAKLXVuc2lnbmVkIFRlc3RSdW5uZXI6OndvcmtlclRo
cmVhZENvdW50KCkgY29uc3QKLXsKLSAgICBDT01QdHI8SVdlYldvcmtlcnNQcml2YXRlPiB3b3Jr
ZXJzOwotICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoQ0xTSURfV2ViV29ya2Vy
c1ByaXZhdGUsIDAsIF9fdXVpZG9mKHdvcmtlcnMpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4o
JndvcmtlcnMpKSkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHVuc2lnbmVkIGNvdW50OwotICAg
IGlmIChGQUlMRUQod29ya2Vycy0+d29ya2VyVGhyZWFkQ291bnQoJmNvdW50KSkpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBjb3VudDsKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIndpbiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RS
dW5uZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCmlu
ZGV4IDMxOGYyYzM2NjhkOTI5YjBiODI0NWU1MTkzYjE4YmMwOTEzMzI5MmEuLjI2M2YwMzMxMmEy
NWM3YjI4NWFkYjM5ZjljYzM1Mjg0NGU5NmU3NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
VGVzdFJ1bm5lcld4LmNwcApAQCAtMzA0LDEyICszMDQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiAgICAgLy8gRklY
TUU6IGltcGxlbWVudAogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3Vu
dCgpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiAwOwotfQot
CiB2b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9v
bCBmbGFnKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCmluZGV4IDkyMWM0NzUwYTVjNDI0YWQ2YTJlYjZiZGY2Y2YyNWUzMTYxZmVmYTYuLjA5Mjhm
MWE5ZTU5ODMwNzFmMTRkM2QzZjY4MmYwYjNlMzE4MmFiMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbApAQCAtODQsNyArODQsNiBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAKICAgICAv
LyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAgYXR0cmlidXRlIGJvb2xlYW4gZ2xvYmFsRmxh
ZzsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3b3JrZXJUaHJlYWRDb3Vu
dDsKIAogICAgIC8vIFJlcGFpbnQgdGVzdGluZy4KICAgICB2b2lkIHRlc3RSZXBhaW50KCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAppbmRleCBkNzZkZGE5YTc5Y2JiOGQ4OTA2ZjVjNzM5YjMwM2FmYmEwZjlkNTQ0Li5lNzMz
YzU0Njg3MTgyMGQ0YTA3NGZlZjQ0ODY2ZGVkZGUxOTk3ZWQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTU2OSwx
MSArNTY5LDYgQEAgc3RhdGljIHZvaWQgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayh1bnNpZ25lZCBp
bmRleCkKICAgICBKU1ZhbHVlVW5wcm90ZWN0KGNvbnRleHQsIGNhbGxiYWNrKTsKIH0KIAotdW5z
aWduZWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKQotewotICAgIHJldHVybiBXS0J1
bmRsZUdldFdvcmtlclRocmVhZENvdW50KEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUo
KSk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6YWRkQ2hyb21lSW5wdXRGaWVsZChKU1ZhbHVlUmVm
IGNhbGxiYWNrKQogewogICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKEFkZENocm9tZUlucHV0
RmllbGRDYWxsYmFja0lELCBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDg0ZjJiZTc0ZDY1NDM1NDk2ZGY0
YmNiOTQzNTNiOTdmODkyYTgwYmMuLmExNzYyMTU4NDliNzNkMDM5N2U2ZDYzODQ2ZWI3YTJiMGVi
MzhkNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCkBAIC0yMjMsOCArMjIzLDYgQEAgcHVibGljOgogICAgIGJvb2wgZ2xvYmFs
RmxhZygpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsRmxhZzsgfQogICAgIHZvaWQgc2V0R2xvYmFs
RmxhZyhib29sIHZhbHVlKSB7IG1fZ2xvYmFsRmxhZyA9IHZhbHVlOyB9CiAKLSAgICB1bnNpZ25l
ZCB3b3JrZXJUaHJlYWRDb3VudCgpOwotICAgIAogICAgIHZvaWQgYWRkQ2hyb21lSW5wdXRGaWVs
ZChKU1ZhbHVlUmVmKTsKICAgICB2b2lkIHJlbW92ZUNocm9tZUlucHV0RmllbGQoSlNWYWx1ZVJl
Zik7CiAgICAgdm9pZCBmb2N1c1dlYlZpZXcoSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGNmMTAzNjVh
NDBlNDM1ZmEyYjk0NTU0MTljYTVjYzc0YThmNTc5ZS4uYjY2OTVkNDE2NmMxYjg3NDBhNzkwYzM5
YzdkZmM5MmViY2FkZGQ5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTA3ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29ya2Vy
VGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIHRlc3Rz
IHRlc3RSdW5uZXItPmludGVybmFscy4KKworICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJj
ZXMvZGVkaWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanM6CisgICAgICAgIChydW5UZXN0cy53b3Jr
ZXIub25tZXNzYWdlKToKKyAgICAgICAgKHJ1blRlc3RzKToKKyAgICAgICAgKG9ycGhhbmVkV29y
a2VyRXhpdGVkLndvcmtlci5vbm1lc3NhZ2UpOgorICAgICAgICAob3JwaGFuZWRXb3JrZXJFeGl0
ZWQpOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWxpZmVjeWNsZS5q
czoKKyAgICAgICAgKHJ1blRlc3RzLndvcmtlci5vbm1lc3NhZ2UpOgorICAgICAgICAocnVuVGVz
dHMpOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0aWwuanM6Cisg
ICAgICAgICgucmV0dXJuKToKKyAgICAgICAgKHdhaXRVbnRpbFRocmVhZENvdW50TWF0Y2hlcyk6
CisgICAgICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1jbG9zZS1tb3JlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qczoKKyAgICAgICAg
KC5yZXR1cm4pOgorICAgICAgICAod2FpdFVudGlsVGhyZWFkQ291bnRNYXRjaGVzKToKKwogMjAx
My0wMi0wNyAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NT
IEV4Y2x1c2lvbnNdIElnbm9yZSBFeGNsdXNpb25Qb2x5Z29uIGVkZ2VzIGFib3ZlIG1pbkxvZ2lj
YWxJbnRlcnZhbFRvcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291
cmNlcy9kZWRpY2F0ZWQtd29ya2VyLWxpZmVjeWNsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanMKaW5kZXggMDE3ZDZm
OGI0NTNjMGY2MDdkZGQyNTRmODFlYTNmYjhiYzE4Y2YxYS4uOTU2ZGQ4ZGNiZjA5MTY2MmQ0MTdk
NTMyYjg0NjY4NGY3YWMwYTJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3Jlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLWxpZmVjeWNsZS5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXItbGlmZWN5Y2xlLmpzCkBA
IC0xNywxMCArMTcsMTAgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgicGluZyIpOwogICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLndvcmtlclRocmVhZENvdW50ID09IDEpCisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLndv
cmtlclRocmVhZENvdW50ID09IDEpCiAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JwaGFu
ZWQgd29ya2VyIHRocmVhZCBjcmVhdGVkLiIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIHRocmVhZCBjcmVhdGlvbjogdGVzdFJ1bm5lci53b3Jr
ZXJUaHJlYWRDb3VudCA9ICIgKyB0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50KTsKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciB0aHJlYWQgY3JlYXRpb246IGludGVybmFscy53
b3JrZXJUaHJlYWRDb3VudCA9ICIgKyBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQpOwogICAg
ICAgICB9CiAKICAgICAgICAgLy8gT3JwaGFuIG91ciB3b3JrZXIgKG5vIG1vcmUgcmVmZXJlbmNl
cyB0byBpdCkgYW5kIHdhaXQgZm9yIGl0IHRvIGV4aXQuCkBAIC00MCwxMCArNDAsMTAgQEAgZnVu
Y3Rpb24gb3JwaGFuZWRXb3JrZXJFeGl0ZWQoKQogICAgIHdvcmtlci5wb3N0TWVzc2FnZSgicGlu
ZyIpOwogICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLndvcmtl
clRocmVhZENvdW50ID09IDEpCisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLndvcmtlclRocmVh
ZENvdW50ID09IDEpCiAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JwaGFuZWQgdGltZW91
dCB3b3JrZXIgdGhyZWFkIGNyZWF0ZWQuIik7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiB0ZXN0UnVubmVyLndvcmtl
clRocmVhZENvdW50ID0gIiArIHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQpOworICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIHRocmVhZCBjcmVhdGlvbjogaW50ZXJuYWxzLndv
cmtlclRocmVhZENvdW50ID0gIiArIGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCk7CiAgICAg
ICAgIH0KICAgICAgICAgLy8gU2VuZCBhIG1lc3NhZ2UgdGhhdCBzdGFydHMgdXAgYW4gYXN5bmMg
b3BlcmF0aW9uLCB0byBtYWtlIHN1cmUgdGhlIHRocmVhZCBleGl0cyB3aGVuIGl0IGNvbXBsZXRl
cy4KICAgICAgICAgLy8gRklYTUU6IERpc2FibGVkIGZvciBub3cgLSByZS1lbmFibGUgd2hlbiBi
dWcgMjg3MDIgaXMgZml4ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
cmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
cmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUuanMKaW5kZXggYTVjNTI5NzY4NzNlYmMxYmU4ZjJi
ODQ2ZDRiZGU5NDhmMTkxZDczMS4uNjNiNDhkOTM4MjYyZWM0MzFiMTdiOGE0OGZiZDZkZmM3ZjZk
N2MzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3Jr
ZXItbGlmZWN5Y2xlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMv
d29ya2VyLWxpZmVjeWNsZS5qcwpAQCAtMTEsMTUgKzExLDE1IEBAIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogZnVuY3Rpb24gcnVuVGVzdHMoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgbG9nKCJQQVNTOiB3b3JrZXJUaHJlYWRDb3VudCA9ICIgKyB0ZXN0UnVubmVy
LndvcmtlclRocmVhZENvdW50KTsKKyAgICAgICAgbG9nKCJQQVNTOiB3b3JrZXJUaHJlYWRDb3Vu
dCA9ICIgKyBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQpOwogICAgIHZhciB3b3JrZXIgPSBj
cmVhdGVXb3JrZXIoKTsKICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoInBpbmciKTsKICAgICB3b3Jr
ZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lci53b3JrZXJUaHJlYWRDb3VudCA9
PSAxKQorICAgICAgICAgICAgaWYgKGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9PSAxKQog
ICAgICAgICAgICAgICAgIGxvZygiUEFTUzogV29ya2VyIHRocmVhZCBjcmVhdGVkIik7CiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBBZnRlciB0aHJlYWQgY3Jl
YXRpb246IHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQgPSAiICsgdGVzdFJ1bm5lci53b3Jr
ZXJUaHJlYWRDb3VudCk7CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBBZnRlciB0aHJlYWQg
Y3JlYXRpb246IGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9ICIgKyBpbnRlcm5hbHMud29y
a2VyVGhyZWFkQ291bnQpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gU2h1dGRvd24gdGhlIHdv
cmtlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLXV0aWwuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci11
dGlsLmpzCmluZGV4IDdjY2Q0NzMzNjYwMDIyODYxM2VjZDMzMTVmODJkMDlhZTQ3MmUxNGYuLjIy
YTA3ZDI2ZmViY2YzNDU0N2Y5OWM3Y2IxOWM3MGUwM2YwOThiMmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0aWwuanMKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qcwpAQCAtMzYsNyArMzYs
NyBAQCBmdW5jdGlvbiB3YWl0VW50aWxUaHJlYWRDb3VudE1hdGNoZXMoY2FsbGJhY2ssIGNvdW50
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHRlc3RSdW5uZXIud29ya2VyVGhy
ZWFkQ291bnQgPT0gY291bnQpIHsKKyAgICBpZiAoaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50
ID09IGNvdW50KSB7CiAgICAgICAgIC8vIFdvcmtlciB0aHJlYWRzIGhhdmUgZXhpdGVkLgogICAg
ICAgICBjYWxsYmFjaygpOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvd29ya2VyLWNsb3NlLW1vcmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItY2xvc2UtbW9yZS5odG1sCmluZGV4IDg4ZTdmM2RmMjAwOWExNTAyZmVlYmJl
Njk0NjEwZjhkM2IxYzI2NDcuLjkwNDkzYWZkNTg0ZTEwYTYwYjM5ZGM1ODgzNzZiYWFiMGIzNTY2
MDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItY2xvc2UtbW9y
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItY2xvc2UtbW9yZS5o
dG1sCkBAIC0xNyw3ICsxNyw3IEBAIHZhciB3b3JrZXI7CiBmdW5jdGlvbiBzdGFydFdvcmtlcigp
CiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICBsb2coIlBBU1M6IHdvcmtl
clRocmVhZENvdW50ID0gIiArIHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQpOworICAgICAg
ICBsb2coIlBBU1M6IHdvcmtlclRocmVhZENvdW50ID0gIiArIGludGVybmFscy53b3JrZXJUaHJl
YWRDb3VudCk7CiAgICAgd29ya2VyID0gbmV3IFdvcmtlcigncmVzb3VyY2VzL3dvcmtlci1jbG9z
ZS5qcycpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
cmVzb3VyY2VzL3dvcmtlci11dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3Jlc291cmNlcy93b3JrZXItdXRpbC5qcwppbmRleCA3Y2NkNDczMzY2MDAyMjg2MTNlY2QzMzE1
ZjgyZDA5YWU0NzJlMTRmLi4yMmEwN2QyNmZlYmNmMzQ1NDdmOTljN2NiMTljNzBlMDNmMDk4YjJk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL3dv
cmtlci11dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9yZXNvdXJj
ZXMvd29ya2VyLXV0aWwuanMKQEAgLTM2LDcgKzM2LDcgQEAgZnVuY3Rpb24gd2FpdFVudGlsVGhy
ZWFkQ291bnRNYXRjaGVzKGNhbGxiYWNrLCBjb3VudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmICh0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50ID09IGNvdW50KSB7CisgICAg
aWYgKGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9PSBjb3VudCkgewogICAgICAgICAvLyBX
b3JrZXIgdGhyZWFkcyBoYXZlIGV4aXRlZC4KICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9IGVs
c2Ugewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187268</attachid>
            <date>2013-02-08 01:48:03 -0800</date>
            <delta_ts>2013-02-08 12:28:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109239-20130208014437.patch</filename>
            <type>text/plain</type>
            <size>49478</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjczZWFkYjAxZWY3NThh
MTc3OGEwOGU2OWUwYTJmMzU0MzczZjk0NC4uZDZjYTBhZjQyMGY3MDUyZjZhM2U4YmI4MzY5ODMw
YzljZDBlYjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29ya2Vy
VGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgdGhlIG5ldyByZWFkLW9u
bHkgcHJvcGVydHkgd29ya2VyVGhyZWFkQ291bnQuCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndvcmtlclRocmVhZENvdW50
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6Cisg
ICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwog
MjAxMy0wMi0wOCAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogZGlzYWJsZSBwcm9maWxlIHR5cGUgc3dpdGNoaW5nIHdoaWxlIHBy
b2ZpbGUgaW4gcHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDEwYjk1ZmNkNzc5MDRjNTBhYWZjNDcxZGUx
ZjU1MjQzZWM5ZWNlZS4uOThlM2JhMDA1YmYwZTBmNDg1MTkwYzJmNTE3YjNiNzZmMzcyYjE2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZy
b20gVGVzdFJ1bm5lciB0byBXZWJDb3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxMy0wMi0wNyAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIENvcnJlY3Rpb25zIHRoZSBleHBvcnRzIGRlZmluaXRpb24gZmls
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBlMDEzN2Q2Mjc1YjEzZjQ2NzhjODg0MDI2NzcwZGI5NDkw
OGI0NTMxLi42YjdkYzAyNzIyZWE2YjA4MDdmMjU5NDNmNjJlMTFjODJiMGRmMjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBm
cm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaDoKKwogMjAxMy0wMi0wNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHBhdXNlQW5pbWF0aW9uL3BhdXNlVHJhbnNpdGlvbiBm
cm9tIFRlc3RSdW5uZXIgdG8gSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMThhYzdhODQx
NWZkODQ1NTc2MWM4MGVlODkxY2QzZTFkNDhjNTllOS4uYTkzYjk3ZTMzNjU2OTM0N2ExNTk2Nzcx
MGNhYWJiZjcwYTliNmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEz
LTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJu
YWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDky
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGspOgorCiAyMDEzLTAyLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBDbGVhbnVwIGNvbW1hbmQtbGluZSBkZWZp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggY2MwNTY5MWU2MzViMzk0NzcwOWUwODc1NTkyN2M4ZGYy
NzBjOWE1OS4uNzUyYmE0ZjhhMGNhMmU2N2FiOGM0NzdhNDk4MTJmODNmOTk5ZTIwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQg
ZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBHZXQgcmlkIG9mIFdlYldvcmtlcnNQcml2YXRlLCB3
aGljaCB3YXMgb25seSBuZWVkZWQgZm9yIERSVC4KKworICAgICAgICAqIFdlYktpdC5leHA6Cisg
ICAgICAgICogV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IFdvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUubW06IFJlbW92ZWQuCisKIDIwMTMtMDItMDcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDIyMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDEyMDY0ODczMDkz
ZjNkNWU4NzliNGM1MDViMGFmMDRiNGI3NGI0YmQuLjU5NTE5ZDQwMTUyOGQ2YjVkM2ZmZDQyOTk1
ZmI3NTI4MjdmYTgwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDIt
MDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92
ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTMtMDItMDcgIEJlbmphbWluIFBv
dWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBwYXVzZUFuaW1hdGlv
bi9wYXVzZVRyYW5zaXRpb24gZnJvbSBUZXN0UnVubmVyIHRvIEludGVybmFscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDhkMTdmMWNhYTNkNDI0YTY4MmIwOWRjMGExZjI5Yjc0ZTA2ZmM2NmMuLjFkNzUx
MTljNDlmYzU0MmZlOTJjNTVjNzdhMGNjMWJiZTkxMmMzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KKworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5l
ciB0byBXZWJDb3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDEz
LTAyLTA3ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gQ29ycmVjdGlvbnMgdGhlIGV4cG9ydHMgZGVmaW5pdGlvbiBmaWxlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDY5OWEyNzc1ZWQ1NzQ1ODk1NTgxYzYwZjMzMzk4Y2MwNzNjZDAwZjMuLjViNWRjMGIz
MjIyYWExMzI3ZjkwY2ZhYmEwMDBlMDhkOWI0Mjg1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5lciB0byBXZWJD
b3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAg
ICAgICAgKEluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwOiBSZW1vdmUgYSB1c2VsZXNzICNpbmNsdWRlLgorCiAyMDEzLTAyLTA3ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQyMjEyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IGFkNGRkOWRiODE1MjUyNDZjMTJiOTlhYmQxYjc3NDdhNWI1MThjOWQuLjA1OGIwYjk5
MWJmNjljY2Y0YTYwNDczZGQ2MTk4MjVjNmNiZThiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKICNp
bmNsdWRlICJUeXBlQ29udmVyc2lvbnMuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5o
IgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
ZmZlci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCkBAIC0yNzgsNiArMjc5LDE1
IEBAIEludGVybmFsU2V0dGluZ3MqIEludGVybmFsczo6c2V0dGluZ3MoKSBjb25zdAogICAgIHJl
dHVybiBJbnRlcm5hbFNldHRpbmdzOjpmcm9tKHBhZ2UpOwogfQogCit1bnNpZ25lZCBsb25nIElu
dGVybmFsczo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAoreworI2lmIEVOQUJMRShXT1JLRVJT
KQorICAgIHJldHVybiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCk7CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIFN0cmluZyBJbnRlcm5hbHM6OmFkZHJlc3MoTm9k
ZSogbm9kZSkKIHsKICAgICBjaGFyIGJ1ZlszMl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA2NDZiMTU1OWY4M2YzMjQzZmZlNmI2MmU0MWFjNDI5YmFjZTgxMTcxLi4xYjA5YWVj
YTNkY2M3Yzg1NmUwOTBlOTEyZjBhYTNhYjQ5ODRhOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTIwNiw2ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGludGVybmFsc0lkOwogCiAgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25z
dDsKKyAgICB1bnNpZ25lZCB3b3JrZXJUaHJlYWRDb3VudCgpIGNvbnN0OwogCiAgICAgdm9pZCBz
ZXRCYXR0ZXJ5U3RhdHVzKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIGJvb2wg
Y2hhcmdpbmcsIGRvdWJsZSBjaGFyZ2luZ1RpbWUsIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGRv
dWJsZSBsZXZlbCwgRXhjZXB0aW9uQ29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggYTUwYjc5Y2U1YzZiNGFjNzc5M2Q4ODdiMjU2MmY1ZjU4M2RhZjQ1NS4uY2Mx
NDE0N2U0ZmZiNjg5MDBlMDQwNzMxODU5ZWI2MTU1OTM3ZGEyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbApAQCAtMTcyLDYgKzE3Miw3IEBACiAgICAgYm9vbGVhbiBpc1BhZ2VC
b3hWaXNpYmxlKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25nIHBhZ2VOdW1iZXIpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRp
bmdzIHNldHRpbmdzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdvcmtl
clRocmVhZENvdW50OwogCiAgICAgLy8gRmxhZ3MgZm9yIGxheWVyVHJlZUFzVGV4dC4KICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBMQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgPSAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMzA4Y2NjM2ZjZjY1YjI5NzBhYmExOWZlNTQ0NGE0OGM1YjkzZjA5Ny4uYjYzODkzZTg2YjIw
NWY0ZDExYTMwNTBkOWQ1NzI3ZDg5Yzg3MGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NSw4ICs4NSw2IEBACiAJCTNBQkIzQzdB
MTMwOUMzQjUwMEU5M0Q5NCAvKiBXZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0FCQjNDNzgxMzA5QzNCNTAwRTkz
RDk0IC8qIFdlYlN0b3JhZ2VUcmFja2VyQ2xpZW50LmggKi87IH07CiAJCTNBQkIzQzdCMTMwOUMz
QjUwMEU5M0Q5NCAvKiBXZWJTdG9yYWdlVHJhY2tlckNsaWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQkIzQzc5MTMwOUMzQjUwMEU5M0Q5NCAv
KiBXZWJTdG9yYWdlVHJhY2tlckNsaWVudC5tbSAqLzsgfTsKIAkJM0FFMTVENTAxMkRCREVENDAw
OTMyM0M4IC8qIFdlYlN0b3JhZ2VNYW5hZ2VySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBRTE1RDRGMTJEQkRFRDQwMDkzMjNDOCAvKiBX
ZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmggKi87IH07Ci0JCTQxRjQ0ODRGMTAzMzhFOEMwMDMw
RTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGNDQ4NEQxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJNDFGNDQ4NTAxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNDQ4NEUxMDMzOEU4
QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLm1tICovOyB9OwogCQk0NEJCOEIxNDEyNDFB
MDIyMDAxRTNBMjIgLyogV2ViQXJjaGl2ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NEJCOEIxMzEyNDFBMDIyMDAxRTNBMjIgLyogV2Vi
QXJjaGl2ZUludGVybmFsLmggKi87IH07CiAJCTRCRjk5RjkwMEFFMDUwQkMwMDgxNUMyQiAvKiBX
ZWJFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRCRjk5RjhFMEFFMDUwQkMwMDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk0QkY5OUY5MTBBRTA1MEJDMDA4
MTVDMkIgLyogV2ViRWRpdG9yQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEJGOTlGOEYwQUUwNTBCQzAwODE1QzJCIC8qIFdlYkVkaXRvckNs
aWVudC5tbSAqLzsgfTsKQEAgLTQ4MSw4ICs0NzksNiBAQAogCQkzQUJCM0M3ODEzMDlDM0I1MDBF
OTNEOTQgLyogV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJM0FCQjNDNzkxMzA5QzNCNTAwRTkzRDk0IC8qIFdlYlN0b3JhZ2VUcmFja2Vy
Q2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU3Rv
cmFnZVRyYWNrZXJDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNBRTE1
RDRGMTJEQkRFRDQwMDkzMjNDOCAvKiBXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlN0b3JhZ2VNYW5hZ2VySW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFGNDQ4NEQxMDMzOEU4QzAwMzBFNTVFIC8q
IFdlYldvcmtlcnNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YldvcmtlcnNQcml2YXRlLmg7IHBhdGggPSBtYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MUY0NDg0RTEwMzM4RThDMDAzMEU1NUUg
LyogV2ViV29ya2Vyc1ByaXZhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXZWJXb3JrZXJzUHJpdmF0ZS5tbTsgcGF0aCA9IG1hYy9Xb3JrZXJzL1dlYldvcmtl
cnNQcml2YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDkwOThCOTBGOEY4
MkRGMDA3NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0QkI4QjEzMTI0MUEwMjIwMDFFM0EyMiAvKiBXZWJBcmNoaXZlSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXJjaGl2ZUludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRjk5RjhFMEFFMDUwQkMwMDgxNUMy
QiAvKiBXZWJFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODAxLDcg
Kzc5Nyw2IEBACiAJCQkJRjVCMzZCNDAwMjgxREU4NzAxODYzNUNCIC8qIFdlYkNvcmVTdXBwb3J0
ICovLAogCQkJCTlDN0NBQkJCMDE5MEEzN0MwRUNBMTZFQSAvKiBXZWJWaWV3ICovLAogCQkJCTFD
NjhGNjNGMDk1QjVGOUMwMEMyOTg0RSAvKiBXZWJJbnNwZWN0b3IgKi8sCi0JCQkJNDFGNDQ4NEMx
MDMzOEU1NzAwMzBFNTVFIC8qIFdvcmtlcnMgKi8sCiAJCQkJRjdFQkVFNTkwM0Y5REIyMjAzQ0Ew
REU2IC8qIENhcmJvbiAqLywKIAkJCQkwODlDMTY2NUZFODQxMTU4QzAyQUFDMDcgLyogUmVzb3Vy
Y2VzICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzIGFuZCBM
aWJyYXJpZXMgKi8sCkBAIC0xMDMzLDE1ICsxMDI4LDYgQEAKIAkJCXRhYldpZHRoID0gNDsKIAkJ
CXVzZXNUYWJzID0gMDsKIAkJfTsKLQkJNDFGNDQ4NEMxMDMzOEU1NzAwMzBFNTVFIC8qIFdvcmtl
cnMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQxRjQ0
ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oICovLAotCQkJCTQxRjQ0
ODRFMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSAqLywKLQkJCSk7Ci0J
CQluYW1lID0gV29ya2VyczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTUx
MUYzRkMzMENFQ0M3RTIwMDg1MjU2NSAvKiBTdG9yYWdlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE2MjgsNyArMTYxNCw2IEBACiAJCQkJQkMyRTQ2NEQw
RkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZpZXdEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4
MTA5QjA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5Mzk4MTA3MTA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDAyLDcgKzE5ODcsNiBAQAogCQkJCUMwQzVCM0VGMTE3
N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5Mzk4MTEwNzA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlldy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMkU0NjRFMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5tbSBpbiBT
b3VyY2VzICovLAotCQkJCTQxRjQ0ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJp
dmF0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggNDhi
Y2YxZTZmZDJhYzllOWI5Yzg0MGNkNTJhZjFlNWYzNmNjNWRhNC4uOGJiNDg2ZGFkOWMzNzhmZDYz
Y2ViYTU1ZTQwMmZhNjAzMDIzNjJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC01
OCw3ICs1OCw2IEBACiAjaW5jbHVkZSA8VGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8YmluZGlu
Z3MvanMvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8aGlzdG9yeS9IaXN0b3J5SXRlbS5oPgot
I2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIApAQCAtNDM5LDE1ICs0MzgsNiBAQCBz
aXplX3QgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpqYXZhU2NyaXB0T2JqZWN0c0NvdW50KCkK
ICAgICByZXR1cm4gV2ViQ29yZTo6SlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5o
ZWFwLm9iamVjdENvdW50KCk7CiB9CiAKLXVuc2lnbmVkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6d29ya2VyVGhyZWFkQ291bnQoKQotewotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHJldHVy
biBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAg
IHJldHVybiAwOwotI2VuZGlmCi19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKIHsKICAg
ICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsKGludGVydmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggNjJkYTU3Y2M3ZjZiMzVl
MGI3NDU3MWQ2NDdmNmY3NWExNDEyNDUwZC4uZTkyNTA1NzkyYmZhNWNlZTQ3MDQ3OWI4ZjNjMGQy
M2Y3MjRhYzQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTk1LDcgKzk1LDYgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CiAgICAgc3Rh
dGljIHZvaWQgZ2FyYmFnZUNvbGxlY3RvckNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZChib29sIHdh
aXRVbnRpbERvbmUpOwogICAgIHN0YXRpYyBzaXplX3QgamF2YVNjcmlwdE9iamVjdHNDb3VudCgp
OwotICAgIHN0YXRpYyB1bnNpZ25lZCB3b3JrZXJUaHJlYWRDb3VudCgpOwogCiAgICAgc3RhdGlj
IHZvaWQgc2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChkb3VibGUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA5MjM0MDdiZmY5MzdiMjI0ODFhODQyMWYzN2M3NTU1
ZGI2MDIwZjVmLi5iYzEzYWZhYjRmYTE4YWI4YmU2MTk1YmVjMjEwYzYyMGQxZjg4ZTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTY4LDcgKzY4LDYgQEAKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vz
c2libGVXcmFwcGVyQXRrLmgiCi0jaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAi
d2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgpAQCAtNTMyLDE1ICs1MzEsNiBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lKQogICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5zZXRPcGVuZXIoMCk7CiB9CiAKLXVu
c2lnbmVkIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OndvcmtlclRocmVhZENvdW50KCkK
LXsKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICByZXR1cm4gV2ViQ29yZTo6V29ya2VyVGhyZWFk
Ojp3b3JrZXJUaHJlYWRDb3VudCgpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQot
CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogdGFyZ2V0U3RyaW5nLCBXZWJLaXRGaW5kT3B0aW9ucyBm
aW5kT3B0aW9ucykKIHsKICAgICByZXR1cm4gY29yZSh3ZWJWaWV3KS0+ZmluZFN0cmluZyhTdHJp
bmc6OmZyb21VVEY4KHRhcmdldFN0cmluZyksIGZpbmRPcHRpb25zKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmgKaW5kZXggZDEyYmJkNDc3YmYxM2ZmZjAyMDdlMTk4YTczMWRkNjUzN2M5Y2E3Yi4uNDdl
Y2E3YTNkNmJhYjc5MjA2MDNmMzA3YTdkODE3YWI4ODExMWFlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmgKQEAgLTEwNSw3ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgd2hpdGVM
aXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBnY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBnY2hh
ciogZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlV2hp
dGVMaXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBjaGFyKiBzb3VyY2VPcmlnaW4sIGNvbnN0IGNo
YXIqIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgc3RhdGljIHZvaWQgcmVzZXRPcmln
aW5BY2Nlc3NXaGl0ZUxpc3RzKCk7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGludCB3b3JrZXJUaHJl
YWRDb3VudCgpOwogCiAgICAgc3RhdGljIHZvaWQgcmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2so
V2ViS2l0V2ViVmlldyopOwogICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1p
c3Npb24oV2ViS2l0V2ViVmlldyosIGJvb2wgYWxsb3dlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJLaXQuZXhwIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0LmV4cAppbmRl
eCAwNWNiMzI3OWRkZDI5N2M2YmJjZTBiMmFjMGY4ZWI4OTRmZTY2MDBjLi5hZmExNjk0M2Q3ZGJj
NGUxN2QyN2RiNmVlMTUxODkyZjQxOWEyZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJLaXQuZXhwCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAKQEAgLTQwLDcg
KzQwLDYgQEAKIC5vYmpjX2NsYXNzX25hbWVfV2ViVVJMc1dpdGhUaXRsZXMKIC5vYmpjX2NsYXNz
X25hbWVfV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuCiAub2JqY19jbGFzc19uYW1lX1dlYlZpZXcK
LS5vYmpjX2NsYXNzX25hbWVfV2ViV29ya2Vyc1ByaXZhdGUKIF9ISVdlYlZpZXdDcmVhdGUKIF9I
SVdlYlZpZXdHZXRXZWJWaWV3CiBfV2ViQWN0aW9uQnV0dG9uS2V5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDBmZjYwZDVkZWQ5OTcyYmNjMmQ5Y2I5MGQ1YTc3NGQ5NDk5OTAzNDcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LUBpbnRlcmZhY2UgV2ViV29ya2Vyc1ByaXZhdGUgOiBOU09iamVjdCB7Ci19Ci0KLS8vIFJldHVy
bnMgdGhlIHRvdGFsIG51bWJlciBvZiBjdXJyZW50bHkgZXhlY3V0aW5nIHdvcmtlciB0aHJlYWRz
IChzaGFyZWQgKyBkZWRpY2F0ZWQpLgotKyAodW5zaWduZWQpIHdvcmtlclRocmVhZENvdW50Owot
Ci1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQ
cml2YXRlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZlYThjMDUxYjg4NzU2NWM1YzA0ZTM3
YmM5NWE3ZjFkYjBmNzYxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIldlYldvcmtlcnNQcml2YXRlLmgi
Ci0KLSNpbXBvcnQgPFdlYkNvcmUvV29ya2VyVGhyZWFkLmg+Ci0KLUBpbXBsZW1lbnRhdGlvbiBX
ZWJXb3JrZXJzUHJpdmF0ZQotCi0rICh1bnNpZ25lZCkgd29ya2VyVGhyZWFkQ291bnQKLXsKLSNp
ZiBkZWZpbmVkKEVOQUJMRV9XT1JLRVJTKSAmJiBFTkFCTEVfV09SS0VSUwotICAgIHJldHVybiBX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJl
dHVybiAwOwotI2VuZGlmCi19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNWFi
OTQyZjRlNmViM2U3ZTI1NTUxNzE3NzgzYjU1ODM2ZWZiY2Y0OS4uMGI3ODU2YTIzZDM5MjNhYzUw
NmQ4OWQ1N2IxM2VhMzc1M2MyOGExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTc3LDcg
Kzc3LDYgQEAKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUaGlyZFBhcnR5
Q29va2llc1F0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCi0jaW5jbHVkZSAi
V29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAicXRfcnVudGltZS5oIgogI2luY2x1ZGUgInF3ZWJl
bGVtZW50LmgiCiAjaW5jbHVkZSAicXdlYmhpc3RvcnkuaCIKQEAgLTIwOSwxNSArMjA4LDYgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6b3ZlcndyaXRlUGx1Z2luRGlyZWN0b3JpZXMo
KQogICAgIGRiLT5yZWZyZXNoKCk7CiB9CiAKLWludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
d29ya2VyVGhyZWFkQ291bnQoKQotewotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHJldHVybiBX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJl
dHVybiAwOwotI2VuZGlmCi19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldER1
bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoYm9vbCBiKQogewogICAgIFFXZWJQYWdlQWRhcHRlcjo6
ZHJ0UnVuID0gYjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAyZDZhODg2NzZjNjRiN2UwYmRmODM1
NmJjZDc1YmY5N2M0NWU4NGVjLi41MWI4NWExNTJlZmRjOTIyYzdjODAyNjZiNzMzMmNiOTRjNTNk
ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC0xMzksOCArMTM5LDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihR
V2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKTsKICAgICBzdGF0aWMgaW50
IG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFFXZWJQYWdlQWRh
cHRlciopOwogCi0gICAgc3RhdGljIGludCB3b3JrZXJUaHJlYWRDb3VudCgpOwotCiAgICAgc3Rh
dGljIFFTdHJpbmcgbWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0IFFXZWJFbGVtZW50JiBsaXN0
SXRlbSk7CiAgICAgc3RhdGljIFFWYXJpYW50TWFwIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNp
dGVkSW5mbyhjb25zdCBRV2ViRWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93
aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRFeHBvcnRzLmRlZi5pbgppbmRleCAzMzkxMjdkNTRiNTBm
MjY4ZGMzODFlNWQ4ZmZlYmZiMTRhZWRjY2Y3Li41MTNhYzg0ZGI5MjY1ZjdiMjNhODViMTBiMjE3
YTI1NDRkZmQzZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3By
b2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTM5NCwzICszOTQsNyBAQCBFWFBPUlRTCiAgICAg
ICAgID9yZXNvdXJjZUZvclVSTEBNZW1vcnlDYWNoZUBXZWJDb3JlQEBRQUVQQVZDYWNoZWRSZXNv
dXJjZUAyQEFCVktVUkxAMkBAWgogICAgICAgICA/bm9uRmFzdFNjcm9sbGFibGVSZWN0c0BQYWdl
QFdlYkNvcmVAQFFBRT9BVj8kUGFzc1JlZlB0ckBWQ2xpZW50UmVjdExpc3RAV2ViQ29yZUBAQFdU
RkBAUEJWRnJhbWVAMkBAWgogICAgICAgICA/bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zQEFuaW1h
dGlvbkNvbnRyb2xsZXJAV2ViQ29yZUBAUUJFSVBBVkRvY3VtZW50QDJAQFoKKworI2lmIEVOQUJM
RShXT1JLRVJTKQorICAgICAgICA/d29ya2VyVGhyZWFkQ291bnRAV29ya2VyVGhyZWFkQFdlYkNv
cmVAQFNBSVhaCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKaW5kZXggMWNhZGRlMDFjZTdm
Mzg3ZmY4NjdkMzA3NGFlZTEzNGJkNzJjZGVjYi4uY2U4NmE0NThlYzZjZTUzZDE5YjdiOTNiYzEx
YTNmYmQzODZlMmU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKQEAgLTMwMCwxMiArMzAwLDYg
QEAgYm9vbCBXS0J1bmRsZUlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKFdLQnVuZGxlUmVmKQogICAg
IHJldHVybiBJbmplY3RlZEJ1bmRsZTo6aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0KIAot
c2l6ZV90IFdLQnVuZGxlR2V0V29ya2VyVGhyZWFkQ291bnQoV0tCdW5kbGVSZWYpCi17Ci0gICAg
Ly8gQWN0dWFsbHkgZG8gbm90IG5lZWQgYXJndW1lbnQgaGVyZSwga2VlcGluZyBpdCBob3dldmVy
IGZvciBjb25zaXN0ZW5jeS4KLSAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OndvcmtlclRocmVh
ZENvdW50KCk7Ci19Ci0KIHZvaWQgV0tCdW5kbGVTZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdL
QnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBX
S1N0cmluZ1JlZiBsb2NhdGlvbikKIHsKICAgICB0b0ltcGwoYnVuZGxlUmVmKS0+c2V0VXNlclN0
eWxlU2hlZXRMb2NhdGlvbih0b0ltcGwocGFnZUdyb3VwUmVmKSwgdG9XVEZTdHJpbmcobG9jYXRp
b24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCmluZGV4IDkyZWY0ZGI0OTliZDcx
ZjJhOGE2ZTEwNjU2Njc0YjJmZjJhNzcwYjIuLjIzZTg0MDkyMDZmNmI2ZTAxOGM2YWE2ZjJmNTNi
NGM3NTlmOTY5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaApAQCAtOTgsOCAr
OTgsNiBAQCBXS19FWFBPUlQgc2l6ZV90IFdLQnVuZGxlR2V0SmF2YVNjcmlwdE9iamVjdHNDb3Vu
dChXS0J1bmRsZVJlZiBidW5kbGUpOwogCiBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUlzUHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKFdLQnVuZGxlUmVmIGJ1bmRsZSk7CiAKLVdLX0VYUE9SVCBzaXplX3Qg
V0tCdW5kbGVHZXRXb3JrZXJUaHJlYWRDb3VudChXS0J1bmRsZVJlZiBidW5kbGUpOwotCiBXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhXS0J1bmRs
ZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBib29sIGVuYWJsZWQpOwogV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVTZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChXS0J1bmRsZVJlZiBidW5k
bGUsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldFNoYWRvd0RPTUVu
YWJsZWQoV0tCdW5kbGVSZWYgYnVuZGxlLCBib29sIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAppbmRleCAxMjJiOWI5NzZhZTRiMjMwMzdmOGI1Y2IyZDkxZjY5MDgyYjIyYmU5Li5hNTM3
OWNmMmZhNzkzYmFmZDZmZDc1MTYxZTg2MmNiNDAwZWE4YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcApAQCAtNjksNyArNjksNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3ku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25BcnJheVB0
ci5oPgogCkBAIC01NzksMTUgKzU3OCw2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2Vp
dmVNZXNzYWdlVG9QYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAgICAg
bV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhpcywgcGFnZSwgbWVzc2FnZU5hbWUs
IG1lc3NhZ2VCb2R5KTsKIH0KIAotc2l6ZV90IEluamVjdGVkQnVuZGxlOjp3b3JrZXJUaHJlYWRD
b3VudCgpCi17Ci0jaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgcmV0dXJuIFdlYkNvcmU6Oldvcmtl
clRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKLX0KLQogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihX
ZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBjb25zdCBTdHJpbmcmIGxvY2F0aW9uKQogewog
ICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBh
Z2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCBi
ZDEwOTU5Mjc1MGE3OTM4NzMyOWMwYzU2ZjlhMzAwNWJiYzAyYzQxLi5jZTRiZmQxNTRhZGEwYTg3
YTE1ZTY0YTAzMWRmMGFkNmRmNjY1NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC0xNjgsOCAr
MTY4LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1
cmUoKTsKIAotICAgIHN0YXRpYyBzaXplX3Qgd29ya2VyVGhyZWFkQ291bnQoKTsKLQogICAgIHZv
aWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKFdlYlBhZ2UqLCBib29sIGVuYWJsZWQp
OwogICAgIHZvaWQgc2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRT
aGFkb3dET01FbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggNjAyYmVjOWQyM2E3ZTU0MzI1MDhhOTllYTc3YTIxMTQx
Y2M4YzViOS4uNGZlMzE3ZWY3NjIzYTg2YmZlMzQzNjA1ZWRkMGQ5NjZlYmRjMDBkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC00Miw3
ICs0Miw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNWYWx1ZVJlZi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uQ29udHJvbGxlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMmVkZWZhZmQ5ZWVjMWViMzFiMTZkMTMxYmU0
ZWZkM2ZjNjVmMDY1My4uYTFhZDMxMTBmYmM4MzNjMTU3YWJlM2FkZGMzOTc3OGZkZDc1OWE5OCAx
MDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC02MCw2ICs2MCw3IEBAIF9aTjdXZWJDb3JlMTJU
ZXh0SXRlcmF0b3IyNnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoRVBOU18xM0NvbnRhaW5lck5v
ZGVFaWliOwogX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvcjI5Z2V0TG9jYXRpb25BbmRMZW5ndGhG
cm9tUmFuZ2VFUE5TXzROb2RlRVBLTlNfNVJhbmdlRVJqUzZfOwogX1pON1dlYkNvcmUxMlRleHRJ
dGVyYXRvcjI5Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VFUE5TXzROb2RlRVBLTlNfNVJh
bmdlRVJtUzZfOwogX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDIwcGFnZU51bWJlckZvckVsZW1l
bnRFUE5TXzdFbGVtZW50RVJLTlNfOUZsb2F0U2l6ZUU7CitfWk43V2ViQ29yZTEyV29ya2VyVGhy
ZWFkMTd3b3JrZXJUaHJlYWRDb3VudEV2OwogX1pON1dlYkNvcmUxM2NyZWF0ZVdyYXBwZXJFUE4z
SlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfNE5vZGVFOwogX1pON1dl
YkNvcmUxNENsaWVudFJlY3RMaXN0QzFFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVhZEVMajBF
RUU7CiBfWk43V2ViQ29yZTE0Q2xpZW50UmVjdExpc3RDMUVSS04zV1RGNlZlY3RvcklOU185Rmxv
YXRRdWFkRUxtMEVFRTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBiODFiNjQ1ZmJmNTBkMjg1YjdiNjhiODFhMGVmMDYzMjNjYzJmN2Y3Li5mMjhj
MDk4NzMwMTRhNWIyYTZhMWNiMTNlN2E0Yjc1NzQ0ZGVkMTQzIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMtMDIt
MDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92
ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNWYWx1ZXMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RS
dW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJs
YWNrQmVycnkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5l
cjo6VGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVt
Q291bnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0Lmg6CisgICAgICAgIChUZXN0
UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisKIDIwMTMtMDItMDcgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSB0dXJuIFRlc3RSdW5uZXIgbGlicmFyeSBpbnRvIGEgY29t
cG9uZW50IGJ1aWxkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGIzMjlmMTRl
ZDliMTQ3MDk5NjJmMmU4MWVlNDgyYjM4ZTRkMTk1N2YuLmM4MTdkNTIzMGM0NDhhN2ExZGQ3ZDc0
MzlhYjEyYWEzYTA4OWQzNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0x
OTMyLDEyICsxOTMyLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgZ2V0V2ViSGlzdG9yeUl0ZW1Db3Vu
dENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFIKICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29udHJvbGxlci0+d2ViSGlzdG9yeUl0ZW1Db3VudCgp
KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgZ2V0V29ya2VyVGhyZWFkQ291bnRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgVGVzdFJ1bm5lciog
Y29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUo
dGhpc09iamVjdCkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjb250
cm9sbGVyLT53b3JrZXJUaHJlYWRDb3VudCgpKTsKLX0KLQogI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRQbGF0
Zm9ybU5hbWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7
CkBAIC0yMTI3LDcgKzIxMjEsNiBAQCBKU1N0YXRpY1ZhbHVlKiBUZXN0UnVubmVyOjpzdGF0aWNW
YWx1ZXMoKQogICAgIHN0YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY1ZhbHVlc1tdID0gewogICAg
ICAgICB7ICJnbG9iYWxGbGFnIiwgZ2V0R2xvYmFsRmxhZ0NhbGxiYWNrLCBzZXRHbG9iYWxGbGFn
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSB9LAogICAgICAgICB7ICJ3ZWJIaXN0
b3J5SXRlbUNvdW50IiwgZ2V0V2ViSGlzdG9yeUl0ZW1Db3VudENhbGxiYWNrLCAwLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
Ci0gICAgICAgIHsgIndvcmtlclRocmVhZENvdW50IiwgZ2V0V29ya2VyVGhyZWFkQ291bnRDYWxs
YmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXSU4pCiAgICAgICAgIHsgInBsYXRmb3JtTmFtZSIsIGdldFBsYXRmb3JtTmFtZUNh
bGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRl
eCBlOGIyYzYyZjM3Y2MwNTBiMWFhYWU0YmJjMjcxZWUwYjg3NDc5NmIzLi5hYTRhYWMyMWEwY2Qx
MTdkYWNjNDU1OGVkM2JjZDhiMzU4M2E3NWI4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5o
CkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCB3YWl0Rm9yUG9saWN5RGVs
ZWdhdGUoKTsKICAgICBzaXplX3Qgd2ViSGlzdG9yeUl0ZW1Db3VudCgpOwotICAgIHVuc2lnbmVk
IHdvcmtlclRocmVhZENvdW50KCkgY29uc3Q7CiAgICAgaW50IHdpbmRvd0NvdW50KCk7CiAgICAg
CiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNr
QmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxh
Y2tCZXJyeS5jcHAKaW5kZXggNGQ1OGNjNDE3MmFkZDg4OTcxMWFhNDFkNTkwNDcwMWVjYjM4MDhi
NS4uNmJjZWZlNWRhYjQ1YjY0MDliMWM1MmM1NTcxNDA2OGMwMzgxNWNmZiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJy
eS5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IldvcmtRdWV1ZS5oIgogI2luY2x1ZGUgIldvcmtRdWV1ZUl0ZW0uaCIKLSNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNs
dWRlIDxTaGFyZWRQb2ludGVyLmg+CkBAIC0zNDEsMTUgKzM0MCw2IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudCgpIGNvbnN0Ci17
Ci0jaWYgRU5BQkxFX1dPUktFUlMKLSAgICByZXR1cm4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3
b3JrZXJUaHJlYWRDb3VudCgpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCiB2
b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFZpc2l0ZWRMaW5rcygpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggNzEzYjdlOTA1NDA4ZDEzY2Q2N2Ni
MDA2MDQ0OTAxZWM1MTlhN2IxMC4uMzQxZTA3ZWI0MGFkYmY1MTk5YmI1OWIyZGI3ZDQwYjM4YTFi
YjY1MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTUzLDcgKzUzLDYgQEAKICNpbmNsdWRl
ICJXZWJUYXNrLmgiCiAjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2Vi
Vmlldy5oIgotI2luY2x1ZGUgIldlYldvcmtlckluZm8uaCIKICNpbmNsdWRlICJ2OC9pbmNsdWRl
L3Y4LmgiCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1lbW9yeT4KQEAgLTMwMiw3ICsz
MDEsNiBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5
SW52YWxpZGF0ZWRSZWdpb24iLCAmVGVzdFJ1bm5lcjo6ZGlzcGxheUludmFsaWRhdGVkUmVnaW9u
KTsKIAogICAgIC8vIFByb3BlcnRpZXMuCi0gICAgYmluZFByb3BlcnR5KCJ3b3JrZXJUaHJlYWRD
b3VudCIsICZUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudCk7CiAgICAgYmluZFByb3BlcnR5
KCJnbG9iYWxGbGFnIiwgJm1fZ2xvYmFsRmxhZyk7CiAgICAgYmluZFByb3BlcnR5KCJ0aXRsZVRl
eHREaXJlY3Rpb24iLCAmbV90aXRsZVRleHREaXJlY3Rpb24pOwogICAgIGJpbmRQcm9wZXJ0eSgi
cGxhdGZvcm1OYW1lIiwgJm1fcGxhdGZvcm1OYW1lKTsKQEAgLTE5ODUsMTEgKzE5ODMsNiBAQCB2
b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCi12b2lk
IFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAg
ICByZXN1bHQtPnNldChzdGF0aWNfY2FzdDxpbnQ+KFdlYldvcmtlckluZm86OmRlZGljYXRlZFdv
cmtlckNvdW50KCkpKTsKLX0KLQogLy8gTmVlZCB0aGVzZSBjb252ZXJzaW9ucyBiZWNhdXNlIHRo
ZSBmb3JtYXQgb2YgdGhlIHZhbHVlIGZvciBib29sZWFucwogLy8gbWF5IHZhcnkgLSBmb3IgZXhh
bXBsZSwgb24gbWFjICIxIiBhbmQgIjAiIGFyZSB1c2VkIGZvciBib29sZWFuLgogYm9vbCBUZXN0
UnVubmVyOjpjcHBWYXJpYW50VG9Cb29sKGNvbnN0IENwcFZhcmlhbnQmIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVz
dFJ1bm5lci5oCmluZGV4IDFjMzQ3MDhjYzEyZWI1YzFlMTE0ZWM3OTIzZWMzMmE2MjQyMTM5Mjku
LjBkNTQxYWZhZGFmY2E1OWYyODI3YTUwYjkxNjRiZjk0MjI2YTZiMjkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmgKQEAgLTQ4MSwxMCArNDgxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BsYXkoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzcGxheUludmFs
aWRhdGVkUmVnaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAg
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotICAgIC8vIFByb3BlcnRpZXMKLSAgICB2b2lkIHdvcmtlclRo
cmVhZENvdW50KENwcFZhcmlhbnQqKTsKLQogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8g
RmFsbGJhY2sgYW5kIHN0dWIgbWV0aG9kcwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHAKaW5kZXggMzBjZWEyNGZiNGVmOThjOTVjNWQ0YmUxNTZkMjE1YmQzOWMx
ODk0ZC4uNTgwYzUwMGRlOTZkMmMzN2NiMTc4NjZlZDZmNjg1MmVhZGJmNzFhYiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtMTI2LDExICsxMjYsNiBA
QCBzaXplX3QgVGVzdFJ1bm5lcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiAgICAgcmV0dXJuIGV3
a19oaXN0b3J5X2JhY2tfbGlzdF9sZW5ndGgoaGlzdG9yeSkgKyBld2tfaGlzdG9yeV9mb3J3YXJk
X2xpc3RfbGVuZ3RoKGhpc3RvcnkpOwogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3b3JrZXJU
aHJlYWRDb3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6d29ya2VyVGhyZWFkQ291bnQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpub3RpZnlEb25l
KCkKIHsKICAgICBpZiAobV93YWl0VG9EdW1wICYmICF0b3BMb2FkaW5nRnJhbWUgJiYgIVdvcmtR
dWV1ZTo6c2hhcmVkKCktPmNvdW50KCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1
bm5lckd0ay5jcHAKaW5kZXggMjIxZGUwYTc2OTYwNTY1MzM2ZDQ1NWU0YzgzNTQxMWEyZTM0Zjc0
My4uYTIzNzNiNjRmZmE1YmE0MWI4MWNiOWRjYjQ0ZDJiZDAwNjA2MTAzMCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcApAQCAtMTI3LDExICsxMjcsNiBAQCBz
aXplX3QgVGVzdFJ1bm5lcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiAgICAgICAgICAgICB3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xlbmd0aChsaXN0KTsKIH0KIAot
dW5zaWduZWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAotewotICAgIHJl
dHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OndvcmtlclRocmVhZENvdW50KCk7Ci19Ci0K
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKSBjb25z
dAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJndGsiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDg2NGVkYTg1YmI1OWFjYzVmZjBiN2ZkYTYwNjQx
ZWI2ZjgzOGQzNDUuLjdkNjJiOGZhNTFmZGY0ODkwZGYyZmRlYmNhN2YxMThkMTM2MjI3ODIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC03Myw3ICs3Myw2
IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViVHlwZXNJbnRlcm5hbC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgotI2ltcG9ydCA8
V2ViS2l0L1dlYldvcmtlcnNQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0y
OTksMTEgKzI5OCw2IEBAIHNpemVfdCBUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50KCkK
ICAgICByZXR1cm4gW1tbV2ViSGlzdG9yeSBvcHRpb25hbFNoYXJlZEhpc3RvcnldIGFsbEl0ZW1z
XSBjb3VudF07CiB9CiAKLXVuc2lnbmVkIFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gW1dlYldvcmtlcnNQcml2YXRlIHdvcmtlclRocmVhZENvdW50
XTsKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFt
ZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IDBlZDBjNjJlMWIwNDFjMGEwYTQ0ODI2
NGZjZmVhOGU2ZjMxODFiMzUuLjZkYWMyMmQ4NmI5OGQwZDE1YjcxYWE1YzJiMjI3YWFlZmVkZDJl
ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzAxLDEx
ICs3MDEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0CiAgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVu
LCBzY2hlbWUpOwogfQogCi1pbnQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKQotewot
ICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d29ya2VyVGhyZWFkQ291bnQoKTsK
LX0KLQogYm9vbCBUZXN0UnVubmVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQogewogICAg
IHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2hvdWxkQ2xvc2UobV9kcnQtPm1haW5G
cmFtZUFkYXB0ZXIoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0
UnVubmVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4
IDM2ZmVlYzFhODkxYTA2M2RiNzhmYzJlOWY2ZWRhZjc1ODJjYTFiMjUuLmVjMzVhOTFhMmU5MGEw
ZGEwYzI3ZDMzZjFmYjk4Mjc3NTZkNzkxMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5oCkBAIC01Niw3ICs1Niw2IEBAIGNsYXNzIER1bXBSZW5kZXJUcmVlOwogY2xhc3Mg
VGVzdFJ1bm5lciA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09CSkVDVAogICAgIFFfUFJPUEVS
VFkoaW50IHdlYkhpc3RvcnlJdGVtQ291bnQgUkVBRCB3ZWJIaXN0b3J5SXRlbUNvdW50KQotICAg
IFFfUFJPUEVSVFkoaW50IHdvcmtlclRocmVhZENvdW50IFJFQUQgd29ya2VyVGhyZWFkQ291bnQp
CiAgICAgUV9QUk9QRVJUWShib29sIGdsb2JhbEZsYWcgUkVBRCBnbG9iYWxGbGFnIFdSSVRFIHNl
dEdsb2JhbEZsYWcpCiBwdWJsaWM6CiAgICAgVGVzdFJ1bm5lcihXZWJDb3JlOjpEdW1wUmVuZGVy
VHJlZSopOwpAQCAtMjEyLDcgKzIxMSw2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBRU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgc2V0
VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2No
ZW1lKTsKLSAgICBpbnQgd29ya2VyVGhyZWFkQ291bnQoKTsKICAgICBib29sIGNhbGxTaG91bGRD
bG9zZU9uV2ViVmlldygpOwogICAgIC8vIEZvciBub3csIHRoaXMgaXMgYSBuby1vcC4gVGhpcyBt
YXkgY2hhbmdlIGRlcGVuZGluZyBvbiBvdXRjb21lIG9mCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzMzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggZjIzZjQ3MTJkZWVlZDljOTYwMzE1MWQ2YWZhOWEzMDU0
ODhkMjNmMy4uZmZjMWE3Y2U3MmI2NmRkNjk5OTExOWE3YzhjYjc4NzZjNzc1ZGI2OCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtMjI1LDE3ICsyMjUs
NiBAQCBzaXplX3QgVGVzdFJ1bm5lcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiAgICAgcmV0dXJu
IGNvdW50OwogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudCgpIGNv
bnN0Ci17Ci0gICAgQ09NUHRyPElXZWJXb3JrZXJzUHJpdmF0ZT4gd29ya2VyczsKLSAgICBpZiAo
RkFJTEVEKFdlYktpdENyZWF0ZUluc3RhbmNlKENMU0lEX1dlYldvcmtlcnNQcml2YXRlLCAwLCBf
X3V1aWRvZih3b3JrZXJzKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3b3JrZXJzKSkpKQot
ICAgICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25lZCBjb3VudDsKLSAgICBpZiAoRkFJTEVEKHdv
cmtlcnMtPndvcmtlclRocmVhZENvdW50KCZjb3VudCkpKQotICAgICAgICByZXR1cm4gMDsKLSAg
ICByZXR1cm4gY291bnQ7Ci19Ci0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVy
OjpwbGF0Zm9ybU5hbWUoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBw
bGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ3aW4iKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCAzMThmMmMzNjY4
ZDkyOWIwYjgyNDVlNTE5M2IxOGJjMDkxMzMyOTJhLi4yNjNmMDMzMTJhMjVjN2IyODVhZGIzOWY5
Y2MzNTI4NDRlOTZlNzc5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0
UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5j
cHAKQEAgLTMwNCwxMiArMzA0LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGlt
dW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
IH0KIAotdW5zaWduZWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAotewot
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gMDsKLX0KLQogdm9pZCBUZXN0UnVu
bmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKIHsKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA5MjFj
NDc1MGE1YzQyNGFkNmEyZWI2YmRmNmNmMjVlMzE2MWZlZmE2Li4wOTI4ZjFhOWU1OTgzMDcxZjE0
ZDNkM2Y2ODJmMGIzZTMxODJhYjEwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTg0
LDcgKzg0LDYgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAgLy8gU3BlY2lhbCBET00g
dmFyaWFibGVzLgogICAgIGF0dHJpYnV0ZSBib29sZWFuIGdsb2JhbEZsYWc7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd29ya2VyVGhyZWFkQ291bnQ7CiAKICAgICAvLyBS
ZXBhaW50IHRlc3RpbmcuCiAgICAgdm9pZCB0ZXN0UmVwYWludCgpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDc2
ZGRhOWE3OWNiYjhkODkwNmY1YzczOWIzMDNhZmJhMGY5ZDU0NC4uZTczM2M1NDY4NzE4MjBkNGEw
NzRmZWY0NDg2NmRlZGRlMTk5N2VkMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC01NjksMTEgKzU2OSw2IEBAIHN0
YXRpYyB2b2lkIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2sodW5zaWduZWQgaW5kZXgpCiAgICAgSlNW
YWx1ZVVucHJvdGVjdChjb250ZXh0LCBjYWxsYmFjayk7CiB9CiAKLXVuc2lnbmVkIFRlc3RSdW5u
ZXI6OndvcmtlclRocmVhZENvdW50KCkKLXsKLSAgICByZXR1cm4gV0tCdW5kbGVHZXRXb3JrZXJU
aHJlYWRDb3VudChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCkpOwotfQotCiB2b2lk
IFRlc3RSdW5uZXI6OmFkZENocm9tZUlucHV0RmllbGQoSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsK
ICAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhBZGRDaHJvbWVJbnB1dEZpZWxkQ2FsbGJhY2tJ
RCwgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA4NGYyYmU3NGQ2NTQzNTQ5NmRmNGJjYjk0MzUzYjk3Zjg5
MmE4MGJjLi5hMTc2MjE1ODQ5YjczZDAzOTdlNmQ2Mzg0NmViN2EyYjBlYjM4ZDRmIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApA
QCAtMjIzLDggKzIyMyw2IEBAIHB1YmxpYzoKICAgICBib29sIGdsb2JhbEZsYWcoKSBjb25zdCB7
IHJldHVybiBtX2dsb2JhbEZsYWc7IH0KICAgICB2b2lkIHNldEdsb2JhbEZsYWcoYm9vbCB2YWx1
ZSkgeyBtX2dsb2JhbEZsYWcgPSB2YWx1ZTsgfQogCi0gICAgdW5zaWduZWQgd29ya2VyVGhyZWFk
Q291bnQoKTsKLSAgICAKICAgICB2b2lkIGFkZENocm9tZUlucHV0RmllbGQoSlNWYWx1ZVJlZik7
CiAgICAgdm9pZCByZW1vdmVDaHJvbWVJbnB1dEZpZWxkKEpTVmFsdWVSZWYpOwogICAgIHZvaWQg
Zm9jdXNXZWJWaWV3KEpTVmFsdWVSZWYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzZWExNTljYzI1ZjI1NTFhNjgyMDZi
N2YwYTRiMDBmNDQ5YzgyNWQuLjUwNjNiZDIyMWI5NDI1YzdiYmFiY2E4MTFjZTdlYTkxZjE4Zjc4
ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZy
b20gVGVzdFJ1bm5lciB0byBXZWJDb3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0ZXN0cyB0ZXN0UnVubmVyLT5pbnRl
cm5hbHMuCisKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvcmVzb3VyY2VzL2RlZGljYXRlZC13b3Jr
ZXItbGlmZWN5Y2xlLmpzOgorICAgICAgICAocnVuVGVzdHMud29ya2VyLm9ubWVzc2FnZSk6Cisg
ICAgICAgIChydW5UZXN0cyk6CisgICAgICAgIChvcnBoYW5lZFdvcmtlckV4aXRlZC53b3JrZXIu
b25tZXNzYWdlKToKKyAgICAgICAgKG9ycGhhbmVkV29ya2VyRXhpdGVkKToKKyAgICAgICAgKiBm
YXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUuanM6CisgICAgICAgIChydW5U
ZXN0cy53b3JrZXIub25tZXNzYWdlKToKKyAgICAgICAgKHJ1blRlc3RzKToKKyAgICAgICAgKiBm
YXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci11dGlsLmpzOgorICAgICAgICAoLnJldHVybik6
CisgICAgICAgICh3YWl0VW50aWxUaHJlYWRDb3VudE1hdGNoZXMpOgorICAgICAgICAqIGZhc3Qv
d29ya2Vycy93b3JrZXItY2xvc2UtbW9yZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0aWwuanM6CisgICAgICAgICgucmV0dXJuKToKKyAgICAg
ICAgKHdhaXRVbnRpbFRocmVhZENvdW50TWF0Y2hlcyk6CisKIDIwMTMtMDItMDggIE1hdHQgRmFs
a2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5y
ZXZpZXdlZCBnYXJkZW5pbmcuIEFkanVzdGluZyBleHBlY3RhdGlvbnMgZm9yIHR3byBoaWRwaSB0
ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvZGVk
aWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVz
b3VyY2VzL2RlZGljYXRlZC13b3JrZXItbGlmZWN5Y2xlLmpzCmluZGV4IDAxN2Q2ZjhiNDUzYzBm
NjA3ZGRkMjU0ZjgxZWEzZmI4YmMxOGNmMWEuLjk1NmRkOGRjYmYwOTE2NjJkNDE3ZDUzMmI4NDY2
ODRmN2FjMGEyZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJj
ZXMvZGVkaWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3Jlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLWxpZmVjeWNsZS5qcwpAQCAtMTcsMTAg
KzE3LDEwIEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoInBp
bmciKTsKICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lci53b3Jr
ZXJUaHJlYWRDb3VudCA9PSAxKQorICAgICAgICAgICAgaWYgKGludGVybmFscy53b3JrZXJUaHJl
YWRDb3VudCA9PSAxKQogICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9ycGhhbmVkIHdvcmtl
ciB0aHJlYWQgY3JlYXRlZC4iKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJBZnRlciB0aHJlYWQgY3JlYXRpb246IHRlc3RSdW5uZXIud29ya2VyVGhyZWFk
Q291bnQgPSAiICsgdGVzdFJ1bm5lci53b3JrZXJUaHJlYWRDb3VudCk7CisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiBpbnRlcm5hbHMud29ya2VyVGhy
ZWFkQ291bnQgPSAiICsgaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50KTsKICAgICAgICAgfQog
CiAgICAgICAgIC8vIE9ycGhhbiBvdXIgd29ya2VyIChubyBtb3JlIHJlZmVyZW5jZXMgdG8gaXQp
IGFuZCB3YWl0IGZvciBpdCB0byBleGl0LgpAQCAtNDAsMTAgKzQwLDEwIEBAIGZ1bmN0aW9uIG9y
cGhhbmVkV29ya2VyRXhpdGVkKCkKICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoInBpbmciKTsKICAg
ICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lci53b3JrZXJUaHJlYWRD
b3VudCA9PSAxKQorICAgICAgICAgICAgaWYgKGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9
PSAxKQogICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9ycGhhbmVkIHRpbWVvdXQgd29ya2Vy
IHRocmVhZCBjcmVhdGVkLiIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkFmdGVyIHRocmVhZCBjcmVhdGlvbjogdGVzdFJ1bm5lci53b3JrZXJUaHJlYWRD
b3VudCA9ICIgKyB0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50KTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJBZnRlciB0aHJlYWQgY3JlYXRpb246IGludGVybmFscy53b3JrZXJUaHJl
YWRDb3VudCA9ICIgKyBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQpOwogICAgICAgICB9CiAg
ICAgICAgIC8vIFNlbmQgYSBtZXNzYWdlIHRoYXQgc3RhcnRzIHVwIGFuIGFzeW5jIG9wZXJhdGlv
biwgdG8gbWFrZSBzdXJlIHRoZSB0aHJlYWQgZXhpdHMgd2hlbiBpdCBjb21wbGV0ZXMuCiAgICAg
ICAgIC8vIEZJWE1FOiBEaXNhYmxlZCBmb3Igbm93IC0gcmUtZW5hYmxlIHdoZW4gYnVnIDI4NzAy
IGlzIGZpeGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNl
cy93b3JrZXItbGlmZWN5Y2xlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNl
cy93b3JrZXItbGlmZWN5Y2xlLmpzCmluZGV4IGE1YzUyOTc2ODczZWJjMWJlOGYyYjg0NmQ0YmRl
OTQ4ZjE5MWQ3MzEuLjYzYjQ4ZDkzODI2MmVjNDMxYjE3YjhhNDhmYmQ2ZGZjN2Y2ZDdjMzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWxpZmVj
eWNsZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1s
aWZlY3ljbGUuanMKQEAgLTExLDE1ICsxMSwxNSBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
IGZ1bmN0aW9uIHJ1blRlc3RzKCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIGxvZygiUEFTUzogd29ya2VyVGhyZWFkQ291bnQgPSAiICsgdGVzdFJ1bm5lci53b3JrZXJU
aHJlYWRDb3VudCk7CisgICAgICAgIGxvZygiUEFTUzogd29ya2VyVGhyZWFkQ291bnQgPSAiICsg
aW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50KTsKICAgICB2YXIgd29ya2VyID0gY3JlYXRlV29y
a2VyKCk7CiAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJwaW5nIik7CiAgICAgd29ya2VyLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQgPT0gMSkKKyAg
ICAgICAgICAgIGlmIChpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQgPT0gMSkKICAgICAgICAg
ICAgICAgICBsb2coIlBBU1M6IFdvcmtlciB0aHJlYWQgY3JlYXRlZCIpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiB0
ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50ID0gIiArIHRlc3RSdW5uZXIud29ya2VyVGhyZWFk
Q291bnQpOworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQWZ0ZXIgdGhyZWFkIGNyZWF0aW9u
OiBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQgPSAiICsgaW50ZXJuYWxzLndvcmtlclRocmVh
ZENvdW50KTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFNodXRkb3duIHRoZSB3b3JrZXIuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci11dGls
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qcwpp
bmRleCA3Y2NkNDczMzY2MDAyMjg2MTNlY2QzMzE1ZjgyZDA5YWU0NzJlMTRmLi4yMmEwN2QyNmZl
YmNmMzQ1NDdmOTljN2NiMTljNzBlMDNmMDk4YjJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci11dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0aWwuanMKQEAgLTM2LDcgKzM2LDcgQEAgZnVu
Y3Rpb24gd2FpdFVudGlsVGhyZWFkQ291bnRNYXRjaGVzKGNhbGxiYWNrLCBjb3VudCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICh0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50
ID09IGNvdW50KSB7CisgICAgaWYgKGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9PSBjb3Vu
dCkgewogICAgICAgICAvLyBXb3JrZXIgdGhyZWFkcyBoYXZlIGV4aXRlZC4KICAgICAgICAgY2Fs
bGJhY2soKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1jbG9zZS1tb3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29y
a2VyLWNsb3NlLW1vcmUuaHRtbAppbmRleCA4OGU3ZjNkZjIwMDlhMTUwMmZlZWJiZTY5NDYxMGY4
ZDNiMWMyNjQ3Li45MDQ5M2FmZDU4NGUxMGE2MGIzOWRjNTg4Mzc2YmFhYjBiMzU2NjA2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLWNsb3NlLW1vcmUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLWNsb3NlLW1vcmUuaHRtbApAQCAt
MTcsNyArMTcsNyBAQCB2YXIgd29ya2VyOwogZnVuY3Rpb24gc3RhcnRXb3JrZXIoKQogewogICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgbG9nKCJQQVNTOiB3b3JrZXJUaHJlYWRD
b3VudCA9ICIgKyB0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50KTsKKyAgICAgICAgbG9nKCJQ
QVNTOiB3b3JrZXJUaHJlYWRDb3VudCA9ICIgKyBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQp
OwogICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy93b3JrZXItY2xvc2UuanMnKTsK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNl
cy93b3JrZXItdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9yZXNvdXJj
ZXMvd29ya2VyLXV0aWwuanMKaW5kZXggN2NjZDQ3MzM2NjAwMjI4NjEzZWNkMzMxNWY4MmQwOWFl
NDcyZTE0Zi4uMjJhMDdkMjZmZWJjZjM0NTQ3Zjk5YzdjYjE5YzcwZTAzZjA5OGIyZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRp
bC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtl
ci11dGlsLmpzCkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9uIHdhaXRVbnRpbFRocmVhZENvdW50
TWF0Y2hlcyhjYWxsYmFjaywgY291bnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAodGVzdFJ1bm5lci53b3JrZXJUaHJlYWRDb3VudCA9PSBjb3VudCkgeworICAgIGlmIChpbnRl
cm5hbHMud29ya2VyVGhyZWFkQ291bnQgPT0gY291bnQpIHsKICAgICAgICAgLy8gV29ya2VyIHRo
cmVhZHMgaGF2ZSBleGl0ZWQuCiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSBlbHNlIHsKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMmM4ZWU5ZjRlMTA0MTVmNDVl
Mzk1YjMzZTNjZjI5NjNlMWM4MjBiLi41Y2M5NTNjNmQ5ZWNmZjk2ZmMyMGMzMzJiOWI5N2I1ZTY1
NGFlZGJiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2Vi
Q29yZSBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMy0wMi0wNyAgRGF2
aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZWZpbGVzIHNob3Vs
ZCB3b3JrIGZvciBhcmJpdHJhcnkgU0RLcyBhbmQgYXJjaGl0ZWN0dXJlcyBvbiBBcHBsZSBwb3J0
cwo=
</data>
<flag name="commit-queue"
          id="207028"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187348</attachid>
            <date>2013-02-08 12:28:39 -0800</date>
            <delta_ts>2013-02-08 21:19:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109239-20130208014437.patch.txt</filename>
            <type>text/plain</type>
            <size>49473</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjczZWFkYjAxZWY3NThh
MTc3OGEwOGU2OWUwYTJmMzU0MzczZjk0NC4uZDZjYTBhZjQyMGY3MDUyZjZhM2U4YmI4MzY5ODMw
YzljZDBlYjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29ya2Vy
VGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgdGhlIG5ldyByZWFkLW9u
bHkgcHJvcGVydHkgd29ya2VyVGhyZWFkQ291bnQuCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndvcmtlclRocmVhZENvdW50
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6Cisg
ICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwog
MjAxMy0wMi0wOCAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogZGlzYWJsZSBwcm9maWxlIHR5cGUgc3dpdGNoaW5nIHdoaWxlIHBy
b2ZpbGUgaW4gcHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDEwYjk1ZmNkNzc5MDRjNTBhYWZjNDcxZGUx
ZjU1MjQzZWM5ZWNlZS4uOThlM2JhMDA1YmYwZTBmNDg1MTkwYzJmNTE3YjNiNzZmMzcyYjE2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZy
b20gVGVzdFJ1bm5lciB0byBXZWJDb3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxMy0wMi0wNyAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIENvcnJlY3Rpb25zIHRoZSBleHBvcnRzIGRlZmluaXRpb24gZmls
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBlMDEzN2Q2Mjc1YjEzZjQ2NzhjODg0MDI2NzcwZGI5NDkw
OGI0NTMxLi42YjdkYzAyNzIyZWE2YjA4MDdmMjU5NDNmNjJlMTFjODJiMGRmMjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBm
cm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaDoKKwogMjAxMy0wMi0wNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHBhdXNlQW5pbWF0aW9uL3BhdXNlVHJhbnNpdGlvbiBm
cm9tIFRlc3RSdW5uZXIgdG8gSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMThhYzdhODQx
NWZkODQ1NTc2MWM4MGVlODkxY2QzZTFkNDhjNTllOS4uYTkzYjk3ZTMzNjU2OTM0N2ExNTk2Nzcx
MGNhYWJiZjcwYTliNmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEz
LTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJu
YWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDky
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGspOgorCiAyMDEzLTAyLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBDbGVhbnVwIGNvbW1hbmQtbGluZSBkZWZp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggY2MwNTY5MWU2MzViMzk0NzcwOWUwODc1NTkyN2M4ZGYy
NzBjOWE1OS4uNzUyYmE0ZjhhMGNhMmU2N2FiOGM0NzdhNDk4MTJmODNmOTk5ZTIwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQg
ZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBHZXQgcmlkIG9mIFdlYldvcmtlcnNQcml2YXRlLCB3
aGljaCB3YXMgb25seSBuZWVkZWQgZm9yIERSVC4KKworICAgICAgICAqIFdlYktpdC5leHA6Cisg
ICAgICAgICogV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IFdvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUubW06IFJlbW92ZWQuCisKIDIwMTMtMDItMDcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDIyMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDEyMDY0ODczMDkz
ZjNkNWU4NzliNGM1MDViMGFmMDRiNGI3NGI0YmQuLjU5NTE5ZDQwMTUyOGQ2YjVkM2ZmZDQyOTk1
ZmI3NTI4MjdmYTgwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDIt
MDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92
ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTMtMDItMDcgIEJlbmphbWluIFBv
dWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBwYXVzZUFuaW1hdGlv
bi9wYXVzZVRyYW5zaXRpb24gZnJvbSBUZXN0UnVubmVyIHRvIEludGVybmFscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDhkMTdmMWNhYTNkNDI0YTY4MmIwOWRjMGExZjI5Yjc0ZTA2ZmM2NmMuLjFkNzUx
MTljNDlmYzU0MmZlOTJjNTVjNzdhMGNjMWJiZTkxMmMzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KKworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5l
ciB0byBXZWJDb3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDEz
LTAyLTA3ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gQ29ycmVjdGlvbnMgdGhlIGV4cG9ydHMgZGVmaW5pdGlvbiBmaWxlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDY5OWEyNzc1ZWQ1NzQ1ODk1NTgxYzYwZjMzMzk4Y2MwNzNjZDAwZjMuLjViNWRjMGIz
MjIyYWExMzI3ZjkwY2ZhYmEwMDBlMDhkOWI0Mjg1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5lciB0byBXZWJD
b3JlIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAg
ICAgICAgKEluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwOiBSZW1vdmUgYSB1c2VsZXNzICNpbmNsdWRlLgorCiAyMDEzLTAyLTA3ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQyMjEyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IGFkNGRkOWRiODE1MjUyNDZjMTJiOTlhYmQxYjc3NDdhNWI1MThjOWQuLjA1OGIwYjk5
MWJmNjljY2Y0YTYwNDczZGQ2MTk4MjVjNmNiZThiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKICNp
bmNsdWRlICJUeXBlQ29udmVyc2lvbnMuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5o
IgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
ZmZlci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCkBAIC0yNzgsNiArMjc5LDE1
IEBAIEludGVybmFsU2V0dGluZ3MqIEludGVybmFsczo6c2V0dGluZ3MoKSBjb25zdAogICAgIHJl
dHVybiBJbnRlcm5hbFNldHRpbmdzOjpmcm9tKHBhZ2UpOwogfQogCit1bnNpZ25lZCBJbnRlcm5h
bHM6OndvcmtlclRocmVhZENvdW50KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoV09SS0VSUykKKyAg
ICByZXR1cm4gV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpOworI2Vsc2UKKyAgICBy
ZXR1cm4gMDsKKyNlbmRpZgorfQorCiBTdHJpbmcgSW50ZXJuYWxzOjphZGRyZXNzKE5vZGUqIG5v
ZGUpCiB7CiAgICAgY2hhciBidWZbMzJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5k
ZXggNjQ2YjE1NTlmODNmMzI0M2ZmZTZiNjJlNDFhYzQyOWJhY2U4MTE3MS4uMWIwOWFlY2EzZGNj
N2M4NTZlMDkwZTkxMmYwYWEzYWI0OTg0YThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCkBAIC0yMDYsNiArMjA2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBp
bnRlcm5hbHNJZDsKIAogICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7Cisg
ICAgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QmF0
dGVyeVN0YXR1cyhEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBib29sIGNoYXJn
aW5nLCBkb3VibGUgY2hhcmdpbmdUaW1lLCBkb3VibGUgZGlzY2hhcmdpbmdUaW1lLCBkb3VibGUg
bGV2ZWwsIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IGE1MGI3OWNlNWM2YjRhYzc3OTNkODg3YjI1NjJmNWY1ODNkYWY0NTUuLmNjMTQxNDdl
NGZmYjY4OTAwZTA0MDczMTg1OWViNjE1NTkzN2RhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTE3Miw2ICsxNzIsNyBAQAogICAgIGJvb2xlYW4gaXNQYWdlQm94Vmlz
aWJsZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBz
ZXR0aW5nczsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3b3JrZXJUaHJl
YWRDb3VudDsKIAogICAgIC8vIEZsYWdzIGZvciBsYXllclRyZWVBc1RleHQuCiAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTID0gMTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMw
OGNjYzNmY2Y2NWIyOTcwYWJhMTlmZTU0NDRhNDhjNWI5M2YwOTcuLmI2Mzg5M2U4NmIyMDVmNGQx
MWEzMDUwZDlkNTcyN2Q4OWM4NzBmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODUsOCArODUsNiBAQAogCQkzQUJCM0M3QTEzMDlD
M0I1MDBFOTNEOTQgLyogV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQkIzQzc4MTMwOUMzQjUwMEU5M0Q5NCAv
KiBXZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oICovOyB9OwogCQkzQUJCM0M3QjEzMDlDM0I1MDBF
OTNEOTQgLyogV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzQUJCM0M3OTEzMDlDM0I1MDBFOTNEOTQgLyogV2Vi
U3RvcmFnZVRyYWNrZXJDbGllbnQubW0gKi87IH07CiAJCTNBRTE1RDUwMTJEQkRFRDQwMDkzMjND
OCAvKiBXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzQUUxNUQ0RjEyREJERUQ0MDA5MzIzQzggLyogV2ViU3Rv
cmFnZU1hbmFnZXJJbnRlcm5hbC5oICovOyB9OwotCQk0MUY0NDg0RjEwMzM4RThDMDAzMEU1NUUg
LyogV2ViV29ya2Vyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQx
RjQ0ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjQ0ODRFMTAzMzhFOEMwMDMw
RTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSAqLzsgfTsKIAkJNDRCQjhCMTQxMjQxQTAyMjAw
MUUzQTIyIC8qIFdlYkFyY2hpdmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDRCQjhCMTMxMjQxQTAyMjAwMUUzQTIyIC8qIFdlYkFyY2hp
dmVJbnRlcm5hbC5oICovOyB9OwogCQk0QkY5OUY5MDBBRTA1MEJDMDA4MTVDMkIgLyogV2ViRWRp
dG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QkY5OUY4RTBBRTA1MEJDMDA4MTVDMkIgLyogV2ViRWRpdG9yQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJNEJGOTlGOTEwQUUwNTBCQzAwODE1QzJC
IC8qIFdlYkVkaXRvckNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRCRjk5RjhGMEFFMDUwQkMwMDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQu
bW0gKi87IH07CkBAIC00ODEsOCArNDc5LDYgQEAKIAkJM0FCQjNDNzgxMzA5QzNCNTAwRTkzRDk0
IC8qIFdlYlN0b3JhZ2VUcmFja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlN0b3JhZ2VUcmFja2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTNBQkIzQzc5MTMwOUMzQjUwMEU5M0Q5NCAvKiBXZWJTdG9yYWdlVHJhY2tlckNsaWVu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlN0b3JhZ2VU
cmFja2VyQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzQUUxNUQ0RjEy
REJERUQ0MDA5MzIzQzggLyogV2ViU3RvcmFnZU1hbmFnZXJJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxRjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJX
b3JrZXJzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJXb3Jr
ZXJzUHJpdmF0ZS5oOyBwYXRoID0gbWFjL1dvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFGNDQ4NEUxMDMzOEU4QzAwMzBFNTVFIC8qIFdl
YldvcmtlcnNQcml2YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV2ViV29ya2Vyc1ByaXZhdGUubW07IHBhdGggPSBtYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJp
dmF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5MDk4QjkwRjhGODJERjAw
NzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NEJCOEIxMzEyNDFBMDIyMDAxRTNBMjIgLyogV2ViQXJjaGl2ZUludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFyY2hpdmVJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkY5OUY4RTBBRTA1MEJDMDA4MTVDMkIgLyog
V2ViRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJF
ZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMSw3ICs3OTcs
NiBAQAogCQkJCUY1QjM2QjQwMDI4MURFODcwMTg2MzVDQiAvKiBXZWJDb3JlU3VwcG9ydCAqLywK
IAkJCQk5QzdDQUJCQjAxOTBBMzdDMEVDQTE2RUEgLyogV2ViVmlldyAqLywKIAkJCQkxQzY4RjYz
RjA5NUI1RjlDMDBDMjk4NEUgLyogV2ViSW5zcGVjdG9yICovLAotCQkJCTQxRjQ0ODRDMTAzMzhF
NTcwMDMwRTU1RSAvKiBXb3JrZXJzICovLAogCQkJCUY3RUJFRTU5MDNGOURCMjIwM0NBMERFNiAv
KiBDYXJib24gKi8sCiAJCQkJMDg5QzE2NjVGRTg0MTE1OEMwMkFBQzA3IC8qIFJlc291cmNlcyAq
LywKIAkJCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRnJhbWV3b3JrcyBhbmQgTGlicmFy
aWVzICovLApAQCAtMTAzMywxNSArMTAyOCw2IEBACiAJCQl0YWJXaWR0aCA9IDQ7CiAJCQl1c2Vz
VGFicyA9IDA7CiAJCX07Ci0JCTQxRjQ0ODRDMTAzMzhFNTcwMDMwRTU1RSAvKiBXb3JrZXJzICov
ID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk0MUY0NDg0RDEw
MzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUuaCAqLywKLQkJCQk0MUY0NDg0RTEw
MzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUubW0gKi8sCi0JCQkpOwotCQkJbmFt
ZSA9IFdvcmtlcnM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk1MTFGM0ZD
MzBDRUNDN0UyMDA4NTI1NjUgLyogU3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0xNjI4LDcgKzE2MTQsNiBAQAogCQkJCUJDMkU0NjREMEZEOEE5
NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwOUIw
ODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM5ODEwNzEwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MUY0NDg0RjEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjAwMiw3ICsxOTg3LDYgQEAKIAkJCQlDMEM1QjNFRjExNzdBNEEw
MDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM5ODExMDcwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXcubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzJFNDY0RTBGRDhBOTY4MDBBOUQ5REUgLyogV2ViVmlld0RhdGEubW0gaW4gU291cmNl
cyAqLywKLQkJCQk0MUY0NDg1MDEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IDQ4YmNmMWU2
ZmQyYWM5ZTliOWM4NDBjZDUyYWYxZTVmMzZjYzVkYTQuLjhiYjQ4NmRhZDljMzc4ZmQ2M2NlYmE1
NWU0MDJmYTYwMzAyMzYyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNTgsNyAr
NTgsNiBAQAogI2luY2x1ZGUgPFRleHRJdGVyYXRvci5oPgogI2luY2x1ZGUgPGJpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPGhpc3RvcnkvSGlzdG9yeUl0ZW0uaD4KLSNpbmNs
dWRlIDx3b3JrZXJzL1dvcmtlclRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKQEAgLTQzOSwxNSArNDM4LDYgQEAgc2l6ZV90
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6amF2YVNjcmlwdE9iamVjdHNDb3VudCgpCiAgICAg
cmV0dXJuIFdlYkNvcmU6OkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVhcC5v
YmplY3RDb3VudCgpOwogfQogCi11bnNpZ25lZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6Ondv
cmtlclRocmVhZENvdW50KCkKLXsKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICByZXR1cm4gV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpOwotI2Vsc2UKLSAgICByZXR1
cm4gMDsKLSNlbmRpZgotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpCiB7CiAgICAgV2Vi
Q29yZTo6bWVtb3J5Q2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChp
bnRlcnZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDYyZGE1N2NjN2Y2YjM1ZTBiNzQ1
NzFkNjQ3ZjZmNzVhMTQxMjQ1MGQuLmU5MjUwNTc5MmJmYTVjZWU0NzA0NzliOGYzYzBkMjNmNzI0
YWM0ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC05NSw3ICs5NSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCgpOwogICAgIHN0YXRpYyB2
b2lkIGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0VW50
aWxEb25lKTsKICAgICBzdGF0aWMgc2l6ZV90IGphdmFTY3JpcHRPYmplY3RzQ291bnQoKTsKLSAg
ICBzdGF0aWMgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKTsKIAogICAgIHN0YXRpYyB2b2lk
IHNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZG91YmxlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAKaW5kZXggOTIzNDA3YmZmOTM3YjIyNDgxYTg0MjFmMzdjNzU1NWRiNjAy
MGY1Zi4uYmMxM2FmYWI0ZmExOGFiOGJlNjE5NWJlYzIxMGM2MjBkMWY4OGU0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCkBAIC02OCw3ICs2OCw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxl
V3JhcHBlckF0ay5oIgotI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIndlYmtp
dGdsb2JhbHNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKQEAgLTUzMiwxNSArNTMxLDYgQEAgdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyT3BlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkK
ICAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+c2V0T3BlbmVyKDApOwogfQogCi11bnNpZ25l
ZCBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3b3JrZXJUaHJlYWRDb3VudCgpCi17Ci0j
aWYgRU5BQkxFKFdPUktFUlMpCi0gICAgcmV0dXJuIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkQ291bnQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQogYm9v
bCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJpbmcoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgY29uc3QgZ2NoYXIqIHRhcmdldFN0cmluZywgV2ViS2l0RmluZE9wdGlvbnMgZmluZE9w
dGlvbnMpCiB7CiAgICAgcmV0dXJuIGNvcmUod2ViVmlldyktPmZpbmRTdHJpbmcoU3RyaW5nOjpm
cm9tVVRGOCh0YXJnZXRTdHJpbmcpLCBmaW5kT3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
CmluZGV4IGQxMmJiZDQ3N2JmMTNmZmYwMjA3ZTE5OGE3MzFkZDY1MzdjOWNhN2IuLjQ3ZWNhN2Ez
ZDZiYWI3OTIwNjAzZjMwN2E3ZDgxN2FiODgxMTFhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
CkBAIC0xMDUsNyArMTA1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHdoaXRlTGlzdEFj
Y2Vzc0Zyb21PcmlnaW4oY29uc3QgZ2NoYXIqIHNvdXJjZU9yaWdpbiwgY29uc3QgZ2NoYXIqIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IGdjaGFyKiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZVdoaXRlTGlz
dEFjY2Vzc0Zyb21PcmlnaW4oY29uc3QgY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBjaGFyKiBk
ZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHN0YXRpYyB2b2lkIHJlc2V0T3JpZ2luQWNj
ZXNzV2hpdGVMaXN0cygpOwotICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgd29ya2VyVGhyZWFkQ291
bnQoKTsKIAogICAgIHN0YXRpYyB2b2lkIHJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKFdlYktp
dFdlYlZpZXcqKTsKICAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9u
KFdlYktpdFdlYlZpZXcqLCBib29sIGFsbG93ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViS2l0LmV4cCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAKaW5kZXggMDVj
YjMyNzlkZGQyOTdjNmJiY2UwYjJhYzBmOGViODk0ZmU2NjAwYy4uYWZhMTY5NDNkN2RiYzRlMTdk
MjdkYjZlZTE1MTg5MmY0MTlhMmU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
S2l0LmV4cAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQuZXhwCkBAIC00MCw3ICs0MCw2
IEBACiAub2JqY19jbGFzc19uYW1lX1dlYlVSTHNXaXRoVGl0bGVzCiAub2JqY19jbGFzc19uYW1l
X1dlYlVzZXJDb250ZW50VVJMUGF0dGVybgogLm9iamNfY2xhc3NfbmFtZV9XZWJWaWV3Ci0ub2Jq
Y19jbGFzc19uYW1lX1dlYldvcmtlcnNQcml2YXRlCiBfSElXZWJWaWV3Q3JlYXRlCiBfSElXZWJW
aWV3R2V0V2ViVmlldwogX1dlYkFjdGlvbkJ1dHRvbktleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMv
V29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwZmY2MGQ1ZGVkOTk3MmJjYzJkOWNiOTBkNWE3NzRkOTQ5OTkwMzQ3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dvcmtl
cnMvV2ViV29ya2Vyc1ByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1AaW50
ZXJmYWNlIFdlYldvcmtlcnNQcml2YXRlIDogTlNPYmplY3QgewotfQotCi0vLyBSZXR1cm5zIHRo
ZSB0b3RhbCBudW1iZXIgb2YgY3VycmVudGx5IGV4ZWN1dGluZyB3b3JrZXIgdGhyZWFkcyAoc2hh
cmVkICsgZGVkaWNhdGVkKS4KLSsgKHVuc2lnbmVkKSB3b3JrZXJUaHJlYWRDb3VudDsKLQotQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2ZWE4YzA1MWI4ODc1NjVjNWMwNGUzN2JjOTVh
N2YxZGIwZjc2MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5tbQorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJXZWJXb3JrZXJzUHJpdmF0ZS5oIgotCi0j
aW1wb3J0IDxXZWJDb3JlL1dvcmtlclRocmVhZC5oPgotCi1AaW1wbGVtZW50YXRpb24gV2ViV29y
a2Vyc1ByaXZhdGUKLQotKyAodW5zaWduZWQpIHdvcmtlclRocmVhZENvdW50Ci17Ci0jaWYgZGVm
aW5lZChFTkFCTEVfV09SS0VSUykgJiYgRU5BQkxFX1dPUktFUlMKLSAgICByZXR1cm4gV2ViQ29y
ZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpOwotI2Vsc2UKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDVhYjk0MmY0
ZTZlYjNlN2UyNTU1MTcxNzc4M2I1NTgzNmVmYmNmNDkuLjBiNzg1NmEyM2QzOTIzYWM1MDZkODlk
NTdiMTNlYTM3NTNjMjhhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03Nyw3ICs3Nyw2
IEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGhpcmRQYXJ0eUNvb2tp
ZXNRdC5oIgogI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydC5oIgotI2luY2x1ZGUgIldvcmtl
clRocmVhZC5oIgogI2luY2x1ZGUgInF0X3J1bnRpbWUuaCIKICNpbmNsdWRlICJxd2ViZWxlbWVu
dC5oIgogI2luY2x1ZGUgInF3ZWJoaXN0b3J5LmgiCkBAIC0yMDksMTUgKzIwOCw2IEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om92ZXJ3cml0ZVBsdWdpbkRpcmVjdG9yaWVzKCkKICAg
ICBkYi0+cmVmcmVzaCgpOwogfQogCi1pbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Ondvcmtl
clRocmVhZENvdW50KCkKLXsKLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICByZXR1cm4gV2ViQ29y
ZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpOwotI2Vsc2UKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXREdW1wUmVu
ZGVyVHJlZU1vZGVFbmFibGVkKGJvb2wgYikKIHsKICAgICBRV2ViUGFnZUFkYXB0ZXI6OmRydFJ1
biA9IGI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMmQ2YTg4Njc2YzY0YjdlMGJkZjgzNTZiY2Q3
NWJmOTdjNDVlODRlYy4uNTFiODVhMTUyZWZkYzkyMmM3YzgwMjY2YjczMzJjYjk0YzUzZGU1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTM5LDggKzEzOSw2IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoUVdlYlBh
Z2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSk7CiAgICAgc3RhdGljIGludCBudW1i
ZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhRV2ViUGFnZUFkYXB0ZXIq
KTsKIAotICAgIHN0YXRpYyBpbnQgd29ya2VyVGhyZWFkQ291bnQoKTsKLQogICAgIHN0YXRpYyBR
U3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBRV2ViRWxlbWVudCYgbGlzdEl0ZW0p
OwogICAgIHN0YXRpYyBRVmFyaWFudE1hcCBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZElu
Zm8oY29uc3QgUVdlYkVsZW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViS2l0LnZjcHJvai9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggMzM5MTI3ZDU0YjUwZjI2OGRj
MzgxZTVkOGZmZWJmYjE0YWVkY2NmNy4uNTEzYWM4NGRiOTI2NWY3YjIzYTg1YjEwYjIxN2EyNTQ0
ZGZkM2Q2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJL
aXRFeHBvcnRzLmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dl
YktpdEV4cG9ydHMuZGVmLmluCkBAIC0zOTQsMyArMzk0LDcgQEAgRVhQT1JUUwogICAgICAgICA/
cmVzb3VyY2VGb3JVUkxATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUFFUEFWQ2FjaGVkUmVzb3VyY2VA
MkBBQlZLVVJMQDJAQFoKICAgICAgICAgP25vbkZhc3RTY3JvbGxhYmxlUmVjdHNAUGFnZUBXZWJD
b3JlQEBRQUU/QVY/JFBhc3NSZWZQdHJAVkNsaWVudFJlY3RMaXN0QFdlYkNvcmVAQEBXVEZAQFBC
VkZyYW1lQDJAQFoKICAgICAgICAgP251bWJlck9mQWN0aXZlQW5pbWF0aW9uc0BBbmltYXRpb25D
b250cm9sbGVyQFdlYkNvcmVAQFFCRUlQQVZEb2N1bWVudEAyQEBaCisKKyNpZiBFTkFCTEUoV09S
S0VSUykKKyAgICAgICAgP3dvcmtlclRocmVhZENvdW50QFdvcmtlclRocmVhZEBXZWJDb3JlQEBT
QUlYWgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IDFjYWRkZTAxY2U3ZjM4N2Zm
ODY3ZDMwNzRhZWUxMzRiZDcyY2RlY2IuLmNlODZhNDU4ZWM2Y2U1M2QxOWI3YjkzYmMxMWEzZmJk
Mzg2ZTJlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0zMDAsMTIgKzMwMCw2IEBAIGJv
b2wgV0tCdW5kbGVJc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZShXS0J1bmRsZVJlZikKICAgICByZXR1
cm4gSW5qZWN0ZWRCdW5kbGU6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKLXNpemVf
dCBXS0J1bmRsZUdldFdvcmtlclRocmVhZENvdW50KFdLQnVuZGxlUmVmKQotewotICAgIC8vIEFj
dHVhbGx5IGRvIG5vdCBuZWVkIGFyZ3VtZW50IGhlcmUsIGtlZXBpbmcgaXQgaG93ZXZlciBmb3Ig
Y29uc2lzdGVuY3kuCi0gICAgcmV0dXJuIEluamVjdGVkQnVuZGxlOjp3b3JrZXJUaHJlYWRDb3Vu
dCgpOwotfQotCiB2b2lkIFdLQnVuZGxlU2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihXS0J1bmRs
ZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tTdHJp
bmdSZWYgbG9jYXRpb24pCiB7CiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24odG9JbXBsKHBhZ2VHcm91cFJlZiksIHRvV1RGU3RyaW5nKGxvY2F0aW9uKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAppbmRleCA5MmVmNGRiNDk5YmQ3MWYyYThh
NmUxMDY1NjY3NGIyZmYyYTc3MGIyLi4yM2U4NDA5MjA2ZjZiNmUwMThjNmFhNmYyZjUzYjRjNzU5
Zjk2OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKQEAgLTk4LDggKzk4LDYg
QEAgV0tfRVhQT1JUIHNpemVfdCBXS0J1bmRsZUdldEphdmFTY3JpcHRPYmplY3RzQ291bnQoV0tC
dW5kbGVSZWYgYnVuZGxlKTsKIAogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVJc1Byb2Nlc3NpbmdV
c2VyR2VzdHVyZShXS0J1bmRsZVJlZiBidW5kbGUpOwogCi1XS19FWFBPUlQgc2l6ZV90IFdLQnVu
ZGxlR2V0V29ya2VyVGhyZWFkQ291bnQoV0tCdW5kbGVSZWYgYnVuZGxlKTsKLQogV0tfRVhQT1JU
IHZvaWQgV0tCdW5kbGVTZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoV0tCdW5kbGVSZWYg
YnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2
b2lkIFdLQnVuZGxlU2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoV0tCdW5kbGVSZWYgYnVuZGxlLCBi
b29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRTaGFkb3dET01FbmFibGVk
KFdLQnVuZGxlUmVmIGJ1bmRsZSwgYm9vbCBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
aW5kZXggMTIyYjliOTc2YWU0YjIzMDM3ZjhiNWNiMmQ5MWY2OTA4MmIyMmJlOS4uYTUzNzljZjJm
YTc5M2JhZmQ2ZmQ3NTE2MWU4NjJjYjQwMGVhOGM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
QEAgLTY5LDcgKzY5LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1
cmVJbmRpY2F0b3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duQXJyYXlQdHIuaD4K
IApAQCAtNTc5LDE1ICs1NzgsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVz
c2FnZVRvUGFnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgIG1fY2xp
ZW50LmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKHRoaXMsIHBhZ2UsIG1lc3NhZ2VOYW1lLCBtZXNz
YWdlQm9keSk7CiB9CiAKLXNpemVfdCBJbmplY3RlZEJ1bmRsZTo6d29ya2VyVGhyZWFkQ291bnQo
KQotewotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHJldHVybiBXZWJDb3JlOjpXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZENvdW50KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19
Ci0KIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFn
ZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgY29uc3QgU3RyaW5nJiBsb2NhdGlvbikKIHsKICAgICBj
b25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3Jv
dXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggYmQxMDk1
OTI3NTBhNzkzODczMjljMGM1NmY5YTMwMDViYmMwMmM0MS4uY2U0YmZkMTU0YWRhMGE4N2ExNWU2
NGEwMzFkZjBhZDZkZjY2NTVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTY4LDggKzE2OCw2
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7
CiAKLSAgICBzdGF0aWMgc2l6ZV90IHdvcmtlclRocmVhZENvdW50KCk7Ci0KICAgICB2b2lkIHNl
dFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhXZWJQYWdlKiwgYm9vbCBlbmFibGVkKTsKICAg
ICB2b2lkIHNldFNlcmlhbExvYWRpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2hhZG93
RE9NRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCmluZGV4IDYwMmJlYzlkMjNhN2U1NDMyNTA4YTk5ZWE3N2EyMTE0MWNjOGM1
YjkuLjRmZTMxN2VmNzYyM2E4NmJmZTM0MzYwNWVkZDBkOTY2ZWJkYzAwZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNDIsNyArNDIs
NiBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFs
dWVSZWYuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbkNvbnRyb2xsZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDJlZGVmYWZkOWVlYzFlYjMxYjE2ZDEzMWJlNGVmZDNm
YzY1ZjA2NTMuLmExYWQzMTEwZmJjODMzYzE1N2FiZTNhZGRjMzk3NzhmZGQ3NTlhOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNjAsNiArNjAsNyBAQCBfWk43V2ViQ29yZTEyVGV4dEl0
ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEVQTlNfMTNDb250YWluZXJOb2RlRWlp
YjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJh
bmdlRVBOU180Tm9kZUVQS05TXzVSYW5nZUVSalM2XzsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0
b3IyOWdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlRVBOU180Tm9kZUVQS05TXzVSYW5nZUVS
bVM2XzsKIF9aTjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1iZXJGb3JFbGVtZW50RVBO
U183RWxlbWVudEVSS05TXzlGbG9hdFNpemVFOworX1pON1dlYkNvcmUxMldvcmtlclRocmVhZDE3
d29ya2VyVGhyZWFkQ291bnRFdjsKIF9aTjdXZWJDb3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlF
eGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3Jl
MTRDbGllbnRSZWN0TGlzdEMxRVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTGowRUVFOwog
X1pON1dlYkNvcmUxNENsaWVudFJlY3RMaXN0QzFFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVh
ZEVMbTBFRUU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYjgxYjY0NWZiZjUwZDI4NWI3YjY4YjgxYTBlZjA2MzIzY2MyZjdmNy4uZjI4YzA5ODcz
MDE0YTViMmE2YTFjYjEzZTdhNGI3NTc0NGRlZDE0MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTA4ICBC
ZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgd29y
a2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljVmFsdWVzKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVy
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0Jl
cnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRl
c3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW06CisgICAgICAgIChUZXN0UnVubmVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5l
cik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHA6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgor
CiAyMDEzLTAyLTA3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gdHVybiBUZXN0UnVubmVyIGxpYnJhcnkgaW50byBhIGNvbXBvbmVu
dCBidWlsZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCBiMzI5ZjE0ZWQ5YjE0
NzA5OTYyZjJlODFlZTQ4MmIzOGU0ZDE5NTdmLi5jODE3ZDUyMzBjNDQ4YTdhMWRkN2Q3NDM5YWIx
MmFhM2EwODlkMzRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtMTkzMiwx
MiArMTkzMiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGdldFdlYkhpc3RvcnlJdGVtQ291bnRDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlTnVtYmVyKGNvbnRleHQsIGNvbnRyb2xsZXItPndlYkhpc3RvcnlJdGVtQ291bnQoKSk7CiB9
CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGdldFdvcmtlclRocmVhZENvdW50Q2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIFRlc3RSdW5uZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNP
YmplY3QpKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29udHJvbGxl
ci0+d29ya2VyVGhyZWFkQ291bnQoKSk7Ci19Ci0KICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQogc3RhdGljIEpTVmFsdWVSZWYgZ2V0UGxhdGZvcm1O
YW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewpAQCAt
MjEyNyw3ICsyMTIxLDYgQEAgSlNTdGF0aWNWYWx1ZSogVGVzdFJ1bm5lcjo6c3RhdGljVmFsdWVz
KCkKICAgICBzdGF0aWMgSlNTdGF0aWNWYWx1ZSBzdGF0aWNWYWx1ZXNbXSA9IHsKICAgICAgICAg
eyAiZ2xvYmFsRmxhZyIsIGdldEdsb2JhbEZsYWdDYWxsYmFjaywgc2V0R2xvYmFsRmxhZ0NhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUgfSwKICAgICAgICAgeyAid2ViSGlzdG9yeUl0
ZW1Db3VudCIsIGdldFdlYkhpc3RvcnlJdGVtQ291bnRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAg
ICAgICB7ICJ3b3JrZXJUaHJlYWRDb3VudCIsIGdldFdvcmtlclRocmVhZENvdW50Q2FsbGJhY2ss
IDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKQogICAgICAgICB7ICJwbGF0Zm9ybU5hbWUiLCBnZXRQbGF0Zm9ybU5hbWVDYWxsYmFj
aywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggZThi
MmM2MmYzN2NjMDUwYjFhYWFlNGJiYzI3MWVlMGI4NzQ3OTZiMy4uYWE0YWFjMjFhMGNkMTE3ZGFj
YzQ1NThlZDNiY2Q4YjM1ODNhNzViOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAt
MTI1LDcgKzEyNSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2FpdEZvclBvbGljeURlbGVnYXRl
KCk7CiAgICAgc2l6ZV90IHdlYkhpc3RvcnlJdGVtQ291bnQoKTsKLSAgICB1bnNpZ25lZCB3b3Jr
ZXJUaHJlYWRDb3VudCgpIGNvbnN0OwogICAgIGludCB3aW5kb3dDb3VudCgpOwogICAgIAogI2lm
IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVy
cnkuY3BwCmluZGV4IDRkNThjYzQxNzJhZGQ4ODk3MTFhYTQxZDU5MDQ3MDFlY2IzODA4YjUuLjZi
Y2VmZTVkYWI0NWI2NDA5YjFjNTJjNTU3MTQwNjhjMDM4MTVjZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3Bw
CkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXb3Jr
UXVldWUuaCIKICNpbmNsdWRlICJXb3JrUXVldWVJdGVtLmgiCi0jaW5jbHVkZSAiV29ya2VyVGhy
ZWFkLmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8
U2hhcmVkUG9pbnRlci5oPgpAQCAtMzQxLDE1ICszNDAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdW5zaWduZWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAotewotI2lm
IEVOQUJMRV9XT1JLRVJTCi0gICAgcmV0dXJuIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2Vy
VGhyZWFkQ291bnQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpyZW1vdmVBbGxWaXNpdGVkTGlua3MoKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDcxM2I3ZTkwNTQwOGQxM2NkNjdjYjAwNjA0
NDkwMWVjNTE5YTdiMTAuLjM0MWUwN2ViNDBhZGJmNTE5OWJiNTliMmRiN2Q0MGIzOGExYmI2NTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAiV2Vi
VGFzay5oIgogI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcu
aCIKLSNpbmNsdWRlICJXZWJXb3JrZXJJbmZvLmgiCiAjaW5jbHVkZSAidjgvaW5jbHVkZS92OC5o
IgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtZW1vcnk+CkBAIC0zMDIsNyArMzAxLDYg
QEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgYmluZE1ldGhvZCgiZGlzcGxheUludmFs
aWRhdGVkUmVnaW9uIiwgJlRlc3RSdW5uZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik7CiAK
ICAgICAvLyBQcm9wZXJ0aWVzLgotICAgIGJpbmRQcm9wZXJ0eSgid29ya2VyVGhyZWFkQ291bnQi
LCAmVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQpOwogICAgIGJpbmRQcm9wZXJ0eSgiZ2xv
YmFsRmxhZyIsICZtX2dsb2JhbEZsYWcpOwogICAgIGJpbmRQcm9wZXJ0eSgidGl0bGVUZXh0RGly
ZWN0aW9uIiwgJm1fdGl0bGVUZXh0RGlyZWN0aW9uKTsKICAgICBiaW5kUHJvcGVydHkoInBsYXRm
b3JtTmFtZSIsICZtX3BsYXRmb3JtTmFtZSk7CkBAIC0xOTg1LDExICsxOTgzLDYgQEAgdm9pZCBU
ZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW4KICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudChDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVz
dWx0LT5zZXQoc3RhdGljX2Nhc3Q8aW50PihXZWJXb3JrZXJJbmZvOjpkZWRpY2F0ZWRXb3JrZXJD
b3VudCgpKSk7Ci19Ci0KIC8vIE5lZWQgdGhlc2UgY29udmVyc2lvbnMgYmVjYXVzZSB0aGUgZm9y
bWF0IG9mIHRoZSB2YWx1ZSBmb3IgYm9vbGVhbnMKIC8vIG1heSB2YXJ5IC0gZm9yIGV4YW1wbGUs
IG9uIG1hYyAiMSIgYW5kICIwIiBhcmUgdXNlZCBmb3IgYm9vbGVhbi4KIGJvb2wgVGVzdFJ1bm5l
cjo6Y3BwVmFyaWFudFRvQm9vbChjb25zdCBDcHBWYXJpYW50JiB2YWx1ZSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuaAppbmRleCAxYzM0NzA4Y2MxMmViNWMxZTExNGVjNzkyM2VjMzJhNjI0MjEzOTI5Li4wZDU0
MWFmYWRhZmNhNTlmMjgyN2E1MGI5MTY0YmY5NDIyNmE2YjI5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5o
CkBAIC00ODEsMTAgKzQ4MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwbGF5KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc3BsYXlJbnZhbGlkYXRl
ZFJlZ2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLSAgICAvLyBQcm9wZXJ0aWVzCi0gICAgdm9pZCB3b3JrZXJUaHJlYWRD
b3VudChDcHBWYXJpYW50Kik7Ci0KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIC8vIEZhbGxi
YWNrIGFuZCBzdHViIG1ldGhvZHMKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwCmluZGV4IDMwY2VhMjRmYjRlZjk4Yzk1YzVkNGJlMTU2ZDIxNWJkMzljMTg5NGQu
LjU4MGM1MDBkZTk2ZDJjMzdjYjE3ODY2ZWQ2ZjY4NTJlYWRiZjcxYWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTEyNiwxMSArMTI2LDYgQEAgc2l6
ZV90IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgIHJldHVybiBld2tfaGlz
dG9yeV9iYWNrX2xpc3RfbGVuZ3RoKGhpc3RvcnkpICsgZXdrX2hpc3RvcnlfZm9yd2FyZF9saXN0
X2xlbmd0aChoaXN0b3J5KTsKIH0KIAotdW5zaWduZWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFk
Q291bnQoKSBjb25zdAotewotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6Ondv
cmtlclRocmVhZENvdW50KCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6bm90aWZ5RG9uZSgpCiB7
CiAgICAgaWYgKG1fd2FpdFRvRHVtcCAmJiAhdG9wTG9hZGluZ0ZyYW1lICYmICFXb3JrUXVldWU6
OnNoYXJlZCgpLT5jb3VudCgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwCmluZGV4IDIyMWRlMGE3Njk2MDU2NTMzNmQ0NTVlNGM4MzU0MTFhMmUzNGY3NDMuLmEy
MzczYjY0ZmZhNWJhNDFiODFjYjlkY2I0NGQyYmQwMDYwNjEwMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTEyNywxMSArMTI3LDYgQEAgc2l6ZV90
IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgICAgICAgICAgd2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgobGlzdCk7CiB9CiAKLXVuc2ln
bmVkIFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3b3JrZXJUaHJlYWRDb3VudCgpOwotfQotCiBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1lKCkgY29uc3QKIHsK
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKEFkb3B0LCBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZ3RrIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQppbmRleCA4NjRlZGE4NWJiNTlhY2M1ZmYwYjdmZGE2MDY0MWViNmY4
MzhkMzQ1Li43ZDYyYjhmYTUxZmRmNDg5MGRmMmZkZWJjYTdmMTE4ZDEzNjIyNzgyIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNzMsNyArNzMsNiBAQAog
I2ltcG9ydCA8V2ViS2l0L1dlYlR5cGVzSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJW
aWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktp
dC9XZWJXb3JrZXJzUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1w
b3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtMjk5LDEx
ICsyOTgsNiBAQCBzaXplX3QgVGVzdFJ1bm5lcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiAgICAg
cmV0dXJuIFtbW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSBhbGxJdGVtc10gY291
bnRdOwogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIFtXZWJXb3JrZXJzUHJpdmF0ZSB3b3JrZXJUaHJlYWRDb3VudF07Ci19
Ci0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKSBj
b25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJtYWMiKSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCAwZWQwYzYyZTFiMDQxYzBhMGE0NDgyNjRmY2Zl
YThlNmYzMTgxYjM1Li42ZGFjMjJkODZiOThkMGQxNWI3MWFhNWMyYjIyN2FhZWZlZGQyZWQ1IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTcwMSwxMSArNzAx
LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJM
U2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgc2No
ZW1lKTsKIH0KIAotaW50IFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KCkKLXsKLSAgICBy
ZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OndvcmtlclRocmVhZENvdW50KCk7Ci19Ci0K
IGJvb2wgVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkKIHsKICAgICByZXR1
cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNob3VsZENsb3NlKG1fZHJ0LT5tYWluRnJhbWVB
ZGFwdGVyKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCAzNmZl
ZWMxYTg5MWEwNjNkYjc4ZmMyZTlmNmVkYWY3NTgyY2ExYjI1Li5lYzM1YTkxYTJlOTBhMGRhMGMy
N2QzM2YxZmI5ODI3NzU2ZDc5MTE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuaApAQCAtNTYsNyArNTYsNiBAQCBjbGFzcyBEdW1wUmVuZGVyVHJlZTsKIGNsYXNzIFRlc3RS
dW5uZXIgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKGlu
dCB3ZWJIaXN0b3J5SXRlbUNvdW50IFJFQUQgd2ViSGlzdG9yeUl0ZW1Db3VudCkKLSAgICBRX1BS
T1BFUlRZKGludCB3b3JrZXJUaHJlYWRDb3VudCBSRUFEIHdvcmtlclRocmVhZENvdW50KQogICAg
IFFfUFJPUEVSVFkoYm9vbCBnbG9iYWxGbGFnIFJFQUQgZ2xvYmFsRmxhZyBXUklURSBzZXRHbG9i
YWxGbGFnKQogcHVibGljOgogICAgIFRlc3RSdW5uZXIoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWUq
KTsKQEAgLTIxMiw3ICsyMTEsNiBAQCBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24oY29uc3QgUVN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNldFVzZXJT
dHlsZVNoZWV0RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7
Ci0gICAgaW50IHdvcmtlclRocmVhZENvdW50KCk7CiAgICAgYm9vbCBjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcoKTsKICAgICAvLyBGb3Igbm93LCB0aGlzIGlzIGEgbm8tb3AuIFRoaXMgbWF5IGNo
YW5nZSBkZXBlbmRpbmcgb24gb3V0Y29tZSBvZgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMzMzMwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RS
dW5uZXJXaW4uY3BwCmluZGV4IGYyM2Y0NzEyZGVlZWQ5Yzk2MDMxNTFkNmFmYTlhMzA1NDg4ZDIz
ZjMuLmZmYzFhN2NlNzJiNjZkZDY5OTkxMTlhN2M4Y2I3ODc2Yzc3NWRiNjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTIyNSwxNyArMjI1LDYgQEAg
c2l6ZV90IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgIHJldHVybiBjb3Vu
dDsKIH0KIAotdW5zaWduZWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAot
ewotICAgIENPTVB0cjxJV2ViV29ya2Vyc1ByaXZhdGU+IHdvcmtlcnM7Ci0gICAgaWYgKEZBSUxF
RChXZWJLaXRDcmVhdGVJbnN0YW5jZShDTFNJRF9XZWJXb3JrZXJzUHJpdmF0ZSwgMCwgX191dWlk
b2Yod29ya2VycyksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd29ya2VycykpKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgdW5zaWduZWQgY291bnQ7Ci0gICAgaWYgKEZBSUxFRCh3b3JrZXJz
LT53b3JrZXJUaHJlYWRDb3VudCgmY291bnQpKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIGNvdW50OwotfQotCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGxh
dGZvcm1OYW1lKCkgY29uc3QKIHsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZv
cm1OYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygid2luIikpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKaW5kZXggMzE4ZjJjMzY2OGQ5Mjli
MGI4MjQ1ZTUxOTNiMThiYzA5MTMzMjkyYS4uMjYzZjAzMzEyYTI1YzdiMjg1YWRiMzlmOWNjMzUy
ODQ0ZTk2ZTc3OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5l
cld4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCkBA
IC0zMDQsMTIgKzMwNCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6
ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAK
LXVuc2lnbmVkIFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KCkgY29uc3QKLXsKLSAgICAv
LyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgLy8g
RklYTUU6IGltcGxlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggOTIxYzQ3NTBh
NWM0MjRhZDZhMmViNmJkZjZjZjI1ZTMxNjFmZWZhNi4uMDkyOGYxYTllNTk4MzA3MWYxNGQzZDNm
NjgyZjBiM2UzMTgyYWIxMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC04NCw3ICs4
NCw2IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIC8vIFNwZWNpYWwgRE9NIHZhcmlh
Ymxlcy4KICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBnbG9iYWxGbGFnOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdvcmtlclRocmVhZENvdW50OwogCiAgICAgLy8gUmVwYWlu
dCB0ZXN0aW5nLgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGQ3NmRkYTlh
NzljYmI4ZDg5MDZmNWM3MzliMzAzYWZiYTBmOWQ1NDQuLmU3MzNjNTQ2ODcxODIwZDRhMDc0ZmVm
NDQ4NjZkZWRkZTE5OTdlZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtNTY5LDExICs1NjksNiBAQCBzdGF0aWMg
dm9pZCBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKHVuc2lnbmVkIGluZGV4KQogICAgIEpTVmFsdWVV
bnByb3RlY3QoY29udGV4dCwgY2FsbGJhY2spOwogfQogCi11bnNpZ25lZCBUZXN0UnVubmVyOjp3
b3JrZXJUaHJlYWRDb3VudCgpCi17Ci0gICAgcmV0dXJuIFdLQnVuZGxlR2V0V29ya2VyVGhyZWFk
Q291bnQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpKTsKLX0KLQogdm9pZCBUZXN0
UnVubmVyOjphZGRDaHJvbWVJbnB1dEZpZWxkKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAg
Y2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soQWRkQ2hyb21lSW5wdXRGaWVsZENhbGxiYWNrSUQsIGNh
bGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggODRmMmJlNzRkNjU0MzU0OTZkZjRiY2I5NDM1M2I5N2Y4OTJhODBi
Yy4uYTE3NjIxNTg0OWI3M2QwMzk3ZTZkNjM4NDZlYjdhMmIwZWIzOGQ0ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTIy
Myw4ICsyMjMsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBnbG9iYWxGbGFnKCkgY29uc3QgeyByZXR1
cm4gbV9nbG9iYWxGbGFnOyB9CiAgICAgdm9pZCBzZXRHbG9iYWxGbGFnKGJvb2wgdmFsdWUpIHsg
bV9nbG9iYWxGbGFnID0gdmFsdWU7IH0KIAotICAgIHVuc2lnbmVkIHdvcmtlclRocmVhZENvdW50
KCk7Ci0gICAgCiAgICAgdm9pZCBhZGRDaHJvbWVJbnB1dEZpZWxkKEpTVmFsdWVSZWYpOwogICAg
IHZvaWQgcmVtb3ZlQ2hyb21lSW5wdXRGaWVsZChKU1ZhbHVlUmVmKTsKICAgICB2b2lkIGZvY3Vz
V2ViVmlldyhKU1ZhbHVlUmVmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2VhMTU5Y2MyNWYyNTUxYTY4MjA2YjdmMGE0
YjAwZjQ0OWM4MjVkLi41MDYzYmQyMjFiOTQyNWM3YmJhYmNhODExY2U3ZWE5MWYxOGY3OGYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRl
c3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdHMgdGVzdFJ1bm5lci0+aW50ZXJuYWxz
LgorCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLWxp
ZmVjeWNsZS5qczoKKyAgICAgICAgKHJ1blRlc3RzLndvcmtlci5vbm1lc3NhZ2UpOgorICAgICAg
ICAocnVuVGVzdHMpOgorICAgICAgICAob3JwaGFuZWRXb3JrZXJFeGl0ZWQud29ya2VyLm9ubWVz
c2FnZSk6CisgICAgICAgIChvcnBoYW5lZFdvcmtlckV4aXRlZCk6CisgICAgICAgICogZmFzdC93
b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbGlmZWN5Y2xlLmpzOgorICAgICAgICAocnVuVGVzdHMu
d29ya2VyLm9ubWVzc2FnZSk6CisgICAgICAgIChydW5UZXN0cyk6CisgICAgICAgICogZmFzdC93
b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qczoKKyAgICAgICAgKC5yZXR1cm4pOgorICAg
ICAgICAod2FpdFVudGlsVGhyZWFkQ291bnRNYXRjaGVzKToKKyAgICAgICAgKiBmYXN0L3dvcmtl
cnMvd29ya2VyLWNsb3NlLW1vcmUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMv
cmVzb3VyY2VzL3dvcmtlci11dGlsLmpzOgorICAgICAgICAoLnJldHVybik6CisgICAgICAgICh3
YWl0VW50aWxUaHJlYWRDb3VudE1hdGNoZXMpOgorCiAyMDEzLTAyLTA4ICBNYXR0IEZhbGtlbmhh
Z2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3
ZWQgZ2FyZGVuaW5nLiBBZGp1c3RpbmcgZXhwZWN0YXRpb25zIGZvciB0d28gaGlkcGkgdGVzdHMu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL2RlZGljYXRl
ZC13b3JrZXItbGlmZWN5Y2xlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNl
cy9kZWRpY2F0ZWQtd29ya2VyLWxpZmVjeWNsZS5qcwppbmRleCAwMTdkNmY4YjQ1M2MwZjYwN2Rk
ZDI1NGY4MWVhM2ZiOGJjMThjZjFhLi45NTZkZDhkY2JmMDkxNjYyZDQxN2Q1MzJiODQ2Njg0Zjdh
YzBhMmU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL2Rl
ZGljYXRlZC13b3JrZXItbGlmZWN5Y2xlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanMKQEAgLTE3LDEwICsxNywx
MCBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJwaW5nIik7
CiAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIud29ya2VyVGhy
ZWFkQ291bnQgPT0gMSkKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291
bnQgPT0gMSkKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcnBoYW5lZCB3b3JrZXIgdGhy
ZWFkIGNyZWF0ZWQuIik7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiB0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50
ID0gIiArIHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQpOworICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkFmdGVyIHRocmVhZCBjcmVhdGlvbjogaW50ZXJuYWxzLndvcmtlclRocmVhZENv
dW50ID0gIiArIGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBPcnBoYW4gb3VyIHdvcmtlciAobm8gbW9yZSByZWZlcmVuY2VzIHRvIGl0KSBhbmQg
d2FpdCBmb3IgaXQgdG8gZXhpdC4KQEAgLTQwLDEwICs0MCwxMCBAQCBmdW5jdGlvbiBvcnBoYW5l
ZFdvcmtlckV4aXRlZCgpCiAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJwaW5nIik7CiAgICAgd29y
a2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQg
PT0gMSkKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQgPT0gMSkK
ICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcnBoYW5lZCB0aW1lb3V0IHdvcmtlciB0aHJl
YWQgY3JlYXRlZC4iKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJBZnRlciB0aHJlYWQgY3JlYXRpb246IHRlc3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQg
PSAiICsgdGVzdFJ1bm5lci53b3JrZXJUaHJlYWRDb3VudCk7CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291
bnQgPSAiICsgaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50KTsKICAgICAgICAgfQogICAgICAg
ICAvLyBTZW5kIGEgbWVzc2FnZSB0aGF0IHN0YXJ0cyB1cCBhbiBhc3luYyBvcGVyYXRpb24sIHRv
IG1ha2Ugc3VyZSB0aGUgdGhyZWFkIGV4aXRzIHdoZW4gaXQgY29tcGxldGVzLgogICAgICAgICAv
LyBGSVhNRTogRGlzYWJsZWQgZm9yIG5vdyAtIHJlLWVuYWJsZSB3aGVuIGJ1ZyAyODcwMiBpcyBm
aXhlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLWxpZmVjeWNsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLWxpZmVjeWNsZS5qcwppbmRleCBhNWM1Mjk3Njg3M2ViYzFiZThmMmI4NDZkNGJkZTk0OGYx
OTFkNzMxLi42M2I0OGQ5MzgyNjJlYzQzMWIxN2I4YTQ4ZmJkNmRmYzdmNmQ3YzMzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbGlmZWN5
Y2xlLmpzCkBAIC0xMSwxNSArMTEsMTUgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiBmdW5j
dGlvbiBydW5UZXN0cygpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICBs
b2coIlBBU1M6IHdvcmtlclRocmVhZENvdW50ID0gIiArIHRlc3RSdW5uZXIud29ya2VyVGhyZWFk
Q291bnQpOworICAgICAgICBsb2coIlBBU1M6IHdvcmtlclRocmVhZENvdW50ID0gIiArIGludGVy
bmFscy53b3JrZXJUaHJlYWRDb3VudCk7CiAgICAgdmFyIHdvcmtlciA9IGNyZWF0ZVdvcmtlcigp
OwogICAgIHdvcmtlci5wb3N0TWVzc2FnZSgicGluZyIpOwogICAgIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50ID09IDEpCisgICAgICAg
ICAgICBpZiAoaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50ID09IDEpCiAgICAgICAgICAgICAg
ICAgbG9nKCJQQVNTOiBXb3JrZXIgdGhyZWFkIGNyZWF0ZWQiKTsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBsb2coIkZBSUw6IEFmdGVyIHRocmVhZCBjcmVhdGlvbjogdGVzdFJ1
bm5lci53b3JrZXJUaHJlYWRDb3VudCA9ICIgKyB0ZXN0UnVubmVyLndvcmtlclRocmVhZENvdW50
KTsKKyAgICAgICAgICAgICAgICBsb2coIkZBSUw6IEFmdGVyIHRocmVhZCBjcmVhdGlvbjogaW50
ZXJuYWxzLndvcmtlclRocmVhZENvdW50ID0gIiArIGludGVybmFscy53b3JrZXJUaHJlYWRDb3Vu
dCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBTaHV0ZG93biB0aGUgd29ya2VyLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qcyBi
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0aWwuanMKaW5kZXgg
N2NjZDQ3MzM2NjAwMjI4NjEzZWNkMzMxNWY4MmQwOWFlNDcyZTE0Zi4uMjJhMDdkMjZmZWJjZjM0
NTQ3Zjk5YzdjYjE5YzcwZTAzZjA5OGIyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvcmVzb3VyY2VzL3dvcmtlci11dGlsLmpzCkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9u
IHdhaXRVbnRpbFRocmVhZENvdW50TWF0Y2hlcyhjYWxsYmFjaywgY291bnQpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAodGVzdFJ1bm5lci53b3JrZXJUaHJlYWRDb3VudCA9PSBj
b3VudCkgeworICAgIGlmIChpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291bnQgPT0gY291bnQpIHsK
ICAgICAgICAgLy8gV29ya2VyIHRocmVhZHMgaGF2ZSBleGl0ZWQuCiAgICAgICAgIGNhbGxiYWNr
KCk7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93
b3JrZXItY2xvc2UtbW9yZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1j
bG9zZS1tb3JlLmh0bWwKaW5kZXggODhlN2YzZGYyMDA5YTE1MDJmZWViYmU2OTQ2MTBmOGQzYjFj
MjY0Ny4uOTA0OTNhZmQ1ODRlMTBhNjBiMzlkYzU4ODM3NmJhYWIwYjM1NjYwNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1jbG9zZS1tb3JlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1jbG9zZS1tb3JlLmh0bWwKQEAgLTE3LDcg
KzE3LDcgQEAgdmFyIHdvcmtlcjsKIGZ1bmN0aW9uIHN0YXJ0V29ya2VyKCkKIHsKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIGxvZygiUEFTUzogd29ya2VyVGhyZWFkQ291bnQg
PSAiICsgdGVzdFJ1bm5lci53b3JrZXJUaHJlYWRDb3VudCk7CisgICAgICAgIGxvZygiUEFTUzog
d29ya2VyVGhyZWFkQ291bnQgPSAiICsgaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50KTsKICAg
ICB3b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMvd29ya2VyLWNsb3NlLmpzJyk7CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLXV0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL3dv
cmtlci11dGlsLmpzCmluZGV4IDdjY2Q0NzMzNjYwMDIyODYxM2VjZDMzMTVmODJkMDlhZTQ3MmUx
NGYuLjIyYTA3ZDI2ZmViY2YzNDU0N2Y5OWM3Y2IxOWM3MGUwM2YwOThiMmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0aWwuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRp
bC5qcwpAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiB3YWl0VW50aWxUaHJlYWRDb3VudE1hdGNo
ZXMoY2FsbGJhY2ssIGNvdW50KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHRl
c3RSdW5uZXIud29ya2VyVGhyZWFkQ291bnQgPT0gY291bnQpIHsKKyAgICBpZiAoaW50ZXJuYWxz
LndvcmtlclRocmVhZENvdW50ID09IGNvdW50KSB7CiAgICAgICAgIC8vIFdvcmtlciB0aHJlYWRz
IGhhdmUgZXhpdGVkLgogICAgICAgICBjYWxsYmFjaygpOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZjJjOGVlOWY0ZTEwNDE1ZjQ1ZTM5NWIz
M2UzY2YyOTYzZTFjODIwYi4uNWNjOTUzYzZkOWVjZmY5NmZjMjBjMzMyYjliOTdiNWU2NTRhZWRi
YiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUg
SW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDkyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAq
IFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTMtMDItMDcgIERhdmlkIEZh
cmxlciAgPGRmYXJsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2VmaWxlcyBzaG91bGQgd29y
ayBmb3IgYXJiaXRyYXJ5IFNES3MgYW5kIGFyY2hpdGVjdHVyZXMgb24gQXBwbGUgcG9ydHMK
</data>

          </attachment>
      

    </bug>

</bugzilla>