<?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>204521</bug_id>
          
          <creation_ts>2019-11-22 09:13:37 -0800</creation_ts>
          <short_desc>Media queries in img sizes attribute don&apos;t evaluate dynamically</short_desc>
          <delta_ts>2019-11-23 02:20:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1592828</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-22 09:13:37 -0800</bug_when>
    <thetext>There is no code for evaluating on viewport etc changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592846</commentid>
    <comment_count>1</comment_count>
      <attachid>384160</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-22 09:34:42 -0800</bug_when>
    <thetext>Created attachment 384160
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592848</commentid>
    <comment_count>2</comment_count>
      <attachid>384161</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-22 09:41:08 -0800</bug_when>
    <thetext>Created attachment 384161
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592960</commentid>
    <comment_count>3</comment_count>
      <attachid>384161</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-11-22 12:47:28 -0800</bug_when>
    <thetext>Comment on attachment 384161
patch

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

&gt; LayoutTests/fast/images/sizes-dynamic-001.html:5
&gt; +&lt;link rel=&quot;match&quot; href=&quot;sizes-dynamic-001-ref.html&quot;&gt;

Please fix this to point to the real ref file.

&gt; LayoutTests/fast/images/sizes-dynamic-002.html:5
&gt; +&lt;link rel=&quot;match&quot; href=&quot;sizes-dynamic-001-ref.html&quot;&gt;

Ditto.

&gt; Source/WebCore/dom/Document.h:1829
&gt; +    HashSet&lt;HTMLImageElement*&gt; m_dynamicMediaQueryDependentImages;

Are we still using raw pointers for stuff like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592963</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-22 12:58:03 -0800</bug_when>
    <thetext>&gt; Are we still using raw pointers for stuff like this?

We don&apos;t have WeakPtrs for Elements yet. But maybe I could add it for HTMLImageElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593187</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-23 00:57:08 -0800</bug_when>
    <thetext>&gt; We don&apos;t have WeakPtrs for Elements yet. But maybe I could add it for
&gt; HTMLImageElement.

I&apos;m wrong, ContainerNodes are already CanMakeWeakPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593188</commentid>
    <comment_count>6</comment_count>
      <attachid>384233</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-23 01:36:42 -0800</bug_when>
    <thetext>Created attachment 384233
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593193</commentid>
    <comment_count>7</comment_count>
      <attachid>384233</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-23 02:19:50 -0800</bug_when>
    <thetext>Comment on attachment 384233
patch

Clearing flags on attachment: 384233

Committed r252828: &lt;https://trac.webkit.org/changeset/252828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593194</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-23 02:19:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593195</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-23 02:20:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57451085&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384160</attachid>
            <date>2019-11-22 09:34:42 -0800</date>
            <delta_ts>2019-11-22 09:41:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>img-sizes-mq.patch</filename>
            <type>text/plain</type>
            <size>28025</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjNmNDlhY2IwMy4uNTNlYzM5ODMyMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxOS0xMS0yMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
TWVkaWEgcXVlcmllcyBpbiBpbWcgc2l6ZXMgYXR0cmlidXRlIGRvbid0IGV2YWx1YXRlIGR5bmFt
aWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ1MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLmh0bWw6IEFkZGVkLgorCisg
ICAgICAgIENvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L3Np
emVzL3NpemVzLWR5bmFtaWMtKgorICAgICAgICBiZWNhdXNlIHdlIGRvbid0IHN1cHBvcnQgcmVm
dGVzdC13YWl0ICh3ZWJraXQub3JnL2IvMTg2MDQ1KS4KKwogMjAxOS0xMS0yMSAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MjM0NDQwKTogW01hYyBXSzIgXSBMYXlvdXQgVGVzdCBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZy
b20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9t
LXdyb25nLWZyYW1lLmh0bWwgaXMgZmxha3kgdGltZW91dCAoMTk0MTY0KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyNzljODIxMGM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPlRl
c3QgcmVmZXJlbmNlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENv
Ym9zIMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8aWZyYW1lIHdp
ZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1sPjxpbWcgYWx0PSJG
QUlMIiBzcmNzZXQ9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2Vz
L2dyZWVuLTI1NngyNTYucG5nIDEwMHciIHN0eWxlPSJtYXgtd2lkdGg6IDEwMCUiIHNpemVzPSIx
MHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6
ZXMtZHluYW1pYy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFt
aWMtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzNGRm
OGI3NTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMt
ZHluYW1pYy0wMDEuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPHRpdGxlPkltYWdlIGludHJpbnNpYyBzaXplIHNwZWNp
ZmllZCB2aWEgc2l6ZXMgYXR0cmlidXRlIHJlYWN0cyBwcm9wZXJseSB0byBtZWRpYSBjaGFuZ2Vz
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6
IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8bGluayByZWw9Im1hdGNoIiBocmVm
PSJzaXplcy1keW5hbWljLTAwMS1yZWYuaHRtbCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3NpemVzLWF0dHJpYnV0ZXMiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTQ5MzU3Ij4KKzxzY3JpcHQ+CisvLyBVc2UgV1BUIHZlcnNpb24gYWZ0ZXIgcmVmdGVzdC13
YWl0IGlzIGltcGxlbWVudGVkLgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBmcmFtZUxvYWRlZChmcmFtZSkgeworICBm
cmFtZS53aWR0aCA9ICI1MDAiOworICBsZXQgaW1nID0gZnJhbWUuY29udGVudERvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2ltZycpOworCisgIC8vIFRyaWdnZXIgdGhlIHZpZXdwb3J0IHJlc2l6ZSwg
d2hpY2ggd2lsbCB0cmlnZ2VyIHRoZSBpbWFnZSBsb2FkIHRhc2suCisgIGltZy5vZmZzZXRXaWR0
aDsKKworICAvLyBXYWl0IGZvciB0aGUgaW1hZ2UgbG9hZCB0YXNrIHRvIHJ1bi4KKyAgc2V0VGlt
ZW91dCgoKSA9PiB7CisgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1
dGUoImNsYXNzIik7CisgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBvbmxv
YWQ9ImZyYW1lTG9hZGVkKHRoaXMpIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjUwMCIgc3JjZG9jPSc8
IWRvY3R5cGUgaHRtbD48aW1nIHNyY3NldD0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbWFnZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1heC13aWR0aDog
MTAwJSIgc2l6ZXM9IihtaW4td2lkdGg6IDQwMHB4KSAxMHB4LCAyMHB4Ij4nPjwvaWZyYW1lPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDItZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyNzlj
ODIxMGM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMt
ZHluYW1pYy0wMDItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhZG9jdHlwZSBodG1s
PgorPHRpdGxlPlRlc3QgcmVmZXJlbmNlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+
Cis8aWZyYW1lIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1s
PjxpbWcgYWx0PSJGQUlMIiBzcmNzZXQ9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW1hZ2VzL2dyZWVuLTI1NngyNTYucG5nIDEwMHciIHN0eWxlPSJtYXgtd2lkdGg6IDEw
MCUiIHNpemVzPSIxMHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3NpemVzLWR5bmFtaWMtMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjEwN2QwYTQzYWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPHRpdGxlPkltYWdlIGludHJpbnNp
YyBzaXplIHNwZWNpZmllZCB2aWEgc2l6ZXMgYXR0cmlidXRlIHJlYWN0cyBwcm9wZXJseSB0byBt
ZWRpYSBjaGFuZ2VzIGluIFNoYWRvdyBET008L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9Im1haWx0bzplbWlsaW9AY3Jpc2FsLmlv
Ij4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InNpemVzLWR5bmFtaWMtMDAxLXJlZi5odG1sIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jc2l6
ZXMtYXR0cmlidXRlcyI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vYnVnemlsbGEu
bW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExNDkzNTciPgorPHNjcmlwdD4KKy8vIFVzZSBX
UFQgdmVyc2lvbiBhZnRlciByZWZ0ZXN0LXdhaXQgaXMgaW1wbGVtZW50ZWQuCitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9u
IGZyYW1lTG9hZGVkKGZyYW1lKSB7CisgIGxldCBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQ7
CisgIGxldCBzaGFkb3cgPSBkb2MuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKS5hdHRhY2hTaGFkb3co
eyBtb2RlOiAib3BlbiIgfSk7CisKKyAgbGV0IGltZyA9IGRvYy5jcmVhdGVFbGVtZW50KCJpbWci
KTsKKyAgaW1nLnNyY3NldCA9ICIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ltYWdlcy9ncmVlbi0yNTZ4MjU2LnBuZyAxMDB3IjsKKyAgaW1nLnN0eWxlLm1heFdpZHRoID0g
IjEwMCUiOworICBpbWcuc2V0QXR0cmlidXRlKCJzaXplcyIsICIobWluLXdpZHRoOiA0MDBweCkg
MTBweCwgMjBweCIpOworCisgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpbWcub2Zm
c2V0V2lkdGg7IC8vIEZsdXNoIGxheW91dC4KKworICAgIGZyYW1lLndpZHRoID0gIjUwMCI7CisK
KyAgICAvLyBUcmlnZ2VyIHRoZSB2aWV3cG9ydCByZXNpemUsIHdoaWNoIHdpbGwgdHJpZ2dlciB0
aGUgaW1hZ2UgbG9hZCB0YXNrLgorICAgIGltZy5vZmZzZXRXaWR0aDsKKworICAvLyBXYWl0IGZv
ciB0aGUgaW1hZ2UgbG9hZCB0YXNrIHRvIHJ1bi4KKyAgc2V0VGltZW91dCgoKSA9PiB7CisgICAg
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik7CisgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICB9LCAwKTsKKyAgfTsKKworICBzaGFkb3cuYXBwZW5kQ2hpbGQoaW1nKTsKK30KKzwvc2Ny
aXB0PgorPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKHRoaXMpIiB3aWR0aD0iMjAwIiBoZWln
aHQ9IjUwMCIgc3JjZG9jPSc8IWRvY3R5cGUgaHRtbD48ZGl2IGlkPSJob3N0Ij48L2Rpdj4nPjwv
aWZyYW1lPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3ZDQyNDQ4M2M1Li41YWY1ZjdjNTQ0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY5IEBACisyMDE5LTExLTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KKworICAgICAgICBNZWRpYSBxdWVyaWVzIGluIGltZyBzaXplcyBhdHRyaWJ1dGUg
ZG9uJ3QgZXZhbHVhdGUgZHluYW1pY2FsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi5odG1sCisK
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZUZvckNoYW5nZXMgY29uc3QpOgorCisgICAg
ICAgIEFkZCBhIGhlbHBlciBmdW5jdGlvbiBmb3IgZXZhbHVhdGluZyBkeW5hbWljIHJlc3VsdHMg
Zm9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzOjppc0VtcHR5IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpTaXplc0F0dHJpYnV0ZVBhcnNlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRj
aGVzKToKKworICAgICAgICBHYXRoZXIgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzCisKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVFbGVtZW50c0Fm
ZmVjdGVkQnlNZWRpYVF1ZXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZER5
bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UpOgorCisgICAgICAgIFJl
cGxhY2Ugdmlld3BvcnQvYXBwZWFyYW5jZSBzcGVjaWZpYyBtZWNoYW5pc20gd2l0aCBhIHVuaWZp
ZWQgb25lICh0aGV5IHdlcmUgYWxsIGludm9rZWQgdG9nZXRoZXIgYW55d2F5KS4KKyAgICAgICAg
TWFrZSBpdCBhYm91dCBIVE1MSW1hZ2VFbGVtZW50IHJhdGhlciB0aGFuIEhUTUxQaWN0dXJlRWxl
bWVudCBzaW5jZSB0aGF0IGlzIHRoZSBvbmx5IGNsaWVudCBpbiB0aGlzIHBhdGNoLgorCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjaGVja0FwcGVhcmFuY2VEZXBl
bmRlbnRQaWN0dXJlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRk
Vmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpyZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVBcHBlYXJhbmNlRGVwZW5k
ZW50UGljdHVyZSk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6On5IVE1MSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyeURlcGVuZGVu
Y2llcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZWxlY3RJbWFnZVNv
dXJjZSk6CisKKyAgICAgICAgR2F0aGVyIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBmcm9tIGFs
bCBwYXRocy4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZGlkTW92ZVRv
TmV3RG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
aWN0dXJlRWxlbWVudDo6fkhUTUxQaWN0dXJlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGljdHVyZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQaWN0dXJlRWxlbWVudDo6dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVtZW50OjphcHBl
YXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBN
b3ZlIHRoZSBtZWRpYSBxdWVyeSBkZXBlbmRlbmN5IGNvZGUgdG8gSFRNTEltYWdlRWxlbWVudCBz
aW5jZSB0aGF0cyB3aGVyZSBpdCBpcyBhY3R1YWxseSBuZWVkZWQuCisKKyAgICAgICAgKiBodG1s
L0hUTUxQaWN0dXJlRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6c2V0SW1hZ2VEZXZpY2VQaXhlbFJh
dGlvKToKKworICAgICAgICBVcGRhdGUgcmVuZGVyaW5nIGFsc28gaWYgb25seSB0aGUgcGl4ZWwg
cmF0aW8gY2hhbmdlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnNldEltYWdlRGV2aWNlUGl4ZWxSYXRpbyk6IERl
bGV0ZWQuCisKIDIwMTktMTEtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gV2ViIHByb2Nlc3MgY3Jhc2hlcyB3aGVuIGF0dGVtcHRpbmcg
dG8gcmVxdWVzdCBkb2N1bWVudCBjb250ZXh0IGluIGEgdGV4dGFyZWEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCAwNTgxY2FhZjMyNC4uMDJjOGNjNWEw
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTE5
Miw2ICsxOTIsMTkgQEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBN
ZWRpYVF1ZXJ5U2V0JiBxdWVyeVNldCwgTWVkaWFRdWVyeUR5bmEKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlRm9yQ2hhbmdlcyhjb25z
dCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmIGR5bmFtaWNSZXN1bHRzKSBjb25zdAoreworICAg
IGF1dG8gaGFzQ2hhbmdlcyA9IFsmXShhdXRvJiBkeW5hbWljUmVzdWx0c1ZlY3RvcikgeworICAg
ICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSZXN1bHQgOiBkeW5hbWljUmVzdWx0c1ZlY3Rvcikgewor
ICAgICAgICAgICAgaWYgKGV2YWx1YXRlKGR5bmFtaWNSZXN1bHQuZXhwcmVzc2lvbikgIT0gZHlu
YW1pY1Jlc3VsdC5yZXN1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAgICByZXR1cm4gaGFzQ2hhbmdl
cyhkeW5hbWljUmVzdWx0cy52aWV3cG9ydCkgfHwgaGFzQ2hhbmdlcyhkeW5hbWljUmVzdWx0cy5h
cHBlYXJhbmNlKSB8fCBoYXNDaGFuZ2VzKGR5bmFtaWNSZXN1bHRzLmFjY2Vzc2liaWxpdHlTZXR0
aW5ncyk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGJvb2wgY29tcGFy
ZVZhbHVlKFQgYSwgVSBiLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgc3dpdGNoIChv
cCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKaW5kZXggYjkwODRj
NmM0ZjIuLjNhZDk5OGNiYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmgKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyB7
CiAgICAgICAgIGFwcGVhcmFuY2UuYXBwZW5kVmVjdG9yKG90aGVyLmFwcGVhcmFuY2UpOwogICAg
ICAgICBhY2Nlc3NpYmlsaXR5U2V0dGluZ3MuYXBwZW5kVmVjdG9yKG90aGVyLmFjY2Vzc2liaWxp
dHlTZXR0aW5ncyk7CiAgICAgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIHZp
ZXdwb3J0LmlzRW1wdHkoKSAmJiBhcHBlYXJhbmNlLmlzRW1wdHkoKSAmJiBhY2Nlc3NpYmlsaXR5
U2V0dGluZ3MuaXNFbXB0eSgpOyB9CiB9OwogCiAvLyBTb21lIG9mIHRoZSBjb25zdHJ1Y3RvcnMg
YXJlIHVzZWQgZm9yIGNhc2VzIHdoZXJlIHRoZSBkZXZpY2UgY2hhcmFjdGVyaXN0aWNzIGFyZSBu
b3Qga25vd24uCkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEV2YWx1YXRlcyBt
ZWRpYSBxdWVyeSBzdWJleHByZXNzaW9uLCBpZSAiYW5kIChtZWRpYS1mZWF0dXJlOiB2YWx1ZSki
IHBhcnQuCiAgICAgYm9vbCBldmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5RXhwcmVzc2lvbiYpIGNv
bnN0OworICAgIGJvb2wgZXZhbHVhdGVGb3JDaGFuZ2VzKGNvbnN0IE1lZGlhUXVlcnlEeW5hbWlj
UmVzdWx0cyYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBldmFsdWF0ZShjb25z
dCBNZWRpYVF1ZXJ5U2V0JiwgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKiA9IG51bGxwdHIpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQ
YXJzZXIuY3BwCmluZGV4IDIyNjFiN2M5MmNlLi40ODk0MjQwYzI1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKQEAgLTY5LDEw
ICs2OSw5IEBAIGZsb2F0IFNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3RoKGRvdWJs
ZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdHlwZSwgY29uc3QKICAgICByZXR1cm4gY2xhbXBUbzxmbG9h
dD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnZlcnNp
b25EYXRhLCB0eXBlLCB2YWx1ZSkpOwogfQogICAgIAotU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OlNp
emVzQXR0cmlidXRlUGFyc2VyKGNvbnN0IFN0cmluZyYgYXR0cmlidXRlLCBjb25zdCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitTaXplc0F0dHJpYnV0ZVBhcnNlcjo6U2l6ZXNBdHRyaWJ1dGVQYXJzZXIo
Y29uc3QgU3RyaW5nJiBhdHRyaWJ1dGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFR
dWVyeUR5bmFtaWNSZXN1bHRzKiBtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpCiAgICAgOiBtX2Rv
Y3VtZW50KGRvY3VtZW50KQotICAgICwgbV9sZW5ndGgoMCkKLSAgICAsIG1fbGVuZ3RoV2FzU2V0
KGZhbHNlKQorICAgICwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMobWVkaWFRdWVyeUR5bmFt
aWNSZXN1bHRzKQogewogICAgIG1faXNWYWxpZCA9IHBhcnNlKENTU1Rva2VuaXplcihhdHRyaWJ1
dGUpLnRva2VuUmFuZ2UoKSk7CiB9CkBAIC0xMTUsNyArMTE0LDcgQEAgYm9vbCBTaXplc0F0dHJp
YnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKGNvbnN0IE1lZGlhUXVlcnlTZXQmIG1l
ZGlhQ29uZGkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
YXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gTWVkaWFRdWVyeUV2
YWx1YXRvciB7ICJzY3JlZW4iLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNv
bmRpdGlvbik7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3IgeyAic2NyZWVuIiwgbV9k
b2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24sIG1fbWVkaWFRdWVyeUR5
bmFtaWNSZXN1bHRzKTsKIH0KIAogYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6cGFyc2UoQ1NT
UGFyc2VyVG9rZW5SYW5nZSByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
U2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaAppbmRleCAxNDkzMGQyMzUzMS4uMjdkY2I2M2NmMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmgK
QEAgLTM4LDEwICszOCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NWYWx1ZTsK
IGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFRdWVyeVNldDsKK3N0cnVjdCBNZWRpYVF1ZXJ5
RHluYW1pY1Jlc3VsdHM7CiAgICAgCiBjbGFzcyBTaXplc0F0dHJpYnV0ZVBhcnNlciB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXIoY29uc3QgU3RyaW5nJiwgY29u
c3QgRG9jdW1lbnQmKTsKKyAgICBTaXplc0F0dHJpYnV0ZVBhcnNlcihjb25zdCBTdHJpbmcmLCBj
b25zdCBEb2N1bWVudCYsIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyogPSBudWxscHRyKTsKIAog
ICAgIGZsb2F0IGxlbmd0aCgpOwogCkBAIC01Nyw5ICs1OCwxMCBAQCBwcml2YXRlOgogCiAgICAg
Y29uc3QgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1f
bWVkaWFDb25kaXRpb247Ci0gICAgZmxvYXQgbV9sZW5ndGg7Ci0gICAgYm9vbCBtX2xlbmd0aFdh
c1NldDsKLSAgICBib29sIG1faXNWYWxpZDsKKyAgICBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMq
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIHsgbnVsbHB0ciB9OworICAgIGZsb2F0IG1fbGVu
Z3RoIHsgMCB9OworICAgIGJvb2wgbV9sZW5ndGhXYXNTZXQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGM5NjhlNWQ5OGM5Li4zNjExNWRlNGVhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0zOTM2LDggKzM5MzYsMTAgQEAgU3R5bGVTaGVldExpc3QmIERv
Y3VtZW50OjpzdHlsZVNoZWV0cygpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVFbGVtZW50c0FmZmVj
dGVkQnlNZWRpYVF1ZXJpZXMoKQogewogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWlu
VGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLSAgICBjaGVja1ZpZXdwb3J0RGVwZW5kZW50
UGljdHVyZXMoKTsKLSAgICBjaGVja0FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlcygpOworCisg
ICAgYXV0byBpbWFnZXNDb3B5ID0gbV9keW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlczsK
KyAgICBmb3IgKGF1dG8mIGltYWdlIDogaW1hZ2VzQ29weSkKKyAgICAgICAgaW1hZ2UtPmV2YWx1
YXRlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbmNpZXMoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6
ZXZhbHVhdGVNZWRpYVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzKCkKQEAgLTM5NDgsMzAgKzM5NTAs
NiBAQCB2b2lkIERvY3VtZW50OjpldmFsdWF0ZU1lZGlhUXVlcmllc0FuZFJlcG9ydENoYW5nZXMo
KQogICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmV2YWx1YXRlQWxsKCk7CiB9CiAKLXZvaWQgRG9j
dW1lbnQ6OmNoZWNrVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlcygpCi17Ci0gICAgVmVjdG9yPEhU
TUxQaWN0dXJlRWxlbWVudCosIDE2PiBjaGFuZ2VkUGljdHVyZXM7Ci0gICAgSGFzaFNldDxIVE1M
UGljdHVyZUVsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1
cmVzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPjo6aXRlcmF0
b3IgaXQgPSBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgIGlmICgoKml0KS0+dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUo
KSkKLSAgICAgICAgICAgIGNoYW5nZWRQaWN0dXJlcy5hcHBlbmQoKml0KTsKLSAgICB9Ci0gICAg
Zm9yIChhdXRvKiBwaWN0dXJlIDogY2hhbmdlZFBpY3R1cmVzKQotICAgICAgICBwaWN0dXJlLT5z
b3VyY2VzQ2hhbmdlZCgpOwotfQotCi12b2lkIERvY3VtZW50OjpjaGVja0FwcGVhcmFuY2VEZXBl
bmRlbnRQaWN0dXJlcygpCi17Ci0gICAgVmVjdG9yPEhUTUxQaWN0dXJlRWxlbWVudCosIDE2PiBj
aGFuZ2VkUGljdHVyZXM7Ci0gICAgZm9yIChhdXRvKiBwaWN0dXJlIDogbV9hcHBlYXJhbmNlRGVw
ZW5kZW50UGljdHVyZXMpIHsKLSAgICAgICAgaWYgKHBpY3R1cmUtPmFwcGVhcmFuY2VDaGFuZ2VB
ZmZlY3RlZFBpY3R1cmUoKSkKLSAgICAgICAgICAgIGNoYW5nZWRQaWN0dXJlcy5hcHBlbmQocGlj
dHVyZSk7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvKiBwaWN0dXJlIDogY2hhbmdlZFBpY3R1cmVz
KQotICAgICAgICBwaWN0dXJlLT5zb3VyY2VzQ2hhbmdlZCgpOwotfQotCiB2b2lkIERvY3VtZW50
Ojp1cGRhdGVWaWV3cG9ydFVuaXRzT25SZXNpemUoKQogewogICAgIGlmICghaGFzU3R5bGVXaXRo
Vmlld3BvcnRVbml0cygpKQpAQCAtNzQxMCwyNCArNzM4OCwxNCBAQCB2b2lkIERvY3VtZW50Ojph
cHBseUNvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94KCkKICAgICAgICAgZW5mb3Jj
ZVNhbmRib3hGbGFncyhTYW5kYm94T3JpZ2luKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6YWRkVmll
d3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYgcGljdHVyZSkKLXsKLSAg
ICBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMuYWRkKCZwaWN0dXJlKTsKLX0KLQotdm9pZCBE
b2N1bWVudDo6cmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVu
dCYgcGljdHVyZSkKLXsKLSAgICBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMucmVtb3ZlKCZw
aWN0dXJlKTsKLX0KLQotdm9pZCBEb2N1bWVudDo6YWRkQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1
cmUoSFRNTFBpY3R1cmVFbGVtZW50JiBwaWN0dXJlKQordm9pZCBEb2N1bWVudDo6YWRkRHluYW1p
Y01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZShIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIG1fYXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmVzLmFkZCgmcGljdHVyZSk7CisgICAgbV9k
eW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlcy5hZGQoJmVsZW1lbnQpOwogfQogCi12b2lk
IERvY3VtZW50OjpyZW1vdmVBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZShIVE1MUGljdHVyZUVs
ZW1lbnQmIHBpY3R1cmUpCit2b2lkIERvY3VtZW50OjpyZW1vdmVEeW5hbWljTWVkaWFRdWVyeURl
cGVuZGVudEltYWdlKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9hcHBlYXJh
bmNlRGVwZW5kZW50UGljdHVyZXMucmVtb3ZlKCZwaWN0dXJlKTsKKyAgICBtX2R5bmFtaWNNZWRp
YVF1ZXJ5RGVwZW5kZW50SW1hZ2VzLnJlbW92ZSgmZWxlbWVudCk7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OnNjaGVkdWxlVGltZWRSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA0N2RkYjllMWM0Ny4uMmQ4YmRlOGM4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNDQs
NyArMTQ0LDYgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50
OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFz
cyBIVE1MUGljdHVyZUVsZW1lbnQ7CiBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudDsKIGNsYXNzIEhp
dFRlc3RMb2NhdGlvbjsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwpAQCAtMTM5NCwxMSArMTM5Myw4
IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEVuZm9yY2VDb250ZW50RGlzcG9zaXRpb25BdHRh
Y2htZW50U2FuZGJveCgpIGNvbnN0OwogICAgIHZvaWQgYXBwbHlDb250ZW50RGlzcG9zaXRpb25B
dHRhY2htZW50U2FuZGJveCgpOwogCi0gICAgdm9pZCBhZGRWaWV3cG9ydERlcGVuZGVudFBpY3R1
cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7Ci0gICAgdm9pZCByZW1vdmVWaWV3cG9ydERlcGVuZGVu
dFBpY3R1cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7Ci0KLSAgICB2b2lkIGFkZEFwcGVhcmFuY2VE
ZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYpOwotICAgIHZvaWQgcmVtb3ZlQXBw
ZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7CisgICAgdm9pZCBh
ZGREeW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlKEhUTUxJbWFnZUVsZW1lbnQmKTsKKyAg
ICB2b2lkIHJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoSFRNTEltYWdlRWxl
bWVudCYpOwogCiAgICAgdm9pZCBzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7CiAKQEAg
LTE2NTUsOSArMTY1MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlRE9NQ29va2ll
Q2FjaGUoKTsKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoKSBmaW5hbDsK
IAotICAgIHZvaWQgY2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVzKCk7Ci0gICAgdm9pZCBj
aGVja0FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlcygpOwotCiAgICAgYm9vbCBjYW5OYXZpZ2F0
ZUludGVybmFsKEZyYW1lJiB0YXJnZXRGcmFtZSk7CiAgICAgYm9vbCBpc05hdmlnYXRpb25CbG9j
a2VkQnlUaGlyZFBhcnR5SUZyYW1lUmVkaXJlY3RCbG9ja2luZyhGcmFtZSYgdGFyZ2V0RnJhbWUs
IGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpOwogCkBAIC0xODMzLDggKzE4MjYsNyBAQCBwcml2
YXRlOgogICAgIFVuaXF1ZVJlZjxGdWxsc2NyZWVuTWFuYWdlcj4gbV9mdWxsc2NyZWVuTWFuYWdl
cjsKICNlbmRpZgogCi0gICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPiBtX3ZpZXdwb3J0
RGVwZW5kZW50UGljdHVyZXM7Ci0gICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPiBtX2Fw
cGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKKyAgICBIYXNoU2V0PEhUTUxJbWFnZUVsZW1lbnQq
PiBtX2R5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2VzOwogCiAjaWYgRU5BQkxFKElOVEVS
U0VDVElPTl9PQlNFUlZFUikKICAgICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZl
cj4+IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKaW5kZXggNjAxZWQxNDAzZDEuLjliNzczOTRiNmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTk1LDYgKzk1LDggQEAgUmVmPEhUTUxJ
bWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2MKIAogSFRNTEltYWdlRWxlbWVudDo6fkhUTUxJbWFnZUVsZW1lbnQoKQog
eworICAgIGRvY3VtZW50KCkucmVtb3ZlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZSgq
dGhpcyk7CisKICAgICBpZiAobV9mb3JtKQogICAgICAgICBtX2Zvcm0tPnJlbW92ZUltZ0VsZW1l
bnQodGhpcyk7CiAgICAgc2V0UGljdHVyZUVsZW1lbnQobnVsbHB0cik7CkBAIC0xNjAsMTAgKzE2
Miw2IEBAIEltYWdlQ2FuZGlkYXRlIEhUTUxJbWFnZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9t
UGljdHVyZUVsZW1lbnQoKQogICAgIGlmICghcGljdHVyZSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIGRvY3VtZW50KCkucmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJl
KTsKLSAgICBkb2N1bWVudCgpLnJlbW92ZUFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpwaWN0
dXJlKTsKLQotICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtZWRpYVF1ZXJ5RHluYW1pY1Jl
c3VsdHM7CiAgICAgSW1hZ2VDYW5kaWRhdGUgY2FuZGlkYXRlOwogCiAgICAgZm9yIChSZWZQdHI8
Tm9kZT4gY2hpbGQgPSBwaWN0dXJlLT5maXJzdENoaWxkKCk7IGNoaWxkICYmIGNoaWxkICE9IHRo
aXM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTE4OSwzOCArMTg3LDUwIEBA
IEltYWdlQ2FuZGlkYXRlIEhUTUxJbWFnZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVy
ZUVsZW1lbnQoKQogICAgICAgICBhdXRvKiBxdWVyaWVzID0gc291cmNlLnBhcnNlZE1lZGlhQXR0
cmlidXRlKGRvY3VtZW50KCkpOwogICAgICAgICBMT0coTWVkaWFRdWVyaWVzLCAiSFRNTEltYWdl
RWxlbWVudCAlcCBiZXN0Rml0U291cmNlRnJvbVBpY3R1cmVFbGVtZW50IGV2YWx1YXRpbmcgbWVk
aWEgcXVlcmllcyIsIHRoaXMpOwogCi0gICAgICAgIGF1dG8gZXZhbHVhdGlvbiA9ICFxdWVyaWVz
IHx8IGV2YWx1YXRvci5ldmFsdWF0ZSgqcXVlcmllcywgJm1lZGlhUXVlcnlEeW5hbWljUmVzdWx0
cyk7CisgICAgICAgIGF1dG8gZXZhbHVhdGlvbiA9ICFxdWVyaWVzIHx8IGV2YWx1YXRvci5ldmFs
dWF0ZSgqcXVlcmllcywgJm1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKICAgICAgICAgaWYg
KCFldmFsdWF0aW9uKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYXV0byBzb3Vy
Y2VTaXplID0gU2l6ZXNBdHRyaWJ1dGVQYXJzZXIoc291cmNlLmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQoKSkubGVuZ3RoKCk7Cisg
ICAgICAgIFNpemVzQXR0cmlidXRlUGFyc2VyIHNpemVzUGFyc2VyKHNvdXJjZS5hdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKHNpemVzQXR0cikuc3RyaW5nKCksIGRvY3VtZW50KCksICZt
X21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IHNp
emVzUGFyc2VyLmxlbmd0aCgpOworCiAgICAgICAgIGNhbmRpZGF0ZSA9IGJlc3RGaXRTb3VyY2VG
b3JJbWFnZUF0dHJpYnV0ZXMoZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBudWxsQXRv
bSgpLCBzcmNzZXQsIHNvdXJjZVNpemUpOwogICAgICAgICBpZiAoIWNhbmRpZGF0ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBwaWN0dXJlLT5zZXRNZWRpYVF1
ZXJ5RHluYW1pY1Jlc3VsdHMoV1RGTW92ZShtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpKTsKKyAg
ICByZXR1cm4gY2FuZGlkYXRlOworfQorCit2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmV2YWx1YXRl
RHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbmNpZXMoKQoreworICAgIGF1dG8gZG9jdW1lbnRFbGVt
ZW50ID0gbWFrZVJlZlB0cihkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICBNZWRp
YVF1ZXJ5RXZhbHVhdG9yIGV2YWx1YXRvciB7IGRvY3VtZW50KCkucHJpbnRpbmcoKSA/ICJwcmlu
dCIgOiAic2NyZWVuIiwgZG9jdW1lbnQoKSwgZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVt
ZW50LT5jb21wdXRlZFN0eWxlKCkgOiBudWxscHRyIH07CiAKLSAgICAvLyBGSVhNRTogVGhpcyBp
cyBub3QgaGFuZGxpbmcgYWNjZXNzaWJpbGl0eSBzZXR0aW5ncyBkZXBlbmRlbnQgbWVkaWEgcXVl
cmllcy4KLSAgICBpZiAocGljdHVyZS0+aGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkpCi0g
ICAgICAgIGRvY3VtZW50KCkuYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJlKTsK
LSAgICBpZiAocGljdHVyZS0+aGFzQXBwZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSkKLSAgICAg
ICAgZG9jdW1lbnQoKS5hZGRBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZSgqcGljdHVyZSk7Cisg
ICAgaWYgKCFldmFsdWF0b3IuZXZhbHVhdGVGb3JDaGFuZ2VzKG1fbWVkaWFRdWVyeUR5bmFtaWNS
ZXN1bHRzKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAgICBz
ZWxlY3RJbWFnZVNvdXJjZSgpOwogfQogCiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNlbGVjdElt
YWdlU291cmNlKCkKIHsKKyAgICBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyA9IHsgfTsKKyAg
ICBkb2N1bWVudCgpLnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoKnRoaXMp
OworCiAgICAgLy8gRmlyc3QgbG9vayBmb3IgdGhlIGJlc3QgZml0IHNvdXJjZSBmcm9tIG91ciA8
cGljdHVyZT4gcGFyZW50IGlmIHdlIGhhdmUgb25lLgogICAgIEltYWdlQ2FuZGlkYXRlIGNhbmRp
ZGF0ZSA9IGJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAoY2FuZGlk
YXRlLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgPHBpY3R1cmU+
IG9yIGRpZG4ndCBmaW5kIGEgc291cmNlLCB0aGVuIHdlIHVzZSBvdXIgb3duIGF0dHJpYnV0ZXMu
Ci0gICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IFNpemVzQXR0cmlidXRlUGFyc2VyKGF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQoKSku
bGVuZ3RoKCk7CisgICAgICAgIFNpemVzQXR0cmlidXRlUGFyc2VyIHNpemVzUGFyc2VyKGF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQo
KSwgJm1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICAgICAgYXV0byBzb3VyY2VTaXpl
ID0gc2l6ZXNQYXJzZXIubGVuZ3RoKCk7CiAgICAgICAgIGNhbmRpZGF0ZSA9IGJlc3RGaXRTb3Vy
Y2VGb3JJbWFnZUF0dHJpYnV0ZXMoZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHNyY0F0dHIpLCBhdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHNyY3NldEF0dHIpLCBzb3VyY2VTaXplKTsKICAgICB9CiAgICAgc2V0QmVz
dEZpdFVSTEFuZERQUkZyb21JbWFnZUNhbmRpZGF0ZShjYW5kaWRhdGUpOwogICAgIG1faW1hZ2VM
b2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKCk7CisKKyAgICBp
ZiAoIW1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLmlzRW1wdHkoKSkKKyAgICAgICAgZG9jdW1l
bnQoKS5hZGREeW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlKCp0aGlzKTsKIH0KIAogdm9p
ZCBIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTY3MSw2ICs2ODEsOCBAQCB2b2lkIEhU
TUxJbWFnZUVsZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxV
Ukw+JiB1cmxzKSBjb25zdAogCiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0Rv
Y3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KQogewor
ICAgIG9sZERvY3VtZW50LnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoKnRo
aXMpOworCiAgICAgbV9pbWFnZUxvYWRlci0+ZWxlbWVudERpZE1vdmVUb05ld0RvY3VtZW50KCk7
CiAgICAgSFRNTEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50LCBuZXdE
b2N1bWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDlm
MDUxZDE2YTEzLi4yOGU4MTViYmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEz
MSw2ICsxMzIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyOyB9CiAgICAgdm9p
ZCBzZXRJc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyKCkgeyBtX2lzRHJvcHBlZEltYWdlUGxhY2Vo
b2xkZXIgPSB0cnVlOyB9CiAKKyAgICB2b2lkIGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcnlEZXBl
bmRlbmNpZXMoKTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxJbWFnZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50KiA9IG51bGxwdHIsIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyID0gZmFsc2UpOwogCkBAIC0xOTgsNiArMjAxLDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxFZGl0YWJsZUltYWdlUmVmZXJlbmNlPiBtX2VkaXRhYmxlSW1hZ2U7CiAg
ICAgV2Vha1B0cjxIVE1MUGljdHVyZUVsZW1lbnQ+IG1fcGljdHVyZUVsZW1lbnQ7CisgICAgTWVk
aWFRdWVyeUR5bmFtaWNSZXN1bHRzIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzOwogCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBTdHJpbmcgbV9wZW5kaW5nQ2xvbmVkQXR0
YWNobWVudElEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCmlu
ZGV4IDM2ODRjZmZhYzAwLi4xODBiNWI0OTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmNwcApAQCAtNDQsMTQgKzQ0LDEwIEBAIEhUTUxQaWN0dXJlRWxlbWVu
dDo6SFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkCiAKIEhUTUxQaWN0dXJlRWxlbWVudDo6fkhUTUxQaWN0dXJlRWxlbWVudCgpCiB7Ci0g
ICAgZG9jdW1lbnQoKS5yZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUoKnRoaXMpOwotICAg
IGRvY3VtZW50KCkucmVtb3ZlQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoKnRoaXMpOwogfQog
CiB2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpCiB7Ci0gICAgb2xkRG9jdW1lbnQu
cmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCp0aGlzKTsKLSAgICBvbGREb2N1bWVudC5y
ZW1vdmVBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZSgqdGhpcyk7CiAgICAgSFRNTEVsZW1lbnQ6
OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgc291
cmNlc0NoYW5nZWQoKTsKIH0KQEAgLTY3LDMwICs2Myw2IEBAIHZvaWQgSFRNTFBpY3R1cmVFbGVt
ZW50Ojpzb3VyY2VzQ2hhbmdlZCgpCiAgICAgICAgIGVsZW1lbnQuc2VsZWN0SW1hZ2VTb3VyY2Uo
KTsKIH0KIAotYm9vbCBIVE1MUGljdHVyZUVsZW1lbnQ6OnZpZXdwb3J0Q2hhbmdlQWZmZWN0ZWRQ
aWN0dXJlKCkgY29uc3QKLXsKLSAgICBhdXRvIGRvY3VtZW50RWxlbWVudCA9IG1ha2VSZWZQdHIo
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7Ci0gICAgTWVkaWFRdWVyeUV2YWx1YXRvciBl
dmFsdWF0b3IgeyBkb2N1bWVudCgpLnByaW50aW5nKCkgPyAicHJpbnQiIDogInNjcmVlbiIsIGRv
Y3VtZW50KCksIGRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50RWxlbWVudC0+Y29tcHV0ZWRTdHls
ZSgpIDogbnVsbHB0ciB9OwotICAgIGZvciAoYXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHlu
YW1pY1Jlc3VsdHMudmlld3BvcnQpIHsKLSAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxQ
aWN0dXJlRWxlbWVudCAlcCB2aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSBldmFsdWF0aW5n
IG1lZGlhIHF1ZXJpZXMiLCB0aGlzKTsKLSAgICAgICAgaWYgKGV2YWx1YXRvci5ldmFsdWF0ZShy
ZXN1bHQuZXhwcmVzc2lvbikgIT0gcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSFRNTFBpY3R1cmVFbGVt
ZW50OjphcHBlYXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3QKLXsKLSAgICBhdXRv
IGRvY3VtZW50RWxlbWVudCA9IG1ha2VSZWZQdHIoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQo
KSk7Ci0gICAgTWVkaWFRdWVyeUV2YWx1YXRvciBldmFsdWF0b3IgeyBkb2N1bWVudCgpLnByaW50
aW5nKCkgPyAicHJpbnQiIDogInNjcmVlbiIsIGRvY3VtZW50KCksIGRvY3VtZW50RWxlbWVudCA/
IGRvY3VtZW50RWxlbWVudC0+Y29tcHV0ZWRTdHlsZSgpIDogbnVsbHB0ciB9OwotICAgIGZvciAo
YXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuYXBwZWFyYW5jZSkgewot
ICAgICAgICBMT0coTWVkaWFRdWVyaWVzLCAiSFRNTFBpY3R1cmVFbGVtZW50ICVwIGFwcGVhcmFu
Y2VDaGFuZ2VBZmZlY3RlZFBpY3R1cmUgZXZhbHVhdGluZyBtZWRpYSBxdWVyaWVzIiwgdGhpcyk7
Ci0gICAgICAgIGlmIChldmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJl
c3VsdC5yZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogYm9vbCBIVE1MUGljdHVyZUVs
ZW1lbnQ6OmlzU3lzdGVtUHJldmlld0ltYWdlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQaWN0dXJlRWxlbWVudC5oCmluZGV4IDhmZmZmNDU2OTE1Li5kYzhlMWExODMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCkBAIC0yNiw3ICsyNiw2IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiTWVk
aWFRdWVyeUV2YWx1YXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDE1ICsz
Nyw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc291cmNlc0NoYW5nZWQoKTsKIAotCi0gICAgdm9p
ZCBzZXRNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMoTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzJiYg
cmVzdWx0cykgeyBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyA9IHJlc3VsdHM7IH0KLQotICAg
IGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRp
YVF1ZXJ5RHluYW1pY1Jlc3VsdHMudmlld3BvcnQuc2l6ZSgpOyB9Ci0gICAgYm9vbCBoYXNBcHBl
YXJhbmNlRGVwZW5kZW50UmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFRdWVyeUR5bmFt
aWNSZXN1bHRzLmFwcGVhcmFuY2Uuc2l6ZSgpOyB9Ci0KLSAgICBib29sIHZpZXdwb3J0Q2hhbmdl
QWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7Ci0gICAgYm9vbCBhcHBlYXJhbmNlQ2hhbmdlQWZmZWN0
ZWRQaWN0dXJlKCkgY29uc3Q7Ci0KICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1N5c3RlbVByZXZpZXdJbWFnZSgpIGNvbnN0OwogI2VuZGlmCkBAIC01
NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChE
b2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7Ci0KLSAg
ICBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAppbmRleCAzZmE2NGJkODM3OS4uNDRhMWU3YTEzNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzgwLDYgKzM4MCwxNCBAQCB2b2lkIFJl
bmRlckltYWdlOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgbmV3SW1hZ2UpCiAgICAg
ICAgIHBhZ2UoKS5kaWRGaW5pc2hMb2FkaW5nSW1hZ2VGb3JFbGVtZW50KGRvd25jYXN0PEhUTUxJ
bWFnZUVsZW1lbnQ+KCplbGVtZW50KCkpKTsKIH0KIAordm9pZCBSZW5kZXJJbWFnZTo6c2V0SW1h
Z2VEZXZpY2VQaXhlbFJhdGlvKGZsb2F0IGZhY3RvcikgeworICAgIGlmIChtX2ltYWdlRGV2aWNl
UGl4ZWxSYXRpbyA9PSBmYWN0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW1hZ2VEZXZp
Y2VQaXhlbFJhdGlvID0gZmFjdG9yOworICAgIGludHJpbnNpY1NpemVDaGFuZ2VkKCk7Cit9CisK
IGJvb2wgUmVuZGVySW1hZ2U6OmlzU2hvd2luZ01pc3NpbmdPckltYWdlRXJyb3IoKSBjb25zdAog
ewogICAgIHJldHVybiAhaW1hZ2VSZXNvdXJjZSgpLmNhY2hlZEltYWdlKCkgfHwgaW1hZ2VSZXNv
dXJjZSgpLmVycm9yT2NjdXJyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmgKaW5kZXggZWNkNWZjNzMyMWUuLmIyNDAyYzM0N2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBhbHRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9hbHRUZXh0OyB9CiAgICAgdm9pZCBzZXRB
bHRUZXh0KGNvbnN0IFN0cmluZyYgYWx0VGV4dCkgeyBtX2FsdFRleHQgPSBhbHRUZXh0OyB9CiAK
LSAgICBpbmxpbmUgdm9pZCBzZXRJbWFnZURldmljZVBpeGVsUmF0aW8oZmxvYXQgZmFjdG9yKSB7
IG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvID0gZmFjdG9yOyB9CisgICAgdm9pZCBzZXRJbWFnZURl
dmljZVBpeGVsUmF0aW8oZmxvYXQgZmFjdG9yKTsKICAgICBmbG9hdCBpbWFnZURldmljZVBpeGVs
UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2ltYWdlRGV2aWNlUGl4ZWxSYXRpbzsgfQogCiAgICAg
dm9pZCBzZXRIYXNTaGFkb3dDb250cm9scyhib29sIGhhc1NoYWRvd0NvbnRyb2xzKSB7IG1faGFz
U2hhZG93Q29udHJvbHMgPSBoYXNTaGFkb3dDb250cm9sczsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384161</attachid>
            <date>2019-11-22 09:41:08 -0800</date>
            <delta_ts>2019-11-23 01:36:42 -0800</delta_ts>
            <desc>patch</desc>
            <filename>img-sizes-mq-2.patch</filename>
            <type>text/plain</type>
            <size>28026</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjNmNDlhY2IwMy4uNTNlYzM5ODMyMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxOS0xMS0yMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
TWVkaWEgcXVlcmllcyBpbiBpbWcgc2l6ZXMgYXR0cmlidXRlIGRvbid0IGV2YWx1YXRlIGR5bmFt
aWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ1MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLmh0bWw6IEFkZGVkLgorCisg
ICAgICAgIENvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L3Np
emVzL3NpemVzLWR5bmFtaWMtKgorICAgICAgICBiZWNhdXNlIHdlIGRvbid0IHN1cHBvcnQgcmVm
dGVzdC13YWl0ICh3ZWJraXQub3JnL2IvMTg2MDQ1KS4KKwogMjAxOS0xMS0yMSAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MjM0NDQwKTogW01hYyBXSzIgXSBMYXlvdXQgVGVzdCBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZy
b20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9t
LXdyb25nLWZyYW1lLmh0bWwgaXMgZmxha3kgdGltZW91dCAoMTk0MTY0KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyNzljODIxMGM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPlRl
c3QgcmVmZXJlbmNlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENv
Ym9zIMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8aWZyYW1lIHdp
ZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1sPjxpbWcgYWx0PSJG
QUlMIiBzcmNzZXQ9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2Vz
L2dyZWVuLTI1NngyNTYucG5nIDEwMHciIHN0eWxlPSJtYXgtd2lkdGg6IDEwMCUiIHNpemVzPSIx
MHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6
ZXMtZHluYW1pYy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFt
aWMtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzNGRm
OGI3NTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMt
ZHluYW1pYy0wMDEuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPHRpdGxlPkltYWdlIGludHJpbnNpYyBzaXplIHNwZWNp
ZmllZCB2aWEgc2l6ZXMgYXR0cmlidXRlIHJlYWN0cyBwcm9wZXJseSB0byBtZWRpYSBjaGFuZ2Vz
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6
IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8bGluayByZWw9Im1hdGNoIiBocmVm
PSJzaXplcy1keW5hbWljLTAwMS1yZWYuaHRtbCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3NpemVzLWF0dHJpYnV0ZXMiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTQ5MzU3Ij4KKzxzY3JpcHQ+CisvLyBVc2UgV1BUIHZlcnNpb24gYWZ0ZXIgcmVmdGVzdC13
YWl0IGlzIGltcGxlbWVudGVkLgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBmcmFtZUxvYWRlZChmcmFtZSkgeworICBm
cmFtZS53aWR0aCA9ICI1MDAiOworICBsZXQgaW1nID0gZnJhbWUuY29udGVudERvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2ltZycpOworCisgIC8vIFRyaWdnZXIgdGhlIHZpZXdwb3J0IHJlc2l6ZSwg
d2hpY2ggd2lsbCB0cmlnZ2VyIHRoZSBpbWFnZSBsb2FkIHRhc2suCisgIGltZy5vZmZzZXRXaWR0
aDsKKworICAvLyBXYWl0IGZvciB0aGUgaW1hZ2UgbG9hZCB0YXNrIHRvIHJ1bi4KKyAgc2V0VGlt
ZW91dCgoKSA9PiB7CisgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1
dGUoImNsYXNzIik7CisgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBvbmxv
YWQ9ImZyYW1lTG9hZGVkKHRoaXMpIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjUwMCIgc3JjZG9jPSc8
IWRvY3R5cGUgaHRtbD48aW1nIHNyY3NldD0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbWFnZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1heC13aWR0aDog
MTAwJSIgc2l6ZXM9IihtaW4td2lkdGg6IDQwMHB4KSAxMHB4LCAyMHB4Ij4nPjwvaWZyYW1lPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDItZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyNzlj
ODIxMGM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMt
ZHluYW1pYy0wMDItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhZG9jdHlwZSBodG1s
PgorPHRpdGxlPlRlc3QgcmVmZXJlbmNlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+
Cis8aWZyYW1lIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1s
PjxpbWcgYWx0PSJGQUlMIiBzcmNzZXQ9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW1hZ2VzL2dyZWVuLTI1NngyNTYucG5nIDEwMHciIHN0eWxlPSJtYXgtd2lkdGg6IDEw
MCUiIHNpemVzPSIxMHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3NpemVzLWR5bmFtaWMtMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjEwN2QwYTQzYWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPHRpdGxlPkltYWdlIGludHJpbnNp
YyBzaXplIHNwZWNpZmllZCB2aWEgc2l6ZXMgYXR0cmlidXRlIHJlYWN0cyBwcm9wZXJseSB0byBt
ZWRpYSBjaGFuZ2VzIGluIFNoYWRvdyBET008L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9Im1haWx0bzplbWlsaW9AY3Jpc2FsLmlv
Ij4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InNpemVzLWR5bmFtaWMtMDAxLXJlZi5odG1sIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jc2l6
ZXMtYXR0cmlidXRlcyI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vYnVnemlsbGEu
bW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExNDkzNTciPgorPHNjcmlwdD4KKy8vIFVzZSBX
UFQgdmVyc2lvbiBhZnRlciByZWZ0ZXN0LXdhaXQgaXMgaW1wbGVtZW50ZWQuCitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9u
IGZyYW1lTG9hZGVkKGZyYW1lKSB7CisgIGxldCBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQ7
CisgIGxldCBzaGFkb3cgPSBkb2MuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKS5hdHRhY2hTaGFkb3co
eyBtb2RlOiAib3BlbiIgfSk7CisKKyAgbGV0IGltZyA9IGRvYy5jcmVhdGVFbGVtZW50KCJpbWci
KTsKKyAgaW1nLnNyY3NldCA9ICIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ltYWdlcy9ncmVlbi0yNTZ4MjU2LnBuZyAxMDB3IjsKKyAgaW1nLnN0eWxlLm1heFdpZHRoID0g
IjEwMCUiOworICBpbWcuc2V0QXR0cmlidXRlKCJzaXplcyIsICIobWluLXdpZHRoOiA0MDBweCkg
MTBweCwgMjBweCIpOworCisgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpbWcub2Zm
c2V0V2lkdGg7IC8vIEZsdXNoIGxheW91dC4KKworICAgIGZyYW1lLndpZHRoID0gIjUwMCI7CisK
KyAgICAvLyBUcmlnZ2VyIHRoZSB2aWV3cG9ydCByZXNpemUsIHdoaWNoIHdpbGwgdHJpZ2dlciB0
aGUgaW1hZ2UgbG9hZCB0YXNrLgorICAgIGltZy5vZmZzZXRXaWR0aDsKKworICAvLyBXYWl0IGZv
ciB0aGUgaW1hZ2UgbG9hZCB0YXNrIHRvIHJ1bi4KKyAgc2V0VGltZW91dCgoKSA9PiB7CisgICAg
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik7CisgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICB9LCAwKTsKKyAgfTsKKworICBzaGFkb3cuYXBwZW5kQ2hpbGQoaW1nKTsKK30KKzwvc2Ny
aXB0PgorPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKHRoaXMpIiB3aWR0aD0iMjAwIiBoZWln
aHQ9IjUwMCIgc3JjZG9jPSc8IWRvY3R5cGUgaHRtbD48ZGl2IGlkPSJob3N0Ij48L2Rpdj4nPjwv
aWZyYW1lPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3ZDQyNDQ4M2M1Li41YWY1ZjdjNTQ0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY5IEBACisyMDE5LTExLTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KKworICAgICAgICBNZWRpYSBxdWVyaWVzIGluIGltZyBzaXplcyBhdHRyaWJ1dGUg
ZG9uJ3QgZXZhbHVhdGUgZHluYW1pY2FsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi5odG1sCisK
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZUZvckNoYW5nZXMgY29uc3QpOgorCisgICAg
ICAgIEFkZCBhIGhlbHBlciBmdW5jdGlvbiBmb3IgZXZhbHVhdGluZyBkeW5hbWljIHJlc3VsdHMg
Zm9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzOjppc0VtcHR5IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpTaXplc0F0dHJpYnV0ZVBhcnNlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRj
aGVzKToKKworICAgICAgICBHYXRoZXIgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzCisKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVFbGVtZW50c0Fm
ZmVjdGVkQnlNZWRpYVF1ZXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZER5
bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UpOgorCisgICAgICAgIFJl
cGxhY2Ugdmlld3BvcnQvYXBwZWFyYW5jZSBzcGVjaWZpYyBtZWNoYW5pc20gd2l0aCBhIHVuaWZp
ZWQgb25lICh0aGV5IHdlcmUgYWxsIGludm9rZWQgdG9nZXRoZXIgYW55d2F5KS4KKyAgICAgICAg
TWFrZSBpdCBhYm91dCBIVE1MSW1hZ2VFbGVtZW50IHJhdGhlciB0aGFuIEhUTUxQaWN0dXJlRWxl
bWVudCBzaW5jZSB0aGF0IGlzIHRoZSBvbmx5IGNsaWVudCBpbiB0aGlzIHBhdGNoLgorCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjaGVja0FwcGVhcmFuY2VEZXBl
bmRlbnRQaWN0dXJlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRk
Vmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpyZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVBcHBlYXJhbmNlRGVwZW5k
ZW50UGljdHVyZSk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6On5IVE1MSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyeURlcGVuZGVu
Y2llcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZWxlY3RJbWFnZVNv
dXJjZSk6CisKKyAgICAgICAgR2F0aGVyIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBmcm9tIGFs
bCBwYXRocy4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZGlkTW92ZVRv
TmV3RG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
aWN0dXJlRWxlbWVudDo6fkhUTUxQaWN0dXJlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGljdHVyZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQaWN0dXJlRWxlbWVudDo6dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVtZW50OjphcHBl
YXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBN
b3ZlIHRoZSBtZWRpYSBxdWVyeSBkZXBlbmRlbmN5IGNvZGUgdG8gSFRNTEltYWdlRWxlbWVudCBz
aW5jZSB0aGF0cyB3aGVyZSBpdCBpcyBhY3R1YWxseSBuZWVkZWQuCisKKyAgICAgICAgKiBodG1s
L0hUTUxQaWN0dXJlRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6c2V0SW1hZ2VEZXZpY2VQaXhlbFJh
dGlvKToKKworICAgICAgICBVcGRhdGUgcmVuZGVyaW5nIGFsc28gaWYgb25seSB0aGUgcGl4ZWwg
cmF0aW8gY2hhbmdlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnNldEltYWdlRGV2aWNlUGl4ZWxSYXRpbyk6IERl
bGV0ZWQuCisKIDIwMTktMTEtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gV2ViIHByb2Nlc3MgY3Jhc2hlcyB3aGVuIGF0dGVtcHRpbmcg
dG8gcmVxdWVzdCBkb2N1bWVudCBjb250ZXh0IGluIGEgdGV4dGFyZWEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCAwNTgxY2FhZjMyNC4uMDJjOGNjNWEw
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTE5
Miw2ICsxOTIsMTkgQEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBN
ZWRpYVF1ZXJ5U2V0JiBxdWVyeVNldCwgTWVkaWFRdWVyeUR5bmEKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlRm9yQ2hhbmdlcyhjb25z
dCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmIGR5bmFtaWNSZXN1bHRzKSBjb25zdAoreworICAg
IGF1dG8gaGFzQ2hhbmdlcyA9IFsmXShhdXRvJiBkeW5hbWljUmVzdWx0c1ZlY3RvcikgeworICAg
ICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSZXN1bHQgOiBkeW5hbWljUmVzdWx0c1ZlY3Rvcikgewor
ICAgICAgICAgICAgaWYgKGV2YWx1YXRlKGR5bmFtaWNSZXN1bHQuZXhwcmVzc2lvbikgIT0gZHlu
YW1pY1Jlc3VsdC5yZXN1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAgICByZXR1cm4gaGFzQ2hhbmdl
cyhkeW5hbWljUmVzdWx0cy52aWV3cG9ydCkgfHwgaGFzQ2hhbmdlcyhkeW5hbWljUmVzdWx0cy5h
cHBlYXJhbmNlKSB8fCBoYXNDaGFuZ2VzKGR5bmFtaWNSZXN1bHRzLmFjY2Vzc2liaWxpdHlTZXR0
aW5ncyk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGJvb2wgY29tcGFy
ZVZhbHVlKFQgYSwgVSBiLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgc3dpdGNoIChv
cCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKaW5kZXggYjkwODRj
NmM0ZjIuLjNhZDk5OGNiYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmgKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyB7
CiAgICAgICAgIGFwcGVhcmFuY2UuYXBwZW5kVmVjdG9yKG90aGVyLmFwcGVhcmFuY2UpOwogICAg
ICAgICBhY2Nlc3NpYmlsaXR5U2V0dGluZ3MuYXBwZW5kVmVjdG9yKG90aGVyLmFjY2Vzc2liaWxp
dHlTZXR0aW5ncyk7CiAgICAgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIHZp
ZXdwb3J0LmlzRW1wdHkoKSAmJiBhcHBlYXJhbmNlLmlzRW1wdHkoKSAmJiBhY2Nlc3NpYmlsaXR5
U2V0dGluZ3MuaXNFbXB0eSgpOyB9CiB9OwogCiAvLyBTb21lIG9mIHRoZSBjb25zdHJ1Y3RvcnMg
YXJlIHVzZWQgZm9yIGNhc2VzIHdoZXJlIHRoZSBkZXZpY2UgY2hhcmFjdGVyaXN0aWNzIGFyZSBu
b3Qga25vd24uCkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEV2YWx1YXRlcyBt
ZWRpYSBxdWVyeSBzdWJleHByZXNzaW9uLCBpZSAiYW5kIChtZWRpYS1mZWF0dXJlOiB2YWx1ZSki
IHBhcnQuCiAgICAgYm9vbCBldmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5RXhwcmVzc2lvbiYpIGNv
bnN0OworICAgIGJvb2wgZXZhbHVhdGVGb3JDaGFuZ2VzKGNvbnN0IE1lZGlhUXVlcnlEeW5hbWlj
UmVzdWx0cyYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBldmFsdWF0ZShjb25z
dCBNZWRpYVF1ZXJ5U2V0JiwgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKiA9IG51bGxwdHIpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQ
YXJzZXIuY3BwCmluZGV4IDIyNjFiN2M5MmNlLi40ODk0MjQwYzI1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKQEAgLTY5LDEw
ICs2OSw5IEBAIGZsb2F0IFNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3RoKGRvdWJs
ZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdHlwZSwgY29uc3QKICAgICByZXR1cm4gY2xhbXBUbzxmbG9h
dD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnZlcnNp
b25EYXRhLCB0eXBlLCB2YWx1ZSkpOwogfQogICAgIAotU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OlNp
emVzQXR0cmlidXRlUGFyc2VyKGNvbnN0IFN0cmluZyYgYXR0cmlidXRlLCBjb25zdCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitTaXplc0F0dHJpYnV0ZVBhcnNlcjo6U2l6ZXNBdHRyaWJ1dGVQYXJzZXIo
Y29uc3QgU3RyaW5nJiBhdHRyaWJ1dGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFR
dWVyeUR5bmFtaWNSZXN1bHRzKiBtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpCiAgICAgOiBtX2Rv
Y3VtZW50KGRvY3VtZW50KQotICAgICwgbV9sZW5ndGgoMCkKLSAgICAsIG1fbGVuZ3RoV2FzU2V0
KGZhbHNlKQorICAgICwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMobWVkaWFRdWVyeUR5bmFt
aWNSZXN1bHRzKQogewogICAgIG1faXNWYWxpZCA9IHBhcnNlKENTU1Rva2VuaXplcihhdHRyaWJ1
dGUpLnRva2VuUmFuZ2UoKSk7CiB9CkBAIC0xMTUsNyArMTE0LDcgQEAgYm9vbCBTaXplc0F0dHJp
YnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKGNvbnN0IE1lZGlhUXVlcnlTZXQmIG1l
ZGlhQ29uZGkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
YXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gTWVkaWFRdWVyeUV2
YWx1YXRvciB7ICJzY3JlZW4iLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNv
bmRpdGlvbik7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3IgeyAic2NyZWVuIiwgbV9k
b2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24sIG1fbWVkaWFRdWVyeUR5
bmFtaWNSZXN1bHRzKTsKIH0KIAogYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6cGFyc2UoQ1NT
UGFyc2VyVG9rZW5SYW5nZSByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
U2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaAppbmRleCAxNDkzMGQyMzUzMS4uMjdkY2I2M2NmMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmgK
QEAgLTM4LDEwICszOCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NWYWx1ZTsK
IGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFRdWVyeVNldDsKK3N0cnVjdCBNZWRpYVF1ZXJ5
RHluYW1pY1Jlc3VsdHM7CiAgICAgCiBjbGFzcyBTaXplc0F0dHJpYnV0ZVBhcnNlciB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXIoY29uc3QgU3RyaW5nJiwgY29u
c3QgRG9jdW1lbnQmKTsKKyAgICBTaXplc0F0dHJpYnV0ZVBhcnNlcihjb25zdCBTdHJpbmcmLCBj
b25zdCBEb2N1bWVudCYsIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyogPSBudWxscHRyKTsKIAog
ICAgIGZsb2F0IGxlbmd0aCgpOwogCkBAIC01Nyw5ICs1OCwxMCBAQCBwcml2YXRlOgogCiAgICAg
Y29uc3QgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1f
bWVkaWFDb25kaXRpb247Ci0gICAgZmxvYXQgbV9sZW5ndGg7Ci0gICAgYm9vbCBtX2xlbmd0aFdh
c1NldDsKLSAgICBib29sIG1faXNWYWxpZDsKKyAgICBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMq
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIHsgbnVsbHB0ciB9OworICAgIGZsb2F0IG1fbGVu
Z3RoIHsgMCB9OworICAgIGJvb2wgbV9sZW5ndGhXYXNTZXQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGM5NjhlNWQ5OGM5Li4zNjExNWRlNGVhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0zOTM2LDggKzM5MzYsMTAgQEAgU3R5bGVTaGVldExpc3QmIERv
Y3VtZW50OjpzdHlsZVNoZWV0cygpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVFbGVtZW50c0FmZmVj
dGVkQnlNZWRpYVF1ZXJpZXMoKQogewogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWlu
VGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLSAgICBjaGVja1ZpZXdwb3J0RGVwZW5kZW50
UGljdHVyZXMoKTsKLSAgICBjaGVja0FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlcygpOworCisg
ICAgYXV0byBpbWFnZXNDb3B5ID0gbV9keW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlczsK
KyAgICBmb3IgKGF1dG8mIGltYWdlIDogaW1hZ2VzQ29weSkKKyAgICAgICAgaW1hZ2UtPmV2YWx1
YXRlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbmNpZXMoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6
ZXZhbHVhdGVNZWRpYVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzKCkKQEAgLTM5NDgsMzAgKzM5NTAs
NiBAQCB2b2lkIERvY3VtZW50OjpldmFsdWF0ZU1lZGlhUXVlcmllc0FuZFJlcG9ydENoYW5nZXMo
KQogICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmV2YWx1YXRlQWxsKCk7CiB9CiAKLXZvaWQgRG9j
dW1lbnQ6OmNoZWNrVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlcygpCi17Ci0gICAgVmVjdG9yPEhU
TUxQaWN0dXJlRWxlbWVudCosIDE2PiBjaGFuZ2VkUGljdHVyZXM7Ci0gICAgSGFzaFNldDxIVE1M
UGljdHVyZUVsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1
cmVzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPjo6aXRlcmF0
b3IgaXQgPSBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgIGlmICgoKml0KS0+dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUo
KSkKLSAgICAgICAgICAgIGNoYW5nZWRQaWN0dXJlcy5hcHBlbmQoKml0KTsKLSAgICB9Ci0gICAg
Zm9yIChhdXRvKiBwaWN0dXJlIDogY2hhbmdlZFBpY3R1cmVzKQotICAgICAgICBwaWN0dXJlLT5z
b3VyY2VzQ2hhbmdlZCgpOwotfQotCi12b2lkIERvY3VtZW50OjpjaGVja0FwcGVhcmFuY2VEZXBl
bmRlbnRQaWN0dXJlcygpCi17Ci0gICAgVmVjdG9yPEhUTUxQaWN0dXJlRWxlbWVudCosIDE2PiBj
aGFuZ2VkUGljdHVyZXM7Ci0gICAgZm9yIChhdXRvKiBwaWN0dXJlIDogbV9hcHBlYXJhbmNlRGVw
ZW5kZW50UGljdHVyZXMpIHsKLSAgICAgICAgaWYgKHBpY3R1cmUtPmFwcGVhcmFuY2VDaGFuZ2VB
ZmZlY3RlZFBpY3R1cmUoKSkKLSAgICAgICAgICAgIGNoYW5nZWRQaWN0dXJlcy5hcHBlbmQocGlj
dHVyZSk7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvKiBwaWN0dXJlIDogY2hhbmdlZFBpY3R1cmVz
KQotICAgICAgICBwaWN0dXJlLT5zb3VyY2VzQ2hhbmdlZCgpOwotfQotCiB2b2lkIERvY3VtZW50
Ojp1cGRhdGVWaWV3cG9ydFVuaXRzT25SZXNpemUoKQogewogICAgIGlmICghaGFzU3R5bGVXaXRo
Vmlld3BvcnRVbml0cygpKQpAQCAtNzQxMCwyNCArNzM4OCwxNCBAQCB2b2lkIERvY3VtZW50Ojph
cHBseUNvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94KCkKICAgICAgICAgZW5mb3Jj
ZVNhbmRib3hGbGFncyhTYW5kYm94T3JpZ2luKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6YWRkVmll
d3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYgcGljdHVyZSkKLXsKLSAg
ICBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMuYWRkKCZwaWN0dXJlKTsKLX0KLQotdm9pZCBE
b2N1bWVudDo6cmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVu
dCYgcGljdHVyZSkKLXsKLSAgICBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMucmVtb3ZlKCZw
aWN0dXJlKTsKLX0KLQotdm9pZCBEb2N1bWVudDo6YWRkQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1
cmUoSFRNTFBpY3R1cmVFbGVtZW50JiBwaWN0dXJlKQordm9pZCBEb2N1bWVudDo6YWRkRHluYW1p
Y01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZShIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIG1fYXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmVzLmFkZCgmcGljdHVyZSk7CisgICAgbV9k
eW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlcy5hZGQoJmVsZW1lbnQpOwogfQogCi12b2lk
IERvY3VtZW50OjpyZW1vdmVBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZShIVE1MUGljdHVyZUVs
ZW1lbnQmIHBpY3R1cmUpCit2b2lkIERvY3VtZW50OjpyZW1vdmVEeW5hbWljTWVkaWFRdWVyeURl
cGVuZGVudEltYWdlKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9hcHBlYXJh
bmNlRGVwZW5kZW50UGljdHVyZXMucmVtb3ZlKCZwaWN0dXJlKTsKKyAgICBtX2R5bmFtaWNNZWRp
YVF1ZXJ5RGVwZW5kZW50SW1hZ2VzLnJlbW92ZSgmZWxlbWVudCk7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OnNjaGVkdWxlVGltZWRSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA0N2RkYjllMWM0Ny4uMmQ4YmRlOGM4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNDQs
NyArMTQ0LDYgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50
OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFz
cyBIVE1MUGljdHVyZUVsZW1lbnQ7CiBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudDsKIGNsYXNzIEhp
dFRlc3RMb2NhdGlvbjsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwpAQCAtMTM5NCwxMSArMTM5Myw4
IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEVuZm9yY2VDb250ZW50RGlzcG9zaXRpb25BdHRh
Y2htZW50U2FuZGJveCgpIGNvbnN0OwogICAgIHZvaWQgYXBwbHlDb250ZW50RGlzcG9zaXRpb25B
dHRhY2htZW50U2FuZGJveCgpOwogCi0gICAgdm9pZCBhZGRWaWV3cG9ydERlcGVuZGVudFBpY3R1
cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7Ci0gICAgdm9pZCByZW1vdmVWaWV3cG9ydERlcGVuZGVu
dFBpY3R1cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7Ci0KLSAgICB2b2lkIGFkZEFwcGVhcmFuY2VE
ZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYpOwotICAgIHZvaWQgcmVtb3ZlQXBw
ZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7CisgICAgdm9pZCBh
ZGREeW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlKEhUTUxJbWFnZUVsZW1lbnQmKTsKKyAg
ICB2b2lkIHJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoSFRNTEltYWdlRWxl
bWVudCYpOwogCiAgICAgdm9pZCBzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7CiAKQEAg
LTE2NTUsOSArMTY1MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlRE9NQ29va2ll
Q2FjaGUoKTsKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoKSBmaW5hbDsK
IAotICAgIHZvaWQgY2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVzKCk7Ci0gICAgdm9pZCBj
aGVja0FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlcygpOwotCiAgICAgYm9vbCBjYW5OYXZpZ2F0
ZUludGVybmFsKEZyYW1lJiB0YXJnZXRGcmFtZSk7CiAgICAgYm9vbCBpc05hdmlnYXRpb25CbG9j
a2VkQnlUaGlyZFBhcnR5SUZyYW1lUmVkaXJlY3RCbG9ja2luZyhGcmFtZSYgdGFyZ2V0RnJhbWUs
IGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpOwogCkBAIC0xODMzLDggKzE4MjYsNyBAQCBwcml2
YXRlOgogICAgIFVuaXF1ZVJlZjxGdWxsc2NyZWVuTWFuYWdlcj4gbV9mdWxsc2NyZWVuTWFuYWdl
cjsKICNlbmRpZgogCi0gICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPiBtX3ZpZXdwb3J0
RGVwZW5kZW50UGljdHVyZXM7Ci0gICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1lbnQqPiBtX2Fw
cGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKKyAgICBIYXNoU2V0PEhUTUxJbWFnZUVsZW1lbnQq
PiBtX2R5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2VzOwogCiAjaWYgRU5BQkxFKElOVEVS
U0VDVElPTl9PQlNFUlZFUikKICAgICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZl
cj4+IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKaW5kZXggNjAxZWQxNDAzZDEuLjliNzczOTRiNmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTk1LDYgKzk1LDggQEAgUmVmPEhUTUxJ
bWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2MKIAogSFRNTEltYWdlRWxlbWVudDo6fkhUTUxJbWFnZUVsZW1lbnQoKQog
eworICAgIGRvY3VtZW50KCkucmVtb3ZlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZSgq
dGhpcyk7CisKICAgICBpZiAobV9mb3JtKQogICAgICAgICBtX2Zvcm0tPnJlbW92ZUltZ0VsZW1l
bnQodGhpcyk7CiAgICAgc2V0UGljdHVyZUVsZW1lbnQobnVsbHB0cik7CkBAIC0xNjAsMTAgKzE2
Miw2IEBAIEltYWdlQ2FuZGlkYXRlIEhUTUxJbWFnZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9t
UGljdHVyZUVsZW1lbnQoKQogICAgIGlmICghcGljdHVyZSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIGRvY3VtZW50KCkucmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJl
KTsKLSAgICBkb2N1bWVudCgpLnJlbW92ZUFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpwaWN0
dXJlKTsKLQotICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtZWRpYVF1ZXJ5RHluYW1pY1Jl
c3VsdHM7CiAgICAgSW1hZ2VDYW5kaWRhdGUgY2FuZGlkYXRlOwogCiAgICAgZm9yIChSZWZQdHI8
Tm9kZT4gY2hpbGQgPSBwaWN0dXJlLT5maXJzdENoaWxkKCk7IGNoaWxkICYmIGNoaWxkICE9IHRo
aXM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTE4OSwzOCArMTg3LDUwIEBA
IEltYWdlQ2FuZGlkYXRlIEhUTUxJbWFnZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVy
ZUVsZW1lbnQoKQogICAgICAgICBhdXRvKiBxdWVyaWVzID0gc291cmNlLnBhcnNlZE1lZGlhQXR0
cmlidXRlKGRvY3VtZW50KCkpOwogICAgICAgICBMT0coTWVkaWFRdWVyaWVzLCAiSFRNTEltYWdl
RWxlbWVudCAlcCBiZXN0Rml0U291cmNlRnJvbVBpY3R1cmVFbGVtZW50IGV2YWx1YXRpbmcgbWVk
aWEgcXVlcmllcyIsIHRoaXMpOwogCi0gICAgICAgIGF1dG8gZXZhbHVhdGlvbiA9ICFxdWVyaWVz
IHx8IGV2YWx1YXRvci5ldmFsdWF0ZSgqcXVlcmllcywgJm1lZGlhUXVlcnlEeW5hbWljUmVzdWx0
cyk7CisgICAgICAgIGF1dG8gZXZhbHVhdGlvbiA9ICFxdWVyaWVzIHx8IGV2YWx1YXRvci5ldmFs
dWF0ZSgqcXVlcmllcywgJm1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKICAgICAgICAgaWYg
KCFldmFsdWF0aW9uKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYXV0byBzb3Vy
Y2VTaXplID0gU2l6ZXNBdHRyaWJ1dGVQYXJzZXIoc291cmNlLmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQoKSkubGVuZ3RoKCk7Cisg
ICAgICAgIFNpemVzQXR0cmlidXRlUGFyc2VyIHNpemVzUGFyc2VyKHNvdXJjZS5hdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKHNpemVzQXR0cikuc3RyaW5nKCksIGRvY3VtZW50KCksICZt
X21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IHNp
emVzUGFyc2VyLmxlbmd0aCgpOworCiAgICAgICAgIGNhbmRpZGF0ZSA9IGJlc3RGaXRTb3VyY2VG
b3JJbWFnZUF0dHJpYnV0ZXMoZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBudWxsQXRv
bSgpLCBzcmNzZXQsIHNvdXJjZVNpemUpOwogICAgICAgICBpZiAoIWNhbmRpZGF0ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBwaWN0dXJlLT5zZXRNZWRpYVF1
ZXJ5RHluYW1pY1Jlc3VsdHMoV1RGTW92ZShtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpKTsKKyAg
ICByZXR1cm4gY2FuZGlkYXRlOworfQorCit2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmV2YWx1YXRl
RHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbmNpZXMoKQoreworICAgIGF1dG8gZG9jdW1lbnRFbGVt
ZW50ID0gbWFrZVJlZlB0cihkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICBNZWRp
YVF1ZXJ5RXZhbHVhdG9yIGV2YWx1YXRvciB7IGRvY3VtZW50KCkucHJpbnRpbmcoKSA/ICJwcmlu
dCIgOiAic2NyZWVuIiwgZG9jdW1lbnQoKSwgZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVt
ZW50LT5jb21wdXRlZFN0eWxlKCkgOiBudWxscHRyIH07CiAKLSAgICAvLyBGSVhNRTogVGhpcyBp
cyBub3QgaGFuZGxpbmcgYWNjZXNzaWJpbGl0eSBzZXR0aW5ncyBkZXBlbmRlbnQgbWVkaWEgcXVl
cmllcy4KLSAgICBpZiAocGljdHVyZS0+aGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkpCi0g
ICAgICAgIGRvY3VtZW50KCkuYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJlKTsK
LSAgICBpZiAocGljdHVyZS0+aGFzQXBwZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSkKLSAgICAg
ICAgZG9jdW1lbnQoKS5hZGRBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZSgqcGljdHVyZSk7Cisg
ICAgaWYgKCFldmFsdWF0b3IuZXZhbHVhdGVGb3JDaGFuZ2VzKG1fbWVkaWFRdWVyeUR5bmFtaWNS
ZXN1bHRzKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAgICBz
ZWxlY3RJbWFnZVNvdXJjZSgpOwogfQogCiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNlbGVjdElt
YWdlU291cmNlKCkKIHsKKyAgICBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyA9IHsgfTsKKyAg
ICBkb2N1bWVudCgpLnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoKnRoaXMp
OworCiAgICAgLy8gRmlyc3QgbG9vayBmb3IgdGhlIGJlc3QgZml0IHNvdXJjZSBmcm9tIG91ciA8
cGljdHVyZT4gcGFyZW50IGlmIHdlIGhhdmUgb25lLgogICAgIEltYWdlQ2FuZGlkYXRlIGNhbmRp
ZGF0ZSA9IGJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAoY2FuZGlk
YXRlLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgPHBpY3R1cmU+
IG9yIGRpZG4ndCBmaW5kIGEgc291cmNlLCB0aGVuIHdlIHVzZSBvdXIgb3duIGF0dHJpYnV0ZXMu
Ci0gICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IFNpemVzQXR0cmlidXRlUGFyc2VyKGF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQoKSku
bGVuZ3RoKCk7CisgICAgICAgIFNpemVzQXR0cmlidXRlUGFyc2VyIHNpemVzUGFyc2VyKGF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQo
KSwgJm1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICAgICAgYXV0byBzb3VyY2VTaXpl
ID0gc2l6ZXNQYXJzZXIubGVuZ3RoKCk7CiAgICAgICAgIGNhbmRpZGF0ZSA9IGJlc3RGaXRTb3Vy
Y2VGb3JJbWFnZUF0dHJpYnV0ZXMoZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHNyY0F0dHIpLCBhdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHNyY3NldEF0dHIpLCBzb3VyY2VTaXplKTsKICAgICB9CiAgICAgc2V0QmVz
dEZpdFVSTEFuZERQUkZyb21JbWFnZUNhbmRpZGF0ZShjYW5kaWRhdGUpOwogICAgIG1faW1hZ2VM
b2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKCk7CisKKyAgICBp
ZiAoIW1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLmlzRW1wdHkoKSkKKyAgICAgICAgZG9jdW1l
bnQoKS5hZGREeW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlKCp0aGlzKTsKIH0KIAogdm9p
ZCBIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTY3MSw2ICs2ODEsOCBAQCB2b2lkIEhU
TUxJbWFnZUVsZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxV
Ukw+JiB1cmxzKSBjb25zdAogCiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0Rv
Y3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KQogewor
ICAgIG9sZERvY3VtZW50LnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoKnRo
aXMpOworCiAgICAgbV9pbWFnZUxvYWRlci0+ZWxlbWVudERpZE1vdmVUb05ld0RvY3VtZW50KCk7
CiAgICAgSFRNTEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50LCBuZXdE
b2N1bWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDlm
MDUxZDE2YTEzLi4yOGU4MTViYmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEz
MSw2ICsxMzIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyOyB9CiAgICAgdm9p
ZCBzZXRJc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyKCkgeyBtX2lzRHJvcHBlZEltYWdlUGxhY2Vo
b2xkZXIgPSB0cnVlOyB9CiAKKyAgICB2b2lkIGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcnlEZXBl
bmRlbmNpZXMoKTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxJbWFnZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50KiA9IG51bGxwdHIsIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyID0gZmFsc2UpOwogCkBAIC0xOTgsNiArMjAxLDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxFZGl0YWJsZUltYWdlUmVmZXJlbmNlPiBtX2VkaXRhYmxlSW1hZ2U7CiAg
ICAgV2Vha1B0cjxIVE1MUGljdHVyZUVsZW1lbnQ+IG1fcGljdHVyZUVsZW1lbnQ7CisgICAgTWVk
aWFRdWVyeUR5bmFtaWNSZXN1bHRzIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzOwogCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBTdHJpbmcgbV9wZW5kaW5nQ2xvbmVkQXR0
YWNobWVudElEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCmlu
ZGV4IDM2ODRjZmZhYzAwLi4xODBiNWI0OTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmNwcApAQCAtNDQsMTQgKzQ0LDEwIEBAIEhUTUxQaWN0dXJlRWxlbWVu
dDo6SFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkCiAKIEhUTUxQaWN0dXJlRWxlbWVudDo6fkhUTUxQaWN0dXJlRWxlbWVudCgpCiB7Ci0g
ICAgZG9jdW1lbnQoKS5yZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUoKnRoaXMpOwotICAg
IGRvY3VtZW50KCkucmVtb3ZlQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoKnRoaXMpOwogfQog
CiB2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpCiB7Ci0gICAgb2xkRG9jdW1lbnQu
cmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCp0aGlzKTsKLSAgICBvbGREb2N1bWVudC5y
ZW1vdmVBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZSgqdGhpcyk7CiAgICAgSFRNTEVsZW1lbnQ6
OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgc291
cmNlc0NoYW5nZWQoKTsKIH0KQEAgLTY3LDMwICs2Myw2IEBAIHZvaWQgSFRNTFBpY3R1cmVFbGVt
ZW50Ojpzb3VyY2VzQ2hhbmdlZCgpCiAgICAgICAgIGVsZW1lbnQuc2VsZWN0SW1hZ2VTb3VyY2Uo
KTsKIH0KIAotYm9vbCBIVE1MUGljdHVyZUVsZW1lbnQ6OnZpZXdwb3J0Q2hhbmdlQWZmZWN0ZWRQ
aWN0dXJlKCkgY29uc3QKLXsKLSAgICBhdXRvIGRvY3VtZW50RWxlbWVudCA9IG1ha2VSZWZQdHIo
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7Ci0gICAgTWVkaWFRdWVyeUV2YWx1YXRvciBl
dmFsdWF0b3IgeyBkb2N1bWVudCgpLnByaW50aW5nKCkgPyAicHJpbnQiIDogInNjcmVlbiIsIGRv
Y3VtZW50KCksIGRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50RWxlbWVudC0+Y29tcHV0ZWRTdHls
ZSgpIDogbnVsbHB0ciB9OwotICAgIGZvciAoYXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHlu
YW1pY1Jlc3VsdHMudmlld3BvcnQpIHsKLSAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxQ
aWN0dXJlRWxlbWVudCAlcCB2aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSBldmFsdWF0aW5n
IG1lZGlhIHF1ZXJpZXMiLCB0aGlzKTsKLSAgICAgICAgaWYgKGV2YWx1YXRvci5ldmFsdWF0ZShy
ZXN1bHQuZXhwcmVzc2lvbikgIT0gcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSFRNTFBpY3R1cmVFbGVt
ZW50OjphcHBlYXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3QKLXsKLSAgICBhdXRv
IGRvY3VtZW50RWxlbWVudCA9IG1ha2VSZWZQdHIoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQo
KSk7Ci0gICAgTWVkaWFRdWVyeUV2YWx1YXRvciBldmFsdWF0b3IgeyBkb2N1bWVudCgpLnByaW50
aW5nKCkgPyAicHJpbnQiIDogInNjcmVlbiIsIGRvY3VtZW50KCksIGRvY3VtZW50RWxlbWVudCA/
IGRvY3VtZW50RWxlbWVudC0+Y29tcHV0ZWRTdHlsZSgpIDogbnVsbHB0ciB9OwotICAgIGZvciAo
YXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuYXBwZWFyYW5jZSkgewot
ICAgICAgICBMT0coTWVkaWFRdWVyaWVzLCAiSFRNTFBpY3R1cmVFbGVtZW50ICVwIGFwcGVhcmFu
Y2VDaGFuZ2VBZmZlY3RlZFBpY3R1cmUgZXZhbHVhdGluZyBtZWRpYSBxdWVyaWVzIiwgdGhpcyk7
Ci0gICAgICAgIGlmIChldmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJl
c3VsdC5yZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogYm9vbCBIVE1MUGljdHVyZUVs
ZW1lbnQ6OmlzU3lzdGVtUHJldmlld0ltYWdlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQaWN0dXJlRWxlbWVudC5oCmluZGV4IDhmZmZmNDU2OTE1Li5kYzhlMWExODMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCkBAIC0yNiw3ICsyNiw2IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiTWVk
aWFRdWVyeUV2YWx1YXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDE1ICsz
Nyw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc291cmNlc0NoYW5nZWQoKTsKIAotCi0gICAgdm9p
ZCBzZXRNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMoTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzJiYg
cmVzdWx0cykgeyBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyA9IHJlc3VsdHM7IH0KLQotICAg
IGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRp
YVF1ZXJ5RHluYW1pY1Jlc3VsdHMudmlld3BvcnQuc2l6ZSgpOyB9Ci0gICAgYm9vbCBoYXNBcHBl
YXJhbmNlRGVwZW5kZW50UmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFRdWVyeUR5bmFt
aWNSZXN1bHRzLmFwcGVhcmFuY2Uuc2l6ZSgpOyB9Ci0KLSAgICBib29sIHZpZXdwb3J0Q2hhbmdl
QWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7Ci0gICAgYm9vbCBhcHBlYXJhbmNlQ2hhbmdlQWZmZWN0
ZWRQaWN0dXJlKCkgY29uc3Q7Ci0KICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1N5c3RlbVByZXZpZXdJbWFnZSgpIGNvbnN0OwogI2VuZGlmCkBAIC01
NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChE
b2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7Ci0KLSAg
ICBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAppbmRleCAzZmE2NGJkODM3OS4uYTFmZDMwMDI3MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzgwLDYgKzM4MCwxNSBAQCB2b2lkIFJl
bmRlckltYWdlOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgbmV3SW1hZ2UpCiAgICAg
ICAgIHBhZ2UoKS5kaWRGaW5pc2hMb2FkaW5nSW1hZ2VGb3JFbGVtZW50KGRvd25jYXN0PEhUTUxJ
bWFnZUVsZW1lbnQ+KCplbGVtZW50KCkpKTsKIH0KIAordm9pZCBSZW5kZXJJbWFnZTo6c2V0SW1h
Z2VEZXZpY2VQaXhlbFJhdGlvKGZsb2F0IGZhY3RvcikKK3sKKyAgICBpZiAobV9pbWFnZURldmlj
ZVBpeGVsUmF0aW8gPT0gZmFjdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2ltYWdlRGV2
aWNlUGl4ZWxSYXRpbyA9IGZhY3RvcjsKKyAgICBpbnRyaW5zaWNTaXplQ2hhbmdlZCgpOworfQor
CiBib29sIFJlbmRlckltYWdlOjppc1Nob3dpbmdNaXNzaW5nT3JJbWFnZUVycm9yKCkgY29uc3QK
IHsKICAgICByZXR1cm4gIWltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpIHx8IGltYWdlUmVz
b3VyY2UoKS5lcnJvck9jY3VycmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5oCmluZGV4IGVjZDVmYzczMjFlLi5iMjQwMmMzNDdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0
cmluZyYgYWx0VGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0VGV4dDsgfQogICAgIHZvaWQgc2V0
QWx0VGV4dChjb25zdCBTdHJpbmcmIGFsdFRleHQpIHsgbV9hbHRUZXh0ID0gYWx0VGV4dDsgfQog
Ci0gICAgaW5saW5lIHZvaWQgc2V0SW1hZ2VEZXZpY2VQaXhlbFJhdGlvKGZsb2F0IGZhY3Rvcikg
eyBtX2ltYWdlRGV2aWNlUGl4ZWxSYXRpbyA9IGZhY3RvcjsgfQorICAgIHZvaWQgc2V0SW1hZ2VE
ZXZpY2VQaXhlbFJhdGlvKGZsb2F0IGZhY3Rvcik7CiAgICAgZmxvYXQgaW1hZ2VEZXZpY2VQaXhl
bFJhdGlvKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZURldmljZVBpeGVsUmF0aW87IH0KIAogICAg
IHZvaWQgc2V0SGFzU2hhZG93Q29udHJvbHMoYm9vbCBoYXNTaGFkb3dDb250cm9scykgeyBtX2hh
c1NoYWRvd0NvbnRyb2xzID0gaGFzU2hhZG93Q29udHJvbHM7IH0K
</data>
<flag name="review"
          id="399968"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384233</attachid>
            <date>2019-11-23 01:36:42 -0800</date>
            <delta_ts>2019-11-23 02:19:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>img-sizes-mq-3.patch</filename>
            <type>text/plain</type>
            <size>28276</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjNmNDlhY2IwMy4uODBjMDdkM2U1OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxOS0xMS0yMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
TWVkaWEgcXVlcmllcyBpbiBpbWcgc2l6ZXMgYXR0cmlidXRlIGRvbid0IGV2YWx1YXRlIGR5bmFt
aWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ1MjEKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi5odG1sOiBBZGRlZC4KKworICAg
ICAgICBDb3BpZWQgYW5kIG1vZGlmaWVkIGZyb20gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9zaXpl
cy9zaXplcy1keW5hbWljLSoKKyAgICAgICAgYmVjYXVzZSB3ZSBkb24ndCBzdXBwb3J0IHJlZnRl
c3Qtd2FpdCAod2Via2l0Lm9yZy9iLzE4NjA0NSkuCisKIDIwMTktMTEtMjEgIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIz
NDQ0MCk6IFtNYWMgV0syIF0gTGF5b3V0IFRlc3QgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWJ1dC1hY2Nlc3MtZnJvbS13
cm9uZy1mcmFtZS5odG1sIGlzIGZsYWt5IHRpbWVvdXQgKDE5NDE2NCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45Mjc5YzgyMTBjNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5UZXN0
IHJlZmVyZW5jZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2Jv
cyDDgWx2YXJleiIgaHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwuaW8iPgorPGlmcmFtZSB3aWR0
aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3JjZG9jPSc8IWRvY3R5cGUgaHRtbD48aW1nIGFsdD0iRkFJ
TCIgc3Jjc2V0PSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcy9n
cmVlbi0yNTZ4MjU2LnBuZyAxMDB3IiBzdHlsZT0ibWF4LXdpZHRoOiAxMDAlIiBzaXplcz0iMTBw
eCI+Jz48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVz
LWR5bmFtaWMtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWlj
LTAwMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMWQ5MjM4
OTUxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5
bmFtaWMtMDAxLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBj
bGFzcz0icmVmdGVzdC13YWl0Ij4KKzx0aXRsZT5JbWFnZSBpbnRyaW5zaWMgc2l6ZSBzcGVjaWZp
ZWQgdmlhIHNpemVzIGF0dHJpYnV0ZSByZWFjdHMgcHJvcGVybHkgdG8gbWVkaWEgY2hhbmdlczwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIg
aHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwuaW8iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0i
c2l6ZXMtZHluYW1pYy0wMDEtZXhwZWN0ZWQuaHRtbCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3NpemVzLWF0dHJpYnV0ZXMiPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTQ5MzU3Ij4KKzxzY3JpcHQ+CisvLyBVc2UgV1BUIHZlcnNpb24gYWZ0ZXIgcmVmdGVz
dC13YWl0IGlzIGltcGxlbWVudGVkLgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBmcmFtZUxvYWRlZChmcmFtZSkgewor
ICBmcmFtZS53aWR0aCA9ICI1MDAiOworICBsZXQgaW1nID0gZnJhbWUuY29udGVudERvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpOworCisgIC8vIFRyaWdnZXIgdGhlIHZpZXdwb3J0IHJlc2l6
ZSwgd2hpY2ggd2lsbCB0cmlnZ2VyIHRoZSBpbWFnZSBsb2FkIHRhc2suCisgIGltZy5vZmZzZXRX
aWR0aDsKKworICAvLyBXYWl0IGZvciB0aGUgaW1hZ2UgbG9hZCB0YXNrIHRvIHJ1bi4KKyAgc2V0
VGltZW91dCgoKSA9PiB7CisgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRy
aWJ1dGUoImNsYXNzIik7CisgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBv
bmxvYWQ9ImZyYW1lTG9hZGVkKHRoaXMpIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjUwMCIgc3JjZG9j
PSc8IWRvY3R5cGUgaHRtbD48aW1nIHNyY3NldD0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbWFnZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1heC13aWR0
aDogMTAwJSIgc2l6ZXM9IihtaW4td2lkdGg6IDQwMHB4KSAxMHB4LCAyMHB4Ij4nPjwvaWZyYW1l
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAy
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjky
NzljODIxMGM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6
ZXMtZHluYW1pYy0wMDItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPHRpdGxlPlRlc3QgcmVmZXJlbmNlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5p
byI+Cis8aWZyYW1lIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBo
dG1sPjxpbWcgYWx0PSJGQUlMIiBzcmNzZXQ9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW1hZ2VzL2dyZWVuLTI1NngyNTYucG5nIDEwMHciIHN0eWxlPSJtYXgtd2lkdGg6
IDEwMCUiIHNpemVzPSIxMHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3NpemVzLWR5bmFtaWMtMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjVlNTdmMTY2MWM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPHRpdGxlPkltYWdlIGludHJp
bnNpYyBzaXplIHNwZWNpZmllZCB2aWEgc2l6ZXMgYXR0cmlidXRlIHJlYWN0cyBwcm9wZXJseSB0
byBtZWRpYSBjaGFuZ2VzIGluIFNoYWRvdyBET008L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9Im1haWx0bzplbWlsaW9AY3Jpc2Fs
LmlvIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InNpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVk
Lmh0bWwiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnLyNzaXplcy1hdHRyaWJ1dGVzIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9i
dWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0OTM1NyI+Cis8c2NyaXB0Pgor
Ly8gVXNlIFdQVCB2ZXJzaW9uIGFmdGVyIHJlZnRlc3Qtd2FpdCBpcyBpbXBsZW1lbnRlZC4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ZnVuY3Rpb24gZnJhbWVMb2FkZWQoZnJhbWUpIHsKKyAgbGV0IGRvYyA9IGZyYW1lLmNvbnRlbnRE
b2N1bWVudDsKKyAgbGV0IHNoYWRvdyA9IGRvYy5nZXRFbGVtZW50QnlJZCgiaG9zdCIpLmF0dGFj
aFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsKKworICBsZXQgaW1nID0gZG9jLmNyZWF0ZUVsZW1l
bnQoImltZyIpOworICBpbWcuc3Jjc2V0ID0gIi4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW1hZ2VzL2dyZWVuLTI1NngyNTYucG5nIDEwMHciOworICBpbWcuc3R5bGUubWF4
V2lkdGggPSAiMTAwJSI7CisgIGltZy5zZXRBdHRyaWJ1dGUoInNpemVzIiwgIihtaW4td2lkdGg6
IDQwMHB4KSAxMHB4LCAyMHB4Iik7CisKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAg
IGltZy5vZmZzZXRXaWR0aDsgLy8gRmx1c2ggbGF5b3V0LgorCisgICAgZnJhbWUud2lkdGggPSAi
NTAwIjsKKworICAgIC8vIFRyaWdnZXIgdGhlIHZpZXdwb3J0IHJlc2l6ZSwgd2hpY2ggd2lsbCB0
cmlnZ2VyIHRoZSBpbWFnZSBsb2FkIHRhc2suCisgICAgaW1nLm9mZnNldFdpZHRoOworCisgIC8v
IFdhaXQgZm9yIHRoZSBpbWFnZSBsb2FkIHRhc2sgdG8gcnVuLgorICBzZXRUaW1lb3V0KCgpID0+
IHsKKyAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3Mi
KTsKKyAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgIH0sIDApOworICB9OworCisgIHNoYWRvdy5hcHBlbmRDaGlsZChpbWcpOwor
fQorPC9zY3JpcHQ+Cis8aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2FkZWQodGhpcykiIHdpZHRoPSIy
MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1sPjxkaXYgaWQ9Imhvc3QiPjwv
ZGl2Pic+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdkNDI0NDgzYzUuLmNjMmNjYzhiMzZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTktMTEtMjIgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIHF1ZXJpZXMgaW4gaW1nIHNpemVzIGF0
dHJpYnV0ZSBkb24ndCBldmFsdWF0ZSBkeW5hbWljYWxseQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWlj
LTAwMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi5o
dG1sCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZUZvckNoYW5nZXMgY29uc3QpOgor
CisgICAgICAgIEFkZCBhIGhlbHBlciBmdW5jdGlvbiBmb3IgZXZhbHVhdGluZyBkeW5hbWljIHJl
c3VsdHMgZm9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzOjppc0VtcHR5IGNv
bnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpTaXplc0F0dHJpYnV0ZVBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRp
b25NYXRjaGVzKToKKworICAgICAgICBHYXRoZXIgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzCisK
KyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmg6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVFbGVt
ZW50c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmFkZER5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnJlbW92ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UpOgorCisgICAg
ICAgIFJlcGxhY2Ugdmlld3BvcnQvYXBwZWFyYW5jZSBzcGVjaWZpYyBtZWNoYW5pc20gd2l0aCBh
IHVuaWZpZWQgb25lICh0aGV5IHdlcmUgYWxsIGludm9rZWQgdG9nZXRoZXIgYW55d2F5KS4KKyAg
ICAgICAgTWFrZSBpdCBhYm91dCBIVE1MSW1hZ2VFbGVtZW50IHJhdGhlciB0aGFuIEhUTUxQaWN0
dXJlRWxlbWVudCBzaW5jZSB0aGF0IGlzIHRoZSBvbmx5IGNsaWVudCBpbiB0aGlzIHBhdGNoLgor
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1
cmVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjaGVja0FwcGVhcmFu
Y2VEZXBlbmRlbnRQaWN0dXJlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6YWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpyZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVBcHBlYXJhbmNl
RGVwZW5kZW50UGljdHVyZSk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbWFnZUVsZW1lbnQ6On5IVE1MSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbWFnZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyeURl
cGVuZGVuY2llcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZWxlY3RJ
bWFnZVNvdXJjZSk6CisKKyAgICAgICAgR2F0aGVyIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBm
cm9tIGFsbCBwYXRocy4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZGlk
TW92ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQaWN0dXJlRWxlbWVudDo6fkhUTUxQaWN0dXJlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUGljdHVyZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQaWN0dXJlRWxlbWVudDo6dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1
cmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBpY3R1cmVFbGVtZW50
OjphcHBlYXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlIGNvbnN0KTogRGVsZXRlZC4KKworICAg
ICAgICBNb3ZlIHRoZSBtZWRpYSBxdWVyeSBkZXBlbmRlbmN5IGNvZGUgdG8gSFRNTEltYWdlRWxl
bWVudCBzaW5jZSB0aGF0cyB3aGVyZSBpdCBpcyBhY3R1YWxseSBuZWVkZWQuCisKKyAgICAgICAg
KiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6c2V0SW1hZ2VEZXZpY2VQ
aXhlbFJhdGlvKToKKworICAgICAgICBVcGRhdGUgcmVuZGVyaW5nIGFsc28gaWYgb25seSB0aGUg
cGl4ZWwgcmF0aW8gY2hhbmdlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnNldEltYWdlRGV2aWNlUGl4ZWxSYXRp
byk6IERlbGV0ZWQuCisKIDIwMTktMTEtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gV2ViIHByb2Nlc3MgY3Jhc2hlcyB3aGVuIGF0dGVt
cHRpbmcgdG8gcmVxdWVzdCBkb2N1bWVudCBjb250ZXh0IGluIGEgdGV4dGFyZWEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCAwNTgxY2FhZjMyNC4uMDJj
OGNjNWEwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
QEAgLTE5Miw2ICsxOTIsMTkgQEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShj
b25zdCBNZWRpYVF1ZXJ5U2V0JiBxdWVyeVNldCwgTWVkaWFRdWVyeUR5bmEKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlRm9yQ2hhbmdl
cyhjb25zdCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmIGR5bmFtaWNSZXN1bHRzKSBjb25zdAor
eworICAgIGF1dG8gaGFzQ2hhbmdlcyA9IFsmXShhdXRvJiBkeW5hbWljUmVzdWx0c1ZlY3Rvcikg
eworICAgICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSZXN1bHQgOiBkeW5hbWljUmVzdWx0c1ZlY3Rv
cikgeworICAgICAgICAgICAgaWYgKGV2YWx1YXRlKGR5bmFtaWNSZXN1bHQuZXhwcmVzc2lvbikg
IT0gZHluYW1pY1Jlc3VsdC5yZXN1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAgICByZXR1cm4gaGFz
Q2hhbmdlcyhkeW5hbWljUmVzdWx0cy52aWV3cG9ydCkgfHwgaGFzQ2hhbmdlcyhkeW5hbWljUmVz
dWx0cy5hcHBlYXJhbmNlKSB8fCBoYXNDaGFuZ2VzKGR5bmFtaWNSZXN1bHRzLmFjY2Vzc2liaWxp
dHlTZXR0aW5ncyk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGJvb2wg
Y29tcGFyZVZhbHVlKFQgYSwgVSBiLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgc3dp
dGNoIChvcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKaW5kZXgg
YjkwODRjNmM0ZjIuLjNhZDk5OGNiYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IE1lZGlhUXVlcnlEeW5hbWljUmVz
dWx0cyB7CiAgICAgICAgIGFwcGVhcmFuY2UuYXBwZW5kVmVjdG9yKG90aGVyLmFwcGVhcmFuY2Up
OwogICAgICAgICBhY2Nlc3NpYmlsaXR5U2V0dGluZ3MuYXBwZW5kVmVjdG9yKG90aGVyLmFjY2Vz
c2liaWxpdHlTZXR0aW5ncyk7CiAgICAgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIHZpZXdwb3J0LmlzRW1wdHkoKSAmJiBhcHBlYXJhbmNlLmlzRW1wdHkoKSAmJiBhY2Nlc3Np
YmlsaXR5U2V0dGluZ3MuaXNFbXB0eSgpOyB9CiB9OwogCiAvLyBTb21lIG9mIHRoZSBjb25zdHJ1
Y3RvcnMgYXJlIHVzZWQgZm9yIGNhc2VzIHdoZXJlIHRoZSBkZXZpY2UgY2hhcmFjdGVyaXN0aWNz
IGFyZSBub3Qga25vd24uCkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEV2YWx1
YXRlcyBtZWRpYSBxdWVyeSBzdWJleHByZXNzaW9uLCBpZSAiYW5kIChtZWRpYS1mZWF0dXJlOiB2
YWx1ZSkiIHBhcnQuCiAgICAgYm9vbCBldmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5RXhwcmVzc2lv
biYpIGNvbnN0OworICAgIGJvb2wgZXZhbHVhdGVGb3JDaGFuZ2VzKGNvbnN0IE1lZGlhUXVlcnlE
eW5hbWljUmVzdWx0cyYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBldmFsdWF0
ZShjb25zdCBNZWRpYVF1ZXJ5U2V0JiwgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKiA9IG51bGxw
dHIpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVz
QXR0cmlidXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRy
aWJ1dGVQYXJzZXIuY3BwCmluZGV4IDIyNjFiN2M5MmNlLi40ODk0MjQwYzI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKQEAg
LTY5LDEwICs2OSw5IEBAIGZsb2F0IFNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3Ro
KGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdHlwZSwgY29uc3QKICAgICByZXR1cm4gY2xhbXBU
bzxmbG9hdD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNv
bnZlcnNpb25EYXRhLCB0eXBlLCB2YWx1ZSkpOwogfQogICAgIAotU2l6ZXNBdHRyaWJ1dGVQYXJz
ZXI6OlNpemVzQXR0cmlidXRlUGFyc2VyKGNvbnN0IFN0cmluZyYgYXR0cmlidXRlLCBjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQpCitTaXplc0F0dHJpYnV0ZVBhcnNlcjo6U2l6ZXNBdHRyaWJ1dGVQ
YXJzZXIoY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
TWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKiBtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpCiAgICAg
OiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV9sZW5ndGgoMCkKLSAgICAsIG1fbGVuZ3Ro
V2FzU2V0KGZhbHNlKQorICAgICwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMobWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzKQogewogICAgIG1faXNWYWxpZCA9IHBhcnNlKENTU1Rva2VuaXplcihh
dHRyaWJ1dGUpLnRva2VuUmFuZ2UoKSk7CiB9CkBAIC0xMTUsNyArMTE0LDcgQEAgYm9vbCBTaXpl
c0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKGNvbnN0IE1lZGlhUXVlcnlT
ZXQmIG1lZGlhQ29uZGkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgYXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gTWVkaWFR
dWVyeUV2YWx1YXRvciB7ICJzY3JlZW4iLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZSht
ZWRpYUNvbmRpdGlvbik7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3IgeyAic2NyZWVu
IiwgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24sIG1fbWVkaWFR
dWVyeUR5bmFtaWNSZXN1bHRzKTsKIH0KIAogYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6cGFy
c2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaAppbmRleCAxNDkzMGQyMzUzMS4uMjdkY2I2M2Nm
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQ
YXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFy
c2VyLmgKQEAgLTM4LDEwICszOCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NW
YWx1ZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFRdWVyeVNldDsKK3N0cnVjdCBNZWRp
YVF1ZXJ5RHluYW1pY1Jlc3VsdHM7CiAgICAgCiBjbGFzcyBTaXplc0F0dHJpYnV0ZVBhcnNlciB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXIoY29uc3QgU3RyaW5n
JiwgY29uc3QgRG9jdW1lbnQmKTsKKyAgICBTaXplc0F0dHJpYnV0ZVBhcnNlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBEb2N1bWVudCYsIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyogPSBudWxscHRy
KTsKIAogICAgIGZsb2F0IGxlbmd0aCgpOwogCkBAIC01Nyw5ICs1OCwxMCBAQCBwcml2YXRlOgog
CiAgICAgY29uc3QgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgUmVmUHRyPE1lZGlhUXVlcnlT
ZXQ+IG1fbWVkaWFDb25kaXRpb247Ci0gICAgZmxvYXQgbV9sZW5ndGg7Ci0gICAgYm9vbCBtX2xl
bmd0aFdhc1NldDsKLSAgICBib29sIG1faXNWYWxpZDsKKyAgICBNZWRpYVF1ZXJ5RHluYW1pY1Jl
c3VsdHMqIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIHsgbnVsbHB0ciB9OworICAgIGZsb2F0
IG1fbGVuZ3RoIHsgMCB9OworICAgIGJvb2wgbV9sZW5ndGhXYXNTZXQgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM5NjhlNWQ5OGM5Li4wZTZmMDI1MGIyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zOTM2LDggKzM5MzYsMTUgQEAgU3R5bGVTaGVldExp
c3QmIERvY3VtZW50OjpzdHlsZVNoZWV0cygpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVFbGVtZW50
c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMoKQogewogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6
SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLSAgICBjaGVja1ZpZXdwb3J0RGVw
ZW5kZW50UGljdHVyZXMoKTsKLSAgICBjaGVja0FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlcygp
OworCisgICAgLy8gRklYTUU6IGNvcHlUb1ZlY3RvciBkb2Vzbid0IHdvcmsgd2l0aCBXZWFrSGFz
aFNldAorICAgIFZlY3RvcjxSZWY8SFRNTEltYWdlRWxlbWVudD4+IGltYWdlczsKKyAgICBpbWFn
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX2R5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1h
Z2VzLmNvbXB1dGVTaXplKCkpOworICAgIGZvciAoYXV0byYgaW1hZ2UgOiBtX2R5bmFtaWNNZWRp
YVF1ZXJ5RGVwZW5kZW50SW1hZ2VzKQorICAgICAgICBpbWFnZXMuYXBwZW5kKGltYWdlKTsKKwor
ICAgIGZvciAoYXV0byYgaW1hZ2UgOiBpbWFnZXMpCisgICAgICAgIGltYWdlLT5ldmFsdWF0ZUR5
bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW5jaWVzKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmV2YWx1
YXRlTWVkaWFRdWVyaWVzQW5kUmVwb3J0Q2hhbmdlcygpCkBAIC0zOTQ4LDMwICszOTU1LDYgQEAg
dm9pZCBEb2N1bWVudDo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzKCkKICAg
ICBtX21lZGlhUXVlcnlNYXRjaGVyLT5ldmFsdWF0ZUFsbCgpOwogfQogCi12b2lkIERvY3VtZW50
OjpjaGVja1ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMoKQotewotICAgIFZlY3RvcjxIVE1MUGlj
dHVyZUVsZW1lbnQqLCAxNj4gY2hhbmdlZFBpY3R1cmVzOwotICAgIEhhc2hTZXQ8SFRNTFBpY3R1
cmVFbGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9IG1fdmlld3BvcnREZXBlbmRlbnRQaWN0dXJlcy5l
bmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8SFRNTFBpY3R1cmVFbGVtZW50Kj46Oml0ZXJhdG9yIGl0
ID0gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
ewotICAgICAgICBpZiAoKCppdCktPnZpZXdwb3J0Q2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkpCi0g
ICAgICAgICAgICBjaGFuZ2VkUGljdHVyZXMuYXBwZW5kKCppdCk7Ci0gICAgfQotICAgIGZvciAo
YXV0byogcGljdHVyZSA6IGNoYW5nZWRQaWN0dXJlcykKLSAgICAgICAgcGljdHVyZS0+c291cmNl
c0NoYW5nZWQoKTsKLX0KLQotdm9pZCBEb2N1bWVudDo6Y2hlY2tBcHBlYXJhbmNlRGVwZW5kZW50
UGljdHVyZXMoKQotewotICAgIFZlY3RvcjxIVE1MUGljdHVyZUVsZW1lbnQqLCAxNj4gY2hhbmdl
ZFBpY3R1cmVzOwotICAgIGZvciAoYXV0byogcGljdHVyZSA6IG1fYXBwZWFyYW5jZURlcGVuZGVu
dFBpY3R1cmVzKSB7Ci0gICAgICAgIGlmIChwaWN0dXJlLT5hcHBlYXJhbmNlQ2hhbmdlQWZmZWN0
ZWRQaWN0dXJlKCkpCi0gICAgICAgICAgICBjaGFuZ2VkUGljdHVyZXMuYXBwZW5kKHBpY3R1cmUp
OwotICAgIH0KLQotICAgIGZvciAoYXV0byogcGljdHVyZSA6IGNoYW5nZWRQaWN0dXJlcykKLSAg
ICAgICAgcGljdHVyZS0+c291cmNlc0NoYW5nZWQoKTsKLX0KLQogdm9pZCBEb2N1bWVudDo6dXBk
YXRlVmlld3BvcnRVbml0c09uUmVzaXplKCkKIHsKICAgICBpZiAoIWhhc1N0eWxlV2l0aFZpZXdw
b3J0VW5pdHMoKSkKQEAgLTc0MTAsMjQgKzczOTMsMTQgQEAgdm9pZCBEb2N1bWVudDo6YXBwbHlD
b250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveCgpCiAgICAgICAgIGVuZm9yY2VTYW5k
Ym94RmxhZ3MoU2FuZGJveE9yaWdpbik7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmFkZFZpZXdwb3J0
RGVwZW5kZW50UGljdHVyZShIVE1MUGljdHVyZUVsZW1lbnQmIHBpY3R1cmUpCi17Ci0gICAgbV92
aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzLmFkZCgmcGljdHVyZSk7Ci19Ci0KLXZvaWQgRG9jdW1l
bnQ6OnJlbW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVyZShIVE1MUGljdHVyZUVsZW1lbnQmIHBp
Y3R1cmUpCi17Ci0gICAgbV92aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzLnJlbW92ZSgmcGljdHVy
ZSk7Ci19Ci0KLXZvaWQgRG9jdW1lbnQ6OmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKEhU
TUxQaWN0dXJlRWxlbWVudCYgcGljdHVyZSkKK3ZvaWQgRG9jdW1lbnQ6OmFkZER5bmFtaWNNZWRp
YVF1ZXJ5RGVwZW5kZW50SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBt
X2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlcy5hZGQoJnBpY3R1cmUpOworICAgIG1fZHluYW1p
Y01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZXMuYWRkKGVsZW1lbnQpOwogfQogCi12b2lkIERvY3Vt
ZW50OjpyZW1vdmVBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZShIVE1MUGljdHVyZUVsZW1lbnQm
IHBpY3R1cmUpCit2b2lkIERvY3VtZW50OjpyZW1vdmVEeW5hbWljTWVkaWFRdWVyeURlcGVuZGVu
dEltYWdlKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9hcHBlYXJhbmNlRGVw
ZW5kZW50UGljdHVyZXMucmVtb3ZlKCZwaWN0dXJlKTsKKyAgICBtX2R5bmFtaWNNZWRpYVF1ZXJ5
RGVwZW5kZW50SW1hZ2VzLnJlbW92ZShlbGVtZW50KTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c2No
ZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ3ZGRi
OWUxYzQ3Li5hYWYyY2YyNDFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0NCw3ICsxNDQs
NiBAQCBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xhc3MgSFRNTE1hcEVsZW1lbnQ7CiBjbGFz
cyBIVE1MTWVkaWFFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKLWNsYXNzIEhUTUxQ
aWN0dXJlRWxlbWVudDsKIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50OwogY2xhc3MgSGl0VGVzdExv
Y2F0aW9uOwogY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CkBAIC0xMzk0LDExICsxMzkzLDggQEAgcHVi
bGljOgogICAgIGJvb2wgc2hvdWxkRW5mb3JjZUNvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRT
YW5kYm94KCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseUNvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1l
bnRTYW5kYm94KCk7CiAKLSAgICB2b2lkIGFkZFZpZXdwb3J0RGVwZW5kZW50UGljdHVyZShIVE1M
UGljdHVyZUVsZW1lbnQmKTsKLSAgICB2b2lkIHJlbW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVy
ZShIVE1MUGljdHVyZUVsZW1lbnQmKTsKLQotICAgIHZvaWQgYWRkQXBwZWFyYW5jZURlcGVuZGVu
dFBpY3R1cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7Ci0gICAgdm9pZCByZW1vdmVBcHBlYXJhbmNl
RGVwZW5kZW50UGljdHVyZShIVE1MUGljdHVyZUVsZW1lbnQmKTsKKyAgICB2b2lkIGFkZER5bmFt
aWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYpOworICAgIHZvaWQg
cmVtb3ZlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZShIVE1MSW1hZ2VFbGVtZW50Jik7
CiAKICAgICB2b2lkIHNjaGVkdWxlVGltZWRSZW5kZXJpbmdVcGRhdGUoKTsKIApAQCAtMTY1NSw5
ICsxNjUxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVET01Db29raWVDYWNoZSgp
OwogICAgIHZvaWQgZGlkTG9hZFJlc291cmNlU3luY2hyb25vdXNseSgpIGZpbmFsOwogCi0gICAg
dm9pZCBjaGVja1ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMoKTsKLSAgICB2b2lkIGNoZWNrQXBw
ZWFyYW5jZURlcGVuZGVudFBpY3R1cmVzKCk7Ci0KICAgICBib29sIGNhbk5hdmlnYXRlSW50ZXJu
YWwoRnJhbWUmIHRhcmdldEZyYW1lKTsKICAgICBib29sIGlzTmF2aWdhdGlvbkJsb2NrZWRCeVRo
aXJkUGFydHlJRnJhbWVSZWRpcmVjdEJsb2NraW5nKEZyYW1lJiB0YXJnZXRGcmFtZSwgY29uc3Qg
VVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKQEAgLTE4MzMsOCArMTgyNiw3IEBAIHByaXZhdGU6CiAg
ICAgVW5pcXVlUmVmPEZ1bGxzY3JlZW5NYW5hZ2VyPiBtX2Z1bGxzY3JlZW5NYW5hZ2VyOwogI2Vu
ZGlmCiAKLSAgICBIYXNoU2V0PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fdmlld3BvcnREZXBlbmRl
bnRQaWN0dXJlczsKLSAgICBIYXNoU2V0PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fYXBwZWFyYW5j
ZURlcGVuZGVudFBpY3R1cmVzOworICAgIFdlYWtIYXNoU2V0PEhUTUxJbWFnZUVsZW1lbnQ+IG1f
ZHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZXM7CiAKICNpZiBFTkFCTEUoSU5URVJTRUNU
SU9OX09CU0VSVkVSKQogICAgIFZlY3RvcjxXZWFrUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPj4g
bV9pbnRlcnNlY3Rpb25PYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCA2MDFlZDE0MDNkMS4uOWI3NzM5NGI2YTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtOTUsNiArOTUsOCBAQCBSZWY8SFRNTEltYWdl
RWxlbWVudD4gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvYwogCiBIVE1MSW1hZ2VFbGVtZW50Ojp+SFRNTEltYWdlRWxlbWVudCgpCiB7Cisg
ICAgZG9jdW1lbnQoKS5yZW1vdmVEeW5hbWljTWVkaWFRdWVyeURlcGVuZGVudEltYWdlKCp0aGlz
KTsKKwogICAgIGlmIChtX2Zvcm0pCiAgICAgICAgIG1fZm9ybS0+cmVtb3ZlSW1nRWxlbWVudCh0
aGlzKTsKICAgICBzZXRQaWN0dXJlRWxlbWVudChudWxscHRyKTsKQEAgLTE2MCwxMCArMTYyLDYg
QEAgSW1hZ2VDYW5kaWRhdGUgSFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdFNvdXJjZUZyb21QaWN0
dXJlRWxlbWVudCgpCiAgICAgaWYgKCFwaWN0dXJlKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgZG9jdW1lbnQoKS5yZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUoKnBpY3R1cmUpOwot
ICAgIGRvY3VtZW50KCkucmVtb3ZlQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoKnBpY3R1cmUp
OwotCi0gICAgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0
czsKICAgICBJbWFnZUNhbmRpZGF0ZSBjYW5kaWRhdGU7CiAKICAgICBmb3IgKFJlZlB0cjxOb2Rl
PiBjaGlsZCA9IHBpY3R1cmUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgY2hpbGQgIT0gdGhpczsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewpAQCAtMTg5LDM4ICsxODcsNTAgQEAgSW1h
Z2VDYW5kaWRhdGUgSFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdFNvdXJjZUZyb21QaWN0dXJlRWxl
bWVudCgpCiAgICAgICAgIGF1dG8qIHF1ZXJpZXMgPSBzb3VyY2UucGFyc2VkTWVkaWFBdHRyaWJ1
dGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIExPRyhNZWRpYVF1ZXJpZXMsICJIVE1MSW1hZ2VFbGVt
ZW50ICVwIGJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQgZXZhbHVhdGluZyBtZWRpYSBx
dWVyaWVzIiwgdGhpcyk7CiAKLSAgICAgICAgYXV0byBldmFsdWF0aW9uID0gIXF1ZXJpZXMgfHwg
ZXZhbHVhdG9yLmV2YWx1YXRlKCpxdWVyaWVzLCAmbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsK
KyAgICAgICAgYXV0byBldmFsdWF0aW9uID0gIXF1ZXJpZXMgfHwgZXZhbHVhdG9yLmV2YWx1YXRl
KCpxdWVyaWVzLCAmbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogICAgICAgICBpZiAoIWV2
YWx1YXRpb24pCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBhdXRvIHNvdXJjZVNp
emUgPSBTaXplc0F0dHJpYnV0ZVBhcnNlcihzb3VyY2UuYXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihzaXplc0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpKS5sZW5ndGgoKTsKKyAgICAg
ICAgU2l6ZXNBdHRyaWJ1dGVQYXJzZXIgc2l6ZXNQYXJzZXIoc291cmNlLmF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oc2l6ZXNBdHRyKS5zdHJpbmcoKSwgZG9jdW1lbnQoKSwgJm1fbWVk
aWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICAgICAgYXV0byBzb3VyY2VTaXplID0gc2l6ZXNQ
YXJzZXIubGVuZ3RoKCk7CisKICAgICAgICAgY2FuZGlkYXRlID0gYmVzdEZpdFNvdXJjZUZvcklt
YWdlQXR0cmlidXRlcyhkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIG51bGxBdG9tKCks
IHNyY3NldCwgc291cmNlU2l6ZSk7CiAgICAgICAgIGlmICghY2FuZGlkYXRlLmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHBpY3R1cmUtPnNldE1lZGlhUXVlcnlE
eW5hbWljUmVzdWx0cyhXVEZNb3ZlKG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cykpOworICAgIHJl
dHVybiBjYW5kaWRhdGU7Cit9CisKK3ZvaWQgSFRNTEltYWdlRWxlbWVudDo6ZXZhbHVhdGVEeW5h
bWljTWVkaWFRdWVyeURlcGVuZGVuY2llcygpCit7CisgICAgYXV0byBkb2N1bWVudEVsZW1lbnQg
PSBtYWtlUmVmUHRyKGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOworICAgIE1lZGlhUXVl
cnlFdmFsdWF0b3IgZXZhbHVhdG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6
ICJzY3JlZW4iLCBkb2N1bWVudCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQt
PmNvbXB1dGVkU3R5bGUoKSA6IG51bGxwdHIgfTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5v
dCBoYW5kbGluZyBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGRlcGVuZGVudCBtZWRpYSBxdWVyaWVz
LgotICAgIGlmIChwaWN0dXJlLT5oYXNWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSkKLSAgICAg
ICAgZG9jdW1lbnQoKS5hZGRWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUoKnBpY3R1cmUpOwotICAg
IGlmIChwaWN0dXJlLT5oYXNBcHBlYXJhbmNlRGVwZW5kZW50UmVzdWx0cygpKQotICAgICAgICBk
b2N1bWVudCgpLmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJlKTsKKyAgICBp
ZiAoIWV2YWx1YXRvci5ldmFsdWF0ZUZvckNoYW5nZXMobV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3Vs
dHMpKQorICAgICAgICByZXR1cm47CiAKLSAgICByZXR1cm4gY2FuZGlkYXRlOworICAgIHNlbGVj
dEltYWdlU291cmNlKCk7CiB9CiAKIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2VsZWN0SW1hZ2VT
b3VyY2UoKQogeworICAgIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzID0geyB9OworICAgIGRv
Y3VtZW50KCkucmVtb3ZlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZSgqdGhpcyk7CisK
ICAgICAvLyBGaXJzdCBsb29rIGZvciB0aGUgYmVzdCBmaXQgc291cmNlIGZyb20gb3VyIDxwaWN0
dXJlPiBwYXJlbnQgaWYgd2UgaGF2ZSBvbmUuCiAgICAgSW1hZ2VDYW5kaWRhdGUgY2FuZGlkYXRl
ID0gYmVzdEZpdFNvdXJjZUZyb21QaWN0dXJlRWxlbWVudCgpOwogICAgIGlmIChjYW5kaWRhdGUu
aXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSA8cGljdHVyZT4gb3Ig
ZGlkbid0IGZpbmQgYSBzb3VyY2UsIHRoZW4gd2UgdXNlIG91ciBvd24gYXR0cmlidXRlcy4KLSAg
ICAgICAgYXV0byBzb3VyY2VTaXplID0gU2l6ZXNBdHRyaWJ1dGVQYXJzZXIoYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzaXplc0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpKS5sZW5n
dGgoKTsKKyAgICAgICAgU2l6ZXNBdHRyaWJ1dGVQYXJzZXIgc2l6ZXNQYXJzZXIoYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihzaXplc0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpLCAm
bV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOworICAgICAgICBhdXRvIHNvdXJjZVNpemUgPSBz
aXplc1BhcnNlci5sZW5ndGgoKTsKICAgICAgICAgY2FuZGlkYXRlID0gYmVzdEZpdFNvdXJjZUZv
ckltYWdlQXR0cmlidXRlcyhkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIGF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3JjQXR0ciksIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oc3Jjc2V0QXR0ciksIHNvdXJjZVNpemUpOwogICAgIH0KICAgICBzZXRCZXN0Rml0
VVJMQW5kRFBSRnJvbUltYWdlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CiAgICAgbV9pbWFnZUxvYWRl
ci0+dXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsKKworICAgIGlmICgh
bV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuaXNFbXB0eSgpKQorICAgICAgICBkb2N1bWVudCgp
LmFkZER5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW50SW1hZ2UoKnRoaXMpOwogfQogCiB2b2lkIEhU
TUxJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtNjcxLDYgKzY4MSw4IEBAIHZvaWQgSFRNTElt
YWdlRWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4m
IHVybHMpIGNvbnN0CiAKIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1l
bnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpCiB7CisgICAg
b2xkRG9jdW1lbnQucmVtb3ZlRHluYW1pY01lZGlhUXVlcnlEZXBlbmRlbnRJbWFnZSgqdGhpcyk7
CisKICAgICBtX2ltYWdlTG9hZGVyLT5lbGVtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnQoKTsKICAg
ICBIVE1MRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQsIG5ld0RvY3Vt
ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggOWYwNTFk
MTZhMTMuLjdhMGFlZmU2ODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
aApAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRl
ICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJN
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xMzEsNiArMTMzLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNE
cm9wcGVkSW1hZ2VQbGFjZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIG1faXNEcm9wcGVkSW1hZ2VQ
bGFjZWhvbGRlcjsgfQogICAgIHZvaWQgc2V0SXNEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcigpIHsg
bV9pc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyID0gdHJ1ZTsgfQogCisgICAgdm9pZCBldmFsdWF0
ZUR5bmFtaWNNZWRpYVF1ZXJ5RGVwZW5kZW5jaWVzKCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1M
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxl
bWVudCogPSBudWxscHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlciA9IGZhbHNlKTsKIApAQCAtMTk4
LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8RWRpdGFibGVJbWFnZVJlZmVyZW5j
ZT4gbV9lZGl0YWJsZUltYWdlOwogICAgIFdlYWtQdHI8SFRNTFBpY3R1cmVFbGVtZW50PiBtX3Bp
Y3R1cmVFbGVtZW50OworICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtX21lZGlhUXVlcnlE
eW5hbWljUmVzdWx0czsKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgU3Ry
aW5nIG1fcGVuZGluZ0Nsb25lZEF0dGFjaG1lbnRJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmNwcAppbmRleCAzNjg0Y2ZmYWMwMC4uMTgwYjViNDk1ODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAKQEAgLTQ0LDE0ICs0NCwx
MCBAQCBIVE1MUGljdHVyZUVsZW1lbnQ6OkhUTUxQaWN0dXJlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZAogCiBIVE1MUGljdHVyZUVsZW1lbnQ6On5IVE1M
UGljdHVyZUVsZW1lbnQoKQogewotICAgIGRvY3VtZW50KCkucmVtb3ZlVmlld3BvcnREZXBlbmRl
bnRQaWN0dXJlKCp0aGlzKTsKLSAgICBkb2N1bWVudCgpLnJlbW92ZUFwcGVhcmFuY2VEZXBlbmRl
bnRQaWN0dXJlKCp0aGlzKTsKIH0KIAogdm9pZCBIVE1MUGljdHVyZUVsZW1lbnQ6OmRpZE1vdmVU
b05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50
KQogewotICAgIG9sZERvY3VtZW50LnJlbW92ZVZpZXdwb3J0RGVwZW5kZW50UGljdHVyZSgqdGhp
cyk7Ci0gICAgb2xkRG9jdW1lbnQucmVtb3ZlQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoKnRo
aXMpOwogICAgIEhUTUxFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCwg
bmV3RG9jdW1lbnQpOwogICAgIHNvdXJjZXNDaGFuZ2VkKCk7CiB9CkBAIC02NywzMCArNjMsNiBA
QCB2b2lkIEhUTUxQaWN0dXJlRWxlbWVudDo6c291cmNlc0NoYW5nZWQoKQogICAgICAgICBlbGVt
ZW50LnNlbGVjdEltYWdlU291cmNlKCk7CiB9CiAKLWJvb2wgSFRNTFBpY3R1cmVFbGVtZW50Ojp2
aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSgpIGNvbnN0Ci17Ci0gICAgYXV0byBkb2N1bWVu
dEVsZW1lbnQgPSBtYWtlUmVmUHRyKGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOwotICAg
IE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZhbHVhdG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8g
InByaW50IiA6ICJzY3JlZW4iLCBkb2N1bWVudCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVu
dEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUoKSA6IG51bGxwdHIgfTsKLSAgICBmb3IgKGF1dG8mIHJl
c3VsdCA6IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLnZpZXdwb3J0KSB7Ci0gICAgICAgIExP
RyhNZWRpYVF1ZXJpZXMsICJIVE1MUGljdHVyZUVsZW1lbnQgJXAgdmlld3BvcnRDaGFuZ2VBZmZl
Y3RlZFBpY3R1cmUgZXZhbHVhdGluZyBtZWRpYSBxdWVyaWVzIiwgdGhpcyk7Ci0gICAgICAgIGlm
IChldmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJlc3VsdC5yZXN1bHQp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci1ib29sIEhUTUxQaWN0dXJlRWxlbWVudDo6YXBwZWFyYW5jZUNoYW5nZUFmZmVjdGVkUGljdHVy
ZSgpIGNvbnN0Ci17Ci0gICAgYXV0byBkb2N1bWVudEVsZW1lbnQgPSBtYWtlUmVmUHRyKGRvY3Vt
ZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOwotICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZhbHVh
dG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1bWVu
dCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUoKSA6
IG51bGxwdHIgfTsKLSAgICBmb3IgKGF1dG8mIHJlc3VsdCA6IG1fbWVkaWFRdWVyeUR5bmFtaWNS
ZXN1bHRzLmFwcGVhcmFuY2UpIHsKLSAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxQaWN0
dXJlRWxlbWVudCAlcCBhcHBlYXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlIGV2YWx1YXRpbmcg
bWVkaWEgcXVlcmllcyIsIHRoaXMpOwotICAgICAgICBpZiAoZXZhbHVhdG9yLmV2YWx1YXRlKHJl
c3VsdC5leHByZXNzaW9uKSAhPSByZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogI2lmIFVTRShTWVNURU1fUFJFVklF
VykKIGJvb2wgSFRNTFBpY3R1cmVFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdJbWFnZSgpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAppbmRleCA4ZmZmZjQ1
NjkxNS4uZGM4ZTFhMTgzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBp
Y3R1cmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1l
bnQuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgotI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zOCwxNSArMzcsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNvdXJjZXND
aGFuZ2VkKCk7CiAKLQotICAgIHZvaWQgc2V0TWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKE1lZGlh
UXVlcnlEeW5hbWljUmVzdWx0cyYmIHJlc3VsdHMpIHsgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3Vs
dHMgPSByZXN1bHRzOyB9Ci0KLSAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50UmVzdWx0cygp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLnZpZXdwb3J0LnNpemUo
KTsgfQotICAgIGJvb2wgaGFzQXBwZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cy5hcHBlYXJhbmNlLnNpemUoKTsgfQotCi0g
ICAgYm9vbCB2aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSgpIGNvbnN0OwotICAgIGJvb2wg
YXBwZWFyYW5jZUNoYW5nZUFmZmVjdGVkUGljdHVyZSgpIGNvbnN0OwotCiAjaWYgVVNFKFNZU1RF
TV9QUkVWSUVXKQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1QcmV2aWV3SW1hZ2Uo
KSBjb25zdDsKICNlbmRpZgpAQCAtNTUsOCArNDUsNiBAQCBwcml2YXRlOgogICAgIEhUTUxQaWN0
dXJlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQg
ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3
RG9jdW1lbnQpIGZpbmFsOwotCi0gICAgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIG1fbWVkaWFR
dWVyeUR5bmFtaWNSZXN1bHRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggM2ZhNjRiZDgzNzkuLmExZmQz
MDAyNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTM4
MCw2ICszODAsMTUgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UmIG5ld0ltYWdlKQogICAgICAgICBwYWdlKCkuZGlkRmluaXNoTG9hZGluZ0ltYWdlRm9y
RWxlbWVudChkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50PigqZWxlbWVudCgpKSk7CiB9CiAKK3Zv
aWQgUmVuZGVySW1hZ2U6OnNldEltYWdlRGV2aWNlUGl4ZWxSYXRpbyhmbG9hdCBmYWN0b3IpCit7
CisgICAgaWYgKG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvID09IGZhY3RvcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9pbWFnZURldmljZVBpeGVsUmF0aW8gPSBmYWN0b3I7CisgICAgaW50cmlu
c2ljU2l6ZUNoYW5nZWQoKTsKK30KKwogYm9vbCBSZW5kZXJJbWFnZTo6aXNTaG93aW5nTWlzc2lu
Z09ySW1hZ2VFcnJvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpbWFnZVJlc291cmNlKCkuY2Fj
aGVkSW1hZ2UoKSB8fCBpbWFnZVJlc291cmNlKCkuZXJyb3JPY2N1cnJlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCBlY2Q1ZmM3MzIxZS4uYjI0MDJjMzQ3Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC02Niw3ICs2Niw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGFsdFRleHQoKSBjb25zdCB7IHJldHVybiBtX2Fs
dFRleHQ7IH0KICAgICB2b2lkIHNldEFsdFRleHQoY29uc3QgU3RyaW5nJiBhbHRUZXh0KSB7IG1f
YWx0VGV4dCA9IGFsdFRleHQ7IH0KIAotICAgIGlubGluZSB2b2lkIHNldEltYWdlRGV2aWNlUGl4
ZWxSYXRpbyhmbG9hdCBmYWN0b3IpIHsgbV9pbWFnZURldmljZVBpeGVsUmF0aW8gPSBmYWN0b3I7
IH0KKyAgICB2b2lkIHNldEltYWdlRGV2aWNlUGl4ZWxSYXRpbyhmbG9hdCBmYWN0b3IpOwogICAg
IGZsb2F0IGltYWdlRGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VEZXZp
Y2VQaXhlbFJhdGlvOyB9CiAKICAgICB2b2lkIHNldEhhc1NoYWRvd0NvbnRyb2xzKGJvb2wgaGFz
U2hhZG93Q29udHJvbHMpIHsgbV9oYXNTaGFkb3dDb250cm9scyA9IGhhc1NoYWRvd0NvbnRyb2xz
OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>