<?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>196719</bug_id>
          
          <creation_ts>2019-04-08 18:21:14 -0700</creation_ts>
          <short_desc>[Web GPU] GPURenderPassEncoder updates: setBlendColor, setViewport, setScissorRect</short_desc>
          <delta_ts>2019-04-09 13:04:39 -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>WebGPU</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="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525499</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-04-08 18:21:14 -0700</bug_when>
    <thetext>[Web GPU] GPURenderPassEncoder updates: setBlendColor, setViewport, setScissorRect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525514</commentid>
    <comment_count>1</comment_count>
      <attachid>367009</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-04-08 18:49:27 -0700</bug_when>
    <thetext>Created attachment 367009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525548</commentid>
    <comment_count>2</comment_count>
      <attachid>367009</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-04-08 20:27:17 -0700</bug_when>
    <thetext>Comment on attachment 367009
Patch

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

&gt; LayoutTests/webgpu/blend-triangle-strip.html:-57
&gt; -            dstFactor: &quot;one&quot;,

Why modify this test? Why didn’t this modification cause a required change in the expected results? Instead of modifying this test, we should make a new test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525703</commentid>
    <comment_count>3</comment_count>
      <attachid>367059</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-04-09 12:07:43 -0700</bug_when>
    <thetext>Created attachment 367059
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525731</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 13:02:33 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 367059:

imported/w3c/web-platform-tests/xhr/event-upload-progress.htm bug 196736 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525732</commentid>
    <comment_count>5</comment_count>
      <attachid>367059</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 13:03:24 -0700</bug_when>
    <thetext>Comment on attachment 367059
Patch for landing

Clearing flags on attachment: 367059

Committed r244093: &lt;https://trac.webkit.org/changeset/244093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525733</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 13:03:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525734</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-09 13:04:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/49746664&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367009</attachid>
            <date>2019-04-08 18:49:27 -0700</date>
            <delta_ts>2019-04-09 12:07:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196719-20190408184926.patch</filename>
            <type>text/plain</type>
            <size>16901</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFhZTVlNjJmOGVmNzVi
NGQ2OWNmMjEwYzlhODZjNGQ1NTI3MTM4My4uZWU5ODgwOTczZDcwMWI2ZGM1NDQ3NDAzYzE2NjU2
MTk0YjM2ODg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA0LTA4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQVVJl
bmRlclBhc3NFbmNvZGVyIHVwZGF0ZXM6IHNldEJsZW5kQ29sb3IsIHNldFZpZXdwb3J0LCBzZXRT
Y2lzc29yUmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk2NzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IHNldEJsZW5kQ29sb3IsIHNldFZpZXdwb3J0LCBhbmQgc2V0U2Npc3NvclJl
Y3QgZm9yIEdQVVJlbmRlclBhc3NFbmNvZGVyLgorCisgICAgICAgIFRlc3RzOiB3ZWJncHUvdmll
d3BvcnQtc2Npc3Nvci1yZWN0LXRyaWFuZ2xlLXN0cmlwLmh0bWwsIHdlYmdwdS9ibGVuZC10cmlh
bmdsZS1zdHJpcC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0QmxlbmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQYXNzRW5j
b2Rlcjo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OnNldFNjaXNzb3JSZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBhc3NFbmNvZGVyLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVu
ZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QpOgorCiAyMDE5LTA0LTA4ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uIHVucmVnaXN0ZXJzIGl0c2VsZiBldmVuIGlmIGl0cyBkYXRhYmFzZSBpcyBn
b25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5jcHAKaW5kZXggMDg2NzhiY2M5OTkyMGJmMTQ2OGZhODI0YjVlNTBk
MzZjNGJkMjY5NS4uMzA1OTFmNjY0ZTE3NzA1MmQ2YWY3MDBmNTc0NjRmZTY3YjUwY2JiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Vu
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBhc3NFbmNvZGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkK
IAorI2luY2x1ZGUgIkdQVUNvbG9yLmgiCiAjaW5jbHVkZSAiR1BVTGltaXRzLmgiCiAjaW5jbHVk
ZSAiR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQYXNz
RW5jb2Rlci5oIgpAQCAtNjAsNiArNjEsMzcgQEAgdm9pZCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0UGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmUmIHBpcGVsaW5lKQogICAg
IG1fcGFzc0VuY29kZXItPnNldFBpcGVsaW5lKG1ha2VSZWYoKnBpcGVsaW5lLnJlbmRlclBpcGVs
aW5lKCkpKTsKIH0KIAordm9pZCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0QmxlbmRDb2xv
cihjb25zdCBHUFVDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX3Bhc3NFbmNvZGVyKSB7Cisg
ICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0QmxlbmRDb2xvcigp
OiBJbnZhbGlkIG9wZXJhdGlvbiEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3Bh
c3NFbmNvZGVyLT5zZXRCbGVuZENvbG9yKGNvbG9yKTsKK30KKwordm9pZCBXZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZs
b2F0IGhlaWdodCwgZmxvYXQgbWluRGVwdGgsIGZsb2F0IG1heERlcHRoKQoreworICAgIGlmICgh
bV9wYXNzRW5jb2RlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29k
ZXI6OnNldFZpZXdwb3J0KCk6IEludmFsaWQgb3BlcmF0aW9uISIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIG1fcGFzc0VuY29kZXItPnNldFZpZXdwb3J0KHgsIHksIHdpZHRoLCBoZWln
aHQsIG1pbkRlcHRoLCBtYXhEZXB0aCk7Cit9CisKK3ZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29k
ZXI6OnNldFNjaXNzb3JSZWN0KHVuc2lnbmVkIHgsIHVuc2lnbmVkIHksIHVuc2lnbmVkIHdpZHRo
LCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgaWYgKCFtX3Bhc3NFbmNvZGVyKSB7CisgICAgICAg
IExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QoKTogSW52
YWxpZCBvcGVyYXRpb24hIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCF3aWR0
aCB8fCAhaGVpZ2h0KSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0U2Npc3NvclJlY3QoKTogV2lkdGggb3IgaGVpZ2h0IG11c3QgYmUgZ3JlYXRlciB0aGFu
IDAhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9wYXNzRW5jb2Rlci0+c2V0U2Np
c3NvclJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7Cit9CisKIHZvaWQgV2ViR1BVUmVuZGVyUGFz
c0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnModW5zaWduZWQgc3RhcnRTbG90LCBWZWN0b3I8UmVm
UHRyPFdlYkdQVUJ1ZmZlcj4+JiYgYnVmZmVycywgVmVjdG9yPHVpbnQ2NF90PiYmIG9mZnNldHMp
CiB7CiAjaWYgIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggY2M4ODM3NTcyNWU3Nzhk
MWMxNWQ2OTI4ODU5YTUzZDdmMGQxYTVjMS4uNjYyMjQwZmU1NzBkYThhZTE5NGI3Y2EyMjY2MjM4
NTUyMzZhMGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0zOCwxMSArMzgsMTYgQEAgY2xhc3MgR1BV
UmVuZGVyUGFzc0VuY29kZXI7CiBjbGFzcyBXZWJHUFVCdWZmZXI7CiBjbGFzcyBXZWJHUFVSZW5k
ZXJQaXBlbGluZTsKIAorc3RydWN0IEdQVUNvbG9yOworCiBjbGFzcyBXZWJHUFVSZW5kZXJQYXNz
RW5jb2RlciBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gY3JlYXRlKFJl
ZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CiAKICAgICB2b2lkIHNldFBpcGVsaW5lKGNv
bnN0IFdlYkdQVVJlbmRlclBpcGVsaW5lJik7CisgICAgdm9pZCBzZXRCbGVuZENvbG9yKGNvbnN0
IEdQVUNvbG9yJik7CisgICAgdm9pZCBzZXRWaWV3cG9ydChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4RGVwdGgpOwor
ICAgIHZvaWQgc2V0U2Npc3NvclJlY3QodW5zaWduZWQgeCwgdW5zaWduZWQgeSwgdW5zaWduZWQg
d2lkdGgsIHVuc2lnbmVkIGhlaWdodCk7CiAgICAgdm9pZCBzZXRWZXJ0ZXhCdWZmZXJzKHVuc2ln
bmVkLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1aW50NjRfdD4mJik7
CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIHZlcnRleENvdW50LCB1bnNpZ25lZCBpbnN0YW5jZUNv
dW50LCB1bnNpZ25lZCBmaXJzdFZlcnRleCwgdW5zaWduZWQgZmlyc3RJbnN0YW5jZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBh
c3NFbmNvZGVyLmlkbAppbmRleCAwMDkxMzI3NDRhZjFmNzg2MzY3NGM1OWI3NTA4MDJlMGI5OGI2
ZDRjLi5hNmU4MTlhMzczNmY4NGIxOGQ4MDNkZDljMTc5ZjlkYzhhZTgyODMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0Vu
Y29kZXIuaWRsCkBAIC0zMywxMyArMzMsMjAgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcg
dTY0OwogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBXZWJHUFVSZW5kZXJQ
YXNzRW5jb2RlciA6IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKICAgICB2b2lkIHNl
dFBpcGVsaW5lKFdlYkdQVVJlbmRlclBpcGVsaW5lIHBpcGVsaW5lKTsKKyAgICB2b2lkIHNldEJs
ZW5kQ29sb3IoR1BVQ29sb3IgY29sb3IpOworCisgICAgLy8gVGhlIGRlZmF1bHQgdmlld3BvcnQg
aXMgKDAuMCwgMC4wLCB3LCBoLCAwLjAsIDEuMCksIHdoZXJlIHcgYW5kIGggYXJlIHRoZSBkaW1l
bnNpb25zIG9mIGJhY2sgYnVmZmVyCisgICAgdm9pZCBzZXRWaWV3cG9ydChmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4
RGVwdGgpOworCisgICAgLy8gVGhlIGRlZmF1bHQgc2Npc3NvciByZWN0YW5nbGUgaXMgKDAsIDAs
IHcsIGgpLCB3aGVyZSB3IGFuZCBoIGFyZSB0aGUgZGltZW5zaW9ucyBvZiBiYWNrIGJ1ZmZlci4K
KyAgICAvLyBXaWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuIE90aGVyd2lz
ZSwgYW4gZXJyb3Igd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgdm9pZCBzZXRTY2lzc29yUmVjdCh1
MzIgeCwgdTMyIHksIHUzMiB3aWR0aCwgdTMyIGhlaWdodCk7CiAKICAgICB2b2lkIHNldFZlcnRl
eEJ1ZmZlcnModTMyIHN0YXJ0U2xvdCwgc2VxdWVuY2U8V2ViR1BVQnVmZmVyPiBidWZmZXJzLCBz
ZXF1ZW5jZTx1NjQ+IG9mZnNldHMpOwogCiAgICAgdm9pZCBkcmF3KHUzMiB2ZXJ0ZXhDb3VudCwg
dTMyIGluc3RhbmNlQ291bnQsIHUzMiBmaXJzdFZlcnRleCwgdTMyIGZpcnN0SW5zdGFuY2UpOwog
CiAvKiBOb3QgWWV0IEltcGxlbWVudGVkCi0gICAgdm9pZCBzZXRCbGVuZENvbG9yKGZsb2F0IHIs
IGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpOwogICAgIHZvaWQgc2V0SW5kZXhCdWZmZXIoV2Vi
R1BVQnVmZmVyIGJ1ZmZlciwgdTY0IG9mZnNldCk7CiAKICAgICB2b2lkIGRyYXdJbmRleGVkKHUz
MiBpbmRleENvdW50LCB1MzIgaW5zdGFuY2VDb3VudCwgdTMyIGZpcnN0SW5kZXgsIGkzMiBiYXNl
VmVydGV4LCB1MzIgZmlyc3RJbnN0YW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IDg0
MjViNWZiOWI4MTU4MzA2NzgxMjZmM2Q3MWVlMWQyMWFkMjczNGEuLmJkYzY1MGNiODU1NmE2YjJi
M2UzYWE4MWQ5MWViZTMxNzA4MzI3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC00Miw2
ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdQVUJ1ZmZlcjsKIGNsYXNzIEdQ
VUNvbW1hbmRCdWZmZXI7CiAKK3N0cnVjdCBHUFVDb2xvcjsKIHN0cnVjdCBHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvcjsKIAogdXNpbmcgUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciA9IE1UTFJlbmRl
ckNvbW1hbmRFbmNvZGVyOwpAQCAtNTIsNiArNTMsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gdHJ5Q3JlYXRlKFJlZjxHUFVDb21tYW5kQnVmZmVy
PiYmLCBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciYmKTsKIAogICAgIHZvaWQgc2V0UGlwZWxpbmUo
UmVmPGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lPiYmKTsKKyAgICB2b2lkIHNldEJsZW5kQ29sb3Io
Y29uc3QgR1BVQ29sb3ImKTsKKyAgICB2b2lkIHNldFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhEZXB0
aCk7CisgICAgdm9pZCBzZXRTY2lzc29yUmVjdCh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCB1bnNp
Z25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcnMo
dW5zaWduZWQsIFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4mJiwgVmVjdG9yPHVpbnQ2NF90PiYmKTsK
ICAgICB2b2lkIGRyYXcodW5zaWduZWQgdmVydGV4Q291bnQsIHVuc2lnbmVkIGluc3RhbmNlQ291
bnQsIHVuc2lnbmVkIGZpcnN0VmVydGV4LCB1bnNpZ25lZCBmaXJzdEluc3RhbmNlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJl
bmRlclBhc3NFbmNvZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQppbmRleCBkOTk0MTVmNzJj
NGZmYTU1Njc4ZDZjODczMjQ0MTJlOWVlNTE1MGJjLi5hNjgyMWQwNTJhODg2ZjAxZWJmN2QwZjdk
YWIwNjNkZTllZjgwMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJN
ZXRhbC5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbXBvcnQg
IkdQVUJ1ZmZlci5oIgorI2ltcG9ydCAiR1BVQ29sb3IuaCIKICNpbXBvcnQgIkdQVUNvbW1hbmRC
dWZmZXIuaCIKICNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJH
UFVSZW5kZXJQaXBlbGluZS5oIgpAQCAtMjA0LDYgKzIwNSw0MiBAQCB2b2lkIEdQVVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8Y29uc3QgR1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlw
ZWxpbmUpCiAgICAgbV9waXBlbGluZSA9IFdURk1vdmUocGlwZWxpbmUpOwogfQogCit2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbG9yKGNvbnN0IEdQVUNvbG9yJiBjb2xvcikK
K3sKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlcikgeworICAgICAgICBMT0co
V2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEJsZW5kQ29sb3IoKTogSW52YWxpZCBv
cGVyYXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIFttX3BsYXRmb3JtUmVuZGVy
UGFzc0VuY29kZXIgc2V0QmxlbmRDb2xvclJlZDpjb2xvci5yIGdyZWVuOmNvbG9yLmcgYmx1ZTpj
b2xvci5iIGFscGhhOmNvbG9yLmFdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9
CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhE
ZXB0aCkKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlcikgeworICAgICAg
ICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KCk6IEludmFs
aWQgb3BlcmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBbbV9wbGF0Zm9ybVJl
bmRlclBhc3NFbmNvZGVyIHNldFZpZXdwb3J0OiB7IHgsIHksIHdpZHRoLCBoZWlnaHQsIG1pbkRl
cHRoLCBtYXhEZXB0aCB9XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworfQorCit2
b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCh1bnNpZ25lZCB4LCB1bnNp
Z25lZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQoreworICAgIGlmICghbV9w
bGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5k
ZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QoKTogSW52YWxpZCBvcGVyYXRpb246IEVuY29k
aW5nIGlzIGVuZGVkISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0
U2Npc3NvclJlY3Q6IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9XTsKKyAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworfQorCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhC
dWZmZXJzKHVuc2lnbmVkIGluZGV4LCBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+JiYgYnVmZmVycywg
VmVjdG9yPHVpbnQ2NF90PiYmIG9mZnNldHMpCiB7CiAgICAgaWYgKCFtX3BsYXRmb3JtUmVuZGVy
UGFzc0VuY29kZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NjA0NDYzNWUzOTEyNTNkNjlhYmY2YWU5NmY1MzkyNjI0
ZTRlYmM1Li4zM2U0OWE3Njg5ZTYwZDQxZjczNDBmZmM0MWQxYjk4MzFlMjIwMDM0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTktMDQtMDggIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViIEdQVV0gR1BVUmVuZGVyUGFzc0VuY29kZXIgdXBkYXRlczog
c2V0QmxlbmRDb2xvciwgc2V0Vmlld3BvcnQsIHNldFNjaXNzb3JSZWN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgYmxlbmQtdHJpYW5nbGUt
c3RyaXAgdG8gc2V0IGFuZCBibGVuZCB3aXRoIGEgY3VzdG9tIGJsZW5kIGNvbG9yIG9uIHRoZSBy
ZW5kZXJwYXNzIGVuY29kZXIuCisgICAgICAgIEFkZCB2aWV3cG9ydC1zY2lzc29yLXJlY3QtdHJp
YW5nbGUtc3RyaXAgdG8gZHJhdyBhIGNoZWNrZXJib2FyZCBieSByZXN0cmljdGluZyB0aGUgZHJh
d2luZyB2aWV3cG9ydCBvciBzY2lzc29yIHJlY3RhbmdsZS4KKworICAgICAgICAqIHdlYmdwdS9i
bGVuZC10cmlhbmdsZS1zdHJpcC5odG1sOgorICAgICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVu
Y3Rpb25zLmpzOgorICAgICAgICAoYmVnaW5CYXNpY1JlbmRlclBhc3MpOgorICAgICAgICAqIHdl
YmdwdS92aWV3cG9ydC1zY2lzc29yLXJlY3QtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ3B1L3ZpZXdwb3J0LXNjaXNzb3ItcmVjdC10cmlhbmdsZS1z
dHJpcC5odG1sOiBBZGRlZC4KKwogMjAxOS0wNC0wOCAgU2hhd24gUm9iZXJ0cyAgPHNyb2JlcnRz
QGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgdGVzdHMgaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRl
ci5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvYmxlbmQtdHJpYW5nbGUtc3Ry
aXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9ibGVuZC10cmlhbmdsZS1zdHJpcC5odG1sCmlu
ZGV4IDRjNjdjMmViOWYyZTA5ZmNiNWNiM2Q1Zjg3NDIxM2RkNmYwNjgwNWYuLmZiOGJlN2VjNjMw
ZWNjMjI2OWRhZGJiZGMyY2MyZjAyYmEzMWM5OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdwdS9ibGVuZC10cmlhbmdsZS1zdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9i
bGVuZC10cmlhbmdsZS1zdHJpcC5odG1sCkBAIC01NCwxMiArNTQsMTIgQEAgYXN5bmMgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgZm9ybWF0OiAiYmdyYTh1bm9ybSIsCiAgICAgICAgIGFscGhh
QmxlbmQ6IHsKICAgICAgICAgICAgIHNyY0ZhY3RvcjogIm9uZSIsCi0gICAgICAgICAgICBkc3RG
YWN0b3I6ICJvbmUiLAorICAgICAgICAgICAgZHN0RmFjdG9yOiAiYmxlbmQtY29sb3IiLAogICAg
ICAgICAgICAgb3BlcmF0aW9uOiAiYWRkIgogICAgICAgICB9LAogICAgICAgICBjb2xvckJsZW5k
OiB7CiAgICAgICAgICAgICBzcmNGYWN0b3I6ICJvbmUiLAotICAgICAgICAgICAgZHN0RmFjdG9y
OiAib25lIiwKKyAgICAgICAgICAgIGRzdEZhY3RvcjogImJsZW5kLWNvbG9yIiwKICAgICAgICAg
ICAgIG9wZXJhdGlvbjogImFkZCIKICAgICAgICAgfSwKICAgICAgICAgd3JpdGVNYXNrOiBHUFVD
b2xvcldyaXRlQml0cy5BTEwKQEAgLTEwMiw2ICsxMDIsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0
KCkgewogCiAgICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVu
Y29kZXIoKTsKICAgICBjb25zdCBwYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2luUmVu
ZGVyUGFzcyh7IGNvbG9yQXR0YWNobWVudHM6IFtjb2xvckF0dGFjaG1lbnRdIH0pOworICAgIHBh
c3NFbmNvZGVyLnNldEJsZW5kQ29sb3IoeyByOiAwLCBnOiAxLCBiOiAwLCBhOiAxIH0pOwogICAg
IHBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTsKICAgICBwYXNzRW5jb2Rlci5zZXRW
ZXJ0ZXhCdWZmZXJzKDAsIFt2ZXJ0ZXhCdWZmZXJdLCBbMF0pOwogICAgIHBhc3NFbmNvZGVyLmRy
YXcoNCwgMSwgMCwgMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpz
CmluZGV4IDM3OTA3MjEwZTFmNTU0NDVkMTg4ZWFmNDc5NDBlM2EyMmY1NTVjYzMuLjk3NzZiNGYz
NzE0MTFkNzcwNDc4ZmE4Y2E1NmFiODkzN2FjMTAxOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9q
cy93ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC04Nyw3ICs4Nyw3IEBAIGZ1bmN0aW9uIGJlZ2luQmFz
aWNSZW5kZXJQYXNzKHN3YXBDaGFpbiwgY29tbWFuZEVuY29kZXIpIHsKICAgICAgICAgbG9hZE9w
OiAiY2xlYXIiLAogICAgICAgICBzdG9yZU9wOiAic3RvcmUiLAogICAgICAgICBjbGVhckNvbG9y
OiB7IHI6IDEuMCwgZzogMCwgYjogMCwgYTogMS4wIH0KLSAgICB9CisgICAgfTsKIAogICAgIC8v
IEZJWE1FOiBGbGVzaCBvdXQgdGhlIHJlc3Qgb2YgV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
IAogICAgIHJldHVybiBjb21tYW5kRW5jb2Rlci5iZWdpblJlbmRlclBhc3MoeyBjb2xvckF0dGFj
aG1lbnRzIDogW2Jhc2ljQXR0YWNobWVudF0gfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJncHUvdmlld3BvcnQtc2Npc3Nvci1yZWN0LXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvdmlld3BvcnQtc2Npc3Nvci1yZWN0LXRyaWFuZ2xlLXN0cmlw
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY5YTljMDBmYjkzYTZkYzhlMjhlNzEzNWQzOWM2
MzBiNTliYWFmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS92aWV3cG9y
dC1zY2lzc29yLXJlY3QtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5IVE1M
IFJlZmVyZW5jZSBGaWxlPC90aXRsZT4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBp
cyBhIDQgYnkgNCBibHVlL2dyZWVuIGNoZWNrZXJib2FyZC48L3A+Cis8Y2FudmFzIHdpZHRoPSI0
MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25zdCBjYW52YXMgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKK2NvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0
Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdiKDAsIDI1NSwgMCknOwor
Y29udGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCitj
b25zdCBudW1Db2x1bW5zID0gNDsKK2NvbnN0IG51bVJvd3MgPSA0OworY29udGV4dC5iZWdpblBh
dGgoKTsKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYigwLCAwLCAyNTUpJzsKK2ZvciAobGV0IHgg
PSAwOyB4IDwgbnVtQ29sdW1uczsgKyt4KSB7CisgICAgZm9yIChsZXQgeSA9IDA7IHkgPCBudW1S
b3dzOyArK3kpIHsKKyAgICAgICAgaWYgKHggJSAyID09IDAgJiYgeSAlIDIgPT0gMCB8fCB4ICUg
MiA9PSAxICYmIHkgJSAyID09IDEpCisgICAgICAgICAgICBjb250ZXh0LnJlY3QoCisgICAgICAg
ICAgICAgICAgeCAqIGNhbnZhcy53aWR0aCAvIG51bUNvbHVtbnMsIAorICAgICAgICAgICAgICAg
IHkgKiBjYW52YXMuaGVpZ2h0IC8gbnVtUm93cywgCisgICAgICAgICAgICAgICAgY2FudmFzLndp
ZHRoIC8gbnVtQ29sdW1ucywgCisgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCAvIG51bVJv
d3MKKyAgICAgICAgICAgICAgICApOworICAgIH0KK30KK2NvbnRleHQuZmlsbCgpOworPC9zY3Jp
cHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ3B1L3ZpZXdwb3J0LXNjaXNzb3ItcmVjdC10cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L3ZpZXdwb3J0LXNjaXNzb3ItcmVjdC10cmlhbmdsZS1zdHJpcC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzMTVhZGYzZGJiYjAyZWU1OGVhN2FmYzQwY2M1N2Q1OGMxNDMyZDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmlld3BvcnQtc2Npc3Nvci1yZWN0LXRy
aWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdQVSBIZWxsbyBUcmlhbmdsZXM8L3RpdGxl
PgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJXZWJHUFUgY29ycmVjdGx5IHJlbmRlcnMg
YSBncmVlbiBjYW52YXMuIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InZpZXdwb3J0LXNjaXNz
b3ItcmVjdC10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIj4KKzxwPlBhc3MgaWYgc3F1YXJl
IGNhbnZhcyBiZWxvdyBpcyBhIDQgYnkgNCBibHVlL2dyZWVuIGNoZWNrZXJib2FyZC48L3A+Cis8
Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQgc3JjPSJq
cy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2NvbnN0IHNoYWRl
ckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAgIAordXNpbmcgbmFtZXNwYWNl
IG1ldGFsOworCitzdHJ1Y3QgVmVydGV4Cit7CisgICAgZmxvYXQ0IHBvc2l0aW9uIFtbcG9zaXRp
b25dXTsKK307CisKK3ZlcnRleCBWZXJ0ZXggdmVydGV4X21haW4odWludCB2aWQgW1t2ZXJ0ZXhf
aWRdXSkKK3sKKyAgICBWZXJ0ZXggdjsKKyAgICBzd2l0Y2ggKHZpZCkgeworICAgIGNhc2UgMDoK
KyAgICAgICAgdi5wb3NpdGlvbiA9IGZsb2F0NCgtMSwgMSwgMCwgMSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgMToKKyAgICAgICAgdi5wb3NpdGlvbiA9IGZsb2F0NCgtMSwgLTEsIDAsIDEp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIDI6CisgICAgICAgIHYucG9zaXRpb24gPSBmbG9h
dDQoMSwgMSwgMCwgMSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHYu
cG9zaXRpb24gPSBmbG9hdDQoMSwgLTEsIDAsIDEpOworICAgIH0KKyAgICByZXR1cm4gdjsKK30K
KworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4IHZlcnRleEluIFtbc3RhZ2Vf
aW5dXSkKK3sKKyAgICByZXR1cm4gZmxvYXQ0KDAuMCwgMS4wLCAwLjAsIDEuMCk7Cit9CitgOwor
Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJh
c2ljRGV2aWNlKCk7CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
Y2FudmFzIik7CisgICAgY29uc3Qgc3dhcENoYWluID0gY3JlYXRlQmFzaWNTd2FwQ2hhaW4oY2Fu
dmFzLCBkZXZpY2UpOworICAgIC8vIEZJWE1FOiBSZXBsYWNlIHdpdGggbm9uLU1TTCBzaGFkZXJz
LgorICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBj
b2RlOiBzaGFkZXJDb2RlIH0pOworICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBl
bGluZShzaGFkZXJNb2R1bGUsIGRldmljZSk7CisgICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBk
ZXZpY2UuY3JlYXRlQ29tbWFuZEVuY29kZXIoKTsKKyAgICBjb25zdCBibHVlQXR0YWNobWVudCA9
IHsKKyAgICAgICAgYXR0YWNobWVudDogc3dhcENoYWluLmdldEN1cnJlbnRUZXh0dXJlKCkuY3Jl
YXRlRGVmYXVsdFZpZXcoKSwKKyAgICAgICAgbG9hZE9wOiAiY2xlYXIiLAorICAgICAgICBzdG9y
ZU9wOiAic3RvcmUiLAorICAgICAgICBjbGVhckNvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDEsIGE6
IDEgfQorICAgIH07CisgICAgY29uc3QgcGFzc0VuY29kZXIgPSBjb21tYW5kRW5jb2Rlci5iZWdp
blJlbmRlclBhc3MoeyBjb2xvckF0dGFjaG1lbnRzOiBbYmx1ZUF0dGFjaG1lbnRdIH0pOworICAg
IHBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTsKKworICAgIGZ1bmN0aW9uIGRyYXdW
aWV3cG9ydCh4LCB5KSB7CisgICAgICAgIHBhc3NFbmNvZGVyLnNldFZpZXdwb3J0KHgsIHksIDEw
MCwgMTAwLCAwLCAxKTsKKyAgICAgICAgcGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBkcmF3U2Npc3NvclJlY3QoeCwgeSkgeworICAgICAgICBwYXNz
RW5jb2Rlci5zZXRTY2lzc29yUmVjdCh4LCB5LCAxMDAsIDEwMCk7CisgICAgICAgIHBhc3NFbmNv
ZGVyLmRyYXcoNCwgMSwgMCwgMCk7CisgICAgfQorCisgICAgcGFzc0VuY29kZXIuc2V0U2Npc3Nv
clJlY3QoMCwgMCwgMjAwLCA0MDApOworICAgIGRyYXdWaWV3cG9ydCgxMDAsIDApOworICAgIGRy
YXdWaWV3cG9ydCgwLCAxMDApOworICAgIGRyYXdWaWV3cG9ydCgxMDAsIDIwMCk7CisgICAgZHJh
d1ZpZXdwb3J0KDAsIDMwMCk7CisKKyAgICAvLyBEcmF3IG91dHNpZGUgb2Ygc2Npc3NvciByZWN0
IHNob3VsZCBub3QgYXBwZWFyLgorICAgIGRyYXdWaWV3cG9ydCgyMDAsIDEwMCk7CisKKyAgICBw
YXNzRW5jb2Rlci5zZXRWaWV3cG9ydCgyMDAsIDAsIDIwMCwgNDAwLCAwLCAxKTsKKyAgICBkcmF3
U2Npc3NvclJlY3QoMzAwLCAwKTsKKyAgICBkcmF3U2Npc3NvclJlY3QoMjAwLCAxMDApOworICAg
IGRyYXdTY2lzc29yUmVjdCgzMDAsIDIwMCk7CisgICAgZHJhd1NjaXNzb3JSZWN0KDIwMCwgMzAw
KTsKKworICAgIC8vIERyYXcgb3V0c2lkZSBvZiB2aWV3cG9ydCBzaG91bGQgbm90IGFwcGVhci4K
KyAgICBkcmF3U2Npc3NvclJlY3QoMCwgMCk7CisKKyAgICBwYXNzRW5jb2Rlci5lbmRQYXNzKCk7
CisgICAgY29uc3QgcXVldWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKworICAgIHF1ZXVlLnN1Ym1p
dChbY29tbWFuZEVuY29kZXIuZmluaXNoKCldKTsKKworICAgIHJlcXVlc3RBbmltYXRpb25GcmFt
ZSgoKSA9PiB7IAorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9KTsKK30KKwordGVzdCgpOworPC9zY3JpcHQ+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367059</attachid>
            <date>2019-04-09 12:07:43 -0700</date>
            <delta_ts>2019-04-09 13:03:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196719-20190409120742.patch</filename>
            <type>text/plain</type>
            <size>19174</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFhZTVlNjJmOGVmNzVi
NGQ2OWNmMjEwYzlhODZjNGQ1NTI3MTM4My4uZjhlMjhhMzk4MWFjNjMzNmUxMjBiZTg1MWJhNzFh
MzE5YjJkNDhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA0LTA4ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBHUFVdIEdQVVJl
bmRlclBhc3NFbmNvZGVyIHVwZGF0ZXM6IHNldEJsZW5kQ29sb3IsIHNldFZpZXdwb3J0LCBzZXRT
Y2lzc29yUmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk2NzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAg
ICAgICAgSW1wbGVtZW50IHNldEJsZW5kQ29sb3IsIHNldFZpZXdwb3J0LCBhbmQgc2V0U2Npc3Nv
clJlY3QgZm9yIEdQVVJlbmRlclBhc3NFbmNvZGVyLgorCisgICAgICAgIFRlc3RzOiB3ZWJncHUv
dmlld3BvcnQtc2Npc3Nvci1yZWN0LXRyaWFuZ2xlLXN0cmlwLmh0bWwsIHdlYmdwdS9ibGVuZC1j
b2xvci10cmlhbmdsZS1zdHJpcC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQYXNzRW5jb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0QmxlbmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5k
ZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVu
ZGVyUGFzc0VuY29kZXI6OnNldFNjaXNzb3JSZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QpOgorCiAyMDE5LTA0LTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uIHVucmVnaXN0ZXJzIGl0c2VsZiBldmVuIGlmIGl0cyBkYXRh
YmFzZSBpcyBnb25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKaW5kZXggMDg2NzhiY2M5OTkyMGJmMTQ2OGZh
ODI0YjVlNTBkMzZjNGJkMjY5NS4uMzA1OTFmNjY0ZTE3NzA1MmQ2YWY3MDBmNTc0NjRmZTY3YjUw
Y2JiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGFzc0VuY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUNvbG9yLmgiCiAjaW5jbHVkZSAiR1BVTGltaXRzLmgi
CiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCIKICNpbmNsdWRlICJHUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oIgpAQCAtNjAsNiArNjEsMzcgQEAgdm9pZCBXZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmUmIHBpcGVs
aW5lKQogICAgIG1fcGFzc0VuY29kZXItPnNldFBpcGVsaW5lKG1ha2VSZWYoKnBpcGVsaW5lLnJl
bmRlclBpcGVsaW5lKCkpKTsKIH0KIAordm9pZCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
QmxlbmRDb2xvcihjb25zdCBHUFVDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX3Bhc3NFbmNv
ZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Qmxl
bmRDb2xvcigpOiBJbnZhbGlkIG9wZXJhdGlvbiEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBtX3Bhc3NFbmNvZGVyLT5zZXRCbGVuZENvbG9yKGNvbG9yKTsKK30KKwordm9pZCBXZWJH
UFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0Vmlld3BvcnQoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
d2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgbWluRGVwdGgsIGZsb2F0IG1heERlcHRoKQorewor
ICAgIGlmICghbV9wYXNzRW5jb2RlcikgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVy
UGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KCk6IEludmFsaWQgb3BlcmF0aW9uISIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIG1fcGFzc0VuY29kZXItPnNldFZpZXdwb3J0KHgsIHksIHdp
ZHRoLCBoZWlnaHQsIG1pbkRlcHRoLCBtYXhEZXB0aCk7Cit9CisKK3ZvaWQgV2ViR1BVUmVuZGVy
UGFzc0VuY29kZXI6OnNldFNjaXNzb3JSZWN0KHVuc2lnbmVkIHgsIHVuc2lnbmVkIHksIHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgaWYgKCFtX3Bhc3NFbmNvZGVyKSB7
CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJl
Y3QoKTogSW52YWxpZCBvcGVyYXRpb24hIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QoKTogV2lkdGggb3IgaGVpZ2h0IG11c3QgYmUgZ3Jl
YXRlciB0aGFuIDAhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9wYXNzRW5jb2Rl
ci0+c2V0U2Npc3NvclJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7Cit9CisKIHZvaWQgV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnModW5zaWduZWQgc3RhcnRTbG90LCBW
ZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYgYnVmZmVycywgVmVjdG9yPHVpbnQ2NF90PiYm
IG9mZnNldHMpCiB7CiAjaWYgIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggY2M4ODM3
NTcyNWU3NzhkMWMxNWQ2OTI4ODU5YTUzZDdmMGQxYTVjMS4uNjYyMjQwZmU1NzBkYThhZTE5NGI3
Y2EyMjY2MjM4NTUyMzZhMGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0zOCwxMSArMzgsMTYgQEAg
Y2xhc3MgR1BVUmVuZGVyUGFzc0VuY29kZXI7CiBjbGFzcyBXZWJHUFVCdWZmZXI7CiBjbGFzcyBX
ZWJHUFVSZW5kZXJQaXBlbGluZTsKIAorc3RydWN0IEdQVUNvbG9yOworCiBjbGFzcyBXZWJHUFVS
ZW5kZXJQYXNzRW5jb2RlciBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5j
b2RlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcj4g
Y3JlYXRlKFJlZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CiAKICAgICB2b2lkIHNldFBp
cGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5lJik7CisgICAgdm9pZCBzZXRCbGVuZENv
bG9yKGNvbnN0IEdQVUNvbG9yJik7CisgICAgdm9pZCBzZXRWaWV3cG9ydChmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwgZmxvYXQgbWF4
RGVwdGgpOworICAgIHZvaWQgc2V0U2Npc3NvclJlY3QodW5zaWduZWQgeCwgdW5zaWduZWQgeSwg
dW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCk7CiAgICAgdm9pZCBzZXRWZXJ0ZXhCdWZm
ZXJzKHVuc2lnbmVkLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1aW50
NjRfdD4mJik7CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIHZlcnRleENvdW50LCB1bnNpZ25lZCBp
bnN0YW5jZUNvdW50LCB1bnNpZ25lZCBmaXJzdFZlcnRleCwgdW5zaWduZWQgZmlyc3RJbnN0YW5j
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBhc3NFbmNvZGVyLmlkbAppbmRleCAwMDkxMzI3NDRhZjFmNzg2MzY3NGM1OWI3NTA4
MDJlMGI5OGI2ZDRjLi5hNmU4MTlhMzczNmY4NGIxOGQ4MDNkZDljMTc5ZjlkYzhhZTgyODMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNz
RW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGFzc0VuY29kZXIuaWRsCkBAIC0zMywxMyArMzMsMjAgQEAgdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgdTY0OwogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBXZWJH
UFVSZW5kZXJQYXNzRW5jb2RlciA6IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKICAg
ICB2b2lkIHNldFBpcGVsaW5lKFdlYkdQVVJlbmRlclBpcGVsaW5lIHBpcGVsaW5lKTsKKyAgICB2
b2lkIHNldEJsZW5kQ29sb3IoR1BVQ29sb3IgY29sb3IpOworCisgICAgLy8gVGhlIGRlZmF1bHQg
dmlld3BvcnQgaXMgKDAuMCwgMC4wLCB3LCBoLCAwLjAsIDEuMCksIHdoZXJlIHcgYW5kIGggYXJl
IHRoZSBkaW1lbnNpb25zIG9mIGJhY2sgYnVmZmVyCisgICAgdm9pZCBzZXRWaWV3cG9ydChmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBtaW5EZXB0aCwg
ZmxvYXQgbWF4RGVwdGgpOworCisgICAgLy8gVGhlIGRlZmF1bHQgc2Npc3NvciByZWN0YW5nbGUg
aXMgKDAsIDAsIHcsIGgpLCB3aGVyZSB3IGFuZCBoIGFyZSB0aGUgZGltZW5zaW9ucyBvZiBiYWNr
IGJ1ZmZlci4KKyAgICAvLyBXaWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAu
IE90aGVyd2lzZSwgYW4gZXJyb3Igd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgdm9pZCBzZXRTY2lz
c29yUmVjdCh1MzIgeCwgdTMyIHksIHUzMiB3aWR0aCwgdTMyIGhlaWdodCk7CiAKICAgICB2b2lk
IHNldFZlcnRleEJ1ZmZlcnModTMyIHN0YXJ0U2xvdCwgc2VxdWVuY2U8V2ViR1BVQnVmZmVyPiBi
dWZmZXJzLCBzZXF1ZW5jZTx1NjQ+IG9mZnNldHMpOwogCiAgICAgdm9pZCBkcmF3KHUzMiB2ZXJ0
ZXhDb3VudCwgdTMyIGluc3RhbmNlQ291bnQsIHUzMiBmaXJzdFZlcnRleCwgdTMyIGZpcnN0SW5z
dGFuY2UpOwogCiAvKiBOb3QgWWV0IEltcGxlbWVudGVkCi0gICAgdm9pZCBzZXRCbGVuZENvbG9y
KGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpOwogICAgIHZvaWQgc2V0SW5kZXhC
dWZmZXIoV2ViR1BVQnVmZmVyIGJ1ZmZlciwgdTY0IG9mZnNldCk7CiAKICAgICB2b2lkIGRyYXdJ
bmRleGVkKHUzMiBpbmRleENvdW50LCB1MzIgaW5zdGFuY2VDb3VudCwgdTMyIGZpcnN0SW5kZXgs
IGkzMiBiYXNlVmVydGV4LCB1MzIgZmlyc3RJbnN0YW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5o
CmluZGV4IDg0MjViNWZiOWI4MTU4MzA2NzgxMjZmM2Q3MWVlMWQyMWFkMjczNGEuLmJkYzY1MGNi
ODU1NmE2YjJiM2UzYWE4MWQ5MWViZTMxNzA4MzI3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5o
CkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdQVUJ1ZmZlcjsK
IGNsYXNzIEdQVUNvbW1hbmRCdWZmZXI7CiAKK3N0cnVjdCBHUFVDb2xvcjsKIHN0cnVjdCBHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvcjsKIAogdXNpbmcgUGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciA9
IE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyOwpAQCAtNTIsNiArNTMsOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZlB0cjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gdHJ5Q3JlYXRlKFJlZjxHUFVDb21t
YW5kQnVmZmVyPiYmLCBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciYmKTsKIAogICAgIHZvaWQgc2V0
UGlwZWxpbmUoUmVmPGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lPiYmKTsKKyAgICB2b2lkIHNldEJs
ZW5kQ29sb3IoY29uc3QgR1BVQ29sb3ImKTsKKyAgICB2b2lkIHNldFZpZXdwb3J0KGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG1pbkRlcHRoLCBmbG9h
dCBtYXhEZXB0aCk7CisgICAgdm9pZCBzZXRTY2lzc29yUmVjdCh1bnNpZ25lZCB4LCB1bnNpZ25l
ZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAgICB2b2lkIHNldFZlcnRl
eEJ1ZmZlcnModW5zaWduZWQsIFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4mJiwgVmVjdG9yPHVpbnQ2
NF90PiYmKTsKICAgICB2b2lkIGRyYXcodW5zaWduZWQgdmVydGV4Q291bnQsIHVuc2lnbmVkIGlu
c3RhbmNlQ291bnQsIHVuc2lnbmVkIGZpcnN0VmVydGV4LCB1bnNpZ25lZCBmaXJzdEluc3RhbmNl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQppbmRleCBk
OTk0MTVmNzJjNGZmYTU1Njc4ZDZjODczMjQ0MTJlOWVlNTE1MGJjLi5hNjgyMWQwNTJhODg2ZjAx
ZWJmN2QwZjdkYWIwNjNkZTllZjgwMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFz
c0VuY29kZXJNZXRhbC5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAK
ICNpbXBvcnQgIkdQVUJ1ZmZlci5oIgorI2ltcG9ydCAiR1BVQ29sb3IuaCIKICNpbXBvcnQgIkdQ
VUNvbW1hbmRCdWZmZXIuaCIKICNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAj
aW1wb3J0ICJHUFVSZW5kZXJQaXBlbGluZS5oIgpAQCAtMjA0LDYgKzIwNSw0MiBAQCB2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8Y29uc3QgR1BVUmVuZGVyUGlwZWxp
bmU+JiYgcGlwZWxpbmUpCiAgICAgbV9waXBlbGluZSA9IFdURk1vdmUocGlwZWxpbmUpOwogfQog
Cit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRCbGVuZENvbG9yKGNvbnN0IEdQVUNvbG9y
JiBjb2xvcikKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlcikgeworICAg
ICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldEJsZW5kQ29sb3IoKTog
SW52YWxpZCBvcGVyYXRpb246IEVuY29kaW5nIGlzIGVuZGVkISIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIFttX3BsYXRm
b3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0QmxlbmRDb2xvclJlZDpjb2xvci5yIGdyZWVuOmNvbG9y
LmcgYmx1ZTpjb2xvci5iIGFscGhhOmNvbG9yLmFdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7Cit9CisKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG1pbkRlcHRoLCBm
bG9hdCBtYXhEZXB0aCkKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2Rlcikg
eworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0
KCk6IEludmFsaWQgb3BlcmF0aW9uOiBFbmNvZGluZyBpcyBlbmRlZCEiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBbbV9w
bGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldFZpZXdwb3J0OiB7IHgsIHksIHdpZHRoLCBoZWln
aHQsIG1pbkRlcHRoLCBtYXhEZXB0aCB9XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworfQorCit2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCh1bnNpZ25l
ZCB4LCB1bnNpZ25lZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQoreworICAg
IGlmICghbV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyKSB7CisgICAgICAgIExPRyhXZWJHUFUs
ICJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0U2Npc3NvclJlY3QoKTogSW52YWxpZCBvcGVyYXRp
b246IEVuY29kaW5nIGlzIGVuZGVkISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0Vu
Y29kZXIgc2V0U2Npc3NvclJlY3Q6IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9XTsKKyAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworfQorCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpz
ZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGluZGV4LCBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+JiYg
YnVmZmVycywgVmVjdG9yPHVpbnQ2NF90PiYmIG9mZnNldHMpCiB7CiAgICAgaWYgKCFtX3BsYXRm
b3JtUmVuZGVyUGFzc0VuY29kZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NjA0NDYzNWUzOTEyNTNkNjlhYmY2YWU5
NmY1MzkyNjI0ZTRlYmM1Li5iZWM1MjhiY2QyNjBlZjgwNmYzNWY1NjhkMjIzM2NmZTc5OGNmNDkz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDQtMDggIEp1c3RpbiBGYW4gIDxqdXN0aW5f
ZmFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEdQVV0gR1BVUmVuZGVyUGFzc0VuY29kZXIg
dXBkYXRlczogc2V0QmxlbmRDb2xvciwgc2V0Vmlld3BvcnQsIHNldFNjaXNzb3JSZWN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBBZGQgYmxlbmQt
Y29sb3ItdHJpYW5nbGUtc3RyaXAgdG8gc2V0IGFuZCBibGVuZCB3aXRoIGEgY3VzdG9tIGJsZW5k
IGNvbG9yIG9uIHRoZSByZW5kZXJwYXNzIGVuY29kZXIuCisgICAgICAgIEFkZCB2aWV3cG9ydC1z
Y2lzc29yLXJlY3QtdHJpYW5nbGUtc3RyaXAgdG8gZHJhdyBhIGNoZWNrZXJib2FyZCBieSByZXN0
cmljdGluZyB0aGUgZHJhd2luZyB2aWV3cG9ydCBvciBzY2lzc29yIHJlY3RhbmdsZS4KKworICAg
ICAgICAqIHdlYmdwdS9ibGVuZC1jb2xvci10cmlhbmdsZS1zdHJpcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKGJlZ2luQmFz
aWNSZW5kZXJQYXNzKToKKyAgICAgICAgKiB3ZWJncHUvdmlld3BvcnQtc2Npc3Nvci1yZWN0LXRy
aWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS92aWV3
cG9ydC1zY2lzc29yLXJlY3QtdHJpYW5nbGUtc3RyaXAuaHRtbDogQWRkZWQuCisKIDIwMTktMDQt
MDggIFNoYXduIFJvYmVydHMgIDxzcm9iZXJ0c0BhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0
IHRlc3RzIGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L2JsZW5kLWNvbG9yLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJncHUvYmxlbmQtY29sb3ItdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ODZmMTNlODEyMDM5N2E1Y2M2MzM2YzllMmE0ODVlNzc4YmE5OTMyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLWNvbG9yLXRyaWFuZ2xlLXN0
cmlwLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SFRNTCBSZWZlcmVuY2UgRmlsZTwvdGl0bGU+Cis8
cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+Cis8
Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25z
dCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKK2NvbnN0IGNvbnRl
eHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdi
KDAsIDI1NSwgMCknOworY29udGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZh
cy5oZWlnaHQpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLWNvbG9yLXRyaWFuZ2xlLXN0cmlwLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvYmxlbmQtY29sb3ItdHJpYW5nbGUtc3RyaXAuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYTU2Mzc5MDY1MjcyMTNmNWJjZGFmNjBiYTM5MjAxZWI1OWUzZGVlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JsZW5kLWNvbG9yLXRyaWFuZ2xlLXN0cmlw
Lmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVuIGNhbnZh
cy4iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYmxlbmQtY29sb3ItdHJpYW5nbGUtc3RyaXAt
ZXhwZWN0ZWQuaHRtbCI+Cis8cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxl
dGVseSBncmVlbi48L3A+Cis8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZh
cz4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKK2NvbnN0IHNoYWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAg
IAordXNpbmcgbmFtZXNwYWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4Cit7CisgICAgZmxvYXQ0
IHBvc2l0aW9uIFtbcG9zaXRpb25dXTsKK307CisKK3ZlcnRleCBWZXJ0ZXggdmVydGV4X21haW4o
dWludCB2aWQgW1t2ZXJ0ZXhfaWRdXSkKK3sKKyAgICBWZXJ0ZXggdjsKKyAgICBzd2l0Y2ggKHZp
ZCkgeworICAgIGNhc2UgMDoKKyAgICAgICAgdi5wb3NpdGlvbiA9IGZsb2F0NCgtMSwgMSwgMCwg
MSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgdi5wb3NpdGlvbiA9IGZs
b2F0NCgtMSwgLTEsIDAsIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDI6CisgICAgICAg
IHYucG9zaXRpb24gPSBmbG9hdDQoMSwgMSwgMCwgMSk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHYucG9zaXRpb24gPSBmbG9hdDQoMSwgLTEsIDAsIDEpOworICAgIH0K
KyAgICByZXR1cm4gdjsKK30KKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oKQorewor
ICAgIHJldHVybiBmbG9hdDQoMCwgMSwgMSwgMSk7Cit9CitgOworCithc3luYyBmdW5jdGlvbiB0
ZXN0KCkgeworICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7CisgICAg
Y29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CisgICAgY29u
c3Qgc3dhcENoYWluID0gY3JlYXRlQmFzaWNTd2FwQ2hhaW4oY2FudmFzLCBkZXZpY2UpOworICAg
IC8vIEZJWE1FOiBSZXBsYWNlIHdpdGggbm9uLU1TTCBzaGFkZXJzLgorICAgIGNvbnN0IHNoYWRl
ck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBzaGFkZXJDb2RlIH0p
OworCisgICAgY29uc3QgY29sb3JTdGF0ZXMgPSBbeworICAgICAgICBmb3JtYXQ6ICJiZ3JhOHVu
b3JtIiwKKyAgICAgICAgYWxwaGFCbGVuZDogeworICAgICAgICAgICAgc3JjRmFjdG9yOiAiYmxl
bmQtY29sb3IiLAorICAgICAgICAgICAgZHN0RmFjdG9yOiAiYmxlbmQtY29sb3IiLAorICAgICAg
ICAgICAgb3BlcmF0aW9uOiAiYWRkIgorICAgICAgICB9LAorICAgICAgICBjb2xvckJsZW5kOiB7
CisgICAgICAgICAgICBzcmNGYWN0b3I6ICJibGVuZC1jb2xvciIsCisgICAgICAgICAgICBkc3RG
YWN0b3I6ICJibGVuZC1jb2xvciIsCisgICAgICAgICAgICBvcGVyYXRpb246ICJhZGQiCisgICAg
ICAgIH0sCisgICAgICAgIHdyaXRlTWFzazogR1BVQ29sb3JXcml0ZUJpdHMuQUxMCisgICAgfV07
CisKKyAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxl
LCBkZXZpY2UsIGNvbG9yU3RhdGVzKTsKKyAgICBjb25zdCBjb21tYW5kRW5jb2RlciA9IGRldmlj
ZS5jcmVhdGVDb21tYW5kRW5jb2RlcigpOworICAgIGNvbnN0IHBhc3NFbmNvZGVyID0gYmVnaW5C
YXNpY1JlbmRlclBhc3Moc3dhcENoYWluLCBjb21tYW5kRW5jb2Rlcik7CisgICAgcGFzc0VuY29k
ZXIuc2V0QmxlbmRDb2xvcih7IHI6IDAsIGc6IDEsIGI6IDAsIGE6IDEgfSk7CisgICAgZW5jb2Rl
QmFzaWNDb21tYW5kcyhwYXNzRW5jb2RlciwgcGlwZWxpbmUpOworICAgIGNvbnN0IHF1ZXVlID0g
ZGV2aWNlLmdldFF1ZXVlKCk7CisKKyAgICBxdWV1ZS5zdWJtaXQoW2NvbW1hbmRFbmNvZGVyLmZp
bmlzaCgpXSk7CisKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geyAKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgfSk7Cit9CisKK3Rlc3QoKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rp
b25zLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKaW5kZXgg
Mzc5MDcyMTBlMWY1NTQ0NWQxODhlYWY0Nzk0MGUzYTIyZjU1NWNjMy4uOTc3NmI0ZjM3MTQxMWQ3
NzA0NzhmYThjYTU2YWI4OTM3YWMxMDE4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1
L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdw
dS1mdW5jdGlvbnMuanMKQEAgLTg3LDcgKzg3LDcgQEAgZnVuY3Rpb24gYmVnaW5CYXNpY1JlbmRl
clBhc3Moc3dhcENoYWluLCBjb21tYW5kRW5jb2RlcikgewogICAgICAgICBsb2FkT3A6ICJjbGVh
ciIsCiAgICAgICAgIHN0b3JlT3A6ICJzdG9yZSIsCiAgICAgICAgIGNsZWFyQ29sb3I6IHsgcjog
MS4wLCBnOiAwLCBiOiAwLCBhOiAxLjAgfQotICAgIH0KKyAgICB9OwogCiAgICAgLy8gRklYTUU6
IEZsZXNoIG91dCB0aGUgcmVzdCBvZiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci4gCiAgICAg
cmV0dXJuIGNvbW1hbmRFbmNvZGVyLmJlZ2luUmVuZGVyUGFzcyh7IGNvbG9yQXR0YWNobWVudHMg
OiBbYmFzaWNBdHRhY2htZW50XSB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS92
aWV3cG9ydC1zY2lzc29yLXJlY3QtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdwdS92aWV3cG9ydC1zY2lzc29yLXJlY3QtdHJpYW5nbGUtc3RyaXAtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNjlhOWMwMGZiOTNhNmRjOGUyOGU3MTM1ZDM5YzYzMGI1OWJh
YWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3ZpZXdwb3J0LXNjaXNz
b3ItcmVjdC10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkhUTUwgUmVmZXJl
bmNlIEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGEgNCBi
eSA0IGJsdWUvZ3JlZW4gY2hlY2tlcmJvYXJkLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVp
Z2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0
KCcyZCcpOworCitjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2IoMCwgMjU1LCAwKSc7Citjb250ZXh0
LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisKK2NvbnN0IG51
bUNvbHVtbnMgPSA0OworY29uc3QgbnVtUm93cyA9IDQ7Citjb250ZXh0LmJlZ2luUGF0aCgpOwor
Y29udGV4dC5maWxsU3R5bGUgPSAncmdiKDAsIDAsIDI1NSknOworZm9yIChsZXQgeCA9IDA7IHgg
PCBudW1Db2x1bW5zOyArK3gpIHsKKyAgICBmb3IgKGxldCB5ID0gMDsgeSA8IG51bVJvd3M7ICsr
eSkgeworICAgICAgICBpZiAoeCAlIDIgPT0gMCAmJiB5ICUgMiA9PSAwIHx8IHggJSAyID09IDEg
JiYgeSAlIDIgPT0gMSkKKyAgICAgICAgICAgIGNvbnRleHQucmVjdCgKKyAgICAgICAgICAgICAg
ICB4ICogY2FudmFzLndpZHRoIC8gbnVtQ29sdW1ucywgCisgICAgICAgICAgICAgICAgeSAqIGNh
bnZhcy5oZWlnaHQgLyBudW1Sb3dzLCAKKyAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggLyBu
dW1Db2x1bW5zLCAKKyAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0IC8gbnVtUm93cworICAg
ICAgICAgICAgICAgICk7CisgICAgfQorfQorY29udGV4dC5maWxsKCk7Cis8L3NjcmlwdD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUv
dmlld3BvcnQtc2Npc3Nvci1yZWN0LXRyaWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJncHUvdmlld3BvcnQtc2Npc3Nvci1yZWN0LXRyaWFuZ2xlLXN0cmlwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjMxNWFkZjNkYmJiMDJlZTU4ZWE3YWZjNDBjYzU3ZDU4YzE0MzJkOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS92aWV3cG9ydC1zY2lzc29yLXJlY3QtdHJpYW5nbGUt
c3RyaXAuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVu
IGNhbnZhcy4iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0idmlld3BvcnQtc2Npc3Nvci1yZWN0
LXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwiPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFz
IGJlbG93IGlzIGEgNCBieSA0IGJsdWUvZ3JlZW4gY2hlY2tlcmJvYXJkLjwvcD4KKzxjYW52YXMg
d2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdw
dS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworY29uc3Qgc2hhZGVyQ29kZSA9
IGAKKyNpbmNsdWRlIDxtZXRhbF9zdGRsaWI+CisgICAgCit1c2luZyBuYW1lc3BhY2UgbWV0YWw7
CisKK3N0cnVjdCBWZXJ0ZXgKK3sKKyAgICBmbG9hdDQgcG9zaXRpb24gW1twb3NpdGlvbl1dOwor
fTsKKwordmVydGV4IFZlcnRleCB2ZXJ0ZXhfbWFpbih1aW50IHZpZCBbW3ZlcnRleF9pZF1dKQor
eworICAgIFZlcnRleCB2OworICAgIHN3aXRjaCAodmlkKSB7CisgICAgY2FzZSAwOgorICAgICAg
ICB2LnBvc2l0aW9uID0gZmxvYXQ0KC0xLCAxLCAwLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSAxOgorICAgICAgICB2LnBvc2l0aW9uID0gZmxvYXQ0KC0xLCAtMSwgMCwgMSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgdi5wb3NpdGlvbiA9IGZsb2F0NCgxLCAx
LCAwLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgdi5wb3NpdGlv
biA9IGZsb2F0NCgxLCAtMSwgMCwgMSk7CisgICAgfQorICAgIHJldHVybiB2OworfQorCitmcmFn
bWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihWZXJ0ZXggdmVydGV4SW4gW1tzdGFnZV9pbl1dKQor
eworICAgIHJldHVybiBmbG9hdDQoMC4wLCAxLjAsIDAuMCwgMS4wKTsKK30KK2A7CisKK2FzeW5j
IGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZp
Y2UoKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMi
KTsKKyAgICBjb25zdCBzd2FwQ2hhaW4gPSBjcmVhdGVCYXNpY1N3YXBDaGFpbihjYW52YXMsIGRl
dmljZSk7CisgICAgLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCisgICAg
Y29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNo
YWRlckNvZGUgfSk7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5lKHNo
YWRlck1vZHVsZSwgZGV2aWNlKTsKKyAgICBjb25zdCBjb21tYW5kRW5jb2RlciA9IGRldmljZS5j
cmVhdGVDb21tYW5kRW5jb2RlcigpOworICAgIGNvbnN0IGJsdWVBdHRhY2htZW50ID0geworICAg
ICAgICBhdHRhY2htZW50OiBzd2FwQ2hhaW4uZ2V0Q3VycmVudFRleHR1cmUoKS5jcmVhdGVEZWZh
dWx0VmlldygpLAorICAgICAgICBsb2FkT3A6ICJjbGVhciIsCisgICAgICAgIHN0b3JlT3A6ICJz
dG9yZSIsCisgICAgICAgIGNsZWFyQ29sb3I6IHsgcjogMCwgZzogMCwgYjogMSwgYTogMSB9Cisg
ICAgfTsKKyAgICBjb25zdCBwYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2luUmVuZGVy
UGFzcyh7IGNvbG9yQXR0YWNobWVudHM6IFtibHVlQXR0YWNobWVudF0gfSk7CisgICAgcGFzc0Vu
Y29kZXIuc2V0UGlwZWxpbmUocGlwZWxpbmUpOworCisgICAgZnVuY3Rpb24gZHJhd1ZpZXdwb3J0
KHgsIHkpIHsKKyAgICAgICAgcGFzc0VuY29kZXIuc2V0Vmlld3BvcnQoeCwgeSwgMTAwLCAxMDAs
IDAsIDEpOworICAgICAgICBwYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGRyYXdTY2lzc29yUmVjdCh4LCB5KSB7CisgICAgICAgIHBhc3NFbmNvZGVy
LnNldFNjaXNzb3JSZWN0KHgsIHksIDEwMCwgMTAwKTsKKyAgICAgICAgcGFzc0VuY29kZXIuZHJh
dyg0LCAxLCAwLCAwKTsKKyAgICB9CisKKyAgICBwYXNzRW5jb2Rlci5zZXRTY2lzc29yUmVjdCgw
LCAwLCAyMDAsIDQwMCk7CisgICAgZHJhd1ZpZXdwb3J0KDEwMCwgMCk7CisgICAgZHJhd1ZpZXdw
b3J0KDAsIDEwMCk7CisgICAgZHJhd1ZpZXdwb3J0KDEwMCwgMjAwKTsKKyAgICBkcmF3Vmlld3Bv
cnQoMCwgMzAwKTsKKworICAgIC8vIERyYXcgb3V0c2lkZSBvZiBzY2lzc29yIHJlY3Qgc2hvdWxk
IG5vdCBhcHBlYXIuCisgICAgZHJhd1ZpZXdwb3J0KDIwMCwgMTAwKTsKKworICAgIHBhc3NFbmNv
ZGVyLnNldFZpZXdwb3J0KDIwMCwgMCwgMjAwLCA0MDAsIDAsIDEpOworICAgIGRyYXdTY2lzc29y
UmVjdCgzMDAsIDApOworICAgIGRyYXdTY2lzc29yUmVjdCgyMDAsIDEwMCk7CisgICAgZHJhd1Nj
aXNzb3JSZWN0KDMwMCwgMjAwKTsKKyAgICBkcmF3U2Npc3NvclJlY3QoMjAwLCAzMDApOworCisg
ICAgLy8gRHJhdyBvdXRzaWRlIG9mIHZpZXdwb3J0IHNob3VsZCBub3QgYXBwZWFyLgorICAgIGRy
YXdTY2lzc29yUmVjdCgwLCAwKTsKKworICAgIHBhc3NFbmNvZGVyLmVuZFBhc3MoKTsKKyAgICBj
b25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworCisgICAgcXVldWUuc3VibWl0KFtjb21t
YW5kRW5jb2Rlci5maW5pc2goKV0pOworCisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+
IHsgCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>