<?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>198763</bug_id>
          
          <creation_ts>2019-06-11 12:54:33 -0700</creation_ts>
          <short_desc>[Text autosizing] [iPadOS] Revise our heuristics to determine idempotent text autosizing candidates</short_desc>
          <delta_ts>2019-06-24 21:53:39 -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>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>198736</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1543798</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-11 12:54:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/51324136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544116</commentid>
    <comment_count>1</comment_count>
      <attachid>371964</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-12 08:56:16 -0700</bug_when>
    <thetext>Created attachment 371964
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547543</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 14:22:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/51826266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547568</commentid>
    <comment_count>3</comment_count>
      <attachid>372807</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 15:34:12 -0700</bug_when>
    <thetext>Created attachment 372807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547578</commentid>
    <comment_count>4</comment_count>
      <attachid>372807</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 16:05:47 -0700</bug_when>
    <thetext>Comment on attachment 372807
Patch

I’m going to see if I can make this a bit less crazy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547579</commentid>
    <comment_count>5</comment_count>
      <attachid>372807</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-24 16:18:39 -0700</bug_when>
    <thetext>Comment on attachment 372807
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:495
&gt; +bool RenderStyle::isIdempotentTextAutosizingCandidate() const

You def. need some words about how this code came into being, and ideally you&apos;d commit the tools used to generate this code, and the training dataset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547584</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 16:32:05 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Comment on attachment 372807 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372807&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:495
&gt; &gt; +bool RenderStyle::isIdempotentTextAutosizingCandidate() const
&gt; 
&gt; You def. need some words about how this code came into being,

Yes, will do! I put some words in the overall WebCore ChangeLog entry, but this definitely warrants more detail.

&gt; and ideally
&gt; you&apos;d commit the tools used to generate this code, and the training dataset.

Interesting...into open source, that is? I think we’ll need to check if that’s kosher :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547585</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-24 16:43:06 -0700</bug_when>
    <thetext>Maybe not, but to be maintainable, we have to be able to re-run your tools at any time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547588</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 16:46:47 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Maybe not, but to be maintainable, we have to be able to re-run your tools
&gt; at any time.

Indeed. They are already accessible to all of us (WebKit/Safari at Apple), but I’ll work towards getting the tools into the main Safari internal repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547597</commentid>
    <comment_count>9</comment_count>
      <attachid>372811</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 17:21:39 -0700</bug_when>
    <thetext>Created attachment 372811
Less code, more words</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547598</commentid>
    <comment_count>10</comment_count>
      <attachid>372811</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-24 17:33:01 -0700</bug_when>
    <thetext>Comment on attachment 372811
Less code, more words

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip.html

Be careful with &quot;skip&quot; in a test name (I think we have a convention that filenames with &quot;skipped&quot; in them are skipped). I would call this something else.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:497
&gt; +    auto fields = OptionSet&lt;AutosizeStatus::Fields&gt;::fromRaw(m_inheritedFlags.autosizeStatus);

Need a comment at the top of this function referencing the radar that can point someone to the tools used to generate this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547619</commentid>
    <comment_count>11</comment_count>
      <attachid>372817</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-24 20:24:18 -0700</bug_when>
    <thetext>Created attachment 372817
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547628</commentid>
    <comment_count>12</comment_count>
      <attachid>372817</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-24 21:06:58 -0700</bug_when>
    <thetext>Comment on attachment 372817
Patch for landing

Clearing flags on attachment: 372817

Committed r246781: &lt;https://trac.webkit.org/changeset/246781&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371964</attachid>
            <date>2019-06-12 08:56:16 -0700</date>
            <delta_ts>2019-06-24 14:21:56 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-198763-20190612085616.patch</filename>
            <type>text/plain</type>
            <size>12018</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q1Y2JhYzAxOTgyYmE0
MjEwMTM3NWNlOTFiNmI5MDNmNmM4ZjBjMi4uOTYyMDE3ODM4NGQ3OGFhY2JmYThhZmNhMWE5N2Jj
NWEyYzkzMGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA2LTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtUZXh0IGF1dG9z
aXppbmddIGdvb2dsZS5jb20gc2VhcmNoIHJlc3VsdHMgc2hvdyBpbmNvbnNpc3RlbnQgc2l6aW5n
IGluIHRoZSBmb290ZXIgb24gMTAtaW5jaCBpUGFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MTMyNDEzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVu
dC1hdXRvc2l6aW5nLXNraXAuaHRtbAorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JU
ZXh0QXV0b3NpemluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3RS
ZW5kZXJTdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
VGV4dFNpemVBZGp1c3RtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zaXplU3RhdHVz
Ojp1cGRhdGVTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3NpemVTdGF0dXM6OnNob3Vs
ZFNraXBTdWJ0cmVlIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVB
ZGp1c3RtZW50Lmg6CisKIDIwMTktMDYtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjYWlyb11bU1ZHXSBQdXR0aW5nIG11bHRpcGxlIHBh
dGggZWxlbWVudHMgaW4gY2xpcHBhdGggY2F1c2VzIHJlbmRlcmluZyBhcnRpZmFjdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkZGQ5NDE0ZTUyNGNkMDk3MDBkMGQ4MTJh
ZTQ2YWVhNzJhZjY3OTg0Li5hNDg5ZDZiNDhlNDAwZGNkNWQ5NTc0ZmRmMDIxNjAyYmE1ODFiMmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC04NzcsOSArODc3LDkgQEAg
c3RhdGljIGJvb2wgaGFzVGV4dENoaWxkcmVuKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxl
Rm9yVGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQordm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6
aW5nKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVu
ZGVyU3R5bGUmIHBhcmVudFN0eWxlKQogewotICAgIGF1dG8gbmV3QXV0b3NpemVTdGF0dXMgPSBB
dXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKHN0eWxlKTsKKyAgICBhdXRvIG5ld0F1dG9zaXpl
U3RhdHVzID0gQXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1cyhzdHlsZSwgcGFyZW50U3R5bGUp
OwogICAgIGlmICghc2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKSB8fCAhc2V0dGlu
Z3MoKS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKQogICAgICAgICByZXR1cm47
CiAKQEAgLTExNTIsNyArMTE1Miw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVy
U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyCiAKICAgICBp
ZiAoZWxlbWVudCkgewogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0gICAgICAgIGFkanVz
dFJlbmRlclN0eWxlRm9yVGV4dEF1dG9zaXppbmcoc3R5bGUsICplbGVtZW50KTsKKyAgICAgICAg
YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhzdHlsZSwgKmVsZW1lbnQsIHBhcmVu
dFN0eWxlKTsKICNlbmRpZgogICAgICAgICBhZGp1c3RSZW5kZXJTdHlsZUZvclNpdGVTcGVjaWZp
Y1F1aXJrcyhzdHlsZSwgKmVsZW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5oCmluZGV4IDJhMzRiMjZkNzFiMjQ1ZjYxM2IyNjFmMzUxZjI3NDBjYzU4NDk0NWUuLjAzMjgy
Mjk2MTM3OTUxNmM3NWFiNjkyMGUwNTE2MmIwYTk5ZGYyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuaApAQCAtNTAwLDcgKzUwMCw3IEBAIHByaXZhdGU6CiAgICAgLy8gdGhlIGxhc3Qg
cmVmZXJlbmNlIHRvIGEgc3R5bGUgZGVjbGFyYXRpb24gYXJlIGdhcmJhZ2UgY29sbGVjdGVkLgog
ICAgIHZvaWQgc3dlZXBNYXRjaGVkUHJvcGVydGllc0NhY2hlKCk7CiAKLSAgICB2b2lkIGFkanVz
dFJlbmRlclN0eWxlRm9yVGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50
Jik7CisgICAgdm9pZCBhZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJlbmRlclN0
eWxlJiwgY29uc3QgRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSk7CiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVt
PiBNYXRjaGVkUHJvcGVydGllc0NhY2hlOwogICAgIE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUgbV9t
YXRjaGVkUHJvcGVydGllc0NhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAppbmRleCAyYzU1ZDAxMmRlMmJlOGQ3OTAzOTA4ZDFlNjQxZDJkYzUyZjc4
YWZkLi40NWFhZDAyMzlhMWM5OWE5YmY4MDA2YTRlNmRkNzViZWJlMDUxMGM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTgzNCw5ICsxODM0
LDkgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gNDggYml0cwogCiAjaWYgRU5BQkxFKFRFWFRfQVVU
T1NJWklORykKLSAgICAgICAgdW5zaWduZWQgYXV0b3NpemVTdGF0dXMgOiA0OworICAgICAgICB1
bnNpZ25lZCBhdXRvc2l6ZVN0YXR1cyA6IDU7CiAjZW5kaWYKLSAgICAgICAgLy8gNTIgYml0cwor
ICAgICAgICAvLyA1MyBiaXRzCiAgICAgfTsKIAogICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaXMg
dXNlZCB0byBpbXBsZW1lbnQgdGhlIHJlcGxhY2Ugb3BlcmF0aW9uLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmNwcAppbmRleCAw
MjAwMjc4MDBmNjJhMWM4YjQzMDU5NDZhN2Y3OWQzMWI3YzYzYTgxLi5kNzQ5ZThlNDUzYjdkMTk2
NTk3NWMwZjhhMWI4MTc4ODNmMTgzMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmNwcApAQCAtNDIsNyArNDIsNyBAQCBi
b29sIEF1dG9zaXplU3RhdHVzOjpjb250YWlucyhGaWVsZHMgZmllbGRzKSBjb25zdAogICAgIHJl
dHVybiBtX2ZpZWxkcy5jb250YWlucyhmaWVsZHMpOwogfQogCi1BdXRvc2l6ZVN0YXR1cyBBdXRv
c2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKFJlbmRlclN0eWxlJiBzdHlsZSkKK0F1dG9zaXplU3Rh
dHVzIEF1dG9zaXplU3RhdHVzOjp1cGRhdGVTdGF0dXMoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25z
dCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUpCiB7CiAgICAgT3B0aW9uU2V0PEZpZWxkcz4gcmVz
dWx0ID0gc3R5bGUuYXV0b3NpemVTdGF0dXMoKS5maWVsZHMoKTsKICAgICBpZiAoc3R5bGUuaGFz
T3V0T2ZGbG93UG9zaXRpb24oKSkKQEAgLTU3LDE1ICs1NywyNiBAQCBBdXRvc2l6ZVN0YXR1cyBB
dXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICBkZWZh
dWx0OiAvLyBGSVhNRTogQWRkIG1vcmUgY2FzZXMuCiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAg
ICBpZiAoc3R5bGUuaGVpZ2h0KCkuaXNGaXhlZCgpKQotICAgICAgICByZXN1bHQuYWRkKEZpZWxk
czo6Rm91bmRGaXhlZEhlaWdodCk7CisgICAgaWYgKHN0eWxlLmhlaWdodCgpLmlzRml4ZWQoKSB8
fCBwYXJlbnRTdHlsZS5hdXRvc2l6ZVN0YXR1cygpLmNvbnRhaW5zKEZpZWxkczo6SW5zaWRlRml4
ZWRIZWlnaHQpKQorICAgICAgICByZXN1bHQuYWRkKEZpZWxkczo6SW5zaWRlRml4ZWRIZWlnaHQp
OworICAgIGlmIChzdHlsZS53aWR0aCgpLmlzRml4ZWQoKSB8fCBwYXJlbnRTdHlsZS5hdXRvc2l6
ZVN0YXR1cygpLmNvbnRhaW5zKEZpZWxkczo6SW5zaWRlRml4ZWRXaWR0aCkpCisgICAgICAgIHJl
c3VsdC5hZGQoRmllbGRzOjpJbnNpZGVGaXhlZFdpZHRoKTsKICAgICBzdHlsZS5zZXRBdXRvc2l6
ZVN0YXR1cyhyZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQXV0b3NpemVT
dGF0dXM6OnNob3VsZFNraXBTdWJ0cmVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9maWVsZHMu
Y29udGFpbnNBbnkoeyBGaWVsZHM6OkZvdW5kT3V0T2ZGbG93UG9zaXRpb24sIEZpZWxkczo6Rm91
bmRJbmxpbmVCbG9jaywgRmllbGRzOjpGb3VuZEZpeGVkSGVpZ2h0LCBGaWVsZHM6OkZvdW5kRGlz
cGxheU5vbmUgfSk7CisgICAgaWYgKG1fZmllbGRzLmNvbnRhaW5zQW55KHsgRmllbGRzOjpGb3Vu
ZERpc3BsYXlOb25lLCBGaWVsZHM6OkZvdW5kT3V0T2ZGbG93UG9zaXRpb259KSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBpZiAobV9maWVsZHMuY29udGFpbnNBbGwoeyBGaWVsZHM6Oklu
c2lkZUZpeGVkV2lkdGgsIEZpZWxkczo6SW5zaWRlRml4ZWRIZWlnaHQgfSkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKG1fZmllbGRzLmNvbnRhaW5zKEZpZWxkczo6Rm91bmRJbmxp
bmVCbG9jaykgJiYgbV9maWVsZHMuY29udGFpbnNBbnkoeyBGaWVsZHM6Okluc2lkZUZpeGVkV2lk
dGgsIEZpZWxkczo6SW5zaWRlRml4ZWRIZWlnaHQgfSkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBmbG9hdCBBdXRvc2l6ZVN0YXR1czo6aWRlbXBvdGVu
dFRleHRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGZsb2F0IHBhZ2VTY2FsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuaAppbmRl
eCA5ZjZiM2ZiODhiMTU3MDJhMjg3OWNjZjMzNWY4ZjNiMTMyNDYyOTU5Li43ZDIyNTNkNDE1YzM4
NWM5YTBlNjY3Y2JkZWIwNzQxMmRiYmRlNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5oCkBAIC01NCw4ICs1NCw5IEBAIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIEZpZWxkcyA6IHVpbnQ4X3QgewogICAgICAgICBGb3VuZE91
dE9mRmxvd1Bvc2l0aW9uID0gMSA8PCAwLAogICAgICAgICBGb3VuZElubGluZUJsb2NrID0gMSA8
PCAxLAotICAgICAgICBGb3VuZEZpeGVkSGVpZ2h0ID0gMSA8PCAyLAotICAgICAgICBGb3VuZERp
c3BsYXlOb25lID0gMSA8PCAzCisgICAgICAgIEZvdW5kRGlzcGxheU5vbmUgPSAxIDw8IDIsCisg
ICAgICAgIEluc2lkZUZpeGVkV2lkdGggPSAxIDw8IDMsCisgICAgICAgIEluc2lkZUZpeGVkSGVp
Z2h0ID0gMSA8PCA0LAogICAgICAgICAvLyBBZGRpbmcgbmV3IHZhbHVlcyByZXF1aXJlcyBnaXZp
bmcgUmVuZGVyU3R5bGU6OkluaGVyaXRlZEZsYWdzOjphdXRvc2l6ZVN0YXR1cyBhZGRpdGlvbmFs
IGJpdHMuCiAgICAgfTsKIApAQCAtNjYsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91
bGRTa2lwU3VidHJlZSgpIGNvbnN0OwogCiAgICAgc3RhdGljIGZsb2F0IGlkZW1wb3RlbnRUZXh0
U2l6ZShmbG9hdCBzcGVjaWZpZWRTaXplLCBmbG9hdCBwYWdlU2NhbGUpOwotICAgIHN0YXRpYyBB
dXRvc2l6ZVN0YXR1cyB1cGRhdGVTdGF0dXMoUmVuZGVyU3R5bGUmKTsKKyAgICBzdGF0aWMgQXV0
b3NpemVTdGF0dXMgdXBkYXRlU3RhdHVzKFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUm
IHBhcmVudFN0eWxlKTsKIAogcHJpdmF0ZToKICAgICBPcHRpb25TZXQ8RmllbGRzPiBtX2ZpZWxk
czsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiY2E5MTc5ODNlMTk4NWRkMDMxOTVmZDk2Y2Y1NDc1MjA2Yjg3M2VhLi40Yzhk
MmFlZGE3YzM1YzcwODdmOWU4MzIzZWExYjVhMThiMGY2YjI2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTktMDYtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgW1RleHQgYXV0b3NpemluZ10gZ29vZ2xlLmNvbSBzZWFyY2ggcmVzdWx0cyBzaG93
IGluY29uc2lzdGVudCBzaXppbmcgaW4gdGhlIGZvb3RlciBvbiAxMC1pbmNoIGlQYWRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzUxMzI0MTM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3Rl
bnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1za2lwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1hdXRv
c2l6aW5nLXNraXAuaHRtbDoKKwogMjAxOS0wNi0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NhaXJvXVtTVkddIFB1dHRpbmcgbXVsdGlw
bGUgcGF0aCBlbGVtZW50cyBpbiBjbGlwcGF0aCBjYXVzZXMgcmVuZGVyaW5nIGFydGlmYWN0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3Rl
bnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1za2lwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1
dG9zaXppbmctc2tpcC1leHBlY3RlZC50eHQKaW5kZXggMzM5ZDE5MDUzMWZjOGEzN2I4NTg3MDIz
Zjg1OTRlM2MwMzFkNDc1Ny4uYjE5YzQxZDFkMTdjN2UyYjc1MmFjOWEwODllNDNiZTJjMjgwMmRi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1w
b3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1za2lwLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBv
dGVudC1hdXRvc2l6aW5nLXNraXAtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDIzIEBACitDaGVj
a2luZyB0YXJnZXQxOgogUEFTUyByZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDI6CiBQ
QVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MzoKIFBBU1MgcmVzdWx0IGlzIDEy
CitDaGVja2luZyB0YXJnZXQ0OgogUEFTUyByZXN1bHQgaXMgMTIKK0NoZWNraW5nIHRhcmdldDU6
CiBQQVNTIHJlc3VsdCBpcyAxMgorQ2hlY2tpbmcgdGFyZ2V0NjoKIFBBU1MgcmVzdWx0IGlzIDEy
CitDaGVja2luZyB0YXJnZXQ3OgogUEFTUyByZXN1bHQgaXMgPj0gcmVzdWx0MgorQ2hlY2tpbmcg
dGFyZ2V0ODoKIFBBU1MgcmVzdWx0IGlzID49IDEzCitDaGVja2luZyB0YXJnZXQ5OgorUEFTUyBy
ZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDEwOgorUEFTUyByZXN1bHQgaXMgMTIKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpAQCAtMTYsMyAr
MjgsNSBAQCBUZXN0CiBUZXN0CiBUZXN0VGVzdFRlc3RUZXN0CiBUZXN0CitUZXN0CitUZXN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVu
dG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmct
c2tpcC5odG1sCmluZGV4IDkwY2ZhNmQ3MjdhNGIxMGExNGUwNGJkMjBjODNjODI4MTQyNWQwZWEu
LmRmZWY0ZTdmNzdmMGJlMDQwMDBjYWFlNmM2MmIyYzRmOGMwY2QyMDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90
ZW50LWF1dG9zaXppbmctc2tpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC5odG1s
CkBAIC0xMSwzMiArMTEsMzYgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJn
ZXQiIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHls
ZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0idGFyZ2V0MSIgc3R5bGU9ImZvbnQtc2l6
ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+CiA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVl
bjsgb3ZlcmZsb3c6IGF1dG87Ij48c3BhbiBpZD0idGFyZ2V0MiIgc3R5bGU9ImZsb2F0OiByaWdo
dDsgZm9udC1zaXplOiAxMnB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KLTxkaXYgc3R5bGU9ImJhY2tn
cm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDMiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Ci08ZGl2IHN0eWxlPSJi
YWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZv
bnQtc2l6ZTogMTJweDsiPjxzcGFuIGlkPSJ0YXJnZXQ0Ij5UZXN0PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDMiIHN0
eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgd2lkdGg6IDIwcHg7
Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3Bh
biBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IDEycHg7IGZvbnQtc2l6ZTog
MTJweDsiPjxzcGFuIGlkPSJ0YXJnZXQ0Ij5UZXN0PC9zcGFuPjwvc3Bhbj48L2Rpdj4KIDxkaXYg
c3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDUiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IGZvbnQtc2l6ZTogMTJweDsiPlRl
c3Q8L3NwYW4+PC9kaXY+CiA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlk
PSJ0YXJnZXQ2IiBzdHlsZT0iZGlzcGxheTogbm9uZTsgZm9udC1zaXplOiAxMnB4OyI+VGVzdDwv
c3Bhbj48L2Rpdj4KIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9ImNv
bXBhcmlzb24iIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij5UZXN0PHNwYW4+VGVzdDxzcGFuPlRl
c3Q8c3BhbiBpZD0idGFyZ2V0NyI+VGVzdDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDgiIHN0
eWxlPSJmb250LXNpemU6IDEycHg7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJSI+VGVz
dDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9
InRhcmdldDkiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsi
PlRlc3Q8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFu
IGlkPSJ0YXJnZXQxMCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgd2lkdGg6IDIwcHg7IGhlaWdo
dDogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+CiA8c2NyaXB0PgogbGV0IHJlc3VsdDsKIGZ1bmN0
aW9uIGNoZWNrKG5hbWUsIHNob3VsZEdldEF1dG9zaXplZCkgewogICAgIGxldCB0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKTsKICAgICB0YXJnZXQub2Zmc2V0V2lkdGg7CiAg
ICAgcmVzdWx0ID0gTnVtYmVyLnBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdl
dCkuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1zaXplIikpOworICAgIGRlYnVnKGBDaGVja2luZyAk
e25hbWV9OmApOwogICAgIGlmIChzaG91bGRHZXRBdXRvc2l6ZWQpCiAgICAgICAgIHNob3VsZEJl
R3JlYXRlclRoYW5PckVxdWFsKCJyZXN1bHQiLCAiMTMiKTsKICAgICBlbHNlCiAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHQiLCAiMTIiKTsKIH0KLWNoZWNrKCJ0YXJnZXQiLCB0cnVlKTsKK2NoZWNr
KCJ0YXJnZXQxIiwgdHJ1ZSk7CiBjaGVjaygidGFyZ2V0MiIsIHRydWUpOwogY2hlY2soInRhcmdl
dDMiLCBmYWxzZSk7CiBjaGVjaygidGFyZ2V0NCIsIGZhbHNlKTsKIGNoZWNrKCJ0YXJnZXQ1Iiwg
ZmFsc2UpOwogY2hlY2soInRhcmdldDYiLCBmYWxzZSk7CiAKK2RlYnVnKGBDaGVja2luZyB0YXJn
ZXQ3OmApOwogbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ3Iik7
CiB0YXJnZXQub2Zmc2V0V2lkdGg7CiBsZXQgY29tcGFyaXNvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb21wYXJpc29uIik7CkBAIC00Niw2ICs1MCw4IEBAIGxldCByZXN1bHQyID0gTnVt
YmVyLnBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNvbXBhcmlzb24pLmdldFByb3Bl
cnR5VmFsCiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgicmVzdWx0IiwgInJlc3VsdDIiKTsK
IAogY2hlY2soInRhcmdldDgiLCB0cnVlKTsKK2NoZWNrKCJ0YXJnZXQ5IiwgdHJ1ZSk7CitjaGVj
aygidGFyZ2V0MTAiLCBmYWxzZSk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372807</attachid>
            <date>2019-06-24 15:34:12 -0700</date>
            <delta_ts>2019-06-24 16:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198763-20190624153411.patch</filename>
            <type>text/plain</type>
            <size>17739</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiZjliNjU2ZTQ0MGJh
NDExZjU2NDUyZGI1YmM2OTZlODgxZGQxYi4uNGYyNWQzN2NjMjczZDMxZjg5MjFlMGI2YjIzYTJh
MTEyYTAwODYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTA2LTI0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtUZXh0IGF1dG9z
aXppbmddIFtpUGFkT1NdIFJldmlzZSBvdXIgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgaWRlbXBv
dGVudCB0ZXh0IGF1dG9zaXppbmcgY2FuZGlkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MTgyNjI2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkanVzdHMgZXhpc3RpbmcgdGV4dCBhdXRvc2l6aW5nIGhldXJpc3RpY3Ms
IGJhc2VkIG9uIGEgc3VydmV5IG9mIHRleHQgb24gd2Vic2l0ZXMgaW4gdGhlIEFsZXhhIHRvcAor
ICAgICAgICA1MDAgdGhhdCBzaHJpbmsgZG93biB0byBmaXQgdGhlIHZpZXdwb3J0IHdoZW4gcmVx
dWVzdGluZyB0aGUgZGVza3RvcCB2ZXJzaW9uIG9mIHRoZSBzaXRlLiBUaGUgbmV3IGhldXJpc3Rp
YyBpcworICAgICAgICBkZXJpdmVkIGZyb20gdHJhaW5pbmcgZGVjaXNpb24gdHJlZXMgYWdhaW5z
dCB0aGUgZGF0YXNldCBvYnRhaW5lZCBmcm9tIHRoaXMgc3VydmV5LCBhbmQgYmFsYW5jZXMgZmFs
c2UgcG9zaXRpdmVzCisgICAgICAgIChjYXNlcyB3aGVyZSBsYXlvdXQgaXMgYnJva2VuIGR1ZSB0
byBhdXRvc2l6aW5nKSBhZ2FpbnN0IG92ZXJhbGwgYWNjdXJhY3kgKG1lYXN1cmVkIHVzaW5nIGNy
b3NzLXZhbGlkYXRpb24pLgorCisgICAgICAgIFBsZWFzZSByZWZlciB0byB0aGUgbGluayBpbiB0
aGUgcmFkYXIgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQtYXV0
b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAuaHRt
bAorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjppc0lkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0NhbmRpZGF0ZSBjb25zdCk6
CisKKyAgICAgICAgUmVuYW1lIEF1dG9zaXplU3RhdHVzOjpzaG91bGRTa2lwU3VidHJlZSB0byBS
ZW5kZXJTdHlsZTo6aXNJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdDYW5kaWRhdGUuIFdlIHJlbG9j
YXRlIHRoaXMKKyAgICAgICAgbG9naWMgdG8gUmVuZGVyU3R5bGUsIHN1Y2ggdGhhdCB3ZSdyZSBh
YmxlIHRvIGFzayB0aGUgZWxlbWVudCdzIFJlbmRlclN0eWxlIHF1ZXN0aW9ucyB3aGVuIGRldGVy
bWluaW5nIHdoZXRoZXIKKyAgICAgICAgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIGF1dG9zaXplZC4K
KworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCisgICAgICAgIEdy
b3cgdGhlIHdpZHRoIG9mIGBhdXRvc2l6ZVN0YXR1c2AgZnJvbSA0IHRvIDggKG5vdGFibHksIHRo
aXMgZG9lcyBub3QgaW5jcmVhc2UgdGhlIHNpemUgb2YgUmVuZGVyU3R5bGUpLgorCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
dG9zaXplU3RhdHVzOjpzaG91bGRTa2lwU3VidHJlZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5oOgorCisgICAgICAgIEludHJv
ZHVjZSBuZXcgdGV4dCBhdXRvc2l6aW5nIHN0YXRlIGZsYWdzLCBhbmQgcmVtb3ZlIHNvbWUgZXhp
c3Rpbmcgb25lcy4KKwogMjAxOS0wNi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFBhZ2VzIHVzaW5nIEdvb2dsZSdzIGFudGktZmxpY2tlciBvcHRpbWl6YXRp
b24gbWF5IHRha2UgfjUgc2Vjb25kcyB0byBkbyBpbml0aWFsIHBhaW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMDI0ODc5MGVlYjBhODgyM2VhYWE2YTkyNjA0NmJiYzQ4
OGIwMTU2OS4uYjNlNmUxNDE1ZjU1YWY1YWVjNTEyM2YzZWM5MDE1NWZmMmViYzJjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtODc5LDE3ICs4NzksMTcgQEAgc3RhdGlj
IGJvb2wgaGFzVGV4dENoaWxkcmVuKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAKIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byBuZXdBdXRvc2l6
ZVN0YXR1cyA9IEF1dG9zaXplU3RhdHVzOjp1cGRhdGVTdGF0dXMoc3R5bGUpOwogICAgIGlmICgh
c2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKSB8fCAhc2V0dGluZ3MoKS50ZXh0QXV0
b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBBdXRv
c2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKHN0eWxlKTsKICAgICBpZiAoIWhhc1RleHRDaGlsZHJl
bihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0eWxlLnRleHRTaXplQWRq
dXN0KCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChuZXdBdXRvc2l6ZVN0
YXR1cy5zaG91bGRTa2lwU3VidHJlZSgpKQorICAgIGlmICghc3R5bGUuaXNJZGVtcG90ZW50VGV4
dEF1dG9zaXppbmdDYW5kaWRhdGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmxvYXQgaW5p
dGlhbFNjYWxlID0gZG9jdW1lbnQoKS5wYWdlKCkgPyBkb2N1bWVudCgpLnBhZ2UoKS0+aW5pdGlh
bFNjYWxlKCkgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKaW5kZXggMTRiMWNhMDM4NzRiYzhkNzI2MTY3M2Q0MDcxYTIzYjc0ZmI2ZmY3Ny4u
ZDEzYjA4OTBiOTg1ODQ5MTExZWViNjZmMGYyZTkzZjFmNDljNWVjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00OTIsNiArNDkyLDY5
IEBAIGJvb2wgUmVuZGVyU3R5bGU6OmVxdWFsRm9yVGV4dEF1dG9zaXppbmcoY29uc3QgUmVuZGVy
U3R5bGUmIG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50
ZXh0T3ZlcmZsb3cgPT0gb3RoZXIubV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dGV4dE92ZXJmbG93
OwogfQogCitib29sIFJlbmRlclN0eWxlOjppc0lkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0NhbmRp
ZGF0ZSgpIGNvbnN0Cit7CisgICAgYXV0byBmaWVsZHMgPSBPcHRpb25TZXQ8QXV0b3NpemVTdGF0
dXM6OkZpZWxkcz46OmZyb21SYXcobV9pbmhlcml0ZWRGbGFncy5hdXRvc2l6ZVN0YXR1cyk7Cisg
ICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpEaXNwbGF5Tm9u
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChmaWVsZHMuY29udGFpbnMoQXV0
b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4ZWRIZWlnaHQpKSB7CisgICAgICAgIGlmICh3aGl0ZVNw
YWNlKCkgPT0gV2hpdGVTcGFjZTo6Tm9XcmFwKSB7CisgICAgICAgICAgICBpZiAoZmllbGRzLmNv
bnRhaW5zKEF1dG9zaXplU3RhdHVzOjpGaWVsZHM6Ok91dE9mRmxvd1Bvc2l0aW9uKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKGZpZWxkcy5jb250YWlu
cyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpPdmVyZmxvd1lIaWRkZW4pKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4ZWRX
aWR0aCkgfHwgIWZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpGbG9hdGlu
Zyk7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpGbG9hdGluZykpIHsKKyAg
ICAgICAgICAgIGlmIChmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3V0
T2ZGbG93UG9zaXRpb24pKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpZWxkcy5jb250YWlucyhB
dXRvc2l6ZVN0YXR1czo6RmllbGRzOjpPdmVyZmxvd1hIaWRkZW4pKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmllbGRzLmNvbnRhaW5zKEF1dG9zaXplU3RhdHVzOjpGaWVsZHM6OkZpeGVk
V2lkdGgpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkcy5jb250YWlucyhBdXRvc2l6
ZVN0YXR1czo6RmllbGRzOjpGaXhlZE1heFdpZHRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgcmV0dXJuICFmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4
ZWRXaWR0aCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmllbGRzLmNvbnRhaW5zKEF1dG9z
aXplU3RhdHVzOjpGaWVsZHM6OkZpeGVkV2lkdGgpKQorICAgICAgICAgICAgcmV0dXJuICFmaWVs
ZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3V0T2ZGbG93UG9zaXRpb24pICYm
ICFmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3ZlcmZsb3dYSGlkZGVu
KTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoZmllbGRzLmNvbnRh
aW5zKEF1dG9zaXplU3RhdHVzOjpGaWVsZHM6OkZsb2F0aW5nKSkKKyAgICAgICAgcmV0dXJuIGZp
ZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpPdmVyZmxvd1lIaWRkZW4pIHx8
ICFmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3ZlcmZsb3dYSGlkZGVu
KTsKKworICAgIGlmIChmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4
ZWRXaWR0aCkpIHsKKyAgICAgICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6
RmllbGRzOjpPdmVyZmxvd1lIaWRkZW4pKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAgICAgaWYgKHdoaXRlU3BhY2UoKSA9PSBXaGl0ZVNwYWNlOjpOb1dyYXApCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICFmaWVsZHMuY29udGFpbnMoQXV0b3Np
emVTdGF0dXM6OkZpZWxkczo6T3ZlcmZsb3dYSGlkZGVuKTsKKyAgICB9CisKKyAgICBpZiAoZmll
bGRzLmNvbnRhaW5zKEF1dG9zaXplU3RhdHVzOjpGaWVsZHM6Ok92ZXJmbG93WEhpZGRlbikpCisg
ICAgICAgIHJldHVybiB3aGl0ZVNwYWNlKCkgPT0gV2hpdGVTcGFjZTo6Tm9XcmFwOworCisgICAg
aWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpGaXhlZE1heFdpZHRo
KSkgeworICAgICAgICBpZiAod2hpdGVTcGFjZSgpID09IFdoaXRlU3BhY2U6Ok5vV3JhcCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gIWZpZWxkcy5jb250YWlu
cyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpPdXRPZkZsb3dQb3NpdGlvbik7CisgICAgfQorCisg
ICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpPdXRPZkZsb3dQ
b3NpdGlvbikpCisgICAgICAgIHJldHVybiB3aGl0ZVNwYWNlKCkgPT0gV2hpdGVTcGFjZTo6Tm9X
cmFwOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIEF1dG9zaXplU3RhdHVzIFJlbmRlclN0eWxl
OjphdXRvc2l6ZVN0YXR1cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIE9wdGlvblNldDxBdXRvc2l6
ZVN0YXR1czo6RmllbGRzPjo6ZnJvbVJhdyhtX2luaGVyaXRlZEZsYWdzLmF1dG9zaXplU3RhdHVz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
ZWMzMGVhNjNmYTg1MDc5NzIzNjNlMWQ0YjhhMTEzZmI3MWI1ZWVkNi4uZWIyYTJmNmY5YWEyOTg2
MDIyZDVhZDgyNGZiMTJmYTY4MmNhYzBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTc0MCw3ICs3NDAsOCBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIFRleHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6ZUFk
anVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0
OyB9Ci0gICAgQXV0b3NpemVTdGF0dXMgYXV0b3NpemVTdGF0dXMoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaXNJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdDYW5kaWRhdGUoKSBj
b25zdDsKICNlbmRpZgogCiAgICAgVGV4dFNlY3VyaXR5IHRleHRTZWN1cml0eSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFRleHRTZWN1cml0eT4obV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4
dFNlY3VyaXR5KTsgfQpAQCAtMTgzNCw5ICsxODM1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgLy8g
NDggYml0cwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLSAgICAgICAgdW5zaWduZWQg
YXV0b3NpemVTdGF0dXMgOiA0OworICAgICAgICB1bnNpZ25lZCBhdXRvc2l6ZVN0YXR1cyA6IDg7
CiAjZW5kaWYKLSAgICAgICAgLy8gNTIgYml0cworICAgICAgICAvLyA1NiBiaXRzCiAgICAgfTsK
IAogICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaXMgdXNlZCB0byBpbXBsZW1lbnQgdGhlIHJlcGxh
Y2Ugb3BlcmF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1RleHRTaXplQWRqdXN0bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
VGV4dFNpemVBZGp1c3RtZW50LmNwcAppbmRleCAwMjAwMjc4MDBmNjJhMWM4YjQzMDU5NDZhN2Y3
OWQzMWI3YzYzYTgxLi5jYzFkYTgwYTViOTc0MzY3MDUwN2U3ZjU0NTg1MzY3NzU4OWExOTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3Rt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1
c3RtZW50LmNwcApAQCAtNDIsMzAgKzQyLDM1IEBAIGJvb2wgQXV0b3NpemVTdGF0dXM6OmNvbnRh
aW5zKEZpZWxkcyBmaWVsZHMpIGNvbnN0CiAgICAgcmV0dXJuIG1fZmllbGRzLmNvbnRhaW5zKGZp
ZWxkcyk7CiB9CiAKLUF1dG9zaXplU3RhdHVzIEF1dG9zaXplU3RhdHVzOjp1cGRhdGVTdGF0dXMo
UmVuZGVyU3R5bGUmIHN0eWxlKQordm9pZCBBdXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKFJl
bmRlclN0eWxlJiBzdHlsZSkKIHsKLSAgICBPcHRpb25TZXQ8RmllbGRzPiByZXN1bHQgPSBzdHls
ZS5hdXRvc2l6ZVN0YXR1cygpLmZpZWxkcygpOworICAgIGF1dG8gcmVzdWx0ID0gc3R5bGUuYXV0
b3NpemVTdGF0dXMoKS5maWVsZHMoKTsKKworICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlz
cGxheVR5cGU6Ok5vbmUpCisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpEaXNwbGF5Tm9uZSk7
CisKICAgICBpZiAoc3R5bGUuaGFzT3V0T2ZGbG93UG9zaXRpb24oKSkKLSAgICAgICAgcmVzdWx0
LmFkZChGaWVsZHM6OkZvdW5kT3V0T2ZGbG93UG9zaXRpb24pOwotICAgIHN3aXRjaCAoc3R5bGUu
ZGlzcGxheSgpKSB7Ci0gICAgY2FzZSBEaXNwbGF5VHlwZTo6SW5saW5lQmxvY2s6Ci0gICAgICAg
IHJlc3VsdC5hZGQoRmllbGRzOjpGb3VuZElubGluZUJsb2NrKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBEaXNwbGF5VHlwZTo6Tm9uZToKLSAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkZv
dW5kRGlzcGxheU5vbmUpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OiAvLyBGSVhNRTog
QWRkIG1vcmUgY2FzZXMuCi0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgcmVzdWx0LmFk
ZChGaWVsZHM6Ok91dE9mRmxvd1Bvc2l0aW9uKTsKKwogICAgIGlmIChzdHlsZS5oZWlnaHQoKS5p
c0ZpeGVkKCkpCi0gICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpGb3VuZEZpeGVkSGVpZ2h0KTsK
LSAgICBzdHlsZS5zZXRBdXRvc2l6ZVN0YXR1cyhyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQ7
Ci19CisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpGaXhlZEhlaWdodCk7CiAKLWJvb2wgQXV0
b3NpemVTdGF0dXM6OnNob3VsZFNraXBTdWJ0cmVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9m
aWVsZHMuY29udGFpbnNBbnkoeyBGaWVsZHM6OkZvdW5kT3V0T2ZGbG93UG9zaXRpb24sIEZpZWxk
czo6Rm91bmRJbmxpbmVCbG9jaywgRmllbGRzOjpGb3VuZEZpeGVkSGVpZ2h0LCBGaWVsZHM6OkZv
dW5kRGlzcGxheU5vbmUgfSk7CisgICAgaWYgKHN0eWxlLndpZHRoKCkuaXNGaXhlZCgpKQorICAg
ICAgICByZXN1bHQuYWRkKEZpZWxkczo6Rml4ZWRXaWR0aCk7CisKKyAgICBpZiAoc3R5bGUubWF4
V2lkdGgoKS5pc0ZpeGVkKCkpCisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpGaXhlZE1heFdp
ZHRoKTsKKworICAgIGlmIChzdHlsZS5vdmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6SGlkZGVuKQor
ICAgICAgICByZXN1bHQuYWRkKEZpZWxkczo6T3ZlcmZsb3dYSGlkZGVuKTsKKworICAgIGlmIChz
dHlsZS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6SGlkZGVuKQorICAgICAgICByZXN1bHQuYWRk
KEZpZWxkczo6T3ZlcmZsb3dZSGlkZGVuKTsKKworICAgIGlmIChzdHlsZS5pc0Zsb2F0aW5nKCkp
CisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpGbG9hdGluZyk7CisKKyAgICBzdHlsZS5zZXRB
dXRvc2l6ZVN0YXR1cyhyZXN1bHQpOwogfQogCiBmbG9hdCBBdXRvc2l6ZVN0YXR1czo6aWRlbXBv
dGVudFRleHRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGZsb2F0IHBhZ2VTY2FsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuaApp
bmRleCA5ZjZiM2ZiODhiMTU3MDJhMjg3OWNjZjMzNWY4ZjNiMTMyNDYyOTU5Li5mZmMwMzQ0YjJi
NGZhZWIxZWRlNDY2OWI4NjUxOGUwZmRkZDcyNmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5oCkBAIC01MiwxMCArNTIsMTQg
QEAgcHJpdmF0ZToKIGNsYXNzIEF1dG9zaXplU3RhdHVzIHsKIHB1YmxpYzoKICAgICBlbnVtIGNs
YXNzIEZpZWxkcyA6IHVpbnQ4X3QgewotICAgICAgICBGb3VuZE91dE9mRmxvd1Bvc2l0aW9uID0g
MSA8PCAwLAotICAgICAgICBGb3VuZElubGluZUJsb2NrID0gMSA8PCAxLAotICAgICAgICBGb3Vu
ZEZpeGVkSGVpZ2h0ID0gMSA8PCAyLAotICAgICAgICBGb3VuZERpc3BsYXlOb25lID0gMSA8PCAz
CisgICAgICAgIERpc3BsYXlOb25lID0gMSA8PCAwLAorICAgICAgICBGaXhlZEhlaWdodCA9IDEg
PDwgMSwKKyAgICAgICAgRml4ZWRXaWR0aCA9IDEgPDwgMiwKKyAgICAgICAgRmxvYXRpbmcgPSAx
IDw8IDMsCisgICAgICAgIE92ZXJmbG93WEhpZGRlbiA9IDEgPDwgNCwKKyAgICAgICAgT3ZlcmZs
b3dZSGlkZGVuID0gMSA8PCA1LAorICAgICAgICBPdXRPZkZsb3dQb3NpdGlvbiA9IDEgPDwgNiwK
KyAgICAgICAgRml4ZWRNYXhXaWR0aCA9IDEgPDwgNwogICAgICAgICAvLyBBZGRpbmcgbmV3IHZh
bHVlcyByZXF1aXJlcyBnaXZpbmcgUmVuZGVyU3R5bGU6OkluaGVyaXRlZEZsYWdzOjphdXRvc2l6
ZVN0YXR1cyBhZGRpdGlvbmFsIGJpdHMuCiAgICAgfTsKIApAQCAtNjMsMTAgKzY3LDkgQEAgcHVi
bGljOgogICAgIE9wdGlvblNldDxGaWVsZHM+IGZpZWxkcygpIGNvbnN0IHsgcmV0dXJuIG1fZmll
bGRzOyB9CiAKICAgICBib29sIGNvbnRhaW5zKEZpZWxkcykgY29uc3Q7Ci0gICAgYm9vbCBzaG91
bGRTa2lwU3VidHJlZSgpIGNvbnN0OwogCiAgICAgc3RhdGljIGZsb2F0IGlkZW1wb3RlbnRUZXh0
U2l6ZShmbG9hdCBzcGVjaWZpZWRTaXplLCBmbG9hdCBwYWdlU2NhbGUpOwotICAgIHN0YXRpYyBB
dXRvc2l6ZVN0YXR1cyB1cGRhdGVTdGF0dXMoUmVuZGVyU3R5bGUmKTsKKyAgICBzdGF0aWMgdm9p
ZCB1cGRhdGVTdGF0dXMoUmVuZGVyU3R5bGUmKTsKIAogcHJpdmF0ZToKICAgICBPcHRpb25TZXQ8
RmllbGRzPiBtX2ZpZWxkczsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYmVjY2YxMjg1MDdhNjViOTM3ZmEyNDdjMDAwMzY4
OTJjY2YyODg0Li43ZWUyMzg5ODJhZjRmYjVlZmRkOGIzYjExODdhMzBhNjIzOTdiNWMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDYtMjQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW1RleHQgYXV0b3NpemluZ10gW2lQYWRPU10gUmV2aXNl
IG91ciBoZXVyaXN0aWNzIHRvIGRldGVybWluZSBpZGVtcG90ZW50IHRleHQgYXV0b3NpemluZyBj
YW5kaWRhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTg3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxODI2MjY2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgYW4gZXhpc3Rp
bmcgdGV4dCBhdXRvc2l6aW5nIHRlc3QsIGFuZCBpbnRyb2R1Y2Ugc29tZSBuZXcgdGVzdCBjYXNl
cyB0aGF0IGNvcnJlc3BvbmQgdG8gc2V2ZXJhbCBjb21tb24KKyAgICAgICAgcGF0dGVybnMgb2Yg
YXV0b3NpemFibGUgKG9yIG5vbi1hdXRvc2l6YWJsZSkgdGV4dCBvbiB3ZWJzaXRlcyB0aGF0IHdl
cmUgc3VydmV5ZWQuCisKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBv
dGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1
dG9zaXppbmctc2tpcC5odG1sOgorCiAyMDE5LTA2LTI0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBBZGQgQXJyYXkucHJvdG90eXBlLntmbGF0LGZs
YXRNYXB9IHRvIHVuc2NvcGFibGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1w
b3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1za2lwLWV4cGVjdGVkLnR4dAppbmRleCAz
MzlkMTkwNTMxZmM4YTM3Yjg1ODcwMjNmODU5NGUzYzAzMWQ0NzU3Li4xZTFhOTVlZTZhMDdiNzY3
MDg4NTRlYWQ5NjFjZTEyZDg3NGEzNmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNr
aXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lv
cy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC1leHBlY3RlZC50eHQK
QEAgLTEsMTAgKzEsMzQgQEAKK0NoZWNraW5nIHRhcmdldDE6CiBQQVNTIHJlc3VsdCBpcyA+PSAx
MworQ2hlY2tpbmcgdGFyZ2V0MjoKIFBBU1MgcmVzdWx0IGlzID49IDEzCitDaGVja2luZyB0YXJn
ZXQzOgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDQ6CitQQVNTIHJlc3Vs
dCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0NToKIFBBU1MgcmVzdWx0IGlzIDEyCitDaGVja2lu
ZyB0YXJnZXQ2OgogUEFTUyByZXN1bHQgaXMgMTIKK0NoZWNraW5nIHRhcmdldDc6CitQQVNTIHJl
c3VsdCBpcyA+PSByZXN1bHQyCitDaGVja2luZyB0YXJnZXQ4OgorUEFTUyByZXN1bHQgaXMgPj0g
MTMKK0NoZWNraW5nIHRhcmdldDk6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFy
Z2V0MTA6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MTE6CitQQVNTIHJl
c3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MTI6CiBQQVNTIHJlc3VsdCBpcyAxMgorQ2hl
Y2tpbmcgdGFyZ2V0MTM6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MTQ6
CiBQQVNTIHJlc3VsdCBpcyAxMgotUEFTUyByZXN1bHQgaXMgPj0gcmVzdWx0MgorQ2hlY2tpbmcg
dGFyZ2V0MTU6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MTY6CiBQQVNT
IHJlc3VsdCBpcyA+PSAxMwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkBAIC0x
NiwzICs0MCwxMSBAQCBUZXN0CiBUZXN0CiBUZXN0VGVzdFRlc3RUZXN0CiBUZXN0CitUZXN0CitU
ZXN0CitUZXN0CitUZXN0CitUZXN0CitUZXN0CitUZXN0CitUZXN0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVu
dC1hdXRvc2l6aW5nLXNraXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5n
L2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC5odG1sCmluZGV4
IDkwY2ZhNmQ3MjdhNGIxMGExNGUwNGJkMjBjODNjODI4MTQyNWQwZWEuLmU5YmU0MjFjMmFlOGMx
ZjkwM2Y2MzExMmZmZTU3YjcxOGI1YjMyY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmct
c2tpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVt
cG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC5odG1sCkBAIC0xMSwzMiArMTEs
NDIgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2
IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQiIHN0eWxlPSJmb250
LXNpemU6IDEycHg7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDog
Z3JlZW47Ij48c3BhbiBpZD0idGFyZ2V0MSIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8
L3NwYW4+PC9kaXY+CiA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsgb3ZlcmZsb3c6IGF1
dG87Ij48c3BhbiBpZD0idGFyZ2V0MiIgc3R5bGU9ImZsb2F0OiByaWdodDsgZm9udC1zaXplOiAx
MnB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KLTxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+
PHNwYW4gaWQ9InRhcmdldDMiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6
ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Ci08ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVl
bjsiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsi
PjxzcGFuIGlkPSJ0YXJnZXQ0Ij5UZXN0PC9zcGFuPjwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9
ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDMiIHN0eWxlPSJkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgd2lkdGg6IDIwcHg7Ij5UZXN0PC9zcGFuPjwv
ZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBzdHlsZT0iZGlzcGxh
eTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IDEycHg7IGZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIGlk
PSJ0YXJnZXQ0Ij5UZXN0PC9zcGFuPjwvc3Bhbj48L2Rpdj4KIDxkaXYgc3R5bGU9ImJhY2tncm91
bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDBweDsgdG9wOiAwcHg7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+
CiA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQ2IiBzdHls
ZT0iZGlzcGxheTogbm9uZTsgZm9udC1zaXplOiAxMnB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KIDxk
aXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9ImNvbXBhcmlzb24iIHN0eWxl
PSJmb250LXNpemU6IDEycHg7Ij5UZXN0PHNwYW4+VGVzdDxzcGFuPlRlc3Q8c3BhbiBpZD0idGFy
Z2V0NyI+VGVzdDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KIDxkaXYgc3R5bGU9
ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDgiIHN0eWxlPSJmb250LXNpemU6
IDEycHg7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJSI+VGVzdDwvc3Bhbj48L2Rpdj4K
KzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDkiIHN0eWxl
PSJmb250LXNpemU6IDEycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsiPlRlc3Q8L3NwYW4+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQxMCIg
c3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMTJweDsiPlRlc3Q8
L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0
YXJnZXQxMSIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgaGVpZ2h0OiAyMHB4OyBwb3NpdGlvbjog
Zml4ZWQ7IHdoaXRlLXNwYWNlOiBub3dyYXA7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHls
ZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0idGFyZ2V0MTIiIHN0eWxlPSJmb250LXNp
emU6IDEycHg7IGhlaWdodDogMjBweDsgcG9zaXRpb246IGZpeGVkOyBmbG9hdDogcmlnaHQ7Ij5U
ZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBp
ZD0idGFyZ2V0MTMiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGhlaWdodDogMjBweDsgcG9zaXRp
b246IGZpeGVkOyBmbG9hdDogcmlnaHQ7IG92ZXJmbG93LXg6IGhpZGRlbjsgd2lkdGg6IDEwMHB4
OyI+VGVzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNw
YW4gaWQ9InRhcmdldDE0IiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBoZWlnaHQ6IDIwcHg7IHdp
ZHRoOiAxMDBweDsgZmxvYXQ6IHJpZ2h0OyI+VGVzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9
ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDE1IiBzdHlsZT0ib3ZlcmZsb3ct
eTogaGlkZGVuOyBmbG9hdDogcmlnaHQ7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0i
YmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0idGFyZ2V0MTYiIHN0eWxlPSJmbG9hdDogcmln
aHQ7Ij5UZXN0PC9zcGFuPjwvZGl2PgogPHNjcmlwdD4KIGxldCByZXN1bHQ7CiBmdW5jdGlvbiBj
aGVjayhuYW1lLCBzaG91bGRHZXRBdXRvc2l6ZWQpIHsKICAgICBsZXQgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7CiAgICAgdGFyZ2V0Lm9mZnNldFdpZHRoOwogICAgIHJl
c3VsdCA9IE51bWJlci5wYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdl
dFByb3BlcnR5VmFsdWUoImZvbnQtc2l6ZSIpKTsKKyAgICBkZWJ1ZyhgQ2hlY2tpbmcgJHtuYW1l
fTpgKTsKICAgICBpZiAoc2hvdWxkR2V0QXV0b3NpemVkKQogICAgICAgICBzaG91bGRCZUdyZWF0
ZXJUaGFuT3JFcXVhbCgicmVzdWx0IiwgIjEzIik7CiAgICAgZWxzZQogICAgICAgICBzaG91bGRC
ZSgicmVzdWx0IiwgIjEyIik7CiB9Ci1jaGVjaygidGFyZ2V0IiwgdHJ1ZSk7CitjaGVjaygidGFy
Z2V0MSIsIHRydWUpOwogY2hlY2soInRhcmdldDIiLCB0cnVlKTsKLWNoZWNrKCJ0YXJnZXQzIiwg
ZmFsc2UpOwotY2hlY2soInRhcmdldDQiLCBmYWxzZSk7CitjaGVjaygidGFyZ2V0MyIsIHRydWUp
OworY2hlY2soInRhcmdldDQiLCB0cnVlKTsKIGNoZWNrKCJ0YXJnZXQ1IiwgZmFsc2UpOwogY2hl
Y2soInRhcmdldDYiLCBmYWxzZSk7CiAKK2RlYnVnKGBDaGVja2luZyB0YXJnZXQ3OmApOwogbGV0
IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ3Iik7CiB0YXJnZXQub2Zm
c2V0V2lkdGg7CiBsZXQgY29tcGFyaXNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21w
YXJpc29uIik7CkBAIC00Niw2ICs1NiwxNyBAQCBsZXQgcmVzdWx0MiA9IE51bWJlci5wYXJzZUlu
dCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb21wYXJpc29uKS5nZXRQcm9wZXJ0eVZhbAogc2hv
dWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInJlc3VsdCIsICJyZXN1bHQyIik7CiAKIGNoZWNrKCJ0
YXJnZXQ4IiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0OSIsIHRydWUpOworY2hlY2soInRhcmdldDEw
IiwgdHJ1ZSk7CisKKy8vIEJlbG93IGFyZSBzb21lIGNvbW1vbiBzY2VuYXJpb3Mgd2hlcmUgd2Ug
cHJlZmVyIChvciBwcmVmZXIgdG8gbm90KSBhZGp1c3QgdGV4dCBzaXplLiBUaGVzZSBleGFtcGxl
cyBhcmUgaW5zcGlyZWQgYnkKKy8vIGNvbW1vbiBwYXR0ZXJucyBpbiByZWFsIHdlYnBhZ2VzLgor
Y2hlY2soInRhcmdldDExIiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0MTIiLCBmYWxzZSk7CitjaGVj
aygidGFyZ2V0MTMiLCB0cnVlKTsKK2NoZWNrKCJ0YXJnZXQxNCIsIGZhbHNlKTsKK2NoZWNrKCJ0
YXJnZXQxNSIsIHRydWUpOworY2hlY2soInRhcmdldDE2IiwgdHJ1ZSk7CiA8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372811</attachid>
            <date>2019-06-24 17:21:39 -0700</date>
            <delta_ts>2019-06-24 17:33:01 -0700</delta_ts>
            <desc>Less code, more words</desc>
            <filename>bug-198763-20190624172139.patch</filename>
            <type>text/plain</type>
            <size>19875</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiZjliNjU2ZTQ0MGJh
NDExZjU2NDUyZGI1YmM2OTZlODgxZGQxYi4uZDhjMDdiNmEyYzcwODA3MGI3NmY5Y2EyYjcyNDc5
NWRiNGNiMTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE5LTA2LTI0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtUZXh0IGF1dG9z
aXppbmddIFtpUGFkT1NdIFJldmlzZSBvdXIgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgaWRlbXBv
dGVudCB0ZXh0IGF1dG9zaXppbmcgY2FuZGlkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MTgyNjI2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkanVzdHMgZXhpc3RpbmcgdGV4dCBhdXRvc2l6aW5nIGhldXJpc3RpY3Ms
IGJhc2VkIG9uIGEgc3VydmV5IG9mIHRleHQgb24gd2Vic2l0ZXMgaW4gdGhlIEFsZXhhIHRvcAor
ICAgICAgICA1MDAgdGhhdCBzaHJpbmsgZG93biB0byBmaXQgdGhlIHZpZXdwb3J0IHdoZW4gcmVx
dWVzdGluZyB0aGUgZGVza3RvcCB2ZXJzaW9uIG9mIHRoZSBzaXRlLiBUaGUgbmV3IGhldXJpc3Rp
YyBpcworICAgICAgICBkZXJpdmVkIGZyb20gdHJhaW5pbmcgZGVjaXNpb24gdHJlZXMgYWdhaW5z
dCB0aGUgZGF0YXNldCBvYnRhaW5lZCBmcm9tIHRoaXMgc3VydmV5LCBhbmQgYmFsYW5jZXMgZmFs
c2UgcG9zaXRpdmVzCisgICAgICAgIChjYXNlcyB3aGVyZSBsYXlvdXQgaXMgYnJva2VuIGR1ZSB0
byBhdXRvc2l6aW5nKSBhZ2FpbnN0IG92ZXJhbGwgYWNjdXJhY3kgKG1lYXN1cmVkIHVzaW5nIGNy
b3NzLXZhbGlkYXRpb24pLgorCisgICAgICAgIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLiBB
ZGRpdGlvbmFsbHksIHBsZWFzZSByZWZlciB0byB0aGUgbGluayBpbiB0aGUgcmFkYXIgZm9yIG1v
cmUgZGV0YWlscywgYXMgd2VsbCBhcworICAgICAgICByZXNvdXJjZXMgdXNlZCB0byBnZW5lcmF0
ZSwgdmFsaWRhdGUsIGFuZCBhbmFseXplIHRoZXNlIGRlY2lzaW9uIHRyZWVzLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50
LWF1dG9zaXppbmctc2tpcC5odG1sCisKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZUZvclRl
eHRBdXRvc2l6aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmlzSWRlbXBvdGVudFRleHRBdXRvc2l6
aW5nQ2FuZGlkYXRlIGNvbnN0KToKKworICAgICAgICBSZW5hbWUgQXV0b3NpemVTdGF0dXM6OnNo
b3VsZFNraXBTdWJ0cmVlIHRvIFJlbmRlclN0eWxlOjppc0lkZW1wb3RlbnRUZXh0QXV0b3Npemlu
Z0NhbmRpZGF0ZS4gV2UgcmVsb2NhdGUgdGhpcworICAgICAgICBsb2dpYyB0byBSZW5kZXJTdHls
ZSwgc3VjaCB0aGF0IHdlJ3JlIGFibGUgdG8gYXNrIHRoZSBlbGVtZW50J3MgUmVuZGVyU3R5bGUg
cXVlc3Rpb25zIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlcgorICAgICAgICB0aGUgZWxlbWVudCBz
aG91bGQgYmUgYXV0b3NpemVkLgorCisgICAgICAgIE9mIGNvdXJzZSwgdGhpcyBwYXRjaCBhZGRp
dGlvbmFsbHkgcmV2YW1wcyB0aGUgaGV1cmlzdGljIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIg
aXQgaXMgc2FmZSB0byBhdXRvc2l6ZSBhbgorICAgICAgICBlbGVtZW50LiBPdXIgY3VycmVudCBo
ZXVyaXN0aWMgaW4gdHJ1bmsgc2ltcGx5IGNoZWNrcyBmb3IgdGhlIHByZXNlbmNlIG9mIGlubGlu
ZSBibG9jayBkaXNwbGF5LCBvdXQgb2YgZmxvdworICAgICAgICBwb3NpdGlvbmluZyBhbmQgYSBm
aXhlZCBoZWlnaHQgYW5jZXN0b3I7IGlmIGFueSBvZiB0aGVzZSBjb25kaXRpb25zIGFyZSBzYXRp
c2ZpZWQsIHdlIG9wdCB0aGUgZWxlbWVudCBvdXQgb2YKKyAgICAgICAgdGV4dCBhdXRvc2l6aW5n
LiBUaGlzIGlzIGFuIGV4Y2VsbGVudCBzdHJhdGVneSBmb3IgYm9vc3Rpbmcgc29tZSBydW5zIG9m
IHRleHQgd2hpbGUgYXZvaWRpbmcgYXV0b3NpemluZyBpbiB0aGUKKyAgICAgICAgdmFzdCBtYWpv
cml0eSBvZiBjYXNlcyB3aGVyZSBpbmNyZWFzaW5nIGZvbnQgc2l6ZSBtYXkgbGVhZCB0byBsYXlv
dXQgYnJlYWthZ2UgKGUuZy4gb3ZlcmxhcHBpbmcgb3IgY2xpcHBlZCB0ZXh0LAorICAgICAgICBj
b250ZW50IHVuZXhwZWN0ZWRseSBmbG93aW5nIHRvIHRoZSBuZXh0IGxpbmUsIGV0Yy4pLiBIb3dl
dmVyLCBpdCBhbHNvIGF2b2lkcyBib29zdGluZyBmb250IHNpemVzIGluIG1hbnkKKyAgICAgICAg
c2NlbmFyaW9zIHdoZXJlIGJvb3N0aW5nIGZvbnQgc2l6ZXMgaXMgZGVzaXJlZDsgZm9yIGNvbmNy
ZXRlIGV4YW1wbGVzLCBzZWUgdGhlIChjdXJyZW50bHkgMjQpIHJhZGFycyBhYm91dCBzbWFsbAor
ICAgICAgICBmb250IHNpemVzIHRoYXQgYXJlIGR1cGVkIHRvIDxyZGFyOi8vcHJvYmxlbS81MTgy
NjI2Nj4uCisKKyAgICAgICAgVG8gaGVscCBhbmFseXplIGFuZCBpZGVudGlmeSB0cmVuZHMgaW4g
YXV0b3NpemFibGUgYW5kIG5vbi1hdXRvc2l6YWJsZSB0ZXh0LCB3ZSBhc3NlbWJsZWQgYSBkYXRh
c2V0IG9mIGVsZW1lbnRzCisgICAgICAgIHdpdGggdGV4dCBmcm9tIHRoZSBBbGV4YSB0b3AgNTAw
IHRoYXQgZWl0aGVyOiAoMSkgd2VyZSB0b28gc21hbGwgYW5kIGNvdWxkIGJlIGJvb3N0ZWQgc2Fm
ZWx5LCBvciAoMikgd291bGQgYnJlYWsKKyAgICAgICAgbGF5b3V0IGlmIGJvb3N0ZWQuIFdpdGgg
dGhpcyBsYWJlbGVkIGRhdGFzZXQsIHdlIHRoZW4gdHJhaW5lZCBiaW5hcnkgZGVjaXNpb24gdHJl
ZXMgdG8gY2xhc3NpZnkgdGhlIGRhdGEuIEVhY2gKKyAgICAgICAgZGVjaXNpb24gdHJlZSB3YXMg
dHJhaW5lZCB3aXRoIGEgbnVtYmVyIG9mIGh5cGVycGFyYW1ldGVyczogbmFtZWx5LCBtYXhpbXVt
IGRlcHRoLCBtaW5pbXVtIGxlYWYgc2l6ZSwgYW5kIHRoZQorICAgICAgICBhbW91bnQgb2YgYmlh
cyB0b3dhcmRzIG5lZ2F0aXZlIHNhbXBsZXMgKGkuZS4gdGhlIHJhdGlvIG9mIHRoZSB3ZWlnaHQg
b2YgYSBub24tYXV0b3NpemFibGUgc2FtcGxlIHJlbGF0aXZlIHRvCisgICAgICAgIHRoZSB3ZWln
aHQgb2YgYW4gYXV0b3NpemFibGUgc2FtcGxlKS4KKworICAgICAgICBGb3IgZWFjaCAzLXR1cGxl
IG9mIHRoZXNlIGh5cGVycGFyYW1ldGVycyAoODAwIGluIHRvdGFsOiBtYXggZGVwdGggYmV0d2Vl
biAzIGFuZCAxMCwgbWluIGxlYWYgc2l6ZSBiZXR3ZWVuIDEgYW5kCisgICAgICAgIDEwIGFuZCBi
aWFzIGJldHdlZW4gMSBhbmQgMTApLCBmb3IgNTAwMCBpdGVyYXRpb25zIGVhY2gsIHdlIHNwbGl0
IHRoZSBmdWxsIGRhdGFzZXQgaW50byBhIHRyYWluaW5nIGRhdGFzZXQgYW5kCisgICAgICAgIGEg
Y3Jvc3MtdmFsaWRhdGlvbiBkYXRhc2V0LCB0cmFpbmVkIGEgZGVjaXNpb24gdHJlZSB1c2luZyB0
aGUgdHJhaW5pbmcgc2V0LCBhbmQgdGVzdGVkIGFnYWluc3QgdGhlIGNyb3NzLQorICAgICAgICB2
YWxpZGF0aW9uIHNldCB0byBjb21wdXRlIGF2ZXJhZ2UgcHJlY2lzaW9uLCByZWNhbGwsIGFuZCBv
dmVyYWxsIGFjY3VyYWN5IGZvciBlYWNoIHR1cGxlIG9mIGh5cGVycGFyYW1ldGVycy4KKworICAg
ICAgICBUaGUgZGVjaXNpb24gdHJlZSBpbnRyb2R1Y2VkIGluIHRoaXMgcGF0Y2ggd2FzIGdlbmVy
YXRlZCB1c2luZyBhIGhhbmQtcGlja2VkIHNldCBvZiBoeXBlcnBhcmFtZXRlcnMgKG1heCBkZXB0
aAorICAgICAgICAxMCwgbWluIGxlYWYgc2l6ZSA0LCBhbmQgbmVnYXRpdmUgYmlhcyAyKSB0byBw
cm92aWRlIGEgYmFsYW5jZSBiZXR3ZWVuIHByZWNpc2lvbiBzY29yZXMgKGxpbWl0aW5nIGxheW91
dAorICAgICAgICBicmVha2FnZSkgYW5kIHJlY2FsbCBzY29yZSAoZW5zdXJpbmcgdGhhdCBzbWFs
bCB0ZXh0IGlzIG1vc3RseSBhdXRvc2l6ZWQpLCB3aGlsZSBvcHRpbWl6aW5nIGZvciBvdmVyYWxs
CisgICAgICAgIGFjY3VyYWN5LiBDcm9zcy12YWxpZGF0aW9uIHNjb3JlcyBwcmVkaWN0IHRoYXQg
dGhlIG92ZXJhbGwgYWNjdXJhY3kgb2YgdGhpcyBjbGFzc2lmaWVyIGlzIGFwcHJveGltYXRlbHkg
NzAlLCB1cAorICAgICAgICBmcm9tIHRoZSBjdXJyZW50IGFjY3VyYWN5IGluIHRydW5rICh+NTMl
KS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCisgICAgICAg
IEdyb3cgdGhlIHdpZHRoIG9mIGBhdXRvc2l6ZVN0YXR1c2AgZnJvbSA0IHRvIDggKG5vdGFibHks
IHRoaXMgZG9lcyBub3QgaW5jcmVhc2UgdGhlIHNpemUgb2YgUmVuZGVyU3R5bGUpLgorCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1dG9zaXplU3RhdHVzOjpzaG91bGRTa2lwU3VidHJlZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5oOgorCisgICAgICAgIElu
dHJvZHVjZSBuZXcgdGV4dCBhdXRvc2l6aW5nIHN0YXRlIGZsYWdzLCBhbmQgcmVtb3ZlIHNvbWUg
ZXhpc3Rpbmcgb25lcy4KKwogMjAxOS0wNi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFBhZ2VzIHVzaW5nIEdvb2dsZSdzIGFudGktZmxpY2tlciBvcHRpbWl6
YXRpb24gbWF5IHRha2UgfjUgc2Vjb25kcyB0byBkbyBpbml0aWFsIHBhaW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMDI0ODc5MGVlYjBhODgyM2VhYWE2YTkyNjA0NmJi
YzQ4OGIwMTU2OS4uYjNlNmUxNDE1ZjU1YWY1YWVjNTEyM2YzZWM5MDE1NWZmMmViYzJjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtODc5LDE3ICs4NzksMTcgQEAgc3Rh
dGljIGJvb2wgaGFzVGV4dENoaWxkcmVuKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAKIHZvaWQg
U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byBuZXdBdXRv
c2l6ZVN0YXR1cyA9IEF1dG9zaXplU3RhdHVzOjp1cGRhdGVTdGF0dXMoc3R5bGUpOwogICAgIGlm
ICghc2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKSB8fCAhc2V0dGluZ3MoKS50ZXh0
QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBB
dXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKHN0eWxlKTsKICAgICBpZiAoIWhhc1RleHRDaGls
ZHJlbihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0eWxlLnRleHRTaXpl
QWRqdXN0KCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChuZXdBdXRvc2l6
ZVN0YXR1cy5zaG91bGRTa2lwU3VidHJlZSgpKQorICAgIGlmICghc3R5bGUuaXNJZGVtcG90ZW50
VGV4dEF1dG9zaXppbmdDYW5kaWRhdGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmxvYXQg
aW5pdGlhbFNjYWxlID0gZG9jdW1lbnQoKS5wYWdlKCkgPyBkb2N1bWVudCgpLnBhZ2UoKS0+aW5p
dGlhbFNjYWxlKCkgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKaW5kZXggMTRiMWNhMDM4NzRiYzhkNzI2MTY3M2Q0MDcxYTIzYjc0ZmI2ZmY3
Ny4uMGQ0NTk3MjEzZmQ2MTFlNGNjNDM0NTVhNWRmNDc2OTc1MjFjMmViZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00OTIsNiArNDky
LDMyIEBAIGJvb2wgUmVuZGVyU3R5bGU6OmVxdWFsRm9yVGV4dEF1dG9zaXppbmcoY29uc3QgUmVu
ZGVyU3R5bGUmIG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT50ZXh0T3ZlcmZsb3cgPT0gb3RoZXIubV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dGV4dE92ZXJm
bG93OwogfQogCitib29sIFJlbmRlclN0eWxlOjppc0lkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0Nh
bmRpZGF0ZSgpIGNvbnN0Cit7CisgICAgYXV0byBmaWVsZHMgPSBPcHRpb25TZXQ8QXV0b3NpemVT
dGF0dXM6OkZpZWxkcz46OmZyb21SYXcobV9pbmhlcml0ZWRGbGFncy5hdXRvc2l6ZVN0YXR1cyk7
CisgICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpEaXNwbGF5
Tm9uZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChmaWVsZHMuY29udGFpbnMo
QXV0b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4ZWRIZWlnaHQpKSB7CisgICAgICAgIGlmICh3aGl0
ZVNwYWNlKCkgPT0gV2hpdGVTcGFjZTo6Tm9XcmFwKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICAgICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpG
bG9hdGluZykpCisgICAgICAgICAgICByZXR1cm4gZmllbGRzLmNvbnRhaW5zKEF1dG9zaXplU3Rh
dHVzOjpGaWVsZHM6Ok91dE9mRmxvd1Bvc2l0aW9uKSAmJiBmaWVsZHMuY29udGFpbnMoQXV0b3Np
emVTdGF0dXM6OkZpZWxkczo6T3ZlcmZsb3dYSGlkZGVuKTsKKworICAgICAgICBpZiAoZmllbGRz
LmNvbnRhaW5zKEF1dG9zaXplU3RhdHVzOjpGaWVsZHM6OkZpeGVkV2lkdGgpKQorICAgICAgICAg
ICAgcmV0dXJuICFmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3V0T2ZG
bG93UG9zaXRpb24pOworICAgIH0KKworICAgIGlmIChmaWVsZHMuY29udGFpbnMoQXV0b3NpemVT
dGF0dXM6OkZpZWxkczo6RmxvYXRpbmcpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlm
IChmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4ZWRXaWR0aCkpCisg
ICAgICAgIHJldHVybiBmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3Zl
cmZsb3dZSGlkZGVuKTsKKworICAgIHJldHVybiAhZmllbGRzLmNvbnRhaW5zKEF1dG9zaXplU3Rh
dHVzOjpGaWVsZHM6Ok92ZXJmbG93WUhpZGRlbikgJiYgIWZpZWxkcy5jb250YWlucyhBdXRvc2l6
ZVN0YXR1czo6RmllbGRzOjpGaXhlZE1heFdpZHRoKTsKK30KKwogQXV0b3NpemVTdGF0dXMgUmVu
ZGVyU3R5bGU6OmF1dG9zaXplU3RhdHVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gT3B0aW9uU2V0
PEF1dG9zaXplU3RhdHVzOjpGaWVsZHM+Ojpmcm9tUmF3KG1faW5oZXJpdGVkRmxhZ3MuYXV0b3Np
emVTdGF0dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAppbmRleCBlYzMwZWE2M2ZhODUwNzk3MjM2M2UxZDRiOGExMTNmYjcxYjVlZWQ2Li5lYjJhMmY2
ZjlhYTI5ODYwMjJkNWFkODI0ZmIxMmZhNjgyY2FjMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzQwLDcgKzc0MCw4IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1c3RtZW50IHRl
eHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNp
emVBZGp1c3Q7IH0KLSAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIEF1dG9zaXplU3RhdHVzIGF1dG9zaXplU3RhdHVzKCkgY29uc3Q7
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0lkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0NhbmRp
ZGF0ZSgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBUZXh0U2VjdXJpdHkgdGV4dFNlY3VyaXR5KCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dFNlY3VyaXR5PihtX3JhcmVJbmhlcml0ZWRE
YXRhLT50ZXh0U2VjdXJpdHkpOyB9CkBAIC0xODM0LDkgKzE4MzUsOSBAQCBwcml2YXRlOgogICAg
ICAgICAvLyA0OCBiaXRzCiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotICAgICAgICB1
bnNpZ25lZCBhdXRvc2l6ZVN0YXR1cyA6IDQ7CisgICAgICAgIHVuc2lnbmVkIGF1dG9zaXplU3Rh
dHVzIDogODsKICNlbmRpZgotICAgICAgICAvLyA1MiBiaXRzCisgICAgICAgIC8vIDU2IGJpdHMK
ICAgICB9OwogCiAgICAgLy8gVGhpcyBjb25zdHJ1Y3RvciBpcyB1c2VkIHRvIGltcGxlbWVudCB0
aGUgcmVwbGFjZSBvcGVyYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuY3BwCmluZGV4IDAyMDAyNzgwMGY2MmExYzhiNDMw
NTk0NmE3Zjc5ZDMxYjdjNjNhODEuLmNjMWRhODBhNWI5NzQzNjcwNTA3ZTdmNTQ1ODUzNjc3NTg5
YTE5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6
ZUFkanVzdG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0
U2l6ZUFkanVzdG1lbnQuY3BwCkBAIC00MiwzMCArNDIsMzUgQEAgYm9vbCBBdXRvc2l6ZVN0YXR1
czo6Y29udGFpbnMoRmllbGRzIGZpZWxkcykgY29uc3QKICAgICByZXR1cm4gbV9maWVsZHMuY29u
dGFpbnMoZmllbGRzKTsKIH0KIAotQXV0b3NpemVTdGF0dXMgQXV0b3NpemVTdGF0dXM6OnVwZGF0
ZVN0YXR1cyhSZW5kZXJTdHlsZSYgc3R5bGUpCit2b2lkIEF1dG9zaXplU3RhdHVzOjp1cGRhdGVT
dGF0dXMoUmVuZGVyU3R5bGUmIHN0eWxlKQogewotICAgIE9wdGlvblNldDxGaWVsZHM+IHJlc3Vs
dCA9IHN0eWxlLmF1dG9zaXplU3RhdHVzKCkuZmllbGRzKCk7CisgICAgYXV0byByZXN1bHQgPSBz
dHlsZS5hdXRvc2l6ZVN0YXR1cygpLmZpZWxkcygpOworCisgICAgaWYgKHN0eWxlLmRpc3BsYXko
KSA9PSBEaXNwbGF5VHlwZTo6Tm9uZSkKKyAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkRpc3Bs
YXlOb25lKTsKKwogICAgIGlmIChzdHlsZS5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKQotICAgICAg
ICByZXN1bHQuYWRkKEZpZWxkczo6Rm91bmRPdXRPZkZsb3dQb3NpdGlvbik7Ci0gICAgc3dpdGNo
IChzdHlsZS5kaXNwbGF5KCkpIHsKLSAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jazoK
LSAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkZvdW5kSW5saW5lQmxvY2spOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIERpc3BsYXlUeXBlOjpOb25lOgotICAgICAgICByZXN1bHQuYWRkKEZp
ZWxkczo6Rm91bmREaXNwbGF5Tm9uZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6IC8v
IEZJWE1FOiBBZGQgbW9yZSBjYXNlcy4KLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgICAgICBy
ZXN1bHQuYWRkKEZpZWxkczo6T3V0T2ZGbG93UG9zaXRpb24pOworCiAgICAgaWYgKHN0eWxlLmhl
aWdodCgpLmlzRml4ZWQoKSkKLSAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkZvdW5kRml4ZWRI
ZWlnaHQpOwotICAgIHN0eWxlLnNldEF1dG9zaXplU3RhdHVzKHJlc3VsdCk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KKyAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkZpeGVkSGVpZ2h0KTsKIAot
Ym9vbCBBdXRvc2l6ZVN0YXR1czo6c2hvdWxkU2tpcFN1YnRyZWUoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2ZpZWxkcy5jb250YWluc0FueSh7IEZpZWxkczo6Rm91bmRPdXRPZkZsb3dQb3NpdGlv
biwgRmllbGRzOjpGb3VuZElubGluZUJsb2NrLCBGaWVsZHM6OkZvdW5kRml4ZWRIZWlnaHQsIEZp
ZWxkczo6Rm91bmREaXNwbGF5Tm9uZSB9KTsKKyAgICBpZiAoc3R5bGUud2lkdGgoKS5pc0ZpeGVk
KCkpCisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpGaXhlZFdpZHRoKTsKKworICAgIGlmIChz
dHlsZS5tYXhXaWR0aCgpLmlzRml4ZWQoKSkKKyAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkZp
eGVkTWF4V2lkdGgpOworCisgICAgaWYgKHN0eWxlLm92ZXJmbG93WCgpID09IE92ZXJmbG93OjpI
aWRkZW4pCisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpPdmVyZmxvd1hIaWRkZW4pOworCisg
ICAgaWYgKHN0eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpIaWRkZW4pCisgICAgICAgIHJl
c3VsdC5hZGQoRmllbGRzOjpPdmVyZmxvd1lIaWRkZW4pOworCisgICAgaWYgKHN0eWxlLmlzRmxv
YXRpbmcoKSkKKyAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6OkZsb2F0aW5nKTsKKworICAgIHN0
eWxlLnNldEF1dG9zaXplU3RhdHVzKHJlc3VsdCk7CiB9CiAKIGZsb2F0IEF1dG9zaXplU3RhdHVz
OjppZGVtcG90ZW50VGV4dFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgZmxvYXQgcGFnZVNjYWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRq
dXN0bWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0
bWVudC5oCmluZGV4IDlmNmIzZmI4OGIxNTcwMmEyODc5Y2NmMzM1ZjhmM2IxMzI0NjI5NTkuLmZm
YzAzNDRiMmI0ZmFlYjFlZGU0NjY5Yjg2NTE4ZTBmZGRkNzI2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmgKQEAgLTUyLDEw
ICs1MiwxNCBAQCBwcml2YXRlOgogY2xhc3MgQXV0b3NpemVTdGF0dXMgewogcHVibGljOgogICAg
IGVudW0gY2xhc3MgRmllbGRzIDogdWludDhfdCB7Ci0gICAgICAgIEZvdW5kT3V0T2ZGbG93UG9z
aXRpb24gPSAxIDw8IDAsCi0gICAgICAgIEZvdW5kSW5saW5lQmxvY2sgPSAxIDw8IDEsCi0gICAg
ICAgIEZvdW5kRml4ZWRIZWlnaHQgPSAxIDw8IDIsCi0gICAgICAgIEZvdW5kRGlzcGxheU5vbmUg
PSAxIDw8IDMKKyAgICAgICAgRGlzcGxheU5vbmUgPSAxIDw8IDAsCisgICAgICAgIEZpeGVkSGVp
Z2h0ID0gMSA8PCAxLAorICAgICAgICBGaXhlZFdpZHRoID0gMSA8PCAyLAorICAgICAgICBGbG9h
dGluZyA9IDEgPDwgMywKKyAgICAgICAgT3ZlcmZsb3dYSGlkZGVuID0gMSA8PCA0LAorICAgICAg
ICBPdmVyZmxvd1lIaWRkZW4gPSAxIDw8IDUsCisgICAgICAgIE91dE9mRmxvd1Bvc2l0aW9uID0g
MSA8PCA2LAorICAgICAgICBGaXhlZE1heFdpZHRoID0gMSA8PCA3CiAgICAgICAgIC8vIEFkZGlu
ZyBuZXcgdmFsdWVzIHJlcXVpcmVzIGdpdmluZyBSZW5kZXJTdHlsZTo6SW5oZXJpdGVkRmxhZ3M6
OmF1dG9zaXplU3RhdHVzIGFkZGl0aW9uYWwgYml0cy4KICAgICB9OwogCkBAIC02MywxMCArNjcs
OSBAQCBwdWJsaWM6CiAgICAgT3B0aW9uU2V0PEZpZWxkcz4gZmllbGRzKCkgY29uc3QgeyByZXR1
cm4gbV9maWVsZHM7IH0KIAogICAgIGJvb2wgY29udGFpbnMoRmllbGRzKSBjb25zdDsKLSAgICBi
b29sIHNob3VsZFNraXBTdWJ0cmVlKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgZmxvYXQgaWRlbXBv
dGVudFRleHRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGZsb2F0IHBhZ2VTY2FsZSk7Ci0gICAg
c3RhdGljIEF1dG9zaXplU3RhdHVzIHVwZGF0ZVN0YXR1cyhSZW5kZXJTdHlsZSYpOworICAgIHN0
YXRpYyB2b2lkIHVwZGF0ZVN0YXR1cyhSZW5kZXJTdHlsZSYpOwogCiBwcml2YXRlOgogICAgIE9w
dGlvblNldDxGaWVsZHM+IG1fZmllbGRzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJiZWNjZjEyODUwN2E2NWI5MzdmYTI0
N2MwMDAzNjg5MmNjZjI4ODQuLmZmZDM3ZDI4YWJkOGQyY2IyMWUwMzUyYjkwYTRkNzQ2OGZmM2E0
NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0wNi0yNCAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbVGV4dCBhdXRvc2l6aW5nXSBbaVBhZE9T
XSBSZXZpc2Ugb3VyIGhldXJpc3RpY3MgdG8gZGV0ZXJtaW5lIGlkZW1wb3RlbnQgdGV4dCBhdXRv
c2l6aW5nIGNhbmRpZGF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE4MjYyNjY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBh
biBleGlzdGluZyB0ZXh0IGF1dG9zaXppbmcgdGVzdCwgYW5kIGludHJvZHVjZSBzb21lIG5ldyB0
ZXN0IGNhc2VzIHRoYXQgY29ycmVzcG9uZCB0byBzZXZlcmFsIGNvbW1vbgorICAgICAgICBwYXR0
ZXJucyBvZiBhdXRvc2l6YWJsZSAob3Igbm9uLWF1dG9zaXphYmxlKSB0ZXh0IG9uIHdlYnNpdGVz
IHRoYXQgd2VyZSBzdXJ2ZXllZC4KKworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lv
cy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctYWZ0ZXItY2hhbmdpbmctaW5p
dGlhbC1zY2FsZS5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVt
cG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQt
YXV0b3NpemluZy1za2lwLmh0bWw6CisKIDIwMTktMDYtMjQgIEFsZXhleSBTaHZheWthICA8c2h2
YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBBcnJheS5wcm90b3R5cGUue2ZsYXQs
ZmxhdE1hcH0gdG8gdW5zY29wYWJsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctYWZ0
ZXItY2hhbmdpbmctaW5pdGlhbC1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1
dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1hZnRlci1j
aGFuZ2luZy1pbml0aWFsLXNjYWxlLmh0bWwKaW5kZXggNmU0MDUwMjgzMWQwOTg4MzdhOGQ3NzNi
NzU0N2UyOWE3NGVlNWI5NS4uODc3NDVkMjdjMDlkMmQwOTY2NTQzMzZmYWZlODA2NWY2ZDE5NzFk
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1w
b3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1hZnRlci1jaGFuZ2luZy1pbml0aWFsLXNj
YWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1w
b3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1hZnRlci1jaGFuZ2luZy1pbml0aWFsLXNj
YWxlLmh0bWwKQEAgLTIwLDcgKzIwLDYgQEAgcHJlLCBjb2RlIHsKIC5jb250YWluZXIgewogICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgIHBhZGRpbmc6IDhweCAxMnB4IDEycHggMTJw
eDsKLSAgICBtYXgtd2lkdGg6IDMyMHB4OwogfQogCiAjdGV4dDAsICN0ZXh0NSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUv
aWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3Npemlu
Zy1za2lwLWV4cGVjdGVkLnR4dAppbmRleCAzMzlkMTkwNTMxZmM4YTM3Yjg1ODcwMjNmODU5NGUz
YzAzMWQ0NzU3Li4wYTZjODllYTA1NTc5NWJkMDZhOWQ2NzExOGU3MWFjNThmOGE3Yzg5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1v
ZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1
dG9zaXppbmctc2tpcC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMzQgQEAKK0NoZWNraW5nIHRh
cmdldDE6CiBQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MjoKIFBBU1MgcmVz
dWx0IGlzID49IDEzCitDaGVja2luZyB0YXJnZXQzOgogUEFTUyByZXN1bHQgaXMgMTIKK0NoZWNr
aW5nIHRhcmdldDQ6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0NToKK1BB
U1MgcmVzdWx0IGlzID49IDEzCitDaGVja2luZyB0YXJnZXQ2OgogUEFTUyByZXN1bHQgaXMgMTIK
K0NoZWNraW5nIHRhcmdldDc6CitQQVNTIHJlc3VsdCBpcyA+PSByZXN1bHQyCitDaGVja2luZyB0
YXJnZXQ4OgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDk6CitQQVNTIHJl
c3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MTA6CitQQVNTIHJlc3VsdCBpcyA+PSAxMwor
Q2hlY2tpbmcgdGFyZ2V0MTE6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0
MTI6CiBQQVNTIHJlc3VsdCBpcyAxMgorQ2hlY2tpbmcgdGFyZ2V0MTM6CitQQVNTIHJlc3VsdCBp
cyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MTQ6CiBQQVNTIHJlc3VsdCBpcyAxMgotUEFTUyByZXN1
bHQgaXMgPj0gcmVzdWx0MgorQ2hlY2tpbmcgdGFyZ2V0MTU6CitQQVNTIHJlc3VsdCBpcyA+PSAx
MworQ2hlY2tpbmcgdGFyZ2V0MTY6CiBQQVNTIHJlc3VsdCBpcyA+PSAxMwogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkBAIC0xNiwzICs0MCwxMSBAQCBUZXN0CiBUZXN0CiBUZXN0
VGVzdFRlc3RUZXN0CiBUZXN0CitUZXN0CitUZXN0CitUZXN0CitUZXN0CitUZXN0CitUZXN0CitU
ZXN0CitUZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9p
b3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50
LWF1dG9zaXppbmctc2tpcC5odG1sCmluZGV4IDkwY2ZhNmQ3MjdhNGIxMGExNGUwNGJkMjBjODNj
ODI4MTQyNWQwZWEuLjk2ZjdmYWZlOTRhZmFiMzI2YWM2MjcxZmQ2MTIyMjBhZjc0YTVjZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50
bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXpp
bmctc2tpcC5odG1sCkBAIC0xMSwzMiArMTEsNDIgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxz
cGFuIGlkPSJ0YXJnZXQiIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij5UZXN0PC9zcGFuPjwvZGl2
PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0idGFyZ2V0MSIgc3R5
bGU9ImZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+CiA8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kOiBncmVlbjsgb3ZlcmZsb3c6IGF1dG87Ij48c3BhbiBpZD0idGFyZ2V0MiIgc3R5bGU9
ImZsb2F0OiByaWdodDsgZm9udC1zaXplOiAxMnB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KLTxkaXYg
c3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDMiIHN0eWxlPSJkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Ci08
ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIGlkPSJ0YXJnZXQ0Ij5UZXN0PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9
InRhcmdldDMiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsg
d2lkdGg6IDIwcHg7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDog
Z3JlZW47Ij48c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IDEycHg7
IGZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIGlkPSJ0YXJnZXQ0Ij5UZXN0PC9zcGFuPjwvc3Bhbj48
L2Rpdj4KIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDUi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IGZvbnQtc2l6
ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+CiA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVl
bjsiPjxzcGFuIGlkPSJ0YXJnZXQ2IiBzdHlsZT0iZGlzcGxheTogbm9uZTsgZm9udC1zaXplOiAx
MnB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+
PHNwYW4gaWQ9ImNvbXBhcmlzb24iIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij5UZXN0PHNwYW4+
VGVzdDxzcGFuPlRlc3Q8c3BhbiBpZD0idGFyZ2V0NyI+VGVzdDwvc3Bhbj48L3NwYW4+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9
InRhcmdldDgiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IC13ZWJraXQtdGV4dC1zaXplLWFkanVz
dDogMTAwJSI+VGVzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVu
OyI+PHNwYW4gaWQ9InRhcmdldDkiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGRpc3BsYXk6IGlu
bGluZS1ibG9jazsiPlRlc3Q8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBn
cmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQxMCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgd2lkdGg6
IDIwcHg7IGhlaWdodDogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQxMSIgc3R5bGU9ImZvbnQtc2l6ZTogMTJw
eDsgaGVpZ2h0OiAyMHB4OyBwb3NpdGlvbjogZml4ZWQ7IHdoaXRlLXNwYWNlOiBub3dyYXA7Ij5U
ZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBp
ZD0idGFyZ2V0MTIiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGhlaWdodDogMjBweDsgcG9zaXRp
b246IGZpeGVkOyBmbG9hdDogcmlnaHQ7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0i
YmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0idGFyZ2V0MTMiIHN0eWxlPSJmb250LXNpemU6
IDEycHg7IGhlaWdodDogMjBweDsgcG9zaXRpb246IGZpeGVkOyBmbG9hdDogcmlnaHQ7IG92ZXJm
bG93LXg6IGhpZGRlbjsgd2lkdGg6IDEwMHB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5
bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDE0IiBzdHlsZT0iZm9udC1z
aXplOiAxMnB4OyBoZWlnaHQ6IDIwcHg7IHdpZHRoOiAxMDBweDsgZmxvYXQ6IHJpZ2h0OyI+VGVz
dDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9
InRhcmdldDE1IiBzdHlsZT0ib3ZlcmZsb3cteTogaGlkZGVuOyBmbG9hdDogcmlnaHQ7Ij5UZXN0
PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0i
dGFyZ2V0MTYiIHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij5UZXN0PC9zcGFuPjwvZGl2PgogPHNjcmlw
dD4KIGxldCByZXN1bHQ7CiBmdW5jdGlvbiBjaGVjayhuYW1lLCBzaG91bGRHZXRBdXRvc2l6ZWQp
IHsKICAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7CiAgICAg
dGFyZ2V0Lm9mZnNldFdpZHRoOwogICAgIHJlc3VsdCA9IE51bWJlci5wYXJzZUludCh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoImZvbnQtc2l6ZSIpKTsK
KyAgICBkZWJ1ZyhgQ2hlY2tpbmcgJHtuYW1lfTpgKTsKICAgICBpZiAoc2hvdWxkR2V0QXV0b3Np
emVkKQogICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgicmVzdWx0IiwgIjEzIik7
CiAgICAgZWxzZQogICAgICAgICBzaG91bGRCZSgicmVzdWx0IiwgIjEyIik7CiB9Ci1jaGVjaygi
dGFyZ2V0IiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0MSIsIHRydWUpOwogY2hlY2soInRhcmdldDIi
LCB0cnVlKTsKIGNoZWNrKCJ0YXJnZXQzIiwgZmFsc2UpOwotY2hlY2soInRhcmdldDQiLCBmYWxz
ZSk7Ci1jaGVjaygidGFyZ2V0NSIsIGZhbHNlKTsKK2NoZWNrKCJ0YXJnZXQ0IiwgdHJ1ZSk7Citj
aGVjaygidGFyZ2V0NSIsIHRydWUpOwogY2hlY2soInRhcmdldDYiLCBmYWxzZSk7CiAKK2RlYnVn
KGBDaGVja2luZyB0YXJnZXQ3OmApOwogbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQ3Iik7CiB0YXJnZXQub2Zmc2V0V2lkdGg7CiBsZXQgY29tcGFyaXNvbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wYXJpc29uIik7CkBAIC00Niw2ICs1NiwxNyBAQCBs
ZXQgcmVzdWx0MiA9IE51bWJlci5wYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb21w
YXJpc29uKS5nZXRQcm9wZXJ0eVZhbAogc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInJlc3Vs
dCIsICJyZXN1bHQyIik7CiAKIGNoZWNrKCJ0YXJnZXQ4IiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0
OSIsIHRydWUpOworY2hlY2soInRhcmdldDEwIiwgdHJ1ZSk7CisKKy8vIEJlbG93IGFyZSBzb21l
IGNvbW1vbiBzY2VuYXJpb3Mgd2hlcmUgd2UgcHJlZmVyIChvciBwcmVmZXIgdG8gbm90KSBhZGp1
c3QgdGV4dCBzaXplLiBUaGVzZSBleGFtcGxlcyBhcmUgaW5zcGlyZWQgYnkKKy8vIGNvbW1vbiBw
YXR0ZXJucyBpbiByZWFsIHdlYnBhZ2VzLgorY2hlY2soInRhcmdldDExIiwgdHJ1ZSk7CitjaGVj
aygidGFyZ2V0MTIiLCBmYWxzZSk7CitjaGVjaygidGFyZ2V0MTMiLCB0cnVlKTsKK2NoZWNrKCJ0
YXJnZXQxNCIsIGZhbHNlKTsKK2NoZWNrKCJ0YXJnZXQxNSIsIHRydWUpOworY2hlY2soInRhcmdl
dDE2IiwgdHJ1ZSk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>
<flag name="review"
          id="388597"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372817</attachid>
            <date>2019-06-24 20:24:18 -0700</date>
            <delta_ts>2019-06-24 21:06:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198763-20190624202417.patch</filename>
            <type>text/plain</type>
            <size>23711</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiZjliNjU2ZTQ0MGJh
NDExZjU2NDUyZGI1YmM2OTZlODgxZGQxYi4uODFkMWZhMjE3M2UzZTZkZGRhNGNjOGY0MmZkMzg5
YjU4MWJmODMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE5LTA2LTI0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtUZXh0IGF1dG9z
aXppbmddIFtpUGFkT1NdIFJldmlzZSBvdXIgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgaWRlbXBv
dGVudCB0ZXh0IGF1dG9zaXppbmcgY2FuZGlkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MTgyNjI2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhZGp1c3RzIGV4aXN0aW5nIHRleHQgYXV0b3NpemluZyBoZXVyaXN0aWNzLCBi
YXNlZCBvbiBhIHN1cnZleSBvZiB0ZXh0IG9uIHdlYnNpdGVzIGluIHRoZSBBbGV4YSB0b3AKKyAg
ICAgICAgNTAwIHRoYXQgc2hyaW5rIGRvd24gdG8gZml0IHRoZSB2aWV3cG9ydCB3aGVuIHJlcXVl
c3RpbmcgdGhlIGRlc2t0b3AgdmVyc2lvbiBvZiB0aGUgc2l0ZS4gVGhlIG5ldyBoZXVyaXN0aWMg
aXMKKyAgICAgICAgZGVyaXZlZCBmcm9tIHRyYWluaW5nIGRlY2lzaW9uIHRyZWVzIGFnYWluc3Qg
dGhlIGRhdGFzZXQgb2J0YWluZWQgZnJvbSB0aGlzIHN1cnZleSwgYW5kIGJhbGFuY2VzIGZhbHNl
IHBvc2l0aXZlcworICAgICAgICAoY2FzZXMgd2hlcmUgbGF5b3V0IGlzIGJyb2tlbiBkdWUgdG8g
YXV0b3NpemluZykgYWdhaW5zdCBvdmVyYWxsIGFjY3VyYWN5IChtZWFzdXJlZCB1c2luZyBjcm9z
cy12YWxpZGF0aW9uKS4KKworICAgICAgICBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4gQWRk
aXRpb25hbGx5LCBwbGVhc2UgcmVmZXIgdG8gdGhlIGxpbmsgaW4gdGhlIHJhZGFyIGZvciBtb3Jl
IGRldGFpbHMsIGFzIHdlbGwgYXMKKyAgICAgICAgcmVzb3VyY2VzIHVzZWQgdG8gZ2VuZXJhdGUs
IHZhbGlkYXRlLCBhbmQgYW5hbHl6ZSB0aGVzZSBkZWNpc2lvbiB0cmVlcy4KKworICAgICAgICBU
ZXN0OiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1h
dXRvc2l6aW5nLWNhbmRpZGF0ZXMuaHRtbAorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVG
b3JUZXh0QXV0b3NpemluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppc0lkZW1wb3RlbnRUZXh0QXV0
b3NpemluZ0NhbmRpZGF0ZSBjb25zdCk6CisKKyAgICAgICAgUmVuYW1lIEF1dG9zaXplU3RhdHVz
OjpzaG91bGRTa2lwU3VidHJlZSB0byBSZW5kZXJTdHlsZTo6aXNJZGVtcG90ZW50VGV4dEF1dG9z
aXppbmdDYW5kaWRhdGUuIFdlIHJlbG9jYXRlIHRoaXMKKyAgICAgICAgbG9naWMgdG8gUmVuZGVy
U3R5bGUsIHN1Y2ggdGhhdCB3ZSdyZSBhYmxlIHRvIGFzayB0aGUgZWxlbWVudCdzIFJlbmRlclN0
eWxlIHF1ZXN0aW9ucyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIKKyAgICAgICAgdGhlIGVsZW1l
bnQgc2hvdWxkIGJlIGF1dG9zaXplZC4KKworICAgICAgICBPZiBjb3Vyc2UsIHRoaXMgcGF0Y2gg
YWRkaXRpb25hbGx5IHJldmFtcHMgdGhlIGhldXJpc3RpYyB1c2VkIHRvIGRldGVybWluZSB3aGV0
aGVyIGl0IGlzIHNhZmUgdG8gYXV0b3NpemUgYW4KKyAgICAgICAgZWxlbWVudC4gT3VyIGN1cnJl
bnQgaGV1cmlzdGljIGluIHRydW5rIHNpbXBseSBjaGVja3MgZm9yIHRoZSBwcmVzZW5jZSBvZiBp
bmxpbmUgYmxvY2sgZGlzcGxheSwgb3V0IG9mIGZsb3cKKyAgICAgICAgcG9zaXRpb25pbmcgYW5k
IGEgZml4ZWQgaGVpZ2h0IGFuY2VzdG9yOyBpZiBhbnkgb2YgdGhlc2UgY29uZGl0aW9ucyBhcmUg
c2F0aXNmaWVkLCB3ZSBvcHQgdGhlIGVsZW1lbnQgb3V0IG9mCisgICAgICAgIHRleHQgYXV0b3Np
emluZy4gVGhpcyBpcyBhbiBleGNlbGxlbnQgc3RyYXRlZ3kgZm9yIGJvb3N0aW5nIHNvbWUgcnVu
cyBvZiB0ZXh0IHdoaWxlIGF2b2lkaW5nIGF1dG9zaXppbmcgaW4gdGhlCisgICAgICAgIHZhc3Qg
bWFqb3JpdHkgb2YgY2FzZXMgd2hlcmUgaW5jcmVhc2luZyBmb250IHNpemUgbWF5IGxlYWQgdG8g
bGF5b3V0IGJyZWFrYWdlIChlLmcuIG92ZXJsYXBwaW5nIG9yIGNsaXBwZWQgdGV4dCwKKyAgICAg
ICAgY29udGVudCB1bmV4cGVjdGVkbHkgZmxvd2luZyB0byB0aGUgbmV4dCBsaW5lLCBldGMuKS4g
SG93ZXZlciwgaXQgYWxzbyBhdm9pZHMgYm9vc3RpbmcgZm9udCBzaXplcyBpbiBtYW55CisgICAg
ICAgIHNjZW5hcmlvcyB3aGVyZSBib29zdGluZyBmb250IHNpemVzIGlzIGRlc2lyZWQ7IGZvciBj
b25jcmV0ZSBleGFtcGxlcywgc2VlIHRoZSAoY3VycmVudGx5IDI0KSByYWRhcnMgYWJvdXQgc21h
bGwKKyAgICAgICAgZm9udCBzaXplcyB0aGF0IGFyZSBkdXBlZCB0byA8cmRhcjovL3Byb2JsZW0v
NTE4MjYyNjY+LgorCisgICAgICAgIFRvIGhlbHAgYW5hbHl6ZSBhbmQgaWRlbnRpZnkgdHJlbmRz
IGluIGF1dG9zaXphYmxlIGFuZCBub24tYXV0b3NpemFibGUgdGV4dCwgd2UgYXNzZW1ibGVkIGEg
ZGF0YXNldCBvZiBlbGVtZW50cworICAgICAgICB3aXRoIHRleHQgZnJvbSB0aGUgQWxleGEgdG9w
IDUwMCB0aGF0IGVpdGhlcjogKDEpIHdlcmUgdG9vIHNtYWxsIGFuZCBjb3VsZCBiZSBib29zdGVk
IHNhZmVseSwgb3IgKDIpIHdvdWxkIGJyZWFrCisgICAgICAgIGxheW91dCBpZiBib29zdGVkLiBX
aXRoIHRoaXMgbGFiZWxlZCBkYXRhc2V0LCB3ZSB0aGVuIHRyYWluZWQgYmluYXJ5IGRlY2lzaW9u
IHRyZWVzIHRvIGNsYXNzaWZ5IHRoZSBkYXRhLiBFYWNoCisgICAgICAgIGRlY2lzaW9uIHRyZWUg
d2FzIHRyYWluZWQgd2l0aCBhIG51bWJlciBvZiBoeXBlcnBhcmFtZXRlcnM6IG5hbWVseSwgbWF4
aW11bSBkZXB0aCwgbWluaW11bSBsZWFmIHNpemUsIGFuZCB0aGUKKyAgICAgICAgYW1vdW50IG9m
IGJpYXMgdG93YXJkcyBuZWdhdGl2ZSBzYW1wbGVzIChpLmUuIHRoZSByYXRpbyBvZiB0aGUgd2Vp
Z2h0IG9mIGEgbm9uLWF1dG9zaXphYmxlIHNhbXBsZSByZWxhdGl2ZSB0bworICAgICAgICB0aGUg
d2VpZ2h0IG9mIGFuIGF1dG9zaXphYmxlIHNhbXBsZSkuCisKKyAgICAgICAgRm9yIGVhY2ggMy10
dXBsZSBvZiB0aGVzZSBoeXBlcnBhcmFtZXRlcnMgKDgwMCBpbiB0b3RhbDogbWF4IGRlcHRoIGJl
dHdlZW4gMyBhbmQgMTAsIG1pbiBsZWFmIHNpemUgYmV0d2VlbiAxIGFuZAorICAgICAgICAxMCBh
bmQgYmlhcyBiZXR3ZWVuIDEgYW5kIDEwKSwgZm9yIDUwMDAgaXRlcmF0aW9ucyBlYWNoLCB3ZSBz
cGxpdCB0aGUgZnVsbCBkYXRhc2V0IGludG8gYSB0cmFpbmluZyBkYXRhc2V0IGFuZAorICAgICAg
ICBhIGNyb3NzLXZhbGlkYXRpb24gZGF0YXNldCwgdHJhaW5lZCBhIGRlY2lzaW9uIHRyZWUgdXNp
bmcgdGhlIHRyYWluaW5nIHNldCwgYW5kIHRlc3RlZCBhZ2FpbnN0IHRoZSBjcm9zcy0KKyAgICAg
ICAgdmFsaWRhdGlvbiBzZXQgdG8gY29tcHV0ZSBhdmVyYWdlIHByZWNpc2lvbiwgcmVjYWxsLCBh
bmQgb3ZlcmFsbCBhY2N1cmFjeSBmb3IgZWFjaCB0dXBsZSBvZiBoeXBlcnBhcmFtZXRlcnMuCisK
KyAgICAgICAgVGhlIGRlY2lzaW9uIHRyZWUgaW50cm9kdWNlZCBpbiB0aGlzIHBhdGNoIHdhcyBn
ZW5lcmF0ZWQgdXNpbmcgYSBoYW5kLXBpY2tlZCBzZXQgb2YgaHlwZXJwYXJhbWV0ZXJzIChtYXgg
ZGVwdGgKKyAgICAgICAgMTAsIG1pbiBsZWFmIHNpemUgNCwgYW5kIG5lZ2F0aXZlIGJpYXMgMikg
dG8gcHJvdmlkZSBhIGJhbGFuY2UgYmV0d2VlbiBwcmVjaXNpb24gc2NvcmVzIChsaW1pdGluZyBs
YXlvdXQKKyAgICAgICAgYnJlYWthZ2UpIGFuZCByZWNhbGwgc2NvcmUgKGVuc3VyaW5nIHRoYXQg
c21hbGwgdGV4dCBpcyBtb3N0bHkgYXV0b3NpemVkKSwgd2hpbGUgb3B0aW1pemluZyBmb3Igb3Zl
cmFsbAorICAgICAgICBhY2N1cmFjeS4gQ3Jvc3MtdmFsaWRhdGlvbiBzY29yZXMgcHJlZGljdCB0
aGF0IHRoZSBvdmVyYWxsIGFjY3VyYWN5IG9mIHRoaXMgY2xhc3NpZmllciBpcyBhcHByb3hpbWF0
ZWx5IDcwJSwgdXAKKyAgICAgICAgZnJvbSB0aGUgY3VycmVudCBhY2N1cmFjeSBpbiB0cnVuayAo
fjUzJSkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKworICAg
ICAgICBHcm93IHRoZSB3aWR0aCBvZiBgYXV0b3NpemVTdGF0dXNgIGZyb20gNCB0byA4IChub3Rh
Ymx5LCB0aGlzIGRvZXMgbm90IGluY3JlYXNlIHRoZSBzaXplIG9mIFJlbmRlclN0eWxlKS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1cyk6CisgICAgICAgIChXZWJD
b3JlOjpBdXRvc2l6ZVN0YXR1czo6c2hvdWxkU2tpcFN1YnRyZWUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuaDoKKworICAgICAg
ICBJbnRyb2R1Y2UgbmV3IHRleHQgYXV0b3NpemluZyBzdGF0ZSBmbGFncywgYW5kIHJlbW92ZSBz
b21lIGV4aXN0aW5nIG9uZXMuCisKIDIwMTktMDYtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBQYWdlcyB1c2luZyBHb29nbGUncyBhbnRpLWZsaWNrZXIgb3B0
aW1pemF0aW9uIG1heSB0YWtlIH41IHNlY29uZHMgdG8gZG8gaW5pdGlhbCBwYWludApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDAyNDg3OTBlZWIwYTg4MjNlYWFhNmE5MjYw
NDZiYmM0ODhiMDE1NjkuLmIzZTZlMTQxNWY1NWFmNWFlYzUxMjNmM2VjOTAxNTVmZjJlYmMyYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTg3OSwxNyArODc5LDE3IEBA
IHN0YXRpYyBib29sIGhhc1RleHRDaGlsZHJlbihjb25zdCBFbGVtZW50JiBlbGVtZW50KQogCiB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlRm9yVGV4dEF1dG9zaXppbmcoUmVu
ZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8gbmV3
QXV0b3NpemVTdGF0dXMgPSBBdXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKHN0eWxlKTsKICAg
ICBpZiAoIXNldHRpbmdzKCkudGV4dEF1dG9zaXppbmdFbmFibGVkKCkgfHwgIXNldHRpbmdzKCku
dGV4dEF1dG9zaXppbmdVc2VzSWRlbXBvdGVudE1vZGUoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgQXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1cyhzdHlsZSk7CiAgICAgaWYgKCFoYXNUZXh0
Q2hpbGRyZW4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzdHlsZS50ZXh0
U2l6ZUFkanVzdCgpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobmV3QXV0
b3NpemVTdGF0dXMuc2hvdWxkU2tpcFN1YnRyZWUoKSkKKyAgICBpZiAoIXN0eWxlLmlzSWRlbXBv
dGVudFRleHRBdXRvc2l6aW5nQ2FuZGlkYXRlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZs
b2F0IGluaXRpYWxTY2FsZSA9IGRvY3VtZW50KCkucGFnZSgpID8gZG9jdW1lbnQoKS5wYWdlKCkt
PmluaXRpYWxTY2FsZSgpIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCmluZGV4IDE0YjFjYTAzODc0YmM4ZDcyNjE2NzNkNDA3MWEyM2I3NGZi
NmZmNzcuLmIwZTI4OGIxODE3MGYyYmY0ODM3MzY3MGM3MDgxZTVlZDM1NDhjYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDkyLDYg
KzQ5MiwzMyBAQCBib29sIFJlbmRlclN0eWxlOjplcXVhbEZvclRleHRBdXRvc2l6aW5nKGNvbnN0
IFJlbmRlclN0eWxlJiBvdGhlcikgY29uc3QKICAgICAgICAgJiYgbV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+dGV4dE92ZXJmbG93ID09IG90aGVyLm1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRleHRP
dmVyZmxvdzsKIH0KIAorYm9vbCBSZW5kZXJTdHlsZTo6aXNJZGVtcG90ZW50VGV4dEF1dG9zaXpp
bmdDYW5kaWRhdGUoKSBjb25zdAoreworICAgIC8vIFJlZmVyIHRvIDxyZGFyOi8vcHJvYmxlbS81
MTgyNjI2Nj4gZm9yIG1vcmUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGhvdyB0aGlzIGZ1bmN0aW9u
IHdhcyBnZW5lcmF0ZWQuCisgICAgYXV0byBmaWVsZHMgPSBPcHRpb25TZXQ8QXV0b3NpemVTdGF0
dXM6OkZpZWxkcz46OmZyb21SYXcobV9pbmhlcml0ZWRGbGFncy5hdXRvc2l6ZVN0YXR1cyk7Cisg
ICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpEaXNwbGF5Tm9u
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChmaWVsZHMuY29udGFpbnMoQXV0
b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4ZWRIZWlnaHQpKSB7CisgICAgICAgIGlmICh3aGl0ZVNw
YWNlKCkgPT0gV2hpdGVTcGFjZTo6Tm9XcmFwKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICAgICAgaWYgKGZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0YXR1czo6RmllbGRzOjpGbG9h
dGluZykpCisgICAgICAgICAgICByZXR1cm4gZmllbGRzLmNvbnRhaW5zKEF1dG9zaXplU3RhdHVz
OjpGaWVsZHM6Ok91dE9mRmxvd1Bvc2l0aW9uKSAmJiBmaWVsZHMuY29udGFpbnMoQXV0b3NpemVT
dGF0dXM6OkZpZWxkczo6T3ZlcmZsb3dYSGlkZGVuKTsKKworICAgICAgICBpZiAoZmllbGRzLmNv
bnRhaW5zKEF1dG9zaXplU3RhdHVzOjpGaWVsZHM6OkZpeGVkV2lkdGgpKQorICAgICAgICAgICAg
cmV0dXJuICFmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3V0T2ZGbG93
UG9zaXRpb24pOworICAgIH0KKworICAgIGlmIChmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0
dXM6OkZpZWxkczo6RmxvYXRpbmcpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChm
aWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6Rml4ZWRXaWR0aCkpCisgICAg
ICAgIHJldHVybiBmaWVsZHMuY29udGFpbnMoQXV0b3NpemVTdGF0dXM6OkZpZWxkczo6T3ZlcmZs
b3dZSGlkZGVuKTsKKworICAgIHJldHVybiAhZmllbGRzLmNvbnRhaW5zKEF1dG9zaXplU3RhdHVz
OjpGaWVsZHM6Ok92ZXJmbG93WUhpZGRlbikgJiYgIWZpZWxkcy5jb250YWlucyhBdXRvc2l6ZVN0
YXR1czo6RmllbGRzOjpGaXhlZE1heFdpZHRoKTsKK30KKwogQXV0b3NpemVTdGF0dXMgUmVuZGVy
U3R5bGU6OmF1dG9zaXplU3RhdHVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gT3B0aW9uU2V0PEF1
dG9zaXplU3RhdHVzOjpGaWVsZHM+Ojpmcm9tUmF3KG1faW5oZXJpdGVkRmxhZ3MuYXV0b3NpemVT
dGF0dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApp
bmRleCBlYzMwZWE2M2ZhODUwNzk3MjM2M2UxZDRiOGExMTNmYjcxYjVlZWQ2Li5jMGQ4MzdkNWNm
NWM0ZWU5Yjc1ZmRhNjZmZjE0NTlhZmE1MDkyYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzQxLDYgKzc0MSw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIFRleHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6
ZUFkanVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRq
dXN0OyB9CiAgICAgQXV0b3NpemVTdGF0dXMgYXV0b3NpemVTdGF0dXMoKSBjb25zdDsKKyAgICBi
b29sIGlzSWRlbXBvdGVudFRleHRBdXRvc2l6aW5nQ2FuZGlkYXRlKCkgY29uc3Q7CiAjZW5kaWYK
IAogICAgIFRleHRTZWN1cml0eSB0ZXh0U2VjdXJpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxUZXh0U2VjdXJpdHk+KG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHRTZWN1cml0eSk7IH0K
QEAgLTE4MzQsOSArMTgzNSw5IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIDQ4IGJpdHMKIAogI2lm
IEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0gICAgICAgIHVuc2lnbmVkIGF1dG9zaXplU3RhdHVz
IDogNDsKKyAgICAgICAgdW5zaWduZWQgYXV0b3NpemVTdGF0dXMgOiA4OwogI2VuZGlmCi0gICAg
ICAgIC8vIDUyIGJpdHMKKyAgICAgICAgLy8gNTYgYml0cwogICAgIH07CiAKICAgICAvLyBUaGlz
IGNvbnN0cnVjdG9yIGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSByZXBsYWNlIG9wZXJhdGlvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0U2l6ZUFkanVz
dG1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0
bWVudC5jcHAKaW5kZXggMDIwMDI3ODAwZjYyYTFjOGI0MzA1OTQ2YTdmNzlkMzFiN2M2M2E4MS4u
Y2MxZGE4MGE1Yjk3NDM2NzA1MDdlN2Y1NDU4NTM2Nzc1ODlhMTkzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHAKQEAg
LTQyLDMwICs0MiwzNSBAQCBib29sIEF1dG9zaXplU3RhdHVzOjpjb250YWlucyhGaWVsZHMgZmll
bGRzKSBjb25zdAogICAgIHJldHVybiBtX2ZpZWxkcy5jb250YWlucyhmaWVsZHMpOwogfQogCi1B
dXRvc2l6ZVN0YXR1cyBBdXRvc2l6ZVN0YXR1czo6dXBkYXRlU3RhdHVzKFJlbmRlclN0eWxlJiBz
dHlsZSkKK3ZvaWQgQXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1cyhSZW5kZXJTdHlsZSYgc3R5
bGUpCiB7Ci0gICAgT3B0aW9uU2V0PEZpZWxkcz4gcmVzdWx0ID0gc3R5bGUuYXV0b3NpemVTdGF0
dXMoKS5maWVsZHMoKTsKKyAgICBhdXRvIHJlc3VsdCA9IHN0eWxlLmF1dG9zaXplU3RhdHVzKCku
ZmllbGRzKCk7CisKKyAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpOb25l
KQorICAgICAgICByZXN1bHQuYWRkKEZpZWxkczo6RGlzcGxheU5vbmUpOworCiAgICAgaWYgKHN0
eWxlLmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpCi0gICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpG
b3VuZE91dE9mRmxvd1Bvc2l0aW9uKTsKLSAgICBzd2l0Y2ggKHN0eWxlLmRpc3BsYXkoKSkgewot
ICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUJsb2NrOgotICAgICAgICByZXN1bHQuYWRkKEZp
ZWxkczo6Rm91bmRJbmxpbmVCbG9jayk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRGlzcGxh
eVR5cGU6Ok5vbmU6Ci0gICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpGb3VuZERpc3BsYXlOb25l
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDogLy8gRklYTUU6IEFkZCBtb3JlIGNhc2Vz
LgotICAgICAgICBicmVhazsKLSAgICB9CisgICAgICAgIHJlc3VsdC5hZGQoRmllbGRzOjpPdXRP
ZkZsb3dQb3NpdGlvbik7CisKICAgICBpZiAoc3R5bGUuaGVpZ2h0KCkuaXNGaXhlZCgpKQotICAg
ICAgICByZXN1bHQuYWRkKEZpZWxkczo6Rm91bmRGaXhlZEhlaWdodCk7Ci0gICAgc3R5bGUuc2V0
QXV0b3NpemVTdGF0dXMocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQorICAgICAgICBy
ZXN1bHQuYWRkKEZpZWxkczo6Rml4ZWRIZWlnaHQpOwogCi1ib29sIEF1dG9zaXplU3RhdHVzOjpz
aG91bGRTa2lwU3VidHJlZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZmllbGRzLmNvbnRhaW5z
QW55KHsgRmllbGRzOjpGb3VuZE91dE9mRmxvd1Bvc2l0aW9uLCBGaWVsZHM6OkZvdW5kSW5saW5l
QmxvY2ssIEZpZWxkczo6Rm91bmRGaXhlZEhlaWdodCwgRmllbGRzOjpGb3VuZERpc3BsYXlOb25l
IH0pOworICAgIGlmIChzdHlsZS53aWR0aCgpLmlzRml4ZWQoKSkKKyAgICAgICAgcmVzdWx0LmFk
ZChGaWVsZHM6OkZpeGVkV2lkdGgpOworCisgICAgaWYgKHN0eWxlLm1heFdpZHRoKCkuaXNGaXhl
ZCgpKQorICAgICAgICByZXN1bHQuYWRkKEZpZWxkczo6Rml4ZWRNYXhXaWR0aCk7CisKKyAgICBp
ZiAoc3R5bGUub3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OkhpZGRlbikKKyAgICAgICAgcmVzdWx0
LmFkZChGaWVsZHM6Ok92ZXJmbG93WEhpZGRlbik7CisKKyAgICBpZiAoc3R5bGUub3ZlcmZsb3dZ
KCkgPT0gT3ZlcmZsb3c6OkhpZGRlbikKKyAgICAgICAgcmVzdWx0LmFkZChGaWVsZHM6Ok92ZXJm
bG93WUhpZGRlbik7CisKKyAgICBpZiAoc3R5bGUuaXNGbG9hdGluZygpKQorICAgICAgICByZXN1
bHQuYWRkKEZpZWxkczo6RmxvYXRpbmcpOworCisgICAgc3R5bGUuc2V0QXV0b3NpemVTdGF0dXMo
cmVzdWx0KTsKIH0KIAogZmxvYXQgQXV0b3NpemVTdGF0dXM6OmlkZW1wb3RlbnRUZXh0U2l6ZShm
bG9hdCBzcGVjaWZpZWRTaXplLCBmbG9hdCBwYWdlU2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFNpemVBZGp1c3RtZW50LmgKaW5kZXggOWY2YjNmYjg4
YjE1NzAyYTI4NzljY2YzMzVmOGYzYjEzMjQ2Mjk1OS4uZmZjMDM0NGIyYjRmYWViMWVkZTQ2Njli
ODY1MThlMGZkZGQ3MjZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1RleHRTaXplQWRqdXN0bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuaApAQCAtNTIsMTAgKzUyLDE0IEBAIHByaXZhdGU6CiBj
bGFzcyBBdXRvc2l6ZVN0YXR1cyB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBGaWVsZHMgOiB1
aW50OF90IHsKLSAgICAgICAgRm91bmRPdXRPZkZsb3dQb3NpdGlvbiA9IDEgPDwgMCwKLSAgICAg
ICAgRm91bmRJbmxpbmVCbG9jayA9IDEgPDwgMSwKLSAgICAgICAgRm91bmRGaXhlZEhlaWdodCA9
IDEgPDwgMiwKLSAgICAgICAgRm91bmREaXNwbGF5Tm9uZSA9IDEgPDwgMworICAgICAgICBEaXNw
bGF5Tm9uZSA9IDEgPDwgMCwKKyAgICAgICAgRml4ZWRIZWlnaHQgPSAxIDw8IDEsCisgICAgICAg
IEZpeGVkV2lkdGggPSAxIDw8IDIsCisgICAgICAgIEZsb2F0aW5nID0gMSA8PCAzLAorICAgICAg
ICBPdmVyZmxvd1hIaWRkZW4gPSAxIDw8IDQsCisgICAgICAgIE92ZXJmbG93WUhpZGRlbiA9IDEg
PDwgNSwKKyAgICAgICAgT3V0T2ZGbG93UG9zaXRpb24gPSAxIDw8IDYsCisgICAgICAgIEZpeGVk
TWF4V2lkdGggPSAxIDw8IDcKICAgICAgICAgLy8gQWRkaW5nIG5ldyB2YWx1ZXMgcmVxdWlyZXMg
Z2l2aW5nIFJlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFnczo6YXV0b3NpemVTdGF0dXMgYWRkaXRp
b25hbCBiaXRzLgogICAgIH07CiAKQEAgLTYzLDEwICs2Nyw5IEBAIHB1YmxpYzoKICAgICBPcHRp
b25TZXQ8RmllbGRzPiBmaWVsZHMoKSBjb25zdCB7IHJldHVybiBtX2ZpZWxkczsgfQogCiAgICAg
Ym9vbCBjb250YWlucyhGaWVsZHMpIGNvbnN0OwotICAgIGJvb2wgc2hvdWxkU2tpcFN1YnRyZWUo
KSBjb25zdDsKIAogICAgIHN0YXRpYyBmbG9hdCBpZGVtcG90ZW50VGV4dFNpemUoZmxvYXQgc3Bl
Y2lmaWVkU2l6ZSwgZmxvYXQgcGFnZVNjYWxlKTsKLSAgICBzdGF0aWMgQXV0b3NpemVTdGF0dXMg
dXBkYXRlU3RhdHVzKFJlbmRlclN0eWxlJik7CisgICAgc3RhdGljIHZvaWQgdXBkYXRlU3RhdHVz
KFJlbmRlclN0eWxlJik7CiAKIHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PEZpZWxkcz4gbV9maWVs
ZHM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYmJlY2NmMTI4NTA3YTY1YjkzN2ZhMjQ3YzAwMDM2ODkyY2NmMjg4NC4uNzE5
ZmU3OTdlMDk4ZTZlNDk3YmIyMGMyZDk1NmJiNGJhZGZkMDY5OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE5LTA2LTI0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtUZXh0IGF1dG9zaXppbmddIFtpUGFkT1NdIFJldmlzZSBvdXIgaGV1cmlzdGlj
cyB0byBkZXRlcm1pbmUgaWRlbXBvdGVudCB0ZXh0IGF1dG9zaXppbmcgY2FuZGlkYXRlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzYzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81MTgyNjI2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgUmViYXNlbGluZSBhbiBleGlzdGluZyB0ZXh0IGF1dG9zaXpp
bmcgdGVzdCwgYW5kIGludHJvZHVjZSBzb21lIG5ldyB0ZXN0IGNhc2VzIHRoYXQgY29ycmVzcG9u
ZCB0byBzZXZlcmFsIGNvbW1vbgorICAgICAgICBwYXR0ZXJucyBvZiBhdXRvc2l6YWJsZSAob3Ig
bm9uLWF1dG9zaXphYmxlKSB0ZXh0IG9uIHdlYnNpdGVzIHRoYXQgd2VyZSBzdXJ2ZXllZC4KKwor
ICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90
ZW50LWF1dG9zaXppbmctYWZ0ZXItY2hhbmdpbmctaW5pdGlhbC1zY2FsZS5odG1sOgorICAgICAg
ICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1
dG9zaXppbmctY2FuZGlkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
dGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmct
Y2FuZGlkYXRlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9z
aXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1za2lwLmh0bWwu
CisKKyAgICAgICAgUmVuYW1lIHRoaXMgZXhpc3RpbmcgbGF5b3V0IHRlc3QgdG9vLCB0byBhdm9p
ZCB1c2luZyB0aGUgdGVybSAic2tpcCIgaW4gdGhlIG5hbWUgb2YgYSBsYXlvdXQgdGVzdC4KKwor
ICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90
ZW50LWF1dG9zaXppbmctc2tpcC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMTktMDYtMjQg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBB
cnJheS5wcm90b3R5cGUue2ZsYXQsZmxhdE1hcH0gdG8gdW5zY29wYWJsZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVt
cG90ZW50LWF1dG9zaXppbmctYWZ0ZXItY2hhbmdpbmctaW5pdGlhbC1zY2FsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3Rl
bnQtYXV0b3NpemluZy1hZnRlci1jaGFuZ2luZy1pbml0aWFsLXNjYWxlLmh0bWwKaW5kZXggNmU0
MDUwMjgzMWQwOTg4MzdhOGQ3NzNiNzU0N2UyOWE3NGVlNWI5NS4uODc3NDVkMjdjMDlkMmQwOTY2
NTQzMzZmYWZlODA2NWY2ZDE5NzFkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1hZnRl
ci1jaGFuZ2luZy1pbml0aWFsLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1hZnRl
ci1jaGFuZ2luZy1pbml0aWFsLXNjYWxlLmh0bWwKQEAgLTIwLDcgKzIwLDYgQEAgcHJlLCBjb2Rl
IHsKIC5jb250YWluZXIgewogICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgIHBhZGRp
bmc6IDhweCAxMnB4IDEycHggMTJweDsKLSAgICBtYXgtd2lkdGg6IDMyMHB4OwogfQogCiAjdGV4
dDAsICN0ZXh0NSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Npemlu
Zy9pb3MvaWRlbXBvdGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLWNhbmRpZGF0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3Rl
bnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1jYW5kaWRhdGVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYTZjODllYTA1NTc5NWJkMDZhOWQ2NzExOGU3MWFjNThmOGE3Yzg5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3Rl
bnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1jYW5kaWRhdGVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUwIEBACitDaGVja2luZyB0YXJnZXQxOgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK0No
ZWNraW5nIHRhcmdldDI6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFyZ2V0MzoK
K1BBU1MgcmVzdWx0IGlzIDEyCitDaGVja2luZyB0YXJnZXQ0OgorUEFTUyByZXN1bHQgaXMgPj0g
MTMKK0NoZWNraW5nIHRhcmdldDU6CitQQVNTIHJlc3VsdCBpcyA+PSAxMworQ2hlY2tpbmcgdGFy
Z2V0NjoKK1BBU1MgcmVzdWx0IGlzIDEyCitDaGVja2luZyB0YXJnZXQ3OgorUEFTUyByZXN1bHQg
aXMgPj0gcmVzdWx0MgorQ2hlY2tpbmcgdGFyZ2V0ODoKK1BBU1MgcmVzdWx0IGlzID49IDEzCitD
aGVja2luZyB0YXJnZXQ5OgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDEw
OgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDExOgorUEFTUyByZXN1bHQg
aXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDEyOgorUEFTUyByZXN1bHQgaXMgMTIKK0NoZWNraW5n
IHRhcmdldDEzOgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK0NoZWNraW5nIHRhcmdldDE0OgorUEFT
UyByZXN1bHQgaXMgMTIKK0NoZWNraW5nIHRhcmdldDE1OgorUEFTUyByZXN1bHQgaXMgPj0gMTMK
K0NoZWNraW5nIHRhcmdldDE2OgorUEFTUyByZXN1bHQgaXMgPj0gMTMKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGVzdAorVGVzdAorVGVzdAorVGVz
dAorVGVzdAorVGVzdFRlc3RUZXN0VGVzdAorVGVzdAorVGVzdAorVGVzdAorVGVzdAorVGVzdAor
VGVzdAorVGVzdAorVGVzdAorVGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2RlL2lkZW1wb3RlbnQtYXV0b3NpemluZy1jYW5k
aWRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBv
dGVudG1vZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLWNhbmRpZGF0ZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NmY3ZmFmZTk0YWZhYjMyNmFjNjI3MWZkNjEyMjIwYWY3NGE1Y2RjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lkZW1wb3RlbnRtb2Rl
L2lkZW1wb3RlbnQtYXV0b3NpemluZy1jYW5kaWRhdGVzLmh0bWwKQEAgLTAsMCArMSw3MyBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdw
b3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0iaW5pdGlhbC1zY2FsZT0wLjY2NjYiPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0Vu
YWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3Np
emluZ1VzZXNJZGVtcG90ZW50TW9kZSh0cnVlKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdl
dDEiIHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHls
ZT0iYmFja2dyb3VuZDogZ3JlZW47IG92ZXJmbG93OiBhdXRvOyI+PHNwYW4gaWQ9InRhcmdldDIi
IHN0eWxlPSJmbG9hdDogcmlnaHQ7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQzIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IHdpZHRoOiAyMHB4OyI+
VGVzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4g
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgaGVpZ2h0OiAxMnB4OyBmb250LXNpemU6IDEy
cHg7Ij48c3BhbiBpZD0idGFyZ2V0NCI+VGVzdDwvc3Bhbj48L3NwYW4+PC9kaXY+Cis8ZGl2IHN0
eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQ1IiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMHB4OyBmb250LXNpemU6IDEycHg7Ij5UZXN0
PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBpZD0i
dGFyZ2V0NiIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3Nw
YW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJjb21w
YXJpc29uIiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+VGVzdDxzcGFuPlRlc3Q8c3Bhbj5UZXN0
PHNwYW4gaWQ9InRhcmdldDciPlRlc3Q8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQ4IiBzdHls
ZT0iZm9udC1zaXplOiAxMnB4OyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCUiPlRlc3Q8
L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0
YXJnZXQ5IiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ij5U
ZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij48c3BhbiBp
ZD0idGFyZ2V0MTAiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6
IDEycHg7Ij5UZXN0PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47
Ij48c3BhbiBpZD0idGFyZ2V0MTEiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGhlaWdodDogMjBw
eDsgcG9zaXRpb246IGZpeGVkOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+VGVzdDwvc3Bhbj48L2Rp
dj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDEyIiBz
dHlsZT0iZm9udC1zaXplOiAxMnB4OyBoZWlnaHQ6IDIwcHg7IHBvc2l0aW9uOiBmaXhlZDsgZmxv
YXQ6IHJpZ2h0OyI+VGVzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdy
ZWVuOyI+PHNwYW4gaWQ9InRhcmdldDEzIiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBoZWlnaHQ6
IDIwcHg7IHBvc2l0aW9uOiBmaXhlZDsgZmxvYXQ6IHJpZ2h0OyBvdmVyZmxvdy14OiBoaWRkZW47
IHdpZHRoOiAxMDBweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
OiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQxNCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgaGVp
Z2h0OiAyMHB4OyB3aWR0aDogMTAwcHg7IGZsb2F0OiByaWdodDsiPlRlc3Q8L3NwYW4+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQxNSIgc3R5
bGU9Im92ZXJmbG93LXk6IGhpZGRlbjsgZmxvYXQ6IHJpZ2h0OyI+VGVzdDwvc3Bhbj48L2Rpdj4K
KzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDE2IiBzdHls
ZT0iZmxvYXQ6IHJpZ2h0OyI+VGVzdDwvc3Bhbj48L2Rpdj4KKzxzY3JpcHQ+CitsZXQgcmVzdWx0
OworZnVuY3Rpb24gY2hlY2sobmFtZSwgc2hvdWxkR2V0QXV0b3NpemVkKSB7CisgICAgbGV0IHRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5hbWUpOworICAgIHRhcmdldC5vZmZzZXRX
aWR0aDsKKyAgICByZXN1bHQgPSBOdW1iZXIucGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXNpemUiKSk7CisgICAgZGVidWcoYENo
ZWNraW5nICR7bmFtZX06YCk7CisgICAgaWYgKHNob3VsZEdldEF1dG9zaXplZCkKKyAgICAgICAg
c2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInJlc3VsdCIsICIxMyIpOworICAgIGVsc2UKKyAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdCIsICIxMiIpOworfQorY2hlY2soInRhcmdldDEiLCB0cnVl
KTsKK2NoZWNrKCJ0YXJnZXQyIiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0MyIsIGZhbHNlKTsKK2No
ZWNrKCJ0YXJnZXQ0IiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0NSIsIHRydWUpOworY2hlY2soInRh
cmdldDYiLCBmYWxzZSk7CisKK2RlYnVnKGBDaGVja2luZyB0YXJnZXQ3OmApOworbGV0IHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ3Iik7Cit0YXJnZXQub2Zmc2V0V2lk
dGg7CitsZXQgY29tcGFyaXNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wYXJpc29u
Iik7Citjb21wYXJpc29uLm9mZnNldFdpZHRoOworcmVzdWx0ID0gTnVtYmVyLnBhcnNlSW50KHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1zaXpl
IikpOworbGV0IHJlc3VsdDIgPSBOdW1iZXIucGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUoY29tcGFyaXNvbikuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1zaXplIikpOworc2hvdWxkQmVH
cmVhdGVyVGhhbk9yRXF1YWwoInJlc3VsdCIsICJyZXN1bHQyIik7CisKK2NoZWNrKCJ0YXJnZXQ4
IiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0OSIsIHRydWUpOworY2hlY2soInRhcmdldDEwIiwgdHJ1
ZSk7CisKKy8vIEJlbG93IGFyZSBzb21lIGNvbW1vbiBzY2VuYXJpb3Mgd2hlcmUgd2UgcHJlZmVy
IChvciBwcmVmZXIgdG8gbm90KSBhZGp1c3QgdGV4dCBzaXplLiBUaGVzZSBleGFtcGxlcyBhcmUg
aW5zcGlyZWQgYnkKKy8vIGNvbW1vbiBwYXR0ZXJucyBpbiByZWFsIHdlYnBhZ2VzLgorY2hlY2so
InRhcmdldDExIiwgdHJ1ZSk7CitjaGVjaygidGFyZ2V0MTIiLCBmYWxzZSk7CitjaGVjaygidGFy
Z2V0MTMiLCB0cnVlKTsKK2NoZWNrKCJ0YXJnZXQxNCIsIGZhbHNlKTsKK2NoZWNrKCJ0YXJnZXQx
NSIsIHRydWUpOworY2hlY2soInRhcmdldDE2IiwgdHJ1ZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1v
ZGUvaWRlbXBvdGVudC1hdXRvc2l6aW5nLXNraXAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzMzlkMTkwNTMxZmM4YTM3Yjg1ODcwMjNmODU5NGUzYzAzMWQ0NzU3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1
dG9zaXppbmctc2tpcC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA
Ci1QQVNTIHJlc3VsdCBpcyA+PSAxMwotUEFTUyByZXN1bHQgaXMgPj0gMTMKLVBBU1MgcmVzdWx0
IGlzIDEyCi1QQVNTIHJlc3VsdCBpcyAxMgotUEFTUyByZXN1bHQgaXMgMTIKLVBBU1MgcmVzdWx0
IGlzIDEyCi1QQVNTIHJlc3VsdCBpcyA+PSByZXN1bHQyCi1QQVNTIHJlc3VsdCBpcyA+PSAxMwot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi1UZXN0Ci1U
ZXN0Ci1UZXN0Ci1UZXN0Ci1UZXN0Ci1UZXN0VGVzdFRlc3RUZXN0Ci1UZXN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaWRlbXBvdGVudG1vZGUvaWRl
bXBvdGVudC1hdXRvc2l6aW5nLXNraXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL2lvcy9pZGVtcG90ZW50bW9kZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MGNmYTZkNzI3YTRiMTBhMTRlMDRiZDIw
YzgzYzgyODE0MjVkMGVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy9pZGVtcG90ZW50bW9k
ZS9pZGVtcG90ZW50LWF1dG9zaXppbmctc2tpcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4
aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0wLjY2NjYiPgotPHNjcmlwdD4KLWlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7Ci0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0
b3NpemluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRU
ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSh0cnVlKTsKLX0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4g
aWQ9InRhcmdldCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Ci08
ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsgb3ZlcmZsb3c6IGF1dG87Ij48c3BhbiBpZD0i
dGFyZ2V0MiIgc3R5bGU9ImZsb2F0OiByaWdodDsgZm9udC1zaXplOiAxMnB4OyI+VGVzdDwvc3Bh
bj48L2Rpdj4KLTxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdl
dDMiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8
L3NwYW4+PC9kaXY+Ci08ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsiPjxzcGFuIGlkPSJ0YXJn
ZXQ0Ij5UZXN0PC9zcGFuPjwvc3Bhbj48L2Rpdj4KLTxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGdy
ZWVuOyI+PHNwYW4gaWQ9InRhcmdldDUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDBweDsgdG9wOiAwcHg7IGZvbnQtc2l6ZTogMTJweDsiPlRlc3Q8L3NwYW4+PC9kaXY+Ci08ZGl2
IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPjxzcGFuIGlkPSJ0YXJnZXQ2IiBzdHlsZT0iZGlz
cGxheTogbm9uZTsgZm9udC1zaXplOiAxMnB4OyI+VGVzdDwvc3Bhbj48L2Rpdj4KLTxkaXYgc3R5
bGU9ImJhY2tncm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9ImNvbXBhcmlzb24iIHN0eWxlPSJmb250
LXNpemU6IDEycHg7Ij5UZXN0PHNwYW4+VGVzdDxzcGFuPlRlc3Q8c3BhbiBpZD0idGFyZ2V0NyI+
VGVzdDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KLTxkaXYgc3R5bGU9ImJhY2tn
cm91bmQ6IGdyZWVuOyI+PHNwYW4gaWQ9InRhcmdldDgiIHN0eWxlPSJmb250LXNpemU6IDEycHg7
IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJSI+VGVzdDwvc3Bhbj48L2Rpdj4KLTxzY3Jp
cHQ+Ci1sZXQgcmVzdWx0OwotZnVuY3Rpb24gY2hlY2sobmFtZSwgc2hvdWxkR2V0QXV0b3NpemVk
KSB7Ci0gICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5hbWUpOwotICAg
IHRhcmdldC5vZmZzZXRXaWR0aDsKLSAgICByZXN1bHQgPSBOdW1iZXIucGFyc2VJbnQod2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXNpemUiKSk7
Ci0gICAgaWYgKHNob3VsZEdldEF1dG9zaXplZCkKLSAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoInJlc3VsdCIsICIxMyIpOwotICAgIGVsc2UKLSAgICAgICAgc2hvdWxkQmUoInJl
c3VsdCIsICIxMiIpOwotfQotY2hlY2soInRhcmdldCIsIHRydWUpOwotY2hlY2soInRhcmdldDIi
LCB0cnVlKTsKLWNoZWNrKCJ0YXJnZXQzIiwgZmFsc2UpOwotY2hlY2soInRhcmdldDQiLCBmYWxz
ZSk7Ci1jaGVjaygidGFyZ2V0NSIsIGZhbHNlKTsKLWNoZWNrKCJ0YXJnZXQ2IiwgZmFsc2UpOwot
Ci1sZXQgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKTsKLXRhcmdl
dC5vZmZzZXRXaWR0aDsKLWxldCBjb21wYXJpc29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbXBhcmlzb24iKTsKLWNvbXBhcmlzb24ub2Zmc2V0V2lkdGg7Ci1yZXN1bHQgPSBOdW1iZXIu
cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVl
KCJmb250LXNpemUiKSk7Ci1sZXQgcmVzdWx0MiA9IE51bWJlci5wYXJzZUludCh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShjb21wYXJpc29uKS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXNpemUiKSk7
Ci1zaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgicmVzdWx0IiwgInJlc3VsdDIiKTsKLQotY2hl
Y2soInRhcmdldDgiLCB0cnVlKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>