<?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>225600</bug_id>
          
          <creation_ts>2021-05-10 11:16:16 -0700</creation_ts>
          <short_desc>[macOS] Allow immediate action gestures to begin when force clicking text inside image overlays</short_desc>
          <delta_ts>2021-05-10 21:31:26 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758559</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-10 11:16:16 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758691</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-10 15:37:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/77792365&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758716</commentid>
    <comment_count>2</comment_count>
      <attachid>428219</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-10 16:49:22 -0700</bug_when>
    <thetext>Created attachment 428219
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758737</commentid>
    <comment_count>3</comment_count>
      <attachid>428223</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-10 17:08:23 -0700</bug_when>
    <thetext>Created attachment 428223
Fix non-internal macOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758789</commentid>
    <comment_count>4</comment_count>
      <attachid>428223</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-10 19:25:18 -0700</bug_when>
    <thetext>Comment on attachment 428223
Fix non-internal macOS builds

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

&gt; Source/WebCore/rendering/HitTestRequest.h:51
&gt; +        DisallowUserAgentShadowContentExceptForImageOverlays = 1 &lt;&lt; 16,

Devin pointed out over Slack that this should go right after the existing option — I&apos;ll make this adjustment before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758796</commentid>
    <comment_count>5</comment_count>
      <attachid>428240</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-10 20:08:04 -0700</bug_when>
    <thetext>Created attachment 428240
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758804</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-10 21:31:24 -0700</bug_when>
    <thetext>Committed r277316 (237575@main): &lt;https://commits.webkit.org/237575@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428240.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428219</attachid>
            <date>2021-05-10 16:49:22 -0700</date>
            <delta_ts>2021-05-10 17:17:57 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-225600-20210510164921.patch</filename>
            <type>text/plain</type>
            <size>25065</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxOTVkZmU2Yzg4NzM3
MzljY2M1ZDk4OTAwNTIyMTYzNjExMmU4Yy4uY2MxZGQ5NDg3MzVlYjQ4ZTZlNWU4MzU0YmRjNzRm
YzQ4NzlkY2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWxs
b3cgaW1tZWRpYXRlIGFjdGlvbiBnZXN0dXJlcyB0byBiZWdpbiB3aGVuIGZvcmNlIGNsaWNraW5n
IHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU2MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3Nzky
MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFs
bG93IGltbWVkaWF0ZSBhY3Rpb24gaGl0LXRlc3RpbmcgdG8gZGVzY2VuZCBpbnRvIGltYWdlIG92
ZXJsYXkgY29udGVudC4gQ3VycmVudGx5LCB0aGlzIHVzZXMgdGhlCisgICAgICAgIGBEaXNhbGxv
d3NVc2VyQWdlbnRTaGFkb3dDb250ZW50YCBoaXQtdGVzdGluZyBvcHRpb24sIGNhdXNpbmcgdXMg
dG8gaWdub3JlIGltYWdlIG92ZXJsYXlzICh3aGljaCBleGlzdCBpbnNpZGUKKyAgICAgICAgdGhl
IFVBIHNoYWRvdyByb290KS4gVG8gZml4IHRoaXMsIHdlIGludHJvZHVjZSBhIGBEaXNhbGxvd3NV
c2VyQWdlbnRTaGFkb3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5c2Agb3B0aW9uCisgICAg
ICAgIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBleGlzdGluZyBgRGlzYWxsb3dzVXNlckFnZW50U2hh
ZG93Q29udGVudGAgb3B0aW9uLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB3ZSBhbGxvdyBoaXQt
CisgICAgICAgIHRlc3RpbmcgdG8gcGllcmNlIHRoZSBVQSBzaGFkb3cgcm9vdCB0byBmaW5kIG5v
ZGVzIGluc2lkZSBpbWFnZSBvdmVybGF5cy4KKworICAgICAgICBUZXN0czogIEltbWVkaWF0ZUFj
dGlvblRlc3RzLkltbWVkaWF0ZUFjdGlvbk92ZXJUZXh0CisgICAgICAgICAgICAgICAgSW1tZWRp
YXRlQWN0aW9uVGVzdHMuSW1tZWRpYXRlQWN0aW9uT3ZlckJvZHkKKyAgICAgICAgICAgICAgICBJ
bW1lZGlhdGVBY3Rpb25UZXN0cy5JbW1lZGlhdGVBY3Rpb25PdmVySW1hZ2VPdmVybGF5CisKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlcXVlc3QuaDoKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBoaXQt
dGVzdCBvcHRpb24sIHdoaWNoIGFsbG93cyBoaXQtdGVzdGluZyB0byBkZXNjZW5kIGludG8gaW1h
Z2Ugb3ZlcmxheXMgKGFuZCBpcworICAgICAgICBpbnRlbmRlZCB0byBiZSBtdXR1YWxseSBleGNs
dXNpdmUgd2l0aCB0aGUgZXhpc3RpbmcgYERpc2FsbG93c1VzZXJBZ2VudFNoYWRvd0NvbnRlbnRg
IG9wdGlvbikuIFNwZWNpZnlpbmcgYm90aAorICAgICAgICBvcHRpb25zIHdpbGwgbGVhZCB0byBh
biBhc3NlcnRpb24gb24gZGVidWcgYnVpbGRzLCBhbmQgYERpc2FsbG93c1VzZXJBZ2VudFNoYWRv
d0NvbnRlbnRgIHRha2VzIHByZWNlZGVuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisK
KyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpkaXNhbGxvd3NVc2VyQWdlbnRTaGFk
b3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cyBjb25zdCk6CisgICAgICAgICogcmVuZGVy
aW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
YWRkTm9kZVRvTGlzdEJhc2VkVGVzdFJlc3VsdENvbW1vbik6CisKIDIwMjEtMDUtMTAgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXZWJDb3Jl
OjpIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGUgYW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAy
N2RjMzkzZjEyMGY0YmUzM2RiNTQ5YjlhZDc2MmYxNmU1YWExOTUwLi4yOTcwNTMyMjVjZjhlYTNk
MjUyYTdkNGFkOWMyOTAxYTMzZmE4NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFttYWNPU10gQWxsb3cgaW1tZWRpYXRlIGFjdGlvbiBnZXN0dXJlcyB0byBiZWdpbiB3aGVuIGZv
cmNlIGNsaWNraW5nIHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU2MDAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc3NzkyMzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkb3B0IHRoZSBuZXcgaGl0LXRlc3Qgb3B0aW9uLiBTZWUgV2ViQ29yZS9DaGFu
Z2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybUltbWVk
aWF0ZUFjdGlvbkhpdFRlc3RBdExvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
bG9va3VwVGV4dEF0TG9jYXRpb24pOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVl
c3Q6OlJlcXVlc3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCA2OTYwNzQ3YTBiNWE3OWVhMmM2NTk4YjFjYTJmYjc5YzM0MjZjZThmLi45OTQz
ZjRiMzM3ZGVmZGUzNTBhMDYzOWM0Y2NlMGE2Y2JkNDc4M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0xMTkwLDcgKzExOTAsOSBAQCBIaXRUZXN0UmVzdWx0IEV2ZW50
SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBP
cHRpbwogICAgIGlmICghcmVxdWVzdC5yZWFkT25seSgpKQogICAgICAgICBtX2ZyYW1lLmRvY3Vt
ZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LnRhcmdldEVsZW1l
bnQoKSk7CiAKLSAgICBpZiAocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250ZW50
KCkpCisgICAgYXV0byBpbm5lck5vZGUgPSBtYWtlUmVmUHRyKHJlc3VsdC5pbm5lck5vZGUoKSk7
CisgICAgaWYgKHJlcXVlc3QuZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudCgpCisgICAg
ICAgIHx8IChyZXF1ZXN0LmRpc2FsbG93c1VzZXJBZ2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJ
bWFnZU92ZXJsYXlzKCkgJiYgaW5uZXJOb2RlICYmICFIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFn
ZU92ZXJsYXkoKmlubmVyTm9kZSkpKQogICAgICAgICByZXN1bHQuc2V0VG9Ob25Vc2VyQWdlbnRT
aGFkb3dBbmNlc3RvcigpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmgKaW5kZXggNWExNWMzYTFhNzlhYjM2ZDg5ODUxMTUyODFj
MzRiZTA0OTcxNTA5ZS4uZjc2YWY2OTI2NDNkNWZkZGY1YjY3N2VjNTI1ZDdhYzk2MTM4NGNjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmgKQEAgLTQ4LDExICs0
OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIENvbGxlY3RNdWx0aXBsZUVsZW1lbnRzID0gMSA8PCAx
NCwKICAgICAgICAgLy8gV2hlbiB1c2luZyBsaXN0LWJhc2VkIHRlc3RpbmcsIGNvbnRpbnVlIGhp
dCB0ZXN0aW5nIGV2ZW4gYWZ0ZXIgYSBoaXQgaGFzIGJlZW4gZm91bmQuCiAgICAgICAgIEluY2x1
ZGVBbGxFbGVtZW50c1VuZGVyUG9pbnQgPSAxIDw8IDE1LAorICAgICAgICBEaXNhbGxvd1VzZXJB
Z2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzID0gMSA8PCAxNiwKICAgICB9
OwogCiAgICAgSGl0VGVzdFJlcXVlc3QoT3B0aW9uU2V0PFR5cGU+IHR5cGUgPSB7IFR5cGU6OlJl
YWRPbmx5LCBUeXBlOjpBY3RpdmUsIFR5cGU6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVu
dCB9KQogICAgICAgICA6IG1fdHlwZSB7IHR5cGUgfQogICAgIHsKKyAgICAgICAgQVNTRVJUKCF0
eXBlLmNvbnRhaW5zQWxsKHsgVHlwZTo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50RXhj
ZXB0Rm9ySW1hZ2VPdmVybGF5cywgVHlwZTo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
IH0pKTsKICAgICAgICAgQVNTRVJUX0lNUExJRVModHlwZS5jb250YWlucyhUeXBlOjpJbmNsdWRl
QWxsRWxlbWVudHNVbmRlclBvaW50KSwgdHlwZS5jb250YWlucyhUeXBlOjpDb2xsZWN0TXVsdGlw
bGVFbGVtZW50cykpOwogICAgIH0KIApAQCAtNjYsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCB0b3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlLmNvbnRhaW5zKFR5cGU6OlRvdWNo
RXZlbnQpOyB9CiAgICAgYm9vbCBtb3VzZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gIXRvdWNoRXZl
bnQoKTsgfQogICAgIGJvb2wgZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZS5jb250YWlucyhUeXBlOjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0Nv
bnRlbnQpOyB9CisgICAgYm9vbCBkaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250ZW50RXhjZXB0
Rm9ySW1hZ2VPdmVybGF5cygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZS5jb250YWlucyhUeXBlOjpE
aXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzKTsgfQog
ICAgIGJvb2wgYWxsb3dzRnJhbWVTY3JvbGxiYXJzKCkgY29uc3QgeyByZXR1cm4gbV90eXBlLmNv
bnRhaW5zKFR5cGU6OkFsbG93RnJhbWVTY3JvbGxiYXJzKTsgfQogICAgIGJvb2wgYWxsb3dzQ2hp
bGRGcmFtZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUuY29udGFpbnMoVHlwZTo6QWxs
b3dDaGlsZEZyYW1lQ29udGVudCk7IH0KICAgICBib29sIGFsbG93c1Zpc2libGVDaGlsZEZyYW1l
Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZS5jb250YWlucyhUeXBlOjpBbGxvd1Zpc2li
bGVDaGlsZEZyYW1lQ29udGVudE9ubHkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdFJlc3VsdC5jcHAKaW5kZXggMDMwN2Q5MjBmMDRlYTNhOWE2ZWI0M2M4MDhmYzBiYjliNjdk
NWQ4Ni4uOTBkMDc1Zjg5ZDA1MGMwMzU0N2I1YmUzNmE5Njk5NDYzYTEzMWM1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtNjU2LDcgKzY1Niw4IEBA
IGlubGluZSBIaXRUZXN0UHJvZ3Jlc3MgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvTGlzdEJhc2Vk
VGVzdFJlc3VsdENvbW1vbihOb2RlKiBuCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4g
SGl0VGVzdFByb2dyZXNzOjpDb250aW51ZTsKIAotICAgIGlmIChyZXF1ZXN0LmRpc2FsbG93c1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnQoKSAmJiBub2RlLT5pc0luVXNlckFnZW50U2hhZG93VHJlZSgp
KQorICAgIGlmICgocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250ZW50KCkgJiYg
bm9kZS0+aXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkKKyAgICAgICAgfHwgKHJlcXVlc3QuZGlz
YWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudEV4Y2VwdEZvckltYWdlT3ZlcmxheXMoKSAmJiAh
SFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCpub2RlKSAmJiBub2RlLT5pc0luVXNl
ckFnZW50U2hhZG93VHJlZSgpKSkKICAgICAgICAgbm9kZSA9IG5vZGUtPmRvY3VtZW50KCkuYW5j
ZXN0b3JOb2RlSW5UaGlzU2NvcGUobm9kZSk7CiAKICAgICBtdXRhYmxlTGlzdEJhc2VkVGVzdFJl
c3VsdCgpLmFkZCgqbm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGE0MmRkOTFjZGZiOGJkZjBiMTdlMmRjY2NhMDRm
ZTgwMTlkMDc0OGUuLjBhYzhiODc2MDczYzhjYTM5MWNmNjRjYWQ4MjcwMmUxNzY5NmY1ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC04NTgsOSArODU4LDEzIEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybUltbWVkaWF0ZUFj
dGlvbkhpdFRlc3RBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBJbnRQb2ludCBsb2NhdGlvbkluQ29udGVudENvb3JkaW5h
dGVzID0gbWFpbkZyYW1lLnZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKHJvdW5kZWRJbnRQb2lu
dChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7Ci0gICAgY29uc3RleHByIE9wdGlvblNldDxI
aXRUZXN0UmVxdWVzdDo6VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpSZWFk
T25seSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6
OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFs
bG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKLSAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQg
PSBtYWluRnJhbWUuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobG9jYXRpb25J
bkNvbnRlbnRDb29yZGluYXRlcywgaGl0VHlwZSk7CisgICAgYXV0byBsb2NhdGlvbkluQ29udGVu
dENvb3JkaW5hdGVzID0gbWFpbkZyYW1lLnZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKHJvdW5k
ZWRJbnRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7CisgICAgYXV0byBoaXRUZXN0
UmVzdWx0ID0gbWFpbkZyYW1lLmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KGxv
Y2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMsIHsKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlR5
cGU6OlJlYWRPbmx5LAorICAgICAgICBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6QWN0aXZlLAorICAg
ICAgICBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cywKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFs
bG93Q2hpbGRGcmFtZUNvbnRlbnQsCisgICAgfSk7CiAKICAgICBib29sIGltbWVkaWF0ZUFjdGlv
bkhpdFRlc3RQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICBFbGVtZW50KiBlbGVtZW50ID0g
aGl0VGVzdFJlc3VsdC50YXJnZXRFbGVtZW50KCk7CkBAIC05NTgsMTAgKzk2MiwxMiBAQCBPcHRp
b25hbDxzdGQ6OnR1cGxlPFdlYkNvcmU6OlNpbXBsZVJhbmdlLCBOU0RpY3Rpb25hcnkgKj4+IFdl
YlBhZ2U6Omxvb2t1cFRleHRBdAogICAgIGlmICghbWFpbkZyYW1lLnZpZXcoKSB8fCAhbWFpbkZy
YW1lLnZpZXcoKS0+cmVuZGVyVmlldygpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
Ci0gICAgYXV0byBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5h
dGVzKTsKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpUeXBlPiBoaXRU
eXBlIHsgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6VHlw
ZTo6QWN0aXZlLCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dD
b250ZW50LCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB9Owot
ICAgIGF1dG8gcmVzdWx0ID0gbWFpbkZyYW1lLmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRB
dFBvaW50KG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHBvaW50
KSwgaGl0VHlwZSk7Ci0gICAgcmV0dXJuIERpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRUZXN0
UmVzdWx0KHJlc3VsdCk7CisgICAgcmV0dXJuIERpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRU
ZXN0UmVzdWx0KG1haW5GcmFtZS5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludCht
X3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhyb3VuZGVkSW50UG9p
bnQobG9jYXRpb25JblZpZXdDb29yZGluYXRlcykpLCB7CisgICAgICAgIEhpdFRlc3RSZXF1ZXN0
OjpUeXBlOjpSZWFkT25seSwKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFjdGl2ZSwK
KyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudEV4Y2VwdEZvckltYWdlT3ZlcmxheXMsCisgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpUeXBl
OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50LAorICAgIH0pKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpp
bW1lZGlhdGVBY3Rpb25EaWRVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzYmU1ZWNkYjEyZGNiZGMzNzM5ZjI3Y2Y5MzgzNjAwNjk4
MThiNjUuLjFhYjUyN2UzMDUyMWNlYTE2MWI4YjdhZjY2NmQ1MjYzOWRmMTAyZDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAyMS0wNS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbbWFjT1NdIEFsbG93IGltbWVkaWF0ZSBhY3Rpb24gZ2VzdHVyZXMgdG8gYmVnaW4g
d2hlbiBmb3JjZSBjbGlja2luZyB0ZXh0IGluc2lkZSBpbWFnZSBvdmVybGF5cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NjAwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83Nzc5MjM2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgbmV3IEFQSSB0ZXN0cyB0byBleGVyY2lzZSB0aGVzZSBjaGFu
Z2VzIGJ5IGdyYWJiaW5nIHRoZSBpbW1lZGlhdGUgYWN0aW9uIGBOU0dlc3R1cmVSZWNvZ25pemVy
YCBmcm9tCisgICAgICAgIGBXS1dlYlZpZXdgIGFuZCBjYWxsaW5nIGludG8gaXRzIGRlbGVnYXRl
LiBUaGlzIHBhdGNoIGFkZHMgdHdvIGJhc2ljIGltbWVkaWF0ZSBhY3Rpb24gdGVzdHMgYnkgc2lt
dWxhdGluZyB0aGUKKyAgICAgICAgaW1tZWRpYXRlIGFjdGlvbiBvdmVyIHRleHQgYW5kIHRoZSBi
b2R5IGVsZW1lbnQsIGFuZCBpbmNsdWRlcyBhIHRoaXJkIHRlc3QgdGhhdCBpbnN0YWxscyBhbiBp
bWFnZSBvdmVybGF5IHVzaW5nCisgICAgICAgIGFuIGluamVjdGVkIGBpbnRlcm5hbHNgIG9iamVj
dCwgYW5kIHZlcmlmaWVzIHRoYXQgdGhlIGltbWVkaWF0ZSBhY3Rpb24gaW4gYW4gaW1hZ2Ugb3Zl
cmxheSBtYXRjaGVzIHRoYXQgb2YKKyAgICAgICAgcmVndWxhciB0ZXh0IG9uIHRoZSBwYWdlLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0
aW9uVGVzdHMubW06IEFkZGVkLgorICAgICAgICAoc3dpenpsZWRJbW1lZGlhdGVBY3Rpb25Mb2Nh
dGlvbkluVmlldyk6CisgICAgICAgICgtW1dLV2ViVmlld0ZvclRlc3RpbmdJbW1lZGlhdGVBY3Rp
b25zIF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDp3
aXRoVHlwZTp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVk
aWF0ZUFjdGlvbnMgaW1tZWRpYXRlQWN0aW9uR2VzdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXdGb3JUZXN0aW5nSW1tZWRpYXRlQWN0aW9ucyBzaW11bGF0ZUltbWVkaWF0ZUFjdGlvbjpdKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA1LTEwICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUGFnZXMgd2l0aCBzZXJ2aWNl
IHdvcmtlcnMgZG8gbm90IHN1c3BlbmQgcHJvbXB0bHkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZmNkZWFiNGY0OWQ3Nzk5N2QwYjEzZGE4MmFkZGNjYzI5ZTczYzNiMy4uZGMxMTdiMjRkOTI3
MjJmZTkwNmM3ZWU0ZmU5MGI5YzdlYzkwN2MyOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTg2OCw4ICs4NjgsOCBAQAogCQk5M0Y1NkRBNzFFNUY5MTc0MDAzRURFODQgLyogbGliaWN1Y29y
ZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDODNFMDMzMUQwQTVGMjcwMEZFQkNGMyAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5
M0Y1NkRBOTFFNUY5MTlEMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NkRBODFFNUY5MTgxMDAz
RURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gKi87IH07CiAJCTkzRjdFODZGMTREQzhFNUMw
MEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZF
MTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNf
QnVuZGxlLmNwcCAqLzsgfTsKLQkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQ
YWdlVG9wQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAq
LzsgfTsKIAkJOTNGQ0RCMzQyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkNEQjMzMjYz
NjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi87IH07CisJCTk1MDk1RjIwMjYy
RkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8q
IFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5
RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBv
cnQubW0gKi87IH07CiAJCTk1M0FCQjM1MjVDMEQ2ODIwMDRDOEI3MyAvKiBQYWdlRXh0ZW5kZWRC
YWNrZ3JvdW5kQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogUGFnZUV4dGVuZGVkQmFja2dyb3Vu
ZENvbG9yLm1tICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3
VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICov
OyB9OwpAQCAtMTE3OSw2ICsxMTc5LDcgQEAKIAkJRjQ0Mjg1MUQyMTQwREYyOTAwQ0NEQTIyIC8q
IE5TRm9udFBhbmVsVGVzdGluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0NDI4NTFDMjE0MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3Rp
bmcubW0gKi87IH07CiAJCUY0NDUxQzc2MUVCOEZEODkwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBo
LWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDUxQzc1MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdy
YXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICovOyB9OwogCQlGNDRBNTMxMTIxQjg5OTAzMDBEQkI5
OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzEwMjFCODk3NjkwMERCQjk5QyAvKiBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9OworCQlGNDRBOUFGNzI2NDlCQkREMDBFN0NCMTYgLyog
SW1tZWRpYXRlQWN0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9u
VGVzdHMubW0gKi87IH07CiAJCUY0NEM3OUZGMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJzZXJZaWVs
ZFRva2VuVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDRDNzlGRTIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRlc3RzLm1t
ICovOyB9OwogCQlGNDRDN0EwMDIwRjlFRUJGMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblBs
dWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
NEM3OUZCMjBGOUU1MEMwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tICovOyB9
OwogCQlGNDRDN0EwNTIwRkFBRTNDMDAxNDQ3OEMgLyogdGV4dC13aXRoLWRlZmVycmVkLXNjcmlw
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NEM3QTA0MjBGQUFFMzIwMDE0NDc4QyAvKiB0ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0
Lmh0bWwgKi87IH07CkBAIC0yNTY1LDggKzI1NjYsOCBAQAogCQk5M0Y1NkRBODFFNUY5MTgxMDAz
RURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1dlYlZpZXdTbmFwc2hvdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGN0U4NkIxNERDOEU0RDAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZyYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTUwOTVGMUYyNjJGRkZBNTAw
MDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBTYW1wbGVkUGFnZVRvcENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0ZDREIzMzI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJyYXlNYXAu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU29ydGVkQXJyYXlNYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5
MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3VwcG9y
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4
QjczIC8qIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdL
V2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjk5Nyw2ICsyOTk4LDggQEAKIAkJRjQ0QTUzMEUyMUI4OTc2OTAwREJCOTlDIC8qIENsYXNz
TWV0aG9kU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBDbGFzc01ldGhvZFN3aXp6bGVyLm1tOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2Nv
YS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDRBNTMwRjIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDbGFzc01ldGhvZFN3aXp6bGVyLmg7IHBhdGggPSAu
Li9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMTAyMUI4OTc2OTAwREJCOTlDIC8qIEluc3RhbmNl
TWV0aG9kU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9j
b2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDRBOUFGNTI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW1tZWRpYXRlQWN0aW9uVGVzdHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjQ0QTlBRjYyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0ZUFjdGlvblRl
c3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW1tZWRpYXRlQWN0aW9uVGVzdHMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEM3OUZCMjBGOUU1MEMwMDE0NDc4QyAvKiBQ
YXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFyc2VyWWll
bGRUb2tlblBsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5RkQy
MEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXJzZXJZaWVsZFRva2VuVGVzdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0Qzc5RkUyMEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2ODAsNiArNDY4Myw4IEBACiAJCQkJNTFFQjEyNTgyNEM2ODU4
OTAwMENCMDMwIC8qIEhJREdhbWVwYWRzLm1tICovLAogCQkJCTlCNEY4RkEzMTU5RDUyQjEwMDJE
OUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLywKIAkJCQk5QjI2RkM2QjE1OUQw
NjEwMDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tICovLAorCQkJCUY0
NEE5QUY1MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5oICovLAorCQkJ
CUY0NEE5QUY2MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSAqLywK
IAkJCQlDNTA3RThBNjE0QzY1NDVCMDA1RDZCM0IgLyogSW5zcGVjdG9yQmFyLm1tICovLAogCQkJ
CTU3RjEwRDkyMUM3RTdCMzgwMEVDREYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1t
ICovLAogCQkJCTUxODIwQTRDMjJGNEVFNzcwMERGMEEwMSAvKiBKYXZhc2NyaXB0VVJMTmF2aWdh
dGlvbi5tbSAqLywKQEAgLTU0NjcsNiArNTQ3Miw3IEBACiAJCQkJNTEwNDc3NzgxRDI5OTIzQjAw
OTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExMEZD
RkExRTAxQ0RCODAwNkY4RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5M0JDQkM4MzIzQ0M2RjJBMDBDQTIyMjEgLyogSURCT2JqZWN0U3RvcmVJbmZvVXBn
cmFkZVRvVjIubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNDRBOUFGNzI2NDlCQkREMDBFN0NCMTYg
LyogSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0OUFFRUY2RDI0
MDczNTlEMDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTUxQTU4Nzg2MUQyNzNBQTkwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NL
aWxsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0FCMEZGNTUyMjMzMkM1NzAwNkNBNUIwIC8qIElu
ZGV4ZWREQkZpbGVOYW1lLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlvblRlc3RzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUy
NmFmMTU1ZjUxYTIzOTg4ZTQ2YzZiZWU1MTEwNGY4ZjVhOTBmNGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbQpA
QCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiVGVzdC5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgor
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tI
aXRUZXN0UmVzdWx0Lmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRp
YyBOU1BvaW50IGdTd2l6emxlZEltbWVkaWF0ZUFjdGlvbkxvY2F0aW9uID0gTlNaZXJvUG9pbnQ7
CitzdGF0aWMgTlNQb2ludCBzd2l6emxlZEltbWVkaWF0ZUFjdGlvbkxvY2F0aW9uSW5WaWV3KGlk
LCBTRUwsIE5TVmlldyAqKQoreworICAgIHJldHVybiBnU3dpenpsZWRJbW1lZGlhdGVBY3Rpb25M
b2NhdGlvbjsKK30KKwordXNpbmcgSW1tZWRpYXRlQWN0aW9uSGl0VGVzdFJlc3VsdCA9IHN0ZDo6
cGFpcjxSZXRhaW5QdHI8X1dLSGl0VGVzdFJlc3VsdD4sIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGU+
OworCitAaW50ZXJmYWNlIFdLV2ViVmlld0ZvclRlc3RpbmdJbW1lZGlhdGVBY3Rpb25zIDogVGVz
dFdLV2ViVmlldworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKmltbWVkaWF0ZUFjdGlvbkdlc3R1cmU7CisKKy0gKHN0
ZDo6cGFpcjxSZXRhaW5QdHI8X1dLSGl0VGVzdFJlc3VsdD4sIF9XS0ltbWVkaWF0ZUFjdGlvblR5
cGU+KXNpbXVsYXRlSW1tZWRpYXRlQWN0aW9uOihOU1BvaW50KWxvY2F0aW9uOworCitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdGb3JUZXN0aW5nSW1tZWRpYXRlQWN0aW9ucyB7Cisg
ICAgYm9vbCBfaGFzUmV0dXJuZWRJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOworICAgIFJldGFp
blB0cjxfV0tIaXRUZXN0UmVzdWx0PiBfaGl0VGVzdFJlc3VsdDsKKyAgICBfV0tJbW1lZGlhdGVB
Y3Rpb25UeXBlIF9hY3Rpb25UeXBlOworfQorCistIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KF9XS0hpdFRlc3RSZXN1bHQgKiloaXRUZXN0
UmVzdWx0IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlk
IDxOU1NlY3VyZUNvZGluZz4pdXNlckRhdGEKK3sKKyAgICBfaGFzUmV0dXJuZWRJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyID0gdHJ1ZTsKKyAgICBfaGl0VGVzdFJlc3VsdCA9IGhpdFRlc3RSZXN1
bHQ7CisgICAgX2FjdGlvblR5cGUgPSB0eXBlOworICAgIHJldHVybiBbc3VwZXIgX2ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OmhpdFRlc3RSZXN1bHQg
d2l0aFR5cGU6dHlwZSB1c2VyRGF0YTp1c2VyRGF0YV07Cit9CisKKy0gKE5TSW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25HZXN0dXJlCit7CisgICAgZm9y
IChOU0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIFtzZWxmIGdlc3R1cmVSZWNvZ25pemVy
c10pIHsKKyAgICAgICAgaWYgKFtnZXN0dXJlIGlzS2luZE9mQ2xhc3M6TlNJbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqPihnZXN0dXJlKTsKKyAgICB9
CisgICAgcmV0dXJuIG5pbDsKK30KKworLSAoSW1tZWRpYXRlQWN0aW9uSGl0VGVzdFJlc3VsdClz
aW11bGF0ZUltbWVkaWF0ZUFjdGlvbjooTlNQb2ludClsb2NhdGlvbgoreworICAgIGF1dG8gaW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZSA9IHNlbGYuaW1tZWRpYXRlQWN0aW9uR2VzdHVyZTsKKyAgICBp
ZiAoIWltbWVkaWF0ZUFjdGlvbkdlc3R1cmUuZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBJbW1l
ZGlhdGVBY3Rpb25IaXRUZXN0UmVzdWx0IHsgbmlsLCBfV0tJbW1lZGlhdGVBY3Rpb25Ob25lIH07
CisKKyAgICBfaGFzUmV0dXJuZWRJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gZmFsc2U7CisK
KyAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVMb2NhdGlvbkluVmlldyB7CisgICAg
ICAgIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuY2xhc3MsCisgICAgICAgIEBz
ZWxlY3Rvcihsb2NhdGlvbkluVmlldzopLAorICAgICAgICByZWludGVycHJldF9jYXN0PElNUD4o
c3dpenpsZWRJbW1lZGlhdGVBY3Rpb25Mb2NhdGlvbkluVmlldyksCisgICAgfTsKKworICAgIGdT
d2l6emxlZEltbWVkaWF0ZUFjdGlvbkxvY2F0aW9uID0gbG9jYXRpb247CisgICAgW2ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmUuZGVsZWdhdGUgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxQcmVw
YXJlOmltbWVkaWF0ZUFjdGlvbkdlc3R1cmVdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZfaGFzUmV0dXJuZWRJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyKTsKKworICAgIF9oYXNS
ZXR1cm5lZEltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgPSBmYWxzZTsKKyAgICByZXR1cm4geyBz
dGQ6OmV4Y2hhbmdlKF9oaXRUZXN0UmVzdWx0LCBuaWwpLCBzdGQ6OmV4Y2hhbmdlKF9hY3Rpb25U
eXBlLCBfV0tJbW1lZGlhdGVBY3Rpb25Ob25lKSB9OworfQorCitAZW5kCisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworVEVTVChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1tZWRpYXRlQWN0
aW9uT3ZlclRleHQpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlld0Zv
clRlc3RpbmdJbW1lZGlhdGVBY3Rpb25zIGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgNTAwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGRpdiBzdHlsZT0nZm9udC1zaXplOiAzMnB4Oyc+Rm9vYmFyPC9kaXY+Il07CisKKyAg
ICBhdXRvIFtoaXRUZXN0UmVzdWx0LCBhY3Rpb25UeXBlXSA9IFt3ZWJWaWV3IHNpbXVsYXRlSW1t
ZWRpYXRlQWN0aW9uOk5TTWFrZVBvaW50KDE2LCAxNildOworICAgIEVYUEVDVF9OT1RfTlVMTChb
d2ViVmlldyBpbW1lZGlhdGVBY3Rpb25HZXN0dXJlXS5hbmltYXRpb25Db250cm9sbGVyKTsKKyAg
ICBFWFBFQ1RfRVEoYWN0aW9uVHlwZSwgX1dLSW1tZWRpYXRlQWN0aW9uTG9va3VwVGV4dCk7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKFtoaXRUZXN0UmVzdWx0IGxvb2t1cFRleHRdLCAiRm9vYmFyIik7
Cit9CisKK1RFU1QoSW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJCb2R5
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXdGb3JUZXN0aW5nSW1t
ZWRpYXRlQWN0aW9ucyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDUwMCwg
NTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxkaXYg
c3R5bGU9J2ZvbnQtc2l6ZTogMzJweDsnPkZvb2JhcjwvZGl2PiJdOworCisgICAgYXV0byBbaGl0
VGVzdFJlc3VsdCwgYWN0aW9uVHlwZV0gPSBbd2ViVmlldyBzaW11bGF0ZUltbWVkaWF0ZUFjdGlv
bjpOU01ha2VQb2ludCg0OTAsIDQ5MCldOworICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVdLmFuaW1hdGlvbkNvbnRyb2xsZXIpOworICAgIEVYUEVDVF9FUShh
Y3Rpb25UeXBlLCBfV0tJbW1lZGlhdGVBY3Rpb25Ob25lKTsKKyAgICBFWFBFQ1RfRVEoW2hpdFRl
c3RSZXN1bHQgbG9va3VwVGV4dF0ubGVuZ3RoLCAwVSk7Cit9CisKKyNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKworVEVTVChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1tZWRpYXRlQWN0aW9u
T3ZlckltYWdlT3ZlcmxheSkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXdGb3JUZXN0aW5nSW1t
ZWRpYXRlQWN0aW9ucyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDUwMCwg
NTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUtaW1hZ2Utb3ZlcmxheSJdOworCisgICAg
YXV0byBbaGl0VGVzdFJlc3VsdCwgYWN0aW9uVHlwZV0gPSBbd2ViVmlldyBzaW11bGF0ZUltbWVk
aWF0ZUFjdGlvbjpOU01ha2VQb2ludCg1MCwgNTApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoW3dl
YlZpZXcgaW1tZWRpYXRlQWN0aW9uR2VzdHVyZV0uYW5pbWF0aW9uQ29udHJvbGxlcik7CisgICAg
RVhQRUNUX0VRKGFjdGlvblR5cGUsIF9XS0ltbWVkaWF0ZUFjdGlvbkxvb2t1cFRleHQpOworICAg
IEVYUEVDVF9XS19TVFJFUShbaGl0VGVzdFJlc3VsdCBsb29rdXBUZXh0XSwgImZvb2JhciIpOwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKK30gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>
<flag name="commit-queue"
          id="449092"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428223</attachid>
            <date>2021-05-10 17:08:23 -0700</date>
            <delta_ts>2021-05-10 18:17:27 -0700</delta_ts>
            <desc>Fix non-internal macOS builds</desc>
            <filename>bug-225600-20210510170822.patch</filename>
            <type>text/plain</type>
            <size>26479</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxOTVkZmU2Yzg4NzM3
MzljY2M1ZDk4OTAwNTIyMTYzNjExMmU4Yy4uY2MxZGQ5NDg3MzVlYjQ4ZTZlNWU4MzU0YmRjNzRm
YzQ4NzlkY2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWxs
b3cgaW1tZWRpYXRlIGFjdGlvbiBnZXN0dXJlcyB0byBiZWdpbiB3aGVuIGZvcmNlIGNsaWNraW5n
IHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU2MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3Nzky
MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFs
bG93IGltbWVkaWF0ZSBhY3Rpb24gaGl0LXRlc3RpbmcgdG8gZGVzY2VuZCBpbnRvIGltYWdlIG92
ZXJsYXkgY29udGVudC4gQ3VycmVudGx5LCB0aGlzIHVzZXMgdGhlCisgICAgICAgIGBEaXNhbGxv
d3NVc2VyQWdlbnRTaGFkb3dDb250ZW50YCBoaXQtdGVzdGluZyBvcHRpb24sIGNhdXNpbmcgdXMg
dG8gaWdub3JlIGltYWdlIG92ZXJsYXlzICh3aGljaCBleGlzdCBpbnNpZGUKKyAgICAgICAgdGhl
IFVBIHNoYWRvdyByb290KS4gVG8gZml4IHRoaXMsIHdlIGludHJvZHVjZSBhIGBEaXNhbGxvd3NV
c2VyQWdlbnRTaGFkb3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5c2Agb3B0aW9uCisgICAg
ICAgIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBleGlzdGluZyBgRGlzYWxsb3dzVXNlckFnZW50U2hh
ZG93Q29udGVudGAgb3B0aW9uLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB3ZSBhbGxvdyBoaXQt
CisgICAgICAgIHRlc3RpbmcgdG8gcGllcmNlIHRoZSBVQSBzaGFkb3cgcm9vdCB0byBmaW5kIG5v
ZGVzIGluc2lkZSBpbWFnZSBvdmVybGF5cy4KKworICAgICAgICBUZXN0czogIEltbWVkaWF0ZUFj
dGlvblRlc3RzLkltbWVkaWF0ZUFjdGlvbk92ZXJUZXh0CisgICAgICAgICAgICAgICAgSW1tZWRp
YXRlQWN0aW9uVGVzdHMuSW1tZWRpYXRlQWN0aW9uT3ZlckJvZHkKKyAgICAgICAgICAgICAgICBJ
bW1lZGlhdGVBY3Rpb25UZXN0cy5JbW1lZGlhdGVBY3Rpb25PdmVySW1hZ2VPdmVybGF5CisKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlcXVlc3QuaDoKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBoaXQt
dGVzdCBvcHRpb24sIHdoaWNoIGFsbG93cyBoaXQtdGVzdGluZyB0byBkZXNjZW5kIGludG8gaW1h
Z2Ugb3ZlcmxheXMgKGFuZCBpcworICAgICAgICBpbnRlbmRlZCB0byBiZSBtdXR1YWxseSBleGNs
dXNpdmUgd2l0aCB0aGUgZXhpc3RpbmcgYERpc2FsbG93c1VzZXJBZ2VudFNoYWRvd0NvbnRlbnRg
IG9wdGlvbikuIFNwZWNpZnlpbmcgYm90aAorICAgICAgICBvcHRpb25zIHdpbGwgbGVhZCB0byBh
biBhc3NlcnRpb24gb24gZGVidWcgYnVpbGRzLCBhbmQgYERpc2FsbG93c1VzZXJBZ2VudFNoYWRv
d0NvbnRlbnRgIHRha2VzIHByZWNlZGVuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisK
KyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpkaXNhbGxvd3NVc2VyQWdlbnRTaGFk
b3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cyBjb25zdCk6CisgICAgICAgICogcmVuZGVy
aW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
YWRkTm9kZVRvTGlzdEJhc2VkVGVzdFJlc3VsdENvbW1vbik6CisKIDIwMjEtMDUtMTAgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXZWJDb3Jl
OjpIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGUgYW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKaW5kZXggZDdjYTQ2NGE2M2FmY2RmZmIxYWE5Y2Q5NzAwMWExODkyZDhkMjY3OC4uMzQ0ODJj
YmUwNmI5ZmQ5NmU4NzI0YjMyYmZjZGJkNThiYjlmNTY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjEtMDUtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBbGxvdyBpbW1lZGlhdGUgYWN0aW9uIGdlc3R1
cmVzIHRvIGJlZ2luIHdoZW4gZm9yY2UgY2xpY2tpbmcgdGV4dCBpbnNpZGUgaW1hZ2Ugb3Zlcmxh
eXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTYw
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzc3OTIzNjU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg6CisKIDIwMjEtMDQtMjkgIEplYW4tWXZlcyBBdmVu
YXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXJXYXNGbHVzaGVkQXV0b21hdGljYWxseU5vdGlmaWNhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAy
N2RjMzkzZjEyMGY0YmUzM2RiNTQ5YjlhZDc2MmYxNmU1YWExOTUwLi4yOTcwNTMyMjVjZjhlYTNk
MjUyYTdkNGFkOWMyOTAxYTMzZmE4NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFttYWNPU10gQWxsb3cgaW1tZWRpYXRlIGFjdGlvbiBnZXN0dXJlcyB0byBiZWdpbiB3aGVuIGZv
cmNlIGNsaWNraW5nIHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU2MDAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc3NzkyMzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkb3B0IHRoZSBuZXcgaGl0LXRlc3Qgb3B0aW9uLiBTZWUgV2ViQ29yZS9DaGFu
Z2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybUltbWVk
aWF0ZUFjdGlvbkhpdFRlc3RBdExvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
bG9va3VwVGV4dEF0TG9jYXRpb24pOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVl
c3Q6OlJlcXVlc3RUeXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJl
UmVjb2duaXplclNQSS5oCmluZGV4IDk5YjJlZjViYjY2YmViNzU1YzYwMGNmNmU0MzgzMDFiNjI3
MjRmMzguLmRlMzYxZmY0NWE4MjljZTJiNTc0YWM4MmYxNTVmZWYwNzk3Njg2MWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaApAQCAtNTYsNiArNTYsNyBAQAog
CiBAaW50ZXJmYWNlIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgOiBOU0dlc3R1
cmVSZWNvZ25pemVyCiAKK0Bwcm9wZXJ0eSAod2VhaykgaWQgPE5TSW1tZWRpYXRlQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CiBAcHJvcGVydHkgKHN0cm9uZykgaWQ8
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBhbmltYXRpb25Db250cm9sbGVy
OwogQHByb3BlcnR5IChyZWFkb25seSkgQ0dGbG9hdCBhbmltYXRpb25Qcm9ncmVzczsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDY5NjA3NDdhMGI1YTc5ZWEyYzY1OThi
MWNhMmZiNzljMzQyNmNlOGYuLjk5NDNmNGIzMzdkZWZkZTM1MGEwNjM5YzRjY2UwYTZjYmQ0Nzgz
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTExOTAsNyArMTE5MCw5
IEBAIEhpdFRlc3RSZXN1bHQgRXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25z
dCBMYXlvdXRQb2ludCYgcG9pbnQsIE9wdGlvCiAgICAgaWYgKCFyZXF1ZXN0LnJlYWRPbmx5KCkp
CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1
ZXN0LCByZXN1bHQudGFyZ2V0RWxlbWVudCgpKTsKIAotICAgIGlmIChyZXF1ZXN0LmRpc2FsbG93
c1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQoKSkKKyAgICBhdXRvIGlubmVyTm9kZSA9IG1ha2VSZWZQ
dHIocmVzdWx0LmlubmVyTm9kZSgpKTsKKyAgICBpZiAocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdl
bnRTaGFkb3dDb250ZW50KCkKKyAgICAgICAgfHwgKHJlcXVlc3QuZGlzYWxsb3dzVXNlckFnZW50
U2hhZG93Q29udGVudEV4Y2VwdEZvckltYWdlT3ZlcmxheXMoKSAmJiBpbm5lck5vZGUgJiYgIUhU
TUxFbGVtZW50Ojppc0luc2lkZUltYWdlT3ZlcmxheSgqaW5uZXJOb2RlKSkpCiAgICAgICAgIHJl
c3VsdC5zZXRUb05vblVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAKICAgICByZXR1cm4gcmVz
dWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaAppbmRleCA1YTE1
YzNhMWE3OWFiMzZkODk4NTExNTI4MWMzNGJlMDQ5NzE1MDllLi5mNzZhZjY5MjY0M2Q1ZmRkZjVi
Njc3ZWM1MjVkN2FjOTYxMzg0Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlcXVlc3QuaApAQCAtNDgsMTEgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgQ29sbGVjdE11
bHRpcGxlRWxlbWVudHMgPSAxIDw8IDE0LAogICAgICAgICAvLyBXaGVuIHVzaW5nIGxpc3QtYmFz
ZWQgdGVzdGluZywgY29udGludWUgaGl0IHRlc3RpbmcgZXZlbiBhZnRlciBhIGhpdCBoYXMgYmVl
biBmb3VuZC4KICAgICAgICAgSW5jbHVkZUFsbEVsZW1lbnRzVW5kZXJQb2ludCA9IDEgPDwgMTUs
CisgICAgICAgIERpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudEV4Y2VwdEZvckltYWdlT3Zl
cmxheXMgPSAxIDw8IDE2LAogICAgIH07CiAKICAgICBIaXRUZXN0UmVxdWVzdChPcHRpb25TZXQ8
VHlwZT4gdHlwZSA9IHsgVHlwZTo6UmVhZE9ubHksIFR5cGU6OkFjdGl2ZSwgVHlwZTo6RGlzYWxs
b3dVc2VyQWdlbnRTaGFkb3dDb250ZW50IH0pCiAgICAgICAgIDogbV90eXBlIHsgdHlwZSB9CiAg
ICAgeworICAgICAgICBBU1NFUlQoIXR5cGUuY29udGFpbnNBbGwoeyBUeXBlOjpEaXNhbGxvd1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzLCBUeXBlOjpEaXNhbGxv
d1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgfSkpOwogICAgICAgICBBU1NFUlRfSU1QTElFUyh0eXBl
LmNvbnRhaW5zKFR5cGU6OkluY2x1ZGVBbGxFbGVtZW50c1VuZGVyUG9pbnQpLCB0eXBlLmNvbnRh
aW5zKFR5cGU6OkNvbGxlY3RNdWx0aXBsZUVsZW1lbnRzKSk7CiAgICAgfQogCkBAIC02Niw2ICs2
OCw3IEBAIHB1YmxpYzoKICAgICBib29sIHRvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUuY29udGFpbnMoVHlwZTo6VG91Y2hFdmVudCk7IH0KICAgICBib29sIG1vdXNlRXZlbnQoKSBj
b25zdCB7IHJldHVybiAhdG91Y2hFdmVudCgpOyB9CiAgICAgYm9vbCBkaXNhbGxvd3NVc2VyQWdl
bnRTaGFkb3dDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlLmNvbnRhaW5zKFR5cGU6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7IH0KKyAgICBib29sIGRpc2FsbG93c1VzZXJB
Z2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlLmNvbnRhaW5zKFR5cGU6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudEV4Y2Vw
dEZvckltYWdlT3ZlcmxheXMpOyB9CiAgICAgYm9vbCBhbGxvd3NGcmFtZVNjcm9sbGJhcnMoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUuY29udGFpbnMoVHlwZTo6QWxsb3dGcmFtZVNjcm9sbGJhcnMp
OyB9CiAgICAgYm9vbCBhbGxvd3NDaGlsZEZyYW1lQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZS5jb250YWlucyhUeXBlOjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KTsgfQogICAgIGJvb2wg
YWxsb3dzVmlzaWJsZUNoaWxkRnJhbWVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlLmNv
bnRhaW5zKFR5cGU6OkFsbG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50T25seSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCAwMzA3ZDkyMGYwNGVh
M2E5YTZlYjQzYzgwOGZjMGJiOWI2N2Q1ZDg2Li45MGQwNzVmODlkMDUwYzAzNTQ3YjViZTM2YTk2
OTk0NjNhMTMxYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
Y3BwCkBAIC02NTYsNyArNjU2LDggQEAgaW5saW5lIEhpdFRlc3RQcm9ncmVzcyBIaXRUZXN0UmVz
dWx0OjphZGROb2RlVG9MaXN0QmFzZWRUZXN0UmVzdWx0Q29tbW9uKE5vZGUqIG4KICAgICBpZiAo
IW5vZGUpCiAgICAgICAgIHJldHVybiBIaXRUZXN0UHJvZ3Jlc3M6OkNvbnRpbnVlOwogCi0gICAg
aWYgKHJlcXVlc3QuZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudCgpICYmIG5vZGUtPmlz
SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpCisgICAgaWYgKChyZXF1ZXN0LmRpc2FsbG93c1VzZXJB
Z2VudFNoYWRvd0NvbnRlbnQoKSAmJiBub2RlLT5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKQor
ICAgICAgICB8fCAocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250ZW50RXhjZXB0
Rm9ySW1hZ2VPdmVybGF5cygpICYmICFIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFnZU92ZXJsYXko
Km5vZGUpICYmIG5vZGUtPmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpKQogICAgICAgICBub2Rl
ID0gbm9kZS0+ZG9jdW1lbnQoKS5hbmNlc3Rvck5vZGVJblRoaXNTY29wZShub2RlKTsKIAogICAg
IG11dGFibGVMaXN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKCpub2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggYTQyZGQ5
MWNkZmI4YmRmMGIxN2UyZGNjY2EwNGZlODAxOWQwNzQ4ZS4uMGFjOGI4NzYwNzNjOGNhMzkxY2Y2
NGNhZDgyNzAyZTE3Njk2ZjVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTg1OCw5ICs4NTgsMTMgQEAgdm9pZCBXZWJQ
YWdlOjpwZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdEF0TG9jYXRpb24oV2ViQ29yZTo6Rmxv
YXRQb2ludCBsb2NhdGkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEludFBvaW50IGxv
Y2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMgPSBtYWluRnJhbWUudmlldygpLT5yb290Vmlld1Rv
Q29udGVudHMocm91bmRlZEludFBvaW50KGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMpKTsKLSAg
ICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpUeXBlPiBoaXRUeXBlIHsgSGl0
VGVzdFJlcXVlc3Q6OlR5cGU6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6QWN0aXZl
LCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50LCBI
aXRUZXN0UmVxdWVzdDo6VHlwZTo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB9OwotICAgIEhpdFRl
c3RSZXN1bHQgaGl0VGVzdFJlc3VsdCA9IG1haW5GcmFtZS5ldmVudEhhbmRsZXIoKS5oaXRUZXN0
UmVzdWx0QXRQb2ludChsb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzLCBoaXRUeXBlKTsKKyAg
ICBhdXRvIGxvY2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMgPSBtYWluRnJhbWUudmlldygpLT5y
b290Vmlld1RvQ29udGVudHMocm91bmRlZEludFBvaW50KGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0
ZXMpKTsKKyAgICBhdXRvIGhpdFRlc3RSZXN1bHQgPSBtYWluRnJhbWUuZXZlbnRIYW5kbGVyKCku
aGl0VGVzdFJlc3VsdEF0UG9pbnQobG9jYXRpb25JbkNvbnRlbnRDb29yZGluYXRlcywgeworICAg
ICAgICBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6UmVhZE9ubHksCisgICAgICAgIEhpdFRlc3RSZXF1
ZXN0OjpUeXBlOjpBY3RpdmUsCisgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpEaXNhbGxv
d1VzZXJBZ2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzLAorICAgICAgICBI
aXRUZXN0UmVxdWVzdDo6VHlwZTo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCwKKyAgICB9KTsKIAog
ICAgIGJvb2wgaW1tZWRpYXRlQWN0aW9uSGl0VGVzdFByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwog
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBoaXRUZXN0UmVzdWx0LnRhcmdldEVsZW1lbnQoKTsKQEAg
LTk1OCwxMCArOTYyLDEyIEBAIE9wdGlvbmFsPHN0ZDo6dHVwbGU8V2ViQ29yZTo6U2ltcGxlUmFu
Z2UsIE5TRGljdGlvbmFyeSAqPj4gV2ViUGFnZTo6bG9va3VwVGV4dEF0CiAgICAgaWYgKCFtYWlu
RnJhbWUudmlldygpIHx8ICFtYWluRnJhbWUudmlldygpLT5yZW5kZXJWaWV3KCkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHBvaW50ID0gcm91bmRlZEludFBvaW50
KGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMpOwotICAgIGNvbnN0ZXhwciBPcHRpb25TZXQ8SGl0
VGVzdFJlcXVlc3Q6OlR5cGU+IGhpdFR5cGUgeyBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6UmVhZE9u
bHksIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBY3RpdmUsIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpE
aXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQsIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBbGxv
d0NoaWxkRnJhbWVDb250ZW50IH07Ci0gICAgYXV0byByZXN1bHQgPSBtYWluRnJhbWUuZXZlbnRI
YW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCkt
PndpbmRvd1RvQ29udGVudHMocG9pbnQpLCBoaXRUeXBlKTsKLSAgICByZXR1cm4gRGljdGlvbmFy
eUxvb2t1cDo6cmFuZ2VBdEhpdFRlc3RSZXN1bHQocmVzdWx0KTsKKyAgICByZXR1cm4gRGljdGlv
bmFyeUxvb2t1cDo6cmFuZ2VBdEhpdFRlc3RSZXN1bHQobWFpbkZyYW1lLmV2ZW50SGFuZGxlcigp
LmhpdFRlc3RSZXN1bHRBdFBvaW50KG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSksIHsK
KyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OlJlYWRPbmx5LAorICAgICAgICBIaXRUZXN0
UmVxdWVzdDo6VHlwZTo6QWN0aXZlLAorICAgICAgICBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6RGlz
YWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cywKKyAgICAg
ICAgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQsCisgICAgfSkp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmltbWVkaWF0ZUFjdGlvbkRpZFVwZGF0ZSgpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTNiZTVlY2RiMTJk
Y2JkYzM3MzlmMjdjZjkzODM2MDA2OTgxOGI2NS4uMWFiNTI3ZTMwNTIxY2VhMTYxYjhiN2FmNjY2
ZDUyNjM5ZGYxMDJkMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWxsb3cgaW1tZWRpYXRlIGFj
dGlvbiBnZXN0dXJlcyB0byBiZWdpbiB3aGVuIGZvcmNlIGNsaWNraW5nIHRleHQgaW5zaWRlIGlt
YWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjU2MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3NzkyMzY1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgQVBJIHRlc3Rz
IHRvIGV4ZXJjaXNlIHRoZXNlIGNoYW5nZXMgYnkgZ3JhYmJpbmcgdGhlIGltbWVkaWF0ZSBhY3Rp
b24gYE5TR2VzdHVyZVJlY29nbml6ZXJgIGZyb20KKyAgICAgICAgYFdLV2ViVmlld2AgYW5kIGNh
bGxpbmcgaW50byBpdHMgZGVsZWdhdGUuIFRoaXMgcGF0Y2ggYWRkcyB0d28gYmFzaWMgaW1tZWRp
YXRlIGFjdGlvbiB0ZXN0cyBieSBzaW11bGF0aW5nIHRoZQorICAgICAgICBpbW1lZGlhdGUgYWN0
aW9uIG92ZXIgdGV4dCBhbmQgdGhlIGJvZHkgZWxlbWVudCwgYW5kIGluY2x1ZGVzIGEgdGhpcmQg
dGVzdCB0aGF0IGluc3RhbGxzIGFuIGltYWdlIG92ZXJsYXkgdXNpbmcKKyAgICAgICAgYW4gaW5q
ZWN0ZWQgYGludGVybmFsc2Agb2JqZWN0LCBhbmQgdmVyaWZpZXMgdGhhdCB0aGUgaW1tZWRpYXRl
IGFjdGlvbiBpbiBhbiBpbWFnZSBvdmVybGF5IG1hdGNoZXMgdGhhdCBvZgorICAgICAgICByZWd1
bGFyIHRleHQgb24gdGhlIHBhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbTogQWRkZWQuCisgICAgICAgIChzd2l6
emxlZEltbWVkaWF0ZUFjdGlvbkxvY2F0aW9uSW5WaWV3KToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlvbnMgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JIaXRUZXN0UmVzdWx0OndpdGhUeXBlOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXdGb3JUZXN0aW5nSW1tZWRpYXRlQWN0aW9ucyBpbW1lZGlhdGVBY3Rpb25HZXN0dXJl
XSk6CisgICAgICAgICgtW1dLV2ViVmlld0ZvclRlc3RpbmdJbW1lZGlhdGVBY3Rpb25zIHNpbXVs
YXRlSW1tZWRpYXRlQWN0aW9uOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMjEtMDUtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
aU9TXSBQYWdlcyB3aXRoIHNlcnZpY2Ugd29ya2VycyBkbyBub3Qgc3VzcGVuZCBwcm9tcHRseQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmY2RlYWI0ZjQ5ZDc3OTk3ZDBiMTNkYTgyYWRkY2Nj
MjllNzNjM2IzLi5kYzExN2IyNGQ5MjcyMmZlOTA2YzdlZTRmZTkwYjljN2VjOTA3YzI5IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODY4LDggKzg2OCw4IEBACiAJCTkzRjU2REE3MUU1Rjkx
NzQwMDNFREU4NCAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4M0UwMzMxRDBBNUYyNzAwRkVCQ0YzIC8qIGxpYmlj
dWNvcmUuZHlsaWIgKi87IH07CiAJCTkzRjU2REE5MUU1RjkxOUQwMDNFREU4NCAvKiBXS1dlYlZp
ZXdTbmFwc2hvdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSAqLzsg
fTsKIAkJOTNGN0U4NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovOyB9OwotCQk5NTA5NUYyMDI2MkZG
RkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBT
YW1wbGVkUGFnZVRvcENvbG9yLm1tICovOyB9OwogCQk5M0ZDREIzNDI2MzYzMTU2MDA0NkREN0Qg
LyogU29ydGVkQXJyYXlNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNw
cCAqLzsgfTsKKwkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29s
b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5
NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJ
OTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3
MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAw
NEM4QjczIC8qIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAv
KiBQYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CiAJCTk1QTUyNDk1MjU4MUEx
MEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdL
V2ViVmlld1RoZW1lQ29sb3IubW0gKi87IH07CkBAIC0xMTc5LDYgKzExNzksNyBAQAogCQlGNDQy
ODUxRDIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Mjg1MUMyMTQwREYyOTAwQ0NE
QTIyIC8qIE5TRm9udFBhbmVsVGVzdGluZy5tbSAqLzsgfTsKIAkJRjQ0NTFDNzYxRUI4RkQ4OTAw
MjBDNURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NTFDNzUxRUI4RkQ3
QzAwMjBDNURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CiAJ
CUY0NEE1MzExMjFCODk5MDMwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0QTUzMTAyMUI4
OTc2OTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi87IH07CisJCUY0NEE5
QUY3MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE5QUY2MjY0OUJCREQwMEU3
Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSAqLzsgfTsKIAkJRjQ0Qzc5RkYyMEY5RTg3
MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEM3OUZFMjBGOUU4NzEwMDE0NDc4QyAvKiBQ
YXJzZXJZaWVsZFRva2VuVGVzdHMubW0gKi87IH07CiAJCUY0NEM3QTAwMjBGOUVFQkYwMDE0NDc4
QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllp
ZWxkVG9rZW5QbHVnSW4ubW0gKi87IH07CiAJCUY0NEM3QTA1MjBGQUFFM0MwMDE0NDc4QyAvKiB0
ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0QzdBMDQyMEZBQUUzMjAwMTQ0NzhDIC8qIHRl
eHQtd2l0aC1kZWZlcnJlZC1zY3JpcHQuaHRtbCAqLzsgfTsKQEAgLTI1NjUsOCArMjU2Niw4IEBA
CiAJCTkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1NuYXBzaG90Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2QjE0REM4RTREMDBDODRBOTkg
LyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjdFODZFMTREQzhFNUIw
MEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29s
b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkNEQjMzMjYzNjMxNTYwMDQ2
REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTb3J0ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlG
IC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogUGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9y
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUV4dGVuZGVk
QmFja2dyb3VuZENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUE1MjQ5
NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RoZW1lQ29sb3IubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTk3LDYgKzI5OTgsOCBAQAogCQlGNDRBNTMwRTIx
Qjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAu
Li9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1MzBGMjFCODk3NjkwMERCQjk5QyAvKiBDbGFzc01l
dGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENsYXNzTWV0
aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRo
b2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxMDIxQjg5
NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGgg
PSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE5QUY1MjY0OUJCREQwMEU3Q0IxNiAvKiBJ
bW1lZGlhdGVBY3Rpb25UZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25UZXN0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDRBOUFGNjI2NDlCQkREMDBFN0NC
MTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbW1l
ZGlhdGVBY3Rpb25UZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5
RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDRDNzlGRDIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tl
blRlc3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRDNzlGRTIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2Vy
WWllbGRUb2tlblRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFyc2VyWWllbGRUb2tl
blRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY4MCw2ICs0NjgzLDgg
QEAKIAkJCQk1MUVCMTI1ODI0QzY4NTg5MDAwQ0IwMzAgLyogSElER2FtZXBhZHMubW0gKi8sCiAJ
CQkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1t
ICovLAogCQkJCTlCMjZGQzZCMTU5RDA2MTAwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25O
YW1lZEl0ZW0ubW0gKi8sCisJCQkJRjQ0QTlBRjUyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0
ZUFjdGlvblRlc3RzLmggKi8sCisJCQkJRjQ0QTlBRjYyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVk
aWF0ZUFjdGlvblRlc3RzLm1tICovLAogCQkJCUM1MDdFOEE2MTRDNjU0NUIwMDVENkIzQiAvKiBJ
bnNwZWN0b3JCYXIubW0gKi8sCiAJCQkJNTdGMTBEOTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2
aWdhdGlvbkFjdGlvblRydXN0ZWQubW0gKi8sCiAJCQkJNTE4MjBBNEMyMkY0RUU3NzAwREYwQTAx
IC8qIEphdmFzY3JpcHRVUkxOYXZpZ2F0aW9uLm1tICovLApAQCAtNTQ2Nyw2ICs1NDcyLDcgQEAK
IAkJCQk1MTA0Nzc3ODFEMjk5MjNCMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MTEwRkNGQTFFMDFDREI4MDA2RjhEMEIgLyogSURCSW5kZXhVcGdy
YWRlVG9WMi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQkNCQzgzMjNDQzZGMkEwMENBMjIyMSAv
KiBJREJPYmplY3RTdG9yZUluZm9VcGdyYWRlVG9WMi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0
NEE5QUY3MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTQ5QUVFRjZEMjQwNzM1OUQwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2
YWN5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIElu
ZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQUIwRkY1
NTIyMzMyQzU3MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlv
blRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9u
VGVzdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ0NjJhMDEwYTgzZmRkODlhZTA0MjlmNjg4MjhhMzhhODcy
ZDkwNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0lt
bWVkaWF0ZUFjdGlvblRlc3RzLm1tCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisK
KyNpbXBvcnQgIkluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS0hpdFRlc3RSZXN1bHQuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
bWFjL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIE5TUG9pbnQgZ1N3aXp6bGVkSW1tZWRpYXRlQWN0aW9u
TG9jYXRpb24gPSBOU1plcm9Qb2ludDsKK3N0YXRpYyBOU1BvaW50IHN3aXp6bGVkSW1tZWRpYXRl
QWN0aW9uTG9jYXRpb25JblZpZXcoaWQsIFNFTCwgTlNWaWV3ICopCit7CisgICAgcmV0dXJuIGdT
d2l6emxlZEltbWVkaWF0ZUFjdGlvbkxvY2F0aW9uOworfQorCit1c2luZyBJbW1lZGlhdGVBY3Rp
b25IaXRUZXN0UmVzdWx0ID0gc3RkOjpwYWlyPFJldGFpblB0cjxfV0tIaXRUZXN0UmVzdWx0Piwg
X1dLSW1tZWRpYXRlQWN0aW9uVHlwZT47CisKK0BpbnRlcmZhY2UgV0tXZWJWaWV3Rm9yVGVzdGlu
Z0ltbWVkaWF0ZUFjdGlvbnMgOiBUZXN0V0tXZWJWaWV3CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqaW1tZWRpYXRl
QWN0aW9uR2VzdHVyZTsKKworLSAoSW1tZWRpYXRlQWN0aW9uSGl0VGVzdFJlc3VsdClzaW11bGF0
ZUltbWVkaWF0ZUFjdGlvbjooTlNQb2ludClsb2NhdGlvbjsKKworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlvbnMgeworICAgIGJvb2wgX2hh
c1JldHVybmVkSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8X1dLSGl0
VGVzdFJlc3VsdD4gX2hpdFRlc3RSZXN1bHQ7CisgICAgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSBf
YWN0aW9uVHlwZTsKK30KKworLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JIaXRUZXN0UmVzdWx0OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRo
VHlwZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihpZCA8TlNTZWN1cmVD
b2Rpbmc+KXVzZXJEYXRhCit7CisgICAgX2hhc1JldHVybmVkSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciA9IHRydWU7CisgICAgX2hpdFRlc3RSZXN1bHQgPSBoaXRUZXN0UmVzdWx0OworICAgIF9h
Y3Rpb25UeXBlID0gdHlwZTsKKyAgICByZXR1cm4gW3N1cGVyIF9pbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5
cGUgdXNlckRhdGE6dXNlckRhdGFdOworfQorCistIChOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uR2VzdHVyZQoreworICAgIGZvciAoTlNHZXN0dXJl
UmVjb2duaXplciAqZ2VzdHVyZSBpbiBbc2VsZiBnZXN0dXJlUmVjb2duaXplcnNdKSB7CisgICAg
ICAgIGlmIChbZ2VzdHVyZSBpc0tpbmRPZkNsYXNzOk5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIuY2xhc3NdKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKj4oZ2VzdHVyZSk7CisgICAgfQorICAgIHJldHVy
biBuaWw7Cit9CisKKy0gKEltbWVkaWF0ZUFjdGlvbkhpdFRlc3RSZXN1bHQpc2ltdWxhdGVJbW1l
ZGlhdGVBY3Rpb246KE5TUG9pbnQpbG9jYXRpb24KK3sKKyAgICBhdXRvIGltbWVkaWF0ZUFjdGlv
bkdlc3R1cmUgPSBzZWxmLmltbWVkaWF0ZUFjdGlvbkdlc3R1cmU7CisgICAgaWYgKCFpbW1lZGlh
dGVBY3Rpb25HZXN0dXJlLmRlbGVnYXRlKQorICAgICAgICByZXR1cm4gSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdFJlc3VsdCB7IG5pbCwgX1dLSW1tZWRpYXRlQWN0aW9uTm9uZSB9OworCisgICAgX2hh
c1JldHVybmVkSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA9IGZhbHNlOworCisgICAgSW5zdGFu
Y2VNZXRob2RTd2l6emxlciBzd2l6emxlTG9jYXRpb25JblZpZXcgeworICAgICAgICBOU0ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmNsYXNzLAorICAgICAgICBAc2VsZWN0b3IobG9j
YXRpb25JblZpZXc6KSwKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVkSW1t
ZWRpYXRlQWN0aW9uTG9jYXRpb25JblZpZXcpLAorICAgIH07CisKKyAgICBnU3dpenpsZWRJbW1l
ZGlhdGVBY3Rpb25Mb2NhdGlvbiA9IGxvY2F0aW9uOworICAgIFtpbW1lZGlhdGVBY3Rpb25HZXN0
dXJlLmRlbGVnYXRlIGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsUHJlcGFyZTppbW1lZGlh
dGVBY3Rpb25HZXN0dXJlXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2hhc1Jl
dHVybmVkSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcik7CisKKyAgICBfaGFzUmV0dXJuZWRJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyID0gZmFsc2U7CisgICAgcmV0dXJuIHsgc3RkOjpleGNoYW5n
ZShfaGl0VGVzdFJlc3VsdCwgbmlsKSwgc3RkOjpleGNoYW5nZShfYWN0aW9uVHlwZSwgX1dLSW1t
ZWRpYXRlQWN0aW9uTm9uZSkgfTsKK30KKworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK1RFU1QoSW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJUZXh0
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXdGb3JUZXN0aW5nSW1t
ZWRpYXRlQWN0aW9ucyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDUwMCwg
NTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxkaXYg
c3R5bGU9J2ZvbnQtc2l6ZTogMzJweDsnPkZvb2JhcjwvZGl2PiJdOworCisgICAgYXV0byBbaGl0
VGVzdFJlc3VsdCwgYWN0aW9uVHlwZV0gPSBbd2ViVmlldyBzaW11bGF0ZUltbWVkaWF0ZUFjdGlv
bjpOU01ha2VQb2ludCgxNiwgMTYpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoW3dlYlZpZXcgaW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZV0uYW5pbWF0aW9uQ29udHJvbGxlcik7CisgICAgRVhQRUNUX0VR
KGFjdGlvblR5cGUsIF9XS0ltbWVkaWF0ZUFjdGlvbkxvb2t1cFRleHQpOworICAgIEVYUEVDVF9X
S19TVFJFUShbaGl0VGVzdFJlc3VsdCBsb29rdXBUZXh0XSwgIkZvb2JhciIpOworfQorCitURVNU
KEltbWVkaWF0ZUFjdGlvblRlc3RzLCBJbW1lZGlhdGVBY3Rpb25PdmVyQm9keSkKK3sKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlv
bnMgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA1MDAsIDUwMCldKTsKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8ZGl2IHN0eWxlPSdmb250
LXNpemU6IDMycHg7Jz5Gb29iYXI8L2Rpdj4iXTsKKworICAgIGF1dG8gW2hpdFRlc3RSZXN1bHQs
IGFjdGlvblR5cGVdID0gW3dlYlZpZXcgc2ltdWxhdGVJbW1lZGlhdGVBY3Rpb246TlNNYWtlUG9p
bnQoNDkwLCA0OTApXTsKKyAgICBFWFBFQ1RfTlVMTChbd2ViVmlldyBpbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlXS5hbmltYXRpb25Db250cm9sbGVyKTsKKyAgICBFWFBFQ1RfRVEoYWN0aW9uVHlwZSwg
X1dLSW1tZWRpYXRlQWN0aW9uTm9uZSk7CisgICAgRVhQRUNUX0VRKFtoaXRUZXN0UmVzdWx0IGxv
b2t1cFRleHRdLmxlbmd0aCwgMFUpOworfQorCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisKK1RFU1QoSW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJJbWFnZU92
ZXJsYXkpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlv
bnMgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA1MDAsIDUwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRU
ZXN0UGFnZU5hbWVkOkAic2ltcGxlLWltYWdlLW92ZXJsYXkiXTsKKworICAgIGF1dG8gW2hpdFRl
c3RSZXN1bHQsIGFjdGlvblR5cGVdID0gW3dlYlZpZXcgc2ltdWxhdGVJbW1lZGlhdGVBY3Rpb246
TlNNYWtlUG9pbnQoNTAsIDUwKV07CisgICAgRVhQRUNUX05PVF9OVUxMKFt3ZWJWaWV3IGltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVdLmFuaW1hdGlvbkNvbnRyb2xsZXIpOworICAgIEVYUEVDVF9FUShh
Y3Rpb25UeXBlLCBfV0tJbW1lZGlhdGVBY3Rpb25Mb29rdXBUZXh0KTsKKyAgICBFWFBFQ1RfV0tf
U1RSRVEoW2hpdFRlc3RSZXN1bHQgbG9va3VwVGV4dF0sICJmb29iYXIiKTsKK30KKworI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCg==
</data>
<flag name="review"
          id="449099"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428240</attachid>
            <date>2021-05-10 20:08:04 -0700</date>
            <delta_ts>2021-05-10 21:31:25 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-225600-20210510200803.patch</filename>
            <type>text/plain</type>
            <size>27208</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxOTVkZmU2Yzg4NzM3
MzljY2M1ZDk4OTAwNTIyMTYzNjExMmU4Yy4uMjNhNDYyYjZkMzUxOWMyMWZhOGJhMTAwYmQ5Mzcy
M2ZlNWE3NTE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWxs
b3cgaW1tZWRpYXRlIGFjdGlvbiBnZXN0dXJlcyB0byBiZWdpbiB3aGVuIGZvcmNlIGNsaWNraW5n
IHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU2MDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3Nzky
MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWxsb3cg
aW1tZWRpYXRlIGFjdGlvbiBoaXQtdGVzdGluZyB0byBkZXNjZW5kIGludG8gaW1hZ2Ugb3Zlcmxh
eSBjb250ZW50LiBDdXJyZW50bHksIHRoaXMgdXNlcyB0aGUKKyAgICAgICAgYERpc2FsbG93c1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnRgIGhpdC10ZXN0aW5nIG9wdGlvbiwgY2F1c2luZyB1cyB0byBp
Z25vcmUgaW1hZ2Ugb3ZlcmxheXMgKHdoaWNoIGV4aXN0IGluc2lkZQorICAgICAgICB0aGUgVUEg
c2hhZG93IHJvb3QpLiBUbyBmaXggdGhpcywgd2UgaW50cm9kdWNlIGEgYERpc2FsbG93c1VzZXJB
Z2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzYCBvcHRpb24KKyAgICAgICAg
dGhhdCBiZWhhdmVzIGxpa2UgdGhlIGV4aXN0aW5nIGBEaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dD
b250ZW50YCBvcHRpb24sIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IHdlIGFsbG93IGhpdC0KKyAg
ICAgICAgdGVzdGluZyB0byBwaWVyY2UgdGhlIFVBIHNoYWRvdyByb290IHRvIGZpbmQgbm9kZXMg
aW5zaWRlIGltYWdlIG92ZXJsYXlzLgorCisgICAgICAgIFRlc3RzOiAgSW1tZWRpYXRlQWN0aW9u
VGVzdHMuSW1tZWRpYXRlQWN0aW9uT3ZlclRleHQKKyAgICAgICAgICAgICAgICBJbW1lZGlhdGVB
Y3Rpb25UZXN0cy5JbW1lZGlhdGVBY3Rpb25PdmVyQm9keQorICAgICAgICAgICAgICAgIEltbWVk
aWF0ZUFjdGlvblRlc3RzLkltbWVkaWF0ZUFjdGlvbk92ZXJJbWFnZU92ZXJsYXkKKworICAgICAg
ICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRU
ZXN0UmVxdWVzdC5oOgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IGhpdC10ZXN0
IG9wdGlvbiwgd2hpY2ggYWxsb3dzIGhpdC10ZXN0aW5nIHRvIGRlc2NlbmQgaW50byBpbWFnZSBv
dmVybGF5cyAoYW5kIGlzCisgICAgICAgIGludGVuZGVkIHRvIGJlIG11dHVhbGx5IGV4Y2x1c2l2
ZSB3aXRoIHRoZSBleGlzdGluZyBgRGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudGAgb3B0
aW9uKS4gU3BlY2lmeWluZyBib3RoCisgICAgICAgIG9wdGlvbnMgd2lsbCBsZWFkIHRvIGFuIGFz
c2VydGlvbiBvbiBkZWJ1ZyBidWlsZHMsIGFuZCBgRGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29u
dGVudGAgdGFrZXMgcHJlY2VkZW5jZSBvbgorICAgICAgICByZWxlYXNlIGJ1aWxkcy4KKworICAg
ICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OmRpc2FsbG93c1VzZXJBZ2VudFNoYWRvd0Nv
bnRlbnRFeGNlcHRGb3JJbWFnZU92ZXJsYXlzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjphZGRO
b2RlVG9MaXN0QmFzZWRUZXN0UmVzdWx0Q29tbW9uKToKKwogMjAyMS0wNS0xMCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFdlYkNvcmU6Okhp
dFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZSBhbiBlbnVtIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpp
bmRleCBkN2NhNDY0YTYzYWZjZGZmYjFhYTljZDk3MDAxYTE4OTJkOGQyNjc4Li4xZDY0MzQ1YTNh
ZTJjNzU0MTRiYWRmZDhjZjhiMmYwMGVjYmRlOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0wNS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbbWFjT1NdIEFsbG93IGltbWVkaWF0ZSBhY3Rpb24gZ2VzdHVyZXMg
dG8gYmVnaW4gd2hlbiBmb3JjZSBjbGlja2luZyB0ZXh0IGluc2lkZSBpbWFnZSBvdmVybGF5cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NjAwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83Nzc5MjM2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBU
aW0gSG9ydG9uLgorCisgICAgICAgICogcGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplclNQSS5oOgorCiAyMDIxLTA0LTI5ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5
YUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
V2FzRmx1c2hlZEF1dG9tYXRpY2FsbHlOb3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjdkYzM5M2Yx
MjBmNGJlMzNkYjU0OWI5YWQ3NjJmMTZlNWFhMTk1MC4uNzY5MTg0YzFhNDBjOTQyMmFhNWZlNjI4
ZWZkMDU4MDNhZWQ0NjA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNS0xMCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1Nd
IEFsbG93IGltbWVkaWF0ZSBhY3Rpb24gZ2VzdHVyZXMgdG8gYmVnaW4gd2hlbiBmb3JjZSBjbGlj
a2luZyB0ZXh0IGluc2lkZSBpbWFnZSBvdmVybGF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NjAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
Nzc5MjM2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFk
b3B0IHRoZSBuZXcgaGl0LXRlc3Qgb3B0aW9uLiBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhp
dFRlc3RBdExvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9va3VwVGV4dEF0
TG9jYXRpb24pOgorCiAyMDIxLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlcXVlc3RU
eXBlIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQ
SS5oCmluZGV4IDk5YjJlZjViYjY2YmViNzU1YzYwMGNmNmU0MzgzMDFiNjI3MjRmMzguLmRlMzYx
ZmY0NWE4MjljZTJiNTc0YWM4MmYxNTVmZWYwNzk3Njg2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TSW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaApAQCAtNTYsNiArNTYsNyBAQAogCiBAaW50ZXJmYWNl
IE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgOiBOU0dlc3R1cmVSZWNvZ25pemVy
CiAKK0Bwcm9wZXJ0eSAod2VhaykgaWQgPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CiBAcHJvcGVydHkgKHN0cm9uZykgaWQ8TlNJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBhbmltYXRpb25Db250cm9sbGVyOwogQHByb3BlcnR5
IChyZWFkb25seSkgQ0dGbG9hdCBhbmltYXRpb25Qcm9ncmVzczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCmluZGV4IDY5NjA3NDdhMGI1YTc5ZWEyYzY1OThiMWNhMmZiNzljMzQy
NmNlOGYuLjk5NDNmNGIzMzdkZWZkZTM1MGEwNjM5YzRjY2UwYTZjYmQ0NzgzZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTExOTAsNyArMTE5MCw5IEBAIEhpdFRlc3RS
ZXN1bHQgRXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBMYXlvdXRQb2lu
dCYgcG9pbnQsIE9wdGlvCiAgICAgaWYgKCFyZXF1ZXN0LnJlYWRPbmx5KCkpCiAgICAgICAgIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCByZXN1bHQu
dGFyZ2V0RWxlbWVudCgpKTsKIAotICAgIGlmIChyZXF1ZXN0LmRpc2FsbG93c1VzZXJBZ2VudFNo
YWRvd0NvbnRlbnQoKSkKKyAgICBhdXRvIGlubmVyTm9kZSA9IG1ha2VSZWZQdHIocmVzdWx0Lmlu
bmVyTm9kZSgpKTsKKyAgICBpZiAocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250
ZW50KCkKKyAgICAgICAgfHwgKHJlcXVlc3QuZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVu
dEV4Y2VwdEZvckltYWdlT3ZlcmxheXMoKSAmJiBpbm5lck5vZGUgJiYgIUhUTUxFbGVtZW50Ojpp
c0luc2lkZUltYWdlT3ZlcmxheSgqaW5uZXJOb2RlKSkpCiAgICAgICAgIHJlc3VsdC5zZXRUb05v
blVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaAppbmRleCA1YTE1YzNhMWE3OWFiMzZk
ODk4NTExNTI4MWMzNGJlMDQ5NzE1MDllLi5hM2JmMjA1YzBkNDE1YWZhNjZmMGIzYjk1MjgyMDQ2
ZmU2ODUzMmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
cXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaApA
QCAtMzksMjAgKzM5LDIyIEBAIHB1YmxpYzoKICAgICAgICAgU1ZHQ2xpcENvbnRlbnQgPSAxIDw8
IDYsCiAgICAgICAgIFRvdWNoRXZlbnQgPSAxIDw8IDcsCiAgICAgICAgIERpc2FsbG93VXNlckFn
ZW50U2hhZG93Q29udGVudCA9IDEgPDwgOCwKLSAgICAgICAgQWxsb3dGcmFtZVNjcm9sbGJhcnMg
PSAxIDw8IDksCi0gICAgICAgIEFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgPSAxIDw8IDEwLAotICAg
ICAgICBBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHkgPSAxIDw8IDExLAotICAgICAg
ICBDaGlsZEZyYW1lSGl0VGVzdCA9IDEgPDwgMTIsCi0gICAgICAgIEFjY2Vzc2liaWxpdHlIaXRU
ZXN0ID0gMSA8PCAxMywKKyAgICAgICAgRGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50RXhj
ZXB0Rm9ySW1hZ2VPdmVybGF5cyA9IDEgPDwgOSwKKyAgICAgICAgQWxsb3dGcmFtZVNjcm9sbGJh
cnMgPSAxIDw8IDEwLAorICAgICAgICBBbGxvd0NoaWxkRnJhbWVDb250ZW50ID0gMSA8PCAxMSwK
KyAgICAgICAgQWxsb3dWaXNpYmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5ID0gMSA8PCAxMiwKKyAg
ICAgICAgQ2hpbGRGcmFtZUhpdFRlc3QgPSAxIDw8IDEzLAorICAgICAgICBBY2Nlc3NpYmlsaXR5
SGl0VGVzdCA9IDEgPDwgMTQsCiAgICAgICAgIC8vIENvbGxlY3QgYSBsaXN0IG9mIG5vZGVzIGlu
c3RlYWQgb2YganVzdCBvbmUuIFVzZWQgZm9yIGVsZW1lbnRzRnJvbVBvaW50IGFuZCByZWN0LWJh
c2VkIHRlc3RzLgotICAgICAgICBDb2xsZWN0TXVsdGlwbGVFbGVtZW50cyA9IDEgPDwgMTQsCisg
ICAgICAgIENvbGxlY3RNdWx0aXBsZUVsZW1lbnRzID0gMSA8PCAxNSwKICAgICAgICAgLy8gV2hl
biB1c2luZyBsaXN0LWJhc2VkIHRlc3RpbmcsIGNvbnRpbnVlIGhpdCB0ZXN0aW5nIGV2ZW4gYWZ0
ZXIgYSBoaXQgaGFzIGJlZW4gZm91bmQuCi0gICAgICAgIEluY2x1ZGVBbGxFbGVtZW50c1VuZGVy
UG9pbnQgPSAxIDw8IDE1LAorICAgICAgICBJbmNsdWRlQWxsRWxlbWVudHNVbmRlclBvaW50ID0g
MSA8PCAxNiwKICAgICB9OwogCiAgICAgSGl0VGVzdFJlcXVlc3QoT3B0aW9uU2V0PFR5cGU+IHR5
cGUgPSB7IFR5cGU6OlJlYWRPbmx5LCBUeXBlOjpBY3RpdmUsIFR5cGU6OkRpc2FsbG93VXNlckFn
ZW50U2hhZG93Q29udGVudCB9KQogICAgICAgICA6IG1fdHlwZSB7IHR5cGUgfQogICAgIHsKKyAg
ICAgICAgQVNTRVJUKCF0eXBlLmNvbnRhaW5zQWxsKHsgVHlwZTo6RGlzYWxsb3dVc2VyQWdlbnRT
aGFkb3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cywgVHlwZTo6RGlzYWxsb3dVc2VyQWdl
bnRTaGFkb3dDb250ZW50IH0pKTsKICAgICAgICAgQVNTRVJUX0lNUExJRVModHlwZS5jb250YWlu
cyhUeXBlOjpJbmNsdWRlQWxsRWxlbWVudHNVbmRlclBvaW50KSwgdHlwZS5jb250YWlucyhUeXBl
OjpDb2xsZWN0TXVsdGlwbGVFbGVtZW50cykpOwogICAgIH0KIApAQCAtNjYsNiArNjgsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCB0b3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlLmNvbnRh
aW5zKFR5cGU6OlRvdWNoRXZlbnQpOyB9CiAgICAgYm9vbCBtb3VzZUV2ZW50KCkgY29uc3QgeyBy
ZXR1cm4gIXRvdWNoRXZlbnQoKTsgfQogICAgIGJvb2wgZGlzYWxsb3dzVXNlckFnZW50U2hhZG93
Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZS5jb250YWlucyhUeXBlOjpEaXNhbGxvd1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnQpOyB9CisgICAgYm9vbCBkaXNhbGxvd3NVc2VyQWdlbnRTaGFk
b3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZS5j
b250YWlucyhUeXBlOjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnRFeGNlcHRGb3JJbWFn
ZU92ZXJsYXlzKTsgfQogICAgIGJvb2wgYWxsb3dzRnJhbWVTY3JvbGxiYXJzKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlLmNvbnRhaW5zKFR5cGU6OkFsbG93RnJhbWVTY3JvbGxiYXJzKTsgfQogICAg
IGJvb2wgYWxsb3dzQ2hpbGRGcmFtZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUuY29u
dGFpbnMoVHlwZTo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCk7IH0KICAgICBib29sIGFsbG93c1Zp
c2libGVDaGlsZEZyYW1lQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZS5jb250YWlucyhU
eXBlOjpBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHkpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMDMwN2Q5MjBmMDRlYTNhOWE2ZWI0
M2M4MDhmYzBiYjliNjdkNWQ4Ni4uOTBkMDc1Zjg5ZDA1MGMwMzU0N2I1YmUzNmE5Njk5NDYzYTEz
MWM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAt
NjU2LDcgKzY1Niw4IEBAIGlubGluZSBIaXRUZXN0UHJvZ3Jlc3MgSGl0VGVzdFJlc3VsdDo6YWRk
Tm9kZVRvTGlzdEJhc2VkVGVzdFJlc3VsdENvbW1vbihOb2RlKiBuCiAgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm4gSGl0VGVzdFByb2dyZXNzOjpDb250aW51ZTsKIAotICAgIGlmIChyZXF1
ZXN0LmRpc2FsbG93c1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQoKSAmJiBub2RlLT5pc0luVXNlckFn
ZW50U2hhZG93VHJlZSgpKQorICAgIGlmICgocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdlbnRTaGFk
b3dDb250ZW50KCkgJiYgbm9kZS0+aXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkKKyAgICAgICAg
fHwgKHJlcXVlc3QuZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudEV4Y2VwdEZvckltYWdl
T3ZlcmxheXMoKSAmJiAhSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCpub2RlKSAm
JiBub2RlLT5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKSkKICAgICAgICAgbm9kZSA9IG5vZGUt
PmRvY3VtZW50KCkuYW5jZXN0b3JOb2RlSW5UaGlzU2NvcGUobm9kZSk7CiAKICAgICBtdXRhYmxl
TGlzdEJhc2VkVGVzdFJlc3VsdCgpLmFkZCgqbm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGE0MmRkOTFjZGZiOGJk
ZjBiMTdlMmRjY2NhMDRmZTgwMTlkMDc0OGUuLjBhYzhiODc2MDczYzhjYTM5MWNmNjRjYWQ4Mjcw
MmUxNzY5NmY1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCkBAIC04NTgsOSArODU4LDEzIEBAIHZvaWQgV2ViUGFnZTo6cGVy
Zm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3RBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQg
bG9jYXRpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBJbnRQb2ludCBsb2NhdGlvbklu
Q29udGVudENvb3JkaW5hdGVzID0gbWFpbkZyYW1lLnZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRz
KHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7Ci0gICAgY29uc3Rl
eHByIE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1
ZXN0OjpUeXBlOjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFjdGl2ZSwgSGl0VGVz
dFJlcXVlc3Q6OlR5cGU6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCwgSGl0VGVzdFJl
cXVlc3Q6OlR5cGU6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKLSAgICBIaXRUZXN0UmVzdWx0
IGhpdFRlc3RSZXN1bHQgPSBtYWluRnJhbWUuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0
UG9pbnQobG9jYXRpb25JbkNvbnRlbnRDb29yZGluYXRlcywgaGl0VHlwZSk7CisgICAgYXV0byBs
b2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzID0gbWFpbkZyYW1lLnZpZXcoKS0+cm9vdFZpZXdU
b0NvbnRlbnRzKHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7Cisg
ICAgYXV0byBoaXRUZXN0UmVzdWx0ID0gbWFpbkZyYW1lLmV2ZW50SGFuZGxlcigpLmhpdFRlc3RS
ZXN1bHRBdFBvaW50KGxvY2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMsIHsKKyAgICAgICAgSGl0
VGVzdFJlcXVlc3Q6OlR5cGU6OlJlYWRPbmx5LAorICAgICAgICBIaXRUZXN0UmVxdWVzdDo6VHlw
ZTo6QWN0aXZlLAorICAgICAgICBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6RGlzYWxsb3dVc2VyQWdl
bnRTaGFkb3dDb250ZW50RXhjZXB0Rm9ySW1hZ2VPdmVybGF5cywKKyAgICAgICAgSGl0VGVzdFJl
cXVlc3Q6OlR5cGU6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQsCisgICAgfSk7CiAKICAgICBib29s
IGltbWVkaWF0ZUFjdGlvbkhpdFRlc3RQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICBFbGVt
ZW50KiBlbGVtZW50ID0gaGl0VGVzdFJlc3VsdC50YXJnZXRFbGVtZW50KCk7CkBAIC05NTgsMTAg
Kzk2MiwxMiBAQCBPcHRpb25hbDxzdGQ6OnR1cGxlPFdlYkNvcmU6OlNpbXBsZVJhbmdlLCBOU0Rp
Y3Rpb25hcnkgKj4+IFdlYlBhZ2U6Omxvb2t1cFRleHRBdAogICAgIGlmICghbWFpbkZyYW1lLnZp
ZXcoKSB8fCAhbWFpbkZyYW1lLnZpZXcoKS0+cmVuZGVyVmlldygpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCi0gICAgYXV0byBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChsb2NhdGlv
bkluVmlld0Nvb3JkaW5hdGVzKTsKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1
ZXN0OjpUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OlJlYWRPbmx5LCBIaXRU
ZXN0UmVxdWVzdDo6VHlwZTo6QWN0aXZlLCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6RGlzYWxsb3dV
c2VyQWdlbnRTaGFkb3dDb250ZW50LCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6QWxsb3dDaGlsZEZy
YW1lQ29udGVudCB9OwotICAgIGF1dG8gcmVzdWx0ID0gbWFpbkZyYW1lLmV2ZW50SGFuZGxlcigp
LmhpdFRlc3RSZXN1bHRBdFBvaW50KG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKHBvaW50KSwgaGl0VHlwZSk7Ci0gICAgcmV0dXJuIERpY3Rpb25hcnlMb29rdXA6
OnJhbmdlQXRIaXRUZXN0UmVzdWx0KHJlc3VsdCk7CisgICAgcmV0dXJuIERpY3Rpb25hcnlMb29r
dXA6OnJhbmdlQXRIaXRUZXN0UmVzdWx0KG1haW5GcmFtZS5ldmVudEhhbmRsZXIoKS5oaXRUZXN0
UmVzdWx0QXRQb2ludChtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKS0+d2luZG93VG9Db250ZW50
cyhyb3VuZGVkSW50UG9pbnQobG9jYXRpb25JblZpZXdDb29yZGluYXRlcykpLCB7CisgICAgICAg
IEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpSZWFkT25seSwKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6
OlR5cGU6OkFjdGl2ZSwKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkRpc2FsbG93VXNl
ckFnZW50U2hhZG93Q29udGVudEV4Y2VwdEZvckltYWdlT3ZlcmxheXMsCisgICAgICAgIEhpdFRl
c3RSZXF1ZXN0OjpUeXBlOjpBbGxvd0NoaWxkRnJhbWVDb250ZW50LAorICAgIH0pKTsKIH0KIAog
dm9pZCBXZWJQYWdlOjppbW1lZGlhdGVBY3Rpb25EaWRVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzYmU1ZWNkYjEyZGNiZGMzNzM5
ZjI3Y2Y5MzgzNjAwNjk4MThiNjUuLjJhMDdlMDcwODc4YjM1NGUxMmE5YjFiZjM4NWVjOWNjZjk2
NTkyMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNSBAQAorMjAyMS0wNS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEFsbG93IGltbWVkaWF0ZSBhY3Rpb24gZ2Vz
dHVyZXMgdG8gYmVnaW4gd2hlbiBmb3JjZSBjbGlja2luZyB0ZXh0IGluc2lkZSBpbWFnZSBvdmVy
bGF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
NjAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83Nzc5MjM2NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBuZXcgQVBJIHRlc3RzIHRvIGV4ZXJjaXNl
IHRoZXNlIGNoYW5nZXMgYnkgZ3JhYmJpbmcgdGhlIGltbWVkaWF0ZSBhY3Rpb24gYE5TR2VzdHVy
ZVJlY29nbml6ZXJgIGZyb20KKyAgICAgICAgYFdLV2ViVmlld2AgYW5kIGNhbGxpbmcgaW50byBp
dHMgZGVsZWdhdGUuIFRoaXMgcGF0Y2ggYWRkcyB0d28gYmFzaWMgaW1tZWRpYXRlIGFjdGlvbiB0
ZXN0cyBieSBzaW11bGF0aW5nIHRoZQorICAgICAgICBpbW1lZGlhdGUgYWN0aW9uIG92ZXIgdGV4
dCBhbmQgdGhlIGJvZHkgZWxlbWVudCwgYW5kIGluY2x1ZGVzIGEgdGhpcmQgdGVzdCB0aGF0IGlu
c3RhbGxzIGFuIGltYWdlIG92ZXJsYXkgdXNpbmcKKyAgICAgICAgYW4gaW5qZWN0ZWQgYGludGVy
bmFsc2Agb2JqZWN0LCBhbmQgdmVyaWZpZXMgdGhhdCB0aGUgaW1tZWRpYXRlIGFjdGlvbiBpbiBh
biBpbWFnZSBvdmVybGF5IG1hdGNoZXMgdGhhdCBvZgorICAgICAgICByZWd1bGFyIHRleHQgb24g
dGhlIHBhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9J
bW1lZGlhdGVBY3Rpb25UZXN0cy5tbTogQWRkZWQuCisgICAgICAgIChzd2l6emxlZEltbWVkaWF0
ZUFjdGlvbkxvY2F0aW9uSW5WaWV3KToKKyAgICAgICAgKC1bV0tXZWJWaWV3Rm9yVGVzdGluZ0lt
bWVkaWF0ZUFjdGlvbnMgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRU
ZXN0UmVzdWx0OndpdGhUeXBlOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdGb3JU
ZXN0aW5nSW1tZWRpYXRlQWN0aW9ucyBpbW1lZGlhdGVBY3Rpb25HZXN0dXJlXSk6CisgICAgICAg
ICgtW1dLV2ViVmlld0ZvclRlc3RpbmdJbW1lZGlhdGVBY3Rpb25zIHNpbXVsYXRlSW1tZWRpYXRl
QWN0aW9uOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDUtMTAg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBQYWdlcyB3
aXRoIHNlcnZpY2Ugd29ya2VycyBkbyBub3Qgc3VzcGVuZCBwcm9tcHRseQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBmY2RlYWI0ZjQ5ZDc3OTk3ZDBiMTNkYTgyYWRkY2NjMjllNzNjM2IzLi5k
YzExN2IyNGQ5MjcyMmZlOTA2YzdlZTRmZTkwYjljN2VjOTA3YzI5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODY4LDggKzg2OCw4IEBACiAJCTkzRjU2REE3MUU1RjkxNzQwMDNFREU4NCAv
KiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M4M0UwMzMxRDBBNUYyNzAwRkVCQ0YzIC8qIGxpYmljdWNvcmUuZHlsaWIg
Ki87IH07CiAJCTkzRjU2REE5MUU1RjkxOUQwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU2REE4
MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSAqLzsgfTsKIAkJOTNGN0U4
NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1l
c19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZyYW1lc19CdW5kbGUuY3BwICovOyB9OwotCQk5NTA5NUYyMDI2MkZGRkE1MDAwMEQ5MjAg
LyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRv
cENvbG9yLm1tICovOyB9OwogCQk5M0ZDREIzNDI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJy
YXlNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLzsgfTsKKwkJ
OTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5NUYxRjI2MkZGRkE1
MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJOTUwRTRDQzEyNTJF
NzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9T
U3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFBh
Z2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBQYWdlRXh0ZW5k
ZWRCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CiAJCTk1QTUyNDk1MjU4MUExMEQwMDQ2MUZFOSAv
KiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1l
Q29sb3IubW0gKi87IH07CkBAIC0xMTc5LDYgKzExNzksNyBAQAogCQlGNDQyODUxRDIxNDBERjI5
MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Mjg1MUMyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9u
dFBhbmVsVGVzdGluZy5tbSAqLzsgfTsKIAkJRjQ0NTFDNzYxRUI4RkQ4OTAwMjBDNURBIC8qIHR3
by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NTFDNzUxRUI4RkQ3QzAwMjBDNURBIC8q
IHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CiAJCUY0NEE1MzExMjFC
ODk5MDMwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0QTUzMTAyMUI4OTc2OTAwREJCOTlD
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi87IH07CisJCUY0NEE5QUY3MjY0OUJCREQw
MEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE5QUY2MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1l
ZGlhdGVBY3Rpb25UZXN0cy5tbSAqLzsgfTsKIAkJRjQ0Qzc5RkYyMEY5RTg3MTAwMTQ0NzhDIC8q
IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0NEM3OUZFMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRv
a2VuVGVzdHMubW0gKi87IH07CiAJCUY0NEM3QTAwMjBGOUVFQkYwMDE0NDc4QyAvKiBQYXJzZXJZ
aWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVn
SW4ubW0gKi87IH07CiAJCUY0NEM3QTA1MjBGQUFFM0MwMDE0NDc4QyAvKiB0ZXh0LXdpdGgtZGVm
ZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0QzdBMDQyMEZBQUUzMjAwMTQ0NzhDIC8qIHRleHQtd2l0aC1kZWZl
cnJlZC1zY3JpcHQuaHRtbCAqLzsgfTsKQEAgLTI1NjUsOCArMjU2Niw4IEBACiAJCTkzRjU2REE4
MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1NuYXBzaG90Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2QjE0REM4RTREMDBDODRBOTkgLyogTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZyYW1lc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NTA5NUYx
RjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0
ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3J0
ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MDk1RjFGMjYy
RkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1
c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NT
dHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTNBQkIzNDI1
QzBENjgxMDA0QzhCNzMgLyogUGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUV4dGVuZGVkQmFja2dyb3VuZENv
bG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUE1MjQ5NDI1ODFBMTBEMDA0
NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RoZW1lQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yOTk3LDYgKzI5OTgsOCBAQAogCQlGNDRBNTMwRTIxQjg5NzY5MDBEQkI5
OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVy
U2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NEE1MzBGMjFCODk3NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIu
aDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxMDIxQjg5NzY5MDBEQkI5OUMg
LyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVu
bmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0NEE5QUY1MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rp
b25UZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25UZXN0cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRp
YXRlQWN0aW9uVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25U
ZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5RkIyMEY5RTUwQzAw
MTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDRDNzlGRDIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRlc3RzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDRDNzlGRTIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRl
c3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFyc2VyWWllbGRUb2tlblRlc3RzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY4MCw2ICs0NjgzLDggQEAKIAkJCQk1MUVC
MTI1ODI0QzY4NTg5MDAwQ0IwMzAgLyogSElER2FtZXBhZHMubW0gKi8sCiAJCQkJOUI0RjhGQTMx
NTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tICovLAogCQkJCTlC
MjZGQzZCMTU5RDA2MTAwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0g
Ki8sCisJCQkJRjQ0QTlBRjUyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0ZUFjdGlvblRlc3Rz
LmggKi8sCisJCQkJRjQ0QTlBRjYyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0ZUFjdGlvblRl
c3RzLm1tICovLAogCQkJCUM1MDdFOEE2MTRDNjU0NUIwMDVENkIzQiAvKiBJbnNwZWN0b3JCYXIu
bW0gKi8sCiAJCQkJNTdGMTBEOTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2aWdhdGlvbkFjdGlv
blRydXN0ZWQubW0gKi8sCiAJCQkJNTE4MjBBNEMyMkY0RUU3NzAwREYwQTAxIC8qIEphdmFzY3Jp
cHRVUkxOYXZpZ2F0aW9uLm1tICovLApAQCAtNTQ2Nyw2ICs1NDcyLDcgQEAKIAkJCQk1MTA0Nzc3
ODFEMjk5MjNCMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MTEwRkNGQTFFMDFDREI4MDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSBp
biBTb3VyY2VzICovLAogCQkJCTkzQkNCQzgzMjNDQzZGMkEwMENBMjIyMSAvKiBJREJPYmplY3RT
dG9yZUluZm9VcGdyYWRlVG9WMi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0NEE5QUY3MjY0OUJC
REQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QUVFRjZEMjQwNzM1OUQwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFi
YXNlUHJvY2Vzc0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQUIwRkY1NTIyMzMyQzU3MDA2
Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlvblRlc3RzLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWQ0NjJhMDEwYTgzZmRkODlhZTA0MjlmNjg4MjhhMzhhODcyZDkwNgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlv
blRlc3RzLm1tCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIklu
c3RhbmNlTWV0aG9kU3dpenpsZXIuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9u
RXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8
V2ViS2l0L19XS0hpdFRlc3RSZXN1bHQuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKworc3RhdGljIE5TUG9pbnQgZ1N3aXp6bGVkSW1tZWRpYXRlQWN0aW9uTG9jYXRpb24gPSBO
U1plcm9Qb2ludDsKK3N0YXRpYyBOU1BvaW50IHN3aXp6bGVkSW1tZWRpYXRlQWN0aW9uTG9jYXRp
b25JblZpZXcoaWQsIFNFTCwgTlNWaWV3ICopCit7CisgICAgcmV0dXJuIGdTd2l6emxlZEltbWVk
aWF0ZUFjdGlvbkxvY2F0aW9uOworfQorCit1c2luZyBJbW1lZGlhdGVBY3Rpb25IaXRUZXN0UmVz
dWx0ID0gc3RkOjpwYWlyPFJldGFpblB0cjxfV0tIaXRUZXN0UmVzdWx0PiwgX1dLSW1tZWRpYXRl
QWN0aW9uVHlwZT47CisKK0BpbnRlcmZhY2UgV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFj
dGlvbnMgOiBUZXN0V0tXZWJWaWV3CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqaW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZTsKKworLSAoSW1tZWRpYXRlQWN0aW9uSGl0VGVzdFJlc3VsdClzaW11bGF0ZUltbWVkaWF0ZUFj
dGlvbjooTlNQb2ludClsb2NhdGlvbjsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tXZWJW
aWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlvbnMgeworICAgIGJvb2wgX2hhc1JldHVybmVkSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8X1dLSGl0VGVzdFJlc3VsdD4g
X2hpdFRlc3RSZXN1bHQ7CisgICAgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSBfYWN0aW9uVHlwZTsK
K30KKworLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0
UmVzdWx0OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoVHlwZTooX1dLSW1t
ZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJE
YXRhCit7CisgICAgX2hhc1JldHVybmVkSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA9IHRydWU7
CisgICAgX2hpdFRlc3RSZXN1bHQgPSBoaXRUZXN0UmVzdWx0OworICAgIF9hY3Rpb25UeXBlID0g
dHlwZTsKKyAgICByZXR1cm4gW3N1cGVyIF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6
dXNlckRhdGFdOworfQorCistIChOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICop
aW1tZWRpYXRlQWN0aW9uR2VzdHVyZQoreworICAgIGZvciAoTlNHZXN0dXJlUmVjb2duaXplciAq
Z2VzdHVyZSBpbiBbc2VsZiBnZXN0dXJlUmVjb2duaXplcnNdKSB7CisgICAgICAgIGlmIChbZ2Vz
dHVyZSBpc0tpbmRPZkNsYXNzOk5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuY2xh
c3NdKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TSW1tZWRpYXRlQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIgKj4oZ2VzdHVyZSk7CisgICAgfQorICAgIHJldHVybiBuaWw7Cit9CisK
Ky0gKEltbWVkaWF0ZUFjdGlvbkhpdFRlc3RSZXN1bHQpc2ltdWxhdGVJbW1lZGlhdGVBY3Rpb246
KE5TUG9pbnQpbG9jYXRpb24KK3sKKyAgICBhdXRvIGltbWVkaWF0ZUFjdGlvbkdlc3R1cmUgPSBz
ZWxmLmltbWVkaWF0ZUFjdGlvbkdlc3R1cmU7CisgICAgaWYgKCFpbW1lZGlhdGVBY3Rpb25HZXN0
dXJlLmRlbGVnYXRlKQorICAgICAgICByZXR1cm4gSW1tZWRpYXRlQWN0aW9uSGl0VGVzdFJlc3Vs
dCB7IG5pbCwgX1dLSW1tZWRpYXRlQWN0aW9uTm9uZSB9OworCisgICAgX2hhc1JldHVybmVkSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlciA9IGZhbHNlOworCisgICAgSW5zdGFuY2VNZXRob2RTd2l6
emxlciBzd2l6emxlTG9jYXRpb25JblZpZXcgeworICAgICAgICBOU0ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmNsYXNzLAorICAgICAgICBAc2VsZWN0b3IobG9jYXRpb25JblZpZXc6
KSwKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVkSW1tZWRpYXRlQWN0aW9u
TG9jYXRpb25JblZpZXcpLAorICAgIH07CisKKyAgICBnU3dpenpsZWRJbW1lZGlhdGVBY3Rpb25M
b2NhdGlvbiA9IGxvY2F0aW9uOworICAgIFtpbW1lZGlhdGVBY3Rpb25HZXN0dXJlLmRlbGVnYXRl
IGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsUHJlcGFyZTppbW1lZGlhdGVBY3Rpb25HZXN0
dXJlXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2hhc1JldHVybmVkSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlcik7CisKKyAgICBfaGFzUmV0dXJuZWRJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyID0gZmFsc2U7CisgICAgcmV0dXJuIHsgc3RkOjpleGNoYW5nZShfaGl0VGVzdFJl
c3VsdCwgbmlsKSwgc3RkOjpleGNoYW5nZShfYWN0aW9uVHlwZSwgX1dLSW1tZWRpYXRlQWN0aW9u
Tm9uZSkgfTsKK30KKworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1Qo
SW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJUZXh0KQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXdGb3JUZXN0aW5nSW1tZWRpYXRlQWN0aW9u
cyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDUwMCwgNTAwKV0pOworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxkaXYgc3R5bGU9J2ZvbnQt
c2l6ZTogMzJweDsnPkZvb2JhcjwvZGl2PiJdOworCisgICAgYXV0byBbaGl0VGVzdFJlc3VsdCwg
YWN0aW9uVHlwZV0gPSBbd2ViVmlldyBzaW11bGF0ZUltbWVkaWF0ZUFjdGlvbjpOU01ha2VQb2lu
dCgxNiwgMTYpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoW3dlYlZpZXcgaW1tZWRpYXRlQWN0aW9u
R2VzdHVyZV0uYW5pbWF0aW9uQ29udHJvbGxlcik7CisgICAgRVhQRUNUX0VRKGFjdGlvblR5cGUs
IF9XS0ltbWVkaWF0ZUFjdGlvbkxvb2t1cFRleHQpOworICAgIEVYUEVDVF9XS19TVFJFUShbaGl0
VGVzdFJlc3VsdCBsb29rdXBUZXh0XSwgIkZvb2JhciIpOworfQorCitURVNUKEltbWVkaWF0ZUFj
dGlvblRlc3RzLCBJbW1lZGlhdGVBY3Rpb25PdmVyQm9keSkKK3sKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlvbnMgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA1MDAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8ZGl2IHN0eWxlPSdmb250LXNpemU6IDMycHg7
Jz5Gb29iYXI8L2Rpdj4iXTsKKworICAgIGF1dG8gW2hpdFRlc3RSZXN1bHQsIGFjdGlvblR5cGVd
ID0gW3dlYlZpZXcgc2ltdWxhdGVJbW1lZGlhdGVBY3Rpb246TlNNYWtlUG9pbnQoNDkwLCA0OTAp
XTsKKyAgICBFWFBFQ1RfTlVMTChbd2ViVmlldyBpbW1lZGlhdGVBY3Rpb25HZXN0dXJlXS5hbmlt
YXRpb25Db250cm9sbGVyKTsKKyAgICBFWFBFQ1RfRVEoYWN0aW9uVHlwZSwgX1dLSW1tZWRpYXRl
QWN0aW9uTm9uZSk7CisgICAgRVhQRUNUX0VRKFtoaXRUZXN0UmVzdWx0IGxvb2t1cFRleHRdLmxl
bmd0aCwgMFUpOworfQorCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKK1RFU1QoSW1t
ZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJJbWFnZU92ZXJsYXkpCit7Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Rm9yVGVzdGluZ0ltbWVkaWF0ZUFjdGlvbnMgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA1MDAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVk
OkAic2ltcGxlLWltYWdlLW92ZXJsYXkiXTsKKworICAgIGF1dG8gW2hpdFRlc3RSZXN1bHQsIGFj
dGlvblR5cGVdID0gW3dlYlZpZXcgc2ltdWxhdGVJbW1lZGlhdGVBY3Rpb246TlNNYWtlUG9pbnQo
NTAsIDUwKV07CisgICAgRVhQRUNUX05PVF9OVUxMKFt3ZWJWaWV3IGltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVdLmFuaW1hdGlvbkNvbnRyb2xsZXIpOworICAgIEVYUEVDVF9FUShhY3Rpb25UeXBlLCBf
V0tJbW1lZGlhdGVBY3Rpb25Mb29rdXBUZXh0KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW2hpdFRl
c3RSZXN1bHQgbG9va3VwVGV4dF0sICJmb29iYXIiKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>