<?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>314456</bug_id>
          
          <creation_ts>2026-05-08 19:18:33 -0700</creation_ts>
          <short_desc>[cleanup] Rename embeddedContentBox() to embeddedSVGRoot() and tighten return type to RenderReplaced*Rename embeddedContentBox() to embeddedSVGRoot() and tighten return type to RenderReplaced*</short_desc>
          <delta_ts>2026-05-10 12:01: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>2209246</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2026-05-08 19:18:33 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209248</commentid>
    <comment_count>1</comment_count>
      <attachid>479536</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-08 19:22:04 -0700</bug_when>
    <thetext>Created attachment 479536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209253</commentid>
    <comment_count>2</comment_count>
      <attachid>479537</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-08 20:05:44 -0700</bug_when>
    <thetext>Created attachment 479537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209390</commentid>
    <comment_count>3</comment_count>
      <attachid>479549</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 15:50:12 -0700</bug_when>
    <thetext>Created attachment 479549
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209495</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-05-10 12:00:46 -0700</bug_when>
    <thetext>Committed 312970@main (a5281fccbebd): &lt;https://commits.webkit.org/312970@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 479549.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209496</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-05-10 12:01:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/176740096&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479536</attachid>
            <date>2026-05-08 19:22:04 -0700</date>
            <delta_ts>2026-05-08 20:05:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314456-20260508192203.patch</filename>
            <type>text/plain</type>
            <size>18708</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5YTE1ZDYzZDZkMDYxY2M2NDFmOTQwZWQyMjFhMmRhZDk5YjNkYWI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAxOToxNzo0NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFJlbmFtZSBl
bWJlZGRlZENvbnRlbnRCb3goKSB0byBlbWJlZGRlZFNWR1Jvb3QoKSBhbmQgdGlnaHRlbgogcmV0
dXJuIHR5cGUgdG8gUmVuZGVyUmVwbGFjZWQqIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTQ0NTYKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhlIGZ1bmN0
aW9uIHdhcyBjYWxsZWQgImVtYmVkZGVkQ29udGVudEJveCIgYW5kIHJldHVybmVkIFJlbmRlckJv
eCosIGJ1dCBpdApvbmx5IGV2ZXIgcmV0dXJucyB0aGUgUmVuZGVyU1ZHUm9vdCAob3IgTGVnYWN5
UmVuZGVyU1ZHUm9vdCkgb2YgYW4gZW1iZWRkZWQgU1ZHCmRvY3VtZW50LiBCb3RoIG9mIHRob3Nl
IGFsd2F5cyBpbmhlcml0IGZyb20gUmVuZGVyUmVwbGFjZWQsIG5ldmVyIGp1c3QgUmVuZGVyQm94
LgoKVGhlIHZhZ3VlIG5hbWUgbWFkZSBpdCB1bmNsZWFyIHdoYXQgdGhlIGZ1bmN0aW9uIGFjdHVh
bGx5IGRvZXMuIENhbGxlcnMgaGFkIHRvCmNhc3QgdGhlIHJlc3VsdCBiYWNrIHRvIFJlbmRlclJl
cGxhY2VkIHRvIHVzZSBpdCwgYW5kIHRoZSBnZW5lcmljIFJlbmRlckJveCoKcmV0dXJuIHR5cGUg
aGlkIHRoZSBpbnZhcmlhbnQgdGhhdCBTVkcgcm9vdHMgYXJlIGFsd2F5cyByZXBsYWNlZCBlbGVt
ZW50cy4KCiogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHA6CihXZWJDb3Jl
OjpMb2NhbEZyYW1lVmlldzo6Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQpOgooV2ViQ29y
ZTo6TG9jYWxGcmFtZVZpZXc6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3JlOjpMb2Nh
bEZyYW1lVmlldzo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcDoKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpjb21wdXRlSW50cmluc2lj
U2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cHJlZmVycmVkQXNwZWN0UmF0aW8g
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRX
aWR0aHMgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1h
eFNpemVzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGggY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmVtYmVkZGVkU1ZHUm9vdCBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0
KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoK
KFdlYkNvcmU6OlJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocyBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgooV2ViQ29yZTo6U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKToK
KFdlYkNvcmU6OlNWR0ltYWdlOjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgooV2ViQ29yZTo6U1ZH
SW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6Ci0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2Nh
bEZyYW1lVmlldy5jcHAgICAgICB8IDE5ICsrKystLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcGFn
ZS9Mb2NhbEZyYW1lVmlldy5oICAgICAgICB8ICAzICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwICAgIHwgMzQgKysrKysrKysrLS0tLS0tLS0tLS0tCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgfCAgNiArKy0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwICAgfCAyOSArKysrKysrLS0tLS0tLS0tLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCAgICAgfCAgMiArLQogU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCAgICB8ICA4ICsrLS0tCiBTb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCAgICAgIHwgIDQgKy0tCiAxMCBmaWxlcyBjaGFu
Z2VkLCA0NSBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TG9jYWxGcmFtZVZpZXcuY3BwCmluZGV4IGRlZGU2YjUwNDVhNi4uNzhkMWI2NzllM2U0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcApAQCAtMTIxMywyNSArMTIxMywxOCBA
QCB2b2lkIExvY2FsRnJhbWVWaWV3Ojpmb3JjZUxheW91dFBhcmVudFZpZXdJZk5lZWRlZCgpCiAg
ICAgaWYgKCFvd25lclJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBDaGVja2VkUHRy
IGNvbnRlbnRCb3ggPSBlbWJlZGRlZENvbnRlbnRCb3goKTsKLSAgICBpZiAoIWNvbnRlbnRCb3gp
CisgICAgQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCk7CisgICAgaWYgKCFz
dmdSb290KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFt
aWNEb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290Pihjb250ZW50Qm94LmdldCgpKSkgewotICAg
ICAgICBpZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFzdmdSb290LT5uZWVkc0xheW91
dCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdXRvKiBzdmdSb290
ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KGNvbnRlbnRCb3guZ2V0KCkpKSB7Ci0g
ICAgICAgIGlmIChzdmdSb290LT5ldmVySGFkTGF5b3V0KCkgJiYgIXN2Z1Jvb3QtPm5lZWRzTGF5
b3V0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmIChzdmdSb290LT5ldmVy
SGFkTGF5b3V0KCkgJiYgIXN2Z1Jvb3QtPm5lZWRzTGF5b3V0KCkpCisgICAgICAgIHJldHVybjsK
IAogICAgIExPRyhMYXlvdXQsICJMb2NhbEZyYW1lVmlldyAlcCBmb3JjZUxheW91dFBhcmVudFZp
ZXdJZk5lZWRlZCBzY2hlZHVsaW5nIGxheW91dCBvbiBwYXJlbnQgTG9jYWxGcmFtZVZpZXcgJXAi
LCB0aGlzLCAmb3duZXJSZW5kZXJlci0+dmlldygpLmZyYW1lVmlldygpKTsKIAogICAgIC8vIElm
IHRoZSBlbWJlZGRlZCBTVkcgZG9jdW1lbnQgYXBwZWFycyB0aGUgZmlyc3QgdGltZSwgdGhlIG93
bmVyUmVuZGVyZXIgaGFzIGFscmVhZHkgZmluaXNoZWQKICAgICAvLyBsYXlvdXQgd2l0aG91dCBr
bm93aW5nIGFib3V0IHRoZSBleGlzdGVuY2Ugb2YgdGhlIGVtYmVkZGVkIFNWRyBkb2N1bWVudCwg
YmVjYXVzZSBSZW5kZXJSZXBsYWNlZAotICAgIC8vIGVtYmVkZGVkQ29udGVudEJveCgpIHJldHVy
bnMgbnVsbHB0ciwgYXMgbG9uZyBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgaXNuJ3QgbG9hZGVk
IHlldC4gQmVmb3JlCisgICAgLy8gZW1iZWRkZWRTVkdSb290KCkgcmV0dXJucyBudWxscHRyLCBh
cyBsb25nIGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBpc24ndCBsb2FkZWQgeWV0LiBCZWZvcmUK
ICAgICAvLyBib3RoZXJpbmcgdG8gbGF5IG91dCB0aGUgU1ZHIGRvY3VtZW50LCBtYXJrIHRoZSBv
d25lclJlbmRlcmVyIG5lZWRpbmcgbGF5b3V0IGFuZCBhc2sgaXRzCiAgICAgLy8gTG9jYWxGcmFt
ZVZpZXcgZm9yIGEgbGF5b3V0LiBBZnRlciB0aGF0IHRoZSBSZW5kZXJFbWJlZGRlZE9iamVjdCAo
b3duZXJSZW5kZXJlcikgY2FycmllcyB0aGUKICAgICAvLyBjb3JyZWN0IHNpemUsIHdoaWNoIExl
Z2FjeVJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aC9IZWlnaHQgcmVs
eSBvbiwgd2hlbiBsYXlpbmcKQEAgLTE1MjAsNyArMTUxMyw3IEBAIGJvb2wgTG9jYWxGcmFtZVZp
ZXc6OnNob3VsZERlZmVyU2Nyb2xsVXBkYXRlQWZ0ZXJDb250ZW50U2l6ZUNoYW5nZSgpCiAgICAg
cmV0dXJuIChsYXlvdXRDb250ZXh0KCkubGF5b3V0UGhhc2UoKSA8IExvY2FsRnJhbWVWaWV3TGF5
b3V0Q29udGV4dDo6TGF5b3V0UGhhc2U6OkluUG9zdExheW91dCkgJiYgKGxheW91dENvbnRleHQo
KS5sYXlvdXRQaGFzZSgpICE9IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0UGhh
c2U6Ok91dHNpZGVMYXlvdXQpOwogfQogCi1SZW5kZXJCb3gqIExvY2FsRnJhbWVWaWV3OjplbWJl
ZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIExvY2FsRnJhbWVWaWV3Ojpl
bWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIENoZWNrZWRQdHIgcmVuZGVyVmlldyA9IHRo
aXMtPnJlbmRlclZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2FsRnJhbWVWaWV3LmgKaW5kZXggMWY2NjI4MjNhMTJmLi40MTY3MTkwZGRlZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgUmVuZGVy
RW1iZWRkZWRPYmplY3Q7CiBjbGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlckxheWVyTW9k
ZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBSZW5kZXJSZXBsYWNlZDsKIGNs
YXNzIFJlbmRlclNjcm9sbGJhclBhcnQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRl
clZpZXc7CkBAIC01ODIsNyArNTgzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBOT0RFTEVURSBz
aG91bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IGZpbmFsOwogCi0gICAgUmVuZGVy
Qm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdDsKKyAgICBSZW5kZXJSZXBsYWNlZCogZW1i
ZWRkZWRTVkdSb290KCkgY29uc3Q7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRU
cmFja3NSZXBhaW50cyhib29sKTsKICAgICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0
IHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAppbmRleCAwYzYxMjBiMThlOWQuLmQwMjU2MWI5OTg5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC05NDIsMTYgKzk0MiwxMyBA
QCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpOwogCi0gICAgaWYgKGF1
dG8qIGNvbnRlbnRSZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgpKSB7Ci0gICAgICAgIGlm
IChhdXRvKiByZXBsYWNlZENvbnRlbnQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+
KGNvbnRlbnRSZW5kZXJlcikpIHsKLSAgICAgICAgICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9IHJl
cGxhY2VkQ29udGVudC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgICAgIGludHJp
bnNpY1NpemUuc2NhbGUoc3R5bGUoKS51c2VkWm9vbSgpKTsKLSAgICAgICAgICAgIGludHJpbnNp
Y1NpemUuc2NhbGUoaW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOwotICAgICAgICAgICAgaWYgKCFp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICAgICAgICAgIGludHJpbnNpY1NpemUg
PSBpbnRyaW5zaWNTaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgICAgICByZXR1cm4gaW50
cmluc2ljU2l6ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4geyB9OworICAgIGlmIChDaGVj
a2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKSkgeworICAgICAgICBhdXRvIGludHJp
bnNpY1NpemUgPSBzdmdSb290LT5jb21wdXRlSW50cmluc2ljU2l6ZSgpOworICAgICAgICBpbnRy
aW5zaWNTaXplLnNjYWxlKHN0eWxlKCkudXNlZFpvb20oKSk7CisgICAgICAgIGludHJpbnNpY1Np
emUuc2NhbGUoaW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOworICAgICAgICBpZiAoIWlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBpbnRyaW5zaWNTaXplID0gaW50cmluc2lj
U2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICByZXR1cm4gaW50cmluc2ljU2l6ZTsKICAg
ICB9CiAKICAgICBhdXRvIGludHJpbnNpY1NpemUgPSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUoKTsKQEAgLTk3OSwxMyArOTc2LDEwIEBAIEZsb2F0U2l6ZSBSZW5kZXJJbWFn
ZTo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogICAgICAgICByZXR1cm4geyAxLjAsIDEu
MCB9OwogICAgIH0KIAotICAgIGlmIChhdXRvKiBjb250ZW50UmVuZGVyZXIgPSBlbWJlZGRlZENv
bnRlbnRCb3goKSkgewotICAgICAgICBGbG9hdFNpemUgcmF0aW87Ci0gICAgICAgIGlmIChhdXRv
KiByZXBsYWNlZENvbnRlbnQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KGNvbnRl
bnRSZW5kZXJlcikpIHsKLSAgICAgICAgICAgIHJhdGlvID0gcmVwbGFjZWRDb250ZW50LT5wcmVm
ZXJyZWRBc3BlY3RSYXRpbygpOwotICAgICAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpICYmICFyYXRpby5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmF0aW8gPSByYXRp
by50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICB9CisgICAgaWYgKENoZWNrZWRQdHIgc3ZnUm9v
dCA9IGVtYmVkZGVkU1ZHUm9vdCgpKSB7CisgICAgICAgIGF1dG8gcmF0aW8gPSBzdmdSb290LT5w
cmVmZXJyZWRBc3BlY3RSYXRpbygpOworICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgJiYgIXJhdGlvLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJhdGlvID0gcmF0aW8udHJh
bnNwb3NlZFNpemUoKTsKIAogICAgICAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0
aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8u
aXNFbXB0eSgpKSkKICAgICAgICAgICAgIHJhdGlvID0gRmxvYXRTaXplOjpuYXJyb3dQcmVjaXNp
b24oc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxXaWR0aCgpLnZhbHVlLCBzdHlsZSgpLmFzcGVj
dFJhdGlvTG9naWNhbEhlaWdodCgpLnZhbHVlKTsKQEAgLTEwMDAsMTQgKzk5NCwxNCBAQCBib29s
IFJlbmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QKIHsK
ICAgICBpZiAoUmVuZGVyUmVwbGFjZWQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMo
KSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGVtYmVkZGVkQ29udGVudEJveCgp
OworICAgIHJldHVybiBlbWJlZGRlZFNWR1Jvb3QoKTsKIH0KIAotUmVuZGVyQm94KiBSZW5kZXJJ
bWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxhY2VkKiBSZW5kZXJJ
bWFnZTo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsKICAgICBpZiAoUmVmUHRyIGNhY2hlZElt
YWdlID0gdGhpcy0+Y2FjaGVkSW1hZ2UoKSkgewogICAgICAgICBpZiAoUmVmUHRyIGltYWdlID0g
ZHluYW1pY0Rvd25jYXN0PFNWR0ltYWdlPihjYWNoZWRJbWFnZS0+aW1hZ2UoKSkpCi0gICAgICAg
ICAgICByZXR1cm4gaW1hZ2UtPmVtYmVkZGVkQ29udGVudEJveCgpOworICAgICAgICAgICAgcmV0
dXJuIGltYWdlLT5lbWJlZGRlZFNWR1Jvb3QoKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDJjZTc1NDk1MmFm
ZS4uNWVhZjkyYTYxNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApA
QCAtODksNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBv
dmVycmlkZTsKIAogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNv
bnN0IGZpbmFsOwotICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgZmlu
YWw7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IGZpbmFsOwog
ICAgIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFsOwogICAgIEZs
b2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZm9y
ZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxvY2FsUmVj
dCwgdW5zaWduZWQgbWF4RGVwdGhUb1Rlc3QpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggOThiOTc2MjQxOGY4Li5jMjg1
ZGM5YTkzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cApAQCAtNDgwLDcgKzQ4MCw3IEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5z
aWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKEZsCiAgICAgICAgIGlu
dHJpbnNpY1JhdGlvID0gcHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKIAogICAgICAgICBhdXRvIHNp
emVUb0NhY2hlID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGludHJpbnNpY1NpemUgOiBp
bnRyaW5zaWNTaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgIGlmIChlbWJlZGRlZENvbnRl
bnRCb3goKSAmJiBpc1JlbmRlcldpZGdldCgpKSB7CisgICAgICAgIGlmIChlbWJlZGRlZFNWR1Jv
b3QoKSAmJiBpc1JlbmRlcldpZGdldCgpKSB7CiAgICAgICAgICAgICBpZiAoIXNpemVUb0NhY2hl
LndpZHRoKCkpCiAgICAgICAgICAgICAgICAgc2l6ZVRvQ2FjaGUuc2V0V2lkdGgoY0RlZmF1bHRX
aWR0aCk7CiAgICAgICAgICAgICBpZiAoIXNpemVUb0NhY2hlLmhlaWdodCgpKQpAQCAtNjgyLDcg
KzY4Miw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgICAgIC8vIEZvciBmbGV4IG9y
IGdyaWQgaXRlbXMgd2hlcmUgdGhlIGxvZ2ljYWwgaGVpZ2h0IGhhcyBiZWVuIG92ZXJyaWRlbiB0
aGVuIHdlIHNob3VsZCB1c2UgdGhhdCBzaXplIHRvIGNvbXB1dGUgdGhlIHJlcGxhY2VkIHdpZHRo
IGFzIGxvbmcgYXMgdGhlIGZsZXggb3IKICAgICAgICAgLy8gZ3JpZCBpdGVtIGhhcyBhbiBpbnRy
aW5zaWMgc2l6ZS4gSXQgaXMgcG9zc2libGUgKGluZGVlZCwgY29tbW9uKSBmb3IgYW4gU1ZHIGdy
YXBoaWMgdG8gaGF2ZSBhbiBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvIGJ1dCBub3QgdG8gaGF2ZSBh
biBpbnRyaW5zaWMKICAgICAgICAgLy8gd2lkdGggb3IgaGVpZ2h0LiBUaGVyZSBhcmUgYWxzbyBl
bGVtZW50cyB3aXRoIGludHJpbnNpYyBzaXplcyBidXQgd2l0aG91dCBpbnRyaW5zaWMgcmF0aW8g
KGxpa2UgYW4gaWZyYW1lKS4KLSAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ0xvZ2ljYWxIZWln
aHQgPSAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlzR3Jp
ZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6ZShlbWJlZGRlZENvbnRlbnRCb3goKSwgaGFzSW50
cmluc2ljV2lkdGgsIGhhc0ludHJpbnNpY0hlaWdodCkgPyB0aGlzLT5vdmVycmlkaW5nQm9yZGVy
Qm94TG9naWNhbEhlaWdodCgpIDogc3RkOjpudWxsb3B0KSkKKyAgICAgICAgaWYgKGF1dG8gb3Zl
cnJpZGluZ0xvZ2ljYWxIZWlnaHQgPSAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNG
bGV4SXRlbSgpIHx8IGlzR3JpZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6ZShlbWJlZGRlZFNW
R1Jvb3QoKSwgaGFzSW50cmluc2ljV2lkdGgsIGhhc0ludHJpbnNpY0hlaWdodCkgPyB0aGlzLT5v
dmVycmlkaW5nQm9yZGVyQm94TG9naWNhbEhlaWdodCgpIDogc3RkOjpudWxsb3B0KSkKICAgICAg
ICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4
V2lkdGgoY29udGVudEJveExvZ2ljYWxIZWlnaHQoKm92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0KSAq
IGludHJpbnNpY1JhdGlvLmFzcGVjdFJhdGlvRG91YmxlKCksIHNob3VsZENvbXB1dGVQcmVmZXJy
ZWQpOwogCiAgICAgICAgIC8vIElmICdoZWlnaHQnIGFuZCAnd2lkdGgnIGJvdGggaGF2ZSBjb21w
dXRlZCB2YWx1ZXMgb2YgJ2F1dG8nIGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhbiBpbnRyaW5z
aWMgd2lkdGgsIHRoZW4gdGhhdCBpbnRyaW5zaWMgd2lkdGggaXMgdGhlIHVzZWQgdmFsdWUgb2Yg
J3dpZHRoJy4KQEAgLTc3NSw3ICs3NzUsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdAogICAg
IGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0ID0gY29uc3RyYWluZWRTaXplLmhlaWdodCgpID4gMCB8
fCBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpOwogCiAgICAgLy8gU2VlIGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHQoKSBmb3IgYSBzaW1pbGFyIGNoZWNrIGZvciBoZWlnaHRzLgotICAg
IGlmIChhdXRvIG92ZXJyaWRpbmdsb2dpY2FsV2lkdGggPSAoIWludHJpbnNpY1JhdGlvLmlzRW1w
dHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlzR3JpZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6
ZShlbWJlZGRlZENvbnRlbnRCb3goKSwgaGFzSW50cmluc2ljV2lkdGgsIGhhc0ludHJpbnNpY0hl
aWdodCkgPyBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCkgOiBzdGQ6Om51bGxvcHQp
KQorICAgIGlmIChhdXRvIG92ZXJyaWRpbmdsb2dpY2FsV2lkdGggPSAoIWludHJpbnNpY1JhdGlv
LmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlzR3JpZEl0ZW0oKSkgJiYgaGFzSW50cmlu
c2ljU2l6ZShlbWJlZGRlZFNWR1Jvb3QoKSwgaGFzSW50cmluc2ljV2lkdGgsIGhhc0ludHJpbnNp
Y0hlaWdodCkgPyBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCkgOiBzdGQ6Om51bGxv
cHQpKQogICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFJlc3BlY3Rp
bmdNaW5NYXhIZWlnaHQoY29udGVudEJveExvZ2ljYWxXaWR0aCgqb3ZlcnJpZGluZ2xvZ2ljYWxX
aWR0aCkgKiBpbnRyaW5zaWNSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFzcGVjdFJhdGlvRG91Ymxl
KCkpOwogCiAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNvbXB1dGVk
IHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFuIGludHJpbnNpYyBo
ZWlnaHQsIHRoZW4gdGhhdCBpbnRyaW5zaWMgaGVpZ2h0IGlzIHRoZSB1c2VkIHZhbHVlIG9mICdo
ZWlnaHQnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCA4
ZDk0ZTVkNTA1NmQuLjQ2MTdmYjdjMmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
b21wdXRlQXNwZWN0UmF0aW9BZGp1c3RlZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBj
b25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyUmVwbGFjZWQiX3M7IH0KIAogICAgIGJvb2wg
Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYjUyMTNlNTg1MTExLi5k
OTU4M2RlNjViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3Bw
CkBAIC00ODcsMjggKzQ4NywyNCBAQCBib29sIFJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0
ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0CiB7CiAgICAgaWYgKFJlbmRlclJlcGxhY2VkOjpzaG91
bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBlbWJlZGRlZENvbnRlbnRCb3goKTsKKyAgICByZXR1cm4gZW1iZWRkZWRTVkdSb290
KCk7CiB9CiAKLVJlbmRlckJveCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3goKSBj
b25zdAorUmVuZGVyUmVwbGFjZWQqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRTVkdSb290KCkgY29u
c3QKIHsKICAgICBpZiAoIWlzPFJlbmRlckVtYmVkZGVkT2JqZWN0Pih0aGlzKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgUmVmUHRyIGZyYW1lVmlldyA9IGR5bmFtaWNEb3duY2FzdDxM
b2NhbEZyYW1lVmlldz4od2lkZ2V0KCkpOwotICAgIHJldHVybiBmcmFtZVZpZXcgPyBmcmFtZVZp
ZXctPmVtYmVkZGVkQ29udGVudEJveCgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gZnJhbWVWaWV3
ID8gZnJhbWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxwdHI7CiB9CiAKIEZsb2F0U2l6
ZSBSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIHsKLSAgICBhdXRv
KiBjb250ZW50UmVuZGVyZXIgPSBlbWJlZGRlZENvbnRlbnRCb3goKTsKLSAgICBpZiAoIWNvbnRl
bnRSZW5kZXJlcikKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsK
KyAgICBpZiAoIXN2Z1Jvb3QpCiAgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0
ZUludHJpbnNpY1NpemUoKTsKIAotICAgIGF1dG8qIHJlcGxhY2VkQ29udGVudCA9IGR5bmFtaWNE
b3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oY29udGVudFJlbmRlcmVyKTsKLSAgICBpZiAoIXJlcGxh
Y2VkQ29udGVudCkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIGF1dG8gaW50cmluc2ljU2l6
ZSA9IHJlcGxhY2VkQ29udGVudC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICBhdXRvIGlu
dHJpbnNpY1NpemUgPSBzdmdSb290LT5jb21wdXRlSW50cmluc2ljU2l6ZSgpOwogICAgIGludHJp
bnNpY1NpemUuc2NhbGUoc3R5bGUoKS51c2VkWm9vbSgpKTsKIAogICAgIGlmICghaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKQEAgLTUxOSwxNiArNTE1LDEzIEBAIEZsb2F0U2l6ZSBSZW5kZXJX
aWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIAogRmxvYXRTaXplIFJlbmRlcldp
ZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIGF1dG8qIGNvbnRlbnRS
ZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgpOwotICAgIGlmICghY29udGVudFJlbmRlcmVy
KQorICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICgh
c3ZnUm9vdCkKICAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RS
YXRpbygpOwogCi0gICAgRmxvYXRTaXplIHJhdGlvOwotICAgIGlmIChhdXRvKiByZXBsYWNlZENv
bnRlbnQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KGNvbnRlbnRSZW5kZXJlcikp
IHsKLSAgICAgICAgcmF0aW8gPSByZXBsYWNlZENvbnRlbnQtPnByZWZlcnJlZEFzcGVjdFJhdGlv
KCk7Ci0gICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNF
bXB0eSgpKQotICAgICAgICAgICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOwotICAg
IH0KKyAgICBhdXRvIHJhdGlvID0gc3ZnUm9vdC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKyAg
ICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgIXJhdGlvLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOwogCiAgICAgaWYgKHN0eWxlKCku
YXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc0F1dG9B
bmRSYXRpbygpICYmIHJhdGlvLmlzRW1wdHkoKSkpCiAgICAgICAgIHJhdGlvID0gRmxvYXRTaXpl
OjpuYXJyb3dQcmVjaXNpb24oc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxXaWR0aCgpLnZhbHVl
LCBzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbEhlaWdodCgpLnZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCBjMjI3Y2IwZjcwODUuLjkyZjI4MTM4Y2Fh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtOTEsNyArOTEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCiAgICAg
Ym9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QgZmluYWw7Ci0gICAg
UmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBmaW5hbDsKKyAgICBSZW5kZXJS
ZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRTaXplIGNv
bXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRTaXplIHByZWZlcnJl
ZEFzcGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuY3BwCmluZGV4IDlhMGQ0ODI2YTY5MC4uODYyOWUwZWQyMTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTI3Niw4ICsyNzYsOCBAQCBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb25zdCBGbG9hdFNpemUmIHNp
emUsIGNvbnN0IERlc3RpbmF0aQogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IG1fcGFnZS0+c2V0
dGluZ3MoKS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2Nl
bGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICBIb3N0V2luZG93
KiBob3N0V2luZG93ID0gbnVsbHB0cjsKLSAgICBpZiAoQ2hlY2tlZFB0ciBjb250ZW50UmVuZGVy
ZXIgPSBlbWJlZGRlZENvbnRlbnRCb3goKSkKLSAgICAgICAgaG9zdFdpbmRvdyA9IGNvbnRlbnRS
ZW5kZXJlci0+aG9zdFdpbmRvdygpOworICAgIGlmIChDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJl
ZGRlZFNWR1Jvb3QoKSkKKyAgICAgICAgaG9zdFdpbmRvdyA9IHN2Z1Jvb3QtPmhvc3RXaW5kb3co
KTsKIAogICAgIFJlZlB0ciBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZTo6RE9NLCAxLCBjb2xvclNwYWNlLCBQaXhl
bEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCkBAIC0z
OTIsMTIgKzM5MiwxMiBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIHJldHVybiBJbWFn
ZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9CiAKLVJlbmRlckJveCogU1ZHSW1hZ2U6OmVtYmVkZGVk
Q29udGVudEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogU1ZHSW1hZ2U6OmVtYmVkZGVkU1ZH
Um9vdCgpIGNvbnN0CiB7CiAgICAgUmVmUHRyIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVsZW1l
bnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyQm94Pihyb290RWxlbWVudC0+cmVuZGVyZXIoKSk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyb290RWxlbWVudC0+cmVuZGVyZXIo
KSk7CiB9CiAKIExvY2FsRnJhbWVWaWV3KiBTVkdJbWFnZTo6ZnJhbWVWaWV3KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggZjQ1NzdkNWNmMDQyLi5mNzQz
YTM3MDMyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC0zNiw3
ICszNiw3IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIExvY2Fs
RnJhbWVWaWV3OwogY2xhc3MgUGFnZTsKLWNsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclJl
cGxhY2VkOwogY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR0ltYWdlQ2hyb21lQ2xpZW50
OwogY2xhc3MgU1ZHSW1hZ2VGb3JDb250YWluZXI7CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB0cnlDcmVhdGVGcm9tRGF0YShzdGQ6OnNw
YW48Y29uc3QgdWludDhfdD4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNWR0ltYWdl
PiYmKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNEYXRhRGVjb2RhYmxl
KGNvbnN0IFNldHRpbmdzJiwgc3RkOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKIAotICAgIFJlbmRl
ckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Q7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVt
YmVkZGVkU1ZHUm9vdCgpIGNvbnN0OwogICAgIExvY2FsRnJhbWVWaWV3KiBOT0RFTEVURSBmcmFt
ZVZpZXcoKSBjb25zdDsKIAogICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479537</attachid>
            <date>2026-05-08 20:05:44 -0700</date>
            <delta_ts>2026-05-09 15:50:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314456-20260508200543.patch</filename>
            <type>text/plain</type>
            <size>22179</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkZDc4MTY1ZWNiYzM5Y2FlZDQ2YjRiNjFhOWI3NTU2YjY0ZGNhYjNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAxOTo1NzowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFJlbmFtZSBl
bWJlZGRlZENvbnRlbnRCb3goKSB0byBlbWJlZGRlZFNWR1Jvb3QoKSBhbmQgdGlnaHRlbgogcmV0
dXJuIHR5cGUgdG8gUmVuZGVyUmVwbGFjZWQqIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTQ0NTYKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhlIGZ1bmN0
aW9uIG9ubHkgZXZlciByZXR1cm5zIHRoZSBSZW5kZXJTVkdSb290IG9yIExlZ2FjeVJlbmRlclNW
R1Jvb3Qgb2YgYW4KZW1iZWRkZWQgU1ZHIGRvY3VtZW50LiBCb3RoIGFsd2F5cyBpbmhlcml0IGZy
b20gUmVuZGVyUmVwbGFjZWQsIG5ldmVyIGp1c3QKUmVuZGVyQm94LiBUaGUgb2xkIG5hbWUgImVt
YmVkZGVkQ29udGVudEJveCIgd2FzIHZhZ3VlIGFuZCB0aGUgUmVuZGVyQm94KiByZXR1cm4KdHlw
ZSBoaWQgdGhpcyBpbnZhcmlhbnQsIGZvcmNpbmcgY2FsbGVycyB0byBkbyB1bm5lY2Vzc2FyeSBk
b3duY2FzdHMuCgpOb3cgdGhlIG5hbWUgc2F5cyB3aGF0IGl0IGlzLCB0aGUgcmV0dXJuIHR5cGUg
bWF0Y2hlcyBpdCwgYW5kIGNhbGxlcnMgd29yawpkaXJlY3RseSB3aXRoIFJlbmRlclJlcGxhY2Vk
KiB3aXRob3V0IGludGVybWVkaWF0ZSBjYXN0cy4gVGhlIExvY2FsRnJhbWVWaWV3CmltcGxlbWVu
dGF0aW9uIHNpbXBsaWZpZXMgdG8gYSBzaW5nbGUgZHluYW1pY0Rvd25jYXN0PFJlbmRlclJlcGxh
Y2VkPiBzaW5jZSBib3RoClNWRyByb290IHR5cGVzIHNhdGlzZnkgdGhhdCBjaGVjay4KLS0tCiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcCAgICAgIHwgMjggKysrKy0tLS0t
LS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaCAgICAgICAgfCAgMyArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCAgICB8ICA2ICstLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIHwgNTEgKysrKysrKystLS0tLS0t
LS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCAgIHwgIDYg
Ky0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCAgIHwgIDYgKy0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggICAgIHwgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgICAgfCAgOCArKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCAgICAgIHwgIDQgKy0KIDEwIGZpbGVz
IGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKaW5kZXggZGVkZTZiNTA0NWE2Li5jN2FmMjQ4ZjA5MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwCkBAIC0xMjEzLDI1ICsxMjEz
LDE4IEBAIHZvaWQgTG9jYWxGcmFtZVZpZXc6OmZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVk
KCkKICAgICBpZiAoIW93bmVyUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIENoZWNr
ZWRQdHIgY29udGVudEJveCA9IGVtYmVkZGVkQ29udGVudEJveCgpOwotICAgIGlmICghY29udGVu
dEJveCkKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBp
ZiAoIXN2Z1Jvb3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChhdXRvKiBzdmdSb290ID0g
ZHluYW1pY0Rvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KGNvbnRlbnRCb3guZ2V0KCkpKSB7
Ci0gICAgICAgIGlmIChzdmdSb290LT5ldmVySGFkTGF5b3V0KCkgJiYgIXN2Z1Jvb3QtPm5lZWRz
TGF5b3V0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF1dG8qIHN2
Z1Jvb3QgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyU1ZHUm9vdD4oY29udGVudEJveC5nZXQoKSkp
IHsKLSAgICAgICAgaWYgKHN2Z1Jvb3QtPmV2ZXJIYWRMYXlvdXQoKSAmJiAhc3ZnUm9vdC0+bmVl
ZHNMYXlvdXQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKHN2Z1Jvb3Qt
PmV2ZXJIYWRMYXlvdXQoKSAmJiAhc3ZnUm9vdC0+bmVlZHNMYXlvdXQoKSkKKyAgICAgICAgcmV0
dXJuOwogCiAgICAgTE9HKExheW91dCwgIkxvY2FsRnJhbWVWaWV3ICVwIGZvcmNlTGF5b3V0UGFy
ZW50Vmlld0lmTmVlZGVkIHNjaGVkdWxpbmcgbGF5b3V0IG9uIHBhcmVudCBMb2NhbEZyYW1lVmll
dyAlcCIsIHRoaXMsICZvd25lclJlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3KCkpOwogCiAgICAg
Ly8gSWYgdGhlIGVtYmVkZGVkIFNWRyBkb2N1bWVudCBhcHBlYXJzIHRoZSBmaXJzdCB0aW1lLCB0
aGUgb3duZXJSZW5kZXJlciBoYXMgYWxyZWFkeSBmaW5pc2hlZAogICAgIC8vIGxheW91dCB3aXRo
b3V0IGtub3dpbmcgYWJvdXQgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgZW1iZWRkZWQgU1ZHIGRvY3Vt
ZW50LCBiZWNhdXNlIFJlbmRlclJlcGxhY2VkCi0gICAgLy8gZW1iZWRkZWRDb250ZW50Qm94KCkg
cmV0dXJucyBudWxscHRyLCBhcyBsb25nIGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBpc24ndCBs
b2FkZWQgeWV0LiBCZWZvcmUKKyAgICAvLyBlbWJlZGRlZFNWR1Jvb3QoKSByZXR1cm5zIG51bGxw
dHIsIGFzIGxvbmcgYXMgdGhlIGVtYmVkZGVkIGRvY3VtZW50IGlzbid0IGxvYWRlZCB5ZXQuIEJl
Zm9yZQogICAgIC8vIGJvdGhlcmluZyB0byBsYXkgb3V0IHRoZSBTVkcgZG9jdW1lbnQsIG1hcmsg
dGhlIG93bmVyUmVuZGVyZXIgbmVlZGluZyBsYXlvdXQgYW5kIGFzayBpdHMKICAgICAvLyBMb2Nh
bEZyYW1lVmlldyBmb3IgYSBsYXlvdXQuIEFmdGVyIHRoYXQgdGhlIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0IChvd25lclJlbmRlcmVyKSBjYXJyaWVzIHRoZQogICAgIC8vIGNvcnJlY3Qgc2l6ZSwgd2hp
Y2ggTGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoL0hlaWdo
dCByZWx5IG9uLCB3aGVuIGxheWluZwpAQCAtMTUyMCwyMiArMTUxMywxOSBAQCBib29sIExvY2Fs
RnJhbWVWaWV3OjpzaG91bGREZWZlclNjcm9sbFVwZGF0ZUFmdGVyQ29udGVudFNpemVDaGFuZ2Uo
KQogICAgIHJldHVybiAobGF5b3V0Q29udGV4dCgpLmxheW91dFBoYXNlKCkgPCBMb2NhbEZyYW1l
Vmlld0xheW91dENvbnRleHQ6OkxheW91dFBoYXNlOjpJblBvc3RMYXlvdXQpICYmIChsYXlvdXRD
b250ZXh0KCkubGF5b3V0UGhhc2UoKSAhPSBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ6Okxh
eW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0KTsKIH0KIAotUmVuZGVyQm94KiBMb2NhbEZyYW1lVmll
dzo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxhY2VkKiBMb2NhbEZyYW1l
Vmlldzo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsKICAgICBDaGVja2VkUHRyIHJlbmRlclZp
ZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCA9IHJlbmRlclZp
ZXctPmZpcnN0Q2hpbGQoKTsKKyAgICBhdXRvKiBmaXJzdENoaWxkID0gcmVuZGVyVmlldy0+Zmly
c3RDaGlsZCgpOwogCi0gICAgLy8gQ3VyZW50bHkgb25seSBlbWJlZGRlZCBTVkcgZG9jdW1lbnRz
IHBhcnRpY2lwYXRlIGluIHRoZSBzaXplLW5lZ290aWF0aW9uIGxvZ2ljLgorICAgIC8vIEN1cnJl
bnRseSBvbmx5IGVtYmVkZGVkIFNWRyBkb2N1bWVudHMgcGFydGljaXBhdGUgaW4gdGhlIHNpemUt
bmVnb3RpYXRpb24gbG9naWMuCiAgICAgaWYgKGF1dG8qIHN2Z1Jvb3QgPSBkeW5hbWljRG93bmNh
c3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oZmlyc3RDaGlsZCkpCiAgICAgICAgIHJldHVybiBzdmdS
b290OwogCi0gICAgaWYgKGF1dG8qIHN2Z1Jvb3QgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyU1ZH
Um9vdD4oZmlyc3RDaGlsZCkpCi0gICAgICAgIHJldHVybiBzdmdSb290OwotCi0gICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIGR5bmFtaWNEb3duY2FzdDxSZW5kZXJTVkdSb290PihmaXJz
dENoaWxkKTsKIH0KIAogdm9pZCBMb2NhbEZyYW1lVmlldzo6YWRkRW1iZWRkZWRPYmplY3RUb1Vw
ZGF0ZShSZW5kZXJFbWJlZGRlZE9iamVjdCYgZW1iZWRkZWRPYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0xvY2FsRnJhbWVWaWV3LmgKaW5kZXggMWY2NjI4MjNhMTJmLi40MTY3MTkwZGRlZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q7CiBjbGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBSZW5kZXJSZXBsYWNlZDsK
IGNsYXNzIFJlbmRlclNjcm9sbGJhclBhcnQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJl
bmRlclZpZXc7CkBAIC01ODIsNyArNTgzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBOT0RFTEVU
RSBzaG91bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IGZpbmFsOwogCi0gICAgUmVu
ZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdDsKKyAgICBSZW5kZXJSZXBsYWNlZCog
ZW1iZWRkZWRTVkdSb290KCkgY29uc3Q7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRUcmFja3NSZXBhaW50cyhib29sKTsKICAgICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNv
bnN0IHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA5YjIwOTk1YmIzZmIuLmE1MzBmNGJkM2I1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC05NzMsMTQgKzk3Mywx
NCBAQCBib29sIFJlbmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkg
Y29uc3QKIHsKICAgICBpZiAoUmVuZGVyUmVwbGFjZWQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJy
ZWRXaWR0aHMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGVtYmVkZGVkQ29u
dGVudEJveCgpOworICAgIHJldHVybiBlbWJlZGRlZFNWR1Jvb3QoKTsKIH0KIAotUmVuZGVyQm94
KiBSZW5kZXJJbWFnZTo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxhY2Vk
KiBSZW5kZXJJbWFnZTo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsKICAgICBpZiAoUmVmUHRy
IGNhY2hlZEltYWdlID0gdGhpcy0+Y2FjaGVkSW1hZ2UoKSkgewogICAgICAgICBpZiAoUmVmUHRy
IGltYWdlID0gZHluYW1pY0Rvd25jYXN0PFNWR0ltYWdlPihjYWNoZWRJbWFnZS0+aW1hZ2UoKSkp
Ci0gICAgICAgICAgICByZXR1cm4gaW1hZ2UtPmVtYmVkZGVkQ29udGVudEJveCgpOworICAgICAg
ICAgICAgcmV0dXJuIGltYWdlLT5lbWJlZGRlZFNWR1Jvb3QoKTsKICAgICB9CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDJj
ZTc1NDk1MmFmZS4uNWVhZjkyYTYxNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaApAQCAtODksNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdp
ZHRocygpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkg
Y29uc3QgZmluYWw7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0
IGZpbmFsOwogICAgIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFs
OwogICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgZm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJlY3Qm
IGxvY2FsUmVjdCwgdW5zaWduZWQgbWF4RGVwdGhUb1Rlc3QpIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggZjAzYTEzZjdl
YjEwLi5jY2ZlYWFlNTc3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcApAQCAtNDcwLDE5ICs0NzAsMTYgQEAgc3RhdGljIGJvb2wgaXNWaWRlb1dpdGhE
ZWZhdWx0T2JqZWN0U2l6ZShjb25zdCBSZW5kZXJSZXBsYWNlZCogbWF5YmVWaWRlbykKICAgICBy
ZXR1cm4gZmFsc2U7CiB9IAogCi12b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlQXNwZWN0UmF0
aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChSZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciwgRmxv
YXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYgcHJlZmVycmVkQXNwZWN0UmF0aW8p
IGNvbnN0Cit2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlv
bkZvclJlbmRlckJveChSZW5kZXJSZXBsYWNlZCogc3ZnUm9vdCwgRmxvYXRTaXplJiBjb25zdHJh
aW5lZFNpemUsIEZsb2F0U2l6ZSYgcHJlZmVycmVkQXNwZWN0UmF0aW8pIGNvbnN0CiB7CiAgICAg
RmxvYXRTaXplIGludHJpbnNpY1NpemU7CiAgICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5l
U2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAgICAgaW50cmluc2ljU2l6ZSA9IFJlbmRlclJlcGxh
Y2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOwogICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRp
byA9IFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwotICAgIH0gZWxzZSBp
ZiAoY29udGVudFJlbmRlcmVyKSB7Ci0gICAgICAgIGJvb2wgY29udGVudElzUmVuZGVyUmVwbGFj
ZWQgPSBmYWxzZTsKLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlclJlcGxhY2VkID0gZHluYW1pY0Rv
d25jYXN0PFJlbmRlclJlcGxhY2VkPihjb250ZW50UmVuZGVyZXIpKSB7Ci0gICAgICAgICAgICBp
bnRyaW5zaWNTaXplID0gcmVuZGVyUmVwbGFjZWQtPmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0g
ICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IHJlbmRlclJlcGxhY2VkLT5wcmVmZXJy
ZWRBc3BlY3RSYXRpbygpOwotICAgICAgICAgICAgY29udGVudElzUmVuZGVyUmVwbGFjZWQgPSB0
cnVlOwotICAgICAgICB9CisgICAgfSBlbHNlIGlmIChzdmdSb290KSB7CisgICAgICAgIGludHJp
bnNpY1NpemUgPSBzdmdSb290LT5jb21wdXRlSW50cmluc2ljU2l6ZSgpOworICAgICAgICBwcmVm
ZXJyZWRBc3BlY3RSYXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisKICAg
ICAgICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNw
ZWN0UmF0aW8oKS5pc0F1dG9BbmRSYXRpbygpICYmIHByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1w
dHkoKSkpCiAgICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IEZsb2F0U2l6ZTo6bmFy
cm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS53aWR0aCgpLnZhbHVlLCBzdHlsZSgp
LmFzcGVjdFJhdGlvKCkuaGVpZ2h0KCkudmFsdWUpOwogCkBAIC00OTUsNyArNDkyLDcgQEAgdm9p
ZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJC
b3goUmVuZGVyQm94KiBjb250ZW4KICAgICAgICAgLy8gVXBkYXRlIG91ciBpbnRyaW5zaWMgc2l6
ZSB0byBtYXRjaCB3aGF0IHRoZSBjb250ZW50IHJlbmRlcmVyIGhhcyBjb21wdXRlZCwgc28gdGhh
dCB3aGVuIHdlCiAgICAgICAgIC8vIGNvbnN0cmFpbiB0aGUgc2l6ZSBiZWxvdywgdGhlIGNvcnJl
Y3QgaW50cmluc2ljIHNpemUgd2lsbCBiZSBvYnRhaW5lZCBmb3IgY29tcGFyaXNvbiBhZ2FpbnN0
CiAgICAgICAgIC8vIG1pbiBhbmQgbWF4IHdpZHRocy4KLSAgICAgICAgaWYgKGNvbnRlbnRJc1Jl
bmRlclJlcGxhY2VkICYmIGlzUmVuZGVyV2lkZ2V0KCkpIHsKKyAgICAgICAgaWYgKGlzUmVuZGVy
V2lkZ2V0KCkpIHsKICAgICAgICAgICAgIC8vIEZvciBSZW5kZXJXaWRnZXQgY29udGVudCAoZS5n
LiA8b2JqZWN0PiBlbWJlZGRpbmcgYW4gU1ZHIGRvY3VtZW50KSwgYWx3YXlzIHVwZGF0ZQogICAg
ICAgICAgICAgLy8gbV9pbnRyaW5zaWNTaXplIHRvIHJlZmxlY3QgY3VycmVudCBpbnRyaW5zaWMg
ZGltZW5zaW9ucywgYXBwbHlpbmcgQ1NTIGRlZmF1bHQgZmFsbGJhY2sKICAgICAgICAgICAgIC8v
IHZhbHVlcyAoMzAweDE1MCkgZm9yIGRpbWVuc2lvbnMgd2l0aCBubyBpbnRyaW5zaWMgdmFsdWUg
KGUuZy4gcGVyY2VudGFnZS1zaXplZCBvcgpAQCAtNTI1LDkgKzUyMiw5IEBAIHZvaWQgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRl
ckJveCogY29udGVuCiAgICAgY29uc3RyYWluZWRTaXplID0gaW50cmluc2ljU2l6ZTsKIH0KIAot
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRy
YW5zZmVycmVkTWluTWF4U2l6ZXMoUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIsIEZsb2F0U2l6
ZSYgaW50cmluc2ljU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3QKK3ZvaWQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2Zl
cnJlZE1pbk1heFNpemVzKFJlbmRlclJlcGxhY2VkKiBzdmdSb290LCBGbG9hdFNpemUmIGludHJp
bnNpY1NpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0CiB7Ci0gICAgY29tcHV0
ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goY29udGVudFJlbmRlcmVyLCBpbnRy
aW5zaWNTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3Jt
YXRpb25Gb3JSZW5kZXJCb3goc3ZnUm9vdCwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8p
OwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50cmluc2ljIHNpemUgYWxvbmcgZWFjaCBh
eGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRoL2hlaWdodHMgYWxvbmcg
dGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9yIGV4YW1wbGUgYSBtYXhpbXVtIHdpZHRo
IHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1bHQgaW4gdGhlIGhlaWdodCB3ZSBjb21w
dXRlIGhlcmUKQEAgLTYwMSwyMSArNTk4LDIxIEBAIGRvdWJsZSBSZW5kZXJSZXBsYWNlZDo6Y29t
cHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgY29uc3QKIHsKICAgICBGbG9hdFNpemUgaW50cmlu
c2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGludHJpbnNpY1NpemU7Ci0gICAgY29tcHV0ZUFzcGVj
dFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRkZWRDb250ZW50Qm94KCksIGludHJp
bnNpY1NpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1h
dGlvbkZvclJlbmRlckJveChlbWJlZGRlZFNWR1Jvb3QoKSwgaW50cmluc2ljU2l6ZSwgaW50cmlu
c2ljUmF0aW8pOwogICAgIHJldHVybiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgp
OwogfQogCiBGbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkg
Y29uc3QKIHsKLSAgICAvLyBJZiB0aGVyZSdzIGFuIGVtYmVkZGVkQ29udGVudEJveCgpIG9mIGEg
cmVtb3RlLCByZWZlcmVuY2VkIGRvY3VtZW50IGF2YWlsYWJsZSwgdGhpcyBjb2RlLXBhdGggc2hv
dWxkIG5ldmVyIGJlIHVzZWQuCi0gICAgQVNTRVJUKCFlbWJlZGRlZENvbnRlbnRCb3goKSB8fCBz
aG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBJZiB0aGVy
ZSdzIGFuIGVtYmVkZGVkU1ZHUm9vdCgpIG9mIGEgcmVtb3RlLCByZWZlcmVuY2VkIGRvY3VtZW50
IGF2YWlsYWJsZSwgdGhpcyBjb2RlLXBhdGggc2hvdWxkIG5ldmVyIGJlIHVzZWQuCisgICAgQVNT
RVJUKCFlbWJlZGRlZFNWR1Jvb3QoKSB8fCBzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250
YWlubWVudCgpKTsKICAgICByZXR1cm4geyBpbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSwgaW50cmlu
c2ljTG9naWNhbEhlaWdodCgpIH07CiB9CiAKIEZsb2F0U2l6ZSBSZW5kZXJSZXBsYWNlZDo6cHJl
ZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRk
ZWRDb250ZW50Qm94KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxl
LCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4KLSAgICBBU1NFUlQoIWVtYmVk
ZGVkQ29udGVudEJveCgpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50
KCkpOworICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRTVkdSb290KCkgb2YgYSByZW1vdGUs
IHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2
ZXIgYmUgdXNlZC4KKyAgICBBU1NFUlQoIWVtYmVkZGVkU1ZHUm9vdCgpIHx8IHNob3VsZEFwcGx5
U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9
IEZsb2F0U2l6ZShpbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSwgaW50cmluc2ljTG9naWNhbEhlaWdo
dCgpKTsKICAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW87CiAKQEAgLTY5OCwxMyAr
Njk1LDkgQEAgc3RhdGljIGlubGluZSBMYXlvdXRVbml0IE5PREVMRVRFIHJlc29sdmVXaWR0aEZv
clJhdGlvKExheW91dFVuaXQgYm9yZGVyQW5kUGFkZGkKICAgICByZXR1cm4gTGF5b3V0VW5pdChs
b2dpY2FsSGVpZ2h0ICogYXNwZWN0UmF0aW8pOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgTk9E
RUxFVEUgaGFzSW50cmluc2ljU2l6ZShSZW5kZXJCb3gqY29udGVudFJlbmRlcmVyLCBib29sIGhh
c0ludHJpbnNpY1dpZHRoLCBib29sIGhhc0ludHJpbnNpY0hlaWdodCApCitzdGF0aWMgaW5saW5l
IGJvb2wgTk9ERUxFVEUgaGFzSW50cmluc2ljU2l6ZShjb25zdCBSZW5kZXJSZXBsYWNlZCogc3Zn
Um9vdCwgYm9vbCBoYXNJbnRyaW5zaWNXaWR0aCwgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQpCiB7
Ci0gICAgaWYgKGhhc0ludHJpbnNpY1dpZHRoICYmIGhhc0ludHJpbnNpY0hlaWdodCkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGhhc0ludHJpbnNpY1dpZHRoIHx8IGhhc0ludHJpbnNp
Y0hlaWdodCkKLSAgICAgICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlciAmJiBjb250ZW50UmVuZGVy
ZXItPmlzUmVuZGVyT3JMZWdhY3lSZW5kZXJTVkdSb290KCk7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiAoaGFzSW50cmluc2ljV2lkdGggJiYgaGFzSW50cmluc2ljSGVpZ2h0KSB8fCAo
KGhhc0ludHJpbnNpY1dpZHRoIHx8IGhhc0ludHJpbnNpY0hlaWdodCkgJiYgc3ZnUm9vdCk7CiB9
CiAKIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNob3VsZENvbXB1dGVQcmVmZXJyZWQpIGNvbnN0CkBA
IC03MTUsMTIgKzcwOCwxMCBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVw
bGFjZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCBzaAogICAgIGlmIChzdHls
ZS5sb2dpY2FsV2lkdGgoKS5pc0ludHJpbnNpY09yU3RyZXRjaCgpKQogICAgICAgICByZXR1cm4g
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKHN0eWxlLmxvZ2ljYWxXaWR0aCgpKSwgc2hvdWxkQ29t
cHV0ZVByZWZlcnJlZCk7CiAKLSAgICBSZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciA9IGVtYmVk
ZGVkQ29udGVudEJveCgpOwotCiAgICAgLy8gMTAuMy4yIElubGluZSwgcmVwbGFjZWQgZWxlbWVu
dHM6IGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQuaHRtbCNpbmxpbmUtcmVwbGFj
ZWQtd2lkdGgKICAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNv
bnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJh
bnNmZXJyZWRNaW5NYXhTaXplcyhjb250ZW50UmVuZGVyZXIsIGNvbnN0cmFpbmVkU2l6ZSwgaW50
cmluc2ljUmF0aW8pOworICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFu
c2ZlcnJlZE1pbk1heFNpemVzKGVtYmVkZGVkU1ZHUm9vdCgpLCBjb25zdHJhaW5lZFNpemUsIGlu
dHJpbnNpY1JhdGlvKTsKIAogICAgIGlmIChzdHlsZS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8oKSkg
ewogICAgICAgICBib29sIGNvbXB1dGVkSGVpZ2h0SXNBdXRvID0gc3R5bGUubG9naWNhbEhlaWdo
dCgpLmlzQXV0bygpOwpAQCAtNzMwLDcgKzcyMSw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNo
CiAgICAgICAgIC8vIEZvciBmbGV4IG9yIGdyaWQgaXRlbXMgd2hlcmUgdGhlIGxvZ2ljYWwgaGVp
Z2h0IGhhcyBiZWVuIG92ZXJyaWRlbiB0aGVuIHdlIHNob3VsZCB1c2UgdGhhdCBzaXplIHRvIGNv
bXB1dGUgdGhlIHJlcGxhY2VkIHdpZHRoIGFzIGxvbmcgYXMgdGhlIGZsZXggb3IKICAgICAgICAg
Ly8gZ3JpZCBpdGVtIGhhcyBhbiBpbnRyaW5zaWMgc2l6ZS4gSXQgaXMgcG9zc2libGUgKGluZGVl
ZCwgY29tbW9uKSBmb3IgYW4gU1ZHIGdyYXBoaWMgdG8gaGF2ZSBhbiBpbnRyaW5zaWMgYXNwZWN0
IHJhdGlvIGJ1dCBub3QgdG8gaGF2ZSBhbiBpbnRyaW5zaWMKICAgICAgICAgLy8gd2lkdGggb3Ig
aGVpZ2h0LiBUaGVyZSBhcmUgYWxzbyBlbGVtZW50cyB3aXRoIGludHJpbnNpYyBzaXplcyBidXQg
d2l0aG91dCBpbnRyaW5zaWMgcmF0aW8gKGxpa2UgYW4gaWZyYW1lKS4KLSAgICAgICAgaWYgKGF1
dG8gb3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQgPSAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAm
JiAoaXNGbGV4SXRlbSgpIHx8IGlzR3JpZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6ZShjb250
ZW50UmVuZGVyZXIsIGhhc0ludHJpbnNpY1dpZHRoLCBoYXNJbnRyaW5zaWNIZWlnaHQpID8gdGhp
cy0+b3ZlcnJpZGluZ0JvcmRlckJveExvZ2ljYWxIZWlnaHQoKSA6IHN0ZDo6bnVsbG9wdCkpCisg
ICAgICAgIGlmIChhdXRvIG92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0ID0gKCFpbnRyaW5zaWNSYXRp
by5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBpc0dyaWRJdGVtKCkpICYmIGhhc0ludHJp
bnNpY1NpemUoZW1iZWRkZWRTVkdSb290KCksIGhhc0ludHJpbnNpY1dpZHRoLCBoYXNJbnRyaW5z
aWNIZWlnaHQpID8gdGhpcy0+b3ZlcnJpZGluZ0JvcmRlckJveExvZ2ljYWxIZWlnaHQoKSA6IHN0
ZDo6bnVsbG9wdCkpCiAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KCpvdmVycmlk
aW5nTG9naWNhbEhlaWdodCkgKiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgpLCBz
aG91bGRDb21wdXRlUHJlZmVycmVkKTsKIAogICAgICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dp
ZHRoJyBib3RoIGhhdmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQg
YWxzbyBoYXMgYW4gaW50cmluc2ljIHdpZHRoLCB0aGVuIHRoYXQgaW50cmluc2ljIHdpZHRoIGlz
IHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcuCkBAIC04MTMsMTkgKzgwNCwxNyBAQCBMYXlvdXRV
bml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdAogICAgIGlmIChoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSkKICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRSZXNwZWN0aW5nTWluTWF4
SGVpZ2h0KGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLmxvZ2ljYWxI
ZWlnaHQoKSkpOwogCi0gICAgUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIgPSBlbWJlZGRlZENv
bnRlbnRCb3goKTsKLQogICAgIC8vIDEwLjYuMiBJbmxpbmUsIHJlcGxhY2VkIGVsZW1lbnRzOiBo
dHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS92aXN1ZGV0Lmh0bWwjaW5saW5lLXJlcGxhY2VkLWhl
aWdodAogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29uc3Ry
YWluZWRTaXplOwotICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2Zl
cnJlZE1pbk1heFNpemVzKGNvbnRlbnRSZW5kZXJlciwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5z
aWNSYXRpbyk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVy
cmVkTWluTWF4U2l6ZXMoZW1iZWRkZWRTVkdSb290KCksIGNvbnN0cmFpbmVkU2l6ZSwgaW50cmlu
c2ljUmF0aW8pOwogCiAgICAgYm9vbCB3aWR0aElzQXV0byA9IHN0eWxlKCkubG9naWNhbFdpZHRo
KCkuaXNBdXRvKCk7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNXaWR0aCA9IGNvbnN0cmFpbmVkU2l6
ZS53aWR0aCgpID4gMCB8fCAoIWNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpICYmIHNob3VsZFJlc3Bl
Y3RaZXJvSW50cmluc2ljV2lkdGgoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29u
dGFpbm1lbnQoKTsKICAgICBib29sIGhhc0ludHJpbnNpY0hlaWdodCA9IGNvbnN0cmFpbmVkU2l6
ZS5oZWlnaHQoKSA+IDAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsKIAogICAgIC8v
IFNlZSBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgZm9yIGEgc2ltaWxhciBjaGVjayBm
b3IgaGVpZ2h0cy4KLSAgICBpZiAoYXV0byBvdmVycmlkaW5nbG9naWNhbFdpZHRoID0gKCFpbnRy
aW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBpc0dyaWRJdGVtKCkpICYm
IGhhc0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFz
SW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsV2lkdGgoKSA6IHN0
ZDo6bnVsbG9wdCkpCisgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ2xvZ2ljYWxXaWR0aCA9ICghaW50
cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgpKSAm
JiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9vdCgpLCBoYXNJbnRyaW5zaWNXaWR0aCwg
aGFzSW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsV2lkdGgoKSA6
IHN0ZDo6bnVsbG9wdCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb250ZW50Qm94TG9naWNhbFdpZHRoKCpvdmVycmlk
aW5nbG9naWNhbFdpZHRoKSAqIGludHJpbnNpY1JhdGlvLnRyYW5zcG9zZWRTaXplKCkuYXNwZWN0
UmF0aW9Eb3VibGUoKSk7CiAKICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhh
dmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgYWxzbyBoYXMgYW4g
aW50cmluc2ljIGhlaWdodCwgdGhlbiB0aGF0IGludHJpbnNpYyBoZWlnaHQgaXMgdGhlIHVzZWQg
dmFsdWUgb2YgJ2hlaWdodCcuCkBAIC0xMDc1LDcgKzEwNjQsNyBAQCBGbG9hdFNpemUgUmVuZGVy
UmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkgY29uc3QKIHsKICAgICBGbG9hdFNpemUgaW50cmlu
c2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlQXNw
ZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZENvbnRlbnRCb3goKSwgY29u
c3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5m
b3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRkZWRTVkdSb290KCksIGNvbnN0cmFpbmVkU2l6ZSwg
aW50cmluc2ljUmF0aW8pOwogICAgIHJldHVybiBpbnRyaW5zaWNSYXRpbzsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBhYjNmNDcxMGFhOTAuLmNh
Zjc4ODlkN2ExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgK
QEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wdXRlQXNwZWN0UmF0
aW9BZGp1c3RlZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdp
ZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBS
ZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdCB7IHJldHVybiAw
OyB9CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUmVuZGVyUmVwbGFjZWQiX3M7IH0KIAogICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyMSw4ICsxMjEsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2li
bGVDb250ZW50ID0gdHJ1ZSkgZmluYWw7Ci0gICAgdm9pZCBjb21wdXRlQXNwZWN0UmF0aW9JbmZv
cm1hdGlvbkZvclJlbmRlckJveChSZW5kZXJCb3gqLCBGbG9hdFNpemUmIGNvbnN0cmFpbmVkU2l6
ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlSW50
cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhSZW5kZXJCb3gq
IGNvbnRlbnRSZW5kZXJlciwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYg
aW50cmluc2ljUmF0aW8pIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3Jt
YXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyUmVwbGFjZWQqLCBGbG9hdFNpemUmIGNvbnN0cmFpbmVk
U2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7CisgICAgdm9pZCBjb21wdXRl
SW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhSZW5kZXJS
ZXBsYWNlZCogc3ZnUm9vdCwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYg
aW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERyYXdTZWxl
Y3Rpb25UaW50KCkgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwCmluZGV4IDRkYTUwOGI2YTczYS4uZThjYjBhMGU0OWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtNDg3LDE1ICs0ODcsMTUgQEAgYm9v
bCBSZW5kZXJXaWRnZXQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdAog
ewogICAgIGlmIChSZW5kZXJSZXBsYWNlZDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRo
cygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94
KCk7CisgICAgcmV0dXJuIGVtYmVkZGVkU1ZHUm9vdCgpOwogfQogCi1SZW5kZXJCb3gqIFJlbmRl
cldpZGdldDo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxhY2VkKiBSZW5k
ZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0CiB7CiAgICAgaWYgKCFpczxSZW5kZXJF
bWJlZGRlZE9iamVjdD4odGhpcykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0
ciBmcmFtZVZpZXcgPSBkeW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZVZpZXc+KHdpZGdldCgpKTsK
LSAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT5lbWJlZGRlZENvbnRlbnRCb3goKSA6
IG51bGxwdHI7CisgICAgcmV0dXJuIGZyYW1lVmlldyA/IGZyYW1lVmlldy0+ZW1iZWRkZWRTVkdS
b290KCkgOiBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggZTAxNzgxNjIwMGRmLi4zOWM0MGUzYmIw
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTkxLDcgKzkx
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIAogICAg
IGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0IGZpbmFsOwotICAg
IFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgZmluYWw7CisgICAgUmVuZGVy
UmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBzZXRT
ZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBzZXRPdmVybGFw
VGVzdFJlc3VsdChib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCmluZGV4IDlhMGQ0ODI2YTY5MC4uODYyOWUwZWQyMTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTI3Niw4ICsyNzYsOCBAQCBSZWZQdHI8TmF0
aXZlSW1hZ2U+IFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNv
bnN0IERlc3RpbmF0aQogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IG1fcGFnZS0+c2V0dGluZ3Mo
KS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRl
ZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICBIb3N0V2luZG93KiBob3N0
V2luZG93ID0gbnVsbHB0cjsKLSAgICBpZiAoQ2hlY2tlZFB0ciBjb250ZW50UmVuZGVyZXIgPSBl
bWJlZGRlZENvbnRlbnRCb3goKSkKLSAgICAgICAgaG9zdFdpbmRvdyA9IGNvbnRlbnRSZW5kZXJl
ci0+aG9zdFdpbmRvdygpOworICAgIGlmIChDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNW
R1Jvb3QoKSkKKyAgICAgICAgaG9zdFdpbmRvdyA9IHN2Z1Jvb3QtPmhvc3RXaW5kb3coKTsKIAog
ICAgIFJlZlB0ciBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVy
aW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZTo6RE9NLCAxLCBjb2xvclNwYWNlLCBQaXhlbEZvcm1h
dDo6QkdSQTgsIGhvc3RXaW5kb3cpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCkBAIC0zOTIsMTIg
KzM5MiwxMiBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIHJldHVybiBJbWFnZURyYXdS
ZXN1bHQ6OkRpZERyYXc7CiB9CiAKLVJlbmRlckJveCogU1ZHSW1hZ2U6OmVtYmVkZGVkQ29udGVu
dEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogU1ZHSW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCgp
IGNvbnN0CiB7CiAgICAgUmVmUHRyIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVsZW1lbnQoKTsK
ICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQm94Pihyb290RWxlbWVudC0+cmVuZGVyZXIoKSk7CisgICAgcmV0
dXJuIGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyb290RWxlbWVudC0+cmVuZGVyZXIoKSk7CiB9
CiAKIExvY2FsRnJhbWVWaWV3KiBTVkdJbWFnZTo6ZnJhbWVWaWV3KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggZjQ1NzdkNWNmMDQyLi5mNzQzYTM3MDMy
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIExvY2FsRnJhbWVW
aWV3OwogY2xhc3MgUGFnZTsKLWNsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclJlcGxhY2Vk
OwogY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR0ltYWdlQ2hyb21lQ2xpZW50OwogY2xh
c3MgU1ZHSW1hZ2VGb3JDb250YWluZXI7CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB0cnlDcmVhdGVGcm9tRGF0YShzdGQ6OnNwYW48Y29u
c3QgdWludDhfdD4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNWR0ltYWdlPiYmKT4m
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNEYXRhRGVjb2RhYmxlKGNvbnN0
IFNldHRpbmdzJiwgc3RkOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKIAotICAgIFJlbmRlckJveCog
ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Q7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVk
U1ZHUm9vdCgpIGNvbnN0OwogICAgIExvY2FsRnJhbWVWaWV3KiBOT0RFTEVURSBmcmFtZVZpZXco
KSBjb25zdDsKIAogICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479549</attachid>
            <date>2026-05-09 15:50:12 -0700</date>
            <delta_ts>2026-05-10 12:00:47 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-314456-20260509155012.patch</filename>
            <type>text/plain</type>
            <size>22183</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiYzFhNzM2NzM1Y2IzNGY1YzZhMmYyMzRkMTkxOThlMzRlNzAzNGVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAxOTo1NzowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFJlbmFtZSBl
bWJlZGRlZENvbnRlbnRCb3goKSB0byBlbWJlZGRlZFNWR1Jvb3QoKSBhbmQgdGlnaHRlbgogcmV0
dXJuIHR5cGUgdG8gUmVuZGVyUmVwbGFjZWQqIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTQ0NTYKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKZW1iZWRkZWRD
b250ZW50Qm94IG9ubHkgZXZlciByZXR1cm5zIHRoZSBSZW5kZXJTVkdSb290IG9yIExlZ2FjeVJl
bmRlclNWR1Jvb3Qgb2YgYW4KZW1iZWRkZWQgU1ZHIGRvY3VtZW50LiBCb3RoIGFsd2F5cyBpbmhl
cml0IGZyb20gUmVuZGVyUmVwbGFjZWQsIG5ldmVyIGp1c3QKUmVuZGVyQm94LiBUaGUgb2xkIG5h
bWUgImVtYmVkZGVkQ29udGVudEJveCIgd2FzIHZhZ3VlIGFuZCB0aGUgUmVuZGVyQm94IHJldHVy
bgp0eXBlIGhpZCB0aGlzIGludmFyaWFudCwgZm9yY2luZyBjYWxsZXJzIHRvIGRvIHVubmVjZXNz
YXJ5IGRvd25jYXN0cy4KCk5vdyB0aGUgbmFtZSBzYXlzIHdoYXQgaXQgaXMsIHRoZSByZXR1cm4g
dHlwZSBtYXRjaGVzIGl0LCBhbmQgY2FsbGVycyB3b3JrCmRpcmVjdGx5IHdpdGggUmVuZGVyUmVw
bGFjZWQgd2l0aG91dCBpbnRlcm1lZGlhdGUgY2FzdHMuIFRoZSBMb2NhbEZyYW1lVmlldwppbXBs
ZW1lbnRhdGlvbiBzaW1wbGlmaWVzIHRvIGEgc2luZ2xlIGR5bmFtaWNEb3duY2FzdDxSZW5kZXJS
ZXBsYWNlZD4gc2luY2UgYm90aApTVkcgcm9vdCB0eXBlcyBzYXRpc2Z5IHRoYXQgY2hlY2suCi0t
LQogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAgICAgICB8IDI4ICsrKyst
LS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmggICAgICAgIHwgIDMg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgICAgfCAgNiArLS0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAgICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCB8IDUxICsrKysrKysrLS0t
LS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggICB8
ICA2ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgICB8ICA2
ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oICAgICB8ICAyICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwICAgIHwgIDggKystLQog
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggICAgICB8ICA0ICstCiAxMCBm
aWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwCmluZGV4IGRlZGU2YjUwNDVhNi4uYzdhZjI0OGYw
OTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcApAQCAtMTIxMywyNSAr
MTIxMywxOCBAQCB2b2lkIExvY2FsRnJhbWVWaWV3Ojpmb3JjZUxheW91dFBhcmVudFZpZXdJZk5l
ZWRlZCgpCiAgICAgaWYgKCFvd25lclJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBD
aGVja2VkUHRyIGNvbnRlbnRCb3ggPSBlbWJlZGRlZENvbnRlbnRCb3goKTsKLSAgICBpZiAoIWNv
bnRlbnRCb3gpCisgICAgQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCk7Cisg
ICAgaWYgKCFzdmdSb290KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byogc3ZnUm9v
dCA9IGR5bmFtaWNEb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290Pihjb250ZW50Qm94LmdldCgp
KSkgewotICAgICAgICBpZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFzdmdSb290LT5u
ZWVkc0xheW91dCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdXRv
KiBzdmdSb290ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KGNvbnRlbnRCb3guZ2V0
KCkpKSB7Ci0gICAgICAgIGlmIChzdmdSb290LT5ldmVySGFkTGF5b3V0KCkgJiYgIXN2Z1Jvb3Qt
Pm5lZWRzTGF5b3V0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmIChzdmdS
b290LT5ldmVySGFkTGF5b3V0KCkgJiYgIXN2Z1Jvb3QtPm5lZWRzTGF5b3V0KCkpCisgICAgICAg
IHJldHVybjsKIAogICAgIExPRyhMYXlvdXQsICJMb2NhbEZyYW1lVmlldyAlcCBmb3JjZUxheW91
dFBhcmVudFZpZXdJZk5lZWRlZCBzY2hlZHVsaW5nIGxheW91dCBvbiBwYXJlbnQgTG9jYWxGcmFt
ZVZpZXcgJXAiLCB0aGlzLCAmb3duZXJSZW5kZXJlci0+dmlldygpLmZyYW1lVmlldygpKTsKIAog
ICAgIC8vIElmIHRoZSBlbWJlZGRlZCBTVkcgZG9jdW1lbnQgYXBwZWFycyB0aGUgZmlyc3QgdGlt
ZSwgdGhlIG93bmVyUmVuZGVyZXIgaGFzIGFscmVhZHkgZmluaXNoZWQKICAgICAvLyBsYXlvdXQg
d2l0aG91dCBrbm93aW5nIGFib3V0IHRoZSBleGlzdGVuY2Ugb2YgdGhlIGVtYmVkZGVkIFNWRyBk
b2N1bWVudCwgYmVjYXVzZSBSZW5kZXJSZXBsYWNlZAotICAgIC8vIGVtYmVkZGVkQ29udGVudEJv
eCgpIHJldHVybnMgbnVsbHB0ciwgYXMgbG9uZyBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgaXNu
J3QgbG9hZGVkIHlldC4gQmVmb3JlCisgICAgLy8gZW1iZWRkZWRTVkdSb290KCkgcmV0dXJucyBu
dWxscHRyLCBhcyBsb25nIGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBpc24ndCBsb2FkZWQgeWV0
LiBCZWZvcmUKICAgICAvLyBib3RoZXJpbmcgdG8gbGF5IG91dCB0aGUgU1ZHIGRvY3VtZW50LCBt
YXJrIHRoZSBvd25lclJlbmRlcmVyIG5lZWRpbmcgbGF5b3V0IGFuZCBhc2sgaXRzCiAgICAgLy8g
TG9jYWxGcmFtZVZpZXcgZm9yIGEgbGF5b3V0LiBBZnRlciB0aGF0IHRoZSBSZW5kZXJFbWJlZGRl
ZE9iamVjdCAob3duZXJSZW5kZXJlcikgY2FycmllcyB0aGUKICAgICAvLyBjb3JyZWN0IHNpemUs
IHdoaWNoIExlZ2FjeVJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aC9I
ZWlnaHQgcmVseSBvbiwgd2hlbiBsYXlpbmcKQEAgLTE1MjAsMjIgKzE1MTMsMTkgQEAgYm9vbCBM
b2NhbEZyYW1lVmlldzo6c2hvdWxkRGVmZXJTY3JvbGxVcGRhdGVBZnRlckNvbnRlbnRTaXplQ2hh
bmdlKCkKICAgICByZXR1cm4gKGxheW91dENvbnRleHQoKS5sYXlvdXRQaGFzZSgpIDwgTG9jYWxG
cmFtZVZpZXdMYXlvdXRDb250ZXh0OjpMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0KSAmJiAobGF5
b3V0Q29udGV4dCgpLmxheW91dFBoYXNlKCkgIT0gTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0
OjpMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dCk7CiB9CiAKLVJlbmRlckJveCogTG9jYWxGcmFt
ZVZpZXc6OmVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogTG9jYWxG
cmFtZVZpZXc6OmVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0CiB7CiAgICAgQ2hlY2tlZFB0ciByZW5k
ZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQgPSByZW5k
ZXJWaWV3LT5maXJzdENoaWxkKCk7CisgICAgYXV0byogZmlyc3RDaGlsZCA9IHJlbmRlclZpZXct
PmZpcnN0Q2hpbGQoKTsKIAotICAgIC8vIEN1cmVudGx5IG9ubHkgZW1iZWRkZWQgU1ZHIGRvY3Vt
ZW50cyBwYXJ0aWNpcGF0ZSBpbiB0aGUgc2l6ZS1uZWdvdGlhdGlvbiBsb2dpYy4KKyAgICAvLyBD
dXJyZW50bHkgb25seSBlbWJlZGRlZCBTVkcgZG9jdW1lbnRzIHBhcnRpY2lwYXRlIGluIHRoZSBz
aXplLW5lZ290aWF0aW9uIGxvZ2ljLgogICAgIGlmIChhdXRvKiBzdmdSb290ID0gZHluYW1pY0Rv
d25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KGZpcnN0Q2hpbGQpKQogICAgICAgICByZXR1cm4g
c3ZnUm9vdDsKIAotICAgIGlmIChhdXRvKiBzdmdSb290ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRl
clNWR1Jvb3Q+KGZpcnN0Q2hpbGQpKQotICAgICAgICByZXR1cm4gc3ZnUm9vdDsKLQotICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBkeW5hbWljRG93bmNhc3Q8UmVuZGVyU1ZHUm9vdD4o
Zmlyc3RDaGlsZCk7CiB9CiAKIHZvaWQgTG9jYWxGcmFtZVZpZXc6OmFkZEVtYmVkZGVkT2JqZWN0
VG9VcGRhdGUoUmVuZGVyRW1iZWRkZWRPYmplY3QmIGVtYmVkZGVkT2JqZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Mb2NhbEZyYW1lVmlldy5oCmluZGV4IDFiMWM3MGJjYzI0OS4uMDU5OWJhMTZiMzYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNz
IFJlbmRlckVtYmVkZGVkT2JqZWN0OwogY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBSZW5kZXJM
YXllck1vZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xhc3MgUmVuZGVyUmVwbGFj
ZWQ7CiBjbGFzcyBSZW5kZXJTY3JvbGxiYXJQYXJ0OwogY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFz
cyBSZW5kZXJWaWV3OwpAQCAtNTc4LDcgKzU3OSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgTk9E
RUxFVEUgc2hvdWxkU3VzcGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdCBmaW5hbDsKIAotICAg
IFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Q7CisgICAgUmVuZGVyUmVwbGFj
ZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0OwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VHJhY2tzUmVwYWludHMoYm9vbCk7CiAgICAgYm9vbCBpc1RyYWNraW5nUmVwYWludHMo
KSBjb25zdCB7IHJldHVybiBtX2lzVHJhY2tpbmdSZXBhaW50czsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggOWIyMDk5NWJiM2ZiLi5hNTMwZjRiZDNiNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtOTczLDE0ICs5
NzMsMTQgQEAgYm9vbCBSZW5kZXJJbWFnZTo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRo
cygpIGNvbnN0CiB7CiAgICAgaWYgKFJlbmRlclJlcGxhY2VkOjpzaG91bGRJbnZhbGlkYXRlUHJl
ZmVycmVkV2lkdGhzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBlbWJlZGRl
ZENvbnRlbnRCb3goKTsKKyAgICByZXR1cm4gZW1iZWRkZWRTVkdSb290KCk7CiB9CiAKLVJlbmRl
ckJveCogUmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0CitSZW5kZXJSZXBs
YWNlZCogUmVuZGVySW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0CiB7CiAgICAgaWYgKFJl
ZlB0ciBjYWNoZWRJbWFnZSA9IHRoaXMtPmNhY2hlZEltYWdlKCkpIHsKICAgICAgICAgaWYgKFJl
ZlB0ciBpbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxTVkdJbWFnZT4oY2FjaGVkSW1hZ2UtPmltYWdl
KCkpKQotICAgICAgICAgICAgcmV0dXJuIGltYWdlLT5lbWJlZGRlZENvbnRlbnRCb3goKTsKKyAg
ICAgICAgICAgIHJldHVybiBpbWFnZS0+ZW1iZWRkZWRTVkdSb290KCk7CiAgICAgfQogICAgIHJl
dHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRl
eCAyY2U3NTQ5NTJhZmUuLjVlYWY5MmE2MTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgd2lsbEJl
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZEludmFsaWRhdGVQcmVmZXJy
ZWRXaWR0aHMoKSBjb25zdCBmaW5hbDsKLSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJv
eCgpIGNvbnN0IGZpbmFsOworICAgIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBj
b25zdCBmaW5hbDsKICAgICBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdCBm
aW5hbDsKICAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIGZvcmVncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlvdXRS
ZWN0JiBsb2NhbFJlY3QsIHVuc2lnbmVkIG1heERlcHRoVG9UZXN0KSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGYwM2Ex
M2Y3ZWIxMC4uY2NmZWFhZTU3N2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAKQEAgLTQ3MCwxOSArNDcwLDE2IEBAIHN0YXRpYyBib29sIGlzVmlkZW9X
aXRoRGVmYXVsdE9iamVjdFNpemUoY29uc3QgUmVuZGVyUmVwbGFjZWQqIG1heWJlVmlkZW8pCiAg
ICAgcmV0dXJuIGZhbHNlOwogfSAKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVj
dFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIs
IEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIHByZWZlcnJlZEFzcGVjdFJh
dGlvKSBjb25zdAordm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3Jt
YXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyUmVwbGFjZWQqIHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29u
c3RyYWluZWRTaXplLCBGbG9hdFNpemUmIHByZWZlcnJlZEFzcGVjdFJhdGlvKSBjb25zdAogewog
ICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplOwogICAgIGlmIChzaG91bGRBcHBseVNpemVPcklu
bGluZVNpemVDb250YWlubWVudCgpKSB7CiAgICAgICAgIGludHJpbnNpY1NpemUgPSBSZW5kZXJS
ZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKICAgICAgICAgcHJlZmVycmVkQXNwZWN0
UmF0aW8gPSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICB9IGVs
c2UgaWYgKGNvbnRlbnRSZW5kZXJlcikgewotICAgICAgICBib29sIGNvbnRlbnRJc1JlbmRlclJl
cGxhY2VkID0gZmFsc2U7Ci0gICAgICAgIGlmIChhdXRvKiByZW5kZXJSZXBsYWNlZCA9IGR5bmFt
aWNEb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oY29udGVudFJlbmRlcmVyKSkgewotICAgICAgICAg
ICAgaW50cmluc2ljU2l6ZSA9IHJlbmRlclJlcGxhY2VkLT5jb21wdXRlSW50cmluc2ljU2l6ZSgp
OwotICAgICAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSByZW5kZXJSZXBsYWNlZC0+cHJl
ZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICAgICAgICAgIGNvbnRlbnRJc1JlbmRlclJlcGxhY2Vk
ID0gdHJ1ZTsKLSAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoc3ZnUm9vdCkgeworICAgICAgICBp
bnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAg
cHJlZmVycmVkQXNwZWN0UmF0aW8gPSBzdmdSb290LT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpOwor
CiAgICAgICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgp
LmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAmJiBwcmVmZXJyZWRBc3BlY3RSYXRpby5p
c0VtcHR5KCkpKQogICAgICAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSBGbG9hdFNpemU6
Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvKCkud2lkdGgoKS52YWx1ZSwgc3R5
bGUoKS5hc3BlY3RSYXRpbygpLmhlaWdodCgpLnZhbHVlKTsKIApAQCAtNDk1LDcgKzQ5Miw3IEBA
IHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVu
ZGVyQm94KFJlbmRlckJveCogY29udGVuCiAgICAgICAgIC8vIFVwZGF0ZSBvdXIgaW50cmluc2lj
IHNpemUgdG8gbWF0Y2ggd2hhdCB0aGUgY29udGVudCByZW5kZXJlciBoYXMgY29tcHV0ZWQsIHNv
IHRoYXQgd2hlbiB3ZQogICAgICAgICAvLyBjb25zdHJhaW4gdGhlIHNpemUgYmVsb3csIHRoZSBj
b3JyZWN0IGludHJpbnNpYyBzaXplIHdpbGwgYmUgb2J0YWluZWQgZm9yIGNvbXBhcmlzb24gYWdh
aW5zdAogICAgICAgICAvLyBtaW4gYW5kIG1heCB3aWR0aHMuCi0gICAgICAgIGlmIChjb250ZW50
SXNSZW5kZXJSZXBsYWNlZCAmJiBpc1JlbmRlcldpZGdldCgpKSB7CisgICAgICAgIGlmIChpc1Jl
bmRlcldpZGdldCgpKSB7CiAgICAgICAgICAgICAvLyBGb3IgUmVuZGVyV2lkZ2V0IGNvbnRlbnQg
KGUuZy4gPG9iamVjdD4gZW1iZWRkaW5nIGFuIFNWRyBkb2N1bWVudCksIGFsd2F5cyB1cGRhdGUK
ICAgICAgICAgICAgIC8vIG1faW50cmluc2ljU2l6ZSB0byByZWZsZWN0IGN1cnJlbnQgaW50cmlu
c2ljIGRpbWVuc2lvbnMsIGFwcGx5aW5nIENTUyBkZWZhdWx0IGZhbGxiYWNrCiAgICAgICAgICAg
ICAvLyB2YWx1ZXMgKDMwMHgxNTApIGZvciBkaW1lbnNpb25zIHdpdGggbm8gaW50cmluc2ljIHZh
bHVlIChlLmcuIHBlcmNlbnRhZ2Utc2l6ZWQgb3IKQEAgLTUyNSw5ICs1MjIsOSBAQCB2b2lkIFJl
bmRlclJlcGxhY2VkOjpjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChS
ZW5kZXJCb3gqIGNvbnRlbgogICAgIGNvbnN0cmFpbmVkU2l6ZSA9IGludHJpbnNpY1NpemU7CiB9
CiAKLXZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVk
QnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKFJlbmRlckJveCogY29udGVudFJlbmRlcmVyLCBGbG9h
dFNpemUmIGludHJpbnNpY1NpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Cit2
b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJh
bnNmZXJyZWRNaW5NYXhTaXplcyhSZW5kZXJSZXBsYWNlZCogc3ZnUm9vdCwgRmxvYXRTaXplJiBp
bnRyaW5zaWNTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdAogewotICAgIGNv
bXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KGNvbnRlbnRSZW5kZXJlciwg
aW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGNvbXB1dGVBc3BlY3RSYXRpb0lu
Zm9ybWF0aW9uRm9yUmVuZGVyQm94KHN2Z1Jvb3QsIGludHJpbnNpY1NpemUsIGludHJpbnNpY1Jh
dGlvKTsKIAogICAgIC8vIE5vdyBjb25zdHJhaW4gdGhlIGludHJpbnNpYyBzaXplIGFsb25nIGVh
Y2ggYXhpcyBhY2NvcmRpbmcgdG8gbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aC9oZWlnaHRzIGFs
b25nIHRoZQogICAgIC8vIG9wcG9zaXRlIGF4aXMuIFNvIGZvciBleGFtcGxlIGEgbWF4aW11bSB3
aWR0aCB0aGF0IHNocmlua3Mgb3VyIHdpZHRoIHdpbGwgcmVzdWx0IGluIHRoZSBoZWlnaHQgd2Ug
Y29tcHV0ZSBoZXJlCkBAIC02MDEsMjEgKzU5OCwyMSBAQCBkb3VibGUgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0CiB7CiAgICAgRmxvYXRTaXplIGlu
dHJpbnNpY1JhdGlvOwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplOwotICAgIGNvbXB1dGVB
c3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KGVtYmVkZGVkQ29udGVudEJveCgpLCBp
bnRyaW5zaWNTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5m
b3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRkZWRTVkdSb290KCksIGludHJpbnNpY1NpemUsIGlu
dHJpbnNpY1JhdGlvKTsKICAgICByZXR1cm4gaW50cmluc2ljUmF0aW8uYXNwZWN0UmF0aW9Eb3Vi
bGUoKTsKIH0KIAogRmxvYXRTaXplIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6
ZSgpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhlcmUncyBhbiBlbWJlZGRlZENvbnRlbnRCb3goKSBv
ZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1bWVudCBhdmFpbGFibGUsIHRoaXMgY29kZS1wYXRo
IHNob3VsZCBuZXZlciBiZSB1c2VkLgotICAgIEFTU0VSVCghZW1iZWRkZWRDb250ZW50Qm94KCkg
fHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gSWYg
dGhlcmUncyBhbiBlbWJlZGRlZFNWR1Jvb3QoKSBvZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1
bWVudCBhdmFpbGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1c2VkLgorICAg
IEFTU0VSVCghZW1iZWRkZWRTVkdSb290KCkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXpl
Q29udGFpbm1lbnQoKSk7CiAgICAgcmV0dXJuIHsgaW50cmluc2ljTG9naWNhbFdpZHRoKCksIGlu
dHJpbnNpY0xvZ2ljYWxIZWlnaHQoKSB9OwogfQogCiBGbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6
OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QKIHsKLSAgICAvLyBJZiB0aGVyZSdzIGFuIGVt
YmVkZGVkQ29udGVudEJveCgpIG9mIGEgcmVtb3RlLCByZWZlcmVuY2VkIGRvY3VtZW50IGF2YWls
YWJsZSwgdGhpcyBjb2RlLXBhdGggc2hvdWxkIG5ldmVyIGJlIHVzZWQuCi0gICAgQVNTRVJUKCFl
bWJlZGRlZENvbnRlbnRCb3goKSB8fCBzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlu
bWVudCgpKTsKKyAgICAvLyBJZiB0aGVyZSdzIGFuIGVtYmVkZGVkU1ZHUm9vdCgpIG9mIGEgcmVt
b3RlLCByZWZlcmVuY2VkIGRvY3VtZW50IGF2YWlsYWJsZSwgdGhpcyBjb2RlLXBhdGggc2hvdWxk
IG5ldmVyIGJlIHVzZWQuCisgICAgQVNTRVJUKCFlbWJlZGRlZFNWR1Jvb3QoKSB8fCBzaG91bGRB
cHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKTsKICAgICBhdXRvIGludHJpbnNpY1Np
emUgPSBGbG9hdFNpemUoaW50cmluc2ljTG9naWNhbFdpZHRoKCksIGludHJpbnNpY0xvZ2ljYWxI
ZWlnaHQoKSk7CiAgICAgRmxvYXRTaXplIHByZWZlcnJlZEFzcGVjdFJhdGlvOwogCkBAIC02OTgs
MTMgKzY5NSw5IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBOT0RFTEVURSByZXNvbHZlV2lk
dGhGb3JSYXRpbyhMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpCiAgICAgcmV0dXJuIExheW91dFVu
aXQobG9naWNhbEhlaWdodCAqIGFzcGVjdFJhdGlvKTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IE5PREVMRVRFIGhhc0ludHJpbnNpY1NpemUoUmVuZGVyQm94KmNvbnRlbnRSZW5kZXJlciwgYm9v
bCBoYXNJbnRyaW5zaWNXaWR0aCwgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgKQorc3RhdGljIGlu
bGluZSBib29sIE5PREVMRVRFIGhhc0ludHJpbnNpY1NpemUoY29uc3QgUmVuZGVyUmVwbGFjZWQq
IHN2Z1Jvb3QsIGJvb2wgaGFzSW50cmluc2ljV2lkdGgsIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0
KQogewotICAgIGlmIChoYXNJbnRyaW5zaWNXaWR0aCAmJiBoYXNJbnRyaW5zaWNIZWlnaHQpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChoYXNJbnRyaW5zaWNXaWR0aCB8fCBoYXNJbnRy
aW5zaWNIZWlnaHQpCi0gICAgICAgIHJldHVybiBjb250ZW50UmVuZGVyZXIgJiYgY29udGVudFJl
bmRlcmVyLT5pc1JlbmRlck9yTGVnYWN5UmVuZGVyU1ZHUm9vdCgpOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gKGhhc0ludHJpbnNpY1dpZHRoICYmIGhhc0ludHJpbnNpY0hlaWdodCkg
fHwgKChoYXNJbnRyaW5zaWNXaWR0aCB8fCBoYXNJbnRyaW5zaWNIZWlnaHQpICYmIHN2Z1Jvb3Qp
OwogfQogCiBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCBzaG91bGRDb21wdXRlUHJlZmVycmVkKSBjb25z
dApAQCAtNzE1LDEyICs3MDgsMTAgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgc2gKICAgICBpZiAo
c3R5bGUubG9naWNhbFdpZHRoKCkuaXNJbnRyaW5zaWNPclN0cmV0Y2goKSkKICAgICAgICAgcmV0
dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb21w
dXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyhzdHlsZS5sb2dpY2FsV2lkdGgoKSksIHNob3Vs
ZENvbXB1dGVQcmVmZXJyZWQpOwogCi0gICAgUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIgPSBl
bWJlZGRlZENvbnRlbnRCb3goKTsKLQogICAgIC8vIDEwLjMuMiBJbmxpbmUsIHJlcGxhY2VkIGVs
ZW1lbnRzOiBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS92aXN1ZGV0Lmh0bWwjaW5saW5lLXJl
cGxhY2VkLXdpZHRoCiAgICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvOwogICAgIEZsb2F0U2l6
ZSBjb25zdHJhaW5lZFNpemU7Ci0gICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRC
eVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoY29udGVudFJlbmRlcmVyLCBjb25zdHJhaW5lZFNpemUs
IGludHJpbnNpY1JhdGlvKTsKKyAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5
VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3RyYWluZWRTaXpl
LCBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBpZiAoc3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRv
KCkpIHsKICAgICAgICAgYm9vbCBjb21wdXRlZEhlaWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxI
ZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTczMCw3ICs3MjEsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJl
cGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJl
ZCBzaAogICAgICAgICAvLyBGb3IgZmxleCBvciBncmlkIGl0ZW1zIHdoZXJlIHRoZSBsb2dpY2Fs
IGhlaWdodCBoYXMgYmVlbiBvdmVycmlkZW4gdGhlbiB3ZSBzaG91bGQgdXNlIHRoYXQgc2l6ZSB0
byBjb21wdXRlIHRoZSByZXBsYWNlZCB3aWR0aCBhcyBsb25nIGFzIHRoZSBmbGV4IG9yCiAgICAg
ICAgIC8vIGdyaWQgaXRlbSBoYXMgYW4gaW50cmluc2ljIHNpemUuIEl0IGlzIHBvc3NpYmxlIChp
bmRlZWQsIGNvbW1vbikgZm9yIGFuIFNWRyBncmFwaGljIHRvIGhhdmUgYW4gaW50cmluc2ljIGFz
cGVjdCByYXRpbyBidXQgbm90IHRvIGhhdmUgYW4gaW50cmluc2ljCiAgICAgICAgIC8vIHdpZHRo
IG9yIGhlaWdodC4gVGhlcmUgYXJlIGFsc28gZWxlbWVudHMgd2l0aCBpbnRyaW5zaWMgc2l6ZXMg
YnV0IHdpdGhvdXQgaW50cmluc2ljIHJhdGlvIChsaWtlIGFuIGlmcmFtZSkuCi0gICAgICAgIGlm
IChhdXRvIG92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0ID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5
KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBpc0dyaWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUo
Y29udGVudFJlbmRlcmVyLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/
IHRoaXMtPm92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KCkgOiBzdGQ6Om51bGxvcHQp
KQorICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nTG9naWNhbEhlaWdodCA9ICghaW50cmluc2lj
UmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgpKSAmJiBoYXNJ
bnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9vdCgpLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFzSW50
cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KCkg
OiBzdGQ6Om51bGxvcHQpKQogICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb250ZW50Qm94TG9naWNhbEhlaWdodCgqb3Zl
cnJpZGluZ0xvZ2ljYWxIZWlnaHQpICogaW50cmluc2ljUmF0aW8uYXNwZWN0UmF0aW9Eb3VibGUo
KSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7CiAKICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5k
ICd3aWR0aCcgYm90aCBoYXZlIGNvbXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVt
ZW50IGFsc28gaGFzIGFuIGludHJpbnNpYyB3aWR0aCwgdGhlbiB0aGF0IGludHJpbnNpYyB3aWR0
aCBpcyB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lkdGgnLgpAQCAtODEzLDE5ICs4MDQsMTcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQKICAgICBpZiAoaGFzUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkp
CiAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01p
bk1heEhlaWdodChjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoc3R5bGUoKS5sb2dp
Y2FsSGVpZ2h0KCkpKTsKIAotICAgIFJlbmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRk
ZWRDb250ZW50Qm94KCk7Ci0KICAgICAvLyAxMC42LjIgSW5saW5lLCByZXBsYWNlZCBlbGVtZW50
czogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvdmlzdWRldC5odG1sI2lubGluZS1yZXBsYWNl
ZC1oZWlnaHQKICAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNv
bnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJh
bnNmZXJyZWRNaW5NYXhTaXplcyhjb250ZW50UmVuZGVyZXIsIGNvbnN0cmFpbmVkU2l6ZSwgaW50
cmluc2ljUmF0aW8pOworICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFu
c2ZlcnJlZE1pbk1heFNpemVzKGVtYmVkZGVkU1ZHUm9vdCgpLCBjb25zdHJhaW5lZFNpemUsIGlu
dHJpbnNpY1JhdGlvKTsKIAogICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBzdHlsZSgpLmxvZ2ljYWxX
aWR0aCgpLmlzQXV0bygpOwogICAgIGJvb2wgaGFzSW50cmluc2ljV2lkdGggPSBjb25zdHJhaW5l
ZFNpemUud2lkdGgoKSA+IDAgfHwgKCFjb25zdHJhaW5lZFNpemUud2lkdGgoKSAmJiBzaG91bGRS
ZXNwZWN0WmVyb0ludHJpbnNpY1dpZHRoKCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6
ZUNvbnRhaW5tZW50KCk7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSBjb25zdHJhaW5l
ZFNpemUuaGVpZ2h0KCkgPiAwIHx8IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7CiAKICAg
ICAvLyBTZWUgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGZvciBhIHNpbWlsYXIgY2hl
Y2sgZm9yIGhlaWdodHMuCi0gICAgaWYgKGF1dG8gb3ZlcnJpZGluZ2xvZ2ljYWxXaWR0aCA9ICgh
aW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgp
KSAmJiBoYXNJbnRyaW5zaWNTaXplKGNvbnRlbnRSZW5kZXJlciwgaGFzSW50cmluc2ljV2lkdGgs
IGhhc0ludHJpbnNpY0hlaWdodCkgPyBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCkg
OiBzdGQ6Om51bGxvcHQpKQorICAgIGlmIChhdXRvIG92ZXJyaWRpbmdsb2dpY2FsV2lkdGggPSAo
IWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlzR3JpZEl0ZW0o
KSkgJiYgaGFzSW50cmluc2ljU2l6ZShlbWJlZGRlZFNWR1Jvb3QoKSwgaGFzSW50cmluc2ljV2lk
dGgsIGhhc0ludHJpbnNpY0hlaWdodCkgPyBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRo
KCkgOiBzdGQ6Om51bGxvcHQpKQogICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNh
bEhlaWdodFJlc3BlY3RpbmdNaW5NYXhIZWlnaHQoY29udGVudEJveExvZ2ljYWxXaWR0aCgqb3Zl
cnJpZGluZ2xvZ2ljYWxXaWR0aCkgKiBpbnRyaW5zaWNSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFz
cGVjdFJhdGlvRG91YmxlKCkpOwogCiAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90
aCBoYXZlIGNvbXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFz
IGFuIGludHJpbnNpYyBoZWlnaHQsIHRoZW4gdGhhdCBpbnRyaW5zaWMgaGVpZ2h0IGlzIHRoZSB1
c2VkIHZhbHVlIG9mICdoZWlnaHQnLgpAQCAtMTA3NSw3ICsxMDY0LDcgQEAgRmxvYXRTaXplIFJl
bmRlclJlcGxhY2VkOjppbnRyaW5zaWNSYXRpbygpIGNvbnN0CiB7CiAgICAgRmxvYXRTaXplIGlu
dHJpbnNpY1JhdGlvOwogICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNpemU7Ci0gICAgY29tcHV0
ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRkZWRDb250ZW50Qm94KCks
IGNvbnN0cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGNvbXB1dGVBc3BlY3RSYXRp
b0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KGVtYmVkZGVkU1ZHUm9vdCgpLCBjb25zdHJhaW5lZFNp
emUsIGludHJpbnNpY1JhdGlvKTsKICAgICByZXR1cm4gaW50cmluc2ljUmF0aW87CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYWIzZjQ3MTBhYTkw
Li5jYWY3ODg5ZDdhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZUFzcGVj
dFJhdGlvQWRqdXN0ZWRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2lj
YWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCB7IHJldHVybiAwOyB9Cisg
ICAgdmlydHVhbCBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgeyByZXR1
cm4gMDsgfQogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIlJlbmRlclJlcGxhY2VkIl9zOyB9CiAKICAgICBib29sIGNhbkhhdmVDaGlsZHJlbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMjEsOCArMTIxLDggQEAgcHJp
dmF0ZToKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9W
aXNpYmxlQ29udGVudCA9IHRydWUpIGZpbmFsOwotICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJhdGlv
SW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25zdHJhaW5l
ZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwotICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoUmVuZGVy
Qm94KiBjb250ZW50UmVuZGVyZXIsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNp
emUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVBc3BlY3RSYXRpb0lu
Zm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRlclJlcGxhY2VkKiwgRmxvYXRTaXplJiBjb25zdHJh
aW5lZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OworICAgIHZvaWQgY29t
cHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoUmVu
ZGVyUmVwbGFjZWQqIHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNp
emUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3
U2VsZWN0aW9uVGludCgpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcAppbmRleCA0ZGE1MDhiNmE3M2EuLmU4Y2IwYTBlNDljYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTQ4NywxNSArNDg3LDE1IEBA
IGJvb2wgUmVuZGVyV2lkZ2V0OjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29u
c3QKIHsKICAgICBpZiAoUmVuZGVyUmVwbGFjZWQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRX
aWR0aHMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGVtYmVkZGVkQ29udGVu
dEJveCgpOworICAgIHJldHVybiBlbWJlZGRlZFNWR1Jvb3QoKTsKIH0KIAotUmVuZGVyQm94KiBS
ZW5kZXJXaWRnZXQ6OmVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCog
UmVuZGVyV2lkZ2V0OjplbWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIGlmICghaXM8UmVu
ZGVyRW1iZWRkZWRPYmplY3Q+KHRoaXMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBS
ZWZQdHIgZnJhbWVWaWV3ID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWVWaWV3Pih3aWRnZXQo
KSk7Ci0gICAgcmV0dXJuIGZyYW1lVmlldyA/IGZyYW1lVmlldy0+ZW1iZWRkZWRDb250ZW50Qm94
KCkgOiBudWxscHRyOworICAgIHJldHVybiBmcmFtZVZpZXcgPyBmcmFtZVZpZXctPmVtYmVkZGVk
U1ZHUm9vdCgpIDogbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGUwMTc4MTYyMDBkZi4uMzljNDBl
M2JiMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC05MSw3
ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAK
ICAgICBib29sIHNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdCBmaW5hbDsK
LSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IGZpbmFsOworICAgIFJl
bmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQg
c2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgc2V0T3Zl
cmxhcFRlc3RSZXN1bHQoYm9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcAppbmRleCA5YTBkNDgyNmE2OTAuLjg2MjllMGVkMjE2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0yNzYsOCArMjc2LDggQEAgUmVmUHRy
PE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZlSW1hZ2UoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBjb25zdCBEZXN0aW5hdGkKICAgICBhdXRvIHJlbmRlcmluZ01vZGUgPSBtX3BhZ2UtPnNldHRp
bmdzKCkuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogCiAgICAgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdyA9IG51bGxwdHI7Ci0gICAgaWYgKENoZWNrZWRQdHIgY29udGVudFJlbmRlcmVy
ID0gZW1iZWRkZWRDb250ZW50Qm94KCkpCi0gICAgICAgIGhvc3RXaW5kb3cgPSBjb250ZW50UmVu
ZGVyZXItPmhvc3RXaW5kb3coKTsKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRk
ZWRTVkdSb290KCkpCisgICAgICAgIGhvc3RXaW5kb3cgPSBzdmdSb290LT5ob3N0V2luZG93KCk7
CiAKICAgICBSZWZQdHIgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJl
bmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2U6OkRPTSwgMSwgY29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQpAQCAtMzky
LDEyICszOTIsMTIgQEAgSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWMKICAgICByZXR1cm4gSW1hZ2VE
cmF3UmVzdWx0OjpEaWREcmF3OwogfQogCi1SZW5kZXJCb3gqIFNWR0ltYWdlOjplbWJlZGRlZENv
bnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIFNWR0ltYWdlOjplbWJlZGRlZFNWR1Jv
b3QoKSBjb25zdAogewogICAgIFJlZlB0ciByb290RWxlbWVudCA9IHRoaXMtPnJvb3RFbGVtZW50
KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGRvd25jYXN0PFJlbmRlckJveD4ocm9vdEVsZW1lbnQtPnJlbmRlcmVyKCkpOworICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4ocm9vdEVsZW1lbnQtPnJlbmRlcmVyKCkp
OwogfQogCiBMb2NhbEZyYW1lVmlldyogU1ZHSW1hZ2U6OmZyYW1lVmlldygpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCmluZGV4IGY0NTc3ZDVjZjA0Mi4uZjc0M2Ez
NzAzMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaApAQCAtMzYsNyAr
MzYsNyBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBMb2NhbEZy
YW1lVmlldzsKIGNsYXNzIFBhZ2U7Ci1jbGFzcyBSZW5kZXJCb3g7CitjbGFzcyBSZW5kZXJSZXBs
YWNlZDsKIGNsYXNzIFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBTVkdJbWFnZUNocm9tZUNsaWVudDsK
IGNsYXNzIFNWR0ltYWdlRm9yQ29udGFpbmVyOwpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgdHJ5Q3JlYXRlRnJvbURhdGEoc3RkOjpzcGFu
PGNvbnN0IHVpbnQ4X3Q+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTVkdJbWFnZT4m
Jik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzRGF0YURlY29kYWJsZShj
b25zdCBTZXR0aW5ncyYsIHN0ZDo6c3Bhbjxjb25zdCB1aW50OF90Pik7CiAKLSAgICBSZW5kZXJC
b3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OworICAgIFJlbmRlclJlcGxhY2VkKiBlbWJl
ZGRlZFNWR1Jvb3QoKSBjb25zdDsKICAgICBMb2NhbEZyYW1lVmlldyogTk9ERUxFVEUgZnJhbWVW
aWV3KCkgY29uc3Q7CiAKICAgICBib29sIGlzU1ZHSW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>