<?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>314479</bug_id>
          
          <creation_ts>2026-05-09 05:59:28 -0700</creation_ts>
          <short_desc>[cleanup] Clean up aspect ratio naming: remove computeIntrinsicAspectRatio, intrinsicRatio, isRenderReplacedWithIntrinsicRatio and rename resolveAspectRatio</short_desc>
          <delta_ts>2026-05-10 15:52:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2209333</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 05:59:28 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209334</commentid>
    <comment_count>1</comment_count>
      <attachid>479542</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 06:01:13 -0700</bug_when>
    <thetext>Created attachment 479542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209415</commentid>
    <comment_count>2</comment_count>
      <attachid>479557</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 18:11:06 -0700</bug_when>
    <thetext>Created attachment 479557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209417</commentid>
    <comment_count>3</comment_count>
      <attachid>479558</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 18:12:24 -0700</bug_when>
    <thetext>Created attachment 479558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209422</commentid>
    <comment_count>4</comment_count>
      <attachid>479562</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 18:38:15 -0700</bug_when>
    <thetext>Created attachment 479562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209512</commentid>
    <comment_count>5</comment_count>
      <attachid>479579</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-10 14:12:22 -0700</bug_when>
    <thetext>Created attachment 479579
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209527</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-05-10 15:51:30 -0700</bug_when>
    <thetext>Committed 312977@main (98e7cf381a18): &lt;https://commits.webkit.org/312977@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 479579.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209528</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-05-10 15:52:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/176747401&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479542</attachid>
            <date>2026-05-09 06:01:13 -0700</date>
            <delta_ts>2026-05-09 18:11:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314479-20260509060112.patch</filename>
            <type>text/plain</type>
            <size>11840</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxOWUxZWU0MjkwZjVhZjFlOGZiNDZhZTkyZTQ1YmYwNDZhNzQyYmY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAwNTo1OTozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBDbGVhbiB1cCBhc3BlY3QgcmF0aW8gbmFtaW5nOiByZW1vdmUKIGNvbXB1dGVJbnRyaW5zaWNB
c3BlY3RSYXRpbywgaW50cmluc2ljUmF0aW8sCiBpc1JlbmRlclJlcGxhY2VkV2l0aEludHJpbnNp
Y1JhdGlvIGFuZCByZW5hbWUgcmVzb2x2ZUFzcGVjdFJhdGlvCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0NDc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
Ci0gY29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgd2FzIGp1c3QgcHJlZmVycmVkQXNwZWN0
UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpLgogIElubGluZWQgYXQgYWxsIGNhbGwgc2l0ZXMg
YW5kIHJlbW92ZWQuCi0gaW50cmluc2ljUmF0aW8oKSB3YXMganVzdCBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpLiBDYWxsZXJzIG5vdyB1c2UKICBwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGRpcmVjdGx5
LiBSZW1vdmVkLgotIHJlc29sdmVBc3BlY3RSYXRpbygpIHJlbmFtZWQgdG8gYXNwZWN0UmF0aW9W
YWx1ZSgpIC0tIGl0IGp1c3QgcmV0dXJucyB0aGUKICBhcHBsaWNhYmxlIHJhdGlvIGFzIGEgZG91
YmxlLCBubyByZXNvbHV0aW9uIGludm9sdmVkLgotIGlzUmVuZGVyUmVwbGFjZWRXaXRoSW50cmlu
c2ljUmF0aW8gY29udmVydGVkIHRvIGEgZmlsZS1sb2NhbCBzdGF0aWMgaGVscGVyCiAgKHJlcGxh
Y2VkUHJlZmVycmVkQXNwZWN0UmF0aW8pIGFuZCB0aGVuIGlubGluZWQgaW50byBpdHMgb25seSBB
U1NFUlQgY2FsbGVyLgotIFJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2Fs
V2lkdGhzIHJlZmFjdG9yZWQgdG8gdXNlIGVhcmx5IHJldHVybnMuCi0tLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICB8IDY0ICsrKysrKysrKystLS0tLS0tLS0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oICAgICAgICB8ICAxIC0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAgICAgfCAgMyArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCB8ICA1IC0tCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCAgIHwgIDQgKy0KIDUgZmlsZXMgY2hhbmdl
ZCwgMzUgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCBiZTUzZDE3NWNjY2MuLmFhODQxMjE4ZTliZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTcxMSw3ICs3MTEsNyBAQCB2b2lk
IFJlbmRlckJveDo6Y29uc3RyYWluTG9naWNhbE1pbk1heFNpemVzQnlBc3BlY3RSYXRpbyhMYXlv
dXRVbml0JiBjb21wdXRlZE1pbgogICAgIC8vIGEgc2l6ZSBvZiB0aGUgaW5pdGlhbCBjb250YWlu
aW5nIGJsb2NrIGFuZCB0aGUg4oCcc3RyZXRjaC1maXTigJ0gc2l6aW5nIG9mIG5vbi1yZXBsYWNl
ZCBibG9ja3MgaWYgdGhleSBoYXZlIGRlZmluaXRlIHZhbHVlcy4KICAgICAvLyBTZWUgaHR0cHM6
Ly93d3cudzMub3JnL1RSL2Nzcy1zaXppbmctMy8jZGVmaW5pdGUKICAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGVUb1VzZSA9IHN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0eWxlVG9Vc2UuYXNwZWN0
UmF0aW8oKS5oYXNSYXRpbygpIHx8IGlzUmVwbGFjZWRXaXRoUHJlZmVycmVkQXNwZWN0UmF0aW8o
KSk7CisgICAgQVNTRVJUKHN0eWxlVG9Vc2UuYXNwZWN0UmF0aW8oKS5oYXNSYXRpbygpIHx8IChp
czxSZW5kZXJSZXBsYWNlZD4oKnRoaXMpICYmIGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPigqdGhp
cykucHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpKSk7CiAgICAgYXV0
byBsb2dpY2FsU2l6ZSA9IGRpbWVuc2lvbiA9PSBDb25zdHJhaW5EaW1lbnNpb246OldpZHRoID8g
c3R5bGVUb1VzZS5sb2dpY2FsV2lkdGgoKSA6IHN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpOwog
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc2l6aW5nLTQvI2FzcGVjdC1yYXRpby1t
aW5pbXVtCiAgICAgaWYgKG1pbmltdW1TaXplVHlwZSA9PSBNaW5pbXVtU2l6ZUlzQXV0b21hdGlj
Q29udGVudEJhc2VkOjpZZXMpIHsKQEAgLTI5MzksMzIgKzI5MzksMzggQEAgTGF5b3V0VW5pdCBS
ZW5kZXJCb3g6OmZpbGxBdmFpbGFibGVNZWFzdXJlKExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNh
bFdpZHRoLCBMYXkKICAgICByZXR1cm4gYXZhaWxhYmxlTG9naWNhbFdpZHRoIC0gbWFyZ2luU3Rh
cnQgLSBtYXJnaW5FbmQ7CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5d29yZD4gdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhLZXl3b3JkLCBM
YXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcsIExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwg
TGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewotICAgIGlmIGNvbnN0ZXhwciAo
c3RkOjpzYW1lX2FzPEtleXdvcmQsIENTUzo6S2V5d29yZDo6TWluSW50cmluc2ljPikKKyAgICBp
ZiBjb25zdGV4cHIgKHN0ZDo6c2FtZV9hczxLZXl3b3JkLCBDU1M6OktleXdvcmQ6Ok1pbkludHJp
bnNpYz4pIHsKICAgICAgICAgY29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKG1p
bkxvZ2ljYWxXaWR0aCwgbWF4TG9naWNhbFdpZHRoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYg
KHNob3VsZENvbXB1dGVMb2dpY2FsV2lkdGhGcm9tQXNwZWN0UmF0aW8oKSkgewotICAgICAgICAg
ICAgbWluTG9naWNhbFdpZHRoID0gbWF4TG9naWNhbFdpZHRoID0gY29tcHV0ZUxvZ2ljYWxXaWR0
aEZyb21Bc3BlY3RSYXRpb0ludGVybmFsKCkgLSBib3JkZXJBbmRQYWRkaW5nOwotICAgICAgICAg
ICAgaWYgKGZpcnN0Q2hpbGQoKSAmJiBzdHlsZSgpLmxvZ2ljYWxNaW5XaWR0aCgpLmlzQXV0bygp
KSB7Ci0gICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBtaW5DaGlsZHJlbkxvZ2ljYWxXaWR0aDsK
LSAgICAgICAgICAgICAgICBMYXlvdXRVbml0IG1heENoaWxkcmVuTG9naWNhbFdpZHRoOwotICAg
ICAgICAgICAgICAgIGNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhtaW5DaGls
ZHJlbkxvZ2ljYWxXaWR0aCwgbWF4Q2hpbGRyZW5Mb2dpY2FsV2lkdGgpOwotICAgICAgICAgICAg
ICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1pbkxvZ2ljYWxXaWR0aCwgbWluQ2hpbGRy
ZW5Mb2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IHN0ZDo6
bWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4Q2hpbGRyZW5Mb2dpY2FsV2lkdGgpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgaWYgKGlzUmVwbGFjZWRXaXRoUHJlZmVycmVkQXNwZWN0UmF0
aW8oKSAmJiBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1NwZWNpZmllZCgpKSB7Ci0gICAgICAg
ICAgICAvLyBGb3IgcmVwbGFjZWQgZWxlbWVudHMgd2l0aCBhbiBpbnRyaW5zaWMgYXNwZWN0IHJh
dGlvIChlLmcuIDxpbWc+KSBhbmQgYQotICAgICAgICAgICAgLy8gc3BlY2lmaWVkIGJsb2NrIHNp
emUsIGNvbXB1dGUgdGhlIHRyYW5zZmVycmVkIG1pbi9tYXgtY29udGVudCBpbmxpbmUgc2l6ZQot
ICAgICAgICAgICAgLy8gdGhyb3VnaCB0aGUgaW50cmluc2ljIHJhdGlvIHJhdGhlciB0aGFuIHVz
aW5nIHRoZSByYXcgbmF0dXJhbCB3aWR0aC4KLSAgICAgICAgICAgIGF1dG8gaW50cmluc2ljUmF0
aW8gPSBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oKnRoaXMpLnByZWZlcnJlZEFzcGVjdFJhdGlv
KCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChzaG91bGRDb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKCkpIHsKKyAgICAgICAg
bWluTG9naWNhbFdpZHRoID0gY29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpb0ludGVy
bmFsKCkgLSBib3JkZXJBbmRQYWRkaW5nOworICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBtaW5M
b2dpY2FsV2lkdGg7CisgICAgICAgIGlmIChmaXJzdENoaWxkKCkgJiYgc3R5bGUoKS5sb2dpY2Fs
TWluV2lkdGgoKS5pc0F1dG8oKSkgeworICAgICAgICAgICAgYXV0byBtaW5DaGlsZHJlbkxvZ2lj
YWxXaWR0aCA9IExheW91dFVuaXQgeyB9OworICAgICAgICAgICAgYXV0byBtYXhDaGlsZHJlbkxv
Z2ljYWxXaWR0aCA9IExheW91dFVuaXQgeyB9OworICAgICAgICAgICAgY29tcHV0ZUludHJpbnNp
Y0tleXdvcmRMb2dpY2FsV2lkdGhzKG1pbkNoaWxkcmVuTG9naWNhbFdpZHRoLCBtYXhDaGlsZHJl
bkxvZ2ljYWxXaWR0aCk7CisgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBzdGQ6Om1heCht
aW5Mb2dpY2FsV2lkdGgsIG1pbkNoaWxkcmVuTG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIG1h
eExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4Q2hpbGRyZW5Mb2dp
Y2FsV2lkdGgpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
Q2hlY2tlZFB0ciByZW5kZXJSZXBsYWNlZCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJSZXBsYWNl
ZD4oKnRoaXMpKSB7CisgICAgICAgIGF1dG8gcHJlZmVycmVkUmF0aW8gPSByZW5kZXJSZXBsYWNl
ZC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpOworICAgICAgICBp
ZiAocHJlZmVycmVkUmF0aW8gJiYgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNTcGVjaWZpZWQo
KSkgewogICAgICAgICAgICAgYXV0byBjb21wdXRlZFZhbHVlcyA9IGNvbXB1dGVMb2dpY2FsSGVp
Z2h0KGxvZ2ljYWxIZWlnaHQoKSwgbG9naWNhbFRvcCgpKTsKICAgICAgICAgICAgIGF1dG8gY29u
dGVudEJsb2NrU2l6ZSA9IHN0ZDo6bWF4KDBfbHUsIGNvbXB1dGVkVmFsdWVzLmV4dGVudCAtIGJv
cmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOwotICAgICAgICAgICAgbWluTG9naWNhbFdp
ZHRoID0gbWF4TG9naWNhbFdpZHRoID0gTGF5b3V0VW5pdChjb250ZW50QmxvY2tTaXplICogaW50
cmluc2ljUmF0aW8pOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNvbXB1dGVJbnRyaW5z
aWNLZXl3b3JkTG9naWNhbFdpZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7
CisgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBMYXlvdXRVbml0IHsgY29udGVudEJsb2Nr
U2l6ZSAqIHByZWZlcnJlZFJhdGlvIH07CisgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBt
aW5Mb2dpY2FsV2lkdGg7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CisK
KyAgICBjb21wdXRlSW50cmluc2ljS2V5d29yZExvZ2ljYWxXaWR0aHMobWluTG9naWNhbFdpZHRo
LCBtYXhMb2dpY2FsV2lkdGgpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgTk9ERUxFVEUgaXNP
cnRob2dvbmFsKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlckVsZW1lbnQm
IGFuY2VzdG9yKQpAQCAtMzY3NywxNSArMzY4MywxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBTaXpl
VHlwZT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmNvbXB1dGVTaXppbmdL
ZQogICAgIGF1dG8gbWluTWF4Q29udGVudCA9IFsmXSAtPiBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IHsKICAgICAgICAgLy8gRklYTUU6IFRoZSBDU1Mgc2l6aW5nIHNwZWMgaXMgY29uc2lkZXJp
bmcgY2hhbmdpbmcgd2hhdCBtaW4tY29udGVudC9tYXgtY29udGVudCBzaG91bGQgcmVzb2x2ZSB0
by4KICAgICAgICAgLy8gSWYgdGhhdCBoYXBwZW5zLCB0aGlzIGNvZGUgd2lsbCBoYXZlIHRvIGNo
YW5nZS4KLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlckltYWdlID0gZHluYW1pY0Rvd25jYXN0PFJl
bmRlckltYWdlPih0aGlzKSkgeworICAgICAgICBpZiAoQ2hlY2tlZFB0ciByZW5kZXJJbWFnZSA9
IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4odGhpcykpIHsKICAgICAgICAgICAgIGF1dG8g
Y29tcHV0ZWRGaXhlZExvZ2ljYWxXaWR0aCA9IHN0eWxlKCkubG9naWNhbFdpZHRoKCkudHJ5Rml4
ZWQoKTsKICAgICAgICAgICAgIGlmIChjb21wdXRlZEZpeGVkTG9naWNhbFdpZHRoICYmICFzdHls
ZSgpLmFzcGVjdFJhdGlvKCkuaGFzUmF0aW8oKSkgewotICAgICAgICAgICAgICAgIGF1dG8gaW50
cmluc2ljUmF0aW8gPSByZW5kZXJJbWFnZS0+aW50cmluc2ljUmF0aW8oKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHByZWZlcnJlZFJhdGlvID0gcmVuZGVySW1hZ2UtPnByZWZlcnJlZEFzcGVjdFJh
dGlvKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVIZWlnaHRGb3JSYXRpbygKICAg
ICAgICAgICAgICAgICAgICAgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpLAogICAgICAg
ICAgICAgICAgICAgICBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpLAogICAgICAgICAg
ICAgICAgICAgICBMYXlvdXRVbml0IHsgY29tcHV0ZWRGaXhlZExvZ2ljYWxXaWR0aC0+cmVzb2x2
ZVpvb20oc3R5bGUoKS51c2VkWm9vbUZvckxlbmd0aCgpKSB9LAotICAgICAgICAgICAgICAgICAg
ICBpbnRyaW5zaWNSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlvKCksCisgICAgICAg
ICAgICAgICAgICAgIHByZWZlcnJlZFJhdGlvLnRyYW5zcG9zZWRTaXplKCkuYXNwZWN0UmF0aW8o
KSwKICAgICAgICAgICAgICAgICAgICAgQm94U2l6aW5nOjpDb250ZW50Qm94CiAgICAgICAgICAg
ICAgICAgKTsKICAgICAgICAgICAgIH0KQEAgLTM2OTUsOCArMzcwMSw4IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFNpemVUeXBlPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6Y29t
cHV0ZVNpemluZ0tlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGFzcGVjdCByYXRpby4KICAgICAg
ICAgICAgICAgICBpZiAoIWlzRmxleEl0ZW0oKSB8fCBkb3duY2FzdDxSZW5kZXJGbGV4aWJsZUJv
eD4ocGFyZW50KCkpLT5pc0hvcml6b250YWxGbG93KCkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7IH07Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ1dpZHRoID0gb3Zl
cnJpZGluZ0JvcmRlckJveExvZ2ljYWxXaWR0aCgpOyBvdmVycmlkaW5nV2lkdGggJiYgIXJlbmRl
ckltYWdlLT5pbnRyaW5zaWNSYXRpbygpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc29sdmVIZWlnaHRGb3JSYXRpbyhib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRo
KCksIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksIGNvbnRlbnRCb3hMb2dpY2FsV2lk
dGgoKm92ZXJyaWRpbmdXaWR0aCksIHJlbmRlckltYWdlLT5pbnRyaW5zaWNSYXRpbygpLnRyYW5z
cG9zZWRTaXplKCkuYXNwZWN0UmF0aW8oKSwgQm94U2l6aW5nOjpDb250ZW50Qm94KTsKKyAgICAg
ICAgICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nV2lkdGggPSBvdmVycmlkaW5nQm9yZGVyQm94
TG9naWNhbFdpZHRoKCk7IG92ZXJyaWRpbmdXaWR0aCAmJiAhcmVuZGVySW1hZ2UtPnByZWZlcnJl
ZEFzcGVjdFJhdGlvKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVz
b2x2ZUhlaWdodEZvclJhdGlvKGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSwgYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSwgY29udGVudEJveExvZ2ljYWxXaWR0aCgqb3ZlcnJp
ZGluZ1dpZHRoKSwgcmVuZGVySW1hZ2UtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkudHJhbnNwb3Nl
ZFNpemUoKS5hc3BlY3RSYXRpbygpLCBCb3hTaXppbmc6OkNvbnRlbnRCb3gpOwogICAgICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYgKGF1dG8g
aGVpZ2h0ID0gaGVpZ2h0RnJvbUNyb3NzQXhpc092ZXJyaWRlQW5kQXNwZWN0UmF0aW8oKSkKQEAg
LTUyNzQsMTIgKzUyODAsNiBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxX
aWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0cmFpbkxvZ2ljYWxX
aWR0aEJ5TWluTWF4KGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklubGluZURpcmVjdGlv
biwgKmNvbnRhaW5pbmdCbG9jaygpLCBBbGxvd0ludHJpbnNpYzo6Tm8pOwogfQogCi1ib29sIFJl
bmRlckJveDo6aXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0Ci17Ci0g
ICAgaWYgKGF1dG8qIHJlcGxhY2VkID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclJlcGxhY2VkPih0
aGlzKSkKLSAgICAgICAgcmV0dXJuIHJlcGxhY2VkLT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFz
cGVjdFJhdGlvRG91YmxlKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQogCiBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gUmVuZGVyQm94Ojphc3BlY3RSYXRpb1ZhbHVlKCkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA1NDJjOWFiZGJjMjAuLmJlOGY4MDY3OTgzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjg3LDcgKzY4Nyw2IEBAIHBy
b3RlY3RlZDoKIAogICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhc3BlY3RSYXRpb1ZhbHVlKCkg
Y29uc3Q7CiAgICAgYm9vbCBOT0RFTEVURSBzaG91bGRJZ25vcmVBc3BlY3RSYXRpbygpIGNvbnN0
OwotICAgIGJvb2wgaXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0Owog
ICAgIGJvb2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0
OwogICAgIGJvb2wgaXNSZXNvbHZlYWJsZVN0cmV0Y2hTaXplKGNvbnN0IGF1dG8mIHNpemUpIGNv
bnN0IHsgcmV0dXJuIHNpemUuaXNTdHJldGNoKCkgJiYgY29udGFpbmluZ0Jsb2NrSGFzRGVmaW5p
dGVCbG9ja1NpemUoKTsgfQogICAgIGJvb2wgaXNVbnJlc29sdmVhYmxlU3RyZXRjaFNpemUoY29u
c3QgYXV0byYgc2l6ZSkgY29uc3QgeyByZXR1cm4gc2l6ZS5pc1N0cmV0Y2goKSAmJiAhY29udGFp
bmluZ0Jsb2NrSGFzRGVmaW5pdGVCbG9ja1NpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuaAppbmRleCA1ZWFmOTJhNjE3NmUuLjUyY2NlYTczZDdiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgog
ICAgIGJvb2wgaXNNdWx0aVJlcHJlc2VudGF0aW9uSEVJQygpIGNvbnN0OwogI2VuZGlmCiAKKyAg
ICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5hbDsKKwogcHJvdGVj
dGVkOgogICAgIFJlbmRlckltYWdlKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRp
b25TZXQ8UmVwbGFjZWRGbGFnPiwgU3R5bGU6OkltYWdlKiA9IG51bGxwdHIsIGNvbnN0IGZsb2F0
IGltYWdlRGV2aWNlUGl4ZWxSYXRpbyA9IDEuMGYpOwogICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CkBAIC05MSw3ICs5Myw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIHNob3Vs
ZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdCBmaW5hbDsKICAgICBSZW5kZXJSZXBs
YWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRTaXplIGNvbXB1
dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRTaXplIHByZWZlcnJlZEFz
cGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JlZ3JvdW5kSXNLbm93blRvQmVP
cGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1bnNpZ25lZCBtYXhEZXB0
aFRvVGVzdCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHls
ZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDY1MTA2YTlm
MDE4Ni4uZDZlMTQ5ZDkxYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKQEAgLTEwMTIsMTEgKzEwMTIsNiBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjps
YXlvdXRTaGFkb3dDb250ZW50KGNvbnN0IExheW91dFNpemUmIG9sZFNpemUpCiAgICAgY2xlYXJD
aGlsZE5lZWRzTGF5b3V0KCk7CiB9CiAKLUZsb2F0U2l6ZSBSZW5kZXJSZXBsYWNlZDo6aW50cmlu
c2ljUmF0aW8oKSBjb25zdAotewotICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwot
fQotCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZsb3dQb3NpdGlv
bmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZWRWYWx1
ZXMpIGNvbnN0CiB7CiAgICAgUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRzIGlubGluZUNvbnN0
cmFpbnRzKCp0aGlzLCBMb2dpY2FsQm94QXhpczo6SW5saW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYjQ3NGMzZDZjZDBhLi43MDExOWMzMTRhM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC00MiwxMiAr
NDIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgc2V0TmVlZHNMYXlvdXRJZk5lZWRlZEFmdGVySW50
cmluc2ljU2l6ZUNoYW5nZSgpOwogCiAgICAgTGF5b3V0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29u
c3QgZmluYWw7Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvKCkgY29uc3Q7Ci0gICAgCisK
ICAgICBib29sIGlzQ29udGVudExpa2VseVZpc2libGVJblZpZXdwb3J0KCk7CiAgICAgYm9vbCBz
aG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLQogICAg
IHZpcnR1YWwgYm9vbCBwYWludHNDb250ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoY29uc3QgU3R5
bGU6OlByZWZlcnJlZFNpemUmIGxvZ2ljYWxIZWlnaHQpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479557</attachid>
            <date>2026-05-09 18:11:06 -0700</date>
            <delta_ts>2026-05-10 14:12:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314479-20260509181105.patch</filename>
            <type>text/plain</type>
            <size>11225</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjYTVkZGM4ZDU3ZGNmYmIxY2MzNjhlNTJlMzk4MDQwODg2MDNlODhjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAwNTo1OTozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBDbGVhbiB1cCBhc3BlY3QgcmF0aW8gbmFtaW5nOiByZW1vdmUKIGNvbXB1dGVJbnRyaW5zaWNB
c3BlY3RSYXRpbywgaW50cmluc2ljUmF0aW8sCiBpc1JlbmRlclJlcGxhY2VkV2l0aEludHJpbnNp
Y1JhdGlvIGFuZCByZW5hbWUgcmVzb2x2ZUFzcGVjdFJhdGlvCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0NDc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
Ci0gY29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgd2FzIGp1c3QgcHJlZmVycmVkQXNwZWN0
UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpLgotIGludHJpbnNpY1JhdGlvKCkgd2FzIGp1c3Qg
cHJlZmVycmVkQXNwZWN0UmF0aW8oKS4gQ2FsbGVycyBub3cgdXNlIHByZWZlcnJlZEFzcGVjdFJh
dGlvKCkgZGlyZWN0bHkuIFJlbW92ZWQuCi0gcmVzb2x2ZUFzcGVjdFJhdGlvKCkgcmVuYW1lZCB0
byBhc3BlY3RSYXRpb1ZhbHVlKCkgLSBpdCBqdXN0IHJldHVybnMgdGhlIGFwcGxpY2FibGUgcmF0
aW8gYXMgYSBkb3VibGUsIG5vIHJlc29sdXRpb24gaW52b2x2ZWQuCi0gaXNSZW5kZXJSZXBsYWNl
ZFdpdGhJbnRyaW5zaWNSYXRpbyBjb252ZXJ0ZWQgdG8gYSBmaWxlLWxvY2FsIHN0YXRpYyBoZWxw
ZXIgKHJlcGxhY2VkUHJlZmVycmVkQXNwZWN0UmF0aW8pIGFuZCB0aGVuIGlubGluZWQgaW50byBp
dHMgb25seSBBU1NFUlQgY2FsbGVyLgotIFJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdv
cmRMb2dpY2FsV2lkdGhzIHJlZmFjdG9yZWQgdG8gdXNlIGVhcmx5IHJldHVybnMuCgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94Ojpj
b25zdHJhaW5Mb2dpY2FsTWluTWF4U2l6ZXNCeUFzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzIGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVNpemluZ0tleXdvcmRMb2dpY2FsQ29udGVudEhl
aWdodFVzaW5nR2VuZXJpYyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmlzUmVwbGFjZWRX
aXRoUHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgoo
V2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvIGNvbnN0KTogRGVsZXRlZC4K
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoKLS0tCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgIHwgMzIgKysrKysrKysrLS0tLS0t
LS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgIHwgIDEg
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICB8ICAzICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIHwgIDUgLS0tLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggICB8ICA0ICstLQogNSBmaWxl
cyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGJlNTNkMTc1Y2NjYy4uNDAyMTE1MmM5Y2Vj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNzExLDcgKzcxMSw3
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsTWluTWF4U2l6ZXNCeUFzcGVjdFJh
dGlvKExheW91dFVuaXQmIGNvbXB1dGVkTWluCiAgICAgLy8gYSBzaXplIG9mIHRoZSBpbml0aWFs
IGNvbnRhaW5pbmcgYmxvY2sgYW5kIHRoZSDigJxzdHJldGNoLWZpdOKAnSBzaXppbmcgb2Ygbm9u
LXJlcGxhY2VkIGJsb2NrcyBpZiB0aGV5IGhhdmUgZGVmaW5pdGUgdmFsdWVzLgogICAgIC8vIFNl
ZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNpemluZy0zLyNkZWZpbml0ZQogICAgIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZVRvVXNlID0gc3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5bGVUb1Vz
ZS5hc3BlY3RSYXRpbygpLmhhc1JhdGlvKCkgfHwgaXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpKTsKKyAgICBBU1NFUlQoc3R5bGVUb1VzZS5hc3BlY3RSYXRpbygpLmhhc1JhdGlv
KCkgfHwgKGlzPFJlbmRlclJlcGxhY2VkPigqdGhpcykgJiYgZG93bmNhc3Q8UmVuZGVyUmVwbGFj
ZWQ+KCp0aGlzKS5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCkpKTsK
ICAgICBhdXRvIGxvZ2ljYWxTaXplID0gZGltZW5zaW9uID09IENvbnN0cmFpbkRpbWVuc2lvbjo6
V2lkdGggPyBzdHlsZVRvVXNlLmxvZ2ljYWxXaWR0aCgpIDogc3R5bGVUb1VzZS5sb2dpY2FsSGVp
Z2h0KCk7CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zaXppbmctNC8jYXNwZWN0
LXJhdGlvLW1pbmltdW0KICAgICBpZiAobWluaW11bVNpemVUeXBlID09IE1pbmltdW1TaXplSXNB
dXRvbWF0aWNDb250ZW50QmFzZWQ6OlllcykgewpAQCAtMjkzOSw3ICsyOTM5LDYgQEAgTGF5b3V0
VW5pdCBSZW5kZXJCb3g6OmZpbGxBdmFpbGFibGVNZWFzdXJlKExheW91dFVuaXQgYXZhaWxhYmxl
TG9naWNhbFdpZHRoLCBMYXkKICAgICByZXR1cm4gYXZhaWxhYmxlTG9naWNhbFdpZHRoIC0gbWFy
Z2luU3RhcnQgLSBtYXJnaW5FbmQ7CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5d29yZD4g
dm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhLZXl3
b3JkLCBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcsIExheW91dFVuaXQmIG1pbkxvZ2ljYWxX
aWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewogICAgIGlmIGNvbnN0
ZXhwciAoc3RkOjpzYW1lX2FzPEtleXdvcmQsIENTUzo6S2V5d29yZDo6TWluSW50cmluc2ljPikK
QEAgLTI5NTQsMTQgKzI5NTMsMTcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5d29yZD4gdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocygKICAgICAgICAg
ICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtaW5Mb2dpY2FsV2lkdGgsIG1pbkNo
aWxkcmVuTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBz
dGQ6Om1heChtYXhMb2dpY2FsV2lkdGgsIG1heENoaWxkcmVuTG9naWNhbFdpZHRoKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChpc1JlcGxhY2VkV2l0aFByZWZlcnJlZEFzcGVj
dFJhdGlvKCkgJiYgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNTcGVjaWZpZWQoKSkgeworICAg
ICAgICB9IGVsc2UgaWYgKENoZWNrZWRQdHIgcmVuZGVyUmVwbGFjZWQgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVyUmVwbGFjZWQ+KCp0aGlzKSkgewogICAgICAgICAgICAgLy8gRm9yIHJlcGxhY2Vk
IGVsZW1lbnRzIHdpdGggYW4gaW50cmluc2ljIGFzcGVjdCByYXRpbyAoZS5nLiA8aW1nPikgYW5k
IGEKICAgICAgICAgICAgIC8vIHNwZWNpZmllZCBibG9jayBzaXplLCBjb21wdXRlIHRoZSB0cmFu
c2ZlcnJlZCBtaW4vbWF4LWNvbnRlbnQgaW5saW5lIHNpemUKICAgICAgICAgICAgIC8vIHRocm91
Z2ggdGhlIGludHJpbnNpYyByYXRpbyByYXRoZXIgdGhhbiB1c2luZyB0aGUgcmF3IG5hdHVyYWwg
d2lkdGguCi0gICAgICAgICAgICBhdXRvIGludHJpbnNpY1JhdGlvID0gZG93bmNhc3Q8UmVuZGVy
UmVwbGFjZWQ+KCp0aGlzKS5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91Ymxl
KCk7Ci0gICAgICAgICAgICBhdXRvIGNvbXB1dGVkVmFsdWVzID0gY29tcHV0ZUxvZ2ljYWxIZWln
aHQobG9naWNhbEhlaWdodCgpLCBsb2dpY2FsVG9wKCkpOwotICAgICAgICAgICAgYXV0byBjb250
ZW50QmxvY2tTaXplID0gc3RkOjptYXgoMF9sdSwgY29tcHV0ZWRWYWx1ZXMuZXh0ZW50IC0gYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7Ci0gICAgICAgICAgICBtaW5Mb2dpY2FsV2lk
dGggPSBtYXhMb2dpY2FsV2lkdGggPSBMYXlvdXRVbml0KGNvbnRlbnRCbG9ja1NpemUgKiBpbnRy
aW5zaWNSYXRpbyk7CisgICAgICAgICAgICBhdXRvIHByZWZlcnJlZFJhdGlvID0gcmVuZGVyUmVw
bGFjZWQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKKyAgICAg
ICAgICAgIGlmIChwcmVmZXJyZWRSYXRpbyAmJiBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1Nw
ZWNpZmllZCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBjb21wdXRlZFZhbHVlcyA9IGNvbXB1
dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSwgbG9naWNhbFRvcCgpKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIGNvbnRlbnRCbG9ja1NpemUgPSBzdGQ6Om1heCgwX2x1LCBjb21wdXRlZFZh
bHVlcy5leHRlbnQgLSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAg
ICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBtYXhMb2dpY2FsV2lkdGggPSBMYXlvdXRVbml0KGNv
bnRlbnRCbG9ja1NpemUgKiBwcmVmZXJyZWRSYXRpbyk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICBjb21wdXRlSW50cmluc2ljS2V5d29yZExvZ2ljYWxXaWR0aHMobWluTG9n
aWNhbFdpZHRoLCBtYXhMb2dpY2FsV2lkdGgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IGNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1h
eExvZ2ljYWxXaWR0aCk7CiAgICAgfQpAQCAtMzY3NywxNSArMzY3OSwxNSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBTaXplVHlwZT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmNv
bXB1dGVTaXppbmdLZQogICAgIGF1dG8gbWluTWF4Q29udGVudCA9IFsmXSAtPiBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IHsKICAgICAgICAgLy8gRklYTUU6IFRoZSBDU1Mgc2l6aW5nIHNwZWMg
aXMgY29uc2lkZXJpbmcgY2hhbmdpbmcgd2hhdCBtaW4tY29udGVudC9tYXgtY29udGVudCBzaG91
bGQgcmVzb2x2ZSB0by4KICAgICAgICAgLy8gSWYgdGhhdCBoYXBwZW5zLCB0aGlzIGNvZGUgd2ls
bCBoYXZlIHRvIGNoYW5nZS4KLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlckltYWdlID0gZHluYW1p
Y0Rvd25jYXN0PFJlbmRlckltYWdlPih0aGlzKSkgeworICAgICAgICBpZiAoQ2hlY2tlZFB0ciBy
ZW5kZXJJbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4odGhpcykpIHsKICAgICAg
ICAgICAgIGF1dG8gY29tcHV0ZWRGaXhlZExvZ2ljYWxXaWR0aCA9IHN0eWxlKCkubG9naWNhbFdp
ZHRoKCkudHJ5Rml4ZWQoKTsKICAgICAgICAgICAgIGlmIChjb21wdXRlZEZpeGVkTG9naWNhbFdp
ZHRoICYmICFzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaGFzUmF0aW8oKSkgewotICAgICAgICAgICAg
ICAgIGF1dG8gaW50cmluc2ljUmF0aW8gPSByZW5kZXJJbWFnZS0+aW50cmluc2ljUmF0aW8oKTsK
KyAgICAgICAgICAgICAgICBhdXRvIHByZWZlcnJlZFJhdGlvID0gcmVuZGVySW1hZ2UtPnByZWZl
cnJlZEFzcGVjdFJhdGlvKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVIZWlnaHRG
b3JSYXRpbygKICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0
aCgpLAogICAgICAgICAgICAgICAgICAgICBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgp
LAogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHsgY29tcHV0ZWRGaXhlZExvZ2ljYWxX
aWR0aC0+cmVzb2x2ZVpvb20oc3R5bGUoKS51c2VkWm9vbUZvckxlbmd0aCgpKSB9LAotICAgICAg
ICAgICAgICAgICAgICBpbnRyaW5zaWNSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlv
KCksCisgICAgICAgICAgICAgICAgICAgIHByZWZlcnJlZFJhdGlvLnRyYW5zcG9zZWRTaXplKCku
YXNwZWN0UmF0aW8oKSwKICAgICAgICAgICAgICAgICAgICAgQm94U2l6aW5nOjpDb250ZW50Qm94
CiAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgIH0KQEAgLTM2OTUsOCArMzY5Nyw4IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFNpemVUeXBlPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJl
bmRlckJveDo6Y29tcHV0ZVNpemluZ0tlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGFzcGVjdCBy
YXRpby4KICAgICAgICAgICAgICAgICBpZiAoIWlzRmxleEl0ZW0oKSB8fCBkb3duY2FzdDxSZW5k
ZXJGbGV4aWJsZUJveD4ocGFyZW50KCkpLT5pc0hvcml6b250YWxGbG93KCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGlu
Z1dpZHRoID0gb3ZlcnJpZGluZ0JvcmRlckJveExvZ2ljYWxXaWR0aCgpOyBvdmVycmlkaW5nV2lk
dGggJiYgIXJlbmRlckltYWdlLT5pbnRyaW5zaWNSYXRpbygpLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVIZWlnaHRGb3JSYXRpbyhib3JkZXJBbmRQYWRkaW5n
TG9naWNhbFdpZHRoKCksIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksIGNvbnRlbnRC
b3hMb2dpY2FsV2lkdGgoKm92ZXJyaWRpbmdXaWR0aCksIHJlbmRlckltYWdlLT5pbnRyaW5zaWNS
YXRpbygpLnRyYW5zcG9zZWRTaXplKCkuYXNwZWN0UmF0aW8oKSwgQm94U2l6aW5nOjpDb250ZW50
Qm94KTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nV2lkdGggPSBvdmVycmlk
aW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCk7IG92ZXJyaWRpbmdXaWR0aCAmJiAhcmVuZGVySW1h
Z2UtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzb2x2ZUhlaWdodEZvclJhdGlvKGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lk
dGgoKSwgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSwgY29udGVudEJveExvZ2ljYWxX
aWR0aCgqb3ZlcnJpZGluZ1dpZHRoKSwgcmVuZGVySW1hZ2UtPnByZWZlcnJlZEFzcGVjdFJhdGlv
KCkudHJhbnNwb3NlZFNpemUoKS5hc3BlY3RSYXRpbygpLCBCb3hTaXppbmc6OkNvbnRlbnRCb3gp
OwogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9OwogICAgICAgICAg
ICAgaWYgKGF1dG8gaGVpZ2h0ID0gaGVpZ2h0RnJvbUNyb3NzQXhpc092ZXJyaWRlQW5kQXNwZWN0
UmF0aW8oKSkKQEAgLTUyNzQsMTIgKzUyNzYsNiBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29t
cHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0
cmFpbkxvZ2ljYWxXaWR0aEJ5TWluTWF4KGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklu
bGluZURpcmVjdGlvbiwgKmNvbnRhaW5pbmdCbG9jaygpLCBBbGxvd0ludHJpbnNpYzo6Tm8pOwog
fQogCi1ib29sIFJlbmRlckJveDo6aXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3BlY3RSYXRpbygp
IGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8qIHJlcGxhY2VkID0gZHluYW1pY0Rvd25jYXN0PFJlbmRl
clJlcGxhY2VkPih0aGlzKSkKLSAgICAgICAgcmV0dXJuIHJlcGxhY2VkLT5wcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQogCiBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gUmVuZGVyQm94Ojphc3BlY3RSYXRpb1ZhbHVlKCkgY29uc3QK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA1NDJjOWFiZGJjMjAuLmJl
OGY4MDY3OTgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjg3LDcg
KzY4Nyw2IEBAIHByb3RlY3RlZDoKIAogICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhc3BlY3RS
YXRpb1ZhbHVlKCkgY29uc3Q7CiAgICAgYm9vbCBOT0RFTEVURSBzaG91bGRJZ25vcmVBc3BlY3RS
YXRpbygpIGNvbnN0OwotICAgIGJvb2wgaXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3BlY3RSYXRp
bygpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RS
YXRpbygpIGNvbnN0OwogICAgIGJvb2wgaXNSZXNvbHZlYWJsZVN0cmV0Y2hTaXplKGNvbnN0IGF1
dG8mIHNpemUpIGNvbnN0IHsgcmV0dXJuIHNpemUuaXNTdHJldGNoKCkgJiYgY29udGFpbmluZ0Js
b2NrSGFzRGVmaW5pdGVCbG9ja1NpemUoKTsgfQogICAgIGJvb2wgaXNVbnJlc29sdmVhYmxlU3Ry
ZXRjaFNpemUoY29uc3QgYXV0byYgc2l6ZSkgY29uc3QgeyByZXR1cm4gc2l6ZS5pc1N0cmV0Y2go
KSAmJiAhY29udGFpbmluZ0Jsb2NrSGFzRGVmaW5pdGVCbG9ja1NpemUoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCA1ZWFmOTJhNjE3NmUuLjUyY2NlYTczZDdi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTg0LDYgKzg0LDgg
QEAgcHVibGljOgogICAgIGJvb2wgaXNNdWx0aVJlcHJlc2VudGF0aW9uSEVJQygpIGNvbnN0Owog
I2VuZGlmCiAKKyAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5h
bDsKKwogcHJvdGVjdGVkOgogICAgIFJlbmRlckltYWdlKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJT
dHlsZSYmLCBPcHRpb25TZXQ8UmVwbGFjZWRGbGFnPiwgU3R5bGU6OkltYWdlKiA9IG51bGxwdHIs
IGNvbnN0IGZsb2F0IGltYWdlRGV2aWNlUGl4ZWxSYXRpbyA9IDEuMGYpOwogICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CkBAIC05MSw3ICs5Myw2IEBAIHByb3RlY3RlZDoKICAg
ICBib29sIHNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdCBmaW5hbDsKICAg
ICBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAgRmxv
YXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRTaXpl
IHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JlZ3JvdW5k
SXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1bnNp
Z25lZCBtYXhEZXB0aFRvVGVzdCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0eWxlV2ls
bENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmlu
ZGV4IDY1MTA2YTlmMDE4Ni4uZDZlMTQ5ZDkxYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTEwMTIsMTEgKzEwMTIsNiBAQCB2b2lkIFJlbmRl
clJlcGxhY2VkOjpsYXlvdXRTaGFkb3dDb250ZW50KGNvbnN0IExheW91dFNpemUmIG9sZFNpemUp
CiAgICAgY2xlYXJDaGlsZE5lZWRzTGF5b3V0KCk7CiB9CiAKLUZsb2F0U2l6ZSBSZW5kZXJSZXBs
YWNlZDo6aW50cmluc2ljUmF0aW8oKSBjb25zdAotewotICAgIHJldHVybiBwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpOwotfQotCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRP
ZkZsb3dQb3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYg
Y29tcHV0ZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRz
IGlubGluZUNvbnN0cmFpbnRzKCp0aGlzLCBMb2dpY2FsQm94QXhpczo6SW5saW5lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYjQ3NGMzZDZjZDBhLi43
MDExOWMzMTRhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
CkBAIC00MiwxMiArNDIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgc2V0TmVlZHNMYXlvdXRJZk5l
ZWRlZEFmdGVySW50cmluc2ljU2l6ZUNoYW5nZSgpOwogCiAgICAgTGF5b3V0U2l6ZSBpbnRyaW5z
aWNTaXplKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvKCkgY29u
c3Q7Ci0gICAgCisKICAgICBib29sIGlzQ29udGVudExpa2VseVZpc2libGVJblZpZXdwb3J0KCk7
CiAgICAgYm9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLQogICAgIHZpcnR1YWwgYm9vbCBwYWludHNDb250ZW50KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNp
bmcoY29uc3QgU3R5bGU6OlByZWZlcnJlZFNpemUmIGxvZ2ljYWxIZWlnaHQpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479558</attachid>
            <date>2026-05-09 18:12:24 -0700</date>
            <delta_ts>2026-05-09 18:36:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314479-20260509181224.patch</filename>
            <type>text/plain</type>
            <size>46153</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkM2QwN2Q1ZDQ0YTMyNTU2ZTIyNWU5M2M3NzZiNDZhNjgzNDI1NTM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAxODoxMTozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGNsZWFudXBd
IENsZWFuIHVwIGFzcGVjdCByYXRpbyBuYW1pbmc6IHJlbW92ZQogY29tcHV0ZUludHJpbnNpY0Fz
cGVjdFJhdGlvLCBpbnRyaW5zaWNSYXRpbywKIGlzUmVuZGVyUmVwbGFjZWRXaXRoSW50cmluc2lj
UmF0aW8gYW5kIHJlbmFtZSByZXNvbHZlQXNwZWN0UmF0aW8KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMTQ0NzkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoK
RVdTIChQUiB3aXRoIGRlcGVuZGVuY2llcykuCgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxG
cmFtZVZpZXcuY3BwOgooV2ViQ29yZTo6TG9jYWxGcmFtZVZpZXc6OmZvcmNlTGF5b3V0UGFyZW50
Vmlld0lmTmVlZGVkKToKKFdlYkNvcmU6OkxvY2FsRnJhbWVWaWV3OjplbWJlZGRlZFNWR1Jvb3Qg
Y29uc3QpOgooV2ViQ29yZTo6TG9jYWxGcmFtZVZpZXc6OmVtYmVkZGVkQ29udGVudEJveCBjb25z
dCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94
Ojpjb25zdHJhaW5Mb2dpY2FsTWluTWF4U2l6ZXNCeUFzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzIGNvbnN0
KToKKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVNpemluZ0tleXdvcmRMb2dpY2FsQ29udGVu
dEhlaWdodFVzaW5nR2VuZXJpYyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmFzcGVjdFJh
dGlvVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlTWluTWF4TG9naWNh
bFdpZHRoRnJvbUFzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0
ZU1pbk1heExvZ2ljYWxIZWlnaHRGcm9tQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVu
ZGVyQm94Ojppc1JlbmRlclJlcGxhY2VkV2l0aEludHJpbnNpY1JhdGlvIGNvbnN0KTogRGVsZXRl
ZC4KKFdlYkNvcmU6OlJlbmRlckJveDo6cmVzb2x2ZUFzcGVjdFJhdGlvIGNvbnN0KTogRGVsZXRl
ZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OmlzU1ZHUm9vdFdp
dGhJbnRyaW5zaWNBc3BlY3RSYXRpbyk6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cHJl
ZmVycmVkQXNwZWN0UmF0aW9Gb3JGbGV4SXRlbSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cHJlZmVycmVkQXNwZWN0
UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnNob3VsZEludmFsaWRhdGVQcmVm
ZXJyZWRXaWR0aHMgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmVtYmVkZGVkU1ZHUm9v
dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0
KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJl
ZE1pbk1heFNpemVzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNw
ZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RS
YXRpb0FkanVzdGVkSW50cmluc2ljTG9naWNhbFdpZHRocyBjb25zdCk6CihXZWJDb3JlOjpoYXNJ
bnRyaW5zaWNTaXplKToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGggY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJS
ZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3ggY29uc3Qp
OiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNBc3Bl
Y3RSYXRpbyBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6aW50cmlu
c2ljUmF0aW8gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmVtYmVkZGVkU1ZHUm9vdCBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0
KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoK
KFdlYkNvcmU6OlJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocyBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6aGFz
SW50cmluc2ljQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29t
cHV0ZUludHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6cHJlZmVy
cmVkQXNwZWN0UmF0aW8gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvbGVn
YWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwOgooV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUm9v
dDo6aGFzSW50cmluc2ljQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6TGVnYWN5UmVuZGVy
U1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6TGVnYWN5UmVu
ZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CihXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1h
Z2UpOgooV2ViQ29yZTo6U1ZHSW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3Jl
OjpTVkdJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKLS0tCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0xvY2FsRnJhbWVWaWV3LmNwcCAgICAgICAgfCAgMjggKystLS0KIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvTG9jYWxGcmFtZVZpZXcuaCAgICAgICAgICB8ICAgMyArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgIDQyICsrKystLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICB8ICAgMyArLQogLi4uL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwICAgICAgfCAgMzkgKysrKysrLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwICAgfCAxMDMgKysrLS0tLS0tLS0tLS0tLS0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCAgICAgfCAgMTYgKy0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCAgICAgfCAgMzcgKysr
KysrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oICAgICAgIHwgICA0
ICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwICAgfCAgMTAg
Ky0KIC4uLi9zdmcvbGVnYWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwICAgICAgICB8ICAxMCAr
LQogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCAgICAgICAgfCAgIDQgKy0K
IDE1IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCAxNjYgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcAppbmRleCBkZWRlNmI1MDQ1YTYuLmM3
YWYyNDhmMDkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKQEAgLTEy
MTMsMjUgKzEyMTMsMTggQEAgdm9pZCBMb2NhbEZyYW1lVmlldzo6Zm9yY2VMYXlvdXRQYXJlbnRW
aWV3SWZOZWVkZWQoKQogICAgIGlmICghb3duZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQ2hlY2tlZFB0ciBjb250ZW50Qm94ID0gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci0gICAg
aWYgKCFjb250ZW50Qm94KQorICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9v
dCgpOworICAgIGlmICghc3ZnUm9vdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGF1dG8q
IHN2Z1Jvb3QgPSBkeW5hbWljRG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oY29udGVudEJv
eC5nZXQoKSkpIHsKLSAgICAgICAgaWYgKHN2Z1Jvb3QtPmV2ZXJIYWRMYXlvdXQoKSAmJiAhc3Zn
Um9vdC0+bmVlZHNMYXlvdXQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJTVkdSb290Pihjb250ZW50
Qm94LmdldCgpKSkgewotICAgICAgICBpZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFz
dmdSb290LT5uZWVkc0xheW91dCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBp
ZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFzdmdSb290LT5uZWVkc0xheW91dCgpKQor
ICAgICAgICByZXR1cm47CiAKICAgICBMT0coTGF5b3V0LCAiTG9jYWxGcmFtZVZpZXcgJXAgZm9y
Y2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQgc2NoZWR1bGluZyBsYXlvdXQgb24gcGFyZW50IExv
Y2FsRnJhbWVWaWV3ICVwIiwgdGhpcywgJm93bmVyUmVuZGVyZXItPnZpZXcoKS5mcmFtZVZpZXco
KSk7CiAKICAgICAvLyBJZiB0aGUgZW1iZWRkZWQgU1ZHIGRvY3VtZW50IGFwcGVhcnMgdGhlIGZp
cnN0IHRpbWUsIHRoZSBvd25lclJlbmRlcmVyIGhhcyBhbHJlYWR5IGZpbmlzaGVkCiAgICAgLy8g
bGF5b3V0IHdpdGhvdXQga25vd2luZyBhYm91dCB0aGUgZXhpc3RlbmNlIG9mIHRoZSBlbWJlZGRl
ZCBTVkcgZG9jdW1lbnQsIGJlY2F1c2UgUmVuZGVyUmVwbGFjZWQKLSAgICAvLyBlbWJlZGRlZENv
bnRlbnRCb3goKSByZXR1cm5zIG51bGxwdHIsIGFzIGxvbmcgYXMgdGhlIGVtYmVkZGVkIGRvY3Vt
ZW50IGlzbid0IGxvYWRlZCB5ZXQuIEJlZm9yZQorICAgIC8vIGVtYmVkZGVkU1ZHUm9vdCgpIHJl
dHVybnMgbnVsbHB0ciwgYXMgbG9uZyBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgaXNuJ3QgbG9h
ZGVkIHlldC4gQmVmb3JlCiAgICAgLy8gYm90aGVyaW5nIHRvIGxheSBvdXQgdGhlIFNWRyBkb2N1
bWVudCwgbWFyayB0aGUgb3duZXJSZW5kZXJlciBuZWVkaW5nIGxheW91dCBhbmQgYXNrIGl0cwog
ICAgIC8vIExvY2FsRnJhbWVWaWV3IGZvciBhIGxheW91dC4gQWZ0ZXIgdGhhdCB0aGUgUmVuZGVy
RW1iZWRkZWRPYmplY3QgKG93bmVyUmVuZGVyZXIpIGNhcnJpZXMgdGhlCiAgICAgLy8gY29ycmVj
dCBzaXplLCB3aGljaCBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgvSGVpZ2h0IHJlbHkgb24sIHdoZW4gbGF5aW5nCkBAIC0xNTIwLDIyICsxNTEzLDE5IEBA
IGJvb2wgTG9jYWxGcmFtZVZpZXc6OnNob3VsZERlZmVyU2Nyb2xsVXBkYXRlQWZ0ZXJDb250ZW50
U2l6ZUNoYW5nZSgpCiAgICAgcmV0dXJuIChsYXlvdXRDb250ZXh0KCkubGF5b3V0UGhhc2UoKSA8
IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0UGhhc2U6OkluUG9zdExheW91dCkg
JiYgKGxheW91dENvbnRleHQoKS5sYXlvdXRQaGFzZSgpICE9IExvY2FsRnJhbWVWaWV3TGF5b3V0
Q29udGV4dDo6TGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQpOwogfQogCi1SZW5kZXJCb3gqIExv
Y2FsRnJhbWVWaWV3OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQq
IExvY2FsRnJhbWVWaWV3OjplbWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIENoZWNrZWRQ
dHIgcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxk
ID0gcmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOworICAgIGF1dG8qIGZpcnN0Q2hpbGQgPSByZW5k
ZXJWaWV3LT5maXJzdENoaWxkKCk7CiAKLSAgICAvLyBDdXJlbnRseSBvbmx5IGVtYmVkZGVkIFNW
RyBkb2N1bWVudHMgcGFydGljaXBhdGUgaW4gdGhlIHNpemUtbmVnb3RpYXRpb24gbG9naWMuCisg
ICAgLy8gQ3VycmVudGx5IG9ubHkgZW1iZWRkZWQgU1ZHIGRvY3VtZW50cyBwYXJ0aWNpcGF0ZSBp
biB0aGUgc2l6ZS1uZWdvdGlhdGlvbiBsb2dpYy4KICAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5
bmFtaWNEb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290PihmaXJzdENoaWxkKSkKICAgICAgICAg
cmV0dXJuIHN2Z1Jvb3Q7CiAKLSAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3duY2Fz
dDxSZW5kZXJTVkdSb290PihmaXJzdENoaWxkKSkKLSAgICAgICAgcmV0dXJuIHN2Z1Jvb3Q7Ci0K
LSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZHluYW1pY0Rvd25jYXN0PFJlbmRlclNW
R1Jvb3Q+KGZpcnN0Q2hpbGQpOwogfQogCiB2b2lkIExvY2FsRnJhbWVWaWV3OjphZGRFbWJlZGRl
ZE9iamVjdFRvVXBkYXRlKFJlbmRlckVtYmVkZGVkT2JqZWN0JiBlbWJlZGRlZE9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaAppbmRleCAxYjFjNzBiY2MyNDkuLjA1OTliYTE2
YjM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaApAQCAtNjUsNiArNjUsNyBA
QCBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3Mg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDsKIGNsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFJlbmRl
clJlcGxhY2VkOwogY2xhc3MgUmVuZGVyU2Nyb2xsYmFyUGFydDsKIGNsYXNzIFJlbmRlclN0eWxl
OwogY2xhc3MgUmVuZGVyVmlldzsKQEAgLTU3OCw3ICs1NzksNyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIE5PREVMRVRFIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgZmluYWw7
CiAKLSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OworICAgIFJlbmRl
clJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdDsKICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOwogICAgIGJvb2wgaXNUcmFja2luZ1Jl
cGFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggM2Q0MjQ2ZWM1M2I2Li40MDIxMTUyYzlj
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC03MTEsNyArNzEx
LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbnN0cmFpbkxvZ2ljYWxNaW5NYXhTaXplc0J5QXNwZWN0
UmF0aW8oTGF5b3V0VW5pdCYgY29tcHV0ZWRNaW4KICAgICAvLyBhIHNpemUgb2YgdGhlIGluaXRp
YWwgY29udGFpbmluZyBibG9jayBhbmQgdGhlIOKAnHN0cmV0Y2gtZml04oCdIHNpemluZyBvZiBu
b24tcmVwbGFjZWQgYmxvY2tzIGlmIHRoZXkgaGF2ZSBkZWZpbml0ZSB2YWx1ZXMuCiAgICAgLy8g
U2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc2l6aW5nLTMvI2RlZmluaXRlCiAgICAgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlVG9Vc2UgPSBzdHlsZSgpOwotICAgIEFTU0VSVChzdHlsZVRv
VXNlLmFzcGVjdFJhdGlvKCkuaGFzUmF0aW8oKSB8fCBpc1JlbmRlclJlcGxhY2VkV2l0aEludHJp
bnNpY1JhdGlvKCkpOworICAgIEFTU0VSVChzdHlsZVRvVXNlLmFzcGVjdFJhdGlvKCkuaGFzUmF0
aW8oKSB8fCAoaXM8UmVuZGVyUmVwbGFjZWQ+KCp0aGlzKSAmJiBkb3duY2FzdDxSZW5kZXJSZXBs
YWNlZD4oKnRoaXMpLnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0UmF0aW9Eb3VibGUoKSkp
OwogICAgIGF1dG8gbG9naWNhbFNpemUgPSBkaW1lbnNpb24gPT0gQ29uc3RyYWluRGltZW5zaW9u
OjpXaWR0aCA/IHN0eWxlVG9Vc2UubG9naWNhbFdpZHRoKCkgOiBzdHlsZVRvVXNlLmxvZ2ljYWxI
ZWlnaHQoKTsKICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNpemluZy00LyNhc3Bl
Y3QtcmF0aW8tbWluaW11bQogICAgIGlmIChtaW5pbXVtU2l6ZVR5cGUgPT0gTWluaW11bVNpemVJ
c0F1dG9tYXRpY0NvbnRlbnRCYXNlZDo6WWVzKSB7CkBAIC0yOTM5LDcgKzI5MzksNiBAQCBMYXlv
dXRVbml0IFJlbmRlckJveDo6ZmlsbEF2YWlsYWJsZU1lYXN1cmUoTGF5b3V0VW5pdCBhdmFpbGFi
bGVMb2dpY2FsV2lkdGgsIExheQogICAgIHJldHVybiBhdmFpbGFibGVMb2dpY2FsV2lkdGggLSBt
YXJnaW5TdGFydCAtIG1hcmdpbkVuZDsKIH0KIAotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXl3b3Jk
PiB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKEtl
eXdvcmQsIExheW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZywgTGF5b3V0VW5pdCYgbWluTG9naWNh
bFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0CiB7CiAgICAgaWYgY29u
c3RleHByIChzdGQ6OnNhbWVfYXM8S2V5d29yZCwgQ1NTOjpLZXl3b3JkOjpNaW5JbnRyaW5zaWM+
KQpAQCAtMjk1NCwxNCArMjk1MywxNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXl3b3JkPiB2b2lk
IFJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKAogICAgICAg
ICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1pbkxvZ2ljYWxXaWR0aCwgbWlu
Q2hpbGRyZW5Mb2dpY2FsV2lkdGgpOwogICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9
IHN0ZDo6bWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4Q2hpbGRyZW5Mb2dpY2FsV2lkdGgpOwogICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGlzUmVuZGVyUmVwbGFjZWRXaXRoSW50cmlu
c2ljUmF0aW8oKSAmJiBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1NwZWNpZmllZCgpKSB7Cisg
ICAgICAgIH0gZWxzZSBpZiAoQ2hlY2tlZFB0ciByZW5kZXJSZXBsYWNlZCA9IGR5bmFtaWNEb3du
Y2FzdDxSZW5kZXJSZXBsYWNlZD4oKnRoaXMpKSB7CiAgICAgICAgICAgICAvLyBGb3IgcmVwbGFj
ZWQgZWxlbWVudHMgd2l0aCBhbiBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvIChlLmcuIDxpbWc+KSBh
bmQgYQogICAgICAgICAgICAgLy8gc3BlY2lmaWVkIGJsb2NrIHNpemUsIGNvbXB1dGUgdGhlIHRy
YW5zZmVycmVkIG1pbi9tYXgtY29udGVudCBpbmxpbmUgc2l6ZQogICAgICAgICAgICAgLy8gdGhy
b3VnaCB0aGUgaW50cmluc2ljIHJhdGlvIHJhdGhlciB0aGFuIHVzaW5nIHRoZSByYXcgbmF0dXJh
bCB3aWR0aC4KLSAgICAgICAgICAgIGF1dG8gaW50cmluc2ljUmF0aW8gPSBkb3duY2FzdDxSZW5k
ZXJSZXBsYWNlZD4oKnRoaXMpLmNvbXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpOwotICAgICAg
ICAgICAgYXV0byBjb21wdXRlZFZhbHVlcyA9IGNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxI
ZWlnaHQoKSwgbG9naWNhbFRvcCgpKTsKLSAgICAgICAgICAgIGF1dG8gY29udGVudEJsb2NrU2l6
ZSA9IHN0ZDo6bWF4KDBfbHUsIGNvbXB1dGVkVmFsdWVzLmV4dGVudCAtIGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsSGVpZ2h0KCkpOwotICAgICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gbWF4TG9n
aWNhbFdpZHRoID0gTGF5b3V0VW5pdChjb250ZW50QmxvY2tTaXplICogaW50cmluc2ljUmF0aW8p
OworICAgICAgICAgICAgYXV0byBwcmVmZXJyZWRSYXRpbyA9IHJlbmRlclJlcGxhY2VkLT5wcmVm
ZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CisgICAgICAgICAgICBpZiAo
cHJlZmVycmVkUmF0aW8gJiYgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNTcGVjaWZpZWQoKSkg
eworICAgICAgICAgICAgICAgIGF1dG8gY29tcHV0ZWRWYWx1ZXMgPSBjb21wdXRlTG9naWNhbEhl
aWdodChsb2dpY2FsSGVpZ2h0KCksIGxvZ2ljYWxUb3AoKSk7CisgICAgICAgICAgICAgICAgYXV0
byBjb250ZW50QmxvY2tTaXplID0gc3RkOjptYXgoMF9sdSwgY29tcHV0ZWRWYWx1ZXMuZXh0ZW50
IC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgbWlu
TG9naWNhbFdpZHRoID0gbWF4TG9naWNhbFdpZHRoID0gTGF5b3V0VW5pdChjb250ZW50QmxvY2tT
aXplICogcHJlZmVycmVkUmF0aW8pOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgY29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKG1pbkxvZ2ljYWxXaWR0aCwg
bWF4TG9naWNhbFdpZHRoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb21wdXRlSW50
cmluc2ljS2V5d29yZExvZ2ljYWxXaWR0aHMobWluTG9naWNhbFdpZHRoLCBtYXhMb2dpY2FsV2lk
dGgpOwogICAgIH0KQEAgLTM2NzcsMTUgKzM2NzksMTUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgU2l6
ZVR5cGU+IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94Ojpjb21wdXRlU2l6aW5n
S2UKICAgICBhdXRvIG1pbk1heENvbnRlbnQgPSBbJl0gLT4gc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgQ1NTIHNpemluZyBzcGVjIGlzIGNvbnNpZGVy
aW5nIGNoYW5naW5nIHdoYXQgbWluLWNvbnRlbnQvbWF4LWNvbnRlbnQgc2hvdWxkIHJlc29sdmUg
dG8uCiAgICAgICAgIC8vIElmIHRoYXQgaGFwcGVucywgdGhpcyBjb2RlIHdpbGwgaGF2ZSB0byBj
aGFuZ2UuCi0gICAgICAgIGlmIChhdXRvKiByZW5kZXJJbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxS
ZW5kZXJJbWFnZT4odGhpcykpIHsKKyAgICAgICAgaWYgKENoZWNrZWRQdHIgcmVuZGVySW1hZ2Ug
PSBkeW5hbWljRG93bmNhc3Q8UmVuZGVySW1hZ2U+KHRoaXMpKSB7CiAgICAgICAgICAgICBhdXRv
IGNvbXB1dGVkRml4ZWRMb2dpY2FsV2lkdGggPSBzdHlsZSgpLmxvZ2ljYWxXaWR0aCgpLnRyeUZp
eGVkKCk7CiAgICAgICAgICAgICBpZiAoY29tcHV0ZWRGaXhlZExvZ2ljYWxXaWR0aCAmJiAhc3R5
bGUoKS5hc3BlY3RSYXRpbygpLmhhc1JhdGlvKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGlu
dHJpbnNpY1JhdGlvID0gcmVuZGVySW1hZ2UtPmludHJpbnNpY1JhdGlvKCk7CisgICAgICAgICAg
ICAgICAgYXV0byBwcmVmZXJyZWRSYXRpbyA9IHJlbmRlckltYWdlLT5wcmVmZXJyZWRBc3BlY3RS
YXRpbygpOwogICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlSGVpZ2h0Rm9yUmF0aW8oCiAg
ICAgICAgICAgICAgICAgICAgIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSwKICAgICAg
ICAgICAgICAgICAgICAgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSwKICAgICAgICAg
ICAgICAgICAgICAgTGF5b3V0VW5pdCB7IGNvbXB1dGVkRml4ZWRMb2dpY2FsV2lkdGgtPnJlc29s
dmVab29tKHN0eWxlKCkudXNlZFpvb21Gb3JMZW5ndGgoKSkgfSwKLSAgICAgICAgICAgICAgICAg
ICAgaW50cmluc2ljUmF0aW8udHJhbnNwb3NlZFNpemUoKS5hc3BlY3RSYXRpbygpLAorICAgICAg
ICAgICAgICAgICAgICBwcmVmZXJyZWRSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlv
KCksCiAgICAgICAgICAgICAgICAgICAgIEJveFNpemluZzo6Q29udGVudEJveAogICAgICAgICAg
ICAgICAgICk7CiAgICAgICAgICAgICB9CkBAIC0zNjk1LDggKzM2OTcsOCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBTaXplVHlwZT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmNv
bXB1dGVTaXppbmdLZQogICAgICAgICAgICAgICAgIC8vIHRoZSBhc3BlY3QgcmF0aW8uCiAgICAg
ICAgICAgICAgICAgaWYgKCFpc0ZsZXhJdGVtKCkgfHwgZG93bmNhc3Q8UmVuZGVyRmxleGlibGVC
b3g+KHBhcmVudCgpKS0+aXNIb3Jpem9udGFsRmxvdygpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4geyB9OwotICAgICAgICAgICAgICAgIGlmIChhdXRvIG92ZXJyaWRpbmdXaWR0aCA9IG92
ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsV2lkdGgoKTsgb3ZlcnJpZGluZ1dpZHRoICYmICFyZW5k
ZXJJbWFnZS0+aW50cmluc2ljUmF0aW8oKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiByZXNvbHZlSGVpZ2h0Rm9yUmF0aW8oYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0
aCgpLCBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpLCBjb250ZW50Qm94TG9naWNhbFdp
ZHRoKCpvdmVycmlkaW5nV2lkdGgpLCByZW5kZXJJbWFnZS0+aW50cmluc2ljUmF0aW8oKS50cmFu
c3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlvKCksIEJveFNpemluZzo6Q29udGVudEJveCk7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ1dpZHRoID0gb3ZlcnJpZGluZ0JvcmRlckJv
eExvZ2ljYWxXaWR0aCgpOyBvdmVycmlkaW5nV2lkdGggJiYgIXJlbmRlckltYWdlLT5wcmVmZXJy
ZWRBc3BlY3RSYXRpbygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c29sdmVIZWlnaHRGb3JSYXRpbyhib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCksIGJvcmRl
ckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksIGNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoKm92ZXJy
aWRpbmdXaWR0aCksIHJlbmRlckltYWdlLT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLnRyYW5zcG9z
ZWRTaXplKCkuYXNwZWN0UmF0aW8oKSwgQm94U2l6aW5nOjpDb250ZW50Qm94KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGlmIChhdXRv
IGhlaWdodCA9IGhlaWdodEZyb21Dcm9zc0F4aXNPdmVycmlkZUFuZEFzcGVjdFJhdGlvKCkpCkBA
IC01Mjc0LDE3ICs1Mjc2LDExIEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNh
bFdpZHRoRnJvbUFzcGVjdFJhdGlvKCkgY29uc3QKICAgICByZXR1cm4gY29uc3RyYWluTG9naWNh
bFdpZHRoQnlNaW5NYXgobG9naWNhbFdpZHRoLCBjb250YWluZXJXaWR0aEluSW5saW5lRGlyZWN0
aW9uLCAqY29udGFpbmluZ0Jsb2NrKCksIEFsbG93SW50cmluc2ljOjpObyk7CiB9CiAKLWJvb2wg
UmVuZGVyQm94Ojppc1JlbmRlclJlcGxhY2VkV2l0aEludHJpbnNpY1JhdGlvKCkgY29uc3QKLXsK
LSAgICBpZiAoYXV0byogcmVwbGFjZWQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+
KHRoaXMpKQotICAgICAgICByZXR1cm4gcmVwbGFjZWQtPmNvbXB1dGVJbnRyaW5zaWNBc3BlY3RS
YXRpbygpOwotICAgIHJldHVybiBmYWxzZTsKLX0KIAotc3RkOjpvcHRpb25hbDxkb3VibGU+IFJl
bmRlckJveDo6cmVzb2x2ZUFzcGVjdFJhdGlvKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiBSZW5kZXJCb3g6OmFzcGVjdFJhdGlvVmFsdWUoKSBjb25zdAogewotICAgIGlmIChhdXRvKiBy
ZXBsYWNlZEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KHRoaXMpKSAK
LSAgICAgICAgcmV0dXJuIHJlcGxhY2VkRWxlbWVudC0+Y29tcHV0ZUludHJpbnNpY0FzcGVjdFJh
dGlvKCk7CisgICAgaWYgKENoZWNrZWRQdHIgcmVwbGFjZWRFbGVtZW50ID0gZHluYW1pY0Rvd25j
YXN0PFJlbmRlclJlcGxhY2VkPih0aGlzKSkKKyAgICAgICAgcmV0dXJuIHJlcGxhY2VkRWxlbWVu
dC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpOwogICAgIGlmIChz
dHlsZSgpLmFzcGVjdFJhdGlvKCkuaGFzUmF0aW8oKSkKICAgICAgICAgcmV0dXJuIHN0eWxlKCku
bG9naWNhbEFzcGVjdFJhdGlvKCk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01Mjk1
LDcgKzUyOTEsNyBAQCBzdGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gUmVuZGVyQm94
Ojpjb21wdXRlTWluTWF4TG9naWNhbFdpZHRoRnJvbUFzcGVjdAogewogICAgIExheW91dFVuaXQg
dHJhbnNmZXJyZWRNaW5TaXplID0gTGF5b3V0VW5pdCgpOwogICAgIExheW91dFVuaXQgdHJhbnNm
ZXJyZWRNYXhTaXplID0gTGF5b3V0VW5pdDo6bWF4KCk7Ci0gICAgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IGFzcGVjdFJhdGlvID0gcmVzb2x2ZUFzcGVjdFJhdGlvKCk7CisgICAgYXV0byBhc3BlY3RS
YXRpbyA9IGFzcGVjdFJhdGlvVmFsdWUoKTsKICAgICBpZiAoIWFzcGVjdFJhdGlvKQogICAgICAg
ICByZXR1cm4geyB0cmFuc2ZlcnJlZE1pblNpemUsIHRyYW5zZmVycmVkTWF4U2l6ZSB9OwogCkBA
IC01MzE2LDcgKzUzMTIsNyBAQCBzdGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gUmVu
ZGVyQm94Ojpjb21wdXRlTWluTWF4TG9naWNhbEhlaWdodEZyb21Bc3BlYwogewogICAgIExheW91
dFVuaXQgdHJhbnNmZXJyZWRNaW5TaXplID0gTGF5b3V0VW5pdCgpOwogICAgIExheW91dFVuaXQg
dHJhbnNmZXJyZWRNYXhTaXplID0gTGF5b3V0VW5pdDo6bWF4KCk7Ci0gICAgc3RkOjpvcHRpb25h
bDxkb3VibGU+IGFzcGVjdFJhdGlvID0gcmVzb2x2ZUFzcGVjdFJhdGlvKCk7CisgICAgYXV0byBh
c3BlY3RSYXRpbyA9IGFzcGVjdFJhdGlvVmFsdWUoKTsKICAgICBpZiAoIWFzcGVjdFJhdGlvKQog
ICAgICAgICByZXR1cm4geyB0cmFuc2ZlcnJlZE1pblNpemUsIHRyYW5zZmVycmVkTWF4U2l6ZSB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggMTg3OGM3ZGVmYmVlLi5i
ZThmODA2Nzk4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTY4NSw5
ICs2ODUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGluY3JlbWVudFZpc3VhbGx5Tm9uRW1w
dHlQaXhlbENvdW50SWZOZWVkZWQoY29uc3QgSW50U2l6ZSYpOwogCi0gICAgc3RkOjpvcHRpb25h
bDxkb3VibGU+IHJlc29sdmVBc3BlY3RSYXRpbygpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiBhc3BlY3RSYXRpb1ZhbHVlKCkgY29uc3Q7CiAgICAgYm9vbCBOT0RFTEVURSBzaG91
bGRJZ25vcmVBc3BlY3RSYXRpbygpIGNvbnN0OwotICAgIGJvb2wgaXNSZW5kZXJSZXBsYWNlZFdp
dGhJbnRyaW5zaWNSYXRpbygpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxX
aWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0OwogICAgIGJvb2wgaXNSZXNvbHZlYWJsZVN0cmV0
Y2hTaXplKGNvbnN0IGF1dG8mIHNpemUpIGNvbnN0IHsgcmV0dXJuIHNpemUuaXNTdHJldGNoKCkg
JiYgY29udGFpbmluZ0Jsb2NrSGFzRGVmaW5pdGVCbG9ja1NpemUoKTsgfQogICAgIGJvb2wgaXNV
bnJlc29sdmVhYmxlU3RyZXRjaFNpemUoY29uc3QgYXV0byYgc2l6ZSkgY29uc3QgeyByZXR1cm4g
c2l6ZS5pc1N0cmV0Y2goKSAmJiAhY29udGFpbmluZ0Jsb2NrSGFzRGVmaW5pdGVCbG9ja1NpemUo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAK
aW5kZXggNzRiM2UwYjhkMmNhLi4xZmVkOTZkMzg2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtODc5LDcgKzg3OSw3IEBAIHN0YXRp
YyBib29sIGlzU1ZHUm9vdFdpdGhJbnRyaW5zaWNBc3BlY3RSYXRpbyhjb25zdCBSZW5kZXJCb3gm
IGZsZXhJdGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gSXQncyBjb21tb24gZm9y
IHNvbWUgcmVwbGFjZWQgZWxlbWVudHMsIHN1Y2ggYXMgU1ZHcywgdG8gaGF2ZSBpbnRyaW5zaWMg
YXNwZWN0IHJhdGlvcyBidXQgbm8gaW50cmluc2ljIHNpemVzLgogICAgIC8vIFRoYXQncyB3aHkg
aXQgaXNuJ3QgZW5vdWdoIGp1c3QgdG8gY2hlY2sgZm9yIGludHJpbnNpYyBzaXplcyBpbiB0aG9z
ZSBjYXNlcy4KLSAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KGZsZXhJdGVtKS5j
b21wdXRlSW50cmluc2ljQXNwZWN0UmF0aW8oKSA+IDA7CisgICAgcmV0dXJuIGRvd25jYXN0PFJl
bmRlclJlcGxhY2VkPihmbGV4SXRlbSkucHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRp
b0RvdWJsZSgpID4gMDsKIH07CiAKIHN0YXRpYyBib29sIGZsZXhJdGVtSGFzQXNwZWN0UmF0aW8o
Y29uc3QgUmVuZGVyQm94JiBmbGV4SXRlbSkKQEAgLTEyNjIsMTEgKzEyNjIsMTEgQEAgZG91Ymxl
IFJlbmRlckZsZXhpYmxlQm94OjpwcmVmZXJyZWRBc3BlY3RSYXRpb0ZvckZsZXhJdGVtKGNvbnN0
IFJlbmRlckJveCYgZmxleEkKICAgICBhdXRvIGZsZXhJdGVtQXNwZWN0UmF0aW8gPSBbJl0gewog
ICAgICAgICBhdXRvIGZsZXhJdGVtSW50cmluc2ljU2l6ZSA9IExheW91dFNpemUgeyBmbGV4SXRl
bS5pbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSwgZmxleEl0ZW0uaW50cmluc2ljTG9naWNhbEhlaWdo
dCgpIH07CiAgICAgICAgIGlmIChmbGV4SXRlbS5pc1JlbmRlck9yTGVnYWN5UmVuZGVyU1ZHUm9v
dCgpKQotICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihmbGV4SXRl
bSkuY29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCk7CisgICAgICAgICAgICByZXR1cm4gZG93
bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KGZsZXhJdGVtKS5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFz
cGVjdFJhdGlvRG91YmxlKCk7CiAgICAgICAgIGlmIChmbGV4SXRlbS5zdHlsZSgpLmFzcGVjdFJh
dGlvKCkuaXNSYXRpbygpIHx8IChmbGV4SXRlbS5zdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRv
QW5kUmF0aW8oKSAmJiBmbGV4SXRlbUludHJpbnNpY1NpemUuaXNFbXB0eSgpKSkKICAgICAgICAg
ICAgIHJldHVybiBmbGV4SXRlbS5zdHlsZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpOwogICAgICAg
ICBpZiAoYXV0byogcmVwbGFjZWRFbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclJlcGxh
Y2VkPihmbGV4SXRlbSkpCi0gICAgICAgICAgICByZXR1cm4gcmVwbGFjZWRFbGVtZW50LT5jb21w
dXRlSW50cmluc2ljQXNwZWN0UmF0aW8oKTsKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlZEVs
ZW1lbnQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKIAogICAg
ICAgICBBU1NFUlQoZmxleEl0ZW0uaW50cmluc2ljTG9naWNhbEhlaWdodCgpKTsKICAgICAgICAg
cmV0dXJuIGZsZXhJdGVtLmludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLnRvRG91YmxlKCkgLyBmbGV4
SXRlbS5pbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkudG9Eb3VibGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDliMjA5OTViYjNmYi4uMTIzZjczZDdmMTg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTk0MCw3ICs5
NDAsMjEgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bGF5b3V0KCkKIAogRmxvYXRTaXplIFJlbmRlcklt
YWdlOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRB
cHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNz
ZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LiBUaGUgYmFzZQorICAgIC8vIGNs
YXNzIHJldHVybnMgdmFsdWVzIGZyb20gdGhlIGNhY2hlIC8gY29udGFpbi1pbnRyaW5zaWMtc2l6
ZSB3aXRob3V0CisgICAgLy8gcXVlcnlpbmcgaW1hZ2UgZGF0YS4KKyAgICBpZiAoc2hvdWxkQXBw
bHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21w
dXRlSW50cmluc2ljU2l6ZSgpOworCisgICAgaWYgKENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVk
ZGVkU1ZHUm9vdCgpKSB7CisgICAgICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNv
bXB1dGVJbnRyaW5zaWNTaXplKCk7CisgICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUoc3R5bGUo
KS51c2VkWm9vbSgpKTsKKyAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShpbWFnZURldmljZVBp
eGVsUmF0aW8oKSk7CisgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAg
ICAgICAgICAgIGludHJpbnNpY1NpemUgPSBpbnRyaW5zaWNTaXplLnRyYW5zcG9zZWRTaXplKCk7
CisgICAgICAgIHJldHVybiBpbnRyaW5zaWNTaXplOworICAgIH0KKwogICAgIGF1dG8gaW50cmlu
c2ljU2l6ZSA9IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOwogCiAgICAg
Ly8gT3VyIGludHJpbnNpY1NpemUgaXMgZW1wdHkgaWYgd2UncmUgcmVuZGVyaW5nIGdlbmVyYXRl
ZCBpbWFnZXMgd2l0aCByZWxhdGl2ZSB3aWR0aC9oZWlnaHQuIEZpZ3VyZSBvdXQgdGhlIHJpZ2h0
IGludHJpbnNpYyBzaXplIHRvIHVzZS4KQEAgLTk1Nyw3ICs5NzEsMTEgQEAgRmxvYXRTaXplIFJl
bmRlckltYWdlOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiAKIEZsb2F0U2l6ZSBSZW5k
ZXJJbWFnZTo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEFTU0VSVCghc2hv
dWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBw
cmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudCwgYnV0IHRoZQorICAgIC8v
IGFzcGVjdCByYXRpbyBmcm9tIHRoZSBDU1MgYXNwZWN0LXJhdGlvIHByb3BlcnR5IGlzIHN0aWxs
IGF2YWlsYWJsZSB2aWEgdGhlCisgICAgLy8gYmFzZSBjbGFzcyAod2hpY2ggZG9lc24ndCBxdWVy
eSBpbWFnZSBkYXRhKS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogCiAg
ICAgLy8gRG9uJ3QgY29tcHV0ZSBhbiBpbnRyaW5zaWMgcmF0aW8gdG8gcHJlc2VydmUgaGlzdG9y
aWNhbCBXZWJLaXQgYmVoYXZpb3IgaWYgd2UncmUgcGFpbnRpbmcgYWx0IHRleHQgYW5kL29yIGEg
YnJva2VuIGltYWdlLgogICAgIGlmIChzaG91bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCkpIHsK
QEAgLTk2Niw2ICs5ODQsMTcgQEAgRmxvYXRTaXplIFJlbmRlckltYWdlOjpwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IDEuMCwgMS4wIH07CiAgICAgfQogCisg
ICAgaWYgKENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpKSB7CisgICAgICAg
IGF1dG8gcmF0aW8gPSBzdmdSb290LT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpOworICAgICAgICBp
ZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgIXJhdGlvLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJhdGlvID0gcmF0aW8udHJhbnNwb3NlZFNpemUoKTsKKworICAgICAgICBpZiAoc3R5
bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlz
QXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8uaXNFbXB0eSgpKSkKKyAgICAgICAgICAgIHJhdGlvID0g
RmxvYXRTaXplOjpuYXJyb3dQcmVjaXNpb24oc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxXaWR0
aCgpLnZhbHVlLCBzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbEhlaWdodCgpLnZhbHVlKTsKKwor
ICAgICAgICByZXR1cm4gcmF0aW87CisgICAgfQorCiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2Vk
OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogfQogCkBAIC05NzMsMTQgKzEwMDIsMTQgQEAgYm9v
bCBSZW5kZXJJbWFnZTo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0CiB7
CiAgICAgaWYgKFJlbmRlclJlcGxhY2VkOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhz
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBlbWJlZGRlZENvbnRlbnRCb3go
KTsKKyAgICByZXR1cm4gZW1iZWRkZWRTVkdSb290KCk7CiB9CiAKLVJlbmRlckJveCogUmVuZGVy
SW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogUmVuZGVy
SW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0CiB7CiAgICAgaWYgKFJlZlB0ciBjYWNoZWRJ
bWFnZSA9IHRoaXMtPmNhY2hlZEltYWdlKCkpIHsKICAgICAgICAgaWYgKFJlZlB0ciBpbWFnZSA9
IGR5bmFtaWNEb3duY2FzdDxTVkdJbWFnZT4oY2FjaGVkSW1hZ2UtPmltYWdlKCkpKQotICAgICAg
ICAgICAgcmV0dXJuIGltYWdlLT5lbWJlZGRlZENvbnRlbnRCb3goKTsKKyAgICAgICAgICAgIHJl
dHVybiBpbWFnZS0+ZW1iZWRkZWRTVkdSb290KCk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRy
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCAyY2U3NTQ5NTJh
ZmUuLjUyY2NlYTczZDdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgK
QEAgLTg0LDE0ICs4NCwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc011bHRpUmVwcmVzZW50YXRp
b25IRUlDKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpIGNvbnN0IGZpbmFsOworCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVySW1hZ2UoVHlwZSwg
RWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIE9wdGlvblNldDxSZXBsYWNlZEZsYWc+LCBTdHlsZTo6
SW1hZ2UqID0gbnVsbHB0ciwgY29uc3QgZmxvYXQgaW1hZ2VEZXZpY2VQaXhlbFJhdGlvID0gMS4w
Zik7CiAgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hv
dWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlckJv
eCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgZmluYWw7CisgICAgUmVuZGVyUmVwbGFjZWQq
IGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IGZpbmFsOwogICAgIEZsb2F0U2l6ZSBjb21wdXRlSW50
cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFsOwotICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVl
SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxvY2FsUmVjdCwgdW5zaWduZWQgbWF4RGVwdGhUb1Rl
c3QpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGU6OkRp
ZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCBmMDNhMTNmN2ViMTAu
LmQ2ZTE0OWQ5MWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwCkBAIC00NzAsNjQgKzQ3MCwyNSBAQCBzdGF0aWMgYm9vbCBpc1ZpZGVvV2l0aERlZmF1
bHRPYmplY3RTaXplKGNvbnN0IFJlbmRlclJlcGxhY2VkKiBtYXliZVZpZGVvKQogICAgIHJldHVy
biBmYWxzZTsKIH0gCiAKLXZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0lu
Zm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRlckJveCogY29udGVudFJlbmRlcmVyLCBGbG9hdFNp
emUmIGNvbnN0cmFpbmVkU2l6ZSwgRmxvYXRTaXplJiBwcmVmZXJyZWRBc3BlY3RSYXRpbykgY29u
c3QKK3ZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVk
QnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgRmxvYXRT
aXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3QKIHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6
ZTsKICAgICBpZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewog
ICAgICAgICBpbnRyaW5zaWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNT
aXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gUmVuZGVyUmVwbGFjZWQ6OnBy
ZWZlcnJlZEFzcGVjdFJhdGlvKCk7Ci0gICAgfSBlbHNlIGlmIChjb250ZW50UmVuZGVyZXIpIHsK
LSAgICAgICAgYm9vbCBjb250ZW50SXNSZW5kZXJSZXBsYWNlZCA9IGZhbHNlOwotICAgICAgICBp
ZiAoYXV0byogcmVuZGVyUmVwbGFjZWQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+
KGNvbnRlbnRSZW5kZXJlcikpIHsKLSAgICAgICAgICAgIGludHJpbnNpY1NpemUgPSByZW5kZXJS
ZXBsYWNlZC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgICAgIHByZWZlcnJlZEFz
cGVjdFJhdGlvID0gcmVuZGVyUmVwbGFjZWQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7Ci0gICAg
ICAgICAgICBjb250ZW50SXNSZW5kZXJSZXBsYWNlZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNwZWN0
UmF0aW8oKS5pc0F1dG9BbmRSYXRpbygpICYmIHByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHko
KSkpCi0gICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93
UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS53aWR0aCgpLnZhbHVlLCBzdHlsZSgpLmFz
cGVjdFJhdGlvKCkuaGVpZ2h0KCkudmFsdWUpOwotCi0gICAgICAgIC8vIEhhbmRsZSB6b29tICYg
dmVydGljYWwgd3JpdGluZyBtb2RlcyBoZXJlLCBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgZG9l
c24ndCBrbm93IGFib3V0IHRoZW0uCi0gICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUoc3R5bGUo
KS51c2VkWm9vbSgpKTsKLQotICAgICAgICBpZiAoYXV0byogaW1hZ2UgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVySW1hZ2U+KCp0aGlzKSkKLSAgICAgICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUo
aW1hZ2UtPmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKLQotICAgICAgICAvLyBVcGRhdGUgb3Vy
IGludHJpbnNpYyBzaXplIHRvIG1hdGNoIHdoYXQgdGhlIGNvbnRlbnQgcmVuZGVyZXIgaGFzIGNv
bXB1dGVkLCBzbyB0aGF0IHdoZW4gd2UKLSAgICAgICAgLy8gY29uc3RyYWluIHRoZSBzaXplIGJl
bG93LCB0aGUgY29ycmVjdCBpbnRyaW5zaWMgc2l6ZSB3aWxsIGJlIG9idGFpbmVkIGZvciBjb21w
YXJpc29uIGFnYWluc3QKLSAgICAgICAgLy8gbWluIGFuZCBtYXggd2lkdGhzLgotICAgICAgICBp
ZiAoY29udGVudElzUmVuZGVyUmVwbGFjZWQgJiYgaXNSZW5kZXJXaWRnZXQoKSkgewotICAgICAg
ICAgICAgLy8gRm9yIFJlbmRlcldpZGdldCBjb250ZW50IChlLmcuIDxvYmplY3Q+IGVtYmVkZGlu
ZyBhbiBTVkcgZG9jdW1lbnQpLCBhbHdheXMgdXBkYXRlCi0gICAgICAgICAgICAvLyBtX2ludHJp
bnNpY1NpemUgdG8gcmVmbGVjdCBjdXJyZW50IGludHJpbnNpYyBkaW1lbnNpb25zLCBhcHBseWlu
ZyBDU1MgZGVmYXVsdCBmYWxsYmFjawotICAgICAgICAgICAgLy8gdmFsdWVzICgzMDB4MTUwKSBm
b3IgZGltZW5zaW9ucyB3aXRoIG5vIGludHJpbnNpYyB2YWx1ZSAoZS5nLiBwZXJjZW50YWdlLXNp
emVkIG9yCi0gICAgICAgICAgICAvLyByZW1vdmVkIGF0dHJpYnV0ZXMpLiBUaGlzIHByZXZlbnRz
IHN0YWxlIGNhY2hlZCBzaXplcyB3aGVuIGF0dHJpYnV0ZXMgbGlrZSB3aWR0aC9oZWlnaHQKLSAg
ICAgICAgICAgIC8vIGFyZSByZW1vdmVkLiBOb3RlOiB0aGlzIGRvZXMgbm90IGFwcGx5IHRvIFJl
bmRlckltYWdlICg8aW1nIHNyYz0ic3ZnIj4pLCB3aGljaCBtYW5hZ2VzCi0gICAgICAgICAgICAv
LyBpdHMgb3duIGludHJpbnNpYyBzaXplIHZpYSBzZXRJbnRyaW5zaWNTaXplKCkgZHVyaW5nIGlt
YWdlIGxvYWQuCi0gICAgICAgICAgICBhdXRvIHNpemVUb0NhY2hlID0gaW50cmluc2ljU2l6ZTsK
KyAgICAgICAgaW50cmluc2ljUmF0aW8gPSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0
UmF0aW8oKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnRyaW5zaWNTaXplID0gY29tcHV0ZUlu
dHJpbnNpY1NpemUoKTsKKyAgICAgICAgaW50cmluc2ljUmF0aW8gPSBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpOworCisgICAgICAgIGF1dG8gc2l6ZVRvQ2FjaGUgPSBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gaW50cmluc2ljU2l6ZSA6IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsK
KyAgICAgICAgaWYgKGVtYmVkZGVkU1ZHUm9vdCgpICYmIGlzUmVuZGVyV2lkZ2V0KCkpIHsKICAg
ICAgICAgICAgIGlmICghc2l6ZVRvQ2FjaGUud2lkdGgoKSkKICAgICAgICAgICAgICAgICBzaXpl
VG9DYWNoZS5zZXRXaWR0aChjRGVmYXVsdFdpZHRoKTsKICAgICAgICAgICAgIGlmICghc2l6ZVRv
Q2FjaGUuaGVpZ2h0KCkpCiAgICAgICAgICAgICAgICAgc2l6ZVRvQ2FjaGUuc2V0SGVpZ2h0KGNE
ZWZhdWx0SGVpZ2h0KTsKICAgICAgICAgICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUo
c2l6ZVRvQ2FjaGUpOwotICAgICAgICB9IGVsc2UgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5p
c0VtcHR5KCkgJiYgIWludHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICBtX2ludHJp
bnNpY1NpemUgPSBMYXlvdXRTaXplKGludHJpbnNpY1NpemUpOwotCi0gICAgICAgIGlmICghaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3Bl
Y3RSYXRpby5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8g
PSBwcmVmZXJyZWRBc3BlY3RSYXRpby50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICAgICAgaW50
cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKLSAgICAgICAgfQot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGludHJpbnNpY1NpemUgPSBjb21wdXRlSW50cmluc2ljU2l6
ZSgpOwotICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IHRoaXMtPnByZWZlcnJlZEFzcGVj
dFJhdGlvKCk7Ci0gICAgICAgIGlmICghcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpICYm
ICFpbnRyaW5zaWNTaXplLmlzWmVybygpKQotICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0g
TGF5b3V0U2l6ZShpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gaW50cmluc2ljU2l6ZSA6IGlu
dHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWludHJp
bnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkKKyAgICAgICAg
ICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUoc2l6ZVRvQ2FjaGUpOwogICAgIH0KLSAg
ICBjb25zdHJhaW5lZFNpemUgPSBpbnRyaW5zaWNTaXplOwotfQotCi12b2lkIFJlbmRlclJlcGxh
Y2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhT
aXplcyhSZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciwgRmxvYXRTaXplJiBpbnRyaW5zaWNTaXpl
LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdAotewotICAgIGNvbXB1dGVBc3BlY3RS
YXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KGNvbnRlbnRSZW5kZXJlciwgaW50cmluc2ljU2l6
ZSwgaW50cmluc2ljUmF0aW8pOwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50cmluc2lj
IHNpemUgYWxvbmcgZWFjaCBheGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhpbXVtIHdp
ZHRoL2hlaWdodHMgYWxvbmcgdGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9yIGV4YW1w
bGUgYSBtYXhpbXVtIHdpZHRoIHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1bHQgaW4g
dGhlIGhlaWdodCB3ZSBjb21wdXRlIGhlcmUKQEAgLTU5NywyNSArNTU4LDEzIEBAIExheW91dFJl
Y3QgUmVuZGVyUmVwbGFjZWQ6OnJlcGxhY2VkQ29udGVudFJlY3QoY29uc3QgTGF5b3V0U2l6ZSYg
aW50cmluc2ljU2l6ZSkKICAgICByZXR1cm4gZmluYWxSZWN0OwogfQogCi1kb3VibGUgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0Ci17Ci0gICAgRmxv
YXRTaXplIGludHJpbnNpY1JhdGlvOwotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplOwotICAg
IGNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KGVtYmVkZGVkQ29udGVu
dEJveCgpLCBpbnRyaW5zaWNTaXplLCBpbnRyaW5zaWNSYXRpbyk7Ci0gICAgcmV0dXJuIGludHJp
bnNpY1JhdGlvLmFzcGVjdFJhdGlvRG91YmxlKCk7Ci19Ci0KIEZsb2F0U2l6ZSBSZW5kZXJSZXBs
YWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIC8vIElmIHRoZXJlJ3Mg
YW4gZW1iZWRkZWRDb250ZW50Qm94KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5jZWQgZG9jdW1lbnQg
YXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4KLSAgICBBU1NF
UlQoIWVtYmVkZGVkQ29udGVudEJveCgpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNv
bnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7IGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbnRy
aW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0KIAogRmxvYXRTaXplIFJlbmRlclJlcGxhY2VkOjpw
cmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhlcmUncyBhbiBlbWJl
ZGRlZENvbnRlbnRCb3goKSBvZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1bWVudCBhdmFpbGFi
bGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1c2VkLgotICAgIEFTU0VSVCghZW1i
ZWRkZWRDb250ZW50Qm94KCkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1l
bnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gRmxvYXRTaXplKGludHJpbnNpY0xvZ2lj
YWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkpOwogICAgIEZsb2F0U2l6ZSBwcmVm
ZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNjc1LDcgKzYyNCw3IEBAIHZvaWQgUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0FkanVzdGVkSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlv
dXRVbml0CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIHN0eWxlID0gdGhpcy0+c3R5bGUo
KTsKLSAgICBhdXRvIGNvbXB1dGVkQXNwZWN0UmF0aW8gPSBjb21wdXRlSW50cmluc2ljQXNwZWN0
UmF0aW8oKTsKKyAgICBhdXRvIGNvbXB1dGVkQXNwZWN0UmF0aW8gPSBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiAgICAgYXV0byBjb21wdXRlZEludHJpbnNpY0xv
Z2ljYWxXaWR0aCA9IG1pbkxvZ2ljYWxXaWR0aDsKIAogICAgIGlmIChhdXRvIGZpeGVkTG9naWNh
bEhlaWdodCA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS50cnlGaXhlZCgpKQpAQCAtNjk4LDEzICs2
NDcsOSBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgTk9ERUxFVEUgcmVzb2x2ZVdpZHRoRm9y
UmF0aW8oTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaQogICAgIHJldHVybiBMYXlvdXRVbml0KGxv
Z2ljYWxIZWlnaHQgKiBhc3BlY3RSYXRpbyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBOT0RF
TEVURSBoYXNJbnRyaW5zaWNTaXplKFJlbmRlckJveCpjb250ZW50UmVuZGVyZXIsIGJvb2wgaGFz
SW50cmluc2ljV2lkdGgsIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0ICkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBOT0RFTEVURSBoYXNJbnRyaW5zaWNTaXplKGNvbnN0IFJlbmRlclJlcGxhY2VkKiBzdmdS
b290LCBib29sIGhhc0ludHJpbnNpY1dpZHRoLCBib29sIGhhc0ludHJpbnNpY0hlaWdodCkKIHsK
LSAgICBpZiAoaGFzSW50cmluc2ljV2lkdGggJiYgaGFzSW50cmluc2ljSGVpZ2h0KQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoaGFzSW50cmluc2ljV2lkdGggfHwgaGFzSW50cmluc2lj
SGVpZ2h0KQotICAgICAgICByZXR1cm4gY29udGVudFJlbmRlcmVyICYmIGNvbnRlbnRSZW5kZXJl
ci0+aXNSZW5kZXJPckxlZ2FjeVJlbmRlclNWR1Jvb3QoKTsKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIChoYXNJbnRyaW5zaWNXaWR0aCAmJiBoYXNJbnRyaW5zaWNIZWlnaHQpIHx8ICgo
aGFzSW50cmluc2ljV2lkdGggfHwgaGFzSW50cmluc2ljSGVpZ2h0KSAmJiBzdmdSb290KTsKIH0K
IAogTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
KFNob3VsZENvbXB1dGVQcmVmZXJyZWQgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKQEAg
LTcxNSwxMiArNjYwLDEwIEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgaWYgKHN0eWxl
LmxvZ2ljYWxXaWR0aCgpLmlzSW50cmluc2ljT3JTdHJldGNoKCkpCiAgICAgICAgIHJldHVybiBj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoc3R5bGUubG9naWNhbFdpZHRoKCkpLCBzaG91bGRDb21w
dXRlUHJlZmVycmVkKTsKIAotICAgIFJlbmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRk
ZWRDb250ZW50Qm94KCk7Ci0KICAgICAvLyAxMC4zLjIgSW5saW5lLCByZXBsYWNlZCBlbGVtZW50
czogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvdmlzdWRldC5odG1sI2lubGluZS1yZXBsYWNl
ZC13aWR0aAogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29u
c3RyYWluZWRTaXplOwotICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFu
c2ZlcnJlZE1pbk1heFNpemVzKGNvbnRlbnRSZW5kZXJlciwgY29uc3RyYWluZWRTaXplLCBpbnRy
aW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5z
ZmVycmVkTWluTWF4U2l6ZXMoY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CiAKICAg
ICBpZiAoc3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCkpIHsKICAgICAgICAgYm9vbCBjb21w
dXRlZEhlaWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTcz
MCw3ICs2NzMsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCBzaAogICAgICAgICAvLyBGb3IgZmxl
eCBvciBncmlkIGl0ZW1zIHdoZXJlIHRoZSBsb2dpY2FsIGhlaWdodCBoYXMgYmVlbiBvdmVycmlk
ZW4gdGhlbiB3ZSBzaG91bGQgdXNlIHRoYXQgc2l6ZSB0byBjb21wdXRlIHRoZSByZXBsYWNlZCB3
aWR0aCBhcyBsb25nIGFzIHRoZSBmbGV4IG9yCiAgICAgICAgIC8vIGdyaWQgaXRlbSBoYXMgYW4g
aW50cmluc2ljIHNpemUuIEl0IGlzIHBvc3NpYmxlIChpbmRlZWQsIGNvbW1vbikgZm9yIGFuIFNW
RyBncmFwaGljIHRvIGhhdmUgYW4gaW50cmluc2ljIGFzcGVjdCByYXRpbyBidXQgbm90IHRvIGhh
dmUgYW4gaW50cmluc2ljCiAgICAgICAgIC8vIHdpZHRoIG9yIGhlaWdodC4gVGhlcmUgYXJlIGFs
c28gZWxlbWVudHMgd2l0aCBpbnRyaW5zaWMgc2l6ZXMgYnV0IHdpdGhvdXQgaW50cmluc2ljIHJh
dGlvIChsaWtlIGFuIGlmcmFtZSkuCi0gICAgICAgIGlmIChhdXRvIG92ZXJyaWRpbmdMb2dpY2Fs
SGVpZ2h0ID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBp
c0dyaWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJbnRy
aW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92ZXJyaWRpbmdCb3JkZXJC
b3hMb2dpY2FsSGVpZ2h0KCkgOiBzdGQ6Om51bGxvcHQpKQorICAgICAgICBpZiAoYXV0byBvdmVy
cmlkaW5nTG9naWNhbEhlaWdodCA9ICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0Zs
ZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgpKSAmJiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZH
Um9vdCgpLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92
ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KCkgOiBzdGQ6Om51bGxvcHQpKQogICAgICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhX
aWR0aChjb250ZW50Qm94TG9naWNhbEhlaWdodCgqb3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpICog
aW50cmluc2ljUmF0aW8uYXNwZWN0UmF0aW9Eb3VibGUoKSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJl
ZCk7CiAKICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNvbXB1
dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFuIGludHJpbnNp
YyB3aWR0aCwgdGhlbiB0aGF0IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNlZCB2YWx1ZSBvZiAn
d2lkdGgnLgpAQCAtODEzLDE5ICs3NTYsMTcgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQKICAg
ICBpZiAoaGFzUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsSGVpZ2h0VXNpbmcoc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkpKTsKIAotICAgIFJl
bmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci0KICAgICAv
LyAxMC42LjIgSW5saW5lLCByZXBsYWNlZCBlbGVtZW50czogaHR0cDovL3d3dy53My5vcmcvVFIv
Q1NTMjEvdmlzdWRldC5odG1sI2lubGluZS1yZXBsYWNlZC1oZWlnaHQKICAgICBGbG9hdFNpemUg
aW50cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21w
dXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb250
ZW50UmVuZGVyZXIsIGNvbnN0cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGNvbXB1
dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGNvbnN0
cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOwogCiAgICAgYm9vbCB3aWR0aElzQXV0byA9IHN0
eWxlKCkubG9naWNhbFdpZHRoKCkuaXNBdXRvKCk7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNXaWR0
aCA9IGNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpID4gMCB8fCAoIWNvbnN0cmFpbmVkU2l6ZS53aWR0
aCgpICYmIHNob3VsZFJlc3BlY3RaZXJvSW50cmluc2ljV2lkdGgoKSkgfHwgc2hvdWxkQXBwbHlT
aXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKTsKICAgICBib29sIGhhc0ludHJpbnNpY0hlaWdo
dCA9IGNvbnN0cmFpbmVkU2l6ZS5oZWlnaHQoKSA+IDAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFp
bm1lbnQoKTsKIAogICAgIC8vIFNlZSBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgZm9y
IGEgc2ltaWxhciBjaGVjayBmb3IgaGVpZ2h0cy4KLSAgICBpZiAoYXV0byBvdmVycmlkaW5nbG9n
aWNhbFdpZHRoID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8
fCBpc0dyaWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJ
bnRyaW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hM
b2dpY2FsV2lkdGgoKSA6IHN0ZDo6bnVsbG9wdCkpCisgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ2xv
Z2ljYWxXaWR0aCA9ICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkg
fHwgaXNHcmlkSXRlbSgpKSAmJiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9vdCgpLCBo
YXNJbnRyaW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJC
b3hMb2dpY2FsV2lkdGgoKSA6IHN0ZDo6bnVsbG9wdCkpCiAgICAgICAgIHJldHVybiBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb250ZW50Qm94TG9n
aWNhbFdpZHRoKCpvdmVycmlkaW5nbG9naWNhbFdpZHRoKSAqIGludHJpbnNpY1JhdGlvLnRyYW5z
cG9zZWRTaXplKCkuYXNwZWN0UmF0aW9Eb3VibGUoKSk7CiAKICAgICAvLyBJZiAnaGVpZ2h0JyBh
bmQgJ3dpZHRoJyBib3RoIGhhdmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVs
ZW1lbnQgYWxzbyBoYXMgYW4gaW50cmluc2ljIGhlaWdodCwgdGhlbiB0aGF0IGludHJpbnNpYyBo
ZWlnaHQgaXMgdGhlIHVzZWQgdmFsdWUgb2YgJ2hlaWdodCcuCkBAIC04NjAsNyArODAxLDcgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbkxvZ2ljYWwKIHsKICAgICBpZiAoaGFzSW50cmluc2ljQXNwZWN0UmF0
aW8oKSAmJiAhc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkpIHsKICAgICAgICAgaWYg
KGF1dG8gZml4ZWRIZWlnaHQgPSBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS50cnlGaXhlZCgpKSB7
Ci0gICAgICAgICAgICBhdXRvIGhlaWdodERlcml2ZWRXaWR0aCA9IExheW91dFVuaXQgeyBmaXhl
ZEhlaWdodC0+cmVzb2x2ZVpvb20oc3R5bGUoKS51c2VkWm9vbUZvckxlbmd0aCgpKSAqIGNvbXB1
dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpIH07CisgICAgICAgICAgICBhdXRvIGhlaWdodERlcml2
ZWRXaWR0aCA9IExheW91dFVuaXQgeyBmaXhlZEhlaWdodC0+cmVzb2x2ZVpvb20oc3R5bGUoKS51
c2VkWm9vbUZvckxlbmd0aCgpKSAqIHByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0UmF0aW9E
b3VibGUoKSB9OwogICAgICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gaGVpZ2h0RGVyaXZlZFdp
ZHRoOwogICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gaGVpZ2h0RGVyaXZlZFdpZHRoOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA3MSwxNCArMTAxMiw2IEBAIHZvaWQgUmVuZGVyUmVw
bGFjZWQ6OmxheW91dFNoYWRvd0NvbnRlbnQoY29uc3QgTGF5b3V0U2l6ZSYgb2xkU2l6ZSkKICAg
ICBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKIH0KIAotRmxvYXRTaXplIFJlbmRlclJlcGxhY2Vk
OjppbnRyaW5zaWNSYXRpbygpIGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlv
OwotICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNpemU7Ci0gICAgY29tcHV0ZUFzcGVjdFJhdGlv
SW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRkZWRDb250ZW50Qm94KCksIGNvbnN0cmFpbmVk
U2l6ZSwgaW50cmluc2ljUmF0aW8pOwotICAgIHJldHVybiBpbnRyaW5zaWNSYXRpbzsKLX0KLQog
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkT3V0T2ZGbG93UG9zaXRpb25lZExv
Z2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNvbXB1dGVkVmFsdWVzKSBj
b25zdAogewogICAgIFBvc2l0aW9uZWRMYXlvdXRDb25zdHJhaW50cyBpbmxpbmVDb25zdHJhaW50
cygqdGhpcywgTG9naWNhbEJveEF4aXM6OklubGluZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IGFiM2Y0NzEwYWE5MC4uNzAxMTljMzE0YTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtNDIsMTMgKzQyLDEw
IEBAIHB1YmxpYzoKICAgICBib29sIHNldE5lZWRzTGF5b3V0SWZOZWVkZWRBZnRlckludHJpbnNp
Y1NpemVDaGFuZ2UoKTsKIAogICAgIExheW91dFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0IGZp
bmFsOwotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbygpIGNvbnN0OwotICAgIAorCiAgICAg
Ym9vbCBpc0NvbnRlbnRMaWtlbHlWaXNpYmxlSW5WaWV3cG9ydCgpOwogICAgIGJvb2wgc2hvdWxk
SW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgZG91Ymxl
IGNvbXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0OwotCiAgICAgdmlydHVhbCBib29s
IHBhaW50c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRVbml0
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhjb25zdCBTdHlsZTo6UHJlZmVycmVk
U2l6ZSYgbG9naWNhbEhlaWdodCkgY29uc3Q7CkBAIC02MSw2ICs1OCw5IEBAIHB1YmxpYzoKICAg
ICBib29sIHJlcGxhY2VkTWluTG9naWNhbEhlaWdodENvbXB1dGVzQXNOb25lKCkgY29uc3Q7CiAg
ICAgYm9vbCByZXBsYWNlZE1heExvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0Owog
CisgICAgdmlydHVhbCBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0OworCiBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlwZSwgRWxlbWVudCYsIFJlbmRlclN0eWxlJiYs
IE9wdGlvblNldDxSZXBsYWNlZEZsYWc+ID0geyB9KTsKICAgICBSZW5kZXJSZXBsYWNlZChUeXBl
LCBFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljU2l6
ZSwgT3B0aW9uU2V0PFJlcGxhY2VkRmxhZz4gPSB7IH0pOwpAQCAtNzcsOSArNzcsNiBAQCBwcm90
ZWN0ZWQ6CiAKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlOjpEaWZmZXJlbmNlLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBGbG9hdFNp
emUgY29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBw
cmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0OwotCiAgICAgdm9pZCBzZXRJbnRyaW5zaWNTaXpl
KGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpIHsgbV9pbnRyaW5zaWNTaXplID0gaW50
cmluc2ljU2l6ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5zaWNTaXplQ2hhbmdlZCgpOwog
ICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZUludHJpbnNpY0xvZ2ljYWxXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMDYsNyArMTAzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgY29tcHV0ZUFzcGVjdFJhdGlvQWRqdXN0ZWRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dDsKIAotICAgIHZpcnR1YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCB7
IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290
KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclJlcGxhY2VkIl9zOyB9CiAKICAgICBib29sIGNh
bkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMjEs
OCArMTE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUpIGZpbmFsOwotICAgIHZvaWQgY29t
cHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRT
aXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Owot
ICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWlu
TWF4U2l6ZXMoUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIsIEZsb2F0U2l6ZSYgY29uc3RyYWlu
ZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1
dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKEZsb2F0
U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3U2VsZWN0aW9uVGludCgpIGNvbnN0OwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA0ZGE1MDhi
NmE3M2EuLmQ5NTgzZGU2NWJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5jcHAKQEAgLTQ4NywxNSArNDg3LDQ2IEBAIGJvb2wgUmVuZGVyV2lkZ2V0OjpzaG91bGRJ
bnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QKIHsKICAgICBpZiAoUmVuZGVyUmVwbGFj
ZWQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgcmV0dXJuIGVtYmVkZGVkQ29udGVudEJveCgpOworICAgIHJldHVybiBlbWJlZGRl
ZFNWR1Jvb3QoKTsKIH0KIAotUmVuZGVyQm94KiBSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkQ29udGVu
dEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZFNWR1Jv
b3QoKSBjb25zdAogewogICAgIGlmICghaXM8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KHRoaXMpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBSZWZQdHIgZnJhbWVWaWV3ID0gZHluYW1pY0Rv
d25jYXN0PExvY2FsRnJhbWVWaWV3Pih3aWRnZXQoKSk7Ci0gICAgcmV0dXJuIGZyYW1lVmlldyA/
IGZyYW1lVmlldy0+ZW1iZWRkZWRDb250ZW50Qm94KCkgOiBudWxscHRyOworICAgIHJldHVybiBm
cmFtZVZpZXcgPyBmcmFtZVZpZXctPmVtYmVkZGVkU1ZHUm9vdCgpIDogbnVsbHB0cjsKK30KKwor
RmxvYXRTaXplIFJlbmRlcldpZGdldDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAorewor
ICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICghc3Zn
Um9vdCkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6
ZSgpOworCisgICAgYXV0byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNp
Y1NpemUoKTsKKyAgICBpbnRyaW5zaWNTaXplLnNjYWxlKHN0eWxlKCkudXNlZFpvb20oKSk7CisK
KyAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIGludHJpbnNpY1Np
emUgPSBpbnRyaW5zaWNTaXplLnRyYW5zcG9zZWRTaXplKCk7CisKKyAgICByZXR1cm4gaW50cmlu
c2ljU2l6ZTsKK30KKworRmxvYXRTaXplIFJlbmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0
aW8oKSBjb25zdAoreworICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgp
OworICAgIGlmICghc3ZnUm9vdCkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVm
ZXJyZWRBc3BlY3RSYXRpbygpOworCisgICAgYXV0byByYXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJl
ZEFzcGVjdFJhdGlvKCk7CisgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmICFy
YXRpby5pc0VtcHR5KCkpCisgICAgICAgIHJhdGlvID0gcmF0aW8udHJhbnNwb3NlZFNpemUoKTsK
KworICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFz
cGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAmJiByYXRpby5pc0VtcHR5KCkpKQorICAgICAg
ICByYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9M
b2dpY2FsV2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52
YWx1ZSk7CisKKyAgICByZXR1cm4gcmF0aW87CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCBlMDE3ODE2MjAwZGYu
LjkyZjI4MTM4Y2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApA
QCAtOTEsNyArOTEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVs
ZXRlOwogCiAgICAgYm9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3Qg
ZmluYWw7Ci0gICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBmaW5hbDsK
KyAgICBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CisgICAg
RmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7CisgICAgRmxvYXRT
aXplIHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFNl
bGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0YXRlKSBmaW5hbDsKICAgICB2b2lkIHNldE92ZXJsYXBU
ZXN0UmVzdWx0KGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggZGUyOTQzNjI0Mjk4Li41NjJiYzUzN2QzZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtOTEs
MTIgKzkxLDE0IEBAIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKiBSZW5kZXJTVkdSb290Ojp2
aWV3cG9ydENvbnRhaW5lcigpIGNvbnN0CiAKIGJvb2wgUmVuZGVyU1ZHUm9vdDo6aGFzSW50cmlu
c2ljQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlSW50cmluc2ljQXNw
ZWN0UmF0aW8oKTsKKyAgICByZXR1cm4gcHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRp
b0RvdWJsZSgpOwogfQogCiBGbG9hdFNpemUgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNp
Y1NpemUoKSBjb25zdAogewotICAgIEFTU0VSVF9JTVBMSUVTKHZpZXcoKS5mcmFtZVZpZXcoKS5s
YXlvdXRDb250ZXh0KCkuaXNJblJlbmRlclRyZWVMYXlvdXQoKSwgIXNob3VsZEFwcGx5U2l6ZUNv
bnRhaW5tZW50KCkpOworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5z
aWMgZGltZW5zaW9ucyBmcm9tIGNvbnRlbnQuCisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRh
aW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y1NpemUoKTsKICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvU1ZHL2Nvb3Jkcy5odG1sI0lu
dHJpbnNpY1NpemluZwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0geyBzdmdTVkdFbGVt
ZW50KCkuaW50cmluc2ljV2lkdGgoKSwgc3ZnU1ZHRWxlbWVudCgpLmludHJpbnNpY0hlaWdodCgp
IH07CiAgICAgLy8gVHJhbnNwb3NlIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKQEAgLTEwNyw3
ICsxMDksOSBAQCBGbG9hdFNpemUgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUo
KSBjb25zdAogCiBGbG9hdFNpemUgUmVuZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNwZWN0UmF0aW8o
KSBjb25zdAogewotICAgIEFTU0VSVCghc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7Cisg
ICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZy
b20gY29udGVudC4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAg
ICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogCiAgICAg
aWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkpCiAgICAgICAgIHJldHVybiBGbG9h
dFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCku
dmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZH
Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL2xlZ2FjeS9MZWdhY3lSZW5k
ZXJTVkdSb290LmNwcAppbmRleCAzNmQzZTM4NTlkYjYuLmM3YTI5NzFmN2FlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9v
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVu
ZGVyU1ZHUm9vdC5jcHAKQEAgLTgxLDEyICs4MSwxNCBAQCBTVkdTVkdFbGVtZW50JiBMZWdhY3lS
ZW5kZXJTVkdSb290OjpzdmdTVkdFbGVtZW50KCkgY29uc3QKIAogYm9vbCBMZWdhY3lSZW5kZXJT
VkdSb290OjpoYXNJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNv
bXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiB9CiAKIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJT
VkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUX0lNUExJ
RVModmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0luUmVuZGVyVHJlZUxheW91
dCgpLCAhc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlu
bWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICBp
ZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJl
cGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNT
aXplID0geyBzdmdTVkdFbGVtZW50KCkuaW50cmluc2ljV2lkdGgoKSwgc3ZnU1ZHRWxlbWVudCgp
LmludHJpbnNpY0hlaWdodCgpIH07CiAgICAgLy8gVHJhbnNwb3NlIGZvciB2ZXJ0aWNhbCB3cml0
aW5nIG1vZGUKICAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC05Niw3ICs5
OCw5IEBAIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6
ZSgpIGNvbnN0CiAKIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290OjpwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRBcHBseVNpemVDb250YWlubWVu
dCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVu
c2lvbnMgZnJvbSBjb250ZW50LgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgp
KQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7
CiAKICAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSkKICAgICAgICAgcmV0
dXJuIEZsb2F0U2l6ZTo6bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2Fs
V2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52YWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA5YTBkNDgyNmE2
OTAuLjg2MjllMGVkMjE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwCkBAIC0yNzYsOCArMjc2LDggQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0
aXZlSW1hZ2UoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBEZXN0aW5hdGkKICAgICBhdXRv
IHJlbmRlcmluZ01vZGUgPSBtX3BhZ2UtPnNldHRpbmdzKCkuYWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkOwogCiAgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IG51bGxwdHI7Ci0gICAg
aWYgKENoZWNrZWRQdHIgY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCkpCi0g
ICAgICAgIGhvc3RXaW5kb3cgPSBjb250ZW50UmVuZGVyZXItPmhvc3RXaW5kb3coKTsKKyAgICBp
ZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpCisgICAgICAgIGhvc3RX
aW5kb3cgPSBzdmdSb290LT5ob3N0V2luZG93KCk7CiAKICAgICBSZWZQdHIgaW1hZ2VCdWZmZXIg
PSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBv
c2U6OkRPTSwgMSwgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsK
ICAgICBpZiAoIWltYWdlQnVmZmVyKQpAQCAtMzkyLDEyICszOTIsMTIgQEAgSW1hZ2VEcmF3UmVz
dWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWMKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCi1S
ZW5kZXJCb3gqIFNWR0ltYWdlOjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVw
bGFjZWQqIFNWR0ltYWdlOjplbWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIFJlZlB0ciBy
b290RWxlbWVudCA9IHRoaXMtPnJvb3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJveD4o
cm9vdEVsZW1lbnQtPnJlbmRlcmVyKCkpOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJSZXBs
YWNlZD4ocm9vdEVsZW1lbnQtPnJlbmRlcmVyKCkpOwogfQogCiBMb2NhbEZyYW1lVmlldyogU1ZH
SW1hZ2U6OmZyYW1lVmlldygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5oCmluZGV4IGY0NTc3ZDVjZjA0Mi4uZjc0M2EzNzAzMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBFbGVtZW50OwogY2xh
c3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBMb2NhbEZyYW1lVmlldzsKIGNsYXNzIFBhZ2U7Ci1jbGFz
cyBSZW5kZXJCb3g7CitjbGFzcyBSZW5kZXJSZXBsYWNlZDsKIGNsYXNzIFNWR1NWR0VsZW1lbnQ7
CiBjbGFzcyBTVkdJbWFnZUNocm9tZUNsaWVudDsKIGNsYXNzIFNWR0ltYWdlRm9yQ29udGFpbmVy
OwpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgdHJ5Q3JlYXRlRnJvbURhdGEoc3RkOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJlZlB0cjxTVkdJbWFnZT4mJik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIGlzRGF0YURlY29kYWJsZShjb25zdCBTZXR0aW5ncyYsIHN0ZDo6c3Bhbjxj
b25zdCB1aW50OF90Pik7CiAKLSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNv
bnN0OworICAgIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdDsKICAgICBM
b2NhbEZyYW1lVmlldyogTk9ERUxFVEUgZnJhbWVWaWV3KCkgY29uc3Q7CiAKICAgICBib29sIGlz
U1ZHSW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479562</attachid>
            <date>2026-05-09 18:38:15 -0700</date>
            <delta_ts>2026-05-10 14:09:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314479-20260509183814.patch</filename>
            <type>text/plain</type>
            <size>47240</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5ZTgyMTYzNWU2NjRkMDM2OTIzM2Y5OTExZGM3ZGY0YjYwYWM2NWQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAxODozNzozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBDbGVhbiB1cCBhc3BlY3QgcmF0aW8gbmFtaW5nOiByZW1vdmUKIGNvbXB1dGVJbnRyaW5zaWNB
c3BlY3RSYXRpbywgaW50cmluc2ljUmF0aW8sCiBpc1JlbmRlclJlcGxhY2VkV2l0aEludHJpbnNp
Y1JhdGlvIGFuZCByZW5hbWUgcmVzb2x2ZUFzcGVjdFJhdGlvCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0NDc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkVXUyAoUFIgd2l0aCBkZXBlbmRlbmNpZXMpLgoKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2Fs
RnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkxvY2FsRnJhbWVWaWV3Ojpmb3JjZUxheW91dFBhcmVu
dFZpZXdJZk5lZWRlZCk6CihXZWJDb3JlOjpMb2NhbEZyYW1lVmlldzo6ZW1iZWRkZWRTVkdSb290
IGNvbnN0KToKKFdlYkNvcmU6OkxvY2FsRnJhbWVWaWV3OjplbWJlZGRlZENvbnRlbnRCb3ggY29u
c3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJv
eDo6Y29uc3RyYWluTG9naWNhbE1pbk1heFNpemVzQnlBc3BlY3RSYXRpbyBjb25zdCk6CihXZWJD
b3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVTaXppbmdLZXl3b3JkTG9naWNhbENvbnRl
bnRIZWlnaHRVc2luZ0dlbmVyaWMgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQm94Ojphc3BlY3RS
YXRpb1ZhbHVlIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZU1pbk1heExvZ2lj
YWxXaWR0aEZyb21Bc3BlY3RSYXRpbyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1
dGVNaW5NYXhMb2dpY2FsSGVpZ2h0RnJvbUFzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJl
bmRlckJveDo6aXNSZW5kZXJSZXBsYWNlZFdpdGhJbnRyaW5zaWNSYXRpbyBjb25zdCk6IERlbGV0
ZWQuCihXZWJDb3JlOjpSZW5kZXJCb3g6OnJlc29sdmVBc3BlY3RSYXRpbyBjb25zdCk6IERlbGV0
ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CihXZWJDb3JlOjppc1NWR1Jvb3RX
aXRoSW50cmluc2ljQXNwZWN0UmF0aW8pOgooV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnBy
ZWZlcnJlZEFzcGVjdFJhdGlvRm9yRmxleEl0ZW0gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVj
dFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJl
ZmVycmVkV2lkdGhzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjplbWJlZGRlZFNWR1Jv
b3QgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCBjb25z
dCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKFdlYkNvcmU6OlJl
bmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJy
ZWRNaW5NYXhTaXplcyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFz
cGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlQXNwZWN0
UmF0aW9BZGp1c3RlZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMgY29uc3QpOgooV2ViQ29yZTo6aGFz
SW50cmluc2ljU2l6ZSk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVw
bGFjZWRMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21w
dXRlSW50cmluc2ljS2V5d29yZExvZ2ljYWxXaWR0aHMgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94IGNvbnN0
KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljQXNw
ZWN0UmF0aW8gY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmludHJp
bnNpY1JhdGlvIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuaDoKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjplbWJlZGRlZFNWR1Jvb3Qg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmVtYmVkZGVkQ29udGVudEJveCBjb25z
dCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6
CihXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgoo
V2ViQ29yZTo6UmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSBjb25zdCk6CihXZWJD
b3JlOjpSZW5kZXJXaWRnZXQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlcldpZGdldDo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6Omhh
c0ludHJpbnNpY0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmNv
bXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OnByZWZl
cnJlZEFzcGVjdFJhdGlvIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL2xl
Z2FjeS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR1Jv
b3Q6Omhhc0ludHJpbnNpY0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OkxlZ2FjeVJlbmRl
clNWR1Jvb3Q6OmNvbXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OkxlZ2FjeVJl
bmRlclNWR1Jvb3Q6OnByZWZlcnJlZEFzcGVjdFJhdGlvIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgooV2ViQ29yZTo6U1ZHSW1hZ2U6Om5hdGl2ZUlt
YWdlKToKKFdlYkNvcmU6OlNWR0ltYWdlOjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgooV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6Ci0tLQogU291cmNlL1dlYkNvcmUvcGFn
ZS9Mb2NhbEZyYW1lVmlldy5jcHAgICAgICAgIHwgIDI4ICsrLS0tCiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0xvY2FsRnJhbWVWaWV3LmggICAgICAgICAgfCAgIDMgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwICAgICAgICB8ICA0MiArKysrLS0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgfCAgIDMgKy0KIC4uLi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCAgICAgIHwgIDM4ICsrKysrKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCAgIHwgMTAzICsrKy0tLS0tLS0tLS0tLS0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggICAgIHwgIDE2ICst
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgICAgIHwgIDQ4ICsr
KysrKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggICAgICAgfCAg
IDQgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgICB8ICAx
MyArKy0KIC4uLi9zdmcvbGVnYWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwICAgICAgICB8ICAx
MyArKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgICAgICB8ICAg
OCArLQogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggICAgICAgIHwgICA0
ICstCiAxNSBmaWxlcyBjaGFuZ2VkLCAxNjggaW5zZXJ0aW9ucygrKSwgMTY2IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKaW5kZXggZGVkZTZiNTA0NWE2
Li5jN2FmMjQ4ZjA5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFt
ZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwCkBA
IC0xMjEzLDI1ICsxMjEzLDE4IEBAIHZvaWQgTG9jYWxGcmFtZVZpZXc6OmZvcmNlTGF5b3V0UGFy
ZW50Vmlld0lmTmVlZGVkKCkKICAgICBpZiAoIW93bmVyUmVuZGVyZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIENoZWNrZWRQdHIgY29udGVudEJveCA9IGVtYmVkZGVkQ29udGVudEJveCgpOwot
ICAgIGlmICghY29udGVudEJveCkKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNW
R1Jvb3QoKTsKKyAgICBpZiAoIXN2Z1Jvb3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChh
dXRvKiBzdmdSb290ID0gZHluYW1pY0Rvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KGNvbnRl
bnRCb3guZ2V0KCkpKSB7Ci0gICAgICAgIGlmIChzdmdSb290LT5ldmVySGFkTGF5b3V0KCkgJiYg
IXN2Z1Jvb3QtPm5lZWRzTGF5b3V0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgaWYgKGF1dG8qIHN2Z1Jvb3QgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyU1ZHUm9vdD4oY29u
dGVudEJveC5nZXQoKSkpIHsKLSAgICAgICAgaWYgKHN2Z1Jvb3QtPmV2ZXJIYWRMYXlvdXQoKSAm
JiAhc3ZnUm9vdC0+bmVlZHNMYXlvdXQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgaWYgKHN2Z1Jvb3QtPmV2ZXJIYWRMYXlvdXQoKSAmJiAhc3ZnUm9vdC0+bmVlZHNMYXlvdXQo
KSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HKExheW91dCwgIkxvY2FsRnJhbWVWaWV3ICVw
IGZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVkIHNjaGVkdWxpbmcgbGF5b3V0IG9uIHBhcmVu
dCBMb2NhbEZyYW1lVmlldyAlcCIsIHRoaXMsICZvd25lclJlbmRlcmVyLT52aWV3KCkuZnJhbWVW
aWV3KCkpOwogCiAgICAgLy8gSWYgdGhlIGVtYmVkZGVkIFNWRyBkb2N1bWVudCBhcHBlYXJzIHRo
ZSBmaXJzdCB0aW1lLCB0aGUgb3duZXJSZW5kZXJlciBoYXMgYWxyZWFkeSBmaW5pc2hlZAogICAg
IC8vIGxheW91dCB3aXRob3V0IGtub3dpbmcgYWJvdXQgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgZW1i
ZWRkZWQgU1ZHIGRvY3VtZW50LCBiZWNhdXNlIFJlbmRlclJlcGxhY2VkCi0gICAgLy8gZW1iZWRk
ZWRDb250ZW50Qm94KCkgcmV0dXJucyBudWxscHRyLCBhcyBsb25nIGFzIHRoZSBlbWJlZGRlZCBk
b2N1bWVudCBpc24ndCBsb2FkZWQgeWV0LiBCZWZvcmUKKyAgICAvLyBlbWJlZGRlZFNWR1Jvb3Qo
KSByZXR1cm5zIG51bGxwdHIsIGFzIGxvbmcgYXMgdGhlIGVtYmVkZGVkIGRvY3VtZW50IGlzbid0
IGxvYWRlZCB5ZXQuIEJlZm9yZQogICAgIC8vIGJvdGhlcmluZyB0byBsYXkgb3V0IHRoZSBTVkcg
ZG9jdW1lbnQsIG1hcmsgdGhlIG93bmVyUmVuZGVyZXIgbmVlZGluZyBsYXlvdXQgYW5kIGFzayBp
dHMKICAgICAvLyBMb2NhbEZyYW1lVmlldyBmb3IgYSBsYXlvdXQuIEFmdGVyIHRoYXQgdGhlIFJl
bmRlckVtYmVkZGVkT2JqZWN0IChvd25lclJlbmRlcmVyKSBjYXJyaWVzIHRoZQogICAgIC8vIGNv
cnJlY3Qgc2l6ZSwgd2hpY2ggTGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoL0hlaWdodCByZWx5IG9uLCB3aGVuIGxheWluZwpAQCAtMTUyMCwyMiArMTUxMywx
OSBAQCBib29sIExvY2FsRnJhbWVWaWV3OjpzaG91bGREZWZlclNjcm9sbFVwZGF0ZUFmdGVyQ29u
dGVudFNpemVDaGFuZ2UoKQogICAgIHJldHVybiAobGF5b3V0Q29udGV4dCgpLmxheW91dFBoYXNl
KCkgPCBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ6OkxheW91dFBoYXNlOjpJblBvc3RMYXlv
dXQpICYmIChsYXlvdXRDb250ZXh0KCkubGF5b3V0UGhhc2UoKSAhPSBMb2NhbEZyYW1lVmlld0xh
eW91dENvbnRleHQ6OkxheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0KTsKIH0KIAotUmVuZGVyQm94
KiBMb2NhbEZyYW1lVmlldzo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxh
Y2VkKiBMb2NhbEZyYW1lVmlldzo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsKICAgICBDaGVj
a2VkUHRyIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJW
aWV3KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlbmRlck9iamVjdCogZmlyc3RD
aGlsZCA9IHJlbmRlclZpZXctPmZpcnN0Q2hpbGQoKTsKKyAgICBhdXRvKiBmaXJzdENoaWxkID0g
cmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOwogCi0gICAgLy8gQ3VyZW50bHkgb25seSBlbWJlZGRl
ZCBTVkcgZG9jdW1lbnRzIHBhcnRpY2lwYXRlIGluIHRoZSBzaXplLW5lZ290aWF0aW9uIGxvZ2lj
LgorICAgIC8vIEN1cnJlbnRseSBvbmx5IGVtYmVkZGVkIFNWRyBkb2N1bWVudHMgcGFydGljaXBh
dGUgaW4gdGhlIHNpemUtbmVnb3RpYXRpb24gbG9naWMuCiAgICAgaWYgKGF1dG8qIHN2Z1Jvb3Qg
PSBkeW5hbWljRG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oZmlyc3RDaGlsZCkpCiAgICAg
ICAgIHJldHVybiBzdmdSb290OwogCi0gICAgaWYgKGF1dG8qIHN2Z1Jvb3QgPSBkeW5hbWljRG93
bmNhc3Q8UmVuZGVyU1ZHUm9vdD4oZmlyc3RDaGlsZCkpCi0gICAgICAgIHJldHVybiBzdmdSb290
OwotCi0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJTVkdSb290PihmaXJzdENoaWxkKTsKIH0KIAogdm9pZCBMb2NhbEZyYW1lVmlldzo6YWRkRW1i
ZWRkZWRPYmplY3RUb1VwZGF0ZShSZW5kZXJFbWJlZGRlZE9iamVjdCYgZW1iZWRkZWRPYmplY3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmgKaW5kZXggMWIxYzcwYmNjMjQ5Li4wNTk5
YmExNmIzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmgKQEAgLTY1LDYgKzY1
LDcgQEAgY2xhc3MgUmVuZGVyRW1iZWRkZWRPYmplY3Q7CiBjbGFzcyBSZW5kZXJMYXllcjsKIGNs
YXNzIFJlbmRlckxheWVyTW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBS
ZW5kZXJSZXBsYWNlZDsKIGNsYXNzIFJlbmRlclNjcm9sbGJhclBhcnQ7CiBjbGFzcyBSZW5kZXJT
dHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CkBAIC01NzgsNyArNTc5LDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBOT0RFTEVURSBzaG91bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IGZp
bmFsOwogCi0gICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdDsKKyAgICBS
ZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3Q7CiAgICAgCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRUcmFja3NSZXBhaW50cyhib29sKTsKICAgICBib29sIGlzVHJhY2tp
bmdSZXBhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDNkNDI0NmVjNTNiNi4uNDAyMTE1
MmM5Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNzExLDcg
KzcxMSw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsTWluTWF4U2l6ZXNCeUFz
cGVjdFJhdGlvKExheW91dFVuaXQmIGNvbXB1dGVkTWluCiAgICAgLy8gYSBzaXplIG9mIHRoZSBp
bml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgYW5kIHRoZSDigJxzdHJldGNoLWZpdOKAnSBzaXppbmcg
b2Ygbm9uLXJlcGxhY2VkIGJsb2NrcyBpZiB0aGV5IGhhdmUgZGVmaW5pdGUgdmFsdWVzLgogICAg
IC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNpemluZy0zLyNkZWZpbml0ZQogICAg
IGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZVRvVXNlID0gc3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5
bGVUb1VzZS5hc3BlY3RSYXRpbygpLmhhc1JhdGlvKCkgfHwgaXNSZW5kZXJSZXBsYWNlZFdpdGhJ
bnRyaW5zaWNSYXRpbygpKTsKKyAgICBBU1NFUlQoc3R5bGVUb1VzZS5hc3BlY3RSYXRpbygpLmhh
c1JhdGlvKCkgfHwgKGlzPFJlbmRlclJlcGxhY2VkPigqdGhpcykgJiYgZG93bmNhc3Q8UmVuZGVy
UmVwbGFjZWQ+KCp0aGlzKS5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91Ymxl
KCkpKTsKICAgICBhdXRvIGxvZ2ljYWxTaXplID0gZGltZW5zaW9uID09IENvbnN0cmFpbkRpbWVu
c2lvbjo6V2lkdGggPyBzdHlsZVRvVXNlLmxvZ2ljYWxXaWR0aCgpIDogc3R5bGVUb1VzZS5sb2dp
Y2FsSGVpZ2h0KCk7CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zaXppbmctNC8j
YXNwZWN0LXJhdGlvLW1pbmltdW0KICAgICBpZiAobWluaW11bVNpemVUeXBlID09IE1pbmltdW1T
aXplSXNBdXRvbWF0aWNDb250ZW50QmFzZWQ6OlllcykgewpAQCAtMjkzOSw3ICsyOTM5LDYgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCb3g6OmZpbGxBdmFpbGFibGVNZWFzdXJlKExheW91dFVuaXQgYXZh
aWxhYmxlTG9naWNhbFdpZHRoLCBMYXkKICAgICByZXR1cm4gYXZhaWxhYmxlTG9naWNhbFdpZHRo
IC0gbWFyZ2luU3RhcnQgLSBtYXJnaW5FbmQ7CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5
d29yZD4gdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRo
cyhLZXl3b3JkLCBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcsIExheW91dFVuaXQmIG1pbkxv
Z2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewogICAgIGlm
IGNvbnN0ZXhwciAoc3RkOjpzYW1lX2FzPEtleXdvcmQsIENTUzo6S2V5d29yZDo6TWluSW50cmlu
c2ljPikKQEAgLTI5NTQsMTQgKzI5NTMsMTcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5d29yZD4g
dm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocygKICAg
ICAgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtaW5Mb2dpY2FsV2lkdGgs
IG1pbkNoaWxkcmVuTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lk
dGggPSBzdGQ6Om1heChtYXhMb2dpY2FsV2lkdGgsIG1heENoaWxkcmVuTG9naWNhbFdpZHRoKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChpc1JlbmRlclJlcGxhY2VkV2l0aElu
dHJpbnNpY1JhdGlvKCkgJiYgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNTcGVjaWZpZWQoKSkg
eworICAgICAgICB9IGVsc2UgaWYgKENoZWNrZWRQdHIgcmVuZGVyUmVwbGFjZWQgPSBkeW5hbWlj
RG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KCp0aGlzKSkgewogICAgICAgICAgICAgLy8gRm9yIHJl
cGxhY2VkIGVsZW1lbnRzIHdpdGggYW4gaW50cmluc2ljIGFzcGVjdCByYXRpbyAoZS5nLiA8aW1n
PikgYW5kIGEKICAgICAgICAgICAgIC8vIHNwZWNpZmllZCBibG9jayBzaXplLCBjb21wdXRlIHRo
ZSB0cmFuc2ZlcnJlZCBtaW4vbWF4LWNvbnRlbnQgaW5saW5lIHNpemUKICAgICAgICAgICAgIC8v
IHRocm91Z2ggdGhlIGludHJpbnNpYyByYXRpbyByYXRoZXIgdGhhbiB1c2luZyB0aGUgcmF3IG5h
dHVyYWwgd2lkdGguCi0gICAgICAgICAgICBhdXRvIGludHJpbnNpY1JhdGlvID0gZG93bmNhc3Q8
UmVuZGVyUmVwbGFjZWQ+KCp0aGlzKS5jb21wdXRlSW50cmluc2ljQXNwZWN0UmF0aW8oKTsKLSAg
ICAgICAgICAgIGF1dG8gY29tcHV0ZWRWYWx1ZXMgPSBjb21wdXRlTG9naWNhbEhlaWdodChsb2dp
Y2FsSGVpZ2h0KCksIGxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgICAgICBhdXRvIGNvbnRlbnRCbG9j
a1NpemUgPSBzdGQ6Om1heCgwX2x1LCBjb21wdXRlZFZhbHVlcy5leHRlbnQgLSBib3JkZXJBbmRQ
YWRkaW5nTG9naWNhbEhlaWdodCgpKTsKLSAgICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IG1h
eExvZ2ljYWxXaWR0aCA9IExheW91dFVuaXQoY29udGVudEJsb2NrU2l6ZSAqIGludHJpbnNpY1Jh
dGlvKTsKKyAgICAgICAgICAgIGF1dG8gcHJlZmVycmVkUmF0aW8gPSByZW5kZXJSZXBsYWNlZC0+
cHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpOworICAgICAgICAgICAg
aWYgKHByZWZlcnJlZFJhdGlvICYmIHN0eWxlKCkubG9naWNhbEhlaWdodCgpLmlzU3BlY2lmaWVk
KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNvbXB1dGVkVmFsdWVzID0gY29tcHV0ZUxvZ2lj
YWxIZWlnaHQobG9naWNhbEhlaWdodCgpLCBsb2dpY2FsVG9wKCkpOworICAgICAgICAgICAgICAg
IGF1dG8gY29udGVudEJsb2NrU2l6ZSA9IHN0ZDo6bWF4KDBfbHUsIGNvbXB1dGVkVmFsdWVzLmV4
dGVudCAtIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAgICAgICAg
IG1pbkxvZ2ljYWxXaWR0aCA9IG1heExvZ2ljYWxXaWR0aCA9IExheW91dFVuaXQoY29udGVudEJs
b2NrU2l6ZSAqIHByZWZlcnJlZFJhdGlvKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIGNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhtaW5Mb2dpY2FsV2lk
dGgsIG1heExvZ2ljYWxXaWR0aCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY29tcHV0
ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKG1pbkxvZ2ljYWxXaWR0aCwgbWF4TG9naWNh
bFdpZHRoKTsKICAgICB9CkBAIC0zNjc3LDE1ICszNjc5LDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFNpemVUeXBlPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6Y29tcHV0ZVNp
emluZ0tlCiAgICAgYXV0byBtaW5NYXhDb250ZW50ID0gWyZdIC0+IHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gewogICAgICAgICAvLyBGSVhNRTogVGhlIENTUyBzaXppbmcgc3BlYyBpcyBjb25z
aWRlcmluZyBjaGFuZ2luZyB3aGF0IG1pbi1jb250ZW50L21heC1jb250ZW50IHNob3VsZCByZXNv
bHZlIHRvLgogICAgICAgICAvLyBJZiB0aGF0IGhhcHBlbnMsIHRoaXMgY29kZSB3aWxsIGhhdmUg
dG8gY2hhbmdlLgotICAgICAgICBpZiAoYXV0byogcmVuZGVySW1hZ2UgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVySW1hZ2U+KHRoaXMpKSB7CisgICAgICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcklt
YWdlID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckltYWdlPih0aGlzKSkgewogICAgICAgICAgICAg
YXV0byBjb21wdXRlZEZpeGVkTG9naWNhbFdpZHRoID0gc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS50
cnlGaXhlZCgpOwogICAgICAgICAgICAgaWYgKGNvbXB1dGVkRml4ZWRMb2dpY2FsV2lkdGggJiYg
IXN0eWxlKCkuYXNwZWN0UmF0aW8oKS5oYXNSYXRpbygpKSB7Ci0gICAgICAgICAgICAgICAgYXV0
byBpbnRyaW5zaWNSYXRpbyA9IHJlbmRlckltYWdlLT5pbnRyaW5zaWNSYXRpbygpOworICAgICAg
ICAgICAgICAgIGF1dG8gcHJlZmVycmVkUmF0aW8gPSByZW5kZXJJbWFnZS0+cHJlZmVycmVkQXNw
ZWN0UmF0aW8oKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZUhlaWdodEZvclJhdGlv
KAogICAgICAgICAgICAgICAgICAgICBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCksCiAg
ICAgICAgICAgICAgICAgICAgIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksCiAgICAg
ICAgICAgICAgICAgICAgIExheW91dFVuaXQgeyBjb21wdXRlZEZpeGVkTG9naWNhbFdpZHRoLT5y
ZXNvbHZlWm9vbShzdHlsZSgpLnVzZWRab29tRm9yTGVuZ3RoKCkpIH0sCi0gICAgICAgICAgICAg
ICAgICAgIGludHJpbnNpY1JhdGlvLnRyYW5zcG9zZWRTaXplKCkuYXNwZWN0UmF0aW8oKSwKKyAg
ICAgICAgICAgICAgICAgICAgcHJlZmVycmVkUmF0aW8udHJhbnNwb3NlZFNpemUoKS5hc3BlY3RS
YXRpbygpLAogICAgICAgICAgICAgICAgICAgICBCb3hTaXppbmc6OkNvbnRlbnRCb3gKICAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgfQpAQCAtMzY5NSw4ICszNjk3LDggQEAgdGVtcGxh
dGU8dHlwZW5hbWUgU2l6ZVR5cGU+IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94
Ojpjb21wdXRlU2l6aW5nS2UKICAgICAgICAgICAgICAgICAvLyB0aGUgYXNwZWN0IHJhdGlvLgog
ICAgICAgICAgICAgICAgIGlmICghaXNGbGV4SXRlbSgpIHx8IGRvd25jYXN0PFJlbmRlckZsZXhp
YmxlQm94PihwYXJlbnQoKSktPmlzSG9yaXpvbnRhbEZsb3coKSkKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nV2lkdGgg
PSBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCk7IG92ZXJyaWRpbmdXaWR0aCAmJiAh
cmVuZGVySW1hZ2UtPmludHJpbnNpY1JhdGlvKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzb2x2ZUhlaWdodEZvclJhdGlvKGJvcmRlckFuZFBhZGRpbmdMb2dpY2Fs
V2lkdGgoKSwgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSwgY29udGVudEJveExvZ2lj
YWxXaWR0aCgqb3ZlcnJpZGluZ1dpZHRoKSwgcmVuZGVySW1hZ2UtPmludHJpbnNpY1JhdGlvKCku
dHJhbnNwb3NlZFNpemUoKS5hc3BlY3RSYXRpbygpLCBCb3hTaXppbmc6OkNvbnRlbnRCb3gpOwor
ICAgICAgICAgICAgICAgIGlmIChhdXRvIG92ZXJyaWRpbmdXaWR0aCA9IG92ZXJyaWRpbmdCb3Jk
ZXJCb3hMb2dpY2FsV2lkdGgoKTsgb3ZlcnJpZGluZ1dpZHRoICYmICFyZW5kZXJJbWFnZS0+cHJl
ZmVycmVkQXNwZWN0UmF0aW8oKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biByZXNvbHZlSGVpZ2h0Rm9yUmF0aW8oYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpLCBi
b3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpLCBjb250ZW50Qm94TG9naWNhbFdpZHRoKCpv
dmVycmlkaW5nV2lkdGgpLCByZW5kZXJJbWFnZS0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKS50cmFu
c3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlvKCksIEJveFNpemluZzo6Q29udGVudEJveCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBpZiAo
YXV0byBoZWlnaHQgPSBoZWlnaHRGcm9tQ3Jvc3NBeGlzT3ZlcnJpZGVBbmRBc3BlY3RSYXRpbygp
KQpAQCAtNTI3NCwxNyArNTI3NiwxMSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUxv
Z2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0cmFpbkxv
Z2ljYWxXaWR0aEJ5TWluTWF4KGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklubGluZURp
cmVjdGlvbiwgKmNvbnRhaW5pbmdCbG9jaygpLCBBbGxvd0ludHJpbnNpYzo6Tm8pOwogfQogCi1i
b29sIFJlbmRlckJveDo6aXNSZW5kZXJSZXBsYWNlZFdpdGhJbnRyaW5zaWNSYXRpbygpIGNvbnN0
Ci17Ci0gICAgaWYgKGF1dG8qIHJlcGxhY2VkID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclJlcGxh
Y2VkPih0aGlzKSkKLSAgICAgICAgcmV0dXJuIHJlcGxhY2VkLT5jb21wdXRlSW50cmluc2ljQXNw
ZWN0UmF0aW8oKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19CiAKLXN0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiBSZW5kZXJCb3g6OnJlc29sdmVBc3BlY3RSYXRpbygpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gUmVuZGVyQm94Ojphc3BlY3RSYXRpb1ZhbHVlKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0
byogcmVwbGFjZWRFbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclJlcGxhY2VkPih0aGlz
KSkgCi0gICAgICAgIHJldHVybiByZXBsYWNlZEVsZW1lbnQtPmNvbXB1dGVJbnRyaW5zaWNBc3Bl
Y3RSYXRpbygpOworICAgIGlmIChDaGVja2VkUHRyIHJlcGxhY2VkRWxlbWVudCA9IGR5bmFtaWNE
b3duY2FzdDxSZW5kZXJSZXBsYWNlZD4odGhpcykpCisgICAgICAgIHJldHVybiByZXBsYWNlZEVs
ZW1lbnQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKICAgICBp
ZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmhhc1JhdGlvKCkpCiAgICAgICAgIHJldHVybiBzdHls
ZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
NTI5NSw3ICs1MjkxLDcgQEAgc3RkOjpwYWlyPExheW91dFVuaXQsIExheW91dFVuaXQ+IFJlbmRl
ckJveDo6Y29tcHV0ZU1pbk1heExvZ2ljYWxXaWR0aEZyb21Bc3BlY3QKIHsKICAgICBMYXlvdXRV
bml0IHRyYW5zZmVycmVkTWluU2l6ZSA9IExheW91dFVuaXQoKTsKICAgICBMYXlvdXRVbml0IHRy
YW5zZmVycmVkTWF4U2l6ZSA9IExheW91dFVuaXQ6Om1heCgpOwotICAgIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiBhc3BlY3RSYXRpbyA9IHJlc29sdmVBc3BlY3RSYXRpbygpOworICAgIGF1dG8gYXNw
ZWN0UmF0aW8gPSBhc3BlY3RSYXRpb1ZhbHVlKCk7CiAgICAgaWYgKCFhc3BlY3RSYXRpbykKICAg
ICAgICAgcmV0dXJuIHsgdHJhbnNmZXJyZWRNaW5TaXplLCB0cmFuc2ZlcnJlZE1heFNpemUgfTsK
IApAQCAtNTMxNiw3ICs1MzEyLDcgQEAgc3RkOjpwYWlyPExheW91dFVuaXQsIExheW91dFVuaXQ+
IFJlbmRlckJveDo6Y29tcHV0ZU1pbk1heExvZ2ljYWxIZWlnaHRGcm9tQXNwZWMKIHsKICAgICBM
YXlvdXRVbml0IHRyYW5zZmVycmVkTWluU2l6ZSA9IExheW91dFVuaXQoKTsKICAgICBMYXlvdXRV
bml0IHRyYW5zZmVycmVkTWF4U2l6ZSA9IExheW91dFVuaXQ6Om1heCgpOwotICAgIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBhc3BlY3RSYXRpbyA9IHJlc29sdmVBc3BlY3RSYXRpbygpOworICAgIGF1
dG8gYXNwZWN0UmF0aW8gPSBhc3BlY3RSYXRpb1ZhbHVlKCk7CiAgICAgaWYgKCFhc3BlY3RSYXRp
bykKICAgICAgICAgcmV0dXJuIHsgdHJhbnNmZXJyZWRNaW5TaXplLCB0cmFuc2ZlcnJlZE1heFNp
emUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDE4NzhjN2RlZmJl
ZS4uYmU4ZjgwNjc5ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC02
ODUsOSArNjg1LDggQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBpbmNyZW1lbnRWaXN1YWxseU5v
bkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKGNvbnN0IEludFNpemUmKTsKIAotICAgIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiByZXNvbHZlQXNwZWN0UmF0aW8oKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gYXNwZWN0UmF0aW9WYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wgTk9ERUxFVEUg
c2hvdWxkSWdub3JlQXNwZWN0UmF0aW8oKSBjb25zdDsKLSAgICBib29sIGlzUmVuZGVyUmVwbGFj
ZWRXaXRoSW50cmluc2ljUmF0aW8oKSBjb25zdDsKICAgICBib29sIHNob3VsZENvbXB1dGVMb2dp
Y2FsV2lkdGhGcm9tQXNwZWN0UmF0aW8oKSBjb25zdDsKICAgICBib29sIGlzUmVzb2x2ZWFibGVT
dHJldGNoU2l6ZShjb25zdCBhdXRvJiBzaXplKSBjb25zdCB7IHJldHVybiBzaXplLmlzU3RyZXRj
aCgpICYmIGNvbnRhaW5pbmdCbG9ja0hhc0RlZmluaXRlQmxvY2tTaXplKCk7IH0KICAgICBib29s
IGlzVW5yZXNvbHZlYWJsZVN0cmV0Y2hTaXplKGNvbnN0IGF1dG8mIHNpemUpIGNvbnN0IHsgcmV0
dXJuIHNpemUuaXNTdHJldGNoKCkgJiYgIWNvbnRhaW5pbmdCbG9ja0hhc0RlZmluaXRlQmxvY2tT
aXplKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
Y3BwCmluZGV4IDc0YjNlMGI4ZDJjYS4uMWZlZDk2ZDM4Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTg3OSw3ICs4NzksNyBAQCBz
dGF0aWMgYm9vbCBpc1NWR1Jvb3RXaXRoSW50cmluc2ljQXNwZWN0UmF0aW8oY29uc3QgUmVuZGVy
Qm94JiBmbGV4SXRlbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIEl0J3MgY29tbW9u
IGZvciBzb21lIHJlcGxhY2VkIGVsZW1lbnRzLCBzdWNoIGFzIFNWR3MsIHRvIGhhdmUgaW50cmlu
c2ljIGFzcGVjdCByYXRpb3MgYnV0IG5vIGludHJpbnNpYyBzaXplcy4KICAgICAvLyBUaGF0J3Mg
d2h5IGl0IGlzbid0IGVub3VnaCBqdXN0IHRvIGNoZWNrIGZvciBpbnRyaW5zaWMgc2l6ZXMgaW4g
dGhvc2UgY2FzZXMuCi0gICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihmbGV4SXRl
bSkuY29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgPiAwOworICAgIHJldHVybiBkb3duY2Fz
dDxSZW5kZXJSZXBsYWNlZD4oZmxleEl0ZW0pLnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0
UmF0aW9Eb3VibGUoKSA+IDA7CiB9OwogCiBzdGF0aWMgYm9vbCBmbGV4SXRlbUhhc0FzcGVjdFJh
dGlvKGNvbnN0IFJlbmRlckJveCYgZmxleEl0ZW0pCkBAIC0xMjYyLDExICsxMjYyLDExIEBAIGRv
dWJsZSBSZW5kZXJGbGV4aWJsZUJveDo6cHJlZmVycmVkQXNwZWN0UmF0aW9Gb3JGbGV4SXRlbShj
b25zdCBSZW5kZXJCb3gmIGZsZXhJCiAgICAgYXV0byBmbGV4SXRlbUFzcGVjdFJhdGlvID0gWyZd
IHsKICAgICAgICAgYXV0byBmbGV4SXRlbUludHJpbnNpY1NpemUgPSBMYXlvdXRTaXplIHsgZmxl
eEl0ZW0uaW50cmluc2ljTG9naWNhbFdpZHRoKCksIGZsZXhJdGVtLmludHJpbnNpY0xvZ2ljYWxI
ZWlnaHQoKSB9OwogICAgICAgICBpZiAoZmxleEl0ZW0uaXNSZW5kZXJPckxlZ2FjeVJlbmRlclNW
R1Jvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oZmxl
eEl0ZW0pLmNvbXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpOworICAgICAgICAgICAgcmV0dXJu
IGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihmbGV4SXRlbSkucHJlZmVycmVkQXNwZWN0UmF0aW8o
KS5hc3BlY3RSYXRpb0RvdWJsZSgpOwogICAgICAgICBpZiAoZmxleEl0ZW0uc3R5bGUoKS5hc3Bl
Y3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoZmxleEl0ZW0uc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlz
QXV0b0FuZFJhdGlvKCkgJiYgZmxleEl0ZW1JbnRyaW5zaWNTaXplLmlzRW1wdHkoKSkpCiAgICAg
ICAgICAgICByZXR1cm4gZmxleEl0ZW0uc3R5bGUoKS5sb2dpY2FsQXNwZWN0UmF0aW8oKTsKICAg
ICAgICAgaWYgKGF1dG8qIHJlcGxhY2VkRWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJS
ZXBsYWNlZD4oZmxleEl0ZW0pKQotICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VkRWxlbWVudC0+
Y29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCk7CisgICAgICAgICAgICByZXR1cm4gcmVwbGFj
ZWRFbGVtZW50LT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiAK
ICAgICAgICAgQVNTRVJUKGZsZXhJdGVtLmludHJpbnNpY0xvZ2ljYWxIZWlnaHQoKSk7CiAgICAg
ICAgIHJldHVybiBmbGV4SXRlbS5pbnRyaW5zaWNMb2dpY2FsV2lkdGgoKS50b0RvdWJsZSgpIC8g
ZmxleEl0ZW0uaW50cmluc2ljTG9naWNhbEhlaWdodCgpLnRvRG91YmxlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA5YjIwOTk1YmIzZmIuLmI5MjkyMDVl
ODE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC05NDAs
NyArOTQwLDIwIEBAIHZvaWQgUmVuZGVySW1hZ2U6OmxheW91dCgpCiAKIEZsb2F0U2l6ZSBSZW5k
ZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIEFTU0VSVCghc2hv
dWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBw
cmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICAvLyBUaGUgYmFz
ZSBjbGFzcyByZXR1cm5zIHZhbHVlcyBmcm9tIHRoZSBjYWNoZSAvIGNvbnRhaW4taW50cmluc2lj
LXNpemUgd2l0aG91dCBxdWVyeWluZyBpbWFnZSBkYXRhLgorICAgIGlmIChzaG91bGRBcHBseVNp
emVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJ
bnRyaW5zaWNTaXplKCk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRT
VkdSb290KCkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0
ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVz
ZWRab29tKCkpOworICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKGltYWdlRGV2aWNlUGl4ZWxS
YXRpbygpKTsKKyAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAg
ICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKKyAg
ICAgICAgcmV0dXJuIGludHJpbnNpY1NpemU7CisgICAgfQorCiAgICAgYXV0byBpbnRyaW5zaWNT
aXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CiAKICAgICAvLyBP
dXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5kZXJpbmcgZ2VuZXJhdGVkIGlt
YWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJlIG91dCB0aGUgcmlnaHQgaW50
cmluc2ljIHNpemUgdG8gdXNlLgpAQCAtOTU3LDcgKzk3MCwxMSBAQCBGbG9hdFNpemUgUmVuZGVy
SW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIAogRmxvYXRTaXplIFJlbmRlcklt
YWdlOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRB
cHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNz
ZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LCBidXQgdGhlCisgICAgLy8gYXNw
ZWN0IHJhdGlvIGZyb20gdGhlIENTUyBhc3BlY3QtcmF0aW8gcHJvcGVydHkgaXMgc3RpbGwgYXZh
aWxhYmxlIHZpYSB0aGUKKyAgICAvLyBiYXNlIGNsYXNzICh3aGljaCBkb2Vzbid0IHF1ZXJ5IGlt
YWdlIGRhdGEpLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAKICAgICAv
LyBEb24ndCBjb21wdXRlIGFuIGludHJpbnNpYyByYXRpbyB0byBwcmVzZXJ2ZSBoaXN0b3JpY2Fs
IFdlYktpdCBiZWhhdmlvciBpZiB3ZSdyZSBwYWludGluZyBhbHQgdGV4dCBhbmQvb3IgYSBicm9r
ZW4gaW1hZ2UuCiAgICAgaWYgKHNob3VsZERpc3BsYXlCcm9rZW5JbWFnZUljb24oKSkgewpAQCAt
OTY2LDYgKzk4MywxNyBAQCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJh
dGlvKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAKKyAgICBp
ZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0
byByYXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAgIGlmICgh
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICAg
ICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChzdHlsZSgp
LmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRv
QW5kUmF0aW8oKSAmJiByYXRpby5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8gPSBGbG9h
dFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCku
dmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAg
ICAgIHJldHVybiByYXRpbzsKKyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnBy
ZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiB9CiAKQEAgLTk3MywxNCArMTAwMSwxNCBAQCBib29sIFJl
bmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QKIHsKICAg
ICBpZiAoUmVuZGVyUmVwbGFjZWQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGVtYmVkZGVkQ29udGVudEJveCgpOwor
ICAgIHJldHVybiBlbWJlZGRlZFNWR1Jvb3QoKTsKIH0KIAotUmVuZGVyQm94KiBSZW5kZXJJbWFn
ZTo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxhY2VkKiBSZW5kZXJJbWFn
ZTo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsKICAgICBpZiAoUmVmUHRyIGNhY2hlZEltYWdl
ID0gdGhpcy0+Y2FjaGVkSW1hZ2UoKSkgewogICAgICAgICBpZiAoUmVmUHRyIGltYWdlID0gZHlu
YW1pY0Rvd25jYXN0PFNWR0ltYWdlPihjYWNoZWRJbWFnZS0+aW1hZ2UoKSkpCi0gICAgICAgICAg
ICByZXR1cm4gaW1hZ2UtPmVtYmVkZGVkQ29udGVudEJveCgpOworICAgICAgICAgICAgcmV0dXJu
IGltYWdlLT5lbWJlZGRlZFNWR1Jvb3QoKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDJjZTc1NDk1MmFmZS4u
NTJjY2VhNzNkN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAt
ODQsMTQgKzg0LDE1IEBAIHB1YmxpYzoKICAgICBib29sIGlzTXVsdGlSZXByZXNlbnRhdGlvbkhF
SUMoKSBjb25zdDsKICNlbmRpZgogCisgICAgRmxvYXRTaXplIHByZWZlcnJlZEFzcGVjdFJhdGlv
KCkgY29uc3QgZmluYWw7CisKIHByb3RlY3RlZDoKICAgICBSZW5kZXJJbWFnZShUeXBlLCBFbGVt
ZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0PFJlcGxhY2VkRmxhZz4sIFN0eWxlOjpJbWFn
ZSogPSBudWxscHRyLCBjb25zdCBmbG9hdCBpbWFnZURldmljZVBpeGVsUmF0aW8gPSAxLjBmKTsK
ICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91bGRJ
bnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QgZmluYWw7Ci0gICAgUmVuZGVyQm94KiBl
bWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBmaW5hbDsKKyAgICBSZW5kZXJSZXBsYWNlZCogZW1i
ZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5z
aWNTaXplKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRTaXplIHByZWZlcnJlZEFzcGVjdFJhdGlv
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JlZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1bnNpZ25lZCBtYXhEZXB0aFRvVGVzdCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZTo6RGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGYwM2ExM2Y3ZWIxMC4uZDZl
MTQ5ZDkxYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKQEAgLTQ3MCw2NCArNDcwLDI1IEBAIHN0YXRpYyBib29sIGlzVmlkZW9XaXRoRGVmYXVsdE9i
amVjdFNpemUoY29uc3QgUmVuZGVyUmVwbGFjZWQqIG1heWJlVmlkZW8pCiAgICAgcmV0dXJuIGZh
bHNlOwogfSAKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3Jt
YXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIsIEZsb2F0U2l6ZSYg
Y29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIHByZWZlcnJlZEFzcGVjdFJhdGlvKSBjb25zdAor
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRy
YW5zZmVycmVkTWluTWF4U2l6ZXMoRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBGbG9hdFNpemUm
IGludHJpbnNpY1JhdGlvKSBjb25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplOwog
ICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKSB7CiAgICAg
ICAgIGludHJpbnNpY1NpemUgPSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUo
KTsKLSAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVy
cmVkQXNwZWN0UmF0aW8oKTsKLSAgICB9IGVsc2UgaWYgKGNvbnRlbnRSZW5kZXJlcikgewotICAg
ICAgICBib29sIGNvbnRlbnRJc1JlbmRlclJlcGxhY2VkID0gZmFsc2U7Ci0gICAgICAgIGlmIChh
dXRvKiByZW5kZXJSZXBsYWNlZCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oY29u
dGVudFJlbmRlcmVyKSkgewotICAgICAgICAgICAgaW50cmluc2ljU2l6ZSA9IHJlbmRlclJlcGxh
Y2VkLT5jb21wdXRlSW50cmluc2ljU2l6ZSgpOwotICAgICAgICAgICAgcHJlZmVycmVkQXNwZWN0
UmF0aW8gPSByZW5kZXJSZXBsYWNlZC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICAgICAg
ICAgIGNvbnRlbnRJc1JlbmRlclJlcGxhY2VkID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRp
bygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpKSkK
LSAgICAgICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gRmxvYXRTaXplOjpuYXJyb3dQcmVj
aXNpb24oc3R5bGUoKS5hc3BlY3RSYXRpbygpLndpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0
UmF0aW8oKS5oZWlnaHQoKS52YWx1ZSk7Ci0KLSAgICAgICAgLy8gSGFuZGxlIHpvb20gJiB2ZXJ0
aWNhbCB3cml0aW5nIG1vZGVzIGhlcmUsIGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBkb2Vzbid0
IGtub3cgYWJvdXQgdGhlbS4KLSAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVz
ZWRab29tKCkpOwotCi0gICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxS
ZW5kZXJJbWFnZT4oKnRoaXMpKQotICAgICAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShpbWFn
ZS0+aW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOwotCi0gICAgICAgIC8vIFVwZGF0ZSBvdXIgaW50
cmluc2ljIHNpemUgdG8gbWF0Y2ggd2hhdCB0aGUgY29udGVudCByZW5kZXJlciBoYXMgY29tcHV0
ZWQsIHNvIHRoYXQgd2hlbiB3ZQotICAgICAgICAvLyBjb25zdHJhaW4gdGhlIHNpemUgYmVsb3cs
IHRoZSBjb3JyZWN0IGludHJpbnNpYyBzaXplIHdpbGwgYmUgb2J0YWluZWQgZm9yIGNvbXBhcmlz
b24gYWdhaW5zdAotICAgICAgICAvLyBtaW4gYW5kIG1heCB3aWR0aHMuCi0gICAgICAgIGlmIChj
b250ZW50SXNSZW5kZXJSZXBsYWNlZCAmJiBpc1JlbmRlcldpZGdldCgpKSB7Ci0gICAgICAgICAg
ICAvLyBGb3IgUmVuZGVyV2lkZ2V0IGNvbnRlbnQgKGUuZy4gPG9iamVjdD4gZW1iZWRkaW5nIGFu
IFNWRyBkb2N1bWVudCksIGFsd2F5cyB1cGRhdGUKLSAgICAgICAgICAgIC8vIG1faW50cmluc2lj
U2l6ZSB0byByZWZsZWN0IGN1cnJlbnQgaW50cmluc2ljIGRpbWVuc2lvbnMsIGFwcGx5aW5nIENT
UyBkZWZhdWx0IGZhbGxiYWNrCi0gICAgICAgICAgICAvLyB2YWx1ZXMgKDMwMHgxNTApIGZvciBk
aW1lbnNpb25zIHdpdGggbm8gaW50cmluc2ljIHZhbHVlIChlLmcuIHBlcmNlbnRhZ2Utc2l6ZWQg
b3IKLSAgICAgICAgICAgIC8vIHJlbW92ZWQgYXR0cmlidXRlcykuIFRoaXMgcHJldmVudHMgc3Rh
bGUgY2FjaGVkIHNpemVzIHdoZW4gYXR0cmlidXRlcyBsaWtlIHdpZHRoL2hlaWdodAotICAgICAg
ICAgICAgLy8gYXJlIHJlbW92ZWQuIE5vdGU6IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gUmVuZGVy
SW1hZ2UgKDxpbWcgc3JjPSJzdmciPiksIHdoaWNoIG1hbmFnZXMKLSAgICAgICAgICAgIC8vIGl0
cyBvd24gaW50cmluc2ljIHNpemUgdmlhIHNldEludHJpbnNpY1NpemUoKSBkdXJpbmcgaW1hZ2Ug
bG9hZC4KLSAgICAgICAgICAgIGF1dG8gc2l6ZVRvQ2FjaGUgPSBpbnRyaW5zaWNTaXplOworICAg
ICAgICBpbnRyaW5zaWNSYXRpbyA9IFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRp
bygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludHJpbnNpY1NpemUgPSBjb21wdXRlSW50cmlu
c2ljU2l6ZSgpOworICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IHByZWZlcnJlZEFzcGVjdFJhdGlv
KCk7CisKKyAgICAgICAgYXV0byBzaXplVG9DYWNoZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAg
ICAgICBpZiAoZW1iZWRkZWRTVkdSb290KCkgJiYgaXNSZW5kZXJXaWRnZXQoKSkgewogICAgICAg
ICAgICAgaWYgKCFzaXplVG9DYWNoZS53aWR0aCgpKQogICAgICAgICAgICAgICAgIHNpemVUb0Nh
Y2hlLnNldFdpZHRoKGNEZWZhdWx0V2lkdGgpOwogICAgICAgICAgICAgaWYgKCFzaXplVG9DYWNo
ZS5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBzaXplVG9DYWNoZS5zZXRIZWlnaHQoY0RlZmF1
bHRIZWlnaHQpOwogICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXpl
VG9DYWNoZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1w
dHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkKLSAgICAgICAgICAgIG1faW50cmluc2lj
U2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljU2l6ZSk7Ci0KLSAgICAgICAgaWYgKCFpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIXByZWZlcnJlZEFzcGVjdFJh
dGlvLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IHBy
ZWZlcnJlZEFzcGVjdFJhdGlvLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgICAgICBpbnRyaW5z
aWNTaXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICB9Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IGNvbXB1dGVJbnRyaW5zaWNTaXplKCk7
Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gdGhpcy0+cHJlZmVycmVkQXNwZWN0UmF0
aW8oKTsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkgJiYgIWlu
dHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICBtX2ludHJpbnNpY1NpemUgPSBMYXlv
dXRTaXplKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmlu
c2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsKKyAgICAgICAgfSBlbHNlIGlmICghaW50cmluc2lj
UmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5zaWNTaXplLmlzWmVybygpKQorICAgICAgICAgICAg
bV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXplVG9DYWNoZSk7CiAgICAgfQotICAgIGNv
bnN0cmFpbmVkU2l6ZSA9IGludHJpbnNpY1NpemU7Ci19Ci0KLXZvaWQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVz
KFJlbmRlckJveCogY29udGVudFJlbmRlcmVyLCBGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIEZs
b2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Ci17Ci0gICAgY29tcHV0ZUFzcGVjdFJhdGlv
SW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goY29udGVudFJlbmRlcmVyLCBpbnRyaW5zaWNTaXplLCBp
bnRyaW5zaWNSYXRpbyk7CiAKICAgICAvLyBOb3cgY29uc3RyYWluIHRoZSBpbnRyaW5zaWMgc2l6
ZSBhbG9uZyBlYWNoIGF4aXMgYWNjb3JkaW5nIHRvIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGgv
aGVpZ2h0cyBhbG9uZyB0aGUKICAgICAvLyBvcHBvc2l0ZSBheGlzLiBTbyBmb3IgZXhhbXBsZSBh
IG1heGltdW0gd2lkdGggdGhhdCBzaHJpbmtzIG91ciB3aWR0aCB3aWxsIHJlc3VsdCBpbiB0aGUg
aGVpZ2h0IHdlIGNvbXB1dGUgaGVyZQpAQCAtNTk3LDI1ICs1NTgsMTMgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJSZXBsYWNlZDo6cmVwbGFjZWRDb250ZW50UmVjdChjb25zdCBMYXlvdXRTaXplJiBpbnRy
aW5zaWNTaXplKQogICAgIHJldHVybiBmaW5hbFJlY3Q7CiB9CiAKLWRvdWJsZSBSZW5kZXJSZXBs
YWNlZDo6Y29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgY29uc3QKLXsKLSAgICBGbG9hdFNp
emUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1NpemU7Ci0gICAgY29t
cHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRkZWRDb250ZW50Qm94
KCksIGludHJpbnNpY1NpemUsIGludHJpbnNpY1JhdGlvKTsKLSAgICByZXR1cm4gaW50cmluc2lj
UmF0aW8uYXNwZWN0UmF0aW9Eb3VibGUoKTsKLX0KLQogRmxvYXRTaXplIFJlbmRlclJlcGxhY2Vk
Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhlcmUncyBhbiBl
bWJlZGRlZENvbnRlbnRCb3goKSBvZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1bWVudCBhdmFp
bGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1c2VkLgotICAgIEFTU0VSVCgh
ZW1iZWRkZWRDb250ZW50Qm94KCkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFp
bm1lbnQoKSk7CiAgICAgcmV0dXJuIHsgaW50cmluc2ljTG9naWNhbFdpZHRoKCksIGludHJpbnNp
Y0xvZ2ljYWxIZWlnaHQoKSB9OwogfQogCiBGbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6OnByZWZl
cnJlZEFzcGVjdFJhdGlvKCkgY29uc3QKIHsKLSAgICAvLyBJZiB0aGVyZSdzIGFuIGVtYmVkZGVk
Q29udGVudEJveCgpIG9mIGEgcmVtb3RlLCByZWZlcmVuY2VkIGRvY3VtZW50IGF2YWlsYWJsZSwg
dGhpcyBjb2RlLXBhdGggc2hvdWxkIG5ldmVyIGJlIHVzZWQuCi0gICAgQVNTRVJUKCFlbWJlZGRl
ZENvbnRlbnRCb3goKSB8fCBzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgp
KTsKICAgICBhdXRvIGludHJpbnNpY1NpemUgPSBGbG9hdFNpemUoaW50cmluc2ljTG9naWNhbFdp
ZHRoKCksIGludHJpbnNpY0xvZ2ljYWxIZWlnaHQoKSk7CiAgICAgRmxvYXRTaXplIHByZWZlcnJl
ZEFzcGVjdFJhdGlvOwogCkBAIC02NzUsNyArNjI0LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZUFzcGVjdFJhdGlvQWRqdXN0ZWRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVu
aXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byYgc3R5bGUgPSB0aGlzLT5zdHlsZSgpOwot
ICAgIGF1dG8gY29tcHV0ZWRBc3BlY3RSYXRpbyA9IGNvbXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRp
bygpOworICAgIGF1dG8gY29tcHV0ZWRBc3BlY3RSYXRpbyA9IHByZWZlcnJlZEFzcGVjdFJhdGlv
KCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKICAgICBhdXRvIGNvbXB1dGVkSW50cmluc2ljTG9naWNh
bFdpZHRoID0gbWluTG9naWNhbFdpZHRoOwogCiAgICAgaWYgKGF1dG8gZml4ZWRMb2dpY2FsSGVp
Z2h0ID0gc3R5bGUubG9naWNhbEhlaWdodCgpLnRyeUZpeGVkKCkpCkBAIC02OTgsMTMgKzY0Nyw5
IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBOT0RFTEVURSByZXNvbHZlV2lkdGhGb3JSYXRp
byhMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpCiAgICAgcmV0dXJuIExheW91dFVuaXQobG9naWNh
bEhlaWdodCAqIGFzcGVjdFJhdGlvKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIE5PREVMRVRF
IGhhc0ludHJpbnNpY1NpemUoUmVuZGVyQm94KmNvbnRlbnRSZW5kZXJlciwgYm9vbCBoYXNJbnRy
aW5zaWNXaWR0aCwgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgKQorc3RhdGljIGlubGluZSBib29s
IE5PREVMRVRFIGhhc0ludHJpbnNpY1NpemUoY29uc3QgUmVuZGVyUmVwbGFjZWQqIHN2Z1Jvb3Qs
IGJvb2wgaGFzSW50cmluc2ljV2lkdGgsIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0KQogewotICAg
IGlmIChoYXNJbnRyaW5zaWNXaWR0aCAmJiBoYXNJbnRyaW5zaWNIZWlnaHQpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIGlmIChoYXNJbnRyaW5zaWNXaWR0aCB8fCBoYXNJbnRyaW5zaWNIZWln
aHQpCi0gICAgICAgIHJldHVybiBjb250ZW50UmVuZGVyZXIgJiYgY29udGVudFJlbmRlcmVyLT5p
c1JlbmRlck9yTGVnYWN5UmVuZGVyU1ZHUm9vdCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gKGhhc0ludHJpbnNpY1dpZHRoICYmIGhhc0ludHJpbnNpY0hlaWdodCkgfHwgKChoYXNJ
bnRyaW5zaWNXaWR0aCB8fCBoYXNJbnRyaW5zaWNIZWlnaHQpICYmIHN2Z1Jvb3QpOwogfQogCiBM
YXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoU2hv
dWxkQ29tcHV0ZVByZWZlcnJlZCBzaG91bGRDb21wdXRlUHJlZmVycmVkKSBjb25zdApAQCAtNzE1
LDEyICs2NjAsMTAgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgc2gKICAgICBpZiAoc3R5bGUubG9n
aWNhbFdpZHRoKCkuaXNJbnRyaW5zaWNPclN0cmV0Y2goKSkKICAgICAgICAgcmV0dXJuIGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGhVc2luZyhzdHlsZS5sb2dpY2FsV2lkdGgoKSksIHNob3VsZENvbXB1dGVQ
cmVmZXJyZWQpOwogCi0gICAgUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIgPSBlbWJlZGRlZENv
bnRlbnRCb3goKTsKLQogICAgIC8vIDEwLjMuMiBJbmxpbmUsIHJlcGxhY2VkIGVsZW1lbnRzOiBo
dHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS92aXN1ZGV0Lmh0bWwjaW5saW5lLXJlcGxhY2VkLXdp
ZHRoCiAgICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvOwogICAgIEZsb2F0U2l6ZSBjb25zdHJh
aW5lZFNpemU7Ci0gICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVy
cmVkTWluTWF4U2l6ZXMoY29udGVudFJlbmRlcmVyLCBjb25zdHJhaW5lZFNpemUsIGludHJpbnNp
Y1JhdGlvKTsKKyAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJy
ZWRNaW5NYXhTaXplcyhjb25zdHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKIAogICAgIGlm
IChzdHlsZS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8oKSkgewogICAgICAgICBib29sIGNvbXB1dGVk
SGVpZ2h0SXNBdXRvID0gc3R5bGUubG9naWNhbEhlaWdodCgpLmlzQXV0bygpOwpAQCAtNzMwLDcg
KzY3Myw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgICAgIC8vIEZvciBmbGV4IG9y
IGdyaWQgaXRlbXMgd2hlcmUgdGhlIGxvZ2ljYWwgaGVpZ2h0IGhhcyBiZWVuIG92ZXJyaWRlbiB0
aGVuIHdlIHNob3VsZCB1c2UgdGhhdCBzaXplIHRvIGNvbXB1dGUgdGhlIHJlcGxhY2VkIHdpZHRo
IGFzIGxvbmcgYXMgdGhlIGZsZXggb3IKICAgICAgICAgLy8gZ3JpZCBpdGVtIGhhcyBhbiBpbnRy
aW5zaWMgc2l6ZS4gSXQgaXMgcG9zc2libGUgKGluZGVlZCwgY29tbW9uKSBmb3IgYW4gU1ZHIGdy
YXBoaWMgdG8gaGF2ZSBhbiBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvIGJ1dCBub3QgdG8gaGF2ZSBh
biBpbnRyaW5zaWMKICAgICAgICAgLy8gd2lkdGggb3IgaGVpZ2h0LiBUaGVyZSBhcmUgYWxzbyBl
bGVtZW50cyB3aXRoIGludHJpbnNpYyBzaXplcyBidXQgd2l0aG91dCBpbnRyaW5zaWMgcmF0aW8g
KGxpa2UgYW4gaWZyYW1lKS4KLSAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ0xvZ2ljYWxIZWln
aHQgPSAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlzR3Jp
ZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6ZShjb250ZW50UmVuZGVyZXIsIGhhc0ludHJpbnNp
Y1dpZHRoLCBoYXNJbnRyaW5zaWNIZWlnaHQpID8gdGhpcy0+b3ZlcnJpZGluZ0JvcmRlckJveExv
Z2ljYWxIZWlnaHQoKSA6IHN0ZDo6bnVsbG9wdCkpCisgICAgICAgIGlmIChhdXRvIG92ZXJyaWRp
bmdMb2dpY2FsSGVpZ2h0ID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0
ZW0oKSB8fCBpc0dyaWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUoZW1iZWRkZWRTVkdSb290
KCksIGhhc0ludHJpbnNpY1dpZHRoLCBoYXNJbnRyaW5zaWNIZWlnaHQpID8gdGhpcy0+b3ZlcnJp
ZGluZ0JvcmRlckJveExvZ2ljYWxIZWlnaHQoKSA6IHN0ZDo6bnVsbG9wdCkpCiAgICAgICAgICAg
ICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRo
KGNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KCpvdmVycmlkaW5nTG9naWNhbEhlaWdodCkgKiBpbnRy
aW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgpLCBzaG91bGRDb21wdXRlUHJlZmVycmVkKTsK
IAogICAgICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhhdmUgY29tcHV0ZWQg
dmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgYWxzbyBoYXMgYW4gaW50cmluc2ljIHdp
ZHRoLCB0aGVuIHRoYXQgaW50cmluc2ljIHdpZHRoIGlzIHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0
aCcuCkBAIC04MTMsMTkgKzc1NiwxNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21w
dXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdAogICAgIGlm
IChoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHRSZXNwZWN0aW5nTWluTWF4SGVpZ2h0KGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKSkpOwogCi0gICAgUmVuZGVy
Qm94KiBjb250ZW50UmVuZGVyZXIgPSBlbWJlZGRlZENvbnRlbnRCb3goKTsKLQogICAgIC8vIDEw
LjYuMiBJbmxpbmUsIHJlcGxhY2VkIGVsZW1lbnRzOiBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1My
MS92aXN1ZGV0Lmh0bWwjaW5saW5lLXJlcGxhY2VkLWhlaWdodAogICAgIEZsb2F0U2l6ZSBpbnRy
aW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplOwotICAgIGNvbXB1dGVJ
bnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGNvbnRlbnRS
ZW5kZXJlciwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUlu
dHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoY29uc3RyYWlu
ZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBib29sIHdpZHRoSXNBdXRvID0gc3R5bGUo
KS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8oKTsKICAgICBib29sIGhhc0ludHJpbnNpY1dpZHRoID0g
Y29uc3RyYWluZWRTaXplLndpZHRoKCkgPiAwIHx8ICghY29uc3RyYWluZWRTaXplLndpZHRoKCkg
JiYgc2hvdWxkUmVzcGVjdFplcm9JbnRyaW5zaWNXaWR0aCgpKSB8fCBzaG91bGRBcHBseVNpemVP
cklubGluZVNpemVDb250YWlubWVudCgpOwogICAgIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0ID0g
Y29uc3RyYWluZWRTaXplLmhlaWdodCgpID4gMCB8fCBzaG91bGRBcHBseVNpemVDb250YWlubWVu
dCgpOwogCiAgICAgLy8gU2VlIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBmb3IgYSBz
aW1pbGFyIGNoZWNrIGZvciBoZWlnaHRzLgotICAgIGlmIChhdXRvIG92ZXJyaWRpbmdsb2dpY2Fs
V2lkdGggPSAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlz
R3JpZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6ZShjb250ZW50UmVuZGVyZXIsIGhhc0ludHJp
bnNpY1dpZHRoLCBoYXNJbnRyaW5zaWNIZWlnaHQpID8gb3ZlcnJpZGluZ0JvcmRlckJveExvZ2lj
YWxXaWR0aCgpIDogc3RkOjpudWxsb3B0KSkKKyAgICBpZiAoYXV0byBvdmVycmlkaW5nbG9naWNh
bFdpZHRoID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBp
c0dyaWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUoZW1iZWRkZWRTVkdSb290KCksIGhhc0lu
dHJpbnNpY1dpZHRoLCBoYXNJbnRyaW5zaWNIZWlnaHQpID8gb3ZlcnJpZGluZ0JvcmRlckJveExv
Z2ljYWxXaWR0aCgpIDogc3RkOjpudWxsb3B0KSkKICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHRSZXNwZWN0aW5nTWluTWF4SGVpZ2h0KGNvbnRlbnRCb3hMb2dpY2Fs
V2lkdGgoKm92ZXJyaWRpbmdsb2dpY2FsV2lkdGgpICogaW50cmluc2ljUmF0aW8udHJhbnNwb3Nl
ZFNpemUoKS5hc3BlY3RSYXRpb0RvdWJsZSgpKTsKIAogICAgIC8vIElmICdoZWlnaHQnIGFuZCAn
d2lkdGgnIGJvdGggaGF2ZSBjb21wdXRlZCB2YWx1ZXMgb2YgJ2F1dG8nIGFuZCB0aGUgZWxlbWVu
dCBhbHNvIGhhcyBhbiBpbnRyaW5zaWMgaGVpZ2h0LCB0aGVuIHRoYXQgaW50cmluc2ljIGhlaWdo
dCBpcyB0aGUgdXNlZCB2YWx1ZSBvZiAnaGVpZ2h0Jy4KQEAgLTg2MCw3ICs4MDEsNyBAQCB2b2lk
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljS2V5d29yZExvZ2ljYWxXaWR0aHMoTGF5
b3V0VW5pdCYgbWluTG9naWNhbAogewogICAgIGlmIChoYXNJbnRyaW5zaWNBc3BlY3RSYXRpbygp
ICYmICFzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKSkgewogICAgICAgICBpZiAoYXV0
byBmaXhlZEhlaWdodCA9IHN0eWxlKCkubG9naWNhbEhlaWdodCgpLnRyeUZpeGVkKCkpIHsKLSAg
ICAgICAgICAgIGF1dG8gaGVpZ2h0RGVyaXZlZFdpZHRoID0gTGF5b3V0VW5pdCB7IGZpeGVkSGVp
Z2h0LT5yZXNvbHZlWm9vbShzdHlsZSgpLnVzZWRab29tRm9yTGVuZ3RoKCkpICogY29tcHV0ZUlu
dHJpbnNpY0FzcGVjdFJhdGlvKCkgfTsKKyAgICAgICAgICAgIGF1dG8gaGVpZ2h0RGVyaXZlZFdp
ZHRoID0gTGF5b3V0VW5pdCB7IGZpeGVkSGVpZ2h0LT5yZXNvbHZlWm9vbShzdHlsZSgpLnVzZWRa
b29tRm9yTGVuZ3RoKCkpICogcHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJs
ZSgpIH07CiAgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBoZWlnaHREZXJpdmVkV2lkdGg7
CiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBoZWlnaHREZXJpdmVkV2lkdGg7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xMDcxLDE0ICsxMDEyLDYgQEAgdm9pZCBSZW5kZXJSZXBsYWNl
ZDo6bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXplJiBvbGRTaXplKQogICAgIGNs
ZWFyQ2hpbGROZWVkc0xheW91dCgpOwogfQogCi1GbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6Omlu
dHJpbnNpY1JhdGlvKCkgY29uc3QKLXsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87Ci0g
ICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZv
cm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZENvbnRlbnRCb3goKSwgY29uc3RyYWluZWRTaXpl
LCBpbnRyaW5zaWNSYXRpbyk7Ci0gICAgcmV0dXJuIGludHJpbnNpY1JhdGlvOwotfQotCiB2b2lk
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZsb3dQb3NpdGlvbmVkTG9naWNh
bFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZWRWYWx1ZXMpIGNvbnN0
CiB7CiAgICAgUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRzIGlubGluZUNvbnN0cmFpbnRzKCp0
aGlzLCBMb2dpY2FsQm94QXhpczo6SW5saW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmgKaW5kZXggYWIzZjQ3MTBhYTkwLi43MDExOWMzMTRhM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC00MiwxMyArNDIsMTAgQEAg
cHVibGljOgogICAgIGJvb2wgc2V0TmVlZHNMYXlvdXRJZk5lZWRlZEFmdGVySW50cmluc2ljU2l6
ZUNoYW5nZSgpOwogCiAgICAgTGF5b3V0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7
Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvKCkgY29uc3Q7Ci0gICAgCisKICAgICBib29s
IGlzQ29udGVudExpa2VseVZpc2libGVJblZpZXdwb3J0KCk7CiAgICAgYm9vbCBzaG91bGRJbnZh
bGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBkb3VibGUgY29t
cHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIExheW91dFVuaXQgY29t
cHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nKGNvbnN0IFN0eWxlOjpQcmVmZXJyZWRTaXpl
JiBsb2dpY2FsSGVpZ2h0KSBjb25zdDsKQEAgLTYxLDYgKzU4LDkgQEAgcHVibGljOgogICAgIGJv
b2wgcmVwbGFjZWRNaW5Mb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKICAgICBi
b29sIHJlcGxhY2VkTWF4TG9naWNhbEhlaWdodENvbXB1dGVzQXNOb25lKCkgY29uc3Q7CiAKKyAg
ICB2aXJ0dWFsIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgRmxvYXRTaXplIHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3Q7CisKIHByb3RlY3Rl
ZDoKICAgICBSZW5kZXJSZXBsYWNlZChUeXBlLCBFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0
aW9uU2V0PFJlcGxhY2VkRmxhZz4gPSB7IH0pOwogICAgIFJlbmRlclJlcGxhY2VkKFR5cGUsIEVs
ZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplLCBP
cHRpb25TZXQ8UmVwbGFjZWRGbGFnPiA9IHsgfSk7CkBAIC03Nyw5ICs3Nyw2IEBAIHByb3RlY3Rl
ZDoKIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBj
b21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgRmxvYXRTaXplIHByZWZl
cnJlZEFzcGVjdFJhdGlvKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldEludHJpbnNpY1NpemUoY29u
c3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkgeyBtX2ludHJpbnNpY1NpemUgPSBpbnRyaW5z
aWNTaXplOyB9CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCk7CiAgICAg
dmlydHVhbCBib29sIGhhc1JlbGF0aXZlSW50cmluc2ljTG9naWNhbFdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTEwNiw3ICsxMDMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
b21wdXRlQXNwZWN0UmF0aW9BZGp1c3RlZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBj
b25zdCB7IHJldHVybiAwOyB9CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAiUmVuZGVyUmVwbGFjZWQiX3M7IH0KIAogICAgIGJvb2wgY2FuSGF2
ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyMSw4ICsx
MTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBi
b29sIGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgZmluYWw7Ci0gICAgdm9pZCBjb21wdXRl
QXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChSZW5kZXJCb3gqLCBGbG9hdFNpemUm
IGNvbnN0cmFpbmVkU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7Ci0gICAg
dm9pZCBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhT
aXplcyhSZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNp
emUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZUlu
dHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoRmxvYXRTaXpl
JiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDRkYTUwOGI2YTcz
YS4uZGY2NzQ3ZDNiZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmNwcApAQCAtNDg3LDE1ICs0ODcsNTcgQEAgYm9vbCBSZW5kZXJXaWRnZXQ6OnNob3VsZEludmFs
aWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdAogewogICAgIGlmIChSZW5kZXJSZXBsYWNlZDo6
c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7CisgICAgcmV0dXJuIGVtYmVkZGVkU1ZH
Um9vdCgpOwogfQogCi1SZW5kZXJCb3gqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRDb250ZW50Qm94
KCkgY29uc3QKK1JlbmRlclJlcGxhY2VkKiBSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCgp
IGNvbnN0CiB7CiAgICAgaWYgKCFpczxSZW5kZXJFbWJlZGRlZE9iamVjdD4odGhpcykpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0ciBmcmFtZVZpZXcgPSBkeW5hbWljRG93bmNh
c3Q8TG9jYWxGcmFtZVZpZXc+KHdpZGdldCgpKTsKLSAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJh
bWVWaWV3LT5lbWJlZGRlZENvbnRlbnRCb3goKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGZyYW1l
VmlldyA/IGZyYW1lVmlldy0+ZW1iZWRkZWRTVkdSb290KCkgOiBudWxscHRyOworfQorCitGbG9h
dFNpemUgUmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0Cit7CisgICAg
Ly8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20g
Y29udGVudC4KKyAgICAvLyBUaGUgYmFzZSBjbGFzcyByZXR1cm5zIHZhbHVlcyBmcm9tIHRoZSBj
YWNoZSAvIGNvbnRhaW4taW50cmluc2ljLXNpemUgd2l0aG91dCBxdWVyeWluZyBpbWFnZSBkYXRh
LgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4g
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CisKKyAgICBDaGVja2VkUHRy
IHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2Z1Jvb3QpCisgICAgICAg
IHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKworICAgIGF1
dG8gaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CisgICAg
aW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOworCisgICAgaWYgKCFpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICBpbnRyaW5zaWNTaXplID0gaW50cmluc2lj
U2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgcmV0dXJuIGludHJpbnNpY1NpemU7Cit9CisK
K0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QKK3sK
KyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMg
ZnJvbSBjb250ZW50LCBidXQgdGhlCisgICAgLy8gYXNwZWN0IHJhdGlvIGZyb20gdGhlIENTUyBh
c3BlY3QtcmF0aW8gcHJvcGVydHkgaXMgc3RpbGwgYXZhaWxhYmxlIHZpYSB0aGUKKyAgICAvLyBi
YXNlIGNsYXNzICh3aGljaCBkb2Vzbid0IHF1ZXJ5IGltYWdlIGRhdGEpLgorICAgIGlmIChzaG91
bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6
OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJl
ZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJS
ZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKworICAgIGF1dG8gcmF0aW8gPSBzdmdS
b290LT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpOworICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICByYXRpbyA9IHJhdGlvLnRyYW5z
cG9zZWRTaXplKCk7CisKKyAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8
fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8uaXNFbXB0
eSgpKSkKKyAgICAgICAgcmF0aW8gPSBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgp
LmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dp
Y2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAgcmV0dXJuIHJhdGlvOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXgg
ZTAxNzgxNjIwMGRmLi45MmYyODEzOGNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmgKQEAgLTkxLDcgKzkxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQo
KSBjb25zdCA9IGRlbGV0ZTsKIAogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdp
ZHRocygpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkg
Y29uc3QgZmluYWw7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0
IGZpbmFsOworICAgIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFs
OworICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0IGZpbmFsOwogCiAg
ICAgdm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSkgZmluYWw7CiAgICAgdm9p
ZCBzZXRPdmVybGFwVGVzdFJlc3VsdChib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGRlMjk0MzYyNDI5OC4uZWYzMzQw
NGJlNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHAKQEAgLTkxLDEyICs5MSwxNSBAQCBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciogUmVu
ZGVyU1ZHUm9vdDo6dmlld3BvcnRDb250YWluZXIoKSBjb25zdAogCiBib29sIFJlbmRlclNWR1Jv
b3Q6Omhhc0ludHJpbnNpY0FzcGVjdFJhdGlvKCkgY29uc3QKIHsKLSAgICByZXR1cm4gY29tcHV0
ZUludHJpbnNpY0FzcGVjdFJhdGlvKCk7CisgICAgcmV0dXJuIHByZWZlcnJlZEFzcGVjdFJhdGlv
KCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKIH0KIAogRmxvYXRTaXplIFJlbmRlclNWR1Jvb3Q6OmNv
bXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIHsKLSAgICBBU1NFUlRfSU1QTElFUyh2aWV3KCku
ZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzSW5SZW5kZXJUcmVlTGF5b3V0KCksICFzaG91
bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHBy
ZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LgorICAgIC8vIFRoZSBiYXNl
IGNsYXNzIHJldHVybnMgdmFsdWVzIGZyb20gdGhlIGNhY2hlIC8gY29udGFpbi1pbnRyaW5zaWMt
c2l6ZSB3aXRob3V0IHF1ZXJ5aW5nIGltYWdlIGRhdGEuCisgICAgaWYgKHNob3VsZEFwcGx5U2l6
ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUoKTsKICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvU1ZHL2Nvb3Jkcy5o
dG1sI0ludHJpbnNpY1NpemluZwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0geyBzdmdT
VkdFbGVtZW50KCkuaW50cmluc2ljV2lkdGgoKSwgc3ZnU1ZHRWxlbWVudCgpLmludHJpbnNpY0hl
aWdodCgpIH07CiAgICAgLy8gVHJhbnNwb3NlIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKQEAg
LTEwNyw3ICsxMTAsMTEgQEAgRmxvYXRTaXplIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVJbnRyaW5z
aWNTaXplKCkgY29uc3QKIAogRmxvYXRTaXplIFJlbmRlclNWR1Jvb3Q6OnByZWZlcnJlZEFzcGVj
dFJhdGlvKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50
KCkpOworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGltZW5z
aW9ucyBmcm9tIGNvbnRlbnQsIGJ1dCB0aGUKKyAgICAvLyBhc3BlY3QgcmF0aW8gZnJvbSB0aGUg
Q1NTIGFzcGVjdC1yYXRpbyBwcm9wZXJ0eSBpcyBzdGlsbCBhdmFpbGFibGUgdmlhIHRoZQorICAg
IC8vIGJhc2UgY2xhc3MgKHdoaWNoIGRvZXNuJ3QgcXVlcnkgaW1hZ2UgZGF0YSkuCisgICAgaWYg
KHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBs
YWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKIAogICAgIGlmIChzdHlsZSgpLmFzcGVjdFJh
dGlvKCkuaXNSYXRpbygpKQogICAgICAgICByZXR1cm4gRmxvYXRTaXplOjpuYXJyb3dQcmVjaXNp
b24oc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxXaWR0aCgpLnZhbHVlLCBzdHlsZSgpLmFzcGVj
dFJhdGlvTG9naWNhbEhlaWdodCgpLnZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvbGVnYWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXgg
MzZkM2UzODU5ZGI2Li5lMmI0NDNmMGU1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvbGVnYWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvbGVnYWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwCkBAIC04
MSwxMiArODEsMTUgQEAgU1ZHU1ZHRWxlbWVudCYgTGVnYWN5UmVuZGVyU1ZHUm9vdDo6c3ZnU1ZH
RWxlbWVudCgpIGNvbnN0CiAKIGJvb2wgTGVnYWN5UmVuZGVyU1ZHUm9vdDo6aGFzSW50cmluc2lj
QXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlSW50cmluc2ljQXNwZWN0
UmF0aW8oKTsKKyAgICByZXR1cm4gcHJlZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0Rv
dWJsZSgpOwogfQogCiBGbG9hdFNpemUgTGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJp
bnNpY1NpemUoKSBjb25zdAogewotICAgIEFTU0VSVF9JTVBMSUVTKHZpZXcoKS5mcmFtZVZpZXco
KS5sYXlvdXRDb250ZXh0KCkuaXNJblJlbmRlclRyZWVMYXlvdXQoKSwgIXNob3VsZEFwcGx5U2l6
ZUNvbnRhaW5tZW50KCkpOworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRy
aW5zaWMgZGltZW5zaW9ucyBmcm9tIGNvbnRlbnQuCisgICAgLy8gVGhlIGJhc2UgY2xhc3MgcmV0
dXJucyB2YWx1ZXMgZnJvbSB0aGUgY2FjaGUgLyBjb250YWluLWludHJpbnNpYy1zaXplIHdpdGhv
dXQgcXVlcnlpbmcgaW1hZ2UgZGF0YS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6
ZSgpOwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0geyBzdmdTVkdFbGVtZW50KCkuaW50
cmluc2ljV2lkdGgoKSwgc3ZnU1ZHRWxlbWVudCgpLmludHJpbnNpY0hlaWdodCgpIH07CiAgICAg
Ly8gVHJhbnNwb3NlIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKICAgICBpZiAoIWlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCkBAIC05Niw3ICs5OSwxMSBAQCBGbG9hdFNpemUgTGVnYWN5UmVu
ZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogCiBGbG9hdFNpemUgTGVn
YWN5UmVuZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEFT
U0VSVCghc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlu
bWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudCwgYnV0IHRo
ZQorICAgIC8vIGFzcGVjdCByYXRpbyBmcm9tIHRoZSBDU1MgYXNwZWN0LXJhdGlvIHByb3BlcnR5
IGlzIHN0aWxsIGF2YWlsYWJsZSB2aWEgdGhlCisgICAgLy8gYmFzZSBjbGFzcyAod2hpY2ggZG9l
c24ndCBxdWVyeSBpbWFnZSBkYXRhKS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRp
bygpOwogCiAgICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkpCiAgICAgICAg
IHJldHVybiBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9n
aWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFs
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggOWEwZDQ4
MjZhNjkwLi44NjI5ZTBlZDIxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcApAQCAtMjc2LDggKzI3Niw4IEBAIFJlZlB0cjxOYXRpdmVJbWFnZT4gU1ZHSW1hZ2U6
Om5hdGl2ZUltYWdlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgRGVzdGluYXRpCiAgICAg
YXV0byByZW5kZXJpbmdNb2RlID0gbV9wYWdlLT5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZDsKIAogICAgIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cgPSBudWxscHRyOwot
ICAgIGlmIChDaGVja2VkUHRyIGNvbnRlbnRSZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgp
KQotICAgICAgICBob3N0V2luZG93ID0gY29udGVudFJlbmRlcmVyLT5ob3N0V2luZG93KCk7Cisg
ICAgaWYgKENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpKQorICAgICAgICBo
b3N0V2luZG93ID0gc3ZnUm9vdC0+aG9zdFdpbmRvdygpOwogCiAgICAgUmVmUHRyIGltYWdlQnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQ
dXJwb3NlOjpET00sIDEsIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0OjpCR1JBOCwgaG9zdFdpbmRv
dyk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKQEAgLTM5MiwxMiArMzkyLDEyIEBAIEltYWdlRHJh
d1Jlc3VsdCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjCiAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0K
IAotUmVuZGVyQm94KiBTVkdJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRl
clJlcGxhY2VkKiBTVkdJbWFnZTo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsKICAgICBSZWZQ
dHIgcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVsZW1l
bnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJC
b3g+KHJvb3RFbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVy
UmVwbGFjZWQ+KHJvb3RFbGVtZW50LT5yZW5kZXJlcigpKTsKIH0KIAogTG9jYWxGcmFtZVZpZXcq
IFNWR0ltYWdlOjpmcmFtZVZpZXcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuaAppbmRleCBmNDU3N2Q1Y2YwNDIuLmY3NDNhMzcwMzJhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgRWxlbWVudDsK
IGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgTG9jYWxGcmFtZVZpZXc7CiBjbGFzcyBQYWdlOwot
Y2xhc3MgUmVuZGVyQm94OworY2xhc3MgUmVuZGVyUmVwbGFjZWQ7CiBjbGFzcyBTVkdTVkdFbGVt
ZW50OwogY2xhc3MgU1ZHSW1hZ2VDaHJvbWVDbGllbnQ7CiBjbGFzcyBTVkdJbWFnZUZvckNvbnRh
aW5lcjsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIHRyeUNyZWF0ZUZyb21EYXRhKHN0ZDo6c3Bhbjxjb25zdCB1aW50OF90PiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U1ZHSW1hZ2U+JiYpPiYmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc0RhdGFEZWNvZGFibGUoY29uc3QgU2V0dGluZ3MmLCBzdGQ6OnNw
YW48Y29uc3QgdWludDhfdD4pOwogCi0gICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3go
KSBjb25zdDsKKyAgICBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3Q7CiAg
ICAgTG9jYWxGcmFtZVZpZXcqIE5PREVMRVRFIGZyYW1lVmlldygpIGNvbnN0OwogCiAgICAgYm9v
bCBpc1NWR0ltYWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479579</attachid>
            <date>2026-05-10 14:12:22 -0700</date>
            <delta_ts>2026-05-10 15:51:31 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-314479-20260510141221.patch</filename>
            <type>text/plain</type>
            <size>11225</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiZmJiMjJkNGMwZGExYzEzZDBiNGUzNWRiMDYyMDdjYjkzNTMyZDg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAwNTo1OTozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBDbGVhbiB1cCBhc3BlY3QgcmF0aW8gbmFtaW5nOiByZW1vdmUKIGNvbXB1dGVJbnRyaW5zaWNB
c3BlY3RSYXRpbywgaW50cmluc2ljUmF0aW8sCiBpc1JlbmRlclJlcGxhY2VkV2l0aEludHJpbnNp
Y1JhdGlvIGFuZCByZW5hbWUgcmVzb2x2ZUFzcGVjdFJhdGlvCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0NDc5CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4K
Ci0gY29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgd2FzIGp1c3QgcHJlZmVycmVkQXNwZWN0
UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpLgotIGludHJpbnNpY1JhdGlvKCkgd2FzIGp1c3Qg
cHJlZmVycmVkQXNwZWN0UmF0aW8oKS4gQ2FsbGVycyBub3cgdXNlIHByZWZlcnJlZEFzcGVjdFJh
dGlvKCkgZGlyZWN0bHkuIFJlbW92ZWQuCi0gcmVzb2x2ZUFzcGVjdFJhdGlvKCkgcmVuYW1lZCB0
byBhc3BlY3RSYXRpb1ZhbHVlKCkgLSBpdCBqdXN0IHJldHVybnMgdGhlIGFwcGxpY2FibGUgcmF0
aW8gYXMgYSBkb3VibGUsIG5vIHJlc29sdXRpb24gaW52b2x2ZWQuCi0gaXNSZW5kZXJSZXBsYWNl
ZFdpdGhJbnRyaW5zaWNSYXRpbyBjb252ZXJ0ZWQgdG8gYSBmaWxlLWxvY2FsIHN0YXRpYyBoZWxw
ZXIgKHJlcGxhY2VkUHJlZmVycmVkQXNwZWN0UmF0aW8pIGFuZCB0aGVuIGlubGluZWQgaW50byBp
dHMgb25seSBBU1NFUlQgY2FsbGVyLgotIFJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdv
cmRMb2dpY2FsV2lkdGhzIHJlZmFjdG9yZWQgdG8gdXNlIGVhcmx5IHJldHVybnMuCgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94Ojpj
b25zdHJhaW5Mb2dpY2FsTWluTWF4U2l6ZXNCeUFzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlckJveDo6Y29tcHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzIGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVNpemluZ0tleXdvcmRMb2dpY2FsQ29udGVudEhl
aWdodFVzaW5nR2VuZXJpYyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmlzUmVwbGFjZWRX
aXRoUHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgoo
V2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvIGNvbnN0KTogRGVsZXRlZC4K
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoKLS0tCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgIHwgMzIgKysrKysrKysrLS0tLS0t
LS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgIHwgIDEg
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICB8ICAzICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIHwgIDUgLS0tLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggICB8ICA0ICstLQogNSBmaWxl
cyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGEyMmQ3YzUwMGQ3ZC4uOGE1MTMzZmUzNmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNzExLDcgKzcxMSw3
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsTWluTWF4U2l6ZXNCeUFzcGVjdFJh
dGlvKExheW91dFVuaXQmIGNvbXB1dGVkTWluCiAgICAgLy8gYSBzaXplIG9mIHRoZSBpbml0aWFs
IGNvbnRhaW5pbmcgYmxvY2sgYW5kIHRoZSDigJxzdHJldGNoLWZpdOKAnSBzaXppbmcgb2Ygbm9u
LXJlcGxhY2VkIGJsb2NrcyBpZiB0aGV5IGhhdmUgZGVmaW5pdGUgdmFsdWVzLgogICAgIC8vIFNl
ZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNpemluZy0zLyNkZWZpbml0ZQogICAgIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZVRvVXNlID0gc3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5bGVUb1Vz
ZS5hc3BlY3RSYXRpbygpLmhhc1JhdGlvKCkgfHwgaXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpKTsKKyAgICBBU1NFUlQoc3R5bGVUb1VzZS5hc3BlY3RSYXRpbygpLmhhc1JhdGlv
KCkgfHwgKGlzPFJlbmRlclJlcGxhY2VkPigqdGhpcykgJiYgZG93bmNhc3Q8UmVuZGVyUmVwbGFj
ZWQ+KCp0aGlzKS5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCkpKTsK
ICAgICBhdXRvIGxvZ2ljYWxTaXplID0gZGltZW5zaW9uID09IENvbnN0cmFpbkRpbWVuc2lvbjo6
V2lkdGggPyBzdHlsZVRvVXNlLmxvZ2ljYWxXaWR0aCgpIDogc3R5bGVUb1VzZS5sb2dpY2FsSGVp
Z2h0KCk7CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zaXppbmctNC8jYXNwZWN0
LXJhdGlvLW1pbmltdW0KICAgICBpZiAobWluaW11bVNpemVUeXBlID09IE1pbmltdW1TaXplSXNB
dXRvbWF0aWNDb250ZW50QmFzZWQ6OlllcykgewpAQCAtMjkyMSw3ICsyOTIxLDYgQEAgTGF5b3V0
VW5pdCBSZW5kZXJCb3g6OmZpbGxBdmFpbGFibGVNZWFzdXJlKExheW91dFVuaXQgYXZhaWxhYmxl
TG9naWNhbFdpZHRoLCBMYXkKICAgICByZXR1cm4gYXZhaWxhYmxlTG9naWNhbFdpZHRoIC0gbWFy
Z2luU3RhcnQgLSBtYXJnaW5FbmQ7CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5d29yZD4g
dm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhLZXl3
b3JkLCBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcsIExheW91dFVuaXQmIG1pbkxvZ2ljYWxX
aWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewogICAgIGlmIGNvbnN0
ZXhwciAoc3RkOjpzYW1lX2FzPEtleXdvcmQsIENTUzo6S2V5d29yZDo6TWluSW50cmluc2ljPikK
QEAgLTI5MzYsMTQgKzI5MzUsMTcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5d29yZD4gdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocygKICAgICAgICAg
ICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtaW5Mb2dpY2FsV2lkdGgsIG1pbkNo
aWxkcmVuTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBz
dGQ6Om1heChtYXhMb2dpY2FsV2lkdGgsIG1heENoaWxkcmVuTG9naWNhbFdpZHRoKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChpc1JlcGxhY2VkV2l0aFByZWZlcnJlZEFzcGVj
dFJhdGlvKCkgJiYgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNTcGVjaWZpZWQoKSkgeworICAg
ICAgICB9IGVsc2UgaWYgKENoZWNrZWRQdHIgcmVuZGVyUmVwbGFjZWQgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVyUmVwbGFjZWQ+KCp0aGlzKSkgewogICAgICAgICAgICAgLy8gRm9yIHJlcGxhY2Vk
IGVsZW1lbnRzIHdpdGggYW4gaW50cmluc2ljIGFzcGVjdCByYXRpbyAoZS5nLiA8aW1nPikgYW5k
IGEKICAgICAgICAgICAgIC8vIHNwZWNpZmllZCBibG9jayBzaXplLCBjb21wdXRlIHRoZSB0cmFu
c2ZlcnJlZCBtaW4vbWF4LWNvbnRlbnQgaW5saW5lIHNpemUKICAgICAgICAgICAgIC8vIHRocm91
Z2ggdGhlIGludHJpbnNpYyByYXRpbyByYXRoZXIgdGhhbiB1c2luZyB0aGUgcmF3IG5hdHVyYWwg
d2lkdGguCi0gICAgICAgICAgICBhdXRvIGludHJpbnNpY1JhdGlvID0gZG93bmNhc3Q8UmVuZGVy
UmVwbGFjZWQ+KCp0aGlzKS5wcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91Ymxl
KCk7Ci0gICAgICAgICAgICBhdXRvIGNvbXB1dGVkVmFsdWVzID0gY29tcHV0ZUxvZ2ljYWxIZWln
aHQobG9naWNhbEhlaWdodCgpLCBsb2dpY2FsVG9wKCkpOwotICAgICAgICAgICAgYXV0byBjb250
ZW50QmxvY2tTaXplID0gc3RkOjptYXgoMF9sdSwgY29tcHV0ZWRWYWx1ZXMuZXh0ZW50IC0gYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7Ci0gICAgICAgICAgICBtaW5Mb2dpY2FsV2lk
dGggPSBtYXhMb2dpY2FsV2lkdGggPSBMYXlvdXRVbml0KGNvbnRlbnRCbG9ja1NpemUgKiBpbnRy
aW5zaWNSYXRpbyk7CisgICAgICAgICAgICBhdXRvIHByZWZlcnJlZFJhdGlvID0gcmVuZGVyUmVw
bGFjZWQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuYXNwZWN0UmF0aW9Eb3VibGUoKTsKKyAgICAg
ICAgICAgIGlmIChwcmVmZXJyZWRSYXRpbyAmJiBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1Nw
ZWNpZmllZCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBjb21wdXRlZFZhbHVlcyA9IGNvbXB1
dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSwgbG9naWNhbFRvcCgpKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIGNvbnRlbnRCbG9ja1NpemUgPSBzdGQ6Om1heCgwX2x1LCBjb21wdXRlZFZh
bHVlcy5leHRlbnQgLSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAg
ICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBtYXhMb2dpY2FsV2lkdGggPSBMYXlvdXRVbml0KGNv
bnRlbnRCbG9ja1NpemUgKiBwcmVmZXJyZWRSYXRpbyk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICBjb21wdXRlSW50cmluc2ljS2V5d29yZExvZ2ljYWxXaWR0aHMobWluTG9n
aWNhbFdpZHRoLCBtYXhMb2dpY2FsV2lkdGgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IGNvbXB1dGVJbnRyaW5zaWNLZXl3b3JkTG9naWNhbFdpZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1h
eExvZ2ljYWxXaWR0aCk7CiAgICAgfQpAQCAtMzY1OSwxNSArMzY2MSwxNSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBTaXplVHlwZT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmNv
bXB1dGVTaXppbmdLZQogICAgIGF1dG8gbWluTWF4Q29udGVudCA9IFsmXSAtPiBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IHsKICAgICAgICAgLy8gRklYTUU6IFRoZSBDU1Mgc2l6aW5nIHNwZWMg
aXMgY29uc2lkZXJpbmcgY2hhbmdpbmcgd2hhdCBtaW4tY29udGVudC9tYXgtY29udGVudCBzaG91
bGQgcmVzb2x2ZSB0by4KICAgICAgICAgLy8gSWYgdGhhdCBoYXBwZW5zLCB0aGlzIGNvZGUgd2ls
bCBoYXZlIHRvIGNoYW5nZS4KLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlckltYWdlID0gZHluYW1p
Y0Rvd25jYXN0PFJlbmRlckltYWdlPih0aGlzKSkgeworICAgICAgICBpZiAoQ2hlY2tlZFB0ciBy
ZW5kZXJJbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4odGhpcykpIHsKICAgICAg
ICAgICAgIGF1dG8gY29tcHV0ZWRGaXhlZExvZ2ljYWxXaWR0aCA9IHN0eWxlKCkubG9naWNhbFdp
ZHRoKCkudHJ5Rml4ZWQoKTsKICAgICAgICAgICAgIGlmIChjb21wdXRlZEZpeGVkTG9naWNhbFdp
ZHRoICYmICFzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaGFzUmF0aW8oKSkgewotICAgICAgICAgICAg
ICAgIGF1dG8gaW50cmluc2ljUmF0aW8gPSByZW5kZXJJbWFnZS0+aW50cmluc2ljUmF0aW8oKTsK
KyAgICAgICAgICAgICAgICBhdXRvIHByZWZlcnJlZFJhdGlvID0gcmVuZGVySW1hZ2UtPnByZWZl
cnJlZEFzcGVjdFJhdGlvKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVIZWlnaHRG
b3JSYXRpbygKICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0
aCgpLAogICAgICAgICAgICAgICAgICAgICBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgp
LAogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHsgY29tcHV0ZWRGaXhlZExvZ2ljYWxX
aWR0aC0+cmVzb2x2ZVpvb20oc3R5bGUoKS51c2VkWm9vbUZvckxlbmd0aCgpKSB9LAotICAgICAg
ICAgICAgICAgICAgICBpbnRyaW5zaWNSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlv
KCksCisgICAgICAgICAgICAgICAgICAgIHByZWZlcnJlZFJhdGlvLnRyYW5zcG9zZWRTaXplKCku
YXNwZWN0UmF0aW8oKSwKICAgICAgICAgICAgICAgICAgICAgQm94U2l6aW5nOjpDb250ZW50Qm94
CiAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgIH0KQEAgLTM2NzcsOCArMzY3OSw4IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFNpemVUeXBlPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJl
bmRlckJveDo6Y29tcHV0ZVNpemluZ0tlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGFzcGVjdCBy
YXRpby4KICAgICAgICAgICAgICAgICBpZiAoIWlzRmxleEl0ZW0oKSB8fCBkb3duY2FzdDxSZW5k
ZXJGbGV4aWJsZUJveD4ocGFyZW50KCkpLT5pc0hvcml6b250YWxGbG93KCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGlu
Z1dpZHRoID0gb3ZlcnJpZGluZ0JvcmRlckJveExvZ2ljYWxXaWR0aCgpOyBvdmVycmlkaW5nV2lk
dGggJiYgIXJlbmRlckltYWdlLT5pbnRyaW5zaWNSYXRpbygpLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVIZWlnaHRGb3JSYXRpbyhib3JkZXJBbmRQYWRkaW5n
TG9naWNhbFdpZHRoKCksIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCksIGNvbnRlbnRC
b3hMb2dpY2FsV2lkdGgoKm92ZXJyaWRpbmdXaWR0aCksIHJlbmRlckltYWdlLT5pbnRyaW5zaWNS
YXRpbygpLnRyYW5zcG9zZWRTaXplKCkuYXNwZWN0UmF0aW8oKSwgQm94U2l6aW5nOjpDb250ZW50
Qm94KTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nV2lkdGggPSBvdmVycmlk
aW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCk7IG92ZXJyaWRpbmdXaWR0aCAmJiAhcmVuZGVySW1h
Z2UtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzb2x2ZUhlaWdodEZvclJhdGlvKGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lk
dGgoKSwgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSwgY29udGVudEJveExvZ2ljYWxX
aWR0aCgqb3ZlcnJpZGluZ1dpZHRoKSwgcmVuZGVySW1hZ2UtPnByZWZlcnJlZEFzcGVjdFJhdGlv
KCkudHJhbnNwb3NlZFNpemUoKS5hc3BlY3RSYXRpbygpLCBCb3hTaXppbmc6OkNvbnRlbnRCb3gp
OwogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9OwogICAgICAgICAg
ICAgaWYgKGF1dG8gaGVpZ2h0ID0gaGVpZ2h0RnJvbUNyb3NzQXhpc092ZXJyaWRlQW5kQXNwZWN0
UmF0aW8oKSkKQEAgLTUyNTYsMTIgKzUyNTgsNiBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29t
cHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0
cmFpbkxvZ2ljYWxXaWR0aEJ5TWluTWF4KGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklu
bGluZURpcmVjdGlvbiwgKmNvbnRhaW5pbmdCbG9jaygpLCBBbGxvd0ludHJpbnNpYzo6Tm8pOwog
fQogCi1ib29sIFJlbmRlckJveDo6aXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3BlY3RSYXRpbygp
IGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8qIHJlcGxhY2VkID0gZHluYW1pY0Rvd25jYXN0PFJlbmRl
clJlcGxhY2VkPih0aGlzKSkKLSAgICAgICAgcmV0dXJuIHJlcGxhY2VkLT5wcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQogCiBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gUmVuZGVyQm94Ojphc3BlY3RSYXRpb1ZhbHVlKCkgY29uc3QK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBhZWJiNjgwZmEwMjkuLmMy
YzhlZjlmNzdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjg1LDcg
KzY4NSw2IEBAIHByb3RlY3RlZDoKIAogICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhc3BlY3RS
YXRpb1ZhbHVlKCkgY29uc3Q7CiAgICAgYm9vbCBOT0RFTEVURSBzaG91bGRJZ25vcmVBc3BlY3RS
YXRpbygpIGNvbnN0OwotICAgIGJvb2wgaXNSZXBsYWNlZFdpdGhQcmVmZXJyZWRBc3BlY3RSYXRp
bygpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RS
YXRpbygpIGNvbnN0OwogICAgIGJvb2wgaXNSZXNvbHZlYWJsZVN0cmV0Y2hTaXplKGNvbnN0IGF1
dG8mIHNpemUpIGNvbnN0IHsgcmV0dXJuIHNpemUuaXNTdHJldGNoKCkgJiYgY29udGFpbmluZ0Js
b2NrSGFzRGVmaW5pdGVCbG9ja1NpemUoKTsgfQogICAgIGJvb2wgaXNVbnJlc29sdmVhYmxlU3Ry
ZXRjaFNpemUoY29uc3QgYXV0byYgc2l6ZSkgY29uc3QgeyByZXR1cm4gc2l6ZS5pc1N0cmV0Y2go
KSAmJiAhY29udGFpbmluZ0Jsb2NrSGFzRGVmaW5pdGVCbG9ja1NpemUoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCA1ZWFmOTJhNjE3NmUuLjUyY2NlYTczZDdi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTg0LDYgKzg0LDgg
QEAgcHVibGljOgogICAgIGJvb2wgaXNNdWx0aVJlcHJlc2VudGF0aW9uSEVJQygpIGNvbnN0Owog
I2VuZGlmCiAKKyAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5h
bDsKKwogcHJvdGVjdGVkOgogICAgIFJlbmRlckltYWdlKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJT
dHlsZSYmLCBPcHRpb25TZXQ8UmVwbGFjZWRGbGFnPiwgU3R5bGU6OkltYWdlKiA9IG51bGxwdHIs
IGNvbnN0IGZsb2F0IGltYWdlRGV2aWNlUGl4ZWxSYXRpbyA9IDEuMGYpOwogICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CkBAIC05MSw3ICs5Myw2IEBAIHByb3RlY3RlZDoKICAg
ICBib29sIHNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdCBmaW5hbDsKICAg
ICBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAgRmxv
YXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRTaXpl
IHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JlZ3JvdW5k
SXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1bnNp
Z25lZCBtYXhEZXB0aFRvVGVzdCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0eWxlV2ls
bENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmlu
ZGV4IDY1MTA2YTlmMDE4Ni4uZDZlMTQ5ZDkxYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTEwMTIsMTEgKzEwMTIsNiBAQCB2b2lkIFJlbmRl
clJlcGxhY2VkOjpsYXlvdXRTaGFkb3dDb250ZW50KGNvbnN0IExheW91dFNpemUmIG9sZFNpemUp
CiAgICAgY2xlYXJDaGlsZE5lZWRzTGF5b3V0KCk7CiB9CiAKLUZsb2F0U2l6ZSBSZW5kZXJSZXBs
YWNlZDo6aW50cmluc2ljUmF0aW8oKSBjb25zdAotewotICAgIHJldHVybiBwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpOwotfQotCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRP
ZkZsb3dQb3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYg
Y29tcHV0ZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRz
IGlubGluZUNvbnN0cmFpbnRzKCp0aGlzLCBMb2dpY2FsQm94QXhpczo6SW5saW5lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYjQ3NGMzZDZjZDBhLi43
MDExOWMzMTRhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
CkBAIC00MiwxMiArNDIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgc2V0TmVlZHNMYXlvdXRJZk5l
ZWRlZEFmdGVySW50cmluc2ljU2l6ZUNoYW5nZSgpOwogCiAgICAgTGF5b3V0U2l6ZSBpbnRyaW5z
aWNTaXplKCkgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvKCkgY29u
c3Q7Ci0gICAgCisKICAgICBib29sIGlzQ29udGVudExpa2VseVZpc2libGVJblZpZXdwb3J0KCk7
CiAgICAgYm9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLQogICAgIHZpcnR1YWwgYm9vbCBwYWludHNDb250ZW50KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNp
bmcoY29uc3QgU3R5bGU6OlByZWZlcnJlZFNpemUmIGxvZ2ljYWxIZWlnaHQpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>