<?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>205838</bug_id>
          
          <creation_ts>2020-01-06 15:38:56 -0800</creation_ts>
          <short_desc>Rename start/endPosition to start/endOffset in SelectionRangeData for clarity</short_desc>
          <delta_ts>2020-01-13 20:14:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603327</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-06 15:38:56 -0800</bug_when>
    <thetext>Rename start/endPosition to start/endOffset in SelectionRangeData for clarity</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603336</commentid>
    <comment_count>1</comment_count>
      <attachid>386903</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-06 15:46:12 -0800</bug_when>
    <thetext>Created attachment 386903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603337</commentid>
    <comment_count>2</comment_count>
      <attachid>386903</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-06 15:47:07 -0800</bug_when>
    <thetext>Comment on attachment 386903
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Offset is a more correct term for this variable, as it it just an unsigned.

it it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603397</commentid>
    <comment_count>3</comment_count>
      <attachid>386920</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-06 17:41:32 -0800</bug_when>
    <thetext>Created attachment 386920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603418</commentid>
    <comment_count>4</comment_count>
      <attachid>386920</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-06 19:39:44 -0800</bug_when>
    <thetext>Comment on attachment 386920
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:187
&gt; +        auto startPos = selection.startOffset();
&gt; +        auto endPos = selection.endOffset();

Let&apos;s rename these as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603682</commentid>
    <comment_count>5</comment_count>
      <attachid>387003</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-07 11:23:03 -0800</bug_when>
    <thetext>Created attachment 387003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603767</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-07 13:56:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/58386840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603796</commentid>
    <comment_count>7</comment_count>
      <attachid>387003</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-07 14:33:42 -0800</bug_when>
    <thetext>Comment on attachment 387003
Patch

Clearing flags on attachment: 387003

Committed r254159: &lt;https://trac.webkit.org/changeset/254159&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386903</attachid>
            <date>2020-01-06 15:46:12 -0800</date>
            <delta_ts>2020-01-06 15:47:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205838-20200106154611.patch</filename>
            <type>text/plain</type>
            <size>15520</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJmMjAyOWUyNzhjMmIz
NWRlNWE0YmExYWFmNDAyODBmZDdmOTBlNy4uM2VhOTgyNDFiNWFkZDdmYTVjYzRjZWUzMDY3OTMz
NDg2NzhmMmQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTAxLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHN0
YXJ0L2VuZFBvc2l0aW9uIHRvIHN0YXJ0L2VuZE9mZnNldCBpbiBTZWxlY3Rpb25SYW5nZURhdGEg
Zm9yIGNsYXJpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE9mZnNldCBpcyBhIG1vcmUgY29ycmVjdCB0ZXJtIGZvciB0aGlzIHZhcmlhYmxlLCBhcyBp
dCBpdCBqdXN0IGFuIHVuc2lnbmVkLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZVRleHRCb3g6OnZlcmlmeVNlbGVjdGlvblN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0RW5kIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZVRleHRCb3g6OmhpZ2hsaWdodFN0YXJ0RW5kIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OmlzU2VsZWN0ZWQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbGxlY3RTZWxlY3Rp
b25SZWN0c0ZvckxpbmVCb3hlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRMaW5l
Qm94ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dExpbmVCb3hlczo6c2V0U2Vs
ZWN0aW9uU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyZXJBZnRlck9mZnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpjb2xsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblJhbmdlRGF0YTo6c2Vs
ZWN0aW9uU3RhdGVGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5n
ZURhdGE6OnJlcGFpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VE
YXRhOjpjb2xsZWN0Qm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblJh
bmdlRGF0YTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyZXJBZnRlclBvc2l0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRleHQ6OkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0OjpzdGFydE9mZnNl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRleHQ6
OmVuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6
OkNvbnRleHQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
UmFuZ2VEYXRhOjpzdGFydE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rp
b25SYW5nZURhdGE6OmVuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rp
b25SYW5nZURhdGE6OkNvbnRleHQ6OnN0YXJ0UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0OjplbmRQb3NpdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OnN0
YXJ0UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
UmFuZ2VEYXRhOjplbmRQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDEtMDYgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQgQVNTRVJUX0RJ
U0FCTEVEIHRvIEFTU0VSVF9FTkFCTEVELCBhbmQgZml4IHNvbWUgdGVzdHMgb2YgTkRFQlVHIHRo
YXQgc2hvdWxkIGFjdHVhbGx5IHRlc3QgZm9yIEFTU0VSVF9FTkFCTEVELgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IDJlODU4ODU0MzNkMTJiZDk2NTFi
ZDIxOTZjNDRiZWM5ZmYxOWNjM2UuLmI0ZmMzMDA0MjU1NGRkMjI0YjA2ZGY0OWE0OGI1YWY0MGQ3
ZTFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAg
LTE4Myw4ICsxODMsOCBAQCBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIElubGluZVRleHRC
b3g6OnNlbGVjdGlvblN0YXRlKCkKIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhdGUgSW5saW5l
VGV4dEJveDo6dmVyaWZ5U2VsZWN0aW9uU3RhdGUoUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0
ZSBzdGF0ZSwgU2VsZWN0aW9uUmFuZ2VEYXRhJiBzZWxlY3Rpb24pIGNvbnN0CiB7CiAgICAgaWYg
KHN0YXRlID09IFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhcnQgfHwgc3RhdGUgPT0gUmVuZGVy
T2JqZWN0OjpTZWxlY3Rpb25FbmQgfHwgc3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25C
b3RoKSB7Ci0gICAgICAgIGF1dG8gc3RhcnRQb3MgPSBzZWxlY3Rpb24uc3RhcnRQb3NpdGlvbigp
OwotICAgICAgICBhdXRvIGVuZFBvcyA9IHNlbGVjdGlvbi5lbmRQb3NpdGlvbigpOworICAgICAg
ICBhdXRvIHN0YXJ0UG9zID0gc2VsZWN0aW9uLnN0YXJ0T2Zmc2V0KCk7CisgICAgICAgIGF1dG8g
ZW5kUG9zID0gc2VsZWN0aW9uLmVuZE9mZnNldCgpOwogICAgICAgICAvLyBUaGUgcG9zaXRpb24g
YWZ0ZXIgYSBoYXJkIGxpbmUgYnJlYWsgaXMgY29uc2lkZXJlZCB0byBiZSBwYXN0IGl0cyBlbmQu
CiAgICAgICAgIEFTU0VSVChzdGFydCgpICsgbGVuKCkgPj0gKGlzTGluZUJyZWFrKCkgPyAxIDog
MCkpOwogICAgICAgICB1bnNpZ25lZCBsYXN0U2VsZWN0YWJsZSA9IHN0YXJ0KCkgKyBsZW4oKSAt
IChpc0xpbmVCcmVhaygpID8gMSA6IDApOwpAQCAtNjg3LDcgKzY4Nyw3IEBAIHN0ZDo6cGFpcjx1
bnNpZ25lZCwgdW5zaWduZWQ+IElubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0RW5kKCkgY29u
c3QKIHsKICAgICBhdXRvIHNlbGVjdGlvblN0YXRlID0gcmVuZGVyZXIoKS5zZWxlY3Rpb25TdGF0
ZSgpOwogICAgIAotICAgIHJldHVybiBjbGFtcGVkU3RhcnRFbmRGb3JTdGF0ZShyZW5kZXJlcigp
LnZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydFBvc2l0aW9uKCksIHJlbmRlcmVyKCkudmlldygpLnNl
bGVjdGlvbigpLmVuZFBvc2l0aW9uKCksIHNlbGVjdGlvblN0YXRlKTsKKyAgICByZXR1cm4gY2xh
bXBlZFN0YXJ0RW5kRm9yU3RhdGUocmVuZGVyZXIoKS52aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRP
ZmZzZXQoKSwgcmVuZGVyZXIoKS52aWV3KCkuc2VsZWN0aW9uKCkuZW5kT2Zmc2V0KCksIHNlbGVj
dGlvblN0YXRlKTsKIH0KIAogc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gSW5saW5lVGV4
dEJveDo6aGlnaGxpZ2h0U3RhcnRFbmQoU2VsZWN0aW9uUmFuZ2VEYXRhICZyYW5nZURhdGEpIGNv
bnN0CkBAIC02OTgsNyArNjk4LDcgQEAgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gSW5s
aW5lVGV4dEJveDo6aGlnaGxpZ2h0U3RhcnRFbmQoU2VsZWN0aW9uUmFuZ2VEYXQKICAgICBpZiAo
c3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25Ob25lKQogICAgICAgICByZXR1cm4gezAs
IDB9OwogICAgIAotICAgIHJldHVybiBjbGFtcGVkU3RhcnRFbmRGb3JTdGF0ZShyYW5nZURhdGEu
c3RhcnRQb3NpdGlvbigpLCByYW5nZURhdGEuZW5kUG9zaXRpb24oKSwgc3RhdGUpOworICAgIHJl
dHVybiBjbGFtcGVkU3RhcnRFbmRGb3JTdGF0ZShyYW5nZURhdGEuc3RhcnRPZmZzZXQoKSwgcmFu
Z2VEYXRhLmVuZE9mZnNldCgpLCBzdGF0ZSk7CiB9CiAKIGJvb2wgSW5saW5lVGV4dEJveDo6aGFz
TWFya2VycygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcAppbmRleCBhMDlhMzhkNmRiZDJiZTA2ZjA1ZTdlODEwNjc4MWY0MzgwMjg4YjBiLi4zMzhj
MzIzY2M4M2NlOGQ1Y2JlNjZmNzk1YzlhNGIzMjEyZDQ4NmQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTY2NSw4ICs2NjUsOCBAQCBib29sIFJl
bmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKICAgICBpZiAoc3RhdGUgPT0gU2VsZWN0
aW9uSW5zaWRlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2VsZWN0aW9uU3Rh
cnQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRQb3NpdGlvbigpOwotICAgIGF1dG8gc2VsZWN0
aW9uRW5kID0gdmlldygpLnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7CisgICAgYXV0byBzZWxl
Y3Rpb25TdGFydCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydE9mZnNldCgpOworICAgIGF1dG8g
c2VsZWN0aW9uRW5kID0gdmlldygpLnNlbGVjdGlvbigpLmVuZE9mZnNldCgpOwogICAgIGlmIChz
dGF0ZSA9PSBTZWxlY3Rpb25TdGFydCkKICAgICAgICAgcmV0dXJuICFzZWxlY3Rpb25TdGFydDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDhkMzc4YjkxZTkx
YTlmYjAzOTNmYWRlMTliYWM4YjZmNzhlMjEwN2UuLjY5MDc5MzVmMTUwZDMwNzk2YTJiMzRhNTIz
N2U5N2JkZWYyYzkxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAK
QEAgLTE0MjksOCArMTQyOSw4IEBAIExheW91dFJlY3QgUmVuZGVyVGV4dDo6Y29sbGVjdFNlbGVj
dGlvblJlY3RzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPCiAgICAgICAgIHN0
YXJ0UG9zID0gMDsKICAgICAgICAgZW5kUG9zID0gdGV4dCgpLmxlbmd0aCgpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHN0YXJ0UG9zID0gdmlldygpLnNlbGVjdGlvbigpLnN0YXJ0UG9zaXRpb24o
KTsKLSAgICAgICAgZW5kUG9zID0gdmlldygpLnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7Cisg
ICAgICAgIHN0YXJ0UG9zID0gdmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0KCk7CisgICAg
ICAgIGVuZFBvcyA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKICAgICAgICAgaWYg
KHNlbGVjdGlvblN0YXRlKCkgPT0gU2VsZWN0aW9uU3RhcnQpCiAgICAgICAgICAgICBlbmRQb3Mg
PSB0ZXh0KCkubGVuZ3RoKCk7CiAgICAgICAgIGVsc2UgaWYgKHNlbGVjdGlvblN0YXRlKCkgPT0g
U2VsZWN0aW9uRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRMaW5lQm94ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRM
aW5lQm94ZXMuY3BwCmluZGV4IGUyNGFlZDk2NTNiOTJlMDE0MTRmNzYzZGI4YzNiMWU2ODMyODVj
OTIuLjk1NzljZGI1NDY0OGM1ZWI4OTIwOTM5ZTllOTI0MWNkOTIyMzFmZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKQEAgLTM1MCw4
ICszNTAsOCBAQCB2b2lkIFJlbmRlclRleHRMaW5lQm94ZXM6OnNldFNlbGVjdGlvblN0YXRlKFJl
bmRlclRleHQmIHJlbmRlcmVyLCBSZW5kZXJPYmplY3Q6OgogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgYXV0byBzdGFydCA9IHJlbmRlcmVyLnZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydFBv
c2l0aW9uKCk7Ci0gICAgYXV0byBlbmQgPSByZW5kZXJlci52aWV3KCkuc2VsZWN0aW9uKCkuZW5k
UG9zaXRpb24oKTsKKyAgICBhdXRvIHN0YXJ0ID0gcmVuZGVyZXIudmlldygpLnNlbGVjdGlvbigp
LnN0YXJ0T2Zmc2V0KCk7CisgICAgYXV0byBlbmQgPSByZW5kZXJlci52aWV3KCkuc2VsZWN0aW9u
KCkuZW5kT2Zmc2V0KCk7CiAgICAgaWYgKHN0YXRlID09IFJlbmRlck9iamVjdDo6U2VsZWN0aW9u
U3RhcnQpIHsKICAgICAgICAgZW5kID0gcmVuZGVyZXIudGV4dCgpLmxlbmd0aCgpOwogICAgICAg
ICAvLyB0byBoYW5kbGUgc2VsZWN0aW9uIGZyb20gZW5kIG9mIHRleHQgdG8gZW5kIG9mIGxpbmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKaW5k
ZXggZDc5NTE3OTkzYmQ2MDA0Y2I2NGRlZWQ2NzdkN2NkNWYzY2M5ZWI0Yi4uOTg0NDE5ZmRmMWRk
YjczZDAzY2UzMmVjZDBlNmViYjExMTE2ODJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKQEAgLTQ5LDggKzQ5LDggQEAgc3RydWN0IFNl
bGVjdGlvbkRhdGEgewogICAgIHVzaW5nIFJlbmRlcmVyTWFwID0gSGFzaE1hcDxSZW5kZXJPYmpl
Y3QqLCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4+OwogICAgIHVzaW5nIFJl
bmRlckJsb2NrTWFwID0gSGFzaE1hcDxjb25zdCBSZW5kZXJCbG9jayosIHN0ZDo6dW5pcXVlX3B0
cjxSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+PjsKIAotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBz
dGFydFBvc2l0aW9uOwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBlbmRQb3NpdGlvbjsKKyAgICBP
cHRpb25hbDx1bnNpZ25lZD4gc3RhcnRPZmZzZXQ7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGVu
ZE9mZnNldDsKICAgICBSZW5kZXJlck1hcCByZW5kZXJlcnM7CiAgICAgUmVuZGVyQmxvY2tNYXAg
YmxvY2tzOwogfTsKQEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKIAogfSAvLyBhbm9ueW1vdXMg
bmFtZXNwYWNlCiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbihj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBhdXRvKiBjaGlsZCA9IHJlbmRlcmVyLmNoaWxk
QXQob2Zmc2V0KTsKICAgICByZXR1cm4gY2hpbGQgPyBjaGlsZCA6IHJlbmRlcmVyLm5leHRJblBy
ZU9yZGVyQWZ0ZXJDaGlsZHJlbigpOwpAQCAtMTE5LDE0ICsxMTksMTQgQEAgc3RhdGljIFJlbmRl
ckJsb2NrKiBjb250YWluaW5nQmxvY2tCZWxvd1ZpZXcoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJlcikKIAogc3RhdGljIFNlbGVjdGlvbkRhdGEgY29sbGVjdChjb25zdCBTZWxlY3Rpb25SYW5n
ZURhdGE6OkNvbnRleHQmIHNlbGVjdGlvbiwgYm9vbCByZXBhaW50RGlmZmVyZW5jZSkKIHsKLSAg
ICBTZWxlY3Rpb25EYXRhIG9sZFNlbGVjdGlvbkRhdGEgeyBzZWxlY3Rpb24uc3RhcnRQb3NpdGlv
bigpLCBzZWxlY3Rpb24uZW5kUG9zaXRpb24oKSwgeyB9LCB7IH0gfTsKKyAgICBTZWxlY3Rpb25E
YXRhIG9sZFNlbGVjdGlvbkRhdGEgeyBzZWxlY3Rpb24uc3RhcnRPZmZzZXQoKSwgc2VsZWN0aW9u
LmVuZE9mZnNldCgpLCB7IH0sIHsgfSB9OwogICAgIC8vIEJsb2NrcyBjb250YWluIHNlbGVjdGVk
IG9iamVjdHMgYW5kIGZpbGwgZ2FwcyBiZXR3ZWVuIHRoZW0sIGVpdGhlciBvbiB0aGUgbGVmdCwg
cmlnaHQsIG9yIGluIGJldHdlZW4gbGluZXMgYW5kIGJsb2Nrcy4KICAgICAvLyBJbiBvcmRlciB0
byBnZXQgdGhlIHJlcGFpbnQgcmVjdCByaWdodCwgd2UgaGF2ZSB0byBleGFtaW5lIGxlZnQsIG1p
ZGRsZSwgYW5kIHJpZ2h0IHJlY3RzIGluZGl2aWR1YWxseSwgc2luY2Ugb3RoZXJ3aXNlCiAgICAg
Ly8gdGhlIHVuaW9uIG9mIHRob3NlIHJlY3RzIG1pZ2h0IHJlbWFpbiB0aGUgc2FtZSBldmVuIHdo
ZW4gY2hhbmdlcyBoYXZlIG9jY3VycmVkLgogICAgIGF1dG8qIHN0YXJ0ID0gc2VsZWN0aW9uLnN0
YXJ0KCk7CiAgICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gbnVsbHB0cjsKICAgICBpZiAoc2VsZWN0
aW9uLmVuZCgpKQotICAgICAgICBzdG9wID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKCpzZWxlY3Rp
b24uZW5kKCksIHNlbGVjdGlvbi5lbmRQb3NpdGlvbigpLnZhbHVlKCkpOworICAgICAgICBzdG9w
ID0gcmVuZGVyZXJBZnRlck9mZnNldCgqc2VsZWN0aW9uLmVuZCgpLCBzZWxlY3Rpb24uZW5kT2Zm
c2V0KCkudmFsdWUoKSk7CiAgICAgU2VsZWN0aW9uSXRlcmF0b3Igc2VsZWN0aW9uSXRlcmF0b3Io
c3RhcnQpOwogICAgIHdoaWxlIChzdGFydCAmJiBzdGFydCAhPSBzdG9wKSB7CiAgICAgICAgIGlm
IChpc1ZhbGlkUmVuZGVyZXJGb3JTZWxlY3Rpb24oKnN0YXJ0LCBzZWxlY3Rpb24pKSB7CkBAIC0x
NzksNyArMTc5LDcgQEAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBTZWxlY3Rpb25SYW5n
ZURhdGE6OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIoUmVuZGUKICAgICBSZW5kZXJPYmplY3Qq
IHNlbGVjdGlvbkVuZCA9IG51bGxwdHI7CiAgICAgYXV0byogc2VsZWN0aW9uRGF0YUVuZCA9IG1f
c2VsZWN0aW9uQ29udGV4dC5lbmQoKTsKICAgICBpZiAoc2VsZWN0aW9uRGF0YUVuZCkKLSAgICAg
ICAgc2VsZWN0aW9uRW5kID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKCpzZWxlY3Rpb25EYXRhRW5k
LCBtX3NlbGVjdGlvbkNvbnRleHQuZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsKKyAgICAgICAgc2Vs
ZWN0aW9uRW5kID0gcmVuZGVyZXJBZnRlck9mZnNldCgqc2VsZWN0aW9uRGF0YUVuZCwgbV9zZWxl
Y3Rpb25Db250ZXh0LmVuZE9mZnNldCgpLnZhbHVlKCkpOwogICAgIFNlbGVjdGlvbkl0ZXJhdG9y
IHNlbGVjdGlvbkl0ZXJhdG9yKG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpKTsKICAgICBmb3Ig
KGF1dG8qIGN1cnJlbnRSZW5kZXJlciA9IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpOyBjdXJy
ZW50UmVuZGVyZXIgJiYgY3VycmVudFJlbmRlcmVyICE9IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQo
KTsgY3VycmVudFJlbmRlcmVyID0gc2VsZWN0aW9uSXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAg
IGlmIChjdXJyZW50UmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgfHwgY3Vy
cmVudFJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKQEAgLTIyMSw3ICsyMjEs
NyBAQCB2b2lkIFNlbGVjdGlvblJhbmdlRGF0YTo6cmVwYWludCgpIGNvbnN0CiAgICAgSGFzaFNl
dDxSZW5kZXJCbG9jayo+IHByb2Nlc3NlZEJsb2NrczsKICAgICBSZW5kZXJPYmplY3QqIGVuZCA9
IG51bGxwdHI7CiAgICAgaWYgKG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKLSAgICAgICAgZW5k
ID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKCptX3NlbGVjdGlvbkNvbnRleHQuZW5kKCksIG1fc2Vs
ZWN0aW9uQ29udGV4dC5lbmRQb3NpdGlvbigpLnZhbHVlKCkpOworICAgICAgICBlbmQgPSByZW5k
ZXJlckFmdGVyT2Zmc2V0KCptX3NlbGVjdGlvbkNvbnRleHQuZW5kKCksIG1fc2VsZWN0aW9uQ29u
dGV4dC5lbmRPZmZzZXQoKS52YWx1ZSgpKTsKICAgICBTZWxlY3Rpb25JdGVyYXRvciBzZWxlY3Rp
b25JdGVyYXRvcihtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSk7CiAgICAgZm9yIChhdXRvKiBy
ZW5kZXJlciA9IHNlbGVjdGlvbkl0ZXJhdG9yLmN1cnJlbnQoKTsgcmVuZGVyZXIgJiYgcmVuZGVy
ZXIgIT0gZW5kOyByZW5kZXJlciA9IHNlbGVjdGlvbkl0ZXJhdG9yLm5leHQoKSkgewogICAgICAg
ICBpZiAoIXJlbmRlcmVyLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSAmJiByZW5kZXJlciAhPSBtX3Nl
bGVjdGlvbkNvbnRleHQuc3RhcnQoKSAmJiByZW5kZXJlciAhPSBtX3NlbGVjdGlvbkNvbnRleHQu
ZW5kKCkpCkBAIC0yNDQsNyArMjQ0LDcgQEAgSW50UmVjdCBTZWxlY3Rpb25SYW5nZURhdGE6OmNv
bGxlY3RCb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBh
dXRvKiBzdGFydCA9IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpOwogICAgIFJlbmRlck9iamVj
dCogc3RvcCA9IG51bGxwdHI7CiAgICAgaWYgKG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKLSAg
ICAgICAgc3RvcCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbigqbV9zZWxlY3Rpb25Db250ZXh0LmVu
ZCgpLCBtX3NlbGVjdGlvbkNvbnRleHQuZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsKKyAgICAgICAg
c3RvcCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSwgbV9z
ZWxlY3Rpb25Db250ZXh0LmVuZE9mZnNldCgpLnZhbHVlKCkpOwogICAgIFNlbGVjdGlvbkl0ZXJh
dG9yIHNlbGVjdGlvbkl0ZXJhdG9yKHN0YXJ0KTsKICAgICB3aGlsZSAoc3RhcnQgJiYgc3RhcnQg
IT0gc3RvcCkgewogICAgICAgICBpZiAoKHN0YXJ0LT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBz
dGFydCA9PSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSB8fCBzdGFydCA9PSBtX3NlbGVjdGlv
bkNvbnRleHQuZW5kKCkpCkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBTZWxlY3Rpb25SYW5nZURh
dGE6OmFwcGx5KGNvbnN0IENvbnRleHQmIG5ld1NlbGVjdGlvbiwgUmVwYWludE1vZGUgYmxvY2tS
ZXAKICAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVuZCA9IG51bGxwdHI7CiAgICAgYXV0byog
c2VsZWN0aW9uRGF0YUVuZCA9IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKTsKICAgICBpZiAoc2Vs
ZWN0aW9uRGF0YUVuZCkKLSAgICAgICAgc2VsZWN0aW9uRW5kID0gcmVuZGVyZXJBZnRlclBvc2l0
aW9uKCpzZWxlY3Rpb25EYXRhRW5kLCBtX3NlbGVjdGlvbkNvbnRleHQuZW5kUG9zaXRpb24oKS52
YWx1ZSgpKTsKKyAgICAgICAgc2VsZWN0aW9uRW5kID0gcmVuZGVyZXJBZnRlck9mZnNldCgqc2Vs
ZWN0aW9uRGF0YUVuZCwgbV9zZWxlY3Rpb25Db250ZXh0LmVuZE9mZnNldCgpLnZhbHVlKCkpOwog
ICAgIFNlbGVjdGlvbkl0ZXJhdG9yIHNlbGVjdGlvbkl0ZXJhdG9yKHNlbGVjdGlvblN0YXJ0KTsK
ICAgICBmb3IgKGF1dG8qIGN1cnJlbnRSZW5kZXJlciA9IHNlbGVjdGlvblN0YXJ0OyBjdXJyZW50
UmVuZGVyZXIgJiYgY3VycmVudFJlbmRlcmVyICE9IHNlbGVjdGlvbkVuZDsgY3VycmVudFJlbmRl
cmVyID0gc2VsZWN0aW9uSXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgIGlmIChjdXJyZW50UmVu
ZGVyZXIgPT0gc2VsZWN0aW9uU3RhcnQgfHwgY3VycmVudFJlbmRlcmVyID09IG1fc2VsZWN0aW9u
Q29udGV4dC5lbmQoKSkKQEAgLTM0OSw4ICszNDksOCBAQCB2b2lkIFNlbGVjdGlvblJhbmdlRGF0
YTo6YXBwbHkoY29uc3QgQ29udGV4dCYgbmV3U2VsZWN0aW9uLCBSZXBhaW50TW9kZSBibG9ja1Jl
cAogICAgICAgICBhdXRvKiBuZXdJbmZvID0gbmV3U2VsZWN0ZWRSZW5kZXJlcnMuZ2V0KHJlbmRl
cmVyKTsKICAgICAgICAgYXV0byogb2xkSW5mbyA9IHNlbGVjdGVkUmVuZGVyZXJJbmZvLnZhbHVl
LmdldCgpOwogICAgICAgICBpZiAoIW5ld0luZm8gfHwgb2xkSW5mby0+cmVjdCgpICE9IG5ld0lu
Zm8tPnJlY3QoKSB8fCBvbGRJbmZvLT5zdGF0ZSgpICE9IG5ld0luZm8tPnN0YXRlKCkKLSAgICAg
ICAgICAgIHx8IChtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSA9PSByZW5kZXJlciAmJiBvbGRT
ZWxlY3Rpb25EYXRhLnN0YXJ0UG9zaXRpb24gIT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0UG9z
aXRpb24oKSkKLSAgICAgICAgICAgIHx8IChtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkgPT0gcmVu
ZGVyZXIgJiYgb2xkU2VsZWN0aW9uRGF0YS5lbmRQb3NpdGlvbiAhPSBtX3NlbGVjdGlvbkNvbnRl
eHQuZW5kUG9zaXRpb24oKSkpIHsKKyAgICAgICAgICAgIHx8IChtX3NlbGVjdGlvbkNvbnRleHQu
c3RhcnQoKSA9PSByZW5kZXJlciAmJiBvbGRTZWxlY3Rpb25EYXRhLnN0YXJ0T2Zmc2V0ICE9IG1f
c2VsZWN0aW9uQ29udGV4dC5zdGFydE9mZnNldCgpKQorICAgICAgICAgICAgfHwgKG1fc2VsZWN0
aW9uQ29udGV4dC5lbmQoKSA9PSByZW5kZXJlciAmJiBvbGRTZWxlY3Rpb25EYXRhLmVuZE9mZnNl
dCAhPSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kT2Zmc2V0KCkpKSB7CiAgICAgICAgICAgICBvbGRJ
bmZvLT5yZXBhaW50KCk7CiAgICAgICAgICAgICBpZiAobmV3SW5mbykgewogICAgICAgICAgICAg
ICAgIG5ld0luZm8tPnJlcGFpbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25SYW5nZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxl
Y3Rpb25SYW5nZURhdGEuaAppbmRleCA0NGY5MWNjYmM2M2MzODg5MmIyY2IyMWQ5Y2Q3MGIzYTVi
NjFkOTI4Li5hYzYxM2Q5MjI0NGFmMWE0ZGFmOWFmMTBlMTY0ZjQyODc0NzdhM2JiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5oCkBAIC01MCwyNiAr
NTAsMjYgQEAgcHVibGljOgogICAgICAgICBDb250ZXh0KFJlbmRlck9iamVjdCogc3RhcnQsIFJl
bmRlck9iamVjdCogZW5kLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0
KQogICAgICAgICAgICAgOiBtX3N0YXJ0KG1ha2VXZWFrUHRyKHN0YXJ0KSkKICAgICAgICAgICAg
ICwgbV9lbmQobWFrZVdlYWtQdHIoZW5kKSkKLSAgICAgICAgICAgICwgbV9zdGFydFBvc2l0aW9u
KHN0YXJ0T2Zmc2V0KQotICAgICAgICAgICAgLCBtX2VuZFBvc2l0aW9uKGVuZE9mZnNldCkKKyAg
ICAgICAgICAgICwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCkKKyAgICAgICAgICAgICwgbV9l
bmRPZmZzZXQoZW5kT2Zmc2V0KQogICAgICAgICB7CiAgICAgICAgIH0KIAogICAgICAgICBSZW5k
ZXJPYmplY3QqIHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydC5nZXQoKTsgfQogICAgICAg
ICBSZW5kZXJPYmplY3QqIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kLmdldCgpOyB9Ci0gICAg
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzdGFydFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
dGFydFBvc2l0aW9uOyB9Ci0gICAgICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBlbmRQb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZW5kUG9zaXRpb247IH0KKyAgICAgICAgT3B0aW9uYWw8dW5zaWdu
ZWQ+IHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9mZnNldDsgfQorICAgICAg
ICBPcHRpb25hbDx1bnNpZ25lZD4gZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRPZmZz
ZXQ7IH0KIAogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29udGV4dCYgb3RoZXIpIGNv
bnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3N0YXJ0ID09IG90aGVyLm1fc3Rh
cnQgJiYgbV9lbmQgPT0gb3RoZXIubV9lbmQgJiYgbV9zdGFydFBvc2l0aW9uID09IG90aGVyLm1f
c3RhcnRQb3NpdGlvbiAmJiBtX2VuZFBvc2l0aW9uID09IG90aGVyLm1fZW5kUG9zaXRpb247Cisg
ICAgICAgICAgICByZXR1cm4gbV9zdGFydCA9PSBvdGhlci5tX3N0YXJ0ICYmIG1fZW5kID09IG90
aGVyLm1fZW5kICYmIG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIubV9zdGFydE9mZnNldCAmJiBtX2Vu
ZE9mZnNldCA9PSBvdGhlci5tX2VuZE9mZnNldDsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgV2Vha1B0cjxSZW5kZXJPYmplY3Q+IG1fc3RhcnQ7CiAgICAgICAgIFdlYWtQdHI8
UmVuZGVyT2JqZWN0PiBtX2VuZDsKLSAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fc3RhcnRQ
b3NpdGlvbjsKLSAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fZW5kUG9zaXRpb247CisgICAg
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX3N0YXJ0T2Zmc2V0OworICAgICAgICBPcHRpb25hbDx1
bnNpZ25lZD4gbV9lbmRPZmZzZXQ7CiAgICAgfTsKICAgICAKICAgICB2b2lkIHNldENvbnRleHQo
Y29uc3QgQ29udGV4dCYpOwpAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2Jq
ZWN0KiBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpOyB9
CiAgICAgUmVuZGVyT2JqZWN0KiBlbmQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkNvbnRl
eHQuZW5kKCk7IH0KIAotICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24oKSBjb25zdCB7IEFTU0VS
VChtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnRQb3NpdGlvbigpKTsgcmV0dXJuIG1fc2VsZWN0aW9u
Q29udGV4dC5zdGFydFBvc2l0aW9uKCkudmFsdWVPcigwKTsgfQotICAgIHVuc2lnbmVkIGVuZFBv
c2l0aW9uKCkgY29uc3QgeyBBU1NFUlQobV9zZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkp
OyByZXR1cm4gbV9zZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkudmFsdWVPcigwKTsgfQor
ICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyBBU1NFUlQobV9zZWxlY3Rpb25Db250
ZXh0LnN0YXJ0T2Zmc2V0KCkpOyByZXR1cm4gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0T2Zmc2V0
KCkudmFsdWVPcigwKTsgfQorICAgIHVuc2lnbmVkIGVuZE9mZnNldCgpIGNvbnN0IHsgQVNTRVJU
KG1fc2VsZWN0aW9uQ29udGV4dC5lbmRPZmZzZXQoKSk7IHJldHVybiBtX3NlbGVjdGlvbkNvbnRl
eHQuZW5kT2Zmc2V0KCkudmFsdWVPcigwKTsgfQogCiAgICAgdm9pZCBjbGVhcigpOwogICAgIElu
dFJlY3QgYm91bmRzKCkgY29uc3QgeyByZXR1cm4gY29sbGVjdEJvdW5kcyhDbGlwVG9WaXNpYmxl
Q29udGVudDo6Tm8pOyB9Cg==
</data>
<flag name="review"
          id="402666"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386920</attachid>
            <date>2020-01-06 17:41:32 -0800</date>
            <delta_ts>2020-01-06 19:39:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205838-20200106174132.patch</filename>
            <type>text/plain</type>
            <size>16591</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVhZjcwNjExNGNhMmUw
YjZjMGY2NmI4MmFhY2FjZmZjZWRhNDdmYS4uZjM0NWM4MWUyZWI3N2E2MWU1MmU1OGJlMTk2N2Q3
YmY0NzRkNzkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTAxLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHN0
YXJ0L2VuZFBvc2l0aW9uIHRvIHN0YXJ0L2VuZE9mZnNldCBpbiBTZWxlY3Rpb25SYW5nZURhdGEg
Zm9yIGNsYXJpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE9mZnNldCBpcyBhIG1vcmUgY29ycmVjdCB0ZXJtIGZvciB0aGlzIHZhcmlhYmxlLCBhcyBp
dCBpcyBqdXN0IGFuIHVuc2lnbmVkLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZVRleHRCb3g6OnZlcmlmeVNlbGVjdGlvblN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0RW5kIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZVRleHRCb3g6OmhpZ2hsaWdodFN0YXJ0RW5kIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OmlzU2VsZWN0ZWQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbGxlY3RTZWxlY3Rp
b25SZWN0c0ZvckxpbmVCb3hlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRMaW5l
Qm94ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dExpbmVCb3hlczo6c2V0U2Vs
ZWN0aW9uU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyZXJBZnRlck9mZnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpjb2xsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblJhbmdlRGF0YTo6c2Vs
ZWN0aW9uU3RhdGVGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5n
ZURhdGE6OnJlcGFpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VE
YXRhOjpjb2xsZWN0Qm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblJh
bmdlRGF0YTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyZXJBZnRlclBvc2l0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRleHQ6OkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0OjpzdGFydE9mZnNl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRleHQ6
OmVuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6
OkNvbnRleHQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
UmFuZ2VEYXRhOjpzdGFydE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rp
b25SYW5nZURhdGE6OmVuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rp
b25SYW5nZURhdGE6OkNvbnRleHQ6OnN0YXJ0UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0OjplbmRQb3NpdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OnN0
YXJ0UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
UmFuZ2VEYXRhOjplbmRQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDEtMDYgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBVc2VkSG9yaXpv
bnRhbFZhbHVlczo6Q29uc3RyYWludHMgc2hvdWxkIG5vdCB0YWtlIERpc3BsYXk6OkJveApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IDk4M2IwZmJmZjNi
MzYyN2ZiYmFjNDJkZmIxOTUwZGU3Mjc4YzA1N2IuLmFjZGRlZDc0ZDc1NzQzYzE2M2RlMDA3Njk2
NWYwZTNmMzM3OWMxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAKQEAgLTE4Myw4ICsxODMsOCBAQCBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIElu
bGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXRlKCkKIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3Rh
dGUgSW5saW5lVGV4dEJveDo6dmVyaWZ5U2VsZWN0aW9uU3RhdGUoUmVuZGVyT2JqZWN0OjpTZWxl
Y3Rpb25TdGF0ZSBzdGF0ZSwgU2VsZWN0aW9uUmFuZ2VEYXRhJiBzZWxlY3Rpb24pIGNvbnN0CiB7
CiAgICAgaWYgKHN0YXRlID09IFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhcnQgfHwgc3RhdGUg
PT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25FbmQgfHwgc3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpT
ZWxlY3Rpb25Cb3RoKSB7Ci0gICAgICAgIGF1dG8gc3RhcnRQb3MgPSBzZWxlY3Rpb24uc3RhcnRQ
b3NpdGlvbigpOwotICAgICAgICBhdXRvIGVuZFBvcyA9IHNlbGVjdGlvbi5lbmRQb3NpdGlvbigp
OworICAgICAgICBhdXRvIHN0YXJ0UG9zID0gc2VsZWN0aW9uLnN0YXJ0T2Zmc2V0KCk7CisgICAg
ICAgIGF1dG8gZW5kUG9zID0gc2VsZWN0aW9uLmVuZE9mZnNldCgpOwogICAgICAgICAvLyBUaGUg
cG9zaXRpb24gYWZ0ZXIgYSBoYXJkIGxpbmUgYnJlYWsgaXMgY29uc2lkZXJlZCB0byBiZSBwYXN0
IGl0cyBlbmQuCiAgICAgICAgIEFTU0VSVChzdGFydCgpICsgbGVuKCkgPj0gKGlzTGluZUJyZWFr
KCkgPyAxIDogMCkpOwogICAgICAgICB1bnNpZ25lZCBsYXN0U2VsZWN0YWJsZSA9IHN0YXJ0KCkg
KyBsZW4oKSAtIChpc0xpbmVCcmVhaygpID8gMSA6IDApOwpAQCAtNzAwLDcgKzcwMCw3IEBAIHN0
ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+IElubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0
RW5kKCkgY29uc3QKIHsKICAgICBhdXRvIHNlbGVjdGlvblN0YXRlID0gcmVuZGVyZXIoKS5zZWxl
Y3Rpb25TdGF0ZSgpOwogICAgIAotICAgIHJldHVybiBjbGFtcGVkU3RhcnRFbmRGb3JTdGF0ZShy
ZW5kZXJlcigpLnZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydFBvc2l0aW9uKCksIHJlbmRlcmVyKCku
dmlldygpLnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCksIHNlbGVjdGlvblN0YXRlKTsKKyAgICBy
ZXR1cm4gY2xhbXBlZFN0YXJ0RW5kRm9yU3RhdGUocmVuZGVyZXIoKS52aWV3KCkuc2VsZWN0aW9u
KCkuc3RhcnRPZmZzZXQoKSwgcmVuZGVyZXIoKS52aWV3KCkuc2VsZWN0aW9uKCkuZW5kT2Zmc2V0
KCksIHNlbGVjdGlvblN0YXRlKTsKIH0KIAogc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4g
SW5saW5lVGV4dEJveDo6aGlnaGxpZ2h0U3RhcnRFbmQoU2VsZWN0aW9uUmFuZ2VEYXRhICZyYW5n
ZURhdGEpIGNvbnN0CkBAIC03MTEsNyArNzExLDcgQEAgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNp
Z25lZD4gSW5saW5lVGV4dEJveDo6aGlnaGxpZ2h0U3RhcnRFbmQoU2VsZWN0aW9uUmFuZ2VEYXQK
ICAgICBpZiAoc3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25Ob25lKQogICAgICAgICBy
ZXR1cm4gezAsIDB9OwogICAgIAotICAgIHJldHVybiBjbGFtcGVkU3RhcnRFbmRGb3JTdGF0ZShy
YW5nZURhdGEuc3RhcnRQb3NpdGlvbigpLCByYW5nZURhdGEuZW5kUG9zaXRpb24oKSwgc3RhdGUp
OworICAgIHJldHVybiBjbGFtcGVkU3RhcnRFbmRGb3JTdGF0ZShyYW5nZURhdGEuc3RhcnRPZmZz
ZXQoKSwgcmFuZ2VEYXRhLmVuZE9mZnNldCgpLCBzdGF0ZSk7CiB9CiAKIGJvb2wgSW5saW5lVGV4
dEJveDo6aGFzTWFya2VycygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcAppbmRleCBhMDlhMzhkNmRiZDJiZTA2ZjA1ZTdlODEwNjc4MWY0MzgwMjg4
YjBiLi4zMzhjMzIzY2M4M2NlOGQ1Y2JlNjZmNzk1YzlhNGIzMjEyZDQ4NmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTY2NSw4ICs2NjUsOCBA
QCBib29sIFJlbmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKICAgICBpZiAoc3RhdGUg
PT0gU2VsZWN0aW9uSW5zaWRlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2Vs
ZWN0aW9uU3RhcnQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRQb3NpdGlvbigpOwotICAgIGF1
dG8gc2VsZWN0aW9uRW5kID0gdmlldygpLnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7CisgICAg
YXV0byBzZWxlY3Rpb25TdGFydCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydE9mZnNldCgpOwor
ICAgIGF1dG8gc2VsZWN0aW9uRW5kID0gdmlldygpLnNlbGVjdGlvbigpLmVuZE9mZnNldCgpOwog
ICAgIGlmIChzdGF0ZSA9PSBTZWxlY3Rpb25TdGFydCkKICAgICAgICAgcmV0dXJuICFzZWxlY3Rp
b25TdGFydDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDhk
Mzc4YjkxZTkxYTlmYjAzOTNmYWRlMTliYWM4YjZmNzhlMjEwN2UuLjNmNmZlZTQ4MTVmNzIyM2Ri
N2VhYmUyYmVkZWFkYjNmOTUwMjU4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAKQEAgLTE0MjIsMjkgKzE0MjIsMjkgQEAgTGF5b3V0UmVjdCBSZW5kZXJUZXh0Ojpj
b2xsZWN0U2VsZWN0aW9uUmVjdHNGb3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE8K
IAogICAgIC8vIE5vdyBjYWxjdWxhdGUgc3RhcnRQb3MgYW5kIGVuZFBvcyBmb3IgcGFpbnRpbmcg
c2VsZWN0aW9uLgogICAgIC8vIFdlIGluY2x1ZGUgYSBzZWxlY3Rpb24gd2hpbGUgZW5kUG9zID4g
MAotICAgIHVuc2lnbmVkIHN0YXJ0UG9zOwotICAgIHVuc2lnbmVkIGVuZFBvczsKKyAgICB1bnNp
Z25lZCBzdGFydE9mZnNldDsKKyAgICB1bnNpZ25lZCBlbmRPZmZzZXQ7CiAgICAgaWYgKHNlbGVj
dGlvblN0YXRlKCkgPT0gU2VsZWN0aW9uSW5zaWRlKSB7CiAgICAgICAgIC8vIFdlIGFyZSBmdWxs
eSBzZWxlY3RlZC4KLSAgICAgICAgc3RhcnRQb3MgPSAwOwotICAgICAgICBlbmRQb3MgPSB0ZXh0
KCkubGVuZ3RoKCk7CisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gMDsKKyAgICAgICAgZW5kT2Zmc2V0
ID0gdGV4dCgpLmxlbmd0aCgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXJ0UG9zID0gdmll
dygpLnNlbGVjdGlvbigpLnN0YXJ0UG9zaXRpb24oKTsKLSAgICAgICAgZW5kUG9zID0gdmlldygp
LnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7CisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gdmlldygp
LnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0KCk7CisgICAgICAgIGVuZE9mZnNldCA9IHZpZXcoKS5z
ZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXRlKCkgPT0g
U2VsZWN0aW9uU3RhcnQpCi0gICAgICAgICAgICBlbmRQb3MgPSB0ZXh0KCkubGVuZ3RoKCk7Cisg
ICAgICAgICAgICBlbmRPZmZzZXQgPSB0ZXh0KCkubGVuZ3RoKCk7CiAgICAgICAgIGVsc2UgaWYg
KHNlbGVjdGlvblN0YXRlKCkgPT0gU2VsZWN0aW9uRW5kKQotICAgICAgICAgICAgc3RhcnRQb3Mg
PSAwOworICAgICAgICAgICAgc3RhcnRPZmZzZXQgPSAwOwogICAgIH0KIAotICAgIGlmIChzdGFy
dFBvcyA9PSBlbmRQb3MpCisgICAgaWYgKHN0YXJ0T2Zmc2V0ID09IGVuZE9mZnNldCkKICAgICAg
ICAgcmV0dXJuIEludFJlY3QoKTsKIAogICAgIExheW91dFJlY3QgcmVzdWx0UmVjdDsKICAgICBp
ZiAoIXJlY3RzKQotICAgICAgICByZXN1bHRSZWN0ID0gbV9saW5lQm94ZXMuc2VsZWN0aW9uUmVj
dEZvclJhbmdlKHN0YXJ0UG9zLCBlbmRQb3MpOworICAgICAgICByZXN1bHRSZWN0ID0gbV9saW5l
Qm94ZXMuc2VsZWN0aW9uUmVjdEZvclJhbmdlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAg
IGVsc2UgewotICAgICAgICBtX2xpbmVCb3hlcy5jb2xsZWN0U2VsZWN0aW9uUmVjdHNGb3JSYW5n
ZShzdGFydFBvcywgZW5kUG9zLCAqcmVjdHMpOworICAgICAgICBtX2xpbmVCb3hlcy5jb2xsZWN0
U2VsZWN0aW9uUmVjdHNGb3JSYW5nZShzdGFydE9mZnNldCwgZW5kT2Zmc2V0LCAqcmVjdHMpOwog
ICAgICAgICBmb3IgKGF1dG8mIHJlY3QgOiAqcmVjdHMpIHsKICAgICAgICAgICAgIHJlc3VsdFJl
Y3QudW5pdGUocmVjdCk7CiAgICAgICAgICAgICByZWN0ID0gbG9jYWxUb0NvbnRhaW5lclF1YWQo
RmxvYXRSZWN0KHJlY3QpLCByZXBhaW50Q29udGFpbmVyKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3Bw
CmluZGV4IGUyNGFlZDk2NTNiOTJlMDE0MTRmNzYzZGI4YzNiMWU2ODMyODVjOTIuLjk1NzljZGI1
NDY0OGM1ZWI4OTIwOTM5ZTllOTI0MWNkOTIyMzFmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKQEAgLTM1MCw4ICszNTAsOCBAQCB2
b2lkIFJlbmRlclRleHRMaW5lQm94ZXM6OnNldFNlbGVjdGlvblN0YXRlKFJlbmRlclRleHQmIHJl
bmRlcmVyLCBSZW5kZXJPYmplY3Q6OgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0
byBzdGFydCA9IHJlbmRlcmVyLnZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydFBvc2l0aW9uKCk7Ci0g
ICAgYXV0byBlbmQgPSByZW5kZXJlci52aWV3KCkuc2VsZWN0aW9uKCkuZW5kUG9zaXRpb24oKTsK
KyAgICBhdXRvIHN0YXJ0ID0gcmVuZGVyZXIudmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0
KCk7CisgICAgYXV0byBlbmQgPSByZW5kZXJlci52aWV3KCkuc2VsZWN0aW9uKCkuZW5kT2Zmc2V0
KCk7CiAgICAgaWYgKHN0YXRlID09IFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhcnQpIHsKICAg
ICAgICAgZW5kID0gcmVuZGVyZXIudGV4dCgpLmxlbmd0aCgpOwogICAgICAgICAvLyB0byBoYW5k
bGUgc2VsZWN0aW9uIGZyb20gZW5kIG9mIHRleHQgdG8gZW5kIG9mIGxpbmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKaW5kZXggZDc5NTE3OTkz
YmQ2MDA0Y2I2NGRlZWQ2NzdkN2NkNWYzY2M5ZWI0Yi4uOTg0NDE5ZmRmMWRkYjczZDAzY2UzMmVj
ZDBlNmViYjExMTE2ODJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Nl
bGVjdGlvblJhbmdlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVj
dGlvblJhbmdlRGF0YS5jcHAKQEAgLTQ5LDggKzQ5LDggQEAgc3RydWN0IFNlbGVjdGlvbkRhdGEg
ewogICAgIHVzaW5nIFJlbmRlcmVyTWFwID0gSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBzdGQ6OnVu
aXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4+OwogICAgIHVzaW5nIFJlbmRlckJsb2NrTWFw
ID0gSGFzaE1hcDxjb25zdCBSZW5kZXJCbG9jayosIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJCbG9j
a1NlbGVjdGlvbkluZm8+PjsKIAotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzdGFydFBvc2l0aW9u
OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBlbmRQb3NpdGlvbjsKKyAgICBPcHRpb25hbDx1bnNp
Z25lZD4gc3RhcnRPZmZzZXQ7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGVuZE9mZnNldDsKICAg
ICBSZW5kZXJlck1hcCByZW5kZXJlcnM7CiAgICAgUmVuZGVyQmxvY2tNYXAgYmxvY2tzOwogfTsK
QEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAK
LXN0YXRpYyBSZW5kZXJPYmplY3QqIHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbihjb25zdCBSZW5kZXJP
YmplY3QmIHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVk
IG9mZnNldCkKIHsKICAgICBhdXRvKiBjaGlsZCA9IHJlbmRlcmVyLmNoaWxkQXQob2Zmc2V0KTsK
ICAgICByZXR1cm4gY2hpbGQgPyBjaGlsZCA6IHJlbmRlcmVyLm5leHRJblByZU9yZGVyQWZ0ZXJD
aGlsZHJlbigpOwpAQCAtMTE5LDE0ICsxMTksMTQgQEAgc3RhdGljIFJlbmRlckJsb2NrKiBjb250
YWluaW5nQmxvY2tCZWxvd1ZpZXcoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIAogc3Rh
dGljIFNlbGVjdGlvbkRhdGEgY29sbGVjdChjb25zdCBTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRl
eHQmIHNlbGVjdGlvbiwgYm9vbCByZXBhaW50RGlmZmVyZW5jZSkKIHsKLSAgICBTZWxlY3Rpb25E
YXRhIG9sZFNlbGVjdGlvbkRhdGEgeyBzZWxlY3Rpb24uc3RhcnRQb3NpdGlvbigpLCBzZWxlY3Rp
b24uZW5kUG9zaXRpb24oKSwgeyB9LCB7IH0gfTsKKyAgICBTZWxlY3Rpb25EYXRhIG9sZFNlbGVj
dGlvbkRhdGEgeyBzZWxlY3Rpb24uc3RhcnRPZmZzZXQoKSwgc2VsZWN0aW9uLmVuZE9mZnNldCgp
LCB7IH0sIHsgfSB9OwogICAgIC8vIEJsb2NrcyBjb250YWluIHNlbGVjdGVkIG9iamVjdHMgYW5k
IGZpbGwgZ2FwcyBiZXR3ZWVuIHRoZW0sIGVpdGhlciBvbiB0aGUgbGVmdCwgcmlnaHQsIG9yIGlu
IGJldHdlZW4gbGluZXMgYW5kIGJsb2Nrcy4KICAgICAvLyBJbiBvcmRlciB0byBnZXQgdGhlIHJl
cGFpbnQgcmVjdCByaWdodCwgd2UgaGF2ZSB0byBleGFtaW5lIGxlZnQsIG1pZGRsZSwgYW5kIHJp
Z2h0IHJlY3RzIGluZGl2aWR1YWxseSwgc2luY2Ugb3RoZXJ3aXNlCiAgICAgLy8gdGhlIHVuaW9u
IG9mIHRob3NlIHJlY3RzIG1pZ2h0IHJlbWFpbiB0aGUgc2FtZSBldmVuIHdoZW4gY2hhbmdlcyBo
YXZlIG9jY3VycmVkLgogICAgIGF1dG8qIHN0YXJ0ID0gc2VsZWN0aW9uLnN0YXJ0KCk7CiAgICAg
UmVuZGVyT2JqZWN0KiBzdG9wID0gbnVsbHB0cjsKICAgICBpZiAoc2VsZWN0aW9uLmVuZCgpKQot
ICAgICAgICBzdG9wID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKCpzZWxlY3Rpb24uZW5kKCksIHNl
bGVjdGlvbi5lbmRQb3NpdGlvbigpLnZhbHVlKCkpOworICAgICAgICBzdG9wID0gcmVuZGVyZXJB
ZnRlck9mZnNldCgqc2VsZWN0aW9uLmVuZCgpLCBzZWxlY3Rpb24uZW5kT2Zmc2V0KCkudmFsdWUo
KSk7CiAgICAgU2VsZWN0aW9uSXRlcmF0b3Igc2VsZWN0aW9uSXRlcmF0b3Ioc3RhcnQpOwogICAg
IHdoaWxlIChzdGFydCAmJiBzdGFydCAhPSBzdG9wKSB7CiAgICAgICAgIGlmIChpc1ZhbGlkUmVu
ZGVyZXJGb3JTZWxlY3Rpb24oKnN0YXJ0LCBzZWxlY3Rpb24pKSB7CkBAIC0xNzksNyArMTc5LDcg
QEAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBTZWxlY3Rpb25SYW5nZURhdGE6OnNlbGVj
dGlvblN0YXRlRm9yUmVuZGVyZXIoUmVuZGUKICAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVu
ZCA9IG51bGxwdHI7CiAgICAgYXV0byogc2VsZWN0aW9uRGF0YUVuZCA9IG1fc2VsZWN0aW9uQ29u
dGV4dC5lbmQoKTsKICAgICBpZiAoc2VsZWN0aW9uRGF0YUVuZCkKLSAgICAgICAgc2VsZWN0aW9u
RW5kID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKCpzZWxlY3Rpb25EYXRhRW5kLCBtX3NlbGVjdGlv
bkNvbnRleHQuZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsKKyAgICAgICAgc2VsZWN0aW9uRW5kID0g
cmVuZGVyZXJBZnRlck9mZnNldCgqc2VsZWN0aW9uRGF0YUVuZCwgbV9zZWxlY3Rpb25Db250ZXh0
LmVuZE9mZnNldCgpLnZhbHVlKCkpOwogICAgIFNlbGVjdGlvbkl0ZXJhdG9yIHNlbGVjdGlvbkl0
ZXJhdG9yKG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpKTsKICAgICBmb3IgKGF1dG8qIGN1cnJl
bnRSZW5kZXJlciA9IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpOyBjdXJyZW50UmVuZGVyZXIg
JiYgY3VycmVudFJlbmRlcmVyICE9IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKTsgY3VycmVudFJl
bmRlcmVyID0gc2VsZWN0aW9uSXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgIGlmIChjdXJyZW50
UmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVy
ID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKQEAgLTIyMSw3ICsyMjEsNyBAQCB2b2lkIFNl
bGVjdGlvblJhbmdlRGF0YTo6cmVwYWludCgpIGNvbnN0CiAgICAgSGFzaFNldDxSZW5kZXJCbG9j
ayo+IHByb2Nlc3NlZEJsb2NrczsKICAgICBSZW5kZXJPYmplY3QqIGVuZCA9IG51bGxwdHI7CiAg
ICAgaWYgKG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKLSAgICAgICAgZW5kID0gcmVuZGVyZXJB
ZnRlclBvc2l0aW9uKCptX3NlbGVjdGlvbkNvbnRleHQuZW5kKCksIG1fc2VsZWN0aW9uQ29udGV4
dC5lbmRQb3NpdGlvbigpLnZhbHVlKCkpOworICAgICAgICBlbmQgPSByZW5kZXJlckFmdGVyT2Zm
c2V0KCptX3NlbGVjdGlvbkNvbnRleHQuZW5kKCksIG1fc2VsZWN0aW9uQ29udGV4dC5lbmRPZmZz
ZXQoKS52YWx1ZSgpKTsKICAgICBTZWxlY3Rpb25JdGVyYXRvciBzZWxlY3Rpb25JdGVyYXRvciht
X3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSk7CiAgICAgZm9yIChhdXRvKiByZW5kZXJlciA9IHNl
bGVjdGlvbkl0ZXJhdG9yLmN1cnJlbnQoKTsgcmVuZGVyZXIgJiYgcmVuZGVyZXIgIT0gZW5kOyBy
ZW5kZXJlciA9IHNlbGVjdGlvbkl0ZXJhdG9yLm5leHQoKSkgewogICAgICAgICBpZiAoIXJlbmRl
cmVyLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSAmJiByZW5kZXJlciAhPSBtX3NlbGVjdGlvbkNvbnRl
eHQuc3RhcnQoKSAmJiByZW5kZXJlciAhPSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkpCkBAIC0y
NDQsNyArMjQ0LDcgQEAgSW50UmVjdCBTZWxlY3Rpb25SYW5nZURhdGE6OmNvbGxlY3RCb3VuZHMo
Q2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBhdXRvKiBzdGFydCA9
IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpOwogICAgIFJlbmRlck9iamVjdCogc3RvcCA9IG51
bGxwdHI7CiAgICAgaWYgKG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKLSAgICAgICAgc3RvcCA9
IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbigqbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpLCBtX3NlbGVj
dGlvbkNvbnRleHQuZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsKKyAgICAgICAgc3RvcCA9IHJlbmRl
cmVyQWZ0ZXJPZmZzZXQoKm1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSwgbV9zZWxlY3Rpb25Db250
ZXh0LmVuZE9mZnNldCgpLnZhbHVlKCkpOwogICAgIFNlbGVjdGlvbkl0ZXJhdG9yIHNlbGVjdGlv
bkl0ZXJhdG9yKHN0YXJ0KTsKICAgICB3aGlsZSAoc3RhcnQgJiYgc3RhcnQgIT0gc3RvcCkgewog
ICAgICAgICBpZiAoKHN0YXJ0LT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBzdGFydCA9PSBtX3Nl
bGVjdGlvbkNvbnRleHQuc3RhcnQoKSB8fCBzdGFydCA9PSBtX3NlbGVjdGlvbkNvbnRleHQuZW5k
KCkpCkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBTZWxlY3Rpb25SYW5nZURhdGE6OmFwcGx5KGNv
bnN0IENvbnRleHQmIG5ld1NlbGVjdGlvbiwgUmVwYWludE1vZGUgYmxvY2tSZXAKICAgICBSZW5k
ZXJPYmplY3QqIHNlbGVjdGlvbkVuZCA9IG51bGxwdHI7CiAgICAgYXV0byogc2VsZWN0aW9uRGF0
YUVuZCA9IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKTsKICAgICBpZiAoc2VsZWN0aW9uRGF0YUVu
ZCkKLSAgICAgICAgc2VsZWN0aW9uRW5kID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKCpzZWxlY3Rp
b25EYXRhRW5kLCBtX3NlbGVjdGlvbkNvbnRleHQuZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsKKyAg
ICAgICAgc2VsZWN0aW9uRW5kID0gcmVuZGVyZXJBZnRlck9mZnNldCgqc2VsZWN0aW9uRGF0YUVu
ZCwgbV9zZWxlY3Rpb25Db250ZXh0LmVuZE9mZnNldCgpLnZhbHVlKCkpOwogICAgIFNlbGVjdGlv
bkl0ZXJhdG9yIHNlbGVjdGlvbkl0ZXJhdG9yKHNlbGVjdGlvblN0YXJ0KTsKICAgICBmb3IgKGF1
dG8qIGN1cnJlbnRSZW5kZXJlciA9IHNlbGVjdGlvblN0YXJ0OyBjdXJyZW50UmVuZGVyZXIgJiYg
Y3VycmVudFJlbmRlcmVyICE9IHNlbGVjdGlvbkVuZDsgY3VycmVudFJlbmRlcmVyID0gc2VsZWN0
aW9uSXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgIGlmIChjdXJyZW50UmVuZGVyZXIgPT0gc2Vs
ZWN0aW9uU3RhcnQgfHwgY3VycmVudFJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQo
KSkKQEAgLTM0OSw4ICszNDksOCBAQCB2b2lkIFNlbGVjdGlvblJhbmdlRGF0YTo6YXBwbHkoY29u
c3QgQ29udGV4dCYgbmV3U2VsZWN0aW9uLCBSZXBhaW50TW9kZSBibG9ja1JlcAogICAgICAgICBh
dXRvKiBuZXdJbmZvID0gbmV3U2VsZWN0ZWRSZW5kZXJlcnMuZ2V0KHJlbmRlcmVyKTsKICAgICAg
ICAgYXV0byogb2xkSW5mbyA9IHNlbGVjdGVkUmVuZGVyZXJJbmZvLnZhbHVlLmdldCgpOwogICAg
ICAgICBpZiAoIW5ld0luZm8gfHwgb2xkSW5mby0+cmVjdCgpICE9IG5ld0luZm8tPnJlY3QoKSB8
fCBvbGRJbmZvLT5zdGF0ZSgpICE9IG5ld0luZm8tPnN0YXRlKCkKLSAgICAgICAgICAgIHx8ICht
X3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSA9PSByZW5kZXJlciAmJiBvbGRTZWxlY3Rpb25EYXRh
LnN0YXJ0UG9zaXRpb24gIT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0UG9zaXRpb24oKSkKLSAg
ICAgICAgICAgIHx8IChtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkgPT0gcmVuZGVyZXIgJiYgb2xk
U2VsZWN0aW9uRGF0YS5lbmRQb3NpdGlvbiAhPSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kUG9zaXRp
b24oKSkpIHsKKyAgICAgICAgICAgIHx8IChtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSA9PSBy
ZW5kZXJlciAmJiBvbGRTZWxlY3Rpb25EYXRhLnN0YXJ0T2Zmc2V0ICE9IG1fc2VsZWN0aW9uQ29u
dGV4dC5zdGFydE9mZnNldCgpKQorICAgICAgICAgICAgfHwgKG1fc2VsZWN0aW9uQ29udGV4dC5l
bmQoKSA9PSByZW5kZXJlciAmJiBvbGRTZWxlY3Rpb25EYXRhLmVuZE9mZnNldCAhPSBtX3NlbGVj
dGlvbkNvbnRleHQuZW5kT2Zmc2V0KCkpKSB7CiAgICAgICAgICAgICBvbGRJbmZvLT5yZXBhaW50
KCk7CiAgICAgICAgICAgICBpZiAobmV3SW5mbykgewogICAgICAgICAgICAgICAgIG5ld0luZm8t
PnJlcGFpbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rp
b25SYW5nZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURh
dGEuaAppbmRleCA0NGY5MWNjYmM2M2MzODg5MmIyY2IyMWQ5Y2Q3MGIzYTViNjFkOTI4Li5hYzYx
M2Q5MjI0NGFmMWE0ZGFmOWFmMTBlMTY0ZjQyODc0NzdhM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5oCkBAIC01MCwyNiArNTAsMjYgQEAgcHVi
bGljOgogICAgICAgICBDb250ZXh0KFJlbmRlck9iamVjdCogc3RhcnQsIFJlbmRlck9iamVjdCog
ZW5kLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0KQogICAgICAgICAg
ICAgOiBtX3N0YXJ0KG1ha2VXZWFrUHRyKHN0YXJ0KSkKICAgICAgICAgICAgICwgbV9lbmQobWFr
ZVdlYWtQdHIoZW5kKSkKLSAgICAgICAgICAgICwgbV9zdGFydFBvc2l0aW9uKHN0YXJ0T2Zmc2V0
KQotICAgICAgICAgICAgLCBtX2VuZFBvc2l0aW9uKGVuZE9mZnNldCkKKyAgICAgICAgICAgICwg
bV9zdGFydE9mZnNldChzdGFydE9mZnNldCkKKyAgICAgICAgICAgICwgbV9lbmRPZmZzZXQoZW5k
T2Zmc2V0KQogICAgICAgICB7CiAgICAgICAgIH0KIAogICAgICAgICBSZW5kZXJPYmplY3QqIHN0
YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydC5nZXQoKTsgfQogICAgICAgICBSZW5kZXJPYmpl
Y3QqIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kLmdldCgpOyB9Ci0gICAgICAgIE9wdGlvbmFs
PHVuc2lnbmVkPiBzdGFydFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFBvc2l0aW9u
OyB9Ci0gICAgICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBlbmRQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZW5kUG9zaXRpb247IH0KKyAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHN0YXJ0T2Zm
c2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9mZnNldDsgfQorICAgICAgICBPcHRpb25hbDx1
bnNpZ25lZD4gZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRPZmZzZXQ7IH0KIAogICAg
ICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29udGV4dCYgb3RoZXIpIGNvbnN0CiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBtX3N0YXJ0ID09IG90aGVyLm1fc3RhcnQgJiYgbV9lbmQg
PT0gb3RoZXIubV9lbmQgJiYgbV9zdGFydFBvc2l0aW9uID09IG90aGVyLm1fc3RhcnRQb3NpdGlv
biAmJiBtX2VuZFBvc2l0aW9uID09IG90aGVyLm1fZW5kUG9zaXRpb247CisgICAgICAgICAgICBy
ZXR1cm4gbV9zdGFydCA9PSBvdGhlci5tX3N0YXJ0ICYmIG1fZW5kID09IG90aGVyLm1fZW5kICYm
IG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIubV9zdGFydE9mZnNldCAmJiBtX2VuZE9mZnNldCA9PSBv
dGhlci5tX2VuZE9mZnNldDsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2Vh
a1B0cjxSZW5kZXJPYmplY3Q+IG1fc3RhcnQ7CiAgICAgICAgIFdlYWtQdHI8UmVuZGVyT2JqZWN0
PiBtX2VuZDsKLSAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fc3RhcnRQb3NpdGlvbjsKLSAg
ICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fZW5kUG9zaXRpb247CisgICAgICAgIE9wdGlvbmFs
PHVuc2lnbmVkPiBtX3N0YXJ0T2Zmc2V0OworICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9l
bmRPZmZzZXQ7CiAgICAgfTsKICAgICAKICAgICB2b2lkIHNldENvbnRleHQoY29uc3QgQ29udGV4
dCYpOwpAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiBzdGFydCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpOyB9CiAgICAgUmVuZGVy
T2JqZWN0KiBlbmQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCk7IH0K
IAotICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24oKSBjb25zdCB7IEFTU0VSVChtX3NlbGVjdGlv
bkNvbnRleHQuc3RhcnRQb3NpdGlvbigpKTsgcmV0dXJuIG1fc2VsZWN0aW9uQ29udGV4dC5zdGFy
dFBvc2l0aW9uKCkudmFsdWVPcigwKTsgfQotICAgIHVuc2lnbmVkIGVuZFBvc2l0aW9uKCkgY29u
c3QgeyBBU1NFUlQobV9zZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkpOyByZXR1cm4gbV9z
ZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkudmFsdWVPcigwKTsgfQorICAgIHVuc2lnbmVk
IHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyBBU1NFUlQobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0T2Zm
c2V0KCkpOyByZXR1cm4gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0T2Zmc2V0KCkudmFsdWVPcigw
KTsgfQorICAgIHVuc2lnbmVkIGVuZE9mZnNldCgpIGNvbnN0IHsgQVNTRVJUKG1fc2VsZWN0aW9u
Q29udGV4dC5lbmRPZmZzZXQoKSk7IHJldHVybiBtX3NlbGVjdGlvbkNvbnRleHQuZW5kT2Zmc2V0
KCkudmFsdWVPcigwKTsgfQogCiAgICAgdm9pZCBjbGVhcigpOwogICAgIEludFJlY3QgYm91bmRz
KCkgY29uc3QgeyByZXR1cm4gY29sbGVjdEJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8p
OyB9Cg==
</data>
<flag name="review"
          id="402684"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387003</attachid>
            <date>2020-01-07 11:23:03 -0800</date>
            <delta_ts>2020-01-07 14:33:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205838-20200107112302.patch</filename>
            <type>text/plain</type>
            <size>17756</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZkNzVhZDAyOWIyYWVh
MzUzN2YyN2JmOGJjYTgwOTM1MGU1NTZkYS4uMmJkZTdjMGYzNDhjZTBmOTIxYTE5ZDEwZjE1MGIx
MTU5ZmMzMGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTAxLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHN0
YXJ0L2VuZFBvc2l0aW9uIHRvIHN0YXJ0L2VuZE9mZnNldCBpbiBTZWxlY3Rpb25SYW5nZURhdGEg
Zm9yIGNsYXJpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE9mZnNldCBpcyBhIG1vcmUgY29ycmVjdCB0ZXJtIGZvciB0aGlzIHZhcmlhYmxlLCBhcyBp
dCBpcyBqdXN0IGFuIHVuc2lnbmVkLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZVRleHRCb3g6OnZlcmlmeVNlbGVjdGlvblN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0RW5kIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZVRleHRCb3g6OmhpZ2hsaWdodFN0YXJ0RW5kIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OmlzU2VsZWN0ZWQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbGxlY3RTZWxlY3Rp
b25SZWN0c0ZvckxpbmVCb3hlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRMaW5l
Qm94ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dExpbmVCb3hlczo6c2V0U2Vs
ZWN0aW9uU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyZXJBZnRlck9mZnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpjb2xsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblJhbmdlRGF0YTo6c2Vs
ZWN0aW9uU3RhdGVGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5n
ZURhdGE6OnJlcGFpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VE
YXRhOjpjb2xsZWN0Qm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblJh
bmdlRGF0YTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyZXJBZnRlclBvc2l0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRleHQ6OkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0OjpzdGFydE9mZnNl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OkNvbnRleHQ6
OmVuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6
OkNvbnRleHQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
UmFuZ2VEYXRhOjpzdGFydE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rp
b25SYW5nZURhdGE6OmVuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rp
b25SYW5nZURhdGE6OkNvbnRleHQ6OnN0YXJ0UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0OjplbmRQb3NpdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OnN0
YXJ0UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
UmFuZ2VEYXRhOjplbmRQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDEtMDcgIHlv
dWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBNZWRp
YVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwCmluZGV4IDk4M2IwZmJmZjNiMzYyN2ZiYmFjNDJkZmIxOTUwZGU3
Mjc4YzA1N2IuLmIwOWIwM2UzMDVjOGQzYzA4MTdhNGQ3MDAyZWVmYmE5MTBjNzViMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTE4MywyMiArMTgz
LDIyIEBAIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhdGUgSW5saW5lVGV4dEJveDo6c2VsZWN0
aW9uU3RhdGUoKQogUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBJbmxpbmVUZXh0Qm94Ojp2
ZXJpZnlTZWxlY3Rpb25TdGF0ZShSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIHN0YXRlLCBT
ZWxlY3Rpb25SYW5nZURhdGEmIHNlbGVjdGlvbikgY29uc3QKIHsKICAgICBpZiAoc3RhdGUgPT0g
UmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGFydCB8fCBzdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNl
bGVjdGlvbkVuZCB8fCBzdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkJvdGgpIHsKLSAg
ICAgICAgYXV0byBzdGFydFBvcyA9IHNlbGVjdGlvbi5zdGFydFBvc2l0aW9uKCk7Ci0gICAgICAg
IGF1dG8gZW5kUG9zID0gc2VsZWN0aW9uLmVuZFBvc2l0aW9uKCk7CisgICAgICAgIGF1dG8gc3Rh
cnRPZmZzZXQgPSBzZWxlY3Rpb24uc3RhcnRPZmZzZXQoKTsKKyAgICAgICAgYXV0byBlbmRPZmZz
ZXQgPSBzZWxlY3Rpb24uZW5kT2Zmc2V0KCk7CiAgICAgICAgIC8vIFRoZSBwb3NpdGlvbiBhZnRl
ciBhIGhhcmQgbGluZSBicmVhayBpcyBjb25zaWRlcmVkIHRvIGJlIHBhc3QgaXRzIGVuZC4KICAg
ICAgICAgQVNTRVJUKHN0YXJ0KCkgKyBsZW4oKSA+PSAoaXNMaW5lQnJlYWsoKSA/IDEgOiAwKSk7
CiAgICAgICAgIHVuc2lnbmVkIGxhc3RTZWxlY3RhYmxlID0gc3RhcnQoKSArIGxlbigpIC0gKGlz
TGluZUJyZWFrKCkgPyAxIDogMCk7CiAKLSAgICAgICAgYm9vbCBzdGFydCA9IChzdGF0ZSAhPSBS
ZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkVuZCAmJiBzdGFydFBvcyA+PSBtX3N0YXJ0ICYmIHN0YXJ0
UG9zIDwgbV9zdGFydCArIG1fbGVuKTsKLSAgICAgICAgYm9vbCBlbmQgPSAoc3RhdGUgIT0gUmVu
ZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGFydCAmJiBlbmRQb3MgPiBtX3N0YXJ0ICYmIGVuZFBvcyA8
PSBsYXN0U2VsZWN0YWJsZSk7CisgICAgICAgIGJvb2wgc3RhcnQgPSAoc3RhdGUgIT0gUmVuZGVy
T2JqZWN0OjpTZWxlY3Rpb25FbmQgJiYgc3RhcnRPZmZzZXQgPj0gbV9zdGFydCAmJiBzdGFydE9m
ZnNldCA8IG1fc3RhcnQgKyBtX2xlbik7CisgICAgICAgIGJvb2wgZW5kID0gKHN0YXRlICE9IFJl
bmRlck9iamVjdDo6U2VsZWN0aW9uU3RhcnQgJiYgZW5kT2Zmc2V0ID4gbV9zdGFydCAmJiBlbmRP
ZmZzZXQgPD0gbGFzdFNlbGVjdGFibGUpOwogICAgICAgICBpZiAoc3RhcnQgJiYgZW5kKQogICAg
ICAgICAgICAgc3RhdGUgPSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkJvdGg7CiAgICAgICAgIGVs
c2UgaWYgKHN0YXJ0KQogICAgICAgICAgICAgc3RhdGUgPSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlv
blN0YXJ0OwogICAgICAgICBlbHNlIGlmIChlbmQpCiAgICAgICAgICAgICBzdGF0ZSA9IFJlbmRl
ck9iamVjdDo6U2VsZWN0aW9uRW5kOwotICAgICAgICBlbHNlIGlmICgoc3RhdGUgPT0gUmVuZGVy
T2JqZWN0OjpTZWxlY3Rpb25FbmQgfHwgc3RhcnRQb3MgPCBtX3N0YXJ0KSAmJgotICAgICAgICAg
ICAgICAgICAoc3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGFydCB8fCBlbmRQb3Mg
PiBsYXN0U2VsZWN0YWJsZSkpCisgICAgICAgIGVsc2UgaWYgKChzdGF0ZSA9PSBSZW5kZXJPYmpl
Y3Q6OlNlbGVjdGlvbkVuZCB8fCBzdGFydE9mZnNldCA8IG1fc3RhcnQpCisgICAgICAgICAgICAm
JiAoc3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGFydCB8fCBlbmRPZmZzZXQgPiBs
YXN0U2VsZWN0YWJsZSkpCiAgICAgICAgICAgICBzdGF0ZSA9IFJlbmRlck9iamVjdDo6U2VsZWN0
aW9uSW5zaWRlOwogICAgICAgICBlbHNlIGlmIChzdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVj
dGlvbkJvdGgpCiAgICAgICAgICAgICBzdGF0ZSA9IFJlbmRlck9iamVjdDo6U2VsZWN0aW9uTm9u
ZTsKQEAgLTcwMCw3ICs3MDAsNyBAQCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiBJbmxp
bmVUZXh0Qm94OjpzZWxlY3Rpb25TdGFydEVuZCgpIGNvbnN0CiB7CiAgICAgYXV0byBzZWxlY3Rp
b25TdGF0ZSA9IHJlbmRlcmVyKCkuc2VsZWN0aW9uU3RhdGUoKTsKICAgICAKLSAgICByZXR1cm4g
Y2xhbXBlZFN0YXJ0RW5kRm9yU3RhdGUocmVuZGVyZXIoKS52aWV3KCkuc2VsZWN0aW9uKCkuc3Rh
cnRQb3NpdGlvbigpLCByZW5kZXJlcigpLnZpZXcoKS5zZWxlY3Rpb24oKS5lbmRQb3NpdGlvbigp
LCBzZWxlY3Rpb25TdGF0ZSk7CisgICAgcmV0dXJuIGNsYW1wZWRTdGFydEVuZEZvclN0YXRlKHJl
bmRlcmVyKCkudmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0KCksIHJlbmRlcmVyKCkudmll
dygpLnNlbGVjdGlvbigpLmVuZE9mZnNldCgpLCBzZWxlY3Rpb25TdGF0ZSk7CiB9CiAKIHN0ZDo6
cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+IElubGluZVRleHRCb3g6OmhpZ2hsaWdodFN0YXJ0RW5k
KFNlbGVjdGlvblJhbmdlRGF0YSAmcmFuZ2VEYXRhKSBjb25zdApAQCAtNzExLDcgKzcxMSw3IEBA
IHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+IElubGluZVRleHRCb3g6OmhpZ2hsaWdodFN0
YXJ0RW5kKFNlbGVjdGlvblJhbmdlRGF0CiAgICAgaWYgKHN0YXRlID09IFJlbmRlck9iamVjdDo6
U2VsZWN0aW9uTm9uZSkKICAgICAgICAgcmV0dXJuIHswLCAwfTsKICAgICAKLSAgICByZXR1cm4g
Y2xhbXBlZFN0YXJ0RW5kRm9yU3RhdGUocmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24oKSwgcmFuZ2VE
YXRhLmVuZFBvc2l0aW9uKCksIHN0YXRlKTsKKyAgICByZXR1cm4gY2xhbXBlZFN0YXJ0RW5kRm9y
U3RhdGUocmFuZ2VEYXRhLnN0YXJ0T2Zmc2V0KCksIHJhbmdlRGF0YS5lbmRPZmZzZXQoKSwgc3Rh
dGUpOwogfQogCiBib29sIElubGluZVRleHRCb3g6Omhhc01hcmtlcnMoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggYTA5YTM4ZDZkYmQy
YmUwNmYwNWU3ZTgxMDY3ODFmNDM4MDI4OGIwYi4uMzM4YzMyM2NjODNjZThkNWNiZTY2Zjc5NWM5
YTRiMzIxMmQ0ODZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwCkBAIC02NjUsOCArNjY1LDggQEAgYm9vbCBSZW5kZXJSZXBsYWNlZDo6aXNTZWxlY3Rl
ZCgpIGNvbnN0CiAgICAgaWYgKHN0YXRlID09IFNlbGVjdGlvbkluc2lkZSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICBhdXRvIHNlbGVjdGlvblN0YXJ0ID0gdmlldygpLnNlbGVjdGlvbigp
LnN0YXJ0UG9zaXRpb24oKTsKLSAgICBhdXRvIHNlbGVjdGlvbkVuZCA9IHZpZXcoKS5zZWxlY3Rp
b24oKS5lbmRQb3NpdGlvbigpOworICAgIGF1dG8gc2VsZWN0aW9uU3RhcnQgPSB2aWV3KCkuc2Vs
ZWN0aW9uKCkuc3RhcnRPZmZzZXQoKTsKKyAgICBhdXRvIHNlbGVjdGlvbkVuZCA9IHZpZXcoKS5z
ZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKICAgICBpZiAoc3RhdGUgPT0gU2VsZWN0aW9uU3RhcnQp
CiAgICAgICAgIHJldHVybiAhc2VsZWN0aW9uU3RhcnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcAppbmRleCA4ZDM3OGI5MWU5MWE5ZmIwMzkzZmFkZTE5YmFjOGI2Zjc4
ZTIxMDdlLi4zZjZmZWU0ODE1ZjcyMjNkYjdlYWJlMmJlZGVhZGIzZjk1MDI1OGY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xNDIyLDI5ICsxNDIyLDI5IEBA
IExheW91dFJlY3QgUmVuZGVyVGV4dDo6Y29sbGVjdFNlbGVjdGlvblJlY3RzRm9yTGluZUJveGVz
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPCiAKICAgICAvLyBOb3cgY2FsY3VsYXRlIHN0YXJ0UG9z
IGFuZCBlbmRQb3MgZm9yIHBhaW50aW5nIHNlbGVjdGlvbi4KICAgICAvLyBXZSBpbmNsdWRlIGEg
c2VsZWN0aW9uIHdoaWxlIGVuZFBvcyA+IDAKLSAgICB1bnNpZ25lZCBzdGFydFBvczsKLSAgICB1
bnNpZ25lZCBlbmRQb3M7CisgICAgdW5zaWduZWQgc3RhcnRPZmZzZXQ7CisgICAgdW5zaWduZWQg
ZW5kT2Zmc2V0OwogICAgIGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IFNlbGVjdGlvbkluc2lkZSkg
ewogICAgICAgICAvLyBXZSBhcmUgZnVsbHkgc2VsZWN0ZWQuCi0gICAgICAgIHN0YXJ0UG9zID0g
MDsKLSAgICAgICAgZW5kUG9zID0gdGV4dCgpLmxlbmd0aCgpOworICAgICAgICBzdGFydE9mZnNl
dCA9IDA7CisgICAgICAgIGVuZE9mZnNldCA9IHRleHQoKS5sZW5ndGgoKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBzdGFydFBvcyA9IHZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydFBvc2l0aW9uKCk7
Ci0gICAgICAgIGVuZFBvcyA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRQb3NpdGlvbigpOworICAg
ICAgICBzdGFydE9mZnNldCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydE9mZnNldCgpOworICAg
ICAgICBlbmRPZmZzZXQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuZW5kT2Zmc2V0KCk7CiAgICAgICAg
IGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IFNlbGVjdGlvblN0YXJ0KQotICAgICAgICAgICAgZW5k
UG9zID0gdGV4dCgpLmxlbmd0aCgpOworICAgICAgICAgICAgZW5kT2Zmc2V0ID0gdGV4dCgpLmxl
bmd0aCgpOwogICAgICAgICBlbHNlIGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IFNlbGVjdGlvbkVu
ZCkKLSAgICAgICAgICAgIHN0YXJ0UG9zID0gMDsKKyAgICAgICAgICAgIHN0YXJ0T2Zmc2V0ID0g
MDsKICAgICB9CiAKLSAgICBpZiAoc3RhcnRQb3MgPT0gZW5kUG9zKQorICAgIGlmIChzdGFydE9m
ZnNldCA9PSBlbmRPZmZzZXQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKICAgICBMYXlv
dXRSZWN0IHJlc3VsdFJlY3Q7CiAgICAgaWYgKCFyZWN0cykKLSAgICAgICAgcmVzdWx0UmVjdCA9
IG1fbGluZUJveGVzLnNlbGVjdGlvblJlY3RGb3JSYW5nZShzdGFydFBvcywgZW5kUG9zKTsKKyAg
ICAgICAgcmVzdWx0UmVjdCA9IG1fbGluZUJveGVzLnNlbGVjdGlvblJlY3RGb3JSYW5nZShzdGFy
dE9mZnNldCwgZW5kT2Zmc2V0KTsKICAgICBlbHNlIHsKLSAgICAgICAgbV9saW5lQm94ZXMuY29s
bGVjdFNlbGVjdGlvblJlY3RzRm9yUmFuZ2Uoc3RhcnRQb3MsIGVuZFBvcywgKnJlY3RzKTsKKyAg
ICAgICAgbV9saW5lQm94ZXMuY29sbGVjdFNlbGVjdGlvblJlY3RzRm9yUmFuZ2Uoc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCwgKnJlY3RzKTsKICAgICAgICAgZm9yIChhdXRvJiByZWN0IDogKnJlY3Rz
KSB7CiAgICAgICAgICAgICByZXN1bHRSZWN0LnVuaXRlKHJlY3QpOwogICAgICAgICAgICAgcmVj
dCA9IGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChyZWN0KSwgcmVwYWludENvbnRhaW5l
cikuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAppbmRleCBlMjRhZWQ5NjUzYjkyZTAxNDE0Zjc2M2Ri
OGMzYjFlNjgzMjg1YzkyLi45NTc5Y2RiNTQ2NDhjNWViODkyMDkzOWU5ZTkyNDFjZDkyMjMxZmVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMu
Y3BwCkBAIC0zNTAsOCArMzUwLDggQEAgdm9pZCBSZW5kZXJUZXh0TGluZUJveGVzOjpzZXRTZWxl
Y3Rpb25TdGF0ZShSZW5kZXJUZXh0JiByZW5kZXJlciwgUmVuZGVyT2JqZWN0OjoKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gc3RhcnQgPSByZW5kZXJlci52aWV3KCkuc2VsZWN0
aW9uKCkuc3RhcnRQb3NpdGlvbigpOwotICAgIGF1dG8gZW5kID0gcmVuZGVyZXIudmlldygpLnNl
bGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7CisgICAgYXV0byBzdGFydCA9IHJlbmRlcmVyLnZpZXco
KS5zZWxlY3Rpb24oKS5zdGFydE9mZnNldCgpOworICAgIGF1dG8gZW5kID0gcmVuZGVyZXIudmll
dygpLnNlbGVjdGlvbigpLmVuZE9mZnNldCgpOwogICAgIGlmIChzdGF0ZSA9PSBSZW5kZXJPYmpl
Y3Q6OlNlbGVjdGlvblN0YXJ0KSB7CiAgICAgICAgIGVuZCA9IHJlbmRlcmVyLnRleHQoKS5sZW5n
dGgoKTsKICAgICAgICAgLy8gdG8gaGFuZGxlIHNlbGVjdGlvbiBmcm9tIGVuZCBvZiB0ZXh0IHRv
IGVuZCBvZiBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0
aW9uUmFuZ2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5n
ZURhdGEuY3BwCmluZGV4IGQ3OTUxNzk5M2JkNjAwNGNiNjRkZWVkNjc3ZDdjZDVmM2NjOWViNGIu
Ljk4NDQxOWZkZjFkZGI3M2QwM2NlMzJlY2QwZTZlYmIxMTExNjgyZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCkBAIC00OSw4ICs0OSw4
IEBAIHN0cnVjdCBTZWxlY3Rpb25EYXRhIHsKICAgICB1c2luZyBSZW5kZXJlck1hcCA9IEhhc2hN
YXA8UmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNlbGVjdGlvbkluZm8+PjsK
ICAgICB1c2luZyBSZW5kZXJCbG9ja01hcCA9IEhhc2hNYXA8Y29uc3QgUmVuZGVyQmxvY2sqLCBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvPj47CiAKLSAgICBPcHRpb25h
bDx1bnNpZ25lZD4gc3RhcnRQb3NpdGlvbjsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gZW5kUG9z
aXRpb247CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHN0YXJ0T2Zmc2V0OworICAgIE9wdGlvbmFs
PHVuc2lnbmVkPiBlbmRPZmZzZXQ7CiAgICAgUmVuZGVyZXJNYXAgcmVuZGVyZXJzOwogICAgIFJl
bmRlckJsb2NrTWFwIGJsb2NrczsKIH07CkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAKIH0g
Ly8gYW5vbnltb3VzIG5hbWVzcGFjZQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlckFm
dGVyUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgdW5zaWduZWQgb2Zmc2V0
KQorc3RhdGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJBZnRlck9mZnNldChjb25zdCBSZW5kZXJP
YmplY3QmIHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgYXV0byogY2hpbGQgPSBy
ZW5kZXJlci5jaGlsZEF0KG9mZnNldCk7CiAgICAgcmV0dXJuIGNoaWxkID8gY2hpbGQgOiByZW5k
ZXJlci5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKQEAgLTExOSwxNCArMTE5LDE0IEBA
IHN0YXRpYyBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrQmVsb3dWaWV3KGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIpCiAKIHN0YXRpYyBTZWxlY3Rpb25EYXRhIGNvbGxlY3QoY29uc3Qg
U2VsZWN0aW9uUmFuZ2VEYXRhOjpDb250ZXh0JiBzZWxlY3Rpb24sIGJvb2wgcmVwYWludERpZmZl
cmVuY2UpCiB7Ci0gICAgU2VsZWN0aW9uRGF0YSBvbGRTZWxlY3Rpb25EYXRhIHsgc2VsZWN0aW9u
LnN0YXJ0UG9zaXRpb24oKSwgc2VsZWN0aW9uLmVuZFBvc2l0aW9uKCksIHsgfSwgeyB9IH07Cisg
ICAgU2VsZWN0aW9uRGF0YSBvbGRTZWxlY3Rpb25EYXRhIHsgc2VsZWN0aW9uLnN0YXJ0T2Zmc2V0
KCksIHNlbGVjdGlvbi5lbmRPZmZzZXQoKSwgeyB9LCB7IH0gfTsKICAgICAvLyBCbG9ja3MgY29u
dGFpbiBzZWxlY3RlZCBvYmplY3RzIGFuZCBmaWxsIGdhcHMgYmV0d2VlbiB0aGVtLCBlaXRoZXIg
b24gdGhlIGxlZnQsIHJpZ2h0LCBvciBpbiBiZXR3ZWVuIGxpbmVzIGFuZCBibG9ja3MuCiAgICAg
Ly8gSW4gb3JkZXIgdG8gZ2V0IHRoZSByZXBhaW50IHJlY3QgcmlnaHQsIHdlIGhhdmUgdG8gZXhh
bWluZSBsZWZ0LCBtaWRkbGUsIGFuZCByaWdodCByZWN0cyBpbmRpdmlkdWFsbHksIHNpbmNlIG90
aGVyd2lzZQogICAgIC8vIHRoZSB1bmlvbiBvZiB0aG9zZSByZWN0cyBtaWdodCByZW1haW4gdGhl
IHNhbWUgZXZlbiB3aGVuIGNoYW5nZXMgaGF2ZSBvY2N1cnJlZC4KICAgICBhdXRvKiBzdGFydCA9
IHNlbGVjdGlvbi5zdGFydCgpOwogICAgIFJlbmRlck9iamVjdCogc3RvcCA9IG51bGxwdHI7CiAg
ICAgaWYgKHNlbGVjdGlvbi5lbmQoKSkKLSAgICAgICAgc3RvcCA9IHJlbmRlcmVyQWZ0ZXJQb3Np
dGlvbigqc2VsZWN0aW9uLmVuZCgpLCBzZWxlY3Rpb24uZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsK
KyAgICAgICAgc3RvcCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKnNlbGVjdGlvbi5lbmQoKSwgc2Vs
ZWN0aW9uLmVuZE9mZnNldCgpLnZhbHVlKCkpOwogICAgIFNlbGVjdGlvbkl0ZXJhdG9yIHNlbGVj
dGlvbkl0ZXJhdG9yKHN0YXJ0KTsKICAgICB3aGlsZSAoc3RhcnQgJiYgc3RhcnQgIT0gc3RvcCkg
ewogICAgICAgICBpZiAoaXNWYWxpZFJlbmRlcmVyRm9yU2VsZWN0aW9uKCpzdGFydCwgc2VsZWN0
aW9uKSkgewpAQCAtMTc5LDcgKzE3OSw3IEBAIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhdGUg
U2VsZWN0aW9uUmFuZ2VEYXRhOjpzZWxlY3Rpb25TdGF0ZUZvclJlbmRlcmVyKFJlbmRlCiAgICAg
UmVuZGVyT2JqZWN0KiBzZWxlY3Rpb25FbmQgPSBudWxscHRyOwogICAgIGF1dG8qIHNlbGVjdGlv
bkRhdGFFbmQgPSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRh
dGFFbmQpCi0gICAgICAgIHNlbGVjdGlvbkVuZCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbigqc2Vs
ZWN0aW9uRGF0YUVuZCwgbV9zZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkudmFsdWUoKSk7
CisgICAgICAgIHNlbGVjdGlvbkVuZCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKnNlbGVjdGlvbkRh
dGFFbmQsIG1fc2VsZWN0aW9uQ29udGV4dC5lbmRPZmZzZXQoKS52YWx1ZSgpKTsKICAgICBTZWxl
Y3Rpb25JdGVyYXRvciBzZWxlY3Rpb25JdGVyYXRvcihtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQo
KSk7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBtX3NlbGVjdGlvbkNvbnRleHQu
c3RhcnQoKTsgY3VycmVudFJlbmRlcmVyICYmIGN1cnJlbnRSZW5kZXJlciAhPSBtX3NlbGVjdGlv
bkNvbnRleHQuZW5kKCk7IGN1cnJlbnRSZW5kZXJlciA9IHNlbGVjdGlvbkl0ZXJhdG9yLm5leHQo
KSkgewogICAgICAgICBpZiAoY3VycmVudFJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5z
dGFydCgpIHx8IGN1cnJlbnRSZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkpCkBA
IC0yMjEsNyArMjIxLDcgQEAgdm9pZCBTZWxlY3Rpb25SYW5nZURhdGE6OnJlcGFpbnQoKSBjb25z
dAogICAgIEhhc2hTZXQ8UmVuZGVyQmxvY2sqPiBwcm9jZXNzZWRCbG9ja3M7CiAgICAgUmVuZGVy
T2JqZWN0KiBlbmQgPSBudWxscHRyOwogICAgIGlmIChtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkp
Ci0gICAgICAgIGVuZCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbigqbV9zZWxlY3Rpb25Db250ZXh0
LmVuZCgpLCBtX3NlbGVjdGlvbkNvbnRleHQuZW5kUG9zaXRpb24oKS52YWx1ZSgpKTsKKyAgICAg
ICAgZW5kID0gcmVuZGVyZXJBZnRlck9mZnNldCgqbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpLCBt
X3NlbGVjdGlvbkNvbnRleHQuZW5kT2Zmc2V0KCkudmFsdWUoKSk7CiAgICAgU2VsZWN0aW9uSXRl
cmF0b3Igc2VsZWN0aW9uSXRlcmF0b3IobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpOwogICAg
IGZvciAoYXV0byogcmVuZGVyZXIgPSBzZWxlY3Rpb25JdGVyYXRvci5jdXJyZW50KCk7IHJlbmRl
cmVyICYmIHJlbmRlcmVyICE9IGVuZDsgcmVuZGVyZXIgPSBzZWxlY3Rpb25JdGVyYXRvci5uZXh0
KCkpIHsKICAgICAgICAgaWYgKCFyZW5kZXJlci0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgJiYgcmVu
ZGVyZXIgIT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgJiYgcmVuZGVyZXIgIT0gbV9zZWxl
Y3Rpb25Db250ZXh0LmVuZCgpKQpAQCAtMjQ0LDcgKzI0NCw3IEBAIEludFJlY3QgU2VsZWN0aW9u
UmFuZ2VEYXRhOjpjb2xsZWN0Qm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2li
bGVDb250CiAgICAgYXV0byogc3RhcnQgPSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKTsKICAg
ICBSZW5kZXJPYmplY3QqIHN0b3AgPSBudWxscHRyOwogICAgIGlmIChtX3NlbGVjdGlvbkNvbnRl
eHQuZW5kKCkpCi0gICAgICAgIHN0b3AgPSByZW5kZXJlckFmdGVyUG9zaXRpb24oKm1fc2VsZWN0
aW9uQ29udGV4dC5lbmQoKSwgbV9zZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkudmFsdWUo
KSk7CisgICAgICAgIHN0b3AgPSByZW5kZXJlckFmdGVyT2Zmc2V0KCptX3NlbGVjdGlvbkNvbnRl
eHQuZW5kKCksIG1fc2VsZWN0aW9uQ29udGV4dC5lbmRPZmZzZXQoKS52YWx1ZSgpKTsKICAgICBT
ZWxlY3Rpb25JdGVyYXRvciBzZWxlY3Rpb25JdGVyYXRvcihzdGFydCk7CiAgICAgd2hpbGUgKHN0
YXJ0ICYmIHN0YXJ0ICE9IHN0b3ApIHsKICAgICAgICAgaWYgKChzdGFydC0+Y2FuQmVTZWxlY3Rp
b25MZWFmKCkgfHwgc3RhcnQgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgfHwgc3RhcnQg
PT0gbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpKQpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgU2Vs
ZWN0aW9uUmFuZ2VEYXRhOjphcHBseShjb25zdCBDb250ZXh0JiBuZXdTZWxlY3Rpb24sIFJlcGFp
bnRNb2RlIGJsb2NrUmVwCiAgICAgUmVuZGVyT2JqZWN0KiBzZWxlY3Rpb25FbmQgPSBudWxscHRy
OwogICAgIGF1dG8qIHNlbGVjdGlvbkRhdGFFbmQgPSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCk7
CiAgICAgaWYgKHNlbGVjdGlvbkRhdGFFbmQpCi0gICAgICAgIHNlbGVjdGlvbkVuZCA9IHJlbmRl
cmVyQWZ0ZXJQb3NpdGlvbigqc2VsZWN0aW9uRGF0YUVuZCwgbV9zZWxlY3Rpb25Db250ZXh0LmVu
ZFBvc2l0aW9uKCkudmFsdWUoKSk7CisgICAgICAgIHNlbGVjdGlvbkVuZCA9IHJlbmRlcmVyQWZ0
ZXJPZmZzZXQoKnNlbGVjdGlvbkRhdGFFbmQsIG1fc2VsZWN0aW9uQ29udGV4dC5lbmRPZmZzZXQo
KS52YWx1ZSgpKTsKICAgICBTZWxlY3Rpb25JdGVyYXRvciBzZWxlY3Rpb25JdGVyYXRvcihzZWxl
Y3Rpb25TdGFydCk7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBzZWxlY3Rpb25T
dGFydDsgY3VycmVudFJlbmRlcmVyICYmIGN1cnJlbnRSZW5kZXJlciAhPSBzZWxlY3Rpb25FbmQ7
IGN1cnJlbnRSZW5kZXJlciA9IHNlbGVjdGlvbkl0ZXJhdG9yLm5leHQoKSkgewogICAgICAgICBp
ZiAoY3VycmVudFJlbmRlcmVyID09IHNlbGVjdGlvblN0YXJ0IHx8IGN1cnJlbnRSZW5kZXJlciA9
PSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkpCkBAIC0zNDksOCArMzQ5LDggQEAgdm9pZCBTZWxl
Y3Rpb25SYW5nZURhdGE6OmFwcGx5KGNvbnN0IENvbnRleHQmIG5ld1NlbGVjdGlvbiwgUmVwYWlu
dE1vZGUgYmxvY2tSZXAKICAgICAgICAgYXV0byogbmV3SW5mbyA9IG5ld1NlbGVjdGVkUmVuZGVy
ZXJzLmdldChyZW5kZXJlcik7CiAgICAgICAgIGF1dG8qIG9sZEluZm8gPSBzZWxlY3RlZFJlbmRl
cmVySW5mby52YWx1ZS5nZXQoKTsKICAgICAgICAgaWYgKCFuZXdJbmZvIHx8IG9sZEluZm8tPnJl
Y3QoKSAhPSBuZXdJbmZvLT5yZWN0KCkgfHwgb2xkSW5mby0+c3RhdGUoKSAhPSBuZXdJbmZvLT5z
dGF0ZSgpCi0gICAgICAgICAgICB8fCAobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgPT0gcmVu
ZGVyZXIgJiYgb2xkU2VsZWN0aW9uRGF0YS5zdGFydFBvc2l0aW9uICE9IG1fc2VsZWN0aW9uQ29u
dGV4dC5zdGFydFBvc2l0aW9uKCkpCi0gICAgICAgICAgICB8fCAobV9zZWxlY3Rpb25Db250ZXh0
LmVuZCgpID09IHJlbmRlcmVyICYmIG9sZFNlbGVjdGlvbkRhdGEuZW5kUG9zaXRpb24gIT0gbV9z
ZWxlY3Rpb25Db250ZXh0LmVuZFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICB8fCAobV9zZWxl
Y3Rpb25Db250ZXh0LnN0YXJ0KCkgPT0gcmVuZGVyZXIgJiYgb2xkU2VsZWN0aW9uRGF0YS5zdGFy
dE9mZnNldCAhPSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnRPZmZzZXQoKSkKKyAgICAgICAgICAg
IHx8IChtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkgPT0gcmVuZGVyZXIgJiYgb2xkU2VsZWN0aW9u
RGF0YS5lbmRPZmZzZXQgIT0gbV9zZWxlY3Rpb25Db250ZXh0LmVuZE9mZnNldCgpKSkgewogICAg
ICAgICAgICAgb2xkSW5mby0+cmVwYWludCgpOwogICAgICAgICAgICAgaWYgKG5ld0luZm8pIHsK
ICAgICAgICAgICAgICAgICBuZXdJbmZvLT5yZXBhaW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmgKaW5kZXggNDRmOTFjY2JjNjNjMzg4OTJiMmNi
MjFkOWNkNzBiM2E1YjYxZDkyOC4uYWM2MTNkOTIyNDRhZjFhNGRhZjlhZjEwZTE2NGY0Mjg3NDc3
YTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdl
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEu
aApAQCAtNTAsMjYgKzUwLDI2IEBAIHB1YmxpYzoKICAgICAgICAgQ29udGV4dChSZW5kZXJPYmpl
Y3QqIHN0YXJ0LCBSZW5kZXJPYmplY3QqIGVuZCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2ln
bmVkIGVuZE9mZnNldCkKICAgICAgICAgICAgIDogbV9zdGFydChtYWtlV2Vha1B0cihzdGFydCkp
CiAgICAgICAgICAgICAsIG1fZW5kKG1ha2VXZWFrUHRyKGVuZCkpCi0gICAgICAgICAgICAsIG1f
c3RhcnRQb3NpdGlvbihzdGFydE9mZnNldCkKLSAgICAgICAgICAgICwgbV9lbmRQb3NpdGlvbihl
bmRPZmZzZXQpCisgICAgICAgICAgICAsIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpCisgICAg
ICAgICAgICAsIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCkKICAgICAgICAgewogICAgICAgICB9CiAK
ICAgICAgICAgUmVuZGVyT2JqZWN0KiBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQuZ2V0
KCk7IH0KICAgICAgICAgUmVuZGVyT2JqZWN0KiBlbmQoKSBjb25zdCB7IHJldHVybiBtX2VuZC5n
ZXQoKTsgfQotICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4gc3RhcnRQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhcnRQb3NpdGlvbjsgfQotICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4g
ZW5kUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2VuZFBvc2l0aW9uOyB9CisgICAgICAgIE9w
dGlvbmFsPHVuc2lnbmVkPiBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRPZmZz
ZXQ7IH0KKyAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGVuZE9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fZW5kT2Zmc2V0OyB9CiAKICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbnRl
eHQmIG90aGVyKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9zdGFydCA9
PSBvdGhlci5tX3N0YXJ0ICYmIG1fZW5kID09IG90aGVyLm1fZW5kICYmIG1fc3RhcnRQb3NpdGlv
biA9PSBvdGhlci5tX3N0YXJ0UG9zaXRpb24gJiYgbV9lbmRQb3NpdGlvbiA9PSBvdGhlci5tX2Vu
ZFBvc2l0aW9uOworICAgICAgICAgICAgcmV0dXJuIG1fc3RhcnQgPT0gb3RoZXIubV9zdGFydCAm
JiBtX2VuZCA9PSBvdGhlci5tX2VuZCAmJiBtX3N0YXJ0T2Zmc2V0ID09IG90aGVyLm1fc3RhcnRP
ZmZzZXQgJiYgbV9lbmRPZmZzZXQgPT0gb3RoZXIubV9lbmRPZmZzZXQ7CiAgICAgICAgIH0KIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIFdlYWtQdHI8UmVuZGVyT2JqZWN0PiBtX3N0YXJ0OwogICAg
ICAgICBXZWFrUHRyPFJlbmRlck9iamVjdD4gbV9lbmQ7Ci0gICAgICAgIE9wdGlvbmFsPHVuc2ln
bmVkPiBtX3N0YXJ0UG9zaXRpb247Ci0gICAgICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX2VuZFBv
c2l0aW9uOworICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9zdGFydE9mZnNldDsKKyAgICAg
ICAgT3B0aW9uYWw8dW5zaWduZWQ+IG1fZW5kT2Zmc2V0OwogICAgIH07CiAgICAgCiAgICAgdm9p
ZCBzZXRDb250ZXh0KGNvbnN0IENvbnRleHQmKTsKQEAgLTgxLDggKzgxLDggQEAgcHVibGljOgog
ICAgIFJlbmRlck9iamVjdCogc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkNvbnRl
eHQuc3RhcnQoKTsgfQogICAgIFJlbmRlck9iamVjdCogZW5kKCkgY29uc3QgeyByZXR1cm4gbV9z
ZWxlY3Rpb25Db250ZXh0LmVuZCgpOyB9CiAKLSAgICB1bnNpZ25lZCBzdGFydFBvc2l0aW9uKCkg
Y29uc3QgeyBBU1NFUlQobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0UG9zaXRpb24oKSk7IHJldHVy
biBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnRQb3NpdGlvbigpLnZhbHVlT3IoMCk7IH0KLSAgICB1
bnNpZ25lZCBlbmRQb3NpdGlvbigpIGNvbnN0IHsgQVNTRVJUKG1fc2VsZWN0aW9uQ29udGV4dC5l
bmRQb3NpdGlvbigpKTsgcmV0dXJuIG1fc2VsZWN0aW9uQ29udGV4dC5lbmRQb3NpdGlvbigpLnZh
bHVlT3IoMCk7IH0KKyAgICB1bnNpZ25lZCBzdGFydE9mZnNldCgpIGNvbnN0IHsgQVNTRVJUKG1f
c2VsZWN0aW9uQ29udGV4dC5zdGFydE9mZnNldCgpKTsgcmV0dXJuIG1fc2VsZWN0aW9uQ29udGV4
dC5zdGFydE9mZnNldCgpLnZhbHVlT3IoMCk7IH0KKyAgICB1bnNpZ25lZCBlbmRPZmZzZXQoKSBj
b25zdCB7IEFTU0VSVChtX3NlbGVjdGlvbkNvbnRleHQuZW5kT2Zmc2V0KCkpOyByZXR1cm4gbV9z
ZWxlY3Rpb25Db250ZXh0LmVuZE9mZnNldCgpLnZhbHVlT3IoMCk7IH0KIAogICAgIHZvaWQgY2xl
YXIoKTsKICAgICBJbnRSZWN0IGJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIGNvbGxlY3RCb3VuZHMo
Q2xpcFRvVmlzaWJsZUNvbnRlbnQ6Ok5vKTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>