<?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>222406</bug_id>
          
          <creation_ts>2021-02-24 22:55:47 -0800</creation_ts>
          <short_desc>Render tree updates for Text node content mutations should happen during rendering update</short_desc>
          <delta_ts>2021-04-19 23:34:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>224323</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733230</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-24 22:55:47 -0800</bug_when>
    <thetext>Render tree should be mutated lazily as a part of rendering update like in all other cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733231</commentid>
    <comment_count>1</comment_count>
      <attachid>421504</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-24 22:56:44 -0800</bug_when>
    <thetext>Created attachment 421504
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733319</commentid>
    <comment_count>2</comment_count>
      <attachid>421523</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-25 07:24:47 -0800</bug_when>
    <thetext>Created attachment 421523
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733322</commentid>
    <comment_count>3</comment_count>
      <attachid>421525</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-25 07:42:08 -0800</bug_when>
    <thetext>Created attachment 421525
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733412</commentid>
    <comment_count>4</comment_count>
      <attachid>421546</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-25 10:54:50 -0800</bug_when>
    <thetext>Created attachment 421546
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733473</commentid>
    <comment_count>5</comment_count>
      <attachid>421546</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-25 13:15:20 -0800</bug_when>
    <thetext>Comment on attachment 421546
patch

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

&gt; Source/WebCore/ChangeLog:35
&gt; +        This is because subsequent steps in multipart commands expect render tree to be up to date.

Shouldn&apos;t this be handled by the next step triggering a render tree update? It&apos;s going to be hard for author of new code to know if they have to call updateStyleIfNeeded() or not.

&gt; Source/WebCore/ChangeLog:47
&gt; +        Pending text update mat ref the node so this refcount assert is not correct.

mat ref?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733485</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-25 13:38:55 -0800</bug_when>
    <thetext>&gt; Shouldn&apos;t this be handled by the next step triggering a render tree update?

In theory yes, but it is very difficult to discover all the paths that would need it as there is no guarantee test coverage is complete. In practice missing cases would be discover via regressions.

&gt; It&apos;s going to be hard for author of new code to know if they have to call
&gt; updateStyleIfNeeded() or not.

These just maintain the existing behaviour (sync render tree update on Text content mutations). 

Anyone working on this code needs to be careful about updates in any case, this patch in no way changes that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733486</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-25 13:39:43 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #6)
&gt; These just maintain the existing behaviour (sync render tree update on Text
&gt; content mutations). 

...in editing code specifically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733712</commentid>
    <comment_count>8</comment_count>
      <attachid>421631</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 03:15:49 -0800</bug_when>
    <thetext>Created attachment 421631
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733733</commentid>
    <comment_count>9</comment_count>
      <attachid>421636</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 06:38:45 -0800</bug_when>
    <thetext>Created attachment 421636
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733751</commentid>
    <comment_count>10</comment_count>
      <attachid>421643</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 07:37:09 -0800</bug_when>
    <thetext>Created attachment 421643
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733761</commentid>
    <comment_count>11</comment_count>
      <attachid>421645</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 08:00:47 -0800</bug_when>
    <thetext>Created attachment 421645
alternative approach

FWIW, here is a patch I made for this bug earlier. The idea is to let the first paint triggered by a resource load to always happen, even if the size has been computed to zero. It is bit hacky but so is rest of the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733764</commentid>
    <comment_count>12</comment_count>
      <attachid>421647</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 08:06:55 -0800</bug_when>
    <thetext>Created attachment 421647
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733821</commentid>
    <comment_count>13</comment_count>
      <attachid>421664</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 09:46:00 -0800</bug_when>
    <thetext>Created attachment 421664
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733826</commentid>
    <comment_count>14</comment_count>
      <attachid>421667</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 09:49:39 -0800</bug_when>
    <thetext>Created attachment 421667
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733883</commentid>
    <comment_count>15</comment_count>
      <attachid>421679</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 11:21:58 -0800</bug_when>
    <thetext>Created attachment 421679
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734140</commentid>
    <comment_count>16</comment_count>
      <attachid>421679</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-26 22:20:57 -0800</bug_when>
    <thetext>Comment on attachment 421679
patch

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

&gt; Source/WebCore/dom/CharacterData.cpp:105
&gt; -    if (is&lt;Text&gt;(*this) &amp;&amp; parentNode())
&gt; +    if (is&lt;Text&gt;(*this))

This doesn&apos;t seem to be mentioned in the changelog.

&gt; Source/WebCore/editing/CompositeEditCommand.cpp:1062
&gt; +    if (!nodes.isEmpty())
&gt; +        document().updateLayoutIgnorePendingStylesheets();

This is still pretty mysterious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734145</commentid>
    <comment_count>17</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 22:47:28 -0800</bug_when>
    <thetext>&gt; This doesn&apos;t seem to be mentioned in the changelog.

The check just moves to the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734155</commentid>
    <comment_count>18</comment_count>
      <attachid>421738</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-02-26 23:45:29 -0800</bug_when>
    <thetext>Created attachment 421738
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734162</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-27 00:24:07 -0800</bug_when>
    <thetext>Committed r273621: &lt;https://commits.webkit.org/r273621&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421738.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734163</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-27 00:25:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/74822830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734612</commentid>
    <comment_count>21</comment_count>
      <attachid>421738</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-01 14:26:14 -0800</bug_when>
    <thetext>Comment on attachment 421738
patch

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

&gt; Source/WebCore/style/StyleUpdate.cpp:104
&gt; +    auto result = m_texts.ensure(&amp;text, [&amp;] {
&gt; +        return WTFMove(textUpdate);
&gt; +    });

I think this is identical to:

    auto result = m_texts.add(&amp;text, WTFMove(textUpdate));

Maybe because it looks like WTFMove causes a &quot;move&quot; that the ensure form seems safer, but pretty sure it’s no different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734837</commentid>
    <comment_count>22</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-03-02 07:33:03 -0800</bug_when>
    <thetext>&gt; Maybe because it looks like WTFMove causes a &quot;move&quot; that the ensure form
&gt; seems safer, but pretty sure it’s no different.

Yeah, it just looked less dangerous. I think you are right that it is equivalent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748291</commentid>
    <comment_count>23</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-04-08 06:44:36 -0700</bug_when>
    <thetext>Reverted in r275657 due to PLT regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751868</commentid>
    <comment_count>24</comment_count>
      <attachid>426446</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-04-19 11:05:43 -0700</bug_when>
    <thetext>Created attachment 426446
patch for relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752153</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-19 23:33:58 -0700</bug_when>
    <thetext>Committed r276287 (236769@main): &lt;https://commits.webkit.org/236769@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426446.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421504</attachid>
            <date>2021-02-24 22:56:44 -0800</date>
            <delta_ts>2021-02-25 07:24:47 -0800</delta_ts>
            <desc>wip</desc>
            <filename>delayed-text-update.patch</filename>
            <type>text/plain</type>
            <size>4606</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDI2NWRkZjc4ZDA1ZS4uNTFlNmFjYmI3ZDY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTgwNyw2ICs4MDcsNyBAQCB2b2lkIERvY3VtZW50
OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNsZWFyKCk7
CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7CisgICAg
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcy5jbGVhcigpOwogCiAgICAgICAgIG1f
Zm9udFNlbGVjdG9yLT5zdG9wTG9hZGluZ0FuZENsZWFyRm9udHMoKTsKIApAQCAtMjA2NSw2ICsy
MDY2LDE0IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5
cGUpCiAKICAgICAgICAgZm9udFNlbGVjdG9yKCkubG9hZFBlbmRpbmdGb250cygpOwogCisgICAg
ICAgIGlmICghbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzLmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgaWYgKCFzdHlsZVVwZGF0ZSkKKyAgICAgICAgICAgICAgICBzdHlsZVVwZGF0ZSA9
IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOworICAgICAgICAgICAgZm9yIChhdXRv
JiB1cGRhdGUgOiBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMpCisgICAgICAgICAgICAg
ICAgc3R5bGVVcGRhdGUtPmFkZFRleHQoKnVwZGF0ZS5rZXksIHsgdXBkYXRlLnZhbHVlLm9mZnNl
dE9mUmVwbGFjZWRUZXh0LCB1cGRhdGUudmFsdWUubGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6
bnVsbG9wdCB9KTsKKyAgICAgICAgICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcy5j
bGVhcigpOworICAgICAgICB9CisKICAgICAgICAgaWYgKHN0eWxlVXBkYXRlKSB7CiAgICAgICAg
ICAgICB1cGRhdGVSZW5kZXJUcmVlKFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKICAgICAgICAgICAg
IGZyYW1lVmlldy5zdHlsZUFuZFJlbmRlclRyZWVEaWRDaGFuZ2UoKTsKQEAgLTIxMDAsMTAgKzIx
MDksMTUgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlw
ZSkKIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVyKFRleHQmIHRleHQsIHVuc2ln
bmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0LCB1bnNpZ25lZCBsZW5ndGhPZlJlcGxhY2VkVGV4dCkK
IHsKLSAgICBhdXRvIHRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlz
KTsKLSAgICB0ZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQs
IGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQgfSk7CisgICAgYXV0byByZXN1bHQg
PSBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMuYWRkKCZ0ZXh0LCBSZW5kZXJUcmVlVGV4
dFVwZGF0ZSB7IG9mZnNldE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCB9KTsK
KyAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KSB7CisgICAgICAgIGF1dG8mIGVudHJ5ID0gcmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgYXV0byBzdGFydE9mZnNldCA9IHN0ZDo6bWlu
KGVudHJ5Lm9mZnNldE9mUmVwbGFjZWRUZXh0LCBvZmZzZXRPZlJlcGxhY2VkVGV4dCk7CisgICAg
ICAgIGF1dG8gZW5kT2Zmc2V0ID0gc3RkOjptYXgoZW50cnkub2Zmc2V0T2ZSZXBsYWNlZFRleHQg
KyBlbnRyeS5sZW5ndGhPZlJlcGxhY2VkVGV4dCwgb2Zmc2V0T2ZSZXBsYWNlZFRleHQgKyBsZW5n
dGhPZlJlcGxhY2VkVGV4dCk7CisgICAgICAgIGVudHJ5ID0geyBzdGFydE9mZnNldCwgZW5kT2Zm
c2V0IC0gc3RhcnRPZmZzZXQgfTsKKyAgICB9CiAKLSAgICB1cGRhdGVSZW5kZXJUcmVlKFdURk1v
dmUodGV4dFVwZGF0ZSkpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKHsgfSk7CiB9CiAK
IGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdApAQCAtMjExNyw2ICsyMTMx
LDkgQEAgYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CiAgICAgaWYgKGNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIGlmICgh
bV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKICAgICBpZiAoc3R5bGVTY29wZSgpLmhhc1BlbmRpbmdVcGRhdGUoKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2FjZGZkNzNhNzE5Li43
NDVlZTNhODg1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xODAzLDYgKzE4MDMsMTIgQEAg
cHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0eWxlUmVjYWxjVGltZXI7CiAKKyAgICBzdHJ1
Y3QgUmVuZGVyVHJlZVRleHRVcGRhdGUgeworICAgICAgICB1bnNpZ25lZCBvZmZzZXRPZlJlcGxh
Y2VkVGV4dDsKKyAgICAgICAgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQ7CisgICAgfTsK
KyAgICBIYXNoTWFwPFJlZlB0cjxUZXh0PiwgUmVuZGVyVHJlZVRleHRVcGRhdGU+IG1fcGVuZGlu
Z1JlbmRlclRyZWVUZXh0VXBkYXRlczsKKwogICAgIEVsZW1lbnQqIG1fY3NzVGFyZ2V0IHsgbnVs
bHB0ciB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1hZ2VPYnNlcnZlcj4gbV9s
YXp5TG9hZEltYWdlT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggZGJl
NDk5NmFlODZhLi41Y2QwOTAzNDEyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAg
LTEzODUsNyArMTM4NSw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcGxhY2VDaGlsZHJlbldpdGhG
cmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1CiAgICAgYXV0byogY29u
dGFpbmVyQ2hpbGQgPSBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCk7CiAgICAgaWYgKGNvbnRh
aW5lckNoaWxkICYmICFjb250YWluZXJDaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBp
ZiAoaXM8VGV4dD4oKmNvbnRhaW5lckNoaWxkKSAmJiBoYXNPbmVUZXh0Q2hpbGQoZnJhZ21lbnQp
ICYmIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oZG93bmNhc3Q8VGV4dD4oKmNvbnRhaW5lckNo
aWxkKSwgbXV0YXRpb24pKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWZyYWdtZW50LT5maXJzdENo
aWxkKCktPnJlZkNvdW50KCkpOwogICAgICAgICAgICAgZG93bmNhc3Q8VGV4dD4oKmNvbnRhaW5l
ckNoaWxkKS5zZXREYXRhKGRvd25jYXN0PFRleHQ+KCpmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKS5k
YXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVVcGRhdGUuY3BwCmluZGV4IDA4NTkyYTJkOGEyMS4uNDlhZGQ3OWQ2MGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCkBAIC05NiwxMSArOTYsMTYgQEAgdm9pZCBV
cGRhdGU6OmFkZEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgRWxlbWVudCogcGFyZW50LCBFbGVt
ZW50VXBkYXRlcyYmIGVsZW0KIAogdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4dCYgdGV4dCwgRWxl
bWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHsKLSAgICBBU1NFUlQoIW1f
dGV4dHMuY29udGFpbnMoJnRleHQpKTsKICAgICBBU1NFUlQoY29tcG9zZWRUcmVlQW5jZXN0b3Jz
KHRleHQpLmZpcnN0KCkgPT0gcGFyZW50KTsKIAogICAgIGFkZFBvc3NpYmxlUm9vdChwYXJlbnQp
OwotICAgIG1fdGV4dHMuYWRkKCZ0ZXh0LCBXVEZNb3ZlKHRleHRVcGRhdGUpKTsKKyAgICBhdXRv
IHJlc3VsdCA9IG1fdGV4dHMuZW5zdXJlKCZ0ZXh0LCBbJl0geworICAgICAgICByZXR1cm4gV1RG
TW92ZSh0ZXh0VXBkYXRlKTsKKyAgICB9KTsKKyAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KSB7
CisgICAgICAgIGF1dG8mIGVudHJ5ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAg
ZW50cnkuaW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUgPSBXVEZNb3ZlKHRleHRVcGRhdGUu
aW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpOworICAgIH0KIH0KIAogdm9pZCBVcGRhdGU6
OmFkZFRleHQoVGV4dCYgdGV4dCwgVGV4dFVwZGF0ZSYmIHRleHRVcGRhdGUpCg==
</data>
<flag name="commit-queue"
          id="440374"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421523</attachid>
            <date>2021-02-25 07:24:47 -0800</date>
            <delta_ts>2021-02-25 07:42:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update.patch</filename>
            <type>text/plain</type>
            <size>11480</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YTRkNDZjNjJmNTYuLjk3ZTQyMDg3YTk1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjQgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3ZlIGR1cGxpY2F0ZWQgaXRlbXMg
aW4gTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyByZWxhdGVkIHRvIG1l
ZGlhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXIt
cmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dAppbmRleCBiODU1MmFlYzc4OTYuLjhiMTM3ODkxNzkx
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3Qt
bGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSBAQAotQgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE3MTIzN2ZmMWRiLi4xNDcwZmMyN2Fh
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0wMi0yNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyIHRyZWUgdXBkYXRlcyBmb3Ig
VGV4dCBub2RlIGNvbnRlbnQgbXV0YXRpb25zIHNob3VsZCBub3QgYmUgc3luY2hyb25vdXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGxzIHRvIFRl
eHQuaW5zZXJ0RGF0YSBhbmQgc2ltaWxhciBzaG91bGQgbm90IG11dGF0ZSByZW5kZXIgdHJlZSBz
eW5jaHJvbm91c2x5LgorICAgICAgICBJbnN0ZWFkIHJlbmRlciB0cmVlIHNob3VsZCBiZSB1cGRh
dGVkIGR1cmluZyBuZXh0IHJlbmRlcmluZyB1cGRhdGUgYWxvbmcgd2l0aAorICAgICAgICBhbnkg
c3R5bGUgY2hhbmdlcy4KKworICAgICAgICBUaGVzZSB1cGRhdGVzIGFscmVhZHkgZ28gdmlhIFJl
bmRlclRyZWVVcGRhdGVyLiBXZSBqdXN0IG5lZWQgdG8gc2F2ZSB0aGUgaW5mcm9tYXRpb24KKyAg
ICAgICAgYWJvdXQgd2hpY2ggbm9kZXMgbmVlZCB1cGRhdGluZyBzbyB0aGUgbmV4dCByZW5kZXJp
bmcgdXBkYXRlIGNhbiBwaWNrIHRoZW0gdXAuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAgIEFkZCB0aGUgdGV4
dCB1cGRhdGVzIHRvIFN0eWxlOjpVcGRhdGUgc2V0IGJlZm9yZSBjYWxsaW5nIGludG8gUmVuZGVy
VHJlZVVwZGF0ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVu
ZGVyZXIpOgorCisgICAgICAgIFNhdmUgdGhlIHRleHQgbm9kZXMgbmVlZGluZyB1cGRhdGUuCisK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKwor
ICAgICAgICBXZSBuZWVkIHJlY2FsYyBpZiB0aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVwZGF0ZXMu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorCisgICAgICAgIFdlIG5lZWQgdG8gZm9yY2UgdXBkYXRl
IGFmdGVyIGNvbnRlbnQgbXV0YXRpb25zIGluIGVkaXRpbmcgY29tbWFuZHMgdGhhdCBtdXRhdGUg
VGV4dCBub2RlIGNvbnRlbnQuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBzdWJzZXF1ZW50IHN0
ZXBzIGluIG11bHRpcGFydCBjb21tYW5kcyBleHBlY3QgcmVuZGVyIHRyZWUgdG8gYmUgdXAgdG8g
ZGF0ZS4KKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvUmVhcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkp
OgorICAgICAgICAqIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3BsaXRUZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmltVGV4dDIpOgorICAg
ICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGls
ZHJlbldpdGhGcmFnbWVudCk6CisKKyAgICAgICAgUGVuZGluZyB0ZXh0IHVwZGF0ZSBtYXQgcmVm
IHRoZSBub2RlIHNvIHRoaXMgcmVmY291bnQgYXNzZXJ0IGlzIG5vdCBjb3JyZWN0LgorCisgICAg
ICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVw
ZGF0ZTo6YWRkVGV4dCk6CisKIDIwMjEtMDItMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQXZvaWQgdHJlZSB0cmF2ZXJzYWxzIHRvIGxvb2sgZm9yIGZvcm0g
YW5kIGNhbnZhcyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODAwYzdiOTk2
MWIyLi4wM2Y2YWY1M2M1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA3LDYgKzgw
Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAgbV9mdWxsc2Ny
ZWVuTWFuYWdlci0+Y2xlYXIoKTsKICNlbmRpZgogICAgICAgICBtX2Fzc29jaWF0ZWRGb3JtQ29u
dHJvbHMuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzLmNs
ZWFyKCk7CiAKICAgICAgICAgbV9mb250U2VsZWN0b3ItPnN0b3BMb2FkaW5nQW5kQ2xlYXJGb250
cygpOwogCkBAIC0yMDY1LDYgKzIwNjYsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxl
KFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKIAogICAgICAgICBmb250U2VsZWN0b3IoKS5sb2FkUGVu
ZGluZ0ZvbnRzKCk7CiAKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0
ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlKQorICAgICAgICAg
ICAgICAgIHN0eWxlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8mIHVwZGF0ZSA6IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBk
YXRlcykKKyAgICAgICAgICAgICAgICBzdHlsZVVwZGF0ZS0+YWRkVGV4dCgqdXBkYXRlLmtleSwg
eyB1cGRhdGUudmFsdWUub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVwZGF0ZS52YWx1ZS5sZW5ndGhP
ZlJlcGxhY2VkVGV4dCwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGVzLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc3R5
bGVVcGRhdGUpIHsKICAgICAgICAgICAgIHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZShzdHlsZVVw
ZGF0ZSkpOwogICAgICAgICAgICAgZnJhbWVWaWV3LnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5n
ZSgpOwpAQCAtMjEwMCwxMCArMjEwOSwxNSBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUo
UmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVy
ZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxl
bmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8
U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBv
ZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcy5hZGQo
JnRleHQsIFJlbmRlclRyZWVUZXh0VXBkYXRlIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0
aE9mUmVwbGFjZWRUZXh0IH0pOworICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAg
ICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBhdXRvIHN0
YXJ0T2Zmc2V0ID0gc3RkOjptaW4oZW50cnkub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIG9mZnNldE9m
UmVwbGFjZWRUZXh0KTsKKyAgICAgICAgYXV0byBlbmRPZmZzZXQgPSBzdGQ6Om1heChlbnRyeS5v
ZmZzZXRPZlJlcGxhY2VkVGV4dCArIGVudHJ5Lmxlbmd0aE9mUmVwbGFjZWRUZXh0LCBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCArIGxlbmd0aE9mUmVwbGFjZWRUZXh0KTsKKyAgICAgICAgZW50cnkgPSB7
IHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCB9OworICAgIH0KIAotICAgIHVw
ZGF0ZVJlbmRlclRyZWUoV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoeyB9KTsKIH0KIAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNv
bnN0CkBAIC0yMTE3LDYgKzIxMzEsOSBAQCBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxj
KCkgY29uc3QKICAgICBpZiAoY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCisgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChzdHlsZVNjb3BlKCkuaGFzUGVu
ZGluZ1VwZGF0ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCAzYWNkZmQ3M2E3MTkuLmY4ZjY5NGUzYjI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTE4MDMsNiArMTgwMywxMyBAQCBwcml2YXRlOgogICAgIAogICAgIFRpbWVyIG1fc3R5bGVSZWNh
bGNUaW1lcjsKIAorICAgIC8vIEZJWE1FOiBVc2UgU3R5bGU6OlVwZGF0ZSB0eXBlIGluc3RlYWQg
b2YgYSBjdXN0b20gbWFwLgorICAgIHN0cnVjdCBSZW5kZXJUcmVlVGV4dFVwZGF0ZSB7CisgICAg
ICAgIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0OworICAgICAgICB1bnNpZ25lZCBsZW5n
dGhPZlJlcGxhY2VkVGV4dDsKKyAgICB9OworICAgIEhhc2hNYXA8UmVmUHRyPFRleHQ+LCBSZW5k
ZXJUcmVlVGV4dFVwZGF0ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzOworCiAgICAg
RWxlbWVudCogbV9jc3NUYXJnZXQgeyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IGRlZjhhZmQ5ODgxOC4uZjAwYzNiMDllODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTUyLDYgKzUyLDcg
QEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fdGV4dCA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICBtX25v
ZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQpOworICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiB9CiAKIHZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTYwLDYgKzYxLDcgQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICBt
X25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCk7CisgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIH0KIAogI2lmbmRlZiBOREVCVUcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCmluZGV4IGRmMDE4MjZmMzkzYS4uMTA0Yjk0YTVmNDAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTY2
LDYgKzY2LDcgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAg
ICB9CiAgICAgCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQpOworICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiB9CiAK
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9SZWFwcGx5KCkKQEAgLTc0LDYgKzc1
LDcgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIH0K
IAogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtODIsNiAr
ODQsNyBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxl
bmd0aCgpKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA3M2Q2MDljYWM5OGUuLjMzMTlmODg5YTYw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTc3LDYgKzc3LDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKICAgICBTdHJpbmcgcHJlZml4VGV4dCA9IG1fdGV4dDEtPmRhdGEoKTsKIAogICAgIG1fdGV4
dDItPmluc2VydERhdGEoMCwgcHJlZml4VGV4dCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGRvY3VtZW50KCkubWFya2Vycygp
LmNvcHlNYXJrZXJzKCptX3RleHQxLCB7IDAsIHByZWZpeFRleHQubGVuZ3RoKCkgfSwgbV90ZXh0
Mik7CiAgICAgbV90ZXh0MS0+cmVtb3ZlKCk7CkBAIC05OSw2ICsxMDAsNyBAQCB2b2lkIFNwbGl0
VGV4dE5vZGVDb21tYW5kOjppbnNlcnRUZXh0MUFuZFRyaW1UZXh0MigpCiAgICAgaWYgKG1fdGV4
dDItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKCptX3RleHQxLCBtX3RleHQyLnB0cigpKS5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fdGV4dDItPmRlbGV0ZURhdGEo
MCwgbV9vZmZzZXQpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAKaW5kZXggZGJlNDk5NmFlODZhLi41Y2QwOTAzNDEyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5jcHAKQEAgLTEzODUsNyArMTM4NSw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcGxhY2VD
aGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1CiAg
ICAgYXV0byogY29udGFpbmVyQ2hpbGQgPSBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCk7CiAg
ICAgaWYgKGNvbnRhaW5lckNoaWxkICYmICFjb250YWluZXJDaGlsZC0+bmV4dFNpYmxpbmcoKSkg
ewogICAgICAgICBpZiAoaXM8VGV4dD4oKmNvbnRhaW5lckNoaWxkKSAmJiBoYXNPbmVUZXh0Q2hp
bGQoZnJhZ21lbnQpICYmIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oZG93bmNhc3Q8VGV4dD4o
KmNvbnRhaW5lckNoaWxkKSwgbXV0YXRpb24pKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWZyYWdt
ZW50LT5maXJzdENoaWxkKCktPnJlZkNvdW50KCkpOwogICAgICAgICAgICAgZG93bmNhc3Q8VGV4
dD4oKmNvbnRhaW5lckNoaWxkKS5zZXREYXRhKGRvd25jYXN0PFRleHQ+KCpmcmFnbWVudC0+Zmly
c3RDaGlsZCgpKS5kYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCmluZGV4IDA4NTkyYTJkOGEyMS4uNzhlYWZm
OGIzYmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCkBAIC05NiwxMSArOTYs
MTQgQEAgdm9pZCBVcGRhdGU6OmFkZEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgRWxlbWVudCog
cGFyZW50LCBFbGVtZW50VXBkYXRlcyYmIGVsZW0KIAogdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4
dCYgdGV4dCwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHsKLSAg
ICBBU1NFUlQoIW1fdGV4dHMuY29udGFpbnMoJnRleHQpKTsKICAgICBBU1NFUlQoY29tcG9zZWRU
cmVlQW5jZXN0b3JzKHRleHQpLmZpcnN0KCkgPT0gcGFyZW50KTsKIAogICAgIGFkZFBvc3NpYmxl
Um9vdChwYXJlbnQpOwotICAgIG1fdGV4dHMuYWRkKCZ0ZXh0LCBXVEZNb3ZlKHRleHRVcGRhdGUp
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGV4dHMuZW5zdXJlKCZ0ZXh0LCBbJl0geworICAgICAg
ICByZXR1cm4gV1RGTW92ZSh0ZXh0VXBkYXRlKTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VE
KHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkgfHwgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5vZmZz
ZXQgPT0gMCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5IHx8
IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUubGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5z
aWduZWQ+OjptYXgoKSk7CiB9CiAKIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIFRl
eHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421525</attachid>
            <date>2021-02-25 07:42:08 -0800</date>
            <delta_ts>2021-02-25 13:08:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-2.patch</filename>
            <type>text/plain</type>
            <size>11443</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YTRkNDZjNjJmNTYuLjk3ZTQyMDg3YTk1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjQgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3ZlIGR1cGxpY2F0ZWQgaXRlbXMg
aW4gTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyByZWxhdGVkIHRvIG1l
ZGlhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXIt
cmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dAppbmRleCBiODU1MmFlYzc4OTYuLjhiMTM3ODkxNzkx
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3Qt
bGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSBAQAotQgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE3MTIzN2ZmMWRiLi4xNDcwZmMyN2Fh
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0wMi0yNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyIHRyZWUgdXBkYXRlcyBmb3Ig
VGV4dCBub2RlIGNvbnRlbnQgbXV0YXRpb25zIHNob3VsZCBub3QgYmUgc3luY2hyb25vdXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGxzIHRvIFRl
eHQuaW5zZXJ0RGF0YSBhbmQgc2ltaWxhciBzaG91bGQgbm90IG11dGF0ZSByZW5kZXIgdHJlZSBz
eW5jaHJvbm91c2x5LgorICAgICAgICBJbnN0ZWFkIHJlbmRlciB0cmVlIHNob3VsZCBiZSB1cGRh
dGVkIGR1cmluZyBuZXh0IHJlbmRlcmluZyB1cGRhdGUgYWxvbmcgd2l0aAorICAgICAgICBhbnkg
c3R5bGUgY2hhbmdlcy4KKworICAgICAgICBUaGVzZSB1cGRhdGVzIGFscmVhZHkgZ28gdmlhIFJl
bmRlclRyZWVVcGRhdGVyLiBXZSBqdXN0IG5lZWQgdG8gc2F2ZSB0aGUgaW5mcm9tYXRpb24KKyAg
ICAgICAgYWJvdXQgd2hpY2ggbm9kZXMgbmVlZCB1cGRhdGluZyBzbyB0aGUgbmV4dCByZW5kZXJp
bmcgdXBkYXRlIGNhbiBwaWNrIHRoZW0gdXAuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAgIEFkZCB0aGUgdGV4
dCB1cGRhdGVzIHRvIFN0eWxlOjpVcGRhdGUgc2V0IGJlZm9yZSBjYWxsaW5nIGludG8gUmVuZGVy
VHJlZVVwZGF0ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVu
ZGVyZXIpOgorCisgICAgICAgIFNhdmUgdGhlIHRleHQgbm9kZXMgbmVlZGluZyB1cGRhdGUuCisK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKwor
ICAgICAgICBXZSBuZWVkIHJlY2FsYyBpZiB0aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVwZGF0ZXMu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorCisgICAgICAgIFdlIG5lZWQgdG8gZm9yY2UgdXBkYXRl
IGFmdGVyIGNvbnRlbnQgbXV0YXRpb25zIGluIGVkaXRpbmcgY29tbWFuZHMgdGhhdCBtdXRhdGUg
VGV4dCBub2RlIGNvbnRlbnQuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBzdWJzZXF1ZW50IHN0
ZXBzIGluIG11bHRpcGFydCBjb21tYW5kcyBleHBlY3QgcmVuZGVyIHRyZWUgdG8gYmUgdXAgdG8g
ZGF0ZS4KKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvUmVhcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkp
OgorICAgICAgICAqIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3BsaXRUZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmltVGV4dDIpOgorICAg
ICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGls
ZHJlbldpdGhGcmFnbWVudCk6CisKKyAgICAgICAgUGVuZGluZyB0ZXh0IHVwZGF0ZSBtYXQgcmVm
IHRoZSBub2RlIHNvIHRoaXMgcmVmY291bnQgYXNzZXJ0IGlzIG5vdCBjb3JyZWN0LgorCisgICAg
ICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVw
ZGF0ZTo6YWRkVGV4dCk6CisKIDIwMjEtMDItMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQXZvaWQgdHJlZSB0cmF2ZXJzYWxzIHRvIGxvb2sgZm9yIGZvcm0g
YW5kIGNhbnZhcyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODAwYzdiOTk2
MWIyLi4wM2Y2YWY1M2M1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA3LDYgKzgw
Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAgbV9mdWxsc2Ny
ZWVuTWFuYWdlci0+Y2xlYXIoKTsKICNlbmRpZgogICAgICAgICBtX2Fzc29jaWF0ZWRGb3JtQ29u
dHJvbHMuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzLmNs
ZWFyKCk7CiAKICAgICAgICAgbV9mb250U2VsZWN0b3ItPnN0b3BMb2FkaW5nQW5kQ2xlYXJGb250
cygpOwogCkBAIC0yMDY1LDYgKzIwNjYsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxl
KFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKIAogICAgICAgICBmb250U2VsZWN0b3IoKS5sb2FkUGVu
ZGluZ0ZvbnRzKCk7CiAKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0
ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlKQorICAgICAgICAg
ICAgICAgIHN0eWxlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8mIHVwZGF0ZSA6IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBk
YXRlcykKKyAgICAgICAgICAgICAgICBzdHlsZVVwZGF0ZS0+YWRkVGV4dCgqdXBkYXRlLmtleSwg
eyB1cGRhdGUudmFsdWUub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVwZGF0ZS52YWx1ZS5sZW5ndGhP
ZlJlcGxhY2VkVGV4dCwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGVzLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc3R5
bGVVcGRhdGUpIHsKICAgICAgICAgICAgIHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZShzdHlsZVVw
ZGF0ZSkpOwogICAgICAgICAgICAgZnJhbWVWaWV3LnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5n
ZSgpOwpAQCAtMjEwMCwxMCArMjEwOSwxNSBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUo
UmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVy
ZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxl
bmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8
U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBv
ZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcy5hZGQo
JnRleHQsIFJlbmRlclRyZWVUZXh0VXBkYXRlIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0
aE9mUmVwbGFjZWRUZXh0IH0pOworICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAg
ICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBhdXRvIHN0
YXJ0T2Zmc2V0ID0gc3RkOjptaW4oZW50cnkub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIG9mZnNldE9m
UmVwbGFjZWRUZXh0KTsKKyAgICAgICAgYXV0byBlbmRPZmZzZXQgPSBzdGQ6Om1heChlbnRyeS5v
ZmZzZXRPZlJlcGxhY2VkVGV4dCArIGVudHJ5Lmxlbmd0aE9mUmVwbGFjZWRUZXh0LCBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCArIGxlbmd0aE9mUmVwbGFjZWRUZXh0KTsKKyAgICAgICAgZW50cnkgPSB7
IHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCB9OworICAgIH0KIAotICAgIHVw
ZGF0ZVJlbmRlclRyZWUoV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoeyB9KTsKIH0KIAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNv
bnN0CkBAIC0yMTE3LDYgKzIxMzEsOSBAQCBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxj
KCkgY29uc3QKICAgICBpZiAoY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCisgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChzdHlsZVNjb3BlKCkuaGFzUGVu
ZGluZ1VwZGF0ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCAzYWNkZmQ3M2E3MTkuLmY4ZjY5NGUzYjI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTE4MDMsNiArMTgwMywxMyBAQCBwcml2YXRlOgogICAgIAogICAgIFRpbWVyIG1fc3R5bGVSZWNh
bGNUaW1lcjsKIAorICAgIC8vIEZJWE1FOiBVc2UgU3R5bGU6OlVwZGF0ZSB0eXBlIGluc3RlYWQg
b2YgYSBjdXN0b20gbWFwLgorICAgIHN0cnVjdCBSZW5kZXJUcmVlVGV4dFVwZGF0ZSB7CisgICAg
ICAgIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0OworICAgICAgICB1bnNpZ25lZCBsZW5n
dGhPZlJlcGxhY2VkVGV4dDsKKyAgICB9OworICAgIEhhc2hNYXA8UmVmUHRyPFRleHQ+LCBSZW5k
ZXJUcmVlVGV4dFVwZGF0ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzOworCiAgICAg
RWxlbWVudCogbV9jc3NUYXJnZXQgeyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IGRlZjhhZmQ5ODgxOC4uZjAwYzNiMDllODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTUyLDYgKzUyLDcg
QEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fdGV4dCA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICBtX25v
ZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQpOworICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiB9CiAKIHZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTYwLDYgKzYxLDcgQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICBt
X25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCk7CisgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIH0KIAogI2lmbmRlZiBOREVCVUcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCmluZGV4IGRmMDE4MjZmMzkzYS4uMTA0Yjk0YTVmNDAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTY2
LDYgKzY2LDcgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAg
ICB9CiAgICAgCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQpOworICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiB9CiAK
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9SZWFwcGx5KCkKQEAgLTc0LDYgKzc1
LDcgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIH0K
IAogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtODIsNiAr
ODQsNyBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxl
bmd0aCgpKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA3M2Q2MDljYWM5OGUuLjMzMTlmODg5YTYw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTc3LDYgKzc3LDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKICAgICBTdHJpbmcgcHJlZml4VGV4dCA9IG1fdGV4dDEtPmRhdGEoKTsKIAogICAgIG1fdGV4
dDItPmluc2VydERhdGEoMCwgcHJlZml4VGV4dCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGRvY3VtZW50KCkubWFya2Vycygp
LmNvcHlNYXJrZXJzKCptX3RleHQxLCB7IDAsIHByZWZpeFRleHQubGVuZ3RoKCkgfSwgbV90ZXh0
Mik7CiAgICAgbV90ZXh0MS0+cmVtb3ZlKCk7CkBAIC05OSw2ICsxMDAsNyBAQCB2b2lkIFNwbGl0
VGV4dE5vZGVDb21tYW5kOjppbnNlcnRUZXh0MUFuZFRyaW1UZXh0MigpCiAgICAgaWYgKG1fdGV4
dDItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKCptX3RleHQxLCBtX3RleHQyLnB0cigpKS5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fdGV4dDItPmRlbGV0ZURhdGEo
MCwgbV9vZmZzZXQpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAKaW5kZXggZGJlNDk5NmFlODZhLi41Y2QwOTAzNDEyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5jcHAKQEAgLTEzODUsNyArMTM4NSw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcGxhY2VD
aGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1CiAg
ICAgYXV0byogY29udGFpbmVyQ2hpbGQgPSBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCk7CiAg
ICAgaWYgKGNvbnRhaW5lckNoaWxkICYmICFjb250YWluZXJDaGlsZC0+bmV4dFNpYmxpbmcoKSkg
ewogICAgICAgICBpZiAoaXM8VGV4dD4oKmNvbnRhaW5lckNoaWxkKSAmJiBoYXNPbmVUZXh0Q2hp
bGQoZnJhZ21lbnQpICYmIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oZG93bmNhc3Q8VGV4dD4o
KmNvbnRhaW5lckNoaWxkKSwgbXV0YXRpb24pKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWZyYWdt
ZW50LT5maXJzdENoaWxkKCktPnJlZkNvdW50KCkpOwogICAgICAgICAgICAgZG93bmNhc3Q8VGV4
dD4oKmNvbnRhaW5lckNoaWxkKS5zZXREYXRhKGRvd25jYXN0PFRleHQ+KCpmcmFnbWVudC0+Zmly
c3RDaGlsZCgpKS5kYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCmluZGV4IDA4NTkyYTJkOGEyMS4uN2UzMjJi
OGQ1YTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCkBAIC05NiwxMSArOTYs
MTIgQEAgdm9pZCBVcGRhdGU6OmFkZEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgRWxlbWVudCog
cGFyZW50LCBFbGVtZW50VXBkYXRlcyYmIGVsZW0KIAogdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4
dCYgdGV4dCwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHsKLSAg
ICBBU1NFUlQoIW1fdGV4dHMuY29udGFpbnMoJnRleHQpKTsKICAgICBBU1NFUlQoY29tcG9zZWRU
cmVlQW5jZXN0b3JzKHRleHQpLmZpcnN0KCkgPT0gcGFyZW50KTsKIAogICAgIGFkZFBvc3NpYmxl
Um9vdChwYXJlbnQpOwotICAgIG1fdGV4dHMuYWRkKCZ0ZXh0LCBXVEZNb3ZlKHRleHRVcGRhdGUp
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGV4dHMuYWRkKCZ0ZXh0LCBXVEZNb3ZlKHRleHRVcGRh
dGUpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkgfHwgIXJl
c3VsdC5pdGVyYXRvci0+dmFsdWUub2Zmc2V0KTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwg
cmVzdWx0LmlzTmV3RW50cnkgfHwgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5sZW5ndGggPT0gc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKIH0KIAogdm9pZCBVcGRhdGU6OmFk
ZFRleHQoVGV4dCYgdGV4dCwgVGV4dFVwZGF0ZSYmIHRleHRVcGRhdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421546</attachid>
            <date>2021-02-25 10:54:50 -0800</date>
            <delta_ts>2021-02-26 03:15:49 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-3.patch</filename>
            <type>text/plain</type>
            <size>11286</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YTRkNDZjNjJmNTYuLjk3ZTQyMDg3YTk1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjQgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3ZlIGR1cGxpY2F0ZWQgaXRlbXMg
aW4gTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyByZWxhdGVkIHRvIG1l
ZGlhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXIt
cmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dAppbmRleCBiODU1MmFlYzc4OTYuLjhiMTM3ODkxNzkx
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3Qt
bGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSBAQAotQgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE3MTIzN2ZmMWRiLi4xNDcwZmMyN2Fh
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0wMi0yNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyIHRyZWUgdXBkYXRlcyBmb3Ig
VGV4dCBub2RlIGNvbnRlbnQgbXV0YXRpb25zIHNob3VsZCBub3QgYmUgc3luY2hyb25vdXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGxzIHRvIFRl
eHQuaW5zZXJ0RGF0YSBhbmQgc2ltaWxhciBzaG91bGQgbm90IG11dGF0ZSByZW5kZXIgdHJlZSBz
eW5jaHJvbm91c2x5LgorICAgICAgICBJbnN0ZWFkIHJlbmRlciB0cmVlIHNob3VsZCBiZSB1cGRh
dGVkIGR1cmluZyBuZXh0IHJlbmRlcmluZyB1cGRhdGUgYWxvbmcgd2l0aAorICAgICAgICBhbnkg
c3R5bGUgY2hhbmdlcy4KKworICAgICAgICBUaGVzZSB1cGRhdGVzIGFscmVhZHkgZ28gdmlhIFJl
bmRlclRyZWVVcGRhdGVyLiBXZSBqdXN0IG5lZWQgdG8gc2F2ZSB0aGUgaW5mcm9tYXRpb24KKyAg
ICAgICAgYWJvdXQgd2hpY2ggbm9kZXMgbmVlZCB1cGRhdGluZyBzbyB0aGUgbmV4dCByZW5kZXJp
bmcgdXBkYXRlIGNhbiBwaWNrIHRoZW0gdXAuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAgIEFkZCB0aGUgdGV4
dCB1cGRhdGVzIHRvIFN0eWxlOjpVcGRhdGUgc2V0IGJlZm9yZSBjYWxsaW5nIGludG8gUmVuZGVy
VHJlZVVwZGF0ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVu
ZGVyZXIpOgorCisgICAgICAgIFNhdmUgdGhlIHRleHQgbm9kZXMgbmVlZGluZyB1cGRhdGUuCisK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKwor
ICAgICAgICBXZSBuZWVkIHJlY2FsYyBpZiB0aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVwZGF0ZXMu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorCisgICAgICAgIFdlIG5lZWQgdG8gZm9yY2UgdXBkYXRl
IGFmdGVyIGNvbnRlbnQgbXV0YXRpb25zIGluIGVkaXRpbmcgY29tbWFuZHMgdGhhdCBtdXRhdGUg
VGV4dCBub2RlIGNvbnRlbnQuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBzdWJzZXF1ZW50IHN0
ZXBzIGluIG11bHRpcGFydCBjb21tYW5kcyBleHBlY3QgcmVuZGVyIHRyZWUgdG8gYmUgdXAgdG8g
ZGF0ZS4KKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvUmVhcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkp
OgorICAgICAgICAqIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3BsaXRUZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmltVGV4dDIpOgorICAg
ICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGls
ZHJlbldpdGhGcmFnbWVudCk6CisKKyAgICAgICAgUGVuZGluZyB0ZXh0IHVwZGF0ZSBtYXQgcmVm
IHRoZSBub2RlIHNvIHRoaXMgcmVmY291bnQgYXNzZXJ0IGlzIG5vdCBjb3JyZWN0LgorCisgICAg
ICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVw
ZGF0ZTo6YWRkVGV4dCk6CisKIDIwMjEtMDItMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQXZvaWQgdHJlZSB0cmF2ZXJzYWxzIHRvIGxvb2sgZm9yIGZvcm0g
YW5kIGNhbnZhcyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODAwYzdiOTk2
MWIyLi4wM2Y2YWY1M2M1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA3LDYgKzgw
Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAgbV9mdWxsc2Ny
ZWVuTWFuYWdlci0+Y2xlYXIoKTsKICNlbmRpZgogICAgICAgICBtX2Fzc29jaWF0ZWRGb3JtQ29u
dHJvbHMuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzLmNs
ZWFyKCk7CiAKICAgICAgICAgbV9mb250U2VsZWN0b3ItPnN0b3BMb2FkaW5nQW5kQ2xlYXJGb250
cygpOwogCkBAIC0yMDY1LDYgKzIwNjYsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxl
KFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKIAogICAgICAgICBmb250U2VsZWN0b3IoKS5sb2FkUGVu
ZGluZ0ZvbnRzKCk7CiAKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0
ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlKQorICAgICAgICAg
ICAgICAgIHN0eWxlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8mIHVwZGF0ZSA6IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBk
YXRlcykKKyAgICAgICAgICAgICAgICBzdHlsZVVwZGF0ZS0+YWRkVGV4dCgqdXBkYXRlLmtleSwg
eyB1cGRhdGUudmFsdWUub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVwZGF0ZS52YWx1ZS5sZW5ndGhP
ZlJlcGxhY2VkVGV4dCwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGVzLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc3R5
bGVVcGRhdGUpIHsKICAgICAgICAgICAgIHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZShzdHlsZVVw
ZGF0ZSkpOwogICAgICAgICAgICAgZnJhbWVWaWV3LnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5n
ZSgpOwpAQCAtMjEwMCwxMCArMjEwOSwxNSBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUo
UmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVy
ZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxl
bmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8
U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBv
ZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcy5hZGQo
JnRleHQsIFJlbmRlclRyZWVUZXh0VXBkYXRlIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0
aE9mUmVwbGFjZWRUZXh0IH0pOworICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAg
ICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBhdXRvIHN0
YXJ0T2Zmc2V0ID0gc3RkOjptaW4oZW50cnkub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIG9mZnNldE9m
UmVwbGFjZWRUZXh0KTsKKyAgICAgICAgYXV0byBlbmRPZmZzZXQgPSBzdGQ6Om1heChlbnRyeS5v
ZmZzZXRPZlJlcGxhY2VkVGV4dCArIGVudHJ5Lmxlbmd0aE9mUmVwbGFjZWRUZXh0LCBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCArIGxlbmd0aE9mUmVwbGFjZWRUZXh0KTsKKyAgICAgICAgZW50cnkgPSB7
IHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCB9OworICAgIH0KIAotICAgIHVw
ZGF0ZVJlbmRlclRyZWUoV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoeyB9KTsKIH0KIAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNv
bnN0CkBAIC0yMTE3LDYgKzIxMzEsOSBAQCBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxj
KCkgY29uc3QKICAgICBpZiAoY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCisgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChzdHlsZVNjb3BlKCkuaGFzUGVu
ZGluZ1VwZGF0ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCAzYWNkZmQ3M2E3MTkuLmY4ZjY5NGUzYjI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTE4MDMsNiArMTgwMywxMyBAQCBwcml2YXRlOgogICAgIAogICAgIFRpbWVyIG1fc3R5bGVSZWNh
bGNUaW1lcjsKIAorICAgIC8vIEZJWE1FOiBVc2UgU3R5bGU6OlVwZGF0ZSB0eXBlIGluc3RlYWQg
b2YgYSBjdXN0b20gbWFwLgorICAgIHN0cnVjdCBSZW5kZXJUcmVlVGV4dFVwZGF0ZSB7CisgICAg
ICAgIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0OworICAgICAgICB1bnNpZ25lZCBsZW5n
dGhPZlJlcGxhY2VkVGV4dDsKKyAgICB9OworICAgIEhhc2hNYXA8UmVmUHRyPFRleHQ+LCBSZW5k
ZXJUcmVlVGV4dFVwZGF0ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzOworCiAgICAg
RWxlbWVudCogbV9jc3NUYXJnZXQgeyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IGRlZjhhZmQ5ODgxOC4uOTE3YzdjMWMyNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTUyLDYgKzUyLDcg
QEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fdGV4dCA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICBtX25v
ZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQpOworICAgIGRvY3VtZW50KCkudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOwogfQogCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCkBAIC02MCw2ICs2MSw3IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRh
KG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgp
OwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggZGYwMTgyNmYzOTNhLi42MWY0Yzcx
NjQyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtNjYsNiArNjYsNyBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KICAgICAKICAgICBtX25vZGUtPmluc2VydERhdGEo
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7
CiB9CiAKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9SZWFwcGx5KCkKQEAgLTc0
LDYgKzc1LDcgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHkoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4
dCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTgyLDYgKzg0LDcgQEAgdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSk7Cisg
ICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVH
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IDczZDYwOWNhYzk4ZS4uM2Y2N2I1MTk0NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtODAsNiArODAsOCBAQCB2b2lkIFNw
bGl0VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgZG9jdW1lbnQoKS5tYXJrZXJz
KCkuY29weU1hcmtlcnMoKm1fdGV4dDEsIHsgMCwgcHJlZml4VGV4dC5sZW5ndGgoKSB9LCBtX3Rl
eHQyKTsKICAgICBtX3RleHQxLT5yZW1vdmUoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlU3R5
bGVJZk5lZWRlZCgpOwogfQogCiB2b2lkIFNwbGl0VGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHko
KQpAQCAtOTksNiArMTAxLDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4
dDFBbmRUcmltVGV4dDIoKQogICAgIGlmIChtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJl
Zm9yZSgqbV90ZXh0MSwgbV90ZXh0Mi5wdHIoKSkuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybjsKICAgICBtX3RleHQyLT5kZWxldGVEYXRhKDAsIG1fb2Zmc2V0KTsKKyAgICBkb2N1bWVu
dCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcAppbmRleCBkYmU0OTk2YWU4NmEuLjVjZDA5MDM0MTIyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMTM4NSw3ICsxMzg1LDYgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5l
ciwgUmVmPERvY3UKICAgICBhdXRvKiBjb250YWluZXJDaGlsZCA9IGNvbnRhaW5lck5vZGUtPmZp
cnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyQ2hpbGQgJiYgIWNvbnRhaW5lckNoaWxkLT5u
ZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChpczxUZXh0PigqY29udGFpbmVyQ2hpbGQpICYm
IGhhc09uZVRleHRDaGlsZChmcmFnbWVudCkgJiYgY2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihk
b3duY2FzdDxUZXh0PigqY29udGFpbmVyQ2hpbGQpLCBtdXRhdGlvbikpIHsKLSAgICAgICAgICAg
IEFTU0VSVCghZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKS0+cmVmQ291bnQoKSk7CiAgICAgICAgICAg
ICBkb3duY2FzdDxUZXh0PigqY29udGFpbmVyQ2hpbGQpLnNldERhdGEoZG93bmNhc3Q8VGV4dD4o
KmZyYWdtZW50LT5maXJzdENoaWxkKCkpLmRhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKaW5kZXggMDg1OTJh
MmQ4YTIxLi43ZTMyMmI4ZDVhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVXBkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAK
QEAgLTk2LDExICs5NiwxMiBAQCB2b2lkIFVwZGF0ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50LCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRVcGRhdGVzJiYgZWxlbQogCiB2b2lkIFVwZGF0
ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJiB0ZXh0
VXBkYXRlKQogewotICAgIEFTU0VSVCghbV90ZXh0cy5jb250YWlucygmdGV4dCkpOwogICAgIEFT
U0VSVChjb21wb3NlZFRyZWVBbmNlc3RvcnModGV4dCkuZmlyc3QoKSA9PSBwYXJlbnQpOwogCiAg
ICAgYWRkUG9zc2libGVSb290KHBhcmVudCk7Ci0gICAgbV90ZXh0cy5hZGQoJnRleHQsIFdURk1v
dmUodGV4dFVwZGF0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90ZXh0cy5hZGQoJnRleHQsIFdU
Rk1vdmUodGV4dFVwZGF0ZSkpOworICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNO
ZXdFbnRyeSB8fCAhcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5vZmZzZXQpOworICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSB8fCByZXN1bHQuaXRlcmF0b3ItPnZhbHVl
Lmxlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpOwogfQogCiB2
b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkK
</data>
<flag name="commit-queue"
          id="440471"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421631</attachid>
            <date>2021-02-26 03:15:49 -0800</date>
            <delta_ts>2021-02-26 06:38:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-4.patch</filename>
            <type>text/plain</type>
            <size>9701</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmViMTI3NzA1ZjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJvIE1vdXJhICA8bG1v
dXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBhIGNvdXBsZSBjcmFz
aGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXIt
cmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dAppbmRleCBiODU1MmFlYzc4OTYuLjhiMTM3ODkxNzkx
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3Qt
bGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSBAQAotQgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM1YjQyYzRjMzcyLi44NjcxNWJhZmM3
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAyMS0wMi0yNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyIHRyZWUgdXBkYXRlcyBmb3Ig
VGV4dCBub2RlIGNvbnRlbnQgbXV0YXRpb25zIHNob3VsZCBub3QgYmUgc3luY2hyb25vdXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGxzIHRvIFRl
eHQuaW5zZXJ0RGF0YSBhbmQgc2ltaWxhciBzaG91bGQgbm90IG11dGF0ZSByZW5kZXIgdHJlZSBz
eW5jaHJvbm91c2x5LgorICAgICAgICBJbnN0ZWFkIHJlbmRlciB0cmVlIHNob3VsZCBiZSB1cGRh
dGVkIGR1cmluZyBuZXh0IHJlbmRlcmluZyB1cGRhdGUgYWxvbmcgd2l0aAorICAgICAgICBhbnkg
c3R5bGUgY2hhbmdlcy4KKworICAgICAgICBUaGVzZSB1cGRhdGVzIGFscmVhZHkgZ28gdmlhIFJl
bmRlclRyZWVVcGRhdGVyLiBXZSBqdXN0IG5lZWQgdG8gc2F2ZSB0aGUgaW5mcm9tYXRpb24KKyAg
ICAgICAgYWJvdXQgd2hpY2ggbm9kZXMgbmVlZCB1cGRhdGluZyBzbyB0aGUgbmV4dCByZW5kZXJp
bmcgdXBkYXRlIGNhbiBwaWNrIHRoZW0gdXAuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAgIEFkZCB0aGUgdGV4
dCB1cGRhdGVzIHRvIFN0eWxlOjpVcGRhdGUgc2V0IGJlZm9yZSBjYWxsaW5nIGludG8gUmVuZGVy
VHJlZVVwZGF0ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVu
ZGVyZXIpOgorCisgICAgICAgIFNhdmUgdGhlIHRleHQgbm9kZXMgbmVlZGluZyB1cGRhdGUuCisK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKwor
ICAgICAgICBXZSBuZWVkIHJlY2FsYyBpZiB0aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVwZGF0ZXMu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVJbnNpZ25pZmljYW50VGV4dCk6CisKKyAgICAgICAgRW5zdXJlIHdlIGxlYXZlIGRl
bGV0ZUluc2lnbmlmaWNhbnRUZXh0IHdpdGggdXBkYXRlZCByZW5kZXIgdHJlZS4gQ2xpZW50cyBl
eHBlY3QgdGhhdC4KKyAgICAgICAgRG8gbGF5b3V0IChpbnN0ZWFkIG9mIGp1c3Qgc3R5bGUgdXBk
YXRlKSBmb3IgY29uc2lzdGVuY3ksIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0IGRvZXMgb25lIGFu
eXdheSBpbiBiZWdpbm5pbmcuCisKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorCisgICAgICAgIFBl
bmRpbmcgdGV4dCB1cGRhdGUgbWF5IHJlZiB0aGUgbm9kZSBzbyB0aGlzIHJlZmNvdW50IGFzc2Vy
dCBpcyBub3QgY29ycmVjdC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQpOgorCiAyMDIxLTAyLTI1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgRW1vamkg
c2VxdWVuY2VzIHdpdGggY29uc3RpdHVlbnRzIGluIHRoZSBVQkxPQ0tfU1lNQk9MU19BTkRfUElD
VE9HUkFQSFNfRVhURU5ERURfQSBVbmljb2RlIGJsb2NrIGRvbid0IGdldCBjb21iaW5lZCBwcm9w
ZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODAwYzdiOTk2MWIyLi4wM2Y2YWY1M2M1
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA3LDYgKzgwNyw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAgbV9mdWxsc2NyZWVuTWFuYWdlci0+Y2xl
YXIoKTsKICNlbmRpZgogICAgICAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuY2xlYXIoKTsK
KyAgICAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzLmNsZWFyKCk7CiAKICAgICAg
ICAgbV9mb250U2VsZWN0b3ItPnN0b3BMb2FkaW5nQW5kQ2xlYXJGb250cygpOwogCkBAIC0yMDY1
LDYgKzIwNjYsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5
cGUgdHlwZSkKIAogICAgICAgICBmb250U2VsZWN0b3IoKS5sb2FkUGVuZGluZ0ZvbnRzKCk7CiAK
KyAgICAgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlKQorICAgICAgICAgICAgICAgIHN0eWxlVXBk
YXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CisgICAgICAgICAgICBmb3Ig
KGF1dG8mIHVwZGF0ZSA6IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcykKKyAgICAgICAg
ICAgICAgICBzdHlsZVVwZGF0ZS0+YWRkVGV4dCgqdXBkYXRlLmtleSwgeyB1cGRhdGUudmFsdWUu
b2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVwZGF0ZS52YWx1ZS5sZW5ndGhPZlJlcGxhY2VkVGV4dCwg
V1RGOjpudWxsb3B0IH0pOworICAgICAgICAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRh
dGVzLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc3R5bGVVcGRhdGUpIHsKICAg
ICAgICAgICAgIHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOwogICAgICAg
ICAgICAgZnJhbWVWaWV3LnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5nZSgpOwpAQCAtMjEwMCwx
MCArMjEwOSwxNSBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlw
ZSB0eXBlKQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwg
dW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRU
ZXh0KQogewotICAgIGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4o
KnRoaXMpOwotICAgIHRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2Vk
VGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKKyAgICBhdXRvIHJl
c3VsdCA9IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlcy5hZGQoJnRleHQsIFJlbmRlclRy
ZWVUZXh0VXBkYXRlIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0
IH0pOworICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAgYXV0byYgZW50cnkg
PSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBhdXRvIHN0YXJ0T2Zmc2V0ID0gc3Rk
OjptaW4oZW50cnkub2Zmc2V0T2ZSZXBsYWNlZFRleHQsIG9mZnNldE9mUmVwbGFjZWRUZXh0KTsK
KyAgICAgICAgYXV0byBlbmRPZmZzZXQgPSBzdGQ6Om1heChlbnRyeS5vZmZzZXRPZlJlcGxhY2Vk
VGV4dCArIGVudHJ5Lmxlbmd0aE9mUmVwbGFjZWRUZXh0LCBvZmZzZXRPZlJlcGxhY2VkVGV4dCAr
IGxlbmd0aE9mUmVwbGFjZWRUZXh0KTsKKyAgICAgICAgZW50cnkgPSB7IHN0YXJ0T2Zmc2V0LCBl
bmRPZmZzZXQgLSBzdGFydE9mZnNldCB9OworICAgIH0KIAotICAgIHVwZGF0ZVJlbmRlclRyZWUo
V1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoeyB9KTsK
IH0KIAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CkBAIC0yMTE3LDYg
KzIxMzEsOSBAQCBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QKICAgICBp
ZiAoY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAg
aWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZXMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChzdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1VwZGF0ZSgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3
MTkuLmY4ZjY5NGUzYjI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE4MDMsNiArMTgwMywx
MyBAQCBwcml2YXRlOgogICAgIAogICAgIFRpbWVyIG1fc3R5bGVSZWNhbGNUaW1lcjsKIAorICAg
IC8vIEZJWE1FOiBVc2UgU3R5bGU6OlVwZGF0ZSB0eXBlIGluc3RlYWQgb2YgYSBjdXN0b20gbWFw
LgorICAgIHN0cnVjdCBSZW5kZXJUcmVlVGV4dFVwZGF0ZSB7CisgICAgICAgIHVuc2lnbmVkIG9m
ZnNldE9mUmVwbGFjZWRUZXh0OworICAgICAgICB1bnNpZ25lZCBsZW5ndGhPZlJlcGxhY2VkVGV4
dDsKKyAgICB9OworICAgIEhhc2hNYXA8UmVmUHRyPFRleHQ+LCBSZW5kZXJUcmVlVGV4dFVwZGF0
ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGVzOworCiAgICAgRWxlbWVudCogbV9jc3NU
YXJnZXQgeyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9i
c2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCBmOTE4
ZDQyMDNhNDguLmFmMzIxZDBkMGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzYsOCArNzYsNyBA
QCBFeGNlcHRpb25PcjxSZWY8VGV4dD4+IFRleHQ6OnNwbGl0VGV4dCh1bnNpZ25lZCBvZmZzZXQp
CiAKICAgICBkb2N1bWVudCgpLnRleHROb2RlU3BsaXQoKnRoaXMpOwogCi0gICAgaWYgKHJlbmRl
cmVyKCkpCi0gICAgICAgIHJlbmRlcmVyKCktPnNldFRleHRXaXRoT2Zmc2V0KGRhdGEoKSwgMCwg
b2xkRGF0YS5sZW5ndGgoKSk7CisgICAgdXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2Uo
MCwgb2xkRGF0YS5sZW5ndGgoKSk7CiAKICAgICByZXR1cm4gbmV3VGV4dDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggMTdmNmUx
YzIxODY1Li5jNGI5ZGE1NjAwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xMDU4LDYgKzEwNTgsOCBAQCB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dChjb25zdCBQb3NpdGlvbiYgc3Rh
cnQsIGNvbnN0CiAgICAgICAgIGludCBlbmRPZmZzZXQgPSB0ZXh0Tm9kZS5wdHIoKSA9PSBlbmQu
ZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpIDogc3RhdGlj
X2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVuZ3RoKCkpOwogICAgICAgICBkZWxldGVJbnNpZ25pZmlj
YW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAgICAgfQorICAgIGlm
ICghbm9kZXMuaXNFbXB0eSgpKQorICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpk
ZWxldGVJbnNpZ25pZmljYW50VGV4dERvd25zdHJlYW0oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IGRiZTQ5OTZhZTg2YS4uNWNkMDkwMzQx
MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xMzg1LDcgKzEzODUsNiBAQCBF
eGNlcHRpb25Pcjx2b2lkPiByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9k
ZSYgY29udGFpbmVyLCBSZWY8RG9jdQogICAgIGF1dG8qIGNvbnRhaW5lckNoaWxkID0gY29udGFp
bmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmIChjb250YWluZXJDaGlsZCAmJiAhY29udGFp
bmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGlzPFRleHQ+KCpjb250YWlu
ZXJDaGlsZCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50KSAmJiBjYW5Vc2VTZXREYXRhT3B0
aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCksIG11dGF0aW9uKSkgewot
ICAgICAgICAgICAgQVNTRVJUKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpLT5yZWZDb3VudCgpKTsK
ICAgICAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCkuc2V0RGF0YShkb3du
Y2FzdDxUZXh0PigqZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0YSgpKTsKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcApp
bmRleCAwODU5MmEyZDhhMjEuLjdlMzIyYjhkNWEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmNwcApAQCAtOTYsMTEgKzk2LDEyIEBAIHZvaWQgVXBkYXRlOjphZGRFbGVtZW50KEVs
ZW1lbnQmIGVsZW1lbnQsIEVsZW1lbnQqIHBhcmVudCwgRWxlbWVudFVwZGF0ZXMmJiBlbGVtCiAK
IHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVw
ZGF0ZSYmIHRleHRVcGRhdGUpCiB7Ci0gICAgQVNTRVJUKCFtX3RleHRzLmNvbnRhaW5zKCZ0ZXh0
KSk7CiAgICAgQVNTRVJUKGNvbXBvc2VkVHJlZUFuY2VzdG9ycyh0ZXh0KS5maXJzdCgpID09IHBh
cmVudCk7CiAKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKLSAgICBtX3RleHRzLmFkZCgm
dGV4dCwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3RleHRzLmFk
ZCgmdGV4dCwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQs
IHJlc3VsdC5pc05ld0VudHJ5IHx8ICFyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLm9mZnNldCk7Cisg
ICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5IHx8IHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUubGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgo
KSk7CiB9CiAKIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRVcGRhdGUmJiB0
ZXh0VXBkYXRlKQo=
</data>
<flag name="commit-queue"
          id="440524"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421636</attachid>
            <date>2021-02-26 06:38:45 -0800</date>
            <delta_ts>2021-02-26 07:37:09 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-6.patch</filename>
            <type>text/plain</type>
            <size>15179</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmViMTI3NzA1ZjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJvIE1vdXJhICA8bG1v
dXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBhIGNvdXBsZSBjcmFz
aGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1j
cmFzaC1leHBlY3RlZC50eHQKaW5kZXggNTNmMTJjNjliY2U4Li5mZjUwMzhiNGVkZDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50
cy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtY29t
YmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSwxNiArMSwxNSBA
QAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg2MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHg0MAot
ICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgwCi0gICAgICAgIFJlbmRl
ckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MjAKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwyMCkgd2lkdGggMjA6ICJceHtGRkZDfSIKLSAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDQwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1
NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTYKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiXHh7RkZGQ30i
CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6ZSA3ODR4MAogICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw0MCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIwKSBz
aXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MDB4
MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDA6ICJQQVNTLCBkaWQgbm90
IGNyYXNoLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3Nz
L2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50
eHQKaW5kZXggYjg1NTJhZWM3ODk2Li44YjEzNzg5MTc5MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0
LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDRjNWI0MmM0YzM3Mi4uNjg0NWRjODAzMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjQgQEAKKzIwMjEtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmRlciB0cmVlIHVwZGF0ZXMgZm9yIFRleHQgbm9kZSBjb250ZW50IG11dGF0
aW9ucyBzaG91bGQgbm90IGJlIHN5bmNocm9ub3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWxscyB0byBUZXh0Lmluc2VydERhdGEgYW5kIHNpbWls
YXIgc2hvdWxkIG5vdCBtdXRhdGUgcmVuZGVyIHRyZWUgc3luY2hyb25vdXNseS4KKyAgICAgICAg
SW5zdGVhZCByZW5kZXIgdHJlZSBzaG91bGQgYmUgdXBkYXRlZCBkdXJpbmcgdGhlIG5leHQgcmVu
ZGVyaW5nIHVwZGF0ZSBhbG9uZyB3aXRoCisgICAgICAgIGFueSBzdHlsZSBjaGFuZ2VzLgorCisg
ICAgICAgIFRoZXNlIHVwZGF0ZXMgYWxyZWFkeSBnbyB2aWEgUmVuZGVyVHJlZVVwZGF0ZXIuIFdl
IGp1c3QgbmVlZCB0byBzYXZlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCB3aGljaCBu
b2RlcyBuZWVkIHVwZGF0aW5nIHNvIHRoZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUgY2FuIHBpY2sg
dGhlbSB1cC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnJlc29sdmVTdHlsZSk6CisKKyAgICAgICAgSW5jbHVkZSB0aGUgdGV4dCB1cGRhdGUgd2hlbiB1
cGRhdGluZyB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVUZXh0UmVuZGVyZXIpOgorCisgICAgICAgIENyZWF0ZSBhIHRleHQgdXBkYXRlIHRoYXQg
d2lsbCBnZXQgZmx1c2hlZCBkdXJpbmcgdGhlIG5leHQgcmVuZGVyaW5nIHVwZGF0ZS4KKworICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorCisgICAg
ICAgIFdlIG5lZWQgdG8gcmVjYWxjIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHRleHQgdXBkYXRlcy4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6VHJlZVJlc29s
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmUpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
VXBkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQpOgor
CisgICAgICAgIE1lcmdlIHRleHQgdXBkYXRlcy4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlVwZGF0ZTo6YWRkUG9zc2libGVSb290KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6cm9vdHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6IGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBS
ZWZjb3VudCB0aGUgbm9kZXMgc2luY2UgdGhpcyBub3cgaGFzIGxvbmdlciBsaWZldGltZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0KToKKwor
ICAgICAgICBFbnN1cmUgd2UgbGVhdmUgZGVsZXRlSW5zaWduaWZpY2FudFRleHQgd2l0aCB1cGRh
dGVkIHJlbmRlciB0cmVlLiBDbGllbnRzIGV4cGVjdCB0aGF0LgorICAgICAgICBEbyBsYXlvdXQg
KGluc3RlYWQgb2YganVzdCBzdHlsZSB1cGRhdGUpIGZvciBjb25zaXN0ZW5jeSwgZGVsZXRlSW5z
aWduaWZpY2FudFRleHQgZG9lcyBvbmUgYW55d2F5IGluIGJlZ2lubmluZy4KKworICAgICAgICAq
IGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGlsZHJlbldp
dGhGcmFnbWVudCk6CisKKyAgICAgICAgUGVuZGluZyB0ZXh0IHVwZGF0ZSBtYXkgcmVmIHRoZSBu
b2RlIHNvIHRoaXMgcmVmY291bnQgYXNzZXJ0IGlzIG5vdCBjb3JyZWN0LgorCisgICAgICAgICog
c3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6
YWRkVGV4dCk6CisKIDIwMjEtMDItMjUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBFbW9qaSBzZXF1ZW5jZXMgd2l0aCBjb25zdGl0dWVudHMgaW4g
dGhlIFVCTE9DS19TWU1CT0xTX0FORF9QSUNUT0dSQVBIU19FWFRFTkRFRF9BIFVuaWNvZGUgYmxv
Y2sgZG9uJ3QgZ2V0IGNvbWJpbmVkIHByb3Blcmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA4MDBjN2I5OTYxYjIuLmZiOGM2ZDA5NDk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC04MDcsNiArODA3LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQogICAgICAg
ICBtX2Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGVhcigpOwogI2VuZGlmCiAgICAgICAgIG1fYXNzb2Np
YXRlZEZvcm1Db250cm9scy5jbGVhcigpOworICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4
dFVwZGF0ZSA9IHsgfTsKIAogICAgICAgICBtX2ZvbnRTZWxlY3Rvci0+c3RvcExvYWRpbmdBbmRD
bGVhckZvbnRzKCk7CiAKQEAgLTIwNTIsNyArMjA1Myw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29s
dmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRF
bGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzKTsKKyAgICAgICAgU3R5bGU6OlRy
ZWVSZXNvbHZlciByZXNvbHZlcigqdGhpcywgV1RGTW92ZShtX3BlbmRpbmdSZW5kZXJUcmVlVGV4
dFVwZGF0ZSkpOwogICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgp
OwogCiAgICAgICAgIG1fbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcgPSBzdHlsZVVwZGF0
ZSA/IHN0eWxlVXBkYXRlLT5zaXplKCkgOiAwOwpAQCAtMjEwMCwxMCArMjEwMSwxMiBAQCB2b2lk
IERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERv
Y3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZS
ZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8g
dGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRV
cGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBs
YWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKKyAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclRyZWVU
ZXh0VXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSA9IG1ha2VV
bmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogCi0gICAgdXBkYXRlUmVuZGVyVHJlZShXVEZN
b3ZlKHRleHRVcGRhdGUpKTsKKyAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZS0+YWRk
VGV4dCh0ZXh0LCB7IG9mZnNldE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCB9
KTsKKworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKHsgfSk7CiB9CiAKIGJvb2wgRG9jdW1l
bnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdApAQCAtMjExNyw2ICsyMTIwLDkgQEAgYm9vbCBE
b2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CiAgICAgaWYgKGNoaWxkTmVlZHNTdHls
ZVJlY2FsYygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIGlmIChtX3BlbmRpbmdSZW5k
ZXJUcmVlVGV4dFVwZGF0ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoc3R5bGVT
Y29wZSgpLmhhc1BlbmRpbmdVcGRhdGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggM2FjZGZkNzNhNzE5Li40NTc0NzhjZTAxZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC0xODAzLDYgKzE4MDMsOCBAQCBwcml2YXRlOgogICAgIAogICAgIFRpbWVy
IG1fc3R5bGVSZWNhbGNUaW1lcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxTdHlsZTo6VXBkYXRl
PiBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZTsKKwogICAgIEVsZW1lbnQqIG1fY3NzVGFy
Z2V0IHsgbnVsbHB0ciB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1hZ2VPYnNl
cnZlcj4gbV9sYXp5TG9hZEltYWdlT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggZjkxOGQ0
MjAzYTQ4Li5hZjMyMWQwZDBhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTc2LDggKzc2LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPFRleHQ+PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0KQog
CiAgICAgZG9jdW1lbnQoKS50ZXh0Tm9kZVNwbGl0KCp0aGlzKTsKIAotICAgIGlmIChyZW5kZXJl
cigpKQotICAgICAgICByZW5kZXJlcigpLT5zZXRUZXh0V2l0aE9mZnNldChkYXRhKCksIDAsIG9s
ZERhdGEubGVuZ3RoKCkpOworICAgIHVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250ZW50Q2hhbmdlKDAs
IG9sZERhdGEubGVuZ3RoKCkpOwogCiAgICAgcmV0dXJuIG5ld1RleHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDE3ZjZlMWMy
MTg2NS4uYzRiOWRhNTYwMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMTA1OCw2ICsxMDU4LDggQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHQoY29uc3QgUG9zaXRpb24mIHN0YXJ0
LCBjb25zdAogICAgICAgICBpbnQgZW5kT2Zmc2V0ID0gdGV4dE5vZGUucHRyKCkgPT0gZW5kLmRl
cHJlY2F0ZWROb2RlKCkgPyBlbmQuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSA6IHN0YXRpY19j
YXN0PGludD4odGV4dE5vZGUtPmxlbmd0aCgpKTsKICAgICAgICAgZGVsZXRlSW5zaWduaWZpY2Fu
dFRleHQodGV4dE5vZGUsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgIH0KKyAgICBpZiAo
IW5vZGVzLmlzRW1wdHkoKSkKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVs
ZXRlSW5zaWduaWZpY2FudFRleHREb3duc3RyZWFtKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCBkYmU0OTk2YWU4NmEuLjVjZDA5MDM0MTIy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMTM4NSw3ICsxMzg1LDYgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUm
IGNvbnRhaW5lciwgUmVmPERvY3UKICAgICBhdXRvKiBjb250YWluZXJDaGlsZCA9IGNvbnRhaW5l
ck5vZGUtPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyQ2hpbGQgJiYgIWNvbnRhaW5l
ckNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChpczxUZXh0PigqY29udGFpbmVy
Q2hpbGQpICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVudCkgJiYgY2FuVXNlU2V0RGF0YU9wdGlt
aXphdGlvbihkb3duY2FzdDxUZXh0PigqY29udGFpbmVyQ2hpbGQpLCBtdXRhdGlvbikpIHsKLSAg
ICAgICAgICAgIEFTU0VSVCghZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKS0+cmVmQ291bnQoKSk7CiAg
ICAgICAgICAgICBkb3duY2FzdDxUZXh0PigqY29udGFpbmVyQ2hpbGQpLnNldERhdGEoZG93bmNh
c3Q8VGV4dD4oKmZyYWdtZW50LT5maXJzdENoaWxkKCkpLmRhdGEoKSk7CiAgICAgICAgICAgICBy
ZXR1cm4geyB9OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAppbmRleCBjMThlMTBlOTJhMTQuLjU5
NjhhYmRhYzU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIENv
bnRhaW5lck5vZGUqIGZpbmRSZW5kZXJpbmdSb290KENvbnRhaW5lck5vZGUmIG5vZGUpCiBzdGF0
aWMgTGlzdEhhc2hTZXQ8Q29udGFpbmVyTm9kZSo+IGZpbmRSZW5kZXJpbmdSb290cyhjb25zdCBT
dHlsZTo6VXBkYXRlJiB1cGRhdGUpCiB7CiAgICAgTGlzdEhhc2hTZXQ8Q29udGFpbmVyTm9kZSo+
IHJlbmRlcmluZ1Jvb3RzOwotICAgIGZvciAoYXV0byogcm9vdCA6IHVwZGF0ZS5yb290cygpKSB7
CisgICAgZm9yIChhdXRvJiByb290IDogdXBkYXRlLnJvb3RzKCkpIHsKICAgICAgICAgYXV0byog
cmVuZGVyaW5nUm9vdCA9IGZpbmRSZW5kZXJpbmdSb290KCpyb290KTsKICAgICAgICAgaWYgKCFy
ZW5kZXJpbmdSb290KQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggZDEyMzY5MGU0YTM0Li4wOTg3ODY1MzlhOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTYyLDgg
KzYyLDkgQEAgbmFtZXNwYWNlIFN0eWxlIHsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBf
SURFTlRJRklFUihUcmVlUmVzb2x2ZXJTY29wZSk7CiAKLVRyZWVSZXNvbHZlcjo6VHJlZVJlc29s
dmVyKERvY3VtZW50JiBkb2N1bWVudCkKK1RyZWVSZXNvbHZlcjo6VHJlZVJlc29sdmVyKERvY3Vt
ZW50JiBkb2N1bWVudCwgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gdXBkYXRlKQogICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fdXBkYXRlKFdURk1vdmUodXBkYXRlKSkKIHsKIH0K
IApAQCAtNTc2LDExICs1NzcsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gVHJlZVJlc29s
dmVyOjpyZXNvbHZlKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGlmICgh
ZG9jdW1lbnRFbGVtZW50LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSAmJiAhZG9jdW1lbnRFbGVt
ZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gV1RGTW92ZShtX3VwZGF0ZSk7CiAKICAgICBtX2RpZFNlZVBlbmRpbmdTdHlsZXNo
ZWV0ID0gbV9kb2N1bWVudC5zdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1NoZWV0c0JlZm9yZUJvZHko
KTsKIAotICAgIG1fdXBkYXRlID0gbWFrZVVuaXF1ZTxVcGRhdGU+KG1fZG9jdW1lbnQpOworICAg
IGlmICghbV91cGRhdGUpCisgICAgICAgIG1fdXBkYXRlID0gbWFrZVVuaXF1ZTxVcGRhdGU+KG1f
ZG9jdW1lbnQpOwogICAgIG1fc2NvcGVTdGFjay5hcHBlbmQoYWRvcHRSZWYoKm5ldyBTY29wZSht
X2RvY3VtZW50KSkpOwogICAgIG1fcGFyZW50U3RhY2suYXBwZW5kKFBhcmVudChtX2RvY3VtZW50
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCmluZGV4IGVlYjAx
YTkwMWJiMS4uMTg2YmI1NGQ1MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgUmVzb2x2ZXI7CiBERUNMQVJFX0FMTE9D
QVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihUcmVlUmVzb2x2ZXJTY29wZSk7CiBjbGFzcyBUcmVl
UmVzb2x2ZXIgewogcHVibGljOgotICAgIFRyZWVSZXNvbHZlcihEb2N1bWVudCYpOworICAgIFRy
ZWVSZXNvbHZlcihEb2N1bWVudCYsIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+ID0geyB9KTsKICAg
ICB+VHJlZVJlc29sdmVyKCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiByZXNvbHZl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKaW5kZXggMDg1OTJhMmQ4YTIxLi44
ZmE4NTE4ZWU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKQEAgLTk2LDEx
ICs5NiwyMyBAQCB2b2lkIFVwZGF0ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBFbGVt
ZW50KiBwYXJlbnQsIEVsZW1lbnRVcGRhdGVzJiYgZWxlbQogCiB2b2lkIFVwZGF0ZTo6YWRkVGV4
dChUZXh0JiB0ZXh0LCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQog
ewotICAgIEFTU0VSVCghbV90ZXh0cy5jb250YWlucygmdGV4dCkpOwogICAgIEFTU0VSVChjb21w
b3NlZFRyZWVBbmNlc3RvcnModGV4dCkuZmlyc3QoKSA9PSBwYXJlbnQpOwogCiAgICAgYWRkUG9z
c2libGVSb290KHBhcmVudCk7Ci0gICAgbV90ZXh0cy5hZGQoJnRleHQsIFdURk1vdmUodGV4dFVw
ZGF0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90ZXh0cy5lbnN1cmUoJnRleHQsIFsmXSB7Cisg
ICAgICAgIHJldHVybiBXVEZNb3ZlKHRleHRVcGRhdGUpOworICAgIH0pOworICAgIGlmICghcmVz
dWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRlcmF0b3It
PnZhbHVlOworICAgICAgICBhdXRvIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oZW50cnkub2Zmc2V0
LCB0ZXh0VXBkYXRlLm9mZnNldCk7CisgICAgICAgIGF1dG8gZW5kT2Zmc2V0ID0gc3RkOjptYXgo
ZW50cnkub2Zmc2V0ICsgZW50cnkubGVuZ3RoLCB0ZXh0VXBkYXRlLm9mZnNldCArIHRleHRVcGRh
dGUubGVuZ3RoKTsKKyAgICAgICAgZW50cnkub2Zmc2V0ID0gc3RhcnRPZmZzZXQ7CisgICAgICAg
IGVudHJ5Lmxlbmd0aCA9IGVuZE9mZnNldCAtIHN0YXJ0T2Zmc2V0OworICAgICAgICAKKyAgICAg
ICAgQVNTRVJUKCFlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSB8fCAhdGV4dFVw
ZGF0ZS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSk7CisgICAgICAgIGlmICghZW50cnku
aW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpCisgICAgICAgICAgICBlbnRyeS5pbmhlcml0
ZWREaXNwbGF5Q29udGVudHNTdHlsZSA9IFdURk1vdmUodGV4dFVwZGF0ZS5pbmhlcml0ZWREaXNw
bGF5Q29udGVudHNTdHlsZSk7CisgICAgfQogfQogCiB2b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0
JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKQEAgLTExMSw3ICsxMjMsNyBAQCB2b2lk
IFVwZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHZv
aWQgVXBkYXRlOjphZGRQb3NzaWJsZVJvb3QoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAo
IWVsZW1lbnQpIHsKLSAgICAgICAgbV9yb290cy5hZGQoJm1fZG9jdW1lbnQpOworICAgICAgICBt
X3Jvb3RzLmFkZChtX2RvY3VtZW50LnB0cigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAobV9lbGVtZW50cy5jb250YWlucyhlbGVtZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVw
ZGF0ZS5oCmluZGV4IDA0YzYwNDJkMDcwNS4uODkwOWIyYmMxOTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVXBkYXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgVXBkYXRlIHsKIHB1YmxpYzoK
ICAgICBVcGRhdGUoRG9jdW1lbnQmKTsKIAotICAgIGNvbnN0IExpc3RIYXNoU2V0PENvbnRhaW5l
ck5vZGUqPiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RzOyB9CisgICAgY29uc3QgTGlz
dEhhc2hTZXQ8UmVmUHRyPENvbnRhaW5lck5vZGU+PiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3RzOyB9CiAKICAgICBjb25zdCBFbGVtZW50VXBkYXRlcyogZWxlbWVudFVwZGF0ZXMoY29u
c3QgRWxlbWVudCYpIGNvbnN0OwogICAgIEVsZW1lbnRVcGRhdGVzKiBlbGVtZW50VXBkYXRlcyhj
b25zdCBFbGVtZW50Jik7CkBAIC05MCwxMCArOTAsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB2b2lkIGFkZFBvc3NpYmxlUm9vdChFbGVtZW50Kik7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1
bWVudDsKLSAgICBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gbV9yb290czsKLSAgICBIYXNo
TWFwPGNvbnN0IEVsZW1lbnQqLCBFbGVtZW50VXBkYXRlcz4gbV9lbGVtZW50czsKLSAgICBIYXNo
TWFwPGNvbnN0IFRleHQqLCBUZXh0VXBkYXRlPiBtX3RleHRzOworICAgIFJlZjxEb2N1bWVudD4g
bV9kb2N1bWVudDsKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+IG1fcm9v
dHM7CisgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgRWxlbWVudD4sIEVsZW1lbnRVcGRhdGVzPiBt
X2VsZW1lbnRzOworICAgIEhhc2hNYXA8UmVmUHRyPGNvbnN0IFRleHQ+LCBUZXh0VXBkYXRlPiBt
X3RleHRzOwogfTsKIAogfQo=
</data>
<flag name="commit-queue"
          id="440534"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421643</attachid>
            <date>2021-02-26 07:37:09 -0800</date>
            <delta_ts>2021-02-26 08:00:47 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-7.patch</filename>
            <type>text/plain</type>
            <size>15193</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmViMTI3NzA1ZjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJvIE1vdXJhICA8bG1v
dXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBhIGNvdXBsZSBjcmFz
aGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1j
cmFzaC1leHBlY3RlZC50eHQKaW5kZXggNTNmMTJjNjliY2U4Li5mZjUwMzhiNGVkZDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50
cy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtY29t
YmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSwxNiArMSwxNSBA
QAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg2MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHg0MAot
ICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgwCi0gICAgICAgIFJlbmRl
ckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MjAKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwyMCkgd2lkdGggMjA6ICJceHtGRkZDfSIKLSAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDQwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1
NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTYKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiXHh7RkZGQ30i
CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6ZSA3ODR4MAogICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw0MCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIwKSBz
aXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MDB4
MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDA6ICJQQVNTLCBkaWQgbm90
IGNyYXNoLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3Nz
L2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50
eHQKaW5kZXggYjg1NTJhZWM3ODk2Li44YjEzNzg5MTc5MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0
LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDRjNWI0MmM0YzM3Mi4uNjg0NWRjODAzMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjQgQEAKKzIwMjEtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmRlciB0cmVlIHVwZGF0ZXMgZm9yIFRleHQgbm9kZSBjb250ZW50IG11dGF0
aW9ucyBzaG91bGQgbm90IGJlIHN5bmNocm9ub3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWxscyB0byBUZXh0Lmluc2VydERhdGEgYW5kIHNpbWls
YXIgc2hvdWxkIG5vdCBtdXRhdGUgcmVuZGVyIHRyZWUgc3luY2hyb25vdXNseS4KKyAgICAgICAg
SW5zdGVhZCByZW5kZXIgdHJlZSBzaG91bGQgYmUgdXBkYXRlZCBkdXJpbmcgdGhlIG5leHQgcmVu
ZGVyaW5nIHVwZGF0ZSBhbG9uZyB3aXRoCisgICAgICAgIGFueSBzdHlsZSBjaGFuZ2VzLgorCisg
ICAgICAgIFRoZXNlIHVwZGF0ZXMgYWxyZWFkeSBnbyB2aWEgUmVuZGVyVHJlZVVwZGF0ZXIuIFdl
IGp1c3QgbmVlZCB0byBzYXZlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCB3aGljaCBu
b2RlcyBuZWVkIHVwZGF0aW5nIHNvIHRoZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUgY2FuIHBpY2sg
dGhlbSB1cC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnJlc29sdmVTdHlsZSk6CisKKyAgICAgICAgSW5jbHVkZSB0aGUgdGV4dCB1cGRhdGUgd2hlbiB1
cGRhdGluZyB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVUZXh0UmVuZGVyZXIpOgorCisgICAgICAgIENyZWF0ZSBhIHRleHQgdXBkYXRlIHRoYXQg
d2lsbCBnZXQgZmx1c2hlZCBkdXJpbmcgdGhlIG5leHQgcmVuZGVyaW5nIHVwZGF0ZS4KKworICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorCisgICAg
ICAgIFdlIG5lZWQgdG8gcmVjYWxjIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHRleHQgdXBkYXRlcy4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6VHJlZVJlc29s
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmUpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
VXBkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQpOgor
CisgICAgICAgIE1lcmdlIHRleHQgdXBkYXRlcy4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlVwZGF0ZTo6YWRkUG9zc2libGVSb290KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6cm9vdHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6IGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBS
ZWZjb3VudCB0aGUgbm9kZXMgc2luY2UgdGhpcyBub3cgaGFzIGxvbmdlciBsaWZldGltZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0KToKKwor
ICAgICAgICBFbnN1cmUgd2UgbGVhdmUgZGVsZXRlSW5zaWduaWZpY2FudFRleHQgd2l0aCB1cGRh
dGVkIHJlbmRlciB0cmVlLiBDbGllbnRzIGV4cGVjdCB0aGF0LgorICAgICAgICBEbyBsYXlvdXQg
KGluc3RlYWQgb2YganVzdCBzdHlsZSB1cGRhdGUpIGZvciBjb25zaXN0ZW5jeSwgZGVsZXRlSW5z
aWduaWZpY2FudFRleHQgZG9lcyBvbmUgYW55d2F5IGluIGJlZ2lubmluZy4KKworICAgICAgICAq
IGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGlsZHJlbldp
dGhGcmFnbWVudCk6CisKKyAgICAgICAgUGVuZGluZyB0ZXh0IHVwZGF0ZSBtYXkgcmVmIHRoZSBu
b2RlIHNvIHRoaXMgcmVmY291bnQgYXNzZXJ0IGlzIG5vdCBjb3JyZWN0LgorCisgICAgICAgICog
c3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6
YWRkVGV4dCk6CisKIDIwMjEtMDItMjUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBFbW9qaSBzZXF1ZW5jZXMgd2l0aCBjb25zdGl0dWVudHMgaW4g
dGhlIFVCTE9DS19TWU1CT0xTX0FORF9QSUNUT0dSQVBIU19FWFRFTkRFRF9BIFVuaWNvZGUgYmxv
Y2sgZG9uJ3QgZ2V0IGNvbWJpbmVkIHByb3Blcmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA4MDBjN2I5OTYxYjIuLmIyYWYwMTFhZjlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC04MDcsNiArODA3LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQogICAgICAg
ICBtX2Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGVhcigpOwogI2VuZGlmCiAgICAgICAgIG1fYXNzb2Np
YXRlZEZvcm1Db250cm9scy5jbGVhcigpOworICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4
dFVwZGF0ZSA9IHsgfTsKIAogICAgICAgICBtX2ZvbnRTZWxlY3Rvci0+c3RvcExvYWRpbmdBbmRD
bGVhckZvbnRzKCk7CiAKQEAgLTIwNTIsNyArMjA1Myw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29s
dmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRF
bGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzKTsKKyAgICAgICAgU3R5bGU6OlRy
ZWVSZXNvbHZlciByZXNvbHZlcigqdGhpcywgV1RGTW92ZShtX3BlbmRpbmdSZW5kZXJUcmVlVGV4
dFVwZGF0ZSkpOwogICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgp
OwogCiAgICAgICAgIG1fbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcgPSBzdHlsZVVwZGF0
ZSA/IHN0eWxlVXBkYXRlLT5zaXplKCkgOiAwOwpAQCAtMjEwMCwxMCArMjEwMSwxMiBAQCB2b2lk
IERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERv
Y3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZS
ZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8g
dGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRV
cGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBs
YWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKKyAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclRyZWVU
ZXh0VXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSA9IG1ha2VV
bmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogCi0gICAgdXBkYXRlUmVuZGVyVHJlZShXVEZN
b3ZlKHRleHRVcGRhdGUpKTsKKyAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZS0+YWRk
VGV4dCh0ZXh0LCB7IG9mZnNldE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCwg
V1RGOjpudWxsb3B0IH0pOworCisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoeyB9KTsKIH0K
IAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CkBAIC0yMTE3LDYgKzIx
MjAsOSBAQCBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QKICAgICBpZiAo
Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYg
KG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwog
ICAgIGlmIChzdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1VwZGF0ZSgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTkuLjQ1NzQ3OGNlMDFl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE4MDMsNiArMTgwMyw4IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgVGltZXIgbV9zdHlsZVJlY2FsY1RpbWVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRy
PFN0eWxlOjpVcGRhdGU+IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlOworCiAgICAgRWxl
bWVudCogbV9jc3NUYXJnZXQgeyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6
eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNw
cAppbmRleCBmOTE4ZDQyMDNhNDguLmFmMzIxZDBkMGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAt
NzYsOCArNzYsNyBAQCBFeGNlcHRpb25PcjxSZWY8VGV4dD4+IFRleHQ6OnNwbGl0VGV4dCh1bnNp
Z25lZCBvZmZzZXQpCiAKICAgICBkb2N1bWVudCgpLnRleHROb2RlU3BsaXQoKnRoaXMpOwogCi0g
ICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJlbmRlcmVyKCktPnNldFRleHRXaXRoT2Zmc2V0
KGRhdGEoKSwgMCwgb2xkRGF0YS5sZW5ndGgoKSk7CisgICAgdXBkYXRlUmVuZGVyZXJBZnRlckNv
bnRlbnRDaGFuZ2UoMCwgb2xkRGF0YS5sZW5ndGgoKSk7CiAKICAgICByZXR1cm4gbmV3VGV4dDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
aW5kZXggMTdmNmUxYzIxODY1Li5jNGI5ZGE1NjAwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xMDU4LDYgKzEwNTgsOCBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dChjb25zdCBQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGludCBlbmRPZmZzZXQgPSB0ZXh0Tm9kZS5w
dHIoKSA9PSBlbmQuZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNl
dCgpIDogc3RhdGljX2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVuZ3RoKCkpOwogICAgICAgICBkZWxl
dGVJbnNpZ25pZmljYW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAg
ICAgfQorICAgIGlmICghbm9kZXMuaXNFbXB0eSgpKQorICAgICAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dERvd25zdHJlYW0oY29uc3QgUG9zaXRp
b24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IGRiZTQ5OTZhZTg2
YS4uNWNkMDkwMzQxMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xMzg1LDcg
KzEzODUsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQo
Q29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBSZWY8RG9jdQogICAgIGF1dG8qIGNvbnRhaW5lckNo
aWxkID0gY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmIChjb250YWluZXJDaGls
ZCAmJiAhY29udGFpbmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGlzPFRl
eHQ+KCpjb250YWluZXJDaGlsZCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50KSAmJiBjYW5V
c2VTZXREYXRhT3B0aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCksIG11
dGF0aW9uKSkgewotICAgICAgICAgICAgQVNTRVJUKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpLT5y
ZWZDb3VudCgpKTsKICAgICAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCku
c2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0YSgpKTsK
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGMx
OGUxMGU5MmExNC4uNTk2OGFiZGFjNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTEwMiw3ICsxMDIs
NyBAQCBzdGF0aWMgQ29udGFpbmVyTm9kZSogZmluZFJlbmRlcmluZ1Jvb3QoQ29udGFpbmVyTm9k
ZSYgbm9kZSkKIHN0YXRpYyBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gZmluZFJlbmRlcmlu
Z1Jvb3RzKGNvbnN0IFN0eWxlOjpVcGRhdGUmIHVwZGF0ZSkKIHsKICAgICBMaXN0SGFzaFNldDxD
b250YWluZXJOb2RlKj4gcmVuZGVyaW5nUm9vdHM7Ci0gICAgZm9yIChhdXRvKiByb290IDogdXBk
YXRlLnJvb3RzKCkpIHsKKyAgICBmb3IgKGF1dG8mIHJvb3QgOiB1cGRhdGUucm9vdHMoKSkgewog
ICAgICAgICBhdXRvKiByZW5kZXJpbmdSb290ID0gZmluZFJlbmRlcmluZ1Jvb3QoKnJvb3QpOwog
ICAgICAgICBpZiAoIXJlbmRlcmluZ1Jvb3QpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRleCBkMTIzNjkwZTRhMzQu
LjA5ODc4NjUzOWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVl
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmNwcApAQCAtNjIsOCArNjIsOSBAQCBuYW1lc3BhY2UgU3R5bGUgewogCiBERUZJTkVfQUxMT0NB
VE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZlclNjb3BlKTsKIAotVHJlZVJlc29s
dmVyOjpUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorVHJlZVJlc29sdmVyOjpUcmVl
UmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiB1cGRh
dGUpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV91cGRhdGUoV1RGTW92ZSh1
cGRhdGUpKQogewogfQogCkBAIC01NzYsMTEgKzU3NywxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8VXBk
YXRlPiBUcmVlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpICYm
ICFkb2N1bWVudEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fdXBkYXRlKTsKIAogICAgIG1fZGlkU2Vl
UGVuZGluZ1N0eWxlc2hlZXQgPSBtX2RvY3VtZW50LnN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nU2hl
ZXRzQmVmb3JlQm9keSgpOwogCi0gICAgbV91cGRhdGUgPSBtYWtlVW5pcXVlPFVwZGF0ZT4obV9k
b2N1bWVudCk7CisgICAgaWYgKCFtX3VwZGF0ZSkKKyAgICAgICAgbV91cGRhdGUgPSBtYWtlVW5p
cXVlPFVwZGF0ZT4obV9kb2N1bWVudCk7CiAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChhZG9wdFJl
ZigqbmV3IFNjb3BlKG1fZG9jdW1lbnQpKSk7CiAgICAgbV9wYXJlbnRTdGFjay5hcHBlbmQoUGFy
ZW50KG1fZG9jdW1lbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmgKaW5kZXggZWViMDFhOTAxYmIxLi4xODZiYjU0ZDUwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBSZXNvbHZlcjsK
IERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZlclNjb3Bl
KTsKIGNsYXNzIFRyZWVSZXNvbHZlciB7CiBwdWJsaWM6Ci0gICAgVHJlZVJlc29sdmVyKERvY3Vt
ZW50Jik7CisgICAgVHJlZVJlc29sdmVyKERvY3VtZW50Jiwgc3RkOjp1bmlxdWVfcHRyPFVwZGF0
ZT4gPSB7IH0pOwogICAgIH5UcmVlUmVzb2x2ZXIoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxV
cGRhdGU+IHJlc29sdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcAppbmRleCAw
ODU5MmEyZDhhMjEuLjhmYTg1MThlZTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVVcGRhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRl
LmNwcApAQCAtOTYsMTEgKzk2LDIzIEBAIHZvaWQgVXBkYXRlOjphZGRFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQsIEVsZW1lbnQqIHBhcmVudCwgRWxlbWVudFVwZGF0ZXMmJiBlbGVtCiAKIHZvaWQg
VXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0ZSYm
IHRleHRVcGRhdGUpCiB7Ci0gICAgQVNTRVJUKCFtX3RleHRzLmNvbnRhaW5zKCZ0ZXh0KSk7CiAg
ICAgQVNTRVJUKGNvbXBvc2VkVHJlZUFuY2VzdG9ycyh0ZXh0KS5maXJzdCgpID09IHBhcmVudCk7
CiAKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKLSAgICBtX3RleHRzLmFkZCgmdGV4dCwg
V1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3RleHRzLmVuc3VyZSgm
dGV4dCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUodGV4dFVwZGF0ZSk7CisgICAgfSk7
CisgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBhdXRvJiBlbnRyeSA9IHJl
c3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgIGF1dG8gc3RhcnRPZmZzZXQgPSBzdGQ6Om1p
bihlbnRyeS5vZmZzZXQsIHRleHRVcGRhdGUub2Zmc2V0KTsKKyAgICAgICAgYXV0byBlbmRPZmZz
ZXQgPSBzdGQ6Om1heChlbnRyeS5vZmZzZXQgKyBlbnRyeS5sZW5ndGgsIHRleHRVcGRhdGUub2Zm
c2V0ICsgdGV4dFVwZGF0ZS5sZW5ndGgpOworICAgICAgICBlbnRyeS5vZmZzZXQgPSBzdGFydE9m
ZnNldDsKKyAgICAgICAgZW50cnkubGVuZ3RoID0gZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQ7Cisg
ICAgICAgIAorICAgICAgICBBU1NFUlQoIWVudHJ5LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0
eWxlIHx8ICF0ZXh0VXBkYXRlLmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlKTsKKyAgICAg
ICAgaWYgKCFlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSkKKyAgICAgICAgICAg
IGVudHJ5LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlID0gV1RGTW92ZSh0ZXh0VXBkYXRl
LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlKTsKKyAgICB9CiB9CiAKIHZvaWQgVXBkYXRl
OjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQpAQCAtMTExLDcg
KzEyMyw3IEBAIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRVcGRhdGUmJiB0
ZXh0VXBkYXRlKQogdm9pZCBVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdChFbGVtZW50KiBlbGVtZW50
KQogewogICAgIGlmICghZWxlbWVudCkgewotICAgICAgICBtX3Jvb3RzLmFkZCgmbV9kb2N1bWVu
dCk7CisgICAgICAgIG1fcm9vdHMuYWRkKG1fZG9jdW1lbnQucHRyKCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGlmIChtX2VsZW1lbnRzLmNvbnRhaW5zKGVsZW1lbnQpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5kZXggMDRjNjA0MmQwNzA1Li44OTA5YjJiYzE5OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaApAQCAtNjksNyArNjksNyBAQCBjbGFzcyBVcGRh
dGUgewogcHVibGljOgogICAgIFVwZGF0ZShEb2N1bWVudCYpOwogCi0gICAgY29uc3QgTGlzdEhh
c2hTZXQ8Q29udGFpbmVyTm9kZSo+JiByb290cygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdHM7IH0K
KyAgICBjb25zdCBMaXN0SGFzaFNldDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+JiByb290cygpIGNv
bnN0IHsgcmV0dXJuIG1fcm9vdHM7IH0KIAogICAgIGNvbnN0IEVsZW1lbnRVcGRhdGVzKiBlbGVt
ZW50VXBkYXRlcyhjb25zdCBFbGVtZW50JikgY29uc3Q7CiAgICAgRWxlbWVudFVwZGF0ZXMqIGVs
ZW1lbnRVcGRhdGVzKGNvbnN0IEVsZW1lbnQmKTsKQEAgLTkwLDEwICs5MCwxMCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVSb290KEVsZW1lbnQqKTsKIAotICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwotICAgIExpc3RIYXNoU2V0PENvbnRhaW5lck5vZGUqPiBtX3Jv
b3RzOwotICAgIEhhc2hNYXA8Y29uc3QgRWxlbWVudCosIEVsZW1lbnRVcGRhdGVzPiBtX2VsZW1l
bnRzOwotICAgIEhhc2hNYXA8Y29uc3QgVGV4dCosIFRleHRVcGRhdGU+IG1fdGV4dHM7CisgICAg
UmVmPERvY3VtZW50PiBtX2RvY3VtZW50OworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxDb250YWlu
ZXJOb2RlPj4gbV9yb290czsKKyAgICBIYXNoTWFwPFJlZlB0cjxjb25zdCBFbGVtZW50PiwgRWxl
bWVudFVwZGF0ZXM+IG1fZWxlbWVudHM7CisgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgVGV4dD4s
IFRleHRVcGRhdGU+IG1fdGV4dHM7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421645</attachid>
            <date>2021-02-26 08:00:47 -0800</date>
            <delta_ts>2021-02-26 08:01:11 -0800</delta_ts>
            <desc>alternative approach</desc>
            <filename>svg-background-paint.patch</filename>
            <type>text/plain</type>
            <size>3720</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDVjNzJi
OTg4ZmFmMi4uMTcxNDQ1OWYxNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01NywxMCArNTgs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lv
bklELCBjb25zdCBDb29raWVKYXIqIGNvb2tpZUphcikKICAgICA6IENhY2hlZFJlc291cmNlKFdU
Rk1vdmUocmVxdWVzdCksIFR5cGU6OkltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCwgY29va2llSmFy
KQotICAgICwgbV91cGRhdGVJbWFnZURhdGFDb3VudCgwKQotICAgICwgbV9pc01hbnVhbGx5Q2Fj
aGVkKGZhbHNlKQotICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCi0gICAgLCBt
X2ZvcmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcoZmFsc2UpCiB7CiAgICAgc2V0
U3RhdHVzKFVua25vd24pOwogfQpAQCAtNjgsMjAgKzY1LDEzIEBAIENhY2hlZEltYWdlOjpDYWNo
ZWRJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBQQUw6OlNlc3Np
b25JRCYKIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZUphciogY29va2llSmFyKQogICAgIDog
Q2FjaGVkUmVzb3VyY2UoVVJMKCksIFR5cGU6OkltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCwgY29v
a2llSmFyKQogICAgICwgbV9pbWFnZShpbWFnZSkKLSAgICAsIG1fdXBkYXRlSW1hZ2VEYXRhQ291
bnQoMCkKLSAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKLSAgICAsIG1fc2hvdWxkUGFp
bnRCcm9rZW5JbWFnZSh0cnVlKQotICAgICwgbV9mb3JjZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRG
b3JUZXN0aW5nKGZhbHNlKQogewogfQogCiBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3Qg
VVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwg
Y29uc3QgQ29va2llSmFyKiBjb29raWVKYXIsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQ
YXJ0aXRpb24pCiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmwsIFR5cGU6OkltYWdlUmVzb3VyY2Us
IHNlc3Npb25JRCwgY29va2llSmFyKQogICAgICwgbV9pbWFnZShpbWFnZSkKLSAgICAsIG1fdXBk
YXRlSW1hZ2VEYXRhQ291bnQoMCkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZCh0cnVlKQotICAg
ICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCi0gICAgLCBtX2ZvcmNlVXBkYXRlSW1h
Z2VEYXRhRW5hYmxlZEZvclRlc3RpbmcoZmFsc2UpCiB7CiAgICAgbV9yZXNvdXJjZVJlcXVlc3Qu
c2V0RG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOwogCkBA
IC01NjgsNiArNTU4LDggQEAgdm9pZCBDYWNoZWRJbWFnZTo6dXBkYXRlRGF0YShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OmZpbmlzaExvYWRp
bmcoU2hhcmVkQnVmZmVyKiBkYXRhLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG1ldHJpY3Mp
CiB7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZmluaXNoTG9hZGluZ1Njb3BlKG1faW5GaW5pc2hM
b2FkaW5nLCB0cnVlKTsKKwogICAgIG1fZGF0YSA9IGNvbnZlcnRlZERhdGFJZk5lZWRlZChkYXRh
KTsKICAgICBpZiAobV9kYXRhKSB7CiAgICAgICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS0+c2l6
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggZDAx
ZmY5ZDU1MjNjLi40M2Y2NWQzOTY2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBzdGQ6OnBhaXI8SW1h
Z2UqLCBmbG9hdD4gYnJva2VuSW1hZ2UoZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpIGNvbnN0OyAv
LyBSZXR1cm5zIGFuIGltYWdlIGFuZCB0aGUgaW1hZ2UncyByZXNvbHV0aW9uIHNjYWxlIGZhY3Rv
ci4KICAgICBib29sIHdpbGxQYWludEJyb2tlbkltYWdlKCkgY29uc3Q7CiAKLSAgICBib29sIGNh
blJlbmRlcihjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgZmxvYXQgbXVsdGlwbGllcikg
eyByZXR1cm4gIWVycm9yT2NjdXJyZWQoKSAmJiAhaW1hZ2VTaXplRm9yUmVuZGVyZXIocmVuZGVy
ZXIsIG11bHRpcGxpZXIpLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgY2FuUmVuZGVyKGNvbnN0IFJl
bmRlckVsZW1lbnQqIHJlbmRlcmVyLCBmbG9hdCBtdWx0aXBsaWVyKSB7IHJldHVybiAhZXJyb3JP
Y2N1cnJlZCgpICYmIChtX2luRmluaXNoTG9hZGluZyB8fCAhaW1hZ2VTaXplRm9yUmVuZGVyZXIo
cmVuZGVyZXIsIG11bHRpcGxpZXIpLmlzRW1wdHkoKSk7IH0KIAogICAgIHZvaWQgc2V0Q29udGFp
bmVyQ29udGV4dEZvckNsaWVudChjb25zdCBDYWNoZWRJbWFnZUNsaWVudCYsIGNvbnN0IExheW91
dFNpemUmLCBmbG9hdCwgY29uc3QgVVJMJik7CiAgICAgYm9vbCB1c2VzSW1hZ2VDb250YWluZXJT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZSAmJiBtX2ltYWdlLT51c2VzQ29udGFpbmVyU2l6
ZSgpOyB9CkBAIC0xOTMsMTAgKzE5MywxMSBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1l
bnQ+IG1fc2tpcHBpbmdSZXZhbGlkYXRpb25Eb2N1bWVudDsKIAogICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbWF4VXBkYXRlSW1hZ2VEYXRhQ291bnQgPSA0OwotICAgIHVuc2lnbmVkIG1f
dXBkYXRlSW1hZ2VEYXRhQ291bnQgOiAzOwotICAgIGJvb2wgbV9pc01hbnVhbGx5Q2FjaGVkIDog
MTsKLSAgICBib29sIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSA6IDE7Ci0gICAgYm9vbCBtX2Zv
cmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcgOiAxOworICAgIHVuc2lnbmVkIG1f
dXBkYXRlSW1hZ2VEYXRhQ291bnQgeyAwIH07CisgICAgYm9vbCBtX2lzTWFudWFsbHlDYWNoZWQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tlbkltYWdlIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgbV9mb3JjZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faW5GaW5pc2hMb2FkaW5nIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421647</attachid>
            <date>2021-02-26 08:06:55 -0800</date>
            <delta_ts>2021-02-26 09:46:00 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-7.patch</filename>
            <type>text/plain</type>
            <size>15193</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmViMTI3NzA1ZjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJvIE1vdXJhICA8bG1v
dXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBhIGNvdXBsZSBjcmFz
aGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1j
cmFzaC1leHBlY3RlZC50eHQKaW5kZXggNTNmMTJjNjliY2U4Li5mZjUwMzhiNGVkZDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50
cy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtY29t
YmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSwxNiArMSwxNSBA
QAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg2MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHg0MAot
ICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgwCi0gICAgICAgIFJlbmRl
ckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MjAKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwyMCkgd2lkdGggMjA6ICJceHtGRkZDfSIKLSAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDQwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1
NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTYKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiXHh7RkZGQ30i
CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6ZSA3ODR4MAogICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw0MCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIwKSBz
aXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MDB4
MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDA6ICJQQVNTLCBkaWQgbm90
IGNyYXNoLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3Nz
L2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50
eHQKaW5kZXggYjg1NTJhZWM3ODk2Li44YjEzNzg5MTc5MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0
LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDRjNWI0MmM0YzM3Mi4uNjg0NWRjODAzMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjQgQEAKKzIwMjEtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmRlciB0cmVlIHVwZGF0ZXMgZm9yIFRleHQgbm9kZSBjb250ZW50IG11dGF0
aW9ucyBzaG91bGQgbm90IGJlIHN5bmNocm9ub3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWxscyB0byBUZXh0Lmluc2VydERhdGEgYW5kIHNpbWls
YXIgc2hvdWxkIG5vdCBtdXRhdGUgcmVuZGVyIHRyZWUgc3luY2hyb25vdXNseS4KKyAgICAgICAg
SW5zdGVhZCByZW5kZXIgdHJlZSBzaG91bGQgYmUgdXBkYXRlZCBkdXJpbmcgdGhlIG5leHQgcmVu
ZGVyaW5nIHVwZGF0ZSBhbG9uZyB3aXRoCisgICAgICAgIGFueSBzdHlsZSBjaGFuZ2VzLgorCisg
ICAgICAgIFRoZXNlIHVwZGF0ZXMgYWxyZWFkeSBnbyB2aWEgUmVuZGVyVHJlZVVwZGF0ZXIuIFdl
IGp1c3QgbmVlZCB0byBzYXZlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCB3aGljaCBu
b2RlcyBuZWVkIHVwZGF0aW5nIHNvIHRoZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUgY2FuIHBpY2sg
dGhlbSB1cC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnJlc29sdmVTdHlsZSk6CisKKyAgICAgICAgSW5jbHVkZSB0aGUgdGV4dCB1cGRhdGUgd2hlbiB1
cGRhdGluZyB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVUZXh0UmVuZGVyZXIpOgorCisgICAgICAgIENyZWF0ZSBhIHRleHQgdXBkYXRlIHRoYXQg
d2lsbCBnZXQgZmx1c2hlZCBkdXJpbmcgdGhlIG5leHQgcmVuZGVyaW5nIHVwZGF0ZS4KKworICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorCisgICAg
ICAgIFdlIG5lZWQgdG8gcmVjYWxjIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHRleHQgdXBkYXRlcy4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6VHJlZVJlc29s
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmUpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
VXBkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQpOgor
CisgICAgICAgIE1lcmdlIHRleHQgdXBkYXRlcy4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlVwZGF0ZTo6YWRkUG9zc2libGVSb290KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6cm9vdHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6IGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBS
ZWZjb3VudCB0aGUgbm9kZXMgc2luY2UgdGhpcyBub3cgaGFzIGxvbmdlciBsaWZldGltZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0KToKKwor
ICAgICAgICBFbnN1cmUgd2UgbGVhdmUgZGVsZXRlSW5zaWduaWZpY2FudFRleHQgd2l0aCB1cGRh
dGVkIHJlbmRlciB0cmVlLiBDbGllbnRzIGV4cGVjdCB0aGF0LgorICAgICAgICBEbyBsYXlvdXQg
KGluc3RlYWQgb2YganVzdCBzdHlsZSB1cGRhdGUpIGZvciBjb25zaXN0ZW5jeSwgZGVsZXRlSW5z
aWduaWZpY2FudFRleHQgZG9lcyBvbmUgYW55d2F5IGluIGJlZ2lubmluZy4KKworICAgICAgICAq
IGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGlsZHJlbldp
dGhGcmFnbWVudCk6CisKKyAgICAgICAgUGVuZGluZyB0ZXh0IHVwZGF0ZSBtYXkgcmVmIHRoZSBu
b2RlIHNvIHRoaXMgcmVmY291bnQgYXNzZXJ0IGlzIG5vdCBjb3JyZWN0LgorCisgICAgICAgICog
c3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6
YWRkVGV4dCk6CisKIDIwMjEtMDItMjUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBFbW9qaSBzZXF1ZW5jZXMgd2l0aCBjb25zdGl0dWVudHMgaW4g
dGhlIFVCTE9DS19TWU1CT0xTX0FORF9QSUNUT0dSQVBIU19FWFRFTkRFRF9BIFVuaWNvZGUgYmxv
Y2sgZG9uJ3QgZ2V0IGNvbWJpbmVkIHByb3Blcmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA4MDBjN2I5OTYxYjIuLmIyYWYwMTFhZjlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC04MDcsNiArODA3LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQogICAgICAg
ICBtX2Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGVhcigpOwogI2VuZGlmCiAgICAgICAgIG1fYXNzb2Np
YXRlZEZvcm1Db250cm9scy5jbGVhcigpOworICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4
dFVwZGF0ZSA9IHsgfTsKIAogICAgICAgICBtX2ZvbnRTZWxlY3Rvci0+c3RvcExvYWRpbmdBbmRD
bGVhckZvbnRzKCk7CiAKQEAgLTIwNTIsNyArMjA1Myw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29s
dmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRF
bGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzKTsKKyAgICAgICAgU3R5bGU6OlRy
ZWVSZXNvbHZlciByZXNvbHZlcigqdGhpcywgV1RGTW92ZShtX3BlbmRpbmdSZW5kZXJUcmVlVGV4
dFVwZGF0ZSkpOwogICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgp
OwogCiAgICAgICAgIG1fbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcgPSBzdHlsZVVwZGF0
ZSA/IHN0eWxlVXBkYXRlLT5zaXplKCkgOiAwOwpAQCAtMjEwMCwxMCArMjEwMSwxMiBAQCB2b2lk
IERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERv
Y3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZS
ZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8g
dGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRV
cGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBs
YWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKKyAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclRyZWVU
ZXh0VXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSA9IG1ha2VV
bmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogCi0gICAgdXBkYXRlUmVuZGVyVHJlZShXVEZN
b3ZlKHRleHRVcGRhdGUpKTsKKyAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZS0+YWRk
VGV4dCh0ZXh0LCB7IG9mZnNldE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCwg
V1RGOjpudWxsb3B0IH0pOworCisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoeyB9KTsKIH0K
IAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CkBAIC0yMTE3LDYgKzIx
MjAsOSBAQCBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QKICAgICBpZiAo
Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYg
KG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwog
ICAgIGlmIChzdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1VwZGF0ZSgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTkuLjQ1NzQ3OGNlMDFl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE4MDMsNiArMTgwMyw4IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgVGltZXIgbV9zdHlsZVJlY2FsY1RpbWVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRy
PFN0eWxlOjpVcGRhdGU+IG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlOworCiAgICAgRWxl
bWVudCogbV9jc3NUYXJnZXQgeyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6
eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNw
cAppbmRleCBmOTE4ZDQyMDNhNDguLmFmMzIxZDBkMGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAt
NzYsOCArNzYsNyBAQCBFeGNlcHRpb25PcjxSZWY8VGV4dD4+IFRleHQ6OnNwbGl0VGV4dCh1bnNp
Z25lZCBvZmZzZXQpCiAKICAgICBkb2N1bWVudCgpLnRleHROb2RlU3BsaXQoKnRoaXMpOwogCi0g
ICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJlbmRlcmVyKCktPnNldFRleHRXaXRoT2Zmc2V0
KGRhdGEoKSwgMCwgb2xkRGF0YS5sZW5ndGgoKSk7CisgICAgdXBkYXRlUmVuZGVyZXJBZnRlckNv
bnRlbnRDaGFuZ2UoMCwgb2xkRGF0YS5sZW5ndGgoKSk7CiAKICAgICByZXR1cm4gbmV3VGV4dDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
aW5kZXggMTdmNmUxYzIxODY1Li5jNGI5ZGE1NjAwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xMDU4LDYgKzEwNTgsOCBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dChjb25zdCBQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGludCBlbmRPZmZzZXQgPSB0ZXh0Tm9kZS5w
dHIoKSA9PSBlbmQuZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNl
dCgpIDogc3RhdGljX2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVuZ3RoKCkpOwogICAgICAgICBkZWxl
dGVJbnNpZ25pZmljYW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAg
ICAgfQorICAgIGlmICghbm9kZXMuaXNFbXB0eSgpKQorICAgICAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dERvd25zdHJlYW0oY29uc3QgUG9zaXRp
b24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IGRiZTQ5OTZhZTg2
YS4uNWNkMDkwMzQxMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xMzg1LDcg
KzEzODUsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQo
Q29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBSZWY8RG9jdQogICAgIGF1dG8qIGNvbnRhaW5lckNo
aWxkID0gY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmIChjb250YWluZXJDaGls
ZCAmJiAhY29udGFpbmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGlzPFRl
eHQ+KCpjb250YWluZXJDaGlsZCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50KSAmJiBjYW5V
c2VTZXREYXRhT3B0aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCksIG11
dGF0aW9uKSkgewotICAgICAgICAgICAgQVNTRVJUKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpLT5y
ZWZDb3VudCgpKTsKICAgICAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCku
c2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0YSgpKTsK
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGMx
OGUxMGU5MmExNC4uNTk2OGFiZGFjNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTEwMiw3ICsxMDIs
NyBAQCBzdGF0aWMgQ29udGFpbmVyTm9kZSogZmluZFJlbmRlcmluZ1Jvb3QoQ29udGFpbmVyTm9k
ZSYgbm9kZSkKIHN0YXRpYyBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gZmluZFJlbmRlcmlu
Z1Jvb3RzKGNvbnN0IFN0eWxlOjpVcGRhdGUmIHVwZGF0ZSkKIHsKICAgICBMaXN0SGFzaFNldDxD
b250YWluZXJOb2RlKj4gcmVuZGVyaW5nUm9vdHM7Ci0gICAgZm9yIChhdXRvKiByb290IDogdXBk
YXRlLnJvb3RzKCkpIHsKKyAgICBmb3IgKGF1dG8mIHJvb3QgOiB1cGRhdGUucm9vdHMoKSkgewog
ICAgICAgICBhdXRvKiByZW5kZXJpbmdSb290ID0gZmluZFJlbmRlcmluZ1Jvb3QoKnJvb3QpOwog
ICAgICAgICBpZiAoIXJlbmRlcmluZ1Jvb3QpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRleCBkMTIzNjkwZTRhMzQu
LjA5ODc4NjUzOWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVl
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmNwcApAQCAtNjIsOCArNjIsOSBAQCBuYW1lc3BhY2UgU3R5bGUgewogCiBERUZJTkVfQUxMT0NB
VE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZlclNjb3BlKTsKIAotVHJlZVJlc29s
dmVyOjpUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorVHJlZVJlc29sdmVyOjpUcmVl
UmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiB1cGRh
dGUpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV91cGRhdGUoV1RGTW92ZSh1
cGRhdGUpKQogewogfQogCkBAIC01NzYsMTEgKzU3NywxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8VXBk
YXRlPiBUcmVlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpICYm
ICFkb2N1bWVudEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fdXBkYXRlKTsKIAogICAgIG1fZGlkU2Vl
UGVuZGluZ1N0eWxlc2hlZXQgPSBtX2RvY3VtZW50LnN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nU2hl
ZXRzQmVmb3JlQm9keSgpOwogCi0gICAgbV91cGRhdGUgPSBtYWtlVW5pcXVlPFVwZGF0ZT4obV9k
b2N1bWVudCk7CisgICAgaWYgKCFtX3VwZGF0ZSkKKyAgICAgICAgbV91cGRhdGUgPSBtYWtlVW5p
cXVlPFVwZGF0ZT4obV9kb2N1bWVudCk7CiAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChhZG9wdFJl
ZigqbmV3IFNjb3BlKG1fZG9jdW1lbnQpKSk7CiAgICAgbV9wYXJlbnRTdGFjay5hcHBlbmQoUGFy
ZW50KG1fZG9jdW1lbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmgKaW5kZXggZWViMDFhOTAxYmIxLi4xODZiYjU0ZDUwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBSZXNvbHZlcjsK
IERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZlclNjb3Bl
KTsKIGNsYXNzIFRyZWVSZXNvbHZlciB7CiBwdWJsaWM6Ci0gICAgVHJlZVJlc29sdmVyKERvY3Vt
ZW50Jik7CisgICAgVHJlZVJlc29sdmVyKERvY3VtZW50Jiwgc3RkOjp1bmlxdWVfcHRyPFVwZGF0
ZT4gPSB7IH0pOwogICAgIH5UcmVlUmVzb2x2ZXIoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxV
cGRhdGU+IHJlc29sdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcAppbmRleCAw
ODU5MmEyZDhhMjEuLjhmYTg1MThlZTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVVcGRhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRl
LmNwcApAQCAtOTYsMTEgKzk2LDIzIEBAIHZvaWQgVXBkYXRlOjphZGRFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQsIEVsZW1lbnQqIHBhcmVudCwgRWxlbWVudFVwZGF0ZXMmJiBlbGVtCiAKIHZvaWQg
VXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0ZSYm
IHRleHRVcGRhdGUpCiB7Ci0gICAgQVNTRVJUKCFtX3RleHRzLmNvbnRhaW5zKCZ0ZXh0KSk7CiAg
ICAgQVNTRVJUKGNvbXBvc2VkVHJlZUFuY2VzdG9ycyh0ZXh0KS5maXJzdCgpID09IHBhcmVudCk7
CiAKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKLSAgICBtX3RleHRzLmFkZCgmdGV4dCwg
V1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3RleHRzLmVuc3VyZSgm
dGV4dCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUodGV4dFVwZGF0ZSk7CisgICAgfSk7
CisgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBhdXRvJiBlbnRyeSA9IHJl
c3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgIGF1dG8gc3RhcnRPZmZzZXQgPSBzdGQ6Om1p
bihlbnRyeS5vZmZzZXQsIHRleHRVcGRhdGUub2Zmc2V0KTsKKyAgICAgICAgYXV0byBlbmRPZmZz
ZXQgPSBzdGQ6Om1heChlbnRyeS5vZmZzZXQgKyBlbnRyeS5sZW5ndGgsIHRleHRVcGRhdGUub2Zm
c2V0ICsgdGV4dFVwZGF0ZS5sZW5ndGgpOworICAgICAgICBlbnRyeS5vZmZzZXQgPSBzdGFydE9m
ZnNldDsKKyAgICAgICAgZW50cnkubGVuZ3RoID0gZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQ7Cisg
ICAgICAgIAorICAgICAgICBBU1NFUlQoIWVudHJ5LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0
eWxlIHx8ICF0ZXh0VXBkYXRlLmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlKTsKKyAgICAg
ICAgaWYgKCFlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSkKKyAgICAgICAgICAg
IGVudHJ5LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlID0gV1RGTW92ZSh0ZXh0VXBkYXRl
LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlKTsKKyAgICB9CiB9CiAKIHZvaWQgVXBkYXRl
OjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQpAQCAtMTExLDcg
KzEyMyw3IEBAIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRVcGRhdGUmJiB0
ZXh0VXBkYXRlKQogdm9pZCBVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdChFbGVtZW50KiBlbGVtZW50
KQogewogICAgIGlmICghZWxlbWVudCkgewotICAgICAgICBtX3Jvb3RzLmFkZCgmbV9kb2N1bWVu
dCk7CisgICAgICAgIG1fcm9vdHMuYWRkKG1fZG9jdW1lbnQucHRyKCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGlmIChtX2VsZW1lbnRzLmNvbnRhaW5zKGVsZW1lbnQpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5kZXggMDRjNjA0MmQwNzA1Li44OTA5YjJiYzE5OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaApAQCAtNjksNyArNjksNyBAQCBjbGFzcyBVcGRh
dGUgewogcHVibGljOgogICAgIFVwZGF0ZShEb2N1bWVudCYpOwogCi0gICAgY29uc3QgTGlzdEhh
c2hTZXQ8Q29udGFpbmVyTm9kZSo+JiByb290cygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdHM7IH0K
KyAgICBjb25zdCBMaXN0SGFzaFNldDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+JiByb290cygpIGNv
bnN0IHsgcmV0dXJuIG1fcm9vdHM7IH0KIAogICAgIGNvbnN0IEVsZW1lbnRVcGRhdGVzKiBlbGVt
ZW50VXBkYXRlcyhjb25zdCBFbGVtZW50JikgY29uc3Q7CiAgICAgRWxlbWVudFVwZGF0ZXMqIGVs
ZW1lbnRVcGRhdGVzKGNvbnN0IEVsZW1lbnQmKTsKQEAgLTkwLDEwICs5MCwxMCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVSb290KEVsZW1lbnQqKTsKIAotICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwotICAgIExpc3RIYXNoU2V0PENvbnRhaW5lck5vZGUqPiBtX3Jv
b3RzOwotICAgIEhhc2hNYXA8Y29uc3QgRWxlbWVudCosIEVsZW1lbnRVcGRhdGVzPiBtX2VsZW1l
bnRzOwotICAgIEhhc2hNYXA8Y29uc3QgVGV4dCosIFRleHRVcGRhdGU+IG1fdGV4dHM7CisgICAg
UmVmPERvY3VtZW50PiBtX2RvY3VtZW50OworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxDb250YWlu
ZXJOb2RlPj4gbV9yb290czsKKyAgICBIYXNoTWFwPFJlZlB0cjxjb25zdCBFbGVtZW50PiwgRWxl
bWVudFVwZGF0ZXM+IG1fZWxlbWVudHM7CisgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgVGV4dD4s
IFRleHRVcGRhdGU+IG1fdGV4dHM7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421664</attachid>
            <date>2021-02-26 09:46:00 -0800</date>
            <delta_ts>2021-02-26 09:49:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-9.patch</filename>
            <type>text/plain</type>
            <size>17300</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmViMTI3NzA1ZjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBiZSBzeW5jaHJvbm91cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3Qv
dGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRleHQgdGhhdCBkaWRu
J3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJvIE1vdXJhICA8bG1v
dXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBhIGNvdXBsZSBjcmFz
aGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxpdFRleHQtZGlydHkt
bGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4ZDM3NTdlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVz
LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4KSBzaXplIDIwMHgx
NjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIKIGxheWVyIGF0ICg4
LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2
MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFBQUEiCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1j
cmFzaC1leHBlY3RlZC50eHQKaW5kZXggNTNmMTJjNjliY2U4Li5mZjUwMzhiNGVkZDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50
cy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtY29t
YmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSwxNiArMSwxNSBA
QAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg2MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHg0MAot
ICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgwCi0gICAgICAgIFJlbmRl
ckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MjAKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwyMCkgd2lkdGggMjA6ICJceHtGRkZDfSIKLSAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDQwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1
NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTYKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiXHh7RkZGQ30i
CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6ZSA3ODR4MAogICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw0MCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIwKSBz
aXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MDB4
MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDA6ICJQQVNTLCBkaWQgbm90
IGNyYXNoLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3Nz
L2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50
eHQKaW5kZXggYjg1NTJhZWM3ODk2Li44YjEzNzg5MTc5MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0
LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDRjNWI0MmM0YzM3Mi4uYzk5ZTNjZTUxM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjYgQEAKKzIwMjEtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmRlciB0cmVlIHVwZGF0ZXMgZm9yIFRleHQgbm9kZSBjb250ZW50IG11dGF0
aW9ucyBzaG91bGQgbm90IGJlIHN5bmNocm9ub3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWxscyB0byBUZXh0Lmluc2VydERhdGEgYW5kIHNpbWls
YXIgc2hvdWxkIG5vdCBtdXRhdGUgcmVuZGVyIHRyZWUgc3luY2hyb25vdXNseS4KKyAgICAgICAg
SW5zdGVhZCByZW5kZXIgdHJlZSBzaG91bGQgYmUgdXBkYXRlZCBkdXJpbmcgdGhlIG5leHQgcmVu
ZGVyaW5nIHVwZGF0ZSBhbG9uZyB3aXRoCisgICAgICAgIGFueSBzdHlsZSBjaGFuZ2VzLgorCisg
ICAgICAgIFRoZXNlIHVwZGF0ZXMgYWxyZWFkeSBnbyB2aWEgUmVuZGVyVHJlZVVwZGF0ZXIuIFdl
IGp1c3QgbmVlZCB0byBzYXZlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCB3aGljaCBu
b2RlcyBuZWVkIHVwZGF0aW5nIHNvIHRoZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUgY2FuIHBpY2sg
dGhlbSB1cC4KKworICAgICAgICBUaGlzIHNlZW1zIHRvIGhlbHAgd2l0aCBzb21lIHBlcmZvcm1h
bmNlIGJlbmNobWFya3MuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAgIEluY2x1ZGUgdGhlIHRleHQgdXBkYXRl
IHdoZW4gdXBkYXRpbmcgdGhlIHJlbmRlciB0cmVlLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVyKToKKworICAgICAgICBDcmVhdGUgYSB0ZXh0IHVwZGF0
ZSB0aGF0IHdpbGwgZ2V0IGZsdXNoZWQgZHVyaW5nIHRoZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUu
CisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToK
KworICAgICAgICBXZSBuZWVkIHRvIHJlY2FsYyBpZiB0aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVw
ZGF0ZXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlRy
ZWVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNv
bHZlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6VHJlZVJlc29sdmVyKToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZVVwZGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRU
ZXh0KToKKworICAgICAgICBNZXJnZSB0ZXh0IHVwZGF0ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVV
cGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OnJvb3RzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OiBjb25zdCk6IERlbGV0ZWQuCisKKyAg
ICAgICAgUmVmY291bnQgdGhlIG5vZGVzIHNpbmNlIHRoaXMgbm93IGhhcyBsb25nZXIgbGlmZXRp
bWUuCisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4
dCk6CisKKyAgICAgICAgRW5zdXJlIHdlIGxlYXZlIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0IHdp
dGggdXBkYXRlZCByZW5kZXIgdHJlZS4gQ2xpZW50cyBleHBlY3QgdGhhdC4KKyAgICAgICAgRG8g
bGF5b3V0IChpbnN0ZWFkIG9mIGp1c3Qgc3R5bGUgdXBkYXRlKSBmb3IgY29uc2lzdGVuY3ksIGRl
bGV0ZUluc2lnbmlmaWNhbnRUZXh0IGRvZXMgb25lIGFueXdheSBpbiBiZWdpbm5pbmcuCisKKyAg
ICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBsYWNlQ2hp
bGRyZW5XaXRoRnJhZ21lbnQpOgorCisgICAgICAgIFBlbmRpbmcgdGV4dCB1cGRhdGUgbWF5IHJl
ZiB0aGUgbm9kZSBzbyB0aGlzIHJlZmNvdW50IGFzc2VydCBpcyBub3QgY29ycmVjdC4KKworICAg
ICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpV
cGRhdGU6OmFkZFRleHQpOgorCiAyMDIxLTAyLTI1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgRW1vamkgc2VxdWVuY2VzIHdpdGggY29uc3RpdHVl
bnRzIGluIHRoZSBVQkxPQ0tfU1lNQk9MU19BTkRfUElDVE9HUkFQSFNfRVhURU5ERURfQSBVbmlj
b2RlIGJsb2NrIGRvbid0IGdldCBjb21iaW5lZCBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJh
Y3RlckRhdGEuY3BwCmluZGV4IDBmZjJhNWNlMmEzYy4uYmI4ZDUzY2NjNDQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdW5zaWduZWQgQ2hh
cmFjdGVyRGF0YTo6cGFyc2VyQXBwZW5kRGF0YShjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWdu
ZWQgb2Zmc2V0LAogICAgICAgICBtX2RhdGEuYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSAr
IG9mZnNldCwgY2hhcmFjdGVyTGVuZ3RoTGltaXQpOwogCiAgICAgQVNTRVJUKCFyZW5kZXJlcigp
IHx8IGlzPFRleHQ+KCp0aGlzKSk7Ci0gICAgaWYgKGlzPFRleHQ+KCp0aGlzKSAmJiBwYXJlbnRO
b2RlKCkpCisgICAgaWYgKGlzPFRleHQ+KCp0aGlzKSkKICAgICAgICAgZG93bmNhc3Q8VGV4dD4o
KnRoaXMpLnVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250ZW50Q2hhbmdlKG9sZExlbmd0aCwgMCk7CiAK
ICAgICBub3RpZnlQYXJlbnRBZnRlckNoYW5nZShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6
U291cmNlOjpQYXJzZXIpOwpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6
c2V0RGF0YUFuZFVwZGF0ZShjb25zdCBTdHJpbmcmIG5ld0RhdGEsIHVuc2lnbmVkIG9mZnNldE9m
UmVwCiAgICAgICAgIGRvY3VtZW50KCkudGV4dEluc2VydGVkKCp0aGlzLCBvZmZzZXRPZlJlcGxh
Y2VkRGF0YSwgbmV3TGVuZ3RoKTsKIAogICAgIEFTU0VSVCghcmVuZGVyZXIoKSB8fCBpczxUZXh0
PigqdGhpcykpOwotICAgIGlmIChpczxUZXh0PigqdGhpcykgJiYgcGFyZW50Tm9kZSgpKQorICAg
IGlmIChpczxUZXh0PigqdGhpcykpCiAgICAgICAgIGRvd25jYXN0PFRleHQ+KCp0aGlzKS51cGRh
dGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZShvZmZzZXRPZlJlcGxhY2VkRGF0YSwgb2xkTGVu
Z3RoKTsKIAogICAgIGlmIChpczxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+KCp0aGlzKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDgwMGM3Yjk5NjFiMi4uYjJhZjAxMWFmOWRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTgwNyw2ICs4MDcsNyBAQCB2b2lkIERvY3VtZW50OjpyZW1v
dmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNsZWFyKCk7CiAjZW5k
aWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7CisgICAgICAgIG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9OwogCiAgICAgICAgIG1fZm9udFNlbGVj
dG9yLT5zdG9wTG9hZGluZ0FuZENsZWFyRm9udHMoKTsKIApAQCAtMjA1Miw3ICsyMDUzLDcgQEAg
dm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAg
ICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2ZXIgcmVzb2x2ZXIoKnRoaXMp
OworICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CiAgICAgICAgIGF1dG8gc3R5bGVVcGRhdGUg
PSByZXNvbHZlci5yZXNvbHZlKCk7CiAKICAgICAgICAgbV9sYXN0U3R5bGVVcGRhdGVTaXplRm9y
VGVzdGluZyA9IHN0eWxlVXBkYXRlID8gc3R5bGVVcGRhdGUtPnNpemUoKSA6IDA7CkBAIC0yMTAw
LDEwICsyMTAxLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVU
eXBlIHR5cGUpCiAKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0
LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNl
ZFRleHQpCiB7Ci0gICAgYXV0byB0ZXh0VXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRl
PigqdGhpcyk7Ci0gICAgdGV4dFVwZGF0ZS0+YWRkVGV4dCh0ZXh0LCB7IG9mZnNldE9mUmVwbGFj
ZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCwgV1RGOjpudWxsb3B0IH0pOworICAgIGlmICgh
bV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisgICAgICAgIG1fcGVuZGluZ1JlbmRlclRy
ZWVUZXh0VXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CiAKLSAgICB1
cGRhdGVSZW5kZXJUcmVlKFdURk1vdmUodGV4dFVwZGF0ZSkpOworICAgIG1fcGVuZGluZ1JlbmRl
clRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxl
bmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQgfSk7CisKKyAgICBzY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZSh7IH0pOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkg
Y29uc3QKQEAgLTIxMTcsNiArMjEyMCw5IEBAIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNh
bGMoKSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKKyAgICBpZiAobV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisgICAg
ICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRl
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhY2Rm
ZDczYTcxOS4uNDU3NDc4Y2UwMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTgwMyw2ICsx
ODAzLDggQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0eWxlUmVjYWxjVGltZXI7CiAK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRl
eHRVcGRhdGU7CisKICAgICBFbGVtZW50KiBtX2Nzc1RhcmdldCB7IG51bGxwdHIgfTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9i
c2VydmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGY5MThkNDIwM2E0OC4uMTJkOTE3MTFkZDc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuY3BwCkBAIC03Niw4ICs3Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxUZXh0Pj4g
VGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCkKIAogICAgIGRvY3VtZW50KCkudGV4dE5v
ZGVTcGxpdCgqdGhpcyk7CiAKLSAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgcmVuZGVyZXIo
KS0+c2V0VGV4dFdpdGhPZmZzZXQoZGF0YSgpLCAwLCBvbGREYXRhLmxlbmd0aCgpKTsKKyAgICB1
cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZSgwLCBvbGREYXRhLmxlbmd0aCgpKTsKIAog
ICAgIHJldHVybiBuZXdUZXh0OwogfQpAQCAtMjE1LDcgKzIxNCw5IEBAIFJlZjxUZXh0PiBUZXh0
OjpjcmVhdGVXaXRoTGVuZ3RoTGltaXQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IGRhdGEsIHVuCiAKIHZvaWQgVGV4dDo6dXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2Uo
dW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRE
YXRhKQogewotICAgIEFTU0VSVChwYXJlbnROb2RlKCkpOworICAgIGlmICghaXNDb25uZWN0ZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHN0eWxlVmFsaWRpdHkoKSA+PSBTdHlsZTo6
VmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZhbGlkKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5k
ZXggMTdmNmUxYzIxODY1Li5jNGI5ZGE1NjAwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xMDU4LDYgKzEwNTgsOCBAQCB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dChjb25zdCBQb3Np
dGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGludCBlbmRPZmZzZXQgPSB0ZXh0Tm9kZS5wdHIo
KSA9PSBlbmQuZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgp
IDogc3RhdGljX2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVuZ3RoKCkpOwogICAgICAgICBkZWxldGVJ
bnNpZ25pZmljYW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAgICAg
fQorICAgIGlmICghbm9kZXMuaXNFbXB0eSgpKQorICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dERvd25zdHJlYW0oY29uc3QgUG9zaXRpb24m
IHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IGRiZTQ5OTZhZTg2YS4u
NWNkMDkwMzQxMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xMzg1LDcgKzEz
ODUsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29u
dGFpbmVyTm9kZSYgY29udGFpbmVyLCBSZWY8RG9jdQogICAgIGF1dG8qIGNvbnRhaW5lckNoaWxk
ID0gY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmIChjb250YWluZXJDaGlsZCAm
JiAhY29udGFpbmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGlzPFRleHQ+
KCpjb250YWluZXJDaGlsZCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50KSAmJiBjYW5Vc2VT
ZXREYXRhT3B0aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCksIG11dGF0
aW9uKSkgewotICAgICAgICAgICAgQVNTRVJUKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpLT5yZWZD
b3VudCgpKTsKICAgICAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGlsZCkuc2V0
RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0YSgpKTsKICAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcAppbmRleCA1NDgwNjE4OWVkZTguLjljMGE5YjdjZTk4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkNvdmVyYWdlLmNwcApAQCAtNTAsNyArNTAsNyBAQAogI2RlZmluZSBBTExPV19JTUFHRVMgMQog
I2RlZmluZSBBTExPV19BTExfUkVQTEFDRUQgMQogI2RlZmluZSBBTExPV19JTkxJTkVfQkxPQ0sg
MQotI2RlZmluZSBBTExPV19JTkxJTkVTIDAKKyNkZWZpbmUgQUxMT1dfSU5MSU5FUyAxCiAKICNp
Zm5kZWYgTkRFQlVHCiAjZGVmaW5lIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQocmVh
c29uLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucykgeyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAppbmRleCBjMThl
MTBlOTJhMTQuLjU5NjhhYmRhYzU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgc3RhdGljIENvbnRhaW5lck5vZGUqIGZpbmRSZW5kZXJpbmdSb290KENvbnRhaW5lck5vZGUm
IG5vZGUpCiBzdGF0aWMgTGlzdEhhc2hTZXQ8Q29udGFpbmVyTm9kZSo+IGZpbmRSZW5kZXJpbmdS
b290cyhjb25zdCBTdHlsZTo6VXBkYXRlJiB1cGRhdGUpCiB7CiAgICAgTGlzdEhhc2hTZXQ8Q29u
dGFpbmVyTm9kZSo+IHJlbmRlcmluZ1Jvb3RzOwotICAgIGZvciAoYXV0byogcm9vdCA6IHVwZGF0
ZS5yb290cygpKSB7CisgICAgZm9yIChhdXRvJiByb290IDogdXBkYXRlLnJvb3RzKCkpIHsKICAg
ICAgICAgYXV0byogcmVuZGVyaW5nUm9vdCA9IGZpbmRSZW5kZXJpbmdSb290KCpyb290KTsKICAg
ICAgICAgaWYgKCFyZW5kZXJpbmdSb290KQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggZDEyMzY5MGU0YTM0Li4w
OTg3ODY1MzlhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5j
cHAKQEAgLTYyLDggKzYyLDkgQEAgbmFtZXNwYWNlIFN0eWxlIHsKIAogREVGSU5FX0FMTE9DQVRP
Ul9XSVRIX0hFQVBfSURFTlRJRklFUihUcmVlUmVzb2x2ZXJTY29wZSk7CiAKLVRyZWVSZXNvbHZl
cjo6VHJlZVJlc29sdmVyKERvY3VtZW50JiBkb2N1bWVudCkKK1RyZWVSZXNvbHZlcjo6VHJlZVJl
c29sdmVyKERvY3VtZW50JiBkb2N1bWVudCwgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gdXBkYXRl
KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fdXBkYXRlKFdURk1vdmUodXBk
YXRlKSkKIHsKIH0KIApAQCAtNTc2LDExICs1NzcsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0
ZT4gVHJlZVJlc29sdmVyOjpyZXNvbHZlKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogICAgIGlmICghZG9jdW1lbnRFbGVtZW50LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSAmJiAh
ZG9jdW1lbnRFbGVtZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gV1RGTW92ZShtX3VwZGF0ZSk7CiAKICAgICBtX2RpZFNlZVBl
bmRpbmdTdHlsZXNoZWV0ID0gbV9kb2N1bWVudC5zdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1NoZWV0
c0JlZm9yZUJvZHkoKTsKIAotICAgIG1fdXBkYXRlID0gbWFrZVVuaXF1ZTxVcGRhdGU+KG1fZG9j
dW1lbnQpOworICAgIGlmICghbV91cGRhdGUpCisgICAgICAgIG1fdXBkYXRlID0gbWFrZVVuaXF1
ZTxVcGRhdGU+KG1fZG9jdW1lbnQpOwogICAgIG1fc2NvcGVTdGFjay5hcHBlbmQoYWRvcHRSZWYo
Km5ldyBTY29wZShtX2RvY3VtZW50KSkpOwogICAgIG1fcGFyZW50U3RhY2suYXBwZW5kKFBhcmVu
dChtX2RvY3VtZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5o
CmluZGV4IGVlYjAxYTkwMWJiMS4uMTg2YmI1NGQ1MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgUmVzb2x2ZXI7CiBE
RUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihUcmVlUmVzb2x2ZXJTY29wZSk7
CiBjbGFzcyBUcmVlUmVzb2x2ZXIgewogcHVibGljOgotICAgIFRyZWVSZXNvbHZlcihEb2N1bWVu
dCYpOworICAgIFRyZWVSZXNvbHZlcihEb2N1bWVudCYsIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+
ID0geyB9KTsKICAgICB+VHJlZVJlc29sdmVyKCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXBk
YXRlPiByZXNvbHZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVw
ZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKaW5kZXggMDg1
OTJhMmQ4YTIxLi44ZmE4NTE4ZWU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVXBkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5j
cHAKQEAgLTk2LDExICs5NiwyMyBAQCB2b2lkIFVwZGF0ZTo6YWRkRWxlbWVudChFbGVtZW50JiBl
bGVtZW50LCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRVcGRhdGVzJiYgZWxlbQogCiB2b2lkIFVw
ZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJiB0
ZXh0VXBkYXRlKQogewotICAgIEFTU0VSVCghbV90ZXh0cy5jb250YWlucygmdGV4dCkpOwogICAg
IEFTU0VSVChjb21wb3NlZFRyZWVBbmNlc3RvcnModGV4dCkuZmlyc3QoKSA9PSBwYXJlbnQpOwog
CiAgICAgYWRkUG9zc2libGVSb290KHBhcmVudCk7Ci0gICAgbV90ZXh0cy5hZGQoJnRleHQsIFdU
Rk1vdmUodGV4dFVwZGF0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90ZXh0cy5lbnN1cmUoJnRl
eHQsIFsmXSB7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKHRleHRVcGRhdGUpOworICAgIH0pOwor
ICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBhdXRvIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4o
ZW50cnkub2Zmc2V0LCB0ZXh0VXBkYXRlLm9mZnNldCk7CisgICAgICAgIGF1dG8gZW5kT2Zmc2V0
ID0gc3RkOjptYXgoZW50cnkub2Zmc2V0ICsgZW50cnkubGVuZ3RoLCB0ZXh0VXBkYXRlLm9mZnNl
dCArIHRleHRVcGRhdGUubGVuZ3RoKTsKKyAgICAgICAgZW50cnkub2Zmc2V0ID0gc3RhcnRPZmZz
ZXQ7CisgICAgICAgIGVudHJ5Lmxlbmd0aCA9IGVuZE9mZnNldCAtIHN0YXJ0T2Zmc2V0OworICAg
ICAgICAKKyAgICAgICAgQVNTRVJUKCFlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHls
ZSB8fCAhdGV4dFVwZGF0ZS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSk7CisgICAgICAg
IGlmICghZW50cnkuaW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpCisgICAgICAgICAgICBl
bnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSA9IFdURk1vdmUodGV4dFVwZGF0ZS5p
bmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSk7CisgICAgfQogfQogCiB2b2lkIFVwZGF0ZTo6
YWRkVGV4dChUZXh0JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKQEAgLTExMSw3ICsx
MjMsNyBAQCB2b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4
dFVwZGF0ZSkKIHZvaWQgVXBkYXRlOjphZGRQb3NzaWJsZVJvb3QoRWxlbWVudCogZWxlbWVudCkK
IHsKICAgICBpZiAoIWVsZW1lbnQpIHsKLSAgICAgICAgbV9yb290cy5hZGQoJm1fZG9jdW1lbnQp
OworICAgICAgICBtX3Jvb3RzLmFkZChtX2RvY3VtZW50LnB0cigpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBpZiAobV9lbGVtZW50cy5jb250YWlucyhlbGVtZW50KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVVwZGF0ZS5oCmluZGV4IDA0YzYwNDJkMDcwNS4uODkwOWIyYmMxOTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgVXBkYXRl
IHsKIHB1YmxpYzoKICAgICBVcGRhdGUoRG9jdW1lbnQmKTsKIAotICAgIGNvbnN0IExpc3RIYXNo
U2V0PENvbnRhaW5lck5vZGUqPiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RzOyB9Cisg
ICAgY29uc3QgTGlzdEhhc2hTZXQ8UmVmUHRyPENvbnRhaW5lck5vZGU+PiYgcm9vdHMoKSBjb25z
dCB7IHJldHVybiBtX3Jvb3RzOyB9CiAKICAgICBjb25zdCBFbGVtZW50VXBkYXRlcyogZWxlbWVu
dFVwZGF0ZXMoY29uc3QgRWxlbWVudCYpIGNvbnN0OwogICAgIEVsZW1lbnRVcGRhdGVzKiBlbGVt
ZW50VXBkYXRlcyhjb25zdCBFbGVtZW50Jik7CkBAIC05MCwxMCArOTAsMTAgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICB2b2lkIGFkZFBvc3NpYmxlUm9vdChFbGVtZW50Kik7CiAKLSAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKLSAgICBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gbV9yb290
czsKLSAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnQqLCBFbGVtZW50VXBkYXRlcz4gbV9lbGVtZW50
czsKLSAgICBIYXNoTWFwPGNvbnN0IFRleHQqLCBUZXh0VXBkYXRlPiBtX3RleHRzOworICAgIFJl
ZjxEb2N1bWVudD4gbV9kb2N1bWVudDsKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8Q29udGFpbmVy
Tm9kZT4+IG1fcm9vdHM7CisgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgRWxlbWVudD4sIEVsZW1l
bnRVcGRhdGVzPiBtX2VsZW1lbnRzOworICAgIEhhc2hNYXA8UmVmUHRyPGNvbnN0IFRleHQ+LCBU
ZXh0VXBkYXRlPiBtX3RleHRzOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421667</attachid>
            <date>2021-02-26 09:49:39 -0800</date>
            <delta_ts>2021-02-26 11:21:58 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-10.patch</filename>
            <type>text/plain</type>
            <size>17324</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmMzMmY3YjU2MDRjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIGhhcHBlbiBkdXJpbmcgcmVuZGVyaW5nIHVwZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAg
ICAgICAqIGZhc3QvdGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQt
ZXhwZWN0ZWQudHh0OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRl
eHQgdGhhdCBkaWRuJ3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJv
IE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBh
IGNvdXBsZSBjcmFzaGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRU
ZXh0LWRpcnR5LWxpbmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxp
dFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4
ZDM3NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5
LWxpbmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0
LWRpcnR5LWxpbmVzLWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4
KSBzaXplIDIwMHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIK
IGxheWVyIGF0ICg4LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDE2MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFB
QUEiCiAgICAgICB0ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91
bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggNTNmMTJjNjliY2U4Li5mZjUwMzhi
NGVkZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vy
cm91bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAt
MSwxNiArMSwxNSBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg2MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyMHg0MAotICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMHgwCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgwCi0g
ICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MjAKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyMCkgd2lkdGggMjA6ICJceHtGRkZDfSIKLSAgICAgIFJl
bmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDQwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg1NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTYK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0MAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIw
OiAiXHh7RkZGQ30iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6
ZSA3ODR4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCw0MCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDIwKSBzaXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0MDB4MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDA6ICJQ
QVNTLCBkaWQgbm90IGNyYXNoLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2Js
aW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2Vy
dC1leHBlY3RlZC50eHQKaW5kZXggYjg1NTJhZWM3ODk2Li44YjEzNzg5MTc5MWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5n
ZS1pbnNlcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zh
c3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEg
QEAKLUIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjNWI0MmM0YzM3Mi4uMDViNDFkN2FlYWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgorCisgICAgICAgIFJlbmRlciB0cmVlIHVwZGF0ZXMgZm9yIFRleHQgbm9kZSBj
b250ZW50IG11dGF0aW9ucyBzaG91bGQgaGFwcGVuIGR1cmluZyByZW5kZXJpbmcgdXBkYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxscyB0byBU
ZXh0Lmluc2VydERhdGEgYW5kIHNpbWlsYXIgc2hvdWxkIG5vdCBtdXRhdGUgcmVuZGVyIHRyZWUg
c3luY2hyb25vdXNseS4KKyAgICAgICAgSW5zdGVhZCByZW5kZXIgdHJlZSBzaG91bGQgYmUgdXBk
YXRlZCBkdXJpbmcgdGhlIG5leHQgcmVuZGVyaW5nIHVwZGF0ZSBhbG9uZyB3aXRoCisgICAgICAg
IGFueSBzdHlsZSBjaGFuZ2VzLgorCisgICAgICAgIFRoZXNlIHVwZGF0ZXMgYWxyZWFkeSBnbyB2
aWEgUmVuZGVyVHJlZVVwZGF0ZXIuIFdlIGp1c3QgbmVlZCB0byBzYXZlIHRoZSBpbmZvcm1hdGlv
bgorICAgICAgICBhYm91dCB3aGljaCBub2RlcyBuZWVkIHVwZGF0aW5nIHNvIHRoZSBuZXh0IHJl
bmRlcmluZyB1cGRhdGUgY2FuIHBpY2sgdGhlbSB1cC4KKworICAgICAgICBUaGlzIHNlZW1zIHRv
IGhlbHAgd2l0aCBzb21lIHBlcmZvcm1hbmNlIGJlbmNobWFya3MuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVm
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAg
IEluY2x1ZGUgdGhlIHRleHQgdXBkYXRlIHdoZW4gdXBkYXRpbmcgdGhlIHJlbmRlciB0cmVlLgor
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVyKToKKworICAg
ICAgICBDcmVhdGUgYSB0ZXh0IHVwZGF0ZSB0aGF0IHdpbGwgZ2V0IGZsdXNoZWQgZHVyaW5nIHRo
ZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpu
ZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKworICAgICAgICBXZSBuZWVkIHRvIHJlY2FsYyBpZiB0
aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVwZGF0ZXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlRyZWVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6VHJlZVJl
c29sdmVyKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6VXBkYXRlOjphZGRUZXh0KToKKworICAgICAgICBNZXJnZSB0ZXh0IHVwZGF0
ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdCk6
CisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpVcGRhdGU6OnJvb3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6
OiBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVmY291bnQgdGhlIG5vZGVzIHNpbmNlIHRo
aXMgbm93IGhhcyBsb25nZXIgbGlmZXRpbWUuCisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVJbnNpZ25pZmljYW50VGV4dCk6CisKKyAgICAgICAgRW5zdXJlIHdlIGxlYXZlIGRl
bGV0ZUluc2lnbmlmaWNhbnRUZXh0IHdpdGggdXBkYXRlZCByZW5kZXIgdHJlZS4gQ2xpZW50cyBl
eHBlY3QgdGhhdC4KKyAgICAgICAgRG8gbGF5b3V0IChpbnN0ZWFkIG9mIGp1c3Qgc3R5bGUgdXBk
YXRlKSBmb3IgY29uc2lzdGVuY3ksIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0IGRvZXMgb25lIGFu
eXdheSBpbiBiZWdpbm5pbmcuCisKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorCisgICAgICAgIFBl
bmRpbmcgdGV4dCB1cGRhdGUgbWF5IHJlZiB0aGUgbm9kZSBzbyB0aGlzIHJlZmNvdW50IGFzc2Vy
dCBpcyBub3QgY29ycmVjdC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQpOgorCiAyMDIxLTAyLTI1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgRW1vamkg
c2VxdWVuY2VzIHdpdGggY29uc3RpdHVlbnRzIGluIHRoZSBVQkxPQ0tfU1lNQk9MU19BTkRfUElD
VE9HUkFQSFNfRVhURU5ERURfQSBVbmljb2RlIGJsb2NrIGRvbid0IGdldCBjb21iaW5lZCBwcm9w
ZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IDBmZjJhNWNlMmEzYy4u
YmI4ZDUzY2NjNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0xMDIs
NyArMTAyLDcgQEAgdW5zaWduZWQgQ2hhcmFjdGVyRGF0YTo6cGFyc2VyQXBwZW5kRGF0YShjb25z
dCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LAogICAgICAgICBtX2RhdGEuYXBwZW5k
KHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgY2hhcmFjdGVyTGVuZ3RoTGltaXQpOwog
CiAgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IGlzPFRleHQ+KCp0aGlzKSk7Ci0gICAgaWYgKGlz
PFRleHQ+KCp0aGlzKSAmJiBwYXJlbnROb2RlKCkpCisgICAgaWYgKGlzPFRleHQ+KCp0aGlzKSkK
ICAgICAgICAgZG93bmNhc3Q8VGV4dD4oKnRoaXMpLnVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250ZW50
Q2hhbmdlKG9sZExlbmd0aCwgMCk7CiAKICAgICBub3RpZnlQYXJlbnRBZnRlckNoYW5nZShDb250
YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpOwpAQCAtMTgyLDcgKzE4Miw3
IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6c2V0RGF0YUFuZFVwZGF0ZShjb25zdCBTdHJpbmcmIG5l
d0RhdGEsIHVuc2lnbmVkIG9mZnNldE9mUmVwCiAgICAgICAgIGRvY3VtZW50KCkudGV4dEluc2Vy
dGVkKCp0aGlzLCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgbmV3TGVuZ3RoKTsKIAogICAgIEFTU0VS
VCghcmVuZGVyZXIoKSB8fCBpczxUZXh0PigqdGhpcykpOwotICAgIGlmIChpczxUZXh0PigqdGhp
cykgJiYgcGFyZW50Tm9kZSgpKQorICAgIGlmIChpczxUZXh0PigqdGhpcykpCiAgICAgICAgIGRv
d25jYXN0PFRleHQ+KCp0aGlzKS51cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZShvZmZz
ZXRPZlJlcGxhY2VkRGF0YSwgb2xkTGVuZ3RoKTsKIAogICAgIGlmIChpczxQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24+KCp0aGlzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDgwMGM3Yjk5NjFi
Mi4uYjJhZjAxMWFmOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTgwNyw2ICs4MDcs
NyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVl
bk1hbmFnZXItPmNsZWFyKCk7CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRy
b2xzLmNsZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9
OwogCiAgICAgICAgIG1fZm9udFNlbGVjdG9yLT5zdG9wTG9hZGluZ0FuZENsZWFyRm9udHMoKTsK
IApAQCAtMjA1Miw3ICsyMDUzLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29s
dmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQtPmludmFs
aWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKICAgICAgICAgfQogCi0gICAgICAgIFN0eWxlOjpUcmVl
UmVzb2x2ZXIgcmVzb2x2ZXIoKnRoaXMpOworICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJl
c29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CiAg
ICAgICAgIGF1dG8gc3R5bGVVcGRhdGUgPSByZXNvbHZlci5yZXNvbHZlKCk7CiAKICAgICAgICAg
bV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGluZyA9IHN0eWxlVXBkYXRlID8gc3R5bGVVcGRh
dGUtPnNpemUoKSA6IDA7CkBAIC0yMTAwLDEwICsyMTAxLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnJl
c29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0
ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwg
dW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpCiB7Ci0gICAgYXV0byB0ZXh0VXBkYXRlID0g
bWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7Ci0gICAgdGV4dFVwZGF0ZS0+YWRkVGV4
dCh0ZXh0LCB7IG9mZnNldE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCwgV1RG
OjpudWxsb3B0IH0pOworICAgIGlmICghbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisg
ICAgICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6
VXBkYXRlPigqdGhpcyk7CiAKLSAgICB1cGRhdGVSZW5kZXJUcmVlKFdURk1vdmUodGV4dFVwZGF0
ZSkpOworICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsg
b2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQg
fSk7CisKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOwogfQogCiBib29sIERvY3Vt
ZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QKQEAgLTIxMTcsNiArMjEyMCw5IEBAIGJvb2wg
RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5
bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAobV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKHN0eWxl
U2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCmluZGV4IDNhY2RmZDczYTcxOS4uNDU3NDc4Y2UwMWUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaApAQCAtMTgwMyw2ICsxODAzLDggQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1l
ciBtX3N0eWxlUmVjYWxjVGltZXI7CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0
ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGU7CisKICAgICBFbGVtZW50KiBtX2Nzc1Rh
cmdldCB7IG51bGxwdHIgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGY5MThk
NDIwM2E0OC4uMTJkOTE3MTFkZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC03Niw4ICs3Niw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxUZXh0Pj4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCkK
IAogICAgIGRvY3VtZW50KCkudGV4dE5vZGVTcGxpdCgqdGhpcyk7CiAKLSAgICBpZiAocmVuZGVy
ZXIoKSkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0VGV4dFdpdGhPZmZzZXQoZGF0YSgpLCAwLCBv
bGREYXRhLmxlbmd0aCgpKTsKKyAgICB1cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZSgw
LCBvbGREYXRhLmxlbmd0aCgpKTsKIAogICAgIHJldHVybiBuZXdUZXh0OwogfQpAQCAtMjE1LDcg
KzIxNCw5IEBAIFJlZjxUZXh0PiBUZXh0OjpjcmVhdGVXaXRoTGVuZ3RoTGltaXQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEsIHVuCiAKIHZvaWQgVGV4dDo6dXBkYXRlUmVu
ZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2UodW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIHVu
c2lnbmVkIGxlbmd0aE9mUmVwbGFjZWREYXRhKQogewotICAgIEFTU0VSVChwYXJlbnROb2RlKCkp
OworICAgIGlmICghaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHN0
eWxlVmFsaWRpdHkoKSA+PSBTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZh
bGlkKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggMTdmNmUxYzIxODY1Li5jNGI5ZGE1NjAwMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBA
IC0xMDU4LDYgKzEwNTgsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNp
Z25pZmljYW50VGV4dChjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGludCBl
bmRPZmZzZXQgPSB0ZXh0Tm9kZS5wdHIoKSA9PSBlbmQuZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5k
ZXByZWNhdGVkRWRpdGluZ09mZnNldCgpIDogc3RhdGljX2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVu
Z3RoKCkpOwogICAgICAgICBkZWxldGVJbnNpZ25pZmljYW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRP
ZmZzZXQsIGVuZE9mZnNldCk7CiAgICAgfQorICAgIGlmICghbm9kZXMuaXNFbXB0eSgpKQorICAg
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
fQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dERv
d25zdHJlYW0oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCmluZGV4IGRiZTQ5OTZhZTg2YS4uNWNkMDkwMzQxMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCkBAIC0xMzg1LDcgKzEzODUsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNl
Q2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBSZWY8RG9jdQog
ICAgIGF1dG8qIGNvbnRhaW5lckNoaWxkID0gY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwog
ICAgIGlmIChjb250YWluZXJDaGlsZCAmJiAhY29udGFpbmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgaWYgKGlzPFRleHQ+KCpjb250YWluZXJDaGlsZCkgJiYgaGFzT25lVGV4dENo
aWxkKGZyYWdtZW50KSAmJiBjYW5Vc2VTZXREYXRhT3B0aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+
KCpjb250YWluZXJDaGlsZCksIG11dGF0aW9uKSkgewotICAgICAgICAgICAgQVNTRVJUKCFmcmFn
bWVudC0+Zmlyc3RDaGlsZCgpLT5yZWZDb3VudCgpKTsKICAgICAgICAgICAgIGRvd25jYXN0PFRl
eHQ+KCpjb250YWluZXJDaGlsZCkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZp
cnN0Q2hpbGQoKSkuZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCA1NDgwNjE4OWVkZTguLjljMGE5Yjdj
ZTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcApAQCAtNTAsNyArNTAsNyBAQAog
I2RlZmluZSBBTExPV19JTUFHRVMgMQogI2RlZmluZSBBTExPV19BTExfUkVQTEFDRUQgMQogI2Rl
ZmluZSBBTExPV19JTkxJTkVfQkxPQ0sgMQotI2RlZmluZSBBTExPV19JTkxJTkVTIDAKKyNkZWZp
bmUgQUxMT1dfSU5MSU5FUyAxCiAKICNpZm5kZWYgTkRFQlVHCiAjZGVmaW5lIFNFVF9SRUFTT05f
QU5EX1JFVFVSTl9JRl9ORUVERUQocmVhc29uLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucykgeyBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcAppbmRleCBjMThlMTBlOTJhMTQuLjU5NjhhYmRhYzU4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIENvbnRhaW5lck5vZGUqIGZpbmRSZW5k
ZXJpbmdSb290KENvbnRhaW5lck5vZGUmIG5vZGUpCiBzdGF0aWMgTGlzdEhhc2hTZXQ8Q29udGFp
bmVyTm9kZSo+IGZpbmRSZW5kZXJpbmdSb290cyhjb25zdCBTdHlsZTo6VXBkYXRlJiB1cGRhdGUp
CiB7CiAgICAgTGlzdEhhc2hTZXQ8Q29udGFpbmVyTm9kZSo+IHJlbmRlcmluZ1Jvb3RzOwotICAg
IGZvciAoYXV0byogcm9vdCA6IHVwZGF0ZS5yb290cygpKSB7CisgICAgZm9yIChhdXRvJiByb290
IDogdXBkYXRlLnJvb3RzKCkpIHsKICAgICAgICAgYXV0byogcmVuZGVyaW5nUm9vdCA9IGZpbmRS
ZW5kZXJpbmdSb290KCpyb290KTsKICAgICAgICAgaWYgKCFyZW5kZXJpbmdSb290KQogICAgICAg
ICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRy
ZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5j
cHAKaW5kZXggZDEyMzY5MGU0YTM0Li4wOTg3ODY1MzlhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTYyLDggKzYyLDkgQEAgbmFtZXNwYWNlIFN0
eWxlIHsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihUcmVlUmVzb2x2
ZXJTY29wZSk7CiAKLVRyZWVSZXNvbHZlcjo6VHJlZVJlc29sdmVyKERvY3VtZW50JiBkb2N1bWVu
dCkKK1RyZWVSZXNvbHZlcjo6VHJlZVJlc29sdmVyKERvY3VtZW50JiBkb2N1bWVudCwgc3RkOjp1
bmlxdWVfcHRyPFVwZGF0ZT4gdXBkYXRlKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAg
ICAsIG1fdXBkYXRlKFdURk1vdmUodXBkYXRlKSkKIHsKIH0KIApAQCAtNTc2LDExICs1NzcsMTIg
QEAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gVHJlZVJlc29sdmVyOjpyZXNvbHZlKCkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGlmICghZG9jdW1lbnRFbGVtZW50LT5jaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKSAmJiAhZG9jdW1lbnRFbGVtZW50LT5uZWVkc1N0eWxlUmVjYWxj
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gV1RGTW92ZShtX3Vw
ZGF0ZSk7CiAKICAgICBtX2RpZFNlZVBlbmRpbmdTdHlsZXNoZWV0ID0gbV9kb2N1bWVudC5zdHls
ZVNjb3BlKCkuaGFzUGVuZGluZ1NoZWV0c0JlZm9yZUJvZHkoKTsKIAotICAgIG1fdXBkYXRlID0g
bWFrZVVuaXF1ZTxVcGRhdGU+KG1fZG9jdW1lbnQpOworICAgIGlmICghbV91cGRhdGUpCisgICAg
ICAgIG1fdXBkYXRlID0gbWFrZVVuaXF1ZTxVcGRhdGU+KG1fZG9jdW1lbnQpOwogICAgIG1fc2Nv
cGVTdGFjay5hcHBlbmQoYWRvcHRSZWYoKm5ldyBTY29wZShtX2RvY3VtZW50KSkpOwogICAgIG1f
cGFyZW50U3RhY2suYXBwZW5kKFBhcmVudChtX2RvY3VtZW50KSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCmluZGV4IGVlYjAxYTkwMWJiMS4uMTg2YmI1NGQ1MGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgY2xhc3MgUmVzb2x2ZXI7CiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihUcmVlUmVzb2x2ZXJTY29wZSk7CiBjbGFzcyBUcmVlUmVzb2x2ZXIgewogcHVibGljOgot
ICAgIFRyZWVSZXNvbHZlcihEb2N1bWVudCYpOworICAgIFRyZWVSZXNvbHZlcihEb2N1bWVudCYs
IHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+ID0geyB9KTsKICAgICB+VHJlZVJlc29sdmVyKCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiByZXNvbHZlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVVwZGF0ZS5jcHAKaW5kZXggMDg1OTJhMmQ4YTIxLi44ZmE4NTE4ZWU3YmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKQEAgLTk2LDExICs5NiwyMyBAQCB2b2lkIFVwZGF0
ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRV
cGRhdGVzJiYgZWxlbQogCiB2b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBFbGVtZW50
KiBwYXJlbnQsIFRleHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQogewotICAgIEFTU0VSVCghbV90ZXh0
cy5jb250YWlucygmdGV4dCkpOwogICAgIEFTU0VSVChjb21wb3NlZFRyZWVBbmNlc3RvcnModGV4
dCkuZmlyc3QoKSA9PSBwYXJlbnQpOwogCiAgICAgYWRkUG9zc2libGVSb290KHBhcmVudCk7Ci0g
ICAgbV90ZXh0cy5hZGQoJnRleHQsIFdURk1vdmUodGV4dFVwZGF0ZSkpOworICAgIGF1dG8gcmVz
dWx0ID0gbV90ZXh0cy5lbnN1cmUoJnRleHQsIFsmXSB7CisgICAgICAgIHJldHVybiBXVEZNb3Zl
KHRleHRVcGRhdGUpOworICAgIH0pOworICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAg
ICAgICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBhdXRv
IHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oZW50cnkub2Zmc2V0LCB0ZXh0VXBkYXRlLm9mZnNldCk7
CisgICAgICAgIGF1dG8gZW5kT2Zmc2V0ID0gc3RkOjptYXgoZW50cnkub2Zmc2V0ICsgZW50cnku
bGVuZ3RoLCB0ZXh0VXBkYXRlLm9mZnNldCArIHRleHRVcGRhdGUubGVuZ3RoKTsKKyAgICAgICAg
ZW50cnkub2Zmc2V0ID0gc3RhcnRPZmZzZXQ7CisgICAgICAgIGVudHJ5Lmxlbmd0aCA9IGVuZE9m
ZnNldCAtIHN0YXJ0T2Zmc2V0OworICAgICAgICAKKyAgICAgICAgQVNTRVJUKCFlbnRyeS5pbmhl
cml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSB8fCAhdGV4dFVwZGF0ZS5pbmhlcml0ZWREaXNwbGF5
Q29udGVudHNTdHlsZSk7CisgICAgICAgIGlmICghZW50cnkuaW5oZXJpdGVkRGlzcGxheUNvbnRl
bnRzU3R5bGUpCisgICAgICAgICAgICBlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHls
ZSA9IFdURk1vdmUodGV4dFVwZGF0ZS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSk7Cisg
ICAgfQogfQogCiB2b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBUZXh0VXBkYXRlJiYg
dGV4dFVwZGF0ZSkKQEAgLTExMSw3ICsxMjMsNyBAQCB2b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0
JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHZvaWQgVXBkYXRlOjphZGRQb3NzaWJs
ZVJvb3QoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQpIHsKLSAgICAgICAg
bV9yb290cy5hZGQoJm1fZG9jdW1lbnQpOworICAgICAgICBtX3Jvb3RzLmFkZChtX2RvY3VtZW50
LnB0cigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9lbGVtZW50cy5jb250
YWlucyhlbGVtZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBk
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCmluZGV4IDA0YzYwNDJk
MDcwNS4uODkwOWIyYmMxOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKQEAgLTY5
LDcgKzY5LDcgQEAgY2xhc3MgVXBkYXRlIHsKIHB1YmxpYzoKICAgICBVcGRhdGUoRG9jdW1lbnQm
KTsKIAotICAgIGNvbnN0IExpc3RIYXNoU2V0PENvbnRhaW5lck5vZGUqPiYgcm9vdHMoKSBjb25z
dCB7IHJldHVybiBtX3Jvb3RzOyB9CisgICAgY29uc3QgTGlzdEhhc2hTZXQ8UmVmUHRyPENvbnRh
aW5lck5vZGU+PiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RzOyB9CiAKICAgICBjb25z
dCBFbGVtZW50VXBkYXRlcyogZWxlbWVudFVwZGF0ZXMoY29uc3QgRWxlbWVudCYpIGNvbnN0Owog
ICAgIEVsZW1lbnRVcGRhdGVzKiBlbGVtZW50VXBkYXRlcyhjb25zdCBFbGVtZW50Jik7CkBAIC05
MCwxMCArOTAsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGFkZFBvc3NpYmxlUm9v
dChFbGVtZW50Kik7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBMaXN0SGFzaFNl
dDxDb250YWluZXJOb2RlKj4gbV9yb290czsKLSAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnQqLCBF
bGVtZW50VXBkYXRlcz4gbV9lbGVtZW50czsKLSAgICBIYXNoTWFwPGNvbnN0IFRleHQqLCBUZXh0
VXBkYXRlPiBtX3RleHRzOworICAgIFJlZjxEb2N1bWVudD4gbV9kb2N1bWVudDsKKyAgICBMaXN0
SGFzaFNldDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+IG1fcm9vdHM7CisgICAgSGFzaE1hcDxSZWZQ
dHI8Y29uc3QgRWxlbWVudD4sIEVsZW1lbnRVcGRhdGVzPiBtX2VsZW1lbnRzOworICAgIEhhc2hN
YXA8UmVmUHRyPGNvbnN0IFRleHQ+LCBUZXh0VXBkYXRlPiBtX3RleHRzOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421679</attachid>
            <date>2021-02-26 11:21:58 -0800</date>
            <delta_ts>2021-02-26 23:45:29 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-11.patch</filename>
            <type>text/plain</type>
            <size>16753</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmMzMmY3YjU2MDRjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIGhhcHBlbiBkdXJpbmcgcmVuZGVyaW5nIHVwZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAg
ICAgICAqIGZhc3QvdGV4dC9zcGxpdFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQt
ZXhwZWN0ZWQudHh0OgorCisgICAgICAgIEhlcmUgd2Ugd2VyZSBhY3R1YWxseSBkcmF3aW5nIHRl
eHQgdGhhdCBkaWRuJ3QgZXhpc3QgaW4gRE9NIGFueW1vcmUuCisKIDIwMjEtMDItMjUgIExhdXJv
IE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBh
IGNvdXBsZSBjcmFzaGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRU
ZXh0LWRpcnR5LWxpbmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zcGxp
dFRleHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZjc3MTliMTg5Yi4uMmUwYmM4
ZDM3NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5
LWxpbmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0
LWRpcnR5LWxpbmVzLWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNiBAQCBsYXllciBhdCAoOCw4
KSBzaXplIDIwMHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICg4MCwxMjApIHdpZHRoIDQwOiAiRSIK
IGxheWVyIGF0ICg4LDgpIHNpemUgMjAweDE2MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MTYwIFtjb2xvcj0jMDA4MDAwXQotICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDE2MHgxNjAKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2MDogIkFB
QUEiCiAgICAgICB0ZXh0IHJ1biBhdCAoMCw0MCkgd2lkdGggNDA6ICJCIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91
bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggNTNmMTJjNjliY2U4Li5mZjUwMzhi
NGVkZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vy
cm91bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3RleHQtY29tYmluZS1zdXJyb3VuZENvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAt
MSwxNiArMSwxNSBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg2MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyMHg0MAotICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMHgwCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgwCi0g
ICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MjAKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyMCkgd2lkdGggMjA6ICJceHtGRkZDfSIKLSAgICAgIFJl
bmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDQwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg1NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTYK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0MAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlckNvbWJpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIw
OiAiXHh7RkZGQ30iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6
ZSA3ODR4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCw0MCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDIwKSBzaXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0MDB4MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDA6ICJQ
QVNTLCBkaWQgbm90IGNyYXNoLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2Js
aW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2Vy
dC1leHBlY3RlZC50eHQKaW5kZXggYjg1NTJhZWM3ODk2Li44YjEzNzg5MTc5MWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5n
ZS1pbnNlcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zh
c3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEg
QEAKLUIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjNWI0MmM0YzM3Mi4uMDViNDFkN2FlYWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDItMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgorCisgICAgICAgIFJlbmRlciB0cmVlIHVwZGF0ZXMgZm9yIFRleHQgbm9kZSBj
b250ZW50IG11dGF0aW9ucyBzaG91bGQgaGFwcGVuIGR1cmluZyByZW5kZXJpbmcgdXBkYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxscyB0byBU
ZXh0Lmluc2VydERhdGEgYW5kIHNpbWlsYXIgc2hvdWxkIG5vdCBtdXRhdGUgcmVuZGVyIHRyZWUg
c3luY2hyb25vdXNseS4KKyAgICAgICAgSW5zdGVhZCByZW5kZXIgdHJlZSBzaG91bGQgYmUgdXBk
YXRlZCBkdXJpbmcgdGhlIG5leHQgcmVuZGVyaW5nIHVwZGF0ZSBhbG9uZyB3aXRoCisgICAgICAg
IGFueSBzdHlsZSBjaGFuZ2VzLgorCisgICAgICAgIFRoZXNlIHVwZGF0ZXMgYWxyZWFkeSBnbyB2
aWEgUmVuZGVyVHJlZVVwZGF0ZXIuIFdlIGp1c3QgbmVlZCB0byBzYXZlIHRoZSBpbmZvcm1hdGlv
bgorICAgICAgICBhYm91dCB3aGljaCBub2RlcyBuZWVkIHVwZGF0aW5nIHNvIHRoZSBuZXh0IHJl
bmRlcmluZyB1cGRhdGUgY2FuIHBpY2sgdGhlbSB1cC4KKworICAgICAgICBUaGlzIHNlZW1zIHRv
IGhlbHAgd2l0aCBzb21lIHBlcmZvcm1hbmNlIGJlbmNobWFya3MuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVm
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCisgICAgICAg
IEluY2x1ZGUgdGhlIHRleHQgdXBkYXRlIHdoZW4gdXBkYXRpbmcgdGhlIHJlbmRlciB0cmVlLgor
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVyKToKKworICAg
ICAgICBDcmVhdGUgYSB0ZXh0IHVwZGF0ZSB0aGF0IHdpbGwgZ2V0IGZsdXNoZWQgZHVyaW5nIHRo
ZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpu
ZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKworICAgICAgICBXZSBuZWVkIHRvIHJlY2FsYyBpZiB0
aGVyZSBhcmUgcGVuZGluZyB0ZXh0IHVwZGF0ZXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlRyZWVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6VHJlZVJl
c29sdmVyKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6VXBkYXRlOjphZGRUZXh0KToKKworICAgICAgICBNZXJnZSB0ZXh0IHVwZGF0
ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdCk6
CisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpVcGRhdGU6OnJvb3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6
OiBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVmY291bnQgdGhlIG5vZGVzIHNpbmNlIHRo
aXMgbm93IGhhcyBsb25nZXIgbGlmZXRpbWUuCisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVJbnNpZ25pZmljYW50VGV4dCk6CisKKyAgICAgICAgRW5zdXJlIHdlIGxlYXZlIGRl
bGV0ZUluc2lnbmlmaWNhbnRUZXh0IHdpdGggdXBkYXRlZCByZW5kZXIgdHJlZS4gQ2xpZW50cyBl
eHBlY3QgdGhhdC4KKyAgICAgICAgRG8gbGF5b3V0IChpbnN0ZWFkIG9mIGp1c3Qgc3R5bGUgdXBk
YXRlKSBmb3IgY29uc2lzdGVuY3ksIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0IGRvZXMgb25lIGFu
eXdheSBpbiBiZWdpbm5pbmcuCisKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorCisgICAgICAgIFBl
bmRpbmcgdGV4dCB1cGRhdGUgbWF5IHJlZiB0aGUgbm9kZSBzbyB0aGlzIHJlZmNvdW50IGFzc2Vy
dCBpcyBub3QgY29ycmVjdC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQpOgorCiAyMDIxLTAyLTI1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgRW1vamkg
c2VxdWVuY2VzIHdpdGggY29uc3RpdHVlbnRzIGluIHRoZSBVQkxPQ0tfU1lNQk9MU19BTkRfUElD
VE9HUkFQSFNfRVhURU5ERURfQSBVbmljb2RlIGJsb2NrIGRvbid0IGdldCBjb21iaW5lZCBwcm9w
ZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IDBmZjJhNWNlMmEzYy4u
YmI4ZDUzY2NjNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0xMDIs
NyArMTAyLDcgQEAgdW5zaWduZWQgQ2hhcmFjdGVyRGF0YTo6cGFyc2VyQXBwZW5kRGF0YShjb25z
dCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LAogICAgICAgICBtX2RhdGEuYXBwZW5k
KHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgY2hhcmFjdGVyTGVuZ3RoTGltaXQpOwog
CiAgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IGlzPFRleHQ+KCp0aGlzKSk7Ci0gICAgaWYgKGlz
PFRleHQ+KCp0aGlzKSAmJiBwYXJlbnROb2RlKCkpCisgICAgaWYgKGlzPFRleHQ+KCp0aGlzKSkK
ICAgICAgICAgZG93bmNhc3Q8VGV4dD4oKnRoaXMpLnVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250ZW50
Q2hhbmdlKG9sZExlbmd0aCwgMCk7CiAKICAgICBub3RpZnlQYXJlbnRBZnRlckNoYW5nZShDb250
YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpOwpAQCAtMTgyLDcgKzE4Miw3
IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6c2V0RGF0YUFuZFVwZGF0ZShjb25zdCBTdHJpbmcmIG5l
d0RhdGEsIHVuc2lnbmVkIG9mZnNldE9mUmVwCiAgICAgICAgIGRvY3VtZW50KCkudGV4dEluc2Vy
dGVkKCp0aGlzLCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgbmV3TGVuZ3RoKTsKIAogICAgIEFTU0VS
VCghcmVuZGVyZXIoKSB8fCBpczxUZXh0PigqdGhpcykpOwotICAgIGlmIChpczxUZXh0PigqdGhp
cykgJiYgcGFyZW50Tm9kZSgpKQorICAgIGlmIChpczxUZXh0PigqdGhpcykpCiAgICAgICAgIGRv
d25jYXN0PFRleHQ+KCp0aGlzKS51cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZShvZmZz
ZXRPZlJlcGxhY2VkRGF0YSwgb2xkTGVuZ3RoKTsKIAogICAgIGlmIChpczxQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24+KCp0aGlzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDgwMGM3Yjk5NjFi
Mi4uYjJhZjAxMWFmOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTgwNyw2ICs4MDcs
NyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVl
bk1hbmFnZXItPmNsZWFyKCk7CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRy
b2xzLmNsZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9
OwogCiAgICAgICAgIG1fZm9udFNlbGVjdG9yLT5zdG9wTG9hZGluZ0FuZENsZWFyRm9udHMoKTsK
IApAQCAtMjA1Miw3ICsyMDUzLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29s
dmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQtPmludmFs
aWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKICAgICAgICAgfQogCi0gICAgICAgIFN0eWxlOjpUcmVl
UmVzb2x2ZXIgcmVzb2x2ZXIoKnRoaXMpOworICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJl
c29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CiAg
ICAgICAgIGF1dG8gc3R5bGVVcGRhdGUgPSByZXNvbHZlci5yZXNvbHZlKCk7CiAKICAgICAgICAg
bV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGluZyA9IHN0eWxlVXBkYXRlID8gc3R5bGVVcGRh
dGUtPnNpemUoKSA6IDA7CkBAIC0yMTAwLDEwICsyMTAxLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnJl
c29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0
ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwg
dW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpCiB7Ci0gICAgYXV0byB0ZXh0VXBkYXRlID0g
bWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7Ci0gICAgdGV4dFVwZGF0ZS0+YWRkVGV4
dCh0ZXh0LCB7IG9mZnNldE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCwgV1RG
OjpudWxsb3B0IH0pOworICAgIGlmICghbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisg
ICAgICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6
VXBkYXRlPigqdGhpcyk7CiAKLSAgICB1cGRhdGVSZW5kZXJUcmVlKFdURk1vdmUodGV4dFVwZGF0
ZSkpOworICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsg
b2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQg
fSk7CisKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOwogfQogCiBib29sIERvY3Vt
ZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QKQEAgLTIxMTcsNiArMjEyMCw5IEBAIGJvb2wg
RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5
bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAobV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKHN0eWxl
U2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCmluZGV4IDNhY2RmZDczYTcxOS4uNDU3NDc4Y2UwMWUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaApAQCAtMTgwMyw2ICsxODAzLDggQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1l
ciBtX3N0eWxlUmVjYWxjVGltZXI7CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0
ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGU7CisKICAgICBFbGVtZW50KiBtX2Nzc1Rh
cmdldCB7IG51bGxwdHIgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGY5MThk
NDIwM2E0OC4uMTJkOTE3MTFkZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC03Niw4ICs3Niw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxUZXh0Pj4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCkK
IAogICAgIGRvY3VtZW50KCkudGV4dE5vZGVTcGxpdCgqdGhpcyk7CiAKLSAgICBpZiAocmVuZGVy
ZXIoKSkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0VGV4dFdpdGhPZmZzZXQoZGF0YSgpLCAwLCBv
bGREYXRhLmxlbmd0aCgpKTsKKyAgICB1cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZSgw
LCBvbGREYXRhLmxlbmd0aCgpKTsKIAogICAgIHJldHVybiBuZXdUZXh0OwogfQpAQCAtMjE1LDcg
KzIxNCw5IEBAIFJlZjxUZXh0PiBUZXh0OjpjcmVhdGVXaXRoTGVuZ3RoTGltaXQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEsIHVuCiAKIHZvaWQgVGV4dDo6dXBkYXRlUmVu
ZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2UodW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIHVu
c2lnbmVkIGxlbmd0aE9mUmVwbGFjZWREYXRhKQogewotICAgIEFTU0VSVChwYXJlbnROb2RlKCkp
OworICAgIGlmICghaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHN0
eWxlVmFsaWRpdHkoKSA+PSBTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZh
bGlkKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggMTdmNmUxYzIxODY1Li5jNGI5ZGE1NjAwMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBA
IC0xMDU4LDYgKzEwNTgsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNp
Z25pZmljYW50VGV4dChjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGludCBl
bmRPZmZzZXQgPSB0ZXh0Tm9kZS5wdHIoKSA9PSBlbmQuZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5k
ZXByZWNhdGVkRWRpdGluZ09mZnNldCgpIDogc3RhdGljX2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVu
Z3RoKCkpOwogICAgICAgICBkZWxldGVJbnNpZ25pZmljYW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRP
ZmZzZXQsIGVuZE9mZnNldCk7CiAgICAgfQorICAgIGlmICghbm9kZXMuaXNFbXB0eSgpKQorICAg
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
fQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dERv
d25zdHJlYW0oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCmluZGV4IGRiZTQ5OTZhZTg2YS4uNWNkMDkwMzQxMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCkBAIC0xMzg1LDcgKzEzODUsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNl
Q2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBSZWY8RG9jdQog
ICAgIGF1dG8qIGNvbnRhaW5lckNoaWxkID0gY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwog
ICAgIGlmIChjb250YWluZXJDaGlsZCAmJiAhY29udGFpbmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgaWYgKGlzPFRleHQ+KCpjb250YWluZXJDaGlsZCkgJiYgaGFzT25lVGV4dENo
aWxkKGZyYWdtZW50KSAmJiBjYW5Vc2VTZXREYXRhT3B0aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+
KCpjb250YWluZXJDaGlsZCksIG11dGF0aW9uKSkgewotICAgICAgICAgICAgQVNTRVJUKCFmcmFn
bWVudC0+Zmlyc3RDaGlsZCgpLT5yZWZDb3VudCgpKTsKICAgICAgICAgICAgIGRvd25jYXN0PFRl
eHQ+KCpjb250YWluZXJDaGlsZCkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZp
cnN0Q2hpbGQoKSkuZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwCmluZGV4IGMxOGUxMGU5MmExNC4uNTk2OGFiZGFjNThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRl
ci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgQ29udGFpbmVyTm9kZSogZmluZFJlbmRl
cmluZ1Jvb3QoQ29udGFpbmVyTm9kZSYgbm9kZSkKIHN0YXRpYyBMaXN0SGFzaFNldDxDb250YWlu
ZXJOb2RlKj4gZmluZFJlbmRlcmluZ1Jvb3RzKGNvbnN0IFN0eWxlOjpVcGRhdGUmIHVwZGF0ZSkK
IHsKICAgICBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gcmVuZGVyaW5nUm9vdHM7Ci0gICAg
Zm9yIChhdXRvKiByb290IDogdXBkYXRlLnJvb3RzKCkpIHsKKyAgICBmb3IgKGF1dG8mIHJvb3Qg
OiB1cGRhdGUucm9vdHMoKSkgewogICAgICAgICBhdXRvKiByZW5kZXJpbmdSb290ID0gZmluZFJl
bmRlcmluZ1Jvb3QoKnJvb3QpOwogICAgICAgICBpZiAoIXJlbmRlcmluZ1Jvb3QpCiAgICAgICAg
ICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAppbmRleCBkMTIzNjkwZTRhMzQuLjA5ODc4NjUzOWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtNjIsOCArNjIsOSBAQCBuYW1lc3BhY2UgU3R5
bGUgewogCiBERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZl
clNjb3BlKTsKIAotVHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50
KQorVHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6OnVu
aXF1ZV9wdHI8VXBkYXRlPiB1cGRhdGUpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAg
ICwgbV91cGRhdGUoV1RGTW92ZSh1cGRhdGUpKQogewogfQogCkBAIC01NzYsMTEgKzU3NywxMiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiBUcmVlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQtPmNoaWxk
TmVlZHNTdHlsZVJlY2FsYygpICYmICFkb2N1bWVudEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNhbGMo
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fdXBk
YXRlKTsKIAogICAgIG1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQgPSBtX2RvY3VtZW50LnN0eWxl
U2NvcGUoKS5oYXNQZW5kaW5nU2hlZXRzQmVmb3JlQm9keSgpOwogCi0gICAgbV91cGRhdGUgPSBt
YWtlVW5pcXVlPFVwZGF0ZT4obV9kb2N1bWVudCk7CisgICAgaWYgKCFtX3VwZGF0ZSkKKyAgICAg
ICAgbV91cGRhdGUgPSBtYWtlVW5pcXVlPFVwZGF0ZT4obV9kb2N1bWVudCk7CiAgICAgbV9zY29w
ZVN0YWNrLmFwcGVuZChhZG9wdFJlZigqbmV3IFNjb3BlKG1fZG9jdW1lbnQpKSk7CiAgICAgbV9w
YXJlbnRTdGFjay5hcHBlbmQoUGFyZW50KG1fZG9jdW1lbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKaW5kZXggZWViMDFhOTAxYmIxLi4xODZiYjU0ZDUwZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtNDksNyArNDks
NyBAQCBjbGFzcyBSZXNvbHZlcjsKIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElG
SUVSKFRyZWVSZXNvbHZlclNjb3BlKTsKIGNsYXNzIFRyZWVSZXNvbHZlciB7CiBwdWJsaWM6Ci0g
ICAgVHJlZVJlc29sdmVyKERvY3VtZW50Jik7CisgICAgVHJlZVJlc29sdmVyKERvY3VtZW50Jiwg
c3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gPSB7IH0pOwogICAgIH5UcmVlUmVzb2x2ZXIoKTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IHJlc29sdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVXBkYXRlLmNwcAppbmRleCAwODU5MmEyZDhhMjEuLjhmYTg1MThlZTdiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcApAQCAtOTYsMTEgKzk2LDIzIEBAIHZvaWQgVXBkYXRl
OjphZGRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIEVsZW1lbnQqIHBhcmVudCwgRWxlbWVudFVw
ZGF0ZXMmJiBlbGVtCiAKIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQq
IHBhcmVudCwgVGV4dFVwZGF0ZSYmIHRleHRVcGRhdGUpCiB7Ci0gICAgQVNTRVJUKCFtX3RleHRz
LmNvbnRhaW5zKCZ0ZXh0KSk7CiAgICAgQVNTRVJUKGNvbXBvc2VkVHJlZUFuY2VzdG9ycyh0ZXh0
KS5maXJzdCgpID09IHBhcmVudCk7CiAKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKLSAg
ICBtX3RleHRzLmFkZCgmdGV4dCwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgYXV0byByZXN1
bHQgPSBtX3RleHRzLmVuc3VyZSgmdGV4dCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUo
dGV4dFVwZGF0ZSk7CisgICAgfSk7CisgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAg
ICAgICBhdXRvJiBlbnRyeSA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgIGF1dG8g
c3RhcnRPZmZzZXQgPSBzdGQ6Om1pbihlbnRyeS5vZmZzZXQsIHRleHRVcGRhdGUub2Zmc2V0KTsK
KyAgICAgICAgYXV0byBlbmRPZmZzZXQgPSBzdGQ6Om1heChlbnRyeS5vZmZzZXQgKyBlbnRyeS5s
ZW5ndGgsIHRleHRVcGRhdGUub2Zmc2V0ICsgdGV4dFVwZGF0ZS5sZW5ndGgpOworICAgICAgICBl
bnRyeS5vZmZzZXQgPSBzdGFydE9mZnNldDsKKyAgICAgICAgZW50cnkubGVuZ3RoID0gZW5kT2Zm
c2V0IC0gc3RhcnRPZmZzZXQ7CisgICAgICAgIAorICAgICAgICBBU1NFUlQoIWVudHJ5LmluaGVy
aXRlZERpc3BsYXlDb250ZW50c1N0eWxlIHx8ICF0ZXh0VXBkYXRlLmluaGVyaXRlZERpc3BsYXlD
b250ZW50c1N0eWxlKTsKKyAgICAgICAgaWYgKCFlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVu
dHNTdHlsZSkKKyAgICAgICAgICAgIGVudHJ5LmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxl
ID0gV1RGTW92ZSh0ZXh0VXBkYXRlLmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxlKTsKKyAg
ICB9CiB9CiAKIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRVcGRhdGUmJiB0
ZXh0VXBkYXRlKQpAQCAtMTExLDcgKzEyMyw3IEBAIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQm
IHRleHQsIFRleHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQogdm9pZCBVcGRhdGU6OmFkZFBvc3NpYmxl
Um9vdChFbGVtZW50KiBlbGVtZW50KQogewogICAgIGlmICghZWxlbWVudCkgewotICAgICAgICBt
X3Jvb3RzLmFkZCgmbV9kb2N1bWVudCk7CisgICAgICAgIG1fcm9vdHMuYWRkKG1fZG9jdW1lbnQu
cHRyKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChtX2VsZW1lbnRzLmNvbnRh
aW5zKGVsZW1lbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5kZXggMDRjNjA0MmQw
NzA1Li44OTA5YjJiYzE5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaApAQCAtNjks
NyArNjksNyBAQCBjbGFzcyBVcGRhdGUgewogcHVibGljOgogICAgIFVwZGF0ZShEb2N1bWVudCYp
OwogCi0gICAgY29uc3QgTGlzdEhhc2hTZXQ8Q29udGFpbmVyTm9kZSo+JiByb290cygpIGNvbnN0
IHsgcmV0dXJuIG1fcm9vdHM7IH0KKyAgICBjb25zdCBMaXN0SGFzaFNldDxSZWZQdHI8Q29udGFp
bmVyTm9kZT4+JiByb290cygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdHM7IH0KIAogICAgIGNvbnN0
IEVsZW1lbnRVcGRhdGVzKiBlbGVtZW50VXBkYXRlcyhjb25zdCBFbGVtZW50JikgY29uc3Q7CiAg
ICAgRWxlbWVudFVwZGF0ZXMqIGVsZW1lbnRVcGRhdGVzKGNvbnN0IEVsZW1lbnQmKTsKQEAgLTkw
LDEwICs5MCwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVSb290
KEVsZW1lbnQqKTsKIAotICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwotICAgIExpc3RIYXNoU2V0
PENvbnRhaW5lck5vZGUqPiBtX3Jvb3RzOwotICAgIEhhc2hNYXA8Y29uc3QgRWxlbWVudCosIEVs
ZW1lbnRVcGRhdGVzPiBtX2VsZW1lbnRzOwotICAgIEhhc2hNYXA8Y29uc3QgVGV4dCosIFRleHRV
cGRhdGU+IG1fdGV4dHM7CisgICAgUmVmPERvY3VtZW50PiBtX2RvY3VtZW50OworICAgIExpc3RI
YXNoU2V0PFJlZlB0cjxDb250YWluZXJOb2RlPj4gbV9yb290czsKKyAgICBIYXNoTWFwPFJlZlB0
cjxjb25zdCBFbGVtZW50PiwgRWxlbWVudFVwZGF0ZXM+IG1fZWxlbWVudHM7CisgICAgSGFzaE1h
cDxSZWZQdHI8Y29uc3QgVGV4dD4sIFRleHRVcGRhdGU+IG1fdGV4dHM7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="440674"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421738</attachid>
            <date>2021-02-26 23:45:29 -0800</date>
            <delta_ts>2021-02-27 00:24:09 -0800</delta_ts>
            <desc>patch</desc>
            <filename>async-render-text-update-12.patch</filename>
            <type>text/plain</type>
            <size>17268</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQzOTRlYTE3ODQuLmJlOTRhNjE1NzRiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIGhhcHBlbiBkdXJpbmcgcmVuZGVyaW5nIHVwZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoZXNlIGFyZSBwcm9ncmVzc2lvbnMuCisKKyAgICAg
ICAgKiBmYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxpbmVzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXItcmFuZ2UtaW5zZXJ0LWV4
cGVjdGVkLnR4dDoKKworICAgICAgICBIZXJlIHdlIHdlcmUgYWN0dWFsbHkgZHJhd2luZyB0ZXh0
IHRoYXQgZGlkbid0IGV4aXN0IGluIERPTSBhbnltb3JlLgorCiAyMDIxLTAyLTI1ICBMYXVybyBN
b3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBHYXJkZW5pbmcgYSBj
b3VwbGUgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NwbGl0VGV4
dC1kaXJ0eS1saW5lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRU
ZXh0LWRpcnR5LWxpbmVzLWV4cGVjdGVkLnR4dAppbmRleCBkZmY3NzE5YjE4OWIuLjJlMGJjOGQz
NzU3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NwbGl0VGV4dC1kaXJ0eS1s
aW5lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NwbGl0VGV4dC1k
aXJ0eS1saW5lcy1leHBlY3RlZC50eHQKQEAgLTE1LDcgKzE1LDYgQEAgbGF5ZXIgYXQgKDgsOCkg
c2l6ZSAyMDB4MTYwCiAgICAgICB0ZXh0IHJ1biBhdCAoODAsMTIwKSB3aWR0aCA0MDogIkUiCiBs
YXllciBhdCAoOCw4KSBzaXplIDIwMHgxNjAKICAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtE
SVZ9IGF0ICgwLDApIHNpemUgMjAweDE2MCBbY29sb3I9IzAwODAwMF0KLSAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAxNjB4MTYwCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNjA6ICJBQUFB
IgogICAgICAgdGV4dCBydW4gYXQgKDAsNDApIHdpZHRoIDQwOiAiQiIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1jcmFzaC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1jb21iaW5lLXN1cnJvdW5k
Q29udGVudHMtY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IDUzZjEyYzY5YmNlOC4uZmY1MDM4YjRl
ZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1jb21iaW5lLXN1cnJv
dW5kQ29udGVudHMtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEs
MTYgKzEsMTUgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDc2Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA3ODR4NjAKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgMjB4NDAKLSAgICAgICAgUmVuZGVyQ29tYmluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjB4MAotICAg
ICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDIwKSBzaXplIDIweDIwCi0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDIwOiAiXHh7RkZGQ30iCi0gICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw0MCkgc2l6ZSA3ODR4MAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDU2Cisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NDAKKyAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MjAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjB4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDog
Ilx4e0ZGRkN9IgorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjApIHNpemUg
Nzg0eDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsNDApIHNpemUgNzg0eDIwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwyMCkgc2l6ZSA3ODR4MjAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDAweDIwCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDAwOiAiUEFT
UywgZGlkIG5vdCBjcmFzaC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGlu
ay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXItcmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQt
ZXhwZWN0ZWQudHh0CmluZGV4IGI4NTUyYWVjNzg5Ni4uOGIxMzc4OTE3OTFmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXItcmFuZ2Ut
aW5zZXJ0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0
L2Nzcy9maXJzdC1sZXR0ZXItcmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dApAQCAtMSwyICsxIEBA
Ci1CCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0YzViNDJjNGMzNzIuLjE5ODliYmNiNzJkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc4IEBACisyMDIxLTAyLTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29u
dGVudCBtdXRhdGlvbnMgc2hvdWxkIGhhcHBlbiBkdXJpbmcgcmVuZGVyaW5nIHVwZGF0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIENhbGxzIHRvIFRleHQu
aW5zZXJ0RGF0YSBhbmQgc2ltaWxhciBzaG91bGQgbm90IG11dGF0ZSByZW5kZXIgdHJlZSBzeW5j
aHJvbm91c2x5LgorICAgICAgICBJbnN0ZWFkIHJlbmRlciB0cmVlIHNob3VsZCBiZSB1cGRhdGVk
IGR1cmluZyB0aGUgbmV4dCByZW5kZXJpbmcgdXBkYXRlIGFsb25nIHdpdGgKKyAgICAgICAgYW55
IHN0eWxlIGNoYW5nZXMuCisKKyAgICAgICAgVGhlc2UgdXBkYXRlcyBhbHJlYWR5IGdvIHZpYSBS
ZW5kZXJUcmVlVXBkYXRlci4gV2UganVzdCBuZWVkIHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uCisg
ICAgICAgIGFib3V0IHdoaWNoIG5vZGVzIG5lZWQgdXBkYXRpbmcgc28gdGhlIG5leHQgcmVuZGVy
aW5nIHVwZGF0ZSBjYW4gcGljayB0aGVtIHVwLgorCisgICAgICAgIFRoaXMgc2VlbXMgdG8gaGVs
cCB3aXRoIHNvbWUgcGVyZm9ybWFuY2UgYmVuY2htYXJrcy4KKworICAgICAgICAqIGRvbS9DaGFy
YWN0ZXJEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYXJhY3RlckRhdGE6OnBhcnNlckFw
cGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YTo6c2V0RGF0YUFuZFVw
ZGF0ZSk6CisKKyAgICAgICAgTW92ZSBpbi10cmVlIGNoZWNrIHRvIHRoZSB1cGRhdGVSZW5kZXJl
ckFmdGVyQ29udGVudENoYW5nZSBhbmQgbWFrZSBpdCB1c2UgaXNDb25uZWN0ZWQoKS4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVt
b3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHlsZSk6
CisKKyAgICAgICAgSW5jbHVkZSB0aGUgdGV4dCB1cGRhdGUgd2hlbiB1cGRhdGluZyB0aGUgcmVu
ZGVyIHRyZWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVy
ZXIpOgorCisgICAgICAgIENyZWF0ZSBhIHRleHQgdXBkYXRlIHRoYXQgd2lsbCBnZXQgZmx1c2hl
ZCBkdXJpbmcgdGhlIG5leHQgcmVuZGVyaW5nIHVwZGF0ZS4KKworICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorCisgICAgICAgIFdlIG5lZWQgdG8g
cmVjYWxjIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHRleHQgdXBkYXRlcy4KKworICAgICAgICAqIGRv
bS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9UZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHQ6OnNwbGl0VGV4dCk6CisKKyAgICAgICAgVXNlIHVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250
ZW50Q2hhbmdlIGluc3RlYWQgb2YgcG9raW5nIHJlbmRlciB0cmVlIGRpcmVjdGx5LgorCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Ojp1cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcDoKKyAgICAg
ICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6VHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlRyZWVSZXNvbHZl
cik6CisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlVwZGF0ZTo6YWRkVGV4dCk6CisKKyAgICAgICAgTWVyZ2UgdGV4dCB1cGRhdGVzLgor
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRQb3NzaWJsZVJvb3QpOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXBk
YXRlOjpyb290cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjogY29u
c3QpOiBEZWxldGVkLgorCisgICAgICAgIFJlZmNvdW50IHRoZSBub2RlcyBzaW5jZSB0aGlzIG5v
dyBoYXMgbG9uZ2VyIGxpZmV0aW1lLgorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVs
ZXRlSW5zaWduaWZpY2FudFRleHQpOgorCisgICAgICAgIEVuc3VyZSB3ZSBsZWF2ZSBkZWxldGVJ
bnNpZ25pZmljYW50VGV4dCB3aXRoIHVwZGF0ZWQgcmVuZGVyIHRyZWUuIENsaWVudHMgZXhwZWN0
IHRoYXQuCisgICAgICAgIERvIGxheW91dCAoaW5zdGVhZCBvZiBqdXN0IHN0eWxlIHVwZGF0ZSkg
Zm9yIGNvbnNpc3RlbmN5LCBkZWxldGVJbnNpZ25pZmljYW50VGV4dCBkb2VzIG9uZSBhbnl3YXkg
aW4gYmVnaW5uaW5nLgorCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KToKKworICAgICAgICBQZW5kaW5n
IHRleHQgdXBkYXRlIG1heSByZWYgdGhlIG5vZGUgc28gdGhpcyByZWZjb3VudCBhc3NlcnQgaXMg
bm90IGNvcnJlY3QuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRUZXh0KToKKwogMjAyMS0wMi0yNSAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEVtb2ppIHNlcXVl
bmNlcyB3aXRoIGNvbnN0aXR1ZW50cyBpbiB0aGUgVUJMT0NLX1NZTUJPTFNfQU5EX1BJQ1RPR1JB
UEhTX0VYVEVOREVEX0EgVW5pY29kZSBibG9jayBkb24ndCBnZXQgY29tYmluZWQgcHJvcGVybHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCAwZmYyYTVjZTJhM2MuLmJiOGQ1
M2NjYzQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHVuc2lnbmVkIENoYXJhY3RlckRhdGE6OnBhcnNlckFwcGVuZERhdGEoY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwKICAgICAgICAgbV9kYXRhLmFwcGVuZChzdHJp
bmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGNoYXJhY3Rlckxlbmd0aExpbWl0KTsKIAogICAg
IEFTU0VSVCghcmVuZGVyZXIoKSB8fCBpczxUZXh0PigqdGhpcykpOwotICAgIGlmIChpczxUZXh0
PigqdGhpcykgJiYgcGFyZW50Tm9kZSgpKQorICAgIGlmIChpczxUZXh0PigqdGhpcykpCiAgICAg
ICAgIGRvd25jYXN0PFRleHQ+KCp0aGlzKS51cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5n
ZShvbGRMZW5ndGgsIDApOwogCiAgICAgbm90aWZ5UGFyZW50QWZ0ZXJDaGFuZ2UoQ29udGFpbmVy
Tm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKTsKQEAgLTE4Miw3ICsxODIsNyBAQCB2
b2lkIENoYXJhY3RlckRhdGE6OnNldERhdGFBbmRVcGRhdGUoY29uc3QgU3RyaW5nJiBuZXdEYXRh
LCB1bnNpZ25lZCBvZmZzZXRPZlJlcAogICAgICAgICBkb2N1bWVudCgpLnRleHRJbnNlcnRlZCgq
dGhpcywgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIG5ld0xlbmd0aCk7CiAKICAgICBBU1NFUlQoIXJl
bmRlcmVyKCkgfHwgaXM8VGV4dD4oKnRoaXMpKTsKLSAgICBpZiAoaXM8VGV4dD4oKnRoaXMpICYm
IHBhcmVudE5vZGUoKSkKKyAgICBpZiAoaXM8VGV4dD4oKnRoaXMpKQogICAgICAgICBkb3duY2Fz
dDxUZXh0PigqdGhpcykudXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2Uob2Zmc2V0T2ZS
ZXBsYWNlZERhdGEsIG9sZExlbmd0aCk7CiAKICAgICBpZiAoaXM8UHJvY2Vzc2luZ0luc3RydWN0
aW9uPigqdGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA4MDBjN2I5OTYxYjIuLmIy
YWYwMTFhZjlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04MDcsNiArODA3LDcgQEAg
dm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQogICAgICAgICBtX2Z1bGxzY3JlZW5NYW5h
Z2VyLT5jbGVhcigpOwogI2VuZGlmCiAgICAgICAgIG1fYXNzb2NpYXRlZEZvcm1Db250cm9scy5j
bGVhcigpOworICAgICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSA9IHsgfTsKIAog
ICAgICAgICBtX2ZvbnRTZWxlY3Rvci0+c3RvcExvYWRpbmdBbmRDbGVhckZvbnRzKCk7CiAKQEAg
LTIwNTIsNyArMjA1Myw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5
bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRl
U3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBTdHlsZTo6VHJlZVJlc29s
dmVyIHJlc29sdmVyKCp0aGlzKTsKKyAgICAgICAgU3R5bGU6OlRyZWVSZXNvbHZlciByZXNvbHZl
cigqdGhpcywgV1RGTW92ZShtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkpOwogICAgICAg
ICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgpOwogCiAgICAgICAgIG1fbGFz
dFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcgPSBzdHlsZVVwZGF0ZSA/IHN0eWxlVXBkYXRlLT5z
aXplKCkgOiAwOwpAQCAtMjEwMCwxMCArMjEwMSwxMiBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZl
U3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0
UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2ln
bmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAgIGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VV
bmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwotICAgIHRleHRVcGRhdGUtPmFkZFRleHQodGV4
dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6bnVs
bG9wdCB9KTsKKyAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKQorICAgICAg
ICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0
ZT4oKnRoaXMpOwogCi0gICAgdXBkYXRlUmVuZGVyVHJlZShXVEZNb3ZlKHRleHRVcGRhdGUpKTsK
KyAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZS0+YWRkVGV4dCh0ZXh0LCB7IG9mZnNl
dE9mUmVwbGFjZWRUZXh0LCBsZW5ndGhPZlJlcGxhY2VkVGV4dCwgV1RGOjpudWxsb3B0IH0pOwor
CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoeyB9KTsKIH0KIAogYm9vbCBEb2N1bWVudDo6
bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CkBAIC0yMTE3LDYgKzIxMjAsOSBAQCBib29sIERvY3Vt
ZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QKICAgICBpZiAoY2hpbGROZWVkc1N0eWxlUmVj
YWxjKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKG1fcGVuZGluZ1JlbmRlclRy
ZWVUZXh0VXBkYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChzdHlsZVNjb3Bl
KCkuaGFzUGVuZGluZ1VwZGF0ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTkuLjQ1NzQ3OGNlMDFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTE4MDMsNiArMTgwMyw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgVGltZXIgbV9z
dHlsZVJlY2FsY1RpbWVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlOjpVcGRhdGU+IG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlOworCiAgICAgRWxlbWVudCogbV9jc3NUYXJnZXQg
eyBudWxscHRyIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9ic2VydmVy
PiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCBmOTE4ZDQyMDNh
NDguLjEyZDkxNzExZGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzYsOCArNzYsNyBAQCBFeGNl
cHRpb25PcjxSZWY8VGV4dD4+IFRleHQ6OnNwbGl0VGV4dCh1bnNpZ25lZCBvZmZzZXQpCiAKICAg
ICBkb2N1bWVudCgpLnRleHROb2RlU3BsaXQoKnRoaXMpOwogCi0gICAgaWYgKHJlbmRlcmVyKCkp
Ci0gICAgICAgIHJlbmRlcmVyKCktPnNldFRleHRXaXRoT2Zmc2V0KGRhdGEoKSwgMCwgb2xkRGF0
YS5sZW5ndGgoKSk7CisgICAgdXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2UoMCwgb2xk
RGF0YS5sZW5ndGgoKSk7CiAKICAgICByZXR1cm4gbmV3VGV4dDsKIH0KQEAgLTIxNSw3ICsyMTQs
OSBAQCBSZWY8VGV4dD4gVGV4dDo6Y3JlYXRlV2l0aExlbmd0aExpbWl0KERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiBkYXRhLCB1bgogCiB2b2lkIFRleHQ6OnVwZGF0ZVJlbmRlcmVy
QWZ0ZXJDb250ZW50Q2hhbmdlKHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWREYXRhLCB1bnNpZ25l
ZCBsZW5ndGhPZlJlcGxhY2VkRGF0YSkKIHsKLSAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAg
ICBpZiAoIWlzQ29ubmVjdGVkKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChzdHlsZVZh
bGlkaXR5KCkgPj0gU3R5bGU6OlZhbGlkaXR5OjpTdWJ0cmVlQW5kUmVuZGVyZXJzSW52YWxpZCkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCmluZGV4IDE3ZjZlMWMyMTg2NS4uZjExN2FhYjkxMjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMTA1
OCw2ICsxMDU4LDEwIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUluc2lnbmlm
aWNhbnRUZXh0KGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QKICAgICAgICAgaW50IGVuZE9m
ZnNldCA9IHRleHROb2RlLnB0cigpID09IGVuZC5kZXByZWNhdGVkTm9kZSgpID8gZW5kLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCkgOiBzdGF0aWNfY2FzdDxpbnQ+KHRleHROb2RlLT5sZW5ndGgo
KSk7CiAgICAgICAgIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0KHRleHROb2RlLCBzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0KTsKICAgICB9CisgICAgaWYgKCFub2Rlcy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgLy8gQ2FsbGVycyBleHBlY3QgcmVuZGVyIHRyZWUgdG8gYmUgaW4gc3luYy4KKyAgICAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICB9
CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0
RG93bnN0cmVhbShjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKaW5kZXggZGJlNDk5NmFlODZhLi41Y2QwOTAzNDEyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKQEAgLTEzODUsNyArMTM4NSw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcGxh
Y2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1
CiAgICAgYXV0byogY29udGFpbmVyQ2hpbGQgPSBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCk7
CiAgICAgaWYgKGNvbnRhaW5lckNoaWxkICYmICFjb250YWluZXJDaGlsZC0+bmV4dFNpYmxpbmco
KSkgewogICAgICAgICBpZiAoaXM8VGV4dD4oKmNvbnRhaW5lckNoaWxkKSAmJiBoYXNPbmVUZXh0
Q2hpbGQoZnJhZ21lbnQpICYmIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oZG93bmNhc3Q8VGV4
dD4oKmNvbnRhaW5lckNoaWxkKSwgbXV0YXRpb24pKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWZy
YWdtZW50LT5maXJzdENoaWxkKCktPnJlZkNvdW50KCkpOwogICAgICAgICAgICAgZG93bmNhc3Q8
VGV4dD4oKmNvbnRhaW5lckNoaWxkKS5zZXREYXRhKGRvd25jYXN0PFRleHQ+KCpmcmFnbWVudC0+
Zmlyc3RDaGlsZCgpKS5kYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5jcHAKaW5kZXggYzE4ZTEwZTkyYTE0Li41OTY4YWJkYWM1OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBDb250YWluZXJOb2RlKiBmaW5kUmVu
ZGVyaW5nUm9vdChDb250YWluZXJOb2RlJiBub2RlKQogc3RhdGljIExpc3RIYXNoU2V0PENvbnRh
aW5lck5vZGUqPiBmaW5kUmVuZGVyaW5nUm9vdHMoY29uc3QgU3R5bGU6OlVwZGF0ZSYgdXBkYXRl
KQogewogICAgIExpc3RIYXNoU2V0PENvbnRhaW5lck5vZGUqPiByZW5kZXJpbmdSb290czsKLSAg
ICBmb3IgKGF1dG8qIHJvb3QgOiB1cGRhdGUucm9vdHMoKSkgeworICAgIGZvciAoYXV0byYgcm9v
dCA6IHVwZGF0ZS5yb290cygpKSB7CiAgICAgICAgIGF1dG8qIHJlbmRlcmluZ1Jvb3QgPSBmaW5k
UmVuZGVyaW5nUm9vdCgqcm9vdCk7CiAgICAgICAgIGlmICghcmVuZGVyaW5nUm9vdCkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVU
cmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIu
Y3BwCmluZGV4IGQxMjM2OTBlNGEzNC4uMDk4Nzg2NTM5YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC02Miw4ICs2Miw5IEBAIG5hbWVzcGFjZSBT
dHlsZSB7CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoVHJlZVJlc29s
dmVyU2NvcGUpOwogCi1UcmVlUmVzb2x2ZXI6OlRyZWVSZXNvbHZlcihEb2N1bWVudCYgZG9jdW1l
bnQpCitUcmVlUmVzb2x2ZXI6OlRyZWVSZXNvbHZlcihEb2N1bWVudCYgZG9jdW1lbnQsIHN0ZDo6
dW5pcXVlX3B0cjxVcGRhdGU+IHVwZGF0ZSkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisg
ICAgLCBtX3VwZGF0ZShXVEZNb3ZlKHVwZGF0ZSkpCiB7CiB9CiAKQEAgLTU3NiwxMSArNTc3LDEy
IEBAIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZSgpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBpZiAoIWRvY3VtZW50RWxlbWVudC0+Y2hp
bGROZWVkc1N0eWxlUmVjYWxjKCkgJiYgIWRvY3VtZW50RWxlbWVudC0+bmVlZHNTdHlsZVJlY2Fs
YygpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUobV91
cGRhdGUpOwogCiAgICAgbV9kaWRTZWVQZW5kaW5nU3R5bGVzaGVldCA9IG1fZG9jdW1lbnQuc3R5
bGVTY29wZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVCb2R5KCk7CiAKLSAgICBtX3VwZGF0ZSA9
IG1ha2VVbmlxdWU8VXBkYXRlPihtX2RvY3VtZW50KTsKKyAgICBpZiAoIW1fdXBkYXRlKQorICAg
ICAgICBtX3VwZGF0ZSA9IG1ha2VVbmlxdWU8VXBkYXRlPihtX2RvY3VtZW50KTsKICAgICBtX3Nj
b3BlU3RhY2suYXBwZW5kKGFkb3B0UmVmKCpuZXcgU2NvcGUobV9kb2N1bWVudCkpKTsKICAgICBt
X3BhcmVudFN0YWNrLmFwcGVuZChQYXJlbnQobV9kb2N1bWVudCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaAppbmRleCBlZWIwMWE5MDFiYjEuLjE4NmJiNTRkNTBk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCkBAIC00OSw3ICs0
OSw3IEBAIGNsYXNzIFJlc29sdmVyOwogREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoVHJlZVJlc29sdmVyU2NvcGUpOwogY2xhc3MgVHJlZVJlc29sdmVyIHsKIHB1YmxpYzoK
LSAgICBUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmKTsKKyAgICBUcmVlUmVzb2x2ZXIoRG9jdW1lbnQm
LCBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiA9IHsgfSk7CiAgICAgflRyZWVSZXNvbHZlcigpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gcmVzb2x2ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVVcGRhdGUuY3BwCmluZGV4IDA4NTkyYTJkOGEyMS4uOGZhODUxOGVlN2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCkBAIC05NiwxMSArOTYsMjMgQEAgdm9pZCBVcGRh
dGU6OmFkZEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgRWxlbWVudCogcGFyZW50LCBFbGVtZW50
VXBkYXRlcyYmIGVsZW0KIAogdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4dCYgdGV4dCwgRWxlbWVu
dCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHsKLSAgICBBU1NFUlQoIW1fdGV4
dHMuY29udGFpbnMoJnRleHQpKTsKICAgICBBU1NFUlQoY29tcG9zZWRUcmVlQW5jZXN0b3JzKHRl
eHQpLmZpcnN0KCkgPT0gcGFyZW50KTsKIAogICAgIGFkZFBvc3NpYmxlUm9vdChwYXJlbnQpOwot
ICAgIG1fdGV4dHMuYWRkKCZ0ZXh0LCBXVEZNb3ZlKHRleHRVcGRhdGUpKTsKKyAgICBhdXRvIHJl
c3VsdCA9IG1fdGV4dHMuZW5zdXJlKCZ0ZXh0LCBbJl0geworICAgICAgICByZXR1cm4gV1RGTW92
ZSh0ZXh0VXBkYXRlKTsKKyAgICB9KTsKKyAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KSB7Cisg
ICAgICAgIGF1dG8mIGVudHJ5ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgYXV0
byBzdGFydE9mZnNldCA9IHN0ZDo6bWluKGVudHJ5Lm9mZnNldCwgdGV4dFVwZGF0ZS5vZmZzZXQp
OworICAgICAgICBhdXRvIGVuZE9mZnNldCA9IHN0ZDo6bWF4KGVudHJ5Lm9mZnNldCArIGVudHJ5
Lmxlbmd0aCwgdGV4dFVwZGF0ZS5vZmZzZXQgKyB0ZXh0VXBkYXRlLmxlbmd0aCk7CisgICAgICAg
IGVudHJ5Lm9mZnNldCA9IHN0YXJ0T2Zmc2V0OworICAgICAgICBlbnRyeS5sZW5ndGggPSBlbmRP
ZmZzZXQgLSBzdGFydE9mZnNldDsKKyAgICAgICAgCisgICAgICAgIEFTU0VSVCghZW50cnkuaW5o
ZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUgfHwgIXRleHRVcGRhdGUuaW5oZXJpdGVkRGlzcGxh
eUNvbnRlbnRzU3R5bGUpOworICAgICAgICBpZiAoIWVudHJ5LmluaGVyaXRlZERpc3BsYXlDb250
ZW50c1N0eWxlKQorICAgICAgICAgICAgZW50cnkuaW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5
bGUgPSBXVEZNb3ZlKHRleHRVcGRhdGUuaW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpOwor
ICAgIH0KIH0KIAogdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4dCYgdGV4dCwgVGV4dFVwZGF0ZSYm
IHRleHRVcGRhdGUpCkBAIC0xMTEsNyArMTIzLDcgQEAgdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4
dCYgdGV4dCwgVGV4dFVwZGF0ZSYmIHRleHRVcGRhdGUpCiB2b2lkIFVwZGF0ZTo6YWRkUG9zc2li
bGVSb290KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgaWYgKCFlbGVtZW50KSB7Ci0gICAgICAg
IG1fcm9vdHMuYWRkKCZtX2RvY3VtZW50KTsKKyAgICAgICAgbV9yb290cy5hZGQobV9kb2N1bWVu
dC5wdHIoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKG1fZWxlbWVudHMuY29u
dGFpbnMoZWxlbWVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVw
ZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCAwNGM2MDQy
ZDA3MDUuLjg5MDliMmJjMTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCkBAIC02
OSw3ICs2OSw3IEBAIGNsYXNzIFVwZGF0ZSB7CiBwdWJsaWM6CiAgICAgVXBkYXRlKERvY3VtZW50
Jik7CiAKLSAgICBjb25zdCBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4mIHJvb3RzKCkgY29u
c3QgeyByZXR1cm4gbV9yb290czsgfQorICAgIGNvbnN0IExpc3RIYXNoU2V0PFJlZlB0cjxDb250
YWluZXJOb2RlPj4mIHJvb3RzKCkgY29uc3QgeyByZXR1cm4gbV9yb290czsgfQogCiAgICAgY29u
c3QgRWxlbWVudFVwZGF0ZXMqIGVsZW1lbnRVcGRhdGVzKGNvbnN0IEVsZW1lbnQmKSBjb25zdDsK
ICAgICBFbGVtZW50VXBkYXRlcyogZWxlbWVudFVwZGF0ZXMoY29uc3QgRWxlbWVudCYpOwpAQCAt
OTAsMTAgKzkwLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQb3NzaWJsZVJv
b3QoRWxlbWVudCopOwogCi0gICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgTGlzdEhhc2hT
ZXQ8Q29udGFpbmVyTm9kZSo+IG1fcm9vdHM7Ci0gICAgSGFzaE1hcDxjb25zdCBFbGVtZW50Kiwg
RWxlbWVudFVwZGF0ZXM+IG1fZWxlbWVudHM7Ci0gICAgSGFzaE1hcDxjb25zdCBUZXh0KiwgVGV4
dFVwZGF0ZT4gbV90ZXh0czsKKyAgICBSZWY8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CisgICAgTGlz
dEhhc2hTZXQ8UmVmUHRyPENvbnRhaW5lck5vZGU+PiBtX3Jvb3RzOworICAgIEhhc2hNYXA8UmVm
UHRyPGNvbnN0IEVsZW1lbnQ+LCBFbGVtZW50VXBkYXRlcz4gbV9lbGVtZW50czsKKyAgICBIYXNo
TWFwPFJlZlB0cjxjb25zdCBUZXh0PiwgVGV4dFVwZGF0ZT4gbV90ZXh0czsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426446</attachid>
            <date>2021-04-19 11:05:43 -0700</date>
            <delta_ts>2021-04-19 23:34:00 -0700</delta_ts>
            <desc>patch for relanding</desc>
            <filename>async-render-text-update-reland.patch</filename>
            <type>text/plain</type>
            <size>17342</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OGQ5NTE1OTZlOTYuLmE3NjVhMGVjZjMzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTA0LTE5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlvbnMgc2hv
dWxkIGhhcHBlbiBkdXJpbmcgcmVuZGVyaW5nIHVwZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83NDgyMjgzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgVGhlc2UgYXJlIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIGZhc3QvdGV4dC9zcGxpdFRl
eHQtZGlydHktbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvdGV4dC90ZXh0LWNv
bWJpbmUtc3Vycm91bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW1w
b3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLXJhbmdlLWluc2VydC1leHBlY3RlZC50
eHQ6CisKKyAgICAgICAgSGVyZSB3ZSB3ZXJlIGFjdHVhbGx5IGRyYXdpbmcgdGV4dCB0aGF0IGRp
ZG4ndCBleGlzdCBpbiBET00gYW55bW9yZS4KKwogMjAyMS0wNC0xNSAgRGllZ28gUGlubyBHYXJj
aWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gVW5yZXZpZXdlZCB0
ZXN0IGdhcmRlbmluZy4gR2FyZGVuZWQgdGVzdHMgZXhwZWN0ZWQgdG8gZmFpbCBidXQgcGFzc2Vk
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NwbGl0VGV4dC1kaXJ0eS1saW5l
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc3BsaXRUZXh0LWRpcnR5LWxp
bmVzLWV4cGVjdGVkLnR4dAppbmRleCBkZmY3NzE5YjE4OWIuLjJlMGJjOGQzNzU3ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NwbGl0VGV4dC1kaXJ0eS1saW5lcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NwbGl0VGV4dC1kaXJ0eS1saW5lcy1l
eHBlY3RlZC50eHQKQEAgLTE1LDcgKzE1LDYgQEAgbGF5ZXIgYXQgKDgsOCkgc2l6ZSAyMDB4MTYw
CiAgICAgICB0ZXh0IHJ1biBhdCAoODAsMTIwKSB3aWR0aCA0MDogIkUiCiBsYXllciBhdCAoOCw4
KSBzaXplIDIwMHgxNjAKICAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDAp
IHNpemUgMjAweDE2MCBbY29sb3I9IzAwODAwMF0KLSAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNjB4
MTYwCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNjA6ICJBQUFBIgogICAgICAgdGV4
dCBydW4gYXQgKDAsNDApIHdpZHRoIDQwOiAiQiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC90ZXh0LWNvbWJpbmUtc3Vycm91bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1jb21iaW5lLXN1cnJvdW5kQ29udGVudHMtY3Jh
c2gtZXhwZWN0ZWQudHh0CmluZGV4IDUzZjEyYzY5YmNlOC4uZmY1MDM4YjRlZGQyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1jb21iaW5lLXN1cnJvdW5kQ29udGVudHMt
Y3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LWNvbWJp
bmUtc3Vycm91bmRDb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsMTYgKzEsMTUgQEAK
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NzYKLSAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDc2Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NjAKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4NDAKLSAg
ICAgICAgUmVuZGVyQ29tYmluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAg
ICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjB4MAotICAgICAgICBSZW5kZXJD
b21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDIwKSBzaXplIDIweDIwCi0gICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMjApIHdpZHRoIDIwOiAiXHh7RkZGQ30iCi0gICAgICBSZW5kZXJCbG9jayAoYW5v
bnltb3VzKSBhdCAoMCw0MCkgc2l6ZSA3ODR4MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTYK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDU2CisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgMjB4MjAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJDb21iaW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjB4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlx4e0ZGRkN9Igor
ICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjApIHNpemUgNzg0eDAKICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsNDApIHNpemUgNzg0eDIwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyMCkgc2l6
ZSA3ODR4MjAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDAweDIw
CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDAwOiAiUEFTUywgZGlkIG5vdCBj
cmFzaC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9m
aXJzdC1sZXR0ZXItcmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1yYW5nZS1pbnNlcnQtZXhwZWN0ZWQudHh0
CmluZGV4IGI4NTUyYWVjNzg5Ni4uOGIxMzc4OTE3OTFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1sZXR0ZXItcmFuZ2UtaW5zZXJ0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9maXJzdC1s
ZXR0ZXItcmFuZ2UtaW5zZXJ0LWV4cGVjdGVkLnR4dApAQCAtMSwyICsxIEBACi1CCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBkMTA4M2ZjZDk0ZjMuLmZjNGE5M2JmOTQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDc5IEBACisyMDIxLTA0LTE5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW5kZXIgdHJlZSB1cGRhdGVzIGZvciBUZXh0IG5vZGUgY29udGVudCBtdXRhdGlv
bnMgc2hvdWxkIGhhcHBlbiBkdXJpbmcgcmVuZGVyaW5nIHVwZGF0ZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDA2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83NDgyMjgzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisK
KyAgICAgICAgQ2FsbHMgdG8gVGV4dC5pbnNlcnREYXRhIGFuZCBzaW1pbGFyIHNob3VsZCBub3Qg
bXV0YXRlIHJlbmRlciB0cmVlIHN5bmNocm9ub3VzbHkuCisgICAgICAgIEluc3RlYWQgcmVuZGVy
IHRyZWUgc2hvdWxkIGJlIHVwZGF0ZWQgZHVyaW5nIHRoZSBuZXh0IHJlbmRlcmluZyB1cGRhdGUg
YWxvbmcgd2l0aAorICAgICAgICBhbnkgc3R5bGUgY2hhbmdlcy4KKworICAgICAgICBUaGVzZSB1
cGRhdGVzIGFscmVhZHkgZ28gdmlhIFJlbmRlclRyZWVVcGRhdGVyLiBXZSBqdXN0IG5lZWQgdG8g
c2F2ZSB0aGUgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgd2hpY2ggbm9kZXMgbmVlZCB1cGRh
dGluZyBzbyB0aGUgbmV4dCByZW5kZXJpbmcgdXBkYXRlIGNhbiBwaWNrIHRoZW0gdXAuCisKKyAg
ICAgICAgVGhpcyBzZWVtcyB0byBoZWxwIHdpdGggc29tZSBwZXJmb3JtYW5jZSBiZW5jaG1hcmtz
LgorCisgICAgICAgICogZG9tL0NoYXJhY3RlckRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hhcmFjdGVyRGF0YTo6cGFyc2VyQXBwZW5kRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDaGFy
YWN0ZXJEYXRhOjpzZXREYXRhQW5kVXBkYXRlKToKKworICAgICAgICBNb3ZlIGluLXRyZWUgY2hl
Y2sgdG8gdGhlIHVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250ZW50Q2hhbmdlIGFuZCBtYWtlIGl0IHVz
ZSBpc0Nvbm5lY3RlZCgpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6cmVzb2x2ZVN0eWxlKToKKworICAgICAgICBJbmNsdWRlIHRoZSB0ZXh0IHVwZGF0
ZSB3aGVuIHVwZGF0aW5nIHRoZSByZW5kZXIgdHJlZS4KKworICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJlcik6CisKKyAgICAgICAgQ3JlYXRlIGEgdGV4dCB1cGRh
dGUgdGhhdCB3aWxsIGdldCBmbHVzaGVkIGR1cmluZyB0aGUgbmV4dCByZW5kZXJpbmcgdXBkYXRl
LgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYyBjb25zdCk6
CisKKyAgICAgICAgV2UgbmVlZCB0byByZWNhbGMgaWYgdGhlcmUgYXJlIHBlbmRpbmcgdGV4dCB1
cGRhdGVzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1RleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6c3BsaXRUZXh0KToKKworICAgICAgICBVc2Ug
dXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2UgaW5zdGVhZCBvZiBwb2tpbmcgcmVuZGVy
IHRyZWUgZGlyZWN0bHkuCisKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnVwZGF0ZVJlbmRlcmVy
QWZ0ZXJDb250ZW50Q2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZVVwZGF0ZXIuY3BwOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlRyZWVSZXNvbHZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlKToKKyAgICAgICAg
KiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRy
ZWVSZXNvbHZlcjo6VHJlZVJlc29sdmVyKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRUZXh0KToKKworICAgICAg
ICBNZXJnZSB0ZXh0IHVwZGF0ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6
OmFkZFBvc3NpYmxlUm9vdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OnJvb3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpVcGRhdGU6OiBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVmY291bnQg
dGhlIG5vZGVzIHNpbmNlIHRoaXMgbm93IGhhcyBsb25nZXIgbGlmZXRpbWUuCisKKyAgICAgICAg
KiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dCk6CisKKyAgICAgICAg
RW5zdXJlIHdlIGxlYXZlIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0IHdpdGggdXBkYXRlZCByZW5k
ZXIgdHJlZS4gQ2xpZW50cyBleHBlY3QgdGhhdC4KKyAgICAgICAgRG8gbGF5b3V0IChpbnN0ZWFk
IG9mIGp1c3Qgc3R5bGUgdXBkYXRlKSBmb3IgY29uc2lzdGVuY3ksIGRlbGV0ZUluc2lnbmlmaWNh
bnRUZXh0IGRvZXMgb25lIGFueXdheSBpbiBiZWdpbm5pbmcuCisKKyAgICAgICAgKiBlZGl0aW5n
L21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21l
bnQpOgorCisgICAgICAgIFBlbmRpbmcgdGV4dCB1cGRhdGUgbWF5IHJlZiB0aGUgbm9kZSBzbyB0
aGlzIHJlZmNvdW50IGFzc2VydCBpcyBub3QgY29ycmVjdC4KKworICAgICAgICAqIHN0eWxlL1N0
eWxlVXBkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFRleHQp
OgorCiAyMDIxLTA0LTE1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3NjEwNy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcAppbmRleCAwZmYyYTVjZTJhM2MuLmJiOGQ1M2NjYzQ0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHVuc2lnbmVk
IENoYXJhY3RlckRhdGE6OnBhcnNlckFwcGVuZERhdGEoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVu
c2lnbmVkIG9mZnNldCwKICAgICAgICAgbV9kYXRhLmFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2
KCkgKyBvZmZzZXQsIGNoYXJhY3Rlckxlbmd0aExpbWl0KTsKIAogICAgIEFTU0VSVCghcmVuZGVy
ZXIoKSB8fCBpczxUZXh0PigqdGhpcykpOwotICAgIGlmIChpczxUZXh0PigqdGhpcykgJiYgcGFy
ZW50Tm9kZSgpKQorICAgIGlmIChpczxUZXh0PigqdGhpcykpCiAgICAgICAgIGRvd25jYXN0PFRl
eHQ+KCp0aGlzKS51cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5nZShvbGRMZW5ndGgsIDAp
OwogCiAgICAgbm90aWZ5UGFyZW50QWZ0ZXJDaGFuZ2UoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFu
Z2U6OlNvdXJjZTo6UGFyc2VyKTsKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIENoYXJhY3RlckRh
dGE6OnNldERhdGFBbmRVcGRhdGUoY29uc3QgU3RyaW5nJiBuZXdEYXRhLCB1bnNpZ25lZCBvZmZz
ZXRPZlJlcAogICAgICAgICBkb2N1bWVudCgpLnRleHRJbnNlcnRlZCgqdGhpcywgb2Zmc2V0T2ZS
ZXBsYWNlZERhdGEsIG5ld0xlbmd0aCk7CiAKICAgICBBU1NFUlQoIXJlbmRlcmVyKCkgfHwgaXM8
VGV4dD4oKnRoaXMpKTsKLSAgICBpZiAoaXM8VGV4dD4oKnRoaXMpICYmIHBhcmVudE5vZGUoKSkK
KyAgICBpZiAoaXM8VGV4dD4oKnRoaXMpKQogICAgICAgICBkb3duY2FzdDxUZXh0PigqdGhpcyku
dXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2Uob2Zmc2V0T2ZSZXBsYWNlZERhdGEsIG9s
ZExlbmd0aCk7CiAKICAgICBpZiAoaXM8UHJvY2Vzc2luZ0luc3RydWN0aW9uPigqdGhpcykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNmM4YWU0MWVmYjMuLjU1MTJlMzM1NmU0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04MDksNiArODA5LDcgQEAgdm9pZCBEb2N1bWVudDo6
cmVtb3ZlZExhc3RSZWYoKQogICAgICAgICBtX2Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGVhcigpOwog
I2VuZGlmCiAgICAgICAgIG1fYXNzb2NpYXRlZEZvcm1Db250cm9scy5jbGVhcigpOworICAgICAg
ICBtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSA9IHsgfTsKIAogICAgICAgICBtX2ZvbnRM
b2FkZXItPnN0b3BMb2FkaW5nQW5kQ2xlYXJGb250cygpOwogCkBAIC0yMDU0LDcgKzIwNTUsNyBA
QCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogICAg
ICAgICAgICAgICAgIGRvY3VtZW50RWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgp
OwogICAgICAgICB9CiAKLSAgICAgICAgU3R5bGU6OlRyZWVSZXNvbHZlciByZXNvbHZlcigqdGhp
cyk7CisgICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2ZXIgcmVzb2x2ZXIoKnRoaXMsIFdURk1vdmUo
bV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpKTsKICAgICAgICAgYXV0byBzdHlsZVVwZGF0
ZSA9IHJlc29sdmVyLnJlc29sdmUoKTsKIAogICAgICAgICBtX2xhc3RTdHlsZVVwZGF0ZVNpemVG
b3JUZXN0aW5nID0gc3R5bGVVcGRhdGUgPyBzdHlsZVVwZGF0ZS0+c2l6ZSgpIDogMDsKQEAgLTIx
MDIsMTAgKzIxMDMsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHls
ZVR5cGUgdHlwZSkKIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVyKFRleHQmIHRl
eHQsIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0LCB1bnNpZ25lZCBsZW5ndGhPZlJlcGxh
Y2VkVGV4dCkKIHsKLSAgICBhdXRvIHRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRh
dGU+KCp0aGlzKTsKLSAgICB0ZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0T2ZSZXBs
YWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQgfSk7CisgICAgaWYg
KCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKKyAgICAgICAgbV9wZW5kaW5nUmVuZGVy
VHJlZVRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKIAotICAg
IHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwg
bGVuZ3RoT2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKKworICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKHsgfSk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMo
KSBjb25zdApAQCAtMjExOSw2ICsyMTIyLDkgQEAgYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJl
Y2FsYygpIGNvbnN0CiAgICAgaWYgKGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAorICAgIGlmIChtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoc3R5bGVTY29wZSgpLmhhc1BlbmRpbmdVcGRh
dGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYmFl
YWZiMTZjMzI3Li5iMWE0ZmZjOTM1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xODA1LDYg
KzE4MDUsOCBAQCBwcml2YXRlOgogICAgIAogICAgIFRpbWVyIG1fc3R5bGVSZWNhbGNUaW1lcjsK
IAorICAgIHN0ZDo6dW5pcXVlX3B0cjxTdHlsZTo6VXBkYXRlPiBtX3BlbmRpbmdSZW5kZXJUcmVl
VGV4dFVwZGF0ZTsKKwogICAgIEVsZW1lbnQqIG1fY3NzVGFyZ2V0IHsgbnVsbHB0ciB9OwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1hZ2VPYnNlcnZlcj4gbV9sYXp5TG9hZEltYWdl
T2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggZjkxOGQ0MjAzYTQ4Li4xMmQ5MTcxMWRkNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5jcHAKQEAgLTc2LDggKzc2LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFRleHQ+
PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0KQogCiAgICAgZG9jdW1lbnQoKS50ZXh0
Tm9kZVNwbGl0KCp0aGlzKTsKIAotICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICByZW5kZXJl
cigpLT5zZXRUZXh0V2l0aE9mZnNldChkYXRhKCksIDAsIG9sZERhdGEubGVuZ3RoKCkpOworICAg
IHVwZGF0ZVJlbmRlcmVyQWZ0ZXJDb250ZW50Q2hhbmdlKDAsIG9sZERhdGEubGVuZ3RoKCkpOwog
CiAgICAgcmV0dXJuIG5ld1RleHQ7CiB9CkBAIC0yMTUsNyArMjE0LDkgQEAgUmVmPFRleHQ+IFRl
eHQ6OmNyZWF0ZVdpdGhMZW5ndGhMaW1pdChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgZGF0YSwgdW4KIAogdm9pZCBUZXh0Ojp1cGRhdGVSZW5kZXJlckFmdGVyQ29udGVudENoYW5n
ZSh1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNl
ZERhdGEpCiB7Ci0gICAgQVNTRVJUKHBhcmVudE5vZGUoKSk7CisgICAgaWYgKCFpc0Nvbm5lY3Rl
ZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoc3R5bGVWYWxpZGl0eSgpID49IFN0eWxl
OjpWYWxpZGl0eTo6U3VidHJlZUFuZFJlbmRlcmVyc0ludmFsaWQpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApp
bmRleCBiMWE4MTA3ODRiYTEuLmZkN2MzYjZjOGNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTEwNzksNiArMTA3OSwxMCBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dChjb25zdCBQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgICAgIGludCBlbmRPZmZzZXQgPSB0ZXh0Tm9kZS5w
dHIoKSA9PSBlbmQuZGVwcmVjYXRlZE5vZGUoKSA/IGVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNl
dCgpIDogc3RhdGljX2Nhc3Q8aW50Pih0ZXh0Tm9kZS0+bGVuZ3RoKCkpOwogICAgICAgICBkZWxl
dGVJbnNpZ25pZmljYW50VGV4dCh0ZXh0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAg
ICAgfQorICAgIGlmICghbm9kZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIENhbGxlcnMgZXhw
ZWN0IHJlbmRlciB0cmVlIHRvIGJlIGluIHN5bmMuCisgICAgICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgfQogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50VGV4dERvd25zdHJlYW0oY29uc3Qg
UG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDZhMTQy
YWQzYWYzZC4uOTkxMDM1NzQxOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0x
Mzg3LDcgKzEzODcsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNlQ2hpbGRyZW5XaXRoRnJh
Z21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBSZWY8RG9jdQogICAgIGF1dG8qIGNvbnRh
aW5lckNoaWxkID0gY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmIChjb250YWlu
ZXJDaGlsZCAmJiAhY29udGFpbmVyQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYg
KGlzPFRleHQ+KCpjb250YWluZXJDaGlsZCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50KSAm
JiBjYW5Vc2VTZXREYXRhT3B0aW1pemF0aW9uKGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJDaGls
ZCksIG11dGF0aW9uKSkgewotICAgICAgICAgICAgQVNTRVJUKCFmcmFnbWVudC0+Zmlyc3RDaGls
ZCgpLT5yZWZDb3VudCgpKTsKICAgICAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJD
aGlsZCkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0
YSgpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmlu
ZGV4IDY4YTY0Njk2MzYwYi4uNzVjYjcwZWIzODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTEwMiw3
ICsxMDIsNyBAQCBzdGF0aWMgQ29udGFpbmVyTm9kZSogZmluZFJlbmRlcmluZ1Jvb3QoQ29udGFp
bmVyTm9kZSYgbm9kZSkKIHN0YXRpYyBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gZmluZFJl
bmRlcmluZ1Jvb3RzKGNvbnN0IFN0eWxlOjpVcGRhdGUmIHVwZGF0ZSkKIHsKICAgICBMaXN0SGFz
aFNldDxDb250YWluZXJOb2RlKj4gcmVuZGVyaW5nUm9vdHM7Ci0gICAgZm9yIChhdXRvKiByb290
IDogdXBkYXRlLnJvb3RzKCkpIHsKKyAgICBmb3IgKGF1dG8mIHJvb3QgOiB1cGRhdGUucm9vdHMo
KSkgewogICAgICAgICBhdXRvKiByZW5kZXJpbmdSb290ID0gZmluZFJlbmRlcmluZ1Jvb3QoKnJv
b3QpOwogICAgICAgICBpZiAoIXJlbmRlcmluZ1Jvb3QpCiAgICAgICAgICAgICBjb250aW51ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRleCA3NzI0N2Jm
ZmJjOWIuLmMwNDE3MTlhMDQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcApAQCAtNjMsOCArNjMsOSBAQCBuYW1lc3BhY2UgU3R5bGUgewogCiBERUZJTkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZlclNjb3BlKTsKIAotVHJl
ZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorVHJlZVJlc29sdmVy
OjpUcmVlUmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRl
PiB1cGRhdGUpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV91cGRhdGUoV1RG
TW92ZSh1cGRhdGUpKQogewogfQogCkBAIC02MDAsMTEgKzYwMSwxMiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8VXBkYXRlPiBUcmVlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2Fs
YygpICYmICFkb2N1bWVudEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fdXBkYXRlKTsKIAogICAgIG1f
ZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQgPSBtX2RvY3VtZW50LnN0eWxlU2NvcGUoKS5oYXNQZW5k
aW5nU2hlZXRzQmVmb3JlQm9keSgpOwogCi0gICAgbV91cGRhdGUgPSBtYWtlVW5pcXVlPFVwZGF0
ZT4obV9kb2N1bWVudCk7CisgICAgaWYgKCFtX3VwZGF0ZSkKKyAgICAgICAgbV91cGRhdGUgPSBt
YWtlVW5pcXVlPFVwZGF0ZT4obV9kb2N1bWVudCk7CiAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChh
ZG9wdFJlZigqbmV3IFNjb3BlKG1fZG9jdW1lbnQpKSk7CiAgICAgbV9wYXJlbnRTdGFjay5hcHBl
bmQoUGFyZW50KG1fZG9jdW1lbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmgKaW5kZXggMWFlMmVkYjI4ZDJiLi4yMDM3MTllYmE2OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBSZXNv
bHZlcjsKIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZl
clNjb3BlKTsKIGNsYXNzIFRyZWVSZXNvbHZlciB7CiBwdWJsaWM6Ci0gICAgVHJlZVJlc29sdmVy
KERvY3VtZW50Jik7CisgICAgVHJlZVJlc29sdmVyKERvY3VtZW50Jiwgc3RkOjp1bmlxdWVfcHRy
PFVwZGF0ZT4gPSB7IH0pOwogICAgIH5UcmVlUmVzb2x2ZXIoKTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxVcGRhdGU+IHJlc29sdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcApp
bmRleCBhZTIzNjM5MzM0ZmMuLmRkNjY2MmM1MWYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmNwcApAQCAtOTgsMTIgKzk4LDIzIEBAIHZvaWQgVXBkYXRlOjphZGRFbGVtZW50KEVs
ZW1lbnQmIGVsZW1lbnQsIEVsZW1lbnQqIHBhcmVudCwgRWxlbWVudFVwZGF0ZXMmJiBlbGVtCiAK
IHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVw
ZGF0ZSYmIHRleHRVcGRhdGUpCiB7Ci0gICAgQVNTRVJUKCFtX3RleHRzLmNvbnRhaW5zKCZ0ZXh0
KSk7CiAgICAgQVNTRVJUKGNvbXBvc2VkVHJlZUFuY2VzdG9ycyh0ZXh0KS5maXJzdCgpID09IHBh
cmVudCk7CiAKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKLSAgICAKLSAgICBtX3RleHRz
LmFkZCgmdGV4dCwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisKKyAgICBhdXRvIHJlc3VsdCA9IG1f
dGV4dHMuYWRkKCZ0ZXh0LCBXVEZNb3ZlKHRleHRVcGRhdGUpKTsKKworICAgIGlmICghcmVzdWx0
LmlzTmV3RW50cnkpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRlcmF0b3ItPnZh
bHVlOworICAgICAgICBhdXRvIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oZW50cnkub2Zmc2V0LCB0
ZXh0VXBkYXRlLm9mZnNldCk7CisgICAgICAgIGF1dG8gZW5kT2Zmc2V0ID0gc3RkOjptYXgoZW50
cnkub2Zmc2V0ICsgZW50cnkubGVuZ3RoLCB0ZXh0VXBkYXRlLm9mZnNldCArIHRleHRVcGRhdGUu
bGVuZ3RoKTsKKyAgICAgICAgZW50cnkub2Zmc2V0ID0gc3RhcnRPZmZzZXQ7CisgICAgICAgIGVu
dHJ5Lmxlbmd0aCA9IGVuZE9mZnNldCAtIHN0YXJ0T2Zmc2V0OworICAgICAgICAKKyAgICAgICAg
QVNTRVJUKCFlbnRyeS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSB8fCAhdGV4dFVwZGF0
ZS5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSk7CisgICAgICAgIGlmICghZW50cnkuaW5o
ZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpCisgICAgICAgICAgICBlbnRyeS5pbmhlcml0ZWRE
aXNwbGF5Q29udGVudHNTdHlsZSA9IFdURk1vdmUodGV4dFVwZGF0ZS5pbmhlcml0ZWREaXNwbGF5
Q29udGVudHNTdHlsZSk7CisgICAgfQogfQogCiB2b2lkIFVwZGF0ZTo6YWRkVGV4dChUZXh0JiB0
ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKQEAgLTExNCw3ICsxMjUsNyBAQCB2b2lkIFVw
ZGF0ZTo6YWRkVGV4dChUZXh0JiB0ZXh0LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkKIHZvaWQg
VXBkYXRlOjphZGRQb3NzaWJsZVJvb3QoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVs
ZW1lbnQpIHsKLSAgICAgICAgbV9yb290cy5hZGQoJm1fZG9jdW1lbnQpOworICAgICAgICBtX3Jv
b3RzLmFkZChtX2RvY3VtZW50LnB0cigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBp
ZiAobV9lbGVtZW50cy5jb250YWlucyhlbGVtZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0
ZS5oCmluZGV4IDA0YzYwNDJkMDcwNS4uODkwOWIyYmMxOTllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVXBkYXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgVXBkYXRlIHsKIHB1YmxpYzoKICAg
ICBVcGRhdGUoRG9jdW1lbnQmKTsKIAotICAgIGNvbnN0IExpc3RIYXNoU2V0PENvbnRhaW5lck5v
ZGUqPiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RzOyB9CisgICAgY29uc3QgTGlzdEhh
c2hTZXQ8UmVmUHRyPENvbnRhaW5lck5vZGU+PiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RzOyB9CiAKICAgICBjb25zdCBFbGVtZW50VXBkYXRlcyogZWxlbWVudFVwZGF0ZXMoY29uc3Qg
RWxlbWVudCYpIGNvbnN0OwogICAgIEVsZW1lbnRVcGRhdGVzKiBlbGVtZW50VXBkYXRlcyhjb25z
dCBFbGVtZW50Jik7CkBAIC05MCwxMCArOTAsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
b2lkIGFkZFBvc3NpYmxlUm9vdChFbGVtZW50Kik7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVu
dDsKLSAgICBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gbV9yb290czsKLSAgICBIYXNoTWFw
PGNvbnN0IEVsZW1lbnQqLCBFbGVtZW50VXBkYXRlcz4gbV9lbGVtZW50czsKLSAgICBIYXNoTWFw
PGNvbnN0IFRleHQqLCBUZXh0VXBkYXRlPiBtX3RleHRzOworICAgIFJlZjxEb2N1bWVudD4gbV9k
b2N1bWVudDsKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+IG1fcm9vdHM7
CisgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgRWxlbWVudD4sIEVsZW1lbnRVcGRhdGVzPiBtX2Vs
ZW1lbnRzOworICAgIEhhc2hNYXA8UmVmUHRyPGNvbnN0IFRleHQ+LCBUZXh0VXBkYXRlPiBtX3Rl
eHRzOwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>