<?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>231012</bug_id>
          
          <creation_ts>2021-09-30 01:34:33 -0700</creation_ts>
          <short_desc>WebGL low-power and high-performance contexts should use different ANGLE Metal EGLDisplays</short_desc>
          <delta_ts>2021-10-23 05:16:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227408</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=228298</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=231946</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>231011</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>ap</cc>
    
    <cc>dino</cc>
    
    <cc>dustin.kerstein</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>geofflang</cc>
    
    <cc>giuseppesalvo</cc>
    
    <cc>gman</cc>
    
    <cc>jonahr</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1798788</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-30 01:34:33 -0700</bug_when>
    <thetext>WebGL low-power and high-performance contexts should use different ANGLE EGLDisplays</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800507</commentid>
    <comment_count>1</comment_count>
    <who name="Giuseppe">giuseppesalvo</who>
    <bug_when>2021-10-05 04:03:01 -0700</bug_when>
    <thetext>Hello, any updates on the issue? Can I help in some way? I could create a patch if possible, only need a few inputs.
This issue is a bit critical for the project I&apos;m currently working on, to be able to give a nice experience to the users using Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800707</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-10-05 12:36:05 -0700</bug_when>
    <thetext>There&apos;s currently a problem inside ANGLE where despite passing different attribute lists to multiple calls to eglGetPlatformDisplay, the same EGLDisplay handle is being returned.

This issue is currently being discussed upstream in the ANGLE repository:

Reintroduce GPU power preference selection code into Metal backend
https://bugs.chromium.org/p/angleproject/issues/detail?id=6143

We&apos;re hoping to decide on a fix expediently, and be able to either roll it into WebKit along with an ANGLE update, or cherry-pick it into WebKit and resolve conflicts later during the next ANGLE roll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801249</commentid>
    <comment_count>3</comment_count>
    <who name="Giuseppe">giuseppesalvo</who>
    <bug_when>2021-10-06 12:14:24 -0700</bug_when>
    <thetext>Thanks for the explanation Kenneth, I&apos;ll follow the ANGLE thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801546</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-07 01:35:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/83971417&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805953</commentid>
    <comment_count>5</comment_count>
      <attachid>441712</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-19 05:31:03 -0700</bug_when>
    <thetext>Created attachment 441712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806500</commentid>
    <comment_count>6</comment_count>
      <attachid>441849</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-19 22:30:36 -0700</bug_when>
    <thetext>Created attachment 441849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806583</commentid>
    <comment_count>7</comment_count>
      <attachid>441873</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-20 05:53:10 -0700</bug_when>
    <thetext>Created attachment 441873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806671</commentid>
    <comment_count>8</comment_count>
      <attachid>441892</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-20 10:12:21 -0700</bug_when>
    <thetext>Created attachment 441892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806672</commentid>
    <comment_count>9</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-20 10:14:06 -0700</bug_when>
    <thetext>Alexey, would the TestWebKitAPI related changes look ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806677</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-20 10:19:05 -0700</bug_when>
    <thetext>A few comments about TestWebKitAPI:
- API tests run in parallel. Is it OK to run this code in parallel with other tests?
- Why copyright 2019 for TestGraphicsContextGLOpenGLCocoa.mm.
- There is probably a reason, but it seems strange that RuntimeApplicationChecks.h is included WebCoreUtilities.h that doesn&apos;t do any runtime application checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807050</commentid>
    <comment_count>11</comment_count>
      <attachid>441998</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-21 02:02:21 -0700</bug_when>
    <thetext>Created attachment 441998
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807557</commentid>
    <comment_count>12</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-22 00:06:36 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #10)
&gt; A few comments about TestWebKitAPI:
&gt; - API tests run in parallel. Is it OK to run this code in parallel with
&gt; other tests?

Yes, works in parallel when the parallelism means that each TestWebKitAPI process executes only one test at a time, but multiple TestWebKitAPI processes can be running in parallel.

&gt; - Why copyright 2019 for TestGraphicsContextGLOpenGLCocoa.mm.
Done

&gt; - There is probably a reason, but it seems strange that
&gt; RuntimeApplicationChecks.h is included WebCoreUtilities.h that doesn&apos;t do
&gt; any runtime application checks.

It contains functionality that modifies the state checked by RuntimeApplicationChecks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807558</commentid>
    <comment_count>13</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-22 00:07:38 -0700</bug_when>
    <thetext>This should be compatible but redundant when upstream fix https://chromium-review.googlesource.com/c/angle/angle/+/3231986 is merged back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807559</commentid>
    <comment_count>14</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-22 00:08:25 -0700</bug_when>
    <thetext>.. and as such the code portions can be reverted and the test preserved after the merge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807565</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-22 00:36:07 -0700</bug_when>
    <thetext>Committed r284669 (243389@main): &lt;https://commits.webkit.org/243389@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441998.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807695</commentid>
    <comment_count>16</comment_count>
    <who name="Giuseppe">giuseppesalvo</who>
    <bug_when>2021-10-22 08:53:39 -0700</bug_when>
    <thetext>I see happily that the issue was fixed! Thanks for the work on it.
Any idea on when it might land on Safari? As it&apos;s a bit critical for WebGL apps.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441712</attachid>
            <date>2021-10-19 05:31:03 -0700</date>
            <delta_ts>2021-10-19 22:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231012-20211019153101.patch</filename>
            <type>text/plain</type>
            <size>27669</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZmYzUxMzBhNjgxMmE1
NDcxZjQxNzVhZTRjNTc2MGYyOGM0Zjk5Zi4uZDZjY2EzZTU0ZTk0MWY5ZjdjMDNkZDU0MTM0NDIx
OTE4YmJmNTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTE5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBv
d2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNvbnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFO
R0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBwZXIt
cG93ZXIgcHJlZmVyZW5jZSBFR0xEaXNwbGF5IHdoZW4gY3JlYXRpbmcgTWV0YWwKKyAgICAgICAg
Y29udGV4dHMuCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIHBs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorICAgICAgICBBZGQgYSB0ZXN0IGZ1bmN0aW9uIHRv
IHJlc2V0IHRoZSBwcm9jZXNzIHR5cGUgYWZ0ZXIgdGVzdCBoYXMgc2V0IGEgc3BlY2lmaWMgdHlw
ZSBhbmQgdGhlbgorICAgICAgICBydW4gdG8gY29tcGxldGlvbi4gcHJvY2VzcyBmb3IgdGhlIGR1
cmF0aW9uIG9mIHRoZSB0ZXN0LiBUaGUgdm9sYXRpbGUgY29udGV4dCBmbGFnIGluCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGRlcGVuZHMgb24gY29uZGl0aW9uIGlzV2ViUHJvY2Vz
cyB8fCBpc0dQVVByb2Nlc3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cmVsZWFzZVRocmVhZFJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmluaXRpYWxpemVFR0xEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oOgorCiAyMDIxLTEwLTE1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29jb2EgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgc2hv
dWxkIG5vdCB1c2UgV2ViR0xMYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggZTA0NTMzNGFkMTZmYzQ3NWJhYjBk
NjI2NTc4ZWEyNzY2ZmY1ZDFhMC4uNGMyYjUzZThkMzgxMzJiNzYwZWIwYWY3ODAxODRhZjQ1MjEy
MTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwCkBAIC03NSw2ICs3NSwxMSBAQCB2b2lkIHNldEF1eGlsaWFyeVByb2Nl
c3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlIHR5cGUpCiAgICAgYXV4aWxpYXJ5UHJvY2Vzc1R5
cGUoKSA9IHR5cGU7CiB9CiAKK3ZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5n
KHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+IHR5cGUpCit7CisgICAgYXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoKSA9IHR5cGU7Cit9CisKIGJvb2wgY2hlY2tBdXhpbGlhcnlQcm9jZXNz
VHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogewogICAgIGF1dG8gY3VycmVudFR5cGUg
PSBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCAwNmRiNzhlODU4NDIzOWQ0Y2ViMDNh
MTk4YWZjMTJkMWEwMzE2NGVjLi4yYjk2OGE3M2NlMjdlN2IwMTYwYzI2MmM0YTJmZjAyNzhmOGQ5
YzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaApAQCAtNDYsNiArNDYsNyBAQCBlbnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NU
eXBlIDogdWludDhfdCB7CiB9OwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGlsaWFyeVBy
b2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJv
Y2Vzc1R5cGU+KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tBdXhpbGlhcnlQcm9jZXNzVHlw
ZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEF1
eGlsaWFyeVByb2Nlc3NUeXBlPiBwcm9jZXNzVHlwZSgpOwogV0VCQ09SRV9FWFBPUlQgY29uc3Qg
Y2hhciogcHJvY2Vzc1R5cGVEZXNjcmlwdGlvbihzdGQ6Om9wdGlvbmFsPEF1eGlsaWFyeVByb2Nl
c3NUeXBlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDU3NGUxZmE3
NWVmOTEyZmUyM2MxMjRmYzMyMDJmNDY1ZGQyNTk2MTAuLjM0N2I0YzMzYjc2Y2IzYzk3OTlhNTk2
MGFjNDYxNzYwMGEzZjFkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBA
IC04NiwyNiArODYsMzEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVsZWFzZVRo
cmVhZFJlc291cmNlcyhSZWxlYXNlVGhyZWFkUmVzb3VyY2VCZWhhdmkKICAgICAvLyBVbnNldCB0
aGUgRUdMIGN1cnJlbnQgY29udGV4dCwgc2luY2UgdGhlIG5leHQgYWNjZXNzIG1pZ2h0IGJlIGZy
b20gYW5vdGhlciB0aHJlYWQsIGFuZCB0aGUKICAgICAvLyBjb250ZXh0IGNhbm5vdCBiZSBjdXJy
ZW50IG9uIG11bHRpcGxlIHRocmVhZHMuCiAgICAgaWYgKHJlbGVhc2VCZWhhdmlvciA9PSBSZWxl
YXNlVGhyZWFkUmVzb3VyY2VCZWhhdmlvcjo6UmVsZWFzZUN1cnJlbnRDb250ZXh0KSB7Ci0gICAg
ICAgIGlmIChFR0xfR2V0Q3VycmVudENvbnRleHQoKSA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAg
ICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gRUdMX0dldEN1cnJlbnREaXNwbGF5KCk7CisgICAgICAg
IGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIC8vIEF0IHRoZSB0aW1lIG9mIHdyaXRpbmcsIEFOR0xFIGRvZXMgbm90IGZsdXNo
IG9uIE1ha2VDdXJyZW50LiBTaW5jZSB3ZSBhcmUKICAgICAgICAgLy8gcG90ZW50aWFsbHkgc3dp
dGNoaW5nIHRocmVhZHMsIHdlIHNob3VsZCBmbHVzaC4KICAgICAgICAgLy8gTm90ZTogSGVyZSB3
ZSBhc3N1bWUgYWxzbyB0aGF0IEFOR0xFIGhhcyBvbmx5IG9uZSBwbGF0Zm9ybSBjb250ZXh0IC0t
IG90aGVyd2lzZQogICAgICAgICAvLyB3ZSB3b3VsZCBuZWVkIHRvIGZsdXNoIGVhY2ggRUdMIGNv
bnRleHQgdGhhdCBoYXMgYmVlbiB1c2VkLgogICAgICAgICBnbDo6Rmx1c2goKTsKLSAgICAgICAg
RUdMRGlzcGxheSBkaXNwbGF5ID0gRUdMX0dldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7
Ci0gICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQotICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBFR0xfTWFrZUN1cnJlbnQoZGlzcGxheSwgRUdMX05P
X1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgfQogICAgIGlm
IChyZWxlYXNlQmVoYXZpb3IgPT0gUmVsZWFzZVRocmVhZFJlc291cmNlQmVoYXZpb3I6OlRlcm1p
bmF0ZUFuZFJlbGVhc2VUaHJlYWRSZXNvdXJjZXMpIHsKLSAgICAgICAgRUdMRGlzcGxheSBkaXNw
bGF5ID0gRUdMX0dldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7Ci0gICAgICAgIGlmIChk
aXNwbGF5ICE9IEVHTF9OT19ESVNQTEFZKSB7Ci0gICAgICAgICAgICBpZiAoRUdMX0dldEN1cnJl
bnRDb250ZXh0KCkgIT0gRUdMX05PX0NPTlRFWFQpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgLy8gQWxsIHJlc291cmNlcyBtdXN0IGhhdmUgYmVlbiBkZXN0cm95ZWQu
Ci0gICAgICAgICAgICAgICAgRUdMX01ha2VDdXJyZW50KGRpc3BsYXksIEVHTF9OT19TVVJGQUNF
LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgRUdMX1Rlcm1pbmF0ZShkaXNwbGF5KTsKKyAgICAgICAgRUdMRGlzcGxheSBjdXJyZW50
RGlzcGxheSA9IEVHTF9HZXRDdXJyZW50RGlzcGxheSgpOworICAgICAgICBpZiAoY3VycmVudERp
c3BsYXkgIT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyAvLyBBbGwgcmVzb3VyY2VzIG11c3QgaGF2ZSBiZWVuIGRlc3Ryb3llZC4KKyAgICAgICAg
ICAgIEVHTF9NYWtlQ3VycmVudChjdXJyZW50RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9O
T19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisgICAgICAgIH0KKyAgICAgICAgY29uc3RleHBy
IEVHTE5hdGl2ZURpc3BsYXlUeXBlIG5hdGl2ZURpc3BsYXlzW10gPSB7CisgICAgICAgICAgICBk
ZWZhdWx0RGlzcGxheSwKKyAgICAgICAgICAgIGxvd1Bvd2VyRGlzcGxheSwKKyAgICAgICAgICAg
IGhpZ2hQZXJmb3JtYW5jZURpc3BsYXkKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChhdXRvIG5h
dGl2ZURpc3BsYXkgOiBuYXRpdmVEaXNwbGF5cykgeworICAgICAgICAgICAgRUdMRGlzcGxheSBk
aXNwbGF5ID0gRUdMX0dldERpc3BsYXkobmF0aXZlRGlzcGxheSk7CisgICAgICAgICAgICBpZiAo
ZGlzcGxheSAhPSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgICAgICAgICBFR0xfVGVybWluYXRl
KGRpc3BsYXkpOwogICAgICAgICB9CiAgICAgfQogICAgIC8vIENhbGxlZCB3aGVuIHdlIGRvIG5v
dCBrbm93IGlmIHdlIHdpbGwgZXZlciBzZWUgYW5vdGhlciBjYWxsIGZyb20gdGhpcyB0aHJlYWQg
YWdhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBk
YjBjOTAwMmNhOTBmZDk1OTlkMDRlYTAzNzY2NDMyMzdmM2MzNTU5Li40ZTE5NGJkNGEyMjI1OWYw
NDllNjYzMDljNDRlOTgxNjFlMDhiNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMQ29jb2EubW0KQEAgLTE0NiwyNCArMTQ2LDI1IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGlu
aXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0
cnMpCiAgICAgfQogCiAgICAgTE9HKFdlYkdMLCAiQXR0ZW1wdGluZyB0byB1c2UgQU5HTEUncyAl
cyBiYWNrZW5kLiIsIGF0dHJzLnVzZU1ldGFsID8gIk1ldGFsIiA6ICJPcGVuR0wiKTsKKyAgICBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OmRlZmF1bHREaXNwbGF5OwogICAgIGlmIChhdHRycy51c2VNZXRhbCkgewogICAgICAgICBk
aXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfQU5HTEUpOwog
ICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVf
TUVUQUxfQU5HTEUpOwotICAgIH0KLQotICAgIGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgIT0g
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfHwg
YXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVKSB7Ci0gICAgICAgIGRpc3Bs
YXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7Ci0gICAgICAg
IGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
OjpQb3dlclByZWZlcmVuY2U6Okxvd1Bvd2VyICYmICFhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdo
UGVyZm9ybWFuY2VHUFUpIHsKLSAgICAgICAgICAgIExPRyhXZWJHTCwgIlJlcXVlc3RpbmcgbG93
IHBvd2VyIEdQVS4iKTsKKyAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBm
b3IgRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UgYXMgRUdMQ29udGV4dCBhdHRyaWJ1dGVzLAor
ICAgICAgICAvLyBidXQgTWV0YWwgYmFja2VuZCB1c2VzIEVHTERpc3BsYXkgYXR0cmlidXRlcy4K
KyAgICAgICAgYXV0byBwb3dlclByZWZlcmVuY2UgPSBhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdo
UGVyZm9ybWFuY2VHUFUgPyBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBvd2VyUHJlZmVy
ZW5jZTo6SGlnaFBlcmZvcm1hbmNlIDogYXR0cnMucG93ZXJQcmVmZXJlbmNlOworICAgICAgICBp
ZiAocG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQ
cmVmZXJlbmNlOjpMb3dQb3dlcikgeworICAgICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBw
ZW5kKEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xFKTsKICAgICAgICAgICAgIGRpc3BsYXlBdHRy
aWJ1dGVzLmFwcGVuZChFR0xfTE9XX1BPV0VSX0FOR0xFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIEFTU0VSVChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSB8fCBhdHRycy5m
b3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFUpOwotICAgICAgICAgICAgTE9HKFdlYkdM
LCAiUmVxdWVzdGluZyBoaWdoIHBvd2VyIEdQVSBpZiBhdmFpbGFibGUuIik7CisgICAgICAgICAg
ICBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Omxvd1Bvd2VyRGlzcGxh
eTsKKyAgICAgICAgfSBlbHNlIGlmIChwb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgeworICAgICAg
ICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xF
KTsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfSElHSF9QT1dFUl9B
TkdMRSk7CisgICAgICAgICAgICBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OmhpZ2hQZXJmb3JtYW5jZURpc3BsYXk7CiAgICAgICAgIH0KICAgICB9CiAgICAgZGlzcGxh
eUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9OT05FKTsKLSAgICBkaXNwbGF5ID0gRUdMX0dldFBsYXRm
b3JtRGlzcGxheUVYVChFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEUsIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KEVHTF9ERUZBVUxUX0RJU1BMQVkpLCBkaXNwbGF5QXR0cmlidXRlcy5kYXRhKCkpOwor
ICAgIGRpc3BsYXkgPSBFR0xfR2V0UGxhdGZvcm1EaXNwbGF5RVhUKEVHTF9QTEFURk9STV9BTkdM
RV9BTkdMRSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obmF0aXZlRGlzcGxheSksIGRpc3BsYXlB
dHRyaWJ1dGVzLmRhdGEoKSk7CiAKICAgICBpZiAoRUdMX0luaXRpYWxpemUoZGlzcGxheSwgJm1h
am9yVmVyc2lvbiwgJm1pbm9yVmVyc2lvbikgPT0gRUdMX0ZBTFNFKSB7CiAgICAgICAgIExPRyhX
ZWJHTCwgIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24gZmFpbGVkLiIpOwpAQCAtMTcyLDcgKzE3
Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAgTE9HKFdlYkdMLCAiQU5HTEUgaW5p
dGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIsIG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9u
KTsKICAgICBpZiAoc2hvdWxkSW5pdGlhbGl6ZVdpdGhWb2xhdGlsZUNvbnRleHRTdXBwb3J0KSB7
CiAgICAgICAgIC8vIEFmdGVyIGluaXRpYWxpemF0aW9uLCBFR0xfREVGQVVMVF9ESVNQTEFZIHdp
bGwgcmV0dXJuIHRoZSBwbGF0Zm9ybS1jdXN0b21pemVkIGRpc3BsYXkuCi0gICAgICAgIEFTU0VS
VChkaXNwbGF5ID09IEVHTF9HZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpKTsKKyAgICAg
ICAgQVNTRVJUKGRpc3BsYXkgPT0gRUdMX0dldERpc3BsYXkobmF0aXZlRGlzcGxheSkpOwogICAg
ICAgICBBU1NFUlQoY2hlY2tWb2xhdGlsZUNvbnRleHRTdXBwb3J0SWZEZXZpY2VFeGlzdHMoZGlz
cGxheSwgIkVHTF9BTkdMRV9wbGF0Zm9ybV9kZXZpY2VfY29udGV4dF92b2xhdGlsZV9lYWdsIiwg
IkVHTF9BTkdMRV9kZXZpY2VfZWFnbCIsIEVHTF9FQUdMX0NPTlRFWFRfQU5HTEUpKTsKICAgICAg
ICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNlRXhpc3RzKGRpc3Bs
YXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNlX2NvbnRleHRfdm9sYXRpbGVfY2dsIiwgIkVH
TF9BTkdMRV9kZXZpY2VfY2dsIiwgRUdMX0NHTF9DT05URVhUX0FOR0xFKSk7CiAgICAgfQpAQCAt
MjE4LDE2ICsyMTksMjUgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICBpZiAoIW1fZGlz
cGxheU9iaikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBzdXBwb3J0c1Bvd2VyUHJlZmVy
ZW5jZSA9IGZhbHNlOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBjb25zdCBjaGFyICpkaXNwbGF5
RXh0ZW5zaW9ucyA9IEVHTF9RdWVyeVN0cmluZyhtX2Rpc3BsYXlPYmosIEVHTF9FWFRFTlNJT05T
KTsKLSAgICBtX3N1cHBvcnRzUG93ZXJQcmVmZXJlbmNlID0gc3Ryc3RyKGRpc3BsYXlFeHRlbnNp
b25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKTsKLSAgICBzdXBwb3J0c1Bvd2VyUHJl
ZmVyZW5jZSA9IG1fc3VwcG9ydHNQb3dlclByZWZlcmVuY2U7Ci0jZW5kaWYKLSAgICBpZiAoIXN1
cHBvcnRzUG93ZXJQcmVmZXJlbmNlICYmIGF0dHJzLnBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGlj
c0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKSB7Ci0gICAgICAgIGF0
dHJzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpE
ZWZhdWx0OwotICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAgaWYgKCFh
dHRycy51c2VNZXRhbCkgeworICAgICAgICAvLyBGb3IgT3BlbkdMLCBFR0xfQU5HTEVfcG93ZXJf
cHJlZmVyZW5jZSBpcyB1c2VkLiBUaGUgY29udGV4dCBpcyBpbml0aWFsaXplZCB3aXRoIHRoZQor
ICAgICAgICAvLyBkZWZhdWx0LCBsb3ctcG93ZXIgZGV2aWNlLiBGb3IgaGlnaC1wZXJmb3JtYW5j
ZSBjb250ZXh0cywgd2UgcmVxdWVzdCB0aGUgaGlnaC1wZXJmb3JtYW5jZQorICAgICAgICAvLyBH
UFUgaW4gc2V0Q29udGV4dFZpc2liaWxpdHkuIFdoZW4gdGhlIHJlcXVlc3QgaXMgZnVsbGZpbGxl
ZCBieSB0aGUgc3lzdGVtLCB3ZSBnZXQgdGhlCisgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1
cmF0aW9uIGNhbGxiYWNrLiBVcG9uIHRoaXMsIHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGlu
c2lkZSBBTkdMRS4KKyAgICAgICAgY29uc3QgY2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xf
UXVlcnlTdHJpbmcobV9kaXNwbGF5T2JqLCBFR0xfRVhURU5TSU9OUyk7CisgICAgICAgIGJvb2wg
c3VwcG9ydHNQb3dlclByZWZlcmVuY2UgPSBzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xf
QU5HTEVfcG93ZXJfcHJlZmVyZW5jZSIpOworICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZl
cmVuY2UpIHsKKyAgICAgICAgICAgIG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRp
b24gPSBhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZl
cmVuY2U6OkhpZ2hQZXJmb3JtYW5jZQorICAgICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVx
dWVzdEZvckhpZ2hQZXJmb3JtYW5jZUdQVTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZl
cmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgeworICAgICAgICAgICAgICAgIGF0dHJzLnBvd2VyUHJl
ZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OworICAg
ICAgICAgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0KKyNlbmRpZgogCiAgICAgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNb
XSA9IHsKICAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULApA
QCAtNTA5LDcgKzUxOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNoZWNrR1BV
U3RhdHVzKCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmls
aXR5KGJvb2wgaXNWaXNpYmxlKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoY29udGV4
dEF0dHJpYnV0ZXMoKS5wb3dlclByZWZlcmVuY2UgIT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclBy
ZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICBpZiAoIW1fc3dpdGNoZXNHUFVPbkRpc3Bs
YXlSZWNvbmZpZ3VyYXRpb24pCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoaXNWaXNpYmxlKQog
ICAgICAgICBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QgPSBTY29wZWRIaWdoUGVyZm9ybWFu
Y2VHUFVSZXF1ZXN0OjphY3F1aXJlKCk7CkBAIC01MjMsNyArNTMzLDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB2
b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKIHsK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1fc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpCisg
ICAgaWYgKG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pCiAgICAgICAgIEVH
TF9IYW5kbGVHUFVTd2l0Y2hBTkdMRShtX2Rpc3BsYXlPYmopOwogI2VuZGlmCiAgICAgZGlzcGF0
Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaAppbmRleCA5OTRlZjE1MjEzMDU1ZjA5N2EwOGZjOTIwYmU1ZTJmNjkxMzA3ZTU3Li4y
OTEwOTRjYzIzODZhYTBmYTNiMmVjZjY0ZmE2ZTgxODU4N2JiOTg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNTM0LDYgKzUzNCw5IEBAIHB1YmxpYzoKICNlbmRpZgog
I2VuZGlmCiAKKyAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1
bHREaXNwbGF5ID0gRUdMX0RFRkFVTFRfRElTUExBWTsKKyAgICBjb25zdGV4cHIgc3RhdGljIEVH
TE5hdGl2ZURpc3BsYXlUeXBlIGxvd1Bvd2VyRGlzcGxheSA9IEVHTF9DQVNUKEVHTE5hdGl2ZURp
c3BsYXlUeXBlLCAtMSk7CisgICAgY29uc3RleHByIHN0YXRpYyBFR0xOYXRpdmVEaXNwbGF5VHlw
ZSBoaWdoUGVyZm9ybWFuY2VEaXNwbGF5ID0gRUdMX0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUs
IC0yKTsKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwpAQCAtNzg1LDcg
Kzc4OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCogbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciB7IG51
bGxwdHIgfTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIG1fc3VwcG9ydHNQ
b3dlclByZWZlcmVuY2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxh
eVJlY29uZmlndXJhdGlvbiB7IGZhbHNlIH07CiAgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BV
UmVxdWVzdCBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODFmYTIzMTVjMjc5NjBlZmJiYWUyYWFkYTQ1MWZhNDNm
NzBhYWE4OS4uOGQ0Y2NkNjQ0Y2IzNzZjYmI2OWI4MWRhMjc0OTNkNzZhZTNiYTVhNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIxLTEwLTE5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViR0wgbG93LXBvd2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNvbnRleHRzIHNo
b3VsZCB1c2UgZGlmZmVyZW50IEFOR0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzOTcxNDE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIEFQSSB0ZXN0IHRvIHRlc3QgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wKKyAgICAgICAgQ29jb2EgaW1wbGVtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBidWcgd2hlcmUK
KyAgICAgICAgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGluc3RhbmNlcyB3b3VsZCB1c2UK
KyAgICAgICAgdGhlIEdQVSB0aGF0IHdhcyBzZWxlY3RlZCBieSB0aGUgZmlyc3QgaW5zdGFuY2Uu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEku
eGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6Omhhc011bHRpcGxlR1BVcyk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1dlYkNvcmVVdGlsaXRpZXMuaDog
QWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNz
VHlwZUZvclRlc3Rpbmc6OlNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVzdGluZyk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZv
clRlc3Rpbmc6On5TY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcpOgorICAg
ICAgICBBZGQgYSB1dGlsaXR5IHN0YXRlIHNldHRlciB0byBzZXQgdGhlIHByb2Nlc3MgdHlwZSBm
b3IgdGhlCisgICAgICAgIGR1cmF0aW9uIG9mIGEgdGVzdC4KKwogMjAyMS0xMC0xNCAgSm9obiBX
aWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0V2ViS2l0QVBJLlBy
aXZhdGVDbGlja01lYXN1cmVtZW50LkZyYXVkUHJldmVudGlvbiBpcyBhIGNvbnN0YW50IHRpbWVv
dXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdl
YktpdEFQSS54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFdlYktpdEFQSS54Y2NvbmZpZwppbmRleCBjMDYyZTYzMjFmYzI1M2E2ZDZkNWViMWU4Zjk4YzVm
YmEwMmZkZDM0Li41ZGZiZmQzZWY4NWIzMTY2YjE0ODY4ZGYxMjYxYWY4YTQwZDkzZDc0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEku
eGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2Vi
S2l0QVBJLnhjY29uZmlnCkBAIC05MCw3ICs5MCw3IEBAIFdLX1VJS0lUTUFDSEVMUEVSX0xERkxB
R1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIFVJS2l0TWFjSGVscGVyOwogCiBPVEhFUl9DUExV
U1BMVVNGTEFHUyA9ICQoaW5oZXJpdGVkKSAtaXN5c3RlbSAkKFNES1JPT1QpL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvU3lzdGVtLmZyYW1ld29yay9Qcml2YXRlSGVhZGVyczsKIAotT1RIRVJf
TERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJh
bWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRf
TERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX0hJ
RF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdL
X1NZU1RFTV9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoV0tfVklTSU9O
S0lUQ09SRV9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VD
SCkpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2Ny
aXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAtZnJhbWV3b3Jr
IE1ldGFsICQoV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFH
UykgLWZyYW1ld29yayBOZXR3b3JrICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxB
R1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfU1lTVEVNX0xERkxBR1MpICQoV0tfVUlLSVRN
QUNIRUxQRVJfTERGTEFHUykgJChXS19WSVNJT05LSVRDT1JFX0xERkxBR1MpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
XyA9IC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBub3QgYmUgYnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5k
IHVzZSBhIFRlc3RXZWJLaXRBUEkgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDVlNDEzMmExOTExN2Q0NGQ4Njk2NTk3ZmYyMGRhYTVjNGM4YjAwMjcuLjQ3ODBhNDdkNDY1
N2NjZjc1ZWEyZDdhMTkzMzExZThhMWRhNThjYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02MDYsNiArNjA2LDcgQEAKIAkJN0IyNzM5RjMyNjMyQUI2NDAwNDBGMTgyIC8qIFRocmVhZEFz
c2VydGlvbnNUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCMjczOUYyMjYzMkFCNjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5j
cHAgKi87IH07CiAJCTdCNzc0OTA2MjY3Q0NFNzIwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3NzQ5
MDQyNjdDQ0U2ODAwOTg3M0I0IC8qIFRlc3RSdW5uZXJUZXN0cy5jcHAgKi87IH07CiAJCTdCN0Qw
OTZBMjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3RDA5Njky
NTE5RjhGOTAwMTdBMDc4IC8qIFdlYkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi87
IH07CisJCTdCQTM5MzZDMjcxRURGQ0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCQTM5MzZCMjcxRURGQ0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbSAqLzsgfTsKIAkJN0MxQUY3OTUxRThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVG
b3JNb3ZlVG9XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzFBRjc5MzFFOERDQkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dpbmRv
dy5tbSAqLzsgfTsKIAkJN0MzOTY1MDYxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOTY1MDUx
Q0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwICovOyB9OwogCQk3QzNEQjhFNDFEMTIx
MjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENv
bW1hbmRCYWNrRm9yd2FyZC5tbSAqLzsgfTsKQEAgLTI1MTAsNiArMjUxMSw4IEBACiAJCTdCMjcz
OUYyMjYzMkFCNjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzc0OTA0MjY3Q0NFNjgwMDk4NzNCNCAvKiBU
ZXN0UnVubmVyVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGVzdFJ1bm5lclRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3RDA5
NjkyNTE5RjhGOTAwMTdBMDc4IC8qIFdlYkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkEzOTM2QjI3MUVERkNBMDAxNTkxMUMg
LyogVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JBMzkzNkQyNzFFRUM1MzAwMTU5MTFD
IC8qIFdlYkNvcmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzFBRjc5
MzFFOERDQkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAv
KiBDb2xvclRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENv
bG9yVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzNEQjhFMjFEMTIx
MjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ29tbWFuZEJhY2tGb3J3YXJkLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzMxMiw2ICszMzE1LDcgQEAKIAkJCQlCQzEzMUFBODExNzEzMUZD
MDBCNjk3MjcgLyogVGVzdHNDb250cm9sbGVyLmNwcCAqLywKIAkJCQlCQ0I5RTdDNzExMjM0RTNB
MDBBMTM3RTAgLyogVGVzdHNDb250cm9sbGVyLmggKi8sCiAJCQkJN0M4M0UwMzYxRDBBNUY3MDAw
RkVCQ0YzIC8qIFV0aWxpdGllcy5oICovLAorCQkJCTdCQTM5MzZEMjcxRUVDNTMwMDE1OTExQyAv
KiBXZWJDb3JlVXRpbGl0aWVzLmggKi8sCiAJCQkJN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8q
IFdURlN0cmluZ1V0aWxpdGllcy5jcHAgKi8sCiAJCQkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVC
IC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovLAogCQkJKTsKQEAgLTQ5NzUsNiArNDk3OSw3IEBA
CiAJCQkJNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29jb2EubW0gKi8sCiAJCQkJNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwLm1tICovLAogCQkJCUExNzk5MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFy
ZWRCdWZmZXIubW0gKi8sCisJCQkJN0JBMzkzNkIyNzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICovLAogCQkJCUNEODlEMDM4MUM0RURCMkEwMDA0
MEEwNCAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2Nv
YTsKQEAgLTU1NDksNiArNTU1NCw3IEBACiAJCQkJN0NDRTdFRUUxQTQxMUFFNjAwNDQ3QzRDIC8q
IERvd25sb2FkRGVjaWRlRGVzdGluYXRpb25DcmFzaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
MzcyODFBNzIxQUUxMzg2MDA5RTBERTYgLyogRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDRjU0MEU5MjI1N0U2N0MwMEU2QkMwRSAvKiBEb3dubG9hZFRocmVhZC5tbSBp
biBTb3VyY2VzICovLAorCQkJCTdCQTM5MzZDMjcxRURGQ0EwMDE1OTExQyAvKiBUZXN0R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0RDRGM0I2MUU0
RTJCQ0IwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUY0NjEyOEI3MjExQzhFRDUwMEQ5RkFEQiAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvck1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NjEyOEQ3MjExRTQ4OUMwMEQ5RkFEQiAvKiBEcmFn
QW5kRHJvcFRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE5OWM5NTNiZjRlYzIxNGNk
YTY1NDZhNDA3MDFlMTE3OGViMTQwYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFdFQkdMKQor
I2ltcG9ydCAiV2ViQ29yZVV0aWxpdGllcy5oIgorI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSB7Citj
bGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCA6IHB1YmxpYyBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxUZXN0ZWRHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQorICAgIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBUZXN0ZWRH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIHJl
dHVybiBjb250ZXh0OworICAgIH0KK3ByaXZhdGU6CisgICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgICAg
IDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICB7Cisg
ICAgfQorfTsKK30KKworc3RhdGljIGJvb2wgaGFzTXVsdGlwbGVHUFVzKCkKK3sKKyAgICBhdXRv
IGRldmljZXMgPSBhZG9wdE5TKE1UTENvcHlBbGxEZXZpY2VzKCkpOworICAgIHJldHVybiBbZGV2
aWNlcyBjb3VudF0gPiAxOworfQorCisjaWYgSEFWRShXRUJHTF9DT01QQVRJQkxFX01FVEFMKQor
I2RlZmluZSBNQVlCRV9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbCBN
dWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbAorI2Vsc2UKKyNkZWZpbmUg
TUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0YWwgRElTQUJMRURf
TXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0YWwKKyNlbmRpZgorLy8gVGVz
dHMgZm9yIGEgYnVnIHdoZXJlIGhpZ2gtcGVyZm9ybWFuY2UgY29udGV4dCB3b3VsZCB1c2UgbG93
LXBvd2VyIEdQVSBpZiBsb3ctcG93ZXIgb3IgZGVmYXVsdAorLy8gY29udGV4dCB3YXMgY3JlYXRl
ZCBmaXJzdC4gVGVzdCBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIE1ldGFsLCBzaW5jZSBHUFUgc2Vs
ZWN0aW9uIGZvciBPcGVuR0wgaXMKKy8vIHZlcnkgZGlmZmVyZW50LgorVEVTVChHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hVGVzdCwgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQ
cmVmZXJlbmNlTWV0YWwpCit7CisgICAgaWYgKCFoYXNNdWx0aXBsZUdQVXMoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIFNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVzdGluZyBzY29w
ZWRQcm9jZXNzVHlwZSB7IEF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFUgfTsKKworICAgIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzOworICAgIGF0dHJpYnV0ZXMudXNlTWV0
YWwgPSB0cnVlOworICAgIEVYUEVDVF9FUShhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSwgR3Jh
cGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQpOworICAgIGF1dG8gZGVmYXVs
dENvbnRleHQgPSBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKGF0dHJpYnV0
ZXMpOworICAgIEVYUEVDVF9ORShkZWZhdWx0Q29udGV4dCwgbnVsbHB0cik7CisKKyAgICBhdHRy
aWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNl
OjpMb3dQb3dlcjsKKyAgICBhdXRvIGxvd1Bvd2VyQ29udGV4dCA9IFRlc3RlZEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpjcmVhdGUoYXR0cmlidXRlcyk7CisgICAgRVhQRUNUX05FKGxvd1Bvd2Vy
Q29udGV4dCwgbnVsbHB0cik7CisKKyAgICBhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IEdy
YXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2U7CisgICAgYXV0
byBoaWdoUGVyZm9ybWFuY2VDb250ZXh0ID0gVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OmNyZWF0ZShhdHRyaWJ1dGVzKTsKKyAgICBFWFBFQ1RfTkUoaGlnaFBlcmZvcm1hbmNlQ29udGV4
dCwgbnVsbHB0cik7CisKKyAgICBFWFBFQ1RfTkUobG93UG93ZXJDb250ZXh0LT5nZXRTdHJpbmco
R3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSwgaGlnaFBlcmZvcm1hbmNlQ29udGV4dC0+Z2V0
U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUikpOworICAgIEVYUEVDVF9FUShkZWZh
dWx0Q29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUiksIGxvd1Bv
d2VyQ29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUikpOworfQor
Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV2ViQ29yZVV0aWxp
dGllcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XZWJDb3JlVXRpbGl0aWVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDI2MzVkMjYwY2FmMmJjMzVhNDJhMDkxZjJlYmI4NzkzYWM0NWY3MAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV2ViQ29yZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
Y2xhc3MgU2NvcGVkU2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBTY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcoV2Vi
Q29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGUgdHlwZSkKKyAgICAgICAgOiBtX29sZFR5cGUoV2Vi
Q29yZTo6cHJvY2Vzc1R5cGUoKSkKKyAgICB7CisgICAgICAgIHNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlRm9yVGVzdGluZyh0eXBlKTsKKyAgICB9CisgICAgflNjb3BlZFNldEF1eGlsaWFyeVByb2Nl
c3NUeXBlRm9yVGVzdGluZygpCisgICAgeworICAgICAgICBzZXRBdXhpbGlhcnlQcm9jZXNzVHlw
ZUZvclRlc3RpbmcobV9vbGRUeXBlKTsKKyAgICB9Citwcml2YXRlOgorICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+IG1fb2xkVHlwZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441849</attachid>
            <date>2021-10-19 22:30:36 -0700</date>
            <delta_ts>2021-10-20 05:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231012-20211020083034.patch</filename>
            <type>text/plain</type>
            <size>27717</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZmYzUxMzBhNjgxMmE1
NDcxZjQxNzVhZTRjNTc2MGYyOGM0Zjk5Zi4uZDZjY2EzZTU0ZTk0MWY5ZjdjMDNkZDU0MTM0NDIx
OTE4YmJmNTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTE5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBv
d2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNvbnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFO
R0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBwZXIt
cG93ZXIgcHJlZmVyZW5jZSBFR0xEaXNwbGF5IHdoZW4gY3JlYXRpbmcgTWV0YWwKKyAgICAgICAg
Y29udGV4dHMuCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIHBs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorICAgICAgICBBZGQgYSB0ZXN0IGZ1bmN0aW9uIHRv
IHJlc2V0IHRoZSBwcm9jZXNzIHR5cGUgYWZ0ZXIgdGVzdCBoYXMgc2V0IGEgc3BlY2lmaWMgdHlw
ZSBhbmQgdGhlbgorICAgICAgICBydW4gdG8gY29tcGxldGlvbi4gcHJvY2VzcyBmb3IgdGhlIGR1
cmF0aW9uIG9mIHRoZSB0ZXN0LiBUaGUgdm9sYXRpbGUgY29udGV4dCBmbGFnIGluCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGRlcGVuZHMgb24gY29uZGl0aW9uIGlzV2ViUHJvY2Vz
cyB8fCBpc0dQVVByb2Nlc3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cmVsZWFzZVRocmVhZFJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmluaXRpYWxpemVFR0xEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oOgorCiAyMDIxLTEwLTE1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29jb2EgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgc2hv
dWxkIG5vdCB1c2UgV2ViR0xMYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggZTA0NTMzNGFkMTZmYzQ3NWJhYjBk
NjI2NTc4ZWEyNzY2ZmY1ZDFhMC4uNGMyYjUzZThkMzgxMzJiNzYwZWIwYWY3ODAxODRhZjQ1MjEy
MTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwCkBAIC03NSw2ICs3NSwxMSBAQCB2b2lkIHNldEF1eGlsaWFyeVByb2Nl
c3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlIHR5cGUpCiAgICAgYXV4aWxpYXJ5UHJvY2Vzc1R5
cGUoKSA9IHR5cGU7CiB9CiAKK3ZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5n
KHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+IHR5cGUpCit7CisgICAgYXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoKSA9IHR5cGU7Cit9CisKIGJvb2wgY2hlY2tBdXhpbGlhcnlQcm9jZXNz
VHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogewogICAgIGF1dG8gY3VycmVudFR5cGUg
PSBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCAwNmRiNzhlODU4NDIzOWQ0Y2ViMDNh
MTk4YWZjMTJkMWEwMzE2NGVjLi4yYjk2OGE3M2NlMjdlN2IwMTYwYzI2MmM0YTJmZjAyNzhmOGQ5
YzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaApAQCAtNDYsNiArNDYsNyBAQCBlbnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NU
eXBlIDogdWludDhfdCB7CiB9OwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGlsaWFyeVBy
b2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJv
Y2Vzc1R5cGU+KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tBdXhpbGlhcnlQcm9jZXNzVHlw
ZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEF1
eGlsaWFyeVByb2Nlc3NUeXBlPiBwcm9jZXNzVHlwZSgpOwogV0VCQ09SRV9FWFBPUlQgY29uc3Qg
Y2hhciogcHJvY2Vzc1R5cGVEZXNjcmlwdGlvbihzdGQ6Om9wdGlvbmFsPEF1eGlsaWFyeVByb2Nl
c3NUeXBlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDU3NGUxZmE3
NWVmOTEyZmUyM2MxMjRmYzMyMDJmNDY1ZGQyNTk2MTAuLjM0N2I0YzMzYjc2Y2IzYzk3OTlhNTk2
MGFjNDYxNzYwMGEzZjFkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBA
IC04NiwyNiArODYsMzEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVsZWFzZVRo
cmVhZFJlc291cmNlcyhSZWxlYXNlVGhyZWFkUmVzb3VyY2VCZWhhdmkKICAgICAvLyBVbnNldCB0
aGUgRUdMIGN1cnJlbnQgY29udGV4dCwgc2luY2UgdGhlIG5leHQgYWNjZXNzIG1pZ2h0IGJlIGZy
b20gYW5vdGhlciB0aHJlYWQsIGFuZCB0aGUKICAgICAvLyBjb250ZXh0IGNhbm5vdCBiZSBjdXJy
ZW50IG9uIG11bHRpcGxlIHRocmVhZHMuCiAgICAgaWYgKHJlbGVhc2VCZWhhdmlvciA9PSBSZWxl
YXNlVGhyZWFkUmVzb3VyY2VCZWhhdmlvcjo6UmVsZWFzZUN1cnJlbnRDb250ZXh0KSB7Ci0gICAg
ICAgIGlmIChFR0xfR2V0Q3VycmVudENvbnRleHQoKSA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAg
ICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gRUdMX0dldEN1cnJlbnREaXNwbGF5KCk7CisgICAgICAg
IGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIC8vIEF0IHRoZSB0aW1lIG9mIHdyaXRpbmcsIEFOR0xFIGRvZXMgbm90IGZsdXNo
IG9uIE1ha2VDdXJyZW50LiBTaW5jZSB3ZSBhcmUKICAgICAgICAgLy8gcG90ZW50aWFsbHkgc3dp
dGNoaW5nIHRocmVhZHMsIHdlIHNob3VsZCBmbHVzaC4KICAgICAgICAgLy8gTm90ZTogSGVyZSB3
ZSBhc3N1bWUgYWxzbyB0aGF0IEFOR0xFIGhhcyBvbmx5IG9uZSBwbGF0Zm9ybSBjb250ZXh0IC0t
IG90aGVyd2lzZQogICAgICAgICAvLyB3ZSB3b3VsZCBuZWVkIHRvIGZsdXNoIGVhY2ggRUdMIGNv
bnRleHQgdGhhdCBoYXMgYmVlbiB1c2VkLgogICAgICAgICBnbDo6Rmx1c2goKTsKLSAgICAgICAg
RUdMRGlzcGxheSBkaXNwbGF5ID0gRUdMX0dldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7
Ci0gICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQotICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBFR0xfTWFrZUN1cnJlbnQoZGlzcGxheSwgRUdMX05P
X1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgfQogICAgIGlm
IChyZWxlYXNlQmVoYXZpb3IgPT0gUmVsZWFzZVRocmVhZFJlc291cmNlQmVoYXZpb3I6OlRlcm1p
bmF0ZUFuZFJlbGVhc2VUaHJlYWRSZXNvdXJjZXMpIHsKLSAgICAgICAgRUdMRGlzcGxheSBkaXNw
bGF5ID0gRUdMX0dldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7Ci0gICAgICAgIGlmIChk
aXNwbGF5ICE9IEVHTF9OT19ESVNQTEFZKSB7Ci0gICAgICAgICAgICBpZiAoRUdMX0dldEN1cnJl
bnRDb250ZXh0KCkgIT0gRUdMX05PX0NPTlRFWFQpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgLy8gQWxsIHJlc291cmNlcyBtdXN0IGhhdmUgYmVlbiBkZXN0cm95ZWQu
Ci0gICAgICAgICAgICAgICAgRUdMX01ha2VDdXJyZW50KGRpc3BsYXksIEVHTF9OT19TVVJGQUNF
LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgRUdMX1Rlcm1pbmF0ZShkaXNwbGF5KTsKKyAgICAgICAgRUdMRGlzcGxheSBjdXJyZW50
RGlzcGxheSA9IEVHTF9HZXRDdXJyZW50RGlzcGxheSgpOworICAgICAgICBpZiAoY3VycmVudERp
c3BsYXkgIT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyAvLyBBbGwgcmVzb3VyY2VzIG11c3QgaGF2ZSBiZWVuIGRlc3Ryb3llZC4KKyAgICAgICAg
ICAgIEVHTF9NYWtlQ3VycmVudChjdXJyZW50RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9O
T19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisgICAgICAgIH0KKyAgICAgICAgY29uc3RleHBy
IEVHTE5hdGl2ZURpc3BsYXlUeXBlIG5hdGl2ZURpc3BsYXlzW10gPSB7CisgICAgICAgICAgICBk
ZWZhdWx0RGlzcGxheSwKKyAgICAgICAgICAgIGxvd1Bvd2VyRGlzcGxheSwKKyAgICAgICAgICAg
IGhpZ2hQZXJmb3JtYW5jZURpc3BsYXkKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChhdXRvIG5h
dGl2ZURpc3BsYXkgOiBuYXRpdmVEaXNwbGF5cykgeworICAgICAgICAgICAgRUdMRGlzcGxheSBk
aXNwbGF5ID0gRUdMX0dldERpc3BsYXkobmF0aXZlRGlzcGxheSk7CisgICAgICAgICAgICBpZiAo
ZGlzcGxheSAhPSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgICAgICAgICBFR0xfVGVybWluYXRl
KGRpc3BsYXkpOwogICAgICAgICB9CiAgICAgfQogICAgIC8vIENhbGxlZCB3aGVuIHdlIGRvIG5v
dCBrbm93IGlmIHdlIHdpbGwgZXZlciBzZWUgYW5vdGhlciBjYWxsIGZyb20gdGhpcyB0aHJlYWQg
YWdhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBk
YjBjOTAwMmNhOTBmZDk1OTlkMDRlYTAzNzY2NDMyMzdmM2MzNTU5Li40ZTE5NGJkNGEyMjI1OWYw
NDllNjYzMDljNDRlOTgxNjFlMDhiNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMQ29jb2EubW0KQEAgLTE0NiwyNCArMTQ2LDI1IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGlu
aXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0
cnMpCiAgICAgfQogCiAgICAgTE9HKFdlYkdMLCAiQXR0ZW1wdGluZyB0byB1c2UgQU5HTEUncyAl
cyBiYWNrZW5kLiIsIGF0dHJzLnVzZU1ldGFsID8gIk1ldGFsIiA6ICJPcGVuR0wiKTsKKyAgICBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OmRlZmF1bHREaXNwbGF5OwogICAgIGlmIChhdHRycy51c2VNZXRhbCkgewogICAgICAgICBk
aXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfQU5HTEUpOwog
ICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVf
TUVUQUxfQU5HTEUpOwotICAgIH0KLQotICAgIGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgIT0g
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfHwg
YXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVKSB7Ci0gICAgICAgIGRpc3Bs
YXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7Ci0gICAgICAg
IGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
OjpQb3dlclByZWZlcmVuY2U6Okxvd1Bvd2VyICYmICFhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdo
UGVyZm9ybWFuY2VHUFUpIHsKLSAgICAgICAgICAgIExPRyhXZWJHTCwgIlJlcXVlc3RpbmcgbG93
IHBvd2VyIEdQVS4iKTsKKyAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBm
b3IgRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UgYXMgRUdMQ29udGV4dCBhdHRyaWJ1dGVzLAor
ICAgICAgICAvLyBidXQgTWV0YWwgYmFja2VuZCB1c2VzIEVHTERpc3BsYXkgYXR0cmlidXRlcy4K
KyAgICAgICAgYXV0byBwb3dlclByZWZlcmVuY2UgPSBhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdo
UGVyZm9ybWFuY2VHUFUgPyBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBvd2VyUHJlZmVy
ZW5jZTo6SGlnaFBlcmZvcm1hbmNlIDogYXR0cnMucG93ZXJQcmVmZXJlbmNlOworICAgICAgICBp
ZiAocG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQ
cmVmZXJlbmNlOjpMb3dQb3dlcikgeworICAgICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBw
ZW5kKEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xFKTsKICAgICAgICAgICAgIGRpc3BsYXlBdHRy
aWJ1dGVzLmFwcGVuZChFR0xfTE9XX1BPV0VSX0FOR0xFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIEFTU0VSVChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSB8fCBhdHRycy5m
b3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFUpOwotICAgICAgICAgICAgTE9HKFdlYkdM
LCAiUmVxdWVzdGluZyBoaWdoIHBvd2VyIEdQVSBpZiBhdmFpbGFibGUuIik7CisgICAgICAgICAg
ICBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Omxvd1Bvd2VyRGlzcGxh
eTsKKyAgICAgICAgfSBlbHNlIGlmIChwb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgeworICAgICAg
ICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xF
KTsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfSElHSF9QT1dFUl9B
TkdMRSk7CisgICAgICAgICAgICBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OmhpZ2hQZXJmb3JtYW5jZURpc3BsYXk7CiAgICAgICAgIH0KICAgICB9CiAgICAgZGlzcGxh
eUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9OT05FKTsKLSAgICBkaXNwbGF5ID0gRUdMX0dldFBsYXRm
b3JtRGlzcGxheUVYVChFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEUsIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KEVHTF9ERUZBVUxUX0RJU1BMQVkpLCBkaXNwbGF5QXR0cmlidXRlcy5kYXRhKCkpOwor
ICAgIGRpc3BsYXkgPSBFR0xfR2V0UGxhdGZvcm1EaXNwbGF5RVhUKEVHTF9QTEFURk9STV9BTkdM
RV9BTkdMRSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obmF0aXZlRGlzcGxheSksIGRpc3BsYXlB
dHRyaWJ1dGVzLmRhdGEoKSk7CiAKICAgICBpZiAoRUdMX0luaXRpYWxpemUoZGlzcGxheSwgJm1h
am9yVmVyc2lvbiwgJm1pbm9yVmVyc2lvbikgPT0gRUdMX0ZBTFNFKSB7CiAgICAgICAgIExPRyhX
ZWJHTCwgIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24gZmFpbGVkLiIpOwpAQCAtMTcyLDcgKzE3
Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAgTE9HKFdlYkdMLCAiQU5HTEUgaW5p
dGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIsIG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9u
KTsKICAgICBpZiAoc2hvdWxkSW5pdGlhbGl6ZVdpdGhWb2xhdGlsZUNvbnRleHRTdXBwb3J0KSB7
CiAgICAgICAgIC8vIEFmdGVyIGluaXRpYWxpemF0aW9uLCBFR0xfREVGQVVMVF9ESVNQTEFZIHdp
bGwgcmV0dXJuIHRoZSBwbGF0Zm9ybS1jdXN0b21pemVkIGRpc3BsYXkuCi0gICAgICAgIEFTU0VS
VChkaXNwbGF5ID09IEVHTF9HZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpKTsKKyAgICAg
ICAgQVNTRVJUKGRpc3BsYXkgPT0gRUdMX0dldERpc3BsYXkobmF0aXZlRGlzcGxheSkpOwogICAg
ICAgICBBU1NFUlQoY2hlY2tWb2xhdGlsZUNvbnRleHRTdXBwb3J0SWZEZXZpY2VFeGlzdHMoZGlz
cGxheSwgIkVHTF9BTkdMRV9wbGF0Zm9ybV9kZXZpY2VfY29udGV4dF92b2xhdGlsZV9lYWdsIiwg
IkVHTF9BTkdMRV9kZXZpY2VfZWFnbCIsIEVHTF9FQUdMX0NPTlRFWFRfQU5HTEUpKTsKICAgICAg
ICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNlRXhpc3RzKGRpc3Bs
YXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNlX2NvbnRleHRfdm9sYXRpbGVfY2dsIiwgIkVH
TF9BTkdMRV9kZXZpY2VfY2dsIiwgRUdMX0NHTF9DT05URVhUX0FOR0xFKSk7CiAgICAgfQpAQCAt
MjE4LDE2ICsyMTksMjUgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICBpZiAoIW1fZGlz
cGxheU9iaikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBzdXBwb3J0c1Bvd2VyUHJlZmVy
ZW5jZSA9IGZhbHNlOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBjb25zdCBjaGFyICpkaXNwbGF5
RXh0ZW5zaW9ucyA9IEVHTF9RdWVyeVN0cmluZyhtX2Rpc3BsYXlPYmosIEVHTF9FWFRFTlNJT05T
KTsKLSAgICBtX3N1cHBvcnRzUG93ZXJQcmVmZXJlbmNlID0gc3Ryc3RyKGRpc3BsYXlFeHRlbnNp
b25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKTsKLSAgICBzdXBwb3J0c1Bvd2VyUHJl
ZmVyZW5jZSA9IG1fc3VwcG9ydHNQb3dlclByZWZlcmVuY2U7Ci0jZW5kaWYKLSAgICBpZiAoIXN1
cHBvcnRzUG93ZXJQcmVmZXJlbmNlICYmIGF0dHJzLnBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGlj
c0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKSB7Ci0gICAgICAgIGF0
dHJzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpE
ZWZhdWx0OwotICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAgaWYgKCFh
dHRycy51c2VNZXRhbCkgeworICAgICAgICAvLyBGb3IgT3BlbkdMLCBFR0xfQU5HTEVfcG93ZXJf
cHJlZmVyZW5jZSBpcyB1c2VkLiBUaGUgY29udGV4dCBpcyBpbml0aWFsaXplZCB3aXRoIHRoZQor
ICAgICAgICAvLyBkZWZhdWx0LCBsb3ctcG93ZXIgZGV2aWNlLiBGb3IgaGlnaC1wZXJmb3JtYW5j
ZSBjb250ZXh0cywgd2UgcmVxdWVzdCB0aGUgaGlnaC1wZXJmb3JtYW5jZQorICAgICAgICAvLyBH
UFUgaW4gc2V0Q29udGV4dFZpc2liaWxpdHkuIFdoZW4gdGhlIHJlcXVlc3QgaXMgZnVsbGZpbGxl
ZCBieSB0aGUgc3lzdGVtLCB3ZSBnZXQgdGhlCisgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1
cmF0aW9uIGNhbGxiYWNrLiBVcG9uIHRoaXMsIHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGlu
c2lkZSBBTkdMRS4KKyAgICAgICAgY29uc3QgY2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xf
UXVlcnlTdHJpbmcobV9kaXNwbGF5T2JqLCBFR0xfRVhURU5TSU9OUyk7CisgICAgICAgIGJvb2wg
c3VwcG9ydHNQb3dlclByZWZlcmVuY2UgPSBzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xf
QU5HTEVfcG93ZXJfcHJlZmVyZW5jZSIpOworICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZl
cmVuY2UpIHsKKyAgICAgICAgICAgIG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRp
b24gPSBhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZl
cmVuY2U6OkhpZ2hQZXJmb3JtYW5jZQorICAgICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVx
dWVzdEZvckhpZ2hQZXJmb3JtYW5jZUdQVTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZl
cmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgeworICAgICAgICAgICAgICAgIGF0dHJzLnBvd2VyUHJl
ZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OworICAg
ICAgICAgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0KKyNlbmRpZgogCiAgICAgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNb
XSA9IHsKICAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULApA
QCAtNTA5LDcgKzUxOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNoZWNrR1BV
U3RhdHVzKCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmls
aXR5KGJvb2wgaXNWaXNpYmxlKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoY29udGV4
dEF0dHJpYnV0ZXMoKS5wb3dlclByZWZlcmVuY2UgIT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclBy
ZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICBpZiAoIW1fc3dpdGNoZXNHUFVPbkRpc3Bs
YXlSZWNvbmZpZ3VyYXRpb24pCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoaXNWaXNpYmxlKQog
ICAgICAgICBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QgPSBTY29wZWRIaWdoUGVyZm9ybWFu
Y2VHUFVSZXF1ZXN0OjphY3F1aXJlKCk7CkBAIC01MjMsNyArNTMzLDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB2
b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKIHsK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1fc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpCisg
ICAgaWYgKG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pCiAgICAgICAgIEVH
TF9IYW5kbGVHUFVTd2l0Y2hBTkdMRShtX2Rpc3BsYXlPYmopOwogI2VuZGlmCiAgICAgZGlzcGF0
Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaAppbmRleCA5OTRlZjE1MjEzMDU1ZjA5N2EwOGZjOTIwYmU1ZTJmNjkxMzA3ZTU3Li5k
YjY1ODY4Mzg5YjYwODA2MmZkMTk1MGE1OWE1Yjg3MzZhODI3YTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNTM0LDYgKzUzNCwxMSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICNlbmRpZgogCisjaWYgVVNFKEFOR0xFKQorICAgIGNvbnN0ZXhwciBzdGF0aWMgRUdMTmF0aXZl
RGlzcGxheVR5cGUgZGVmYXVsdERpc3BsYXkgPSBFR0xfREVGQVVMVF9ESVNQTEFZOworICAgIGNv
bnN0ZXhwciBzdGF0aWMgRUdMTmF0aXZlRGlzcGxheVR5cGUgbG93UG93ZXJEaXNwbGF5ID0gRUdM
X0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUsIC0xKTsKKyAgICBjb25zdGV4cHIgc3RhdGljIEVH
TE5hdGl2ZURpc3BsYXlUeXBlIGhpZ2hQZXJmb3JtYW5jZURpc3BsYXkgPSBFR0xfQ0FTVChFR0xO
YXRpdmVEaXNwbGF5VHlwZSwgLTIpOworI2VuZGlmCiBwcm90ZWN0ZWQ6CiAgICAgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzKTsKICAgICBib29sIGlz
VmFsaWQoKSBjb25zdDsKQEAgLTc4NSw3ICs3OTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQqIG1f
ZGlzcGxheUJ1ZmZlclBidWZmZXIgeyBudWxscHRyIH07CiAjZW5kaWYKICNpZiBQTEFURk9STShN
QUMpCi0gICAgYm9vbCBtX3N1cHBvcnRzUG93ZXJQcmVmZXJlbmNlIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24geyBmYWxzZSB9OwogICAg
IFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QgbV9oaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0OwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgxZmEyMzE1
YzI3OTYwZWZiYmFlMmFhZGE0NTFmYTQzZjcwYWFhODkuLjhkNGNjZDY0NGNiMzc2Y2JiNjliODFk
YTI3NDkzZDc2YWUzYmE1YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0xMC0xOSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkdMIGxvdy1wb3dlciBhbmQgaGln
aC1wZXJmb3JtYW5jZSBjb250ZXh0cyBzaG91bGQgdXNlIGRpZmZlcmVudCBBTkdMRSBNZXRhbCBF
R0xEaXNwbGF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMxMDEyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzk3MTQxNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBBUEkgdGVzdCB0byB0
ZXN0IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMCisgICAgICAgIENvY29hIGltcGxlbWVudGF0aW9u
IHJlZ2FyZGluZyB0aGUgYnVnIHdoZXJlCisgICAgICAgIHRoZSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCBpbnN0YW5jZXMgd291bGQgdXNlCisgICAgICAgIHRoZSBHUFUgdGhhdCB3YXMgc2VsZWN0
ZWQgYnkgdGhlIGZpcnN0IGluc3RhbmNlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjpUZXN0
ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpUZXN0ZWRHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpoYXNNdWx0aXBsZUdQ
VXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9XZWJDb3JlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
U2NvcGVkU2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nOjpTY29wZWRTZXRBdXhpbGlh
cnlQcm9jZXNzVHlwZUZvclRlc3RpbmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6U2NvcGVk
U2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nOjp+U2NvcGVkU2V0QXV4aWxpYXJ5UHJv
Y2Vzc1R5cGVGb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIGEgdXRpbGl0eSBzdGF0ZSBzZXR0ZXIg
dG8gc2V0IHRoZSBwcm9jZXNzIHR5cGUgZm9yIHRoZQorICAgICAgICBkdXJhdGlvbiBvZiBhIHRl
c3QuCisKIDIwMjEtMTAtMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGVzdFdlYktpdEFQSS5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5GcmF1ZFByZXZl
bnRpb24gaXMgYSBjb25zdGFudCB0aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKaW5kZXggYzA2MmU2
MzIxZmMyNTNhNmQ2ZDVlYjFlOGY5OGM1ZmJhMDJmZGQzNC4uNWRmYmZkM2VmODViMzE2NmIxNDg2
OGRmMTI2MWFmOGE0MGQ5M2Q3NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpAQCAtOTAsNyArOTAsNyBA
QCBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBVSUtp
dE1hY0hlbHBlcjsKIAogT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRlZCkgLWlzeXN0
ZW0gJChTREtST09UKS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbS5mcmFtZXdvcmsv
UHJpdmF0ZUhlYWRlcnM7CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgLWxndGVzdCAt
Zm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1mcmFt
ZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1cHBv
cnQgJChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAt
ZnJhbWV3b3JrIE5ldHdvcmsgJChXS19ISURfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykg
JChXS19QREZLSVRfTERGTEFHUykgJChXS19TWVNURU1fTERGTEFHUykgJChXS19VSUtJVE1BQ0hF
TFBFUl9MREZMQUdTKSAkKFdLX1ZJU0lPTktJVENPUkVfTERGTEFHUykgJChPVEhFUl9MREZMQUdT
X1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRl
ZCkgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktp
dEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJD
b3JlVGVzdFN1cHBvcnQgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERG
TEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX0hJRF9M
REZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NZ
U1RFTV9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoV0tfVklTSU9OS0lU
Q09SRV9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkp
OwogT1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsg
Q2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5z
dGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9u
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZTQxMzJhMTkxMTdkNDRkODY5NjU5N2ZmMjBk
YWE1YzRjOGIwMDI3Li5kYjY5ZWYyMWZiZWI4YWMzNzZiODMzODliNzhiOTAzZWIzMDI0MTU2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjA2LDYgKzYwNiw3IEBACiAJCTdCMjczOUYzMjYz
MkFCNjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjI3MzlGMjI2MzJBQjY0MDA0MEYxODIg
LyogVGhyZWFkQXNzZXJ0aW9uc1Rlc3QuY3BwICovOyB9OwogCQk3Qjc3NDkwNjI2N0NDRTcyMDA5
ODczQjQgLyogVGVzdFJ1bm5lclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdCNzc0OTA0MjY3Q0NFNjgwMDk4NzNCNCAvKiBUZXN0UnVubmVy
VGVzdHMuY3BwICovOyB9OwogCQk3QjdEMDk2QTI1MTlGOEY5MDAxN0EwNzggLyogV2ViR0xOb0Ny
YXNoT25PdGhlclRocmVhZEFjY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCN0QwOTY5MjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jhc2hP
bk90aGVyVGhyZWFkQWNjZXNzLm1tICovOyB9OworCQk3QkEzOTM2QzI3MUVERkNBMDAxNTkxMUMg
LyogVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkEzOTM2QjI3MUVERkNBMDAxNTkxMUMgLyog
VGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi87IH07CiAJCTdDMUFGNzk1MUU4
RENCQUIwMDI2NDVCOSAvKiBQcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MxQUY3OTMxRThEQ0JBQjAwMjY0NUI5
IC8qIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gKi87IH07CiAJCTdDMzk2NTA2MUNERDc0Rjkw
MDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNw
cCAqLzsgfTsKIAkJN0MzREI4RTQxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2Fy
ZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0RC
OEUyMUQxMjEyOUIwMEFFOENDMyAvKiBDb21tYW5kQmFja0ZvcndhcmQubW0gKi87IH07CkBAIC0y
NTEwLDYgKzI1MTEsOCBAQAogCQk3QjI3MzlGMjI2MzJBQjY0MDA0MEYxODIgLyogVGhyZWFkQXNz
ZXJ0aW9uc1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhy
ZWFkQXNzZXJ0aW9uc1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qjc3
NDkwNDI2N0NDRTY4MDA5ODczQjQgLyogVGVzdFJ1bm5lclRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlc3RSdW5uZXJUZXN0cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCN0QwOTY5MjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jh
c2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR0xOb0Ny
YXNoT25PdGhlclRocmVhZEFjY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0JBMzkzNkIyNzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdCQTM5MzZEMjcxRUVDNTMwMDE1OTExQyAvKiBXZWJDb3JlVXRpbGl0aWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0MxQUY3OTMxRThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JN
b3ZlVG9XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
cmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzM5NjUwNTFDREQ3NEY5MDA5NERCQjggLyogQ29sb3JUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvclRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2Fy
ZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbW1hbmRCYWNr
Rm9yd2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMTIsNiArMzMxNSw3
IEBACiAJCQkJQkMxMzFBQTgxMTcxMzFGQzAwQjY5NzI3IC8qIFRlc3RzQ29udHJvbGxlci5jcHAg
Ki8sCiAJCQkJQkNCOUU3QzcxMTIzNEUzQTAwQTEzN0UwIC8qIFRlc3RzQ29udHJvbGxlci5oICov
LAogCQkJCTdDODNFMDM2MUQwQTVGNzAwMEZFQkNGMyAvKiBVdGlsaXRpZXMuaCAqLywKKwkJCQk3
QkEzOTM2RDI3MUVFQzUzMDAxNTkxMUMgLyogV2ViQ29yZVV0aWxpdGllcy5oICovLAogCQkJCTdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovLAogCQkJ
CTQ0QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuaCAqLywKIAkJ
CSk7CkBAIC00OTc1LDYgKzQ5NzksNyBAQAogCQkJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZFQSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovLAogCQkJCTU3NjlDNTBBMUQ5QjAw
MDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLywKIAkJCQlBMTc5OTE4
NjFFMUM5OTRFMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyLm1tICovLAorCQkJCTdCQTM5MzZCMjcx
RURGQ0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLywK
IAkJCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAq
LywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CkBAIC01ODk2LDYgKzU5MDEsNyBAQAogCQkJCUY0
NjEyOENCMjExRDQ3NTEwMEQ5RkFEQiAvKiBUZXN0RHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjRFMEEyQjgyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2Vp
dmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRGNUJCNTIyMTY2N0JBQTAwMkQwNkI5IC8qIFRl
c3RGb250T3B0aW9ucy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTdCQTM5MzZDMjcxRURGQ0EwMDE1
OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUY0NUUxNTc2MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCUY0NUQzODkxMjE1QTdCNEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVj
dG9yQmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2MjgxMjUyMzI1QzE4MDAwQkI3RTQyIC8q
IFRlc3RQREZEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5H
TENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RH
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5OWZhNWNlYmQwNzY5
ZjQzMzMyMWNjMTMzZWNhNWUzNWRmNzYxNTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0KQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiVGVzdC5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJH
TCkKKyNpbXBvcnQgIldlYkNvcmVVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+CisKK25hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
eworY2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBwdWJsaWMgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wgeworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8VGVzdGVkR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKKyAgICB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVz
dGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgICAg
ICByZXR1cm4gY29udGV4dDsKKyAgICB9Citwcml2YXRlOgorICAgIFRlc3RlZEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAg
ICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpCisgICAg
eworICAgIH0KK307Cit9CisKK3N0YXRpYyBib29sIGhhc011bHRpcGxlR1BVcygpCit7CisgICAg
YXV0byBkZXZpY2VzID0gYWRvcHROUyhNVExDb3B5QWxsRGV2aWNlcygpKTsKKyAgICByZXR1cm4g
W2RldmljZXMgY291bnRdID4gMTsKK30KKworI2lmIEhBVkUoV0VCR0xfQ09NUEFUSUJMRV9NRVRB
TCkgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQorI2RlZmluZSBN
QVlCRV9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbCBNdWx0aXBsZUdQ
VXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbAorI2Vsc2UKKyNkZWZpbmUgTUFZQkVfTXVs
dGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0YWwgRElTQUJMRURfTXVsdGlwbGVH
UFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0YWwKKyNlbmRpZgorLy8gVGVzdHMgZm9yIGEg
YnVnIHdoZXJlIGhpZ2gtcGVyZm9ybWFuY2UgY29udGV4dCB3b3VsZCB1c2UgbG93LXBvd2VyIEdQ
VSBpZiBsb3ctcG93ZXIgb3IgZGVmYXVsdAorLy8gY29udGV4dCB3YXMgY3JlYXRlZCBmaXJzdC4g
VGVzdCBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIE1ldGFsLCBzaW5jZSBHUFUgc2VsZWN0aW9uIGZv
ciBPcGVuR0wgaXMKKy8vIHZlcnkgZGlmZmVyZW50LgorVEVTVChHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvY29hVGVzdCwgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNl
TWV0YWwpCit7CisgICAgaWYgKCFoYXNNdWx0aXBsZUdQVXMoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIFNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVzdGluZyBzY29wZWRQcm9jZXNz
VHlwZSB7IEF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFUgfTsKKworICAgIEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzOworICAgIGF0dHJpYnV0ZXMudXNlTWV0YWwgPSB0cnVl
OworICAgIEVYUEVDVF9FUShhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSwgR3JhcGhpY3NDb250
ZXh0R0xQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQpOworICAgIGF1dG8gZGVmYXVsdENvbnRleHQg
PSBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKGF0dHJpYnV0ZXMpOworICAg
IEVYUEVDVF9ORShkZWZhdWx0Q29udGV4dCwgbnVsbHB0cik7CisKKyAgICBhdHRyaWJ1dGVzLnBv
d2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dl
cjsKKyAgICBhdXRvIGxvd1Bvd2VyQ29udGV4dCA9IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpjcmVhdGUoYXR0cmlidXRlcyk7CisgICAgRVhQRUNUX05FKGxvd1Bvd2VyQ29udGV4dCwg
bnVsbHB0cik7CisKKyAgICBhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29u
dGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2U7CisgICAgYXV0byBoaWdoUGVy
Zm9ybWFuY2VDb250ZXh0ID0gVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShh
dHRyaWJ1dGVzKTsKKyAgICBFWFBFQ1RfTkUoaGlnaFBlcmZvcm1hbmNlQ29udGV4dCwgbnVsbHB0
cik7CisKKyAgICBFWFBFQ1RfTkUobG93UG93ZXJDb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3ND
b250ZXh0R0w6OlJFTkRFUkVSKSwgaGlnaFBlcmZvcm1hbmNlQ29udGV4dC0+Z2V0U3RyaW5nKEdy
YXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUikpOworICAgIEVYUEVDVF9FUShkZWZhdWx0Q29udGV4
dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUiksIGxvd1Bvd2VyQ29udGV4
dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUikpOworfQorCit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV2ViQ29yZVV0aWxpdGllcy5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9XZWJDb3JlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI2MzVk
MjYwY2FmMmJjMzVhNDJhMDkxZjJlYmI4NzkzYWM0NWY3MAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvV2ViQ29yZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3MgU2Nv
cGVkU2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nIHsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBTY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcoV2ViQ29yZTo6QXV4
aWxpYXJ5UHJvY2Vzc1R5cGUgdHlwZSkKKyAgICAgICAgOiBtX29sZFR5cGUoV2ViQ29yZTo6cHJv
Y2Vzc1R5cGUoKSkKKyAgICB7CisgICAgICAgIHNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVz
dGluZyh0eXBlKTsKKyAgICB9CisgICAgflNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9y
VGVzdGluZygpCisgICAgeworICAgICAgICBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rp
bmcobV9vbGRUeXBlKTsKKyAgICB9Citwcml2YXRlOgorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+IG1fb2xkVHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441873</attachid>
            <date>2021-10-20 05:53:10 -0700</date>
            <delta_ts>2021-10-20 10:12:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231012-20211020155308.patch</filename>
            <type>text/plain</type>
            <size>27728</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhlY2YxNDQ2Y2ZkYjVk
Zjg0ZTc1MmQ3NmJjNjBlYzg4Mjk0YTgwYy4uOGU3ODM3M2E3OTBlNGQxNGM0OTFmNWVkMGZkMzU0
NGM3OGI5NmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTE5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBv
d2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNvbnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFO
R0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBwZXIt
cG93ZXIgcHJlZmVyZW5jZSBFR0xEaXNwbGF5IHdoZW4gY3JlYXRpbmcgTWV0YWwKKyAgICAgICAg
Y29udGV4dHMuCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIHBs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorICAgICAgICBBZGQgYSB0ZXN0IGZ1bmN0aW9uIHRv
IHJlc2V0IHRoZSBwcm9jZXNzIHR5cGUgYWZ0ZXIgdGVzdCBoYXMgc2V0IGEgc3BlY2lmaWMgdHlw
ZSBhbmQgdGhlbgorICAgICAgICBydW4gdG8gY29tcGxldGlvbi4gcHJvY2VzcyBmb3IgdGhlIGR1
cmF0aW9uIG9mIHRoZSB0ZXN0LiBUaGUgdm9sYXRpbGUgY29udGV4dCBmbGFnIGluCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGRlcGVuZHMgb24gY29uZGl0aW9uIGlzV2ViUHJvY2Vz
cyB8fCBpc0dQVVByb2Nlc3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cmVsZWFzZVRocmVhZFJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmluaXRpYWxpemVFR0xEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oOgorCiAyMDIxLTEwLTE5ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBOZXR3b3JrUHJvY2VzcyBzdHVicyBmb3IgcHVzaCBzdWJzY3JpcHRp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmNwcAppbmRleCBlMDQ1MzM0YWQxNmZjNDc1YmFiMGQ2MjY1NzhlYTI3NjZmZjVkMWEw
Li40YzJiNTNlOGQzODEzMmI3NjBlYjBhZjc4MDE4NGFmNDUyMTIxMmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKQEAg
LTc1LDYgKzc1LDExIEBAIHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJv
Y2Vzc1R5cGUgdHlwZSkKICAgICBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpID0gdHlwZTsKIH0KIAor
dm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rpbmcoc3RkOjpvcHRpb25hbDxBdXhp
bGlhcnlQcm9jZXNzVHlwZT4gdHlwZSkKK3sKKyAgICBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpID0g
dHlwZTsKK30KKwogYm9vbCBjaGVja0F1eGlsaWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nl
c3NUeXBlIHR5cGUpCiB7CiAgICAgYXV0byBjdXJyZW50VHlwZSA9IGF1eGlsaWFyeVByb2Nlc3NU
eXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oCmluZGV4IDA2ZGI3OGU4NTg0MjM5ZDRjZWIwM2ExOThhZmMxMmQxYTAzMTY0ZWMu
LjJiOTY4YTczY2UyN2U3YjAxNjBjMjYyYzRhMmZmMDI3OGY4ZDljMzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBAIC00Niw2
ICs0Niw3IEBAIGVudW0gY2xhc3MgQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKIH07
CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5
UHJvY2Vzc1R5cGUpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlw
ZUZvclRlc3Rpbmcoc3RkOjpvcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNzVHlwZT4pOwogV0VCQ09S
RV9FWFBPUlQgYm9vbCBjaGVja0F1eGlsaWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NU
eXBlKTsKIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+
IHByb2Nlc3NUeXBlKCk7CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBjaGFyKiBwcm9jZXNzVHlwZURl
c2NyaXB0aW9uKHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggNTc0ZTFmYTc1ZWY5MTJmZTIzYzEyNGZjMzIw
MmY0NjVkZDI1OTYxMC4uNjQwNDQ2Mjk4MjdhMjBhMzI0ZGM2NDg0ZDkyM2ViMjE0MGZjMDhmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTg2LDI2ICs4NiwzMyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVh
c2VUaHJlYWRSZXNvdXJjZUJlaGF2aQogICAgIC8vIFVuc2V0IHRoZSBFR0wgY3VycmVudCBjb250
ZXh0LCBzaW5jZSB0aGUgbmV4dCBhY2Nlc3MgbWlnaHQgYmUgZnJvbSBhbm90aGVyIHRocmVhZCwg
YW5kIHRoZQogICAgIC8vIGNvbnRleHQgY2Fubm90IGJlIGN1cnJlbnQgb24gbXVsdGlwbGUgdGhy
ZWFkcy4KICAgICBpZiAocmVsZWFzZUJlaGF2aW9yID09IFJlbGVhc2VUaHJlYWRSZXNvdXJjZUJl
aGF2aW9yOjpSZWxlYXNlQ3VycmVudENvbnRleHQpIHsKLSAgICAgICAgaWYgKEVHTF9HZXRDdXJy
ZW50Q29udGV4dCgpID09IEVHTF9OT19DT05URVhUKQorICAgICAgICBFR0xEaXNwbGF5IGRpc3Bs
YXkgPSBFR0xfR2V0Q3VycmVudERpc3BsYXkoKTsKKyAgICAgICAgaWYgKGRpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgLy8gQXQgdGhl
IHRpbWUgb2Ygd3JpdGluZywgQU5HTEUgZG9lcyBub3QgZmx1c2ggb24gTWFrZUN1cnJlbnQuIFNp
bmNlIHdlIGFyZQogICAgICAgICAvLyBwb3RlbnRpYWxseSBzd2l0Y2hpbmcgdGhyZWFkcywgd2Ug
c2hvdWxkIGZsdXNoLgogICAgICAgICAvLyBOb3RlOiBIZXJlIHdlIGFzc3VtZSBhbHNvIHRoYXQg
QU5HTEUgaGFzIG9ubHkgb25lIHBsYXRmb3JtIGNvbnRleHQgLS0gb3RoZXJ3aXNlCiAgICAgICAg
IC8vIHdlIHdvdWxkIG5lZWQgdG8gZmx1c2ggZWFjaCBFR0wgY29udGV4dCB0aGF0IGhhcyBiZWVu
IHVzZWQuCiAgICAgICAgIGdsOjpGbHVzaCgpOwotICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkg
PSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKLSAgICAgICAgaWYgKGRpc3Bs
YXkgPT0gRUdMX05PX0RJU1BMQVkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
cmV0dXJuIEVHTF9NYWtlQ3VycmVudChkaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NV
UkZBQ0UsIEVHTF9OT19DT05URVhUKTsKICAgICB9CiAgICAgaWYgKHJlbGVhc2VCZWhhdmlvciA9
PSBSZWxlYXNlVGhyZWFkUmVzb3VyY2VCZWhhdmlvcjo6VGVybWluYXRlQW5kUmVsZWFzZVRocmVh
ZFJlc291cmNlcykgewotICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBFR0xfR2V0RGlzcGxh
eShFR0xfREVGQVVMVF9ESVNQTEFZKTsKLSAgICAgICAgaWYgKGRpc3BsYXkgIT0gRUdMX05PX0RJ
U1BMQVkpIHsKLSAgICAgICAgICAgIGlmIChFR0xfR2V0Q3VycmVudENvbnRleHQoKSAhPSBFR0xf
Tk9fQ09OVEVYVCkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBB
bGwgcmVzb3VyY2VzIG11c3QgaGF2ZSBiZWVuIGRlc3Ryb3llZC4KLSAgICAgICAgICAgICAgICBF
R0xfTWFrZUN1cnJlbnQoZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBF
R0xfTk9fQ09OVEVYVCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBFR0xfVGVybWluYXRl
KGRpc3BsYXkpOworICAgICAgICBFR0xEaXNwbGF5IGN1cnJlbnREaXNwbGF5ID0gRUdMX0dldEN1
cnJlbnREaXNwbGF5KCk7CisgICAgICAgIGlmIChjdXJyZW50RGlzcGxheSAhPSBFR0xfTk9fRElT
UExBWSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEFsbCByZXNvdXJj
ZXMgbXVzdCBoYXZlIGJlZW4gZGVzdHJveWVkLgorICAgICAgICAgICAgRUdMX01ha2VDdXJyZW50
KGN1cnJlbnREaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19D
T05URVhUKTsKKyAgICAgICAgfQorICAgICAgICBjb25zdGV4cHIgRUdMTmF0aXZlRGlzcGxheVR5
cGUgbmF0aXZlRGlzcGxheXNbXSA9IHsKKyAgICAgICAgICAgIGRlZmF1bHREaXNwbGF5LAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgbG93UG93ZXJEaXNwbGF5LAorICAgICAgICAg
ICAgaGlnaFBlcmZvcm1hbmNlRGlzcGxheQorI2VuZGlmCisgICAgICAgIH07CisgICAgICAgIGZv
ciAoYXV0byBuYXRpdmVEaXNwbGF5IDogbmF0aXZlRGlzcGxheXMpIHsKKyAgICAgICAgICAgIEVH
TERpc3BsYXkgZGlzcGxheSA9IEVHTF9HZXREaXNwbGF5KG5hdGl2ZURpc3BsYXkpOworICAgICAg
ICAgICAgaWYgKGRpc3BsYXkgIT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAgICAgICAgRUdM
X1Rlcm1pbmF0ZShkaXNwbGF5KTsKICAgICAgICAgfQogICAgIH0KICAgICAvLyBDYWxsZWQgd2hl
biB3ZSBkbyBub3Qga25vdyBpZiB3ZSB3aWxsIGV2ZXIgc2VlIGFub3RoZXIgY2FsbCBmcm9tIHRo
aXMgdGhyZWFkIGFnYWluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2Eu
bW0KaW5kZXggYjYzNDY3YTZmZTgxNmZjNGQ0MTQ2MGYyNGE1ZjljOTUwMzVlNjc3OC4uZmI3MjNk
ZDQyMmRlOWI5ZGFkYTllNGNiODk3ZDA2MWNiZTZkNjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0xNDYsMjQgKzE0NiwyNSBAQCBzdGF0aWMgRUdM
RGlzcGxheSBpbml0aWFsaXplRUdMRGlzcGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmIGF0dHJzKQogICAgIH0KIAogICAgIExPRyhXZWJHTCwgIkF0dGVtcHRpbmcgdG8gdXNl
IEFOR0xFJ3MgJXMgYmFja2VuZC4iLCBhdHRycy51c2VNZXRhbCA/ICJNZXRhbCIgOiAiT3BlbkdM
Iik7CisgICAgRUdMTmF0aXZlRGlzcGxheVR5cGUgbmF0aXZlRGlzcGxheSA9IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpkZWZhdWx0RGlzcGxheTsKICAgICBpZiAoYXR0cnMudXNlTWV0YWwpIHsK
ICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QTEFURk9STV9BTkdMRV9UWVBF
X0FOR0xFKTsKICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QTEFURk9STV9B
TkdMRV9UWVBFX01FVEFMX0FOR0xFKTsKLSAgICB9Ci0KLSAgICBpZiAoYXR0cnMucG93ZXJQcmVm
ZXJlbmNlICE9IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpE
ZWZhdWx0IHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5jZUdQVSkgewotICAg
ICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUp
OwotICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlciAmJiAhYXR0cnMuZm9yY2VSZXF1
ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVKSB7Ci0gICAgICAgICAgICBMT0coV2ViR0wsICJSZXF1
ZXN0aW5nIGxvdyBwb3dlciBHUFUuIik7CisgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJl
IGRlZmluZWQgZm9yIEVHTF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0
cmlidXRlcywKKyAgICAgICAgLy8gYnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0
dHJpYnV0ZXMuCisgICAgICAgIGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1
ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQ
b3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsK
KyAgICAgICAgaWYgKHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXM6OlBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXIpIHsKKyAgICAgICAgICAgIGRpc3BsYXlBdHRy
aWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBk
aXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2Ug
fHwgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVKTsKLSAgICAgICAgICAg
IExPRyhXZWJHTCwgIlJlcXVlc3RpbmcgaGlnaCBwb3dlciBHUFUgaWYgYXZhaWxhYmxlLiIpOwor
ICAgICAgICAgICAgbmF0aXZlRGlzcGxheSA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpsb3dQ
b3dlckRpc3BsYXk7CisgICAgICAgIH0gZWxzZSBpZiAocG93ZXJQcmVmZXJlbmNlID09IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2Up
IHsKKyAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJfUFJFRkVS
RU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX0hJ
R0hfUE9XRVJfQU5HTEUpOworICAgICAgICAgICAgbmF0aXZlRGlzcGxheSA9IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpoaWdoUGVyZm9ybWFuY2VEaXNwbGF5OwogICAgICAgICB9CiAgICAgfQog
ICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfTk9ORSk7Ci0gICAgZGlzcGxheSA9IEVH
TF9HZXRQbGF0Zm9ybURpc3BsYXlFWFQoRUdMX1BMQVRGT1JNX0FOR0xFX0FOR0xFLCByZWludGVy
cHJldF9jYXN0PHZvaWQqPihFR0xfREVGQVVMVF9ESVNQTEFZKSwgZGlzcGxheUF0dHJpYnV0ZXMu
ZGF0YSgpKTsKKyAgICBkaXNwbGF5ID0gRUdMX0dldFBsYXRmb3JtRGlzcGxheUVYVChFR0xfUExB
VEZPUk1fQU5HTEVfQU5HTEUsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG5hdGl2ZURpc3BsYXkp
LCBkaXNwbGF5QXR0cmlidXRlcy5kYXRhKCkpOwogCiAgICAgaWYgKEVHTF9Jbml0aWFsaXplKGRp
c3BsYXksICZtYWpvclZlcnNpb24sICZtaW5vclZlcnNpb24pID09IEVHTF9GQUxTRSkgewogICAg
ICAgICBMT0coV2ViR0wsICJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKQEAg
LTE3Miw3ICsxNzMsNyBAQCBzdGF0aWMgRUdMRGlzcGxheSBpbml0aWFsaXplRUdMRGlzcGxheShj
b25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQogICAgIExPRyhXZWJHTCwg
IkFOR0xFIGluaXRpYWxpc2VkIE1ham9yOiAlZCBNaW5vcjogJWQiLCBtYWpvclZlcnNpb24sIG1p
bm9yVmVyc2lvbik7CiAgICAgaWYgKHNob3VsZEluaXRpYWxpemVXaXRoVm9sYXRpbGVDb250ZXh0
U3VwcG9ydCkgewogICAgICAgICAvLyBBZnRlciBpbml0aWFsaXphdGlvbiwgRUdMX0RFRkFVTFRf
RElTUExBWSB3aWxsIHJldHVybiB0aGUgcGxhdGZvcm0tY3VzdG9taXplZCBkaXNwbGF5LgotICAg
ICAgICBBU1NFUlQoZGlzcGxheSA9PSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZ
KSk7CisgICAgICAgIEFTU0VSVChkaXNwbGF5ID09IEVHTF9HZXREaXNwbGF5KG5hdGl2ZURpc3Bs
YXkpKTsKICAgICAgICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNl
RXhpc3RzKGRpc3BsYXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNlX2NvbnRleHRfdm9sYXRp
bGVfZWFnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2VhZ2wiLCBFR0xfRUFHTF9DT05URVhUX0FOR0xF
KSk7CiAgICAgICAgIEFTU0VSVChjaGVja1ZvbGF0aWxlQ29udGV4dFN1cHBvcnRJZkRldmljZUV4
aXN0cyhkaXNwbGF5LCAiRUdMX0FOR0xFX3BsYXRmb3JtX2RldmljZV9jb250ZXh0X3ZvbGF0aWxl
X2NnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2NnbCIsIEVHTF9DR0xfQ09OVEVYVF9BTkdMRSkpOwog
ICAgIH0KQEAgLTIxOCwxNiArMjE5LDI1IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAg
aWYgKCFtX2Rpc3BsYXlPYmopCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgc3VwcG9ydHNQ
b3dlclByZWZlcmVuY2UgPSBmYWxzZTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgY29uc3QgY2hh
ciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5T2JqLCBFR0xf
RVhURU5TSU9OUyk7Ci0gICAgbV9zdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSA9IHN0cnN0cihkaXNw
bGF5RXh0ZW5zaW9ucywgIkVHTF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIik7Ci0gICAgc3VwcG9y
dHNQb3dlclByZWZlcmVuY2UgPSBtX3N1cHBvcnRzUG93ZXJQcmVmZXJlbmNlOwotI2VuZGlmCi0g
ICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSAmJiBhdHRycy5wb3dlclByZWZlcmVuY2Ug
PT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgewot
ICAgICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJl
ZmVyZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwor
ICAgIGlmICghYXR0cnMudXNlTWV0YWwpIHsKKyAgICAgICAgLy8gRm9yIE9wZW5HTCwgRUdMX0FO
R0xFX3Bvd2VyX3ByZWZlcmVuY2UgaXMgdXNlZC4gVGhlIGNvbnRleHQgaXMgaW5pdGlhbGl6ZWQg
d2l0aCB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCwgbG93LXBvd2VyIGRldmljZS4gRm9yIGhpZ2gt
cGVyZm9ybWFuY2UgY29udGV4dHMsIHdlIHJlcXVlc3QgdGhlIGhpZ2gtcGVyZm9ybWFuY2UKKyAg
ICAgICAgLy8gR1BVIGluIHNldENvbnRleHRWaXNpYmlsaXR5LiBXaGVuIHRoZSByZXF1ZXN0IGlz
IGZ1bGxmaWxsZWQgYnkgdGhlIHN5c3RlbSwgd2UgZ2V0IHRoZQorICAgICAgICAvLyBkaXNwbGF5
IHJlY29uZmlndXJhdGlvbiBjYWxsYmFjay4gVXBvbiB0aGlzLCB3ZSB1cGRhdGUgdGhlIENHTCBj
b250ZXh0cyBpbnNpZGUgQU5HTEUuCisgICAgICAgIGNvbnN0IGNoYXIgKmRpc3BsYXlFeHRlbnNp
b25zID0gRUdMX1F1ZXJ5U3RyaW5nKG1fZGlzcGxheU9iaiwgRUdMX0VYVEVOU0lPTlMpOworICAg
ICAgICBib29sIHN1cHBvcnRzUG93ZXJQcmVmZXJlbmNlID0gc3Ryc3RyKGRpc3BsYXlFeHRlbnNp
b25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKTsKKyAgICAgICAgaWYgKHN1cHBvcnRz
UG93ZXJQcmVmZXJlbmNlKSB7CisgICAgICAgICAgICBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVj
b25maWd1cmF0aW9uID0gYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdM
UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UKKyAgICAgICAgICAgICAgICB8fCBhdHRy
cy5mb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFU7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdM
UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKKyAgICAgICAgICAgICAgICBhdHRy
cy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVm
YXVsdDsKKyAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KICAgICB9CisjZW5kaWYKIAogICAgIEVHTGludCBjb25maWdB
dHRyaWJ1dGVzW10gPSB7CiAgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xf
RVMyX0JJVCwKQEAgLTUxMSw3ICs1MjEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpjaGVja0dQVVN0YXR1cygpCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAg
aWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucG93ZXJQcmVmZXJlbmNlICE9IEdyYXBoaWNzQ29udGV4
dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpCisgICAgaWYgKCFtX3N3aXRjaGVz
R1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGlz
VmlzaWJsZSkKICAgICAgICAgbV9oaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0ID0gU2NvcGVkSGln
aFBlcmZvcm1hbmNlR1BVUmVxdWVzdDo6YWNxdWlyZSgpOwpAQCAtNTI1LDcgKzUzNSw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wgaXNW
aXNpYmxlKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3N1cHBvcnRzUG93ZXJQcmVm
ZXJlbmNlKQorICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uKQog
ICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2JqKTsKICNlbmRpZgog
ICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKaW5kZXggYmY3NjE4YzljZmM2YzVkYTczNjIwYjFjZjQ3NWM1ZmRh
NmNlZmFmZC4uMmVlYTU0NWQyMGMzNzYxMTIzOTNlNTBjNWI4NGQxNGRjYzFjYmFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTUzNCw2ICs1MzQsMTQgQEAgcHVibGlj
OgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShBTkdMRSkKKyAgICBjb25zdGV4cHIgc3RhdGlj
IEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHREaXNwbGF5ID0gRUdMX0RFRkFVTFRfRElTUExB
WTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURp
c3BsYXlUeXBlIGxvd1Bvd2VyRGlzcGxheSA9IEVHTF9DQVNUKEVHTE5hdGl2ZURpc3BsYXlUeXBl
LCAtMSk7CisgICAgY29uc3RleHByIHN0YXRpYyBFR0xOYXRpdmVEaXNwbGF5VHlwZSBoaWdoUGVy
Zm9ybWFuY2VEaXNwbGF5ID0gRUdMX0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUsIC0yKTsKKyNl
bmRpZgorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwpA
QCAtNzg4LDcgKzc5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCogbV9kaXNwbGF5QnVmZmVyUGJ1
ZmZlciB7IG51bGxwdHIgfTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIG1f
c3VwcG9ydHNQb3dlclByZWZlcmVuY2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zd2l0Y2hlc0dQ
VU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiB7IGZhbHNlIH07CiAgICAgU2NvcGVkSGlnaFBlcmZv
cm1hbmNlR1BVUmVxdWVzdCBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2YzZTA0ZWFhZDY1NTZkZTdiMzIyNjM1
ODNiZmMzYTc5N2YwZTJhNy4uNmZlMTIyNDRlZjMxNzgzMTgxZjQ3NzdlNDJiZGJlOWQxYTYzOWZl
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDIxLTEwLTE5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBvd2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNv
bnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFOR0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEFQSSB0ZXN0IHRvIHRlc3QgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wKKyAgICAgICAgQ29jb2EgaW1wbGVtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBi
dWcgd2hlcmUKKyAgICAgICAgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGluc3RhbmNlcyB3
b3VsZCB1c2UKKyAgICAgICAgdGhlIEdQVSB0aGF0IHdhcyBzZWxlY3RlZCBieSB0aGUgZmlyc3Qg
aW5zdGFuY2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RX
ZWJLaXRBUEkueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVz
dGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Omhhc011bHRpcGxlR1BVcyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1dlYkNvcmVVdGls
aXRpZXMuaDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRTZXRBdXhpbGlh
cnlQcm9jZXNzVHlwZUZvclRlc3Rpbmc6OlNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9y
VGVzdGluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRTZXRBdXhpbGlhcnlQcm9j
ZXNzVHlwZUZvclRlc3Rpbmc6On5TY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rp
bmcpOgorICAgICAgICBBZGQgYSB1dGlsaXR5IHN0YXRlIHNldHRlciB0byBzZXQgdGhlIHByb2Nl
c3MgdHlwZSBmb3IgdGhlCisgICAgICAgIGR1cmF0aW9uIG9mIGEgdGVzdC4KKwogMjAyMS0xMC0x
OSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtp
dHNjbXB5XSBPdmVycmlkZSBodHRwIHVybCB3aXRoIHNzaCB1cmwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpp
bmRleCBjMDYyZTYzMjFmYzI1M2E2ZDZkNWViMWU4Zjk4YzVmYmEwMmZkZDM0Li41ZGZiZmQzZWY4
NWIzMTY2YjE0ODY4ZGYxMjYxYWY4YTQwZDkzZDc0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCkBAIC05
MCw3ICs5MCw3IEBAIFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJh
bWV3b3JrIFVJS2l0TWFjSGVscGVyOwogCiBPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICQoaW5oZXJp
dGVkKSAtaXN5c3RlbSAkKFNES1JPT1QpL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU3lzdGVt
LmZyYW1ld29yay9Qcml2YXRlSGVhZGVyczsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVk
KSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0
QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNv
cmVUZXN0U3VwcG9ydCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUykgJChXS19BVVRIS0lU
X0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5H
TF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdL
X1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoV0tfVklTSU9OS0lUQ09SRV9MREZMQUdTKSAkKE9U
SEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9
ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9s
aWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdl
YktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQVBQU0VSVkVS
U1VQUE9SVF9MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgLWZyYW1ld29yayBOZXR3b3Jr
ICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxB
R1MpICQoV0tfU1lTVEVNX0xERkxBR1MpICQoV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHUykgJChX
S19WSVNJT05LSVRDT1JFX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NP
Q09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9IC1mcmFtZXdvcmsgQ29jb2Eg
LWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgYnVpbHQg
b24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVzZSBhIFRlc3RXZWJLaXRBUEkg
YXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMxNzkxNjc2YjU4YTU5NGFh
MGVmOGIzNDRkYmExYzUwYmMyZDZjMWIuLjY5OTMzNWEwYzU3YjY5Y2RjZjEwZDZhZWNiMGFiNzFi
NDc3ZmZlYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MDgsNiArNjA4LDcgQEAKIAkJ
N0IyNzM5RjMyNjMyQUI2NDAwNDBGMTgyIC8qIFRocmVhZEFzc2VydGlvbnNUZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMjczOUYyMjYzMkFC
NjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgKi87IH07CiAJCTdCNzc0OTA2
MjY3Q0NFNzIwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3NzQ5MDQyNjdDQ0U2ODAwOTg3M0I0IC8q
IFRlc3RSdW5uZXJUZXN0cy5jcHAgKi87IH07CiAJCTdCN0QwOTZBMjUxOUY4RjkwMDE3QTA3OCAv
KiBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4IC8qIFdl
YkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi87IH07CisJCTdCQTM5MzZDMjcxRURG
Q0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTM5MzZCMjcxRURGQ0Ew
MDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLzsgfTsKIAkJ
N0MxQUY3OTUxRThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzFBRjc5MzFFOERD
QkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbSAqLzsgfTsKIAkJN0MzOTY1
MDYxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOTY1MDUxQ0RENzRGOTAwOTREQkI4IC8qIENv
bG9yVGVzdHMuY3BwICovOyB9OwogCQk3QzNEQjhFNDFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFu
ZEJhY2tGb3J3YXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5tbSAq
LzsgfTsKQEAgLTI1MTIsNiArMjUxMyw4IEBACiAJCTdCMjczOUYyMjYzMkFCNjQwMDQwRjE4MiAv
KiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdCNzc0OTA0MjY3Q0NFNjgwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGVzdFJ1bm5lclRlc3RzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4IC8q
IFdlYkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QkEzOTM2QjI3MUVERkNBMDAxNTkxMUMgLyogVGVzdEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0JBMzkzNkQyNzFFRUM1MzAwMTU5MTFDIC8qIFdlYkNvcmVVdGlsaXRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVV0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzFBRjc5MzFFOERDQkFCMDAyNjQ1QjkgLyog
UHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbG9yVGVzdHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QzNEQjhFMjFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFu
ZEJhY2tGb3J3YXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q29tbWFuZEJhY2tGb3J3YXJkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMx
Miw2ICszMzE1LDcgQEAKIAkJCQlCQzEzMUFBODExNzEzMUZDMDBCNjk3MjcgLyogVGVzdHNDb250
cm9sbGVyLmNwcCAqLywKIAkJCQlCQ0I5RTdDNzExMjM0RTNBMDBBMTM3RTAgLyogVGVzdHNDb250
cm9sbGVyLmggKi8sCiAJCQkJN0M4M0UwMzYxRDBBNUY3MDAwRkVCQ0YzIC8qIFV0aWxpdGllcy5o
ICovLAorCQkJCTdCQTM5MzZEMjcxRUVDNTMwMDE1OTExQyAvKiBXZWJDb3JlVXRpbGl0aWVzLmgg
Ki8sCiAJCQkJN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8qIFdURlN0cmluZ1V0aWxpdGllcy5j
cHAgKi8sCiAJCQkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5oICovLAogCQkJKTsKQEAgLTQ5NzcsNiArNDk4MSw3IEBACiAJCQkJNTdGMUM5MTAyNURERDUx
OTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJNTc2
OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tICovLAog
CQkJCUExNzk5MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gKi8sCisJCQkJ
N0JBMzkzNkIyNzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tICovLAogCQkJCUNEODlEMDM4MUM0RURCMkEwMDA0MEEwNCAvKiBXZWJDb3JlTlNVUkxT
ZXNzaW9uLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTU5MDAsNiArNTkwNSw3
IEBACiAJCQkJRjQ2MTI4Q0IyMTFENDc1MTAwRDlGQURCIC8qIFRlc3REcmFnZ2luZ0luZm8ubW0g
aW4gU291cmNlcyAqLywKIAkJCQlGNEUwQTJCODIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQ
cm9taXNlUmVjZWl2ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNEY1QkI1MjIxNjY3QkFBMDAy
RDA2QjkgLyogVGVzdEZvbnRPcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0JBMzkzNkMy
NzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjQ1RTE1NzYyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERl
bGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ1RDM4OTEyMTVBN0I0QjAwMkEyOTc5IC8q
IFRlc3RJbnNwZWN0b3JCYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYyODEyNTIzMjVDMTgw
MDBCQjdFNDIgLyogVGVzdFBERkRvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk5
ZmE1Y2ViZDA3NjlmNDMzMzIxY2MxMzNlY2E1ZTM1ZGY3NjE1NAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKFdFQkdMKQorI2ltcG9ydCAiV2ViQ29yZVV0aWxpdGllcy5oIgorI2ltcG9ydCA8TWV0
YWwvTWV0YWwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4K
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSB7CitjbGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCA6IHB1Ymxp
YyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxU
ZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRS
ZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMp
KSk7CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KK3ByaXZhdGU6CisgICAgVGVzdGVk
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1
dGVzKSkKKyAgICB7CisgICAgfQorfTsKK30KKworc3RhdGljIGJvb2wgaGFzTXVsdGlwbGVHUFVz
KCkKK3sKKyAgICBhdXRvIGRldmljZXMgPSBhZG9wdE5TKE1UTENvcHlBbGxEZXZpY2VzKCkpOwor
ICAgIHJldHVybiBbZGV2aWNlcyBjb3VudF0gPiAxOworfQorCisjaWYgSEFWRShXRUJHTF9DT01Q
QVRJQkxFX01FVEFMKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkp
CisjZGVmaW5lIE1BWUJFX011bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVyZW5jZU1ldGFs
IE11bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVyZW5jZU1ldGFsCisjZWxzZQorI2RlZmlu
ZSBNQVlCRV9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbCBESVNBQkxF
RF9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbAorI2VuZGlmCisvLyBU
ZXN0cyBmb3IgYSBidWcgd2hlcmUgaGlnaC1wZXJmb3JtYW5jZSBjb250ZXh0IHdvdWxkIHVzZSBs
b3ctcG93ZXIgR1BVIGlmIGxvdy1wb3dlciBvciBkZWZhdWx0CisvLyBjb250ZXh0IHdhcyBjcmVh
dGVkIGZpcnN0LiBUZXN0IGlzIGFwcGxpY2FibGUgb25seSBmb3IgTWV0YWwsIHNpbmNlIEdQVSBz
ZWxlY3Rpb24gZm9yIE9wZW5HTCBpcworLy8gdmVyeSBkaWZmZXJlbnQuCitURVNUKEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2FUZXN0LCBNQVlCRV9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dl
clByZWZlcmVuY2VNZXRhbCkKK3sKKyAgICBpZiAoIWhhc011bHRpcGxlR1BVcygpKQorICAgICAg
ICByZXR1cm47CisgICAgU2NvcGVkU2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nIHNj
b3BlZFByb2Nlc3NUeXBlIHsgQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OkdQVSB9OworCisgICAgR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisgICAgYXR0cmlidXRlcy51c2VN
ZXRhbCA9IHRydWU7CisgICAgRVhQRUNUX0VRKGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlLCBH
cmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVmYXVsdCk7CisgICAgYXV0byBkZWZh
dWx0Q29udGV4dCA9IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoYXR0cmli
dXRlcyk7CisgICAgRVhQRUNUX05FKGRlZmF1bHRDb250ZXh0LCBudWxscHRyKTsKKworICAgIGF0
dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVu
Y2U6Okxvd1Bvd2VyOworICAgIGF1dG8gbG93UG93ZXJDb250ZXh0ID0gVGVzdGVkR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmNyZWF0ZShhdHRyaWJ1dGVzKTsKKyAgICBFWFBFQ1RfTkUobG93UG93
ZXJDb250ZXh0LCBudWxscHRyKTsKKworICAgIGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0g
R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZTsKKyAgICBh
dXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlKGF0dHJpYnV0ZXMpOworICAgIEVYUEVDVF9ORShoaWdoUGVyZm9ybWFuY2VDb250
ZXh0LCBudWxscHRyKTsKKworICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHRHTDo6UkVOREVSRVIpLCBoaWdoUGVyZm9ybWFuY2VDb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSk7CisgICAgRVhQRUNUX0VRKGRl
ZmF1bHRDb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSwgbG93
UG93ZXJDb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSk7Cit9
CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9XZWJDb3JlVXRp
bGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dlYkNvcmVVdGlsaXRpZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MjYzNWQyNjBjYWYyYmMzNWE0MmEwOTFmMmViYjg3OTNhYzQ1ZjcwCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XZWJDb3JlVXRpbGl0aWVzLmgKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewor
CitjbGFzcyBTY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IFNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVzdGluZyhX
ZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQorICAgICAgICA6IG1fb2xkVHlwZShX
ZWJDb3JlOjpwcm9jZXNzVHlwZSgpKQorICAgIHsKKyAgICAgICAgc2V0QXV4aWxpYXJ5UHJvY2Vz
c1R5cGVGb3JUZXN0aW5nKHR5cGUpOworICAgIH0KKyAgICB+U2NvcGVkU2V0QXV4aWxpYXJ5UHJv
Y2Vzc1R5cGVGb3JUZXN0aW5nKCkKKyAgICB7CisgICAgICAgIHNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlRm9yVGVzdGluZyhtX29sZFR5cGUpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZT4gbV9vbGRUeXBlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441892</attachid>
            <date>2021-10-20 10:12:21 -0700</date>
            <delta_ts>2021-10-21 02:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231012-20211020201219.patch</filename>
            <type>text/plain</type>
            <size>27808</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhlY2YxNDQ2Y2ZkYjVk
Zjg0ZTc1MmQ3NmJjNjBlYzg4Mjk0YTgwYy4uOGU3ODM3M2E3OTBlNGQxNGM0OTFmNWVkMGZkMzU0
NGM3OGI5NmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTE5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBv
d2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNvbnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFO
R0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBwZXIt
cG93ZXIgcHJlZmVyZW5jZSBFR0xEaXNwbGF5IHdoZW4gY3JlYXRpbmcgTWV0YWwKKyAgICAgICAg
Y29udGV4dHMuCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIHBs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorICAgICAgICBBZGQgYSB0ZXN0IGZ1bmN0aW9uIHRv
IHJlc2V0IHRoZSBwcm9jZXNzIHR5cGUgYWZ0ZXIgdGVzdCBoYXMgc2V0IGEgc3BlY2lmaWMgdHlw
ZSBhbmQgdGhlbgorICAgICAgICBydW4gdG8gY29tcGxldGlvbi4gcHJvY2VzcyBmb3IgdGhlIGR1
cmF0aW9uIG9mIHRoZSB0ZXN0LiBUaGUgdm9sYXRpbGUgY29udGV4dCBmbGFnIGluCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGRlcGVuZHMgb24gY29uZGl0aW9uIGlzV2ViUHJvY2Vz
cyB8fCBpc0dQVVByb2Nlc3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cmVsZWFzZVRocmVhZFJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmluaXRpYWxpemVFR0xEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oOgorCiAyMDIxLTEwLTE5ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBOZXR3b3JrUHJvY2VzcyBzdHVicyBmb3IgcHVzaCBzdWJzY3JpcHRp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmNwcAppbmRleCBlMDQ1MzM0YWQxNmZjNDc1YmFiMGQ2MjY1NzhlYTI3NjZmZjVkMWEw
Li40YzJiNTNlOGQzODEzMmI3NjBlYjBhZjc4MDE4NGFmNDUyMTIxMmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKQEAg
LTc1LDYgKzc1LDExIEBAIHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJv
Y2Vzc1R5cGUgdHlwZSkKICAgICBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpID0gdHlwZTsKIH0KIAor
dm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rpbmcoc3RkOjpvcHRpb25hbDxBdXhp
bGlhcnlQcm9jZXNzVHlwZT4gdHlwZSkKK3sKKyAgICBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpID0g
dHlwZTsKK30KKwogYm9vbCBjaGVja0F1eGlsaWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nl
c3NUeXBlIHR5cGUpCiB7CiAgICAgYXV0byBjdXJyZW50VHlwZSA9IGF1eGlsaWFyeVByb2Nlc3NU
eXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oCmluZGV4IDA2ZGI3OGU4NTg0MjM5ZDRjZWIwM2ExOThhZmMxMmQxYTAzMTY0ZWMu
LjJiOTY4YTczY2UyN2U3YjAxNjBjMjYyYzRhMmZmMDI3OGY4ZDljMzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBAIC00Niw2
ICs0Niw3IEBAIGVudW0gY2xhc3MgQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKIH07
CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5
UHJvY2Vzc1R5cGUpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlw
ZUZvclRlc3Rpbmcoc3RkOjpvcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNzVHlwZT4pOwogV0VCQ09S
RV9FWFBPUlQgYm9vbCBjaGVja0F1eGlsaWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NU
eXBlKTsKIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+
IHByb2Nlc3NUeXBlKCk7CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBjaGFyKiBwcm9jZXNzVHlwZURl
c2NyaXB0aW9uKHN0ZDo6b3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggNTc0ZTFmYTc1ZWY5MTJmZTIzYzEyNGZjMzIw
MmY0NjVkZDI1OTYxMC4uNjQwNDQ2Mjk4MjdhMjBhMzI0ZGM2NDg0ZDkyM2ViMjE0MGZjMDhmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTg2LDI2ICs4NiwzMyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWxlYXNlVGhyZWFkUmVzb3VyY2VzKFJlbGVh
c2VUaHJlYWRSZXNvdXJjZUJlaGF2aQogICAgIC8vIFVuc2V0IHRoZSBFR0wgY3VycmVudCBjb250
ZXh0LCBzaW5jZSB0aGUgbmV4dCBhY2Nlc3MgbWlnaHQgYmUgZnJvbSBhbm90aGVyIHRocmVhZCwg
YW5kIHRoZQogICAgIC8vIGNvbnRleHQgY2Fubm90IGJlIGN1cnJlbnQgb24gbXVsdGlwbGUgdGhy
ZWFkcy4KICAgICBpZiAocmVsZWFzZUJlaGF2aW9yID09IFJlbGVhc2VUaHJlYWRSZXNvdXJjZUJl
aGF2aW9yOjpSZWxlYXNlQ3VycmVudENvbnRleHQpIHsKLSAgICAgICAgaWYgKEVHTF9HZXRDdXJy
ZW50Q29udGV4dCgpID09IEVHTF9OT19DT05URVhUKQorICAgICAgICBFR0xEaXNwbGF5IGRpc3Bs
YXkgPSBFR0xfR2V0Q3VycmVudERpc3BsYXkoKTsKKyAgICAgICAgaWYgKGRpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgLy8gQXQgdGhl
IHRpbWUgb2Ygd3JpdGluZywgQU5HTEUgZG9lcyBub3QgZmx1c2ggb24gTWFrZUN1cnJlbnQuIFNp
bmNlIHdlIGFyZQogICAgICAgICAvLyBwb3RlbnRpYWxseSBzd2l0Y2hpbmcgdGhyZWFkcywgd2Ug
c2hvdWxkIGZsdXNoLgogICAgICAgICAvLyBOb3RlOiBIZXJlIHdlIGFzc3VtZSBhbHNvIHRoYXQg
QU5HTEUgaGFzIG9ubHkgb25lIHBsYXRmb3JtIGNvbnRleHQgLS0gb3RoZXJ3aXNlCiAgICAgICAg
IC8vIHdlIHdvdWxkIG5lZWQgdG8gZmx1c2ggZWFjaCBFR0wgY29udGV4dCB0aGF0IGhhcyBiZWVu
IHVzZWQuCiAgICAgICAgIGdsOjpGbHVzaCgpOwotICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkg
PSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKLSAgICAgICAgaWYgKGRpc3Bs
YXkgPT0gRUdMX05PX0RJU1BMQVkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
cmV0dXJuIEVHTF9NYWtlQ3VycmVudChkaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NV
UkZBQ0UsIEVHTF9OT19DT05URVhUKTsKICAgICB9CiAgICAgaWYgKHJlbGVhc2VCZWhhdmlvciA9
PSBSZWxlYXNlVGhyZWFkUmVzb3VyY2VCZWhhdmlvcjo6VGVybWluYXRlQW5kUmVsZWFzZVRocmVh
ZFJlc291cmNlcykgewotICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBFR0xfR2V0RGlzcGxh
eShFR0xfREVGQVVMVF9ESVNQTEFZKTsKLSAgICAgICAgaWYgKGRpc3BsYXkgIT0gRUdMX05PX0RJ
U1BMQVkpIHsKLSAgICAgICAgICAgIGlmIChFR0xfR2V0Q3VycmVudENvbnRleHQoKSAhPSBFR0xf
Tk9fQ09OVEVYVCkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBB
bGwgcmVzb3VyY2VzIG11c3QgaGF2ZSBiZWVuIGRlc3Ryb3llZC4KLSAgICAgICAgICAgICAgICBF
R0xfTWFrZUN1cnJlbnQoZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBF
R0xfTk9fQ09OVEVYVCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBFR0xfVGVybWluYXRl
KGRpc3BsYXkpOworICAgICAgICBFR0xEaXNwbGF5IGN1cnJlbnREaXNwbGF5ID0gRUdMX0dldEN1
cnJlbnREaXNwbGF5KCk7CisgICAgICAgIGlmIChjdXJyZW50RGlzcGxheSAhPSBFR0xfTk9fRElT
UExBWSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEFsbCByZXNvdXJj
ZXMgbXVzdCBoYXZlIGJlZW4gZGVzdHJveWVkLgorICAgICAgICAgICAgRUdMX01ha2VDdXJyZW50
KGN1cnJlbnREaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19D
T05URVhUKTsKKyAgICAgICAgfQorICAgICAgICBjb25zdGV4cHIgRUdMTmF0aXZlRGlzcGxheVR5
cGUgbmF0aXZlRGlzcGxheXNbXSA9IHsKKyAgICAgICAgICAgIGRlZmF1bHREaXNwbGF5LAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgbG93UG93ZXJEaXNwbGF5LAorICAgICAgICAg
ICAgaGlnaFBlcmZvcm1hbmNlRGlzcGxheQorI2VuZGlmCisgICAgICAgIH07CisgICAgICAgIGZv
ciAoYXV0byBuYXRpdmVEaXNwbGF5IDogbmF0aXZlRGlzcGxheXMpIHsKKyAgICAgICAgICAgIEVH
TERpc3BsYXkgZGlzcGxheSA9IEVHTF9HZXREaXNwbGF5KG5hdGl2ZURpc3BsYXkpOworICAgICAg
ICAgICAgaWYgKGRpc3BsYXkgIT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAgICAgICAgRUdM
X1Rlcm1pbmF0ZShkaXNwbGF5KTsKICAgICAgICAgfQogICAgIH0KICAgICAvLyBDYWxsZWQgd2hl
biB3ZSBkbyBub3Qga25vdyBpZiB3ZSB3aWxsIGV2ZXIgc2VlIGFub3RoZXIgY2FsbCBmcm9tIHRo
aXMgdGhyZWFkIGFnYWluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2Eu
bW0KaW5kZXggYjYzNDY3YTZmZTgxNmZjNGQ0MTQ2MGYyNGE1ZjljOTUwMzVlNjc3OC4uZmI3MjNk
ZDQyMmRlOWI5ZGFkYTllNGNiODk3ZDA2MWNiZTZkNjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0xNDYsMjQgKzE0NiwyNSBAQCBzdGF0aWMgRUdM
RGlzcGxheSBpbml0aWFsaXplRUdMRGlzcGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmIGF0dHJzKQogICAgIH0KIAogICAgIExPRyhXZWJHTCwgIkF0dGVtcHRpbmcgdG8gdXNl
IEFOR0xFJ3MgJXMgYmFja2VuZC4iLCBhdHRycy51c2VNZXRhbCA/ICJNZXRhbCIgOiAiT3BlbkdM
Iik7CisgICAgRUdMTmF0aXZlRGlzcGxheVR5cGUgbmF0aXZlRGlzcGxheSA9IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpkZWZhdWx0RGlzcGxheTsKICAgICBpZiAoYXR0cnMudXNlTWV0YWwpIHsK
ICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QTEFURk9STV9BTkdMRV9UWVBF
X0FOR0xFKTsKICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QTEFURk9STV9B
TkdMRV9UWVBFX01FVEFMX0FOR0xFKTsKLSAgICB9Ci0KLSAgICBpZiAoYXR0cnMucG93ZXJQcmVm
ZXJlbmNlICE9IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpE
ZWZhdWx0IHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5jZUdQVSkgewotICAg
ICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUp
OwotICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlciAmJiAhYXR0cnMuZm9yY2VSZXF1
ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVKSB7Ci0gICAgICAgICAgICBMT0coV2ViR0wsICJSZXF1
ZXN0aW5nIGxvdyBwb3dlciBHUFUuIik7CisgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJl
IGRlZmluZWQgZm9yIEVHTF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0
cmlidXRlcywKKyAgICAgICAgLy8gYnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0
dHJpYnV0ZXMuCisgICAgICAgIGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1
ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQ
b3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsK
KyAgICAgICAgaWYgKHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXM6OlBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXIpIHsKKyAgICAgICAgICAgIGRpc3BsYXlBdHRy
aWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBk
aXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2Ug
fHwgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVKTsKLSAgICAgICAgICAg
IExPRyhXZWJHTCwgIlJlcXVlc3RpbmcgaGlnaCBwb3dlciBHUFUgaWYgYXZhaWxhYmxlLiIpOwor
ICAgICAgICAgICAgbmF0aXZlRGlzcGxheSA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpsb3dQ
b3dlckRpc3BsYXk7CisgICAgICAgIH0gZWxzZSBpZiAocG93ZXJQcmVmZXJlbmNlID09IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2Up
IHsKKyAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJfUFJFRkVS
RU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX0hJ
R0hfUE9XRVJfQU5HTEUpOworICAgICAgICAgICAgbmF0aXZlRGlzcGxheSA9IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpoaWdoUGVyZm9ybWFuY2VEaXNwbGF5OwogICAgICAgICB9CiAgICAgfQog
ICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfTk9ORSk7Ci0gICAgZGlzcGxheSA9IEVH
TF9HZXRQbGF0Zm9ybURpc3BsYXlFWFQoRUdMX1BMQVRGT1JNX0FOR0xFX0FOR0xFLCByZWludGVy
cHJldF9jYXN0PHZvaWQqPihFR0xfREVGQVVMVF9ESVNQTEFZKSwgZGlzcGxheUF0dHJpYnV0ZXMu
ZGF0YSgpKTsKKyAgICBkaXNwbGF5ID0gRUdMX0dldFBsYXRmb3JtRGlzcGxheUVYVChFR0xfUExB
VEZPUk1fQU5HTEVfQU5HTEUsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG5hdGl2ZURpc3BsYXkp
LCBkaXNwbGF5QXR0cmlidXRlcy5kYXRhKCkpOwogCiAgICAgaWYgKEVHTF9Jbml0aWFsaXplKGRp
c3BsYXksICZtYWpvclZlcnNpb24sICZtaW5vclZlcnNpb24pID09IEVHTF9GQUxTRSkgewogICAg
ICAgICBMT0coV2ViR0wsICJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKQEAg
LTE3Miw3ICsxNzMsNyBAQCBzdGF0aWMgRUdMRGlzcGxheSBpbml0aWFsaXplRUdMRGlzcGxheShj
b25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQogICAgIExPRyhXZWJHTCwg
IkFOR0xFIGluaXRpYWxpc2VkIE1ham9yOiAlZCBNaW5vcjogJWQiLCBtYWpvclZlcnNpb24sIG1p
bm9yVmVyc2lvbik7CiAgICAgaWYgKHNob3VsZEluaXRpYWxpemVXaXRoVm9sYXRpbGVDb250ZXh0
U3VwcG9ydCkgewogICAgICAgICAvLyBBZnRlciBpbml0aWFsaXphdGlvbiwgRUdMX0RFRkFVTFRf
RElTUExBWSB3aWxsIHJldHVybiB0aGUgcGxhdGZvcm0tY3VzdG9taXplZCBkaXNwbGF5LgotICAg
ICAgICBBU1NFUlQoZGlzcGxheSA9PSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZ
KSk7CisgICAgICAgIEFTU0VSVChkaXNwbGF5ID09IEVHTF9HZXREaXNwbGF5KG5hdGl2ZURpc3Bs
YXkpKTsKICAgICAgICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNl
RXhpc3RzKGRpc3BsYXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNlX2NvbnRleHRfdm9sYXRp
bGVfZWFnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2VhZ2wiLCBFR0xfRUFHTF9DT05URVhUX0FOR0xF
KSk7CiAgICAgICAgIEFTU0VSVChjaGVja1ZvbGF0aWxlQ29udGV4dFN1cHBvcnRJZkRldmljZUV4
aXN0cyhkaXNwbGF5LCAiRUdMX0FOR0xFX3BsYXRmb3JtX2RldmljZV9jb250ZXh0X3ZvbGF0aWxl
X2NnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2NnbCIsIEVHTF9DR0xfQ09OVEVYVF9BTkdMRSkpOwog
ICAgIH0KQEAgLTIxOCwxNiArMjE5LDI1IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAg
aWYgKCFtX2Rpc3BsYXlPYmopCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgc3VwcG9ydHNQ
b3dlclByZWZlcmVuY2UgPSBmYWxzZTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgY29uc3QgY2hh
ciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5T2JqLCBFR0xf
RVhURU5TSU9OUyk7Ci0gICAgbV9zdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSA9IHN0cnN0cihkaXNw
bGF5RXh0ZW5zaW9ucywgIkVHTF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIik7Ci0gICAgc3VwcG9y
dHNQb3dlclByZWZlcmVuY2UgPSBtX3N1cHBvcnRzUG93ZXJQcmVmZXJlbmNlOwotI2VuZGlmCi0g
ICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSAmJiBhdHRycy5wb3dlclByZWZlcmVuY2Ug
PT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgewot
ICAgICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJl
ZmVyZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwor
ICAgIGlmICghYXR0cnMudXNlTWV0YWwpIHsKKyAgICAgICAgLy8gRm9yIE9wZW5HTCwgRUdMX0FO
R0xFX3Bvd2VyX3ByZWZlcmVuY2UgaXMgdXNlZC4gVGhlIGNvbnRleHQgaXMgaW5pdGlhbGl6ZWQg
d2l0aCB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCwgbG93LXBvd2VyIGRldmljZS4gRm9yIGhpZ2gt
cGVyZm9ybWFuY2UgY29udGV4dHMsIHdlIHJlcXVlc3QgdGhlIGhpZ2gtcGVyZm9ybWFuY2UKKyAg
ICAgICAgLy8gR1BVIGluIHNldENvbnRleHRWaXNpYmlsaXR5LiBXaGVuIHRoZSByZXF1ZXN0IGlz
IGZ1bGxmaWxsZWQgYnkgdGhlIHN5c3RlbSwgd2UgZ2V0IHRoZQorICAgICAgICAvLyBkaXNwbGF5
IHJlY29uZmlndXJhdGlvbiBjYWxsYmFjay4gVXBvbiB0aGlzLCB3ZSB1cGRhdGUgdGhlIENHTCBj
b250ZXh0cyBpbnNpZGUgQU5HTEUuCisgICAgICAgIGNvbnN0IGNoYXIgKmRpc3BsYXlFeHRlbnNp
b25zID0gRUdMX1F1ZXJ5U3RyaW5nKG1fZGlzcGxheU9iaiwgRUdMX0VYVEVOU0lPTlMpOworICAg
ICAgICBib29sIHN1cHBvcnRzUG93ZXJQcmVmZXJlbmNlID0gc3Ryc3RyKGRpc3BsYXlFeHRlbnNp
b25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKTsKKyAgICAgICAgaWYgKHN1cHBvcnRz
UG93ZXJQcmVmZXJlbmNlKSB7CisgICAgICAgICAgICBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVj
b25maWd1cmF0aW9uID0gYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdM
UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UKKyAgICAgICAgICAgICAgICB8fCBhdHRy
cy5mb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFU7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdM
UG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKKyAgICAgICAgICAgICAgICBhdHRy
cy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVm
YXVsdDsKKyAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KICAgICB9CisjZW5kaWYKIAogICAgIEVHTGludCBjb25maWdB
dHRyaWJ1dGVzW10gPSB7CiAgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xf
RVMyX0JJVCwKQEAgLTUxMSw3ICs1MjEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpjaGVja0dQVVN0YXR1cygpCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAg
aWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucG93ZXJQcmVmZXJlbmNlICE9IEdyYXBoaWNzQ29udGV4
dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpCisgICAgaWYgKCFtX3N3aXRjaGVz
R1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGlz
VmlzaWJsZSkKICAgICAgICAgbV9oaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0ID0gU2NvcGVkSGln
aFBlcmZvcm1hbmNlR1BVUmVxdWVzdDo6YWNxdWlyZSgpOwpAQCAtNTI1LDcgKzUzNSw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wgaXNW
aXNpYmxlKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3N1cHBvcnRzUG93ZXJQcmVm
ZXJlbmNlKQorICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uKQog
ICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2JqKTsKICNlbmRpZgog
ICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKaW5kZXggYmY3NjE4YzljZmM2YzVkYTczNjIwYjFjZjQ3NWM1ZmRh
NmNlZmFmZC4uMmVlYTU0NWQyMGMzNzYxMTIzOTNlNTBjNWI4NGQxNGRjYzFjYmFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTUzNCw2ICs1MzQsMTQgQEAgcHVibGlj
OgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShBTkdMRSkKKyAgICBjb25zdGV4cHIgc3RhdGlj
IEVHTE5hdGl2ZURpc3BsYXlUeXBlIGRlZmF1bHREaXNwbGF5ID0gRUdMX0RFRkFVTFRfRElTUExB
WTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURp
c3BsYXlUeXBlIGxvd1Bvd2VyRGlzcGxheSA9IEVHTF9DQVNUKEVHTE5hdGl2ZURpc3BsYXlUeXBl
LCAtMSk7CisgICAgY29uc3RleHByIHN0YXRpYyBFR0xOYXRpdmVEaXNwbGF5VHlwZSBoaWdoUGVy
Zm9ybWFuY2VEaXNwbGF5ID0gRUdMX0NBU1QoRUdMTmF0aXZlRGlzcGxheVR5cGUsIC0yKTsKKyNl
bmRpZgorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwpA
QCAtNzg4LDcgKzc5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCogbV9kaXNwbGF5QnVmZmVyUGJ1
ZmZlciB7IG51bGxwdHIgfTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIG1f
c3VwcG9ydHNQb3dlclByZWZlcmVuY2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zd2l0Y2hlc0dQ
VU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiB7IGZhbHNlIH07CiAgICAgU2NvcGVkSGlnaFBlcmZv
cm1hbmNlR1BVUmVxdWVzdCBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2YzZTA0ZWFhZDY1NTZkZTdiMzIyNjM1
ODNiZmMzYTc5N2YwZTJhNy4uNmZlMTIyNDRlZjMxNzgzMTgxZjQ3NzdlNDJiZGJlOWQxYTYzOWZl
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDIxLTEwLTE5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBvd2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNv
bnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFOR0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEFQSSB0ZXN0IHRvIHRlc3QgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wKKyAgICAgICAgQ29jb2EgaW1wbGVtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBi
dWcgd2hlcmUKKyAgICAgICAgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGluc3RhbmNlcyB3
b3VsZCB1c2UKKyAgICAgICAgdGhlIEdQVSB0aGF0IHdhcyBzZWxlY3RlZCBieSB0aGUgZmlyc3Qg
aW5zdGFuY2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RX
ZWJLaXRBUEkueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVz
dGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Omhhc011bHRpcGxlR1BVcyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1dlYkNvcmVVdGls
aXRpZXMuaDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRTZXRBdXhpbGlh
cnlQcm9jZXNzVHlwZUZvclRlc3Rpbmc6OlNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9y
VGVzdGluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRTZXRBdXhpbGlhcnlQcm9j
ZXNzVHlwZUZvclRlc3Rpbmc6On5TY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rp
bmcpOgorICAgICAgICBBZGQgYSB1dGlsaXR5IHN0YXRlIHNldHRlciB0byBzZXQgdGhlIHByb2Nl
c3MgdHlwZSBmb3IgdGhlCisgICAgICAgIGR1cmF0aW9uIG9mIGEgdGVzdC4KKwogMjAyMS0xMC0x
OSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtp
dHNjbXB5XSBPdmVycmlkZSBodHRwIHVybCB3aXRoIHNzaCB1cmwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpp
bmRleCBjMDYyZTYzMjFmYzI1M2E2ZDZkNWViMWU4Zjk4YzVmYmEwMmZkZDM0Li41ZGZiZmQzZWY4
NWIzMTY2YjE0ODY4ZGYxMjYxYWY4YTQwZDkzZDc0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCkBAIC05
MCw3ICs5MCw3IEBAIFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJh
bWV3b3JrIFVJS2l0TWFjSGVscGVyOwogCiBPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICQoaW5oZXJp
dGVkKSAtaXN5c3RlbSAkKFNES1JPT1QpL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU3lzdGVt
LmZyYW1ld29yay9Qcml2YXRlSGVhZGVyczsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVk
KSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0
QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNv
cmVUZXN0U3VwcG9ydCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUykgJChXS19BVVRIS0lU
X0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5H
TF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdL
X1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoV0tfVklTSU9OS0lUQ09SRV9MREZMQUdTKSAkKE9U
SEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9
ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9s
aWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdl
YktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQVBQU0VSVkVS
U1VQUE9SVF9MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgLWZyYW1ld29yayBOZXR3b3Jr
ICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxB
R1MpICQoV0tfU1lTVEVNX0xERkxBR1MpICQoV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHUykgJChX
S19WSVNJT05LSVRDT1JFX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NP
Q09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9IC1mcmFtZXdvcmsgQ29jb2Eg
LWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgYnVpbHQg
b24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVzZSBhIFRlc3RXZWJLaXRBUEkg
YXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMxNzkxNjc2YjU4YTU5NGFh
MGVmOGIzNDRkYmExYzUwYmMyZDZjMWIuLjY5OTMzNWEwYzU3YjY5Y2RjZjEwZDZhZWNiMGFiNzFi
NDc3ZmZlYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MDgsNiArNjA4LDcgQEAKIAkJ
N0IyNzM5RjMyNjMyQUI2NDAwNDBGMTgyIC8qIFRocmVhZEFzc2VydGlvbnNUZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMjczOUYyMjYzMkFC
NjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgKi87IH07CiAJCTdCNzc0OTA2
MjY3Q0NFNzIwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3NzQ5MDQyNjdDQ0U2ODAwOTg3M0I0IC8q
IFRlc3RSdW5uZXJUZXN0cy5jcHAgKi87IH07CiAJCTdCN0QwOTZBMjUxOUY4RjkwMDE3QTA3OCAv
KiBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4IC8qIFdl
YkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi87IH07CisJCTdCQTM5MzZDMjcxRURG
Q0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTM5MzZCMjcxRURGQ0Ew
MDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLzsgfTsKIAkJ
N0MxQUY3OTUxRThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzFBRjc5MzFFOERD
QkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbSAqLzsgfTsKIAkJN0MzOTY1
MDYxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOTY1MDUxQ0RENzRGOTAwOTREQkI4IC8qIENv
bG9yVGVzdHMuY3BwICovOyB9OwogCQk3QzNEQjhFNDFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFu
ZEJhY2tGb3J3YXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5tbSAq
LzsgfTsKQEAgLTI1MTIsNiArMjUxMyw4IEBACiAJCTdCMjczOUYyMjYzMkFCNjQwMDQwRjE4MiAv
KiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdCNzc0OTA0MjY3Q0NFNjgwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGVzdFJ1bm5lclRlc3RzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4IC8q
IFdlYkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QkEzOTM2QjI3MUVERkNBMDAxNTkxMUMgLyogVGVzdEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0JBMzkzNkQyNzFFRUM1MzAwMTU5MTFDIC8qIFdlYkNvcmVVdGlsaXRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVV0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzFBRjc5MzFFOERDQkFCMDAyNjQ1QjkgLyog
UHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbG9yVGVzdHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QzNEQjhFMjFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFu
ZEJhY2tGb3J3YXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q29tbWFuZEJhY2tGb3J3YXJkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMx
Miw2ICszMzE1LDcgQEAKIAkJCQlCQzEzMUFBODExNzEzMUZDMDBCNjk3MjcgLyogVGVzdHNDb250
cm9sbGVyLmNwcCAqLywKIAkJCQlCQ0I5RTdDNzExMjM0RTNBMDBBMTM3RTAgLyogVGVzdHNDb250
cm9sbGVyLmggKi8sCiAJCQkJN0M4M0UwMzYxRDBBNUY3MDAwRkVCQ0YzIC8qIFV0aWxpdGllcy5o
ICovLAorCQkJCTdCQTM5MzZEMjcxRUVDNTMwMDE1OTExQyAvKiBXZWJDb3JlVXRpbGl0aWVzLmgg
Ki8sCiAJCQkJN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8qIFdURlN0cmluZ1V0aWxpdGllcy5j
cHAgKi8sCiAJCQkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5oICovLAogCQkJKTsKQEAgLTQ5NzcsNiArNDk4MSw3IEBACiAJCQkJNTdGMUM5MTAyNURERDUx
OTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJNTc2
OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tICovLAog
CQkJCUExNzk5MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gKi8sCisJCQkJ
N0JBMzkzNkIyNzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tICovLAogCQkJCUNEODlEMDM4MUM0RURCMkEwMDA0MEEwNCAvKiBXZWJDb3JlTlNVUkxT
ZXNzaW9uLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTU5MDAsNiArNTkwNSw3
IEBACiAJCQkJRjQ2MTI4Q0IyMTFENDc1MTAwRDlGQURCIC8qIFRlc3REcmFnZ2luZ0luZm8ubW0g
aW4gU291cmNlcyAqLywKIAkJCQlGNEUwQTJCODIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQ
cm9taXNlUmVjZWl2ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNEY1QkI1MjIxNjY3QkFBMDAy
RDA2QjkgLyogVGVzdEZvbnRPcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0JBMzkzNkMy
NzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjQ1RTE1NzYyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERl
bGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ1RDM4OTEyMTVBN0I0QjAwMkEyOTc5IC8q
IFRlc3RJbnNwZWN0b3JCYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYyODEyNTIzMjVDMTgw
MDBCQjdFNDIgLyogVGVzdFBERkRvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJm
OTI2ZjcxMDM1ZDM5OTIyNzc1MGQwNjA4MGNkYThhMzhmYTFhOAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKFdFQkdMKQorI2ltcG9ydCAiV2ViQ29yZVV0aWxpdGllcy5oIgorI2ltcG9ydCA8TWV0
YWwvTWV0YWwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4K
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSB7CitjbGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCA6IHB1Ymxp
YyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxU
ZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRS
ZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMp
KSk7CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KK3ByaXZhdGU6CisgICAgVGVzdGVk
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1
dGVzKSkKKyAgICB7CisgICAgfQorfTsKK30KKworc3RhdGljIGJvb2wgaGFzTXVsdGlwbGVHUFVz
KCkKK3sKKyNpZiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkpCisgICAg
YXV0byBkZXZpY2VzID0gYWRvcHROUyhNVExDb3B5QWxsRGV2aWNlcygpKTsKKyAgICByZXR1cm4g
W2RldmljZXMgY291bnRdID4gMTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKKyNpZiBIQVZFKFdFQkdMX0NPTVBBVElCTEVfTUVUQUwpICYmIChQTEFURk9STShNQUMpIHx8
IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkKKyNkZWZpbmUgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVy
ZW50UG93ZXJQcmVmZXJlbmNlTWV0YWwgTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJl
bmNlTWV0YWwKKyNlbHNlCisjZGVmaW5lIE1BWUJFX011bHRpcGxlR1BVc0RpZmZlcmVudFBvd2Vy
UHJlZmVyZW5jZU1ldGFsIERJU0FCTEVEX011bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVy
ZW5jZU1ldGFsCisjZW5kaWYKKy8vIFRlc3RzIGZvciBhIGJ1ZyB3aGVyZSBoaWdoLXBlcmZvcm1h
bmNlIGNvbnRleHQgd291bGQgdXNlIGxvdy1wb3dlciBHUFUgaWYgbG93LXBvd2VyIG9yIGRlZmF1
bHQKKy8vIGNvbnRleHQgd2FzIGNyZWF0ZWQgZmlyc3QuIFRlc3QgaXMgYXBwbGljYWJsZSBvbmx5
IGZvciBNZXRhbCwgc2luY2UgR1BVIHNlbGVjdGlvbiBmb3IgT3BlbkdMIGlzCisvLyB2ZXJ5IGRp
ZmZlcmVudC4KK1RFU1QoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYVRlc3QsIE1BWUJFX011
bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVyZW5jZU1ldGFsKQoreworICAgIGlmICghaGFz
TXVsdGlwbGVHUFVzKCkpCisgICAgICAgIHJldHVybjsKKyAgICBTY29wZWRTZXRBdXhpbGlhcnlQ
cm9jZXNzVHlwZUZvclRlc3Rpbmcgc2NvcGVkUHJvY2Vzc1R5cGUgeyBBdXhpbGlhcnlQcm9jZXNz
VHlwZTo6R1BVIH07CisKKyAgICBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRl
czsKKyAgICBhdHRyaWJ1dGVzLnVzZU1ldGFsID0gdHJ1ZTsKKyAgICBFWFBFQ1RfRVEoYXR0cmli
dXRlcy5wb3dlclByZWZlcmVuY2UsIEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpE
ZWZhdWx0KTsKKyAgICBhdXRvIGRlZmF1bHRDb250ZXh0ID0gVGVzdGVkR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmNyZWF0ZShhdHRyaWJ1dGVzKTsKKyAgICBFWFBFQ1RfTkUoZGVmYXVsdENvbnRl
eHQsIG51bGxwdHIpOworCisgICAgYXR0cmlidXRlcy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGlj
c0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXI7CisgICAgYXV0byBsb3dQb3dlckNv
bnRleHQgPSBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKGF0dHJpYnV0ZXMp
OworICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQsIG51bGxwdHIpOworCisgICAgYXR0cmli
dXRlcy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6
SGlnaFBlcmZvcm1hbmNlOworICAgIGF1dG8gaGlnaFBlcmZvcm1hbmNlQ29udGV4dCA9IFRlc3Rl
ZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoYXR0cmlidXRlcyk7CisgICAgRVhQRUNU
X05FKGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQsIG51bGxwdHIpOworCisgICAgRVhQRUNUX05FKGxv
d1Bvd2VyQ29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUiksIGhp
Z2hQZXJmb3JtYW5jZUNvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHRHTDo6UkVOREVS
RVIpKTsKKyAgICBFWFBFQ1RfRVEoZGVmYXVsdENvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHRHTDo6UkVOREVSRVIpLCBsb3dQb3dlckNvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHRHTDo6UkVOREVSRVIpKTsKK30KKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1dlYkNvcmVVdGlsaXRpZXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV2Vi
Q29yZVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNjM1ZDI2MGNhZjJiYzM1YTQyYTA5MWYyZWJi
ODc5M2FjNDVmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dlYkNv
cmVVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NsYXNzIFNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlRm9yVGVzdGluZyB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU2NvcGVkU2V0QXV4aWxpYXJ5
UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHR5cGUp
CisgICAgICAgIDogbV9vbGRUeXBlKFdlYkNvcmU6OnByb2Nlc3NUeXBlKCkpCisgICAgeworICAg
ICAgICBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcodHlwZSk7CisgICAgfQorICAg
IH5TY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3RpbmcoKQorICAgIHsKKyAgICAg
ICAgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKG1fb2xkVHlwZSk7CisgICAgfQor
cHJpdmF0ZToKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBl
PiBtX29sZFR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441998</attachid>
            <date>2021-10-21 02:02:21 -0700</date>
            <delta_ts>2021-10-22 00:36:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231012-20211021120219.patch</filename>
            <type>text/plain</type>
            <size>27851</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVkMjU5MTZlZTYwNjY3
ZmI5NjBjOWMxNmQ4YjQ1NzYxYzIyNWY3Zi4uNTEyZGRmYmIwOTIwY2MyMDUyODFiYTdjM2QyYjBm
MzVlMTQyYjdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTIxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgbG93LXBv
d2VyIGFuZCBoaWdoLXBlcmZvcm1hbmNlIGNvbnRleHRzIHNob3VsZCB1c2UgZGlmZmVyZW50IEFO
R0xFIE1ldGFsIEVHTERpc3BsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEwMTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzOTcxNDE3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBVc2UgcGVyLXBv
d2VyIHByZWZlcmVuY2UgRUdMRGlzcGxheSB3aGVuIGNyZWF0aW5nIE1ldGFsCisgICAgICAgIGNv
bnRleHRzLgorCisgICAgICAgIEFkZHMgYSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0
QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKyAgICAgICAgQWRkIGEgdGVzdCBmdW5jdGlvbiB0byBy
ZXNldCB0aGUgcHJvY2VzcyB0eXBlIGFmdGVyIHRlc3QgaGFzIHNldCBhIHNwZWNpZmljIHR5cGUg
YW5kIHRoZW4KKyAgICAgICAgcnVuIHRvIGNvbXBsZXRpb24uIHByb2Nlc3MgZm9yIHRoZSBkdXJh
dGlvbiBvZiB0aGUgdGVzdC4gVGhlIHZvbGF0aWxlIGNvbnRleHQgZmxhZyBpbgorICAgICAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCBkZXBlbmRzIG9uIGNvbmRpdGlvbiBpc1dlYlByb2Nlc3Mg
fHwgaXNHUFVQcm9jZXNzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBo
aWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OnJlbGVhc2VUaHJlYWRSZXNvdXJjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmlsaXR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wuaDoKKwogMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24g
Tm90aWZpY2F0aW9uUHJvdmlkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IGUwNDUzMzRhZDE2ZmM0NzViYWIwZDYy
NjU3OGVhMjc2NmZmNWQxYTAuLjRjMmI1M2U4ZDM4MTMyYjc2MGViMGFmNzgwMTg0YWY0NTIxMjEy
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNz
VHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogICAgIGF1eGlsaWFyeVByb2Nlc3NUeXBl
KCkgPSB0eXBlOwogfQogCit2b2lkIHNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVzdGluZyhz
dGQ6Om9wdGlvbmFsPEF1eGlsaWFyeVByb2Nlc3NUeXBlPiB0eXBlKQoreworICAgIGF1eGlsaWFy
eVByb2Nlc3NUeXBlKCkgPSB0eXBlOworfQorCiBib29sIGNoZWNrQXV4aWxpYXJ5UHJvY2Vzc1R5
cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgdHlwZSkKIHsKICAgICBhdXRvIGN1cnJlbnRUeXBlID0g
YXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgKaW5kZXggMDZkYjc4ZTg1ODQyMzlkNGNlYjAzYTE5
OGFmYzEyZDFhMDMxNjRlYy4uMmI5NjhhNzNjZTI3ZTdiMDE2MGMyNjJjNGEyZmYwMjc4ZjhkOWMz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgZW51bSBjbGFzcyBBdXhpbGlhcnlQcm9jZXNzVHlw
ZSA6IHVpbnQ4X3QgewogfTsKIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXhpbGlhcnlQcm9j
ZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1
eGlsaWFyeVByb2Nlc3NUeXBlRm9yVGVzdGluZyhzdGQ6Om9wdGlvbmFsPEF1eGlsaWFyeVByb2Nl
c3NUeXBlPik7CiBXRUJDT1JFX0VYUE9SVCBib29sIGNoZWNrQXV4aWxpYXJ5UHJvY2Vzc1R5cGUo
QXV4aWxpYXJ5UHJvY2Vzc1R5cGUpOwogV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxBdXhp
bGlhcnlQcm9jZXNzVHlwZT4gcHJvY2Vzc1R5cGUoKTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IGNo
YXIqIHByb2Nlc3NUeXBlRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNz
VHlwZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA1NzRlMWZhNzVl
ZjkxMmZlMjNjMTI0ZmMzMjAyZjQ2NWRkMjU5NjEwLi42NDA0NDYyOTgyN2EyMGEzMjRkYzY0ODRk
OTIzZWIyMTQwZmMwOGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAt
ODYsMjYgKzg2LDMzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlbGVhc2VUaHJl
YWRSZXNvdXJjZXMoUmVsZWFzZVRocmVhZFJlc291cmNlQmVoYXZpCiAgICAgLy8gVW5zZXQgdGhl
IEVHTCBjdXJyZW50IGNvbnRleHQsIHNpbmNlIHRoZSBuZXh0IGFjY2VzcyBtaWdodCBiZSBmcm9t
IGFub3RoZXIgdGhyZWFkLCBhbmQgdGhlCiAgICAgLy8gY29udGV4dCBjYW5ub3QgYmUgY3VycmVu
dCBvbiBtdWx0aXBsZSB0aHJlYWRzLgogICAgIGlmIChyZWxlYXNlQmVoYXZpb3IgPT0gUmVsZWFz
ZVRocmVhZFJlc291cmNlQmVoYXZpb3I6OlJlbGVhc2VDdXJyZW50Q29udGV4dCkgewotICAgICAg
ICBpZiAoRUdMX0dldEN1cnJlbnRDb250ZXh0KCkgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgICAg
IEVHTERpc3BsYXkgZGlzcGxheSA9IEVHTF9HZXRDdXJyZW50RGlzcGxheSgpOworICAgICAgICBp
ZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAvLyBBdCB0aGUgdGltZSBvZiB3cml0aW5nLCBBTkdMRSBkb2VzIG5vdCBmbHVzaCBv
biBNYWtlQ3VycmVudC4gU2luY2Ugd2UgYXJlCiAgICAgICAgIC8vIHBvdGVudGlhbGx5IHN3aXRj
aGluZyB0aHJlYWRzLCB3ZSBzaG91bGQgZmx1c2guCiAgICAgICAgIC8vIE5vdGU6IEhlcmUgd2Ug
YXNzdW1lIGFsc28gdGhhdCBBTkdMRSBoYXMgb25seSBvbmUgcGxhdGZvcm0gY29udGV4dCAtLSBv
dGhlcndpc2UKICAgICAgICAgLy8gd2Ugd291bGQgbmVlZCB0byBmbHVzaCBlYWNoIEVHTCBjb250
ZXh0IHRoYXQgaGFzIGJlZW4gdXNlZC4KICAgICAgICAgZ2w6OkZsdXNoKCk7Ci0gICAgICAgIEVH
TERpc3BsYXkgZGlzcGxheSA9IEVHTF9HZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwot
ICAgICAgICBpZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICByZXR1cm4gRUdMX01ha2VDdXJyZW50KGRpc3BsYXksIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwogICAgIH0KICAgICBpZiAo
cmVsZWFzZUJlaGF2aW9yID09IFJlbGVhc2VUaHJlYWRSZXNvdXJjZUJlaGF2aW9yOjpUZXJtaW5h
dGVBbmRSZWxlYXNlVGhyZWFkUmVzb3VyY2VzKSB7Ci0gICAgICAgIEVHTERpc3BsYXkgZGlzcGxh
eSA9IEVHTF9HZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwotICAgICAgICBpZiAoZGlz
cGxheSAhPSBFR0xfTk9fRElTUExBWSkgewotICAgICAgICAgICAgaWYgKEVHTF9HZXRDdXJyZW50
Q29udGV4dCgpICE9IEVHTF9OT19DT05URVhUKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IC8vIEFsbCByZXNvdXJjZXMgbXVzdCBoYXZlIGJlZW4gZGVzdHJveWVkLgot
ICAgICAgICAgICAgICAgIEVHTF9NYWtlQ3VycmVudChkaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIEVHTF9UZXJtaW5hdGUoZGlzcGxheSk7CisgICAgICAgIEVHTERpc3BsYXkgY3VycmVudERp
c3BsYXkgPSBFR0xfR2V0Q3VycmVudERpc3BsYXkoKTsKKyAgICAgICAgaWYgKGN1cnJlbnREaXNw
bGF5ICE9IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgLy8gQWxsIHJlc291cmNlcyBtdXN0IGhhdmUgYmVlbiBkZXN0cm95ZWQuCisgICAgICAgICAg
ICBFR0xfTWFrZUN1cnJlbnQoY3VycmVudERpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9f
U1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworICAgICAgICB9CisgICAgICAgIGNvbnN0ZXhwciBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5c1tdID0geworICAgICAgICAgICAgZGVm
YXVsdERpc3BsYXksCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICBsb3dQb3dlckRp
c3BsYXksCisgICAgICAgICAgICBoaWdoUGVyZm9ybWFuY2VEaXNwbGF5CisjZW5kaWYKKyAgICAg
ICAgfTsKKyAgICAgICAgZm9yIChhdXRvIG5hdGl2ZURpc3BsYXkgOiBuYXRpdmVEaXNwbGF5cykg
eworICAgICAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gRUdMX0dldERpc3BsYXkobmF0aXZl
RGlzcGxheSk7CisgICAgICAgICAgICBpZiAoZGlzcGxheSAhPSBFR0xfTk9fRElTUExBWSkKKyAg
ICAgICAgICAgICAgICBFR0xfVGVybWluYXRlKGRpc3BsYXkpOwogICAgICAgICB9CiAgICAgfQog
ICAgIC8vIENhbGxlZCB3aGVuIHdlIGRvIG5vdCBrbm93IGlmIHdlIHdpbGwgZXZlciBzZWUgYW5v
dGhlciBjYWxsIGZyb20gdGhpcyB0aHJlYWQgYWdhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBiNjM0NjdhNmZlODE2ZmM0ZDQxNDYwZjI0YTVmOWM5
NTAzNWU2Nzc4Li5mYjcyM2RkNDIyZGU5YjlkYWRhOWU0Y2I4OTdkMDYxY2JlNmQ2MDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTE0NiwyNCArMTQ2
LDI1IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAgfQogCiAgICAgTE9HKFdlYkdMLCAi
QXR0ZW1wdGluZyB0byB1c2UgQU5HTEUncyAlcyBiYWNrZW5kLiIsIGF0dHJzLnVzZU1ldGFsID8g
Ik1ldGFsIiA6ICJPcGVuR0wiKTsKKyAgICBFR0xOYXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNw
bGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRlZmF1bHREaXNwbGF5OwogICAgIGlmIChh
dHRycy51c2VNZXRhbCkgewogICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BM
QVRGT1JNX0FOR0xFX1RZUEVfQU5HTEUpOwogICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBl
bmQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfTUVUQUxfQU5HTEUpOwotICAgIH0KLQotICAgIGlm
IChhdHRycy5wb3dlclByZWZlcmVuY2UgIT0gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQ
b3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfHwgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZv
cm1hbmNlR1BVKSB7Ci0gICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUE9XRVJf
UFJFRkVSRU5DRV9BTkdMRSk7Ci0gICAgICAgIGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0g
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6Okxvd1Bvd2VyICYm
ICFhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFUpIHsKLSAgICAgICAgICAg
IExPRyhXZWJHTCwgIlJlcXVlc3RpbmcgbG93IHBvd2VyIEdQVS4iKTsKKyAgICAgICAgLy8gVGhl
c2UgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBmb3IgRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2Ug
YXMgRUdMQ29udGV4dCBhdHRyaWJ1dGVzLAorICAgICAgICAvLyBidXQgTWV0YWwgYmFja2VuZCB1
c2VzIEVHTERpc3BsYXkgYXR0cmlidXRlcy4KKyAgICAgICAgYXV0byBwb3dlclByZWZlcmVuY2Ug
PSBhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VHUFUgPyBHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXM6OlBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlIDogYXR0cnMu
cG93ZXJQcmVmZXJlbmNlOworICAgICAgICBpZiAocG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlcikgeworICAgICAg
ICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xF
KTsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfTE9XX1BPV0VSX0FO
R0xFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChhdHRycy5wb3dlclBy
ZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6
OkhpZ2hQZXJmb3JtYW5jZSB8fCBhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFuY2VH
UFUpOwotICAgICAgICAgICAgTE9HKFdlYkdMLCAiUmVxdWVzdGluZyBoaWdoIHBvd2VyIEdQVSBp
ZiBhdmFpbGFibGUuIik7CisgICAgICAgICAgICBuYXRpdmVEaXNwbGF5ID0gR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6Omxvd1Bvd2VyRGlzcGxheTsKKyAgICAgICAgfSBlbHNlIGlmIChwb3dlclBy
ZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6
OkhpZ2hQZXJmb3JtYW5jZSkgeworICAgICAgICAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5k
KEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xFKTsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1
dGVzLmFwcGVuZChFR0xfSElHSF9QT1dFUl9BTkdMRSk7CisgICAgICAgICAgICBuYXRpdmVEaXNw
bGF5ID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpZ2hQZXJmb3JtYW5jZURpc3BsYXk7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9OT05FKTsK
LSAgICBkaXNwbGF5ID0gRUdMX0dldFBsYXRmb3JtRGlzcGxheUVYVChFR0xfUExBVEZPUk1fQU5H
TEVfQU5HTEUsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEVHTF9ERUZBVUxUX0RJU1BMQVkpLCBk
aXNwbGF5QXR0cmlidXRlcy5kYXRhKCkpOworICAgIGRpc3BsYXkgPSBFR0xfR2V0UGxhdGZvcm1E
aXNwbGF5RVhUKEVHTF9QTEFURk9STV9BTkdMRV9BTkdMRSwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4obmF0aXZlRGlzcGxheSksIGRpc3BsYXlBdHRyaWJ1dGVzLmRhdGEoKSk7CiAKICAgICBpZiAo
RUdMX0luaXRpYWxpemUoZGlzcGxheSwgJm1ham9yVmVyc2lvbiwgJm1pbm9yVmVyc2lvbikgPT0g
RUdMX0ZBTFNFKSB7CiAgICAgICAgIExPRyhXZWJHTCwgIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRp
b24gZmFpbGVkLiIpOwpAQCAtMTcyLDcgKzE3Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRp
YWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMp
CiAgICAgTE9HKFdlYkdMLCAiQU5HTEUgaW5pdGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIs
IG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9uKTsKICAgICBpZiAoc2hvdWxkSW5pdGlhbGl6ZVdp
dGhWb2xhdGlsZUNvbnRleHRTdXBwb3J0KSB7CiAgICAgICAgIC8vIEFmdGVyIGluaXRpYWxpemF0
aW9uLCBFR0xfREVGQVVMVF9ESVNQTEFZIHdpbGwgcmV0dXJuIHRoZSBwbGF0Zm9ybS1jdXN0b21p
emVkIGRpc3BsYXkuCi0gICAgICAgIEFTU0VSVChkaXNwbGF5ID09IEVHTF9HZXREaXNwbGF5KEVH
TF9ERUZBVUxUX0RJU1BMQVkpKTsKKyAgICAgICAgQVNTRVJUKGRpc3BsYXkgPT0gRUdMX0dldERp
c3BsYXkobmF0aXZlRGlzcGxheSkpOwogICAgICAgICBBU1NFUlQoY2hlY2tWb2xhdGlsZUNvbnRl
eHRTdXBwb3J0SWZEZXZpY2VFeGlzdHMoZGlzcGxheSwgIkVHTF9BTkdMRV9wbGF0Zm9ybV9kZXZp
Y2VfY29udGV4dF92b2xhdGlsZV9lYWdsIiwgIkVHTF9BTkdMRV9kZXZpY2VfZWFnbCIsIEVHTF9F
QUdMX0NPTlRFWFRfQU5HTEUpKTsKICAgICAgICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0
U3VwcG9ydElmRGV2aWNlRXhpc3RzKGRpc3BsYXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNl
X2NvbnRleHRfdm9sYXRpbGVfY2dsIiwgIkVHTF9BTkdMRV9kZXZpY2VfY2dsIiwgRUdMX0NHTF9D
T05URVhUX0FOR0xFKSk7CiAgICAgfQpAQCAtMjE4LDE2ICsyMTksMjUgQEAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHQKICAgICBpZiAoIW1fZGlzcGxheU9iaikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYm9vbCBzdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSA9IGZhbHNlOwogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBjb25zdCBjaGFyICpkaXNwbGF5RXh0ZW5zaW9ucyA9IEVHTF9RdWVyeVN0cmluZyht
X2Rpc3BsYXlPYmosIEVHTF9FWFRFTlNJT05TKTsKLSAgICBtX3N1cHBvcnRzUG93ZXJQcmVmZXJl
bmNlID0gc3Ryc3RyKGRpc3BsYXlFeHRlbnNpb25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVu
Y2UiKTsKLSAgICBzdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSA9IG1fc3VwcG9ydHNQb3dlclByZWZl
cmVuY2U7Ci0jZW5kaWYKLSAgICBpZiAoIXN1cHBvcnRzUG93ZXJQcmVmZXJlbmNlICYmIGF0dHJz
LnBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGln
aFBlcmZvcm1hbmNlKSB7Ci0gICAgICAgIGF0dHJzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNz
Q29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OwotICAgICAgICBzZXRDb250ZXh0QXR0
cmlidXRlcyhhdHRycyk7CisgICAgaWYgKCFhdHRycy51c2VNZXRhbCkgeworICAgICAgICAvLyBG
b3IgT3BlbkdMLCBFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5jZSBpcyB1c2VkLiBUaGUgY29udGV4
dCBpcyBpbml0aWFsaXplZCB3aXRoIHRoZQorICAgICAgICAvLyBkZWZhdWx0LCBsb3ctcG93ZXIg
ZGV2aWNlLiBGb3IgaGlnaC1wZXJmb3JtYW5jZSBjb250ZXh0cywgd2UgcmVxdWVzdCB0aGUgaGln
aC1wZXJmb3JtYW5jZQorICAgICAgICAvLyBHUFUgaW4gc2V0Q29udGV4dFZpc2liaWxpdHkuIFdo
ZW4gdGhlIHJlcXVlc3QgaXMgZnVsbGZpbGxlZCBieSB0aGUgc3lzdGVtLCB3ZSBnZXQgdGhlCisg
ICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNhbGxiYWNrLiBVcG9uIHRoaXMsIHdl
IHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGluc2lkZSBBTkdMRS4KKyAgICAgICAgY29uc3QgY2hh
ciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5T2JqLCBFR0xf
RVhURU5TSU9OUyk7CisgICAgICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVuY2UgPSBzdHJz
dHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5jZSIpOworICAg
ICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpIHsKKyAgICAgICAgICAgIG1fc3dpdGNo
ZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24gPSBhdHRycy5wb3dlclByZWZlcmVuY2UgPT0g
R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZQorICAgICAg
ICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5jZUdQVTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChhdHRycy5wb3dlclByZWZlcmVuY2UgPT0g
R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgeworICAg
ICAgICAgICAgICAgIGF0dHJzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93
ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OworICAgICAgICAgICAgICAgIHNldENvbnRleHRBdHRyaWJ1
dGVzKGF0dHJzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KKyNlbmRpZgogCiAg
ICAgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbXSA9IHsKICAgICAgICAgRUdMX1JFTkRFUkFCTEVf
VFlQRSwgRUdMX09QRU5HTF9FUzJfQklULApAQCAtNTExLDcgKzUyMSw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmNoZWNrR1BVU3RhdHVzKCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wgaXNWaXNpYmxlKQogewogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5wb3dlclByZWZlcmVuY2Ug
IT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAg
ICBpZiAoIW1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAoaXNWaXNpYmxlKQogICAgICAgICBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJl
cXVlc3QgPSBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0OjphY3F1aXJlKCk7CkBAIC01
MjUsNyArNTM1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZp
c2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpk
aXNwbGF5V2FzUmVjb25maWd1cmVkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1f
c3VwcG9ydHNQb3dlclByZWZlcmVuY2UpCisgICAgaWYgKG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlS
ZWNvbmZpZ3VyYXRpb24pCiAgICAgICAgIEVHTF9IYW5kbGVHUFVTd2l0Y2hBTkdMRShtX2Rpc3Bs
YXlPYmopOwogI2VuZGlmCiAgICAgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCBiZjc2MThjOWNmYzZjNWRh
NzM2MjBiMWNmNDc1YzVmZGE2Y2VmYWZkLi4yZWVhNTQ1ZDIwYzM3NjExMjM5M2U1MGM1Yjg0ZDE0
ZGNjMWNiYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNTM0LDYg
KzUzNCwxNCBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKEFOR0xFKQorICAg
IGNvbnN0ZXhwciBzdGF0aWMgRUdMTmF0aXZlRGlzcGxheVR5cGUgZGVmYXVsdERpc3BsYXkgPSBF
R0xfREVGQVVMVF9ESVNQTEFZOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGNvbnN0ZXhwciBz
dGF0aWMgRUdMTmF0aXZlRGlzcGxheVR5cGUgbG93UG93ZXJEaXNwbGF5ID0gRUdMX0NBU1QoRUdM
TmF0aXZlRGlzcGxheVR5cGUsIC0xKTsKKyAgICBjb25zdGV4cHIgc3RhdGljIEVHTE5hdGl2ZURp
c3BsYXlUeXBlIGhpZ2hQZXJmb3JtYW5jZURpc3BsYXkgPSBFR0xfQ0FTVChFR0xOYXRpdmVEaXNw
bGF5VHlwZSwgLTIpOworI2VuZGlmCisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CiAgICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3Q7CkBAIC03ODgsNyArNzk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkKiBt
X2Rpc3BsYXlCdWZmZXJQYnVmZmVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIGJvb2wgbV9zdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uIHsgZmFsc2UgfTsKICAg
ICBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0IG1faGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdDsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNTRkZGUx
YTg3YzkxNGE3ZDQxYjlhYzczMzY1YWE1YTZlY2Y5M2U4Li42MzJiZDFkMGQyMjM4Y2ZiNWM4NDBl
NjhkMmFmOTViYjA0YmRjODJiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMTAtMjEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHTCBsb3ctcG93ZXIgYW5kIGhp
Z2gtcGVyZm9ybWFuY2UgY29udGV4dHMgc2hvdWxkIHVzZSBkaWZmZXJlbnQgQU5HTEUgTWV0YWwg
RUdMRGlzcGxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTAxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5NzE0MTc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEFkZCBhIEFQSSB0ZXN0IHRvIHRl
c3QgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wKKyAgICAgICAgQ29jb2EgaW1wbGVtZW50YXRpb24g
cmVnYXJkaW5nIHRoZSBidWcgd2hlcmUKKyAgICAgICAgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIGluc3RhbmNlcyB3b3VsZCB1c2UKKyAgICAgICAgdGhlIEdQVSB0aGF0IHdhcyBzZWxlY3Rl
ZCBieSB0aGUgZmlyc3QgaW5zdGFuY2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZp
Z3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5H
TENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3Rl
ZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Omhhc011bHRpcGxlR1BV
cyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1dlYkNvcmVVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpT
Y29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rpbmc6OlNjb3BlZFNldEF1eGlsaWFy
eVByb2Nlc3NUeXBlRm9yVGVzdGluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpTY29wZWRT
ZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rpbmc6On5TY29wZWRTZXRBdXhpbGlhcnlQcm9j
ZXNzVHlwZUZvclRlc3RpbmcpOgorICAgICAgICBBZGQgYSB1dGlsaXR5IHN0YXRlIHNldHRlciB0
byBzZXQgdGhlIHByb2Nlc3MgdHlwZSBmb3IgdGhlCisgICAgICAgIGR1cmF0aW9uIG9mIGEgdGVz
dC4KKwogMjAyMS0xMC0yMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdUSyBidWlsZCB3aXRoIG9sZCB2ZXJzaW9u
IG9mIEFUU1BJIGFmdGVyIHIyODQzNjcuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKaW5kZXggYzA2MmU2MzIx
ZmMyNTNhNmQ2ZDVlYjFlOGY5OGM1ZmJhMDJmZGQzNC4uNWRmYmZkM2VmODViMzE2NmIxNDg2OGRm
MTI2MWFmOGE0MGQ5M2Q3NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpAQCAtOTAsNyArOTAsNyBAQCBX
S19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBVSUtpdE1h
Y0hlbHBlcjsKIAogT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRlZCkgLWlzeXN0ZW0g
JChTREtST09UKS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbS5mcmFtZXdvcmsvUHJp
dmF0ZUhlYWRlcnM7CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgLWxndGVzdCAtZm9y
Y2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1mcmFtZXdv
cmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQg
JChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAtZnJh
bWV3b3JrIE5ldHdvcmsgJChXS19ISURfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykgJChX
S19QREZLSVRfTERGTEFHUykgJChXS19TWVNURU1fTERGTEFHUykgJChXS19VSUtJVE1BQ0hFTFBF
Ul9MREZMQUdTKSAkKFdLX1ZJU0lPTktJVENPUkVfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
LWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQ
SS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3Jl
VGVzdFN1cHBvcnQgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFH
UykgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX0hJRF9MREZM
QUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NZU1RF
TV9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoV0tfVklTSU9OS0lUQ09S
RV9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwog
T1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2Fy
Ym9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVh
ZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMTc5MTY3NmI1OGE1OTRhYTBlZjhiMzQ0ZGJhMWM1
MGJjMmQ2YzFiLi42OTkzMzVhMGM1N2I2OWNkY2YxMGQ2YWVjYjBhYjcxYjQ3N2ZmZWI3IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjA4LDYgKzYwOCw3IEBACiAJCTdCMjczOUYzMjYzMkFC
NjQwMDQwRjE4MiAvKiBUaHJlYWRBc3NlcnRpb25zVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjI3MzlGMjI2MzJBQjY0MDA0MEYxODIgLyog
VGhyZWFkQXNzZXJ0aW9uc1Rlc3QuY3BwICovOyB9OwogCQk3Qjc3NDkwNjI2N0NDRTcyMDA5ODcz
QjQgLyogVGVzdFJ1bm5lclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCNzc0OTA0MjY3Q0NFNjgwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVz
dHMuY3BwICovOyB9OwogCQk3QjdEMDk2QTI1MTlGOEY5MDAxN0EwNzggLyogV2ViR0xOb0NyYXNo
T25PdGhlclRocmVhZEFjY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCN0QwOTY5MjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jhc2hPbk90
aGVyVGhyZWFkQWNjZXNzLm1tICovOyB9OworCQk3QkEzOTM2QzI3MUVERkNBMDAxNTkxMUMgLyog
VGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkEzOTM2QjI3MUVERkNBMDAxNTkxMUMgLyogVGVz
dEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi87IH07CiAJCTdDMUFGNzk1MUU4RENC
QUIwMDI2NDVCOSAvKiBQcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MxQUY3OTMxRThEQ0JBQjAwMjY0NUI5IC8q
IFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gKi87IH07CiAJCTdDMzk2NTA2MUNERDc0RjkwMDk0
REJCOCAvKiBDb2xvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCAq
LzsgfTsKIAkJN0MzREI4RTQxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0RCOEUy
MUQxMjEyOUIwMEFFOENDMyAvKiBDb21tYW5kQmFja0ZvcndhcmQubW0gKi87IH07CkBAIC0yNTEy
LDYgKzI1MTMsOCBAQAogCQk3QjI3MzlGMjI2MzJBQjY0MDA0MEYxODIgLyogVGhyZWFkQXNzZXJ0
aW9uc1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFk
QXNzZXJ0aW9uc1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qjc3NDkw
NDI2N0NDRTY4MDA5ODczQjQgLyogVGVzdFJ1bm5lclRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlc3RSdW5uZXJUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCN0QwOTY5MjUxOUY4RjkwMDE3QTA3OCAvKiBXZWJHTE5vQ3Jhc2hP
bk90aGVyVGhyZWFkQWNjZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR0xOb0NyYXNo
T25PdGhlclRocmVhZEFjY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JB
MzkzNkIyNzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdC
QTM5MzZEMjcxRUVDNTMwMDE1OTExQyAvKiBXZWJDb3JlVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0MxQUY3OTMxRThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JNb3Zl
VG9XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmVw
YXJlRm9yTW92ZVRvV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzM5
NjUwNTFDREQ3NEY5MDA5NERCQjggLyogQ29sb3JUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvclRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbW1hbmRCYWNrRm9y
d2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMTIsNiArMzMxNSw3IEBA
CiAJCQkJQkMxMzFBQTgxMTcxMzFGQzAwQjY5NzI3IC8qIFRlc3RzQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJQkNCOUU3QzcxMTIzNEUzQTAwQTEzN0UwIC8qIFRlc3RzQ29udHJvbGxlci5oICovLAog
CQkJCTdDODNFMDM2MUQwQTVGNzAwMEZFQkNGMyAvKiBVdGlsaXRpZXMuaCAqLywKKwkJCQk3QkEz
OTM2RDI3MUVFQzUzMDAxNTkxMUMgLyogV2ViQ29yZVV0aWxpdGllcy5oICovLAogCQkJCTdDQkQ1
QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovLAogCQkJCTQ0
QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuaCAqLywKIAkJCSk7
CkBAIC00OTc3LDYgKzQ5ODEsNyBAQAogCQkJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZFQSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovLAogCQkJCTU3NjlDNTBBMUQ5QjAwMDEw
MDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLywKIAkJCQlBMTc5OTE4NjFF
MUM5OTRFMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyLm1tICovLAorCQkJCTdCQTM5MzZCMjcxRURG
Q0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLywKIAkJ
CQlDRDg5RDAzODFDNEVEQjJBMDAwNDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLywK
IAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CkBAIC01OTAwLDYgKzU5MDUsNyBAQAogCQkJCUY0NjEy
OENCMjExRDQ3NTEwMEQ5RkFEQiAvKiBUZXN0RHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjRFMEEyQjgyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRGNUJCNTIyMTY2N0JBQTAwMkQwNkI5IC8qIFRlc3RG
b250T3B0aW9ucy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTdCQTM5MzZDMjcxRURGQ0EwMDE1OTEx
QyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUY0NUUxNTc2MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUY0NUQzODkxMjE1QTdCNEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVjdG9y
QmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2MjgxMjUyMzI1QzE4MDAwQkI3RTQyIC8qIFRl
c3RQREZEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxN2QyZTgxNjBhNTMyYmY2
Njc0YTQyMDU1N2UyNGQ1YWJhNzgzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0KQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiVGVzdC5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJHTCkK
KyNpbXBvcnQgIldlYkNvcmVVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ugewor
Y2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wgeworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8VGVzdGVkR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmli
dXRlcykKKyAgICB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVk
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgICAgICBy
ZXR1cm4gY29udGV4dDsKKyAgICB9Citwcml2YXRlOgorICAgIFRlc3RlZEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgICAg
ICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpCisgICAgewor
ICAgIH0KK307Cit9CisKK3N0YXRpYyBib29sIGhhc011bHRpcGxlR1BVcygpCit7CisjaWYgKFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQorICAgIGF1dG8gZGV2aWNlcyA9
IGFkb3B0TlMoTVRMQ29weUFsbERldmljZXMoKSk7CisgICAgcmV0dXJuIFtkZXZpY2VzIGNvdW50
XSA+IDE7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShX
RUJHTF9DT01QQVRJQkxFX01FVEFMKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUND
QVRBTFlTVCkpCisjZGVmaW5lIE1BWUJFX011bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVy
ZW5jZU1ldGFsIE11bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVyZW5jZU1ldGFsCisjZWxz
ZQorI2RlZmluZSBNQVlCRV9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRh
bCBESVNBQkxFRF9NdWx0aXBsZUdQVXNEaWZmZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbAorI2Vu
ZGlmCisvLyBUZXN0cyBmb3IgYSBidWcgd2hlcmUgaGlnaC1wZXJmb3JtYW5jZSBjb250ZXh0IHdv
dWxkIHVzZSBsb3ctcG93ZXIgR1BVIGlmIGxvdy1wb3dlciBvciBkZWZhdWx0CisvLyBjb250ZXh0
IHdhcyBjcmVhdGVkIGZpcnN0LiBUZXN0IGlzIGFwcGxpY2FibGUgb25seSBmb3IgTWV0YWwsIHNp
bmNlIEdQVSBzZWxlY3Rpb24gZm9yIE9wZW5HTCBpcworLy8gdmVyeSBkaWZmZXJlbnQuCitURVNU
KEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2FUZXN0LCBNQVlCRV9NdWx0aXBsZUdQVXNEaWZm
ZXJlbnRQb3dlclByZWZlcmVuY2VNZXRhbCkKK3sKKyAgICBpZiAoIWhhc011bHRpcGxlR1BVcygp
KQorICAgICAgICByZXR1cm47CisgICAgU2NvcGVkU2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGVGb3JU
ZXN0aW5nIHNjb3BlZFByb2Nlc3NUeXBlIHsgQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OkdQVSB9Owor
CisgICAgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisgICAgYXR0cmli
dXRlcy51c2VNZXRhbCA9IHRydWU7CisgICAgRVhQRUNUX0VRKGF0dHJpYnV0ZXMucG93ZXJQcmVm
ZXJlbmNlLCBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVmYXVsdCk7CisgICAg
YXV0byBkZWZhdWx0Q29udGV4dCA9IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVh
dGUoYXR0cmlidXRlcyk7CisgICAgRVhQRUNUX05FKGRlZmF1bHRDb250ZXh0LCBudWxscHRyKTsK
KworICAgIGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0gR3JhcGhpY3NDb250ZXh0R0xQb3dl
clByZWZlcmVuY2U6Okxvd1Bvd2VyOworICAgIGF1dG8gbG93UG93ZXJDb250ZXh0ID0gVGVzdGVk
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShhdHRyaWJ1dGVzKTsKKyAgICBFWFBFQ1Rf
TkUobG93UG93ZXJDb250ZXh0LCBudWxscHRyKTsKKworICAgIGF0dHJpYnV0ZXMucG93ZXJQcmVm
ZXJlbmNlID0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZTsKKyAgICBhdXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBUZXN0ZWRHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Y3JlYXRlKGF0dHJpYnV0ZXMpOworICAgIEVYUEVDVF9ORShoaWdoUGVyZm9y
bWFuY2VDb250ZXh0LCBudWxscHRyKTsKKworICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHRHTDo6UkVOREVSRVIpLCBoaWdoUGVyZm9ybWFuY2VD
b250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSk7CisgICAgRVhQ
RUNUX0VRKGRlZmF1bHRDb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRF
UkVSKSwgbG93UG93ZXJDb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRF
UkVSKSk7Cit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9X
ZWJDb3JlVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dlYkNvcmVVdGlsaXRpZXMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MjYzNWQyNjBjYWYyYmMzNWE0MmEwOTFmMmViYjg3OTNhYzQ1ZjcwCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XZWJDb3JlVXRpbGl0aWVzLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCitjbGFzcyBTY29wZWRTZXRBdXhpbGlhcnlQcm9jZXNzVHlwZUZvclRlc3Rpbmcg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFNjb3BlZFNldEF1eGlsaWFyeVByb2Nlc3NUeXBlRm9y
VGVzdGluZyhXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQorICAgICAgICA6IG1f
b2xkVHlwZShXZWJDb3JlOjpwcm9jZXNzVHlwZSgpKQorICAgIHsKKyAgICAgICAgc2V0QXV4aWxp
YXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKHR5cGUpOworICAgIH0KKyAgICB+U2NvcGVkU2V0QXV4
aWxpYXJ5UHJvY2Vzc1R5cGVGb3JUZXN0aW5nKCkKKyAgICB7CisgICAgICAgIHNldEF1eGlsaWFy
eVByb2Nlc3NUeXBlRm9yVGVzdGluZyhtX29sZFR5cGUpOworICAgIH0KK3ByaXZhdGU6CisgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZT4gbV9vbGRUeXBlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>