<?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>205842</bug_id>
          
          <creation_ts>2020-01-06 16:34:44 -0800</creation_ts>
          <short_desc>First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines</short_desc>
          <delta_ts>2020-01-07 13:27:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205883</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603361</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-06 16:34:44 -0800</bug_when>
    <thetext>Consider a page with the following markup:

[[
&lt;style&gt;@font-face { font-family: Ahem; src: url(Ahem.ttf); } body { margin: 0; } * { font: 25px/1 Ahem; -webkit-text-size-adjust: 100%; }&lt;/style&gt;
&lt;meta name=&apos;viewport&apos; content=&apos;width=980, initial-scale=1.0&apos;&gt;
&lt;textarea id=&apos;test&apos; style=&apos;width: 26em; padding: 0 /* Overrides default user-agent stylesheet */;&apos;&gt;The quick brown fox jumps over the lazy dog.&lt;/textarea&gt;
&lt;script&gt;
test.focus(); test.setSelectionRange(25, 25)
&lt;/script&gt;
]]

(^^^ Assumes the Ahem font is available)

Then requesting the a document context for rects returns an incorrect character rect for the space/line break after &quot;jumps&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603362</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-06 16:34:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/56884325&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603365</commentid>
    <comment_count>2</comment_count>
      <attachid>386911</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-06 16:36:20 -0800</bug_when>
    <thetext>Created attachment 386911
For Bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603637</commentid>
    <comment_count>3</comment_count>
      <attachid>386989</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 10:30:17 -0800</bug_when>
    <thetext>Created attachment 386989
Patch and unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603638</commentid>
    <comment_count>4</comment_count>
      <attachid>386989</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 10:34:28 -0800</bug_when>
    <thetext>Comment on attachment 386989
Patch and unit test

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

&gt; Source/WebCore/dom/Range.cpp:1152
&gt; +    absoluteTextRects(rects, useSelectionHeight, inFixed, { BoundingRectBehavior::IgnoreEmptyTextSelections });

I patched here because I was kinda thinking this is the behavior we want for all IPI and SPI: it makes us match NSLayoutManager behavior. But it&apos;s enough to fix just my particular bug by having &lt;https://trac.webkit.org/browser/trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm?rev=254070#L4074&gt; pass BoundingRectBehavior::IgnoreEmptyTextSelections. That is, Range::absoluteBoundingBox() could take an optional BoundingRectBehavior argument, default such that we do what we do now and just have WebPageIOS.mm&apos;s code pass BoundingRectBehavior::IgnoreEmptyTextSelections. Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603653</commentid>
    <comment_count>5</comment_count>
      <attachid>386996</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 10:52:11 -0800</bug_when>
    <thetext>Created attachment 386996
Addendum - keep current behavior of Range::absoluteBoundingBox, but fix up request document context code path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603656</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 10:54:51 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #5)
&gt; Created attachment 386996 [details]
&gt; Addendum - keep current behavior of Range::absoluteBoundingBox, but fix up
&gt; request document context code path

I can merge ^^^ into the patch if it would help make it easier to review this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603701</commentid>
    <comment_count>7</comment_count>
      <attachid>387011</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 11:59:45 -0800</bug_when>
    <thetext>Created attachment 387011
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603703</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 12:00:25 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; (In reply to Daniel Bates from comment #5)
&gt; &gt; Created attachment 386996 [details]
&gt; &gt; Addendum - keep current behavior of Range::absoluteBoundingBox, but fix up
&gt; &gt; request document context code path
&gt; 
&gt; I can merge ^^^ into the patch if it would help make it easier to review
&gt; this change.

Merge this in to the updated patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603705</commentid>
    <comment_count>9</comment_count>
      <attachid>387011</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 12:03:12 -0800</bug_when>
    <thetext>Comment on attachment 387011
To land

Clearing flags on attachment: 387011

Committed r254144: &lt;https://trac.webkit.org/changeset/254144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603706</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 12:03:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603743</commentid>
    <comment_count>11</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-07 12:54:16 -0800</bug_when>
    <thetext>This seems to have broken the iOS build. Tracked in https://bugs.webkit.org/show_bug.cgi?id=205883

Relevant error:
WebPageIOS.mm:4064:73: error: use of undeclared identifier &apos;BoundingRectBehavior&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603750</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-01-07 13:10:23 -0800</bug_when>
    <thetext>Reverted r254144 for reason:

Broke the iOS build.

Committed r254151: &lt;https://trac.webkit.org/changeset/254151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603759</commentid>
    <comment_count>13</comment_count>
      <attachid>387024</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 13:25:38 -0800</bug_when>
    <thetext>Created attachment 387024
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603760</commentid>
    <comment_count>14</comment_count>
      <attachid>387024</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 13:27:00 -0800</bug_when>
    <thetext>Comment on attachment 387024
To land

Clearing flags on attachment: 387024

Committed r254153: &lt;https://trac.webkit.org/changeset/254153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603761</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-07 13:27:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386911</attachid>
            <date>2020-01-06 16:36:20 -0800</date>
            <delta_ts>2020-01-07 10:30:16 -0800</delta_ts>
            <desc>For Bots</desc>
            <filename>ForBots.patch</filename>
            <type>text/plain</type>
            <size>14235</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSAyNmNlOTcwYWNmMDVhMzBiZWU4MTAzNThlYjcwYjJmNDBhMmM5NWI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRhYmF0ZXNAYXBwbGUuY29tPgpEYXRl
OiBNb24sIDYgSmFuIDIwMjAgMTY6MzU6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBXb3JrLWlu
LXByb2dyZXNzIGZvciA8cmRhcjovL3Byb2JsZW0vNTY4ODQzMjU+CgotLS0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5jcHAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oICAgICAgICAgICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCAgICAgICB8ICA2ICstLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuaCAgICAgICAgIHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcCB8ICA2ICsrLQogLi4uL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaCAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5jcHAgICB8ICA0ICstCiAuLi4vcmVuZGVyaW5nL1NpbXBsZUxp
bmVMYXlvdXRGdW5jdGlvbnMuaCAgICAgfCAgMiArLQogLi4uL1dlYktpdENvY29hL0RvY3VtZW50
RWRpdGluZ0NvbnRleHQubW0gICAgIHwgMzggKysrKysrKysrKysrKysrKysrKwogOSBmaWxlcyBj
aGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cAppbmRleCAzNWRmMTI5ZDYyMC4uMDI5MjU3NDI1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAt
MTE0Nyw3ICsxMTQ3LDkgQEAgSW50UmVjdCBSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCgpIGNv
bnN0CiB7CiAgICAgSW50UmVjdCByZXN1bHQ7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOwot
ICAgIGFic29sdXRlVGV4dFJlY3RzKHJlY3RzKTsKKyAgICBib29sIHVzZVNlbGVjdGlvbkhlaWdo
dCA9IGZhbHNlOworICAgIFJhbmdlSW5GaXhlZFBvc2l0aW9uKiBpbkZpeGVkID0gbnVsbHB0cjsK
KyAgICBhYnNvbHV0ZVRleHRSZWN0cyhyZWN0cywgdXNlU2VsZWN0aW9uSGVpZ2h0LCBpbkZpeGVk
LCB7IEJvdW5kaW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zIH0pOwog
ICAgIGZvciAoYXV0byYgcmVjdCA6IHJlY3RzKQogICAgICAgICByZXN1bHQudW5pdGUocmVjdCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTExNTgsNyArMTE2MCw3IEBAIFZlY3RvcjxGbG9hdFJl
Y3Q+IFJhbmdlOjphYnNvbHV0ZVJlY3RzRm9yUmFuZ2VJblRleHQoTm9kZSogbm9kZSwgUmVuZGVy
VGV4dCYgcmVuCiAgICAgdW5zaWduZWQgc3RhcnRPZmZzZXQgPSBub2RlID09ICZzdGFydENvbnRh
aW5lcigpID8gbV9zdGFydC5vZmZzZXQoKSA6IDA7CiAgICAgdW5zaWduZWQgZW5kT2Zmc2V0ID0g
bm9kZSA9PSAmZW5kQ29udGFpbmVyKCkgPyBtX2VuZC5vZmZzZXQoKSA6IHN0ZDo6bnVtZXJpY19s
aW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKIAotICAgIGF1dG8gdGV4dFF1YWRzID0gcmVuZGVyVGV4
dC5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0
aW9uSGVpZ2h0LCAmaXNGaXhlZCk7CisgICAgYXV0byB0ZXh0UXVhZHMgPSByZW5kZXJUZXh0LmFi
c29sdXRlUXVhZHNGb3JSYW5nZShzdGFydE9mZnNldCwgZW5kT2Zmc2V0LCB1c2VTZWxlY3Rpb25I
ZWlnaHQsIHJlY3RPcHRpb25zLmNvbnRhaW5zKEJvdW5kaW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVF
bXB0eVRleHRTZWxlY3Rpb25zKSwgJmlzRml4ZWQpOwogCiAgICAgaWYgKHJlY3RPcHRpb25zLmNv
bnRhaW5zKEJvdW5kaW5nUmVjdEJlaGF2aW9yOjpSZXNwZWN0Q2xpcHBpbmcpKSB7CiAgICAgICAg
IFZlY3RvcjxGbG9hdFJlY3Q+IGNsaXBwZWRSZWN0czsKQEAgLTEyMjcsNyArMTIyOSw3IEBAIHZv
aWQgUmFuZ2U6OmFic29sdXRlVGV4dFF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9v
bCB1c2VTZWxlY3Rpb25IZWlnaHQsCiAgICAgICAgIGVsc2UgaWYgKGlzPFJlbmRlclRleHQ+KCpy
ZW5kZXJlcikpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gbm9kZSA9PSAm
c3RhcnRDb250YWluZXIoKSA/IG1fc3RhcnQub2Zmc2V0KCkgOiAwOwogICAgICAgICAgICAgdW5z
aWduZWQgZW5kT2Zmc2V0ID0gbm9kZSA9PSAmZW5kQ29udGFpbmVyKCkgPyBtX2VuZC5vZmZzZXQo
KSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKLSAgICAgICAgICAgIHF1
YWRzLmFwcGVuZFZlY3Rvcihkb3duY2FzdDxSZW5kZXJUZXh0PigqcmVuZGVyZXIpLmFic29sdXRl
UXVhZHNGb3JSYW5nZShzdGFydE9mZnNldCwgZW5kT2Zmc2V0LCB1c2VTZWxlY3Rpb25IZWlnaHQs
ICZpc0ZpeGVkKSk7CisgICAgICAgICAgICBxdWFkcy5hcHBlbmRWZWN0b3IoZG93bmNhc3Q8UmVu
ZGVyVGV4dD4oKnJlbmRlcmVyKS5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uoc3RhcnRPZmZzZXQsIGVu
ZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCBmYWxzZSAvKiBpZ25vcmVFbXB0eVRleHRTZWxl
Y3Rpb25zICovLCAmaXNGaXhlZCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICBhbGxGaXhlZCAmPSBpc0ZpeGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCBkOGZm
ODlmNmIwOC4uNDdiNmFlMmRkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0xMjAsNiArMTIwLDcgQEAg
cHVibGljOgogICAgICAgICBSZXNwZWN0Q2xpcHBpbmcgPSAxIDw8IDAsCiAgICAgICAgIFVzZVZp
c2libGVCb3VuZHMgPSAxIDw8IDEsCiAgICAgICAgIElnbm9yZVRpbnlSZWN0cyA9IDEgPDwgMiwK
KyAgICAgICAgSWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucyA9IDEgPDwgMywgLy8gRG8gbm90IHJl
dHVybiBlbXB0eSB0ZXh0IHJlY3RhbmdsZXMsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBFbGVtZW50
LmdldENsaWVudFJlY3QoKSBjb25mb3JtYW5jZS4KICAgICB9OwogCiAgICAgLy8gTm90IHRyYW5z
Zm9ybS1mcmllbmRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4
IDhkMzc4YjkxZTkxLi5mODNkYTZjOGZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcApAQCAtNDMxLDcgKzQzMSw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogICAg
IHF1YWRzLmFwcGVuZFZlY3RvcihtX2xpbmVCb3hlcy5hYnNvbHV0ZVF1YWRzKCp0aGlzLCB3YXNG
aXhlZCwgUmVuZGVyVGV4dExpbmVCb3hlczo6Tm9DbGlwcGluZykpOwogfQogCi1WZWN0b3I8Rmxv
YXRRdWFkPiBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAorVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdl
KHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBi
b29sIGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewog
ICAgIC8vIFdvcmsgYXJvdW5kIHNpZ25lZC91bnNpZ25lZCBpc3N1ZXMuIFRoaXMgZnVuY3Rpb24g
dGFrZXMgdW5zaWduZWRzLCBhbmQgaXMgb2Z0ZW4gcGFzc2VkIFVJTlRfTUFYCiAgICAgLy8gdG8g
bWVhbiAiYWxsIHRoZSB3YXkgdG8gdGhlIGVuZCIuIElubGluZVRleHRCb3ggY29vcmRpbmF0ZXMg
YXJlIHVuc2lnbmVkcywgc28gY2hhbmdpbmcgdGhpcwpAQCAtNDQzLDkgKzQ0Myw5IEBAIFZlY3Rv
cjxGbG9hdFF1YWQ+IFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNGb3JSYW5nZSh1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kCiAgICAgc3RhcnQgPSBzdGQ6Om1pbihzdGFydCwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KElOVF9NQVgpKTsKICAgICBlbmQgPSBzdGQ6Om1pbihlbmQsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihJTlRfTUFYKSk7CiAgICAgaWYgKHNpbXBsZUxpbmVMYXlvdXQoKSAmJiAh
dXNlU2VsZWN0aW9uSGVpZ2h0KQotICAgICAgICByZXR1cm4gY29sbGVjdEFic29sdXRlUXVhZHNG
b3JSYW5nZSgqdGhpcywgc3RhcnQsIGVuZCwgKnNpbXBsZUxpbmVMYXlvdXQoKSwgd2FzRml4ZWQp
OworICAgICAgICByZXR1cm4gY29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZSgqdGhpcywgc3Rh
cnQsIGVuZCwgKnNpbXBsZUxpbmVMYXlvdXQoKSwgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywg
d2FzRml4ZWQpOwogICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCY+KCp0aGlzKS5lbnN1cmVMaW5l
Qm94ZXMoKTsKLSAgICByZXR1cm4gbV9saW5lQm94ZXMuYWJzb2x1dGVRdWFkc0ZvclJhbmdlKCp0
aGlzLCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQsIHdhc0ZpeGVkKTsKKyAgICByZXR1
cm4gbV9saW5lQm94ZXMuYWJzb2x1dGVRdWFkc0ZvclJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCB1
c2VTZWxlY3Rpb25IZWlnaHQsIGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMsIHdhc0ZpeGVkKTsK
IH0KIAogUG9zaXRpb24gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQ
b2ludCYgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCBhNmEw
MWM1OWU3NS4uYWRjMmM3Zjk2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
aApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgYWJzb2x1dGVR
dWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBmaW5hbDsKLSAg
ICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnRP
ZmZzZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBVSU5UX01BWCwgYm9vbCB1c2VTZWxlY3Rp
b25IZWlnaHQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSBudWxscHRyKSBjb25zdDsKKyAgICBW
ZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnRPZmZz
ZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBVSU5UX01BWCwgYm9vbCB1c2VTZWxlY3Rpb25I
ZWlnaHQgPSBmYWxzZSwgYm9vbCBpZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zID0gZmFsc2UsIGJv
b2wqIHdhc0ZpeGVkID0gbnVsbHB0cikgY29uc3Q7CiAKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBh
YnNvbHV0ZVF1YWRzQ2xpcHBlZFRvRWxsaXBzaXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwCmluZGV4IGU1NzM1NDFjM2Q0
Li45NzZiMzFlMzRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRMaW5lQm94ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmNwcApAQCAtNDI5LDEwICs0MjksMTIgQEAgc3RhdGljIEZsb2F0UmVjdCBs
b2NhbFF1YWRGb3JUZXh0Qm94KGNvbnN0IElubGluZVRleHRCb3gmIGJveCwgdW5zaWduZWQgc3Rh
cnQsIHUKICAgICByZXR1cm4gYm94U2VsZWN0aW9uUmVjdDsKIH0KIAotVmVjdG9yPEZsb2F0UXVh
ZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRl
clRleHQmIHJlbmRlcmVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNl
bGVjdGlvbkhlaWdodCwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CitWZWN0b3I8RmxvYXRRdWFkPiBS
ZW5kZXJUZXh0TGluZUJveGVzOjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4
dCYgcmVuZGVyZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0
aW9uSGVpZ2h0LCBib29sIGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMsIGJvb2wqIHdhc0ZpeGVk
KSBjb25zdAogewogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIGZvciAoYXV0byog
Ym94ID0gbV9maXJzdDsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94KCkpIHsKKyAgICAgICAg
aWYgKGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMgJiYgIWJveC0+aXNTZWxlY3RlZChzdGFydCwg
ZW5kKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoc3RhcnQgPD0gYm94LT5z
dGFydCgpICYmIGJveC0+ZW5kKCkgPD0gZW5kKSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgYm91
bmRhcmllcyA9IGJveC0+Y2FsY3VsYXRlQm91bmRhcmllcygpOwogICAgICAgICAgICAgaWYgKHVz
ZVNlbGVjdGlvbkhlaWdodCkgewpAQCAtNDU3LDcgKzQ1OSw3IEBAIFZlY3RvcjxGbG9hdFF1YWQ+
IFJlbmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRlUXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJU
ZXh0JiByCiAKIFZlY3RvcjxJbnRSZWN0PiBSZW5kZXJUZXh0TGluZUJveGVzOjphYnNvbHV0ZVJl
Y3RzRm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBib29sKiB3YXNGaXhlZCkgY29u
c3QKIHsKLSAgICByZXR1cm4gYWJzb2x1dGVRdWFkc0ZvclJhbmdlKHJlbmRlcmVyLCBzdGFydCwg
ZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQsIHdhc0ZpeGVkKS5tYXAoW10oYXV0byYgcXVhZCkgeyBy
ZXR1cm4gcXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOyB9KTsKKyAgICByZXR1cm4gYWJzb2x1
dGVRdWFkc0ZvclJhbmdlKHJlbmRlcmVyLCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQs
IGZhbHNlIC8qIGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMgKi8sIHdhc0ZpeGVkKS5tYXAoW10o
YXV0byYgcXVhZCkgeyByZXR1cm4gcXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOyB9KTsKIH0K
IAogVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVRdWFkcyhj
b25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgYm9vbCogd2FzRml4ZWQsIENsaXBwaW5nT3B0aW9u
IG9wdGlvbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0TGluZUJveGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExp
bmVCb3hlcy5oCmluZGV4IDFlNzI2MmZhYTYzLi5jMDJmMmU2ZTQ1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5oCkBAIC02Niw3ICs2Niw3IEBA
IHB1YmxpYzoKIAogICAgIGVudW0gQ2xpcHBpbmdPcHRpb24geyBOb0NsaXBwaW5nLCBDbGlwVG9F
bGxpcHNpcyB9OwogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IGFic29sdXRlUXVhZHMoY29uc3QgUmVu
ZGVyVGV4dCYsIGJvb2wqIHdhc0ZpeGVkLCBDbGlwcGluZ09wdGlvbikgY29uc3Q7Ci0gICAgVmVj
dG9yPEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmLCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0OworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IGFic29sdXRlUXVhZHNG
b3JSYW5nZShjb25zdCBSZW5kZXJUZXh0JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwg
Ym9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0OwogICAgIFZlY3RvcjxJbnRSZWN0PiBhYnNvbHV0ZVJlY3Rz
Rm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQs
IGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKICNpZiAh
QVNTRVJUX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2lt
cGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2lt
cGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAKaW5kZXggMzdlYmQ0ODA5NTQuLjY3NTYwNzUyN2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1
bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlv
dXRGdW5jdGlvbnMuY3BwCkBAIC0yMDksMTIgKzIwOSwxNCBAQCB1bnNpZ25lZCB0ZXh0T2Zmc2V0
Rm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBjb25zdCBSZW5kZXJUZXh0JiByZW5k
ZXJlcgogICAgIHJldHVybiBydW4uc3RhcnQoKSArIHN0eWxlLmZvbnRDYXNjYWRlKCkub2Zmc2V0
Rm9yUG9zaXRpb24odGV4dFJ1biwgcG9pbnQueCgpIC0gcnVuLmxvZ2ljYWxMZWZ0KCksIHRydWUp
OwogfQogCi1WZWN0b3I8RmxvYXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNv
bnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQs
IGNvbnN0IExheW91dCYgbGF5b3V0LCBib29sKiB3YXNGaXhlZCkKK1ZlY3RvcjxGbG9hdFF1YWQ+
IGNvbGxlY3RBYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJl
ciwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgTGF5b3V0JiBsYXlvdXQsIGJv
b2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywgYm9vbCogd2FzRml4ZWQpCiB7CiAgICAgYXV0
byYgc3R5bGUgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpyZW5kZXJlci5wYXJlbnQoKSku
c3R5bGUoKTsKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICAgICBhdXRvJiByZXNvbHZl
ciA9IGxheW91dC5ydW5SZXNvbHZlcigpOwogICAgIGZvciAoYXV0byBydW4gOiByZXNvbHZlci5y
YW5nZUZvclJlbmRlcmVyV2l0aE9mZnNldHMocmVuZGVyZXIsIHN0YXJ0LCBlbmQpKSB7CisgICAg
ICAgIGlmIChpZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zICYmIHJ1bi5zdGFydCgpID09IHJ1bi5l
bmQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAvLyBUaGlzIHJ1biBpcyBmdWxs
eSBjb250YWluZWQuCiAgICAgICAgIGlmIChzdGFydCA8PSBydW4uc3RhcnQoKSAmJiBlbmQgPj0g
cnVuLmVuZCgpKSB7CiAgICAgICAgICAgICBxdWFkcy5hcHBlbmQocmVuZGVyZXIubG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFF1YWQocnVuLnJlY3QoKSksIFVzZVRyYW5zZm9ybXMsIHdhc0ZpeGVk
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91
dEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRG
dW5jdGlvbnMuaAppbmRleCAzMmIzNDkxNGRiMy4uNDZiY2M1NWU1NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaApAQCAt
NTEsNyArNTEsNyBAQCB2b2lkIGNvbGxlY3RGbG93T3ZlcmZsb3coUmVuZGVyQmxvY2tGbG93Jiwg
Y29uc3QgTGF5b3V0Jik7CiAKIFZlY3RvcjxGbG9hdFF1YWQ+IGNvbGxlY3RBYnNvbHV0ZVF1YWRz
KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IExheW91dCYsIGJvb2wqIHdhc0ZpeGVkKTsKIHVu
c2lnbmVkIHRleHRPZmZzZXRGb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IFJlbmRl
clRleHQmLCBjb25zdCBMYXlvdXQmKTsKLVZlY3RvcjxGbG9hdFF1YWQ+IGNvbGxlY3RBYnNvbHV0
ZVF1YWRzRm9yUmFuZ2UoY29uc3QgUmVuZGVyT2JqZWN0JiwgdW5zaWduZWQgc3RhcnQsIHVuc2ln
bmVkIGVuZCwgY29uc3QgTGF5b3V0JiwgYm9vbCogd2FzRml4ZWQpOworVmVjdG9yPEZsb2F0UXVh
ZD4gY29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJPYmplY3QmLCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBMYXlvdXQmLCBib29sIGlnbm9yZUVtcHR5
VGV4dFNlbGVjdGlvbnMsIGJvb2wqIHdhc0ZpeGVkKTsKIAogTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
RnJvbUZsb3coY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CiBMYXlvdXRVbml0IGJhc2VsaW5lRnJv
bUZsb3coY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQu
bW0KaW5kZXggMWRhMDU1MmMxYmQuLmUyODQ3MzRlYWI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdD
b250ZXh0Lm1tCkBAIC00NDMsNiArNDQzLDQ0IEBAIFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4
dCwgU3BhdGlhbFJlcXVlc3RJblRleHRGaWVsZCkKICAgICB9CiB9CiAKK1RFU1QoRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dCwgUmVxdWVzdFJlY3RzSW5UZXh0QXJlYUFjcm9zc1dvcmRXcmFwcGVkTGlu
ZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIC8vIFVzZSAi
cGFkZGluZzogMCIgYXMgdGhlIGRlZmF1bHQgdXNlci1hZ2VudCBzdHlsZXNoZWV0IGNhbiBlZmZl
Y3QgdGV4dCB3cmFwcGluZy4KKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6YXBwbHlBaGVtU3R5bGUoQCI8dGV4dGFyZWEgaWQ9J3Rlc3QnIHN0eWxlPSd3aWR0aDogMjZl
bTsgcGFkZGluZzogMCc+VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRv
Zy48L3RleHRhcmVhPiIpXTsgLy8gV29yZCB3cmFwcyAib3ZlciIgb250byBuZXh0IGxpbmUKKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidGVzdC5mb2N1cygpOyB0
ZXN0LnNldFNlbGVjdGlvblJhbmdlKDI1LCAyNSkiXTsgLy8gUGxhY2UgY2FyZXQgYWZ0ZXIgJ3Mn
IGluICJqdW1wcyIuCisKKyAgICBhdXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNs
eVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRl
eHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0UmVjdHMsIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMild
OworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEo
ImZveCBqdW1wcyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RSSU5H
X0VRKCIgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisgICAgYXV0byAqdGV4dFJl
Y3RzID0gW2NvbnRleHQgdGV4dFJlY3RzXTsKKyAgICBFWFBFQ1RfRVEoMThVLCB0ZXh0UmVjdHMu
Y291bnQpOworICAgIGlmICh0ZXh0UmVjdHMuY291bnQgPj0gMTgpIHsKKyAgICAgICAgQ0dGbG9h
dCB4ID0gNDAxOworICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMCAqIGdseXBoV2lk
dGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1swXS5DR1JlY3RWYWx1ZSk7IC8vIGYKKyAgICAgICAg
RVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDEgKiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUpLCB0ZXh0
UmVjdHNbMV0uQ0dSZWN0VmFsdWUpOyAvLyBvCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtl
KHggKyAyICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzJdLkNHUmVjdFZhbHVl
KTsgLy8geAorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMyAqIGdseXBoV2lkdGgs
IDMsIDI1LCAyNSksIHRleHRSZWN0c1szXS5DR1JlY3RWYWx1ZSk7IC8vCisgICAgICAgIEVYUEVD
VF9FUShDR1JlY3RNYWtlKHggKyA0ICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3Rz
WzRdLkNHUmVjdFZhbHVlKTsgLy8gagorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsg
NSAqIGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1s1XS5DR1JlY3RWYWx1ZSk7IC8v
IHUKKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDYgKiBnbHlwaFdpZHRoLCAzLCAy
NSwgMjUpLCB0ZXh0UmVjdHNbNl0uQ0dSZWN0VmFsdWUpOyAvLyBtCisgICAgICAgIEVYUEVDVF9F
UShDR1JlY3RNYWtlKHggKyA3ICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzdd
LkNHUmVjdFZhbHVlKTsgLy8gcAorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgOCAq
IGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1s4XS5DR1JlY3RWYWx1ZSk7IC8vIHMK
KyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDkgKiBnbHlwaFdpZHRoLCAzLCAyMywg
MjUpLCB0ZXh0UmVjdHNbOV0uQ0dSZWN0VmFsdWUpOyAvLworCisgICAgICAgIHggPSAxOworICAg
ICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMCAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUp
LCB0ZXh0UmVjdHNbMTBdLkNHUmVjdFZhbHVlKTsgLy8gbworICAgICAgICBFWFBFQ1RfRVEoQ0dS
ZWN0TWFrZSh4ICsgMSAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTFdLkNH
UmVjdFZhbHVlKTsgLy8gdgorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMiAqIGds
eXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTJdLkNHUmVjdFZhbHVlKTsgLy8gZQor
ICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMyAqIGdseXBoV2lkdGgsIDI4LCAyNSwg
MjUpLCB0ZXh0UmVjdHNbMTNdLkNHUmVjdFZhbHVlKTsgLy8gcgorICAgICAgICBFWFBFQ1RfRVEo
Q0dSZWN0TWFrZSh4ICsgNCAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTRd
LkNHUmVjdFZhbHVlKTsgLy8KKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDUgKiBn
bHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzE1XS5DR1JlY3RWYWx1ZSk7IC8vIHQK
KyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDYgKiBnbHlwaFdpZHRoLCAyOCwgMjUs
IDI1KSwgdGV4dFJlY3RzWzE2XS5DR1JlY3RWYWx1ZSk7IC8vIGgKKyAgICAgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoeCArIDcgKiBnbHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzE3
XS5DR1JlY3RWYWx1ZSk7IC8vIGUKKyAgICB9Cit9CisKIC8vIE1BUks6IFRlc3RzIHVzaW5nIHdv
cmQgZ3JhbnVsYXJpdHkKIAogVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0Rmly
c3RUd29Xb3JkcykKLS0gCjIuMjEuMCAoQXBwbGUgR2l0LTEyMi4yKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386989</attachid>
            <date>2020-01-07 10:30:17 -0800</date>
            <delta_ts>2020-01-07 11:59:42 -0800</delta_ts>
            <desc>Patch and unit test</desc>
            <filename>bug-205842-20200107103016.patch</filename>
            <type>text/plain</type>
            <size>17611</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ3ZTA2MjMyMTYxMjA0
Y2U1ZWNjNWJkNzk0ZmI4MGE2Y2ZmOWQwYy4uNDQ4YzJjZDM2OWMyZTNiMTUwNjQyMDQ5ODNmOWMz
OTAzYjM3YTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTAxLTA2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaXJzdCBjaGFyYWN0ZXIg
aW4gZWFjaCB3b3JkLXdyYXBwZWQgbGluZSBoYXMgaW5jb3JyZWN0IGNoYXJhY3RlciByZWN0IHdo
ZW4gcmVxdWVzdGVkIHJhbmdlIHNwYW5zIG11bHRpcGxlIGxpbmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2ODg0MzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElnbm9yZSBsaW5lIGJveGVzIHRoYXQgYXJlIG5vdCBzZWxlY3RlZCBieSB0aGUg
c3BlY2lmaWVkIHJhbmdlIHdoZW4gY29tcHV0aW5nIHRoZSBib3VuZGluZworICAgICAgICBib3gg
Zm9yIGl0IHZpYSBSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCgpLiBUaGlzIElQSSBpcyBkb2Vz
IG5vdCBlZmZlY3Qgd2ViLWV4cG9zZWQgYmVoYXZpb3IuCisKKyAgICAgICAgQSBsaW5lIGJveCBp
cyBzYWlkIHRvIGJlIHNlbGVjdGVkIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIg
aW4gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIKKyAgICAgICAgcmFuZ2UuIFNvLCBhIHJhbmdlIHdo
ZXJlIG9uZSBlbmRwb2ludCBjb2luY2lkZXMgd2l0aCB0aGUgZWRnZSBvZiBhIGxpbmUgYm94IGRv
ZXMgbm90IHNlbGVjdCB0aGUKKyAgICAgICAgYm94LiBIb3dldmVyIHN1Y2ggcmFuZ2VzIGFyZSBj
b25zaWRlcmVkIHRvIHNlbGVjdCBzdWNoIGJveGVzIHdoZW4gcGFzc2VkIHRvIHdlYi1leHBvc2Vk
IEFQSXMKKyAgICAgICAge0VsZW1lbnQsIFJhbmdlfS5nZXRDbGllbnRSZWN0cygpIGFuZCB7RWxl
bWVudCwgUmFuZ2V9LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLiBUaGVzZSByYW5nZXMKKyAgICAg
ICAgcHJvZHVjZSBlbXB0eSBjbGllbnQgcmVjdGFuZ2xlcyBhbmQgdGhlc2UgZW1wdHkgcmVjdGFu
Z2xlcyBlZmZlY3QgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSBib3VuZGluZworICAgICAgICBjbGll
bnQgcmVjdC4gVGhpcyBpcyBhbGwgc3BlY2VkIGJlaGF2aW9yLgorCisgICAgICAgIEZvciBTUEkg
YW5kIElQSXMgdGhlc2UgZW1wdHkgcmVjdGFuZ2xlcyBhcmUgbm90IG1lYW5pbmdmdWwgYW5kIHdo
ZW4gY29tcHV0aW5nIHRoZSBib3VuZGluZyByZWN0CisgICAgICAgIGNhdXNlIHdlaXJkIHJlc3Vs
dHM6IHRoZSBlbXB0eSByZWN0IGlzIHVuaW9uZWQgd2l0aCB0aGUgcmVjdCBmb3IgdGhlIG5leHQg
c2VsZWN0ZWQgY2hhcmFjdGVyCisgICAgICAgIHByb2R1Y2luZyBhIHJlY3RhbmdsZSB0aGF0IG92
ZXJsYXBzIHR3byBsaW5lcy4gSWdub3JpbmcgdGhlbSBtYWtlcyB0aGluZ3MgYmVoYXZlIG1vcmUg
bGlrZQorICAgICAgICBOU0xheW91dE1hbmFnZXIuCisKKyAgICAgICAgKiBkb20vUmFuZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmFic29sdXRlQm91bmRpbmdCb3ggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmFic29sdXRlUmVjdHNGb3JSYW5nZUluVGV4dCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6YWJzb2x1dGVUZXh0UXVhZHMgY29uc3QpOgor
ICAgICAgICAqIGRvbS9SYW5nZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNGb3JSYW5nZSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0TGluZUJveGVzOjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UgY29uc3QpOgorICAgICAgICBQYXNz
IGFuIG9wdGlvbiB0byBpZ25vcmUgZW1wdHkgdGV4dCBzZWxlY3Rpb25zIHRocm91Z2guCisKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRlUmVjdHNGb3JSYW5n
ZSBjb25zdCk6IEFkZGVkIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvCisgICAgICAgIGlnbm9y
ZSBlbXB0eSBzZWxlY3Rpb25zLiBJZiBlbmFibGVkIGFuZCBza2lwIGFsbCBib3hlcyB0aGF0IGFy
ZSBub3Qgc2VsZWN0ZWQgYnkgdGhlIHNwZWNpZmllZAorICAgICAgICBjaGFyYWN0ZXIgcmFuZ2Uu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVMaW5lTGF5b3V0Ojpjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKTogRGl0dG8u
CisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaDoKKwogMjAy
MC0wMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUHJl
Y2lzaW9uIG9mIGdldENsaWVudFJlY3RzKCksIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGRpZmZl
cnMgZGVwZW5kaW5nIHdoZXRoZXIgc2ltcGxlIGxpbmUgbGF5b3V0IG9yIGxpbmUgYm94IGxheW91
dCBpcyB1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCAzNWRmMTI5ZDYyMGU3YTY2ZWFhNGNmZmVk
ZDU2OTk1NDNmNGQ1YjlkLi4wMjkyNTc0MjVhNjM3MmQ1YmM2ZjExNjJmY2VmOTY1MzQ1OTg4ODEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTExNDcsNyArMTE0Nyw5IEBAIEludFJlY3QgUmFuZ2U6
OmFic29sdXRlQm91bmRpbmdCb3goKSBjb25zdAogewogICAgIEludFJlY3QgcmVzdWx0OwogICAg
IFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBhYnNvbHV0ZVRleHRSZWN0cyhyZWN0cyk7Cisg
ICAgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZTsKKyAgICBSYW5nZUluRml4ZWRQb3Np
dGlvbiogaW5GaXhlZCA9IG51bGxwdHI7CisgICAgYWJzb2x1dGVUZXh0UmVjdHMocmVjdHMsIHVz
ZVNlbGVjdGlvbkhlaWdodCwgaW5GaXhlZCwgeyBCb3VuZGluZ1JlY3RCZWhhdmlvcjo6SWdub3Jl
RW1wdHlUZXh0U2VsZWN0aW9ucyB9KTsKICAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWN0cykKICAg
ICAgICAgcmVzdWx0LnVuaXRlKHJlY3QpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMTU4LDcg
KzExNjAsNyBAQCBWZWN0b3I8RmxvYXRSZWN0PiBSYW5nZTo6YWJzb2x1dGVSZWN0c0ZvclJhbmdl
SW5UZXh0KE5vZGUqIG5vZGUsIFJlbmRlclRleHQmIHJlbgogICAgIHVuc2lnbmVkIHN0YXJ0T2Zm
c2V0ID0gbm9kZSA9PSAmc3RhcnRDb250YWluZXIoKSA/IG1fc3RhcnQub2Zmc2V0KCkgOiAwOwog
ICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG5vZGUgPT0gJmVuZENvbnRhaW5lcigpID8gbV9lbmQu
b2Zmc2V0KCkgOiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICBh
dXRvIHRleHRRdWFkcyA9IHJlbmRlclRleHQuYWJzb2x1dGVRdWFkc0ZvclJhbmdlKHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQsIHVzZVNlbGVjdGlvbkhlaWdodCwgJmlzRml4ZWQpOworICAgIGF1dG8g
dGV4dFF1YWRzID0gcmVuZGVyVGV4dC5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uoc3RhcnRPZmZzZXQs
IGVuZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCByZWN0T3B0aW9ucy5jb250YWlucyhCb3Vu
ZGluZ1JlY3RCZWhhdmlvcjo6SWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucyksICZpc0ZpeGVkKTsK
IAogICAgIGlmIChyZWN0T3B0aW9ucy5jb250YWlucyhCb3VuZGluZ1JlY3RCZWhhdmlvcjo6UmVz
cGVjdENsaXBwaW5nKSkgewogICAgICAgICBWZWN0b3I8RmxvYXRSZWN0PiBjbGlwcGVkUmVjdHM7
CkBAIC0xMjI3LDcgKzEyMjksNyBAQCB2b2lkIFJhbmdlOjphYnNvbHV0ZVRleHRRdWFkcyhWZWN0
b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LAogICAgICAgICBl
bHNlIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKSB7CiAgICAgICAgICAgICB1bnNpZ25l
ZCBzdGFydE9mZnNldCA9IG5vZGUgPT0gJnN0YXJ0Q29udGFpbmVyKCkgPyBtX3N0YXJ0Lm9mZnNl
dCgpIDogMDsKICAgICAgICAgICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG5vZGUgPT0gJmVuZENv
bnRhaW5lcigpID8gbV9lbmQub2Zmc2V0KCkgOiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCk7Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmRWZWN0b3IoZG93bmNhc3Q8UmVuZGVy
VGV4dD4oKnJlbmRlcmVyKS5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uoc3RhcnRPZmZzZXQsIGVuZE9m
ZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCAmaXNGaXhlZCkpOworICAgICAgICAgICAgcXVhZHMu
YXBwZW5kVmVjdG9yKGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5kZXJlcikuYWJzb2x1dGVRdWFk
c0ZvclJhbmdlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsIHVzZVNlbGVjdGlvbkhlaWdodCwgZmFs
c2UgLyogaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucyAqLywgJmlzRml4ZWQpKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYWxsRml4ZWQgJj0gaXNGaXhl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmgKaW5kZXggZDhmZjg5ZjZiMDhhMzMwYjg2YjcxZTg4NWIxOTM0NzZiZGI3
OGQ1YS4uNDdiNmFlMmRkNWNmYjliMmZiNzQ1ZTdlMmViYmFjYzg3ZDUyMjc0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJlc3BlY3RDbGlwcGlu
ZyA9IDEgPDwgMCwKICAgICAgICAgVXNlVmlzaWJsZUJvdW5kcyA9IDEgPDwgMSwKICAgICAgICAg
SWdub3JlVGlueVJlY3RzID0gMSA8PCAyLAorICAgICAgICBJZ25vcmVFbXB0eVRleHRTZWxlY3Rp
b25zID0gMSA8PCAzLCAvLyBEbyBub3QgcmV0dXJuIGVtcHR5IHRleHQgcmVjdGFuZ2xlcywgd2hp
Y2ggaXMgcmVxdWlyZWQgZm9yIEVsZW1lbnQuZ2V0Q2xpZW50UmVjdCgpIGNvbmZvcm1hbmNlLgog
ICAgIH07CiAKICAgICAvLyBOb3QgdHJhbnNmb3JtLWZyaWVuZGx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggOGQzNzhiOTFlOTFhOWZiMDM5M2ZhZGUxOWJhYzhi
NmY3OGUyMTA3ZS4uZjgzZGE2YzhmYzRhYzNiMDRmNjhlNGRjNDM0MGM5ZWIxMTZkN2RkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtNDMxLDcgKzQzMSw3IEBA
IHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogICAgIHF1YWRzLmFwcGVuZFZlY3RvcihtX2xpbmVCb3hl
cy5hYnNvbHV0ZVF1YWRzKCp0aGlzLCB3YXNGaXhlZCwgUmVuZGVyVGV4dExpbmVCb3hlczo6Tm9D
bGlwcGluZykpOwogfQogCi1WZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1
YWRzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rp
b25IZWlnaHQsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVy
VGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQs
IGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBib29sIGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIC8vIFdvcmsgYXJvdW5kIHNpZ25lZC91bnNp
Z25lZCBpc3N1ZXMuIFRoaXMgZnVuY3Rpb24gdGFrZXMgdW5zaWduZWRzLCBhbmQgaXMgb2Z0ZW4g
cGFzc2VkIFVJTlRfTUFYCiAgICAgLy8gdG8gbWVhbiAiYWxsIHRoZSB3YXkgdG8gdGhlIGVuZCIu
IElubGluZVRleHRCb3ggY29vcmRpbmF0ZXMgYXJlIHVuc2lnbmVkcywgc28gY2hhbmdpbmcgdGhp
cwpAQCAtNDQzLDkgKzQ0Myw5IEBAIFZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHQ6OmFic29s
dXRlUXVhZHNGb3JSYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kCiAgICAgc3RhcnQg
PSBzdGQ6Om1pbihzdGFydCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElOVF9NQVgpKTsKICAgICBl
bmQgPSBzdGQ6Om1pbihlbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihJTlRfTUFYKSk7CiAgICAg
aWYgKHNpbXBsZUxpbmVMYXlvdXQoKSAmJiAhdXNlU2VsZWN0aW9uSGVpZ2h0KQotICAgICAgICBy
ZXR1cm4gY29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZSgqdGhpcywgc3RhcnQsIGVuZCwgKnNp
bXBsZUxpbmVMYXlvdXQoKSwgd2FzRml4ZWQpOworICAgICAgICByZXR1cm4gY29sbGVjdEFic29s
dXRlUXVhZHNGb3JSYW5nZSgqdGhpcywgc3RhcnQsIGVuZCwgKnNpbXBsZUxpbmVMYXlvdXQoKSwg
aWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywgd2FzRml4ZWQpOwogICAgIGNvbnN0X2Nhc3Q8UmVu
ZGVyVGV4dCY+KCp0aGlzKS5lbnN1cmVMaW5lQm94ZXMoKTsKLSAgICByZXR1cm4gbV9saW5lQm94
ZXMuYWJzb2x1dGVRdWFkc0ZvclJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25I
ZWlnaHQsIHdhc0ZpeGVkKTsKKyAgICByZXR1cm4gbV9saW5lQm94ZXMuYWJzb2x1dGVRdWFkc0Zv
clJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQsIGlnbm9yZUVtcHR5
VGV4dFNlbGVjdGlvbnMsIHdhc0ZpeGVkKTsKIH0KIAogUG9zaXRpb24gUmVuZGVyVGV4dDo6cG9z
aXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaAppbmRleCBhNmEwMWM1OWU3NTg4NTI1ZDQyZjcyNjlkYmQwZDY2Yjlk
N2I0NGQwLi5hZGMyYzdmOTYzMDUzNTI3MDkxYWNiZTZjYTc2YTYzMGFkZjM5YjU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29s
KiB3YXNGaXhlZCkgY29uc3QgZmluYWw7Ci0gICAgVmVjdG9yPEZsb2F0UXVhZD4gYWJzb2x1dGVR
dWFkc0ZvclJhbmdlKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gMCwgdW5zaWduZWQgZW5kT2Zmc2V0
ID0gVUlOVF9NQVgsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2UsIGJvb2wqIHdhc0Zp
eGVkID0gbnVsbHB0cikgY29uc3Q7CisgICAgVmVjdG9yPEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFk
c0ZvclJhbmdlKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gMCwgdW5zaWduZWQgZW5kT2Zmc2V0ID0g
VUlOVF9NQVgsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2UsIGJvb2wgaWdub3JlRW1w
dHlUZXh0U2VsZWN0aW9ucyA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IG51bGxwdHIpIGNvbnN0
OwogCiAgICAgVmVjdG9yPEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFkc0NsaXBwZWRUb0VsbGlwc2lz
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGlu
ZUJveGVzLmNwcAppbmRleCBlNTczNTQxYzNkNDk3M2Y4NDQ4MTQ2OWZjMGRhNDc2NjNiOGU4NWNl
Li45NzZiMzFlMzRkMzJhMzAzYWMxYmM3YmMyYmE3NTNmOGVkMGM4YzQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwCkBAIC00MjksMTAg
KzQyOSwxMiBAQCBzdGF0aWMgRmxvYXRSZWN0IGxvY2FsUXVhZEZvclRleHRCb3goY29uc3QgSW5s
aW5lVGV4dEJveCYgYm94LCB1bnNpZ25lZCBzdGFydCwgdQogICAgIHJldHVybiBib3hTZWxlY3Rp
b25SZWN0OwogfQogCi1WZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJUZXh0TGluZUJveGVzOjphYnNv
bHV0ZVF1YWRzRm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBib29sKiB3YXNGaXhl
ZCkgY29uc3QKK1ZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRl
UXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wgaWdub3JlRW1wdHlU
ZXh0U2VsZWN0aW9ucywgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgVmVjdG9yPEZsb2F0
UXVhZD4gcXVhZHM7CiAgICAgZm9yIChhdXRvKiBib3ggPSBtX2ZpcnN0OyBib3g7IGJveCA9IGJv
eC0+bmV4dFRleHRCb3goKSkgeworICAgICAgICBpZiAoaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9u
cyAmJiAhYm94LT5pc1NlbGVjdGVkKHN0YXJ0LCBlbmQpKQorICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIGlmIChzdGFydCA8PSBib3gtPnN0YXJ0KCkgJiYgYm94LT5lbmQoKSA8PSBlbmQp
IHsKICAgICAgICAgICAgIEZsb2F0UmVjdCBib3VuZGFyaWVzID0gYm94LT5jYWxjdWxhdGVCb3Vu
ZGFyaWVzKCk7CiAgICAgICAgICAgICBpZiAodXNlU2VsZWN0aW9uSGVpZ2h0KSB7CkBAIC00NTcs
NyArNDU5LDcgQEAgVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1
dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHIKIAogVmVjdG9yPEludFJlY3Q+IFJl
bmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRlUmVjdHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0
JiByZW5kZXJlciwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rp
b25IZWlnaHQsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIHJldHVybiBhYnNvbHV0ZVF1
YWRzRm9yUmFuZ2UocmVuZGVyZXIsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCwgd2Fz
Rml4ZWQpLm1hcChbXShhdXRvJiBxdWFkKSB7IHJldHVybiBxdWFkLmVuY2xvc2luZ0JvdW5kaW5n
Qm94KCk7IH0pOworICAgIHJldHVybiBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UocmVuZGVyZXIsIHN0
YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCwgZmFsc2UgLyogaWdub3JlRW1wdHlUZXh0U2Vs
ZWN0aW9ucyAqLywgd2FzRml4ZWQpLm1hcChbXShhdXRvJiBxdWFkKSB7IHJldHVybiBxdWFkLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7IH0pOwogfQogCiBWZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJU
ZXh0TGluZUJveGVzOjphYnNvbHV0ZVF1YWRzKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBi
b29sKiB3YXNGaXhlZCwgQ2xpcHBpbmdPcHRpb24gb3B0aW9uKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmgKaW5kZXggMWU3MjYyZmFhNjNl
ZGUxMTZhNjE2ZTJlODkwYTlkNzIyMGM3OTJhZi4uYzAyZjJlNmU0NWFhNTY2OGVlZDk2ZDA0ODk0
Zjk0NWE4YWJiNWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRMaW5lQm94ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dExpbmVCb3hlcy5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gQ2xpcHBp
bmdPcHRpb24geyBOb0NsaXBwaW5nLCBDbGlwVG9FbGxpcHNpcyB9OwogICAgIFZlY3RvcjxGbG9h
dFF1YWQ+IGFic29sdXRlUXVhZHMoY29uc3QgUmVuZGVyVGV4dCYsIGJvb2wqIHdhc0ZpeGVkLCBD
bGlwcGluZ09wdGlvbikgY29uc3Q7Ci0gICAgVmVjdG9yPEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFk
c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
LCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCwgYm9vbCogd2FzRml4ZWQpIGNvbnN0OworICAgIFZl
Y3RvcjxGbG9hdFF1YWQ+IGFic29sdXRlUXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0Jiwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJv
b2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywgYm9vbCogd2FzRml4ZWQpIGNvbnN0OwogICAg
IFZlY3RvcjxJbnRSZWN0PiBhYnNvbHV0ZVJlY3RzRm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBi
b29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAK
aW5kZXggMzdlYmQ0ODA5NTQ2OWI0MTNiZjE3MmYzMzg1MWEzMjVjZWQzNGU2MS4uNjc1NjA3NTI3
YTIzMWY1YjU4NmE0ZTE5YjllYWI0NzZmNGE4YmQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcApAQCAtMjA5LDEy
ICsyMDksMTQgQEAgdW5zaWduZWQgdGV4dE9mZnNldEZvclBvaW50KGNvbnN0IExheW91dFBvaW50
JiBwb2ludCwgY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIKICAgICByZXR1cm4gcnVuLnN0YXJ0
KCkgKyBzdHlsZS5mb250Q2FzY2FkZSgpLm9mZnNldEZvclBvc2l0aW9uKHRleHRSdW4sIHBvaW50
LngoKSAtIHJ1bi5sb2dpY2FsTGVmdCgpLCB0cnVlKTsKIH0KIAotVmVjdG9yPEZsb2F0UXVhZD4g
Y29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVy
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBMYXlvdXQmIGxheW91dCwgYm9v
bCogd2FzRml4ZWQpCitWZWN0b3I8RmxvYXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJh
bmdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBlbmQsIGNvbnN0IExheW91dCYgbGF5b3V0LCBib29sIGlnbm9yZUVtcHR5VGV4dFNlbGVjdGlv
bnMsIGJvb2wqIHdhc0ZpeGVkKQogewogICAgIGF1dG8mIHN0eWxlID0gZG93bmNhc3Q8UmVuZGVy
QmxvY2tGbG93PigqcmVuZGVyZXIucGFyZW50KCkpLnN0eWxlKCk7CiAgICAgVmVjdG9yPEZsb2F0
UXVhZD4gcXVhZHM7CiAgICAgYXV0byYgcmVzb2x2ZXIgPSBsYXlvdXQucnVuUmVzb2x2ZXIoKTsK
ICAgICBmb3IgKGF1dG8gcnVuIDogcmVzb2x2ZXIucmFuZ2VGb3JSZW5kZXJlcldpdGhPZmZzZXRz
KHJlbmRlcmVyLCBzdGFydCwgZW5kKSkgeworICAgICAgICBpZiAoaWdub3JlRW1wdHlUZXh0U2Vs
ZWN0aW9ucyAmJiBydW4uc3RhcnQoKSA9PSBydW4uZW5kKCkpCisgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgLy8gVGhpcyBydW4gaXMgZnVsbHkgY29udGFpbmVkLgogICAgICAgICBpZiAo
c3RhcnQgPD0gcnVuLnN0YXJ0KCkgJiYgZW5kID49IHJ1bi5lbmQoKSkgewogICAgICAgICAgICAg
cXVhZHMuYXBwZW5kKHJlbmRlcmVyLmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJ1bi5y
ZWN0KCkpLCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmgKaW5kZXggMzJiMzQ5MTRk
YjNmZTkxNDU2MDBiNmMxMTAzZWZkMGM4NmUwNjUwYS4uNDZiY2M1NWU1NjQzMTU1YWQ2Njc4NTEy
MDNiOGY5NmRmZWMxYmI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Np
bXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5oCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgY29sbGVj
dEZsb3dPdmVyZmxvdyhSZW5kZXJCbG9ja0Zsb3cmLCBjb25zdCBMYXlvdXQmKTsKIAogVmVjdG9y
PEZsb2F0UXVhZD4gY29sbGVjdEFic29sdXRlUXVhZHMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29u
c3QgTGF5b3V0JiwgYm9vbCogd2FzRml4ZWQpOwogdW5zaWduZWQgdGV4dE9mZnNldEZvclBvaW50
KGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgUmVuZGVyVGV4dCYsIGNvbnN0IExheW91dCYpOwot
VmVjdG9yPEZsb2F0UXVhZD4gY29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZShjb25zdCBSZW5k
ZXJPYmplY3QmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBMYXlvdXQmLCBi
b29sKiB3YXNGaXhlZCk7CitWZWN0b3I8RmxvYXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkc0Zv
clJhbmdlKGNvbnN0IFJlbmRlck9iamVjdCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQs
IGNvbnN0IExheW91dCYsIGJvb2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywgYm9vbCogd2Fz
Rml4ZWQpOwogCiBMYXlvdXRVbml0IGxpbmVIZWlnaHRGcm9tRmxvdyhjb25zdCBSZW5kZXJCbG9j
a0Zsb3cmKTsKIExheW91dFVuaXQgYmFzZWxpbmVGcm9tRmxvdyhjb25zdCBSZW5kZXJCbG9ja0Zs
b3cmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAxZmMwY2NjYjAyMGMxZDliZWJhYWUzZjFmODI0ZjRmYjgzYmIzMDViLi41M2VhODAwNjFiZjNi
MzA4NTljZDg1Yzc0OTEwYjhkNDZkODQwMjBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMDYgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEZpcnN0IGNoYXJhY3RlciBp
biBlYWNoIHdvcmQtd3JhcHBlZCBsaW5lIGhhcyBpbmNvcnJlY3QgY2hhcmFjdGVyIHJlY3Qgd2hl
biByZXF1ZXN0ZWQgcmFuZ2Ugc3BhbnMgbXVsdGlwbGUgbGluZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTg0MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTY4ODQzMjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgbmV3IHRlc3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW06CisgICAgICAgIChURVNUKToK
KwogMjAyMC0wMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUHJlY2lzaW9uIG9mIGdldENsaWVudFJlY3RzKCksIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
IGRpZmZlcnMgZGVwZW5kaW5nIHdoZXRoZXIgc2ltcGxlIGxpbmUgbGF5b3V0IG9yIGxpbmUgYm94
IGxheW91dCBpcyB1c2VkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KaW5kZXggMWRhMDU1
MmMxYmQ2Nzc3NjBmNDZlNjRiYWY4MzhkNTRhMWRkZDQ0Mi4uZTI4NDczNGVhYjg3YzVkODVmOTRm
OGY5YWI5NTk4M2Q1N2E0YWE1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQpAQCAt
NDQzLDYgKzQ0Myw0NCBAQCBURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxSZXF1
ZXN0SW5UZXh0RmllbGQpCiAgICAgfQogfQogCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQs
IFJlcXVlc3RSZWN0c0luVGV4dEFyZWFBY3Jvc3NXb3JkV3JhcHBlZExpbmUpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICAvLyBVc2UgInBhZGRpbmc6IDAiIGFz
IHRoZSBkZWZhdWx0IHVzZXItYWdlbnQgc3R5bGVzaGVldCBjYW4gZWZmZWN0IHRleHQgd3JhcHBp
bmcuCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5QWhlbVN0
eWxlKEAiPHRleHRhcmVhIGlkPSd0ZXN0JyBzdHlsZT0nd2lkdGg6IDI2ZW07IHBhZGRpbmc6IDAn
PlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuPC90ZXh0YXJlYT4i
KV07IC8vIFdvcmQgd3JhcHMgIm92ZXIiIG9udG8gbmV4dCBsaW5lCisgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRlc3QuZm9jdXMoKTsgdGVzdC5zZXRTZWxlY3Rp
b25SYW5nZSgyNSwgMjUpIl07IC8vIFBsYWNlIGNhcmV0IGFmdGVyICdzJyBpbiAianVtcHMiLgor
CisgICAgYXV0byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1l
bnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3Vt
ZW50UmVxdWVzdFJlY3RzLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIpXTsKKyAgICBFWFBFQ1Rf
Tk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJmb3gganVtcHMiLCBj
b250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhl
IiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworICAgIGF1dG8gKnRleHRSZWN0cyA9IFtjb250ZXh0
IHRleHRSZWN0c107CisgICAgRVhQRUNUX0VRKDE4VSwgdGV4dFJlY3RzLmNvdW50KTsKKyAgICBp
ZiAodGV4dFJlY3RzLmNvdW50ID49IDE4KSB7CisgICAgICAgIENHRmxvYXQgeCA9IDQwMTsKKyAg
ICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDAgKiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUp
LCB0ZXh0UmVjdHNbMF0uQ0dSZWN0VmFsdWUpOyAvLyBmCisgICAgICAgIEVYUEVDVF9FUShDR1Jl
Y3RNYWtlKHggKyAxICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzFdLkNHUmVj
dFZhbHVlKTsgLy8gbworICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMiAqIGdseXBo
V2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1syXS5DR1JlY3RWYWx1ZSk7IC8vIHgKKyAgICAg
ICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDMgKiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUpLCB0
ZXh0UmVjdHNbM10uQ0dSZWN0VmFsdWUpOyAvLworICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFr
ZSh4ICsgNCAqIGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1s0XS5DR1JlY3RWYWx1
ZSk7IC8vIGoKKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDUgKiBnbHlwaFdpZHRo
LCAzLCAyNSwgMjUpLCB0ZXh0UmVjdHNbNV0uQ0dSZWN0VmFsdWUpOyAvLyB1CisgICAgICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKHggKyA2ICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJl
Y3RzWzZdLkNHUmVjdFZhbHVlKTsgLy8gbQorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4
ICsgNyAqIGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1s3XS5DR1JlY3RWYWx1ZSk7
IC8vIHAKKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDggKiBnbHlwaFdpZHRoLCAz
LCAyNSwgMjUpLCB0ZXh0UmVjdHNbOF0uQ0dSZWN0VmFsdWUpOyAvLyBzCisgICAgICAgIEVYUEVD
VF9FUShDR1JlY3RNYWtlKHggKyA5ICogZ2x5cGhXaWR0aCwgMywgMjMsIDI1KSwgdGV4dFJlY3Rz
WzldLkNHUmVjdFZhbHVlKTsgLy8KKworICAgICAgICB4ID0gMTsKKyAgICAgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoeCArIDAgKiBnbHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzEw
XS5DR1JlY3RWYWx1ZSk7IC8vIG8KKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDEg
KiBnbHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzExXS5DR1JlY3RWYWx1ZSk7IC8v
IHYKKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDIgKiBnbHlwaFdpZHRoLCAyOCwg
MjUsIDI1KSwgdGV4dFJlY3RzWzEyXS5DR1JlY3RWYWx1ZSk7IC8vIGUKKyAgICAgICAgRVhQRUNU
X0VRKENHUmVjdE1ha2UoeCArIDMgKiBnbHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3Rz
WzEzXS5DR1JlY3RWYWx1ZSk7IC8vIHIKKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCAr
IDQgKiBnbHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzE0XS5DR1JlY3RWYWx1ZSk7
IC8vCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyA1ICogZ2x5cGhXaWR0aCwgMjgs
IDI1LCAyNSksIHRleHRSZWN0c1sxNV0uQ0dSZWN0VmFsdWUpOyAvLyB0CisgICAgICAgIEVYUEVD
VF9FUShDR1JlY3RNYWtlKHggKyA2ICogZ2x5cGhXaWR0aCwgMjgsIDI1LCAyNSksIHRleHRSZWN0
c1sxNl0uQ0dSZWN0VmFsdWUpOyAvLyBoCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHgg
KyA3ICogZ2x5cGhXaWR0aCwgMjgsIDI1LCAyNSksIHRleHRSZWN0c1sxN10uQ0dSZWN0VmFsdWUp
OyAvLyBlCisgICAgfQorfQorCiAvLyBNQVJLOiBUZXN0cyB1c2luZyB3b3JkIGdyYW51bGFyaXR5
CiAKIFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdEZpcnN0VHdvV29yZHMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386996</attachid>
            <date>2020-01-07 10:52:11 -0800</date>
            <delta_ts>2020-01-07 11:59:43 -0800</delta_ts>
            <desc>Addendum - keep current behavior of Range::absoluteBoundingBox, but fix up request document context code path</desc>
            <filename>Addendum.patch</filename>
            <type>text/plain</type>
            <size>2317</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuY3BwCmluZGV4IDAyOTI1NzQyNWE2Li45YzExMzQwNWUyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCkBAIC0xMTQzLDEzICsxMTQzLDEzIEBAIE5vZGUqIFJhbmdlOjpwYXN0TGFzdE5v
ZGUoKSBjb25zdAogICAgIHJldHVybiBOb2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJl
bihlbmRDb250YWluZXIoKSk7CiB9CiAKLUludFJlY3QgUmFuZ2U6OmFic29sdXRlQm91bmRpbmdC
b3goKSBjb25zdAorSW50UmVjdCBSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveChPcHRpb25TZXQ8
Qm91bmRpbmdSZWN0QmVoYXZpb3I+IHJlY3RPcHRpb25zKSBjb25zdAogewogICAgIEludFJlY3Qg
cmVzdWx0OwogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKICAgICBib29sIHVzZVNlbGVjdGlv
bkhlaWdodCA9IGZhbHNlOwogICAgIFJhbmdlSW5GaXhlZFBvc2l0aW9uKiBpbkZpeGVkID0gbnVs
bHB0cjsKLSAgICBhYnNvbHV0ZVRleHRSZWN0cyhyZWN0cywgdXNlU2VsZWN0aW9uSGVpZ2h0LCBp
bkZpeGVkLCB7IEJvdW5kaW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25z
IH0pOworICAgIGFic29sdXRlVGV4dFJlY3RzKHJlY3RzLCB1c2VTZWxlY3Rpb25IZWlnaHQsIGlu
Rml4ZWQsIHJlY3RPcHRpb25zKTsKICAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWN0cykKICAgICAg
ICAgcmVzdWx0LnVuaXRlKHJlY3QpOwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmlu
ZGV4IDQ3YjZhZTJkZDVjLi5iNDkzYzdjZDQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTEyNSw3ICsx
MjUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOb3QgdHJhbnNmb3JtLWZyaWVuZGx5CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBhYnNvbHV0ZVRleHRSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBib29s
IHVzZVNlbGVjdGlvbkhlaWdodCA9IGZhbHNlLCBSYW5nZUluRml4ZWRQb3NpdGlvbiogPSBudWxs
cHRyLCBPcHRpb25TZXQ8Qm91bmRpbmdSZWN0QmVoYXZpb3I+ID0geyB9KSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBJbnRSZWN0IGFic29sdXRlQm91bmRpbmdCb3goKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBJbnRSZWN0IGFic29sdXRlQm91bmRpbmdCb3goT3B0aW9uU2V0PEJvdW5k
aW5nUmVjdEJlaGF2aW9yPiA9IHsgfSkgY29uc3Q7CiAKICAgICAvLyBUcmFuc2Zvcm0tZnJpZW5k
bHkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFic29sdXRlVGV4dFF1YWRzKFZlY3RvcjxGbG9h
dFF1YWQ+JiwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSwgUmFuZ2VJbkZpeGVkUG9z
aXRpb24qID0gbnVsbHB0cikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDQwYWQ4ZDM3Mjc1Li5jNTU0MDJmNDJh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTQwNzEsNyArNDA3MSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERvY3Vt
ZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVzCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJl
Y3RzLmFwcGVuZCh7IGNvbnRleHRJdGVyYXRvci5yYW5nZSgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94
KCksIHsgY3VycmVudExvY2F0aW9uLCAxIH0gfSk7CisgICAgICAgICAgICByZWN0cy5hcHBlbmQo
eyBjb250ZXh0SXRlcmF0b3IucmFuZ2UoKS0+YWJzb2x1dGVCb3VuZGluZ0JveChCb3VuZGluZ1Jl
Y3RCZWhhdmlvcjo6SWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucyksIHsgY3VycmVudExvY2F0aW9u
LCAxIH0gfSk7CiAgICAgICAgICAgICBjdXJyZW50TG9jYXRpb24rKzsKICAgICAgICAgICAgIGNv
bnRleHRJdGVyYXRvci5hZHZhbmNlKDEpOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387011</attachid>
            <date>2020-01-07 11:59:45 -0800</date>
            <delta_ts>2020-01-07 13:25:35 -0800</delta_ts>
            <desc>To land</desc>
            <filename>bug-205842-20200107115944.patch</filename>
            <type>text/plain</type>
            <size>20354</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ3ZTA2MjMyMTYxMjA0
Y2U1ZWNjNWJkNzk0ZmI4MGE2Y2ZmOWQwYy4uZTEwYzc1OWMyNTI1MGY1ZDk2MDc3OTliNGNjMzgz
MjA3ZDU4OWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAxLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaXJzdCBjaGFyYWN0ZXIg
aW4gZWFjaCB3b3JkLXdyYXBwZWQgbGluZSBoYXMgaW5jb3JyZWN0IGNoYXJhY3RlciByZWN0IHdo
ZW4gcmVxdWVzdGVkIHJhbmdlIHNwYW5zIG11bHRpcGxlIGxpbmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2ODg0MzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKwor
ICAgICAgICBBZGRzIGEgbmV3IEJvdW5kaW5nUmVjdEJlaGF2aW9yIGVudW1hcmF0b3IsIElnbm9y
ZUVtcHR5VGV4dFNlbGVjdGlvbnMsIHRvIGlnbm9yZSBsaW5lIGJveGVzCisgICAgICAgIHRoYXQg
YXJlIG5vdCBzZWxlY3RlZCBieSB0aGUgc3BlY2lmaWVkIHJhbmdlIHdoZW4gY29tcHV0aW5nIHRo
ZSBib3VuZGluZyBib3ggZm9yIGl0IHZpYSBSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCgpLgor
CisgICAgICAgIEEgbGluZSBib3ggaXMgc2FpZCB0byBiZSBzZWxlY3RlZCBpZiB0aGVyZSBpcyBh
dCBsZWFzdCBvbmUgY2hhcmFjdGVyIGluIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyCisgICAgICAg
IHJhbmdlLiBTbywgYSByYW5nZSB3aG9zZSBzdGFydCBwb3NpdGlvbiBjb2luY2lkZXMgd2l0aCB0
aGUgZWRnZSBvZiBhIGxpbmUgYm94IGRvZXMgbm90IHNlbGVjdCB0aGUKKyAgICAgICAgYm94LiBI
b3dldmVyIHN1Y2ggcmFuZ2VzIGFyZSBjb25zaWRlcmVkIHRvIHNlbGVjdCBzdWNoIGJveGVzIHdo
ZW4gcGFzc2VkIHRvIHdlYi1leHBvc2VkIEFQSXMKKyAgICAgICAge0VsZW1lbnQsIFJhbmdlfS5n
ZXRDbGllbnRSZWN0cygpIGFuZCB7RWxlbWVudCwgUmFuZ2V9LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLiBUaGVzZSByYW5nZXMKKyAgICAgICAgcHJvZHVjZSBlbXB0eSBjbGllbnQgcmVjdGFuZ2xl
cyBhbmQgdGhlc2UgZW1wdHkgcmVjdGFuZ2xlcyBlZmZlY3QgdGhlIGNvbXB1dGF0aW9uIG9mIHRo
ZSBib3VuZGluZworICAgICAgICBjbGllbnQgcmVjdC4gVGhpcyBpcyBhbGwgc3BlY2VkIGJlaGF2
aW9yLgorCisgICAgICAgIFdoZW4gY29tcHV0aW5nIHRoZSBnbHB5aCBib3VuZGluZyBib3ggZm9y
IGEgZG9jdW1lbnQgY29udGV4dCByZXF1ZXN0LCB0aGVzZSBlbXB0eSByZWN0YW5nbGVzIGFyZQor
ICAgICAgICBub3QgbWVhbmluZ2Z1bCBhbmQgY2F1c2Ugd2VpcmQgcmVzdWx0czogdGhlIGVtcHR5
IHJlY3QgaXMgdW5pb25lZCB3aXRoIHRoZSByZWN0IGZvciB0aGUgbmV4dCBzZWxlY3RlZAorICAg
ICAgICBjaGFyYWN0ZXIgcHJvZHVjaW5nIGEgcmVjdGFuZ2xlIHRoYXQgb3ZlcmxhcHMgdHdvIGxp
bmVzLiBJZ25vcmluZyB0aGVtIG1ha2VzIHRoaW5ncyBiZWhhdmUgbW9yZSBsaWtlCisgICAgICAg
IE5TTGF5b3V0TWFuYWdlci4KKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSYW5nZTo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlSW5UZXh0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlOjphYnNvbHV0ZVRleHRRdWFkcyBjb25zdCk6CisgICAgICAgICogZG9t
L1JhbmdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6
OmFic29sdXRlUXVhZHNGb3JSYW5nZSBjb25zdCk6CisgICAgICAgIFBhc3MgYW4gb3B0aW9uIHRv
IGlnbm9yZSBlbXB0eSB0ZXh0IHNlbGVjdGlvbnMgdGhyb3VnaC4gQnkgZGVmYXVsdCBSYW5nZTo6
YWJzb2x1dGVCb3VuZGluZ0JveCgpIHRha2VzCisgICAgICAgIGFuIGVtcHR5IHNldCBvZiBCb3Vu
ZGluZ1JlY3RCZWhhdmlvciBlbnVtZXJhdG9ycyB0byBrZWVwIGl0cyBjdXJyZW50IGJlaGF2aW9y
LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0TGluZUJveGVzOjphYnNvbHV0ZVJlY3Rz
Rm9yUmFuZ2UgY29uc3QpOiBBZGRlZCBhIGJvb2xlYW4gYXMgdG8gd2hldGhlciB0bworICAgICAg
ICBpZ25vcmUgZW1wdHkgc2VsZWN0aW9ucy4gSWYgZW5hYmxlZCwgc2tpcCBhbGwgYm94ZXMgdGhh
dCBhcmUgbm90IHNlbGVjdGVkIGJ5IHRoZSBzcGVjaWZpZWQKKyAgICAgICAgY2hhcmFjdGVyIHJh
bmdlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlTGluZUxheW91dDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZSk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmg6CisK
IDIwMjAtMDEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFByZWNpc2lvbiBvZiBnZXRDbGllbnRSZWN0cygpLCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBk
aWZmZXJzIGRlcGVuZGluZyB3aGV0aGVyIHNpbXBsZSBsaW5lIGxheW91dCBvciBsaW5lIGJveCBs
YXlvdXQgaXMgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1NWJlYTY1OWUzNGY1MTViZDFmNTRjOWQ5OTM5NTRl
OGMxODAyZDU1Li5mMmI2MDkxNWRkZGE4MDEyMzA2OTRhMDBhMTIxYWZhOTRkOWY0ZTQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAxLTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBGaXJzdCBjaGFyYWN0ZXIgaW4gZWFjaCB3b3JkLXdyYXBw
ZWQgbGluZSBoYXMgaW5jb3JyZWN0IGNoYXJhY3RlciByZWN0IHdoZW4gcmVxdWVzdGVkIHJhbmdl
IHNwYW5zIG11bHRpcGxlIGxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU4NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODg0MzI1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICBQYXNzIEJvdW5k
aW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zIHRvIFJhbmdlOjphYnNv
bHV0ZUJvdW5kaW5nQm94KCkgdG8gY29tcHV0ZQorICAgICAgICB0aGUgZ2x5cGggYm91bmRpbmcg
Ym94IGlnbm9yaW5nIGVtcHR5IHRleHQgc2VsZWN0aW9ucyB0aGF0IHdvdWxkIHR5cGljYWxseSBv
Y2N1ciBpZiB0aGUgc3RhcnQgb2YKKyAgICAgICAgdGhlIHJhbmdlIGNvaW5jaWRlIHdpdGggdGhl
IGVkZ2Ugb2YgYSBsaW5lIGJveC4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3IgbW9yZSBjb25zaXN0
ZW50IHdpdGgKKyAgICAgICAgdGhlIGJlaGF2aW9yIG9mIE5TTGF5b3V0TWFuYWdlci4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgorCiAyMDE5LTA5
LTEzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0
IGJ1aWxkaW5nIFdlYktpdCBmb3IgTWFjIENhdGFseXN0IGZyb20gWGNvZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
Y3BwCmluZGV4IDM1ZGYxMjlkNjIwZTdhNjZlYWE0Y2ZmZWRkNTY5OTU0M2Y0ZDViOWQuLjljMTEz
NDA1ZTI3NzVjZjdmMDVjN2Y4YWMzZmExODAwYjNkNDU5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApA
QCAtMTE0MywxMSArMTE0MywxMyBAQCBOb2RlKiBSYW5nZTo6cGFzdExhc3ROb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oZW5kQ29udGFp
bmVyKCkpOwogfQogCi1JbnRSZWN0IFJhbmdlOjphYnNvbHV0ZUJvdW5kaW5nQm94KCkgY29uc3QK
K0ludFJlY3QgUmFuZ2U6OmFic29sdXRlQm91bmRpbmdCb3goT3B0aW9uU2V0PEJvdW5kaW5nUmVj
dEJlaGF2aW9yPiByZWN0T3B0aW9ucykgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlc3VsdDsKICAg
ICBWZWN0b3I8SW50UmVjdD4gcmVjdHM7Ci0gICAgYWJzb2x1dGVUZXh0UmVjdHMocmVjdHMpOwor
ICAgIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2U7CisgICAgUmFuZ2VJbkZpeGVkUG9z
aXRpb24qIGluRml4ZWQgPSBudWxscHRyOworICAgIGFic29sdXRlVGV4dFJlY3RzKHJlY3RzLCB1
c2VTZWxlY3Rpb25IZWlnaHQsIGluRml4ZWQsIHJlY3RPcHRpb25zKTsKICAgICBmb3IgKGF1dG8m
IHJlY3QgOiByZWN0cykKICAgICAgICAgcmVzdWx0LnVuaXRlKHJlY3QpOwogICAgIHJldHVybiBy
ZXN1bHQ7CkBAIC0xMTU4LDcgKzExNjAsNyBAQCBWZWN0b3I8RmxvYXRSZWN0PiBSYW5nZTo6YWJz
b2x1dGVSZWN0c0ZvclJhbmdlSW5UZXh0KE5vZGUqIG5vZGUsIFJlbmRlclRleHQmIHJlbgogICAg
IHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gbm9kZSA9PSAmc3RhcnRDb250YWluZXIoKSA/IG1fc3Rh
cnQub2Zmc2V0KCkgOiAwOwogICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG5vZGUgPT0gJmVuZENv
bnRhaW5lcigpID8gbV9lbmQub2Zmc2V0KCkgOiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCk7CiAKLSAgICBhdXRvIHRleHRRdWFkcyA9IHJlbmRlclRleHQuYWJzb2x1dGVRdWFk
c0ZvclJhbmdlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsIHVzZVNlbGVjdGlvbkhlaWdodCwgJmlz
Rml4ZWQpOworICAgIGF1dG8gdGV4dFF1YWRzID0gcmVuZGVyVGV4dC5hYnNvbHV0ZVF1YWRzRm9y
UmFuZ2Uoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCByZWN0T3B0
aW9ucy5jb250YWlucyhCb3VuZGluZ1JlY3RCZWhhdmlvcjo6SWdub3JlRW1wdHlUZXh0U2VsZWN0
aW9ucyksICZpc0ZpeGVkKTsKIAogICAgIGlmIChyZWN0T3B0aW9ucy5jb250YWlucyhCb3VuZGlu
Z1JlY3RCZWhhdmlvcjo6UmVzcGVjdENsaXBwaW5nKSkgewogICAgICAgICBWZWN0b3I8RmxvYXRS
ZWN0PiBjbGlwcGVkUmVjdHM7CkBAIC0xMjI3LDcgKzEyMjksNyBAQCB2b2lkIFJhbmdlOjphYnNv
bHV0ZVRleHRRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wgdXNlU2VsZWN0aW9u
SGVpZ2h0LAogICAgICAgICBlbHNlIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKSB7CiAg
ICAgICAgICAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IG5vZGUgPT0gJnN0YXJ0Q29udGFpbmVy
KCkgPyBtX3N0YXJ0Lm9mZnNldCgpIDogMDsKICAgICAgICAgICAgIHVuc2lnbmVkIGVuZE9mZnNl
dCA9IG5vZGUgPT0gJmVuZENvbnRhaW5lcigpID8gbV9lbmQub2Zmc2V0KCkgOiBzdGQ6Om51bWVy
aWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmRWZWN0
b3IoZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKS5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uo
c3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCAmaXNGaXhlZCkpOwor
ICAgICAgICAgICAgcXVhZHMuYXBwZW5kVmVjdG9yKGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5k
ZXJlcikuYWJzb2x1dGVRdWFkc0ZvclJhbmdlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsIHVzZVNl
bGVjdGlvbkhlaWdodCwgZmFsc2UgLyogaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucyAqLywgJmlz
Rml4ZWQpKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
YWxsRml4ZWQgJj0gaXNGaXhlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggZDhmZjg5ZjZiMDhhMzMwYjg2
YjcxZTg4NWIxOTM0NzZiZGI3OGQ1YS4uYjQ5M2M3Y2Q0NmQ1NTE5NTkwZWZkOTdlNWRlYzdiOWM0
OWM0MmI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTEyMCwxMSArMTIwLDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgUmVzcGVjdENsaXBwaW5nID0gMSA8PCAwLAogICAgICAgICBVc2VWaXNpYmxlQm91bmRz
ID0gMSA8PCAxLAogICAgICAgICBJZ25vcmVUaW55UmVjdHMgPSAxIDw8IDIsCisgICAgICAgIEln
bm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMgPSAxIDw8IDMsIC8vIERvIG5vdCByZXR1cm4gZW1wdHkg
dGV4dCByZWN0YW5nbGVzLCB3aGljaCBpcyByZXF1aXJlZCBmb3IgRWxlbWVudC5nZXRDbGllbnRS
ZWN0KCkgY29uZm9ybWFuY2UuCiAgICAgfTsKIAogICAgIC8vIE5vdCB0cmFuc2Zvcm0tZnJpZW5k
bHkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFic29sdXRlVGV4dFJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2UsIFJhbmdlSW5GaXhlZFBvc2l0
aW9uKiA9IG51bGxwdHIsIE9wdGlvblNldDxCb3VuZGluZ1JlY3RCZWhhdmlvcj4gPSB7IH0pIGNv
bnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveCgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveChPcHRp
b25TZXQ8Qm91bmRpbmdSZWN0QmVoYXZpb3I+ID0geyB9KSBjb25zdDsKIAogICAgIC8vIFRyYW5z
Zm9ybS1mcmllbmRseQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWJzb2x1dGVUZXh0UXVhZHMo
VmVjdG9yPEZsb2F0UXVhZD4mLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCA9IGZhbHNlLCBSYW5n
ZUluRml4ZWRQb3NpdGlvbiogPSBudWxscHRyKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcAppbmRleCA4ZDM3OGI5MWU5MWE5ZmIwMzkzZmFkZTE5YmFjOGI2Zjc4
ZTIxMDdlLi5mODNkYTZjOGZjNGFjM2IwNGY2OGU0ZGM0MzQwYzllYjExNmQ3ZGQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC00MzEsNyArNDMxLDcgQEAgdm9p
ZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiAgICAgcXVhZHMuYXBwZW5kVmVjdG9yKG1fbGluZUJveGVzLmFi
c29sdXRlUXVhZHMoKnRoaXMsIHdhc0ZpeGVkLCBSZW5kZXJUZXh0TGluZUJveGVzOjpOb0NsaXBw
aW5nKSk7CiB9CiAKLVZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNG
b3JSYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhl
aWdodCwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CitWZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJUZXh0
OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9v
bCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gV29yayBhcm91bmQgc2lnbmVkL3Vuc2lnbmVk
IGlzc3Vlcy4gVGhpcyBmdW5jdGlvbiB0YWtlcyB1bnNpZ25lZHMsIGFuZCBpcyBvZnRlbiBwYXNz
ZWQgVUlOVF9NQVgKICAgICAvLyB0byBtZWFuICJhbGwgdGhlIHdheSB0byB0aGUgZW5kIi4gSW5s
aW5lVGV4dEJveCBjb29yZGluYXRlcyBhcmUgdW5zaWduZWRzLCBzbyBjaGFuZ2luZyB0aGlzCkBA
IC00NDMsOSArNDQzLDkgQEAgVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkc0ZvclJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQKICAgICBzdGFydCA9IHN0
ZDo6bWluKHN0YXJ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSU5UX01BWCkpOwogICAgIGVuZCA9
IHN0ZDo6bWluKGVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElOVF9NQVgpKTsKICAgICBpZiAo
c2ltcGxlTGluZUxheW91dCgpICYmICF1c2VTZWxlY3Rpb25IZWlnaHQpCi0gICAgICAgIHJldHVy
biBjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCAqc2ltcGxl
TGluZUxheW91dCgpLCB3YXNGaXhlZCk7CisgICAgICAgIHJldHVybiBjb2xsZWN0QWJzb2x1dGVR
dWFkc0ZvclJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCAqc2ltcGxlTGluZUxheW91dCgpLCBpZ25v
cmVFbXB0eVRleHRTZWxlY3Rpb25zLCB3YXNGaXhlZCk7CiAgICAgY29uc3RfY2FzdDxSZW5kZXJU
ZXh0Jj4oKnRoaXMpLmVuc3VyZUxpbmVCb3hlcygpOwotICAgIHJldHVybiBtX2xpbmVCb3hlcy5h
YnNvbHV0ZVF1YWRzRm9yUmFuZ2UoKnRoaXMsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdo
dCwgd2FzRml4ZWQpOworICAgIHJldHVybiBtX2xpbmVCb3hlcy5hYnNvbHV0ZVF1YWRzRm9yUmFu
Z2UoKnRoaXMsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCwgaWdub3JlRW1wdHlUZXh0
U2VsZWN0aW9ucywgd2FzRml4ZWQpOwogfQogCiBQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlv
bkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCmluZGV4IGE2YTAxYzU5ZTc1ODg1MjVkNDJmNzI2OWRiZDBkNjZiOWQ3YjQ0
ZDAuLmFkYzJjN2Y5NjMwNTM1MjcwOTFhY2JlNmNhNzZhNjMwYWRmMzliNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdCBmaW5hbDsKLSAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRz
Rm9yUmFuZ2UodW5zaWduZWQgc3RhcnRPZmZzZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBV
SU5UX01BWCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQg
PSBudWxscHRyKSBjb25zdDsKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzRm9y
UmFuZ2UodW5zaWduZWQgc3RhcnRPZmZzZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBVSU5U
X01BWCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSwgYm9vbCBpZ25vcmVFbXB0eVRl
eHRTZWxlY3Rpb25zID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gbnVsbHB0cikgY29uc3Q7CiAK
ICAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzQ2xpcHBlZFRvRWxsaXBzaXMoKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRM
aW5lQm94ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94
ZXMuY3BwCmluZGV4IGU1NzM1NDFjM2Q0OTczZjg0NDgxNDY5ZmMwZGE0NzY2M2I4ZTg1Y2UuLjk3
NmIzMWUzNGQzMmEzMDNhYzFiYzdiYzJiYTc1M2Y4ZWQwYzhjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKQEAgLTQyOSwxMCArNDI5
LDEyIEBAIHN0YXRpYyBGbG9hdFJlY3QgbG9jYWxRdWFkRm9yVGV4dEJveChjb25zdCBJbmxpbmVU
ZXh0Qm94JiBib3gsIHVuc2lnbmVkIHN0YXJ0LCB1CiAgICAgcmV0dXJuIGJveFNlbGVjdGlvblJl
Y3Q7CiB9CiAKLVZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRl
UXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAorVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVRdWFk
c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCwgYm9vbCBpZ25vcmVFbXB0eVRleHRT
ZWxlY3Rpb25zLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBWZWN0b3I8RmxvYXRRdWFk
PiBxdWFkczsKICAgICBmb3IgKGF1dG8qIGJveCA9IG1fZmlyc3Q7IGJveDsgYm94ID0gYm94LT5u
ZXh0VGV4dEJveCgpKSB7CisgICAgICAgIGlmIChpZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zICYm
ICFib3gtPmlzU2VsZWN0ZWQoc3RhcnQsIGVuZCkpCisgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3RhcnQoKSAmJiBib3gtPmVuZCgpIDw9IGVuZCkgewog
ICAgICAgICAgICAgRmxvYXRSZWN0IGJvdW5kYXJpZXMgPSBib3gtPmNhbGN1bGF0ZUJvdW5kYXJp
ZXMoKTsKICAgICAgICAgICAgIGlmICh1c2VTZWxlY3Rpb25IZWlnaHQpIHsKQEAgLTQ1Nyw3ICs0
NTksNyBAQCBWZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJUZXh0TGluZUJveGVzOjphYnNvbHV0ZVF1
YWRzRm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYgcgogCiBWZWN0b3I8SW50UmVjdD4gUmVuZGVy
VGV4dExpbmVCb3hlczo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHJl
bmRlcmVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhl
aWdodCwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFic29sdXRlUXVhZHNG
b3JSYW5nZShyZW5kZXJlciwgc3RhcnQsIGVuZCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCB3YXNGaXhl
ZCkubWFwKFtdKGF1dG8mIHF1YWQpIHsgcmV0dXJuIHF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3go
KTsgfSk7CisgICAgcmV0dXJuIGFic29sdXRlUXVhZHNGb3JSYW5nZShyZW5kZXJlciwgc3RhcnQs
IGVuZCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCBmYWxzZSAvKiBpZ25vcmVFbXB0eVRleHRTZWxlY3Rp
b25zICovLCB3YXNGaXhlZCkubWFwKFtdKGF1dG8mIHF1YWQpIHsgcmV0dXJuIHF1YWQuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsgfSk7CiB9CiAKIFZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHRM
aW5lQm94ZXM6OmFic29sdXRlUXVhZHMoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGJvb2wq
IHdhc0ZpeGVkLCBDbGlwcGluZ09wdGlvbiBvcHRpb24pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaAppbmRleCAxZTcyNjJmYWE2M2VkZTEx
NmE2MTZlMmU4OTBhOWQ3MjIwYzc5MmFmLi5jMDJmMmU2ZTQ1YWE1NjY4ZWVkOTZkMDQ4OTRmOTQ1
YThhYmI1Zjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dExpbmVCb3hlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGlu
ZUJveGVzLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBDbGlwcGluZ09w
dGlvbiB7IE5vQ2xpcHBpbmcsIENsaXBUb0VsbGlwc2lzIH07CiAgICAgVmVjdG9yPEZsb2F0UXVh
ZD4gYWJzb2x1dGVRdWFkcyhjb25zdCBSZW5kZXJUZXh0JiwgYm9vbCogd2FzRml4ZWQsIENsaXBw
aW5nT3B0aW9uKSBjb25zdDsKLSAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzRm9y
UmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJv
b2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CisgICAgVmVjdG9y
PEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmLCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCwgYm9vbCBp
Z25vcmVFbXB0eVRleHRTZWxlY3Rpb25zLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAgICAgVmVj
dG9yPEludFJlY3Q+IGFic29sdXRlUmVjdHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0JiwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdDsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAppbmRl
eCAzN2ViZDQ4MDk1NDY5YjQxM2JmMTcyZjMzODUxYTMyNWNlZDM0ZTYxLi42NzU2MDc1MjdhMjMx
ZjViNTg2YTRlMTliOWVhYjQ3NmY0YThiZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCkBAIC0yMDksMTIgKzIw
OSwxNCBAQCB1bnNpZ25lZCB0ZXh0T2Zmc2V0Rm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50LCBjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlcgogICAgIHJldHVybiBydW4uc3RhcnQoKSAr
IHN0eWxlLmZvbnRDYXNjYWRlKCkub2Zmc2V0Rm9yUG9zaXRpb24odGV4dFJ1biwgcG9pbnQueCgp
IC0gcnVuLmxvZ2ljYWxMZWZ0KCksIHRydWUpOwogfQogCi1WZWN0b3I8RmxvYXRRdWFkPiBjb2xs
ZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IExheW91dCYgbGF5b3V0LCBib29sKiB3
YXNGaXhlZCkKK1ZlY3RvcjxGbG9hdFF1YWQ+IGNvbGxlY3RBYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uo
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVu
ZCwgY29uc3QgTGF5b3V0JiBsYXlvdXQsIGJvb2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywg
Ym9vbCogd2FzRml4ZWQpCiB7CiAgICAgYXV0byYgc3R5bGUgPSBkb3duY2FzdDxSZW5kZXJCbG9j
a0Zsb3c+KCpyZW5kZXJlci5wYXJlbnQoKSkuc3R5bGUoKTsKICAgICBWZWN0b3I8RmxvYXRRdWFk
PiBxdWFkczsKICAgICBhdXRvJiByZXNvbHZlciA9IGxheW91dC5ydW5SZXNvbHZlcigpOwogICAg
IGZvciAoYXV0byBydW4gOiByZXNvbHZlci5yYW5nZUZvclJlbmRlcmVyV2l0aE9mZnNldHMocmVu
ZGVyZXIsIHN0YXJ0LCBlbmQpKSB7CisgICAgICAgIGlmIChpZ25vcmVFbXB0eVRleHRTZWxlY3Rp
b25zICYmIHJ1bi5zdGFydCgpID09IHJ1bi5lbmQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAvLyBUaGlzIHJ1biBpcyBmdWxseSBjb250YWluZWQuCiAgICAgICAgIGlmIChzdGFy
dCA8PSBydW4uc3RhcnQoKSAmJiBlbmQgPj0gcnVuLmVuZCgpKSB7CiAgICAgICAgICAgICBxdWFk
cy5hcHBlbmQocmVuZGVyZXIubG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocnVuLnJlY3Qo
KSksIFVzZVRyYW5zZm9ybXMsIHdhc0ZpeGVkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaAppbmRleCAzMmIzNDkxNGRiM2Zl
OTE0NTYwMGI2YzExMDNlZmQwYzg2ZTA2NTBhLi40NmJjYzU1ZTU2NDMxNTVhZDY2Nzg1MTIwM2I4
Zjk2ZGZlYzFiYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1w
bGVMaW5lTGF5b3V0RnVuY3Rpb25zLmgKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBjb2xsZWN0Rmxv
d092ZXJmbG93KFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IExheW91dCYpOwogCiBWZWN0b3I8Rmxv
YXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkcyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBM
YXlvdXQmLCBib29sKiB3YXNGaXhlZCk7CiB1bnNpZ25lZCB0ZXh0T2Zmc2V0Rm9yUG9pbnQoY29u
c3QgTGF5b3V0UG9pbnQmLCBjb25zdCBSZW5kZXJUZXh0JiwgY29uc3QgTGF5b3V0Jik7Ci1WZWN0
b3I8RmxvYXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlck9i
amVjdCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IExheW91dCYsIGJvb2wq
IHdhc0ZpeGVkKTsKK1ZlY3RvcjxGbG9hdFF1YWQ+IGNvbGxlY3RBYnNvbHV0ZVF1YWRzRm9yUmFu
Z2UoY29uc3QgUmVuZGVyT2JqZWN0JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgTGF5b3V0JiwgYm9vbCBpZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zLCBib29sKiB3YXNGaXhl
ZCk7CiAKIExheW91dFVuaXQgbGluZUhlaWdodEZyb21GbG93KGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYpOwogTGF5b3V0VW5pdCBiYXNlbGluZUZyb21GbG93KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCA0MGFkOGQzNzI3NWViNDRhZDMyM2EyMWI5NTYwMzZmNTkxZWJiZWVkLi5jNTU0
MDJmNDJhMmRlNmE0MTRlNTVmMTdhNzk0NDdkZDQxMzQ1N2QyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDA3MSw3ICs0
MDcxLDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1
bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmVjdHMuYXBwZW5kKHsgY29udGV4dEl0
ZXJhdG9yLnJhbmdlKCktPmFic29sdXRlQm91bmRpbmdCb3goKSwgeyBjdXJyZW50TG9jYXRpb24s
IDEgfSB9KTsKKyAgICAgICAgICAgIHJlY3RzLmFwcGVuZCh7IGNvbnRleHRJdGVyYXRvci5yYW5n
ZSgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94KEJvdW5kaW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVFbXB0
eVRleHRTZWxlY3Rpb25zKSwgeyBjdXJyZW50TG9jYXRpb24sIDEgfSB9KTsKICAgICAgICAgICAg
IGN1cnJlbnRMb2NhdGlvbisrOwogICAgICAgICAgICAgY29udGV4dEl0ZXJhdG9yLmFkdmFuY2Uo
MSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAxZmMwY2NjYjAyMGMxZDliZWJhYWUzZjFmODI0ZjRmYjgzYmIzMDViLi5mNWY3
YzhmMGQxYzNlMDJkMjNlNzk4ZDBjOGI3ZjYyMTdkYzZmNzYxIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEt
MDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEZpcnN0IGNo
YXJhY3RlciBpbiBlYWNoIHdvcmQtd3JhcHBlZCBsaW5lIGhhcyBpbmNvcnJlY3QgY2hhcmFjdGVy
IHJlY3Qgd2hlbiByZXF1ZXN0ZWQgcmFuZ2Ugc3BhbnMgbXVsdGlwbGUgbGluZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTg0MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTY4ODQzMjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVq
dGFzLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAo
VEVTVCk6CisKIDIwMjAtMDEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFByZWNpc2lvbiBvZiBnZXRDbGllbnRSZWN0cygpLCBnZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKSBkaWZmZXJzIGRlcGVuZGluZyB3aGV0aGVyIHNpbXBsZSBsaW5lIGxheW91dCBvciBs
aW5lIGJveCBsYXlvdXQgaXMgdXNlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4
IDFkYTA1NTJjMWJkNjc3NzYwZjQ2ZTY0YmFmODM4ZDU0YTFkZGQ0NDIuLmUyODQ3MzRlYWI4N2M1
ZDg1Zjk0ZjhmOWFiOTU5ODNkNTdhNGFhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQu
bW0KQEAgLTQ0Myw2ICs0NDMsNDQgQEAgVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0
aWFsUmVxdWVzdEluVGV4dEZpZWxkKQogICAgIH0KIH0KIAorVEVTVChEb2N1bWVudEVkaXRpbmdD
b250ZXh0LCBSZXF1ZXN0UmVjdHNJblRleHRBcmVhQWNyb3NzV29yZFdyYXBwZWRMaW5lKQorewor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgLy8gVXNlICJwYWRkaW5n
OiAwIiBhcyB0aGUgZGVmYXVsdCB1c2VyLWFnZW50IHN0eWxlc2hlZXQgY2FuIGVmZmVjdCB0ZXh0
IHdyYXBwaW5nLgorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBs
eUFoZW1TdHlsZShAIjx0ZXh0YXJlYSBpZD0ndGVzdCcgc3R5bGU9J3dpZHRoOiAyNmVtOyBwYWRk
aW5nOiAwJz5UaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLjwvdGV4
dGFyZWE+IildOyAvLyBXb3JkIHdyYXBzICJvdmVyIiBvbnRvIG5leHQgbGluZQorICAgIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0ZXN0LmZvY3VzKCk7IHRlc3Quc2V0
U2VsZWN0aW9uUmFuZ2UoMjUsIDI1KSJdOyAvLyBQbGFjZSBjYXJldCBhZnRlciAncycgaW4gImp1
bXBzIi4KKworICAgIGF1dG8gKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVz
dERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJ
V0tEb2N1bWVudFJlcXVlc3RSZWN0cywgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyKV07CisgICAg
RVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiZm94IGp1
bXBzIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIiBv
dmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKyAgICBhdXRvICp0ZXh0UmVjdHMgPSBb
Y29udGV4dCB0ZXh0UmVjdHNdOworICAgIEVYUEVDVF9FUSgxOFUsIHRleHRSZWN0cy5jb3VudCk7
CisgICAgaWYgKHRleHRSZWN0cy5jb3VudCA+PSAxOCkgeworICAgICAgICBDR0Zsb2F0IHggPSA0
MDE7CisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyAwICogZ2x5cGhXaWR0aCwgMywg
MjUsIDI1KSwgdGV4dFJlY3RzWzBdLkNHUmVjdFZhbHVlKTsgLy8gZgorICAgICAgICBFWFBFQ1Rf
RVEoQ0dSZWN0TWFrZSh4ICsgMSAqIGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1sx
XS5DR1JlY3RWYWx1ZSk7IC8vIG8KKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDIg
KiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUpLCB0ZXh0UmVjdHNbMl0uQ0dSZWN0VmFsdWUpOyAvLyB4
CisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyAzICogZ2x5cGhXaWR0aCwgMywgMjUs
IDI1KSwgdGV4dFJlY3RzWzNdLkNHUmVjdFZhbHVlKTsgLy8KKyAgICAgICAgRVhQRUNUX0VRKENH
UmVjdE1ha2UoeCArIDQgKiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUpLCB0ZXh0UmVjdHNbNF0uQ0dS
ZWN0VmFsdWUpOyAvLyBqCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyA1ICogZ2x5
cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzVdLkNHUmVjdFZhbHVlKTsgLy8gdQorICAg
ICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgNiAqIGdseXBoV2lkdGgsIDMsIDI1LCAyNSks
IHRleHRSZWN0c1s2XS5DR1JlY3RWYWx1ZSk7IC8vIG0KKyAgICAgICAgRVhQRUNUX0VRKENHUmVj
dE1ha2UoeCArIDcgKiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUpLCB0ZXh0UmVjdHNbN10uQ0dSZWN0
VmFsdWUpOyAvLyBwCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyA4ICogZ2x5cGhX
aWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzhdLkNHUmVjdFZhbHVlKTsgLy8gcworICAgICAg
ICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgOSAqIGdseXBoV2lkdGgsIDMsIDIzLCAyNSksIHRl
eHRSZWN0c1s5XS5DR1JlY3RWYWx1ZSk7IC8vCisKKyAgICAgICAgeCA9IDE7CisgICAgICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKHggKyAwICogZ2x5cGhXaWR0aCwgMjgsIDI1LCAyNSksIHRleHRS
ZWN0c1sxMF0uQ0dSZWN0VmFsdWUpOyAvLyBvCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtl
KHggKyAxICogZ2x5cGhXaWR0aCwgMjgsIDI1LCAyNSksIHRleHRSZWN0c1sxMV0uQ0dSZWN0VmFs
dWUpOyAvLyB2CisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyAyICogZ2x5cGhXaWR0
aCwgMjgsIDI1LCAyNSksIHRleHRSZWN0c1sxMl0uQ0dSZWN0VmFsdWUpOyAvLyBlCisgICAgICAg
IEVYUEVDVF9FUShDR1JlY3RNYWtlKHggKyAzICogZ2x5cGhXaWR0aCwgMjgsIDI1LCAyNSksIHRl
eHRSZWN0c1sxM10uQ0dSZWN0VmFsdWUpOyAvLyByCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RN
YWtlKHggKyA0ICogZ2x5cGhXaWR0aCwgMjgsIDI1LCAyNSksIHRleHRSZWN0c1sxNF0uQ0dSZWN0
VmFsdWUpOyAvLworICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgNSAqIGdseXBoV2lk
dGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTVdLkNHUmVjdFZhbHVlKTsgLy8gdAorICAgICAg
ICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgNiAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0
ZXh0UmVjdHNbMTZdLkNHUmVjdFZhbHVlKTsgLy8gaAorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0
TWFrZSh4ICsgNyAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTddLkNHUmVj
dFZhbHVlKTsgLy8gZQorICAgIH0KK30KKwogLy8gTUFSSzogVGVzdHMgdXNpbmcgd29yZCBncmFu
dWxhcml0eQogCiBURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVlc3RGaXJzdFR3b1dv
cmRzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387024</attachid>
            <date>2020-01-07 13:25:38 -0800</date>
            <delta_ts>2020-01-07 13:25:38 -0800</delta_ts>
            <desc>To land</desc>
            <filename>bug-205842-20200107132537.patch</filename>
            <type>text/plain</type>
            <size>20361</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ3ZTA2MjMyMTYxMjA0
Y2U1ZWNjNWJkNzk0ZmI4MGE2Y2ZmOWQwYy4uZTEwYzc1OWMyNTI1MGY1ZDk2MDc3OTliNGNjMzgz
MjA3ZDU4OWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAxLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaXJzdCBjaGFyYWN0ZXIg
aW4gZWFjaCB3b3JkLXdyYXBwZWQgbGluZSBoYXMgaW5jb3JyZWN0IGNoYXJhY3RlciByZWN0IHdo
ZW4gcmVxdWVzdGVkIHJhbmdlIHNwYW5zIG11bHRpcGxlIGxpbmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2ODg0MzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKwor
ICAgICAgICBBZGRzIGEgbmV3IEJvdW5kaW5nUmVjdEJlaGF2aW9yIGVudW1hcmF0b3IsIElnbm9y
ZUVtcHR5VGV4dFNlbGVjdGlvbnMsIHRvIGlnbm9yZSBsaW5lIGJveGVzCisgICAgICAgIHRoYXQg
YXJlIG5vdCBzZWxlY3RlZCBieSB0aGUgc3BlY2lmaWVkIHJhbmdlIHdoZW4gY29tcHV0aW5nIHRo
ZSBib3VuZGluZyBib3ggZm9yIGl0IHZpYSBSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCgpLgor
CisgICAgICAgIEEgbGluZSBib3ggaXMgc2FpZCB0byBiZSBzZWxlY3RlZCBpZiB0aGVyZSBpcyBh
dCBsZWFzdCBvbmUgY2hhcmFjdGVyIGluIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyCisgICAgICAg
IHJhbmdlLiBTbywgYSByYW5nZSB3aG9zZSBzdGFydCBwb3NpdGlvbiBjb2luY2lkZXMgd2l0aCB0
aGUgZWRnZSBvZiBhIGxpbmUgYm94IGRvZXMgbm90IHNlbGVjdCB0aGUKKyAgICAgICAgYm94LiBI
b3dldmVyIHN1Y2ggcmFuZ2VzIGFyZSBjb25zaWRlcmVkIHRvIHNlbGVjdCBzdWNoIGJveGVzIHdo
ZW4gcGFzc2VkIHRvIHdlYi1leHBvc2VkIEFQSXMKKyAgICAgICAge0VsZW1lbnQsIFJhbmdlfS5n
ZXRDbGllbnRSZWN0cygpIGFuZCB7RWxlbWVudCwgUmFuZ2V9LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLiBUaGVzZSByYW5nZXMKKyAgICAgICAgcHJvZHVjZSBlbXB0eSBjbGllbnQgcmVjdGFuZ2xl
cyBhbmQgdGhlc2UgZW1wdHkgcmVjdGFuZ2xlcyBlZmZlY3QgdGhlIGNvbXB1dGF0aW9uIG9mIHRo
ZSBib3VuZGluZworICAgICAgICBjbGllbnQgcmVjdC4gVGhpcyBpcyBhbGwgc3BlY2VkIGJlaGF2
aW9yLgorCisgICAgICAgIFdoZW4gY29tcHV0aW5nIHRoZSBnbHB5aCBib3VuZGluZyBib3ggZm9y
IGEgZG9jdW1lbnQgY29udGV4dCByZXF1ZXN0LCB0aGVzZSBlbXB0eSByZWN0YW5nbGVzIGFyZQor
ICAgICAgICBub3QgbWVhbmluZ2Z1bCBhbmQgY2F1c2Ugd2VpcmQgcmVzdWx0czogdGhlIGVtcHR5
IHJlY3QgaXMgdW5pb25lZCB3aXRoIHRoZSByZWN0IGZvciB0aGUgbmV4dCBzZWxlY3RlZAorICAg
ICAgICBjaGFyYWN0ZXIgcHJvZHVjaW5nIGEgcmVjdGFuZ2xlIHRoYXQgb3ZlcmxhcHMgdHdvIGxp
bmVzLiBJZ25vcmluZyB0aGVtIG1ha2VzIHRoaW5ncyBiZWhhdmUgbW9yZSBsaWtlCisgICAgICAg
IE5TTGF5b3V0TWFuYWdlci4KKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSYW5nZTo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlSW5UZXh0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlOjphYnNvbHV0ZVRleHRRdWFkcyBjb25zdCk6CisgICAgICAgICogZG9t
L1JhbmdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6
OmFic29sdXRlUXVhZHNGb3JSYW5nZSBjb25zdCk6CisgICAgICAgIFBhc3MgYW4gb3B0aW9uIHRv
IGlnbm9yZSBlbXB0eSB0ZXh0IHNlbGVjdGlvbnMgdGhyb3VnaC4gQnkgZGVmYXVsdCBSYW5nZTo6
YWJzb2x1dGVCb3VuZGluZ0JveCgpIHRha2VzCisgICAgICAgIGFuIGVtcHR5IHNldCBvZiBCb3Vu
ZGluZ1JlY3RCZWhhdmlvciBlbnVtZXJhdG9ycyB0byBrZWVwIGl0cyBjdXJyZW50IGJlaGF2aW9y
LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0TGluZUJveGVzOjphYnNvbHV0ZVJlY3Rz
Rm9yUmFuZ2UgY29uc3QpOiBBZGRlZCBhIGJvb2xlYW4gYXMgdG8gd2hldGhlciB0bworICAgICAg
ICBpZ25vcmUgZW1wdHkgc2VsZWN0aW9ucy4gSWYgZW5hYmxlZCwgc2tpcCBhbGwgYm94ZXMgdGhh
dCBhcmUgbm90IHNlbGVjdGVkIGJ5IHRoZSBzcGVjaWZpZWQKKyAgICAgICAgY2hhcmFjdGVyIHJh
bmdlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlTGluZUxheW91dDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JSYW5nZSk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmg6CisK
IDIwMjAtMDEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFByZWNpc2lvbiBvZiBnZXRDbGllbnRSZWN0cygpLCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBk
aWZmZXJzIGRlcGVuZGluZyB3aGV0aGVyIHNpbXBsZSBsaW5lIGxheW91dCBvciBsaW5lIGJveCBs
YXlvdXQgaXMgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1NWJlYTY1OWUzNGY1MTViZDFmNTRjOWQ5OTM5NTRl
OGMxODAyZDU1Li5mMmI2MDkxNWRkZGE4MDEyMzA2OTRhMDBhMTIxYWZhOTRkOWY0ZTQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAxLTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBGaXJzdCBjaGFyYWN0ZXIgaW4gZWFjaCB3b3JkLXdyYXBw
ZWQgbGluZSBoYXMgaW5jb3JyZWN0IGNoYXJhY3RlciByZWN0IHdoZW4gcmVxdWVzdGVkIHJhbmdl
IHNwYW5zIG11bHRpcGxlIGxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU4NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODg0MzI1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICBQYXNzIEJvdW5k
aW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zIHRvIFJhbmdlOjphYnNv
bHV0ZUJvdW5kaW5nQm94KCkgdG8gY29tcHV0ZQorICAgICAgICB0aGUgZ2x5cGggYm91bmRpbmcg
Ym94IGlnbm9yaW5nIGVtcHR5IHRleHQgc2VsZWN0aW9ucyB0aGF0IHdvdWxkIHR5cGljYWxseSBv
Y2N1ciBpZiB0aGUgc3RhcnQgb2YKKyAgICAgICAgdGhlIHJhbmdlIGNvaW5jaWRlIHdpdGggdGhl
IGVkZ2Ugb2YgYSBsaW5lIGJveC4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3IgbW9yZSBjb25zaXN0
ZW50IHdpdGgKKyAgICAgICAgdGhlIGJlaGF2aW9yIG9mIE5TTGF5b3V0TWFuYWdlci4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgorCiAyMDE5LTA5
LTEzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0
IGJ1aWxkaW5nIFdlYktpdCBmb3IgTWFjIENhdGFseXN0IGZyb20gWGNvZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
Y3BwCmluZGV4IDM1ZGYxMjlkNjIwZTdhNjZlYWE0Y2ZmZWRkNTY5OTU0M2Y0ZDViOWQuLjljMTEz
NDA1ZTI3NzVjZjdmMDVjN2Y4YWMzZmExODAwYjNkNDU5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApA
QCAtMTE0MywxMSArMTE0MywxMyBAQCBOb2RlKiBSYW5nZTo6cGFzdExhc3ROb2RlKCkgY29uc3QK
ICAgICByZXR1cm4gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oZW5kQ29udGFp
bmVyKCkpOwogfQogCi1JbnRSZWN0IFJhbmdlOjphYnNvbHV0ZUJvdW5kaW5nQm94KCkgY29uc3QK
K0ludFJlY3QgUmFuZ2U6OmFic29sdXRlQm91bmRpbmdCb3goT3B0aW9uU2V0PEJvdW5kaW5nUmVj
dEJlaGF2aW9yPiByZWN0T3B0aW9ucykgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlc3VsdDsKICAg
ICBWZWN0b3I8SW50UmVjdD4gcmVjdHM7Ci0gICAgYWJzb2x1dGVUZXh0UmVjdHMocmVjdHMpOwor
ICAgIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2U7CisgICAgUmFuZ2VJbkZpeGVkUG9z
aXRpb24qIGluRml4ZWQgPSBudWxscHRyOworICAgIGFic29sdXRlVGV4dFJlY3RzKHJlY3RzLCB1
c2VTZWxlY3Rpb25IZWlnaHQsIGluRml4ZWQsIHJlY3RPcHRpb25zKTsKICAgICBmb3IgKGF1dG8m
IHJlY3QgOiByZWN0cykKICAgICAgICAgcmVzdWx0LnVuaXRlKHJlY3QpOwogICAgIHJldHVybiBy
ZXN1bHQ7CkBAIC0xMTU4LDcgKzExNjAsNyBAQCBWZWN0b3I8RmxvYXRSZWN0PiBSYW5nZTo6YWJz
b2x1dGVSZWN0c0ZvclJhbmdlSW5UZXh0KE5vZGUqIG5vZGUsIFJlbmRlclRleHQmIHJlbgogICAg
IHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gbm9kZSA9PSAmc3RhcnRDb250YWluZXIoKSA/IG1fc3Rh
cnQub2Zmc2V0KCkgOiAwOwogICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG5vZGUgPT0gJmVuZENv
bnRhaW5lcigpID8gbV9lbmQub2Zmc2V0KCkgOiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCk7CiAKLSAgICBhdXRvIHRleHRRdWFkcyA9IHJlbmRlclRleHQuYWJzb2x1dGVRdWFk
c0ZvclJhbmdlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsIHVzZVNlbGVjdGlvbkhlaWdodCwgJmlz
Rml4ZWQpOworICAgIGF1dG8gdGV4dFF1YWRzID0gcmVuZGVyVGV4dC5hYnNvbHV0ZVF1YWRzRm9y
UmFuZ2Uoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCByZWN0T3B0
aW9ucy5jb250YWlucyhCb3VuZGluZ1JlY3RCZWhhdmlvcjo6SWdub3JlRW1wdHlUZXh0U2VsZWN0
aW9ucyksICZpc0ZpeGVkKTsKIAogICAgIGlmIChyZWN0T3B0aW9ucy5jb250YWlucyhCb3VuZGlu
Z1JlY3RCZWhhdmlvcjo6UmVzcGVjdENsaXBwaW5nKSkgewogICAgICAgICBWZWN0b3I8RmxvYXRS
ZWN0PiBjbGlwcGVkUmVjdHM7CkBAIC0xMjI3LDcgKzEyMjksNyBAQCB2b2lkIFJhbmdlOjphYnNv
bHV0ZVRleHRRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wgdXNlU2VsZWN0aW9u
SGVpZ2h0LAogICAgICAgICBlbHNlIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKSB7CiAg
ICAgICAgICAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IG5vZGUgPT0gJnN0YXJ0Q29udGFpbmVy
KCkgPyBtX3N0YXJ0Lm9mZnNldCgpIDogMDsKICAgICAgICAgICAgIHVuc2lnbmVkIGVuZE9mZnNl
dCA9IG5vZGUgPT0gJmVuZENvbnRhaW5lcigpID8gbV9lbmQub2Zmc2V0KCkgOiBzdGQ6Om51bWVy
aWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmRWZWN0
b3IoZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKS5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uo
c3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCAmaXNGaXhlZCkpOwor
ICAgICAgICAgICAgcXVhZHMuYXBwZW5kVmVjdG9yKGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5k
ZXJlcikuYWJzb2x1dGVRdWFkc0ZvclJhbmdlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsIHVzZVNl
bGVjdGlvbkhlaWdodCwgZmFsc2UgLyogaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucyAqLywgJmlz
Rml4ZWQpKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
YWxsRml4ZWQgJj0gaXNGaXhlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggZDhmZjg5ZjZiMDhhMzMwYjg2
YjcxZTg4NWIxOTM0NzZiZGI3OGQ1YS4uYjQ5M2M3Y2Q0NmQ1NTE5NTkwZWZkOTdlNWRlYzdiOWM0
OWM0MmI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTEyMCwxMSArMTIwLDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgUmVzcGVjdENsaXBwaW5nID0gMSA8PCAwLAogICAgICAgICBVc2VWaXNpYmxlQm91bmRz
ID0gMSA8PCAxLAogICAgICAgICBJZ25vcmVUaW55UmVjdHMgPSAxIDw8IDIsCisgICAgICAgIEln
bm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMgPSAxIDw8IDMsIC8vIERvIG5vdCByZXR1cm4gZW1wdHkg
dGV4dCByZWN0YW5nbGVzLCB3aGljaCBpcyByZXF1aXJlZCBmb3IgRWxlbWVudC5nZXRDbGllbnRS
ZWN0KCkgY29uZm9ybWFuY2UuCiAgICAgfTsKIAogICAgIC8vIE5vdCB0cmFuc2Zvcm0tZnJpZW5k
bHkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFic29sdXRlVGV4dFJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0ID0gZmFsc2UsIFJhbmdlSW5GaXhlZFBvc2l0
aW9uKiA9IG51bGxwdHIsIE9wdGlvblNldDxCb3VuZGluZ1JlY3RCZWhhdmlvcj4gPSB7IH0pIGNv
bnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveCgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveChPcHRp
b25TZXQ8Qm91bmRpbmdSZWN0QmVoYXZpb3I+ID0geyB9KSBjb25zdDsKIAogICAgIC8vIFRyYW5z
Zm9ybS1mcmllbmRseQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWJzb2x1dGVUZXh0UXVhZHMo
VmVjdG9yPEZsb2F0UXVhZD4mLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCA9IGZhbHNlLCBSYW5n
ZUluRml4ZWRQb3NpdGlvbiogPSBudWxscHRyKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcAppbmRleCA4ZDM3OGI5MWU5MWE5ZmIwMzkzZmFkZTE5YmFjOGI2Zjc4
ZTIxMDdlLi5mODNkYTZjOGZjNGFjM2IwNGY2OGU0ZGM0MzQwYzllYjExNmQ3ZGQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC00MzEsNyArNDMxLDcgQEAgdm9p
ZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiAgICAgcXVhZHMuYXBwZW5kVmVjdG9yKG1fbGluZUJveGVzLmFi
c29sdXRlUXVhZHMoKnRoaXMsIHdhc0ZpeGVkLCBSZW5kZXJUZXh0TGluZUJveGVzOjpOb0NsaXBw
aW5nKSk7CiB9CiAKLVZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNG
b3JSYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhl
aWdodCwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CitWZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJUZXh0
OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9v
bCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gV29yayBhcm91bmQgc2lnbmVkL3Vuc2lnbmVk
IGlzc3Vlcy4gVGhpcyBmdW5jdGlvbiB0YWtlcyB1bnNpZ25lZHMsIGFuZCBpcyBvZnRlbiBwYXNz
ZWQgVUlOVF9NQVgKICAgICAvLyB0byBtZWFuICJhbGwgdGhlIHdheSB0byB0aGUgZW5kIi4gSW5s
aW5lVGV4dEJveCBjb29yZGluYXRlcyBhcmUgdW5zaWduZWRzLCBzbyBjaGFuZ2luZyB0aGlzCkBA
IC00NDMsOSArNDQzLDkgQEAgVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkc0ZvclJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQKICAgICBzdGFydCA9IHN0
ZDo6bWluKHN0YXJ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSU5UX01BWCkpOwogICAgIGVuZCA9
IHN0ZDo6bWluKGVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElOVF9NQVgpKTsKICAgICBpZiAo
c2ltcGxlTGluZUxheW91dCgpICYmICF1c2VTZWxlY3Rpb25IZWlnaHQpCi0gICAgICAgIHJldHVy
biBjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCAqc2ltcGxl
TGluZUxheW91dCgpLCB3YXNGaXhlZCk7CisgICAgICAgIHJldHVybiBjb2xsZWN0QWJzb2x1dGVR
dWFkc0ZvclJhbmdlKCp0aGlzLCBzdGFydCwgZW5kLCAqc2ltcGxlTGluZUxheW91dCgpLCBpZ25v
cmVFbXB0eVRleHRTZWxlY3Rpb25zLCB3YXNGaXhlZCk7CiAgICAgY29uc3RfY2FzdDxSZW5kZXJU
ZXh0Jj4oKnRoaXMpLmVuc3VyZUxpbmVCb3hlcygpOwotICAgIHJldHVybiBtX2xpbmVCb3hlcy5h
YnNvbHV0ZVF1YWRzRm9yUmFuZ2UoKnRoaXMsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdo
dCwgd2FzRml4ZWQpOworICAgIHJldHVybiBtX2xpbmVCb3hlcy5hYnNvbHV0ZVF1YWRzRm9yUmFu
Z2UoKnRoaXMsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCwgaWdub3JlRW1wdHlUZXh0
U2VsZWN0aW9ucywgd2FzRml4ZWQpOwogfQogCiBQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlv
bkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCmluZGV4IGE2YTAxYzU5ZTc1ODg1MjVkNDJmNzI2OWRiZDBkNjZiOWQ3YjQ0
ZDAuLmFkYzJjN2Y5NjMwNTM1MjcwOTFhY2JlNmNhNzZhNjMwYWRmMzliNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdCBmaW5hbDsKLSAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRz
Rm9yUmFuZ2UodW5zaWduZWQgc3RhcnRPZmZzZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBV
SU5UX01BWCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQg
PSBudWxscHRyKSBjb25zdDsKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzRm9y
UmFuZ2UodW5zaWduZWQgc3RhcnRPZmZzZXQgPSAwLCB1bnNpZ25lZCBlbmRPZmZzZXQgPSBVSU5U
X01BWCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxzZSwgYm9vbCBpZ25vcmVFbXB0eVRl
eHRTZWxlY3Rpb25zID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gbnVsbHB0cikgY29uc3Q7CiAK
ICAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzQ2xpcHBlZFRvRWxsaXBzaXMoKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRM
aW5lQm94ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94
ZXMuY3BwCmluZGV4IGU1NzM1NDFjM2Q0OTczZjg0NDgxNDY5ZmMwZGE0NzY2M2I4ZTg1Y2UuLjk3
NmIzMWUzNGQzMmEzMDNhYzFiYzdiYzJiYTc1M2Y4ZWQwYzhjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKQEAgLTQyOSwxMCArNDI5
LDEyIEBAIHN0YXRpYyBGbG9hdFJlY3QgbG9jYWxRdWFkRm9yVGV4dEJveChjb25zdCBJbmxpbmVU
ZXh0Qm94JiBib3gsIHVuc2lnbmVkIHN0YXJ0LCB1CiAgICAgcmV0dXJuIGJveFNlbGVjdGlvblJl
Y3Q7CiB9CiAKLVZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRl
UXVhZHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAorVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVRdWFk
c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCwgYm9vbCBpZ25vcmVFbXB0eVRleHRT
ZWxlY3Rpb25zLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBWZWN0b3I8RmxvYXRRdWFk
PiBxdWFkczsKICAgICBmb3IgKGF1dG8qIGJveCA9IG1fZmlyc3Q7IGJveDsgYm94ID0gYm94LT5u
ZXh0VGV4dEJveCgpKSB7CisgICAgICAgIGlmIChpZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zICYm
ICFib3gtPmlzU2VsZWN0ZWQoc3RhcnQsIGVuZCkpCisgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3RhcnQoKSAmJiBib3gtPmVuZCgpIDw9IGVuZCkgewog
ICAgICAgICAgICAgRmxvYXRSZWN0IGJvdW5kYXJpZXMgPSBib3gtPmNhbGN1bGF0ZUJvdW5kYXJp
ZXMoKTsKICAgICAgICAgICAgIGlmICh1c2VTZWxlY3Rpb25IZWlnaHQpIHsKQEAgLTQ1Nyw3ICs0
NTksNyBAQCBWZWN0b3I8RmxvYXRRdWFkPiBSZW5kZXJUZXh0TGluZUJveGVzOjphYnNvbHV0ZVF1
YWRzRm9yUmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYgcgogCiBWZWN0b3I8SW50UmVjdD4gUmVuZGVy
VGV4dExpbmVCb3hlczo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHJl
bmRlcmVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhl
aWdodCwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFic29sdXRlUXVhZHNG
b3JSYW5nZShyZW5kZXJlciwgc3RhcnQsIGVuZCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCB3YXNGaXhl
ZCkubWFwKFtdKGF1dG8mIHF1YWQpIHsgcmV0dXJuIHF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3go
KTsgfSk7CisgICAgcmV0dXJuIGFic29sdXRlUXVhZHNGb3JSYW5nZShyZW5kZXJlciwgc3RhcnQs
IGVuZCwgdXNlU2VsZWN0aW9uSGVpZ2h0LCBmYWxzZSAvKiBpZ25vcmVFbXB0eVRleHRTZWxlY3Rp
b25zICovLCB3YXNGaXhlZCkubWFwKFtdKGF1dG8mIHF1YWQpIHsgcmV0dXJuIHF1YWQuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsgfSk7CiB9CiAKIFZlY3RvcjxGbG9hdFF1YWQ+IFJlbmRlclRleHRM
aW5lQm94ZXM6OmFic29sdXRlUXVhZHMoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGJvb2wq
IHdhc0ZpeGVkLCBDbGlwcGluZ09wdGlvbiBvcHRpb24pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaAppbmRleCAxZTcyNjJmYWE2M2VkZTEx
NmE2MTZlMmU4OTBhOWQ3MjIwYzc5MmFmLi5jMDJmMmU2ZTQ1YWE1NjY4ZWVkOTZkMDQ4OTRmOTQ1
YThhYmI1Zjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dExpbmVCb3hlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGlu
ZUJveGVzLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBDbGlwcGluZ09w
dGlvbiB7IE5vQ2xpcHBpbmcsIENsaXBUb0VsbGlwc2lzIH07CiAgICAgVmVjdG9yPEZsb2F0UXVh
ZD4gYWJzb2x1dGVRdWFkcyhjb25zdCBSZW5kZXJUZXh0JiwgYm9vbCogd2FzRml4ZWQsIENsaXBw
aW5nT3B0aW9uKSBjb25zdDsKLSAgICBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVF1YWRzRm9y
UmFuZ2UoY29uc3QgUmVuZGVyVGV4dCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJv
b2wgdXNlU2VsZWN0aW9uSGVpZ2h0LCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CisgICAgVmVjdG9y
PEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmLCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCwgYm9vbCBp
Z25vcmVFbXB0eVRleHRTZWxlY3Rpb25zLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAgICAgVmVj
dG9yPEludFJlY3Q+IGFic29sdXRlUmVjdHNGb3JSYW5nZShjb25zdCBSZW5kZXJUZXh0JiwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdDsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAppbmRl
eCAzN2ViZDQ4MDk1NDY5YjQxM2JmMTcyZjMzODUxYTMyNWNlZDM0ZTYxLi42NzU2MDc1MjdhMjMx
ZjViNTg2YTRlMTliOWVhYjQ3NmY0YThiZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCkBAIC0yMDksMTIgKzIw
OSwxNCBAQCB1bnNpZ25lZCB0ZXh0T2Zmc2V0Rm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50LCBjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlcgogICAgIHJldHVybiBydW4uc3RhcnQoKSAr
IHN0eWxlLmZvbnRDYXNjYWRlKCkub2Zmc2V0Rm9yUG9zaXRpb24odGV4dFJ1biwgcG9pbnQueCgp
IC0gcnVuLmxvZ2ljYWxMZWZ0KCksIHRydWUpOwogfQogCi1WZWN0b3I8RmxvYXRRdWFkPiBjb2xs
ZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IExheW91dCYgbGF5b3V0LCBib29sKiB3
YXNGaXhlZCkKK1ZlY3RvcjxGbG9hdFF1YWQ+IGNvbGxlY3RBYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uo
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVu
ZCwgY29uc3QgTGF5b3V0JiBsYXlvdXQsIGJvb2wgaWdub3JlRW1wdHlUZXh0U2VsZWN0aW9ucywg
Ym9vbCogd2FzRml4ZWQpCiB7CiAgICAgYXV0byYgc3R5bGUgPSBkb3duY2FzdDxSZW5kZXJCbG9j
a0Zsb3c+KCpyZW5kZXJlci5wYXJlbnQoKSkuc3R5bGUoKTsKICAgICBWZWN0b3I8RmxvYXRRdWFk
PiBxdWFkczsKICAgICBhdXRvJiByZXNvbHZlciA9IGxheW91dC5ydW5SZXNvbHZlcigpOwogICAg
IGZvciAoYXV0byBydW4gOiByZXNvbHZlci5yYW5nZUZvclJlbmRlcmVyV2l0aE9mZnNldHMocmVu
ZGVyZXIsIHN0YXJ0LCBlbmQpKSB7CisgICAgICAgIGlmIChpZ25vcmVFbXB0eVRleHRTZWxlY3Rp
b25zICYmIHJ1bi5zdGFydCgpID09IHJ1bi5lbmQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAvLyBUaGlzIHJ1biBpcyBmdWxseSBjb250YWluZWQuCiAgICAgICAgIGlmIChzdGFy
dCA8PSBydW4uc3RhcnQoKSAmJiBlbmQgPj0gcnVuLmVuZCgpKSB7CiAgICAgICAgICAgICBxdWFk
cy5hcHBlbmQocmVuZGVyZXIubG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocnVuLnJlY3Qo
KSksIFVzZVRyYW5zZm9ybXMsIHdhc0ZpeGVkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaAppbmRleCAzMmIzNDkxNGRiM2Zl
OTE0NTYwMGI2YzExMDNlZmQwYzg2ZTA2NTBhLi40NmJjYzU1ZTU2NDMxNTVhZDY2Nzg1MTIwM2I4
Zjk2ZGZlYzFiYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1w
bGVMaW5lTGF5b3V0RnVuY3Rpb25zLmgKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBjb2xsZWN0Rmxv
d092ZXJmbG93KFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IExheW91dCYpOwogCiBWZWN0b3I8Rmxv
YXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkcyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBM
YXlvdXQmLCBib29sKiB3YXNGaXhlZCk7CiB1bnNpZ25lZCB0ZXh0T2Zmc2V0Rm9yUG9pbnQoY29u
c3QgTGF5b3V0UG9pbnQmLCBjb25zdCBSZW5kZXJUZXh0JiwgY29uc3QgTGF5b3V0Jik7Ci1WZWN0
b3I8RmxvYXRRdWFkPiBjb2xsZWN0QWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRlck9i
amVjdCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IExheW91dCYsIGJvb2wq
IHdhc0ZpeGVkKTsKK1ZlY3RvcjxGbG9hdFF1YWQ+IGNvbGxlY3RBYnNvbHV0ZVF1YWRzRm9yUmFu
Z2UoY29uc3QgUmVuZGVyT2JqZWN0JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgTGF5b3V0JiwgYm9vbCBpZ25vcmVFbXB0eVRleHRTZWxlY3Rpb25zLCBib29sKiB3YXNGaXhl
ZCk7CiAKIExheW91dFVuaXQgbGluZUhlaWdodEZyb21GbG93KGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYpOwogTGF5b3V0VW5pdCBiYXNlbGluZUZyb21GbG93KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCA0MGFkOGQzNzI3NWViNDRhZDMyM2EyMWI5NTYwMzZmNTkxZWJiZWVkLi5hMGM0
NzMxZDRhZDJiMzc2MTQ3YzlhNTdmOTZlMzliOTU2YTY5NmI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDA3MSw3ICs0
MDcxLDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1
bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmVjdHMuYXBwZW5kKHsgY29udGV4dEl0
ZXJhdG9yLnJhbmdlKCktPmFic29sdXRlQm91bmRpbmdCb3goKSwgeyBjdXJyZW50TG9jYXRpb24s
IDEgfSB9KTsKKyAgICAgICAgICAgIHJlY3RzLmFwcGVuZCh7IGNvbnRleHRJdGVyYXRvci5yYW5n
ZSgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94KFJhbmdlOjpCb3VuZGluZ1JlY3RCZWhhdmlvcjo6SWdu
b3JlRW1wdHlUZXh0U2VsZWN0aW9ucyksIHsgY3VycmVudExvY2F0aW9uLCAxIH0gfSk7CiAgICAg
ICAgICAgICBjdXJyZW50TG9jYXRpb24rKzsKICAgICAgICAgICAgIGNvbnRleHRJdGVyYXRvci5h
ZHZhbmNlKDEpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMWZjMGNjY2IwMjBjMWQ5YmViYWFlM2YxZjgyNGY0ZmI4M2JiMzA1
Yi4uZjVmN2M4ZjBkMWMzZTAyZDIzZTc5OGQwYzhiN2Y2MjE3ZGM2Zjc2MSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTAxLTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXJzdCBjaGFyYWN0ZXIgaW4gZWFjaCB3b3JkLXdyYXBwZWQgbGluZSBoYXMgaW5jb3JyZWN0IGNo
YXJhY3RlciByZWN0IHdoZW4gcmVxdWVzdGVkIHJhbmdlIHNwYW5zIG11bHRpcGxlIGxpbmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NDIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2ODg0MzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFph
bGFuIEJ1anRhcy4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdC4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFRFU1QpOgorCiAyMDIwLTAxLTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBQcmVjaXNpb24gb2YgZ2V0Q2xpZW50UmVjdHMoKSwgZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkgZGlmZmVycyBkZXBlbmRpbmcgd2hldGhlciBzaW1wbGUgbGluZSBsYXlv
dXQgb3IgbGluZSBib3ggbGF5b3V0IGlzIHVzZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5t
bQppbmRleCAxZGEwNTUyYzFiZDY3Nzc2MGY0NmU2NGJhZjgzOGQ1NGExZGRkNDQyLi5lMjg0NzM0
ZWFiODdjNWQ4NWY5NGY4ZjlhYjk1OTgzZDU3YTRhYTU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdD
b250ZXh0Lm1tCkBAIC00NDMsNiArNDQzLDQ0IEBAIFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4
dCwgU3BhdGlhbFJlcXVlc3RJblRleHRGaWVsZCkKICAgICB9CiB9CiAKK1RFU1QoRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dCwgUmVxdWVzdFJlY3RzSW5UZXh0QXJlYUFjcm9zc1dvcmRXcmFwcGVkTGlu
ZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIC8vIFVzZSAi
cGFkZGluZzogMCIgYXMgdGhlIGRlZmF1bHQgdXNlci1hZ2VudCBzdHlsZXNoZWV0IGNhbiBlZmZl
Y3QgdGV4dCB3cmFwcGluZy4KKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6YXBwbHlBaGVtU3R5bGUoQCI8dGV4dGFyZWEgaWQ9J3Rlc3QnIHN0eWxlPSd3aWR0aDogMjZl
bTsgcGFkZGluZzogMCc+VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRv
Zy48L3RleHRhcmVhPiIpXTsgLy8gV29yZCB3cmFwcyAib3ZlciIgb250byBuZXh0IGxpbmUKKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidGVzdC5mb2N1cygpOyB0
ZXN0LnNldFNlbGVjdGlvblJhbmdlKDI1LCAyNSkiXTsgLy8gUGxhY2UgY2FyZXQgYWZ0ZXIgJ3Mn
IGluICJqdW1wcyIuCisKKyAgICBhdXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNs
eVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRl
eHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0UmVjdHMsIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMild
OworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEo
ImZveCBqdW1wcyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RSSU5H
X0VRKCIgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisgICAgYXV0byAqdGV4dFJl
Y3RzID0gW2NvbnRleHQgdGV4dFJlY3RzXTsKKyAgICBFWFBFQ1RfRVEoMThVLCB0ZXh0UmVjdHMu
Y291bnQpOworICAgIGlmICh0ZXh0UmVjdHMuY291bnQgPj0gMTgpIHsKKyAgICAgICAgQ0dGbG9h
dCB4ID0gNDAxOworICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMCAqIGdseXBoV2lk
dGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1swXS5DR1JlY3RWYWx1ZSk7IC8vIGYKKyAgICAgICAg
RVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDEgKiBnbHlwaFdpZHRoLCAzLCAyNSwgMjUpLCB0ZXh0
UmVjdHNbMV0uQ0dSZWN0VmFsdWUpOyAvLyBvCisgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtl
KHggKyAyICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzJdLkNHUmVjdFZhbHVl
KTsgLy8geAorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMyAqIGdseXBoV2lkdGgs
IDMsIDI1LCAyNSksIHRleHRSZWN0c1szXS5DR1JlY3RWYWx1ZSk7IC8vCisgICAgICAgIEVYUEVD
VF9FUShDR1JlY3RNYWtlKHggKyA0ICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3Rz
WzRdLkNHUmVjdFZhbHVlKTsgLy8gagorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsg
NSAqIGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1s1XS5DR1JlY3RWYWx1ZSk7IC8v
IHUKKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDYgKiBnbHlwaFdpZHRoLCAzLCAy
NSwgMjUpLCB0ZXh0UmVjdHNbNl0uQ0dSZWN0VmFsdWUpOyAvLyBtCisgICAgICAgIEVYUEVDVF9F
UShDR1JlY3RNYWtlKHggKyA3ICogZ2x5cGhXaWR0aCwgMywgMjUsIDI1KSwgdGV4dFJlY3RzWzdd
LkNHUmVjdFZhbHVlKTsgLy8gcAorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgOCAq
IGdseXBoV2lkdGgsIDMsIDI1LCAyNSksIHRleHRSZWN0c1s4XS5DR1JlY3RWYWx1ZSk7IC8vIHMK
KyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDkgKiBnbHlwaFdpZHRoLCAzLCAyMywg
MjUpLCB0ZXh0UmVjdHNbOV0uQ0dSZWN0VmFsdWUpOyAvLworCisgICAgICAgIHggPSAxOworICAg
ICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMCAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUp
LCB0ZXh0UmVjdHNbMTBdLkNHUmVjdFZhbHVlKTsgLy8gbworICAgICAgICBFWFBFQ1RfRVEoQ0dS
ZWN0TWFrZSh4ICsgMSAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTFdLkNH
UmVjdFZhbHVlKTsgLy8gdgorICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMiAqIGds
eXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTJdLkNHUmVjdFZhbHVlKTsgLy8gZQor
ICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSh4ICsgMyAqIGdseXBoV2lkdGgsIDI4LCAyNSwg
MjUpLCB0ZXh0UmVjdHNbMTNdLkNHUmVjdFZhbHVlKTsgLy8gcgorICAgICAgICBFWFBFQ1RfRVEo
Q0dSZWN0TWFrZSh4ICsgNCAqIGdseXBoV2lkdGgsIDI4LCAyNSwgMjUpLCB0ZXh0UmVjdHNbMTRd
LkNHUmVjdFZhbHVlKTsgLy8KKyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDUgKiBn
bHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzE1XS5DR1JlY3RWYWx1ZSk7IC8vIHQK
KyAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoeCArIDYgKiBnbHlwaFdpZHRoLCAyOCwgMjUs
IDI1KSwgdGV4dFJlY3RzWzE2XS5DR1JlY3RWYWx1ZSk7IC8vIGgKKyAgICAgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoeCArIDcgKiBnbHlwaFdpZHRoLCAyOCwgMjUsIDI1KSwgdGV4dFJlY3RzWzE3
XS5DR1JlY3RWYWx1ZSk7IC8vIGUKKyAgICB9Cit9CisKIC8vIE1BUks6IFRlc3RzIHVzaW5nIHdv
cmQgZ3JhbnVsYXJpdHkKIAogVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0Rmly
c3RUd29Xb3JkcykK
</data>

          </attachment>
      

    </bug>

</bugzilla>