<?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>254194</bug_id>
          
          <creation_ts>2023-03-20 17:22:27 -0700</creation_ts>
          <short_desc>REGRESSION(261868@main): Reverting 261699@main did not fix the perf regression, so revert the revert</short_desc>
          <delta_ts>2023-03-20 17:43:16 -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>
          
          <blocked>254153</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1942731</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-03-20 17:22:27 -0700</bug_when>
    <thetext>https://commits.webkit.org/261868@main introduced a regression:
Reverting 261699@main did not fix the perf regression, so revert the revert

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1942733</commentid>
    <comment_count>1</comment_count>
      <attachid>465531</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-03-20 17:22:35 -0700</bug_when>
    <thetext>Created attachment 465531
REVERT of 261868@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1942738</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-03-20 17:41:55 -0700</bug_when>
    <thetext>Committed 261900@main (d62178ebc76b): &lt;https://commits.webkit.org/261900@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 465531.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1942739</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-03-20 17:43:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/106971356&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465531</attachid>
            <date>2023-03-20 17:22:35 -0700</date>
            <delta_ts>2023-03-20 17:42:00 -0700</delta_ts>
            <desc>REVERT of 261868@main</desc>
            <filename>bug-254194-20230320172234.patch</filename>
            <type>text/plain</type>
            <size>38544</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA4NzU0NGJmYTk1ODRlYjhjM2RhMDg2OTQzOTJjNDcwNWExNGJiZGNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBNb24sIDIwIE1hciAyMDIzIDE3OjIyOjMyIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjE4NjhAbWFpbi4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQxOTQKClJldmVydGluZyAyNjE2OTlAbWFpbiBkaWQgbm90
IGZpeCB0aGUgcGVyZiByZWdyZXNzaW9uLCBzbyByZXZlcnQgdGhlIHJldmVydAoKUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgoKIlVucmV2aWV3ZWQsIHJldmVydGluZyByMjYxNjk5QG1haW4uIgpodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUzCmh0dHBzOi8vY29tbWl0cy53
ZWJraXQub3JnLzI2MTg2OEBtYWluCi0tLQogLi4uL3N5c3RlbS1wcmV2aWV3L0FSS2l0QmFkZ2VT
eXN0ZW1JbWFnZS5tbSAgIHwgIDMgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmggICB8ICA0ICsrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNl
UG9vbC5jcHAgICAgfCAgMiAtCiAuLi4vY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNw
cCAgICAgICAgfCAyOSArKysrKystLS0KIC4uLi9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQuaCB8ICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLmggICAgICAgfCAxNSArKystLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3Vy
ZmFjZS5tbSAgICAgIHwgNDAgKysrKystLS0tLS0tCiAuLi4vR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5jcHAgfCAgNiAtLQogLi4uL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaCAgIHwgMTAgKy0tCiAuLi4vZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHAgICAgICAgfCAxNSArKy0tLQogLi4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0gIHwgIDMgKy0KIC4uLi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lv
bkNvY29hLm1tICAgICAgICB8ICA0ICstCiAuLi4vVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RT
dG9yZU1hYy5tbSAgICAgfCAgNiArLQogLi4uL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFj
a2VuZC5oICAgICAgIHwgIDIgLQogLi4uZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQuY3BwIHwgMTYgKystLS0KIC4uLmFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQuaCB8ICAyIC0KIC4uLi9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9y
dElPUy5tbSB8ICA0ICstCiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qICAgfCAgNCArKwogLi4uL1Rlc3RzL1dlYkNvcmUvY29jb2EvSU9TdXJmYWNlVGVzdHMubW0g
ICAgIHwgNjEgKysrKysrKysrKysrKysrKysrKwogMTkgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2Vy
dGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9JT1N1cmZhY2VUZXN0cy5tbQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3lzdGVtLXByZXZpZXcvQVJLaXRCYWRnZVN5c3Rl
bUltYWdlLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zeXN0ZW0tcHJldmlldy9BUktpdEJh
ZGdlU3lzdGVtSW1hZ2UubW0KaW5kZXggODA3MDhhMjNmNGUxLi41ZTFiMzdkYTZiZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3lzdGVtLXByZXZpZXcvQVJLaXRCYWRnZVN5
c3RlbUltYWdlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3lzdGVtLXByZXZpZXcv
QVJLaXRCYWRnZVN5c3RlbUltYWdlLm1tCkBAIC0yMDAsNyArMjAwLDggQEAgdm9pZCBBUktpdEJh
ZGdlU3lzdGVtSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNv
bnN0IEZsb2F0UmUKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBiYWRnZVN1cmZhY2Ug
PSBJT1N1cmZhY2U6OmNyZWF0ZSgmSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLCB7IHN1cmZh
Y2VEaW1lbnNpb24sIHN1cmZhY2VEaW1lbnNpb24gfSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpT
UkdCKCkpOwogICAgIElPU3VyZmFjZVJlZiBzdXJmYWNlID0gYmFkZ2VTdXJmYWNlLT5zdXJmYWNl
KCk7CiAgICAgW2NpQ29udGV4dCByZW5kZXI6dHJhbnNsYXRlZEltYWdlIHRvSU9TdXJmYWNlOnN1
cmZhY2UgYm91bmRzOmJhZGdlUmVjdCBjb2xvclNwYWNlOnNSR0JDb2xvclNwYWNlUmVmKCldOwot
ICAgIGNnSW1hZ2UgPSB1c2VTbWFsbEJhZGdlID8gYmFkZ2VTdXJmYWNlLT5jcmVhdGVJbWFnZSgp
IDogYmFkZ2VTdXJmYWNlLT5jcmVhdGVJbWFnZSgpOworICAgIGF1dG8gc3VyZmFjZUNvbnRleHQg
PSBiYWRnZVN1cmZhY2UtPmNyZWF0ZVBsYXRmb3JtQ29udGV4dCgpOworICAgIGNnSW1hZ2UgPSBi
YWRnZVN1cmZhY2UtPmNyZWF0ZUltYWdlKHN1cmZhY2VDb250ZXh0LmdldCgpKTsKICNlbHNlCiAg
ICAgY2dJbWFnZSA9IGFkb3B0Q0YoW2NpQ29udGV4dCBjcmVhdGVDR0ltYWdlOnNvdXJjZU92ZXJG
aWx0ZXIub3V0cHV0SW1hZ2UgZnJvbVJlY3Q6ZmxpcHBlZEluc2V0QmFkZ2VSZWN0XSk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmlu
ZGV4IDIzYWFjY2NiYzNkNy4uODMzYjg4MDE5NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1
ZGUgIkltYWdlQnVmZmVyQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5k
LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nTW9k
ZS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KQEAgLTY3LDYgKzY4LDcgQEAgc3RydWN0IEltYWdlQnVmZmVyQ3Jl
YXRpb25Db250ZXh0IHsKICAgICBlbnVtIGNsYXNzIFVzZUNHRGlzcGxheUxpc3RJbWFnZUNhY2hl
IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBVc2VDR0Rpc3BsYXlMaXN0SW1hZ2VDYWNoZSB1c2VD
R0Rpc3BsYXlMaXN0SW1hZ2VDYWNoZTsKICNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSByZXNvdXJjZU93bmVyOwogCiAgICAgSW1hZ2VCdWZmZXJDcmVhdGlvbkNvbnRleHQoR3Jh
cGhpY3NDbGllbnQqIGNsaWVudCA9IG51bGxwdHIKICNpZiBIQVZFKElPU1VSRkFDRSkKQEAgLTc2
LDYgKzc4LDcgQEAgc3RydWN0IEltYWdlQnVmZmVyQ3JlYXRpb25Db250ZXh0IHsKICNpZiBFTkFC
TEUoQ0dfRElTUExBWV9MSVNUX0JBQ0tFRF9JTUFHRV9CVUZGRVIpCiAgICAgICAgICwgVXNlQ0dE
aXNwbGF5TGlzdEltYWdlQ2FjaGUgdXNlQ0dEaXNwbGF5TGlzdEltYWdlQ2FjaGUgPSBVc2VDR0Rp
c3BsYXlMaXN0SW1hZ2VDYWNoZTo6Tm8KICNlbmRpZgorICAgICAgICAsIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGl0eSByZXNvdXJjZU93bmVyID0geyB9CiAgICAgKQogICAgICAgICA6IGdyYXBoaWNz
Q2xpZW50KGNsaWVudCkKICNpZiBIQVZFKElPU1VSRkFDRSkKQEAgLTg1LDYgKzg4LDcgQEAgc3Ry
dWN0IEltYWdlQnVmZmVyQ3JlYXRpb25Db250ZXh0IHsKICNpZiBFTkFCTEUoQ0dfRElTUExBWV9M
SVNUX0JBQ0tFRF9JTUFHRV9CVUZGRVIpCiAgICAgICAgICwgdXNlQ0dEaXNwbGF5TGlzdEltYWdl
Q2FjaGUodXNlQ0dEaXNwbGF5TGlzdEltYWdlQ2FjaGUpCiAjZW5kaWYKKyAgICAgICAgLCByZXNv
dXJjZU93bmVyKHJlc291cmNlT3duZXIpCiAgICAgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCmluZGV4IGZj
NGE2MTJmZWJiMy4uMDljY2U1NmM3NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcApAQCAtODksOCArODksNiBAQCB2
b2lkIElPU3VyZmFjZVBvb2w6OndpbGxBZGRTdXJmYWNlKElPU3VyZmFjZSYgc3VyZmFjZSwgYm9v
bCBpblVzZSkKICAgICBDYWNoZWRTdXJmYWNlRGV0YWlscyYgZGV0YWlscyA9IG1fc3VyZmFjZURl
dGFpbHMuYWRkKCZzdXJmYWNlLCBDYWNoZWRTdXJmYWNlRGV0YWlscygpKS5pdGVyYXRvci0+dmFs
dWU7CiAgICAgZGV0YWlscy5yZXNldExhc3RVc2VUaW1lKCk7CiAKLSAgICBzdXJmYWNlLnJlbGVh
c2VQbGF0Zm9ybUNvbnRleHQoKTsKLQogICAgIHNpemVfdCBzdXJmYWNlQnl0ZXMgPSBzdXJmYWNl
LnRvdGFsQnl0ZXMoKTsKIAogICAgIGV2aWN0KHN1cmZhY2VCeXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCAyMGI2MTlmZGIwYTguLmQzZmMwY2Q5MTQ3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC04NSwxOCArODUsMTkg
QEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBhdXRvIGRpc3BsYXlJRCA9IGNyZWF0aW9uQ29udGV4dC5ncmFwaGljc0NsaWVudCA/IGNyZWF0
aW9uQ29udGV4dC5ncmFwaGljc0NsaWVudC0+ZGlzcGxheUlEKCkgOiAwOwotICAgIFJldGFpblB0
cjxDR0NvbnRleHRSZWY+IGNnQ29udGV4dCA9IHN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4
dChkaXNwbGF5SUQpOworICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGNnQ29udGV4dCA9IHN1
cmZhY2UtPmNyZWF0ZVBsYXRmb3JtQ29udGV4dChkaXNwbGF5SUQpOwogICAgIGlmICghY2dDb250
ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENHQ29udGV4dENsZWFyUmVjdChj
Z0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXpl
KSk7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+
KHBhcmFtZXRlcnMsIFdURk1vdmUoc3VyZmFjZSksIGRpc3BsYXlJRCwgY3JlYXRpb25Db250ZXh0
LnN1cmZhY2VQb29sKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoc3VyZmFjZSksIFdURk1vdmUoY2dDb250ZXh0
KSwgZGlzcGxheUlELCBjcmVhdGlvbkNvbnRleHQuc3VyZmFjZVBvb2wpOwogfQogCi1JbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZh
Y2UsIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgSU9TdXJmYWNlUG9vbCogaW9TdXJmYWNl
UG9vbCkKK0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxJT1N1
cmZhY2U+IHN1cmZhY2UsIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IHBsYXRmb3JtQ29udGV4dCwg
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBJT1N1cmZhY2VQb29sKiBpb1N1cmZhY2VQb29s
KQogICAgIDogSW1hZ2VCdWZmZXJDR0JhY2tlbmQocGFyYW1ldGVycykKICAgICAsIG1fc3VyZmFj
ZShXVEZNb3ZlKHN1cmZhY2UpKQorICAgICwgbV9wbGF0Zm9ybUNvbnRleHQoV1RGTW92ZShwbGF0
Zm9ybUNvbnRleHQpKQogICAgICwgbV9kaXNwbGF5SUQoZGlzcGxheUlEKQogICAgICwgbV9pb1N1
cmZhY2VQb29sKGlvU3VyZmFjZVBvb2wpCiB7CkBAIC0xMDcsMTMgKzEwOCwxNSBAQCBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBQ
YXJhbWV0ZXJzJiBwYXJhbQogSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjp+SW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kKCkKIHsKICAgICBlbnN1cmVOYXRpdmVJbWFnZXNIYXZlQ29waWVk
QmFja2luZ1N0b3JlKCk7CisgICAgcmVsZWFzZUdyYXBoaWNzQ29udGV4dCgpOwogICAgIElPU3Vy
ZmFjZTo6bW92ZVRvUG9vbChXVEZNb3ZlKG1fc3VyZmFjZSksIG1faW9TdXJmYWNlUG9vbC5nZXQo
KSk7CiB9CiAKKwogR3JhcGhpY3NDb250ZXh0JiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OmNvbnRleHQoKQogewogICAgIGlmICghbV9jb250ZXh0KSB7Ci0gICAgICAgIG1fY29udGV4dCA9
IG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0Q0c+KG1fc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1D
b250ZXh0KG1fZGlzcGxheUlEKSk7CisgICAgICAgIG1fY29udGV4dCA9IG1ha2VVbmlxdWU8R3Jh
cGhpY3NDb250ZXh0Q0c+KGVuc3VyZVBsYXRmb3JtQ29udGV4dCgpKTsKICAgICAgICAgYXBwbHlC
YXNlVHJhbnNmb3JtKCptX2NvbnRleHQpOwogICAgIH0KICAgICByZXR1cm4gKm1fY29udGV4dDsK
QEAgLTEyNCw2ICsxMjcsMTUgQEAgdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmZs
dXNoQ29udGV4dCgpCiAgICAgQ0dDb250ZXh0Rmx1c2goY29udGV4dCgpLnBsYXRmb3JtQ29udGV4
dCgpKTsKIH0KIAorQ0dDb250ZXh0UmVmIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6ZW5z
dXJlUGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1Db250ZXh0KSB7Cisg
ICAgICAgIG1fcGxhdGZvcm1Db250ZXh0ID0gbV9zdXJmYWNlLT5jcmVhdGVQbGF0Zm9ybUNvbnRl
eHQobV9kaXNwbGF5SUQpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3BsYXRmb3JtQ29udGV4
dCk7CisgICAgfQorICAgIHJldHVybiBtX3BsYXRmb3JtQ29udGV4dC5nZXQoKTsKK30KKwogSW50
U2l6ZSBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRTaXplKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9zdXJmYWNlLT5zaXplKCk7CkBAIC0xNTMsNyArMTY1LDcgQEAgdm9pZCBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmludmFsaWRhdGVDYWNoZWROYXRpdmVJbWFnZSgp
CiBSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29weU5h
dGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpCiB7CiAgICAgbV9tYXlIYXZlT3V0c3RhbmRpbmdC
YWNraW5nU3RvcmVSZWZlcmVuY2VzID0gdHJ1ZTsKLSAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNy
ZWF0ZShtX3N1cmZhY2UtPmNyZWF0ZUltYWdlKCkpOworICAgIHJldHVybiBOYXRpdmVJbWFnZTo6
Y3JlYXRlKG1fc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoZW5zdXJlUGxhdGZvcm1Db250ZXh0KCkpKTsK
IH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlOYXRpdmVJbWFnZUZvckRyYXdpbmcoR3JhcGhpY3NDb250ZXh0JiBkZXN0aW5hdGlvbikKQEAg
LTE2Myw3ICsxNzUsNyBAQCBSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZDo6Y29weU5hdGl2ZUltYWdlRm9yRHJhd2luZyhHcmFwaAogICAgICAgICAvLyBUaGUg
ZGVzdGluYXRpb24gYmFja2VuZCBuZWVkcyB0byByZWFkIHRoZSBhY3R1YWwgcGl4ZWxzLiBSZXR1
cm5pbmcgbm9uLXJlZmVuY2Ugd2lsbAogICAgICAgICAvLyBjb3B5IHRoZSBwaXhlbHMgYW5kIGJ1
dCBzdGlsbCBjYWNoZSB0aGUgaW1hZ2UgdG8gdGhlIGNvbnRleHQuIFRoaXMgbWVhbnMgd2UgbXVz
dAogICAgICAgICAvLyByZXR1cm4gdGhlIHJlZmVyZW5jZSBvciBjbGVhbnVwIGxhdGVyIGlmIHdl
IHJldHVybiB0aGUgbm9uLXJlZmVyZW5jZS4KLSAgICAgICAgaWYgKGF1dG8gaW1hZ2UgPSBhZG9w
dENGKENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlUmVmZXJlbmNlKG1fc3VyZmFjZS0+ZW5z
dXJlUGxhdGZvcm1Db250ZXh0KCkpKSkgeworICAgICAgICBpZiAoYXV0byBpbWFnZSA9IGFkb3B0
Q0YoQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1hZ2VSZWZlcmVuY2UoZW5zdXJlUGxhdGZvcm1D
b250ZXh0KCkpKSkgewogICAgICAgICAgICAgLy8gQ0cgaGFzIGludGVybmFsIGNhY2hlcyBmb3Ig
c29tZSBvcGVyYXRpb25zIHJlbGF0ZWQgdG8gc29mdHdhcmUgYml0bWFwIGRyYXcuIAogICAgICAg
ICAgICAgLy8gT25lIG9mIHRoZXNlIGNhY2hlcyBhcmUgcGVyLWltYWdlIGNvbG9yIG1hdGNoaW5n
IGNhY2hlLiBTaW5jZSB0aGVzZSB3aWxsIG5vdCBnZXQgYW55IGhpdHMKICAgICAgICAgICAgIC8v
IGZyb20gYW4gaW1hZ2UgdGhhdCBpcyByZWNyZWF0ZWQgZXZlcnkgdGltZSwgbWFyayB0aGUgaW1h
Z2UgdHJhbnNpZW50IHRvIHNraXAgdGhlc2UgY2FjaGVzLgpAQCAtMTc5LDcgKzE5MSw4IEBAIFJl
ZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZl
SW1hZ2VGb3JEcmF3aW5nKEdyYXBoCiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kOjpzaW5rSW50b05hdGl2ZUltYWdlKCkKIHsKLSAgICByZXR1cm4gTmF0
aXZlSW1hZ2U6OmNyZWF0ZShJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2UoV1RGTW92ZShtX3N1cmZh
Y2UpKSk7CisgICAgZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7CisgICAgcmV0dXJuIE5hdGl2ZUlt
YWdlOjpjcmVhdGUoSU9TdXJmYWNlOjpzaW5rSW50b0ltYWdlKFdURk1vdmUobV9zdXJmYWNlKSwg
V1RGTW92ZShtX3BsYXRmb3JtQ29udGV4dCkpKTsKIH0KIAogUmVmUHRyPFBpeGVsQnVmZmVyPiBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlQnVmZmVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCkBAIC0yMTAsNyArMjIzLDcgQEAgYm9vbCBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmlzSW5Vc2UoKSBjb25zdAogdm9pZCBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKQogewogICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7Ci0gICAgbV9zdXJmYWNlLT5yZWxlYXNlUGxhdGZvcm1Db250ZXh0
KCk7CisgICAgbV9wbGF0Zm9ybUNvbnRleHQgPSBudWxscHRyOwogfQogCiBib29sIEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZDo6c2V0Vm9sYXRpbGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQuaAppbmRleCAyMTM1OWFmMTczZTYuLjcwODMwMzQ0OTFkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0
ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3QgSW1hZ2VCdWZmZXJDcmVhdGlvbkNvbnRleHQmKTsK
IAotICAgIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiwgc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiwgUGxhdGZvcm1EaXNwbGF5SUQsIElPU3VyZmFjZVBv
b2wqKTsKKyAgICBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoY29uc3QgUGFyYW1ldGVycyYs
IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+LCBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBwbGF0
Zm9ybUNvbnRleHQsIFBsYXRmb3JtRGlzcGxheUlELCBJT1N1cmZhY2VQb29sKik7CiAgICAgfklt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCgpOwogICAgIAogICAgIHN0YXRpYyBjb25zdGV4cHIg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7
CkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJy
aWRlOwogCiBwcm90ZWN0ZWQ6CisgICAgQ0dDb250ZXh0UmVmIGVuc3VyZVBsYXRmb3JtQ29udGV4
dCgpOwogICAgIEludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAg
ICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5ID0g
Q29weUJhY2tpbmdTdG9yZSkgb3ZlcnJpZGU7CkBAIC04NCw2ICs4NSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIHByZXBhcmVGb3JFeHRlcm5hbFdyaXRlKCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiBtX3N1cmZhY2U7CisgICAgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gbV9w
bGF0Zm9ybUNvbnRleHQ7CiAgICAgYm9vbCBtX21heUhhdmVPdXRzdGFuZGluZ0JhY2tpbmdTdG9y
ZVJlZmVyZW5jZXMgeyBmYWxzZSB9OwogICAgIFZvbGF0aWxpdHlTdGF0ZSBtX3ZvbGF0aWxpdHlT
dGF0ZSB7IFZvbGF0aWxpdHlTdGF0ZTo6Tm9uVm9sYXRpbGUgfTsKICAgICBjb25zdCBQbGF0Zm9y
bURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXggMDllNTA4ZTVkMmYyLi5jNjVmMDkzNjgy
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCkBAIC0xMjEsOSArMTIxLDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBXVEY6Ok1hY2hTZW5kUmlnaHQgY3JlYXRlU2VuZFJpZ2h0KCkgY29uc3Q7CiAKICAgICAvLyBB
bnkgaW1hZ2VzIGNyZWF0ZWQgZnJvbSBhIHN1cmZhY2UgbmVlZCB0byBiZSByZWxlYXNlZCBiZWZv
cmUgcmVsZWFzaW5nCi0gICAgLy8gdGhlIHN1cmZhY2UsIG9yIGFuIGV4cGVuc2l2ZSBHUFUgcmVh
ZGJhY2sgY2FuIHJlc3VsdC4KLSAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gY3JlYXRlSW1hZ2UoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IHNpbmtJbnRvSW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4pOworICAg
IC8vIHRoZSBjb250ZXh0LCBvciBhbiBleHBlbnNpdmUgR1BVIHJlYWRiYWNrIGNhbiByZXN1bHQu
CisgICAgLy8gUGFzc2VkIGluIGNvbnRleHQgaXMgdGhlIGNvbnRleHQgdGhyb3VnaCB3aGljaCB0
aGUgY29udGVudHMgd2FzIGRyYXduLgorICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBjcmVhdGVJbWFnZShDR0NvbnRleHRSZWYpOworICAgIC8vIFBhc3NlZCBpbiBjb250
ZXh0IGlzIHRoZSBjb250ZXh0IHRocm91Z2ggd2hpY2ggdGhlIGNvbnRlbnRzIHdhcyBkcmF3bi4K
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHNpbmtJbnRv
SW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4sIFJldGFpblB0cjxDR0NvbnRleHRSZWY+
KTsKIAogI2lmZGVmIF9fT0JKQ19fCiAgICAgaWQgYXNMYXllckNvbnRlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gKF9fYnJpZGdlIGlkKW1fc3VyZmFjZS5nZXQoKTsgfQpAQCAtMTMxLDEwICsxMzMsOCBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPGlkPiBhc0NBSU9TdXJmYWNl
TGF5ZXJDb250ZW50cygpIGNvbnN0OwogCiAgICAgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKSBjb25z
dCB7IHJldHVybiBtX3N1cmZhY2UuZ2V0KCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBDR0NvbnRl
eHRSZWYgZW5zdXJlUGxhdGZvcm1Db250ZXh0KFBsYXRmb3JtRGlzcGxheUlEID0gMCk7Ci0gICAg
Ly8gVGhlIGdyYXBoaWNzIGNvbnRleHQgY2FjaGVkIG9uIHRoZSBzdXJmYWNlIGNvdW50cyBhcyBh
ICJ1c2VyIiwgc28gdG8gZ2V0Ci0gICAgLy8gYW4gYWNjdXJhdGUgcmVzdWx0IGZyb20gaXNJblVz
ZSgpLCBpdCBuZWVkcyB0byBiZSByZWxlYXNlZC4KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bGVhc2VQbGF0Zm9ybUNvbnRleHQoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxD
R0NvbnRleHRSZWY+IGNyZWF0ZVBsYXRmb3JtQ29udGV4dChQbGF0Zm9ybURpc3BsYXlJRCA9IDAp
OwogCiAgICAgLy8gUXVlcnlpbmcgdm9sYXRpbGl0eSBjYW4gYmUgZXhwZW5zaXZlLCBzbyBpbiBj
YXNlcyB3aGVyZSB0aGUgc3VyZmFjZSBpcwogICAgIC8vIGdvaW5nIHRvIGJlIHVzZWQgaW1tZWRp
YXRlbHksIHVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHNldFZvbGF0aWxlIHRvCkBAIC0xODcsNyAr
MTg3LDYgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV90b3RhbEJ5dGVzOwogCiAgICAgUHJvY2Vz
c0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKLSAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBt
X2NnQ29udGV4dDsKIAogICAgIFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IG1fc3VyZmFjZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tCmluZGV4IDFmYWNkYmVkNjZkNi4uMDUxMjUwNjE5NjRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0yNyw3ICsy
Nyw2IEBACiAjaW1wb3J0ICJJT1N1cmZhY2UuaCIKIAogI2ltcG9ydCAiRGVzdGluYXRpb25Db2xv
clNwYWNlLmgiCi0jaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiSG9zdFdp
bmRvdy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlUG9vbC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpA
QCAtNTIsNyArNTEsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNy
ZWF0ZShJT1N1cmZhY2VQb29sKiBwb29sLCBJbnRTaXplIHNpemUsCiAKICAgICBpZiAocG9vbCkg
ewogICAgICAgICBpZiAoYXV0byBjYWNoZWRTdXJmYWNlID0gcG9vbC0+dGFrZVN1cmZhY2Uoc2l6
ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKSB7Ci0gICAgICAgICAgICBjYWNoZWRTdXJmYWNl
LT5yZWxlYXNlUGxhdGZvcm1Db250ZXh0KCk7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0o
SU9TdXJmYWNlLCBzdHJlYW0gPDwgIklPU3VyZmFjZTo6Y3JlYXRlIHRvb2sgZnJvbSBwb29sOiAi
IDw8ICpjYWNoZWRTdXJmYWNlKTsKICAgICAgICAgICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwog
ICAgICAgICB9CkBAIC05Niw5ICs5NCw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElP
U3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKElPU3VyZmFjZVBvb2wqIHBvb2wsIENHSW1hCiAgICAg
YXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUocG9vbCwgSW50U2l6ZSh3aWR0aCwgaGVp
Z2h0KSwgRGVzdGluYXRpb25Db2xvclNwYWNlIHsgQ0dJbWFnZUdldENvbG9yU3BhY2UoaW1hZ2Up
IH0pOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0
byBzdXJmYWNlQ29udGV4dCA9IHN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOwotICAg
IENHQ29udGV4dERyYXdJbWFnZShzdXJmYWNlQ29udGV4dCwgQ0dSZWN0TWFrZSgwLCAwLCB3aWR0
aCwgaGVpZ2h0KSwgaW1hZ2UpOwotICAgIENHQ29udGV4dEZsdXNoKHN1cmZhY2VDb250ZXh0KTsK
KyAgICBhdXRvIGNvbnRleHQgPSBzdXJmYWNlLT5jcmVhdGVQbGF0Zm9ybUNvbnRleHQoKTsKKyAg
ICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCB3aWR0
aCwgaGVpZ2h0KSwgaW1hZ2UpOwogICAgIHJldHVybiBzdXJmYWNlOwogfQogCkBAIC0zNDgsMTQg
KzM0NSwxNyBAQCBSZXRhaW5QdHI8aWQ+IElPU3VyZmFjZTo6YXNDQUlPU3VyZmFjZUxheWVyQ29u
dGVudHMoKSBjb25zdAogICAgIHJldHVybiBuaWw7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBJT1N1cmZhY2U6OmNyZWF0ZUltYWdlKCkKK1JldGFpblB0cjxDR0ltYWdlUmVmPiBJT1N1cmZh
Y2U6OmNyZWF0ZUltYWdlKENHQ29udGV4dFJlZiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9w
dENGKENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKGVuc3VyZVBsYXRmb3JtQ29udGV4dCgp
KSk7CisgICAgQVNTRVJUKENHSU9TdXJmYWNlQ29udGV4dEdldFN1cmZhY2UoY29udGV4dCkgPT0g
bV9zdXJmYWNlKTsKKyAgICByZXR1cm4gYWRvcHRDRihDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJ
bWFnZShjb250ZXh0KSk7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVmPiBJT1N1cmZhY2U6OnNp
bmtJbnRvSW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjZSkKK1JldGFpblB0
cjxDR0ltYWdlUmVmPiBJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gc3VyZmFjZSwgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gY29udGV4dCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRDRihDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZVJlZmVyZW5jZShz
dXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKSkpOworICAgIEFTU0VSVChDR0lPU3VyZmFj
ZUNvbnRleHRHZXRTdXJmYWNlKGNvbnRleHQuZ2V0KCkpID09IHN1cmZhY2UtPm1fc3VyZmFjZSk7
CisgICAgVU5VU0VEX1BBUkFNKHN1cmZhY2UpOworICAgIHJldHVybiBhZG9wdENGKENHSU9TdXJm
YWNlQ29udGV4dENyZWF0ZUltYWdlUmVmZXJlbmNlKGNvbnRleHQuZ2V0KCkpKTsKIH0KIAogSU9T
dXJmYWNlOjpCaXRtYXBDb25maWd1cmF0aW9uIElPU3VyZmFjZTo6Yml0bWFwQ29uZmlndXJhdGlv
bigpIGNvbnN0CkBAIC0zOTksMjMgKzM5OSwyMCBAQCBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBJ
T1N1cmZhY2U6OmNyZWF0ZUNvbXBhdGlibGVCaXRtYXAodW5zaWduZWQgd2lkdGgsIHVuc2lnbgog
ICAgIHJldHVybiBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZShOVUxMLCB3aWR0aCwgaGVp
Z2h0LCBjb25maWd1cmF0aW9uLmJpdHNQZXJDb21wb25lbnQsIGJ5dGVzUGVyUm93LCBtX2NvbG9y
U3BhY2UtPnBsYXRmb3JtQ29sb3JTcGFjZSgpLCBjb25maWd1cmF0aW9uLmJpdG1hcEluZm8pKTsK
IH0KIAotQ0dDb250ZXh0UmVmIElPU3VyZmFjZTo6ZW5zdXJlUGxhdGZvcm1Db250ZXh0KFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK1JldGFpblB0cjxDR0NvbnRleHRSZWY+IElPU3VyZmFj
ZTo6Y3JlYXRlUGxhdGZvcm1Db250ZXh0KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsK
LSAgICBpZiAobV9jZ0NvbnRleHQpCi0gICAgICAgIHJldHVybiBtX2NnQ29udGV4dC5nZXQoKTsK
LQogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGJpdG1hcENvbmZpZ3VyYXRpb24oKTsKICAgICBh
dXRvIGJpdHNQZXJQaXhlbCA9IGNvbmZpZ3VyYXRpb24uYml0c1BlckNvbXBvbmVudCAqIDQ7CiAK
ICAgICBlbnN1cmVDb2xvclNwYWNlKCk7Ci0gICAgbV9jZ0NvbnRleHQgPSBhZG9wdENGKENHSU9T
dXJmYWNlQ29udGV4dENyZWF0ZShtX3N1cmZhY2UuZ2V0KCksIG1fc2l6ZS53aWR0aCgpLCBtX3Np
emUuaGVpZ2h0KCksIGNvbmZpZ3VyYXRpb24uYml0c1BlckNvbXBvbmVudCwgYml0c1BlclBpeGVs
LCBtX2NvbG9yU3BhY2UtPnBsYXRmb3JtQ29sb3JTcGFjZSgpLCBjb25maWd1cmF0aW9uLmJpdG1h
cEluZm8pKTsKKyAgICBhdXRvIGNnQ29udGV4dCA9IGFkb3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0
Q3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSwg
Y29uZmlndXJhdGlvbi5iaXRzUGVyQ29tcG9uZW50LCBiaXRzUGVyUGl4ZWwsIG1fY29sb3JTcGFj
ZS0+cGxhdGZvcm1Db2xvclNwYWNlKCksIGNvbmZpZ3VyYXRpb24uYml0bWFwSW5mbykpOwogCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChhdXRvIGRpc3BsYXlNYXNrID0gcHJpbWFyeU9wZW5H
TERpc3BsYXlNYXNrKCkpIHsKICAgICAgICAgaWYgKGRpc3BsYXlJRCkKICAgICAgICAgICAgIGRp
c3BsYXlNYXNrID0gZGlzcGxheU1hc2tGb3JEaXNwbGF5KGRpc3BsYXlJRCk7CiBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgICAgICBDR0lPU3VyZmFjZUNvbnRleHRTZXRE
aXNwbGF5TWFzayhtX2NnQ29udGV4dC5nZXQoKSwgZGlzcGxheU1hc2spOworICAgICAgICBDR0lP
U3VyZmFjZUNvbnRleHRTZXREaXNwbGF5TWFzayhjZ0NvbnRleHQuZ2V0KCksIGRpc3BsYXlNYXNr
KTsgLy8gTk9MSU5UCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAj
ZWxzZQpAQCAtNDIzLDkgKzQyMCw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogI2VuZGlmCiAjaWYgSEFWRShDR19DT05URVhUX1NFVF9PV05FUl9JREVOVElUWSkKICAgICBp
ZiAobV9yZXNvdXJjZU93bmVyICYmIENHQ29udGV4dFNldE93bmVySWRlbnRpdHkpCi0gICAgICAg
IENHQ29udGV4dFNldE93bmVySWRlbnRpdHkobV9jZ0NvbnRleHQuZ2V0KCksIG1fcmVzb3VyY2VP
d25lci50YXNrSWRUb2tlbigpKTsKKyAgICAgICAgQ0dDb250ZXh0U2V0T3duZXJJZGVudGl0eShj
Z0NvbnRleHQuZ2V0KCksIG1fcmVzb3VyY2VPd25lci50YXNrSWRUb2tlbigpKTsKICNlbmRpZgot
ICAgIHJldHVybiBtX2NnQ29udGV4dC5nZXQoKTsKKyAgICByZXR1cm4gY2dDb250ZXh0OwogfQog
CiBTZXROb25Wb2xhdGlsZVJlc3VsdCBJT1N1cmZhY2U6OnN0YXRlKCkgY29uc3QKQEAgLTQ4Miwx
MSArNDc5LDYgQEAgYm9vbCBJT1N1cmZhY2U6OmlzSW5Vc2UoKSBjb25zdAogICAgIHJldHVybiBJ
T1N1cmZhY2VJc0luVXNlKG1fc3VyZmFjZS5nZXQoKSk7CiB9CiAKLXZvaWQgSU9TdXJmYWNlOjpy
ZWxlYXNlUGxhdGZvcm1Db250ZXh0KCkKLXsKLSAgICBtX2NnQ29udGV4dCA9IG51bGxwdHI7Ci19
Ci0KICNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAogYm9vbCBJT1N1cmZhY2U6OmFs
bG93Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChGb3JtYXQgc291cmNlRm9ybWF0LCBGb3Jt
YXQgZGVzdEZvcm1hdCkKQEAgLTU1MCwxMCArNTQyLDYgQEAgdm9pZCBJT1N1cmZhY2U6OnNldE93
bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKICAg
ICBBU1NFUlQocmVzb3VyY2VPd25lcik7CiAgICAgbV9yZXNvdXJjZU93bmVyID0gcmVzb3VyY2VP
d25lcjsKICAgICBzZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIHJlc291cmNl
T3duZXIpOwotI2lmIEhBVkUoQ0dfQ09OVEVYVF9TRVRfT1dORVJfSURFTlRJVFkpCi0gICAgaWYg
KG1fY2dDb250ZXh0ICYmIENHQ29udGV4dFNldE93bmVySWRlbnRpdHkpCi0gICAgICAgIENHQ29u
dGV4dFNldE93bmVySWRlbnRpdHkobV9jZ0NvbnRleHQuZ2V0KCksIG1fcmVzb3VyY2VPd25lci50
YXNrSWRUb2tlbigpKTsKLSNlbmRpZgogfQogCiB2b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlw
SWRlbnRpdHkoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVz
b3VyY2VPd25lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuY3BwCmluZGV4IDE0NGQxYmQ3NDE2ZC4uOTJkZmJmMDAxZTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5jcHAKQEAgLTU1LDEyICs1NSw2IEBAIFJlbW90ZUltYWdlQnVmZmVyOjp+
UmVtb3RlSW1hZ2VCdWZmZXIoKQogICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwogfQogCi12
b2lkIFJlbW90ZUltYWdlQnVmZmVyOjpzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNz
SWRlbnRpdHkmIHJlc291cmNlT3duZXIpCi17Ci0gICAgaWYgKG1fYmFja2VuZCkKLSAgICAgICAg
bV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKLX0KLQogUmVm
UHRyPFJlbW90ZUltYWdlQnVmZmVyPiBSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlVHJhbnNmZXIo
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQmFja2VuZD4mJiBiYWNrZW5kLCBjb25zdCBJbWFn
ZUJ1ZmZlckJhY2tlbmQ6OkluZm8mIGJhY2tlbmRJbmZvLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gY29udGV4dCA9
IFdlYkNvcmU6OkltYWdlQnVmZmVyQ3JlYXRpb25Db250ZXh0IHsgbnVsbHB0cgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApp
bmRleCA2NGU1Njc3OTZlMjguLjM4NDVhMjQ5ZGQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTQxLDE0ICs0
MSw4IEBAIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CiBjbGFzcyBSZW1vdGVJbWFnZUJ1
ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+Ci0gICAgc3RhdGljIFJlZlB0cjxSZW1vdGVJbWFnZUJ1
ZmZlcj4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3Bh
Y2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdQ
dXJwb3NlIHB1cnBvc2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCisgICAgc3RhdGljIFJlZlB0cjxSZW1vdGVJbWFnZUJ1ZmZlcj4gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFdlYkNv
cmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlIHB1
cnBvc2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFF1
YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkltYWdlQnVmZmVyQ3JlYXRpb25Db250ZXh0IGNvbnRleHQpCiAgICAg
ewotICAgICAgICBhdXRvIGNvbnRleHQgPSBXZWJDb3JlOjpJbWFnZUJ1ZmZlckNyZWF0aW9uQ29u
dGV4dCB7IG51bGxwdHIKLSNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICAgICAgICAgICwgJnJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuaW9TdXJmYWNlUG9vbCgpCi0jZW5kaWYKLSAgICAgICAgfTsKLQog
ICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZTxCYWNrZW5kVHlw
ZSwgUmVtb3RlSW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
cGl4ZWxGb3JtYXQsIHB1cnBvc2UsIGNvbnRleHQsIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgICAgIGlmICghaW1hZ2VCdWZmZXIpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY1LDggKzU5LDYgQEAgcHVibGljOgogICAg
IFJlbW90ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6UGFy
YW1ldGVycyYsIGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6SW5mbyYsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ+JiYsIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQmLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH5S
ZW1vdGVJbWFnZUJ1ZmZlcigpOwogCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpOwotCiBwcml2YXRlOgog
ICAgIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcjsKICAgICBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcj4gbV9yZW1vdGVEaXNwbGF5TGlzdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAppbmRleCAyMTUxZDVmNjUwODguLmQxNjRmYzFkNDI1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtMjA1LDE3ICsyMDUsMTggQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0
IEZsb2EKIAogICAgIFJlZlB0cjxSZW1vdGVJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXI7CiAKKyAg
ICBXZWJDb3JlOjpJbWFnZUJ1ZmZlckNyZWF0aW9uQ29udGV4dCBjcmVhdGlvbkNvbnRleHQgeyBu
dWxscHRyIH07CisjaWYgSEFWRShJT1NVUkZBQ0UpCisgICAgY3JlYXRpb25Db250ZXh0LnN1cmZh
Y2VQb29sID0gJmlvU3VyZmFjZVBvb2woKTsKKyNlbmRpZgorICAgIGNyZWF0aW9uQ29udGV4dC5y
ZXNvdXJjZU93bmVyID0gbV9yZXNvdXJjZU93bmVyOworCiAgICAgaWYgKHJlbmRlcmluZ01vZGUg
PT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gYWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlciA9IFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGU8QWNjZWxlcmF0ZWRJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBwdXJwb3NlLCAqdGhpcywgaW1hZ2VCdWZm
ZXJSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0gICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZh
Y2UgYXMgYmVpbmcgb3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNv
bnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHBy
b2Nlc3MgdG8ga2lsbC4KLSAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCi0gICAgICAg
ICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9y
ZXNvdXJjZU93bmVyKTsKLSAgICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVy
YXRlZEltYWdlQnVmZmVyKTsKLSAgICAgICAgfQorICAgICAgICBpbWFnZUJ1ZmZlciA9IFJlbW90
ZUltYWdlQnVmZmVyOjpjcmVhdGU8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0LCBwdXJwb3NlLCAqdGhpcywgaW1hZ2VCdWZmZXJSZXNvdXJjZUlkZW50aWZpZXIsIGNy
ZWF0aW9uQ29udGV4dCk7CiAgICAgfQogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAg
aW1hZ2VCdWZmZXIgPSBSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlPFVuYWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+KGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBwdXJwb3NlLCAqdGhpcywgaW1hZ2VCdWZmZXJSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IFJlbW90ZUltYWdlQnVmZmVyOjpj
cmVhdGU8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD4obG9naWNhbFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHB1cnBvc2UsICp0
aGlzLCBpbWFnZUJ1ZmZlclJlc291cmNlSWRlbnRpZmllciwgY3JlYXRpb25Db250ZXh0KTsKIAog
ICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4
IGY5Yjg5YzMxNzA3My4uOWQwM2M4NDM5ODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtMzc5Niw3ICszNzk2LDggQEAgLSAodm9p
ZClfc25hcHNob3RSZWN0QWZ0ZXJTY3JlZW5VcGRhdGVzOihCT09MKWFmdGVyU2NyZWVuVXBkYXRl
cyByZWN0SW5WaWV3Q29vcmQKICAgICAgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRy
YW5zZm9ybTNETWFrZVNjYWxlKGltYWdlU2NhbGVJblZpZXdDb29yZGluYXRlcywgaW1hZ2VTY2Fs
ZUluVmlld0Nvb3JkaW5hdGVzLCAxKTsKICAgICAgICAgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0z
RFRyYW5zbGF0ZSh0cmFuc2Zvcm0sIC1yZWN0SW5WaWV3Q29vcmRpbmF0ZXMub3JpZ2luLngsIC1y
ZWN0SW5WaWV3Q29vcmRpbmF0ZXMub3JpZ2luLnksIDApOwogICAgICAgICBDQVJlbmRlclNlcnZl
clJlbmRlckRpc3BsYXlMYXllcldpdGhUcmFuc2Zvcm1BbmRUaW1lT2Zmc2V0KE1BQ0hfUE9SVF9O
VUxMLCAoQ0ZTdHJpbmdSZWYpZGlzcGxheU5hbWUsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0
SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHNlbGYubGF5ZXIpLCBzdXJmYWNlLT5zdXJm
YWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0sIDApOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2UoV1RGTW92ZShzdXJmYWNlKSkuZ2V0KCkp
OworICAgICAgICBhdXRvIGNvbnRleHQgPSBzdXJmYWNlLT5jcmVhdGVQbGF0Zm9ybUNvbnRleHQo
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6SU9TdXJmYWNlOjpzaW5rSW50
b0ltYWdlKFdURk1vdmUoc3VyZmFjZSksIFdURk1vdmUoY29udGV4dCkpLmdldCgpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lv
bkNvY29hLm1tCmluZGV4IGEyMWI0ZDI2ODhjNi4uZTI3ODhiMGQ0NGMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNz
aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9jb2Nv
YS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCkBAIC03MCw4ICs3MCw4IEBAIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNlNjRFbmNv
ZGVkUE5HRGF0YShjb25zCiAgICAgYXV0byogc25hcHNob3RTdXJmYWNlID0gc25hcHNob3Quc3Vy
ZmFjZSgpOwogICAgIGlmICghc25hcHNob3RTdXJmYWNlKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgcmV0dXJuIGdldEJhc2U2NEVuY29kZWRQTkdEYXRhKHNuYXBzaG90U3Vy
ZmFjZS0+Y3JlYXRlSW1hZ2UoKSk7CisgICAgYXV0byBjb250ZXh0ID0gc25hcHNob3RTdXJmYWNl
LT5jcmVhdGVQbGF0Zm9ybUNvbnRleHQoKTsKKyAgICByZXR1cm4gZ2V0QmFzZTY0RW5jb2RlZFBO
R0RhdGEoc25hcHNob3RTdXJmYWNlLT5jcmVhdGVJbWFnZShjb250ZXh0LmdldCgpKSk7CiB9CiAK
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZW5l
cmF0ZUxvY2FsRmlsZVBhdGhGb3JSZW1vdGVGaWxlKGNvbnN0IFN0cmluZyYgcmVtb3RlRmlsZVBh
dGgsIGNvbnN0IFN0cmluZyYgYmFzZTY0RW5jb2RlZEZpbGVDb250ZW50cykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZU1hYy5tbQppbmRleCAx
MWMwNDdjYjBjOTUuLjgyYzZhMWM4OTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZU1hYy5tbQpAQCAtODIsNyArODIsNiBAQCBXZWJD
b3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdCBWaWV3U25hcHNob3Q6OnNldFZvbGF0aWxlKGJvb2wg
YmVjb21lVm9sYXRpbGUpCiAKICAgICBpZiAoIW1fc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpFbXB0eTsKLQogICAgIHJldHVybiBtX3N1cmZh
Y2UtPnNldFZvbGF0aWxlKGJlY29tZVZvbGF0aWxlKTsKIH0KIApAQCAtMTA1LDcgKzEwNCwxMCBA
QCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gVmlld1NuYXBzaG90Ojphc0ltYWdlRm9yVGVzdGluZygp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQVNTRVJUKFZpZXdTbmFwc2hvdFN0b3Jl
OjpzaW5nbGV0b24oKS5kaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGluZygpKTsKLSAg
ICByZXR1cm4gbV9zdXJmYWNlLT5jcmVhdGVJbWFnZSgpOworICAgIC8vIE5vdGU6IGhlcmUgd2Ug
d2lsbCBkZXN0cm95IHRoZSBjb250ZXh0IGltbWVkaWF0ZWx5LCB3aGljaCB3aWxsIHJlYWQgYmFj
aworICAgIC8vIHRoZSBpbWFnZSB0byBDUFUuIFRoaXMgc2hvdWxkIGJlIGZpbmUgZm9yIHRlc3Rp
bmcuCisgICAgYXV0byBjb250ZXh0ID0gbV9zdXJmYWNlLT5jcmVhdGVQbGF0Zm9ybUNvbnRleHQo
KTsKKyAgICByZXR1cm4gbV9zdXJmYWNlLT5jcmVhdGVJbWFnZShjb250ZXh0LmdldCgpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuaAppbmRleCA2MTgwODVjY2ZkMzkuLjM5YTlmNmY2OTU3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCkBAIC02Nyw4ICs2
Nyw2IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVs
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckFsbG9jYXRv
ciYpIGZpbmFsOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxC
dWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RG
b3JtYXQpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpdHkmKSB7IH0KLQogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBieXRl
c1BlclJvdygpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXgg
ZjZiMjJjNzQ5Mzc1Li5iNDVlNDY5M2E5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAK
QEAgLTQ5LDE0ICs0OSwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZQogICAgIGF1dG8gc3Vy
ZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGNyZWF0aW9uQ29udGV4dC5zdXJmYWNlUG9vbCwgYmFj
a2VuZFNpemUsIHBhcmFtZXRlcnMuY29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhl
bEZvcm1hdChwYXJhbWV0ZXJzLnBpeGVsRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoY3JlYXRpb25Db250ZXh0LnJlc291cmNlT3du
ZXIpCisgICAgICAgIHN1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KGNyZWF0aW9uQ29udGV4
dC5yZXNvdXJjZU93bmVyKTsKIAotICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGNnQ29udGV4
dCA9IHN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOworICAgIFJldGFpblB0cjxDR0Nv
bnRleHRSZWY+IGNnQ29udGV4dCA9IHN1cmZhY2UtPmNyZWF0ZVBsYXRmb3JtQ29udGV4dCgpOwog
ICAgIGlmICghY2dDb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENHQ29u
dGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJv
KCksIGJhY2tlbmRTaXplKSk7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoc3VyZmFj
ZSksIDAsIGNyZWF0aW9uQ29udGV4dC5zdXJmYWNlUG9vbCk7CisgICAgcmV0dXJuIG1ha2VVbmlx
dWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPihwYXJhbWV0ZXJz
LCBXVEZNb3ZlKHN1cmZhY2UpLCBXVEZNb3ZlKGNnQ29udGV4dCksIDAsIGNyZWF0aW9uQ29udGV4
dC5zdXJmYWNlUG9vbCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIEltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCkBAIC02OSw5ICs3MSwxMiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZl
clNoYXJlYWJsZQogICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRS
aWdodChXVEZNb3ZlKHN0ZDo6Z2V0PE1hY2hTZW5kUmlnaHQ+KGhhbmRsZSkpKTsKICAgICBpZiAo
IXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8gY2dDb250ZXh0ID0g
c3VyZmFjZS0+Y3JlYXRlUGxhdGZvcm1Db250ZXh0KCk7CisgICAgaWYgKCFjZ0NvbnRleHQpCisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQVNTRVJUKHN1cmZhY2UtPmNvbG9yU3BhY2Uo
KSA9PSBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UpOwotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4ocGFyYW1ldGVycywgV1RGTW92
ZShzdXJmYWNlKSwgMCwgbnVsbHB0cik7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPihwYXJhbWV0ZXJzLCBXVEZNb3ZlKHN1
cmZhY2UpLCBXVEZNb3ZlKGNnQ29udGV4dCksIDAsIG51bGxwdHIpOwogfQogCiBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGVCYWNrZW5kSGFuZGxlKFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbikgY29uc3QKQEAg
LTc5LDExICs4NCw2IEBAIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUJhY2tlCiAgICAgcmV0dXJuIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKIH0KIAot
dm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVy
c2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25l
cikKLXsKLSAgICBtX3N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIp
OwotfQotCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2
aW9yKQogewogICAgIGF1dG8gY3VycmVudFNlZWQgPSBtX3N1cmZhY2UtPnNlZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oCmluZGV4IDUxMjMxODJiN2Y0OS4uMmQ4YjlmMmUyYjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kLmgKQEAgLTQ2LDggKzQ2LDYgQEAgcHVibGljOgogCiAgICAgdXNpbmcg
V2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ7CiAKLSAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGl0eSYpOwotCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0
ZUJhY2tlbmRIYW5kbGUoU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkV3JpdGUpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbQppbmRleCBiOWI4MmIy
M2E5ODguLjFmZDhmY2NiYjljNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9z
L1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1Bp
eGVsRHVtcFN1cHBvcnRJT1MubW0KQEAgLTczLDcgKzczLDkgQEAgUmVmUHRyPEJpdG1hcENvbnRl
eHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGlu
Y3JlbWUKICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogI2VuZGlmCiAgICAgYXV0byBzdXJmYWNl
ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUobnVsbHB0ciwgV2ViQ29yZTo6ZXhwYW5kZWRJ
bnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JH
QigpLCBzbmFwc2hvdEZvcm1hdCk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2Ug
PSBzdXJmYWNlLT5jcmVhdGVJbWFnZSgpOworICAgIC8vIEZJWE1FOiBTb21ldGhpbmcgaXMgbWlz
c2luZyBoZXJlLCBub3RoaW5nIGRyYXdzIHRvIHN1cmZhY2UuCisgICAgYXV0byBjb250ZXh0ID0g
c3VyZmFjZS0+Y3JlYXRlUGxhdGZvcm1Db250ZXh0KCk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGNnSW1hZ2UgPSBzdXJmYWNlLT5jcmVhdGVJbWFnZShjb250ZXh0LmdldCgpKTsKIAogICAg
IHNpemVfdCBiaXRtYXBSb3dCeXRlcyA9IDA7CiAgICAgYXV0byBiaXRtYXBDb250ZXh0ID0gY3Jl
YXRlQml0bWFwQ29udGV4dChidWZmZXJXaWR0aCwgYnVmZmVySGVpZ2h0LCBiaXRtYXBSb3dCeXRl
cyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ3M2YyOGUwYjk0Yi4uNTE1MjgyNDg3Nzcy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk0LDYgKzU5NCw3IEBACiAJCTdCOUZDNUQ2
MjhBNTMyNkEwMDc1NzBFNyAvKiBJbWFnZUlPLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEZGQUEwMUVEM0QwREUwMEY3MTExRiAv
KiBJbWFnZUlPLmZyYW1ld29yayAqLzsgfTsKIAkJN0JBMzkzNkMyNzFFREZDQTAwMTU5MTFDIC8q
IFRlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JBMzkzNkIyNzFFREZDQTAwMTU5MTFDIC8qIFRlc3RHcmFw
aGljc0NvbnRleHRHTENvY29hLm1tICovOyB9OwogCQk3QkFBNEE5MDI4Q0ExNEFFMDA0Q0U5Mzgg
LyogU3RyZWFtQ29ubmVjdGlvblRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdCQUE0QThGMjhDQTE0QUUwMDRDRTkzOCAvKiBTdHJlYW1Db25u
ZWN0aW9uVGVzdHMuY3BwICovOyB9OworCQk3QkI2MkFCRTI5QkI0QkFBMDAyMjhDRDYgLyogSU9T
dXJmYWNlVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QkI2MkFCNjI5QkI0QkFBMDAyMjhDRDYgLyogSU9TdXJmYWNlVGVzdHMubW0gKi87IH07
CiAJCTdCQjhCREU0MjhGMDc4MUEwMDEyOTgzNiAvKiBDb21wbGV0aW9uSGFuZGxlclRlc3RzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjhCRERD
MjhGMDc4MUEwMDEyOTgzNiAvKiBDb21wbGV0aW9uSGFuZGxlclRlc3RzLmNwcCAqLzsgfTsKIAkJ
N0JDODYyOEYyOUI4QjMzNTAwMjE3Q0I1IC8qIERpc3BsYXlMaXN0UmVjb3JkZXJUZXN0cy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkM4NjI4NzI5
QjhCMzM1MDAyMTdDQjUgLyogRGlzcGxheUxpc3RSZWNvcmRlclRlc3RzLmNwcCAqLzsgfTsKIAkJ
N0JFODc2MDMyOTE5NDU3QjAwQjE1Mjg5IC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb25Db2NvYS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRTg3NUZC
MjkxOTQ1N0IwMEIxNTI4OSAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uQ29jb2EubW0gKi87IH07
CkBAIC0yNzc4LDYgKzI3NzksNyBAQAogCQk3QjlGQzVDQzI4QTUyREMwMDA3NTcwRTcgLyogbGli
V2ViS2l0UGxhdGZvcm0uYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gYXJjaGl2ZS5hcjsgcGF0aCA9IGxpYldlYktpdFBsYXRmb3JtLmE7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdCQTM5MzZCMjcxRURGQ0EwMDE1OTExQyAv
KiBUZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFRlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkFBNEE4RjI4Q0ExNEFFMDA0Q0U5MzggLyogU3RyZWFtQ29u
bmVjdGlvblRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0
cmVhbUNvbm5lY3Rpb25UZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdC
QjYyQUI2MjlCQjRCQUEwMDIyOENENiAvKiBJT1N1cmZhY2VUZXN0cy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElPU3VyZmFjZVRlc3RzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkI3NTRBRjI3NEUzOUExMDBEMDBFQzEgLyogV2ViQ29yZVRl
c3RVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRlc3RVdGlsaXRpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCNzU0QjAyNzRFMzlBMTAwRDAwRUMxIC8qIFdl
YkNvcmVUZXN0VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUZXN0VXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCOEJEREMyOEYwNzgx
QTAwMTI5ODM2IC8qIENvbXBsZXRpb25IYW5kbGVyVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGxldGlvbkhhbmRsZXJUZXN0cy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTg2LDYgKzU1ODgsNyBAQAogCQkJCTUxMEE2NjdBMjdE
MkZDN0EwMEQyMjYyOSAvKiBDb3JlTWVkaWFVdGlsaXRpZXMubW0gKi8sCiAJCQkJNzUxQjA1RDUx
RjhFQUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8sCiAJCQkJNDFFQkE5
RjEyOEFCQTA2NTAwOTUzMDEzIC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuY3BwICovLAorCQkJ
CTdCQjYyQUI2MjlCQjRCQUEwMDIyOENENiAvKiBJT1N1cmZhY2VUZXN0cy5tbSAqLywKIAkJCQk1
N0YxQzkxMDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tl
eVdyYXAubW0gKi8sCiAJCQkJQTE3OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZl
ci5tbSAqLywKQEAgLTYzNzUsNiArNjM3OCw3IEBACiAJCQkJN0E5MDlBODExRDg3NzQ4MDAwN0Ux
MEY4IC8qIEludFBvaW50VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBODIxRDg3
NzQ4MDAwN0UxMEY4IC8qIEludFJlY3RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTkw
OUE4MzFEODc3NDgwMDA3RTEwRjggLyogSW50U2l6ZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTdCQjYyQUJFMjlCQjRCQUEwMDIyOENENiAvKiBJT1N1cmZhY2VUZXN0cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUY0QjhBNUMxMjhGOEI1NEYwMEUzRjU0RiAvKiBJUEFkZHJlc3NUZXN0cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCRjg5MzFERDU5OUJEMDBCMDAzMjggLyogSXNOYXZp
Z2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENUZGNDlGMjE2MkU5
NDMwMDRCRDg2RiAvKiBJU09Cb3guY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvSU9TdXJmYWNlVGVzdHMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvSU9TdXJmYWNlVGVzdHMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iZTY0Y2I1M2RmNTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
SU9TdXJmYWNlVGVzdHMubW0KQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFj
ZS5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCitURVNUKElPU3VyZmFjZVRlc3QsIElzSW5Vc2UpCit7CisgICAgYXV0byBzMSA9
IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKG51bGxwdHIsIHsgNSwgNSB9LCBXZWJDb3JlOjpE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7IAorICAgIEVYUEVDVF9GQUxTRShzMS0+aXNJ
blVzZSgpKTsKKyAgICBhdXRvIHNlbmRSaWdodDEgPSBzMS0+Y3JlYXRlU2VuZFJpZ2h0KCk7Cisg
ICAgRVhQRUNUX1RSVUUoczEtPmlzSW5Vc2UoKSk7CisgICAgYXV0byBzZW5kUmlnaHQyID0gczEt
PmNyZWF0ZVNlbmRSaWdodCgpOworICAgIHNlbmRSaWdodDEgPSB7IH07CisgICAgRVhQRUNUX1RS
VUUoczEtPmlzSW5Vc2UoKSk7CisgICAgc2VuZFJpZ2h0MiA9IHsgfTsKKyAgICBFWFBFQ1RfRkFM
U0UoczEtPmlzSW5Vc2UoKSk7Cit9CisKK1RFU1QoSU9TdXJmYWNlVGVzdCwgQ3JlYXRlUGxhdGZv
cm1Db250ZXh0KQoreworICAgIGF1dG8gczEgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShu
dWxscHRyLCB7IDUsIDUgfSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkp
OyAKKyAgICBFWFBFQ1RfRkFMU0UoczEtPmlzSW5Vc2UoKSk7CisgICAgYXV0byBjMSA9IHMxLT5j
cmVhdGVQbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBhdXRvIGMyID0gczEtPmNyZWF0ZVBsYXRmb3Jt
Q29udGV4dCgpOworICAgIEVYUEVDVF9ORShjMSwgYzIpOworICAgIEVYUEVDVF9GQUxTRShzMS0+
aXNJblVzZSgpKTsKKyAgICBjMSA9IG51bGxwdHI7CisgICAgRVhQRUNUX0ZBTFNFKHMxLT5pc0lu
VXNlKCkpOworICAgIGMyID0gbnVsbHB0cjsKKyAgICBFWFBFQ1RfRkFMU0UoczEtPmlzSW5Vc2Uo
KSk7Cit9CisKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>