<?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>301447</bug_id>
          
          <creation_ts>2025-10-24 14:40:14 -0700</creation_ts>
          <short_desc>https://mcas-practicetest.cognia.org/ Grade 8 ELA math examples fail to repaint content properly</short_desc>
          <delta_ts>2026-01-08 19:03:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=6274</see_also>
          <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>304849</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>a.mueller</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2154144</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 14:40:14 -0700</bug_when>
    <thetext>&lt;rdar://163290779&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154147</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 14:41:50 -0700</bug_when>
    <thetext>*** Bug 117253 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154161</commentid>
    <comment_count>2</comment_count>
      <attachid>477194</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 15:18:28 -0700</bug_when>
    <thetext>Created attachment 477194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154192</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 19:05:32 -0700</bug_when>
    <thetext>Interestingly some of the &quot;failures&quot; here seem to be caused by &quot;uninitialized&quot; fonts, meaning that now we trigger font loading by walking the glyphs and it has the side effect  of making some of the tests fail. However those failures are actually progressions -and loading the same test in Safari shows the progressed variant (because we have the fonts initialized by some other means? -which we don&apos;t do when using wktr/drtr). Odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154468</commentid>
    <comment_count>4</comment_count>
      <attachid>477203</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-10-27 10:42:26 -0700</bug_when>
    <thetext>Created attachment 477203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154497</commentid>
    <comment_count>5</comment_count>
      <attachid>477206</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-10-27 13:05:06 -0700</bug_when>
    <thetext>Created attachment 477206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154886</commentid>
    <comment_count>6</comment_count>
      <attachid>477217</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-10-28 19:27:24 -0700</bug_when>
    <thetext>Created attachment 477217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155813</commentid>
    <comment_count>7</comment_count>
      <attachid>477255</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-11-02 06:35:41 -0800</bug_when>
    <thetext>Created attachment 477255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168111</commentid>
    <comment_count>8</comment_count>
      <attachid>477842</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-12-24 19:59:07 -0800</bug_when>
    <thetext>Created attachment 477842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168150</commentid>
    <comment_count>9</comment_count>
      <attachid>477845</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-12-25 05:40:29 -0800</bug_when>
    <thetext>Created attachment 477845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168894</commentid>
    <comment_count>10</comment_count>
      <attachid>477887</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-02 09:56:17 -0800</bug_when>
    <thetext>Created attachment 477887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168926</commentid>
    <comment_count>11</comment_count>
      <attachid>477889</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-02 12:56:46 -0800</bug_when>
    <thetext>Created attachment 477889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2169023</commentid>
    <comment_count>12</comment_count>
      <attachid>477896</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-03 08:46:20 -0800</bug_when>
    <thetext>Created attachment 477896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2169050</commentid>
    <comment_count>13</comment_count>
      <attachid>477897</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-03 13:52:42 -0800</bug_when>
    <thetext>Created attachment 477897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2169052</commentid>
    <comment_count>14</comment_count>
      <attachid>477898</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-03 13:53:48 -0800</bug_when>
    <thetext>Created attachment 477898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2169152</commentid>
    <comment_count>15</comment_count>
      <attachid>477900</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-04 15:10:29 -0800</bug_when>
    <thetext>Created attachment 477900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170006</commentid>
    <comment_count>16</comment_count>
      <attachid>477927</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-07 08:47:49 -0800</bug_when>
    <thetext>Created attachment 477927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170347</commentid>
    <comment_count>17</comment_count>
      <attachid>477937</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-08 10:41:47 -0800</bug_when>
    <thetext>Created attachment 477937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170442</commentid>
    <comment_count>18</comment_count>
      <attachid>477943</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-01-08 15:24:09 -0800</bug_when>
    <thetext>Created attachment 477943
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170512</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-01-08 19:03:54 -0800</bug_when>
    <thetext>Committed 305325@main (8161ef47a831): &lt;https://commits.webkit.org/305325@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 477943.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477194</attachid>
            <date>2025-10-24 15:18:28 -0700</date>
            <delta_ts>2025-10-24 19:02:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251024151827.patch</filename>
            <type>text/plain</type>
            <size>3860</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0YzI0YWVhZTM4OTEzZDVmOTQ1YzA2ZWU5NzNlMjMxNmMzYjJjOTA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjQgT2N0IDIwMjUgMTQ6MjI6MTAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDQ3IDxyZGFyOi8vMTYzMjkwNzc5PgoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpGaXggYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gd2hlbiBjb2xsZWN0
aW5nIGdseXBoIG92ZXJmbG93IGZvciB0ZXh0IGNvbnRlbnQuCgoqIExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9nbHlwaC12ZXJ0aWNhbC1vdmVyZmxvdy1pbmNvcnJlY3QtcmVwYWludC1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZ2x5cGgtdmVydGljYWwt
b3ZlcmZsb3ctaW5jb3JyZWN0LXJlcGFpbnQuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKLS0tCiAuLi4vZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwICAgfCAgNCArLS0KIC4uLmwtb3ZlcmZsb3ctaW5jb3JyZWN0
LXJlcGFpbnQtZXhwZWN0ZWQuaHRtbCB8ICAwCiAuLi5oLXZlcnRpY2FsLW92ZXJmbG93LWluY29y
cmVjdC1yZXBhaW50Lmh0bWwgfCAzNSArKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n
ZWQsIDM2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2dseXBoLXZlcnRpY2FsLW92ZXJmbG93LWluY29ycmVj
dC1yZXBhaW50LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvZ2x5cGgtdmVydGljYWwtb3ZlcmZsb3ctaW5jb3JyZWN0LXJlcGFpbnQuaHRt
bAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlz
cGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBhY2I3N2RhMzY5MTguLmRjZThmOGFiMjIyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlz
cGxheUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMTk2LDEwICsxOTYsOCBAQCB2b2lkIElubGluZURp
c3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3QgTGluZTo6UnVu
JiBsaW5lUnVuLAogICAgICAgICBhZGRUZXh0U2hhZG93KCk7CiAKICAgICAgICAgYXV0byBhZGRH
bHlwaE92ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0Qm94LmNhblVz
ZVNpbXBsZUZvbnRDb2RlUGF0aCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gY2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoIG1hcHMgdG8gQ29kZVBhdGg6OlNpbXBsZSAoYW5kIGNvbnRlbnQgd2l0aCBw
b3RlbnRpYWwgZ2x5cGggb3ZlcmZsb3cgd291bGQgc2F5cyBDb2RlUGF0aDo6U2ltcGxlV2l0aEds
eXBoT3ZlcmZsb3cpLgorICAgICAgICAgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoKCkgJiYgaW5saW5lVGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJm
bG93Q29kZVBhdGgoKSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5j
bG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcoY29udGVudCkuc3Vic3RyaW5nKHRl
eHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgpLCBzdHlsZSwgaW5saW5lVGV4dEJveC5zaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVH
bHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlw
aE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUYWtlIGZhbGxi
YWNrIGZvbnRzIGludG8gYWNjb3VudC4KICAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0g
c3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9nbHlwaC12ZXJ0aWNhbC1vdmVyZmxvdy1pbmNvcnJlY3QtcmVwYWludC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2dseXBoLXZlcnRpY2FsLW92ZXJm
bG93LWluY29ycmVjdC1yZXBhaW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9nbHlwaC12ZXJ0aWNhbC1vdmVyZmxvdy1pbmNvcnJlY3QtcmVwYWludC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2dseXBoLXZlcnRpY2FsLW92ZXJmbG93LWlu
Y29ycmVjdC1yZXBhaW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi40ZWU2ZjlhZWZmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvZ2x5cGgtdmVydGljYWwtb3ZlcmZsb3ctaW5jb3JyZWN0LXJlcGFpbnQuaHRtbApAQCAt
MCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5jb250YWluZXIgeworICBmb250
LWZhbWlseTogWmFwZmlubzsKKyAgZm9udC1zaXplOiA0MHB4OworICBoZWlnaHQ6IDEwcHg7Cisg
IHdoaXRlLXNwYWNlOiBwcmU7Cit9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz1jb250YWluZXI+Cisg
IDxzcGFuIGlkPXJlbW92ZV90aGlzPlBBU1MgaWYgdGhpcyBpcyBub3QgdmlzaWJsZSA8L3NwYW4+
Cis8L2Rpdj4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgaWYgKHRlc3RSdW5uZXIuZG9udEZvcmNlUmVwYWludCkK
KyAgICB0ZXN0UnVubmVyLmRvbnRGb3JjZVJlcGFpbnQoKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisKKyAgcmVt
b3ZlX3RoaXMucmVtb3ZlKCk7CisKKyAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7
CisgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworCisgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0KTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477203</attachid>
            <date>2025-10-27 10:42:26 -0700</date>
            <delta_ts>2025-10-27 13:08:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251027104226.patch</filename>
            <type>text/plain</type>
            <size>2291</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmMmNhNzllN2UxMzc5YjY2YzhlYmUzYTU1YWMwOWVjMjBiYzkyZTk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IE1vbiwgMjcgT2N0IDIwMjUgMTA6NDA6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5
cGhCb3VuZHNGb3JUZXh0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzAxNDQ3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldJUC4gQ29sbGVjdGluZyBFV1Mg
cmVzdWx0LgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3gpOgot
LS0KIC4uLi9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwICAg
ICAgICAgIHwgNiArLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggYWNiNzdkYTM2OTE4Li4xNTk5NWM1
MzA4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTE5NiwxMSArMTk2LDcgQEAgdm9pZCBJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExp
bmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgYWRkVGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1
dG8gYWRkR2x5cGhPdmVyZmxvdyA9IFsmXSB7Ci0gICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJv
eC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSkgewotICAgICAgICAgICAgICAgIC8vIGNhblVz
ZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50
IHdpdGggcG90ZW50aWFsIGdseXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBs
ZVdpdGhHbHlwaE92ZXJmbG93KS4KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRp
bDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcoY29udGVudCkuc3Vic3Ry
aW5nKHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgpLCBzdHlsZSwgaW5saW5lVGV4dEJveC5zaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1w
bGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5n
QXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQo
U3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCks
IHN0eWxlLCBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpO
byk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGFrZSBmYWxsYmFjayBmb250cyBpbnRvIGFjY291
bnQuCiAgICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7CiAgICAgICAgICAgICBhdXRvIHRvcE92ZXJmbG93ID0gc3RkOjptYXgoMC5mLCBj
ZWlsZigtZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5hc2NlbnQpIC0gZm9udE1ldHJpY3MuaW50
QXNjZW50KCkpOwo=
</data>
<flag name="commit-queue"
          id="499649"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477206</attachid>
            <date>2025-10-27 13:05:06 -0700</date>
            <delta_ts>2025-10-28 19:27:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251027130506.patch</filename>
            <type>text/plain</type>
            <size>2796</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2YjY0OWRjMDVmYmVmM2YzNjg5YTk3OWZiMTY0MzY0OGQ2MDhhMWE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IE1vbiwgMjcgT2N0IDIwMjUgMTA6NDA6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5
cGhCb3VuZHNGb3JUZXh0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzAxNDQ3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldJUC4gQ29sbGVjdGluZyBFV1Mg
cmVzdWx0LgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3gpOgot
LS0KIC4uLi9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwICAg
ICB8IDEwICsrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDcgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IGFjYjc3ZGEzNjkxOC4uOTkzZjBl
YmZhODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xOTYsMTUgKzE5NiwxMSBAQCB2b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3Qg
TGluZTo6UnVuJiBsaW5lUnVuLAogICAgICAgICBhZGRUZXh0U2hhZG93KCk7CiAKICAgICAgICAg
YXV0byBhZGRHbHlwaE92ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0
Qm94LmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gY2Fu
VXNlU2ltcGxlRm9udENvZGVQYXRoIG1hcHMgdG8gQ29kZVBhdGg6OlNpbXBsZSAoYW5kIGNvbnRl
bnQgd2l0aCBwb3RlbnRpYWwgZ2x5cGggb3ZlcmZsb3cgd291bGQgc2F5cyBDb2RlUGF0aDo6U2lt
cGxlV2l0aEdseXBoT3ZlcmZsb3cpLgotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IFRleHRV
dGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyhjb250ZW50KS5zdWJz
dHJpbmcodGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCksIHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNo
b3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVz
ZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNp
bXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOworICAgICAgICAgICAgYXV0byBlbmNsb3Np
bmdBc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4
dChTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3Ro
KSwgc3R5bGUsIFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6
Ok5vKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUYWtlIGZhbGxiYWNrIGZvbnRzIGludG8gYWNj
b3VudC4KICAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJp
bWFyeUZvbnQoKTsKLSAgICAgICAgICAgIGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLmYs
IGNlaWxmKC1lbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmFzY2VudCkgLSBmb250TWV0cmljcy5p
bnRBc2NlbnQoKSk7Ci0gICAgICAgICAgICBhdXRvIGJvdHRvbU92ZXJmbG93ID0gc3RkOjptYXgo
MC5mLCBjZWlsZihlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmRlc2NlbnQpIC0gZm9udE1ldHJp
Y3MuaW50RGVzY2VudCgpKTsKKyAgICAgICAgICAgIGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6Om1h
eCgwLCBzdGF0aWNfY2FzdDxpbnQ+KGxyb3VuZGYoLWVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQu
YXNjZW50KSkgLSBmb250TWV0cmljcy5pbnRBc2NlbnQoKSk7CisgICAgICAgICAgICBhdXRvIGJv
dHRvbU92ZXJmbG93ID0gc3RkOjptYXgoMCwgc3RhdGljX2Nhc3Q8aW50Pihscm91bmRmKGVuY2xv
c2luZ0FzY2VudEFuZERlc2NlbnQuZGVzY2VudCkpIC0gZm9udE1ldHJpY3MuaW50RGVzY2VudCgp
KTsKICAgICAgICAgICAgIGlua092ZXJmbG93LmluZmxhdGUodG9wT3ZlcmZsb3csIHsgfSwgYm90
dG9tT3ZlcmZsb3csIHsgfSk7CiAgICAgICAgIH07CiAgICAgICAgIGFkZEdseXBoT3ZlcmZsb3co
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477217</attachid>
            <date>2025-10-28 19:27:24 -0700</date>
            <delta_ts>2025-11-02 06:35:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251028192724.patch</filename>
            <type>text/plain</type>
            <size>2797</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0M2YwZGY2ZmQ3ZmRkMGRiYmQyNjdkMjdkN2JlNWIzYjNiYjk2ZTA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IE1vbiwgMjcgT2N0IDIwMjUgMTA6NDA6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvICBHcmFkZSA4IEVMQSBtYXRoCiBleGFtcGxl
cyBmYWlsIHRvIHJlcGFpbnQgY29udGVudCBwcm9wZXJseQogVGV4dFV0aWw6OmVuY2xvc2luZ0ds
eXBoQm91bmRzRm9yVGV4dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMwMTQ0NwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAuIENvbGxlY3RpbmcgRVdT
IHJlc3VsdC4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToK
LS0tCiAuLi4vaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAg
ICAgfCAxMCArKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA3IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBhY2I3N2RhMzY5MTguLjk5M2Yw
ZWJmYTg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMTk2LDE1ICsxOTYsMTEgQEAgdm9p
ZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0
IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgYWRkVGV4dFNoYWRvdygpOwogCiAgICAgICAg
IGF1dG8gYWRkR2x5cGhPdmVyZmxvdyA9IFsmXSB7Ci0gICAgICAgICAgICBpZiAoaW5saW5lVGV4
dEJveC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSkgewotICAgICAgICAgICAgICAgIC8vIGNh
blVzZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250
ZW50IHdpdGggcG90ZW50aWFsIGdseXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNp
bXBsZVdpdGhHbHlwaE92ZXJmbG93KS4KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQgPSBUZXh0
VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcoY29udGVudCkuc3Vi
c3RyaW5nKHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgpLCBzdHlsZSwgaW5saW5lVGV4dEJveC5z
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRV
c2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1dG8gZW5jbG9z
aW5nQXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRl
eHQoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0
aCksIHN0eWxlLCBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
OjpObyk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGFrZSBmYWxsYmFjayBmb250cyBpbnRvIGFj
Y291bnQuCiAgICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLm1ldHJpY3NPZlBy
aW1hcnlGb250KCk7Ci0gICAgICAgICAgICBhdXRvIHRvcE92ZXJmbG93ID0gc3RkOjptYXgoMC5m
LCBjZWlsZigtZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5hc2NlbnQpIC0gZm9udE1ldHJpY3Mu
aW50QXNjZW50KCkpOwotICAgICAgICAgICAgYXV0byBib3R0b21PdmVyZmxvdyA9IHN0ZDo6bWF4
KDAuZiwgY2VpbGYoZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5kZXNjZW50KSAtIGZvbnRNZXRy
aWNzLmludERlc2NlbnQoKSk7CisgICAgICAgICAgICBhdXRvIHRvcE92ZXJmbG93ID0gc3RkOjpt
YXgoMCwgc3RhdGljX2Nhc3Q8aW50Pihscm91bmRmKC1lbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50
LmFzY2VudCkpIC0gZm9udE1ldHJpY3MuaW50QXNjZW50KCkpOworICAgICAgICAgICAgYXV0byBi
b3R0b21PdmVyZmxvdyA9IHN0ZDo6bWF4KDAsIHN0YXRpY19jYXN0PGludD4obHJvdW5kZihlbmNs
b3NpbmdBc2NlbnRBbmREZXNjZW50LmRlc2NlbnQpKSAtIGZvbnRNZXRyaWNzLmludERlc2NlbnQo
KSk7CiAgICAgICAgICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKHRvcE92ZXJmbG93LCB7IH0sIGJv
dHRvbU92ZXJmbG93LCB7IH0pOwogICAgICAgICB9OwogICAgICAgICBhZGRHbHlwaE92ZXJmbG93
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477255</attachid>
            <date>2025-11-02 06:35:41 -0800</date>
            <delta_ts>2025-12-24 19:59:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251102063540.patch</filename>
            <type>text/plain</type>
            <size>1603</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiYzFhZjAxMThkN2I0OTRiNjkzYjEwOTg0YzZiYjM0YjdhOGNiOTBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFN1biwgMiBOb3YgMjAyNSAwNjozNDozNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDQ3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKLS0tCiAuLi4vaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAgICAgICAgICAgICAg
fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlD
b250ZW50QnVpbGRlci5jcHAKaW5kZXggNTIzMDY2NGUyOWY0Li5jMWZmYjMyODExMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rp
c3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlD
b250ZW50QnVpbGRlci5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIElubGluZURpc3BsYXlD
b250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3QgTGluZTo6UnVuJiBsaW5l
UnVuLAogICAgICAgICBhZGRUZXh0U2hhZG93KCk7CiAKICAgICAgICAgYXV0byBhZGRHbHlwaE92
ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0Qm94LmNhblVzZVNpbXBs
ZUZvbnRDb2RlUGF0aCgpKSB7CisgICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VT
aW1wbGVGb250Q29kZVBhdGgoKSAmJiBzdHlsZS5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCkt
Pm9yaWdpbigpICE9IEZvbnRPcmlnaW46OlJlbW90ZSkgewogICAgICAgICAgICAgICAgIC8vIGNh
blVzZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250
ZW50IHdpdGggcG90ZW50aWFsIGdseXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNp
bXBsZVdpdGhHbHlwaE92ZXJmbG93KS4KICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477842</attachid>
            <date>2025-12-24 19:59:07 -0800</date>
            <delta_ts>2025-12-25 05:40:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251224195906.patch</filename>
            <type>text/plain</type>
            <size>16407</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmMjJkODUxM2I5ZDgxOWZmYjljYmU1Njk2ZWYxOTc1M2ZmNTJiNzA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMjQgRGVjIDIwMjUgMTk6NTc6MzcgLTA4MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDQ3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldJ
UC4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbS5jcHA6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvbnRlbnRBdHRyaWJ1dGVzQW5kSW5saW5lVGV4dEl0
ZW1XaWR0aHMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaDoKKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29uc3QpOgooV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6CiogU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6VGV4dFV0aWw6OndpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmg6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRV
dGlsOjp3aWR0aCk6Ci0tLQogLi4uL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUl0ZW0uY3BwICAgIHwgIDEgKwogLi4uL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW0uaCAgICAgIHwgIDIgKysKIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAgICB8ICA3ICsrKysrKy0KIC4uLi9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAgICB8ICAzICsrKwogLi4uL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCAgICAgIHwgIDMgKysr
CiAuLi4vbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaCAg
fCAgMyArKysKIC4uLi9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwICAgICB8IDEwICsrKy0tLS0tLS0KIC4uLi9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS90ZXh0L1RleHRVdGlsLmNwcCB8ICA4ICsrKystLS0tCiAuLi4vbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oICAgfCAgNCArKy0tCiA5IGZpbGVzIGNo
YW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbS5jcHAKaW5kZXggZmI2NjgyYzM3OWFlLi5lMTA5ZDdiOTNjM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW0uY3BwCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzSW5s
aW5lSXRlbSB7CiAgICAgYm9vbCB3aWR0aEJvb2wgOiAxOwogICAgIGJvb2wgc29mdEh5cGhlbkJv
b2wgOiAxOwogICAgIGJvb2wgaXNXb3JkU2VwYXJhdG9yIDogMTsKKyAgICBHbHlwaE92ZXJmbG93
IGdseXBoT3ZlcmZsb3c7CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9
PSBzaXplb2YoU2FtZVNpemVBc0lubGluZUl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaApp
bmRleCBkMzljNWQ0ZDViOTQuLjhkZDU1N2I2YTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
aApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNvcmUv
Rm9udENhc2NhZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dEJveC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTGF5b3V0VW5pdHMuaD4KICNpbmNsdWRlIDx1bmljb2RlL3ViaWRpLmg+CkBAIC05
Nyw2ICs5OCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faGFzV2lkdGggOiAxIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzVHJhaWxpbmdTb2Z0SHlwaGVuIDogMSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzV29yZFNlcGFyYXRvciA6IDEgeyBmYWxzZSB9OworICAgIEdseXBoT3ZlcmZsb3cg
bV9nbHlwaE92ZXJmbG93OwogfTsKIAogaW5saW5lIElubGluZUl0ZW06OklubGluZUl0ZW0oY29u
c3QgQm94JiBsYXlvdXRCb3gsIFR5cGUgdHlwZSwgVUJpRGlMZXZlbCBiaWRpTGV2ZWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVJdGVtc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCAzYTM4ZjRmMWRlYmYu
LmMzZWE5MTU3NWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwCkBAIC04MDEsNyArODAxLDEyIEBAIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6
OkNvbnRlbnRBdHRyaWJ1dGVzIElubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvCiAgICAgICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmcgPSBpbmxp
bmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncy5maW5kKHBvdGVudGlhbElubGluZUJveFN0YXJ0SW5k
ZXgpOyBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nICE9IGlubGluZUJveEJvdW5kYXJ5VGV4
dFNwYWNpbmdzLmVuZCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFJbmxpbmVUZXh0
U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmctPnZhbHVlOwogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbmxpbmVUZXh0SXRlbS0+c2V0V2lkdGgoVGV4dFV0
aWw6OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgaW5saW5lVGV4dEl0ZW0tPnN0eWxlKCkuZm9udENh
c2NhZGUoKSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRl
eHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywg
c3BhY2luZ1N0YXRlKSArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcpOworICAgICAgICAgICAgICAg
IGF1dG8mIGZvbnRDYXNjYWRlID0gaW5saW5lVGV4dEl0ZW0tPnN0eWxlKCkuZm9udENhc2NhZGUo
KTsKKyAgICAgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgICAg
ICAgICAgICAgZ2x5cGhPdmVyZmxvdy5jb21wdXRlQm91bmRzID0gZm9udENhc2NhZGUucHJpbWFy
eUZvbnQoKS0+b3JpZ2luKCkgPT0gRm9udE9yaWdpbjo6UmVtb3RlOworICAgICAgICAgICAgICAg
IGF1dG8gd2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoKmlubGluZVRleHRJdGVtLCBmb250Q2FzY2Fk
ZSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRleHRVdGls
OjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywgc3BhY2lu
Z1N0YXRlLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0t
PnNldFdpZHRoKHdpZHRoICsgZXh0cmFJbmxpbmVUZXh0U3BhY2luZyk7CisgICAgICAgICAgICAg
ICAgaW5saW5lVGV4dEl0ZW0tPnNldEdseXBoT3ZlcmZsb3coZ2x5cGhPdmVyZmxvdyk7CiAgICAg
ICAgICAgICAgICAgaGFuZGxlVGV4dFNwYWNpbmcoc3BhY2luZ1N0YXRlLCB0cmltbWFibGVUZXh0
U3BhY2luZ3MsICppbmxpbmVUZXh0SXRlbSwgaW5saW5lSXRlbUluZGV4KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRl
eCBlMmE1Y2Y1YjllM2YuLjQ2NjczOTFlM2EyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHAKQEAgLTg0OCw2ICs4NDgsNyBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVUZXh0SXRl
bSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSQogICAgICwgbV9s
b2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0
aCkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQorICAgICwg
bV9nbHlwaE92ZXJmbG93KGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKSkKICAgICAsIG1f
c2hhcGluZ0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFyeSkKICAgICAsIG1fdGV4dFNwYWNpbmdBZGp1
c3RtZW50KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKIHsKQEAgLTg3MCw2ICs4NzEsOCBAQCB2b2lk
IExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwg
SW5saW5lTGF5b3V0VW5pdCBsbwogICAgIEFTU0VSVCghbV9zaGFwaW5nQm91bmRhcnkgfHwgKm1f
c2hhcGluZ0JvdW5kYXJ5ICE9IFNoYXBpbmdCb3VuZGFyeTo6RW5kKTsKIAogICAgIG1fbG9naWNh
bFdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKKyAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBpbmxpbmVU
ZXh0SXRlbS5nbHlwaE92ZXJmbG93KCk7CisgICAgbV9nbHlwaE92ZXJmbG93ID0geyBzdGQ6Om1p
bihtX2dseXBoT3ZlcmZsb3cubGVmdCwgZ2x5cGhPdmVyZmxvdy5sZWZ0KSwgc3RkOjptYXgobV9n
bHlwaE92ZXJmbG93LnJpZ2h0LCBnbHlwaE92ZXJmbG93LnJpZ2h0KSwgc3RkOjptaW4obV9nbHlw
aE92ZXJmbG93LnRvcCwgZ2x5cGhPdmVyZmxvdy50b3ApLCBzdGQ6Om1heChtX2dseXBoT3ZlcmZs
b3cuYm90dG9tLCBnbHlwaE92ZXJmbG93LmJvdHRvbSkgfTsKICAgICBhdXRvIHdoaXRlc3BhY2VU
eXBlID0gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSk7CiAKICAgICBpZiAo
IXdoaXRlc3BhY2VUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKaW5kZXggYjhmNTdlMGY2
NGMxLi4wZmUyODRhOTc0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKQEAgLTE0Niw2ICsx
NDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNw
YWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSA/IG1fdHJhaWxp
bmdXaGl0ZXNwYWNlLT53aWR0aCA6IDAuZjsgfQogICAgICAgICBib29sIGlzV2hpdGVzcGFjZU9u
bHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5n
V2hpdGVzcGFjZS0+bGVuZ3RoID09IG1fdGV4dENvbnRlbnQtPmxlbmd0aDsgfQogCisgICAgICAg
IEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fZ2x5cGhPdmVy
ZmxvdzsgfQorCiAgICAgICAgIGlubGluZSBUZXh0RGlyZWN0aW9uIGlubGluZURpcmVjdGlvbigp
IGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxldHRlclNwYWNpbmcoKSBjb25zdDsK
ICAgICAgICAgYm9vbCBoYXNUZXh0Q29tYmluZSgpIGNvbnN0OwpAQCAtMjEwLDYgKzIxMiw3IEBA
IHB1YmxpYzoKICAgICAgICAgc3RkOjpvcHRpb25hbDxUcmFpbGluZ1doaXRlc3BhY2U+IG1fdHJh
aWxpbmdXaGl0ZXNwYWNlIHsgfTsKICAgICAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fbGFz
dE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgeyB9OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPFRl
eHQ+IG1fdGV4dENvbnRlbnQ7CisgICAgICAgIEdseXBoT3ZlcmZsb3cgbV9nbHlwaE92ZXJmbG93
OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gbV9zaGFwaW5n
Qm91bmRhcnk7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV90ZXh0U3BhY2luZ0FkanVzdG1l
bnQgeyAwIH07CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IGQw
MTdjNTg5YjViYS4uNjNiYTg5MTI5YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVt
LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNGdWxseVRyaW1tYWJsZSgp
IGNvbnN0OwogICAgIGJvb2wgaGFzVHJhaWxpbmdTb2Z0SHlwaGVuKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNUcmFpbGluZ1NvZnRIeXBoZW47IH0KICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91
dFVuaXQ+IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9oYXNXaWR0aCA/IHN0ZDo6bWFrZV9vcHRp
b25hbChtX3dpZHRoKSA6IHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OyB9Cisg
ICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9nbHlwaE92
ZXJmbG93OyB9CiAKICAgICBjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KCkgY29u
c3QgeyByZXR1cm4gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KCkpOyB9CiAKQEAg
LTY5LDYgKzcwLDggQEAgcHJpdmF0ZToKIAogICAgIElubGluZVRleHRJdGVtIHNwbGl0KHNpemVf
dCBsZWZ0U2lkZUxlbmd0aCk7CiAKKyAgICB2b2lkIHNldEdseXBoT3ZlcmZsb3coR2x5cGhPdmVy
ZmxvdyBnbHlwaE92ZXJmbG93KSB7IG1fZ2x5cGhPdmVyZmxvdyA9IGdseXBoT3ZlcmZsb3c7IH0K
KwogICAgIElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFy
dCwgdW5zaWduZWQgbGVuZ3RoLCBVQmlEaUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhl
biwgYm9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4g
d2lkdGgsIFRleHRJdGVtVHlwZSk7CiAgICAgZXhwbGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3Qg
SW5saW5lVGV4dEJveCYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCAzZTZlNzRjZTZj
NjcuLmY1ODZmMzAyN2Y2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMTk4LDE1ICsxOTgs
MTEgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5
Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgYWRkVGV4dFNoYWRvdygpOwog
CiAgICAgICAgIGF1dG8gYWRkR2x5cGhPdmVyZmxvdyA9IFsmXSB7Ci0gICAgICAgICAgICBpZiAo
aW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSkgewotICAgICAgICAgICAg
ICAgIC8vIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUg
KGFuZCBjb250ZW50IHdpdGggcG90ZW50aWFsIGdseXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29k
ZVBhdGg6OlNpbXBsZVdpdGhHbHlwaE92ZXJmbG93KS4KLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudEFuZERlc2Nl
bnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcoY29u
dGVudCkuc3Vic3RyaW5nKHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgpLCBzdHlsZSwgaW5saW5l
VGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGls
OjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpT
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1
dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IElubGluZUxldmVsQm94OjpBc2NlbnRBbmRE
ZXNjZW50IHsgbGluZVJ1bi5nbHlwaE92ZXJmbG93KCkudG9wLCBsaW5lUnVuLmdseXBoT3ZlcmZs
b3coKS5ib3R0b20gfTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUYWtlIGZhbGxiYWNrIGZvbnRz
IGludG8gYWNjb3VudC4KICAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0
cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICAgICAgICAgIGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6
Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KC1lbmNsb3NpbmdBc2Nl
bnRBbmREZXNjZW50LmFzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRp
bHM6OmFzY2VudChmb250TWV0cmljcywgRm9udEJhc2VsaW5lOjpBbHBoYWJldGljLCBpbmxpbmVU
ZXh0Qm94KSk7Ci0gICAgICAgICAgICBhdXRvIGJvdHRvbU92ZXJmbG93ID0gc3RkOjptYXgoMC5m
LCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0ludChlbmNsb3NpbmdBc2NlbnRBbmREZXNj
ZW50LmRlc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpkZXNj
ZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGluZVRleHRCb3gp
KTsKKyAgICAgICAgICAgIGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLmYsIElubGluZUZv
cm1hdHRpbmdVdGlsczo6c25hcFRvSW50KGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQuYXNjZW50
LCBpbmxpbmVUZXh0Qm94LCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OlNuYXBEaXJlY3Rpb246OkNl
aWwpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjphc2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNl
bGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4dEJveCkpOworICAgICAgICAgICAgYXV0byBib3R0
b21PdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9J
bnQoZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5kZXNjZW50LCBpbmxpbmVUZXh0Qm94LCBJbmxp
bmVGb3JtYXR0aW5nVXRpbHM6OlNuYXBEaXJlY3Rpb246OkNlaWwpIC0gSW5saW5lRm9ybWF0dGlu
Z1V0aWxzOjpkZXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlu
bGluZVRleHRCb3gpKTsKICAgICAgICAgICAgIGlua092ZXJmbG93LmluZmxhdGUodG9wT3ZlcmZs
b3csIHsgfSwgYm90dG9tT3ZlcmZsb3csIHsgfSk7CiAgICAgICAgIH07CiAgICAgICAgIGFkZEds
eXBoT3ZlcmZsb3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAKaW5kZXggNjU0
MzUxMmM1NWFjLi41ODdkMmQ0MWJhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBzcGFj
ZVdpZHRoKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgYm9vbCBjCiAgICAgcmV0dXJu
IGZvbnRDYXNjYWRlLndpZHRoT2ZTcGFjZVN0cmluZygpOwogfQogCi1JbmxpbmVMYXlvdXRVbml0
IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJ
bmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNl
TWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGlt
aXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUpCitJbmxpbmVM
YXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0
Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2ln
bmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1
cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUs
IEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAgICAgaWYgKGZyb20gPT0gdG8pCiAg
ICAgICAgIHJldHVybiAwOwpAQCAtODksNyArODksNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRV
dGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250
QwogICAgICAgICAgICAgcnVuLnNldFRhYlNpemUodHJ1ZSwgU3R5bGU6OnRvUGxhdGZvcm0oc3R5
bGUudGFiU2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBtb3ZpbmcgdGhpcyB0
byBUZXh0UnVuIGN0b3IKICAgICAgICAgcnVuLnNldFRleHRTcGFjaW5nU3RhdGUoc3BhY2luZ1N0
YXRlKTsKLSAgICAgICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChydW4pOworICAgICAgICB3
aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1biwgeyB9LCBnbHlwaE92ZXJmbG93KTsKICAgICB9
CiAKICAgICBpZiAoZXh0ZW5kZWRNZWFzdXJpbmcpCkBAIC0xMDUsNyArMTA1LDcgQEAgSW5saW5l
TGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRl
eHRJdGVtLCBjb25zdCBGb24KICAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJ
dGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0u
ZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQgVGV4dFV0
aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9u
dENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5l
TGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1
cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRp
b24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlKQorSW5saW5lTGF5b3V0
VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVt
LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0
ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmlu
Z09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUsIEds
eXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoZnJvbSA+
PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0byA8PSBpbmxp
bmVUZXh0SXRlbS5lbmQoKSk7CkBAIC0xMjMsNyArMTIzLDcgQEAgSW5saW5lTGF5b3V0VW5pdCBU
ZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25z
dCBGb24KICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heCgwLmYsIHdpZHRoKTsKICAgICAgICAg
fQogICAgIH0KLSAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgp
LCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBzcGFjaW5nU3RhdGUpOworICAgIHJldHVy
biB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9t
LCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdP
cHRpbWl6YXRpb24sIHNwYWNpbmdTdGF0ZSwgZ2x5cGhPdmVyZmxvdyk7CiB9CiAKIElubGluZUxh
eW91dFVuaXQgVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGluZVRl
eHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgc2l6
ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQv
VGV4dFV0aWwuaAppbmRleCA2ZjU2NTg0NmIxZGMuLjYzNzQzYjlhNjZiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0
VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNTMsOCArNTMsOCBAQCBjbGFzcyBUZXh0VXRpbCB7CiBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0
IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCBJbmxpbmVM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7Ci0gICAgc3RhdGljIElubGluZUxheW91dFVu
aXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVm
dCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxp
bmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFj
aW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9KTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5p
dCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQs
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2lu
Z1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7CisgICAgc3RhdGljIElubGluZUxheW91dFVuaXQg
d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5n
U3RhdGUgc3BhY2luZ1N0YXRlID0geyB9LCBHbHlwaE92ZXJmbG93KiA9IG51bGxwdHIpOworICAg
IHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBjb25z
dCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0
aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZ
ZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9LCBHbHlwaE92
ZXJmbG93KiA9IG51bGxwdHIpOwogCiAgICAgc3RhdGljIElubGluZUxheW91dFVuaXQgdHJhaWxp
bmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRDYXNjYWRl
Jiwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3NpdGlvbik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477845</attachid>
            <date>2025-12-25 05:40:29 -0800</date>
            <delta_ts>2026-01-02 09:56:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20251225054028.patch</filename>
            <type>text/plain</type>
            <size>16830</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0MzdjMDc0Zjg0MWVmNDRjMjk4YjQxNzdiMjU0MWViYmQ1NWUxMjEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMjQgRGVjIDIwMjUgMTk6NTc6MzcgLTA4MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDQ3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldJ
UC4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbS5jcHA6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvbnRlbnRBdHRyaWJ1dGVzQW5kSW5saW5lVGV4dEl0
ZW1XaWR0aHMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaDoKKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29uc3QpOgooV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6CiogU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6VGV4dFV0aWw6OndpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmg6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRV
dGlsOjp3aWR0aCk6Ci0tLQogLi4uL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUl0ZW0uY3BwICAgfCAgMSArCiAuLi4vbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbS5oICAgICB8ICAyICsrCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwICB8IDExICsrKysrKysrKystCiAuLi4vbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgICB8ICAzICsrKwogLi4uL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCAgICAgfCAgMyArKysK
IC4uLi9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oIHwg
IDMgKysrCiAuLi4vaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNw
cCAgICB8IDEwICsrKystLS0tLS0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQv
VGV4dFV0aWwuY3BwICAgICAgIHwgIDggKysrKy0tLS0KIC4uLi9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmggIHwgIDQgKystLQogOSBmaWxlcyBjaGFuZ2Vk
LCAzMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW0uY3BwCmluZGV4IGZiNjY4MmMzNzlhZS4uZTEwOWQ3YjkzYzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVJdGVtLmNwcApAQCAtNDMsNiArNDMsNyBAQCBzdHJ1Y3QgU2FtZVNpemVBc0lubGluZUl0
ZW0gewogICAgIGJvb2wgd2lkdGhCb29sIDogMTsKICAgICBib29sIHNvZnRIeXBoZW5Cb29sIDog
MTsKICAgICBib29sIGlzV29yZFNlcGFyYXRvciA6IDE7CisgICAgR2x5cGhPdmVyZmxvdyBnbHlw
aE92ZXJmbG93OwogfTsKIAogc3RhdGljX2Fzc2VydChzaXplb2YoSW5saW5lSXRlbSkgPT0gc2l6
ZW9mKFNhbWVTaXplQXNJbmxpbmVJdGVtKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKaW5kZXgg
ZDM5YzVkNGQ1Yjk0Li44ZGQ1NTdiNmE5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRD
YXNjYWRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRCb3guaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0xheW91dFVuaXRzLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91YmlkaS5oPgpAQCAtOTcsNiAr
OTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1dpZHRoIDogMSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbiA6IDEgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pc1dvcmRTZXBhcmF0b3IgOiAxIHsgZmFsc2UgfTsKKyAgICBHbHlwaE92ZXJmbG93IG1fZ2x5
cGhPdmVyZmxvdzsKIH07CiAKIGlubGluZSBJbmxpbmVJdGVtOjpJbmxpbmVJdGVtKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBUeXBlIHR5cGUsIFVCaURpTGV2ZWwgYmlkaUxldmVsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbXNCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKaW5kZXggM2EzOGY0ZjFkZWJmLi41YjUw
NmEzMWU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcApA
QCAtODAxLDcgKzgwMSwxNiBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250
ZW50QXR0cmlidXRlcyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogICAgICAgICAgICAg
ICAgICAgICBpZiAoYXV0byBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nID0gaW5saW5lQm94
Qm91bmRhcnlUZXh0U3BhY2luZ3MuZmluZChwb3RlbnRpYWxJbmxpbmVCb3hTdGFydEluZGV4KTsg
aW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZyAhPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFj
aW5ncy5lbmQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhSW5saW5lVGV4dFNwYWNp
bmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nLT52YWx1ZTsKICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKFRleHRVdGlsOjp3
aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGlubGluZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRl
KCksIHN0YXJ0LCBzdGFydCArIGlubGluZVRleHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRp
bDo6VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNp
bmdTdGF0ZSkgKyBleHRyYUlubGluZVRleHRTcGFjaW5nKTsKKyAgICAgICAgICAgICAgICBhdXRv
JiBmb250Q2FzY2FkZSA9IGlubGluZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCk7Cisg
ICAgICAgICAgICAgICAgYXV0byB3aWR0aCA9IElubGluZUxheW91dFVuaXQgeyB9OworICAgICAg
ICAgICAgICAgIGlmICghaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKS5jYW5Vc2VTaW1w
bGVGb250Q29kZVBhdGgoKSB8fCBmb250Q2FzY2FkZS5wcmltYXJ5Rm9udCgpLT5vcmlnaW4oKSA9
PSBGb250T3JpZ2luOjpSZW1vdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxv
dyBnbHlwaE92ZXJmbG93OworICAgICAgICAgICAgICAgICAgICBnbHlwaE92ZXJmbG93LmNvbXB1
dGVCb3VuZHMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IFRleHRVdGlsOjp3
aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwgc3RhcnQgKyBpbmxpbmVU
ZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5nV2hpdGVzcGFjZU1l
YXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUsICZnbHlwaE92ZXJmbG93KTsK
KyAgICAgICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldEdseXBoT3ZlcmZsb3coZ2x5
cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHdpZHRoID0gVGV4dFV0aWw6OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgZm9udENhc2NhZGUsIHN0
YXJ0LCBzdGFydCArIGlubGluZVRleHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRpbDo6VXNl
VHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNpbmdTdGF0
ZSk7CisgICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKHdpZHRoICsgZXh0
cmFJbmxpbmVUZXh0U3BhY2luZyk7CiAgICAgICAgICAgICAgICAgaGFuZGxlVGV4dFNwYWNpbmco
c3BhY2luZ1N0YXRlLCB0cmltbWFibGVUZXh0U3BhY2luZ3MsICppbmxpbmVUZXh0SXRlbSwgaW5s
aW5lSXRlbUluZGV4KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBlMmE1Y2Y1YjllM2YuLjQ2NjczOTFlM2EyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTg0OCw2ICs4NDgsNyBAQCBMaW5lOjpS
dW46OlJ1bihjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgSQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAs
IG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRl
eHRJdGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9nbHlwaE92ZXJmbG93KGlubGluZVRleHRJdGVt
LmdseXBoT3ZlcmZsb3coKSkKICAgICAsIG1fc2hhcGluZ0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFy
eSkKICAgICAsIG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50KHRleHRTcGFjaW5nQWRqdXN0bWVudCkK
IHsKQEAgLTg3MCw2ICs4NzEsOCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGlu
ZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogICAgIEFTU0VS
VCghbV9zaGFwaW5nQm91bmRhcnkgfHwgKm1fc2hhcGluZ0JvdW5kYXJ5ICE9IFNoYXBpbmdCb3Vu
ZGFyeTo6RW5kKTsKIAogICAgIG1fbG9naWNhbFdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKKyAgICBh
dXRvIGdseXBoT3ZlcmZsb3cgPSBpbmxpbmVUZXh0SXRlbS5nbHlwaE92ZXJmbG93KCk7CisgICAg
bV9nbHlwaE92ZXJmbG93ID0geyBzdGQ6Om1pbihtX2dseXBoT3ZlcmZsb3cubGVmdCwgZ2x5cGhP
dmVyZmxvdy5sZWZ0KSwgc3RkOjptYXgobV9nbHlwaE92ZXJmbG93LnJpZ2h0LCBnbHlwaE92ZXJm
bG93LnJpZ2h0KSwgc3RkOjptaW4obV9nbHlwaE92ZXJmbG93LnRvcCwgZ2x5cGhPdmVyZmxvdy50
b3ApLCBzdGQ6Om1heChtX2dseXBoT3ZlcmZsb3cuYm90dG9tLCBnbHlwaE92ZXJmbG93LmJvdHRv
bSkgfTsKICAgICBhdXRvIHdoaXRlc3BhY2VUeXBlID0gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShp
bmxpbmVUZXh0SXRlbSk7CiAKICAgICBpZiAoIXdoaXRlc3BhY2VUeXBlKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmgKaW5kZXggYjhmNTdlMGY2NGMxLi4wZmUyODRhOTc0OTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmgKQEAgLTE0Niw2ICsxNDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIElubGlu
ZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3Ry
YWlsaW5nV2hpdGVzcGFjZSA/IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCA6IDAuZjsgfQog
ICAgICAgICBib29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGlu
Z1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoID09IG1fdGV4dENv
bnRlbnQtPmxlbmd0aDsgfQogCisgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdygp
IGNvbnN0IHsgcmV0dXJuIG1fZ2x5cGhPdmVyZmxvdzsgfQorCiAgICAgICAgIGlubGluZSBUZXh0
RGlyZWN0aW9uIGlubGluZURpcmVjdGlvbigpIGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRV
bml0IGxldHRlclNwYWNpbmcoKSBjb25zdDsKICAgICAgICAgYm9vbCBoYXNUZXh0Q29tYmluZSgp
IGNvbnN0OwpAQCAtMjEwLDYgKzIxMiw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RkOjpvcHRpb25h
bDxUcmFpbGluZ1doaXRlc3BhY2U+IG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKICAgICAgICAg
c3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgeyB9
OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPFRleHQ+IG1fdGV4dENvbnRlbnQ7CisgICAgICAgIEds
eXBoT3ZlcmZsb3cgbV9nbHlwaE92ZXJmbG93OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPExpbmU6
OlNoYXBpbmdCb3VuZGFyeT4gbV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQgeyAwIH07CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRl
eHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IGQwMTdjNTg5YjViYS4uNjNiYTg5MTI5YmI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNGdWxseVRyaW1tYWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaGFzVHJhaWxpbmdT
b2Z0SHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNUcmFpbGluZ1NvZnRIeXBoZW47IH0KICAg
ICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNXaWR0aCA/IHN0ZDo6bWFrZV9vcHRpb25hbChtX3dpZHRoKSA6IHN0ZDo6b3B0aW9uYWw8
SW5saW5lTGF5b3V0VW5pdD4geyB9OyB9CisgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gbV9nbHlwaE92ZXJmbG93OyB9CiAKICAgICBjb25zdCBJbmxpbmVU
ZXh0Qm94JiBpbmxpbmVUZXh0Qm94KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4obGF5b3V0Qm94KCkpOyB9CiAKQEAgLTY5LDYgKzcwLDggQEAgcHJpdmF0ZToKIAogICAg
IElubGluZVRleHRJdGVtIHNwbGl0KHNpemVfdCBsZWZ0U2lkZUxlbmd0aCk7CiAKKyAgICB2b2lk
IHNldEdseXBoT3ZlcmZsb3coR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93KSB7IG1fZ2x5cGhP
dmVyZmxvdyA9IGdseXBoT3ZlcmZsb3c7IH0KKwogICAgIElubGluZVRleHRJdGVtKGNvbnN0IElu
bGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBVQmlEaUxldmVs
LCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwgYm9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6
b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSk7CiAgICAgZXhw
bGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYpOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3Bs
YXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmNwcAppbmRleCAzZTZlNzRjZTZjNjcuLmIwNzNmNzM4NTJhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmNwcApAQCAtMTk4LDE1ICsxOTgsMTMgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwK
ICAgICAgICAgYWRkVGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1dG8gYWRkR2x5cGhPdmVyZmxv
dyA9IFsmXSB7Ci0gICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGVGb250
Q29kZVBhdGgoKSkgewotICAgICAgICAgICAgICAgIC8vIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0
aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50IHdpdGggcG90ZW50aWFsIGds
eXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBsZVdpdGhHbHlwaE92ZXJmbG93
KS4KKyAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IElubGluZUxl
dmVsQm94OjpBc2NlbnRBbmREZXNjZW50IHsgbGluZVJ1bi5nbHlwaE92ZXJmbG93KCkudG9wLCBs
aW5lUnVuLmdseXBoT3ZlcmZsb3coKS5ib3R0b20gfTsKKyAgICAgICAgICAgIGlmICghZW5jbG9z
aW5nQXNjZW50QW5kRGVzY2VudC5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQg
PSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcoY29udGVu
dCkuc3Vic3RyaW5nKHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgpLCBzdHlsZSwgaW5saW5lVGV4
dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpT
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKICAgICAgICAgICAgIC8vIEZJ
WE1FOiBUYWtlIGZhbGxiYWNrIGZvbnRzIGludG8gYWNjb3VudC4KICAgICAgICAgICAgIGF1dG8m
IGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICAgICAgICAg
IGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6
c25hcFRvSW50KC1lbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmFzY2VudCwgaW5saW5lVGV4dEJv
eCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OmFzY2VudChmb250TWV0cmljcywgRm9udEJhc2Vs
aW5lOjpBbHBoYWJldGljLCBpbmxpbmVUZXh0Qm94KSk7Ci0gICAgICAgICAgICBhdXRvIGJvdHRv
bU92ZXJmbG93ID0gc3RkOjptYXgoMC5mLCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0lu
dChlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmRlc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5s
aW5lRm9ybWF0dGluZ1V0aWxzOjpkZXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFs
cGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKKyAgICAgICAgICAgIGF1dG8gdG9wT3ZlcmZsb3cg
PSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KGVuY2xvc2lu
Z0FzY2VudEFuZERlc2NlbnQuYXNjZW50LCBpbmxpbmVUZXh0Qm94LCBJbmxpbmVGb3JtYXR0aW5n
VXRpbHM6OlNuYXBEaXJlY3Rpb246OkNlaWwpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjphc2Nl
bnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4dEJveCkp
OworICAgICAgICAgICAgYXV0byBib3R0b21PdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5l
Rm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5kZXNj
ZW50LCBpbmxpbmVUZXh0Qm94LCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OlNuYXBEaXJlY3Rpb246
OkNlaWwpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpkZXNjZW50KGZvbnRNZXRyaWNzLCBGb250
QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKICAgICAgICAgICAgIGlua092
ZXJmbG93LmluZmxhdGUodG9wT3ZlcmZsb3csIHsgfSwgYm90dG9tT3ZlcmZsb3csIHsgfSk7CiAg
ICAgICAgIH07CiAgICAgICAgIGFkZEdseXBoT3ZlcmZsb3coKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4
dC9UZXh0VXRpbC5jcHAKaW5kZXggNjU0MzUxMmM1NWFjLi41ODdkMmQ0MWJhNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQv
VGV4dFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxp
bmUgSW5saW5lTGF5b3V0VW5pdCBzcGFjZVdpZHRoKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2Fz
Y2FkZSwgYm9vbCBjCiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlLndpZHRoT2ZTcGFjZVN0cmluZygp
OwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVm
dCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0
ZSBzcGFjaW5nU3RhdGUpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2Nh
ZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNw
YWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7
CiAgICAgaWYgKGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwpAQCAtODksNyArODksNyBA
QCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBp
bmxpbmVUZXh0Qm94LCBjb25zdCBGb250QwogICAgICAgICAgICAgcnVuLnNldFRhYlNpemUodHJ1
ZSwgU3R5bGU6OnRvUGxhdGZvcm0oc3R5bGUudGFiU2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1F
OiBjb25zaWRlciBtb3ZpbmcgdGhpcyB0byBUZXh0UnVuIGN0b3IKICAgICAgICAgcnVuLnNldFRl
eHRTcGFjaW5nU3RhdGUoc3BhY2luZ1N0YXRlKTsKLSAgICAgICAgd2lkdGggPSBmb250Q2FzY2Fk
ZS53aWR0aChydW4pOworICAgICAgICB3aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1biwgeyB9
LCBnbHlwaE92ZXJmbG93KTsKICAgICB9CiAKICAgICBpZiAoZXh0ZW5kZWRNZWFzdXJpbmcpCkBA
IC0xMDUsNyArMTA1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3Qg
SW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICByZXR1cm4gVGV4
dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0u
c3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0uZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiB9CiAK
LUlubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBp
bmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRl
c3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3Bh
Y2luZ1N0YXRlKQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5l
VGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUs
IHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dp
Y2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRy
YWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNp
bmdTdGF0ZSBzcGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAg
ICAgUkVMRUFTRV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBS
RUxFQVNFX0FTU0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7CkBAIC0xMjMsNyArMTIz
LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0
ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1h
eCgwLmYsIHdpZHRoKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gd2lkdGgoaW5saW5l
VGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRM
b2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBz
cGFjaW5nU3RhdGUpOworICAgIHJldHVybiB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0
Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFp
bGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIHNwYWNpbmdTdGF0ZSwgZ2x5cGhP
dmVyZmxvdyk7CiB9CiAKIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVz
cGFjZVdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3Np
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAppbmRleCA2ZjU2NTg0NmIxZGMuLjYz
NzQzYjlhNjZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNTMsOCArNTMs
OCBAQCBjbGFzcyBUZXh0VXRpbCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogICAg
IHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29u
c3QgRm9udENhc2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7Ci0g
ICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBj
b25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlv
dXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9u
OjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9KTsKLSAg
ICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29u
c3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09w
dGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6
WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7CisgICAg
c3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25z
dCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0
aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZ
ZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9LCBHbHlwaE92
ZXJmbG93KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNv
bnN0IElubGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxp
bmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNl
TWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3Bh
Y2luZ1N0YXRlID0geyB9LCBHbHlwaE92ZXJmbG93KiA9IG51bGxwdHIpOwogCiAgICAgc3RhdGlj
IElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4
dEJveCYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBl
bmRQb3NpdGlvbik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477887</attachid>
            <date>2026-01-02 09:56:17 -0800</date>
            <delta_ts>2026-01-02 12:56:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260102095616.patch</filename>
            <type>text/plain</type>
            <size>18813</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5OWY2Y2IzZTg5ZjZiNTg1ZTcwZjg4ZWFlOWNlYTU1ZWJhZmU1YWFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwOTo1NTowNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgPHJkYXI6Ly8xNjMyOTA3Nzk+CgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbS5jcHA6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvbnRlbnRBdHRyaWJ1dGVzQW5k
SW5saW5lVGV4dEl0ZW1XaWR0aHMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpS
dW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6R2x5cGhPdmVyZmxvdzo6aXNFbXB0eSBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0
ZW0uaDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNw
cDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmg6CihXZWJDb3Jl
OjpMYXlvdXQ6OlRleHRVdGlsOjp3aWR0aCk6Ci0tLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbS5jcHAgIHwgIDIgKysKIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW0uaCAgICB8ICAyICsrCiAuLi4vaW5saW5lL0lubGluZUl0ZW1zQnVpbGRl
ci5jcHAgICAgICAgICAgICAgfCAzMiArKysrKysrKysrKystLS0tLS0tCiAuLi4vZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAgfCAgOCArKysrKwogLi4uL2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oICAgIHwgIDkgKysrKysrCiAuLi4vaW5saW5l
L0lubGluZVRleHRJdGVtLmggICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysKIC4uLi9kaXNw
bGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgICB8IDEzICsrLS0tLS0tCiAuLi4v
aW5saW5lL3RleHQvVGV4dFV0aWwuY3BwICAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQogLi4u
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oIHwgIDQgKy0tCiA5IGZp
bGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbS5jcHAKaW5kZXggZmI2NjgyYzM3OWFlLi41ODdjZmI5ZDlmZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwCkBAIC00Myw2ICs0Myw4IEBAIHN0cnVjdCBTYW1lU2l6
ZUFzSW5saW5lSXRlbSB7CiAgICAgYm9vbCB3aWR0aEJvb2wgOiAxOwogICAgIGJvb2wgc29mdEh5
cGhlbkJvb2wgOiAxOwogICAgIGJvb2wgaXNXb3JkU2VwYXJhdG9yIDogMTsKKyAgICB1aW50OF90
IGdseXBoVG9wT3ZlcmZsb3cgOiA1OworICAgIHVpbnQ4X3QgZ2x5cGhCb3R0b21PdmVyZmxvdyA6
IDM7CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoU2Ft
ZVNpemVBc0lubGluZUl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAppbmRleCBkMzljNWQ0
ZDViOTQuLmM5ZGMwN2I5ZTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaApAQCAtOTcsNiAr
OTcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1dpZHRoIDogMSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbiA6IDEgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pc1dvcmRTZXBhcmF0b3IgOiAxIHsgZmFsc2UgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhUb3BP
dmVyZmxvdyA6IDUgeyAwIH07CisgICAgdWludDhfdCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgOiAz
IHsgMCB9OwogfTsKIAogaW5saW5lIElubGluZUl0ZW06OklubGluZUl0ZW0oY29uc3QgQm94JiBs
YXlvdXRCb3gsIFR5cGUgdHlwZSwgVUJpRGlMZXZlbCBiaWRpTGV2ZWwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVt
c0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCA3N2Q4MmMxOTg3MTkuLjYzMmYzMDc4
ZDI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCkBAIC03
OTMsMTggKzc5MywyOCBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250ZW50
QXR0cmlidXRlcyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogCiAgICAgICAgIGlmIChh
dXRvKiBpbmxpbmVUZXh0SXRlbSA9IGR5bmFtaWNEb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5s
aW5lSXRlbSkpIHsKICAgICAgICAgICAgIGF1dG8gbmVlZHNNZWFzdXJpbmcgPSBpbmxpbmVUZXh0
SXRlbS0+bGVuZ3RoKCkgJiYgIWlubGluZVRleHRJdGVtLT5pc1plcm9XaWR0aFNwYWNlU2VwYXJh
dG9yKCkgJiYgY2FuQ2FjaGVNZWFzdXJlZFdpZHRoT25JbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0
SXRlbS0+aW5saW5lVGV4dEJveCgpLCBpbmxpbmVUZXh0SXRlbS0+aXNXaGl0ZXNwYWNlKCkpOwot
ICAgICAgICAgICAgaWYgKG5lZWRzTWVhc3VyaW5nKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBz
dGFydCA9IGlubGluZVRleHRJdGVtLT5zdGFydCgpOwotICAgICAgICAgICAgICAgIGlmIChpbmxp
bmVJdGVtSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQm94IGJvdWRhcnkgdGV4dCBz
cGFjaW5nIGlzIHBvdGVudGlhbGx5IHJlZ2lzdGVyZWQgZm9yIGlubGluZSBib3ggc3RhcnQgaXRl
bXMgd2hpY2ggYXBwZWFyIGxvZ2ljYWxseSBiZWZvcmUgYW4gaW5saW5lIHRleHQgaXRlbQotICAg
ICAgICAgICAgICAgICAgICBhdXRvIHBvdGVudGlhbElubGluZUJveFN0YXJ0SW5kZXggPSBpbmxp
bmVJdGVtSW5kZXggLSAxOwotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBpbmxpbmVCb3hC
b3VuZGFyeVRleHRTcGFjaW5nID0gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MuZmluZChw
b3RlbnRpYWxJbmxpbmVCb3hTdGFydEluZGV4KTsgaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2lu
ZyAhPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncy5lbmQoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRT
cGFjaW5nLT52YWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaW5saW5l
VGV4dEl0ZW0tPnNldFdpZHRoKFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGlubGlu
ZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCksIHN0YXJ0LCBzdGFydCArIGlubGluZVRl
eHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVh
c3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNpbmdTdGF0ZSkgKyBleHRyYUlubGluZVRleHRT
cGFjaW5nKTsKLSAgICAgICAgICAgICAgICBoYW5kbGVUZXh0U3BhY2luZyhzcGFjaW5nU3RhdGUs
IHRyaW1tYWJsZVRleHRTcGFjaW5ncywgKmlubGluZVRleHRJdGVtLCBpbmxpbmVJdGVtSW5kZXgp
OworICAgICAgICAgICAgaWYgKCFuZWVkc01lYXN1cmluZykKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgYXV0byBzdGFydCA9IGlubGluZVRleHRJdGVtLT5zdGFydCgp
OworICAgICAgICAgICAgaWYgKGlubGluZUl0ZW1JbmRleCkgeworICAgICAgICAgICAgICAgIC8v
IEJveCBib3VkYXJ5IHRleHQgc3BhY2luZyBpcyBwb3RlbnRpYWxseSByZWdpc3RlcmVkIGZvciBp
bmxpbmUgYm94IHN0YXJ0IGl0ZW1zIHdoaWNoIGFwcGVhciBsb2dpY2FsbHkgYmVmb3JlIGFuIGlu
bGluZSB0ZXh0IGl0ZW0KKyAgICAgICAgICAgICAgICBhdXRvIHBvdGVudGlhbElubGluZUJveFN0
YXJ0SW5kZXggPSBpbmxpbmVJdGVtSW5kZXggLSAxOworICAgICAgICAgICAgICAgIGlmIChhdXRv
IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFj
aW5ncy5maW5kKHBvdGVudGlhbElubGluZUJveFN0YXJ0SW5kZXgpOyBpbmxpbmVCb3hCb3VuZGFy
eVRleHRTcGFjaW5nICE9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmVuZCgpKQorICAg
ICAgICAgICAgICAgICAgICBleHRyYUlubGluZVRleHRTcGFjaW5nID0gaW5saW5lQm94Qm91bmRh
cnlUZXh0U3BhY2luZy0+dmFsdWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIGF1dG8mIGZvbnRDYXNjYWRlID0gaW5saW5lVGV4dEl0ZW0tPnN0eWxl
KCkuZm9udENhc2NhZGUoKTsKKyAgICAgICAgICAgIGF1dG8gd2lkdGggPSBJbmxpbmVMYXlvdXRV
bml0IHsgfTsKKyAgICAgICAgICAgIGF1dG8gbWF5SGF2ZUdseXBoT3ZlcmZsb3cgPSAhaW5saW5l
VGV4dEl0ZW0tPmlzV2hpdGVzcGFjZSgpICYmICghaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRC
b3goKS5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSB8fCBmb250Q2FzY2FkZS5wcmltYXJ5Rm9u
dCgpLT5vcmlnaW4oKSA9PSBGb250T3JpZ2luOjpSZW1vdGUpOworICAgICAgICAgICAgaWYgKG1h
eUhhdmVHbHlwaE92ZXJmbG93KSB7CisgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBnbHlw
aE92ZXJmbG93OworICAgICAgICAgICAgICAgIGdseXBoT3ZlcmZsb3cuY29tcHV0ZUJvdW5kcyA9
IHRydWU7CisgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoKmlubGluZVRl
eHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxlbmd0
aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6
YXRpb246Olllcywgc3BhY2luZ1N0YXRlLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAg
ICAgaW5saW5lVGV4dEl0ZW0tPnNldEdseXBoT3ZlcmZsb3coc3RkOjpjbGFtcChnbHlwaE92ZXJm
bG93LnRvcCwgMF9sdSwgMzFfbHUpLCBzdGQ6OmNsYW1wKGdseXBoT3ZlcmZsb3cuYm90dG9tLCAw
X2x1LCA3X2x1KSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB3aWR0aCA9
IFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwgc3Rh
cnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpOworICAg
ICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKHdpZHRoICsgZXh0cmFJbmxpbmVUZXh0
U3BhY2luZyk7CisgICAgICAgICAgICBoYW5kbGVUZXh0U3BhY2luZyhzcGFjaW5nU3RhdGUsIHRy
aW1tYWJsZVRleHRTcGFjaW5ncywgKmlubGluZVRleHRJdGVtLCBpbmxpbmVJdGVtSW5kZXgpOwog
ICAgICAgICB9CiAgICAgICAgIHNwYWNpbmdTdGF0ZS5sYXN0Q2hhcmFjdGVyQ2xhc3NGcm9tUHJl
dmlvdXNSdW4gPSBUZXh0U3BhY2luZzo6Q2hhcmFjdGVyQ2xhc3M6OlVuZGVmaW5lZDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBjZTgzYTk5OTFiYTAuLmQxMjg1MzNmOTc3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTg1OCw2ICs4NTgsMTAgQEAgTGluZTo6
UnVuOjpSdW4oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIEkKICAgICAgICAgaWYgKCp3aGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGlu
Z1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCkKICAgICAgICAgICAgIGxlbmd0aCA9ICAxOwog
ICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsZW5ndGgs
IGxvZ2ljYWxXaWR0aCB9OworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxv
dyA9IGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsKKyAgICAgICAgaWYgKGdseXBoT3Zl
cmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpCisgICAgICAgICAgICBtX2dseXBo
T3ZlcmZsb3cgPSB7IGdseXBoT3ZlcmZsb3cuZmlyc3QsIGdseXBoT3ZlcmZsb3cuc2Vjb25kIH07
CiAgICAgfQogICAgIG1fdGV4dENvbnRlbnQgPSB7IGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGxl
bmd0aCB9OwogfQpAQCAtODc3LDYgKzg4MSwxMCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNv
bnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwog
ICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICAgICAgbV90ZXh0Q29udGVu
dC5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CiAgICAgICAgIG1fbGFzdE5vbldo
aXRlc3BhY2VDb250ZW50U3RhcnQgPSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpOworCisgICAgICAg
IGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsKKyAg
ICAgICAgaWYgKGdseXBoT3ZlcmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpCisg
ICAgICAgICAgICBtX2dseXBoT3ZlcmZsb3cgPSB7IHN0ZDo6bWF4KG1fZ2x5cGhPdmVyZmxvdy50
b3AsIGdseXBoT3ZlcmZsb3cuZmlyc3QpLCBzdGQ6Om1heChtX2dseXBoT3ZlcmZsb3cuYm90dG9t
LCBnbHlwaE92ZXJmbG93LnNlY29uZCkgfTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBh
dXRvIHdoaXRlc3BhY2VXaWR0aCA9ICFoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSA/IGxvZ2ljYWxX
aWR0aCA6IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoICsgbG9naWNhbFdpZHRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5oCmluZGV4IGJiMzg5OTUwZjRmYy4uYmZiZjZiNzFlNzhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZS5oCkBAIC0xNDYsNiArMTQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAg
SW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoOyB9CiAgICAgICAgIGJvb2wgaXNXaGl0ZXNwYWNl
T25seSgpIGNvbnN0IHsgcmV0dXJuIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpICYmIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlLmxlbmd0aCA9PSBtX3RleHRDb250ZW50Lmxlbmd0aDsgfQogCisgICAgICAg
IHN0cnVjdCBHbHlwaE92ZXJmbG93IHsKKyAgICAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuICF0b3AgJiYgIWJvdHRvbTsgfQorCisgICAgICAgICAgICB1aW50OF90IHRvcCA6
IDUgeyAwIH07CisgICAgICAgICAgICB1aW50OF90IGJvdHRvbTogMyB7IDAgfTsKKyAgICAgICAg
fTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4g
bV9nbHlwaE92ZXJmbG93OyB9CisKICAgICAgICAgaW5saW5lIFRleHREaXJlY3Rpb24gaW5saW5l
RGlyZWN0aW9uKCkgY29uc3Q7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbGV0dGVyU3BhY2lu
ZygpIGNvbnN0OwogICAgICAgICBib29sIGhhc1RleHRDb21iaW5lKCkgY29uc3Q7CkBAIC0yMDks
NiArMjE3LDcgQEAgcHVibGljOgogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbFdp
ZHRoIHsgMCB9OwogICAgICAgICBVQmlEaUxldmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVM
VF9MVFIgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX3RleHRTcGFjaW5nQWRqdXN0bWVu
dCB7IDAgfTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBtX2dseXBoT3ZlcmZsb3c7CiAgICAgICAg
IGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxscHRyIH07CiAgICAgICAgIGNvbnN0IFJlbmRl
clN0eWxlJiBtX3N0eWxlOwogICAgICAgICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBt
X2V4cGFuc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IGQwMTdjNTg5
YjViYS4uNGQxMjUyZjg5MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRD
YXNjYWRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmxpbmVJdGVtLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9MYXlvdXRJbmxpbmVUZXh0Qm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Xcml0aW5nTW9k
ZS5oPgpAQCAtNTIsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGx5VHJpbW1hYmxl
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNUcmFpbGluZ1NvZnRIeXBoZW4oKSBjb25zdCB7IHJldHVy
biBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbjsgfQogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5
b3V0VW5pdD4gd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2hhc1dpZHRoID8gc3RkOjptYWtlX29w
dGlvbmFsKG1fd2lkdGgpIDogc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7IH07IH0K
KyAgICBzdGQ6OnBhaXI8dWludDhfdCwgdWludDhfdD4gZ2x5cGhPdmVyZmxvdygpIGNvbnN0IHsg
cmV0dXJuIHsgbV9nbHlwaFRvcE92ZXJmbG93LCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgfTsgfQog
CiAgICAgY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCgpIGNvbnN0IHsgcmV0dXJu
IGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCgpKTsgfQogCkBAIC02OCw2ICs3MCw3
IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgSW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCiAgICAg
SW5saW5lVGV4dEl0ZW0gc3BsaXQoc2l6ZV90IGxlZnRTaWRlTGVuZ3RoKTsKKyAgICB2b2lkIHNl
dEdseXBoT3ZlcmZsb3coTGF5b3V0VW5pdCB0b3AsIExheW91dFVuaXQgYm90dG9tKTsKIAogICAg
IElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgbGVuZ3RoLCBVQmlEaUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwgYm9v
bCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgs
IFRleHRJdGVtVHlwZSk7CiAgICAgZXhwbGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5l
VGV4dEJveCYpOwpAQCAtOTAsNiArOTMsMTIgQEAgaW5saW5lIElubGluZVRleHRJdGVtIElubGlu
ZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW4KICAg
ICByZXR1cm4gSW5saW5lVGV4dEl0ZW0geyBpbmxpbmVUZXh0Qm94IH07CiB9CiAKK2lubGluZSB2
b2lkIElubGluZVRleHRJdGVtOjpzZXRHbHlwaE92ZXJmbG93KExheW91dFVuaXQgdG9wLCBMYXlv
dXRVbml0IGJvdHRvbSkKK3sKKyAgICBtX2dseXBoVG9wT3ZlcmZsb3cgPSB0b3AuY2VpbCgpOwor
ICAgIG1fZ2x5cGhCb3R0b21PdmVyZmxvdyA9IGJvdHRvbS5jZWlsKCk7Cit9CisKIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IGZmYjBiZThhYmU5ZS4uYjY4ODQ5OWRkMDc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9k
aXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xOTgsMTYgKzE5OCw5IEBAIHZvaWQgSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxp
bmVSdW4sCiAgICAgICAgIGFkZFRleHRTaGFkb3coKTsKIAogICAgICAgICBhdXRvIGFkZEdseXBo
T3ZlcmZsb3cgPSBbJl0gewotICAgICAgICAgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2lt
cGxlRm9udENvZGVQYXRoKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBjYW5Vc2VTaW1wbGVGb250
Q29kZVBhdGggbWFwcyB0byBDb2RlUGF0aDo6U2ltcGxlIChhbmQgY29udGVudCB3aXRoIHBvdGVu
dGlhbCBnbHlwaCBvdmVyZmxvdyB3b3VsZCBzYXlzIENvZGVQYXRoOjpTaW1wbGVXaXRoR2x5cGhP
dmVyZmxvdykuCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xvc2lu
Z0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LnN0
YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNob3VsZFVzZVNpbXBsZUds
eXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3Zl
cmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZs
b3dDb2RlUGF0aDo6Tm8pOwotICAgICAgICAgICAgLy8gRklYTUU6IFRha2UgZmFsbGJhY2sgZm9u
dHMgaW50byBhY2NvdW50LgotICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5t
ZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgICAgICAgICAgYXV0byB0b3BPdmVyZmxvdyA9IHN0
ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoLWVuY2xvc2luZ0Fz
Y2VudEFuZERlc2NlbnQuYXNjZW50LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRpbmdV
dGlsczo6YXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGlu
ZVRleHRCb3gpKTsKLSAgICAgICAgICAgIGF1dG8gYm90dG9tT3ZlcmZsb3cgPSBzdGQ6Om1heCgw
LmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KGVuY2xvc2luZ0FzY2VudEFuZERl
c2NlbnQuZGVzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OmRl
c2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4dEJv
eCkpOwotICAgICAgICAgICAgaW5rT3ZlcmZsb3cuaW5mbGF0ZSh0b3BPdmVyZmxvdywgeyB9LCBi
b3R0b21PdmVyZmxvdywgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGxp
bmVSdW4uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICAgICAgaWYgKCFnbHlwaE92ZXJmbG93Lmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKGdseXBoT3ZlcmZs
b3cudG9wLCB7IH0sIGdseXBoT3ZlcmZsb3cuYm90dG9tLCB7IH0pOwogICAgICAgICB9OwogICAg
ICAgICBhZGRHbHlwaE92ZXJmbG93KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5j
cHAKaW5kZXggNjU2MTE0ZjljZDMzLi5mOTQ2ZDFkNjIyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3Rl
eHQvVGV4dFV0aWwuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSW5saW5lTGF5
b3V0VW5pdCBzcGFjZVdpZHRoKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgYm9vbCBj
CiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlLndpZHRoT2ZTcGFjZVN0cmluZygpOwogfQogCi1Jbmxp
bmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVU
ZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxp
bmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1l
YXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3Rh
dGUpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94
JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBz
cGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAgICAgaWYgKGZy
b20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwpAQCAtODksNyArODksNyBAQCBJbmxpbmVMYXlv
dXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94
LCBjb25zdCBGb250QwogICAgICAgICAgICAgcnVuLnNldFRhYlNpemUodHJ1ZSwgU3R5bGU6OnRv
UGxhdGZvcm0oc3R5bGUudGFiU2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBt
b3ZpbmcgdGhpcyB0byBUZXh0UnVuIGN0b3IKICAgICAgICAgcnVuLnNldFRleHRTcGFjaW5nU3Rh
dGUoc3BhY2luZ1N0YXRlKTsKLSAgICAgICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChydW4p
OworICAgICAgICB3aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1biwgeyB9LCBnbHlwaE92ZXJm
bG93KTsKICAgICB9CiAKICAgICBpZiAoZXh0ZW5kZWRNZWFzdXJpbmcpCkBAIC0xMDUsNyArMTA1
LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0
ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRo
KGlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5s
aW5lVGV4dEl0ZW0uZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiB9CiAKLUlubGluZUxheW91
dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJp
bmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlKQor
SW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlu
bGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNl
VHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVz
cGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFj
aW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAgICAgUkVMRUFTRV9B
U1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBSRUxFQVNFX0FTU0VS
VCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7CkBAIC0xMjMsNyArMTIzLDcgQEAgSW5saW5l
TGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRl
eHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heCgwLmYsIHdpZHRo
KTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0uaW5s
aW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVmdCwg
dXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBzcGFjaW5nU3RhdGUp
OworICAgIHJldHVybiB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRD
YXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFpbGluZ1doaXRlc3Bh
Y2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIHNwYWNpbmdTdGF0ZSwgZ2x5cGhPdmVyZmxvdyk7CiB9
CiAKIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNv
bnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
Q2FzY2FkZSwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3NpdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3Rl
eHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL3RleHQvVGV4dFV0aWwuaAppbmRleCA2ZjU2NTg0NmIxZGMuLjYzNzQzYjlhNjZiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvdGV4dC9UZXh0VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNTMsOCArNTMsOCBAQCBjbGFzcyBU
ZXh0VXRpbCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBVc2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdPcHRpbWl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogICAgIHN0YXRpYyBJbmxp
bmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2Nh
ZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7Ci0gICAgc3RhdGljIElu
bGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2Fz
Y2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRl
bnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9u
ID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRT
cGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9KTsKLSAgICBzdGF0aWMgSW5s
aW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2Nh
ZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50
TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3Bh
Y2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7CisgICAgc3RhdGljIElubGlu
ZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2Fk
ZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0g
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFj
aW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9LCBHbHlwaE92ZXJmbG93KiA9IG51
bGxwdHIpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRl
eHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJ
bmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNl
TWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0
aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0g
eyB9LCBHbHlwaE92ZXJmbG93KiA9IG51bGxwdHIpOwogCiAgICAgc3RhdGljIElubGluZUxheW91
dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0
IEZvbnRDYXNjYWRlJiwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3NpdGlvbik7
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477889</attachid>
            <date>2026-01-02 12:56:46 -0800</date>
            <delta_ts>2026-01-03 13:52:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260102125645.patch</filename>
            <type>text/plain</type>
            <size>19614</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMGQ3ZDMxZjM0YTI1Mjk1ZTA4OTVkN2RjNjEyNGFkMTdjYjY2ODFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwOTo1NTowNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgPHJkYXI6Ly8xNjMyOTA3Nzk+CgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbS5jcHA6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvbnRlbnRBdHRyaWJ1dGVzQW5k
SW5saW5lVGV4dEl0ZW1XaWR0aHMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpS
dW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6R2x5cGhPdmVyZmxvdzo6aXNFbXB0eSBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0
ZW0uaDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNw
cDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmg6CihXZWJDb3Jl
OjpMYXlvdXQ6OlRleHRVdGlsOjp3aWR0aCk6Ci0tLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbS5jcHAgIHwgIDIgKwogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbS5oICAgIHwgIDIgKwogLi4uL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKystLS0tLQogLi4uL2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgIHwgIDggKysrKwogLi4uL2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oICAgIHwgIDkgKysrKysKIC4uLi9pbmxpbmUvSW5s
aW5lVGV4dEl0ZW0uaCAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysrCiAuLi4vZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwICAgfCAxMyArKy0tLS0KIC4uLi9pbmxpbmUv
dGV4dC9UZXh0VXRpbC5jcHAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIC4uLi9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCB8ICA0ICstCiA5IGZpbGVzIGNoYW5n
ZWQsIDY4IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbS5jcHAKaW5kZXggZmI2NjgyYzM3OWFlLi41ODdjZmI5ZDlmZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUl0ZW0uY3BwCkBAIC00Myw2ICs0Myw4IEBAIHN0cnVjdCBTYW1lU2l6ZUFzSW5saW5l
SXRlbSB7CiAgICAgYm9vbCB3aWR0aEJvb2wgOiAxOwogICAgIGJvb2wgc29mdEh5cGhlbkJvb2wg
OiAxOwogICAgIGJvb2wgaXNXb3JkU2VwYXJhdG9yIDogMTsKKyAgICB1aW50OF90IGdseXBoVG9w
T3ZlcmZsb3cgOiA1OworICAgIHVpbnQ4X3QgZ2x5cGhCb3R0b21PdmVyZmxvdyA6IDM7CiB9Owog
CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoU2FtZVNpemVBc0lu
bGluZUl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAppbmRleCBkMzljNWQ0ZDViOTQuLmM5
ZGMwN2I5ZTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaApAQCAtOTcsNiArOTcsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1dpZHRoIDogMSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2hhc1RyYWlsaW5nU29mdEh5cGhlbiA6IDEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1dvcmRT
ZXBhcmF0b3IgOiAxIHsgZmFsc2UgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhUb3BPdmVyZmxvdyA6
IDUgeyAwIH07CisgICAgdWludDhfdCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgOiAzIHsgMCB9Owog
fTsKIAogaW5saW5lIElubGluZUl0ZW06OklubGluZUl0ZW0oY29uc3QgQm94JiBsYXlvdXRCb3gs
IFR5cGUgdHlwZSwgVUJpRGlMZXZlbCBiaWRpTGV2ZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCA3N2Q4MmMxOTg3MTkuLjFhOTViOTlmNjk3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lSXRlbXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCkBAIC03ODcsMjQgKzc4
Nyw0MiBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250ZW50QXR0cmlidXRl
cyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogICAgIFRleHRTcGFjaW5nOjpTcGFjaW5n
U3RhdGUgc3BhY2luZ1N0YXRlOwogICAgIFRyaW1tYWJsZVRleHRTcGFjaW5ncyB0cmltbWFibGVU
ZXh0U3BhY2luZ3M7CiAgICAgYXV0byYgaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MgPSBp
bmxpbmVDb250ZW50Q2FjaGUoKS5pbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncygpOworICAg
IGNvbnN0IElubGluZVRleHRCb3gqIGN1cnJlbnRJbmxpbmVUZXh0Qm94ID0gbnVsbHB0cjsKKyAg
ICBhdXRvIGN1cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2ZUdseXBoT3ZlcmZsb3cgPSBmYWxzZTsK
ICAgICBmb3IgKHNpemVfdCBpbmxpbmVJdGVtSW5kZXggPSAwOyBpbmxpbmVJdGVtSW5kZXggPCBp
bmxpbmVJdGVtTGlzdC5zaXplKCk7ICsraW5saW5lSXRlbUluZGV4KSB7CiAgICAgICAgIGF1dG8g
ZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IDAuZjsKICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9
IGlubGluZUl0ZW1MaXN0W2lubGluZUl0ZW1JbmRleF07CiAKICAgICAgICAgaWYgKGF1dG8qIGlu
bGluZVRleHRJdGVtID0gZHluYW1pY0Rvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVt
KSkgewogICAgICAgICAgICAgYXV0byBuZWVkc01lYXN1cmluZyA9IGlubGluZVRleHRJdGVtLT5s
ZW5ndGgoKSAmJiAhaW5saW5lVGV4dEl0ZW0tPmlzWmVyb1dpZHRoU3BhY2VTZXBhcmF0b3IoKSAm
JiBjYW5DYWNoZU1lYXN1cmVkV2lkdGhPbklubGluZVRleHRJdGVtKGlubGluZVRleHRJdGVtLT5p
bmxpbmVUZXh0Qm94KCksIGlubGluZVRleHRJdGVtLT5pc1doaXRlc3BhY2UoKSk7Ci0gICAgICAg
ICAgICBpZiAobmVlZHNNZWFzdXJpbmcpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0g
aW5saW5lVGV4dEl0ZW0tPnN0YXJ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGlubGluZUl0ZW1J
bmRleCkgewotICAgICAgICAgICAgICAgICAgICAvLyBCb3ggYm91ZGFyeSB0ZXh0IHNwYWNpbmcg
aXMgcG90ZW50aWFsbHkgcmVnaXN0ZXJlZCBmb3IgaW5saW5lIGJveCBzdGFydCBpdGVtcyB3aGlj
aCBhcHBlYXIgbG9naWNhbGx5IGJlZm9yZSBhbiBpbmxpbmUgdGV4dCBpdGVtCi0gICAgICAgICAg
ICAgICAgICAgIGF1dG8gcG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRleCA9IGlubGluZUl0ZW1J
bmRleCAtIDE7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGlubGluZUJveEJvdW5kYXJ5
VGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncy5maW5kKHBvdGVudGlh
bElubGluZUJveFN0YXJ0SW5kZXgpOyBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nICE9IGlu
bGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmVuZCgpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmct
PnZhbHVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbmxpbmVUZXh0SXRl
bS0+c2V0V2lkdGgoVGV4dFV0aWw6OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgaW5saW5lVGV4dEl0
ZW0tPnN0eWxlKCkuZm9udENhc2NhZGUoKSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0t
Pmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdP
cHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlKSArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcp
OwotICAgICAgICAgICAgICAgIGhhbmRsZVRleHRTcGFjaW5nKHNwYWNpbmdTdGF0ZSwgdHJpbW1h
YmxlVGV4dFNwYWNpbmdzLCAqaW5saW5lVGV4dEl0ZW0sIGlubGluZUl0ZW1JbmRleCk7CisgICAg
ICAgICAgICBpZiAoIW5lZWRzTWVhc3VyaW5nKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gaW5saW5lVGV4dEl0ZW0tPnN0YXJ0KCk7CisgICAg
ICAgICAgICBpZiAoaW5saW5lSXRlbUluZGV4KSB7CisgICAgICAgICAgICAgICAgLy8gQm94IGJv
dWRhcnkgdGV4dCBzcGFjaW5nIGlzIHBvdGVudGlhbGx5IHJlZ2lzdGVyZWQgZm9yIGlubGluZSBi
b3ggc3RhcnQgaXRlbXMgd2hpY2ggYXBwZWFyIGxvZ2ljYWxseSBiZWZvcmUgYW4gaW5saW5lIHRl
eHQgaXRlbQorICAgICAgICAgICAgICAgIGF1dG8gcG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRl
eCA9IGlubGluZUl0ZW1JbmRleCAtIDE7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5saW5l
Qm94Qm91bmRhcnlUZXh0U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmZp
bmQocG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRleCk7IGlubGluZUJveEJvdW5kYXJ5VGV4dFNw
YWNpbmcgIT0gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MuZW5kKCkpCisgICAgICAgICAg
ICAgICAgICAgIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRT
cGFjaW5nLT52YWx1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgYXV0byYgZm9udENhc2NhZGUgPSBpbmxpbmVUZXh0SXRlbS0+c3R5bGUoKS5mb250
Q2FzY2FkZSgpOworICAgICAgICAgICAgYXV0byB3aWR0aCA9IElubGluZUxheW91dFVuaXQgeyB9
OworICAgICAgICAgICAgYXV0byBtYXlIYXZlR2x5cGhPdmVyZmxvdyA9IFsmXSB7CisgICAgICAg
ICAgICAgICAgaWYgKGN1cnJlbnRJbmxpbmVUZXh0Qm94ICE9ICZpbmxpbmVUZXh0SXRlbS0+aW5s
aW5lVGV4dEJveCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmxpbmVUZXh0Qm94
TWF5SGF2ZUdseXBoT3ZlcmZsb3cgPSAhaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKS5j
YW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSB8fCBmb250Q2FzY2FkZS5wcmltYXJ5Rm9udCgpLT5v
cmlnaW4oKSA9PSBGb250T3JpZ2luOjpSZW1vdGU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJl
bnRJbmxpbmVUZXh0Qm94ID0gJmlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5saW5lVGV4dEJv
eE1heUhhdmVHbHlwaE92ZXJmbG93OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmICht
YXlIYXZlR2x5cGhPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBn
bHlwaE92ZXJmbG93OworICAgICAgICAgICAgICAgIGdseXBoT3ZlcmZsb3cuY29tcHV0ZUJvdW5k
cyA9IHRydWU7CisgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoKmlubGlu
ZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxl
bmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAg
ICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldEdseXBoT3ZlcmZsb3coc3RkOjpjbGFtcChnbHlwaE92
ZXJmbG93LnRvcCwgMF9sdSwgMzFfbHUpLCBzdGQ6OmNsYW1wKGdseXBoT3ZlcmZsb3cuYm90dG9t
LCAwX2x1LCA3X2x1KSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB3aWR0
aCA9IFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwg
c3RhcnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWls
aW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpOwor
ICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKHdpZHRoICsgZXh0cmFJbmxpbmVU
ZXh0U3BhY2luZyk7CisgICAgICAgICAgICBoYW5kbGVUZXh0U3BhY2luZyhzcGFjaW5nU3RhdGUs
IHRyaW1tYWJsZVRleHRTcGFjaW5ncywgKmlubGluZVRleHRJdGVtLCBpbmxpbmVJdGVtSW5kZXgp
OwogICAgICAgICB9CiAgICAgICAgIHNwYWNpbmdTdGF0ZS5sYXN0Q2hhcmFjdGVyQ2xhc3NGcm9t
UHJldmlvdXNSdW4gPSBUZXh0U3BhY2luZzo6Q2hhcmFjdGVyQ2xhc3M6OlVuZGVmaW5lZDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBjZTgzYTk5OTFiYTAuLmQxMjg1MzNmOTc3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTg1OCw2ICs4NTgsMTAgQEAgTGlu
ZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIEkKICAgICAgICAgaWYgKCp3aGl0ZXNwYWNlVHlwZSA9PSBUcmFp
bGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCkKICAgICAgICAgICAgIGxlbmd0aCA9ICAx
OwogICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsZW5n
dGgsIGxvZ2ljYWxXaWR0aCB9OworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gZ2x5cGhPdmVy
ZmxvdyA9IGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsKKyAgICAgICAgaWYgKGdseXBo
T3ZlcmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpCisgICAgICAgICAgICBtX2ds
eXBoT3ZlcmZsb3cgPSB7IGdseXBoT3ZlcmZsb3cuZmlyc3QsIGdseXBoT3ZlcmZsb3cuc2Vjb25k
IH07CiAgICAgfQogICAgIG1fdGV4dENvbnRlbnQgPSB7IGlubGluZVRleHRJdGVtLnN0YXJ0KCks
IGxlbmd0aCB9OwogfQpAQCAtODc3LDYgKzg4MSwxMCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5k
KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBs
bwogICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICAgICAgbV90ZXh0Q29u
dGVudC5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CiAgICAgICAgIG1fbGFzdE5v
bldoaXRlc3BhY2VDb250ZW50U3RhcnQgPSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpOworCisgICAg
ICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsK
KyAgICAgICAgaWYgKGdseXBoT3ZlcmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQp
CisgICAgICAgICAgICBtX2dseXBoT3ZlcmZsb3cgPSB7IHN0ZDo6bWF4KG1fZ2x5cGhPdmVyZmxv
dy50b3AsIGdseXBoT3ZlcmZsb3cuZmlyc3QpLCBzdGQ6Om1heChtX2dseXBoT3ZlcmZsb3cuYm90
dG9tLCBnbHlwaE92ZXJmbG93LnNlY29uZCkgfTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBhdXRvIHdoaXRlc3BhY2VXaWR0aCA9ICFoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSA/IGxvZ2lj
YWxXaWR0aCA6IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoICsgbG9naWNhbFdpZHRoOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZS5oCmluZGV4IGJiMzg5OTUwZjRmYy4uYmZiZjZiNzFlNzhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC0xNDYsNiArMTQ2LDE0IEBAIHB1YmxpYzoKICAgICAg
ICAgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoOyB9CiAgICAgICAgIGJvb2wgaXNXaGl0ZXNw
YWNlT25seSgpIGNvbnN0IHsgcmV0dXJuIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpICYmIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCA9PSBtX3RleHRDb250ZW50Lmxlbmd0aDsgfQogCisgICAg
ICAgIHN0cnVjdCBHbHlwaE92ZXJmbG93IHsKKyAgICAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0IHsgcmV0dXJuICF0b3AgJiYgIWJvdHRvbTsgfQorCisgICAgICAgICAgICB1aW50OF90IHRv
cCA6IDUgeyAwIH07CisgICAgICAgICAgICB1aW50OF90IGJvdHRvbTogMyB7IDAgfTsKKyAgICAg
ICAgfTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1
cm4gbV9nbHlwaE92ZXJmbG93OyB9CisKICAgICAgICAgaW5saW5lIFRleHREaXJlY3Rpb24gaW5s
aW5lRGlyZWN0aW9uKCkgY29uc3Q7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbGV0dGVyU3Bh
Y2luZygpIGNvbnN0OwogICAgICAgICBib29sIGhhc1RleHRDb21iaW5lKCkgY29uc3Q7CkBAIC0y
MDksNiArMjE3LDcgQEAgcHVibGljOgogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNh
bFdpZHRoIHsgMCB9OwogICAgICAgICBVQmlEaUxldmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVG
QVVMVF9MVFIgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX3RleHRTcGFjaW5nQWRqdXN0
bWVudCB7IDAgfTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBtX2dseXBoT3ZlcmZsb3c7CiAgICAg
ICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxscHRyIH07CiAgICAgICAgIGNvbnN0IFJl
bmRlclN0eWxlJiBtX3N0eWxlOwogICAgICAgICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lv
biBtX2V4cGFuc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IGQwMTdj
NTg5YjViYS4uNGQxMjUyZjg5MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnRDYXNjYWRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmxpbmVJdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9MYXlvdXRJbmxpbmVUZXh0Qm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Xcml0aW5n
TW9kZS5oPgpAQCAtNTIsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGx5VHJpbW1h
YmxlKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNUcmFpbGluZ1NvZnRIeXBoZW4oKSBjb25zdCB7IHJl
dHVybiBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbjsgfQogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5l
TGF5b3V0VW5pdD4gd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2hhc1dpZHRoID8gc3RkOjptYWtl
X29wdGlvbmFsKG1fd2lkdGgpIDogc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7IH07
IH0KKyAgICBzdGQ6OnBhaXI8dWludDhfdCwgdWludDhfdD4gZ2x5cGhPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIHsgbV9nbHlwaFRvcE92ZXJmbG93LCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgfTsg
fQogCiAgICAgY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCgpIGNvbnN0IHsgcmV0
dXJuIGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCgpKTsgfQogCkBAIC02OCw2ICs3
MCw3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgSW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCiAg
ICAgSW5saW5lVGV4dEl0ZW0gc3BsaXQoc2l6ZV90IGxlZnRTaWRlTGVuZ3RoKTsKKyAgICB2b2lk
IHNldEdseXBoT3ZlcmZsb3coTGF5b3V0VW5pdCB0b3AsIExheW91dFVuaXQgYm90dG9tKTsKIAog
ICAgIElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgbGVuZ3RoLCBVQmlEaUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwg
Ym9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lk
dGgsIFRleHRJdGVtVHlwZSk7CiAgICAgZXhwbGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5s
aW5lVGV4dEJveCYpOwpAQCAtOTAsNiArOTMsMTIgQEAgaW5saW5lIElubGluZVRleHRJdGVtIElu
bGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW4K
ICAgICByZXR1cm4gSW5saW5lVGV4dEl0ZW0geyBpbmxpbmVUZXh0Qm94IH07CiB9CiAKK2lubGlu
ZSB2b2lkIElubGluZVRleHRJdGVtOjpzZXRHbHlwaE92ZXJmbG93KExheW91dFVuaXQgdG9wLCBM
YXlvdXRVbml0IGJvdHRvbSkKK3sKKyAgICBtX2dseXBoVG9wT3ZlcmZsb3cgPSB0b3AuY2VpbCgp
OworICAgIG1fZ2x5cGhCb3R0b21PdmVyZmxvdyA9IGJvdHRvbS5jZWlsKCk7Cit9CisKIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IGZiMTNjMzk0MjAwZC4uM2U4ZDEyNjdmMTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xOTgsMTYgKzE5OCw5IEBAIHZvaWQgSW5saW5lRGlz
cGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4m
IGxpbmVSdW4sCiAgICAgICAgIGFkZFRleHRTaGFkb3coKTsKIAogICAgICAgICBhdXRvIGFkZEds
eXBoT3ZlcmZsb3cgPSBbJl0gewotICAgICAgICAgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNl
U2ltcGxlRm9udENvZGVQYXRoKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBjYW5Vc2VTaW1wbGVG
b250Q29kZVBhdGggbWFwcyB0byBDb2RlUGF0aDo6U2ltcGxlIChhbmQgY29udGVudCB3aXRoIHBv
dGVudGlhbCBnbHlwaCBvdmVyZmxvdyB3b3VsZCBzYXlzIENvZGVQYXRoOjpTaW1wbGVXaXRoR2x5
cGhPdmVyZmxvdykuCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xv
c2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0
LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNob3VsZFVzZVNpbXBs
ZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBo
T3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3Zl
cmZsb3dDb2RlUGF0aDo6Tm8pOwotICAgICAgICAgICAgLy8gRklYTUU6IFRha2UgZmFsbGJhY2sg
Zm9udHMgaW50byBhY2NvdW50LgotICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHls
ZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgICAgICAgICAgYXV0byB0b3BPdmVyZmxvdyA9
IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoLWVuY2xvc2lu
Z0FzY2VudEFuZERlc2NlbnQuYXNjZW50LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRp
bmdVdGlsczo6YXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlu
bGluZVRleHRCb3gpKTsKLSAgICAgICAgICAgIGF1dG8gYm90dG9tT3ZlcmZsb3cgPSBzdGQ6Om1h
eCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KGVuY2xvc2luZ0FzY2VudEFu
ZERlc2NlbnQuZGVzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6
OmRlc2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4
dEJveCkpOwotICAgICAgICAgICAgaW5rT3ZlcmZsb3cuaW5mbGF0ZSh0b3BPdmVyZmxvdywgeyB9
LCBib3R0b21PdmVyZmxvdywgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9
IGxpbmVSdW4uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICAgICAgaWYgKCFnbHlwaE92ZXJmbG93
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKGdseXBoT3Zl
cmZsb3cudG9wLCB7IH0sIGdseXBoT3ZlcmZsb3cuYm90dG9tLCB7IH0pOwogICAgICAgICB9Owog
ICAgICAgICBhZGRHbHlwaE92ZXJmbG93KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRp
bC5jcHAKaW5kZXggNjU2MTE0ZjljZDMzLi5mOTQ2ZDFkNjIyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L3RleHQvVGV4dFV0aWwuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSW5saW5l
TGF5b3V0VW5pdCBzcGFjZVdpZHRoKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgYm9v
bCBjCiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlLndpZHRoT2ZTcGFjZVN0cmluZygpOwogfQogCi1J
bmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxp
bmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJh
aWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFj
ZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5n
U3RhdGUpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVm
dCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0
ZSBzcGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAgICAgaWYg
KGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwpAQCAtODksNyArODksNyBAQCBJbmxpbmVM
YXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0
Qm94LCBjb25zdCBGb250QwogICAgICAgICAgICAgcnVuLnNldFRhYlNpemUodHJ1ZSwgU3R5bGU6
OnRvUGxhdGZvcm0oc3R5bGUudGFiU2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRl
ciBtb3ZpbmcgdGhpcyB0byBUZXh0UnVuIGN0b3IKICAgICAgICAgcnVuLnNldFRleHRTcGFjaW5n
U3RhdGUoc3BhY2luZ1N0YXRlKTsKLSAgICAgICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChy
dW4pOworICAgICAgICB3aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1biwgeyB9LCBnbHlwaE92
ZXJmbG93KTsKICAgICB9CiAKICAgICBpZiAoZXh0ZW5kZWRNZWFzdXJpbmcpCkBAIC0xMDUsNyAr
MTA1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICByZXR1cm4gVGV4dFV0aWw6Ondp
ZHRoKGlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwg
aW5saW5lVGV4dEl0ZW0uZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiB9CiAKLUlubGluZUxh
eW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0
SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFz
dXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRl
KQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBz
cGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBSRUxFQVNFX0FT
U0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7CkBAIC0xMjMsNyArMTIzLDcgQEAgSW5s
aW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGlu
ZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heCgwLmYsIHdp
ZHRoKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0u
aW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVm
dCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBzcGFjaW5nU3Rh
dGUpOworICAgIHJldHVybiB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZv
bnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFpbGluZ1doaXRl
c3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIHNwYWNpbmdTdGF0ZSwgZ2x5cGhPdmVyZmxvdyk7
CiB9CiAKIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRo
KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBm
b250Q2FzY2FkZSwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3NpdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L3RleHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAppbmRleCA2ZjU2NTg0NmIxZGMuLjYzNzQzYjlhNjZi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvdGV4dC9UZXh0VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNTMsOCArNTMsOCBAQCBjbGFz
cyBUZXh0VXRpbCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBVc2VUcmFpbGluZ1doaXRlc3Bh
Y2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENh
c2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7Ci0gICAgc3RhdGlj
IElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250
Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0
aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRl
eHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9KTsKLSAgICBzdGF0aWMg
SW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENh
c2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0
U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7CisgICAgc3RhdGljIElu
bGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2Fz
Y2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRl
bnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9u
ID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRT
cGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9LCBHbHlwaE92ZXJmbG93KiA9
IG51bGxwdHIpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGlu
ZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRv
LCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNw
YWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRl
ID0geyB9LCBHbHlwaE92ZXJmbG93KiA9IG51bGxwdHIpOwogCiAgICAgc3RhdGljIElubGluZUxh
eW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNv
bnN0IEZvbnRDYXNjYWRlJiwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3NpdGlv
bik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477896</attachid>
            <date>2026-01-03 08:46:20 -0800</date>
            <delta_ts>2026-01-03 13:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260103084620.patch</filename>
            <type>text/plain</type>
            <size>46288</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MzY1Mzk3Yjc5MzY4YzMwZDY5NDFhNTdhM2ZhZWQ0Zjk2YzdlOGViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMyBKYW4gMjAyNiAwODo0Mzo1MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBT
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250
ZW50QWxpZ25lci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OmNvbXB1dGVkRXhwYW5zaW9ucyk6Ciog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9y
bWF0dGluZ1V0aWxzLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1V0aWxz
OjppbmxpbmVDb250ZW50RW5kaW5nKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmg6CiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcDoK
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpjb21wdXRlQ29udGVudEF0dHJp
YnV0ZXNBbmRJbmxpbmVUZXh0SXRlbVdpZHRocyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6
OkxpbmU6OnJlc3RvcmVUcmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNlKToKKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1vdmUpOgooV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5k
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpkZXRhY2hUcmFpbGluZ1doaXRlc3BhY2Up
OgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZS5oOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzQ29udGVudGZ1bCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dGV4dENvbnRlbnQgY29uc3QpOgooV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc1RyYWlsaW5nV2hpdGVzcGFjZSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggY29uc3QpOgoo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzV2hpdGVzcGFjZU9ubHkgY29uc3QpOgooV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OkdseXBoT3ZlcmZsb3c6OmlzRW1wdHkgY29uc3QpOgoo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmdseXBoT3ZlcmZsb3cgY29uc3QpOgooV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQgY29uc3QpOgooV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5kYXJ5RW5kIGNvbnN0KToKKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc0luc2lkZVNoYXBpbmdCb3VuZGFyeSBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnkgY29uc3QpOgoo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNpYmxlVHJhaWxpbmdXaGl0ZXNw
YWNlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpoYXNDb2xsYXBzZWRUcmFp
bGluZ1doaXRlc3BhY2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnNldE5l
ZWRzSHlwaGVuKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hC
dWlsZGVyOjpjb2xsZWN0RmFsbGJhY2tGb250cyk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hC
dWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRzRm9yTGluZUJveENvbnRhaW5JZkFwcGxpY2Fi
bGUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6dG9TdHJpbmcpOgoqIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVt
Lmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpnbHlwaE92ZXJmbG93IGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OnNldEdseXBoT3ZlcmZsb3cpOgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveCk6CihXZWJDb3JlOjpM
YXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kU29mdExpbmVCcmVha0Rp
c3BsYXlCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgp
OgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQv
VGV4dFV0aWwuaDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKLS0tCiAuLi4v
aW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVyLmNwcCAgICAgICAgICAgfCAgMiArLQogLi4uL2lu
bGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwICAgICAgICAgIHwgIDIgKy0KIC4uLi9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwICB8ICAyICsKIC4uLi9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCAgICB8ICAyICsKIC4uLi9pbmxpbmUvSW5s
aW5lSXRlbXNCdWlsZGVyLmNwcCAgICAgICAgICAgICB8IDQwICsrKysrKystLS0KIC4uLi9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwICB8IDczICsrKysrKysrKysrLS0t
LS0tLS0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCAgICB8IDYw
ICsrKysrKysrLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAgICAg
ICAgICAgIHwgMTAgKy0tCiAuLi4vaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCAgICAgICAg
ICAgICAgfCAgMiArLQogLi4uL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oICAgICAgICAgICAgICAg
ICAgIHwgIDkgKysrCiAuLi4vZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3Bw
ICAgfCAyNSArKystLS0tCiAuLi4vaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwICAgICAgICAgICAg
ICAgICAgfCAgOCArLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRp
bC5oIHwgIDQgKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA5OCBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAK
aW5kZXggMGE0MjFhNDc0NzcwLi41ODg0YzI5YmRmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBzdGF0aWMgdm9p
ZCBjb21wdXRlZEV4cGFuc2lvbnMoY29uc3QgTGluZTo6UnVuTGlzdCYgcnVucywgV1RGOjpSYW5n
ZTxzaXplX3Q+IHJ1bgogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgZXhwYW5z
aW9uQmVoYXZpb3IubGVmdCA9IHJ1bklzQWZ0ZXJFeHBhbnNpb24gPyBFeHBhbnNpb25CZWhhdmlv
cjo6QmVoYXZpb3I6OkZvcmJpZCA6IEV4cGFuc2lvbkJlaGF2aW9yOjpCZWhhdmlvcjo6QWxsb3c7
CiAgICAgICAgICAgICAgICAgZXhwYW5zaW9uQmVoYXZpb3IucmlnaHQgPSBFeHBhbnNpb25CZWhh
dmlvcjo6QmVoYXZpb3I6OkFsbG93OwotICAgICAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50
ID0gKnJ1bi50ZXh0Q29udGVudCgpOworICAgICAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50
ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgICAgICAgICAgICAgYXV0byBsZW5ndGggPSB0ZXh0
Q29udGVudC5sZW5ndGg7CiAgICAgICAgICAgICAgICAgaWYgKGxhc3RUZXh0UnVuSW5kZXhGb3JU
cmltbWluZyAmJiBydW5JbmRleCgpID09ICpsYXN0VGV4dFJ1bkluZGV4Rm9yVHJpbW1pbmcpIHsK
ICAgICAgICAgICAgICAgICAgICAgLy8gVHJhaWxpbmcgaGFuZ2luZyB3aGl0ZXNwYWNlIHNlcXVl
bmNlIGlzIGlnbm9yZWQgd2hlbiBjb21wdXRpbmcgdGhlIGV4cGFuc2lvbiBvcHBvcnR1bml0aWVz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAKaW5kZXgg
ODQ4MDI5MDAyOWM0Li42YjUzNDYyNDI2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ1V0aWxzLmNwcApAQCAtNjMwLDcgKzYzMCw3IEBAIHN0ZDo6b3B0aW9uYWw8
TGluZUxheW91dFJlc3VsdDo6SW5saW5lQ29udGVudEVuZGluZz4gSW5saW5lRm9ybWF0dGluZ1V0
aWxzOjppbmxpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHJ1bi5pc0xpbmVC
cmVhaygpKQogICAgICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91dFJlc3VsdDo6SW5saW5lQ29u
dGVudEVuZGluZzo6TGluZUJyZWFrIH07Ci0gICAgICAgIGlmIChhdXRvJiB0ZXh0Q29udGVudCA9
IHJ1bi50ZXh0Q29udGVudCgpOyB0ZXh0Q29udGVudCAmJiB0ZXh0Q29udGVudC0+bmVlZHNIeXBo
ZW4pCisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgJiYgcnVuLnRleHRDb250ZW50KCkubmVlZHNI
eXBoZW4pCiAgICAgICAgICAgICByZXR1cm4geyBMaW5lTGF5b3V0UmVzdWx0OjpJbmxpbmVDb250
ZW50RW5kaW5nOjpIeXBoZW4gfTsKICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91dFJlc3VsdDo6
SW5saW5lQ29udGVudEVuZGluZzo6R2VuZXJpYyB9OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbS5jcHAKaW5kZXggZmI2NjgyYzM3OWFlLi41ODdjZmI5ZDlmZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUl0ZW0uY3BwCkBAIC00Myw2ICs0Myw4IEBAIHN0cnVjdCBTYW1lU2l6ZUFzSW5saW5l
SXRlbSB7CiAgICAgYm9vbCB3aWR0aEJvb2wgOiAxOwogICAgIGJvb2wgc29mdEh5cGhlbkJvb2wg
OiAxOwogICAgIGJvb2wgaXNXb3JkU2VwYXJhdG9yIDogMTsKKyAgICB1aW50OF90IGdseXBoVG9w
T3ZlcmZsb3cgOiA1OworICAgIHVpbnQ4X3QgZ2x5cGhCb3R0b21PdmVyZmxvdyA6IDM7CiB9Owog
CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoU2FtZVNpemVBc0lu
bGluZUl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAppbmRleCBkMzljNWQ0ZDViOTQuLmM5
ZGMwN2I5ZTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaApAQCAtOTcsNiArOTcsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1dpZHRoIDogMSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2hhc1RyYWlsaW5nU29mdEh5cGhlbiA6IDEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1dvcmRT
ZXBhcmF0b3IgOiAxIHsgZmFsc2UgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhUb3BPdmVyZmxvdyA6
IDUgeyAwIH07CisgICAgdWludDhfdCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgOiAzIHsgMCB9Owog
fTsKIAogaW5saW5lIElubGluZUl0ZW06OklubGluZUl0ZW0oY29uc3QgQm94JiBsYXlvdXRCb3gs
IFR5cGUgdHlwZSwgVUJpRGlMZXZlbCBiaWRpTGV2ZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCA3N2Q4MmMxOTg3MTkuLjFhOTViOTlmNjk3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lSXRlbXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCkBAIC03ODcsMjQgKzc4
Nyw0MiBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250ZW50QXR0cmlidXRl
cyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogICAgIFRleHRTcGFjaW5nOjpTcGFjaW5n
U3RhdGUgc3BhY2luZ1N0YXRlOwogICAgIFRyaW1tYWJsZVRleHRTcGFjaW5ncyB0cmltbWFibGVU
ZXh0U3BhY2luZ3M7CiAgICAgYXV0byYgaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MgPSBp
bmxpbmVDb250ZW50Q2FjaGUoKS5pbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncygpOworICAg
IGNvbnN0IElubGluZVRleHRCb3gqIGN1cnJlbnRJbmxpbmVUZXh0Qm94ID0gbnVsbHB0cjsKKyAg
ICBhdXRvIGN1cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2ZUdseXBoT3ZlcmZsb3cgPSBmYWxzZTsK
ICAgICBmb3IgKHNpemVfdCBpbmxpbmVJdGVtSW5kZXggPSAwOyBpbmxpbmVJdGVtSW5kZXggPCBp
bmxpbmVJdGVtTGlzdC5zaXplKCk7ICsraW5saW5lSXRlbUluZGV4KSB7CiAgICAgICAgIGF1dG8g
ZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IDAuZjsKICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9
IGlubGluZUl0ZW1MaXN0W2lubGluZUl0ZW1JbmRleF07CiAKICAgICAgICAgaWYgKGF1dG8qIGlu
bGluZVRleHRJdGVtID0gZHluYW1pY0Rvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVt
KSkgewogICAgICAgICAgICAgYXV0byBuZWVkc01lYXN1cmluZyA9IGlubGluZVRleHRJdGVtLT5s
ZW5ndGgoKSAmJiAhaW5saW5lVGV4dEl0ZW0tPmlzWmVyb1dpZHRoU3BhY2VTZXBhcmF0b3IoKSAm
JiBjYW5DYWNoZU1lYXN1cmVkV2lkdGhPbklubGluZVRleHRJdGVtKGlubGluZVRleHRJdGVtLT5p
bmxpbmVUZXh0Qm94KCksIGlubGluZVRleHRJdGVtLT5pc1doaXRlc3BhY2UoKSk7Ci0gICAgICAg
ICAgICBpZiAobmVlZHNNZWFzdXJpbmcpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0g
aW5saW5lVGV4dEl0ZW0tPnN0YXJ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGlubGluZUl0ZW1J
bmRleCkgewotICAgICAgICAgICAgICAgICAgICAvLyBCb3ggYm91ZGFyeSB0ZXh0IHNwYWNpbmcg
aXMgcG90ZW50aWFsbHkgcmVnaXN0ZXJlZCBmb3IgaW5saW5lIGJveCBzdGFydCBpdGVtcyB3aGlj
aCBhcHBlYXIgbG9naWNhbGx5IGJlZm9yZSBhbiBpbmxpbmUgdGV4dCBpdGVtCi0gICAgICAgICAg
ICAgICAgICAgIGF1dG8gcG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRleCA9IGlubGluZUl0ZW1J
bmRleCAtIDE7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGlubGluZUJveEJvdW5kYXJ5
VGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncy5maW5kKHBvdGVudGlh
bElubGluZUJveFN0YXJ0SW5kZXgpOyBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nICE9IGlu
bGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmVuZCgpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmct
PnZhbHVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbmxpbmVUZXh0SXRl
bS0+c2V0V2lkdGgoVGV4dFV0aWw6OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgaW5saW5lVGV4dEl0
ZW0tPnN0eWxlKCkuZm9udENhc2NhZGUoKSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0t
Pmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdP
cHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlKSArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcp
OwotICAgICAgICAgICAgICAgIGhhbmRsZVRleHRTcGFjaW5nKHNwYWNpbmdTdGF0ZSwgdHJpbW1h
YmxlVGV4dFNwYWNpbmdzLCAqaW5saW5lVGV4dEl0ZW0sIGlubGluZUl0ZW1JbmRleCk7CisgICAg
ICAgICAgICBpZiAoIW5lZWRzTWVhc3VyaW5nKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gaW5saW5lVGV4dEl0ZW0tPnN0YXJ0KCk7CisgICAg
ICAgICAgICBpZiAoaW5saW5lSXRlbUluZGV4KSB7CisgICAgICAgICAgICAgICAgLy8gQm94IGJv
dWRhcnkgdGV4dCBzcGFjaW5nIGlzIHBvdGVudGlhbGx5IHJlZ2lzdGVyZWQgZm9yIGlubGluZSBi
b3ggc3RhcnQgaXRlbXMgd2hpY2ggYXBwZWFyIGxvZ2ljYWxseSBiZWZvcmUgYW4gaW5saW5lIHRl
eHQgaXRlbQorICAgICAgICAgICAgICAgIGF1dG8gcG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRl
eCA9IGlubGluZUl0ZW1JbmRleCAtIDE7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5saW5l
Qm94Qm91bmRhcnlUZXh0U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmZp
bmQocG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRleCk7IGlubGluZUJveEJvdW5kYXJ5VGV4dFNw
YWNpbmcgIT0gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MuZW5kKCkpCisgICAgICAgICAg
ICAgICAgICAgIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRT
cGFjaW5nLT52YWx1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgYXV0byYgZm9udENhc2NhZGUgPSBpbmxpbmVUZXh0SXRlbS0+c3R5bGUoKS5mb250
Q2FzY2FkZSgpOworICAgICAgICAgICAgYXV0byB3aWR0aCA9IElubGluZUxheW91dFVuaXQgeyB9
OworICAgICAgICAgICAgYXV0byBtYXlIYXZlR2x5cGhPdmVyZmxvdyA9IFsmXSB7CisgICAgICAg
ICAgICAgICAgaWYgKGN1cnJlbnRJbmxpbmVUZXh0Qm94ICE9ICZpbmxpbmVUZXh0SXRlbS0+aW5s
aW5lVGV4dEJveCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmxpbmVUZXh0Qm94
TWF5SGF2ZUdseXBoT3ZlcmZsb3cgPSAhaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKS5j
YW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSB8fCBmb250Q2FzY2FkZS5wcmltYXJ5Rm9udCgpLT5v
cmlnaW4oKSA9PSBGb250T3JpZ2luOjpSZW1vdGU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJl
bnRJbmxpbmVUZXh0Qm94ID0gJmlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5saW5lVGV4dEJv
eE1heUhhdmVHbHlwaE92ZXJmbG93OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmICht
YXlIYXZlR2x5cGhPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBn
bHlwaE92ZXJmbG93OworICAgICAgICAgICAgICAgIGdseXBoT3ZlcmZsb3cuY29tcHV0ZUJvdW5k
cyA9IHRydWU7CisgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoKmlubGlu
ZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxl
bmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAg
ICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldEdseXBoT3ZlcmZsb3coc3RkOjpjbGFtcChnbHlwaE92
ZXJmbG93LnRvcCwgMF9sdSwgMzFfbHUpLCBzdGQ6OmNsYW1wKGdseXBoT3ZlcmZsb3cuYm90dG9t
LCAwX2x1LCA3X2x1KSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB3aWR0
aCA9IFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwg
c3RhcnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWls
aW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpOwor
ICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKHdpZHRoICsgZXh0cmFJbmxpbmVU
ZXh0U3BhY2luZyk7CisgICAgICAgICAgICBoYW5kbGVUZXh0U3BhY2luZyhzcGFjaW5nU3RhdGUs
IHRyaW1tYWJsZVRleHRTcGFjaW5ncywgKmlubGluZVRleHRJdGVtLCBpbmxpbmVJdGVtSW5kZXgp
OwogICAgICAgICB9CiAgICAgICAgIHNwYWNpbmdTdGF0ZS5sYXN0Q2hhcmFjdGVyQ2xhc3NGcm9t
UHJldmlvdXNSdW4gPSBUZXh0U3BhY2luZzo6Q2hhcmFjdGVyQ2xhc3M6OlVuZGVmaW5lZDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCA3NmZiYTFkZDM1MjcuLmQxMjg1MzNmOTc3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTY1NCw3ICs2NTQsNyBAQCBib29s
IExpbmU6OnJlc3RvcmVUcmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNlKElubGluZUxheW91dFVuaXQg
dHJpbW1lZFRyYWlsaW5nV2hpdAogICAgIGF1dG8gcmVzdG9yZSA9IFsmXShhdXRvJiB0cmFpbGlu
Z1J1bikgewogICAgICAgICBBU1NFUlQodHJhaWxpbmdSdW4uaXNUZXh0KCkpOwogICAgICAgICBh
dXRvJiBsYXlvdXRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94Pih0cmFpbGluZ1J1bi5sYXlv
dXRCb3goKSk7Ci0gICAgICAgIGlmICh0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50LT5zdGFydCAr
IHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQtPmxlbmd0aCA9PSBsYXlvdXRCb3guY29udGVudCgp
Lmxlbmd0aCgpKSB7CisgICAgICAgIGlmICh0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50LnN0YXJ0
ICsgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC5sZW5ndGggPT0gbGF5b3V0Qm94LmNvbnRlbnQo
KS5sZW5ndGgoKSkgewogICAgICAgICAgICAgLy8gSXQgbG9va3MgbGlrZSB3ZSBkaWRuJ3QgX3Ry
aW1fIHRoaXMgdHJhaWxpbmcgcnVuIGJ1dCByZW1vdmVkIHRoZSBsYXQgcnVuIGluc3RlYWQgKGhh
cHBlbnMgd2l0aCBkZWRpY2F0ZWQgbGF5b3V0IGJveCkuCiAgICAgICAgICAgICAvLyBMZXQncyBw
dXQgdGhhdCBjb250ZW50IGJhY2sgYXMgdHJhaWxpbmcgcnVuLgogICAgICAgICAgICAgaWYgKGFw
cGVuZFRyYWlsaW5nSW5saW5lSXRlbUFzVHJhaWxpbmdSdW4ocnVucywgdHJpbW1lZFRyYWlsaW5n
V2hpdGVzcGFjZVdpZHRoLCBpbmxpbmVJdGVtUmFuZ2UsIGlubGluZUl0ZW1zKSkKQEAgLTY2NCw3
ICs2NjQsNyBAQCBib29sIExpbmU6OnJlc3RvcmVUcmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNlKElu
bGluZUxheW91dFVuaXQgdHJpbW1lZFRyYWlsaW5nV2hpdAogICAgICAgICB9CiAgICAgICAgIHRy
YWlsaW5nUnVuLm1fbG9naWNhbFdpZHRoICs9IHRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2VXaWR0
aDsKICAgICAgICAgLy8gVGhpcyBtdXN0IGJlIGNvbGxhcHNlZCB3aGl0ZXNwYWNlLgotICAgICAg
ICB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50LT5sZW5ndGggKz0gMTsKKyAgICAgICAgdHJhaWxp
bmdSdW4ubV90ZXh0Q29udGVudC5sZW5ndGggKz0gMTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIElubGluZUxheW91dFVuaXQgTGluZTo6VHJpbW1h
YmxlVHJhaWxpbmdDb250ZW50OjpyZW1vdmUoKQogICAgICAgICBBU1NFUlQocnVuLmlzV29yZEJy
ZWFrT3Bwb3J0dW5pdHkoKSB8fCBydW4uaXNMaW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpIHx8
IHJ1bi5pc0lubGluZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5saW5lQm94RW5kKCkgfHwgcnVuLmlz
TGluZUJyZWFrKCkgfHwgcnVuLmlzT3BhcXVlKCkpOwogICAgICAgICBydW4ubW92ZUhvcml6b250
YWxseSgtdHJpbW1lZFdpZHRoKTsKICAgICB9Ci0gICAgaWYgKCF0cmltbWFibGVSdW4udGV4dENv
bnRlbnQoKS0+bGVuZ3RoKSB7CisgICAgaWYgKCF0cmltbWFibGVSdW4udGV4dENvbnRlbnQoKS5s
ZW5ndGgpIHsKICAgICAgICAgLy8gVGhpcyB0cmltbWFibGUgcnVuIGlzIGZ1bGx5IGNvbGxhcHNl
ZCBub3cgKGUuZy4gPGRpdj48aW1nPiAgICA8c3Bhbj48L3NwYW4+PC9kaXY+KS4KICAgICAgICAg
Ly8gV2UgZG9uJ3QgbmVlZCB0byBrZWVwIGl0IGFyb3VuZCBhbnltb3JlLgogICAgICAgICBtX3J1
bnMucmVtb3ZlQXQoKm1fZmlyc3RUcmltbWFibGVSdW5JbmRleCk7CkBAIC04MDEsNjIgKzgwMSw2
NyBAQCBzdGQ6Om9wdGlvbmFsPExpbmU6OlJ1bjo6VHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlPiBM
aW5lOjpSdW46OnRyYWlsaW5nV2hpdGVzcGFjZQogCiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxp
bmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91
dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVM
YXlvdXRVbml0IHRleHRTcGFjaW5nQWRqdXN0bWVudCkKICAgICA6IG1fdHlwZSh0b0xpbmVSdW5U
eXBlKGlubGluZUl0ZW0pKQotICAgICwgbV9sYXlvdXRCb3goJmlubGluZUl0ZW0ubGF5b3V0Qm94
KCkpCi0gICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVm
dCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAgICAsIG1fYmlkaUxldmVs
KGlubGluZUl0ZW0uYmlkaUxldmVsKCkpCiAgICAgLCBtX3RleHRTcGFjaW5nQWRqdXN0bWVudCh0
ZXh0U3BhY2luZ0FkanVzdG1lbnQpCisgICAgLCBtX2xheW91dEJveCgmaW5saW5lSXRlbS5sYXlv
dXRCb3goKSkKKyAgICAsIG1fc3R5bGUoc3R5bGUpCiB7CiB9CiAKIExpbmU6OlJ1bjo6UnVuKGNv
bnN0IElubGluZUl0ZW0mIHplcm9XaWRodElubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCkKICAgICA6IG1fdHlwZSh0b0xpbmVS
dW5UeXBlKHplcm9XaWRodElubGluZUl0ZW0pKQotICAgICwgbV9sYXlvdXRCb3goJnplcm9XaWRo
dElubGluZUl0ZW0ubGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwgbV9s
b2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fYmlkaUxldmVsKHplcm9XaWRodElubGlu
ZUl0ZW0uYmlkaUxldmVsKCkpCisgICAgLCBtX2xheW91dEJveCgmemVyb1dpZGh0SW5saW5lSXRl
bS5sYXlvdXRCb3goKSkKKyAgICAsIG1fc3R5bGUoc3R5bGUpCiB7CiB9CiAKIExpbmU6OlJ1bjo6
UnVuKGNvbnN0IElubGluZUl0ZW0mIGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0sIElubGluZUxh
eW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxp
bmVMYXlvdXRVbml0IHRleHRTcGFjaW5nQWRqdXN0bWVudCkKICAgICA6IG1fdHlwZShUeXBlOjpM
aW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCkKLSAgICAsIG1fbGF5b3V0Qm94KCZsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShsaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hJdGVtLnN0eWxlKCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQog
ICAgICwgbV9sb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQogICAgICwgbV9iaWRpTGV2ZWwobGlu
ZVNwYW5uaW5nSW5saW5lQm94SXRlbS5iaWRpTGV2ZWwoKSkKICAgICAsIG1fdGV4dFNwYWNpbmdB
ZGp1c3RtZW50KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKKyAgICAsIG1fbGF5b3V0Qm94KCZsaW5l
U3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShsaW5lU3Bh
bm5pbmdJbmxpbmVCb3hJdGVtLnN0eWxlKCkpCiB7CiAgICAgQVNTRVJUKGxpbmVTcGFubmluZ0lu
bGluZUJveEl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpKTsKIH0KIAogTGluZTo6UnVuOjpSdW4oY29u
c3QgSW5saW5lU29mdExpbmVCcmVha0l0ZW0mIHNvZnRMaW5lQnJlYWtJdGVtLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQpCiAgICAgOiBtX3R5
cGUoVHlwZTo6U29mdExpbmVCcmVhaykKLSAgICAsIG1fbGF5b3V0Qm94KCZzb2Z0TGluZUJyZWFr
SXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX2xvZ2ljYWxM
ZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9iaWRpTGV2ZWwoc29mdExpbmVCcmVha0l0ZW0uYmlk
aUxldmVsKCkpCisgICAgLCBtX2xheW91dEJveCgmc29mdExpbmVCcmVha0l0ZW0ubGF5b3V0Qm94
KCkpCisgICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwgbV90ZXh0Q29udGVudCh7IHNvZnRMaW5l
QnJlYWtJdGVtLnBvc2l0aW9uKCksIDEgfSkKIHsKIH0KIAogTGluZTo6UnVuOjpSdW4oY29uc3Qg
SW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdp
ZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRleHRTcGFjaW5nQWRqdXN0bWVudCwgc3RkOjpvcHRpb25h
bDxMaW5lOjpTaGFwaW5nQm91bmRhcnk+IHNoYXBpbmdCb3VuZGFyeSkKICAgICA6IG1fdHlwZShp
bmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IFR5cGU6OldvcmRTZXBhcmF0b3IgOiBp
bmxpbmVUZXh0SXRlbS5pc1F1aXJrTm9uQnJlYWtpbmdTcGFjZSgpID8gVHlwZTo6Tm9uQnJlYWtp
bmdTcGFjZSA6IFR5cGU6OlRleHQpCi0gICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4dEl0ZW0u
bGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0eWxlKHN0eWxlKQorICAgICwgbV9zaGFwaW5nQm91bmRh
cnkoc2hhcGluZ0JvdW5kYXJ5LnZhbHVlX29yKFNoYXBpbmdCb3VuZGFyeTo6Tm90QXBwbGljYWJs
ZSkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9sb2dpY2FsV2lk
dGgobG9naWNhbFdpZHRoKQogICAgICwgbV9iaWRpTGV2ZWwoaW5saW5lVGV4dEl0ZW0uYmlkaUxl
dmVsKCkpCi0gICAgLCBtX3NoYXBpbmdCb3VuZGFyeShzaGFwaW5nQm91bmRhcnkpCiAgICAgLCBt
X3RleHRTcGFjaW5nQWRqdXN0bWVudCh0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCisgICAgLCBtX2xh
eW91dEJveCgmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKHN0eWxl
KQogewogICAgIGF1dG8gbGVuZ3RoID0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CiAgICAgYXV0
byB3aGl0ZXNwYWNlVHlwZSA9IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoaW5saW5lVGV4dEl0ZW0p
OworCiAgICAgaWYgKHdoaXRlc3BhY2VUeXBlKSB7CiAgICAgICAgIGlmICgqd2hpdGVzcGFjZVR5
cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQpCiAgICAgICAgICAgICBs
ZW5ndGggPSAgMTsKLSAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7ICp3aGl0ZXNwYWNl
VHlwZSwgbG9naWNhbFdpZHRoLCBsZW5ndGggfTsKKyAgICAgICAgbV90cmFpbGluZ1doaXRlc3Bh
Y2UgPSB7ICp3aGl0ZXNwYWNlVHlwZSwgbGVuZ3RoLCBsb2dpY2FsV2lkdGggfTsKKyAgICB9IGVs
c2UgeworICAgICAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBpbmxpbmVUZXh0SXRlbS5nbHlwaE92
ZXJmbG93KCk7CisgICAgICAgIGlmIChnbHlwaE92ZXJmbG93LmZpcnN0IHx8IGdseXBoT3ZlcmZs
b3cuc2Vjb25kKQorICAgICAgICAgICAgbV9nbHlwaE92ZXJmbG93ID0geyBnbHlwaE92ZXJmbG93
LmZpcnN0LCBnbHlwaE92ZXJmbG93LnNlY29uZCB9OwogICAgIH0KICAgICBtX3RleHRDb250ZW50
ID0geyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBsZW5ndGggfTsKIH0KQEAgLTg2Nyw0MiArODcy
LDQ2IEBAIHZvaWQgTGluZTo6UnVuOjpleHBhbmQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGlu
ZVRleHRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvCiAgICAgQVNTRVJUKGlzVGV4dCgpICYmIGlu
bGluZVRleHRJdGVtLmlzVGV4dCgpKTsKICAgICBBU1NFUlQobV9sYXlvdXRCb3ggPT0gJmlubGlu
ZVRleHRJdGVtLmxheW91dEJveCgpKTsKICAgICBBU1NFUlQobV9iaWRpTGV2ZWwgPT0gaW5saW5l
VGV4dEl0ZW0uYmlkaUxldmVsKCkpOwotICAgIEFTU0VSVCghbV9zaGFwaW5nQm91bmRhcnkgfHwg
Km1fc2hhcGluZ0JvdW5kYXJ5ICE9IFNoYXBpbmdCb3VuZGFyeTo6RW5kKTsKKyAgICBBU1NFUlQo
bV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNhYmxlIHx8IG1f
c2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6U3RhcnQgfHwgbV9zaGFwaW5nQm91
bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpJbnNpZGUpOwogCiAgICAgbV9sb2dpY2FsV2lkdGgg
Kz0gbG9naWNhbFdpZHRoOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRl
c3BhY2VUeXBlKGlubGluZVRleHRJdGVtKTsKIAogICAgIGlmICghd2hpdGVzcGFjZVR5cGUpIHsK
ICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07Ci0gICAgICAgIG1fdGV4dENvbnRl
bnQtPmxlbmd0aCArPSBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKKyAgICAgICAgbV90ZXh0Q29u
dGVudC5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CiAgICAgICAgIG1fbGFzdE5v
bldoaXRlc3BhY2VDb250ZW50U3RhcnQgPSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpOworCisgICAg
ICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsK
KyAgICAgICAgaWYgKGdseXBoT3ZlcmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQp
CisgICAgICAgICAgICBtX2dseXBoT3ZlcmZsb3cgPSB7IHN0ZDo6bWF4KG1fZ2x5cGhPdmVyZmxv
dy50b3AsIGdseXBoT3ZlcmZsb3cuZmlyc3QpLCBzdGQ6Om1heChtX2dseXBoT3ZlcmZsb3cuYm90
dG9tLCBnbHlwaE92ZXJmbG93LnNlY29uZCkgfTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBhdXRvIHdoaXRlc3BhY2VXaWR0aCA9ICFtX3RyYWlsaW5nV2hpdGVzcGFjZSA/IGxvZ2ljYWxX
aWR0aCA6IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCArIGxvZ2ljYWxXaWR0aDsKKyAgICBh
dXRvIHdoaXRlc3BhY2VXaWR0aCA9ICFoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSA/IGxvZ2ljYWxX
aWR0aCA6IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoICsgbG9naWNhbFdpZHRoOwogICAgIGF1
dG8gdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoID0gKndoaXRlc3BhY2VUeXBlID09IFRyYWlsaW5n
V2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkID8gMSA6IGlubGluZVRleHRJdGVtLmxlbmd0aCgp
OyAKLSAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCB3aGl0ZXNw
YWNlV2lkdGgsIHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCB9OwotICAgIG1fdGV4dENvbnRlbnQt
Pmxlbmd0aCArPSB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGg7CisgICAgbV90cmFpbGluZ1doaXRl
c3BhY2UgPSB7ICp3aGl0ZXNwYWNlVHlwZSwgdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoLCB3aGl0
ZXNwYWNlV2lkdGggfTsKKyAgICBtX3RleHRDb250ZW50Lmxlbmd0aCArPSB0cmFpbGluZ1doaXRl
c3BhY2VMZW5ndGg7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGluZTo6UnVuPiBMaW5lOjpSdW46OmRl
dGFjaFRyYWlsaW5nV2hpdGVzcGFjZSgpCiB7Ci0gICAgaWYgKCFtX3RyYWlsaW5nV2hpdGVzcGFj
ZSB8fCBpc1doaXRlc3BhY2VPbmx5KCkpCisgICAgaWYgKCFoYXNUcmFpbGluZ1doaXRlc3BhY2Uo
KSB8fCBpc1doaXRlc3BhY2VPbmx5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBBU1NF
UlQobV90cmFpbGluZ1doaXRlc3BhY2UtPmxlbmd0aCA8IG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7
CisgICAgQVNTRVJUKG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCA8IG1fdGV4dENvbnRlbnQu
bGVuZ3RoKTsKICAgICBhdXRvIHRyYWlsaW5nV2hpdGVzcGFjZVJ1biA9ICp0aGlzOwogCi0gICAg
YXV0byBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5ndGggPSBtX3RleHRDb250ZW50LT5s
ZW5ndGggLSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoOwotICAgIHRyYWlsaW5nV2hpdGVz
cGFjZVJ1bi5tX3RleHRDb250ZW50ID0geyBtX3RleHRDb250ZW50LT5zdGFydCArIGxlYWRpbmdO
b25XaGl0ZXNwYWNlQ29udGVudExlbmd0aCwgbV90cmFpbGluZ1doaXRlc3BhY2UtPmxlbmd0aCwg
ZmFsc2UgfTsKKyAgICBhdXRvIGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aCA9IG1f
dGV4dENvbnRlbnQubGVuZ3RoIC0gbV90cmFpbGluZ1doaXRlc3BhY2UubGVuZ3RoOworICAgIHRy
YWlsaW5nV2hpdGVzcGFjZVJ1bi5tX3RleHRDb250ZW50ID0geyBtX3RleHRDb250ZW50LnN0YXJ0
ICsgbGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3RoLCBtX3RyYWlsaW5nV2hpdGVzcGFj
ZS5sZW5ndGgsIGZhbHNlIH07CiAKLSAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9sb2dpY2Fs
V2lkdGggPSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGg7Ci0gICAgdHJhaWxpbmdXaGl0ZXNw
YWNlUnVuLm1fbG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHQoKSAtIG1fdHJhaWxpbmdXaGl0ZXNw
YWNlLT53aWR0aDsKKyAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9sb2dpY2FsV2lkdGggPSBt
X3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKKyAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9s
b2dpY2FsTGVmdCA9IGxvZ2ljYWxSaWdodCgpIC0gbV90cmFpbGluZ1doaXRlc3BhY2Uud2lkdGg7
CiAKICAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07
CiAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3Rh
cnQgPSB7IH07CiAKICAgICBtX2xvZ2ljYWxXaWR0aCAtPSB0cmFpbGluZ1doaXRlc3BhY2VSdW4u
bG9naWNhbFdpZHRoKCk7Ci0gICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoID0gbGVhZGluZ05vbldo
aXRlc3BhY2VDb250ZW50TGVuZ3RoOworICAgIG1fdGV4dENvbnRlbnQubGVuZ3RoID0gbGVhZGlu
Z05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3RoOwogICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0g
eyB9OwogCiAgICAgcmV0dXJuIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bjsKQEAgLTkzMSwyNSArOTQw
LDI1IEBAIElubGluZUxheW91dFVuaXQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNw
YWNpbmcoKQogCiBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0
ZXNwYWNlKCkKIHsKLSAgICBBU1NFUlQobV90cmFpbGluZ1doaXRlc3BhY2UpOworICAgIEFTU0VS
VChoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSk7CiAgICAgLy8gQWNjb3JkaW5nIHRvIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9jc3MtdGV4dC0zLyN3aGl0ZS1zcGFjZS1wcm9wZXJ0eSBtYXRyaXgKICAg
ICAvLyBUcmltbWFibGUgd2hpdGVzcGFjZSBpcyBhbHdheXMgY29sbGFwc2libGUgc28gdGhlIGxl
bmd0aCBvZiB0aGUgdHJhaWxpbmcgdHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMgYWx3YXlzIDEgKG9y
IG5vbi1leGlzdGVudCkuCi0gICAgQVNTRVJUKG1fdGV4dENvbnRlbnQgJiYgbV90ZXh0Q29udGVu
dC0+bGVuZ3RoKTsKKyAgICBBU1NFUlQoaXNUZXh0KCkgJiYgbV90ZXh0Q29udGVudC5sZW5ndGgp
OwogICAgIGNvbnN0ZXhwciBzaXplX3QgdHJhaWxpbmdUcmltbWFibGVDb250ZW50TGVuZ3RoID0g
MTsKIAotICAgIGF1dG8gdHJpbW1lZFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRo
OworICAgIGF1dG8gdHJpbW1lZFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2Uud2lkdGg7CiAg
ICAgaWYgKG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgJiYgaW5saW5lRGlyZWN0aW9u
KCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKSB7CiAgICAgICAgIC8vIFdoaWxlIExUUiBjb250ZW50
IGNvdWxkIGFsc28gc3VmZmVyIGZyb20gc2xpZ2h0bHkgaW5jb3JyZWN0IGNvbnRlbnQgd2lkdGgg
YWZ0ZXIgdHJpbW1pbmcgdHJhaWxpbmcgd2hpdGVzcGFjZSAoc2VlIFRleHRVdGlsOjp3aWR0aCkK
ICAgICAgICAgLy8gaXQgaGFyZGx5IHByb2R1Y2VzIHZpc3VhbGx5IG9ic2VydmFibGUgcmVzdWx0
LgogICAgICAgICAvLyBGSVhNRTogVGhpcyBtYXkgc3RpbGwgaW5jb3JyZWN0bHkgbGVhdmUgc29t
ZSBjb250ZW50IG9uIHRoZSBsaW5lICh2cy4gcmUtbWVhc3VyaW5nIGFsc28gYXQgOjpleHBhbmQp
LgogICAgICAgICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4o
Km1fbGF5b3V0Qm94KTsKICAgICAgICAgYXV0byBzdGFydFBvc2l0aW9uID0gKm1fbGFzdE5vbldo
aXRlc3BhY2VDb250ZW50U3RhcnQ7Ci0gICAgICAgIGF1dG8gZW5kUG9zaXRpb24gPSBtX3RleHRD
b250ZW50LT5zdGFydCArIG1fdGV4dENvbnRlbnQtPmxlbmd0aDsKKyAgICAgICAgYXV0byBlbmRQ
b3NpdGlvbiA9IG1fdGV4dENvbnRlbnQuc3RhcnQgKyBtX3RleHRDb250ZW50Lmxlbmd0aDsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoc3RhcnRQb3NpdGlvbiA8IGVuZFBvc2l0aW9uIC0gdHJhaWxp
bmdUcmltbWFibGVDb250ZW50TGVuZ3RoKTsKICAgICAgICAgaWYgKGlubGluZVRleHRCb3guY29u
dGVudCgpW2VuZFBvc2l0aW9uIC0gMV0gPT0gc3BhY2UpCiAgICAgICAgICAgICB0cmltbWVkV2lk
dGggPSBUZXh0VXRpbDo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoaW5saW5lVGV4dEJveCwgbV9z
dHlsZS5mb250Q2FzY2FkZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CiAgICAgfQot
ICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCAtPSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5n
dGg7CisgICAgbV90ZXh0Q29udGVudC5sZW5ndGggLT0gdHJhaWxpbmdUcmltbWFibGVDb250ZW50
TGVuZ3RoOwogICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyB9OwogICAgIHNocmlua0hvcml6
b250YWxseSh0cmltbWVkV2lkdGgpOwogICAgIHJldHVybiB0cmltbWVkV2lkdGg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmgKaW5kZXggMWViMTMxMTJkMDdiLi5iZmJmNmI3MWU3OGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBp
bml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVtLCAxPiYgbGluZVNwYW5uaW5nSW5saW5l
Qm94ZXMsIGJvb2wgaXNGaXJzdEZvcm1hdHRlZExpbmUpOwogCi0gICAgZW51bSBjbGFzcyBTaGFw
aW5nQm91bmRhcnkgOiB1aW50OF90IHsgU3RhcnQsIEluc2lkZSwgRW5kIH07CisgICAgZW51bSBj
bGFzcyBTaGFwaW5nQm91bmRhcnkgOiB1aW50OF90IHsgTm90QXBwbGljYWJsZSwgU3RhcnQsIElu
c2lkZSwgRW5kIH07CiAgICAgdm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgc3RkOjpv
cHRpb25hbDxTaGFwaW5nQm91bmRhcnk+KTsKICAgICB2b2lkIGFwcGVuZFRleHRGYXN0KGNvbnN0
IElubGluZVRleHRJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCk7IC8vIFJlc2VydmVkIGZvciBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyCiAg
ICAgdm9pZCBhcHBlbmRBdG9taWNJbmxpbmVCb3goY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJl
bmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGgpOwpAQCAt
MTI0LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBpc09wYXF1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpPcGFxdWU7IH0KICAgICAgICAgYm9vbCBpc0Jsb2NrKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkJsb2NrOyB9CiAKLSAgICAgICAgYm9vbCBp
c0NvbnRlbnRmdWwoKSBjb25zdCB7IHJldHVybiAoaXNUZXh0KCkgJiYgdGV4dENvbnRlbnQoKS0+
bGVuZ3RoKSB8fCBpc0F0b21pY0lubGluZUJveCgpIHx8IGlzTGluZUJyZWFrKCkgfHwgaXNMaXN0
TWFya2VyKCkgfHwgaXNCbG9jaygpOyB9CisgICAgICAgIGJvb2wgaXNDb250ZW50ZnVsKCkgY29u
c3QgeyByZXR1cm4gKGlzVGV4dCgpICYmIHRleHRDb250ZW50KCkubGVuZ3RoKSB8fCBpc0F0b21p
Y0lubGluZUJveCgpIHx8IGlzTGluZUJyZWFrKCkgfHwgaXNMaXN0TWFya2VyKCkgfHwgaXNCbG9j
aygpOyB9CiAgICAgICAgIGJvb2wgaXNHZW5lcmF0ZWQoKSBjb25zdCB7IHJldHVybiBpc0xpc3RN
YXJrZXIoKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0NvbnRlbnRmdWxPckhhc0RlY29yYXRp
b24oY29uc3QgUnVuJiwgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKIApAQCAtMTM0
LDcgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHNpemVfdCBsZW5ndGggeyAwIH07CiAg
ICAgICAgICAgICBib29sIG5lZWRzSHlwaGVuIHsgZmFsc2UgfTsKICAgICAgICAgfTsKLSAgICAg
ICAgY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0PiYgdGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX3RleHRDb250ZW50OyB9CisgICAgICAgIGNvbnN0IFRleHQmIHRleHRDb250ZW50KCkgY29u
c3QgeyByZXR1cm4gbV90ZXh0Q29udGVudDsgfQogCiAgICAgICAgIElubGluZUxheW91dFVuaXQg
bG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsV2lkdGg7IH0KICAgICAgICAg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbExl
ZnQ7IH0KQEAgLTE0Miw5ICsxNDIsMTcgQEAgcHVibGljOgogCiAgICAgICAgIGNvbnN0IElubGlu
ZURpc3BsYXk6OkJveDo6RXhwYW5zaW9uJiBleHBhbnNpb24oKSBjb25zdCB7IHJldHVybiBtX2V4
cGFuc2lvbjsgfQogCi0gICAgICAgIGJvb2wgaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2UuaGFzX3ZhbHVlKCk7IH0KLSAgICAgICAgSW5s
aW5lTGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHJhaWxpbmdXaGl0ZXNwYWNlID8gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoIDogMC5mOyB9
Ci0gICAgICAgIGJvb2wgaXNXaGl0ZXNwYWNlT25seSgpIGNvbnN0IHsgcmV0dXJuIGhhc1RyYWls
aW5nV2hpdGVzcGFjZSgpICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT5sZW5ndGggPT0gbV90ZXh0
Q29udGVudC0+bGVuZ3RoOyB9CisgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkg
Y29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2UudHlwZSAhPSBUcmFpbGluZ1doaXRl
c3BhY2U6OlR5cGU6Ok5vdEFwcGxpY2FibGU7IH0KKyAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB0
cmFpbGluZ1doaXRlc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNw
YWNlLndpZHRoOyB9CisgICAgICAgIGJvb2wgaXNXaGl0ZXNwYWNlT25seSgpIGNvbnN0IHsgcmV0
dXJuIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0
aCA9PSBtX3RleHRDb250ZW50Lmxlbmd0aDsgfQorCisgICAgICAgIHN0cnVjdCBHbHlwaE92ZXJm
bG93IHsKKyAgICAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICF0b3AgJiYg
IWJvdHRvbTsgfQorCisgICAgICAgICAgICB1aW50OF90IHRvcCA6IDUgeyAwIH07CisgICAgICAg
ICAgICB1aW50OF90IGJvdHRvbTogMyB7IDAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgR2x5cGhP
dmVyZmxvdyBnbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9nbHlwaE92ZXJmbG93OyB9
CiAKICAgICAgICAgaW5saW5lIFRleHREaXJlY3Rpb24gaW5saW5lRGlyZWN0aW9uKCkgY29uc3Q7
CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbGV0dGVyU3BhY2luZygpIGNvbnN0OwpAQCAtMTUz
LDEwICsxNjEsMTAgQEAgcHVibGljOgogCiAgICAgICAgIFVCaURpTGV2ZWwgYmlkaUxldmVsKCkg
Y29uc3QgeyByZXR1cm4gbV9iaWRpTGV2ZWw7IH0KIAotICAgICAgICBib29sIGlzU2hhcGluZ0Jv
dW5kYXJ5U3RhcnQoKSBjb25zdCB7IHJldHVybiBpc1NoYXBpbmdCb3VuZGFyeSgpICYmICptX3No
YXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OlN0YXJ0OyB9Ci0gICAgICAg
IGJvb2wgaXNTaGFwaW5nQm91bmRhcnlFbmQoKSBjb25zdCB7IHJldHVybiBpc1NoYXBpbmdCb3Vu
ZGFyeSgpICYmICptX3NoYXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OkVu
ZDsgfQotICAgICAgICBib29sIGlzSW5zaWRlU2hhcGluZ0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1
cm4gaXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hh
cGluZ0JvdW5kYXJ5OjpJbnNpZGU7IH0KLSAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5Lmhhc192YWx1ZSgpOyB9CisgICAgICAg
IGJvb2wgaXNTaGFwaW5nQm91bmRhcnlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0Jv
dW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6U3RhcnQ7IH0KKyAgICAgICAgYm9vbCBp
c1NoYXBpbmdCb3VuZGFyeUVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ID09
IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6RW5kOyB9CisgICAgICAgIGJvb2wgaXNJbnNpZGVTaGFw
aW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpT
aGFwaW5nQm91bmRhcnk6Okluc2lkZTsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5
KCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91bmRhcnkgIT0gTGluZTo6U2hhcGluZ0JvdW5k
YXJ5OjpOb3RBcHBsaWNhYmxlOyB9CiAKICAgICAgICAgLy8gRklYTUU6IE1heWJlIGFkZCBjcmVh
dGUgZnVuY3Rpb25zIGludGVhZD8KICAgICAgICAgUnVuKGNvbnN0IElubGluZUl0ZW0mLCBjb25z
dCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQpOwpAQCAtMTgwLDE3
ICsxODgsMTggQEAgcHVibGljOgogICAgICAgICB2b2lkIHNldEJpZGlMZXZlbChVQmlEaUxldmVs
IGJpZGlMZXZlbCkgeyBtX2JpZGlMZXZlbCA9IGJpZGlMZXZlbDsgfQogCiAgICAgICAgIHN0cnVj
dCBUcmFpbGluZ1doaXRlc3BhY2UgewotICAgICAgICAgICAgZW51bSBjbGFzcyBUeXBlIHsKKyAg
ICAgICAgICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICAgICAgICAgIE5v
dEFwcGxpY2FibGUsCiAgICAgICAgICAgICAgICAgTm90Q29sbGFwc2libGUsCiAgICAgICAgICAg
ICAgICAgQ29sbGFwc2libGUsCiAgICAgICAgICAgICAgICAgQ29sbGFwc2VkCiAgICAgICAgICAg
ICB9OwotICAgICAgICAgICAgVHlwZSB0eXBlIHsgVHlwZTo6Tm90Q29sbGFwc2libGUgfTsKLSAg
ICAgICAgICAgIElubGluZUxheW91dFVuaXQgd2lkdGggeyAwIH07Ci0gICAgICAgICAgICBzaXpl
X3QgbGVuZ3RoIHsgMCB9OworICAgICAgICAgICAgVHlwZSB0eXBlIHsgVHlwZTo6Tm90QXBwbGlj
YWJsZSB9OworICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCA6IDI0IHsgMCB9OworICAgICAgICAg
ICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCB7IDAuZiB9OwogICAgICAgICB9OwotICAgICAgICBi
b29sIGhhc0NvbGxhcHNpYmxlVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90
cmFpbGluZ1doaXRlc3BhY2UgJiYgKG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT50eXBlID09IFRyYWls
aW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2libGUgfHwgaGFzQ29sbGFwc2VkVHJhaWxpbmdX
aGl0ZXNwYWNlKCkpOyB9Ci0gICAgICAgIGJvb2wgaGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0ZXNw
YWNlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2UgJiYgbV90cmFpbGluZ1do
aXRlc3BhY2UtPnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQ7IH0K
KyAgICAgICAgYm9vbCBoYXNDb2xsYXBzaWJsZVRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsg
cmV0dXJuIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpICYmIChtX3RyYWlsaW5nV2hpdGVzcGFjZS50
eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2libGUgfHwgaGFzQ29sbGFw
c2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOyB9CisgICAgICAgIGJvb2wgaGFzQ29sbGFwc2VkVHJh
aWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkg
JiYgbV90cmFpbGluZ1doaXRlc3BhY2UudHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6
OkNvbGxhcHNlZDsgfQogICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUcmFpbGluZ1doaXRl
c3BhY2U6OlR5cGU+IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoY29uc3QgSW5saW5lVGV4dEl0ZW0m
KTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCByZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKTsK
IApAQCAtMjAwLDE4ICsyMDksMTkgQEAgcHVibGljOgogICAgICAgICBJbmxpbmVMYXlvdXRVbml0
IHRyYWlsaW5nTGV0dGVyU3BhY2luZygpIGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0
IHJlbW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygpOwogCisgICAgICAgIFRyYWlsaW5nV2hpdGVz
cGFjZSBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07CiAgICAgICAgIFR5cGUgbV90eXBlIHsgVHlw
ZTo6VGV4dCB9OwotICAgICAgICBjb25zdCBCb3gqIG1fbGF5b3V0Qm94IHsgbnVsbHB0ciB9Owot
ICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbV9zdHlsZTsKKyAgICAgICAgTGluZTo6U2hhcGlu
Z0JvdW5kYXJ5IG1fc2hhcGluZ0JvdW5kYXJ5IHsgTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpOb3RB
cHBsaWNhYmxlIH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2FsTGVmdCB7IDAg
fTsKKyAgICAgICAgTWFya2FibGU8c2l6ZV90PiBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0
YXJ0IHsgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aCB7IDAgfTsK
LSAgICAgICAgSW5saW5lRGlzcGxheTo6Qm94OjpFeHBhbnNpb24gbV9leHBhbnNpb247CiAgICAg
ICAgIFVCaURpTGV2ZWwgbV9iaWRpTGV2ZWwgeyBVQklESV9ERUZBVUxUX0xUUiB9OwotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFRyYWlsaW5nV2hpdGVzcGFjZT4gbV90cmFpbGluZ1doaXRlc3BhY2Ug
eyB9OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gbV9sYXN0Tm9uV2hpdGVzcGFjZUNv
bnRlbnRTdGFydCB7IH07Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VGV4dD4gbV90ZXh0Q29udGVu
dDsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxMaW5lOjpTaGFwaW5nQm91bmRhcnk+IG1fc2hhcGlu
Z0JvdW5kYXJ5OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fdGV4dFNwYWNpbmdBZGp1c3Rt
ZW50IHsgMCB9OworICAgICAgICBHbHlwaE92ZXJmbG93IG1fZ2x5cGhPdmVyZmxvdzsKKyAgICAg
ICAgY29uc3QgQm94KiBtX2xheW91dEJveCB7IG51bGxwdHIgfTsKKyAgICAgICAgY29uc3QgUmVu
ZGVyU3R5bGUmIG1fc3R5bGU7CisgICAgICAgIElubGluZURpc3BsYXk6OkJveDo6RXhwYW5zaW9u
IG1fZXhwYW5zaW9uOworICAgICAgICBUZXh0IG1fdGV4dENvbnRlbnQ7CiAgICAgfTsKICAgICB1
c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwgMTA+OwogICAgIGNvbnN0IFJ1bkxpc3QmIHJ1bnMo
KSBjb25zdCB7IHJldHVybiBtX3J1bnM7IH0KQEAgLTM4Miw4ICszOTIsOCBAQCBpbmxpbmUgc2l6
ZV90IExpbmU6OkhhbmdpbmdDb250ZW50OjpsZW5ndGgoKSBjb25zdAogCiBpbmxpbmUgdm9pZCBM
aW5lOjpSdW46OnNldE5lZWRzSHlwaGVuKElubGluZUxheW91dFVuaXQgaHlwaGVuTG9naWNhbFdp
ZHRoKQogewotICAgIEFTU0VSVChtX3RleHRDb250ZW50KTsKLSAgICBtX3RleHRDb250ZW50LT5u
ZWVkc0h5cGhlbiA9IHRydWU7CisgICAgQVNTRVJUKGlzVGV4dCgpKTsKKyAgICBtX3RleHRDb250
ZW50Lm5lZWRzSHlwaGVuID0gdHJ1ZTsKICAgICBtX2xvZ2ljYWxXaWR0aCArPSBoeXBoZW5Mb2dp
Y2FsV2lkdGg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVy
LmNwcAppbmRleCA4NjU2YTEwYzRkZjguLmJlODg3ZGI2YjFmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIFRleHRV
dGlsOjpGYWxsYmFja0ZvbnRMaXN0IExpbmVCb3hCdWlsZGVyOjpjb2xsZWN0RmFsbGJhY2tGb250
cyhjb25zdCBJbmxpbmVMZXZlCiAgICAgICAgIC8vIFNpbXBsaWZpZWQgdGV4dCBtZWFzdXJpbmcg
d29ya3Mgd2l0aCBwcmltYXJ5IGZvbnQgb25seS4KICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
Ci0gICAgYXV0byB0ZXh0ID0gKnJ1bi50ZXh0Q29udGVudCgpOworICAgIGF1dG8mIHRleHQgPSBy
dW4udGV4dENvbnRlbnQoKTsKICAgICBhdXRvIGZhbGxiYWNrRm9udHMgPSBUZXh0VXRpbDo6ZmFs
bGJhY2tGb250c0ZvclRleHQoU3RyaW5nVmlldyhpbmxpbmVUZXh0Qm94LmNvbnRlbnQoKSkuc3Vi
c3RyaW5nKHRleHQuc3RhcnQsIHRleHQubGVuZ3RoKSwgc3R5bGUsIHRleHQubmVlZHNIeXBoZW4g
PyBUZXh0VXRpbDo6SW5jbHVkZUh5cGhlbjo6WWVzIDogVGV4dFV0aWw6OkluY2x1ZGVIeXBoZW46
Ok5vKTsKICAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5SWdub3JpbmdOdWxsUmVmZXJlbmNl
cygpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtNjExLDkgKzYxMSw5IEBAIHZvaWQgTGluZUJv
eEJ1aWxkZXI6OmFkanVzdElubGluZUJveEhlaWdodHNGb3JMaW5lQm94Q29udGFpbklmQXBwbGlj
YWJsZShMaW5lQm94CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGF1
dG8mIHRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihydW4ubGF5b3V0Qm94KCkpOwot
ICAgICAgICAgICAgYXV0byB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOworICAgICAg
ICAgICAgYXV0byYgdGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsKICAgICAgICAgICAg
IGF1dG8mIHN0eWxlID0gaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/IHRleHRCb3guZmlyc3RMaW5l
U3R5bGUoKSA6IHRleHRCb3guc3R5bGUoKTsKLSAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNj
ZW50RGVzY2VudEZvclJ1biA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQo
U3RyaW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250ZW50LT5zdGFy
dCwgdGV4dENvbnRlbnQtPmxlbmd0aCksIHN0eWxlLCB0ZXh0Qm94LnNob3VsZFVzZVNpbXBsZUds
eXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3Zl
cmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZs
b3dDb2RlUGF0aDo6Tm8pOworICAgICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnREZXNjZW50
Rm9yUnVuID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3
KHRleHRCb3guY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQuc3RhcnQsIHRleHRDb250
ZW50Lmxlbmd0aCksIHN0eWxlLCB0ZXh0Qm94LnNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dD
b2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0
aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6
Tm8pOwogCiAgICAgICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBsaW5lQm94LnBhcmVu
dElubGluZUJveChydW4pOwogICAgICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnREZXNjZW50
Rm9ySW5saW5lQm94ID0gaW5saW5lQm94Qm91bmRzTWFwLmdldCgmcGFyZW50SW5saW5lQm94KTsK
QEAgLTYzNyw5ICs2MzcsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hI
ZWlnaHRzRm9yTGluZUJveENvbnRhaW5JZkFwcGxpY2FibGUoTGluZUJveAogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5s
aW5lVGV4dEJveD4ocnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRl
bnQgPSBydW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0g
cnVuLnRleHRDb250ZW50KCk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3Jt
YXR0ZWRMaW5lKCkgPyB0ZXh0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiB0ZXh0Qm94LnN0eWxlKCk7
Ci0gICAgICAgICAgICBhdXRvIGFzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5n
R2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmlu
Zyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpLCBzdHlsZSwgdGV4dEJv
eC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRV
c2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1dG8gYXNj
ZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3Ry
aW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250ZW50LnN0YXJ0LCB0
ZXh0Q29udGVudC5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92
ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93
Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29k
ZVBhdGg6Ok5vKTsKIAogICAgICAgICAgICAgaW5pdGlhbExldHRlckRlc2NlbnQgPSBhc2NlbnRB
bmREZXNjZW50LmRlc2NlbnQ7CiAgICAgICAgICAgICBpZiAobGluZUJveC5iYXNlbGluZVR5cGUo
KSAhPSBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQnVpbGRlci5jcHAKaW5kZXggNTA1NjBhNTg2YmRjLi43Y2ZmOGQzYmY0YWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgc3Rh
dGljIGlubGluZSBTdHJpbmdCdWlsZGVyIHRvU3RyaW5nKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1
bnMpCiAgICAgICAgIGlmICghcnVuLmlzVGV4dCgpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7Ci0gICAgICAgIGxp
bmVDb250ZW50QnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhkb3duY2FzdDxJbmxpbmVUZXh0Qm94
PihydW4ubGF5b3V0Qm94KCkpLmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250ZW50LT5zdGFy
dCwgdGV4dENvbnRlbnQtPmxlbmd0aCkpOworICAgICAgICBsaW5lQ29udGVudEJ1aWxkZXIuYXBw
ZW5kKFN0cmluZ1ZpZXcoZG93bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLmxheW91dEJveCgpKS5j
b250ZW50KCkpLnN1YnN0cmluZyh0ZXh0Q29udGVudC5zdGFydCwgdGV4dENvbnRlbnQubGVuZ3Ro
KSk7CiAgICAgfQogICAgIHJldHVybiBsaW5lQ29udGVudEJ1aWxkZXI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVU
ZXh0SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lVGV4dEl0ZW0uaAppbmRleCBkMDE3YzU4OWI1YmEuLjRkMTI1MmY4OTE1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lVGV4dEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9Gb250Q2FzY2FkZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW5saW5lSXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0SW5saW5lVGV4dEJv
eC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV3JpdGluZ01vZGUuaD4KQEAgLTUyLDYgKzUzLDcgQEAg
cHVibGljOgogICAgIGJvb2wgaXNGdWxseVRyaW1tYWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaGFz
VHJhaWxpbmdTb2Z0SHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNUcmFpbGluZ1NvZnRIeXBo
ZW47IH0KICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNXaWR0aCA/IHN0ZDo6bWFrZV9vcHRpb25hbChtX3dpZHRoKSA6IHN0ZDo6
b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OyB9CisgICAgc3RkOjpwYWlyPHVpbnQ4X3Qs
IHVpbnQ4X3Q+IGdseXBoT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiB7IG1fZ2x5cGhUb3BPdmVy
ZmxvdywgbV9nbHlwaEJvdHRvbU92ZXJmbG93IH07IH0KIAogICAgIGNvbnN0IElubGluZVRleHRC
b3gmIGlubGluZVRleHRCb3goKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0Qm94
PihsYXlvdXRCb3goKSk7IH0KIApAQCAtNjgsNiArNzAsNyBAQCBwcml2YXRlOgogICAgIHVzaW5n
IElubGluZUl0ZW06OlRleHRJdGVtVHlwZTsKIAogICAgIElubGluZVRleHRJdGVtIHNwbGl0KHNp
emVfdCBsZWZ0U2lkZUxlbmd0aCk7CisgICAgdm9pZCBzZXRHbHlwaE92ZXJmbG93KExheW91dFVu
aXQgdG9wLCBMYXlvdXRVbml0IGJvdHRvbSk7CiAKICAgICBJbmxpbmVUZXh0SXRlbShjb25zdCBJ
bmxpbmVUZXh0Qm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgVUJpRGlMZXZl
bCwgYm9vbCBoYXNUcmFpbGluZ1NvZnRIeXBoZW4sIGJvb2wgaXNXb3JkU2VwYXJhdG9yLCBzdGQ6
Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUpOwogICAgIGV4
cGxpY2l0IElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmKTsKQEAgLTkwLDYgKzkz
LDEyIEBAIGlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJ
dGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluCiAgICAgcmV0dXJuIElubGluZVRleHRJdGVt
IHsgaW5saW5lVGV4dEJveCB9OwogfQogCitpbmxpbmUgdm9pZCBJbmxpbmVUZXh0SXRlbTo6c2V0
R2x5cGhPdmVyZmxvdyhMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5pdCBib3R0b20pCit7CisgICAg
bV9nbHlwaFRvcE92ZXJmbG93ID0gdG9wLmNlaWwoKTsKKyAgICBtX2dseXBoQm90dG9tT3ZlcmZs
b3cgPSBib3R0b20uY2VpbCgpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRl
eCA5MTZlZTJlYmRjZWUuLjNlOGQxMjY3ZjE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApAQCAt
MTU3LDcgKzE1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRlSW5rT3ZlcmZsb3dGb3JJ
bmxpbmVCb3goY29uc3QgSW5saW5lTGV2ZWxCb3gmIGlubGluZUJvCiAKIHZvaWQgSW5saW5lRGlz
cGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4m
IGxpbmVSdW4sIGNvbnN0IElubGluZVJlY3QmIHRleHRSdW5SZWN0LCBJbmxpbmVEaXNwbGF5OjpC
b3hlcyYgYm94ZXMpCiB7Ci0gICAgQVNTRVJUKGxpbmVSdW4udGV4dENvbnRlbnQoKSAmJiBpczxJ
bmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CisgICAgQVNTRVJUKGxpbmVSdW4u
aXNUZXh0KCkgJiYgaXM8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRCb3goKSkpOwogCiAg
ICAgYXV0byYgaW5saW5lVGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KGxpbmVSdW4u
bGF5b3V0Qm94KCkpOwogICAgIGF1dG8mIHN0eWxlID0gaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/
IGlubGluZVRleHRCb3guZmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZVRleHRCb3guc3R5bGUoKTsK
QEAgLTE5OCwxNiArMTk4LDkgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFw
cGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgYWRk
VGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1dG8gYWRkR2x5cGhPdmVyZmxvdyA9IFsmXSB7Ci0g
ICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSkg
ewotICAgICAgICAgICAgICAgIC8vIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBzIHRvIENv
ZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50IHdpdGggcG90ZW50aWFsIGdseXBoIG92ZXJmbG93
IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBsZVdpdGhHbHlwaE92ZXJmbG93KS4KLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIGVuY2xvc2lu
Z0FzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0
KFN0cmluZ1ZpZXcoY29udGVudCkuc3Vic3RyaW5nKHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgp
LCBzdHlsZSwgaW5saW5lVGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBh
dGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Olll
cyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsK
LSAgICAgICAgICAgIC8vIEZJWE1FOiBUYWtlIGZhbGxiYWNrIGZvbnRzIGludG8gYWNjb3VudC4K
LSAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZv
bnQoKTsKLSAgICAgICAgICAgIGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLmYsIElubGlu
ZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KC1lbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmFz
Y2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OmFzY2VudChmb250
TWV0cmljcywgRm9udEJhc2VsaW5lOjpBbHBoYWJldGljLCBpbmxpbmVUZXh0Qm94KSk7Ci0gICAg
ICAgICAgICBhdXRvIGJvdHRvbU92ZXJmbG93ID0gc3RkOjptYXgoMC5mLCBJbmxpbmVGb3JtYXR0
aW5nVXRpbHM6OnNuYXBUb0ludChlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmRlc2NlbnQsIGlu
bGluZVRleHRCb3gpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpkZXNjZW50KGZvbnRNZXRyaWNz
LCBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKLSAgICAgICAgICAg
IGlua092ZXJmbG93LmluZmxhdGUodG9wT3ZlcmZsb3csIHsgfSwgYm90dG9tT3ZlcmZsb3csIHsg
fSk7CisgICAgICAgICAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBsaW5lUnVuLmdseXBoT3ZlcmZs
b3coKTsKKyAgICAgICAgICAgIGlmICghZ2x5cGhPdmVyZmxvdy5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgaW5rT3ZlcmZsb3cuaW5mbGF0ZShnbHlwaE92ZXJmbG93LnRvcCwgeyB9LCBnbHlw
aE92ZXJmbG93LmJvdHRvbSwgeyB9KTsKICAgICAgICAgfTsKICAgICAgICAgYWRkR2x5cGhPdmVy
ZmxvdygpOwogCkBAIC0yMjcsNyArMjIwLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAg
ICAgICAgICAgICwgaW5rT3ZlcmZsb3cKICAgICAgICAgICAgICwgaXNGaXJzdEZvcm1hdHRlZExp
bmUoKQogICAgICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAgICAgICAsIElu
bGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCAxLCBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlclN0cmluZywgY29udGVudCB9CisgICAgICAgICAgICAsIElubGluZURpc3BsYXk6
OkJveDo6VGV4dCB7IHRleHQuc3RhcnQsIDEsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3Ry
aW5nLCBjb250ZW50IH0KICAgICAgICAgICAgICwgaXNDb250ZW50ZnVsCiAgICAgICAgICAgICAs
IGlzTGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigpCiAgICAgICAgIH0pOwpAQCAt
MjM1LDcgKzIyOCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRU
ZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgfQogCiAgICAgYXV0
byBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciA9IFsmXSB7Ci0gICAgICAgIHJldHVybiB0ZXh0LT5u
ZWVkc0h5cGhlbiA/IG1ha2VTdHJpbmcoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4
dC0+c3RhcnQsIHRleHQtPmxlbmd0aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygp
OworICAgICAgICByZXR1cm4gdGV4dC5uZWVkc0h5cGhlbiA/IG1ha2VTdHJpbmcoU3RyaW5nVmll
dyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC5zdGFydCwgdGV4dC5sZW5ndGgpLCBzdHlsZS5oeXBo
ZW5TdHJpbmcoKSkgOiBTdHJpbmcoKTsKICAgICB9OwogICAgIGF1dG8gc2hhcGluZ0JvdW5kYXJ5
ID0gWyZdIHsKICAgICAgICAgaWYgKGxpbmVSdW4uaXNTaGFwaW5nQm91bmRhcnlTdGFydCgpKQpA
QCAtMjU0LDcgKzI0Nyw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBl
bmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgICAgICwgaW5r
T3ZlcmZsb3cKICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAgICAgICwgbGlu
ZVJ1bi5leHBhbnNpb24oKQotICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRl
eHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGNvbnRlbnQsIGFkanVzdGVkQ29udGVudFRvUmVuZGVy
KCksIHRleHQtPm5lZWRzSHlwaGVuLCBzaGFwaW5nQm91bmRhcnkoKSB9CisgICAgICAgICwgSW5s
aW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC5zdGFydCwgdGV4dC5sZW5ndGgsIGNvbnRlbnQs
IGFkanVzdGVkQ29udGVudFRvUmVuZGVyKCksIHRleHQubmVlZHNIeXBoZW4sIHNoYXBpbmdCb3Vu
ZGFyeSgpIH0KICAgICAgICAgLCBpc0NvbnRlbnRmdWwKICAgICAgICAgLCBpc0xpbmVGdWxseVRy
dW5jYXRlZEluQmxvY2tEaXJlY3Rpb24oKQogICAgIH0pOwpAQCAtMjYyLDcgKzI1NSw3IEBAIHZv
aWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25z
dCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAKIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVy
OjphcHBlbmRTb2Z0TGluZUJyZWFrRGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4s
IGNvbnN0IElubGluZVJlY3QmIHNvZnRMaW5lQnJlYWtSdW5SZWN0LCBJbmxpbmVEaXNwbGF5OjpC
b3hlcyYgYm94ZXMpCiB7Ci0gICAgQVNTRVJUKGxpbmVSdW4udGV4dENvbnRlbnQoKSAmJiBpczxJ
bmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CisgICAgQVNTRVJUKGxpbmVSdW4u
dGV4dENvbnRlbnQoKS5sZW5ndGggJiYgaXM8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRC
b3goKSkpOwogCiAgICAgYXV0byYgbGF5b3V0Qm94ID0gbGluZVJ1bi5sYXlvdXRCb3goKTsKICAg
ICBhdXRvJiB0ZXh0ID0gbGluZVJ1bi50ZXh0Q29udGVudCgpOwpAQCAtMjc2LDcgKzI2OSw3IEBA
IHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFrRGlz
cGxheUJveChjb25zdCBMaW5lOjpSdW4mCiAgICAgICAgICwgc29mdExpbmVCcmVha1J1blJlY3QK
ICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAgICAgICwgbGluZVJ1bi5leHBh
bnNpb24oKQotICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0
LCB0ZXh0LT5sZW5ndGgsIGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCkuY29udGVu
dCgpIH0KKyAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0ZXh0LnN0YXJ0LCB0
ZXh0Lmxlbmd0aCwgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KS5jb250ZW50KCkg
fQogICAgICAgICAsIGlzQ29udGVudGZ1bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVk
SW5CbG9ja0RpcmVjdGlvbigpCiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwCmluZGV4IDY1NjExNGY5Y2QzMy4uZjk0NmQxZDYyMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgaW5saW5lIElubGluZUxh
eW91dFVuaXQgc3BhY2VXaWR0aChjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIGJvb2wg
YwogICAgIHJldHVybiBmb250Q2FzY2FkZS53aWR0aE9mU3BhY2VTdHJpbmcoKTsKIH0KIAotSW5s
aW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5l
VGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWls
aW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0
YXRlKQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJv
eCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQs
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUg
c3BhY2luZ1N0YXRlLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KQogewogICAgIGlmIChm
cm9tID09IHRvKQogICAgICAgICByZXR1cm4gMDsKQEAgLTg5LDcgKzg5LDcgQEAgSW5saW5lTGF5
b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJv
eCwgY29uc3QgRm9udEMKICAgICAgICAgICAgIHJ1bi5zZXRUYWJTaXplKHRydWUsIFN0eWxlOjp0
b1BsYXRmb3JtKHN0eWxlLnRhYlNpemUoKSkpOwogICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIg
bW92aW5nIHRoaXMgdG8gVGV4dFJ1biBjdG9yCiAgICAgICAgIHJ1bi5zZXRUZXh0U3BhY2luZ1N0
YXRlKHNwYWNpbmdTdGF0ZSk7Ci0gICAgICAgIHdpZHRoID0gZm9udENhc2NhZGUud2lkdGgocnVu
KTsKKyAgICAgICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChydW4sIHsgfSwgZ2x5cGhPdmVy
Zmxvdyk7CiAgICAgfQogCiAgICAgaWYgKGV4dGVuZGVkTWVhc3VyaW5nKQpAQCAtMTA1LDcgKzEw
NSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJ
dGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9uCiAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0
aChpbmxpbmVUZXh0SXRlbSwgZm9udENhc2NhZGUsIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGlu
bGluZVRleHRJdGVtLmVuZCgpLCBjb250ZW50TG9naWNhbExlZnQpOwogfQogCi1JbmxpbmVMYXlv
dXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0
ZW0sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSkK
K0lubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBp
bmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRl
c3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3Bh
Y2luZ1N0YXRlLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KQogewogICAgIFJFTEVBU0Vf
QVNTRVJUKGZyb20gPj0gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSk7CiAgICAgUkVMRUFTRV9BU1NF
UlQodG8gPD0gaW5saW5lVGV4dEl0ZW0uZW5kKCkpOwpAQCAtMTIzLDcgKzEyMyw3IEBAIElubGlu
ZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVU
ZXh0SXRlbSwgY29uc3QgRm9uCiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoMC5mLCB3aWR0
aCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHdpZHRoKGlubGluZVRleHRJdGVtLmlu
bGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExlZnQs
IHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgc3BhY2luZ1N0YXRl
KTsKKyAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBmb250
Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNw
YWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBzcGFjaW5nU3RhdGUsIGdseXBoT3ZlcmZsb3cpOwog
fQogCiBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp0cmFpbGluZ1doaXRlc3BhY2VXaWR0aChj
b25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9u
dENhc2NhZGUsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXplX3QgZW5kUG9zaXRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS90ZXh0L1RleHRVdGlsLmgKaW5kZXggNmY1NjU4NDZiMWRjLi42Mzc0M2I5YTY2YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmgKQEAgLTUzLDggKzUzLDggQEAgY2xhc3Mg
VGV4dFV0aWwgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgVXNlVHJhaWxpbmdXaGl0ZXNwYWNl
TWVhc3VyaW5nT3B0aW1pemF0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBzdGF0aWMgSW5s
aW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNj
YWRlJiwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwotICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENh
c2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0
U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7Ci0gICAgc3RhdGljIElu
bGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRDYXNj
YWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24g
PSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNw
YWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0pOworICAgIHN0YXRpYyBJbmxp
bmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2Nh
ZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50
TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3Bh
Y2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSwgR2x5cGhPdmVyZmxvdyogPSBu
dWxscHRyKTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVU
ZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFj
ZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09w
dGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9
IHsgfSwgR2x5cGhPdmVyZmxvdyogPSBudWxscHRyKTsKIAogICAgIHN0YXRpYyBJbmxpbmVMYXlv
dXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBjb25z
dCBGb250Q2FzY2FkZSYsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXplX3QgZW5kUG9zaXRpb24p
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477897</attachid>
            <date>2026-01-03 13:52:42 -0800</date>
            <delta_ts>2026-01-04 15:10:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260103135241.patch</filename>
            <type>text/plain</type>
            <size>18287</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxNmMzN2Y2OTNkOTdjMDM4NDhjZDFkNDU3Mzk3NGNhMGNmYmZmOTM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwOTo1NTowNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgPHJkYXI6Ly8xNjMyOTA3Nzk+CgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbS5jcHA6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvbnRlbnRBdHRyaWJ1dGVzQW5k
SW5saW5lVGV4dEl0ZW1XaWR0aHMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpS
dW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6R2x5cGhPdmVyZmxvdzo6aXNFbXB0eSBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0
ZW0uaDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNw
cDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmg6CihXZWJDb3Jl
OjpMYXlvdXQ6OlRleHRVdGlsOjp3aWR0aCk6Ci0tLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbS5jcHAgIHwgIDIgKysKIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW0uaCAgICB8ICAyICsrCiAuLi4vaW5saW5lL0lubGluZUl0ZW1zQnVpbGRl
ci5jcHAgICAgICAgICAgICAgfCAyMCArKysrKysrKysrKysrKysrKystCiAuLi4vZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAgfCAgOCArKysrKysrKwogLi4uL2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oICAgIHwgIDkgKysrKysrKysrCiAuLi4v
aW5saW5lL0lubGluZVRleHRJdGVtLmggICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysK
IC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgICB8IDEzICsrKy0t
LS0tLS0tLQogLi4uL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcCAgICAgICAgICAgICAgICAgIHwg
IDggKysrKy0tLS0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
aCB8ICA0ICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcAppbmRleCBmYjY2ODJjMzc5YWUuLjU4
N2NmYjlkOWZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKQEAgLTQzLDYgKzQzLDgg
QEAgc3RydWN0IFNhbWVTaXplQXNJbmxpbmVJdGVtIHsKICAgICBib29sIHdpZHRoQm9vbCA6IDE7
CiAgICAgYm9vbCBzb2Z0SHlwaGVuQm9vbCA6IDE7CiAgICAgYm9vbCBpc1dvcmRTZXBhcmF0b3Ig
OiAxOworICAgIHVpbnQ4X3QgZ2x5cGhUb3BPdmVyZmxvdyA6IDU7CisgICAgdWludDhfdCBnbHlw
aEJvdHRvbU92ZXJmbG93IDogMzsKIH07CiAKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKElubGluZUl0
ZW0pID09IHNpemVvZihTYW1lU2l6ZUFzSW5saW5lSXRlbSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bS5oCmluZGV4IGQzOWM1ZDRkNWI5NC4uYzlkYzA3YjllOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbS5oCkBAIC05Nyw2ICs5Nyw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faGFzV2lkdGgg
OiAxIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVHJhaWxpbmdTb2Z0SHlwaGVuIDogMSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzV29yZFNlcGFyYXRvciA6IDEgeyBmYWxzZSB9OworICAgIHVp
bnQ4X3QgbV9nbHlwaFRvcE92ZXJmbG93IDogNSB7IDAgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhC
b3R0b21PdmVyZmxvdyA6IDMgeyAwIH07CiB9OwogCiBpbmxpbmUgSW5saW5lSXRlbTo6SW5saW5l
SXRlbShjb25zdCBCb3gmIGxheW91dEJveCwgVHlwZSB0eXBlLCBVQmlEaUxldmVsIGJpZGlMZXZl
bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCmluZGV4IDc3ZDgy
YzE5ODcxOS4uOWYxZGZkMTBkYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1z
QnVpbGRlci5jcHAKQEAgLTc4Nyw2ICs3ODcsOCBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGlu
ZUl0ZW1zOjpDb250ZW50QXR0cmlidXRlcyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwog
ICAgIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlOwogICAgIFRyaW1tYWJs
ZVRleHRTcGFjaW5ncyB0cmltbWFibGVUZXh0U3BhY2luZ3M7CiAgICAgYXV0byYgaW5saW5lQm94
Qm91bmRhcnlUZXh0U3BhY2luZ3MgPSBpbmxpbmVDb250ZW50Q2FjaGUoKS5pbmxpbmVCb3hCb3Vu
ZGFyeVRleHRTcGFjaW5ncygpOworICAgIGNvbnN0IElubGluZVRleHRCb3gqIGN1cnJlbnRJbmxp
bmVUZXh0Qm94ID0gbnVsbHB0cjsKKyAgICBhdXRvIGN1cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2
ZUdseXBoT3ZlcmZsb3cgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpbmxpbmVJdGVtSW5kZXgg
PSAwOyBpbmxpbmVJdGVtSW5kZXggPCBpbmxpbmVJdGVtTGlzdC5zaXplKCk7ICsraW5saW5lSXRl
bUluZGV4KSB7CiAgICAgICAgIGF1dG8gZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IDAuZjsKICAg
ICAgICAgYXV0byYgaW5saW5lSXRlbSA9IGlubGluZUl0ZW1MaXN0W2lubGluZUl0ZW1JbmRleF07
CkBAIC04MDEsNyArODAzLDIzIEBAIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNv
bnRlbnRBdHRyaWJ1dGVzIElubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvCiAgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvIGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmcgPSBpbmxpbmVC
b3hCb3VuZGFyeVRleHRTcGFjaW5ncy5maW5kKHBvdGVudGlhbElubGluZUJveFN0YXJ0SW5kZXgp
OyBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nICE9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNw
YWNpbmdzLmVuZCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFJbmxpbmVUZXh0U3Bh
Y2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmctPnZhbHVlOwogICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBpbmxpbmVUZXh0SXRlbS0+c2V0V2lkdGgoVGV4dFV0aWw6
OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgaW5saW5lVGV4dEl0ZW0tPnN0eWxlKCkuZm9udENhc2Nh
ZGUoKSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRleHRV
dGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywgc3Bh
Y2luZ1N0YXRlKSArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcpOworICAgICAgICAgICAgICAgIGF1
dG8mIGZvbnRDYXNjYWRlID0gaW5saW5lVGV4dEl0ZW0tPnN0eWxlKCkuZm9udENhc2NhZGUoKTsK
KyAgICAgICAgICAgICAgICBhdXRvIHdpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7IH07CisgICAg
ICAgICAgICAgICAgYXV0byBtYXlIYXZlR2x5cGhPdmVyZmxvdyA9IFsmXSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChjdXJyZW50SW5saW5lVGV4dEJveCAhPSAmaW5saW5lVGV4dEl0ZW0tPmlu
bGluZVRleHRCb3goKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudElubGluZVRl
eHRCb3hNYXlIYXZlR2x5cGhPdmVyZmxvdyA9ICFpbmxpbmVUZXh0SXRlbS0+aW5saW5lVGV4dEJv
eCgpLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpIHx8IGZvbnRDYXNjYWRlLnByaW1hcnlGb250
KCktPm9yaWdpbigpID09IEZvbnRPcmlnaW46OlJlbW90ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRJbmxpbmVUZXh0Qm94ID0gJmlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94
KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1
cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2ZUdseXBoT3ZlcmZsb3c7CisgICAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgICAgICBpZiAobWF5SGF2ZUdseXBoT3ZlcmZsb3coKSkgeworICAgICAg
ICAgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgICAgICAgICAg
ICAgICAgIGdseXBoT3ZlcmZsb3cuY29tcHV0ZUJvdW5kcyA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIHdpZHRoID0gVGV4dFV0aWw6OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgZm9udENhc2Nh
ZGUsIHN0YXJ0LCBzdGFydCArIGlubGluZVRleHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRp
bDo6VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNp
bmdTdGF0ZSwgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgICAgICAgICBpbmxpbmVUZXh0
SXRlbS0+c2V0R2x5cGhPdmVyZmxvdyhzdGQ6OmNsYW1wKGdseXBoT3ZlcmZsb3cudG9wLCAwX2x1
LCAzMV9sdSksIHN0ZDo6Y2xhbXAoZ2x5cGhPdmVyZmxvdy5ib3R0b20sIDBfbHUsIDdfbHUpKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0
VXRpbDo6d2lkdGgoKmlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsg
aW5saW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRl
c3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlKTsKKyAgICAgICAg
ICAgICAgICBpbmxpbmVUZXh0SXRlbS0+c2V0V2lkdGgod2lkdGggKyBleHRyYUlubGluZVRleHRT
cGFjaW5nKTsKICAgICAgICAgICAgICAgICBoYW5kbGVUZXh0U3BhY2luZyhzcGFjaW5nU3RhdGUs
IHRyaW1tYWJsZVRleHRTcGFjaW5ncywgKmlubGluZVRleHRJdGVtLCBpbmxpbmVJdGVtSW5kZXgp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuY3BwCmluZGV4IGNlODNhOTk5MWJhMC4uZDEyODUzM2Y5NzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmNwcApAQCAtODU4LDYgKzg1OCwxMCBAQCBMaW5lOjpSdW46OlJ1bihjb25z
dCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSQogICAgICAgICBpZiAoKndoaXRlc3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6
VHlwZTo6Q29sbGFwc2VkKQogICAgICAgICAgICAgbGVuZ3RoID0gIDE7CiAgICAgICAgIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIGxlbmd0aCwgbG9naWNhbFdpZHRo
IH07CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBnbHlwaE92ZXJmbG93ID0gaW5saW5lVGV4
dEl0ZW0uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICBpZiAoZ2x5cGhPdmVyZmxvdy5maXJzdCB8
fCBnbHlwaE92ZXJmbG93LnNlY29uZCkKKyAgICAgICAgICAgIG1fZ2x5cGhPdmVyZmxvdyA9IHsg
Z2x5cGhPdmVyZmxvdy5maXJzdCwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQgfTsKICAgICB9CiAgICAg
bV90ZXh0Q29udGVudCA9IHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbGVuZ3RoIH07CiB9CkBA
IC04NzcsNiArODgxLDEwIEBAIHZvaWQgTGluZTo6UnVuOjpleHBhbmQoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvCiAgICAgICAgIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlID0geyB9OwogICAgICAgICBtX3RleHRDb250ZW50Lmxlbmd0aCArPSBp
bmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKICAgICAgICAgbV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRl
bnRTdGFydCA9IGlubGluZVRleHRJdGVtLnN0YXJ0KCk7CisKKyAgICAgICAgYXV0byBnbHlwaE92
ZXJmbG93ID0gaW5saW5lVGV4dEl0ZW0uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICBpZiAoZ2x5
cGhPdmVyZmxvdy5maXJzdCB8fCBnbHlwaE92ZXJmbG93LnNlY29uZCkKKyAgICAgICAgICAgIG1f
Z2x5cGhPdmVyZmxvdyA9IHsgc3RkOjptYXgobV9nbHlwaE92ZXJmbG93LnRvcCwgZ2x5cGhPdmVy
Zmxvdy5maXJzdCksIHN0ZDo6bWF4KG1fZ2x5cGhPdmVyZmxvdy5ib3R0b20sIGdseXBoT3ZlcmZs
b3cuc2Vjb25kKSB9OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gd2hpdGVzcGFj
ZVdpZHRoID0gIWhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpID8gbG9naWNhbFdpZHRoIDogbV90cmFp
bGluZ1doaXRlc3BhY2Uud2lkdGggKyBsb2dpY2FsV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmgKaW5kZXggYmIzODk5NTBmNGZjLi5iZmJmNmI3MWU3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lLmgKQEAgLTE0Niw2ICsxNDYsMTQgQEAgcHVibGljOgogICAgICAgICBJbmxpbmVMYXlvdXRV
bml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1do
aXRlc3BhY2Uud2lkdGg7IH0KICAgICAgICAgYm9vbCBpc1doaXRlc3BhY2VPbmx5KCkgY29uc3Qg
eyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgJiYgbV90cmFpbGluZ1doaXRlc3BhY2Uu
bGVuZ3RoID09IG1fdGV4dENvbnRlbnQubGVuZ3RoOyB9CiAKKyAgICAgICAgc3RydWN0IEdseXBo
T3ZlcmZsb3cgeworICAgICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIXRv
cCAmJiAhYm90dG9tOyB9CisKKyAgICAgICAgICAgIHVpbnQ4X3QgdG9wIDogNSB7IDAgfTsKKyAg
ICAgICAgICAgIHVpbnQ4X3QgYm90dG9tOiAzIHsgMCB9OworICAgICAgICB9OworICAgICAgICBH
bHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2dseXBoT3ZlcmZs
b3c7IH0KKwogICAgICAgICBpbmxpbmUgVGV4dERpcmVjdGlvbiBpbmxpbmVEaXJlY3Rpb24oKSBj
b25zdDsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsZXR0ZXJTcGFjaW5nKCkgY29uc3Q7CiAg
ICAgICAgIGJvb2wgaGFzVGV4dENvbWJpbmUoKSBjb25zdDsKQEAgLTIwOSw2ICsyMTcsNyBAQCBw
dWJsaWM6CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2FsV2lkdGggeyAwIH07CiAg
ICAgICAgIFVCaURpTGV2ZWwgbV9iaWRpTGV2ZWwgeyBVQklESV9ERUZBVUxUX0xUUiB9OwogICAg
ICAgICBJbmxpbmVMYXlvdXRVbml0IG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50IHsgMCB9OworICAg
ICAgICBHbHlwaE92ZXJmbG93IG1fZ2x5cGhPdmVyZmxvdzsKICAgICAgICAgY29uc3QgQm94KiBt
X2xheW91dEJveCB7IG51bGxwdHIgfTsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIG1fc3R5
bGU7CiAgICAgICAgIElubGluZURpc3BsYXk6OkJveDo6RXhwYW5zaW9uIG1fZXhwYW5zaW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKaW5kZXggZDAxN2M1ODliNWJhLi40ZDEyNTJm
ODkxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaApAQCAtMjUsNiArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNvcmUvRm9udENhc2NhZGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0lubGluZUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dElu
bGluZVRleHRCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dyaXRpbmdNb2RlLmg+CkBAIC01Miw2
ICs1Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRnVsbHlUcmltbWFibGUoKSBjb25zdDsKICAg
ICBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzVHJhaWxp
bmdTb2Z0SHlwaGVuOyB9CiAgICAgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzV2lkdGggPyBzdGQ6Om1ha2Vfb3B0aW9uYWwobV93aWR0
aCkgOiBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHsgfTsgfQorICAgIHN0ZDo6cGFp
cjx1aW50OF90LCB1aW50OF90PiBnbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4geyBtX2ds
eXBoVG9wT3ZlcmZsb3csIG1fZ2x5cGhCb3R0b21PdmVyZmxvdyB9OyB9CiAKICAgICBjb25zdCBJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8SW5s
aW5lVGV4dEJveD4obGF5b3V0Qm94KCkpOyB9CiAKQEAgLTY4LDYgKzcwLDcgQEAgcHJpdmF0ZToK
ICAgICB1c2luZyBJbmxpbmVJdGVtOjpUZXh0SXRlbVR5cGU7CiAKICAgICBJbmxpbmVUZXh0SXRl
bSBzcGxpdChzaXplX3QgbGVmdFNpZGVMZW5ndGgpOworICAgIHZvaWQgc2V0R2x5cGhPdmVyZmxv
dyhMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5pdCBib3R0b20pOwogCiAgICAgSW5saW5lVGV4dEl0
ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IFVCaURpTGV2ZWwsIGJvb2wgaGFzVHJhaWxpbmdTb2Z0SHlwaGVuLCBib29sIGlzV29yZFNlcGFy
YXRvciwgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCwgVGV4dEl0ZW1UeXBl
KTsKICAgICBleHBsaWNpdCBJbmxpbmVUZXh0SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94Jik7CkBA
IC05MCw2ICs5MywxMiBAQCBpbmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OmNy
ZWF0ZUVtcHR5SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbgogICAgIHJldHVybiBJbmxp
bmVUZXh0SXRlbSB7IGlubGluZVRleHRCb3ggfTsKIH0KIAoraW5saW5lIHZvaWQgSW5saW5lVGV4
dEl0ZW06OnNldEdseXBoT3ZlcmZsb3coTGF5b3V0VW5pdCB0b3AsIExheW91dFVuaXQgYm90dG9t
KQoreworICAgIG1fZ2x5cGhUb3BPdmVyZmxvdyA9IHRvcC5jZWlsKCk7CisgICAgbV9nbHlwaEJv
dHRvbU92ZXJmbG93ID0gYm90dG9tLmNlaWwoKTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRl
ci5jcHAKaW5kZXggZmIxM2MzOTQyMDBkLi4zZThkMTI2N2YxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRl
ci5jcHAKQEAgLTE5OCwxNiArMTk4LDkgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAg
ICAgYWRkVGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1dG8gYWRkR2x5cGhPdmVyZmxvdyA9IFsm
XSB7Ci0gICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGVGb250Q29kZVBh
dGgoKSkgewotICAgICAgICAgICAgICAgIC8vIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBz
IHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50IHdpdGggcG90ZW50aWFsIGdseXBoIG92
ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBsZVdpdGhHbHlwaE92ZXJmbG93KS4KLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIGVu
Y2xvc2luZ0FzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNG
b3JUZXh0KFN0cmluZ1ZpZXcoY29udGVudCkuc3Vic3RyaW5nKHRleHQuc3RhcnQsIHRleHQubGVu
Z3RoKSwgc3R5bGUsIGlubGluZVRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0Nv
ZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
OjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpO
byk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogVGFrZSBmYWxsYmFjayBmb250cyBpbnRvIGFjY291
bnQuCi0gICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7Ci0gICAgICAgICAgICBhdXRvIHRvcE92ZXJmbG93ID0gc3RkOjptYXgoMC5mLCBJ
bmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0ludCgtZW5jbG9zaW5nQXNjZW50QW5kRGVzY2Vu
dC5hc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjphc2NlbnQo
Zm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4dEJveCkpOwot
ICAgICAgICAgICAgYXV0byBib3R0b21PdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9y
bWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5kZXNjZW50
LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRpbmdVdGlsczo6ZGVzY2VudChmb250TWV0
cmljcywgRm9udEJhc2VsaW5lOjpBbHBoYWJldGljLCBpbmxpbmVUZXh0Qm94KSk7Ci0gICAgICAg
ICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKHRvcE92ZXJmbG93LCB7IH0sIGJvdHRvbU92ZXJmbG93
LCB7IH0pOworICAgICAgICAgICAgYXV0byBnbHlwaE92ZXJmbG93ID0gbGluZVJ1bi5nbHlwaE92
ZXJmbG93KCk7CisgICAgICAgICAgICBpZiAoIWdseXBoT3ZlcmZsb3cuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIGlua092ZXJmbG93LmluZmxhdGUoZ2x5cGhPdmVyZmxvdy50b3AsIHsgfSwg
Z2x5cGhPdmVyZmxvdy5ib3R0b20sIHsgfSk7CiAgICAgICAgIH07CiAgICAgICAgIGFkZEdseXBo
T3ZlcmZsb3coKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcAppbmRleCA2NTYx
MTRmOWNkMzMuLmY5NDZkMWQ2MjI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGlubGluZSBJbmxpbmVMYXlvdXRVbml0IHNwYWNl
V2lkdGgoY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBib29sIGMKICAgICByZXR1cm4g
Zm9udENhc2NhZGUud2lkdGhPZlNwYWNlU3RyaW5nKCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQg
VGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0
IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElu
bGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1p
emF0aW9uLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSkKK0lubGluZUxh
eW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSwg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykKIHsKICAgICBpZiAoZnJvbSA9PSB0bykKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC04OSw3ICs4OSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0
aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRD
CiAgICAgICAgICAgICBydW4uc2V0VGFiU2l6ZSh0cnVlLCBTdHlsZTo6dG9QbGF0Zm9ybShzdHls
ZS50YWJTaXplKCkpKTsKICAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIG1vdmluZyB0aGlzIHRv
IFRleHRSdW4gY3RvcgogICAgICAgICBydW4uc2V0VGV4dFNwYWNpbmdTdGF0ZShzcGFjaW5nU3Rh
dGUpOwotICAgICAgICB3aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1bik7CisgICAgICAgIHdp
ZHRoID0gZm9udENhc2NhZGUud2lkdGgocnVuLCB7IH0sIGdseXBoT3ZlcmZsb3cpOwogICAgIH0K
IAogICAgIGlmIChleHRlbmRlZE1lYXN1cmluZykKQEAgLTEwNSw3ICsxMDUsNyBAQCBJbmxpbmVM
YXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIGNvbnN0IEZvbgogICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0
ZW0sIGZvbnRDYXNjYWRlLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5l
bmQoKSwgY29udGVudExvZ2ljYWxMZWZ0KTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRp
bDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250
Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biwgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUpCitJbmxpbmVMYXlvdXRV
bml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0s
IGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
dG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRl
c3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSwgR2x5
cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChmcm9tID49
IGlubGluZVRleHRJdGVtLnN0YXJ0KCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKHRvIDw9IGlubGlu
ZVRleHRJdGVtLmVuZCgpKTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRl
eHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0
IEZvbgogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuZiwgd2lkdGgpOwogICAgICAgICB9
CiAgICAgfQotICAgIHJldHVybiB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCks
IGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIHNwYWNpbmdTdGF0ZSk7CisgICAgcmV0dXJu
IHdpZHRoKGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20s
IHRvLCBjb250ZW50TG9naWNhbExlZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09w
dGltaXphdGlvbiwgc3BhY2luZ1N0YXRlLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogSW5saW5lTGF5
b3V0VW5pdCBUZXh0VXRpbDo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4
dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBzaXpl
X3Qgc3RhcnRQb3NpdGlvbiwgc2l6ZV90IGVuZFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9U
ZXh0VXRpbC5oCmluZGV4IDZmNTY1ODQ2YjFkYy4uNjM3NDNiOWE2NmJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRV
dGlsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvdGV4dC9UZXh0VXRpbC5oCkBAIC01Myw4ICs1Myw4IEBAIGNsYXNzIFRleHRVdGlsIHsKIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGlt
aXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgc3RhdGljIElubGluZUxheW91dFVuaXQg
d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIElubGluZUxh
eW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5p
dCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0
LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6OlNwYWNp
bmdTdGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0pOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0
IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5n
U3RhdGUgc3BhY2luZ1N0YXRlID0geyB9KTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3
aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQg
ZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBV
c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6OlNwYWNpbmdT
dGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0sIEdseXBoT3ZlcmZsb3cqID0gbnVsbHB0cik7CisgICAg
c3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0
IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVu
aXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb24gPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olll
cywgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0sIEdseXBoT3Zl
cmZsb3cqID0gbnVsbHB0cik7CiAKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGlu
Z1doaXRlc3BhY2VXaWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUm
LCBzaXplX3Qgc3RhcnRQb3NpdGlvbiwgc2l6ZV90IGVuZFBvc2l0aW9uKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477898</attachid>
            <date>2026-01-03 13:53:48 -0800</date>
            <delta_ts>2026-01-04 15:10:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260103135348.patch</filename>
            <type>text/plain</type>
            <size>44948</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwNmE2YTlhNTk0MTY0NTQ0NTliMDFkMzI0NTg3MzhiZThkODFkZGQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMyBKYW4gMjAyNiAxMzo1MzowNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgcmRhcjovLzE2MzI5MDc3OT4KClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OmNvbXB1
dGVkRXhwYW5zaW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ1V0aWxzOjppbmxpbmVDb250ZW50RW5kaW5nKToKKiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcDoKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmg6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbXNCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpj
b21wdXRlQ29udGVudEF0dHJpYnV0ZXNBbmRJbmxpbmVUZXh0SXRlbVdpZHRocyk6CiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OnJlc3RvcmVUcmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNl
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1v
dmUpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6
OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpkZXRhY2hU
cmFpbGluZ1doaXRlc3BhY2UpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRy
YWlsaW5nV2hpdGVzcGFjZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omlz
Q29udGVudGZ1bCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dGV4dENvbnRl
bnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc1RyYWlsaW5nV2hpdGVz
cGFjZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNw
YWNlV2lkdGggY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzV2hpdGVzcGFj
ZU9ubHkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OkdseXBoT3ZlcmZsb3c6
OmlzRW1wdHkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmdseXBoT3ZlcmZs
b3cgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5kYXJ5
U3RhcnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5k
YXJ5RW5kIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc0luc2lkZVNoYXBp
bmdCb3VuZGFyeSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5n
Qm91bmRhcnkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNp
YmxlVHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVu
OjpoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0
OjpMaW5lOjpSdW46OnNldE5lZWRzSHlwaGVuKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpjb2xsZWN0RmFsbGJhY2tGb250cyk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRzRm9yTGluZUJv
eENvbnRhaW5JZkFwcGxpY2FibGUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6
dG9TdHJpbmcpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZVRleHRJdGVtLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpn
bHlwaE92ZXJmbG93IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OnNl
dEdseXBoT3ZlcmZsb3cpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxh
eUJveCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBw
ZW5kU29mdExpbmVCcmVha0Rpc3BsYXlCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwOgooV2ViQ29yZTo6TGF5b3V0
OjpUZXh0VXRpbDo6d2lkdGgpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6
OndpZHRoKToKLS0tCiAuLi4vaW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVyLmNwcCAgICAgICAg
ICAgfCAgMiArLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwICAgICAgICAg
IHwgIDIgKy0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwICB8
ICAyICsKIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCAgICB8ICAy
ICsKIC4uLi9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcCAgICAgICAgICAgICB8IDIwICsr
KystCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAgfCA3MyAr
KysrKysrKysrKy0tLS0tLS0tCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lLmggICAgfCA2MCArKysrKysrKy0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJveEJ1
aWxkZXIuY3BwICAgICAgICAgICB8IDEwICstLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaCAg
ICAgICAgICAgICAgICAgICB8ICA5ICsrKwogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcCAgIHwgMjUgKysrLS0tLQogLi4uL2lubGluZS90ZXh0L1RleHRVdGlsLmNw
cCAgICAgICAgICAgICAgICAgIHwgIDggKy0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L3RleHQvVGV4dFV0aWwuaCB8ICA0ICstCiAxMyBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9u
cygrKSwgODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVu
dEFsaWduZXIuY3BwCmluZGV4IDBhNDIxYTQ3NDc3MC4uNTg4NGMyOWJkZjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVD
b250ZW50QWxpZ25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwCkBAIC0yMDksNyArMjA5LDcg
QEAgc3RhdGljIHZvaWQgY29tcHV0ZWRFeHBhbnNpb25zKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1
bnMsIFdURjo6UmFuZ2U8c2l6ZV90PiBydW4KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLmxlZnQgPSBydW5Jc0FmdGVyRXhwYW5zaW9uID8gRXhw
YW5zaW9uQmVoYXZpb3I6OkJlaGF2aW9yOjpGb3JiaWQgOiBFeHBhbnNpb25CZWhhdmlvcjo6QmVo
YXZpb3I6OkFsbG93OwogICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLnJpZ2h0ID0g
RXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2aW9yOjpBbGxvdzsKLSAgICAgICAgICAgICAgICBhdXRv
JiB0ZXh0Q29udGVudCA9ICpydW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgICAgICBhdXRv
JiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgICAgIGF1dG8g
bGVuZ3RoID0gdGV4dENvbnRlbnQubGVuZ3RoOwogICAgICAgICAgICAgICAgIGlmIChsYXN0VGV4
dFJ1bkluZGV4Rm9yVHJpbW1pbmcgJiYgcnVuSW5kZXgoKSA9PSAqbGFzdFRleHRSdW5JbmRleEZv
clRyaW1taW5nKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWlsaW5nIGhhbmdpbmcgd2hp
dGVzcGFjZSBzZXF1ZW5jZSBpcyBpZ25vcmVkIHdoZW4gY29tcHV0aW5nIHRoZSBleHBhbnNpb24g
b3Bwb3J0dW5pdGllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRp
bHMuY3BwCmluZGV4IDg0ODAyOTAwMjljNC4uNmI1MzQ2MjQyNmVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0
aW5nVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBz
dGQ6Om9wdGlvbmFsPExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc+IElubGlu
ZUZvcm1hdHRpbmdVdGlsczo6aW5saQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlm
IChydW4uaXNMaW5lQnJlYWsoKSkKICAgICAgICAgICAgIHJldHVybiB7IExpbmVMYXlvdXRSZXN1
bHQ6OklubGluZUNvbnRlbnRFbmRpbmc6OkxpbmVCcmVhayB9OwotICAgICAgICBpZiAoYXV0byYg
dGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsgdGV4dENvbnRlbnQgJiYgdGV4dENvbnRl
bnQtPm5lZWRzSHlwaGVuKQorICAgICAgICBpZiAocnVuLmlzVGV4dCgpICYmIHJ1bi50ZXh0Q29u
dGVudCgpLm5lZWRzSHlwaGVuKQogICAgICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91dFJlc3Vs
dDo6SW5saW5lQ29udGVudEVuZGluZzo6SHlwaGVuIH07CiAgICAgICAgIHJldHVybiB7IExpbmVM
YXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc6OkdlbmVyaWMgfTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUl0ZW0uY3BwCmluZGV4IGZiNjY4MmMzNzlhZS4uNTg3Y2ZiOWQ5ZmVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcApAQCAtNDMsNiArNDMsOCBAQCBzdHJ1Y3QgU2Ft
ZVNpemVBc0lubGluZUl0ZW0gewogICAgIGJvb2wgd2lkdGhCb29sIDogMTsKICAgICBib29sIHNv
ZnRIeXBoZW5Cb29sIDogMTsKICAgICBib29sIGlzV29yZFNlcGFyYXRvciA6IDE7CisgICAgdWlu
dDhfdCBnbHlwaFRvcE92ZXJmbG93IDogNTsKKyAgICB1aW50OF90IGdseXBoQm90dG9tT3ZlcmZs
b3cgOiAzOwogfTsKIAogc3RhdGljX2Fzc2VydChzaXplb2YoSW5saW5lSXRlbSkgPT0gc2l6ZW9m
KFNhbWVTaXplQXNJbmxpbmVJdGVtKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKaW5kZXggZDM5
YzVkNGQ1Yjk0Li5jOWRjMDdiOWU5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKQEAgLTk3
LDYgKzk3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9oYXNXaWR0aCA6IDEgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9oYXNUcmFpbGluZ1NvZnRIeXBoZW4gOiAxIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNXb3JkU2VwYXJhdG9yIDogMSB7IGZhbHNlIH07CisgICAgdWludDhfdCBtX2dseXBo
VG9wT3ZlcmZsb3cgOiA1IHsgMCB9OworICAgIHVpbnQ4X3QgbV9nbHlwaEJvdHRvbU92ZXJmbG93
IDogMyB7IDAgfTsKIH07CiAKIGlubGluZSBJbmxpbmVJdGVtOjpJbmxpbmVJdGVtKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBUeXBlIHR5cGUsIFVCaURpTGV2ZWwgYmlkaUxldmVsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbXNCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKaW5kZXggNzdkODJjMTk4NzE5Li45ZjFk
ZmQxMGRiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcApA
QCAtNzg3LDYgKzc4Nyw4IEBAIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNvbnRl
bnRBdHRyaWJ1dGVzIElubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvCiAgICAgVGV4dFNwYWNp
bmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGU7CiAgICAgVHJpbW1hYmxlVGV4dFNwYWNpbmdz
IHRyaW1tYWJsZVRleHRTcGFjaW5nczsKICAgICBhdXRvJiBpbmxpbmVCb3hCb3VuZGFyeVRleHRT
cGFjaW5ncyA9IGlubGluZUNvbnRlbnRDYWNoZSgpLmlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNp
bmdzKCk7CisgICAgY29uc3QgSW5saW5lVGV4dEJveCogY3VycmVudElubGluZVRleHRCb3ggPSBu
dWxscHRyOworICAgIGF1dG8gY3VycmVudElubGluZVRleHRCb3hNYXlIYXZlR2x5cGhPdmVyZmxv
dyA9IGZhbHNlOwogICAgIGZvciAoc2l6ZV90IGlubGluZUl0ZW1JbmRleCA9IDA7IGlubGluZUl0
ZW1JbmRleCA8IGlubGluZUl0ZW1MaXN0LnNpemUoKTsgKytpbmxpbmVJdGVtSW5kZXgpIHsKICAg
ICAgICAgYXV0byBleHRyYUlubGluZVRleHRTcGFjaW5nID0gMC5mOwogICAgICAgICBhdXRvJiBp
bmxpbmVJdGVtID0gaW5saW5lSXRlbUxpc3RbaW5saW5lSXRlbUluZGV4XTsKQEAgLTgwMSw3ICs4
MDMsMjMgQEAgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Q29udGVudEF0dHJpYnV0
ZXMgSW5saW5lSXRlbXNCdWlsZGVyOjpjb21wdXRlQ28KICAgICAgICAgICAgICAgICAgICAgaWYg
KGF1dG8gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4
dFNwYWNpbmdzLmZpbmQocG90ZW50aWFsSW5saW5lQm94U3RhcnRJbmRleCk7IGlubGluZUJveEJv
dW5kYXJ5VGV4dFNwYWNpbmcgIT0gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MuZW5kKCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYUlubGluZVRleHRTcGFjaW5nID0gaW5saW5l
Qm94Qm91bmRhcnlUZXh0U3BhY2luZy0+dmFsdWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGlubGluZVRleHRJdGVtLT5zZXRXaWR0aChUZXh0VXRpbDo6d2lkdGgoKmlubGlu
ZVRleHRJdGVtLCBpbmxpbmVUZXh0SXRlbS0+c3R5bGUoKS5mb250Q2FzY2FkZSgpLCBzdGFydCwg
c3RhcnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWls
aW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpICsg
ZXh0cmFJbmxpbmVUZXh0U3BhY2luZyk7CisgICAgICAgICAgICAgICAgYXV0byYgZm9udENhc2Nh
ZGUgPSBpbmxpbmVUZXh0SXRlbS0+c3R5bGUoKS5mb250Q2FzY2FkZSgpOworICAgICAgICAgICAg
ICAgIGF1dG8gd2lkdGggPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKKyAgICAgICAgICAgICAgICBh
dXRvIG1heUhhdmVHbHlwaE92ZXJmbG93ID0gWyZdIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGN1cnJlbnRJbmxpbmVUZXh0Qm94ICE9ICZpbmxpbmVUZXh0SXRlbS0+aW5saW5lVGV4dEJveCgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5saW5lVGV4dEJveE1heUhhdmVH
bHlwaE92ZXJmbG93ID0gIWlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCkuY2FuVXNlU2lt
cGxlRm9udENvZGVQYXRoKCkgfHwgZm9udENhc2NhZGUucHJpbWFyeUZvbnQoKS0+b3JpZ2luKCkg
PT0gRm9udE9yaWdpbjo6UmVtb3RlOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudElu
bGluZVRleHRCb3ggPSAmaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudElubGluZVRl
eHRCb3hNYXlIYXZlR2x5cGhPdmVyZmxvdzsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAg
ICAgICAgIGlmIChtYXlIYXZlR2x5cGhPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAg
IEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICAgICAgICAgICAgICAgICAgZ2x5cGhP
dmVyZmxvdy5jb21wdXRlQm91bmRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGgg
PSBUZXh0VXRpbDo6d2lkdGgoKmlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0
YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlLCAmZ2x5
cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgICAgIGlubGluZVRleHRJdGVtLT5zZXRHbHlw
aE92ZXJmbG93KHN0ZDo6Y2xhbXAoZ2x5cGhPdmVyZmxvdy50b3AsIDBfbHUsIDMxX2x1KSwgc3Rk
OjpjbGFtcChnbHlwaE92ZXJmbG93LmJvdHRvbSwgMF9sdSwgN19sdSkpOworICAgICAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IFRleHRVdGlsOjp3aWR0aCgq
aW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwgc3RhcnQgKyBpbmxpbmVUZXh0SXRl
bS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmlu
Z09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpOworICAgICAgICAgICAgICAgIGlubGlu
ZVRleHRJdGVtLT5zZXRXaWR0aCh3aWR0aCArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcpOwogICAg
ICAgICAgICAgICAgIGhhbmRsZVRleHRTcGFjaW5nKHNwYWNpbmdTdGF0ZSwgdHJpbW1hYmxlVGV4
dFNwYWNpbmdzLCAqaW5saW5lVGV4dEl0ZW0sIGlubGluZUl0ZW1JbmRleCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5k
ZXggNzZmYmExZGQzNTI3Li5kMTI4NTMzZjk3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
Y3BwCkBAIC02NTQsNyArNjU0LDcgQEAgYm9vbCBMaW5lOjpyZXN0b3JlVHJpbW1lZFRyYWlsaW5n
V2hpdGVzcGFjZShJbmxpbmVMYXlvdXRVbml0IHRyaW1tZWRUcmFpbGluZ1doaXQKICAgICBhdXRv
IHJlc3RvcmUgPSBbJl0oYXV0byYgdHJhaWxpbmdSdW4pIHsKICAgICAgICAgQVNTRVJUKHRyYWls
aW5nUnVuLmlzVGV4dCgpKTsKICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gZG93bmNhc3Q8SW5s
aW5lVGV4dEJveD4odHJhaWxpbmdSdW4ubGF5b3V0Qm94KCkpOwotICAgICAgICBpZiAodHJhaWxp
bmdSdW4ubV90ZXh0Q29udGVudC0+c3RhcnQgKyB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50LT5s
ZW5ndGggPT0gbGF5b3V0Qm94LmNvbnRlbnQoKS5sZW5ndGgoKSkgeworICAgICAgICBpZiAodHJh
aWxpbmdSdW4ubV90ZXh0Q29udGVudC5zdGFydCArIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQu
bGVuZ3RoID09IGxheW91dEJveC5jb250ZW50KCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8v
IEl0IGxvb2tzIGxpa2Ugd2UgZGlkbid0IF90cmltXyB0aGlzIHRyYWlsaW5nIHJ1biBidXQgcmVt
b3ZlZCB0aGUgbGF0IHJ1biBpbnN0ZWFkIChoYXBwZW5zIHdpdGggZGVkaWNhdGVkIGxheW91dCBi
b3gpLgogICAgICAgICAgICAgLy8gTGV0J3MgcHV0IHRoYXQgY29udGVudCBiYWNrIGFzIHRyYWls
aW5nIHJ1bi4KICAgICAgICAgICAgIGlmIChhcHBlbmRUcmFpbGluZ0lubGluZUl0ZW1Bc1RyYWls
aW5nUnVuKHJ1bnMsIHRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2VXaWR0aCwgaW5saW5lSXRlbVJh
bmdlLCBpbmxpbmVJdGVtcykpCkBAIC02NjQsNyArNjY0LDcgQEAgYm9vbCBMaW5lOjpyZXN0b3Jl
VHJpbW1lZFRyYWlsaW5nV2hpdGVzcGFjZShJbmxpbmVMYXlvdXRVbml0IHRyaW1tZWRUcmFpbGlu
Z1doaXQKICAgICAgICAgfQogICAgICAgICB0cmFpbGluZ1J1bi5tX2xvZ2ljYWxXaWR0aCArPSB0
cmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGg7CiAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBj
b2xsYXBzZWQgd2hpdGVzcGFjZS4KLSAgICAgICAgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+
bGVuZ3RoICs9IDE7CisgICAgICAgIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQubGVuZ3RoICs9
IDE7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CiAKQEAgLTc0Niw3ICs3NDYsNyBAQCBJ
bmxpbmVMYXlvdXRVbml0IExpbmU6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKCkK
ICAgICAgICAgQVNTRVJUKHJ1bi5pc1dvcmRCcmVha09wcG9ydHVuaXR5KCkgfHwgcnVuLmlzTGlu
ZVNwYW5uaW5nSW5saW5lQm94U3RhcnQoKSB8fCBydW4uaXNJbmxpbmVCb3hTdGFydCgpIHx8IHJ1
bi5pc0lubGluZUJveEVuZCgpIHx8IHJ1bi5pc0xpbmVCcmVhaygpIHx8IHJ1bi5pc09wYXF1ZSgp
KTsKICAgICAgICAgcnVuLm1vdmVIb3Jpem9udGFsbHkoLXRyaW1tZWRXaWR0aCk7CiAgICAgfQot
ICAgIGlmICghdHJpbW1hYmxlUnVuLnRleHRDb250ZW50KCktPmxlbmd0aCkgeworICAgIGlmICgh
dHJpbW1hYmxlUnVuLnRleHRDb250ZW50KCkubGVuZ3RoKSB7CiAgICAgICAgIC8vIFRoaXMgdHJp
bW1hYmxlIHJ1biBpcyBmdWxseSBjb2xsYXBzZWQgbm93IChlLmcuIDxkaXY+PGltZz4gICAgPHNw
YW4+PC9zcGFuPjwvZGl2PikuCiAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8ga2VlcCBpdCBh
cm91bmQgYW55bW9yZS4KICAgICAgICAgbV9ydW5zLnJlbW92ZUF0KCptX2ZpcnN0VHJpbW1hYmxl
UnVuSW5kZXgpOwpAQCAtODAxLDYyICs4MDEsNjcgQEAgc3RkOjpvcHRpb25hbDxMaW5lOjpSdW46
OlRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZT4gTGluZTo6UnVuOjp0cmFpbGluZ1doaXRlc3BhY2UK
IAogTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlv
dXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVzdG1l
bnQpCiAgICAgOiBtX3R5cGUodG9MaW5lUnVuVHlwZShpbmxpbmVJdGVtKSkKLSAgICAsIG1fbGF5
b3V0Qm94KCZpbmxpbmVJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKICAg
ICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dp
Y2FsV2lkdGgpCiAgICAgLCBtX2JpZGlMZXZlbChpbmxpbmVJdGVtLmJpZGlMZXZlbCgpKQogICAg
ICwgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQorICAgICwg
bV9sYXlvdXRCb3goJmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKHN0eWxl
KQogewogfQogCiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiB6ZXJvV2lkaHRJbmxp
bmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNh
bExlZnQpCiAgICAgOiBtX3R5cGUodG9MaW5lUnVuVHlwZSh6ZXJvV2lkaHRJbmxpbmVJdGVtKSkK
LSAgICAsIG1fbGF5b3V0Qm94KCZ6ZXJvV2lkaHRJbmxpbmVJdGVtLmxheW91dEJveCgpKQotICAg
ICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAg
LCBtX2JpZGlMZXZlbCh6ZXJvV2lkaHRJbmxpbmVJdGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9s
YXlvdXRCb3goJnplcm9XaWRodElubGluZUl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxl
KHN0eWxlKQogewogfQogCiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiBsaW5lU3Bh
bm5pbmdJbmxpbmVCb3hJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVz
dG1lbnQpCiAgICAgOiBtX3R5cGUoVHlwZTo6TGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQpCi0g
ICAgLCBtX2xheW91dEJveCgmbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5sYXlvdXRCb3goKSkK
LSAgICAsIG1fc3R5bGUobGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5zdHlsZSgpKQogICAgICwg
bV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxX
aWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0uYmlkaUxl
dmVsKCkpCiAgICAgLCBtX3RleHRTcGFjaW5nQWRqdXN0bWVudCh0ZXh0U3BhY2luZ0FkanVzdG1l
bnQpCisgICAgLCBtX2xheW91dEJveCgmbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5sYXlvdXRC
b3goKSkKKyAgICAsIG1fc3R5bGUobGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5zdHlsZSgpKQog
ewogICAgIEFTU0VSVChsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmlzSW5saW5lQm94U3RhcnQo
KSk7CiB9CiAKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJdGVtJiBz
b2Z0TGluZUJyZWFrSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRV
bml0IGxvZ2ljYWxMZWZ0KQogICAgIDogbV90eXBlKFR5cGU6OlNvZnRMaW5lQnJlYWspCi0gICAg
LCBtX2xheW91dEJveCgmc29mdExpbmVCcmVha0l0ZW0ubGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0
eWxlKHN0eWxlKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fYmlk
aUxldmVsKHNvZnRMaW5lQnJlYWtJdGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9sYXlvdXRCb3go
JnNvZnRMaW5lQnJlYWtJdGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKICAg
ICAsIG1fdGV4dENvbnRlbnQoeyBzb2Z0TGluZUJyZWFrSXRlbS5wb3NpdGlvbigpLCAxIH0pCiB7
CiB9CiAKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3Bh
Y2luZ0FkanVzdG1lbnQsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBzaGFw
aW5nQm91bmRhcnkpCiAgICAgOiBtX3R5cGUoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9y
KCkgPyBUeXBlOjpXb3JkU2VwYXJhdG9yIDogaW5saW5lVGV4dEl0ZW0uaXNRdWlya05vbkJyZWFr
aW5nU3BhY2UoKSA/IFR5cGU6Ok5vbkJyZWFraW5nU3BhY2UgOiBUeXBlOjpUZXh0KQotICAgICwg
bV9sYXlvdXRCb3goJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShz
dHlsZSkKKyAgICAsIG1fc2hhcGluZ0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFyeS52YWx1ZV9vcihT
aGFwaW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGUpKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dp
Y2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAgICAsIG1fYmlk
aUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQotICAgICwgbV9zaGFwaW5nQm91bmRh
cnkoc2hhcGluZ0JvdW5kYXJ5KQogICAgICwgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQodGV4dFNw
YWNpbmdBZGp1c3RtZW50KQorICAgICwgbV9sYXlvdXRCb3goJmlubGluZVRleHRJdGVtLmxheW91
dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKIHsKICAgICBhdXRvIGxlbmd0aCA9IGlubGlu
ZVRleHRJdGVtLmxlbmd0aCgpOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1do
aXRlc3BhY2VUeXBlKGlubGluZVRleHRJdGVtKTsKKwogICAgIGlmICh3aGl0ZXNwYWNlVHlwZSkg
ewogICAgICAgICBpZiAoKndoaXRlc3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlw
ZTo6Q29sbGFwc2VkKQogICAgICAgICAgICAgbGVuZ3RoID0gIDE7Ci0gICAgICAgIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIGxvZ2ljYWxXaWR0aCwgbGVuZ3RoIH07
CisgICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIGxlbmd0
aCwgbG9naWNhbFdpZHRoIH07CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBnbHlwaE92ZXJm
bG93ID0gaW5saW5lVGV4dEl0ZW0uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICBpZiAoZ2x5cGhP
dmVyZmxvdy5maXJzdCB8fCBnbHlwaE92ZXJmbG93LnNlY29uZCkKKyAgICAgICAgICAgIG1fZ2x5
cGhPdmVyZmxvdyA9IHsgZ2x5cGhPdmVyZmxvdy5maXJzdCwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQg
fTsKICAgICB9CiAgICAgbV90ZXh0Q29udGVudCA9IHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwg
bGVuZ3RoIH07CiB9CkBAIC04NjcsNDIgKzg3Miw0NiBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5k
KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBs
bwogICAgIEFTU0VSVChpc1RleHQoKSAmJiBpbmxpbmVUZXh0SXRlbS5pc1RleHQoKSk7CiAgICAg
QVNTRVJUKG1fbGF5b3V0Qm94ID09ICZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CiAgICAg
QVNTRVJUKG1fYmlkaUxldmVsID09IGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKTsKLSAgICBB
U1NFUlQoIW1fc2hhcGluZ0JvdW5kYXJ5IHx8ICptX3NoYXBpbmdCb3VuZGFyeSAhPSBTaGFwaW5n
Qm91bmRhcnk6OkVuZCk7CisgICAgQVNTRVJUKG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdC
b3VuZGFyeTo6Tm90QXBwbGljYWJsZSB8fCBtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91
bmRhcnk6OlN0YXJ0IHx8IG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6SW5z
aWRlKTsKIAogICAgIG1fbG9naWNhbFdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKICAgICBhdXRvIHdo
aXRlc3BhY2VUeXBlID0gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSk7CiAK
ICAgICBpZiAoIXdoaXRlc3BhY2VUeXBlKSB7CiAgICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNl
ID0geyB9OwotICAgICAgICBtX3RleHRDb250ZW50LT5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0u
bGVuZ3RoKCk7CisgICAgICAgIG1fdGV4dENvbnRlbnQubGVuZ3RoICs9IGlubGluZVRleHRJdGVt
Lmxlbmd0aCgpOwogICAgICAgICBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0ID0gaW5s
aW5lVGV4dEl0ZW0uc3RhcnQoKTsKKworICAgICAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBpbmxp
bmVUZXh0SXRlbS5nbHlwaE92ZXJmbG93KCk7CisgICAgICAgIGlmIChnbHlwaE92ZXJmbG93LmZp
cnN0IHx8IGdseXBoT3ZlcmZsb3cuc2Vjb25kKQorICAgICAgICAgICAgbV9nbHlwaE92ZXJmbG93
ID0geyBzdGQ6Om1heChtX2dseXBoT3ZlcmZsb3cudG9wLCBnbHlwaE92ZXJmbG93LmZpcnN0KSwg
c3RkOjptYXgobV9nbHlwaE92ZXJmbG93LmJvdHRvbSwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpIH07
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhbV90
cmFpbGluZ1doaXRlc3BhY2UgPyBsb2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+
d2lkdGggKyBsb2dpY2FsV2lkdGg7CisgICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhaGFzVHJh
aWxpbmdXaGl0ZXNwYWNlKCkgPyBsb2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53
aWR0aCArIGxvZ2ljYWxXaWR0aDsKICAgICBhdXRvIHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCA9
ICp3aGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCA/
IDEgOiBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsgCi0gICAgbV90cmFpbGluZ1doaXRlc3BhY2Ug
PSB7ICp3aGl0ZXNwYWNlVHlwZSwgd2hpdGVzcGFjZVdpZHRoLCB0cmFpbGluZ1doaXRlc3BhY2VM
ZW5ndGggfTsKLSAgICBtX3RleHRDb250ZW50LT5sZW5ndGggKz0gdHJhaWxpbmdXaGl0ZXNwYWNl
TGVuZ3RoOworICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIHRy
YWlsaW5nV2hpdGVzcGFjZUxlbmd0aCwgd2hpdGVzcGFjZVdpZHRoIH07CisgICAgbV90ZXh0Q29u
dGVudC5sZW5ndGggKz0gdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoOwogfQogCiBzdGQ6Om9wdGlv
bmFsPExpbmU6OlJ1bj4gTGluZTo6UnVuOjpkZXRhY2hUcmFpbGluZ1doaXRlc3BhY2UoKQogewot
ICAgIGlmICghbV90cmFpbGluZ1doaXRlc3BhY2UgfHwgaXNXaGl0ZXNwYWNlT25seSgpKQorICAg
IGlmICghaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgfHwgaXNXaGl0ZXNwYWNlT25seSgpKQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgQVNTRVJUKG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT5sZW5n
dGggPCBtX3RleHRDb250ZW50LT5sZW5ndGgpOworICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVz
cGFjZS5sZW5ndGggPCBtX3RleHRDb250ZW50Lmxlbmd0aCk7CiAgICAgYXV0byB0cmFpbGluZ1do
aXRlc3BhY2VSdW4gPSAqdGhpczsKIAotICAgIGF1dG8gbGVhZGluZ05vbldoaXRlc3BhY2VDb250
ZW50TGVuZ3RoID0gbV90ZXh0Q29udGVudC0+bGVuZ3RoIC0gbV90cmFpbGluZ1doaXRlc3BhY2Ut
Pmxlbmd0aDsKLSAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV90ZXh0Q29udGVudCA9IHsgbV90
ZXh0Q29udGVudC0+c3RhcnQgKyBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5ndGgsIG1f
dHJhaWxpbmdXaGl0ZXNwYWNlLT5sZW5ndGgsIGZhbHNlIH07CisgICAgYXV0byBsZWFkaW5nTm9u
V2hpdGVzcGFjZUNvbnRlbnRMZW5ndGggPSBtX3RleHRDb250ZW50Lmxlbmd0aCAtIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlLmxlbmd0aDsKKyAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV90ZXh0Q29u
dGVudCA9IHsgbV90ZXh0Q29udGVudC5zdGFydCArIGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVu
dExlbmd0aCwgbV90cmFpbGluZ1doaXRlc3BhY2UubGVuZ3RoLCBmYWxzZSB9OwogCi0gICAgdHJh
aWxpbmdXaGl0ZXNwYWNlUnVuLm1fbG9naWNhbFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2Ut
PndpZHRoOwotICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxMZWZ0ID0gbG9naWNh
bFJpZ2h0KCkgLSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGg7CisgICAgdHJhaWxpbmdXaGl0
ZXNwYWNlUnVuLm1fbG9naWNhbFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2Uud2lkdGg7Cisg
ICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fbG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHQoKSAt
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoOwogCiAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVu
Lm1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyB9OwogICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5t
X2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0ID0geyB9OwogCiAgICAgbV9sb2dpY2FsV2lk
dGggLT0gdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLmxvZ2ljYWxXaWR0aCgpOwotICAgIG1fdGV4dENv
bnRlbnQtPmxlbmd0aCA9IGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aDsKKyAgICBt
X3RleHRDb250ZW50Lmxlbmd0aCA9IGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aDsK
ICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKIAogICAgIHJldHVybiB0cmFpbGluZ1do
aXRlc3BhY2VSdW47CkBAIC05MzEsMjUgKzk0MCwyNSBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6
OlJ1bjo6cmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkKIAogSW5saW5lTGF5b3V0VW5pdCBM
aW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpCiB7Ci0gICAgQVNTRVJUKG1fdHJh
aWxpbmdXaGl0ZXNwYWNlKTsKKyAgICBBU1NFUlQoaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwog
ICAgIC8vIEFjY29yZGluZyB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtMy8jd2hp
dGUtc3BhY2UtcHJvcGVydHkgbWF0cml4CiAgICAgLy8gVHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMg
YWx3YXlzIGNvbGxhcHNpYmxlIHNvIHRoZSBsZW5ndGggb2YgdGhlIHRyYWlsaW5nIHRyaW1tYWJs
ZSB3aGl0ZXNwYWNlIGlzIGFsd2F5cyAxIChvciBub24tZXhpc3RlbnQpLgotICAgIEFTU0VSVCht
X3RleHRDb250ZW50ICYmIG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7CisgICAgQVNTRVJUKGlzVGV4
dCgpICYmIG1fdGV4dENvbnRlbnQubGVuZ3RoKTsKICAgICBjb25zdGV4cHIgc2l6ZV90IHRyYWls
aW5nVHJpbW1hYmxlQ29udGVudExlbmd0aCA9IDE7CiAKLSAgICBhdXRvIHRyaW1tZWRXaWR0aCA9
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aDsKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1f
dHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoOwogICAgIGlmIChtX2xhc3ROb25XaGl0ZXNwYWNlQ29u
dGVudFN0YXJ0ICYmIGlubGluZURpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTCkgewog
ICAgICAgICAvLyBXaGlsZSBMVFIgY29udGVudCBjb3VsZCBhbHNvIHN1ZmZlciBmcm9tIHNsaWdo
dGx5IGluY29ycmVjdCBjb250ZW50IHdpZHRoIGFmdGVyIHRyaW1taW5nIHRyYWlsaW5nIHdoaXRl
c3BhY2UgKHNlZSBUZXh0VXRpbDo6d2lkdGgpCiAgICAgICAgIC8vIGl0IGhhcmRseSBwcm9kdWNl
cyB2aXN1YWxseSBvYnNlcnZhYmxlIHJlc3VsdC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5
IHN0aWxsIGluY29ycmVjdGx5IGxlYXZlIHNvbWUgY29udGVudCBvbiB0aGUgbGluZSAodnMuIHJl
LW1lYXN1cmluZyBhbHNvIGF0IDo6ZXhwYW5kKS4KICAgICAgICAgYXV0byYgaW5saW5lVGV4dEJv
eCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KCptX2xheW91dEJveCk7CiAgICAgICAgIGF1dG8g
c3RhcnRQb3NpdGlvbiA9ICptX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0OwotICAgICAg
ICBhdXRvIGVuZFBvc2l0aW9uID0gbV90ZXh0Q29udGVudC0+c3RhcnQgKyBtX3RleHRDb250ZW50
LT5sZW5ndGg7CisgICAgICAgIGF1dG8gZW5kUG9zaXRpb24gPSBtX3RleHRDb250ZW50LnN0YXJ0
ICsgbV90ZXh0Q29udGVudC5sZW5ndGg7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN0YXJ0UG9z
aXRpb24gPCBlbmRQb3NpdGlvbiAtIHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aCk7CiAg
ICAgICAgIGlmIChpbmxpbmVUZXh0Qm94LmNvbnRlbnQoKVtlbmRQb3NpdGlvbiAtIDFdID09IHNw
YWNlKQogICAgICAgICAgICAgdHJpbW1lZFdpZHRoID0gVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVz
cGFjZVdpZHRoKGlubGluZVRleHRCb3gsIG1fc3R5bGUuZm9udENhc2NhZGUoKSwgc3RhcnRQb3Np
dGlvbiwgZW5kUG9zaXRpb24pOwogICAgIH0KLSAgICBtX3RleHRDb250ZW50LT5sZW5ndGggLT0g
dHJhaWxpbmdUcmltbWFibGVDb250ZW50TGVuZ3RoOworICAgIG1fdGV4dENvbnRlbnQubGVuZ3Ro
IC09IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aDsKICAgICBtX3RyYWlsaW5nV2hpdGVz
cGFjZSA9IHsgfTsKICAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJpbW1lZFdpZHRoKTsKICAgICBy
ZXR1cm4gdHJpbW1lZFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IDFlYjEzMTEy
ZDA3Yi4uYmZiZjZiNzFlNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5l
SXRlbSwgMT4mIGxpbmVTcGFubmluZ0lubGluZUJveGVzLCBib29sIGlzRmlyc3RGb3JtYXR0ZWRM
aW5lKTsKIAotICAgIGVudW0gY2xhc3MgU2hhcGluZ0JvdW5kYXJ5IDogdWludDhfdCB7IFN0YXJ0
LCBJbnNpZGUsIEVuZCB9OworICAgIGVudW0gY2xhc3MgU2hhcGluZ0JvdW5kYXJ5IDogdWludDhf
dCB7IE5vdEFwcGxpY2FibGUsIFN0YXJ0LCBJbnNpZGUsIEVuZCB9OwogICAgIHZvaWQgYXBwZW5k
VGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIHN0ZDo6b3B0aW9uYWw8U2hhcGluZ0JvdW5kYXJ5Pik7CiAg
ICAgdm9pZCBhcHBlbmRUZXh0RmFzdChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IFJlbmRl
clN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOyAvLyBSZXNlcnZlZCBmb3Ig
VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcgogICAgIHZvaWQgYXBwZW5kQXRvbWljSW5saW5lQm94
KGNvbnN0IElubGluZUl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQg
bWFyZ2luQm94TG9naWNhbFdpZHRoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGJvb2wgaXNPcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6T3BhcXVl
OyB9CiAgICAgICAgIGJvb2wgaXNCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBl
OjpCbG9jazsgfQogCi0gICAgICAgIGJvb2wgaXNDb250ZW50ZnVsKCkgY29uc3QgeyByZXR1cm4g
KGlzVGV4dCgpICYmIHRleHRDb250ZW50KCktPmxlbmd0aCkgfHwgaXNBdG9taWNJbmxpbmVCb3go
KSB8fCBpc0xpbmVCcmVhaygpIHx8IGlzTGlzdE1hcmtlcigpIHx8IGlzQmxvY2soKTsgfQorICAg
ICAgICBib29sIGlzQ29udGVudGZ1bCgpIGNvbnN0IHsgcmV0dXJuIChpc1RleHQoKSAmJiB0ZXh0
Q29udGVudCgpLmxlbmd0aCkgfHwgaXNBdG9taWNJbmxpbmVCb3goKSB8fCBpc0xpbmVCcmVhaygp
IHx8IGlzTGlzdE1hcmtlcigpIHx8IGlzQmxvY2soKTsgfQogICAgICAgICBib29sIGlzR2VuZXJh
dGVkKCkgY29uc3QgeyByZXR1cm4gaXNMaXN0TWFya2VyKCk7IH0KICAgICAgICAgc3RhdGljIGJv
b2wgaXNDb250ZW50ZnVsT3JIYXNEZWNvcmF0aW9uKGNvbnN0IFJ1biYsIGNvbnN0IElubGluZUZv
cm1hdHRpbmdDb250ZXh0Jik7CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBzaXplX3QgbGVuZ3RoIHsgMCB9OwogICAgICAgICAgICAgYm9vbCBuZWVkc0h5cGhlbiB7
IGZhbHNlIH07CiAgICAgICAgIH07Ci0gICAgICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dD4m
IHRleHRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGVudDsgfQorICAgICAgICBj
b25zdCBUZXh0JiB0ZXh0Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRlbnQ7IH0K
IAogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fbG9naWNhbFdpZHRoOyB9CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQo
KSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxMZWZ0OyB9CkBAIC0xNDIsOSArMTQyLDE3IEBAIHB1
YmxpYzoKIAogICAgICAgICBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiYgZXhw
YW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KIAotICAgICAgICBib29sIGhh
c1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNl
Lmhhc192YWx1ZSgpOyB9Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNw
YWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSA/IG1fdHJhaWxp
bmdXaGl0ZXNwYWNlLT53aWR0aCA6IDAuZjsgfQotICAgICAgICBib29sIGlzV2hpdGVzcGFjZU9u
bHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5n
V2hpdGVzcGFjZS0+bGVuZ3RoID09IG1fdGV4dENvbnRlbnQtPmxlbmd0aDsgfQorICAgICAgICBi
b29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0
ZXNwYWNlLnR5cGUgIT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpOb3RBcHBsaWNhYmxlOyB9
CisgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25z
dCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsgfQorICAgICAgICBib29sIGlz
V2hpdGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAm
JiBtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGggPT0gbV90ZXh0Q29udGVudC5sZW5ndGg7IH0K
KworICAgICAgICBzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgICAgICAgICBib29sIGlzRW1w
dHkoKSBjb25zdCB7IHJldHVybiAhdG9wICYmICFib3R0b207IH0KKworICAgICAgICAgICAgdWlu
dDhfdCB0b3AgOiA1IHsgMCB9OworICAgICAgICAgICAgdWludDhfdCBib3R0b206IDMgeyAwIH07
CisgICAgICAgIH07CisgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIG1fZ2x5cGhPdmVyZmxvdzsgfQogCiAgICAgICAgIGlubGluZSBUZXh0RGlyZWN0
aW9uIGlubGluZURpcmVjdGlvbigpIGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxl
dHRlclNwYWNpbmcoKSBjb25zdDsKQEAgLTE1MywxMCArMTYxLDEwIEBAIHB1YmxpYzoKIAogICAg
ICAgICBVQmlEaUxldmVsIGJpZGlMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlkaUxldmVsOyB9
CiAKLSAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4g
aXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGlu
Z0JvdW5kYXJ5OjpTdGFydDsgfQotICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkg
Y29uc3QgeyByZXR1cm4gaXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkg
PT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7IH0KLSAgICAgICAgYm9vbCBpc0luc2lkZVNo
YXBpbmdCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1f
c2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9Ci0gICAg
ICAgIGJvb2wgaXNTaGFwaW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3Vu
ZGFyeS5oYXNfdmFsdWUoKTsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQo
KSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRh
cnk6OlN0YXJ0OyB9CisgICAgICAgIGJvb2wgaXNTaGFwaW5nQm91bmRhcnlFbmQoKSBjb25zdCB7
IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OkVuZDsg
fQorICAgICAgICBib29sIGlzSW5zaWRlU2hhcGluZ0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4g
bV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpJbnNpZGU7IH0KKyAg
ICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0Jv
dW5kYXJ5ICE9IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6Tm90QXBwbGljYWJsZTsgfQogCiAgICAg
ICAgIC8vIEZJWE1FOiBNYXliZSBhZGQgY3JlYXRlIGZ1bmN0aW9ucyBpbnRlYWQ/CiAgICAgICAg
IFJ1bihjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRV
bml0IGxvZ2ljYWxMZWZ0KTsKQEAgLTE4MCwxNyArMTg4LDE4IEBAIHB1YmxpYzoKICAgICAgICAg
dm9pZCBzZXRCaWRpTGV2ZWwoVUJpRGlMZXZlbCBiaWRpTGV2ZWwpIHsgbV9iaWRpTGV2ZWwgPSBi
aWRpTGV2ZWw7IH0KIAogICAgICAgICBzdHJ1Y3QgVHJhaWxpbmdXaGl0ZXNwYWNlIHsKLSAgICAg
ICAgICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgICAgICBlbnVtIGNsYXNzIFR5cGUgOiB1
aW50OF90IHsKKyAgICAgICAgICAgICAgICBOb3RBcHBsaWNhYmxlLAogICAgICAgICAgICAgICAg
IE5vdENvbGxhcHNpYmxlLAogICAgICAgICAgICAgICAgIENvbGxhcHNpYmxlLAogICAgICAgICAg
ICAgICAgIENvbGxhcHNlZAogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIFR5cGUgdHlwZSB7
IFR5cGU6Ok5vdENvbGxhcHNpYmxlIH07Ci0gICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdp
ZHRoIHsgMCB9OwotICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCB7IDAgfTsKKyAgICAgICAgICAg
IFR5cGUgdHlwZSB7IFR5cGU6Ok5vdEFwcGxpY2FibGUgfTsKKyAgICAgICAgICAgIHNpemVfdCBs
ZW5ndGggOiAyNCB7IDAgfTsKKyAgICAgICAgICAgIElubGluZUxheW91dFVuaXQgd2lkdGggeyAw
LmYgfTsKICAgICAgICAgfTsKLSAgICAgICAgYm9vbCBoYXNDb2xsYXBzaWJsZVRyYWlsaW5nV2hp
dGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlICYmIChtX3RyYWls
aW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNp
YmxlIHx8IGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpKTsgfQotICAgICAgICBib29s
IGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT50eXBlID09IFRyYWlsaW5nV2hp
dGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkOyB9CisgICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVU
cmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2Uo
KSAmJiAobV90cmFpbGluZ1doaXRlc3BhY2UudHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5
cGU6OkNvbGxhcHNpYmxlIHx8IGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpKTsgfQor
ICAgICAgICBib29sIGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0
dXJuIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5cGUg
PT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQ7IH0KICAgICAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlPiB0cmFpbGluZ1doaXRlc3Bh
Y2VUeXBlKGNvbnN0IElubGluZVRleHRJdGVtJik7CiAgICAgICAgIElubGluZUxheW91dFVuaXQg
cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKCk7CiAKQEAgLTIwMCwxOCArMjA5LDE5IEBAIHB1Ymxp
YzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25z
dDsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCByZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmco
KTsKIAorICAgICAgICBUcmFpbGluZ1doaXRlc3BhY2UgbV90cmFpbGluZ1doaXRlc3BhY2UgeyB9
OwogICAgICAgICBUeXBlIG1fdHlwZSB7IFR5cGU6OlRleHQgfTsKLSAgICAgICAgY29uc3QgQm94
KiBtX2xheW91dEJveCB7IG51bGxwdHIgfTsKLSAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIG1f
c3R5bGU7CisgICAgICAgIExpbmU6OlNoYXBpbmdCb3VuZGFyeSBtX3NoYXBpbmdCb3VuZGFyeSB7
IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6Tm90QXBwbGljYWJsZSB9OwogICAgICAgICBJbmxpbmVM
YXlvdXRVbml0IG1fbG9naWNhbExlZnQgeyAwIH07CisgICAgICAgIE1hcmthYmxlPHNpemVfdD4g
bV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydCB7IH07CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgbV9sb2dpY2FsV2lkdGggeyAwIH07Ci0gICAgICAgIElubGluZURpc3BsYXk6OkJveDo6
RXhwYW5zaW9uIG1fZXhwYW5zaW9uOwogICAgICAgICBVQmlEaUxldmVsIG1fYmlkaUxldmVsIHsg
VUJJRElfREVGQVVMVF9MVFIgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxUcmFpbGluZ1doaXRl
c3BhY2U+IG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxz
aXplX3Q+IG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgeyB9OwotICAgICAgICBzdGQ6
Om9wdGlvbmFsPFRleHQ+IG1fdGV4dENvbnRlbnQ7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TGlu
ZTo6U2hhcGluZ0JvdW5kYXJ5PiBtX3NoYXBpbmdCb3VuZGFyeTsKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCBtX3RleHRTcGFjaW5nQWRqdXN0bWVudCB7IDAgfTsKKyAgICAgICAgR2x5cGhPdmVy
ZmxvdyBtX2dseXBoT3ZlcmZsb3c7CisgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBu
dWxscHRyIH07CisgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBJ
bmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKKyAgICAgICAgVGV4dCBt
X3RleHRDb250ZW50OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEw
PjsKICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9CkBA
IC0zODIsOCArMzkyLDggQEAgaW5saW5lIHNpemVfdCBMaW5lOjpIYW5naW5nQ29udGVudDo6bGVu
Z3RoKCkgY29uc3QKIAogaW5saW5lIHZvaWQgTGluZTo6UnVuOjpzZXROZWVkc0h5cGhlbihJbmxp
bmVMYXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKIHsKLSAgICBBU1NFUlQobV90ZXh0Q29u
dGVudCk7Ci0gICAgbV90ZXh0Q29udGVudC0+bmVlZHNIeXBoZW4gPSB0cnVlOworICAgIEFTU0VS
VChpc1RleHQoKSk7CisgICAgbV90ZXh0Q29udGVudC5uZWVkc0h5cGhlbiA9IHRydWU7CiAgICAg
bV9sb2dpY2FsV2lkdGggKz0gaHlwaGVuTG9naWNhbFdpZHRoOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
Qm94QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggODY1NmExMGM0ZGY4Li5iZTg4
N2RiNmIxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5j
cHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBUZXh0VXRpbDo6RmFsbGJhY2tGb250TGlzdCBMaW5lQm94
QnVpbGRlcjo6Y29sbGVjdEZhbGxiYWNrRm9udHMoY29uc3QgSW5saW5lTGV2ZQogICAgICAgICAv
LyBTaW1wbGlmaWVkIHRleHQgbWVhc3VyaW5nIHdvcmtzIHdpdGggcHJpbWFyeSBmb250IG9ubHku
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIGF1dG8gdGV4dCA9ICpydW4udGV4dENv
bnRlbnQoKTsKKyAgICBhdXRvJiB0ZXh0ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgYXV0byBm
YWxsYmFja0ZvbnRzID0gVGV4dFV0aWw6OmZhbGxiYWNrRm9udHNGb3JUZXh0KFN0cmluZ1ZpZXco
aW5saW5lVGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0
aCksIHN0eWxlLCB0ZXh0Lm5lZWRzSHlwaGVuID8gVGV4dFV0aWw6OkluY2x1ZGVIeXBoZW46Olll
cyA6IFRleHRVdGlsOjpJbmNsdWRlSHlwaGVuOjpObyk7CiAgICAgaWYgKGZhbGxiYWNrRm9udHMu
aXNFbXB0eUlnbm9yaW5nTnVsbFJlZmVyZW5jZXMoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTYxMSw5ICs2MTEsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWln
aHRzRm9yTGluZUJveENvbnRhaW5JZkFwcGxpY2FibGUoTGluZUJveAogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgICAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5l
VGV4dEJveD4ocnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQg
PSBydW4udGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gcnVu
LnRleHRDb250ZW50KCk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0
ZWRMaW5lKCkgPyB0ZXh0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiB0ZXh0Qm94LnN0eWxlKCk7Ci0g
ICAgICAgICAgICBhdXRvIGVuY2xvc2luZ0FzY2VudERlc2NlbnRGb3JSdW4gPSBUZXh0VXRpbDo6
ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkp
LnN1YnN0cmluZyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpLCBzdHls
ZSwgdGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRV
dGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGls
OjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAg
IGF1dG8gZW5jbG9zaW5nQXNjZW50RGVzY2VudEZvclJ1biA9IFRleHRVdGlsOjplbmNsb3NpbmdH
bHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5n
KHRleHRDb250ZW50LnN0YXJ0LCB0ZXh0Q29udGVudC5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5z
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRV
c2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKIAogICAgICAgICAgICAgYXV0byYgcGFy
ZW50SW5saW5lQm94ID0gbGluZUJveC5wYXJlbnRJbmxpbmVCb3gocnVuKTsKICAgICAgICAgICAg
IGF1dG8gZW5jbG9zaW5nQXNjZW50RGVzY2VudEZvcklubGluZUJveCA9IGlubGluZUJveEJvdW5k
c01hcC5nZXQoJnBhcmVudElubGluZUJveCk7CkBAIC02MzcsOSArNjM3LDkgQEAgdm9pZCBMaW5l
Qm94QnVpbGRlcjo6YWRqdXN0SW5saW5lQm94SGVpZ2h0c0ZvckxpbmVCb3hDb250YWluSWZBcHBs
aWNhYmxlKExpbmVCb3gKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAg
YXV0byYgdGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSk7
Ci0gICAgICAgICAgICBhdXRvIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CisgICAg
ICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAg
ICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gdGV4dEJveC5maXJzdExp
bmVTdHlsZSgpIDogdGV4dEJveC5zdHlsZSgpOwotICAgICAgICAgICAgYXV0byBhc2NlbnRBbmRE
ZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3
KHRleHRCb3guY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29u
dGVudC0+bGVuZ3RoKSwgc3R5bGUsIHRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxv
d0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQ
YXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
OjpObyk7CisgICAgICAgICAgICBhdXRvIGFzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5j
bG9zaW5nR2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1
YnN0cmluZyh0ZXh0Q29udGVudC5zdGFydCwgdGV4dENvbnRlbnQubGVuZ3RoKSwgc3R5bGUsIHRl
eHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6
U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hv
dWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CiAKICAgICAgICAgICAgIGlu
aXRpYWxMZXR0ZXJEZXNjZW50ID0gYXNjZW50QW5kRGVzY2VudC5kZXNjZW50OwogICAgICAgICAg
ICAgaWYgKGxpbmVCb3guYmFzZWxpbmVUeXBlKCkgIT0gRm9udEJhc2VsaW5lOjpBbHBoYWJldGlj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDUwNTYwYTU4
NmJkYy4uN2NmZjhkM2JmNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nQnVpbGRlciB0b1N0
cmluZyhjb25zdCBMaW5lOjpSdW5MaXN0JiBydW5zKQogICAgICAgICBpZiAoIXJ1bi5pc1RleHQo
KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1
bi50ZXh0Q29udGVudCgpOwotICAgICAgICBsaW5lQ29udGVudEJ1aWxkZXIuYXBwZW5kKFN0cmlu
Z1ZpZXcoZG93bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLmxheW91dEJveCgpKS5jb250ZW50KCkp
LnN1YnN0cmluZyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpKTsKKyAg
ICAgICAgbGluZUNvbnRlbnRCdWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGRvd25jYXN0PElubGlu
ZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSkuY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRl
bnQuc3RhcnQsIHRleHRDb250ZW50Lmxlbmd0aCkpOwogICAgIH0KICAgICByZXR1cm4gbGluZUNv
bnRlbnRCdWlsZGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKaW5kZXggZDAx
N2M1ODliNWJhLi40ZDEyNTJmODkxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0u
aApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNvcmUv
Rm9udENhc2NhZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lubGluZUl0ZW0uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0xheW91dElubGluZVRleHRCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dyaXRp
bmdNb2RlLmg+CkBAIC01Miw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRnVsbHlUcmlt
bWFibGUoKSBjb25zdDsKICAgICBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbigpIGNvbnN0IHsg
cmV0dXJuIG1faGFzVHJhaWxpbmdTb2Z0SHlwaGVuOyB9CiAgICAgc3RkOjpvcHRpb25hbDxJbmxp
bmVMYXlvdXRVbml0PiB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzV2lkdGggPyBzdGQ6Om1h
a2Vfb3B0aW9uYWwobV93aWR0aCkgOiBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHsg
fTsgfQorICAgIHN0ZDo6cGFpcjx1aW50OF90LCB1aW50OF90PiBnbHlwaE92ZXJmbG93KCkgY29u
c3QgeyByZXR1cm4geyBtX2dseXBoVG9wT3ZlcmZsb3csIG1fZ2x5cGhCb3R0b21PdmVyZmxvdyB9
OyB9CiAKICAgICBjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KCkgY29uc3QgeyBy
ZXR1cm4gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KCkpOyB9CiAKQEAgLTY4LDYg
KzcwLDcgQEAgcHJpdmF0ZToKICAgICB1c2luZyBJbmxpbmVJdGVtOjpUZXh0SXRlbVR5cGU7CiAK
ICAgICBJbmxpbmVUZXh0SXRlbSBzcGxpdChzaXplX3QgbGVmdFNpZGVMZW5ndGgpOworICAgIHZv
aWQgc2V0R2x5cGhPdmVyZmxvdyhMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5pdCBib3R0b20pOwog
CiAgICAgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIFVCaURpTGV2ZWwsIGJvb2wgaGFzVHJhaWxpbmdTb2Z0SHlwaGVu
LCBib29sIGlzV29yZFNlcGFyYXRvciwgc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3
aWR0aCwgVGV4dEl0ZW1UeXBlKTsKICAgICBleHBsaWNpdCBJbmxpbmVUZXh0SXRlbShjb25zdCBJ
bmxpbmVUZXh0Qm94Jik7CkBAIC05MCw2ICs5MywxMiBAQCBpbmxpbmUgSW5saW5lVGV4dEl0ZW0g
SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUVtcHR5SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxp
bgogICAgIHJldHVybiBJbmxpbmVUZXh0SXRlbSB7IGlubGluZVRleHRCb3ggfTsKIH0KIAoraW5s
aW5lIHZvaWQgSW5saW5lVGV4dEl0ZW06OnNldEdseXBoT3ZlcmZsb3coTGF5b3V0VW5pdCB0b3As
IExheW91dFVuaXQgYm90dG9tKQoreworICAgIG1fZ2x5cGhUb3BPdmVyZmxvdyA9IHRvcC5jZWls
KCk7CisgICAgbV9nbHlwaEJvdHRvbU92ZXJmbG93ID0gYm90dG9tLmNlaWwoKTsKK30KKwogfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggOTE2ZWUyZWJkY2VlLi4zZThkMTI2N2YxNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgY29tcHV0ZUlua092ZXJmbG93Rm9ySW5saW5lQm94KGNvbnN0IElubGluZUxldmVsQm94
JiBpbmxpbmVCbwogCiB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4
dERpc3BsYXlCb3goY29uc3QgTGluZTo6UnVuJiBsaW5lUnVuLCBjb25zdCBJbmxpbmVSZWN0JiB0
ZXh0UnVuUmVjdCwgSW5saW5lRGlzcGxheTo6Qm94ZXMmIGJveGVzKQogewotICAgIEFTU0VSVChs
aW5lUnVuLnRleHRDb250ZW50KCkgJiYgaXM8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRC
b3goKSkpOworICAgIEFTU0VSVChsaW5lUnVuLmlzVGV4dCgpICYmIGlzPElubGluZVRleHRCb3g+
KGxpbmVSdW4ubGF5b3V0Qm94KCkpKTsKIAogICAgIGF1dG8mIGlubGluZVRleHRCb3ggPSBkb3du
Y2FzdDxJbmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKTsKICAgICBhdXRvJiBzdHls
ZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkgPyBpbmxpbmVUZXh0Qm94LmZpcnN0TGluZVN0eWxl
KCkgOiBpbmxpbmVUZXh0Qm94LnN0eWxlKCk7CkBAIC0xOTgsMTYgKzE5OCw5IEBAIHZvaWQgSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5l
OjpSdW4mIGxpbmVSdW4sCiAgICAgICAgIGFkZFRleHRTaGFkb3coKTsKIAogICAgICAgICBhdXRv
IGFkZEdseXBoT3ZlcmZsb3cgPSBbJl0gewotICAgICAgICAgICAgaWYgKGlubGluZVRleHRCb3gu
Y2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBjYW5Vc2VT
aW1wbGVGb250Q29kZVBhdGggbWFwcyB0byBDb2RlUGF0aDo6U2ltcGxlIChhbmQgY29udGVudCB3
aXRoIHBvdGVudGlhbCBnbHlwaCBvdmVyZmxvdyB3b3VsZCBzYXlzIENvZGVQYXRoOjpTaW1wbGVX
aXRoR2x5cGhPdmVyZmxvdykuCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6
OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmlu
Zyh0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoKSwgc3R5bGUsIGlubGluZVRleHRCb3guc2hvdWxk
VXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2lt
cGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxl
R2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogVGFrZSBm
YWxsYmFjayBmb250cyBpbnRvIGFjY291bnQuCi0gICAgICAgICAgICBhdXRvJiBmb250TWV0cmlj
cyA9IHN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgICAgICAgICBhdXRvIHRvcE92
ZXJmbG93ID0gc3RkOjptYXgoMC5mLCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0ludCgt
ZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5hc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5saW5l
Rm9ybWF0dGluZ1V0aWxzOjphc2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFi
ZXRpYywgaW5saW5lVGV4dEJveCkpOwotICAgICAgICAgICAgYXV0byBib3R0b21PdmVyZmxvdyA9
IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoZW5jbG9zaW5n
QXNjZW50QW5kRGVzY2VudC5kZXNjZW50LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRp
bmdVdGlsczo6ZGVzY2VudChmb250TWV0cmljcywgRm9udEJhc2VsaW5lOjpBbHBoYWJldGljLCBp
bmxpbmVUZXh0Qm94KSk7Ci0gICAgICAgICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKHRvcE92ZXJm
bG93LCB7IH0sIGJvdHRvbU92ZXJmbG93LCB7IH0pOworICAgICAgICAgICAgYXV0byBnbHlwaE92
ZXJmbG93ID0gbGluZVJ1bi5nbHlwaE92ZXJmbG93KCk7CisgICAgICAgICAgICBpZiAoIWdseXBo
T3ZlcmZsb3cuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGlua092ZXJmbG93LmluZmxhdGUo
Z2x5cGhPdmVyZmxvdy50b3AsIHsgfSwgZ2x5cGhPdmVyZmxvdy5ib3R0b20sIHsgfSk7CiAgICAg
ICAgIH07CiAgICAgICAgIGFkZEdseXBoT3ZlcmZsb3coKTsKIApAQCAtMjI3LDcgKzIyMCw3IEBA
IHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChj
b25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgICAgICAgICAsIGlua092ZXJmbG93CiAgICAg
ICAgICAgICAsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkKICAgICAgICAgICAgICwgbGluZVJ1bi5l
eHBhbnNpb24oKQotICAgICAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0ZXh0
LT5zdGFydCwgMSwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJTdHJpbmcsIGNvbnRlbnQgfQor
ICAgICAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0ZXh0LnN0YXJ0LCAxLCBv
YmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZywgY29udGVudCB9CiAgICAgICAgICAgICAs
IGlzQ29udGVudGZ1bAogICAgICAgICAgICAgLCBpc0xpbmVGdWxseVRydW5jYXRlZEluQmxvY2tE
aXJlY3Rpb24oKQogICAgICAgICB9KTsKQEAgLTIzNSw3ICsyMjgsNyBAQCB2b2lkIElubGluZURp
c3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3QgTGluZTo6UnVu
JiBsaW5lUnVuLAogICAgIH0KIAogICAgIGF1dG8gYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIgPSBb
Jl0gewotICAgICAgICByZXR1cm4gdGV4dC0+bmVlZHNIeXBoZW4gPyBtYWtlU3RyaW5nKFN0cmlu
Z1ZpZXcoY29udGVudCkuc3Vic3RyaW5nKHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgpLCBzdHls
ZS5oeXBoZW5TdHJpbmcoKSkgOiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHRleHQubmVlZHNI
eXBoZW4gPyBtYWtlU3RyaW5nKFN0cmluZ1ZpZXcoY29udGVudCkuc3Vic3RyaW5nKHRleHQuc3Rh
cnQsIHRleHQubGVuZ3RoKSwgc3R5bGUuaHlwaGVuU3RyaW5nKCkpIDogU3RyaW5nKCk7CiAgICAg
fTsKICAgICBhdXRvIHNoYXBpbmdCb3VuZGFyeSA9IFsmXSB7CiAgICAgICAgIGlmIChsaW5lUnVu
LmlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQoKSkKQEAgLTI1NCw3ICsyNDcsNyBAQCB2b2lkIElubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3QgTGluZTo6
UnVuJiBsaW5lUnVuLAogICAgICAgICAsIGlua092ZXJmbG93CiAgICAgICAgICwgaXNGaXJzdEZv
cm1hdHRlZExpbmUoKQogICAgICAgICAsIGxpbmVSdW4uZXhwYW5zaW9uKCkKLSAgICAgICAgLCBJ
bmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoLCBjb250
ZW50LCBhZGp1c3RlZENvbnRlbnRUb1JlbmRlcigpLCB0ZXh0LT5uZWVkc0h5cGhlbiwgc2hhcGlu
Z0JvdW5kYXJ5KCkgfQorICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQu
c3RhcnQsIHRleHQubGVuZ3RoLCBjb250ZW50LCBhZGp1c3RlZENvbnRlbnRUb1JlbmRlcigpLCB0
ZXh0Lm5lZWRzSHlwaGVuLCBzaGFwaW5nQm91bmRhcnkoKSB9CiAgICAgICAgICwgaXNDb250ZW50
ZnVsCiAgICAgICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJsb2NrRGlyZWN0aW9uKCkKICAg
ICB9KTsKQEAgLTI2Miw3ICsyNTUsNyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRl
cjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3QgTGluZTo6UnVuJiBsaW5lUnVuLAogCiB2b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kU29mdExpbmVCcmVha0Rpc3BsYXlC
b3goY29uc3QgTGluZTo6UnVuJiBsaW5lUnVuLCBjb25zdCBJbmxpbmVSZWN0JiBzb2Z0TGluZUJy
ZWFrUnVuUmVjdCwgSW5saW5lRGlzcGxheTo6Qm94ZXMmIGJveGVzKQogewotICAgIEFTU0VSVChs
aW5lUnVuLnRleHRDb250ZW50KCkgJiYgaXM8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRC
b3goKSkpOworICAgIEFTU0VSVChsaW5lUnVuLnRleHRDb250ZW50KCkubGVuZ3RoICYmIGlzPElu
bGluZVRleHRCb3g+KGxpbmVSdW4ubGF5b3V0Qm94KCkpKTsKIAogICAgIGF1dG8mIGxheW91dEJv
eCA9IGxpbmVSdW4ubGF5b3V0Qm94KCk7CiAgICAgYXV0byYgdGV4dCA9IGxpbmVSdW4udGV4dENv
bnRlbnQoKTsKQEAgLTI3Niw3ICsyNjksNyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6YXBwZW5kU29mdExpbmVCcmVha0Rpc3BsYXlCb3goY29uc3QgTGluZTo6UnVuJgogICAg
ICAgICAsIHNvZnRMaW5lQnJlYWtSdW5SZWN0CiAgICAgICAgICwgaXNGaXJzdEZvcm1hdHRlZExp
bmUoKQogICAgICAgICAsIGxpbmVSdW4uZXhwYW5zaW9uKCkKLSAgICAgICAgLCBJbmxpbmVEaXNw
bGF5OjpCb3g6OlRleHQgeyB0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoLCBkb3duY2FzdDxJbmxp
bmVUZXh0Qm94PihsYXlvdXRCb3gpLmNvbnRlbnQoKSB9CisgICAgICAgICwgSW5saW5lRGlzcGxh
eTo6Qm94OjpUZXh0IHsgdGV4dC5zdGFydCwgdGV4dC5sZW5ndGgsIGRvd25jYXN0PElubGluZVRl
eHRCb3g+KGxheW91dEJveCkuY29udGVudCgpIH0KICAgICAgICAgLCBpc0NvbnRlbnRmdWwKICAg
ICAgICAgLCBpc0xpbmVGdWxseVRydW5jYXRlZEluQmxvY2tEaXJlY3Rpb24oKQogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvdGV4dC9UZXh0VXRpbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcAppbmRleCA2NTYxMTRmOWNkMzMuLmY5NDZk
MWQ2MjI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAKQEAgLTU2LDcgKzU2
LDcgQEAgc3RhdGljIGlubGluZSBJbmxpbmVMYXlvdXRVbml0IHNwYWNlV2lkdGgoY29uc3QgRm9u
dENhc2NhZGUmIGZvbnRDYXNjYWRlLCBib29sIGMKICAgICByZXR1cm4gZm9udENhc2NhZGUud2lk
dGhPZlNwYWNlU3RyaW5nKCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRo
KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBm
b250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQg
Y29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6
YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBUZXh0U3Bh
Y2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSkKK0lubGluZUxheW91dFVuaXQgVGV4dFV0
aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxh
eW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJp
bmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9u
LCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSwgR2x5cGhPdmVyZmxvdyog
Z2x5cGhPdmVyZmxvdykKIHsKICAgICBpZiAoZnJvbSA9PSB0bykKICAgICAgICAgcmV0dXJuIDA7
CkBAIC04OSw3ICs4OSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0
IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRDCiAgICAgICAgICAgICBy
dW4uc2V0VGFiU2l6ZSh0cnVlLCBTdHlsZTo6dG9QbGF0Zm9ybShzdHlsZS50YWJTaXplKCkpKTsK
ICAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIG1vdmluZyB0aGlzIHRvIFRleHRSdW4gY3Rvcgog
ICAgICAgICBydW4uc2V0VGV4dFNwYWNpbmdTdGF0ZShzcGFjaW5nU3RhdGUpOwotICAgICAgICB3
aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1bik7CisgICAgICAgIHdpZHRoID0gZm9udENhc2Nh
ZGUud2lkdGgocnVuLCB7IH0sIGdseXBoT3ZlcmZsb3cpOwogICAgIH0KIAogICAgIGlmIChleHRl
bmRlZE1lYXN1cmluZykKQEAgLTEwNSw3ICsxMDUsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRV
dGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZv
bgogICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRl
LCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5lbmQoKSwgY29udGVudExv
Z2ljYWxMZWZ0KTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3Qg
SW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENh
c2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRl
bnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9u
IHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNpbmc6
OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3
aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNj
YWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91
dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdP
cHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBU
ZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSwgR2x5cGhPdmVyZmxvdyogZ2x5
cGhPdmVyZmxvdykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChmcm9tID49IGlubGluZVRleHRJdGVt
LnN0YXJ0KCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKHRvIDw9IGlubGluZVRleHRJdGVtLmVuZCgp
KTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbgogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWF4KDAuZiwgd2lkdGgpOwogICAgICAgICB9CiAgICAgfQotICAgIHJl
dHVybiB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBm
cm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJp
bmdPcHRpbWl6YXRpb24sIHNwYWNpbmdTdGF0ZSk7CisgICAgcmV0dXJuIHdpZHRoKGlubGluZVRl
eHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9n
aWNhbExlZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgc3Bh
Y2luZ1N0YXRlLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRp
bDo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4
dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBzaXplX3Qgc3RhcnRQb3NpdGlv
biwgc2l6ZV90IGVuZFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oCmluZGV4
IDZmNTY1ODQ2YjFkYy4uNjM3NDNiOWE2NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRp
bC5oCkBAIC01Myw4ICs1Myw4IEBAIGNsYXNzIFRleHRVdGlsIHsKIHB1YmxpYzoKICAgICBlbnVt
IGNsYXNzIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA6IGJvb2wg
eyBObywgWWVzIH07CiAgICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxMZWZ0KTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJ
bmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFz
dXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5n
U3RhdGUgPSB7IH0pOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElu
bGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0
ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0
YXRlID0geyB9KTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxp
bmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
dG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRl
c3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJp
bmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3Rh
dGUgPSB7IH0sIEdseXBoT3ZlcmZsb3cqID0gbnVsbHB0cik7CisgICAgc3RhdGljIElubGluZUxh
eW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRDYXNjYWRlJiwg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2lj
YWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VU
cmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6
OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0sIEdseXBoT3ZlcmZsb3cqID0gbnVsbHB0
cik7CiAKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0
aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCBzaXplX3Qgc3RhcnRQ
b3NpdGlvbiwgc2l6ZV90IGVuZFBvc2l0aW9uKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477900</attachid>
            <date>2026-01-04 15:10:29 -0800</date>
            <delta_ts>2026-01-07 08:47:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260104151028.patch</filename>
            <type>text/plain</type>
            <size>45578</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiODU1MDA2MWRhMGRkMzk4MDJiODlmNjZlZjkxM2MwYjEwMjQ3Yjg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFN1biwgNCBKYW4gMjAyNiAxNTowOTo0NSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBM
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1mYWls
LWV4cGVjdGVkLnR4dDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OmNvbXB1
dGVkRXhwYW5zaW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ1V0aWxzOjppbmxpbmVDb250ZW50RW5kaW5nKToKKiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcDoKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmg6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbXNCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpj
b21wdXRlQ29udGVudEF0dHJpYnV0ZXNBbmRJbmxpbmVUZXh0SXRlbVdpZHRocyk6CiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OnJlc3RvcmVUcmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNl
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1v
dmUpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6
OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpkZXRhY2hU
cmFpbGluZ1doaXRlc3BhY2UpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRy
YWlsaW5nV2hpdGVzcGFjZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omlz
Q29udGVudGZ1bCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dGV4dENvbnRl
bnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc1RyYWlsaW5nV2hpdGVz
cGFjZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNw
YWNlV2lkdGggY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzV2hpdGVzcGFj
ZU9ubHkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OkdseXBoT3ZlcmZsb3c6
OmlzRW1wdHkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmdseXBoT3ZlcmZs
b3cgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5kYXJ5
U3RhcnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5k
YXJ5RW5kIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc0luc2lkZVNoYXBp
bmdCb3VuZGFyeSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5n
Qm91bmRhcnkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNp
YmxlVHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVu
OjpoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0
OjpMaW5lOjpSdW46OnNldE5lZWRzSHlwaGVuKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpjb2xsZWN0RmFsbGJhY2tGb250cyk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRzRm9yTGluZUJv
eENvbnRhaW5JZkFwcGxpY2FibGUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6
dG9TdHJpbmcpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZVRleHRJdGVtLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpn
bHlwaE92ZXJmbG93IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OnNl
dEdseXBoT3ZlcmZsb3cpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxh
eUJveCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBw
ZW5kU29mdExpbmVCcmVha0Rpc3BsYXlCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwOgooV2ViQ29yZTo6TGF5b3V0
OjpUZXh0VXRpbDo6d2lkdGgpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6
OndpZHRoKToKLS0tCiAuLi4vaW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVyLmNwcCAgICAgICAg
ICAgfCAgMiArLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwICAgICAgICAg
IHwgIDIgKy0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwICB8
ICAyICsKIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCAgICB8ICAy
ICsKIC4uLi9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcCAgICAgICAgICAgICB8IDIwICsr
KystCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCAgfCA3MyAr
KysrKysrKysrKy0tLS0tLS0tCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lLmggICAgfCA2MCArKysrKysrKy0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJveEJ1
aWxkZXIuY3BwICAgICAgICAgICB8IDEwICstLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaCAg
ICAgICAgICAgICAgICAgICB8ICA5ICsrKwogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcCAgIHwgMjUgKysrLS0tLQogLi4uL2lubGluZS90ZXh0L1RleHRVdGlsLmNw
cCAgICAgICAgICAgICAgICAgIHwgIDggKy0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L3RleHQvVGV4dFV0aWwuaCB8ICA0ICstCiAuLi5pLWdseXBoLW92ZXJmbG93LXJlcGFpbnQtZmFp
bC1leHBlY3RlZC50eHQgfCAgNSArLQogMTQgZmlsZXMgY2hhbmdlZCwgMTM0IGluc2VydGlvbnMo
KyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRB
bGlnbmVyLmNwcAppbmRleCAwYTQyMWE0NzQ3NzAuLjU4ODRjMjliZGYwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29u
dGVudEFsaWduZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVyLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBA
IHN0YXRpYyB2b2lkIGNvbXB1dGVkRXhwYW5zaW9ucyhjb25zdCBMaW5lOjpSdW5MaXN0JiBydW5z
LCBXVEY6OlJhbmdlPHNpemVfdD4gcnVuCiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICBleHBhbnNpb25CZWhhdmlvci5sZWZ0ID0gcnVuSXNBZnRlckV4cGFuc2lvbiA/IEV4cGFu
c2lvbkJlaGF2aW9yOjpCZWhhdmlvcjo6Rm9yYmlkIDogRXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2
aW9yOjpBbGxvdzsKICAgICAgICAgICAgICAgICBleHBhbnNpb25CZWhhdmlvci5yaWdodCA9IEV4
cGFuc2lvbkJlaGF2aW9yOjpCZWhhdmlvcjo6QWxsb3c7Ci0gICAgICAgICAgICAgICAgYXV0byYg
dGV4dENvbnRlbnQgPSAqcnVuLnRleHRDb250ZW50KCk7CisgICAgICAgICAgICAgICAgYXV0byYg
dGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsKICAgICAgICAgICAgICAgICBhdXRvIGxl
bmd0aCA9IHRleHRDb250ZW50Lmxlbmd0aDsKICAgICAgICAgICAgICAgICBpZiAobGFzdFRleHRS
dW5JbmRleEZvclRyaW1taW5nICYmIHJ1bkluZGV4KCkgPT0gKmxhc3RUZXh0UnVuSW5kZXhGb3JU
cmltbWluZykgewogICAgICAgICAgICAgICAgICAgICAvLyBUcmFpbGluZyBoYW5naW5nIHdoaXRl
c3BhY2Ugc2VxdWVuY2UgaXMgaWdub3JlZCB3aGVuIGNvbXB1dGluZyB0aGUgZXhwYW5zaW9uIG9w
cG9ydHVuaXRpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxz
LmNwcAppbmRleCA4NDgwMjkwMDI5YzQuLjZiNTM0NjI0MjZlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGlu
Z1V0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwCkBAIC02MzAsNyArNjMwLDcgQEAgc3Rk
OjpvcHRpb25hbDxMaW5lTGF5b3V0UmVzdWx0OjpJbmxpbmVDb250ZW50RW5kaW5nPiBJbmxpbmVG
b3JtYXR0aW5nVXRpbHM6OmlubGkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAo
cnVuLmlzTGluZUJyZWFrKCkpCiAgICAgICAgICAgICByZXR1cm4geyBMaW5lTGF5b3V0UmVzdWx0
OjpJbmxpbmVDb250ZW50RW5kaW5nOjpMaW5lQnJlYWsgfTsKLSAgICAgICAgaWYgKGF1dG8mIHRl
eHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7IHRleHRDb250ZW50ICYmIHRleHRDb250ZW50
LT5uZWVkc0h5cGhlbikKKyAgICAgICAgaWYgKHJ1bi5pc1RleHQoKSAmJiBydW4udGV4dENvbnRl
bnQoKS5uZWVkc0h5cGhlbikKICAgICAgICAgICAgIHJldHVybiB7IExpbmVMYXlvdXRSZXN1bHQ6
OklubGluZUNvbnRlbnRFbmRpbmc6Okh5cGhlbiB9OwogICAgICAgICByZXR1cm4geyBMaW5lTGF5
b3V0UmVzdWx0OjpJbmxpbmVDb250ZW50RW5kaW5nOjpHZW5lcmljIH07CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lSXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVJdGVtLmNwcAppbmRleCBmYjY2ODJjMzc5YWUuLjU4N2NmYjlkOWZlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKQEAgLTQzLDYgKzQzLDggQEAgc3RydWN0IFNhbWVT
aXplQXNJbmxpbmVJdGVtIHsKICAgICBib29sIHdpZHRoQm9vbCA6IDE7CiAgICAgYm9vbCBzb2Z0
SHlwaGVuQm9vbCA6IDE7CiAgICAgYm9vbCBpc1dvcmRTZXBhcmF0b3IgOiAxOworICAgIHVpbnQ4
X3QgZ2x5cGhUb3BPdmVyZmxvdyA6IDU7CisgICAgdWludDhfdCBnbHlwaEJvdHRvbU92ZXJmbG93
IDogMzsKIH07CiAKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKElubGluZUl0ZW0pID09IHNpemVvZihT
YW1lU2l6ZUFzSW5saW5lSXRlbSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCmluZGV4IGQzOWM1
ZDRkNWI5NC4uYzlkYzA3YjllOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCkBAIC05Nyw2
ICs5Nyw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faGFzV2lkdGggOiAxIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVHJhaWxpbmdTb2Z0SHlwaGVuIDogMSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2lzV29yZFNlcGFyYXRvciA6IDEgeyBmYWxzZSB9OworICAgIHVpbnQ4X3QgbV9nbHlwaFRv
cE92ZXJmbG93IDogNSB7IDAgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhCb3R0b21PdmVyZmxvdyA6
IDMgeyAwIH07CiB9OwogCiBpbmxpbmUgSW5saW5lSXRlbTo6SW5saW5lSXRlbShjb25zdCBCb3gm
IGxheW91dEJveCwgVHlwZSB0eXBlLCBVQmlEaUxldmVsIGJpZGlMZXZlbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW1zQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCmluZGV4IDc3ZDgyYzE5ODcxOS4uOWYxZGZk
MTBkYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKQEAg
LTc4Nyw2ICs3ODcsOCBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250ZW50
QXR0cmlidXRlcyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogICAgIFRleHRTcGFjaW5n
OjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlOwogICAgIFRyaW1tYWJsZVRleHRTcGFjaW5ncyB0
cmltbWFibGVUZXh0U3BhY2luZ3M7CiAgICAgYXV0byYgaW5saW5lQm94Qm91bmRhcnlUZXh0U3Bh
Y2luZ3MgPSBpbmxpbmVDb250ZW50Q2FjaGUoKS5pbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5n
cygpOworICAgIGNvbnN0IElubGluZVRleHRCb3gqIGN1cnJlbnRJbmxpbmVUZXh0Qm94ID0gbnVs
bHB0cjsKKyAgICBhdXRvIGN1cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2ZUdseXBoT3ZlcmZsb3cg
PSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpbmxpbmVJdGVtSW5kZXggPSAwOyBpbmxpbmVJdGVt
SW5kZXggPCBpbmxpbmVJdGVtTGlzdC5zaXplKCk7ICsraW5saW5lSXRlbUluZGV4KSB7CiAgICAg
ICAgIGF1dG8gZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IDAuZjsKICAgICAgICAgYXV0byYgaW5s
aW5lSXRlbSA9IGlubGluZUl0ZW1MaXN0W2lubGluZUl0ZW1JbmRleF07CkBAIC04MDEsNyArODAz
LDIzIEBAIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNvbnRlbnRBdHRyaWJ1dGVz
IElubGluZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvCiAgICAgICAgICAgICAgICAgICAgIGlmIChh
dXRvIGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRT
cGFjaW5ncy5maW5kKHBvdGVudGlhbElubGluZUJveFN0YXJ0SW5kZXgpOyBpbmxpbmVCb3hCb3Vu
ZGFyeVRleHRTcGFjaW5nICE9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmVuZCgpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFJbmxpbmVUZXh0U3BhY2luZyA9IGlubGluZUJv
eEJvdW5kYXJ5VGV4dFNwYWNpbmctPnZhbHVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpbmxpbmVUZXh0SXRlbS0+c2V0V2lkdGgoVGV4dFV0aWw6OndpZHRoKCppbmxpbmVU
ZXh0SXRlbSwgaW5saW5lVGV4dEl0ZW0tPnN0eWxlKCkuZm9udENhc2NhZGUoKSwgc3RhcnQsIHN0
YXJ0ICsgaW5saW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlKSArIGV4
dHJhSW5saW5lVGV4dFNwYWNpbmcpOworICAgICAgICAgICAgICAgIGF1dG8mIGZvbnRDYXNjYWRl
ID0gaW5saW5lVGV4dEl0ZW0tPnN0eWxlKCkuZm9udENhc2NhZGUoKTsKKyAgICAgICAgICAgICAg
ICBhdXRvIHdpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7IH07CisgICAgICAgICAgICAgICAgYXV0
byBtYXlIYXZlR2x5cGhPdmVyZmxvdyA9IFsmXSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChj
dXJyZW50SW5saW5lVGV4dEJveCAhPSAmaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudElubGluZVRleHRCb3hNYXlIYXZlR2x5
cGhPdmVyZmxvdyA9ICFpbmxpbmVUZXh0SXRlbS0+aW5saW5lVGV4dEJveCgpLmNhblVzZVNpbXBs
ZUZvbnRDb2RlUGF0aCgpIHx8IGZvbnRDYXNjYWRlLnByaW1hcnlGb250KCktPm9yaWdpbigpID09
IEZvbnRPcmlnaW46OlJlbW90ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmxp
bmVUZXh0Qm94ID0gJmlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmxpbmVUZXh0
Qm94TWF5SGF2ZUdseXBoT3ZlcmZsb3c7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICBpZiAobWF5SGF2ZUdseXBoT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgICAgICAgICBH
bHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgICAgICAgICAgICAgICAgIGdseXBoT3Zl
cmZsb3cuY29tcHV0ZUJvdW5kcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0g
VGV4dFV0aWw6OndpZHRoKCppbmxpbmVUZXh0SXRlbSwgZm9udENhc2NhZGUsIHN0YXJ0LCBzdGFy
dCArIGlubGluZVRleHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNpbmdTdGF0ZSwgJmdseXBo
T3ZlcmZsb3cpOworICAgICAgICAgICAgICAgICAgICBpbmxpbmVUZXh0SXRlbS0+c2V0R2x5cGhP
dmVyZmxvdyhzdGQ6OmNsYW1wKGdseXBoT3ZlcmZsb3cudG9wLCAwX2x1LCAzMV9sdSksIHN0ZDo6
Y2xhbXAoZ2x5cGhPdmVyZmxvdy5ib3R0b20sIDBfbHUsIDdfbHUpKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoKmlu
bGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0t
Pmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdP
cHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlKTsKKyAgICAgICAgICAgICAgICBpbmxpbmVU
ZXh0SXRlbS0+c2V0V2lkdGgod2lkdGggKyBleHRyYUlubGluZVRleHRTcGFjaW5nKTsKICAgICAg
ICAgICAgICAgICBoYW5kbGVUZXh0U3BhY2luZyhzcGFjaW5nU3RhdGUsIHRyaW1tYWJsZVRleHRT
cGFjaW5ncywgKmlubGluZVRleHRJdGVtLCBpbmxpbmVJdGVtSW5kZXgpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCmluZGV4
IDc2ZmJhMWRkMzUyNy4uZDEyODUzM2Y5NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNw
cApAQCAtNjU0LDcgKzY1NCw3IEBAIGJvb2wgTGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1do
aXRlc3BhY2UoSW5saW5lTGF5b3V0VW5pdCB0cmltbWVkVHJhaWxpbmdXaGl0CiAgICAgYXV0byBy
ZXN0b3JlID0gWyZdKGF1dG8mIHRyYWlsaW5nUnVuKSB7CiAgICAgICAgIEFTU0VSVCh0cmFpbGlu
Z1J1bi5pc1RleHQoKSk7CiAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGRvd25jYXN0PElubGlu
ZVRleHRCb3g+KHRyYWlsaW5nUnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgaWYgKHRyYWlsaW5n
UnVuLm1fdGV4dENvbnRlbnQtPnN0YXJ0ICsgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+bGVu
Z3RoID09IGxheW91dEJveC5jb250ZW50KCkubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKHRyYWls
aW5nUnVuLm1fdGV4dENvbnRlbnQuc3RhcnQgKyB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50Lmxl
bmd0aCA9PSBsYXlvdXRCb3guY29udGVudCgpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAvLyBJ
dCBsb29rcyBsaWtlIHdlIGRpZG4ndCBfdHJpbV8gdGhpcyB0cmFpbGluZyBydW4gYnV0IHJlbW92
ZWQgdGhlIGxhdCBydW4gaW5zdGVhZCAoaGFwcGVucyB3aXRoIGRlZGljYXRlZCBsYXlvdXQgYm94
KS4KICAgICAgICAgICAgIC8vIExldCdzIHB1dCB0aGF0IGNvbnRlbnQgYmFjayBhcyB0cmFpbGlu
ZyBydW4uCiAgICAgICAgICAgICBpZiAoYXBwZW5kVHJhaWxpbmdJbmxpbmVJdGVtQXNUcmFpbGlu
Z1J1bihydW5zLCB0cmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgsIGlubGluZUl0ZW1SYW5n
ZSwgaW5saW5lSXRlbXMpKQpAQCAtNjY0LDcgKzY2NCw3IEBAIGJvb2wgTGluZTo6cmVzdG9yZVRy
aW1tZWRUcmFpbGluZ1doaXRlc3BhY2UoSW5saW5lTGF5b3V0VW5pdCB0cmltbWVkVHJhaWxpbmdX
aGl0CiAgICAgICAgIH0KICAgICAgICAgdHJhaWxpbmdSdW4ubV9sb2dpY2FsV2lkdGggKz0gdHJp
bW1lZFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoOwogICAgICAgICAvLyBUaGlzIG11c3QgYmUgY29s
bGFwc2VkIHdoaXRlc3BhY2UuCi0gICAgICAgIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQtPmxl
bmd0aCArPSAxOworICAgICAgICB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50Lmxlbmd0aCArPSAx
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9OwogCkBAIC03NDYsNyArNzQ2LDcgQEAgSW5s
aW5lTGF5b3V0VW5pdCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAg
ICAgICAgIEFTU0VSVChydW4uaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpIHx8IHJ1bi5pc0xpbmVT
cGFubmluZ0lubGluZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4u
aXNJbmxpbmVCb3hFbmQoKSB8fCBydW4uaXNMaW5lQnJlYWsoKSB8fCBydW4uaXNPcGFxdWUoKSk7
CiAgICAgICAgIHJ1bi5tb3ZlSG9yaXpvbnRhbGx5KC10cmltbWVkV2lkdGgpOwogICAgIH0KLSAg
ICBpZiAoIXRyaW1tYWJsZVJ1bi50ZXh0Q29udGVudCgpLT5sZW5ndGgpIHsKKyAgICBpZiAoIXRy
aW1tYWJsZVJ1bi50ZXh0Q29udGVudCgpLmxlbmd0aCkgewogICAgICAgICAvLyBUaGlzIHRyaW1t
YWJsZSBydW4gaXMgZnVsbHkgY29sbGFwc2VkIG5vdyAoZS5nLiA8ZGl2PjxpbWc+ICAgIDxzcGFu
Pjwvc3Bhbj48L2Rpdj4pLgogICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGtlZXAgaXQgYXJv
dW5kIGFueW1vcmUuCiAgICAgICAgIG1fcnVucy5yZW1vdmVBdCgqbV9maXJzdFRyaW1tYWJsZVJ1
bkluZGV4KTsKQEAgLTgwMSw2MiArODAxLDY3IEBAIHN0ZDo6b3B0aW9uYWw8TGluZTo6UnVuOjpU
cmFpbGluZ1doaXRlc3BhY2U6OlR5cGU+IExpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlCiAK
IExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50
KQogICAgIDogbV90eXBlKHRvTGluZVJ1blR5cGUoaW5saW5lSXRlbSkpCi0gICAgLCBtX2xheW91
dEJveCgmaW5saW5lSXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAg
LCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9sb2dpY2FsV2lkdGgobG9naWNh
bFdpZHRoKQogICAgICwgbV9iaWRpTGV2ZWwoaW5saW5lSXRlbS5iaWRpTGV2ZWwoKSkKICAgICAs
IG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50KHRleHRTcGFjaW5nQWRqdXN0bWVudCkKKyAgICAsIG1f
bGF5b3V0Qm94KCZpbmxpbmVJdGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkK
IHsKIH0KIAogTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgemVyb1dpZGh0SW5saW5l
SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxM
ZWZ0KQogICAgIDogbV90eXBlKHRvTGluZVJ1blR5cGUoemVyb1dpZGh0SW5saW5lSXRlbSkpCi0g
ICAgLCBtX2xheW91dEJveCgmemVyb1dpZGh0SW5saW5lSXRlbS5sYXlvdXRCb3goKSkKLSAgICAs
IG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwg
bV9iaWRpTGV2ZWwoemVyb1dpZGh0SW5saW5lSXRlbS5iaWRpTGV2ZWwoKSkKKyAgICAsIG1fbGF5
b3V0Qm94KCZ6ZXJvV2lkaHRJbmxpbmVJdGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShz
dHlsZSkKIHsKIH0KIAogTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgbGluZVNwYW5u
aW5nSW5saW5lQm94SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3Rt
ZW50KQogICAgIDogbV90eXBlKFR5cGU6OkxpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KQotICAg
ICwgbV9sYXlvdXRCb3goJmxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0ubGF5b3V0Qm94KCkpCi0g
ICAgLCBtX3N0eWxlKGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0uc3R5bGUoKSkKICAgICAsIG1f
bG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lk
dGgpCiAgICAgLCBtX2JpZGlMZXZlbChsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmJpZGlMZXZl
bCgpKQogICAgICwgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50
KQorICAgICwgbV9sYXlvdXRCb3goJmxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0ubGF5b3V0Qm94
KCkpCisgICAgLCBtX3N0eWxlKGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0uc3R5bGUoKSkKIHsK
ICAgICBBU1NFUlQobGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5pc0lubGluZUJveFN0YXJ0KCkp
OwogfQogCiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29m
dExpbmVCcmVha0l0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsTGVmdCkKICAgICA6IG1fdHlwZShUeXBlOjpTb2Z0TGluZUJyZWFrKQotICAgICwg
bV9sYXlvdXRCb3goJnNvZnRMaW5lQnJlYWtJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHls
ZShzdHlsZSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2JpZGlM
ZXZlbChzb2Z0TGluZUJyZWFrSXRlbS5iaWRpTGV2ZWwoKSkKKyAgICAsIG1fbGF5b3V0Qm94KCZz
b2Z0TGluZUJyZWFrSXRlbS5sYXlvdXRCb3goKSkKKyAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAg
LCBtX3RleHRDb250ZW50KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogewog
fQogCiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0s
IGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNp
bmdBZGp1c3RtZW50LCBzdGQ6Om9wdGlvbmFsPExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gc2hhcGlu
Z0JvdW5kYXJ5KQogICAgIDogbV90eXBlKGlubGluZVRleHRJdGVtLmlzV29yZFNlcGFyYXRvcigp
ID8gVHlwZTo6V29yZFNlcGFyYXRvciA6IGlubGluZVRleHRJdGVtLmlzUXVpcmtOb25CcmVha2lu
Z1NwYWNlKCkgPyBUeXBlOjpOb25CcmVha2luZ1NwYWNlIDogVHlwZTo6VGV4dCkKLSAgICAsIG1f
bGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUoc3R5
bGUpCisgICAgLCBtX3NoYXBpbmdCb3VuZGFyeShzaGFwaW5nQm91bmRhcnkudmFsdWVfb3IoU2hh
cGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNhYmxlKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNh
bExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgpCiAgICAgLCBtX2JpZGlM
ZXZlbChpbmxpbmVUZXh0SXRlbS5iaWRpTGV2ZWwoKSkKLSAgICAsIG1fc2hhcGluZ0JvdW5kYXJ5
KHNoYXBpbmdCb3VuZGFyeSkKICAgICAsIG1fdGV4dFNwYWNpbmdBZGp1c3RtZW50KHRleHRTcGFj
aW5nQWRqdXN0bWVudCkKKyAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRC
b3goKSkKKyAgICAsIG1fc3R5bGUoc3R5bGUpCiB7CiAgICAgYXV0byBsZW5ndGggPSBpbmxpbmVU
ZXh0SXRlbS5sZW5ndGgoKTsKICAgICBhdXRvIHdoaXRlc3BhY2VUeXBlID0gdHJhaWxpbmdXaGl0
ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSk7CisKICAgICBpZiAod2hpdGVzcGFjZVR5cGUpIHsK
ICAgICAgICAgaWYgKCp3aGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6
OkNvbGxhcHNlZCkKICAgICAgICAgICAgIGxlbmd0aCA9ICAxOwotICAgICAgICBtX3RyYWlsaW5n
V2hpdGVzcGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsb2dpY2FsV2lkdGgsIGxlbmd0aCB9Owor
ICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsZW5ndGgs
IGxvZ2ljYWxXaWR0aCB9OworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxv
dyA9IGlubGluZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsKKyAgICAgICAgaWYgKGdseXBoT3Zl
cmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpCisgICAgICAgICAgICBtX2dseXBo
T3ZlcmZsb3cgPSB7IGdseXBoT3ZlcmZsb3cuZmlyc3QsIGdseXBoT3ZlcmZsb3cuc2Vjb25kIH07
CiAgICAgfQogICAgIG1fdGV4dENvbnRlbnQgPSB7IGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGxl
bmd0aCB9OwogfQpAQCAtODY3LDQyICs4NzIsNDYgQEAgdm9pZCBMaW5lOjpSdW46OmV4cGFuZChj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIElubGluZUxheW91dFVuaXQgbG8K
ICAgICBBU1NFUlQoaXNUZXh0KCkgJiYgaW5saW5lVGV4dEl0ZW0uaXNUZXh0KCkpOwogICAgIEFT
U0VSVChtX2xheW91dEJveCA9PSAmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpOwogICAgIEFT
U0VSVChtX2JpZGlMZXZlbCA9PSBpbmxpbmVUZXh0SXRlbS5iaWRpTGV2ZWwoKSk7Ci0gICAgQVNT
RVJUKCFtX3NoYXBpbmdCb3VuZGFyeSB8fCAqbV9zaGFwaW5nQm91bmRhcnkgIT0gU2hhcGluZ0Jv
dW5kYXJ5OjpFbmQpOworICAgIEFTU0VSVChtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91
bmRhcnk6Ok5vdEFwcGxpY2FibGUgfHwgbV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5k
YXJ5OjpTdGFydCB8fCBtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6Okluc2lk
ZSk7CiAKICAgICBtX2xvZ2ljYWxXaWR0aCArPSBsb2dpY2FsV2lkdGg7CiAgICAgYXV0byB3aGl0
ZXNwYWNlVHlwZSA9IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoaW5saW5lVGV4dEl0ZW0pOwogCiAg
ICAgaWYgKCF3aGl0ZXNwYWNlVHlwZSkgewogICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9
IHsgfTsKLSAgICAgICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IGlubGluZVRleHRJdGVtLmxl
bmd0aCgpOworICAgICAgICBtX3RleHRDb250ZW50Lmxlbmd0aCArPSBpbmxpbmVUZXh0SXRlbS5s
ZW5ndGgoKTsKICAgICAgICAgbV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydCA9IGlubGlu
ZVRleHRJdGVtLnN0YXJ0KCk7CisKKyAgICAgICAgYXV0byBnbHlwaE92ZXJmbG93ID0gaW5saW5l
VGV4dEl0ZW0uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICBpZiAoZ2x5cGhPdmVyZmxvdy5maXJz
dCB8fCBnbHlwaE92ZXJmbG93LnNlY29uZCkKKyAgICAgICAgICAgIG1fZ2x5cGhPdmVyZmxvdyA9
IHsgc3RkOjptYXgobV9nbHlwaE92ZXJmbG93LnRvcCwgZ2x5cGhPdmVyZmxvdy5maXJzdCksIHN0
ZDo6bWF4KG1fZ2x5cGhPdmVyZmxvdy5ib3R0b20sIGdseXBoT3ZlcmZsb3cuc2Vjb25kKSB9Owog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1dG8gd2hpdGVzcGFjZVdpZHRoID0gIW1fdHJh
aWxpbmdXaGl0ZXNwYWNlID8gbG9naWNhbFdpZHRoIDogbV90cmFpbGluZ1doaXRlc3BhY2UtPndp
ZHRoICsgbG9naWNhbFdpZHRoOworICAgIGF1dG8gd2hpdGVzcGFjZVdpZHRoID0gIWhhc1RyYWls
aW5nV2hpdGVzcGFjZSgpID8gbG9naWNhbFdpZHRoIDogbV90cmFpbGluZ1doaXRlc3BhY2Uud2lk
dGggKyBsb2dpY2FsV2lkdGg7CiAgICAgYXV0byB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGggPSAq
d2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQgPyAx
IDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7IAotICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0g
eyAqd2hpdGVzcGFjZVR5cGUsIHdoaXRlc3BhY2VXaWR0aCwgdHJhaWxpbmdXaGl0ZXNwYWNlTGVu
Z3RoIH07Ci0gICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IHRyYWlsaW5nV2hpdGVzcGFjZUxl
bmd0aDsKKyAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndoaXRlc3BhY2VUeXBlLCB0cmFp
bGluZ1doaXRlc3BhY2VMZW5ndGgsIHdoaXRlc3BhY2VXaWR0aCB9OworICAgIG1fdGV4dENvbnRl
bnQubGVuZ3RoICs9IHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aDsKIH0KIAogc3RkOjpvcHRpb25h
bDxMaW5lOjpSdW4+IExpbmU6OlJ1bjo6ZGV0YWNoVHJhaWxpbmdXaGl0ZXNwYWNlKCkKIHsKLSAg
ICBpZiAoIW1fdHJhaWxpbmdXaGl0ZXNwYWNlIHx8IGlzV2hpdGVzcGFjZU9ubHkoKSkKKyAgICBp
ZiAoIWhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIHx8IGlzV2hpdGVzcGFjZU9ubHkoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3Ro
IDwgbV90ZXh0Q29udGVudC0+bGVuZ3RoKTsKKyAgICBBU1NFUlQobV90cmFpbGluZ1doaXRlc3Bh
Y2UubGVuZ3RoIDwgbV90ZXh0Q29udGVudC5sZW5ndGgpOwogICAgIGF1dG8gdHJhaWxpbmdXaGl0
ZXNwYWNlUnVuID0gKnRoaXM7CiAKLSAgICBhdXRvIGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVu
dExlbmd0aCA9IG1fdGV4dENvbnRlbnQtPmxlbmd0aCAtIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT5s
ZW5ndGg7Ci0gICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fdGV4dENvbnRlbnQgPSB7IG1fdGV4
dENvbnRlbnQtPnN0YXJ0ICsgbGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3RoLCBtX3Ry
YWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoLCBmYWxzZSB9OworICAgIGF1dG8gbGVhZGluZ05vbldo
aXRlc3BhY2VDb250ZW50TGVuZ3RoID0gbV90ZXh0Q29udGVudC5sZW5ndGggLSBtX3RyYWlsaW5n
V2hpdGVzcGFjZS5sZW5ndGg7CisgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fdGV4dENvbnRl
bnQgPSB7IG1fdGV4dENvbnRlbnQuc3RhcnQgKyBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRM
ZW5ndGgsIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCwgZmFsc2UgfTsKIAotICAgIHRyYWls
aW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53
aWR0aDsKLSAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9sb2dpY2FsTGVmdCA9IGxvZ2ljYWxS
aWdodCgpIC0gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoOworICAgIHRyYWlsaW5nV2hpdGVz
cGFjZVJ1bi5tX2xvZ2ljYWxXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoOworICAg
IHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxMZWZ0ID0gbG9naWNhbFJpZ2h0KCkgLSBt
X3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKIAogICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5t
X3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV9s
YXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydCA9IHsgfTsKIAogICAgIG1fbG9naWNhbFdpZHRo
IC09IHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5sb2dpY2FsV2lkdGgoKTsKLSAgICBtX3RleHRDb250
ZW50LT5sZW5ndGggPSBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5ndGg7CisgICAgbV90
ZXh0Q29udGVudC5sZW5ndGggPSBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5ndGg7CiAg
ICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07CiAKICAgICByZXR1cm4gdHJhaWxpbmdXaGl0
ZXNwYWNlUnVuOwpAQCAtOTMxLDI1ICs5NDAsMjUgQEAgSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpS
dW46OnJlbW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygpCiAKIElubGluZUxheW91dFVuaXQgTGlu
ZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKQogewotICAgIEFTU0VSVChtX3RyYWls
aW5nV2hpdGVzcGFjZSk7CisgICAgQVNTRVJUKGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpKTsKICAg
ICAvLyBBY2NvcmRpbmcgdG8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10ZXh0LTMvI3doaXRl
LXNwYWNlLXByb3BlcnR5IG1hdHJpeAogICAgIC8vIFRyaW1tYWJsZSB3aGl0ZXNwYWNlIGlzIGFs
d2F5cyBjb2xsYXBzaWJsZSBzbyB0aGUgbGVuZ3RoIG9mIHRoZSB0cmFpbGluZyB0cmltbWFibGUg
d2hpdGVzcGFjZSBpcyBhbHdheXMgMSAob3Igbm9uLWV4aXN0ZW50KS4KLSAgICBBU1NFUlQobV90
ZXh0Q29udGVudCAmJiBtX3RleHRDb250ZW50LT5sZW5ndGgpOworICAgIEFTU0VSVChpc1RleHQo
KSAmJiBtX3RleHRDb250ZW50Lmxlbmd0aCk7CiAgICAgY29uc3RleHByIHNpemVfdCB0cmFpbGlu
Z1RyaW1tYWJsZUNvbnRlbnRMZW5ndGggPSAxOwogCi0gICAgYXV0byB0cmltbWVkV2lkdGggPSBt
X3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGg7CisgICAgYXV0byB0cmltbWVkV2lkdGggPSBtX3Ry
YWlsaW5nV2hpdGVzcGFjZS53aWR0aDsKICAgICBpZiAobV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRl
bnRTdGFydCAmJiBpbmxpbmVEaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEwpIHsKICAg
ICAgICAgLy8gV2hpbGUgTFRSIGNvbnRlbnQgY291bGQgYWxzbyBzdWZmZXIgZnJvbSBzbGlnaHRs
eSBpbmNvcnJlY3QgY29udGVudCB3aWR0aCBhZnRlciB0cmltbWluZyB0cmFpbGluZyB3aGl0ZXNw
YWNlIChzZWUgVGV4dFV0aWw6OndpZHRoKQogICAgICAgICAvLyBpdCBoYXJkbHkgcHJvZHVjZXMg
dmlzdWFsbHkgb2JzZXJ2YWJsZSByZXN1bHQuCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIG1heSBz
dGlsbCBpbmNvcnJlY3RseSBsZWF2ZSBzb21lIGNvbnRlbnQgb24gdGhlIGxpbmUgKHZzLiByZS1t
ZWFzdXJpbmcgYWxzbyBhdCA6OmV4cGFuZCkuCiAgICAgICAgIGF1dG8mIGlubGluZVRleHRCb3gg
PSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqbV9sYXlvdXRCb3gpOwogICAgICAgICBhdXRvIHN0
YXJ0UG9zaXRpb24gPSAqbV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydDsKLSAgICAgICAg
YXV0byBlbmRQb3NpdGlvbiA9IG1fdGV4dENvbnRlbnQtPnN0YXJ0ICsgbV90ZXh0Q29udGVudC0+
bGVuZ3RoOworICAgICAgICBhdXRvIGVuZFBvc2l0aW9uID0gbV90ZXh0Q29udGVudC5zdGFydCAr
IG1fdGV4dENvbnRlbnQubGVuZ3RoOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChzdGFydFBvc2l0
aW9uIDwgZW5kUG9zaXRpb24gLSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGgpOwogICAg
ICAgICBpZiAoaW5saW5lVGV4dEJveC5jb250ZW50KClbZW5kUG9zaXRpb24gLSAxXSA9PSBzcGFj
ZSkKICAgICAgICAgICAgIHRyaW1tZWRXaWR0aCA9IFRleHRVdGlsOjp0cmFpbGluZ1doaXRlc3Bh
Y2VXaWR0aChpbmxpbmVUZXh0Qm94LCBtX3N0eWxlLmZvbnRDYXNjYWRlKCksIHN0YXJ0UG9zaXRp
b24sIGVuZFBvc2l0aW9uKTsKICAgICB9Ci0gICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoIC09IHRy
YWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aDsKKyAgICBtX3RleHRDb250ZW50Lmxlbmd0aCAt
PSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7CiAgICAgbV90cmFpbGluZ1doaXRlc3Bh
Y2UgPSB7IH07CiAgICAgc2hyaW5rSG9yaXpvbnRhbGx5KHRyaW1tZWRXaWR0aCk7CiAgICAgcmV0
dXJuIHRyaW1tZWRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCAxZWIxMzExMmQw
N2IuLmJmYmY2YjcxZTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0
ZW0sIDE+JiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcywgYm9vbCBpc0ZpcnN0Rm9ybWF0dGVkTGlu
ZSk7CiAKLSAgICBlbnVtIGNsYXNzIFNoYXBpbmdCb3VuZGFyeSA6IHVpbnQ4X3QgeyBTdGFydCwg
SW5zaWRlLCBFbmQgfTsKKyAgICBlbnVtIGNsYXNzIFNoYXBpbmdCb3VuZGFyeSA6IHVpbnQ4X3Qg
eyBOb3RBcHBsaWNhYmxlLCBTdGFydCwgSW5zaWRlLCBFbmQgfTsKICAgICB2b2lkIGFwcGVuZFRl
eHQoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91
dFVuaXQgbG9naWNhbFdpZHRoLCBzdGQ6Om9wdGlvbmFsPFNoYXBpbmdCb3VuZGFyeT4pOwogICAg
IHZvaWQgYXBwZW5kVGV4dEZhc3QoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBSZW5kZXJT
dHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsgLy8gUmVzZXJ2ZWQgZm9yIFRl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIKICAgICB2b2lkIGFwcGVuZEF0b21pY0lubGluZUJveChj
b25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IG1h
cmdpbkJveExvZ2ljYWxXaWR0aCk7CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogICAgICAg
ICBib29sIGlzT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6Ok9wYXF1ZTsg
fQogICAgICAgICBib29sIGlzQmxvY2soKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6
QmxvY2s7IH0KIAotICAgICAgICBib29sIGlzQ29udGVudGZ1bCgpIGNvbnN0IHsgcmV0dXJuIChp
c1RleHQoKSAmJiB0ZXh0Q29udGVudCgpLT5sZW5ndGgpIHx8IGlzQXRvbWljSW5saW5lQm94KCkg
fHwgaXNMaW5lQnJlYWsoKSB8fCBpc0xpc3RNYXJrZXIoKSB8fCBpc0Jsb2NrKCk7IH0KKyAgICAg
ICAgYm9vbCBpc0NvbnRlbnRmdWwoKSBjb25zdCB7IHJldHVybiAoaXNUZXh0KCkgJiYgdGV4dENv
bnRlbnQoKS5sZW5ndGgpIHx8IGlzQXRvbWljSW5saW5lQm94KCkgfHwgaXNMaW5lQnJlYWsoKSB8
fCBpc0xpc3RNYXJrZXIoKSB8fCBpc0Jsb2NrKCk7IH0KICAgICAgICAgYm9vbCBpc0dlbmVyYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIGlzTGlzdE1hcmtlcigpOyB9CiAgICAgICAgIHN0YXRpYyBib29s
IGlzQ29udGVudGZ1bE9ySGFzRGVjb3JhdGlvbihjb25zdCBSdW4mLCBjb25zdCBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dCYpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgc2l6ZV90IGxlbmd0aCB7IDAgfTsKICAgICAgICAgICAgIGJvb2wgbmVlZHNIeXBoZW4geyBm
YWxzZSB9OwogICAgICAgICB9OwotICAgICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFRleHQ+JiB0
ZXh0Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRlbnQ7IH0KKyAgICAgICAgY29u
c3QgVGV4dCYgdGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3RleHRDb250ZW50OyB9CiAK
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X2xvZ2ljYWxXaWR0aDsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbV9sb2dpY2FsTGVmdDsgfQpAQCAtMTQyLDkgKzE0MiwxNyBAQCBwdWJs
aWM6CiAKICAgICAgICAgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94OjpFeHBhbnNpb24mIGV4cGFu
c2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9CiAKLSAgICAgICAgYm9vbCBoYXNU
cmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS5o
YXNfdmFsdWUoKTsgfQotICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFj
ZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2UgPyBtX3RyYWlsaW5n
V2hpdGVzcGFjZS0+d2lkdGggOiAwLmY7IH0KLSAgICAgICAgYm9vbCBpc1doaXRlc3BhY2VPbmx5
KCkgY29uc3QgeyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgJiYgbV90cmFpbGluZ1do
aXRlc3BhY2UtPmxlbmd0aCA9PSBtX3RleHRDb250ZW50LT5sZW5ndGg7IH0KKyAgICAgICAgYm9v
bCBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVz
cGFjZS50eXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Tm90QXBwbGljYWJsZTsgfQor
ICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2Uud2lkdGg7IH0KKyAgICAgICAgYm9vbCBpc1do
aXRlc3BhY2VPbmx5KCkgY29uc3QgeyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgJiYg
bV90cmFpbGluZ1doaXRlc3BhY2UubGVuZ3RoID09IG1fdGV4dENvbnRlbnQubGVuZ3RoOyB9CisK
KyAgICAgICAgc3RydWN0IEdseXBoT3ZlcmZsb3cgeworICAgICAgICAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gIXRvcCAmJiAhYm90dG9tOyB9CisKKyAgICAgICAgICAgIHVpbnQ4
X3QgdG9wIDogNSB7IDAgfTsKKyAgICAgICAgICAgIHVpbnQ4X3QgYm90dG9tOiAzIHsgMCB9Owor
ICAgICAgICB9OworICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3coKSBjb25zdCB7
IHJldHVybiBtX2dseXBoT3ZlcmZsb3c7IH0KIAogICAgICAgICBpbmxpbmUgVGV4dERpcmVjdGlv
biBpbmxpbmVEaXJlY3Rpb24oKSBjb25zdDsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsZXR0
ZXJTcGFjaW5nKCkgY29uc3Q7CkBAIC0xNTMsMTAgKzE2MSwxMCBAQCBwdWJsaWM6CiAKICAgICAg
ICAgVUJpRGlMZXZlbCBiaWRpTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2JpZGlMZXZlbDsgfQog
Ci0gICAgICAgIGJvb2wgaXNTaGFwaW5nQm91bmRhcnlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGlz
U2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdC
b3VuZGFyeTo6U3RhcnQ7IH0KLSAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeUVuZCgpIGNv
bnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09
IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6RW5kOyB9Ci0gICAgICAgIGJvb2wgaXNJbnNpZGVTaGFw
aW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBpc1NoYXBpbmdCb3VuZGFyeSgpICYmICptX3No
YXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6Okluc2lkZTsgfQotICAgICAg
ICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91bmRh
cnkuaGFzX3ZhbHVlKCk7IH0KKyAgICAgICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkg
Y29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5
OjpTdGFydDsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7IH0K
KyAgICAgICAgYm9vbCBpc0luc2lkZVNoYXBpbmdCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hhcGluZ0JvdW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9CisgICAg
ICAgIGJvb2wgaXNTaGFwaW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3Vu
ZGFyeSAhPSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGU7IH0KIAogICAgICAg
ICAvLyBGSVhNRTogTWF5YmUgYWRkIGNyZWF0ZSBmdW5jdGlvbnMgaW50ZWFkPwogICAgICAgICBS
dW4oY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsTGVmdCk7CkBAIC0xODAsMTcgKzE4OCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHZv
aWQgc2V0QmlkaUxldmVsKFVCaURpTGV2ZWwgYmlkaUxldmVsKSB7IG1fYmlkaUxldmVsID0gYmlk
aUxldmVsOyB9CiAKICAgICAgICAgc3RydWN0IFRyYWlsaW5nV2hpdGVzcGFjZSB7Ci0gICAgICAg
ICAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAgICAgICAgZW51bSBjbGFzcyBUeXBlIDogdWlu
dDhfdCB7CisgICAgICAgICAgICAgICAgTm90QXBwbGljYWJsZSwKICAgICAgICAgICAgICAgICBO
b3RDb2xsYXBzaWJsZSwKICAgICAgICAgICAgICAgICBDb2xsYXBzaWJsZSwKICAgICAgICAgICAg
ICAgICBDb2xsYXBzZWQKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBUeXBlIHR5cGUgeyBU
eXBlOjpOb3RDb2xsYXBzaWJsZSB9OwotICAgICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0
aCB7IDAgfTsKLSAgICAgICAgICAgIHNpemVfdCBsZW5ndGggeyAwIH07CisgICAgICAgICAgICBU
eXBlIHR5cGUgeyBUeXBlOjpOb3RBcHBsaWNhYmxlIH07CisgICAgICAgICAgICBzaXplX3QgbGVu
Z3RoIDogMjQgeyAwIH07CisgICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoIHsgMC5m
IH07CiAgICAgICAgIH07Ci0gICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRl
c3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiAobV90cmFpbGlu
Z1doaXRlc3BhY2UtPnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJs
ZSB8fCBoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KLSAgICAgICAgYm9vbCBo
YXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5n
V2hpdGVzcGFjZSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRl
c3BhY2U6OlR5cGU6OkNvbGxhcHNlZDsgfQorICAgICAgICBib29sIGhhc0NvbGxhcHNpYmxlVHJh
aWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkg
JiYgKG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBl
OjpDb2xsYXBzaWJsZSB8fCBoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KKyAg
ICAgICAgYm9vbCBoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVy
biBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS50eXBlID09
IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkOyB9CiAgICAgICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZT4gdHJhaWxpbmdXaGl0ZXNwYWNl
VHlwZShjb25zdCBJbmxpbmVUZXh0SXRlbSYpOwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHJl
bW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwogCkBAIC0yMDAsMTggKzIwOSwxOSBAQCBwdWJsaWM6
CiAgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3Q7
CiAgICAgICAgIElubGluZUxheW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7
CiAKKyAgICAgICAgVHJhaWxpbmdXaGl0ZXNwYWNlIG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsK
ICAgICAgICAgVHlwZSBtX3R5cGUgeyBUeXBlOjpUZXh0IH07Ci0gICAgICAgIGNvbnN0IEJveCog
bV9sYXlvdXRCb3ggeyBudWxscHRyIH07Ci0gICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0
eWxlOworICAgICAgICBMaW5lOjpTaGFwaW5nQm91bmRhcnkgbV9zaGFwaW5nQm91bmRhcnkgeyBM
aW5lOjpTaGFwaW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGUgfTsKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCBtX2xvZ2ljYWxMZWZ0IHsgMCB9OworICAgICAgICBNYXJrYWJsZTxzaXplX3Q+IG1f
bGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgeyB9OwogICAgICAgICBJbmxpbmVMYXlvdXRV
bml0IG1fbG9naWNhbFdpZHRoIHsgMCB9OwotICAgICAgICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4
cGFuc2lvbiBtX2V4cGFuc2lvbjsKICAgICAgICAgVUJpRGlMZXZlbCBtX2JpZGlMZXZlbCB7IFVC
SURJX0RFRkFVTFRfTFRSIH07Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdXaGl0ZXNw
YWNlPiBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6
ZV90PiBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0IHsgfTsKLSAgICAgICAgc3RkOjpv
cHRpb25hbDxUZXh0PiBtX3RleHRDb250ZW50OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPExpbmU6
OlNoYXBpbmdCb3VuZGFyeT4gbV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQgeyAwIH07CisgICAgICAgIEdseXBoT3ZlcmZs
b3cgbV9nbHlwaE92ZXJmbG93OworICAgICAgICBjb25zdCBCb3gqIG1fbGF5b3V0Qm94IHsgbnVs
bHB0ciB9OworICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbV9zdHlsZTsKKyAgICAgICAgSW5s
aW5lRGlzcGxheTo6Qm94OjpFeHBhbnNpb24gbV9leHBhbnNpb247CisgICAgICAgIFRleHQgbV90
ZXh0Q29udGVudDsKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAxMD47
CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQpAQCAt
MzgyLDggKzM5Miw4IEBAIGlubGluZSBzaXplX3QgTGluZTo6SGFuZ2luZ0NvbnRlbnQ6Omxlbmd0
aCgpIGNvbnN0CiAKIGlubGluZSB2b2lkIExpbmU6OlJ1bjo6c2V0TmVlZHNIeXBoZW4oSW5saW5l
TGF5b3V0VW5pdCBoeXBoZW5Mb2dpY2FsV2lkdGgpCiB7Ci0gICAgQVNTRVJUKG1fdGV4dENvbnRl
bnQpOwotICAgIG1fdGV4dENvbnRlbnQtPm5lZWRzSHlwaGVuID0gdHJ1ZTsKKyAgICBBU1NFUlQo
aXNUZXh0KCkpOworICAgIG1fdGV4dENvbnRlbnQubmVlZHNIeXBoZW4gPSB0cnVlOwogICAgIG1f
bG9naWNhbFdpZHRoICs9IGh5cGhlbkxvZ2ljYWxXaWR0aDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJv
eEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCmluZGV4IDg2NTZhMTBjNGRmOC4uYmU4ODdk
YjZiMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3Bw
CkBAIC0xMDAsNyArMTAwLDcgQEAgVGV4dFV0aWw6OkZhbGxiYWNrRm9udExpc3QgTGluZUJveEJ1
aWxkZXI6OmNvbGxlY3RGYWxsYmFja0ZvbnRzKGNvbnN0IElubGluZUxldmUKICAgICAgICAgLy8g
U2ltcGxpZmllZCB0ZXh0IG1lYXN1cmluZyB3b3JrcyB3aXRoIHByaW1hcnkgZm9udCBvbmx5Lgog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSAgICBhdXRvIHRleHQgPSAqcnVuLnRleHRDb250
ZW50KCk7CisgICAgYXV0byYgdGV4dCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgIGF1dG8gZmFs
bGJhY2tGb250cyA9IFRleHRVdGlsOjpmYWxsYmFja0ZvbnRzRm9yVGV4dChTdHJpbmdWaWV3KGlu
bGluZVRleHRCb3guY29udGVudCgpKS5zdWJzdHJpbmcodGV4dC5zdGFydCwgdGV4dC5sZW5ndGgp
LCBzdHlsZSwgdGV4dC5uZWVkc0h5cGhlbiA/IFRleHRVdGlsOjpJbmNsdWRlSHlwaGVuOjpZZXMg
OiBUZXh0VXRpbDo6SW5jbHVkZUh5cGhlbjo6Tm8pOwogICAgIGlmIChmYWxsYmFja0ZvbnRzLmlz
RW1wdHlJZ25vcmluZ051bGxSZWZlcmVuY2VzKCkpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC02
MTEsOSArNjExLDkgQEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6YWRqdXN0SW5saW5lQm94SGVpZ2h0
c0ZvckxpbmVCb3hDb250YWluSWZBcHBsaWNhYmxlKExpbmVCb3gKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICAgICAgYXV0byYgdGV4dEJveCA9IGRvd25jYXN0PElubGluZVRl
eHRCb3g+KHJ1bi5sYXlvdXRCb3goKSk7Ci0gICAgICAgICAgICBhdXRvIHRleHRDb250ZW50ID0g
cnVuLnRleHRDb250ZW50KCk7CisgICAgICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50
ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVk
TGluZSgpID8gdGV4dEJveC5maXJzdExpbmVTdHlsZSgpIDogdGV4dEJveC5zdHlsZSgpOwotICAg
ICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnREZXNjZW50Rm9yUnVuID0gVGV4dFV0aWw6OmVu
Y2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KHRleHRCb3guY29udGVudCgpKS5z
dWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29udGVudC0+bGVuZ3RoKSwgc3R5bGUs
IHRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRp
bDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6
U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CisgICAgICAgICAgICBh
dXRvIGVuY2xvc2luZ0FzY2VudERlc2NlbnRGb3JSdW4gPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5
cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0
ZXh0Q29udGVudC5zdGFydCwgdGV4dENvbnRlbnQubGVuZ3RoKSwgc3R5bGUsIHRleHRCb3guc2hv
dWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNl
U2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2lt
cGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CiAKICAgICAgICAgICAgIGF1dG8mIHBhcmVu
dElubGluZUJveCA9IGxpbmVCb3gucGFyZW50SW5saW5lQm94KHJ1bik7CiAgICAgICAgICAgICBh
dXRvIGVuY2xvc2luZ0FzY2VudERlc2NlbnRGb3JJbmxpbmVCb3ggPSBpbmxpbmVCb3hCb3VuZHNN
YXAuZ2V0KCZwYXJlbnRJbmxpbmVCb3gpOwpAQCAtNjM3LDkgKzYzNyw5IEBAIHZvaWQgTGluZUJv
eEJ1aWxkZXI6OmFkanVzdElubGluZUJveEhlaWdodHNGb3JMaW5lQm94Q29udGFpbklmQXBwbGlj
YWJsZShMaW5lQm94CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGF1
dG8mIHRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihydW4ubGF5b3V0Qm94KCkpOwot
ICAgICAgICAgICAgYXV0byB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOworICAgICAg
ICAgICAgYXV0byYgdGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsKICAgICAgICAgICAg
IGF1dG8mIHN0eWxlID0gaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/IHRleHRCb3guZmlyc3RMaW5l
U3R5bGUoKSA6IHRleHRCb3guc3R5bGUoKTsKLSAgICAgICAgICAgIGF1dG8gYXNjZW50QW5kRGVz
Y2VudCA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyh0
ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250ZW50LT5zdGFydCwgdGV4dENvbnRl
bnQtPmxlbmd0aCksIHN0eWxlLCB0ZXh0Qm94LnNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dD
b2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0
aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6
Tm8pOworICAgICAgICAgICAgYXV0byBhc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xv
c2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KHRleHRCb3guY29udGVudCgpKS5zdWJz
dHJpbmcodGV4dENvbnRlbnQuc3RhcnQsIHRleHRDb250ZW50Lmxlbmd0aCksIHN0eWxlLCB0ZXh0
Qm94LnNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNo
b3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3Vs
ZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOwogCiAgICAgICAgICAgICBpbml0
aWFsTGV0dGVyRGVzY2VudCA9IGFzY2VudEFuZERlc2NlbnQuZGVzY2VudDsKICAgICAgICAgICAg
IGlmIChsaW5lQm94LmJhc2VsaW5lVHlwZSgpICE9IEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCA1MDU2MGE1ODZi
ZGMuLjdjZmY4ZDNiZjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcApAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZ0J1aWxkZXIgdG9TdHJp
bmcoY29uc3QgTGluZTo6UnVuTGlzdCYgcnVucykKICAgICAgICAgaWYgKCFydW4uaXNUZXh0KCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0byYgdGV4dENvbnRlbnQgPSBydW4u
dGV4dENvbnRlbnQoKTsKLSAgICAgICAgbGluZUNvbnRlbnRCdWlsZGVyLmFwcGVuZChTdHJpbmdW
aWV3KGRvd25jYXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSkuY29udGVudCgpKS5z
dWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29udGVudC0+bGVuZ3RoKSk7CisgICAg
ICAgIGxpbmVDb250ZW50QnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhkb3duY2FzdDxJbmxpbmVU
ZXh0Qm94PihydW4ubGF5b3V0Qm94KCkpLmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250ZW50
LnN0YXJ0LCB0ZXh0Q29udGVudC5sZW5ndGgpKTsKICAgICB9CiAgICAgcmV0dXJuIGxpbmVDb250
ZW50QnVpbGRlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IGQwMTdj
NTg5YjViYS4uNGQxMjUyZjg5MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnRDYXNjYWRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmxpbmVJdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9MYXlvdXRJbmxpbmVUZXh0Qm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Xcml0aW5n
TW9kZS5oPgpAQCAtNTIsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGx5VHJpbW1h
YmxlKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNUcmFpbGluZ1NvZnRIeXBoZW4oKSBjb25zdCB7IHJl
dHVybiBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbjsgfQogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5l
TGF5b3V0VW5pdD4gd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2hhc1dpZHRoID8gc3RkOjptYWtl
X29wdGlvbmFsKG1fd2lkdGgpIDogc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7IH07
IH0KKyAgICBzdGQ6OnBhaXI8dWludDhfdCwgdWludDhfdD4gZ2x5cGhPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIHsgbV9nbHlwaFRvcE92ZXJmbG93LCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgfTsg
fQogCiAgICAgY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCgpIGNvbnN0IHsgcmV0
dXJuIGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCgpKTsgfQogCkBAIC02OCw2ICs3
MCw3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgSW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCiAg
ICAgSW5saW5lVGV4dEl0ZW0gc3BsaXQoc2l6ZV90IGxlZnRTaWRlTGVuZ3RoKTsKKyAgICB2b2lk
IHNldEdseXBoT3ZlcmZsb3coTGF5b3V0VW5pdCB0b3AsIExheW91dFVuaXQgYm90dG9tKTsKIAog
ICAgIElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgbGVuZ3RoLCBVQmlEaUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwg
Ym9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lk
dGgsIFRleHRJdGVtVHlwZSk7CiAgICAgZXhwbGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5s
aW5lVGV4dEJveCYpOwpAQCAtOTAsNiArOTMsMTIgQEAgaW5saW5lIElubGluZVRleHRJdGVtIElu
bGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW4K
ICAgICByZXR1cm4gSW5saW5lVGV4dEl0ZW0geyBpbmxpbmVUZXh0Qm94IH07CiB9CiAKK2lubGlu
ZSB2b2lkIElubGluZVRleHRJdGVtOjpzZXRHbHlwaE92ZXJmbG93KExheW91dFVuaXQgdG9wLCBM
YXlvdXRVbml0IGJvdHRvbSkKK3sKKyAgICBtX2dseXBoVG9wT3ZlcmZsb3cgPSB0b3AuY2VpbCgp
OworICAgIG1fZ2x5cGhCb3R0b21PdmVyZmxvdyA9IGJvdHRvbS5jZWlsKCk7Cit9CisKIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDkxNmVlMmViZGNlZS4uM2U4ZDEyNjdmMTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGNvbXB1dGVJbmtPdmVyZmxvd0ZvcklubGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYg
aW5saW5lQm8KIAogdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHRE
aXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5saW5lUmVjdCYgdGV4
dFJ1blJlY3QsIElubGluZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAgICBBU1NFUlQobGlu
ZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVSdW4ubGF5b3V0Qm94
KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi5pc1RleHQoKSAmJiBpczxJbmxpbmVUZXh0Qm94Pihs
aW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAgICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gZG93bmNh
c3Q8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRCb3goKSk7CiAgICAgYXV0byYgc3R5bGUg
PSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEJveC5maXJzdExpbmVTdHlsZSgp
IDogaW5saW5lVGV4dEJveC5zdHlsZSgpOwpAQCAtMTk4LDE2ICsxOTgsOSBAQCB2b2lkIElubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29uc3QgTGluZTo6
UnVuJiBsaW5lUnVuLAogICAgICAgICBhZGRUZXh0U2hhZG93KCk7CiAKICAgICAgICAgYXV0byBh
ZGRHbHlwaE92ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0Qm94LmNh
blVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gY2FuVXNlU2lt
cGxlRm9udENvZGVQYXRoIG1hcHMgdG8gQ29kZVBhdGg6OlNpbXBsZSAoYW5kIGNvbnRlbnQgd2l0
aCBwb3RlbnRpYWwgZ2x5cGggb3ZlcmZsb3cgd291bGQgc2F5cyBDb2RlUGF0aDo6U2ltcGxlV2l0
aEdseXBoT3ZlcmZsb3cpLgotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjpl
bmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmco
dGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCksIHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNob3VsZFVz
ZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBs
ZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVzIDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUds
eXBoT3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOwotICAgICAgICAgICAgLy8gRklYTUU6IFRha2UgZmFs
bGJhY2sgZm9udHMgaW50byBhY2NvdW50LgotICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3Mg
PSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgICAgICAgICAgYXV0byB0b3BPdmVy
ZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoLWVu
Y2xvc2luZ0FzY2VudEFuZERlc2NlbnQuYXNjZW50LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZv
cm1hdHRpbmdVdGlsczo6YXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0
aWMsIGlubGluZVRleHRCb3gpKTsKLSAgICAgICAgICAgIGF1dG8gYm90dG9tT3ZlcmZsb3cgPSBz
dGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KGVuY2xvc2luZ0Fz
Y2VudEFuZERlc2NlbnQuZGVzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxpbmVGb3JtYXR0aW5n
VXRpbHM6OmRlc2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5s
aW5lVGV4dEJveCkpOwotICAgICAgICAgICAgaW5rT3ZlcmZsb3cuaW5mbGF0ZSh0b3BPdmVyZmxv
dywgeyB9LCBib3R0b21PdmVyZmxvdywgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gZ2x5cGhPdmVy
ZmxvdyA9IGxpbmVSdW4uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICAgICAgaWYgKCFnbHlwaE92
ZXJmbG93LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKGds
eXBoT3ZlcmZsb3cudG9wLCB7IH0sIGdseXBoT3ZlcmZsb3cuYm90dG9tLCB7IH0pOwogICAgICAg
ICB9OwogICAgICAgICBhZGRHbHlwaE92ZXJmbG93KCk7CiAKQEAgLTIyNyw3ICsyMjAsNyBAQCB2
b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlCb3goY29u
c3QgTGluZTo6UnVuJiBsaW5lUnVuLAogICAgICAgICAgICAgLCBpbmtPdmVyZmxvdwogICAgICAg
ICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAgICAgICAgICAsIGxpbmVSdW4uZXhw
YW5zaW9uKCkKLSAgICAgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC0+
c3RhcnQsIDEsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCBjb250ZW50IH0KKyAg
ICAgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC5zdGFydCwgMSwgb2Jq
ZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJTdHJpbmcsIGNvbnRlbnQgfQogICAgICAgICAgICAgLCBp
c0NvbnRlbnRmdWwKICAgICAgICAgICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJsb2NrRGly
ZWN0aW9uKCkKICAgICAgICAgfSk7CkBAIC0yMzUsNyArMjI4LDcgQEAgdm9pZCBJbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYg
bGluZVJ1biwKICAgICB9CiAKICAgICBhdXRvIGFkanVzdGVkQ29udGVudFRvUmVuZGVyID0gWyZd
IHsKLSAgICAgICAgcmV0dXJuIHRleHQtPm5lZWRzSHlwaGVuID8gbWFrZVN0cmluZyhTdHJpbmdW
aWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoKSwgc3R5bGUu
aHlwaGVuU3RyaW5nKCkpIDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB0ZXh0Lm5lZWRzSHlw
aGVuID8gbWFrZVN0cmluZyhTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0
LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygpOwogICAgIH07
CiAgICAgYXV0byBzaGFwaW5nQm91bmRhcnkgPSBbJl0gewogICAgICAgICBpZiAobGluZVJ1bi5p
c1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkpCkBAIC0yNTQsNyArMjQ3LDcgQEAgdm9pZCBJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1
biYgbGluZVJ1biwKICAgICAgICAgLCBpbmtPdmVyZmxvdwogICAgICAgICAsIGlzRmlyc3RGb3Jt
YXR0ZWRMaW5lKCkKICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAgICwgSW5s
aW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCwgY29udGVu
dCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoKSwgdGV4dC0+bmVlZHNIeXBoZW4sIHNoYXBpbmdC
b3VuZGFyeSgpIH0KKyAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0ZXh0LnN0
YXJ0LCB0ZXh0Lmxlbmd0aCwgY29udGVudCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoKSwgdGV4
dC5uZWVkc0h5cGhlbiwgc2hhcGluZ0JvdW5kYXJ5KCkgfQogICAgICAgICAsIGlzQ29udGVudGZ1
bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigpCiAgICAg
fSk7CkBAIC0yNjIsNyArMjU1LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6
OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKIAogdm9pZCBJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFNvZnRMaW5lQnJlYWtEaXNwbGF5Qm94
KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5saW5lUmVjdCYgc29mdExpbmVCcmVh
a1J1blJlY3QsIElubGluZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAgICBBU1NFUlQobGlu
ZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVSdW4ubGF5b3V0Qm94
KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi50ZXh0Q29udGVudCgpLmxlbmd0aCAmJiBpczxJbmxp
bmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAgICBhdXRvJiBsYXlvdXRCb3gg
PSBsaW5lUnVuLmxheW91dEJveCgpOwogICAgIGF1dG8mIHRleHQgPSBsaW5lUnVuLnRleHRDb250
ZW50KCk7CkBAIC0yNzYsNyArMjY5LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXI6OmFwcGVuZFNvZnRMaW5lQnJlYWtEaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYKICAgICAg
ICAgLCBzb2Z0TGluZUJyZWFrUnVuUmVjdAogICAgICAgICAsIGlzRmlyc3RGb3JtYXR0ZWRMaW5l
KCkKICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAgICwgSW5saW5lRGlzcGxh
eTo6Qm94OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCwgZG93bmNhc3Q8SW5saW5l
VGV4dEJveD4obGF5b3V0Qm94KS5jb250ZW50KCkgfQorICAgICAgICAsIElubGluZURpc3BsYXk6
OkJveDo6VGV4dCB7IHRleHQuc3RhcnQsIHRleHQubGVuZ3RoLCBkb3duY2FzdDxJbmxpbmVUZXh0
Qm94PihsYXlvdXRCb3gpLmNvbnRlbnQoKSB9CiAgICAgICAgICwgaXNDb250ZW50ZnVsCiAgICAg
ICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJsb2NrRGlyZWN0aW9uKCkKICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L3RleHQvVGV4dFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAKaW5kZXggNjU2MTE0ZjljZDMzLi5mOTQ2ZDFk
NjIyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCkBAIC01Niw3ICs1Niw3
IEBAIHN0YXRpYyBpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBzcGFjZVdpZHRoKGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgYm9vbCBjCiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlLndpZHRo
T2ZTcGFjZVN0cmluZygpOwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChj
b25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9u
dENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0
aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4dFNwYWNp
bmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGls
Ojp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2Fz
Y2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlv
dXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwg
VGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGds
eXBoT3ZlcmZsb3cpCiB7CiAgICAgaWYgKGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwpA
QCAtODksNyArODksNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250QwogICAgICAgICAgICAgcnVu
LnNldFRhYlNpemUodHJ1ZSwgU3R5bGU6OnRvUGxhdGZvcm0oc3R5bGUudGFiU2l6ZSgpKSk7CiAg
ICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBtb3ZpbmcgdGhpcyB0byBUZXh0UnVuIGN0b3IKICAg
ICAgICAgcnVuLnNldFRleHRTcGFjaW5nU3RhdGUoc3BhY2luZ1N0YXRlKTsKLSAgICAgICAgd2lk
dGggPSBmb250Q2FzY2FkZS53aWR0aChydW4pOworICAgICAgICB3aWR0aCA9IGZvbnRDYXNjYWRl
LndpZHRoKHJ1biwgeyB9LCBnbHlwaE92ZXJmbG93KTsKICAgICB9CiAKICAgICBpZiAoZXh0ZW5k
ZWRNZWFzdXJpbmcpCkBAIC0xMDUsNyArMTA1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRp
bDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24K
ICAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwg
aW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0uZW5kKCksIGNvbnRlbnRMb2dp
Y2FsTGVmdCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElu
bGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNj
YWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50
TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1
c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpT
cGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlKQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lk
dGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2Fk
ZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0
aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiwgVGV4
dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUsIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5z
dGFydCgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7
CkBAIC0xMjMsNyArMTIzLDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29u
c3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1heCgwLmYsIHdpZHRoKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1
cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJv
bSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uLCBzcGFjaW5nU3RhdGUpOworICAgIHJldHVybiB3aWR0aChpbmxpbmVUZXh0
SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2lj
YWxMZWZ0LCB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIHNwYWNp
bmdTdGF0ZSwgZ2x5cGhPdmVyZmxvdyk7CiB9CiAKIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6
OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgc2l6ZV90IHN0YXJ0UG9zaXRpb24s
IHNpemVfdCBlbmRQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAppbmRleCA2
ZjU2NTg0NmIxZGMuLjYzNzQzYjlhNjZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
aApAQCAtNTMsOCArNTMsOCBAQCBjbGFzcyBUZXh0VXRpbCB7CiBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gOiBib29sIHsg
Tm8sIFllcyB9OwogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGlu
ZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsTGVmdCk7Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0
ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0
YXRlID0geyB9KTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxp
bmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0
bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVz
cGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmlu
Z09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0
ZSA9IHsgfSk7CisgICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5l
VGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRv
LCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNw
YWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRl
ID0geyB9LCBHbHlwaE92ZXJmbG93KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyBJbmxpbmVMYXlv
dXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVu
c2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
TGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJh
aWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIFRleHRTcGFjaW5nOjpT
cGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlID0geyB9LCBHbHlwaE92ZXJmbG93KiA9IG51bGxwdHIp
OwogCiAgICAgc3RhdGljIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgo
Y29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgc2l6ZV90IHN0YXJ0UG9z
aXRpb24sIHNpemVfdCBlbmRQb3NpdGlvbik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9lbW9qaS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2Vtb2ppLWdseXBoLW92ZXJmbG93LXJlcGFpbnQt
ZmFpbC1leHBlY3RlZC50eHQKaW5kZXggYzEyYmE5ZjkzZTQyLi4wNjJiMGE3ZDM5MWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9lbW9qaS1nbHlwaC1vdmVyZmxvdy1yZXBh
aW50LWZhaWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9lbW9q
aS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNyBA
QAogKHJlcGFpbnQgcmVjdHMKICAgKHJlY3QgOCAxMCAyMSAxNikKLSAgKHJlY3QgOCA3IDc4NCAx
KQotICAocmVjdCA4IDcgNzg0IDEpCisgIChyZWN0IDggLTYgNzg0IDE0KQorICAocmVjdCA4IC02
IDc4NCAxNCkKKyAgKHJlY3QgMCAtNiA4MDAgNikKICkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477927</attachid>
            <date>2026-01-07 08:47:49 -0800</date>
            <delta_ts>2026-01-08 10:41:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260107084749.patch</filename>
            <type>text/plain</type>
            <size>18897</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyZTk2ZTgxOTFlNzU0NzEyYWIwYTg4MGUxYWFiYjcwNWViYTExZjE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgNyBKYW4gMjAyNiAwODo0NDozNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgPHJkYXI6Ly8xNjMyOTA3Nzk+CgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KClRyYWNrIGdseXBoIG92ZXJmbG93IGR1cmluZyBpbmxpbmUgdGV4dCBt
ZWFzdXJlbWVudCBhbmQgaW5mbGF0ZSBpbmsgb3ZlcmZsb3cgZHVyaW5nIGRpc3BsYXkgYm94IGNv
bnN0cnVjdGlvbi4KCkNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KCiogTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2Vtb2ppLWdseXBoLW92ZXJmbG93LXJlcGFpbnQtZmFpbC1leHBlY3RlZC50eHQ6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbS5jcHA6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvbnRlbnRBdHRyaWJ1dGVzQW5kSW5saW5lVGV4dEl0ZW1X
aWR0aHMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5kKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6
OkxpbmU6OlJ1bjo6R2x5cGhPdmVyZmxvdzo6aXNFbXB0eSBjb25zdCk6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaDoKKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29uc3QpOgooV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6CiogU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6VGV4dFV0aWw6OndpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmg6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRV
dGlsOjp3aWR0aCk6Ci0tLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bS5jcHAgIHwgIDIgKysKIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
aCAgICB8ICAyICsrCiAuLi4vaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAgICAgICAgICAg
ICAgfCAyMCArKysrKysrKysrKysrKysrKystCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmNwcCAgfCAgOCArKysrKysrKwogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZS5oICAgIHwgIDkgKysrKysrKysrCiAuLi4vaW5saW5lL0lubGluZVRl
eHRJdGVtLmggICAgICAgICAgICAgICAgICAgfCAgOCArKysrKysrKwogLi4uL2Rpc3BsYXkvSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAgIHwgMTMgKysrLS0tLS0tLS0tCiAuLi4vaW5s
aW5lL3RleHQvVGV4dFV0aWwuY3BwICAgICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQogLi4u
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oIHwgIDQgKystLQogLi4u
aS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwtZXhwZWN0ZWQudHh0IHwgIDUgKysrLS0KIDEw
IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbS5jcHAKaW5kZXggZmI2NjgyYzM3OWFlLi41ODdjZmI5ZDlmZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwCkBAIC00Myw2ICs0Myw4IEBAIHN0cnVjdCBTYW1l
U2l6ZUFzSW5saW5lSXRlbSB7CiAgICAgYm9vbCB3aWR0aEJvb2wgOiAxOwogICAgIGJvb2wgc29m
dEh5cGhlbkJvb2wgOiAxOwogICAgIGJvb2wgaXNXb3JkU2VwYXJhdG9yIDogMTsKKyAgICB1aW50
OF90IGdseXBoVG9wT3ZlcmZsb3cgOiA1OworICAgIHVpbnQ4X3QgZ2x5cGhCb3R0b21PdmVyZmxv
dyA6IDM7CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2Yo
U2FtZVNpemVBc0lubGluZUl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAppbmRleCBkMzlj
NWQ0ZDViOTQuLmM5ZGMwN2I5ZTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaApAQCAtOTcs
NiArOTcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1dpZHRoIDogMSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbiA6IDEgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc1dvcmRTZXBhcmF0b3IgOiAxIHsgZmFsc2UgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhU
b3BPdmVyZmxvdyA6IDUgeyAwIH07CisgICAgdWludDhfdCBtX2dseXBoQm90dG9tT3ZlcmZsb3cg
OiAzIHsgMCB9OwogfTsKIAogaW5saW5lIElubGluZUl0ZW06OklubGluZUl0ZW0oY29uc3QgQm94
JiBsYXlvdXRCb3gsIFR5cGUgdHlwZSwgVUJpRGlMZXZlbCBiaWRpTGV2ZWwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJ
dGVtc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCA3N2Q4MmMxOTg3MTkuLjlmMWRm
ZDEwZGIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCkBA
IC03ODcsNiArNzg3LDggQEAgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Q29udGVu
dEF0dHJpYnV0ZXMgSW5saW5lSXRlbXNCdWlsZGVyOjpjb21wdXRlQ28KICAgICBUZXh0U3BhY2lu
Zzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZTsKICAgICBUcmltbWFibGVUZXh0U3BhY2luZ3Mg
dHJpbW1hYmxlVGV4dFNwYWNpbmdzOwogICAgIGF1dG8mIGlubGluZUJveEJvdW5kYXJ5VGV4dFNw
YWNpbmdzID0gaW5saW5lQ29udGVudENhY2hlKCkuaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2lu
Z3MoKTsKKyAgICBjb25zdCBJbmxpbmVUZXh0Qm94KiBjdXJyZW50SW5saW5lVGV4dEJveCA9IG51
bGxwdHI7CisgICAgYXV0byBjdXJyZW50SW5saW5lVGV4dEJveE1heUhhdmVHbHlwaE92ZXJmbG93
ID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3QgaW5saW5lSXRlbUluZGV4ID0gMDsgaW5saW5lSXRl
bUluZGV4IDwgaW5saW5lSXRlbUxpc3Quc2l6ZSgpOyArK2lubGluZUl0ZW1JbmRleCkgewogICAg
ICAgICBhdXRvIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSAwLmY7CiAgICAgICAgIGF1dG8mIGlu
bGluZUl0ZW0gPSBpbmxpbmVJdGVtTGlzdFtpbmxpbmVJdGVtSW5kZXhdOwpAQCAtODAxLDcgKzgw
MywyMyBAQCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250ZW50QXR0cmlidXRl
cyBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogICAgICAgICAgICAgICAgICAgICBpZiAo
YXV0byBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nID0gaW5saW5lQm94Qm91bmRhcnlUZXh0
U3BhY2luZ3MuZmluZChwb3RlbnRpYWxJbmxpbmVCb3hTdGFydEluZGV4KTsgaW5saW5lQm94Qm91
bmRhcnlUZXh0U3BhY2luZyAhPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncy5lbmQoKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSBpbmxpbmVC
b3hCb3VuZGFyeVRleHRTcGFjaW5nLT52YWx1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKFRleHRVdGlsOjp3aWR0aCgqaW5saW5l
VGV4dEl0ZW0sIGlubGluZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCksIHN0YXJ0LCBz
dGFydCArIGlubGluZVRleHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxp
bmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNpbmdTdGF0ZSkgKyBl
eHRyYUlubGluZVRleHRTcGFjaW5nKTsKKyAgICAgICAgICAgICAgICBhdXRvJiBmb250Q2FzY2Fk
ZSA9IGlubGluZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCk7CisgICAgICAgICAgICAg
ICAgYXV0byB3aWR0aCA9IElubGluZUxheW91dFVuaXQgeyB9OworICAgICAgICAgICAgICAgIGF1
dG8gbWF5SGF2ZUdseXBoT3ZlcmZsb3cgPSBbJl0geworICAgICAgICAgICAgICAgICAgICBpZiAo
Y3VycmVudElubGluZVRleHRCb3ggIT0gJmlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2ZUds
eXBoT3ZlcmZsb3cgPSAhaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKS5jYW5Vc2VTaW1w
bGVGb250Q29kZVBhdGgoKSB8fCBmb250Q2FzY2FkZS5wcmltYXJ5Rm9udCgpLT5vcmlnaW4oKSA9
PSBGb250T3JpZ2luOjpSZW1vdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5s
aW5lVGV4dEJveCA9ICZpbmxpbmVUZXh0SXRlbS0+aW5saW5lVGV4dEJveCgpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5saW5lVGV4
dEJveE1heUhhdmVHbHlwaE92ZXJmbG93OworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAgICAgaWYgKG1heUhhdmVHbHlwaE92ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
R2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93OworICAgICAgICAgICAgICAgICAgICBnbHlwaE92
ZXJmbG93LmNvbXB1dGVCb3VuZHMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9
IFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwgc3Rh
cnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUsICZnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0tPnNldEdseXBo
T3ZlcmZsb3coc3RkOjpjbGFtcChnbHlwaE92ZXJmbG93LnRvcCwgMF9sdSwgMzFfbHUpLCBzdGQ6
OmNsYW1wKGdseXBoT3ZlcmZsb3cuYm90dG9tLCAwX2x1LCA3X2x1KSk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gVGV4dFV0aWw6OndpZHRoKCpp
bmxpbmVUZXh0SXRlbSwgZm9udENhc2NhZGUsIHN0YXJ0LCBzdGFydCArIGlubGluZVRleHRJdGVt
LT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
T3B0aW1pemF0aW9uOjpZZXMsIHNwYWNpbmdTdGF0ZSk7CisgICAgICAgICAgICAgICAgaW5saW5l
VGV4dEl0ZW0tPnNldFdpZHRoKHdpZHRoICsgZXh0cmFJbmxpbmVUZXh0U3BhY2luZyk7CiAgICAg
ICAgICAgICAgICAgaGFuZGxlVGV4dFNwYWNpbmcoc3BhY2luZ1N0YXRlLCB0cmltbWFibGVUZXh0
U3BhY2luZ3MsICppbmxpbmVUZXh0SXRlbSwgaW5saW5lSXRlbUluZGV4KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRl
eCBjZTgzYTk5OTFiYTAuLmQxMjg1MzNmOTc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHAKQEAgLTg1OCw2ICs4NTgsMTAgQEAgTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lVGV4dEl0
ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEkKICAgICAgICAg
aWYgKCp3aGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNl
ZCkKICAgICAgICAgICAgIGxlbmd0aCA9ICAxOwogICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFj
ZSA9IHsgKndoaXRlc3BhY2VUeXBlLCBsZW5ndGgsIGxvZ2ljYWxXaWR0aCB9OworICAgIH0gZWxz
ZSB7CisgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGlubGluZVRleHRJdGVtLmdseXBoT3Zl
cmZsb3coKTsKKyAgICAgICAgaWYgKGdseXBoT3ZlcmZsb3cuZmlyc3QgfHwgZ2x5cGhPdmVyZmxv
dy5zZWNvbmQpCisgICAgICAgICAgICBtX2dseXBoT3ZlcmZsb3cgPSB7IGdseXBoT3ZlcmZsb3cu
Zmlyc3QsIGdseXBoT3ZlcmZsb3cuc2Vjb25kIH07CiAgICAgfQogICAgIG1fdGV4dENvbnRlbnQg
PSB7IGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGxlbmd0aCB9OwogfQpAQCAtODc3LDYgKzg4MSwx
MCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVU
ZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFj
ZSA9IHsgfTsKICAgICAgICAgbV90ZXh0Q29udGVudC5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0u
bGVuZ3RoKCk7CiAgICAgICAgIG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgPSBpbmxp
bmVUZXh0SXRlbS5zdGFydCgpOworCisgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGlubGlu
ZVRleHRJdGVtLmdseXBoT3ZlcmZsb3coKTsKKyAgICAgICAgaWYgKGdseXBoT3ZlcmZsb3cuZmly
c3QgfHwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpCisgICAgICAgICAgICBtX2dseXBoT3ZlcmZsb3cg
PSB7IHN0ZDo6bWF4KG1fZ2x5cGhPdmVyZmxvdy50b3AsIGdseXBoT3ZlcmZsb3cuZmlyc3QpLCBz
dGQ6Om1heChtX2dseXBoT3ZlcmZsb3cuYm90dG9tLCBnbHlwaE92ZXJmbG93LnNlY29uZCkgfTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHdoaXRlc3BhY2VXaWR0aCA9ICFoYXNU
cmFpbGluZ1doaXRlc3BhY2UoKSA/IGxvZ2ljYWxXaWR0aCA6IG1fdHJhaWxpbmdXaGl0ZXNwYWNl
LndpZHRoICsgbG9naWNhbFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IGJiMzg5
OTUwZjRmYy4uYmZiZjZiNzFlNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC0xNDYs
NiArMTQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ1do
aXRlc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRo
OyB9CiAgICAgICAgIGJvb2wgaXNXaGl0ZXNwYWNlT25seSgpIGNvbnN0IHsgcmV0dXJuIGhhc1Ry
YWlsaW5nV2hpdGVzcGFjZSgpICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aCA9PSBtX3Rl
eHRDb250ZW50Lmxlbmd0aDsgfQogCisgICAgICAgIHN0cnVjdCBHbHlwaE92ZXJmbG93IHsKKyAg
ICAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICF0b3AgJiYgIWJvdHRvbTsg
fQorCisgICAgICAgICAgICB1aW50OF90IHRvcCA6IDUgeyAwIH07CisgICAgICAgICAgICB1aW50
OF90IGJvdHRvbTogMyB7IDAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBn
bHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9nbHlwaE92ZXJmbG93OyB9CisKICAgICAg
ICAgaW5saW5lIFRleHREaXJlY3Rpb24gaW5saW5lRGlyZWN0aW9uKCkgY29uc3Q7CiAgICAgICAg
IElubGluZUxheW91dFVuaXQgbGV0dGVyU3BhY2luZygpIGNvbnN0OwogICAgICAgICBib29sIGhh
c1RleHRDb21iaW5lKCkgY29uc3Q7CkBAIC0yMDksNiArMjE3LDcgQEAgcHVibGljOgogICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoIHsgMCB9OwogICAgICAgICBVQmlEaUxl
dmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVMVF9MVFIgfTsKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCBtX3RleHRTcGFjaW5nQWRqdXN0bWVudCB7IDAgfTsKKyAgICAgICAgR2x5cGhPdmVy
ZmxvdyBtX2dseXBoT3ZlcmZsb3c7CiAgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBu
dWxscHRyIH07CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOwogICAgICAgICBJ
bmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJ
dGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVUZXh0SXRlbS5oCmluZGV4IGQwMTdjNTg5YjViYS4uNGQxNjQ4YjAwOGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAg
IGJvb2wgaXNGdWxseVRyaW1tYWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaGFzVHJhaWxpbmdTb2Z0
SHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNUcmFpbGluZ1NvZnRIeXBoZW47IH0KICAgICBz
dGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNXaWR0aCA/IHN0ZDo6bWFrZV9vcHRpb25hbChtX3dpZHRoKSA6IHN0ZDo6b3B0aW9uYWw8SW5s
aW5lTGF5b3V0VW5pdD4geyB9OyB9CisgICAgc3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ4X3Q+IGds
eXBoT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiB7IG1fZ2x5cGhUb3BPdmVyZmxvdywgbV9nbHlw
aEJvdHRvbU92ZXJmbG93IH07IH0KIAogICAgIGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRl
eHRCb3goKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihsYXlvdXRCb3go
KSk7IH0KIApAQCAtNjgsNiArNjksNyBAQCBwcml2YXRlOgogICAgIHVzaW5nIElubGluZUl0ZW06
OlRleHRJdGVtVHlwZTsKIAogICAgIElubGluZVRleHRJdGVtIHNwbGl0KHNpemVfdCBsZWZ0U2lk
ZUxlbmd0aCk7CisgICAgdm9pZCBzZXRHbHlwaE92ZXJmbG93KExheW91dFVuaXQgdG9wLCBMYXlv
dXRVbml0IGJvdHRvbSk7CiAKICAgICBJbmxpbmVUZXh0SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94
JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgVUJpRGlMZXZlbCwgYm9vbCBoYXNU
cmFpbGluZ1NvZnRIeXBoZW4sIGJvb2wgaXNXb3JkU2VwYXJhdG9yLCBzdGQ6Om9wdGlvbmFsPElu
bGluZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUpOwogICAgIGV4cGxpY2l0IElubGlu
ZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmKTsKQEAgLTkwLDYgKzkyLDEyIEBAIGlubGlu
ZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKGNvbnN0IElu
bGluZVRleHRCb3gmIGlubGluCiAgICAgcmV0dXJuIElubGluZVRleHRJdGVtIHsgaW5saW5lVGV4
dEJveCB9OwogfQogCitpbmxpbmUgdm9pZCBJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxv
dyhMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5pdCBib3R0b20pCit7CisgICAgbV9nbHlwaFRvcE92
ZXJmbG93ID0gdG9wLmNlaWwoKTsKKyAgICBtX2dseXBoQm90dG9tT3ZlcmZsb3cgPSBib3R0b20u
Y2VpbCgpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBiYjFmOTAxZGE5
OTYuLjg0YTY3ZWEyYWFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMTk4LDE2ICsxOTgs
OSBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kVGV4dERpc3BsYXlC
b3goY29uc3QgTGluZTo6UnVuJiBsaW5lUnVuLAogICAgICAgICBhZGRUZXh0U2hhZG93KCk7CiAK
ICAgICAgICAgYXV0byBhZGRHbHlwaE92ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgICAgIGlmIChp
bmxpbmVUZXh0Qm94LmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoIG1hcHMgdG8gQ29kZVBhdGg6OlNpbXBsZSAo
YW5kIGNvbnRlbnQgd2l0aCBwb3RlbnRpYWwgZ2x5cGggb3ZlcmZsb3cgd291bGQgc2F5cyBDb2Rl
UGF0aDo6U2ltcGxlV2l0aEdseXBoT3ZlcmZsb3cpLgotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2Vu
dCA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyhjb250
ZW50KS5zdWJzdHJpbmcodGV4dC5zdGFydCwgdGV4dC5sZW5ndGgpLCBzdHlsZSwgaW5saW5lVGV4
dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpT
aG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBUYWtlIGZhbGxiYWNrIGZvbnRzIGludG8gYWNjb3VudC4KLSAgICAgICAgICAgIGF1dG8m
IGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICAgICAgICAg
IGF1dG8gdG9wT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6
c25hcFRvSW50KC1lbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmFzY2VudCwgaW5saW5lVGV4dEJv
eCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OmFzY2VudChmb250TWV0cmljcywgRm9udEJhc2Vs
aW5lOjpBbHBoYWJldGljLCBpbmxpbmVUZXh0Qm94KSk7Ci0gICAgICAgICAgICBhdXRvIGJvdHRv
bU92ZXJmbG93ID0gc3RkOjptYXgoMC5mLCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0lu
dChlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmRlc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5s
aW5lRm9ybWF0dGluZ1V0aWxzOjpkZXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFs
cGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKLSAgICAgICAgICAgIGlua092ZXJmbG93LmluZmxh
dGUodG9wT3ZlcmZsb3csIHsgfSwgYm90dG9tT3ZlcmZsb3csIHsgfSk7CisgICAgICAgICAgICBh
dXRvIGdseXBoT3ZlcmZsb3cgPSBsaW5lUnVuLmdseXBoT3ZlcmZsb3coKTsKKyAgICAgICAgICAg
IGlmICghZ2x5cGhPdmVyZmxvdy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgaW5rT3ZlcmZs
b3cuaW5mbGF0ZShnbHlwaE92ZXJmbG93LnRvcCwgeyB9LCBnbHlwaE92ZXJmbG93LmJvdHRvbSwg
eyB9KTsKICAgICAgICAgfTsKICAgICAgICAgYWRkR2x5cGhPdmVyZmxvdygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDY1NjExNGY5Y2QzMy4uZjk0NmQxZDYyMjZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAtNTYsNyArNTYsNyBAQCBz
dGF0aWMgaW5saW5lIElubGluZUxheW91dFVuaXQgc3BhY2VXaWR0aChjb25zdCBGb250Q2FzY2Fk
ZSYgZm9udENhc2NhZGUsIGJvb2wgYwogICAgIHJldHVybiBmb250Q2FzY2FkZS53aWR0aE9mU3Bh
Y2VTdHJpbmcoKTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3Qg
SW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNj
YWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50
TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1
c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpT
cGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlKQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lk
dGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUm
IGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5p
dCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGlt
aXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRT
cGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92
ZXJmbG93KQogewogICAgIGlmIChmcm9tID09IHRvKQogICAgICAgICByZXR1cm4gMDsKQEAgLTg5
LDcgKzg5LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5l
VGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICAgICAgICAgIHJ1bi5zZXRU
YWJTaXplKHRydWUsIFN0eWxlOjp0b1BsYXRmb3JtKHN0eWxlLnRhYlNpemUoKSkpOwogICAgICAg
ICAvLyBGSVhNRTogY29uc2lkZXIgbW92aW5nIHRoaXMgdG8gVGV4dFJ1biBjdG9yCiAgICAgICAg
IHJ1bi5zZXRUZXh0U3BhY2luZ1N0YXRlKHNwYWNpbmdTdGF0ZSk7Ci0gICAgICAgIHdpZHRoID0g
Zm9udENhc2NhZGUud2lkdGgocnVuKTsKKyAgICAgICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0
aChydW4sIHsgfSwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogCiAgICAgaWYgKGV4dGVuZGVkTWVh
c3VyaW5nKQpAQCAtMTA1LDcgKzEwNSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6Ondp
ZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9uCiAgICAg
cmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwgZm9udENhc2NhZGUsIGlubGlu
ZVRleHRJdGVtLnN0YXJ0KCksIGlubGluZVRleHRJdGVtLmVuZCgpLCBjb250ZW50TG9naWNhbExl
ZnQpOwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVU
ZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2lj
YWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJh
aWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBUZXh0U3BhY2luZzo6U3BhY2lu
Z1N0YXRlIHNwYWNpbmdTdGF0ZSkKK0lubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNv
bnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZv
bnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFj
aW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGZyb20gPj0gaW5saW5lVGV4dEl0ZW0uc3RhcnQo
KSk7CiAgICAgUkVMRUFTRV9BU1NFUlQodG8gPD0gaW5saW5lVGV4dEl0ZW0uZW5kKCkpOwpAQCAt
MTIzLDcgKzEyMyw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElu
bGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9uCiAgICAgICAgICAgICByZXR1
cm4gc3RkOjptYXgoMC5mLCB3aWR0aCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHdp
ZHRoKGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRv
LCBjb250ZW50TG9naWNhbExlZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGlt
aXphdGlvbiwgc3BhY2luZ1N0YXRlKTsKKyAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0u
aW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVm
dCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBzcGFjaW5nU3Rh
dGUsIGdseXBoT3ZlcmZsb3cpOwogfQogCiBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp0cmFp
bGluZ1doaXRlc3BhY2VXaWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBj
b25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXpl
X3QgZW5kUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmgKaW5kZXggNmY1NjU4
NDZiMWRjLi42Mzc0M2I5YTY2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmgKQEAg
LTUzLDggKzUzLDggQEAgY2xhc3MgVGV4dFV0aWwgewogcHVibGljOgogICAgIGVudW0gY2xhc3Mg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0
SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRl
eHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFj
ZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09w
dGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9
IHsgfSk7Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4
dEJveCYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElu
bGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUgPSB7
IH0pOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJ
dGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5s
aW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1l
YXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGlt
aXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsg
fSwgR2x5cGhPdmVyZmxvdyogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5p
dCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQs
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2lu
Z1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSwgR2x5cGhPdmVyZmxvdyogPSBudWxscHRyKTsKIAog
ICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0
IElubGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHNpemVfdCBzdGFydFBvc2l0aW9u
LCBzaXplX3QgZW5kUG9zaXRpb24pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9lbW9qaS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwt
ZXhwZWN0ZWQudHh0CmluZGV4IGMxMmJhOWY5M2U0Mi4uMDYyYjBhN2QzOTFhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1m
YWlsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5
cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDcgQEAKIChy
ZXBhaW50IHJlY3RzCiAgIChyZWN0IDggMTAgMjEgMTYpCi0gIChyZWN0IDggNyA3ODQgMSkKLSAg
KHJlY3QgOCA3IDc4NCAxKQorICAocmVjdCA4IC02IDc4NCAxNCkKKyAgKHJlY3QgOCAtNiA3ODQg
MTQpCisgIChyZWN0IDAgLTYgODAwIDYpCiApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477937</attachid>
            <date>2026-01-08 10:41:47 -0800</date>
            <delta_ts>2026-01-08 15:24:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-301447-20260108104146.patch</filename>
            <type>text/plain</type>
            <size>47094</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4NGNkYTBjMjkwNWI4ZmY5YmQ3MWZjYjk3MzIxYzlkYThkNzJlNzc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwODo1MTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgPHJkYXI6Ly8xNjMyOTA3Nzk+CgpSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KCjEuIFRyYWNrIGdseXBoIG92ZXJmbG93IGR1cmluZyBpbmxpbmUgdGV4
dCBtZWFzdXJlbWVudCBhbmQgaW5mbGF0ZSBpbmsgb3ZlcmZsb3cgZHVyaW5nIGRpc3BsYXkgYm94
IGNvbnN0cnVjdGlvbi4KMi4gU2hyaW5rIExheW91dDo6TGluZTo6UnVuIGZyb20gMTI4IGJ5dGVz
IHRvIDg4IGJ5dGVzIGluIG9yZGVyIHRvIG1ha2Ugcm9vbSBmb3IgZ2x5cGggb3ZlcmZsb3cgYml0
cyAoc3BlZWRvIHBlcmYpCiAgLSByZWFycmFuZ2UgbWVtYmVyIHZhcmlhYmxlcwogIC0gcmV0aXJl
IGEgZmV3IG9wdGlvbmFscwogIC0gbWFrZSBUcmFpbGluZ1doaXRlc3BhY2Ugc21hbGxlciAoc2l6
ZSBhcyAyNGJpdHMpCjMuIEZhbGxiYWNrIHRvIHBvc3QtbGF5b3V0IGdseXBoIG92ZXJmbG93IGNv
bXB1dGF0aW9uIHdoZW4gNTozYml0IChhc2NlbnQ6ZGVzY2VudCkgaXMgTUFYZWQgaW5kaWNhdGlu
ZyBvdmVyZmxvdyB2YWx1ZSBpcyBsYXJnZXIgdGhhbgogICB3aGF0IHdlIGNhbiBmaXQgaW50byBh
IGJ5dGUuCgpDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3QuCgoqIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9lbW9qaS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwtZXhwZWN0ZWQudHh0OgoqIFNv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRl
bnRBbGlnbmVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6Y29tcHV0ZWRFeHBhbnNpb25zKToKKiBT
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nVXRpbHMuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nVXRpbHM6
OmlubGluZUNvbnRlbnRFbmRpbmcpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaDoKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwOgoo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDb250ZW50QXR0cmli
dXRlc0FuZElubGluZVRleHRJdGVtV2lkdGhzKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6
TGluZTo6cmVzdG9yZVRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2UpOgooV2ViQ29yZTo6TGF5b3V0
OjpMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSk6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6UnVuKToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbmQp
OgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmRldGFjaFRyYWlsaW5nV2hpdGVzcGFjZSk6
CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKToK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNDb250ZW50ZnVsIGNvbnN0KToK
KFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjp0ZXh0Q29udGVudCBjb25zdCk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aGFzVHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6UnVuOjp0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCBjb25zdCk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNXaGl0ZXNwYWNlT25seSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6R2x5cGhPdmVyZmxvdzo6aXNFbXB0eSBjb25zdCk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6Z2x5cGhPdmVyZmxvdyBjb25zdCk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnlTdGFydCBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRhcnlFbmQgY29uc3QpOgooV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzSW5zaWRlU2hhcGluZ0JvdW5kYXJ5IGNvbnN0KToK
KFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc1NoYXBpbmdCb3VuZGFyeSBjb25zdCk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3Bh
Y2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNlZFRyYWls
aW5nV2hpdGVzcGFjZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6c2V0TmVl
ZHNIeXBoZW4pOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1
aWxkZXI6OmNvbGxlY3RGYWxsYmFja0ZvbnRzKToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1
aWxkZXI6OmFkanVzdElubGluZUJveEhlaWdodHNGb3JMaW5lQm94Q29udGFpbklmQXBwbGljYWJs
ZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0Ojp0b1N0cmluZyk6CiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0u
aDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmdseXBoT3ZlcmZsb3cgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6c2V0R2x5cGhPdmVyZmxvdyk6Ciog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KToKKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFrRGlz
cGxheUJveCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvdGV4dC9UZXh0VXRpbC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRVdGlsOjp3aWR0aCk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9U
ZXh0VXRpbC5oOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgpOgotLS0KIC4uLi9p
bmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwICAgICAgICAgICB8ICAyICstCiAuLi4vaW5s
aW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAgICAgICAgICAgfCAgMiArLQogLi4uL2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAgIHwgIDIgKwogLi4uL2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oICAgIHwgIDIgKwogLi4uL2lubGluZS9Jbmxp
bmVJdGVtc0J1aWxkZXIuY3BwICAgICAgICAgICAgIHwgMjAgKysrKy0KIC4uLi9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwICB8IDczICsrKysrKysrKysrLS0tLS0tLS0K
IC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCAgICB8IDYwICsrKysr
KysrLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAgICAgICAgICAg
IHwgMTAgKy0tCiAuLi4vaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCAgICAgICAgICAgICAg
fCAgMiArLQogLi4uL2lubGluZS9JbmxpbmVUZXh0SXRlbS5oICAgICAgICAgICAgICAgICAgIHwg
IDggKysKIC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgICB8IDMw
ICsrKystLS0tCiAuLi4vaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwICAgICAgICAgICAgICAgICAg
fCAgOCArLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oIHwg
IDUgKy0KIC4uLmktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4dCB8ICA1
ICstCiAxNCBmaWxlcyBjaGFuZ2VkLCAxNDAgaW5zZXJ0aW9ucygrKSwgODkgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEFsaWduZXIuY3BwCmluZGV4IDBh
NDIxYTQ3NDc3MC4uNTg4NGMyOWJkZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Q29udGVudEFsaWduZXIuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIHZvaWQgY29tcHV0
ZWRFeHBhbnNpb25zKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMsIFdURjo6UmFuZ2U8c2l6ZV90
PiBydW4KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2
aW9yLmxlZnQgPSBydW5Jc0FmdGVyRXhwYW5zaW9uID8gRXhwYW5zaW9uQmVoYXZpb3I6OkJlaGF2
aW9yOjpGb3JiaWQgOiBFeHBhbnNpb25CZWhhdmlvcjo6QmVoYXZpb3I6OkFsbG93OwogICAgICAg
ICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yLnJpZ2h0ID0gRXhwYW5zaW9uQmVoYXZpb3I6OkJl
aGF2aW9yOjpBbGxvdzsKLSAgICAgICAgICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9ICpydW4u
dGV4dENvbnRlbnQoKTsKKyAgICAgICAgICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50
ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgICAgIGF1dG8gbGVuZ3RoID0gdGV4dENvbnRlbnQu
bGVuZ3RoOwogICAgICAgICAgICAgICAgIGlmIChsYXN0VGV4dFJ1bkluZGV4Rm9yVHJpbW1pbmcg
JiYgcnVuSW5kZXgoKSA9PSAqbGFzdFRleHRSdW5JbmRleEZvclRyaW1taW5nKSB7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFRyYWlsaW5nIGhhbmdpbmcgd2hpdGVzcGFjZSBzZXF1ZW5jZSBpcyBp
Z25vcmVkIHdoZW4gY29tcHV0aW5nIHRoZSBleHBhbnNpb24gb3Bwb3J0dW5pdGllcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUZvcm1hdHRpbmdVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwCmluZGV4IDg0ODAyOTAw
MjljNC4uNmI1MzQ2MjQyNmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1h
dHRpbmdVdGlscy5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBzdGQ6Om9wdGlvbmFsPExpbmVMYXlv
dXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRpbmc+IElubGluZUZvcm1hdHRpbmdVdGlsczo6aW5s
aQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChydW4uaXNMaW5lQnJlYWsoKSkK
ICAgICAgICAgICAgIHJldHVybiB7IExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNvbnRlbnRFbmRp
bmc6OkxpbmVCcmVhayB9OwotICAgICAgICBpZiAoYXV0byYgdGV4dENvbnRlbnQgPSBydW4udGV4
dENvbnRlbnQoKTsgdGV4dENvbnRlbnQgJiYgdGV4dENvbnRlbnQtPm5lZWRzSHlwaGVuKQorICAg
ICAgICBpZiAocnVuLmlzVGV4dCgpICYmIHJ1bi50ZXh0Q29udGVudCgpLm5lZWRzSHlwaGVuKQog
ICAgICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91dFJlc3VsdDo6SW5saW5lQ29udGVudEVuZGlu
Zzo6SHlwaGVuIH07CiAgICAgICAgIHJldHVybiB7IExpbmVMYXlvdXRSZXN1bHQ6OklubGluZUNv
bnRlbnRFbmRpbmc6OkdlbmVyaWMgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3Bw
CmluZGV4IGZiNjY4MmMzNzlhZS4uNTg3Y2ZiOWQ5ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJ
dGVtLmNwcApAQCAtNDMsNiArNDMsOCBAQCBzdHJ1Y3QgU2FtZVNpemVBc0lubGluZUl0ZW0gewog
ICAgIGJvb2wgd2lkdGhCb29sIDogMTsKICAgICBib29sIHNvZnRIeXBoZW5Cb29sIDogMTsKICAg
ICBib29sIGlzV29yZFNlcGFyYXRvciA6IDE7CisgICAgdWludDhfdCBnbHlwaFRvcE92ZXJmbG93
IDogNTsKKyAgICB1aW50OF90IGdseXBoQm90dG9tT3ZlcmZsb3cgOiAzOwogfTsKIAogc3RhdGlj
X2Fzc2VydChzaXplb2YoSW5saW5lSXRlbSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNJbmxpbmVJdGVt
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKaW5kZXggZDM5YzVkNGQ1Yjk0Li5jOWRjMDdiOWU5
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKQEAgLTk3LDYgKzk3LDggQEAgcHJvdGVjdGVk
OgogICAgIGJvb2wgbV9oYXNXaWR0aCA6IDEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNUcmFp
bGluZ1NvZnRIeXBoZW4gOiAxIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXb3JkU2VwYXJhdG9y
IDogMSB7IGZhbHNlIH07CisgICAgdWludDhfdCBtX2dseXBoVG9wT3ZlcmZsb3cgOiA1IHsgMCB9
OworICAgIHVpbnQ4X3QgbV9nbHlwaEJvdHRvbU92ZXJmbG93IDogMyB7IDAgfTsKIH07CiAKIGlu
bGluZSBJbmxpbmVJdGVtOjpJbmxpbmVJdGVtKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBUeXBlIHR5
cGUsIFVCaURpTGV2ZWwgYmlkaUxldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1z
QnVpbGRlci5jcHAKaW5kZXggNzdkODJjMTk4NzE5Li45ZjFkZmQxMGRiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW1zQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcApAQCAtNzg3LDYgKzc4Nyw4IEBAIElu
bGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNvbnRlbnRBdHRyaWJ1dGVzIElubGluZUl0
ZW1zQnVpbGRlcjo6Y29tcHV0ZUNvCiAgICAgVGV4dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFj
aW5nU3RhdGU7CiAgICAgVHJpbW1hYmxlVGV4dFNwYWNpbmdzIHRyaW1tYWJsZVRleHRTcGFjaW5n
czsKICAgICBhdXRvJiBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncyA9IGlubGluZUNvbnRl
bnRDYWNoZSgpLmlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzKCk7CisgICAgY29uc3QgSW5s
aW5lVGV4dEJveCogY3VycmVudElubGluZVRleHRCb3ggPSBudWxscHRyOworICAgIGF1dG8gY3Vy
cmVudElubGluZVRleHRCb3hNYXlIYXZlR2x5cGhPdmVyZmxvdyA9IGZhbHNlOwogICAgIGZvciAo
c2l6ZV90IGlubGluZUl0ZW1JbmRleCA9IDA7IGlubGluZUl0ZW1JbmRleCA8IGlubGluZUl0ZW1M
aXN0LnNpemUoKTsgKytpbmxpbmVJdGVtSW5kZXgpIHsKICAgICAgICAgYXV0byBleHRyYUlubGlu
ZVRleHRTcGFjaW5nID0gMC5mOwogICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gaW5saW5lSXRl
bUxpc3RbaW5saW5lSXRlbUluZGV4XTsKQEAgLTgwMSw3ICs4MDMsMjMgQEAgSW5saW5lQ29udGVu
dENhY2hlOjpJbmxpbmVJdGVtczo6Q29udGVudEF0dHJpYnV0ZXMgSW5saW5lSXRlbXNCdWlsZGVy
Ojpjb21wdXRlQ28KICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5saW5lQm94Qm91bmRh
cnlUZXh0U3BhY2luZyA9IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdzLmZpbmQocG90ZW50
aWFsSW5saW5lQm94U3RhcnRJbmRleCk7IGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmcgIT0g
aW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MuZW5kKCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBleHRyYUlubGluZVRleHRTcGFjaW5nID0gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2lu
Zy0+dmFsdWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlubGluZVRleHRJ
dGVtLT5zZXRXaWR0aChUZXh0VXRpbDo6d2lkdGgoKmlubGluZVRleHRJdGVtLCBpbmxpbmVUZXh0
SXRlbS0+c3R5bGUoKS5mb250Q2FzY2FkZSgpLCBzdGFydCwgc3RhcnQgKyBpbmxpbmVUZXh0SXRl
bS0+bGVuZ3RoKCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmlu
Z09wdGltaXphdGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpICsgZXh0cmFJbmxpbmVUZXh0U3BhY2lu
Zyk7CisgICAgICAgICAgICAgICAgYXV0byYgZm9udENhc2NhZGUgPSBpbmxpbmVUZXh0SXRlbS0+
c3R5bGUoKS5mb250Q2FzY2FkZSgpOworICAgICAgICAgICAgICAgIGF1dG8gd2lkdGggPSBJbmxp
bmVMYXlvdXRVbml0IHsgfTsKKyAgICAgICAgICAgICAgICBhdXRvIG1heUhhdmVHbHlwaE92ZXJm
bG93ID0gWyZdIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmxpbmVUZXh0Qm94
ICE9ICZpbmxpbmVUZXh0SXRlbS0+aW5saW5lVGV4dEJveCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjdXJyZW50SW5saW5lVGV4dEJveE1heUhhdmVHbHlwaE92ZXJmbG93ID0gIWlubGlu
ZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCkuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkgfHwg
Zm9udENhc2NhZGUucHJpbWFyeUZvbnQoKS0+b3JpZ2luKCkgPT0gRm9udE9yaWdpbjo6UmVtb3Rl
OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudElubGluZVRleHRCb3ggPSAmaW5saW5l
VGV4dEl0ZW0tPmlubGluZVRleHRCb3goKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gY3VycmVudElubGluZVRleHRCb3hNYXlIYXZlR2x5cGhPdmVy
ZmxvdzsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGlmIChtYXlIYXZlR2x5
cGhPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhP
dmVyZmxvdzsKKyAgICAgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5jb21wdXRlQm91bmRz
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoKmlu
bGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsgaW5saW5lVGV4dEl0ZW0t
Pmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdP
cHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAg
ICAgICAgICAgICAgIGlubGluZVRleHRJdGVtLT5zZXRHbHlwaE92ZXJmbG93KHN0ZDo6Y2xhbXAo
Z2x5cGhPdmVyZmxvdy50b3AsIDBfbHUsIDMxX2x1KSwgc3RkOjpjbGFtcChnbHlwaE92ZXJmbG93
LmJvdHRvbSwgMF9sdSwgN19sdSkpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgICAgICB3aWR0aCA9IFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0ZW0sIGZvbnRD
YXNjYWRlLCBzdGFydCwgc3RhcnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3RoKCksIHsgfSwgVGV4
dFV0aWw6OlVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBz
cGFjaW5nU3RhdGUpOworICAgICAgICAgICAgICAgIGlubGluZVRleHRJdGVtLT5zZXRXaWR0aCh3
aWR0aCArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcpOwogICAgICAgICAgICAgICAgIGhhbmRsZVRl
eHRTcGFjaW5nKHNwYWNpbmdTdGF0ZSwgdHJpbW1hYmxlVGV4dFNwYWNpbmdzLCAqaW5saW5lVGV4
dEl0ZW0sIGlubGluZUl0ZW1JbmRleCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250
aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggNzZmYmExZGQzNTI3Li5kMTI4
NTMzZjk3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCkBAIC02NTQsNyArNjU0LDcg
QEAgYm9vbCBMaW5lOjpyZXN0b3JlVHJpbW1lZFRyYWlsaW5nV2hpdGVzcGFjZShJbmxpbmVMYXlv
dXRVbml0IHRyaW1tZWRUcmFpbGluZ1doaXQKICAgICBhdXRvIHJlc3RvcmUgPSBbJl0oYXV0byYg
dHJhaWxpbmdSdW4pIHsKICAgICAgICAgQVNTRVJUKHRyYWlsaW5nUnVuLmlzVGV4dCgpKTsKICAg
ICAgICAgYXV0byYgbGF5b3V0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4odHJhaWxpbmdS
dW4ubGF5b3V0Qm94KCkpOwotICAgICAgICBpZiAodHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+
c3RhcnQgKyB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50LT5sZW5ndGggPT0gbGF5b3V0Qm94LmNv
bnRlbnQoKS5sZW5ndGgoKSkgeworICAgICAgICBpZiAodHJhaWxpbmdSdW4ubV90ZXh0Q29udGVu
dC5zdGFydCArIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQubGVuZ3RoID09IGxheW91dEJveC5j
b250ZW50KCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIEl0IGxvb2tzIGxpa2Ugd2UgZGlk
bid0IF90cmltXyB0aGlzIHRyYWlsaW5nIHJ1biBidXQgcmVtb3ZlZCB0aGUgbGF0IHJ1biBpbnN0
ZWFkIChoYXBwZW5zIHdpdGggZGVkaWNhdGVkIGxheW91dCBib3gpLgogICAgICAgICAgICAgLy8g
TGV0J3MgcHV0IHRoYXQgY29udGVudCBiYWNrIGFzIHRyYWlsaW5nIHJ1bi4KICAgICAgICAgICAg
IGlmIChhcHBlbmRUcmFpbGluZ0lubGluZUl0ZW1Bc1RyYWlsaW5nUnVuKHJ1bnMsIHRyaW1tZWRU
cmFpbGluZ1doaXRlc3BhY2VXaWR0aCwgaW5saW5lSXRlbVJhbmdlLCBpbmxpbmVJdGVtcykpCkBA
IC02NjQsNyArNjY0LDcgQEAgYm9vbCBMaW5lOjpyZXN0b3JlVHJpbW1lZFRyYWlsaW5nV2hpdGVz
cGFjZShJbmxpbmVMYXlvdXRVbml0IHRyaW1tZWRUcmFpbGluZ1doaXQKICAgICAgICAgfQogICAg
ICAgICB0cmFpbGluZ1J1bi5tX2xvZ2ljYWxXaWR0aCArPSB0cmltbWVkVHJhaWxpbmdXaGl0ZXNw
YWNlV2lkdGg7CiAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBjb2xsYXBzZWQgd2hpdGVzcGFjZS4K
LSAgICAgICAgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IDE7CisgICAgICAg
IHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQubGVuZ3RoICs9IDE7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH07CiAKQEAgLTc0Niw3ICs3NDYsNyBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6
OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKCkKICAgICAgICAgQVNTRVJUKHJ1bi5p
c1dvcmRCcmVha09wcG9ydHVuaXR5KCkgfHwgcnVuLmlzTGluZVNwYW5uaW5nSW5saW5lQm94U3Rh
cnQoKSB8fCBydW4uaXNJbmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGluZUJveEVuZCgpIHx8
IHJ1bi5pc0xpbmVCcmVhaygpIHx8IHJ1bi5pc09wYXF1ZSgpKTsKICAgICAgICAgcnVuLm1vdmVI
b3Jpem9udGFsbHkoLXRyaW1tZWRXaWR0aCk7CiAgICAgfQotICAgIGlmICghdHJpbW1hYmxlUnVu
LnRleHRDb250ZW50KCktPmxlbmd0aCkgeworICAgIGlmICghdHJpbW1hYmxlUnVuLnRleHRDb250
ZW50KCkubGVuZ3RoKSB7CiAgICAgICAgIC8vIFRoaXMgdHJpbW1hYmxlIHJ1biBpcyBmdWxseSBj
b2xsYXBzZWQgbm93IChlLmcuIDxkaXY+PGltZz4gICAgPHNwYW4+PC9zcGFuPjwvZGl2PikuCiAg
ICAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8ga2VlcCBpdCBhcm91bmQgYW55bW9yZS4KICAgICAg
ICAgbV9ydW5zLnJlbW92ZUF0KCptX2ZpcnN0VHJpbW1hYmxlUnVuSW5kZXgpOwpAQCAtODAxLDYy
ICs4MDEsNjcgQEAgc3RkOjpvcHRpb25hbDxMaW5lOjpSdW46OlRyYWlsaW5nV2hpdGVzcGFjZTo6
VHlwZT4gTGluZTo6UnVuOjp0cmFpbGluZ1doaXRlc3BhY2UKIAogTGluZTo6UnVuOjpSdW4oY29u
c3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwg
SW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCiAgICAgOiBtX3R5cGUodG9M
aW5lUnVuVHlwZShpbmxpbmVJdGVtKSkKLSAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVJdGVtLmxh
eW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNhbExlZnQobG9n
aWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgpCiAgICAgLCBtX2Jp
ZGlMZXZlbChpbmxpbmVJdGVtLmJpZGlMZXZlbCgpKQogICAgICwgbV90ZXh0U3BhY2luZ0FkanVz
dG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQorICAgICwgbV9sYXlvdXRCb3goJmlubGluZUl0
ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKHN0eWxlKQogewogfQogCiBMaW5lOjpSdW46
OlJ1bihjb25zdCBJbmxpbmVJdGVtJiB6ZXJvV2lkaHRJbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQpCiAgICAgOiBtX3R5cGUo
dG9MaW5lUnVuVHlwZSh6ZXJvV2lkaHRJbmxpbmVJdGVtKSkKLSAgICAsIG1fbGF5b3V0Qm94KCZ6
ZXJvV2lkaHRJbmxpbmVJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKICAg
ICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2JpZGlMZXZlbCh6ZXJvV2lk
aHRJbmxpbmVJdGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9sYXlvdXRCb3goJnplcm9XaWRodElu
bGluZUl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKHN0eWxlKQogewogfQogCiBMaW5l
OjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLCBJ
bmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCiAgICAgOiBtX3R5cGUo
VHlwZTo6TGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQpCi0gICAgLCBtX2xheW91dEJveCgmbGlu
ZVNwYW5uaW5nSW5saW5lQm94SXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1fc3R5bGUobGluZVNw
YW5uaW5nSW5saW5lQm94SXRlbS5zdHlsZSgpKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2Fs
TGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAgICAsIG1fYmlkaUxl
dmVsKGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0uYmlkaUxldmVsKCkpCiAgICAgLCBtX3RleHRT
cGFjaW5nQWRqdXN0bWVudCh0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCisgICAgLCBtX2xheW91dEJv
eCgmbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5sYXlvdXRCb3goKSkKKyAgICAsIG1fc3R5bGUo
bGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5zdHlsZSgpKQogewogICAgIEFTU0VSVChsaW5lU3Bh
bm5pbmdJbmxpbmVCb3hJdGVtLmlzSW5saW5lQm94U3RhcnQoKSk7CiB9CiAKIExpbmU6OlJ1bjo6
UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJdGVtJiBzb2Z0TGluZUJyZWFrSXRlbSwgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KQogICAg
IDogbV90eXBlKFR5cGU6OlNvZnRMaW5lQnJlYWspCi0gICAgLCBtX2xheW91dEJveCgmc29mdExp
bmVCcmVha0l0ZW0ubGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwgbV9s
b2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fYmlkaUxldmVsKHNvZnRMaW5lQnJlYWtJ
dGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9sYXlvdXRCb3goJnNvZnRMaW5lQnJlYWtJdGVtLmxh
eW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fdGV4dENvbnRlbnQoeyBz
b2Z0TGluZUJyZWFrSXRlbS5wb3NpdGlvbigpLCAxIH0pCiB7CiB9CiAKIExpbmU6OlJ1bjo6UnVu
KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVzdG1lbnQsIHN0ZDo6
b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBzaGFwaW5nQm91bmRhcnkpCiAgICAgOiBt
X3R5cGUoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBUeXBlOjpXb3JkU2VwYXJh
dG9yIDogaW5saW5lVGV4dEl0ZW0uaXNRdWlya05vbkJyZWFraW5nU3BhY2UoKSA/IFR5cGU6Ok5v
bkJyZWFraW5nU3BhY2UgOiBUeXBlOjpUZXh0KQotICAgICwgbV9sYXlvdXRCb3goJmlubGluZVRl
eHRJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKKyAgICAsIG1fc2hhcGlu
Z0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFyeS52YWx1ZV9vcihTaGFwaW5nQm91bmRhcnk6Ok5vdEFw
cGxpY2FibGUpKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9n
aWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVt
LmJpZGlMZXZlbCgpKQotICAgICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGluZ0JvdW5kYXJ5KQog
ICAgICwgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQorICAg
ICwgbV9sYXlvdXRCb3goJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHls
ZShzdHlsZSkKIHsKICAgICBhdXRvIGxlbmd0aCA9IGlubGluZVRleHRJdGVtLmxlbmd0aCgpOwog
ICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGlubGluZVRl
eHRJdGVtKTsKKwogICAgIGlmICh3aGl0ZXNwYWNlVHlwZSkgewogICAgICAgICBpZiAoKndoaXRl
c3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkKQogICAgICAg
ICAgICAgbGVuZ3RoID0gIDE7Ci0gICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyAqd2hp
dGVzcGFjZVR5cGUsIGxvZ2ljYWxXaWR0aCwgbGVuZ3RoIH07CisgICAgICAgIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIGxlbmd0aCwgbG9naWNhbFdpZHRoIH07Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBnbHlwaE92ZXJmbG93ID0gaW5saW5lVGV4dEl0ZW0u
Z2x5cGhPdmVyZmxvdygpOworICAgICAgICBpZiAoZ2x5cGhPdmVyZmxvdy5maXJzdCB8fCBnbHlw
aE92ZXJmbG93LnNlY29uZCkKKyAgICAgICAgICAgIG1fZ2x5cGhPdmVyZmxvdyA9IHsgZ2x5cGhP
dmVyZmxvdy5maXJzdCwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQgfTsKICAgICB9CiAgICAgbV90ZXh0
Q29udGVudCA9IHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbGVuZ3RoIH07CiB9CkBAIC04Njcs
NDIgKzg3Miw0NiBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVt
JiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogICAgIEFTU0VSVChpc1RleHQo
KSAmJiBpbmxpbmVUZXh0SXRlbS5pc1RleHQoKSk7CiAgICAgQVNTRVJUKG1fbGF5b3V0Qm94ID09
ICZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CiAgICAgQVNTRVJUKG1fYmlkaUxldmVsID09
IGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKTsKLSAgICBBU1NFUlQoIW1fc2hhcGluZ0JvdW5k
YXJ5IHx8ICptX3NoYXBpbmdCb3VuZGFyeSAhPSBTaGFwaW5nQm91bmRhcnk6OkVuZCk7CisgICAg
QVNTRVJUKG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6Tm90QXBwbGljYWJs
ZSB8fCBtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6OlN0YXJ0IHx8IG1fc2hh
cGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlKTsKIAogICAgIG1fbG9naWNh
bFdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKICAgICBhdXRvIHdoaXRlc3BhY2VUeXBlID0gdHJhaWxp
bmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSk7CiAKICAgICBpZiAoIXdoaXRlc3BhY2VU
eXBlKSB7CiAgICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyB9OwotICAgICAgICBtX3Rl
eHRDb250ZW50LT5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CisgICAgICAgIG1f
dGV4dENvbnRlbnQubGVuZ3RoICs9IGlubGluZVRleHRJdGVtLmxlbmd0aCgpOwogICAgICAgICBt
X2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0ID0gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKTsK
KworICAgICAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBpbmxpbmVUZXh0SXRlbS5nbHlwaE92ZXJm
bG93KCk7CisgICAgICAgIGlmIChnbHlwaE92ZXJmbG93LmZpcnN0IHx8IGdseXBoT3ZlcmZsb3cu
c2Vjb25kKQorICAgICAgICAgICAgbV9nbHlwaE92ZXJmbG93ID0geyBzdGQ6Om1heChtX2dseXBo
T3ZlcmZsb3cudG9wLCBnbHlwaE92ZXJmbG93LmZpcnN0KSwgc3RkOjptYXgobV9nbHlwaE92ZXJm
bG93LmJvdHRvbSwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpIH07CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhbV90cmFpbGluZ1doaXRlc3BhY2UgPyBs
b2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGggKyBsb2dpY2FsV2lkdGg7
CisgICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgPyBs
b2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aCArIGxvZ2ljYWxXaWR0aDsK
ICAgICBhdXRvIHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCA9ICp3aGl0ZXNwYWNlVHlwZSA9PSBU
cmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCA/IDEgOiBpbmxpbmVUZXh0SXRlbS5s
ZW5ndGgoKTsgCi0gICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7ICp3aGl0ZXNwYWNlVHlwZSwg
d2hpdGVzcGFjZVdpZHRoLCB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGggfTsKLSAgICBtX3RleHRD
b250ZW50LT5sZW5ndGggKz0gdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoOworICAgIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0
aCwgd2hpdGVzcGFjZVdpZHRoIH07CisgICAgbV90ZXh0Q29udGVudC5sZW5ndGggKz0gdHJhaWxp
bmdXaGl0ZXNwYWNlTGVuZ3RoOwogfQogCiBzdGQ6Om9wdGlvbmFsPExpbmU6OlJ1bj4gTGluZTo6
UnVuOjpkZXRhY2hUcmFpbGluZ1doaXRlc3BhY2UoKQogewotICAgIGlmICghbV90cmFpbGluZ1do
aXRlc3BhY2UgfHwgaXNXaGl0ZXNwYWNlT25seSgpKQorICAgIGlmICghaGFzVHJhaWxpbmdXaGl0
ZXNwYWNlKCkgfHwgaXNXaGl0ZXNwYWNlT25seSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgQVNTRVJUKG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT5sZW5ndGggPCBtX3RleHRDb250ZW50LT5s
ZW5ndGgpOworICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5ndGggPCBtX3RleHRD
b250ZW50Lmxlbmd0aCk7CiAgICAgYXV0byB0cmFpbGluZ1doaXRlc3BhY2VSdW4gPSAqdGhpczsK
IAotICAgIGF1dG8gbGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3RoID0gbV90ZXh0Q29u
dGVudC0+bGVuZ3RoIC0gbV90cmFpbGluZ1doaXRlc3BhY2UtPmxlbmd0aDsKLSAgICB0cmFpbGlu
Z1doaXRlc3BhY2VSdW4ubV90ZXh0Q29udGVudCA9IHsgbV90ZXh0Q29udGVudC0+c3RhcnQgKyBs
ZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5ndGgsIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT5s
ZW5ndGgsIGZhbHNlIH07CisgICAgYXV0byBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5n
dGggPSBtX3RleHRDb250ZW50Lmxlbmd0aCAtIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmxlbmd0aDsK
KyAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV90ZXh0Q29udGVudCA9IHsgbV90ZXh0Q29udGVu
dC5zdGFydCArIGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aCwgbV90cmFpbGluZ1do
aXRlc3BhY2UubGVuZ3RoLCBmYWxzZSB9OwogCi0gICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1f
bG9naWNhbFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoOwotICAgIHRyYWlsaW5n
V2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxMZWZ0ID0gbG9naWNhbFJpZ2h0KCkgLSBtX3RyYWlsaW5n
V2hpdGVzcGFjZS0+d2lkdGg7CisgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fbG9naWNhbFdp
ZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2Uud2lkdGg7CisgICAgdHJhaWxpbmdXaGl0ZXNwYWNl
UnVuLm1fbG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHQoKSAtIG1fdHJhaWxpbmdXaGl0ZXNwYWNl
LndpZHRoOwogCiAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fdHJhaWxpbmdXaGl0ZXNwYWNl
ID0geyB9OwogICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xhc3ROb25XaGl0ZXNwYWNlQ29u
dGVudFN0YXJ0ID0geyB9OwogCiAgICAgbV9sb2dpY2FsV2lkdGggLT0gdHJhaWxpbmdXaGl0ZXNw
YWNlUnVuLmxvZ2ljYWxXaWR0aCgpOwotICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCA9IGxlYWRp
bmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aDsKKyAgICBtX3RleHRDb250ZW50Lmxlbmd0aCA9
IGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aDsKICAgICBtX3RyYWlsaW5nV2hpdGVz
cGFjZSA9IHsgfTsKIAogICAgIHJldHVybiB0cmFpbGluZ1doaXRlc3BhY2VSdW47CkBAIC05MzEs
MjUgKzk0MCwyNSBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdM
ZXR0ZXJTcGFjaW5nKCkKIAogSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpSdW46OnJlbW92ZVRyYWls
aW5nV2hpdGVzcGFjZSgpCiB7Ci0gICAgQVNTRVJUKG1fdHJhaWxpbmdXaGl0ZXNwYWNlKTsKKyAg
ICBBU1NFUlQoaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwogICAgIC8vIEFjY29yZGluZyB0byBo
dHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtMy8jd2hpdGUtc3BhY2UtcHJvcGVydHkgbWF0
cml4CiAgICAgLy8gVHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMgYWx3YXlzIGNvbGxhcHNpYmxlIHNv
IHRoZSBsZW5ndGggb2YgdGhlIHRyYWlsaW5nIHRyaW1tYWJsZSB3aGl0ZXNwYWNlIGlzIGFsd2F5
cyAxIChvciBub24tZXhpc3RlbnQpLgotICAgIEFTU0VSVChtX3RleHRDb250ZW50ICYmIG1fdGV4
dENvbnRlbnQtPmxlbmd0aCk7CisgICAgQVNTRVJUKGlzVGV4dCgpICYmIG1fdGV4dENvbnRlbnQu
bGVuZ3RoKTsKICAgICBjb25zdGV4cHIgc2l6ZV90IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExl
bmd0aCA9IDE7CiAKLSAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNl
LT53aWR0aDsKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndp
ZHRoOwogICAgIGlmIChtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0ICYmIGlubGluZURp
cmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTCkgewogICAgICAgICAvLyBXaGlsZSBMVFIg
Y29udGVudCBjb3VsZCBhbHNvIHN1ZmZlciBmcm9tIHNsaWdodGx5IGluY29ycmVjdCBjb250ZW50
IHdpZHRoIGFmdGVyIHRyaW1taW5nIHRyYWlsaW5nIHdoaXRlc3BhY2UgKHNlZSBUZXh0VXRpbDo6
d2lkdGgpCiAgICAgICAgIC8vIGl0IGhhcmRseSBwcm9kdWNlcyB2aXN1YWxseSBvYnNlcnZhYmxl
IHJlc3VsdC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IHN0aWxsIGluY29ycmVjdGx5IGxl
YXZlIHNvbWUgY29udGVudCBvbiB0aGUgbGluZSAodnMuIHJlLW1lYXN1cmluZyBhbHNvIGF0IDo6
ZXhwYW5kKS4KICAgICAgICAgYXV0byYgaW5saW5lVGV4dEJveCA9IGRvd25jYXN0PElubGluZVRl
eHRCb3g+KCptX2xheW91dEJveCk7CiAgICAgICAgIGF1dG8gc3RhcnRQb3NpdGlvbiA9ICptX2xh
c3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0OwotICAgICAgICBhdXRvIGVuZFBvc2l0aW9uID0g
bV90ZXh0Q29udGVudC0+c3RhcnQgKyBtX3RleHRDb250ZW50LT5sZW5ndGg7CisgICAgICAgIGF1
dG8gZW5kUG9zaXRpb24gPSBtX3RleHRDb250ZW50LnN0YXJ0ICsgbV90ZXh0Q29udGVudC5sZW5n
dGg7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN0YXJ0UG9zaXRpb24gPCBlbmRQb3NpdGlvbiAt
IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aCk7CiAgICAgICAgIGlmIChpbmxpbmVUZXh0
Qm94LmNvbnRlbnQoKVtlbmRQb3NpdGlvbiAtIDFdID09IHNwYWNlKQogICAgICAgICAgICAgdHJp
bW1lZFdpZHRoID0gVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGlubGluZVRleHRC
b3gsIG1fc3R5bGUuZm9udENhc2NhZGUoKSwgc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOwog
ICAgIH0KLSAgICBtX3RleHRDb250ZW50LT5sZW5ndGggLT0gdHJhaWxpbmdUcmltbWFibGVDb250
ZW50TGVuZ3RoOworICAgIG1fdGV4dENvbnRlbnQubGVuZ3RoIC09IHRyYWlsaW5nVHJpbW1hYmxl
Q29udGVudExlbmd0aDsKICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICBzaHJp
bmtIb3Jpem9udGFsbHkodHJpbW1lZFdpZHRoKTsKICAgICByZXR1cm4gdHJpbW1lZFdpZHRoOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IDFlYjEzMTEyZDA3Yi4uYmZiZjZiNzFlNzhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgaW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbSwgMT4mIGxpbmVTcGFubmlu
Z0lubGluZUJveGVzLCBib29sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKTsKIAotICAgIGVudW0gY2xh
c3MgU2hhcGluZ0JvdW5kYXJ5IDogdWludDhfdCB7IFN0YXJ0LCBJbnNpZGUsIEVuZCB9OworICAg
IGVudW0gY2xhc3MgU2hhcGluZ0JvdW5kYXJ5IDogdWludDhfdCB7IE5vdEFwcGxpY2FibGUsIFN0
YXJ0LCBJbnNpZGUsIEVuZCB9OwogICAgIHZvaWQgYXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0
SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgs
IHN0ZDo6b3B0aW9uYWw8U2hhcGluZ0JvdW5kYXJ5Pik7CiAgICAgdm9pZCBhcHBlbmRUZXh0RmFz
dChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgpOyAvLyBSZXNlcnZlZCBmb3IgVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlcgogICAgIHZvaWQgYXBwZW5kQXRvbWljSW5saW5lQm94KGNvbnN0IElubGluZUl0ZW0mLCBj
b25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbWFyZ2luQm94TG9naWNhbFdpZHRo
KTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgaXNPcGFxdWUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6T3BhcXVlOyB9CiAgICAgICAgIGJvb2wgaXNC
bG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpCbG9jazsgfQogCi0gICAgICAg
IGJvb2wgaXNDb250ZW50ZnVsKCkgY29uc3QgeyByZXR1cm4gKGlzVGV4dCgpICYmIHRleHRDb250
ZW50KCktPmxlbmd0aCkgfHwgaXNBdG9taWNJbmxpbmVCb3goKSB8fCBpc0xpbmVCcmVhaygpIHx8
IGlzTGlzdE1hcmtlcigpIHx8IGlzQmxvY2soKTsgfQorICAgICAgICBib29sIGlzQ29udGVudGZ1
bCgpIGNvbnN0IHsgcmV0dXJuIChpc1RleHQoKSAmJiB0ZXh0Q29udGVudCgpLmxlbmd0aCkgfHwg
aXNBdG9taWNJbmxpbmVCb3goKSB8fCBpc0xpbmVCcmVhaygpIHx8IGlzTGlzdE1hcmtlcigpIHx8
IGlzQmxvY2soKTsgfQogICAgICAgICBib29sIGlzR2VuZXJhdGVkKCkgY29uc3QgeyByZXR1cm4g
aXNMaXN0TWFya2VyKCk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNDb250ZW50ZnVsT3JIYXNE
ZWNvcmF0aW9uKGNvbnN0IFJ1biYsIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7CiAK
QEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoIHsg
MCB9OwogICAgICAgICAgICAgYm9vbCBuZWVkc0h5cGhlbiB7IGZhbHNlIH07CiAgICAgICAgIH07
Ci0gICAgICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dD4mIHRleHRDb250ZW50KCkgY29uc3Qg
eyByZXR1cm4gbV90ZXh0Q29udGVudDsgfQorICAgICAgICBjb25zdCBUZXh0JiB0ZXh0Q29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRlbnQ7IH0KIAogICAgICAgICBJbmxpbmVMYXlv
dXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFdpZHRoOyB9CiAg
ICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX2xv
Z2ljYWxMZWZ0OyB9CkBAIC0xNDIsOSArMTQyLDE3IEBAIHB1YmxpYzoKIAogICAgICAgICBjb25z
dCBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiYgZXhwYW5zaW9uKCkgY29uc3QgeyByZXR1
cm4gbV9leHBhbnNpb247IH0KIAotICAgICAgICBib29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmhhc192YWx1ZSgpOyB9Ci0gICAg
ICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSA/IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCA6
IDAuZjsgfQotICAgICAgICBib29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25zdCB7IHJldHVybiBo
YXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+bGVuZ3RoID09
IG1fdGV4dENvbnRlbnQtPmxlbmd0aDsgfQorICAgICAgICBib29sIGhhc1RyYWlsaW5nV2hpdGVz
cGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5cGUgIT0gVHJhaWxp
bmdXaGl0ZXNwYWNlOjpUeXBlOjpOb3RBcHBsaWNhYmxlOyB9CisgICAgICAgIElubGluZUxheW91
dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5n
V2hpdGVzcGFjZS53aWR0aDsgfQorICAgICAgICBib29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25z
dCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFj
ZS5sZW5ndGggPT0gbV90ZXh0Q29udGVudC5sZW5ndGg7IH0KKworICAgICAgICBzdHJ1Y3QgR2x5
cGhPdmVyZmxvdyB7CisgICAgICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAh
dG9wICYmICFib3R0b207IH0KKworICAgICAgICAgICAgdWludDhfdCB0b3AgOiA1IHsgMCB9Owor
ICAgICAgICAgICAgdWludDhfdCBib3R0b206IDMgeyAwIH07CisgICAgICAgIH07CisgICAgICAg
IEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fZ2x5cGhPdmVy
ZmxvdzsgfQogCiAgICAgICAgIGlubGluZSBUZXh0RGlyZWN0aW9uIGlubGluZURpcmVjdGlvbigp
IGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxldHRlclNwYWNpbmcoKSBjb25zdDsK
QEAgLTE1MywxMCArMTYxLDEwIEBAIHB1YmxpYzoKIAogICAgICAgICBVQmlEaUxldmVsIGJpZGlM
ZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlkaUxldmVsOyB9CiAKLSAgICAgICAgYm9vbCBpc1No
YXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gaXNTaGFwaW5nQm91bmRhcnkoKSAm
JiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpTdGFydDsgfQot
ICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1cm4gaXNTaGFw
aW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5k
YXJ5OjpFbmQ7IH0KLSAgICAgICAgYm9vbCBpc0luc2lkZVNoYXBpbmdCb3VuZGFyeSgpIGNvbnN0
IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5kYXJ5ID09IExp
bmU6OlNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9Ci0gICAgICAgIGJvb2wgaXNTaGFwaW5nQm91
bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeS5oYXNfdmFsdWUoKTsgfQor
ICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3No
YXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OlN0YXJ0OyB9CisgICAgICAg
IGJvb2wgaXNTaGFwaW5nQm91bmRhcnlFbmQoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3Vu
ZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OkVuZDsgfQorICAgICAgICBib29sIGlzSW5z
aWRlU2hhcGluZ0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5nQm91bmRhcnkgPT0g
TGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpJbnNpZGU7IH0KKyAgICAgICAgYm9vbCBpc1NoYXBpbmdC
b3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ICE9IExpbmU6OlNoYXBp
bmdCb3VuZGFyeTo6Tm90QXBwbGljYWJsZTsgfQogCiAgICAgICAgIC8vIEZJWE1FOiBNYXliZSBh
ZGQgY3JlYXRlIGZ1bmN0aW9ucyBpbnRlYWQ/CiAgICAgICAgIFJ1bihjb25zdCBJbmxpbmVJdGVt
JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KTsKQEAg
LTE4MCwxNyArMTg4LDE4IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBzZXRCaWRpTGV2ZWwoVUJp
RGlMZXZlbCBiaWRpTGV2ZWwpIHsgbV9iaWRpTGV2ZWwgPSBiaWRpTGV2ZWw7IH0KIAogICAgICAg
ICBzdHJ1Y3QgVHJhaWxpbmdXaGl0ZXNwYWNlIHsKLSAgICAgICAgICAgIGVudW0gY2xhc3MgVHlw
ZSB7CisgICAgICAgICAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgICAg
ICAgICBOb3RBcHBsaWNhYmxlLAogICAgICAgICAgICAgICAgIE5vdENvbGxhcHNpYmxlLAogICAg
ICAgICAgICAgICAgIENvbGxhcHNpYmxlLAogICAgICAgICAgICAgICAgIENvbGxhcHNlZAogICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgIFR5cGUgdHlwZSB7IFR5cGU6Ok5vdENvbGxhcHNpYmxl
IH07Ci0gICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoIHsgMCB9OwotICAgICAgICAg
ICAgc2l6ZV90IGxlbmd0aCB7IDAgfTsKKyAgICAgICAgICAgIFR5cGUgdHlwZSB7IFR5cGU6Ok5v
dEFwcGxpY2FibGUgfTsKKyAgICAgICAgICAgIHNpemVfdCBsZW5ndGggOiAyNCB7IDAgfTsKKyAg
ICAgICAgICAgIElubGluZUxheW91dFVuaXQgd2lkdGggeyAwLmYgfTsKICAgICAgICAgfTsKLSAg
ICAgICAgYm9vbCBoYXNDb2xsYXBzaWJsZVRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlICYmIChtX3RyYWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9
PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNpYmxlIHx8IGhhc0NvbGxhcHNlZFRy
YWlsaW5nV2hpdGVzcGFjZSgpKTsgfQotICAgICAgICBib29sIGhhc0NvbGxhcHNlZFRyYWlsaW5n
V2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlICYmIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlLT50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFw
c2VkOyB9CisgICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2UoKSBj
b25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiAobV90cmFpbGluZ1doaXRl
c3BhY2UudHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNpYmxlIHx8IGhh
c0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpKTsgfQorICAgICAgICBib29sIGhhc0NvbGxh
cHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIGhhc1RyYWlsaW5nV2hpdGVz
cGFjZSgpICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNl
OjpUeXBlOjpDb2xsYXBzZWQ7IH0KICAgICAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VHJhaWxp
bmdXaGl0ZXNwYWNlOjpUeXBlPiB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGNvbnN0IElubGluZVRl
eHRJdGVtJik7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdXaGl0ZXNw
YWNlKCk7CiAKQEAgLTIwMCwxOCArMjA5LDE5IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCB0cmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdDsKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCByZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKIAorICAgICAgICBUcmFpbGlu
Z1doaXRlc3BhY2UgbV90cmFpbGluZ1doaXRlc3BhY2UgeyB9OwogICAgICAgICBUeXBlIG1fdHlw
ZSB7IFR5cGU6OlRleHQgfTsKLSAgICAgICAgY29uc3QgQm94KiBtX2xheW91dEJveCB7IG51bGxw
dHIgfTsKLSAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIG1fc3R5bGU7CisgICAgICAgIExpbmU6
OlNoYXBpbmdCb3VuZGFyeSBtX3NoYXBpbmdCb3VuZGFyeSB7IExpbmU6OlNoYXBpbmdCb3VuZGFy
eTo6Tm90QXBwbGljYWJsZSB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbExl
ZnQgeyAwIH07CisgICAgICAgIE1hcmthYmxlPHNpemVfdD4gbV9sYXN0Tm9uV2hpdGVzcGFjZUNv
bnRlbnRTdGFydCB7IH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2FsV2lkdGgg
eyAwIH07Ci0gICAgICAgIElubGluZURpc3BsYXk6OkJveDo6RXhwYW5zaW9uIG1fZXhwYW5zaW9u
OwogICAgICAgICBVQmlEaUxldmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVMVF9MVFIgfTsK
LSAgICAgICAgc3RkOjpvcHRpb25hbDxUcmFpbGluZ1doaXRlc3BhY2U+IG1fdHJhaWxpbmdXaGl0
ZXNwYWNlIHsgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fbGFzdE5vbldoaXRl
c3BhY2VDb250ZW50U3RhcnQgeyB9OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPFRleHQ+IG1fdGV4
dENvbnRlbnQ7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBt
X3NoYXBpbmdCb3VuZGFyeTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX3RleHRTcGFjaW5n
QWRqdXN0bWVudCB7IDAgfTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBtX2dseXBoT3ZlcmZsb3c7
CisgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxscHRyIH07CisgICAgICAgIGNv
bnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4
cGFuc2lvbiBtX2V4cGFuc2lvbjsKKyAgICAgICAgVGV4dCBtX3RleHRDb250ZW50OwogICAgIH07
CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEwPjsKICAgICBjb25zdCBSdW5MaXN0
JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9CkBAIC0zODIsOCArMzkyLDggQEAgaW5s
aW5lIHNpemVfdCBMaW5lOjpIYW5naW5nQ29udGVudDo6bGVuZ3RoKCkgY29uc3QKIAogaW5saW5l
IHZvaWQgTGluZTo6UnVuOjpzZXROZWVkc0h5cGhlbihJbmxpbmVMYXlvdXRVbml0IGh5cGhlbkxv
Z2ljYWxXaWR0aCkKIHsKLSAgICBBU1NFUlQobV90ZXh0Q29udGVudCk7Ci0gICAgbV90ZXh0Q29u
dGVudC0+bmVlZHNIeXBoZW4gPSB0cnVlOworICAgIEFTU0VSVChpc1RleHQoKSk7CisgICAgbV90
ZXh0Q29udGVudC5uZWVkc0h5cGhlbiA9IHRydWU7CiAgICAgbV9sb2dpY2FsV2lkdGggKz0gaHlw
aGVuTG9naWNhbFdpZHRoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94
QnVpbGRlci5jcHAKaW5kZXggODY1NmExMGM0ZGY4Li5iZTg4N2RiNmIxZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKQEAgLTEwMCw3ICsxMDAsNyBA
QCBUZXh0VXRpbDo6RmFsbGJhY2tGb250TGlzdCBMaW5lQm94QnVpbGRlcjo6Y29sbGVjdEZhbGxi
YWNrRm9udHMoY29uc3QgSW5saW5lTGV2ZQogICAgICAgICAvLyBTaW1wbGlmaWVkIHRleHQgbWVh
c3VyaW5nIHdvcmtzIHdpdGggcHJpbWFyeSBmb250IG9ubHkuCiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQotICAgIGF1dG8gdGV4dCA9ICpydW4udGV4dENvbnRlbnQoKTsKKyAgICBhdXRvJiB0
ZXh0ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgYXV0byBmYWxsYmFja0ZvbnRzID0gVGV4dFV0
aWw6OmZhbGxiYWNrRm9udHNGb3JUZXh0KFN0cmluZ1ZpZXcoaW5saW5lVGV4dEJveC5jb250ZW50
KCkpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxlLCB0ZXh0Lm5lZWRz
SHlwaGVuID8gVGV4dFV0aWw6OkluY2x1ZGVIeXBoZW46OlllcyA6IFRleHRVdGlsOjpJbmNsdWRl
SHlwaGVuOjpObyk7CiAgICAgaWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eUlnbm9yaW5nTnVsbFJl
ZmVyZW5jZXMoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTYxMSw5ICs2MTEsOSBAQCB2b2lk
IExpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRzRm9yTGluZUJveENvbnRhaW5J
ZkFwcGxpY2FibGUoTGluZUJveAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
ICAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLmxheW91dEJv
eCgpKTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBydW4udGV4dENvbnRlbnQoKTsK
KyAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAg
ICAgICAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkgPyB0ZXh0Qm94LmZp
cnN0TGluZVN0eWxlKCkgOiB0ZXh0Qm94LnN0eWxlKCk7Ci0gICAgICAgICAgICBhdXRvIGVuY2xv
c2luZ0FzY2VudERlc2NlbnRGb3JSdW4gPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNG
b3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0Q29udGVu
dC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5zaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVH
bHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlw
aE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50
RGVzY2VudEZvclJ1biA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3Ry
aW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250ZW50LnN0YXJ0LCB0
ZXh0Q29udGVudC5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5zaG91bGRVc2VTaW1wbGVHbHlwaE92
ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93
Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29k
ZVBhdGg6Ok5vKTsKIAogICAgICAgICAgICAgYXV0byYgcGFyZW50SW5saW5lQm94ID0gbGluZUJv
eC5wYXJlbnRJbmxpbmVCb3gocnVuKTsKICAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50
RGVzY2VudEZvcklubGluZUJveCA9IGlubGluZUJveEJvdW5kc01hcC5nZXQoJnBhcmVudElubGlu
ZUJveCk7CkBAIC02MzcsOSArNjM3LDkgQEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6YWRqdXN0SW5s
aW5lQm94SGVpZ2h0c0ZvckxpbmVCb3hDb250YWluSWZBcHBsaWNhYmxlKExpbmVCb3gKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgYXV0byYgdGV4dEJveCA9IGRvd25j
YXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSk7Ci0gICAgICAgICAgICBhdXRvIHRl
eHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CisgICAgICAgICAgICBhdXRvJiB0ZXh0Q29u
dGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgYXV0byYgc3R5bGUgPSBpc0Zp
cnN0Rm9ybWF0dGVkTGluZSgpID8gdGV4dEJveC5maXJzdExpbmVTdHlsZSgpIDogdGV4dEJveC5z
dHlsZSgpOwotICAgICAgICAgICAgYXV0byBhc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVu
Y2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KHRleHRCb3guY29udGVudCgpKS5z
dWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29udGVudC0+bGVuZ3RoKSwgc3R5bGUs
IHRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRp
bDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6
U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CisgICAgICAgICAgICBh
dXRvIGFzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3VuZHNGb3JU
ZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0Q29udGVudC5z
dGFydCwgdGV4dENvbnRlbnQubGVuZ3RoKSwgc3R5bGUsIHRleHRCb3guc2hvdWxkVXNlU2ltcGxl
R2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhP
dmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVy
Zmxvd0NvZGVQYXRoOjpObyk7CiAKICAgICAgICAgICAgIGluaXRpYWxMZXR0ZXJEZXNjZW50ID0g
YXNjZW50QW5kRGVzY2VudC5kZXNjZW50OwogICAgICAgICAgICAgaWYgKGxpbmVCb3guYmFzZWxp
bmVUeXBlKCkgIT0gRm9udEJhc2VsaW5lOjpBbHBoYWJldGljKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDUwNTYwYTU4NmJkYy4uN2NmZjhkM2JmNGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC04NSw3ICs4NSw3
IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nQnVpbGRlciB0b1N0cmluZyhjb25zdCBMaW5lOjpSdW5M
aXN0JiBydW5zKQogICAgICAgICBpZiAoIXJ1bi5pc1RleHQoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwotICAg
ICAgICBsaW5lQ29udGVudEJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcoZG93bmNhc3Q8SW5saW5l
VGV4dEJveD4ocnVuLmxheW91dEJveCgpKS5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0Q29udGVu
dC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpKTsKKyAgICAgICAgbGluZUNvbnRlbnRCdWls
ZGVyLmFwcGVuZChTdHJpbmdWaWV3KGRvd25jYXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRC
b3goKSkuY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQuc3RhcnQsIHRleHRDb250ZW50
Lmxlbmd0aCkpOwogICAgIH0KICAgICByZXR1cm4gbGluZUNvbnRlbnRCdWlsZGVyOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKaW5kZXggZDAxN2M1ODliNWJhLi40ZDE2NDhiMDA4
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZVRleHRJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaApAQCAtNTIsNiArNTIsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0Z1bGx5VHJpbW1hYmxlKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNU
cmFpbGluZ1NvZnRIeXBoZW4oKSBjb25zdCB7IHJldHVybiBtX2hhc1RyYWlsaW5nU29mdEh5cGhl
bjsgfQogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgoKSBjb25zdCB7
IHJldHVybiBtX2hhc1dpZHRoID8gc3RkOjptYWtlX29wdGlvbmFsKG1fd2lkdGgpIDogc3RkOjpv
cHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7IH07IH0KKyAgICBzdGQ6OnBhaXI8dWludDhfdCwg
dWludDhfdD4gZ2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIHsgbV9nbHlwaFRvcE92ZXJm
bG93LCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgfTsgfQogCiAgICAgY29uc3QgSW5saW5lVGV4dEJv
eCYgaW5saW5lVGV4dEJveCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZVRleHRCb3g+
KGxheW91dEJveCgpKTsgfQogCkBAIC02OCw2ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcg
SW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCiAgICAgSW5saW5lVGV4dEl0ZW0gc3BsaXQoc2l6
ZV90IGxlZnRTaWRlTGVuZ3RoKTsKKyAgICB2b2lkIHNldEdseXBoT3ZlcmZsb3coTGF5b3V0VW5p
dCB0b3AsIExheW91dFVuaXQgYm90dG9tKTsKIAogICAgIElubGluZVRleHRJdGVtKGNvbnN0IElu
bGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBVQmlEaUxldmVs
LCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwgYm9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6
b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSk7CiAgICAgZXhw
bGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYpOwpAQCAtOTAsNiArOTIs
MTIgQEAgaW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0
ZW0oY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW4KICAgICByZXR1cm4gSW5saW5lVGV4dEl0ZW0g
eyBpbmxpbmVUZXh0Qm94IH07CiB9CiAKK2lubGluZSB2b2lkIElubGluZVRleHRJdGVtOjpzZXRH
bHlwaE92ZXJmbG93KExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IGJvdHRvbSkKK3sKKyAgICBt
X2dseXBoVG9wT3ZlcmZsb3cgPSB0b3AuY2VpbCgpOworICAgIG1fZ2x5cGhCb3R0b21PdmVyZmxv
dyA9IGJvdHRvbS5jZWlsKCk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4
IDExNDg2YjBmYTE3Yy4uYjRiYmE2ZDFhMDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250
ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0x
NTcsNyArMTU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXB1dGVJbmtPdmVyZmxvd0Zvcklu
bGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYgaW5saW5lQm8KIAogdm9pZCBJbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYg
bGluZVJ1biwgY29uc3QgSW5saW5lUmVjdCYgdGV4dFJ1blJlY3QsIElubGluZURpc3BsYXk6OkJv
eGVzJiBib3hlcykKIHsKLSAgICBBU1NFUlQobGluZVJ1bi50ZXh0Q29udGVudCgpICYmIGlzPElu
bGluZVRleHRCb3g+KGxpbmVSdW4ubGF5b3V0Qm94KCkpKTsKKyAgICBBU1NFUlQobGluZVJ1bi5p
c1RleHQoKSAmJiBpczxJbmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7CiAKICAg
ICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGluZVJ1bi5s
YXlvdXRCb3goKSk7CiAgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8g
aW5saW5lVGV4dEJveC5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lVGV4dEJveC5zdHlsZSgpOwpA
QCAtMTk4LDE2ICsxOTgsMTYgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFw
cGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgYWRk
VGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1dG8gYWRkR2x5cGhPdmVyZmxvdyA9IFsmXSB7Ci0g
ICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSkg
ewotICAgICAgICAgICAgICAgIC8vIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCBtYXBzIHRvIENv
ZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50IHdpdGggcG90ZW50aWFsIGdseXBoIG92ZXJmbG93
IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBsZVdpdGhHbHlwaE92ZXJmbG93KS4KLSAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBsaW5lUnVu
LmdseXBoT3ZlcmZsb3coKTsKKyAgICAgICAgICAgIGlmICghZ2x5cGhPdmVyZmxvdy5pc0VtcHR5
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ2x5cGhPdmVyZmxvdy50b3AgPT0gMzFfbHUgJiYg
Z2x5cGhPdmVyZmxvdy5ib3R0b20gPT0gN19sdSkgeworICAgICAgICAgICAgICAgICAgICBhdXRv
IGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5cGhCb3Vu
ZHNGb3JUZXh0KFN0cmluZ1ZpZXcoY29udGVudCkuc3Vic3RyaW5nKHRleHQuc3RhcnQsIHRleHQu
bGVuZ3RoKSwgc3R5bGUsIGlubGluZVRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxv
d0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQ
YXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
OjpObyk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0
cmljc09mUHJpbWFyeUZvbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy50
b3AgPSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50KC1lbmNs
b3NpbmdBc2NlbnRBbmREZXNjZW50LmFzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxpbmVGb3Jt
YXR0aW5nVXRpbHM6OmFzY2VudChmb250TWV0cmljcywgRm9udEJhc2VsaW5lOjpBbHBoYWJldGlj
LCBpbmxpbmVUZXh0Qm94KSk7CisgICAgICAgICAgICAgICAgICAgIGdseXBoT3ZlcmZsb3cuYm90
dG9tID0gc3RkOjptYXgoMC5mLCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0ludChlbmNs
b3NpbmdBc2NlbnRBbmREZXNjZW50LmRlc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5saW5lRm9y
bWF0dGluZ1V0aWxzOjpkZXNjZW50KGZvbnRNZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0
aWMsIGlubGluZVRleHRCb3gpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aW5rT3ZlcmZsb3cuaW5mbGF0ZShnbHlwaE92ZXJmbG93LnRvcCwgeyB9LCBnbHlwaE92ZXJmbG93
LmJvdHRvbSwgeyB9KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5n
QXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQo
U3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCks
IHN0eWxlLCBpbmxpbmVUZXh0Qm94LnNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0
aCgpID8gVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6WWVz
IDogVGV4dFV0aWw6OlNob3VsZFVzZVNpbXBsZUdseXBoT3ZlcmZsb3dDb2RlUGF0aDo6Tm8pOwot
ICAgICAgICAgICAgLy8gRklYTUU6IFRha2UgZmFsbGJhY2sgZm9udHMgaW50byBhY2NvdW50Lgot
ICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9u
dCgpOwotICAgICAgICAgICAgYXV0byB0b3BPdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5saW5l
Rm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoLWVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQuYXNj
ZW50LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRpbmdVdGlsczo6YXNjZW50KGZvbnRN
ZXRyaWNzLCBGb250QmFzZWxpbmU6OkFscGhhYmV0aWMsIGlubGluZVRleHRCb3gpKTsKLSAgICAg
ICAgICAgIGF1dG8gYm90dG9tT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRp
bmdVdGlsczo6c25hcFRvSW50KGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQuZGVzY2VudCwgaW5s
aW5lVGV4dEJveCkgLSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OmRlc2NlbnQoZm9udE1ldHJpY3Ms
IEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4dEJveCkpOwotICAgICAgICAgICAg
aW5rT3ZlcmZsb3cuaW5mbGF0ZSh0b3BPdmVyZmxvdywgeyB9LCBib3R0b21PdmVyZmxvdywgeyB9
KTsKICAgICAgICAgfTsKICAgICAgICAgYWRkR2x5cGhPdmVyZmxvdygpOwogCkBAIC0yMjcsNyAr
MjI3LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNw
bGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgICAgICwgaW5rT3ZlcmZs
b3cKICAgICAgICAgICAgICwgaXNGaXJzdEZvcm1hdHRlZExpbmUoKQogICAgICAgICAgICAgLCBs
aW5lUnVuLmV4cGFuc2lvbigpCi0gICAgICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4
dCB7IHRleHQtPnN0YXJ0LCAxLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZywgY29u
dGVudCB9CisgICAgICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQuc3Rh
cnQsIDEsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCBjb250ZW50IH0KICAgICAg
ICAgICAgICwgaXNDb250ZW50ZnVsCiAgICAgICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVk
SW5CbG9ja0RpcmVjdGlvbigpCiAgICAgICAgIH0pOwpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQg
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBM
aW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgfQogCiAgICAgYXV0byBhZGp1c3RlZENvbnRlbnRUb1Jl
bmRlciA9IFsmXSB7Ci0gICAgICAgIHJldHVybiB0ZXh0LT5uZWVkc0h5cGhlbiA/IG1ha2VTdHJp
bmcoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0
aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygpOworICAgICAgICByZXR1cm4gdGV4
dC5uZWVkc0h5cGhlbiA/IG1ha2VTdHJpbmcoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmco
dGV4dC5zdGFydCwgdGV4dC5sZW5ndGgpLCBzdHlsZS5oeXBoZW5TdHJpbmcoKSkgOiBTdHJpbmco
KTsKICAgICB9OwogICAgIGF1dG8gc2hhcGluZ0JvdW5kYXJ5ID0gWyZdIHsKICAgICAgICAgaWYg
KGxpbmVSdW4uaXNTaGFwaW5nQm91bmRhcnlTdGFydCgpKQpAQCAtMjU0LDcgKzI1NCw3IEBAIHZv
aWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25z
dCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgICAgICwgaW5rT3ZlcmZsb3cKICAgICAgICAgLCBp
c0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAgICAgICwgbGluZVJ1bi5leHBhbnNpb24oKQotICAg
ICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5n
dGgsIGNvbnRlbnQsIGFkanVzdGVkQ29udGVudFRvUmVuZGVyKCksIHRleHQtPm5lZWRzSHlwaGVu
LCBzaGFwaW5nQm91bmRhcnkoKSB9CisgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0
IHsgdGV4dC5zdGFydCwgdGV4dC5sZW5ndGgsIGNvbnRlbnQsIGFkanVzdGVkQ29udGVudFRvUmVu
ZGVyKCksIHRleHQubmVlZHNIeXBoZW4sIHNoYXBpbmdCb3VuZGFyeSgpIH0KICAgICAgICAgLCBp
c0NvbnRlbnRmdWwKICAgICAgICAgLCBpc0xpbmVGdWxseVRydW5jYXRlZEluQmxvY2tEaXJlY3Rp
b24oKQogICAgIH0pOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4s
CiAKIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFr
RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sIGNvbnN0IElubGluZVJlY3QmIHNv
ZnRMaW5lQnJlYWtSdW5SZWN0LCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYgYm94ZXMpCiB7Ci0gICAg
QVNTRVJUKGxpbmVSdW4udGV4dENvbnRlbnQoKSAmJiBpczxJbmxpbmVUZXh0Qm94PihsaW5lUnVu
LmxheW91dEJveCgpKSk7CisgICAgQVNTRVJUKGxpbmVSdW4udGV4dENvbnRlbnQoKS5sZW5ndGgg
JiYgaXM8SW5saW5lVGV4dEJveD4obGluZVJ1bi5sYXlvdXRCb3goKSkpOwogCiAgICAgYXV0byYg
bGF5b3V0Qm94ID0gbGluZVJ1bi5sYXlvdXRCb3goKTsKICAgICBhdXRvJiB0ZXh0ID0gbGluZVJ1
bi50ZXh0Q29udGVudCgpOwpAQCAtMjc2LDcgKzI3Niw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFrRGlzcGxheUJveChjb25zdCBMaW5lOjpS
dW4mCiAgICAgICAgICwgc29mdExpbmVCcmVha1J1blJlY3QKICAgICAgICAgLCBpc0ZpcnN0Rm9y
bWF0dGVkTGluZSgpCiAgICAgICAgICwgbGluZVJ1bi5leHBhbnNpb24oKQotICAgICAgICAsIElu
bGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGRvd25j
YXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCkuY29udGVudCgpIH0KKyAgICAgICAgLCBJbmxp
bmVEaXNwbGF5OjpCb3g6OlRleHQgeyB0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCwgZG93bmNhc3Q8
SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KS5jb250ZW50KCkgfQogICAgICAgICAsIGlzQ29udGVu
dGZ1bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigpCiAg
ICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDY1NjExNGY5Y2Qz
My4uZjk0NmQxZDYyMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAt
NTYsNyArNTYsNyBAQCBzdGF0aWMgaW5saW5lIElubGluZUxheW91dFVuaXQgc3BhY2VXaWR0aChj
b25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIGJvb2wgYwogICAgIHJldHVybiBmb250Q2Fz
Y2FkZS53aWR0aE9mU3BhY2VTdHJpbmcoKTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRp
bDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENh
c2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5
b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmlu
Z09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24s
IFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlKQorSW5saW5lTGF5b3V0VW5p
dCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29u
c3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFj
ZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlLCBHbHlwaE92
ZXJmbG93KiBnbHlwaE92ZXJmbG93KQogewogICAgIGlmIChmcm9tID09IHRvKQogICAgICAgICBy
ZXR1cm4gMDsKQEAgLTg5LDcgKzg5LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lk
dGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICAg
ICAgICAgIHJ1bi5zZXRUYWJTaXplKHRydWUsIFN0eWxlOjp0b1BsYXRmb3JtKHN0eWxlLnRhYlNp
emUoKSkpOwogICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgbW92aW5nIHRoaXMgdG8gVGV4dFJ1
biBjdG9yCiAgICAgICAgIHJ1bi5zZXRUZXh0U3BhY2luZ1N0YXRlKHNwYWNpbmdTdGF0ZSk7Ci0g
ICAgICAgIHdpZHRoID0gZm9udENhc2NhZGUud2lkdGgocnVuKTsKKyAgICAgICAgd2lkdGggPSBm
b250Q2FzY2FkZS53aWR0aChydW4sIHsgfSwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogCiAgICAg
aWYgKGV4dGVuZGVkTWVhc3VyaW5nKQpAQCAtMTA1LDcgKzEwNSw3IEBAIElubGluZUxheW91dFVu
aXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwg
Y29uc3QgRm9uCiAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwgZm9u
dENhc2NhZGUsIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGlubGluZVRleHRJdGVtLmVuZCgpLCBj
b250ZW50TG9naWNhbExlZnQpOwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0
aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNjYWRl
JiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVu
aXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBUZXh0
U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSkKK0lubGluZUxheW91dFVuaXQgVGV4
dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3Qg
Rm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5s
aW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1l
YXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6
YXRpb24sIFRleHRTcGFjaW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGZyb20gPj0gaW5saW5l
VGV4dEl0ZW0uc3RhcnQoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQodG8gPD0gaW5saW5lVGV4dEl0
ZW0uZW5kKCkpOwpAQCAtMTIzLDcgKzEyMyw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6
OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9uCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoMC5mLCB3aWR0aCk7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgcmV0dXJuIHdpZHRoKGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9udENh
c2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExlZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFj
ZU1lYXN1cmluZ09wdGltaXphdGlvbiwgc3BhY2luZ1N0YXRlKTsKKyAgICByZXR1cm4gd2lkdGgo
aW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNv
bnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0
aW9uLCBzcGFjaW5nU3RhdGUsIGdseXBoT3ZlcmZsb3cpOwogfQogCiBJbmxpbmVMYXlvdXRVbml0
IFRleHRVdGlsOjp0cmFpbGluZ1doaXRlc3BhY2VXaWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBp
bmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHNpemVfdCBzdGFy
dFBvc2l0aW9uLCBzaXplX3QgZW5kUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGls
LmgKaW5kZXggNmY1NjU4NDZiMWRjLi5lMGY0OTA1MDIyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8
V2ViQ29yZS9Gb250Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb250Q2FzY2FkZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5saW5lSXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5saW5lTGluZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0VW5pdHMuaD4KQEAgLTUzLDggKzU0LDggQEAgY2xh
c3MgVGV4dFV0aWwgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgVXNlVHJhaWxpbmdXaGl0ZXNw
YWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBzdGF0aWMg
SW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRD
YXNjYWRlJiwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwotICAgIHN0YXRp
YyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9u
dENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBU
ZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7Ci0gICAgc3RhdGlj
IElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRD
YXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29u
dGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRp
b24gPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4
dFNwYWNpbmc6OlNwYWNpbmdTdGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0pOworICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENh
c2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0
U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSwgR2x5cGhPdmVyZmxvdyog
PSBudWxscHRyKTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxp
bmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0
bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVz
cGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmlu
Z09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0
ZSA9IHsgfSwgR2x5cGhPdmVyZmxvdyogPSBudWxscHRyKTsKIAogICAgIHN0YXRpYyBJbmxpbmVM
YXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBj
b25zdCBGb250Q2FzY2FkZSYsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXplX3QgZW5kUG9zaXRp
b24pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5cGgt
b3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9lbW9qaS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwtZXhwZWN0ZWQudHh0CmluZGV4
IGMxMmJhOWY5M2U0Mi4uMDYyYjBhN2QzOTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWlu
dC1mYWlsLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDcgQEAKIChyZXBhaW50IHJlY3RzCiAgIChy
ZWN0IDggMTAgMjEgMTYpCi0gIChyZWN0IDggNyA3ODQgMSkKLSAgKHJlY3QgOCA3IDc4NCAxKQor
ICAocmVjdCA4IC02IDc4NCAxNCkKKyAgKHJlY3QgOCAtNiA3ODQgMTQpCisgIChyZWN0IDAgLTYg
ODAwIDYpCiApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477943</attachid>
            <date>2026-01-08 15:24:09 -0800</date>
            <delta_ts>2026-01-08 19:03:55 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-301447-20260108152408.patch</filename>
            <type>text/plain</type>
            <size>47646</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkYWM2NGUwMTY1ZDQxMjVlOTU3NjZhZWEwNmZkNjA3OGFiYjA5NzFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBKYW4gMjAyNiAwODo1MTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGh0dHBzOi8v
bWNhcy1wcmFjdGljZXRlc3QuY29nbmlhLm9yZy8gR3JhZGUgOCBFTEEgbWF0aAogZXhhbXBsZXMg
ZmFpbCB0byByZXBhaW50IGNvbnRlbnQgcHJvcGVybHkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDE0NDcgPHJkYXI6Ly8xNjMyOTA3Nzk+CgpSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KCjEuIFRyYWNrIGdseXBoIG92ZXJmbG93IGR1cmluZyBpbmxpbmUgdGV4
dCBtZWFzdXJlbWVudCBhbmQgaW5mbGF0ZSBpbmsgb3ZlcmZsb3cgZHVyaW5nIGRpc3BsYXkgYm94
IGNvbnN0cnVjdGlvbi4KICAgKHdoaWxlIHdlIGRvbid0IG5lZWQgZ2x5cGggb3ZlcmZsb3cgdW50
aWwgYWZ0ZXIgZGlzcGxheSBib3ggY3JlYXRpb24sIGl0ZXJhdGluZyBjb250ZW50IGFsbCBvdmVy
IGFnYWluIGlzIGEgbWFqb3IgcGVyZiBoaXQpCjIuIFNocmluayBMYXlvdXQ6OkxpbmU6OlJ1biBm
cm9tIDEyOCBieXRlcyB0byA4OCBieXRlcyBpbiBvcmRlciB0byBtYWtlIHJvb20gZm9yIGdseXBo
IG92ZXJmbG93IGJpdHMgKHNwZWVkbyBwZXJmKQogIC0gcmVhcnJhbmdlIG1lbWJlciB2YXJpYWJs
ZXMKICAtIHJldGlyZSBhIGZldyBvcHRpb25hbHMKICAtIG1ha2UgVHJhaWxpbmdXaGl0ZXNwYWNl
IHNtYWxsZXIgKHNpemUgYXMgMjRiaXRzKQozLiBGYWxsYmFjayB0byBwb3N0LWxheW91dCBnbHlw
aCBvdmVyZmxvdyBjb21wdXRhdGlvbiB3aGVuIDU6M2JpdCAoYXNjZW50OmRlc2NlbnQpIGlzIE1B
WGVkIGluZGljYXRpbmcgb3ZlcmZsb3cgdmFsdWUgaXMgbGFyZ2VyIHRoYW4KICAgd2hhdCB3ZSBj
YW4gZml0IGludG8gYSBieXRlLgoKQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0LgoKKiBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVj
dGVkLnR4dDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OmNvbXB1dGVkRXhw
YW5zaW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9y
bWF0dGluZ1V0aWxzOjppbmxpbmVDb250ZW50RW5kaW5nKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcDoKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmg6CiogU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNC
dWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpjb21wdXRl
Q29udGVudEF0dHJpYnV0ZXNBbmRJbmxpbmVUZXh0SXRlbVdpZHRocyk6CiogU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OnJlc3RvcmVUcmltbWVkVHJhaWxpbmdXaGl0ZXNwYWNlKToKKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1vdmUpOgoo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
OlJ1bjo6ZXhwYW5kKToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpkZXRhY2hUcmFpbGlu
Z1doaXRlc3BhY2UpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5n
V2hpdGVzcGFjZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZS5oOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzQ29udGVu
dGZ1bCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dGV4dENvbnRlbnQgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc1RyYWlsaW5nV2hpdGVzcGFjZSBj
b25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lk
dGggY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzV2hpdGVzcGFjZU9ubHkg
Y29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OkdseXBoT3ZlcmZsb3c6OmlzRW1w
dHkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmdseXBoT3ZlcmZsb3cgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQg
Y29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzU2hhcGluZ0JvdW5kYXJ5RW5k
IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjppc0luc2lkZVNoYXBpbmdCb3Vu
ZGFyeSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91bmRh
cnkgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNpYmxlVHJh
aWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpoYXND
b2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5l
OjpSdW46OnNldE5lZWRzSHlwaGVuKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCb3hCdWlsZGVyOjpjb2xsZWN0RmFsbGJhY2tGb250cyk6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRzRm9yTGluZUJveENvbnRh
aW5JZkFwcGxpY2FibGUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6dG9TdHJp
bmcpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZVRleHRJdGVtLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpnbHlwaE92
ZXJmbG93IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OnNldEdseXBo
T3ZlcmZsb3cpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveCk6
CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YXBwZW5kU29m
dExpbmVCcmVha0Rpc3BsYXlCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0
VXRpbDo6d2lkdGgpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRo
KToKLS0tCiAuLi4vaW5saW5lL0lubGluZUNvbnRlbnRBbGlnbmVyLmNwcCAgICAgICAgICAgfCAg
MiArLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwICAgICAgICAgIHwgIDIg
Ky0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwICB8ICAyICsK
IC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCAgICB8ICAyICsKIC4u
Li9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcCAgICAgICAgICAgICB8IDIxICsrKysrLQog
Li4uL2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgIHwgNzMgKysrKysr
KysrKystLS0tLS0tLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5o
ICAgIHwgNjAgKysrKysrKystLS0tLS0tCiAuLi4vaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVy
LmNwcCAgICAgICAgICAgfCAxMCArLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3Bw
ICAgICAgICAgICAgICB8ICAyICstCiAuLi4vaW5saW5lL0lubGluZVRleHRJdGVtLmggICAgICAg
ICAgICAgICAgICAgfCAgOCArKwogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCAgIHwgMzIgKysrKy0tLS0KIC4uLi9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAgICAg
ICAgICAgICAgICAgICB8ICA4ICstCiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmggfCAgNSArLQogLi4uaS1nbHlwaC1vdmVyZmxvdy1yZXBhaW50LWZhaWwtZXhw
ZWN0ZWQudHh0IHwgIDUgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCspLCA4
OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25l
ci5jcHAKaW5kZXggMGE0MjFhNDc0NzcwLi41ODg0YzI5YmRmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRB
bGlnbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVDb250ZW50QWxpZ25lci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBzdGF0
aWMgdm9pZCBjb21wdXRlZEV4cGFuc2lvbnMoY29uc3QgTGluZTo6UnVuTGlzdCYgcnVucywgV1RG
OjpSYW5nZTxzaXplX3Q+IHJ1bgogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
ZXhwYW5zaW9uQmVoYXZpb3IubGVmdCA9IHJ1bklzQWZ0ZXJFeHBhbnNpb24gPyBFeHBhbnNpb25C
ZWhhdmlvcjo6QmVoYXZpb3I6OkZvcmJpZCA6IEV4cGFuc2lvbkJlaGF2aW9yOjpCZWhhdmlvcjo6
QWxsb3c7CiAgICAgICAgICAgICAgICAgZXhwYW5zaW9uQmVoYXZpb3IucmlnaHQgPSBFeHBhbnNp
b25CZWhhdmlvcjo6QmVoYXZpb3I6OkFsbG93OwotICAgICAgICAgICAgICAgIGF1dG8mIHRleHRD
b250ZW50ID0gKnJ1bi50ZXh0Q29udGVudCgpOworICAgICAgICAgICAgICAgIGF1dG8mIHRleHRD
b250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgICAgICAgICAgICAgYXV0byBsZW5ndGgg
PSB0ZXh0Q29udGVudC5sZW5ndGg7CiAgICAgICAgICAgICAgICAgaWYgKGxhc3RUZXh0UnVuSW5k
ZXhGb3JUcmltbWluZyAmJiBydW5JbmRleCgpID09ICpsYXN0VGV4dFJ1bkluZGV4Rm9yVHJpbW1p
bmcpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVHJhaWxpbmcgaGFuZ2luZyB3aGl0ZXNwYWNl
IHNlcXVlbmNlIGlzIGlnbm9yZWQgd2hlbiBjb21wdXRpbmcgdGhlIGV4cGFuc2lvbiBvcHBvcnR1
bml0aWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGlscy5jcHAK
aW5kZXggODQ4MDI5MDAyOWM0Li42YjUzNDYyNDI2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGls
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcApAQCAtNjMwLDcgKzYzMCw3IEBAIHN0ZDo6b3B0
aW9uYWw8TGluZUxheW91dFJlc3VsdDo6SW5saW5lQ29udGVudEVuZGluZz4gSW5saW5lRm9ybWF0
dGluZ1V0aWxzOjppbmxpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHJ1bi5p
c0xpbmVCcmVhaygpKQogICAgICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91dFJlc3VsdDo6SW5s
aW5lQ29udGVudEVuZGluZzo6TGluZUJyZWFrIH07Ci0gICAgICAgIGlmIChhdXRvJiB0ZXh0Q29u
dGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOyB0ZXh0Q29udGVudCAmJiB0ZXh0Q29udGVudC0+bmVl
ZHNIeXBoZW4pCisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgJiYgcnVuLnRleHRDb250ZW50KCku
bmVlZHNIeXBoZW4pCiAgICAgICAgICAgICByZXR1cm4geyBMaW5lTGF5b3V0UmVzdWx0OjpJbmxp
bmVDb250ZW50RW5kaW5nOjpIeXBoZW4gfTsKICAgICAgICAgcmV0dXJuIHsgTGluZUxheW91dFJl
c3VsdDo6SW5saW5lQ29udGVudEVuZGluZzo6R2VuZXJpYyB9OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lSXRlbS5jcHAKaW5kZXggZmI2NjgyYzM3OWFlLi41ODdjZmI5ZDlmZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUl0ZW0uY3BwCkBAIC00Myw2ICs0Myw4IEBAIHN0cnVjdCBTYW1lU2l6ZUFz
SW5saW5lSXRlbSB7CiAgICAgYm9vbCB3aWR0aEJvb2wgOiAxOwogICAgIGJvb2wgc29mdEh5cGhl
bkJvb2wgOiAxOwogICAgIGJvb2wgaXNXb3JkU2VwYXJhdG9yIDogMTsKKyAgICB1aW50OF90IGds
eXBoVG9wT3ZlcmZsb3cgOiA1OworICAgIHVpbnQ4X3QgZ2x5cGhCb3R0b21PdmVyZmxvdyA6IDM7
CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoU2FtZVNp
emVBc0lubGluZUl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaAppbmRleCBkMzljNWQ0ZDVi
OTQuLmM5ZGMwN2I5ZTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaApAQCAtOTcsNiArOTcs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1dpZHRoIDogMSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2hhc1RyYWlsaW5nU29mdEh5cGhlbiA6IDEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c1dvcmRTZXBhcmF0b3IgOiAxIHsgZmFsc2UgfTsKKyAgICB1aW50OF90IG1fZ2x5cGhUb3BPdmVy
ZmxvdyA6IDUgeyAwIH07CisgICAgdWludDhfdCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgOiAzIHsg
MCB9OwogfTsKIAogaW5saW5lIElubGluZUl0ZW06OklubGluZUl0ZW0oY29uc3QgQm94JiBsYXlv
dXRCb3gsIFR5cGUgdHlwZSwgVUJpRGlMZXZlbCBiaWRpTGV2ZWwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCA3N2Q4MmMxOTg3MTkuLmNmNGYwYmZlNWM3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCkBAIC03ODcs
NiArNzg3LDggQEAgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Q29udGVudEF0dHJp
YnV0ZXMgSW5saW5lSXRlbXNCdWlsZGVyOjpjb21wdXRlQ28KICAgICBUZXh0U3BhY2luZzo6U3Bh
Y2luZ1N0YXRlIHNwYWNpbmdTdGF0ZTsKICAgICBUcmltbWFibGVUZXh0U3BhY2luZ3MgdHJpbW1h
YmxlVGV4dFNwYWNpbmdzOwogICAgIGF1dG8mIGlubGluZUJveEJvdW5kYXJ5VGV4dFNwYWNpbmdz
ID0gaW5saW5lQ29udGVudENhY2hlKCkuaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2luZ3MoKTsK
KyAgICBjb25zdCBJbmxpbmVUZXh0Qm94KiBjdXJyZW50SW5saW5lVGV4dEJveCA9IG51bGxwdHI7
CisgICAgYXV0byBjdXJyZW50SW5saW5lVGV4dEJveE1heUhhdmVHbHlwaE92ZXJmbG93ID0gZmFs
c2U7CiAgICAgZm9yIChzaXplX3QgaW5saW5lSXRlbUluZGV4ID0gMDsgaW5saW5lSXRlbUluZGV4
IDwgaW5saW5lSXRlbUxpc3Quc2l6ZSgpOyArK2lubGluZUl0ZW1JbmRleCkgewogICAgICAgICBh
dXRvIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSAwLmY7CiAgICAgICAgIGF1dG8mIGlubGluZUl0
ZW0gPSBpbmxpbmVJdGVtTGlzdFtpbmxpbmVJdGVtSW5kZXhdOwpAQCAtODAxLDcgKzgwMywyNCBA
QCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpDb250ZW50QXR0cmlidXRlcyBJbmxp
bmVJdGVtc0J1aWxkZXI6OmNvbXB1dGVDbwogICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBp
bmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5nID0gaW5saW5lQm94Qm91bmRhcnlUZXh0U3BhY2lu
Z3MuZmluZChwb3RlbnRpYWxJbmxpbmVCb3hTdGFydEluZGV4KTsgaW5saW5lQm94Qm91bmRhcnlU
ZXh0U3BhY2luZyAhPSBpbmxpbmVCb3hCb3VuZGFyeVRleHRTcGFjaW5ncy5lbmQoKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcgPSBpbmxpbmVCb3hCb3Vu
ZGFyeVRleHRTcGFjaW5nLT52YWx1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaW5saW5lVGV4dEl0ZW0tPnNldFdpZHRoKFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4dEl0
ZW0sIGlubGluZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCksIHN0YXJ0LCBzdGFydCAr
IGlubGluZVRleHRJdGVtLT5sZW5ndGgoKSwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxpbmdXaGl0
ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMsIHNwYWNpbmdTdGF0ZSkgKyBleHRyYUlu
bGluZVRleHRTcGFjaW5nKTsKKyAgICAgICAgICAgICAgICBhdXRvJiBmb250Q2FzY2FkZSA9IGlu
bGluZVRleHRJdGVtLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCk7CisgICAgICAgICAgICAgICAgYXV0
byB3aWR0aCA9IElubGluZUxheW91dFVuaXQgeyB9OworICAgICAgICAgICAgICAgIGF1dG8gbWF5
SGF2ZUdseXBoT3ZlcmZsb3cgPSBbJl0geworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVu
dElubGluZVRleHRCb3ggIT0gJmlubGluZVRleHRJdGVtLT5pbmxpbmVUZXh0Qm94KCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmxpbmVUZXh0Qm94TWF5SGF2ZUdseXBoT3Zl
cmZsb3cgPSAhaW5saW5lVGV4dEl0ZW0tPmlubGluZVRleHRCb3goKS5jYW5Vc2VTaW1wbGVGb250
Q29kZVBhdGgoKSB8fCBmb250Q2FzY2FkZS5wcmltYXJ5Rm9udCgpLT5vcmlnaW4oKSA9PSBGb250
T3JpZ2luOjpSZW1vdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5saW5lVGV4
dEJveCA9ICZpbmxpbmVUZXh0SXRlbS0+aW5saW5lVGV4dEJveCgpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5saW5lVGV4dEJveE1h
eUhhdmVHbHlwaE92ZXJmbG93OworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAg
aWYgKG1heUhhdmVHbHlwaE92ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ug
ZG9u4oCZdCBuZWVkIGdseXBoIG92ZXJmbG93IHVudGlsIGFmdGVyIGRpc3BsYXkgYm94ZXMgYXJl
IGNyZWF0ZWQsIGJ1dCB3YWxraW5nIHRoZSBjb250ZW50IGFnYWluIGlzIGEgbWFqb3IgcGVyZm9y
bWFuY2UgaGl0LiBTZWUgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlz
cGxheUJveCdzIGFkZEdseXBoT3ZlcmZsb3cuCisgICAgICAgICAgICAgICAgICAgIEdseXBoT3Zl
cmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICAgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5j
b21wdXRlQm91bmRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBUZXh0VXRp
bDo6d2lkdGgoKmlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgc3RhcnQsIHN0YXJ0ICsgaW5s
aW5lVGV4dEl0ZW0tPmxlbmd0aCgpLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3Bh
Y2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcywgc3BhY2luZ1N0YXRlLCAmZ2x5cGhPdmVyZmxv
dyk7CisgICAgICAgICAgICAgICAgICAgIGlubGluZVRleHRJdGVtLT5zZXRHbHlwaE92ZXJmbG93
KHN0ZDo6Y2xhbXAoZ2x5cGhPdmVyZmxvdy50b3AsIDBfbHUsIDMxX2x1KSwgc3RkOjpjbGFtcChn
bHlwaE92ZXJmbG93LmJvdHRvbSwgMF9sdSwgN19sdSkpOworICAgICAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IFRleHRVdGlsOjp3aWR0aCgqaW5saW5lVGV4
dEl0ZW0sIGZvbnRDYXNjYWRlLCBzdGFydCwgc3RhcnQgKyBpbmxpbmVUZXh0SXRlbS0+bGVuZ3Ro
KCksIHsgfSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbjo6WWVzLCBzcGFjaW5nU3RhdGUpOworICAgICAgICAgICAgICAgIGlubGluZVRleHRJdGVt
LT5zZXRXaWR0aCh3aWR0aCArIGV4dHJhSW5saW5lVGV4dFNwYWNpbmcpOwogICAgICAgICAgICAg
ICAgIGhhbmRsZVRleHRTcGFjaW5nKHNwYWNpbmdTdGF0ZSwgdHJpbW1hYmxlVGV4dFNwYWNpbmdz
LCAqaW5saW5lVGV4dEl0ZW0sIGlubGluZUl0ZW1JbmRleCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggNzZmYmEx
ZGQzNTI3Li5kMTI4NTMzZjk3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCkBAIC02
NTQsNyArNjU0LDcgQEAgYm9vbCBMaW5lOjpyZXN0b3JlVHJpbW1lZFRyYWlsaW5nV2hpdGVzcGFj
ZShJbmxpbmVMYXlvdXRVbml0IHRyaW1tZWRUcmFpbGluZ1doaXQKICAgICBhdXRvIHJlc3RvcmUg
PSBbJl0oYXV0byYgdHJhaWxpbmdSdW4pIHsKICAgICAgICAgQVNTRVJUKHRyYWlsaW5nUnVuLmlz
VGV4dCgpKTsKICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJv
eD4odHJhaWxpbmdSdW4ubGF5b3V0Qm94KCkpOwotICAgICAgICBpZiAodHJhaWxpbmdSdW4ubV90
ZXh0Q29udGVudC0+c3RhcnQgKyB0cmFpbGluZ1J1bi5tX3RleHRDb250ZW50LT5sZW5ndGggPT0g
bGF5b3V0Qm94LmNvbnRlbnQoKS5sZW5ndGgoKSkgeworICAgICAgICBpZiAodHJhaWxpbmdSdW4u
bV90ZXh0Q29udGVudC5zdGFydCArIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQubGVuZ3RoID09
IGxheW91dEJveC5jb250ZW50KCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIEl0IGxvb2tz
IGxpa2Ugd2UgZGlkbid0IF90cmltXyB0aGlzIHRyYWlsaW5nIHJ1biBidXQgcmVtb3ZlZCB0aGUg
bGF0IHJ1biBpbnN0ZWFkIChoYXBwZW5zIHdpdGggZGVkaWNhdGVkIGxheW91dCBib3gpLgogICAg
ICAgICAgICAgLy8gTGV0J3MgcHV0IHRoYXQgY29udGVudCBiYWNrIGFzIHRyYWlsaW5nIHJ1bi4K
ICAgICAgICAgICAgIGlmIChhcHBlbmRUcmFpbGluZ0lubGluZUl0ZW1Bc1RyYWlsaW5nUnVuKHJ1
bnMsIHRyaW1tZWRUcmFpbGluZ1doaXRlc3BhY2VXaWR0aCwgaW5saW5lSXRlbVJhbmdlLCBpbmxp
bmVJdGVtcykpCkBAIC02NjQsNyArNjY0LDcgQEAgYm9vbCBMaW5lOjpyZXN0b3JlVHJpbW1lZFRy
YWlsaW5nV2hpdGVzcGFjZShJbmxpbmVMYXlvdXRVbml0IHRyaW1tZWRUcmFpbGluZ1doaXQKICAg
ICAgICAgfQogICAgICAgICB0cmFpbGluZ1J1bi5tX2xvZ2ljYWxXaWR0aCArPSB0cmltbWVkVHJh
aWxpbmdXaGl0ZXNwYWNlV2lkdGg7CiAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBjb2xsYXBzZWQg
d2hpdGVzcGFjZS4KLSAgICAgICAgdHJhaWxpbmdSdW4ubV90ZXh0Q29udGVudC0+bGVuZ3RoICs9
IDE7CisgICAgICAgIHRyYWlsaW5nUnVuLm1fdGV4dENvbnRlbnQubGVuZ3RoICs9IDE7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH07CiAKQEAgLTc0Niw3ICs3NDYsNyBAQCBJbmxpbmVMYXlv
dXRVbml0IExpbmU6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKCkKICAgICAgICAg
QVNTRVJUKHJ1bi5pc1dvcmRCcmVha09wcG9ydHVuaXR5KCkgfHwgcnVuLmlzTGluZVNwYW5uaW5n
SW5saW5lQm94U3RhcnQoKSB8fCBydW4uaXNJbmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGlu
ZUJveEVuZCgpIHx8IHJ1bi5pc0xpbmVCcmVhaygpIHx8IHJ1bi5pc09wYXF1ZSgpKTsKICAgICAg
ICAgcnVuLm1vdmVIb3Jpem9udGFsbHkoLXRyaW1tZWRXaWR0aCk7CiAgICAgfQotICAgIGlmICgh
dHJpbW1hYmxlUnVuLnRleHRDb250ZW50KCktPmxlbmd0aCkgeworICAgIGlmICghdHJpbW1hYmxl
UnVuLnRleHRDb250ZW50KCkubGVuZ3RoKSB7CiAgICAgICAgIC8vIFRoaXMgdHJpbW1hYmxlIHJ1
biBpcyBmdWxseSBjb2xsYXBzZWQgbm93IChlLmcuIDxkaXY+PGltZz4gICAgPHNwYW4+PC9zcGFu
PjwvZGl2PikuCiAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8ga2VlcCBpdCBhcm91bmQgYW55
bW9yZS4KICAgICAgICAgbV9ydW5zLnJlbW92ZUF0KCptX2ZpcnN0VHJpbW1hYmxlUnVuSW5kZXgp
OwpAQCAtODAxLDYyICs4MDEsNjcgQEAgc3RkOjpvcHRpb25hbDxMaW5lOjpSdW46OlRyYWlsaW5n
V2hpdGVzcGFjZTo6VHlwZT4gTGluZTo6UnVuOjp0cmFpbGluZ1doaXRlc3BhY2UKIAogTGluZTo6
UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCiAgICAg
OiBtX3R5cGUodG9MaW5lUnVuVHlwZShpbmxpbmVJdGVtKSkKLSAgICAsIG1fbGF5b3V0Qm94KCZp
bmxpbmVJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fbG9n
aWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgp
CiAgICAgLCBtX2JpZGlMZXZlbChpbmxpbmVJdGVtLmJpZGlMZXZlbCgpKQogICAgICwgbV90ZXh0
U3BhY2luZ0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQorICAgICwgbV9sYXlvdXRC
b3goJmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKHN0eWxlKQogewogfQog
CiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiB6ZXJvV2lkaHRJbmxpbmVJdGVtLCBj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQpCiAg
ICAgOiBtX3R5cGUodG9MaW5lUnVuVHlwZSh6ZXJvV2lkaHRJbmxpbmVJdGVtKSkKLSAgICAsIG1f
bGF5b3V0Qm94KCZ6ZXJvV2lkaHRJbmxpbmVJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHls
ZShzdHlsZSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2JpZGlM
ZXZlbCh6ZXJvV2lkaHRJbmxpbmVJdGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9sYXlvdXRCb3go
Jnplcm9XaWRodElubGluZUl0ZW0ubGF5b3V0Qm94KCkpCisgICAgLCBtX3N0eWxlKHN0eWxlKQog
ewogfQogCiBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiBsaW5lU3Bhbm5pbmdJbmxp
bmVCb3hJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0
IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCiAg
ICAgOiBtX3R5cGUoVHlwZTo6TGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQpCi0gICAgLCBtX2xh
eW91dEJveCgmbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5sYXlvdXRCb3goKSkKLSAgICAsIG1f
c3R5bGUobGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5zdHlsZSgpKQogICAgICwgbV9sb2dpY2Fs
TGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAg
ICAsIG1fYmlkaUxldmVsKGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0uYmlkaUxldmVsKCkpCiAg
ICAgLCBtX3RleHRTcGFjaW5nQWRqdXN0bWVudCh0ZXh0U3BhY2luZ0FkanVzdG1lbnQpCisgICAg
LCBtX2xheW91dEJveCgmbGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5sYXlvdXRCb3goKSkKKyAg
ICAsIG1fc3R5bGUobGluZVNwYW5uaW5nSW5saW5lQm94SXRlbS5zdHlsZSgpKQogewogICAgIEFT
U0VSVChsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmlzSW5saW5lQm94U3RhcnQoKSk7CiB9CiAK
IExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJdGVtJiBzb2Z0TGluZUJy
ZWFrSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0KQogICAgIDogbV90eXBlKFR5cGU6OlNvZnRMaW5lQnJlYWspCi0gICAgLCBtX2xheW91
dEJveCgmc29mdExpbmVCcmVha0l0ZW0ubGF5b3V0Qm94KCkpCi0gICAgLCBtX3N0eWxlKHN0eWxl
KQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fYmlkaUxldmVsKHNv
ZnRMaW5lQnJlYWtJdGVtLmJpZGlMZXZlbCgpKQorICAgICwgbV9sYXlvdXRCb3goJnNvZnRMaW5l
QnJlYWtJdGVtLmxheW91dEJveCgpKQorICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fdGV4
dENvbnRlbnQoeyBzb2Z0TGluZUJyZWFrSXRlbS5wb3NpdGlvbigpLCAxIH0pCiB7CiB9CiAKIExp
bmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVz
dG1lbnQsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBzaGFwaW5nQm91bmRh
cnkpCiAgICAgOiBtX3R5cGUoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBUeXBl
OjpXb3JkU2VwYXJhdG9yIDogaW5saW5lVGV4dEl0ZW0uaXNRdWlya05vbkJyZWFraW5nU3BhY2Uo
KSA/IFR5cGU6Ok5vbkJyZWFraW5nU3BhY2UgOiBUeXBlOjpUZXh0KQotICAgICwgbV9sYXlvdXRC
b3goJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKQotICAgICwgbV9zdHlsZShzdHlsZSkKKyAg
ICAsIG1fc2hhcGluZ0JvdW5kYXJ5KHNoYXBpbmdCb3VuZGFyeS52YWx1ZV9vcihTaGFwaW5nQm91
bmRhcnk6Ok5vdEFwcGxpY2FibGUpKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkK
ICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGlu
bGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQotICAgICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGlu
Z0JvdW5kYXJ5KQogICAgICwgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1
c3RtZW50KQorICAgICwgbV9sYXlvdXRCb3goJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKQor
ICAgICwgbV9zdHlsZShzdHlsZSkKIHsKICAgICBhdXRvIGxlbmd0aCA9IGlubGluZVRleHRJdGVt
Lmxlbmd0aCgpOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VU
eXBlKGlubGluZVRleHRJdGVtKTsKKwogICAgIGlmICh3aGl0ZXNwYWNlVHlwZSkgewogICAgICAg
ICBpZiAoKndoaXRlc3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFw
c2VkKQogICAgICAgICAgICAgbGVuZ3RoID0gIDE7Ci0gICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNw
YWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIGxvZ2ljYWxXaWR0aCwgbGVuZ3RoIH07CisgICAgICAg
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIGxlbmd0aCwgbG9naWNh
bFdpZHRoIH07CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBnbHlwaE92ZXJmbG93ID0gaW5s
aW5lVGV4dEl0ZW0uZ2x5cGhPdmVyZmxvdygpOworICAgICAgICBpZiAoZ2x5cGhPdmVyZmxvdy5m
aXJzdCB8fCBnbHlwaE92ZXJmbG93LnNlY29uZCkKKyAgICAgICAgICAgIG1fZ2x5cGhPdmVyZmxv
dyA9IHsgZ2x5cGhPdmVyZmxvdy5maXJzdCwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQgfTsKICAgICB9
CiAgICAgbV90ZXh0Q29udGVudCA9IHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbGVuZ3RoIH07
CiB9CkBAIC04NjcsNDIgKzg3Miw0NiBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElu
bGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogICAgIEFT
U0VSVChpc1RleHQoKSAmJiBpbmxpbmVUZXh0SXRlbS5pc1RleHQoKSk7CiAgICAgQVNTRVJUKG1f
bGF5b3V0Qm94ID09ICZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CiAgICAgQVNTRVJUKG1f
YmlkaUxldmVsID09IGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKTsKLSAgICBBU1NFUlQoIW1f
c2hhcGluZ0JvdW5kYXJ5IHx8ICptX3NoYXBpbmdCb3VuZGFyeSAhPSBTaGFwaW5nQm91bmRhcnk6
OkVuZCk7CisgICAgQVNTRVJUKG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6
Tm90QXBwbGljYWJsZSB8fCBtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6OlN0
YXJ0IHx8IG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlKTsKIAog
ICAgIG1fbG9naWNhbFdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKICAgICBhdXRvIHdoaXRlc3BhY2VU
eXBlID0gdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSk7CiAKICAgICBpZiAo
IXdoaXRlc3BhY2VUeXBlKSB7CiAgICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyB9Owot
ICAgICAgICBtX3RleHRDb250ZW50LT5sZW5ndGggKz0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7
CisgICAgICAgIG1fdGV4dENvbnRlbnQubGVuZ3RoICs9IGlubGluZVRleHRJdGVtLmxlbmd0aCgp
OwogICAgICAgICBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0ID0gaW5saW5lVGV4dEl0
ZW0uc3RhcnQoKTsKKworICAgICAgICBhdXRvIGdseXBoT3ZlcmZsb3cgPSBpbmxpbmVUZXh0SXRl
bS5nbHlwaE92ZXJmbG93KCk7CisgICAgICAgIGlmIChnbHlwaE92ZXJmbG93LmZpcnN0IHx8IGds
eXBoT3ZlcmZsb3cuc2Vjb25kKQorICAgICAgICAgICAgbV9nbHlwaE92ZXJmbG93ID0geyBzdGQ6
Om1heChtX2dseXBoT3ZlcmZsb3cudG9wLCBnbHlwaE92ZXJmbG93LmZpcnN0KSwgc3RkOjptYXgo
bV9nbHlwaE92ZXJmbG93LmJvdHRvbSwgZ2x5cGhPdmVyZmxvdy5zZWNvbmQpIH07CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhbV90cmFpbGluZ1do
aXRlc3BhY2UgPyBsb2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGggKyBs
b2dpY2FsV2lkdGg7CisgICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhaGFzVHJhaWxpbmdXaGl0
ZXNwYWNlKCkgPyBsb2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aCArIGxv
Z2ljYWxXaWR0aDsKICAgICBhdXRvIHRyYWlsaW5nV2hpdGVzcGFjZUxlbmd0aCA9ICp3aGl0ZXNw
YWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCA/IDEgOiBpbmxp
bmVUZXh0SXRlbS5sZW5ndGgoKTsgCi0gICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7ICp3aGl0
ZXNwYWNlVHlwZSwgd2hpdGVzcGFjZVdpZHRoLCB0cmFpbGluZ1doaXRlc3BhY2VMZW5ndGggfTsK
LSAgICBtX3RleHRDb250ZW50LT5sZW5ndGggKz0gdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoOwor
ICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyAqd2hpdGVzcGFjZVR5cGUsIHRyYWlsaW5nV2hp
dGVzcGFjZUxlbmd0aCwgd2hpdGVzcGFjZVdpZHRoIH07CisgICAgbV90ZXh0Q29udGVudC5sZW5n
dGggKz0gdHJhaWxpbmdXaGl0ZXNwYWNlTGVuZ3RoOwogfQogCiBzdGQ6Om9wdGlvbmFsPExpbmU6
OlJ1bj4gTGluZTo6UnVuOjpkZXRhY2hUcmFpbGluZ1doaXRlc3BhY2UoKQogewotICAgIGlmICgh
bV90cmFpbGluZ1doaXRlc3BhY2UgfHwgaXNXaGl0ZXNwYWNlT25seSgpKQorICAgIGlmICghaGFz
VHJhaWxpbmdXaGl0ZXNwYWNlKCkgfHwgaXNXaGl0ZXNwYWNlT25seSgpKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgQVNTRVJUKG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT5sZW5ndGggPCBtX3Rl
eHRDb250ZW50LT5sZW5ndGgpOworICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZS5sZW5n
dGggPCBtX3RleHRDb250ZW50Lmxlbmd0aCk7CiAgICAgYXV0byB0cmFpbGluZ1doaXRlc3BhY2VS
dW4gPSAqdGhpczsKIAotICAgIGF1dG8gbGVhZGluZ05vbldoaXRlc3BhY2VDb250ZW50TGVuZ3Ro
ID0gbV90ZXh0Q29udGVudC0+bGVuZ3RoIC0gbV90cmFpbGluZ1doaXRlc3BhY2UtPmxlbmd0aDsK
LSAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV90ZXh0Q29udGVudCA9IHsgbV90ZXh0Q29udGVu
dC0+c3RhcnQgKyBsZWFkaW5nTm9uV2hpdGVzcGFjZUNvbnRlbnRMZW5ndGgsIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLT5sZW5ndGgsIGZhbHNlIH07CisgICAgYXV0byBsZWFkaW5nTm9uV2hpdGVzcGFj
ZUNvbnRlbnRMZW5ndGggPSBtX3RleHRDb250ZW50Lmxlbmd0aCAtIG1fdHJhaWxpbmdXaGl0ZXNw
YWNlLmxlbmd0aDsKKyAgICB0cmFpbGluZ1doaXRlc3BhY2VSdW4ubV90ZXh0Q29udGVudCA9IHsg
bV90ZXh0Q29udGVudC5zdGFydCArIGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aCwg
bV90cmFpbGluZ1doaXRlc3BhY2UubGVuZ3RoLCBmYWxzZSB9OwogCi0gICAgdHJhaWxpbmdXaGl0
ZXNwYWNlUnVuLm1fbG9naWNhbFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoOwot
ICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xvZ2ljYWxMZWZ0ID0gbG9naWNhbFJpZ2h0KCkg
LSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGg7CisgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVu
Lm1fbG9naWNhbFdpZHRoID0gbV90cmFpbGluZ1doaXRlc3BhY2Uud2lkdGg7CisgICAgdHJhaWxp
bmdXaGl0ZXNwYWNlUnVuLm1fbG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHQoKSAtIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlLndpZHRoOwogCiAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlUnVuLm1fdHJhaWxp
bmdXaGl0ZXNwYWNlID0geyB9OwogICAgIHRyYWlsaW5nV2hpdGVzcGFjZVJ1bi5tX2xhc3ROb25X
aGl0ZXNwYWNlQ29udGVudFN0YXJ0ID0geyB9OwogCiAgICAgbV9sb2dpY2FsV2lkdGggLT0gdHJh
aWxpbmdXaGl0ZXNwYWNlUnVuLmxvZ2ljYWxXaWR0aCgpOwotICAgIG1fdGV4dENvbnRlbnQtPmxl
bmd0aCA9IGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aDsKKyAgICBtX3RleHRDb250
ZW50Lmxlbmd0aCA9IGxlYWRpbmdOb25XaGl0ZXNwYWNlQ29udGVudExlbmd0aDsKICAgICBtX3Ry
YWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKIAogICAgIHJldHVybiB0cmFpbGluZ1doaXRlc3BhY2VS
dW47CkBAIC05MzEsMjUgKzk0MCwyNSBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlJ1bjo6cmVt
b3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkKIAogSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpSdW46
OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpCiB7Ci0gICAgQVNTRVJUKG1fdHJhaWxpbmdXaGl0
ZXNwYWNlKTsKKyAgICBBU1NFUlQoaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwogICAgIC8vIEFj
Y29yZGluZyB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtMy8jd2hpdGUtc3BhY2Ut
cHJvcGVydHkgbWF0cml4CiAgICAgLy8gVHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMgYWx3YXlzIGNv
bGxhcHNpYmxlIHNvIHRoZSBsZW5ndGggb2YgdGhlIHRyYWlsaW5nIHRyaW1tYWJsZSB3aGl0ZXNw
YWNlIGlzIGFsd2F5cyAxIChvciBub24tZXhpc3RlbnQpLgotICAgIEFTU0VSVChtX3RleHRDb250
ZW50ICYmIG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7CisgICAgQVNTRVJUKGlzVGV4dCgpICYmIG1f
dGV4dENvbnRlbnQubGVuZ3RoKTsKICAgICBjb25zdGV4cHIgc2l6ZV90IHRyYWlsaW5nVHJpbW1h
YmxlQ29udGVudExlbmd0aCA9IDE7CiAKLSAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1fdHJhaWxp
bmdXaGl0ZXNwYWNlLT53aWR0aDsKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1fdHJhaWxpbmdX
aGl0ZXNwYWNlLndpZHRoOwogICAgIGlmIChtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0
ICYmIGlubGluZURpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTCkgewogICAgICAgICAv
LyBXaGlsZSBMVFIgY29udGVudCBjb3VsZCBhbHNvIHN1ZmZlciBmcm9tIHNsaWdodGx5IGluY29y
cmVjdCBjb250ZW50IHdpZHRoIGFmdGVyIHRyaW1taW5nIHRyYWlsaW5nIHdoaXRlc3BhY2UgKHNl
ZSBUZXh0VXRpbDo6d2lkdGgpCiAgICAgICAgIC8vIGl0IGhhcmRseSBwcm9kdWNlcyB2aXN1YWxs
eSBvYnNlcnZhYmxlIHJlc3VsdC4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IHN0aWxsIGlu
Y29ycmVjdGx5IGxlYXZlIHNvbWUgY29udGVudCBvbiB0aGUgbGluZSAodnMuIHJlLW1lYXN1cmlu
ZyBhbHNvIGF0IDo6ZXhwYW5kKS4KICAgICAgICAgYXV0byYgaW5saW5lVGV4dEJveCA9IGRvd25j
YXN0PElubGluZVRleHRCb3g+KCptX2xheW91dEJveCk7CiAgICAgICAgIGF1dG8gc3RhcnRQb3Np
dGlvbiA9ICptX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0OwotICAgICAgICBhdXRvIGVu
ZFBvc2l0aW9uID0gbV90ZXh0Q29udGVudC0+c3RhcnQgKyBtX3RleHRDb250ZW50LT5sZW5ndGg7
CisgICAgICAgIGF1dG8gZW5kUG9zaXRpb24gPSBtX3RleHRDb250ZW50LnN0YXJ0ICsgbV90ZXh0
Q29udGVudC5sZW5ndGg7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN0YXJ0UG9zaXRpb24gPCBl
bmRQb3NpdGlvbiAtIHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aCk7CiAgICAgICAgIGlm
IChpbmxpbmVUZXh0Qm94LmNvbnRlbnQoKVtlbmRQb3NpdGlvbiAtIDFdID09IHNwYWNlKQogICAg
ICAgICAgICAgdHJpbW1lZFdpZHRoID0gVGV4dFV0aWw6OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRo
KGlubGluZVRleHRCb3gsIG1fc3R5bGUuZm9udENhc2NhZGUoKSwgc3RhcnRQb3NpdGlvbiwgZW5k
UG9zaXRpb24pOwogICAgIH0KLSAgICBtX3RleHRDb250ZW50LT5sZW5ndGggLT0gdHJhaWxpbmdU
cmltbWFibGVDb250ZW50TGVuZ3RoOworICAgIG1fdGV4dENvbnRlbnQubGVuZ3RoIC09IHRyYWls
aW5nVHJpbW1hYmxlQ29udGVudExlbmd0aDsKICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsg
fTsKICAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJpbW1lZFdpZHRoKTsKICAgICByZXR1cm4gdHJp
bW1lZFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IDFlYjEzMTEyZDA3Yi4uYmZi
ZjZiNzFlNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbSwgMT4m
IGxpbmVTcGFubmluZ0lubGluZUJveGVzLCBib29sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKTsKIAot
ICAgIGVudW0gY2xhc3MgU2hhcGluZ0JvdW5kYXJ5IDogdWludDhfdCB7IFN0YXJ0LCBJbnNpZGUs
IEVuZCB9OworICAgIGVudW0gY2xhc3MgU2hhcGluZ0JvdW5kYXJ5IDogdWludDhfdCB7IE5vdEFw
cGxpY2FibGUsIFN0YXJ0LCBJbnNpZGUsIEVuZCB9OwogICAgIHZvaWQgYXBwZW5kVGV4dChjb25z
dCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBs
b2dpY2FsV2lkdGgsIHN0ZDo6b3B0aW9uYWw8U2hhcGluZ0JvdW5kYXJ5Pik7CiAgICAgdm9pZCBh
cHBlbmRUZXh0RmFzdChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOyAvLyBSZXNlcnZlZCBmb3IgVGV4dE9ubHlT
aW1wbGVMaW5lQnVpbGRlcgogICAgIHZvaWQgYXBwZW5kQXRvbWljSW5saW5lQm94KGNvbnN0IElu
bGluZUl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbWFyZ2luQm94
TG9naWNhbFdpZHRoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wg
aXNPcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6T3BhcXVlOyB9CiAgICAg
ICAgIGJvb2wgaXNCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpCbG9jazsg
fQogCi0gICAgICAgIGJvb2wgaXNDb250ZW50ZnVsKCkgY29uc3QgeyByZXR1cm4gKGlzVGV4dCgp
ICYmIHRleHRDb250ZW50KCktPmxlbmd0aCkgfHwgaXNBdG9taWNJbmxpbmVCb3goKSB8fCBpc0xp
bmVCcmVhaygpIHx8IGlzTGlzdE1hcmtlcigpIHx8IGlzQmxvY2soKTsgfQorICAgICAgICBib29s
IGlzQ29udGVudGZ1bCgpIGNvbnN0IHsgcmV0dXJuIChpc1RleHQoKSAmJiB0ZXh0Q29udGVudCgp
Lmxlbmd0aCkgfHwgaXNBdG9taWNJbmxpbmVCb3goKSB8fCBpc0xpbmVCcmVhaygpIHx8IGlzTGlz
dE1hcmtlcigpIHx8IGlzQmxvY2soKTsgfQogICAgICAgICBib29sIGlzR2VuZXJhdGVkKCkgY29u
c3QgeyByZXR1cm4gaXNMaXN0TWFya2VyKCk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNDb250
ZW50ZnVsT3JIYXNEZWNvcmF0aW9uKGNvbnN0IFJ1biYsIGNvbnN0IElubGluZUZvcm1hdHRpbmdD
b250ZXh0Jik7CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzaXpl
X3QgbGVuZ3RoIHsgMCB9OwogICAgICAgICAgICAgYm9vbCBuZWVkc0h5cGhlbiB7IGZhbHNlIH07
CiAgICAgICAgIH07Ci0gICAgICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dD4mIHRleHRDb250
ZW50KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGVudDsgfQorICAgICAgICBjb25zdCBUZXh0
JiB0ZXh0Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRlbnQ7IH0KIAogICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNh
bFdpZHRoOyB9CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25zdCB7
IHJldHVybiBtX2xvZ2ljYWxMZWZ0OyB9CkBAIC0xNDIsOSArMTQyLDE3IEBAIHB1YmxpYzoKIAog
ICAgICAgICBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiYgZXhwYW5zaW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KIAotICAgICAgICBib29sIGhhc1RyYWlsaW5n
V2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLmhhc192YWx1
ZSgpOyB9Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgo
KSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSA/IG1fdHJhaWxpbmdXaGl0ZXNw
YWNlLT53aWR0aCA6IDAuZjsgfQotICAgICAgICBib29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25z
dCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFj
ZS0+bGVuZ3RoID09IG1fdGV4dENvbnRlbnQtPmxlbmd0aDsgfQorICAgICAgICBib29sIGhhc1Ry
YWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5
cGUgIT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpOb3RBcHBsaWNhYmxlOyB9CisgICAgICAg
IElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsgfQorICAgICAgICBib29sIGlzV2hpdGVzcGFj
ZU9ubHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiBtX3RyYWls
aW5nV2hpdGVzcGFjZS5sZW5ndGggPT0gbV90ZXh0Q29udGVudC5sZW5ndGg7IH0KKworICAgICAg
ICBzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgICAgICAgICBib29sIGlzRW1wdHkoKSBjb25z
dCB7IHJldHVybiAhdG9wICYmICFib3R0b207IH0KKworICAgICAgICAgICAgdWludDhfdCB0b3Ag
OiA1IHsgMCB9OworICAgICAgICAgICAgdWludDhfdCBib3R0b206IDMgeyAwIH07CisgICAgICAg
IH07CisgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJu
IG1fZ2x5cGhPdmVyZmxvdzsgfQogCiAgICAgICAgIGlubGluZSBUZXh0RGlyZWN0aW9uIGlubGlu
ZURpcmVjdGlvbigpIGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxldHRlclNwYWNp
bmcoKSBjb25zdDsKQEAgLTE1MywxMCArMTYxLDEwIEBAIHB1YmxpYzoKIAogICAgICAgICBVQmlE
aUxldmVsIGJpZGlMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlkaUxldmVsOyB9CiAKLSAgICAg
ICAgYm9vbCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gaXNTaGFwaW5n
Qm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5
OjpTdGFydDsgfQotICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyBy
ZXR1cm4gaXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6
U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7IH0KLSAgICAgICAgYm9vbCBpc0luc2lkZVNoYXBpbmdCb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0Jv
dW5kYXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9Ci0gICAgICAgIGJvb2wg
aXNTaGFwaW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeS5oYXNf
dmFsdWUoKTsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQoKSBjb25zdCB7
IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OlN0YXJ0
OyB9CisgICAgICAgIGJvb2wgaXNTaGFwaW5nQm91bmRhcnlFbmQoKSBjb25zdCB7IHJldHVybiBt
X3NoYXBpbmdCb3VuZGFyeSA9PSBMaW5lOjpTaGFwaW5nQm91bmRhcnk6OkVuZDsgfQorICAgICAg
ICBib29sIGlzSW5zaWRlU2hhcGluZ0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFwaW5n
Qm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpJbnNpZGU7IH0KKyAgICAgICAgYm9v
bCBpc1NoYXBpbmdCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ICE9
IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6Tm90QXBwbGljYWJsZTsgfQogCiAgICAgICAgIC8vIEZJ
WE1FOiBNYXliZSBhZGQgY3JlYXRlIGZ1bmN0aW9ucyBpbnRlYWQ/CiAgICAgICAgIFJ1bihjb25z
dCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0KTsKQEAgLTE4MCwxNyArMTg4LDE4IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBzZXRC
aWRpTGV2ZWwoVUJpRGlMZXZlbCBiaWRpTGV2ZWwpIHsgbV9iaWRpTGV2ZWwgPSBiaWRpTGV2ZWw7
IH0KIAogICAgICAgICBzdHJ1Y3QgVHJhaWxpbmdXaGl0ZXNwYWNlIHsKLSAgICAgICAgICAgIGVu
dW0gY2xhc3MgVHlwZSB7CisgICAgICAgICAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsK
KyAgICAgICAgICAgICAgICBOb3RBcHBsaWNhYmxlLAogICAgICAgICAgICAgICAgIE5vdENvbGxh
cHNpYmxlLAogICAgICAgICAgICAgICAgIENvbGxhcHNpYmxlLAogICAgICAgICAgICAgICAgIENv
bGxhcHNlZAogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIFR5cGUgdHlwZSB7IFR5cGU6Ok5v
dENvbGxhcHNpYmxlIH07Ci0gICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoIHsgMCB9
OwotICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCB7IDAgfTsKKyAgICAgICAgICAgIFR5cGUgdHlw
ZSB7IFR5cGU6Ok5vdEFwcGxpY2FibGUgfTsKKyAgICAgICAgICAgIHNpemVfdCBsZW5ndGggOiAy
NCB7IDAgfTsKKyAgICAgICAgICAgIElubGluZUxheW91dFVuaXQgd2lkdGggeyAwLmYgfTsKICAg
ICAgICAgfTsKLSAgICAgICAgYm9vbCBoYXNDb2xsYXBzaWJsZVRyYWlsaW5nV2hpdGVzcGFjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlICYmIChtX3RyYWlsaW5nV2hpdGVz
cGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNpYmxlIHx8IGhh
c0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpKTsgfQotICAgICAgICBib29sIGhhc0NvbGxh
cHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNw
YWNlICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6
VHlwZTo6Q29sbGFwc2VkOyB9CisgICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1do
aXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSAmJiAobV90
cmFpbGluZ1doaXRlc3BhY2UudHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxh
cHNpYmxlIHx8IGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpKTsgfQorICAgICAgICBi
b29sIGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIGhhc1Ry
YWlsaW5nV2hpdGVzcGFjZSgpICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5cGUgPT0gVHJhaWxp
bmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQ7IH0KICAgICAgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlPiB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGNv
bnN0IElubGluZVRleHRJdGVtJik7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgcmVtb3ZlVHJh
aWxpbmdXaGl0ZXNwYWNlKCk7CiAKQEAgLTIwMCwxOCArMjA5LDE5IEBAIHB1YmxpYzoKICAgICAg
ICAgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdDsKICAgICAg
ICAgSW5saW5lTGF5b3V0VW5pdCByZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKIAorICAg
ICAgICBUcmFpbGluZ1doaXRlc3BhY2UgbV90cmFpbGluZ1doaXRlc3BhY2UgeyB9OwogICAgICAg
ICBUeXBlIG1fdHlwZSB7IFR5cGU6OlRleHQgfTsKLSAgICAgICAgY29uc3QgQm94KiBtX2xheW91
dEJveCB7IG51bGxwdHIgfTsKLSAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIG1fc3R5bGU7Cisg
ICAgICAgIExpbmU6OlNoYXBpbmdCb3VuZGFyeSBtX3NoYXBpbmdCb3VuZGFyeSB7IExpbmU6OlNo
YXBpbmdCb3VuZGFyeTo6Tm90QXBwbGljYWJsZSB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0
IG1fbG9naWNhbExlZnQgeyAwIH07CisgICAgICAgIE1hcmthYmxlPHNpemVfdD4gbV9sYXN0Tm9u
V2hpdGVzcGFjZUNvbnRlbnRTdGFydCB7IH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9s
b2dpY2FsV2lkdGggeyAwIH07Ci0gICAgICAgIElubGluZURpc3BsYXk6OkJveDo6RXhwYW5zaW9u
IG1fZXhwYW5zaW9uOwogICAgICAgICBVQmlEaUxldmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVG
QVVMVF9MVFIgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxUcmFpbGluZ1doaXRlc3BhY2U+IG1f
dHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1f
bGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgeyB9OwotICAgICAgICBzdGQ6Om9wdGlvbmFs
PFRleHQ+IG1fdGV4dENvbnRlbnQ7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGlu
Z0JvdW5kYXJ5PiBtX3NoYXBpbmdCb3VuZGFyeTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBt
X3RleHRTcGFjaW5nQWRqdXN0bWVudCB7IDAgfTsKKyAgICAgICAgR2x5cGhPdmVyZmxvdyBtX2ds
eXBoT3ZlcmZsb3c7CisgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRCb3ggeyBudWxscHRyIH07
CisgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOworICAgICAgICBJbmxpbmVEaXNw
bGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKKyAgICAgICAgVGV4dCBtX3RleHRDb250
ZW50OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEwPjsKICAgICBj
b25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9CkBAIC0zODIsOCAr
MzkyLDggQEAgaW5saW5lIHNpemVfdCBMaW5lOjpIYW5naW5nQ29udGVudDo6bGVuZ3RoKCkgY29u
c3QKIAogaW5saW5lIHZvaWQgTGluZTo6UnVuOjpzZXROZWVkc0h5cGhlbihJbmxpbmVMYXlvdXRV
bml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKIHsKLSAgICBBU1NFUlQobV90ZXh0Q29udGVudCk7Ci0g
ICAgbV90ZXh0Q29udGVudC0+bmVlZHNIeXBoZW4gPSB0cnVlOworICAgIEFTU0VSVChpc1RleHQo
KSk7CisgICAgbV90ZXh0Q29udGVudC5uZWVkc0h5cGhlbiA9IHRydWU7CiAgICAgbV9sb2dpY2Fs
V2lkdGggKz0gaHlwaGVuTG9naWNhbFdpZHRoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggODY1NmExMGM0ZGY4Li5iZTg4N2RiNmIxZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKQEAgLTEw
MCw3ICsxMDAsNyBAQCBUZXh0VXRpbDo6RmFsbGJhY2tGb250TGlzdCBMaW5lQm94QnVpbGRlcjo6
Y29sbGVjdEZhbGxiYWNrRm9udHMoY29uc3QgSW5saW5lTGV2ZQogICAgICAgICAvLyBTaW1wbGlm
aWVkIHRleHQgbWVhc3VyaW5nIHdvcmtzIHdpdGggcHJpbWFyeSBmb250IG9ubHkuCiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQotICAgIGF1dG8gdGV4dCA9ICpydW4udGV4dENvbnRlbnQoKTsK
KyAgICBhdXRvJiB0ZXh0ID0gcnVuLnRleHRDb250ZW50KCk7CiAgICAgYXV0byBmYWxsYmFja0Zv
bnRzID0gVGV4dFV0aWw6OmZhbGxiYWNrRm9udHNGb3JUZXh0KFN0cmluZ1ZpZXcoaW5saW5lVGV4
dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCksIHN0eWxl
LCB0ZXh0Lm5lZWRzSHlwaGVuID8gVGV4dFV0aWw6OkluY2x1ZGVIeXBoZW46OlllcyA6IFRleHRV
dGlsOjpJbmNsdWRlSHlwaGVuOjpObyk7CiAgICAgaWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eUln
bm9yaW5nTnVsbFJlZmVyZW5jZXMoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTYxMSw5ICs2
MTEsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJbmxpbmVCb3hIZWlnaHRzRm9yTGlu
ZUJveENvbnRhaW5JZkFwcGxpY2FibGUoTGluZUJveAogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgICAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4o
cnVuLmxheW91dEJveCgpKTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBydW4udGV4
dENvbnRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250
ZW50KCk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkg
PyB0ZXh0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiB0ZXh0Qm94LnN0eWxlKCk7Ci0gICAgICAgICAg
ICBhdXRvIGVuY2xvc2luZ0FzY2VudERlc2NlbnRGb3JSdW4gPSBUZXh0VXRpbDo6ZW5jbG9zaW5n
R2x5cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmlu
Zyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpLCBzdHlsZSwgdGV4dEJv
eC5zaG91bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91
bGRVc2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRV
c2VTaW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgIGF1dG8gZW5j
bG9zaW5nQXNjZW50RGVzY2VudEZvclJ1biA9IFRleHRVdGlsOjplbmNsb3NpbmdHbHlwaEJvdW5k
c0ZvclRleHQoU3RyaW5nVmlldyh0ZXh0Qm94LmNvbnRlbnQoKSkuc3Vic3RyaW5nKHRleHRDb250
ZW50LnN0YXJ0LCB0ZXh0Q29udGVudC5sZW5ndGgpLCBzdHlsZSwgdGV4dEJveC5zaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVH
bHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlw
aE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKIAogICAgICAgICAgICAgYXV0byYgcGFyZW50SW5saW5l
Qm94ID0gbGluZUJveC5wYXJlbnRJbmxpbmVCb3gocnVuKTsKICAgICAgICAgICAgIGF1dG8gZW5j
bG9zaW5nQXNjZW50RGVzY2VudEZvcklubGluZUJveCA9IGlubGluZUJveEJvdW5kc01hcC5nZXQo
JnBhcmVudElubGluZUJveCk7CkBAIC02MzcsOSArNjM3LDkgQEAgdm9pZCBMaW5lQm94QnVpbGRl
cjo6YWRqdXN0SW5saW5lQm94SGVpZ2h0c0ZvckxpbmVCb3hDb250YWluSWZBcHBsaWNhYmxlKExp
bmVCb3gKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgYXV0byYgdGV4
dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KHJ1bi5sYXlvdXRCb3goKSk7Ci0gICAgICAg
ICAgICBhdXRvIHRleHRDb250ZW50ID0gcnVuLnRleHRDb250ZW50KCk7CisgICAgICAgICAgICBh
dXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29udGVudCgpOwogICAgICAgICAgICAgYXV0byYg
c3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gdGV4dEJveC5maXJzdExpbmVTdHlsZSgp
IDogdGV4dEJveC5zdHlsZSgpOwotICAgICAgICAgICAgYXV0byBhc2NlbnRBbmREZXNjZW50ID0g
VGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KHRleHRCb3gu
Y29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQtPnN0YXJ0LCB0ZXh0Q29udGVudC0+bGVu
Z3RoKSwgc3R5bGUsIHRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRo
KCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMg
OiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7Cisg
ICAgICAgICAgICBhdXRvIGFzY2VudEFuZERlc2NlbnQgPSBUZXh0VXRpbDo6ZW5jbG9zaW5nR2x5
cGhCb3VuZHNGb3JUZXh0KFN0cmluZ1ZpZXcodGV4dEJveC5jb250ZW50KCkpLnN1YnN0cmluZyh0
ZXh0Q29udGVudC5zdGFydCwgdGV4dENvbnRlbnQubGVuZ3RoKSwgc3R5bGUsIHRleHRCb3guc2hv
dWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNl
U2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2lt
cGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoOjpObyk7CiAKICAgICAgICAgICAgIGluaXRpYWxMZXR0
ZXJEZXNjZW50ID0gYXNjZW50QW5kRGVzY2VudC5kZXNjZW50OwogICAgICAgICAgICAgaWYgKGxp
bmVCb3guYmFzZWxpbmVUeXBlKCkgIT0gRm9udEJhc2VsaW5lOjpBbHBoYWJldGljKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDUwNTYwYTU4NmJkYy4uN2Nm
ZjhkM2JmNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nQnVpbGRlciB0b1N0cmluZyhjb25z
dCBMaW5lOjpSdW5MaXN0JiBydW5zKQogICAgICAgICBpZiAoIXJ1bi5pc1RleHQoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvJiB0ZXh0Q29udGVudCA9IHJ1bi50ZXh0Q29u
dGVudCgpOwotICAgICAgICBsaW5lQ29udGVudEJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcoZG93
bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLmxheW91dEJveCgpKS5jb250ZW50KCkpLnN1YnN0cmlu
Zyh0ZXh0Q29udGVudC0+c3RhcnQsIHRleHRDb250ZW50LT5sZW5ndGgpKTsKKyAgICAgICAgbGlu
ZUNvbnRlbnRCdWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGRvd25jYXN0PElubGluZVRleHRCb3g+
KHJ1bi5sYXlvdXRCb3goKSkuY29udGVudCgpKS5zdWJzdHJpbmcodGV4dENvbnRlbnQuc3RhcnQs
IHRleHRDb250ZW50Lmxlbmd0aCkpOwogICAgIH0KICAgICByZXR1cm4gbGluZUNvbnRlbnRCdWls
ZGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKaW5kZXggZDAxN2M1ODliNWJh
Li40ZDE2NDhiMDA4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uaApAQCAtNTIs
NiArNTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGx5VHJpbW1hYmxlKCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNUcmFpbGluZ1NvZnRIeXBoZW4oKSBjb25zdCB7IHJldHVybiBtX2hhc1RyYWls
aW5nU29mdEh5cGhlbjsgfQogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX2hhc1dpZHRoID8gc3RkOjptYWtlX29wdGlvbmFsKG1fd2lk
dGgpIDogc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7IH07IH0KKyAgICBzdGQ6OnBh
aXI8dWludDhfdCwgdWludDhfdD4gZ2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIHsgbV9n
bHlwaFRvcE92ZXJmbG93LCBtX2dseXBoQm90dG9tT3ZlcmZsb3cgfTsgfQogCiAgICAgY29uc3Qg
SW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElu
bGluZVRleHRCb3g+KGxheW91dEJveCgpKTsgfQogCkBAIC02OCw2ICs2OSw3IEBAIHByaXZhdGU6
CiAgICAgdXNpbmcgSW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCiAgICAgSW5saW5lVGV4dEl0
ZW0gc3BsaXQoc2l6ZV90IGxlZnRTaWRlTGVuZ3RoKTsKKyAgICB2b2lkIHNldEdseXBoT3ZlcmZs
b3coTGF5b3V0VW5pdCB0b3AsIExheW91dFVuaXQgYm90dG9tKTsKIAogICAgIElubGluZVRleHRJ
dGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBVQmlEaUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwgYm9vbCBpc1dvcmRTZXBh
cmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlw
ZSk7CiAgICAgZXhwbGljaXQgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYpOwpA
QCAtOTAsNiArOTIsMTIgQEAgaW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpj
cmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW4KICAgICByZXR1cm4gSW5s
aW5lVGV4dEl0ZW0geyBpbmxpbmVUZXh0Qm94IH07CiB9CiAKK2lubGluZSB2b2lkIElubGluZVRl
eHRJdGVtOjpzZXRHbHlwaE92ZXJmbG93KExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IGJvdHRv
bSkKK3sKKyAgICBtX2dseXBoVG9wT3ZlcmZsb3cgPSB0b3AuY2VpbCgpOworICAgIG1fZ2x5cGhC
b3R0b21PdmVyZmxvdyA9IGJvdHRvbS5jZWlsKCk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwCmluZGV4IDExNDg2YjBmYTE3Yy4uMGU2MGRjZWExYWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXB1dGVJbmtP
dmVyZmxvd0ZvcklubGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYgaW5saW5lQm8KIAogdm9p
ZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0
IExpbmU6OlJ1biYgbGluZVJ1biwgY29uc3QgSW5saW5lUmVjdCYgdGV4dFJ1blJlY3QsIElubGlu
ZURpc3BsYXk6OkJveGVzJiBib3hlcykKIHsKLSAgICBBU1NFUlQobGluZVJ1bi50ZXh0Q29udGVu
dCgpICYmIGlzPElubGluZVRleHRCb3g+KGxpbmVSdW4ubGF5b3V0Qm94KCkpKTsKKyAgICBBU1NF
UlQobGluZVJ1bi5pc1RleHQoKSAmJiBpczxJbmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJv
eCgpKSk7CiAKICAgICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJv
eD4obGluZVJ1bi5sYXlvdXRCb3goKSk7CiAgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0
dGVkTGluZSgpID8gaW5saW5lVGV4dEJveC5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lVGV4dEJv
eC5zdHlsZSgpOwpAQCAtMTk4LDE2ICsxOTgsMjAgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwK
ICAgICAgICAgYWRkVGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1dG8gYWRkR2x5cGhPdmVyZmxv
dyA9IFsmXSB7Ci0gICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGVGb250
Q29kZVBhdGgoKSkgewotICAgICAgICAgICAgICAgIC8vIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0
aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50IHdpdGggcG90ZW50aWFsIGds
eXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBsZVdpdGhHbHlwaE92ZXJmbG93
KS4KKyAgICAgICAgICAgIGF1dG8gZ2x5cGhPdmVyZmxvdyA9IGxpbmVSdW4uZ2x5cGhPdmVyZmxv
dygpOworICAgICAgICAgICAgaWYgKGdseXBoT3ZlcmZsb3cuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gTWF4ZWQtb3V0IGdseXBoIG92ZXJmbG93
IHZhbHVlcyBpbmRpY2F0ZSBhcml0aG1ldGljIG92ZXJmbG93LiBGYWxsYmFjayB0byBjb2xsZWN0
aW5nIG92ZXJmbG93IHBvc3QtbWVhc3VyZS4KKyAgICAgICAgICAgIGNvbnN0ZXhwciBzaXplX3Qg
bWF4aW11bUFzY2VudCA9IDMxOworICAgICAgICAgICAgY29uc3RleHByIHNpemVfdCBtYXhpbXVt
RGVzY2VudCA9IDc7CisgICAgICAgICAgICBpZiAoZ2x5cGhPdmVyZmxvdy50b3AgPT0gbWF4aW11
bUFzY2VudCB8fCBnbHlwaE92ZXJmbG93LmJvdHRvbSA9PSBtYXhpbXVtRGVzY2VudCkgeworICAg
ICAgICAgICAgICAgIGF1dG8gZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudCA9IFRleHRVdGlsOjpl
bmNsb3NpbmdHbHlwaEJvdW5kc0ZvclRleHQoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmco
dGV4dC5zdGFydCwgdGV4dC5sZW5ndGgpLCBzdHlsZSwgaW5saW5lVGV4dEJveC5zaG91bGRVc2VT
aW1wbGVHbHlwaE92ZXJmbG93Q29kZVBhdGgoKSA/IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVH
bHlwaE92ZXJmbG93Q29kZVBhdGg6OlllcyA6IFRleHRVdGlsOjpTaG91bGRVc2VTaW1wbGVHbHlw
aE92ZXJmbG93Q29kZVBhdGg6Ok5vKTsKKyAgICAgICAgICAgICAgICBhdXRvJiBmb250TWV0cmlj
cyA9IHN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CisgICAgICAgICAgICAgICAgZ2x5cGhP
dmVyZmxvdy50b3AgPSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRv
SW50KC1lbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50LmFzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJ
bmxpbmVGb3JtYXR0aW5nVXRpbHM6OmFzY2VudChmb250TWV0cmljcywgRm9udEJhc2VsaW5lOjpB
bHBoYWJldGljLCBpbmxpbmVUZXh0Qm94KSk7CisgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxv
dy5ib3R0b20gPSBzdGQ6Om1heCgwLmYsIElubGluZUZvcm1hdHRpbmdVdGlsczo6c25hcFRvSW50
KGVuY2xvc2luZ0FzY2VudEFuZERlc2NlbnQuZGVzY2VudCwgaW5saW5lVGV4dEJveCkgLSBJbmxp
bmVGb3JtYXR0aW5nVXRpbHM6OmRlc2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxw
aGFiZXRpYywgaW5saW5lVGV4dEJveCkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0
byBlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xvc2luZ0dseXBoQm91
bmRzRm9yVGV4dChTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0LT5zdGFydCwgdGV4
dC0+bGVuZ3RoKSwgc3R5bGUsIGlubGluZVRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVy
Zmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0Nv
ZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxvd0NvZGVQ
YXRoOjpObyk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogVGFrZSBmYWxsYmFjayBmb250cyBpbnRv
IGFjY291bnQuCi0gICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLm1ldHJpY3NP
ZlByaW1hcnlGb250KCk7Ci0gICAgICAgICAgICBhdXRvIHRvcE92ZXJmbG93ID0gc3RkOjptYXgo
MC5mLCBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OnNuYXBUb0ludCgtZW5jbG9zaW5nQXNjZW50QW5k
RGVzY2VudC5hc2NlbnQsIGlubGluZVRleHRCb3gpIC0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjph
c2NlbnQoZm9udE1ldHJpY3MsIEZvbnRCYXNlbGluZTo6QWxwaGFiZXRpYywgaW5saW5lVGV4dEJv
eCkpOwotICAgICAgICAgICAgYXV0byBib3R0b21PdmVyZmxvdyA9IHN0ZDo6bWF4KDAuZiwgSW5s
aW5lRm9ybWF0dGluZ1V0aWxzOjpzbmFwVG9JbnQoZW5jbG9zaW5nQXNjZW50QW5kRGVzY2VudC5k
ZXNjZW50LCBpbmxpbmVUZXh0Qm94KSAtIElubGluZUZvcm1hdHRpbmdVdGlsczo6ZGVzY2VudChm
b250TWV0cmljcywgRm9udEJhc2VsaW5lOjpBbHBoYWJldGljLCBpbmxpbmVUZXh0Qm94KSk7Ci0g
ICAgICAgICAgICBpbmtPdmVyZmxvdy5pbmZsYXRlKHRvcE92ZXJmbG93LCB7IH0sIGJvdHRvbU92
ZXJmbG93LCB7IH0pOworICAgICAgICAgICAgaW5rT3ZlcmZsb3cuaW5mbGF0ZShnbHlwaE92ZXJm
bG93LnRvcCwgeyB9LCBnbHlwaE92ZXJmbG93LmJvdHRvbSwgeyB9KTsKICAgICAgICAgfTsKICAg
ICAgICAgYWRkR2x5cGhPdmVyZmxvdygpOwogCkBAIC0yMjcsNyArMjMxLDcgQEAgdm9pZCBJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6
OlJ1biYgbGluZVJ1biwKICAgICAgICAgICAgICwgaW5rT3ZlcmZsb3cKICAgICAgICAgICAgICwg
aXNGaXJzdEZvcm1hdHRlZExpbmUoKQogICAgICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigp
Ci0gICAgICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCAx
LCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZywgY29udGVudCB9CisgICAgICAgICAg
ICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQuc3RhcnQsIDEsIG9iamVjdFJlcGxh
Y2VtZW50Q2hhcmFjdGVyU3RyaW5nLCBjb250ZW50IH0KICAgICAgICAgICAgICwgaXNDb250ZW50
ZnVsCiAgICAgICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigp
CiAgICAgICAgIH0pOwpAQCAtMjM1LDcgKzIzOSw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4s
CiAgICAgfQogCiAgICAgYXV0byBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciA9IFsmXSB7Ci0gICAg
ICAgIHJldHVybiB0ZXh0LT5uZWVkc0h5cGhlbiA/IG1ha2VTdHJpbmcoU3RyaW5nVmlldyhjb250
ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQsIHRleHQtPmxlbmd0aCksIHN0eWxlLmh5cGhlblN0
cmluZygpKSA6IFN0cmluZygpOworICAgICAgICByZXR1cm4gdGV4dC5uZWVkc0h5cGhlbiA/IG1h
a2VTdHJpbmcoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC5zdGFydCwgdGV4dC5s
ZW5ndGgpLCBzdHlsZS5oeXBoZW5TdHJpbmcoKSkgOiBTdHJpbmcoKTsKICAgICB9OwogICAgIGF1
dG8gc2hhcGluZ0JvdW5kYXJ5ID0gWyZdIHsKICAgICAgICAgaWYgKGxpbmVSdW4uaXNTaGFwaW5n
Qm91bmRhcnlTdGFydCgpKQpAQCAtMjU0LDcgKzI1OCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVS
dW4sCiAgICAgICAgICwgaW5rT3ZlcmZsb3cKICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGlu
ZSgpCiAgICAgICAgICwgbGluZVJ1bi5leHBhbnNpb24oKQotICAgICAgICAsIElubGluZURpc3Bs
YXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGNvbnRlbnQsIGFkanVz
dGVkQ29udGVudFRvUmVuZGVyKCksIHRleHQtPm5lZWRzSHlwaGVuLCBzaGFwaW5nQm91bmRhcnko
KSB9CisgICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC5zdGFydCwgdGV4
dC5sZW5ndGgsIGNvbnRlbnQsIGFkanVzdGVkQ29udGVudFRvUmVuZGVyKCksIHRleHQubmVlZHNI
eXBoZW4sIHNoYXBpbmdCb3VuZGFyeSgpIH0KICAgICAgICAgLCBpc0NvbnRlbnRmdWwKICAgICAg
ICAgLCBpc0xpbmVGdWxseVRydW5jYXRlZEluQmxvY2tEaXJlY3Rpb24oKQogICAgIH0pOwpAQCAt
MjYyLDcgKzI2Niw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRU
ZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAKIHZvaWQgSW5saW5lRGlz
cGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTb2Z0TGluZUJyZWFrRGlzcGxheUJveChjb25zdCBM
aW5lOjpSdW4mIGxpbmVSdW4sIGNvbnN0IElubGluZVJlY3QmIHNvZnRMaW5lQnJlYWtSdW5SZWN0
LCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYgYm94ZXMpCiB7Ci0gICAgQVNTRVJUKGxpbmVSdW4udGV4
dENvbnRlbnQoKSAmJiBpczxJbmxpbmVUZXh0Qm94PihsaW5lUnVuLmxheW91dEJveCgpKSk7Cisg
ICAgQVNTRVJUKGxpbmVSdW4udGV4dENvbnRlbnQoKS5sZW5ndGggJiYgaXM8SW5saW5lVGV4dEJv
eD4obGluZVJ1bi5sYXlvdXRCb3goKSkpOwogCiAgICAgYXV0byYgbGF5b3V0Qm94ID0gbGluZVJ1
bi5sYXlvdXRCb3goKTsKICAgICBhdXRvJiB0ZXh0ID0gbGluZVJ1bi50ZXh0Q29udGVudCgpOwpA
QCAtMjc2LDcgKzI4MCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBl
bmRTb2Z0TGluZUJyZWFrRGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mCiAgICAgICAgICwgc29m
dExpbmVCcmVha1J1blJlY3QKICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAgICAg
ICAgICwgbGluZVJ1bi5leHBhbnNpb24oKQotICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6
VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGRvd25jYXN0PElubGluZVRleHRCb3g+
KGxheW91dEJveCkuY29udGVudCgpIH0KKyAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6OlRl
eHQgeyB0ZXh0LnN0YXJ0LCB0ZXh0Lmxlbmd0aCwgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5
b3V0Qm94KS5jb250ZW50KCkgfQogICAgICAgICAsIGlzQ29udGVudGZ1bAogICAgICAgICAsIGlz
TGluZUZ1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlvbigpCiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1Rl
eHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDY1NjExNGY5Y2QzMy4uZjk0NmQxZDYyMjZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0
aWMgaW5saW5lIElubGluZUxheW91dFVuaXQgc3BhY2VXaWR0aChjb25zdCBGb250Q2FzY2FkZSYg
Zm9udENhc2NhZGUsIGJvb2wgYwogICAgIHJldHVybiBmb250Q2FzY2FkZS53aWR0aE9mU3BhY2VT
dHJpbmcoKTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5s
aW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRl
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VU
cmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5nOjpTcGFj
aW5nU3RhdGUgc3BhY2luZ1N0YXRlKQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgo
Y29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZv
bnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFj
aW5nOjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KQogewogICAgIGlmIChmcm9tID09IHRvKQogICAgICAgICByZXR1cm4gMDsKQEAgLTg5LDcg
Kzg5LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4
dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICAgICAgICAgIHJ1bi5zZXRUYWJT
aXplKHRydWUsIFN0eWxlOjp0b1BsYXRmb3JtKHN0eWxlLnRhYlNpemUoKSkpOwogICAgICAgICAv
LyBGSVhNRTogY29uc2lkZXIgbW92aW5nIHRoaXMgdG8gVGV4dFJ1biBjdG9yCiAgICAgICAgIHJ1
bi5zZXRUZXh0U3BhY2luZ1N0YXRlKHNwYWNpbmdTdGF0ZSk7Ci0gICAgICAgIHdpZHRoID0gZm9u
dENhc2NhZGUud2lkdGgocnVuKTsKKyAgICAgICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChy
dW4sIHsgfSwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogCiAgICAgaWYgKGV4dGVuZGVkTWVhc3Vy
aW5nKQpAQCAtMTA1LDcgKzEwNSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRo
KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9uCiAgICAgcmV0
dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwgZm9udENhc2NhZGUsIGlubGluZVRl
eHRJdGVtLnN0YXJ0KCksIGlubGluZVRleHRJdGVtLmVuZCgpLCBjb250ZW50TG9naWNhbExlZnQp
OwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0
SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5z
aWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxM
ZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxp
bmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0
YXRlIHNwYWNpbmdTdGF0ZSkKK0lubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0
IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRD
YXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24sIFRleHRTcGFjaW5n
OjpTcGFjaW5nU3RhdGUgc3BhY2luZ1N0YXRlLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93
KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGZyb20gPj0gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSk7
CiAgICAgUkVMRUFTRV9BU1NFUlQodG8gPD0gaW5saW5lVGV4dEl0ZW0uZW5kKCkpOwpAQCAtMTIz
LDcgKzEyMyw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGlu
ZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9uCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjptYXgoMC5mLCB3aWR0aCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHdpZHRo
KGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBj
b250ZW50TG9naWNhbExlZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiwgc3BhY2luZ1N0YXRlKTsKKyAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0uaW5s
aW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVmdCwg
dXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uLCBzcGFjaW5nU3RhdGUs
IGdseXBoT3ZlcmZsb3cpOwogfQogCiBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp0cmFpbGlu
Z1doaXRlc3BhY2VXaWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXplX3Qg
ZW5kUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmgKaW5kZXggNmY1NjU4NDZi
MWRjLi5lMGY0OTA1MDIyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Gb250Q2FzY2FkZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5saW5l
SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5saW5lTGluZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTGF5b3V0VW5pdHMuaD4KQEAgLTUzLDggKzU0LDggQEAgY2xhc3MgVGV4dFV0aWwgewogcHVi
bGljOgogICAgIGVudW0gY2xhc3MgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1p
emF0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3
aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgSW5saW5lTGF5
b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0
IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQs
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2lu
Z1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSk7Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQg
d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQg
ZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBV
c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gPSBVc2VUcmFpbGluZ1do
aXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcywgVGV4dFNwYWNpbmc6OlNwYWNpbmdT
dGF0ZSBzcGFjaW5nU3RhdGUgPSB7IH0pOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdp
ZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzLCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0
YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSwgR2x5cGhPdmVyZmxvdyogPSBudWxscHRyKTsKKyAgICBz
dGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3Qg
Rm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5p
dCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGlt
aXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVz
LCBUZXh0U3BhY2luZzo6U3BhY2luZ1N0YXRlIHNwYWNpbmdTdGF0ZSA9IHsgfSwgR2x5cGhPdmVy
ZmxvdyogPSBudWxscHRyKTsKIAogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5n
V2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYs
IHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXplX3QgZW5kUG9zaXRpb24pOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1m
YWlsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9lbW9qaS1nbHlwaC1v
dmVyZmxvdy1yZXBhaW50LWZhaWwtZXhwZWN0ZWQudHh0CmluZGV4IGMxMmJhOWY5M2U0Mi4uMDYy
YjBhN2QzOTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZW1vamktZ2x5
cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvZW1vamktZ2x5cGgtb3ZlcmZsb3ctcmVwYWludC1mYWlsLWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDcgQEAKIChyZXBhaW50IHJlY3RzCiAgIChyZWN0IDggMTAgMjEgMTYpCi0g
IChyZWN0IDggNyA3ODQgMSkKLSAgKHJlY3QgOCA3IDc4NCAxKQorICAocmVjdCA4IC02IDc4NCAx
NCkKKyAgKHJlY3QgOCAtNiA3ODQgMTQpCisgIChyZWN0IDAgLTYgODAwIDYpCiApCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>