<?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>192132</bug_id>
          
          <creation_ts>2018-11-28 19:27:13 -0800</creation_ts>
          <short_desc>CSS subresource loads should not be observable from resource timing if the stylesheet is opaque</short_desc>
          <delta_ts>2018-11-29 15:07:44 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1482805</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-28 19:27:13 -0800</bug_when>
    <thetext>CSS subresource loads should not be observable from resource timing if the stylesheet is opaque.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482808</commentid>
    <comment_count>1</comment_count>
      <attachid>355962</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-28 19:32:10 -0800</bug_when>
    <thetext>Created attachment 355962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482824</commentid>
    <comment_count>2</comment_count>
      <attachid>355969</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-28 20:03:58 -0800</bug_when>
    <thetext>Created attachment 355969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482837</commentid>
    <comment_count>3</comment_count>
      <attachid>355973</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-28 20:54:21 -0800</bug_when>
    <thetext>Created attachment 355973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482986</commentid>
    <comment_count>4</comment_count>
      <attachid>356014</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-29 09:48:53 -0800</bug_when>
    <thetext>Created attachment 356014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483098</commentid>
    <comment_count>5</comment_count>
      <attachid>356014</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-11-29 12:43:30 -0800</bug_when>
    <thetext>Comment on attachment 356014
Patch

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

&gt; LayoutTests/http/tests/security/resources/loading-subresources.css:5
&gt; +}

Maybe add a test for cursor image too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483105</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-11-29 12:58:54 -0800</bug_when>
    <thetext>Masks can reference remote images, but maybe that&apos;s taken care of by the CSSImageValue changes. Filters and clip-path can use URI references (we don&apos;t support those in external files yet, but should).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483142</commentid>
    <comment_count>7</comment_count>
      <attachid>356047</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-29 13:34:15 -0800</bug_when>
    <thetext>Created attachment 356047
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483217</commentid>
    <comment_count>8</comment_count>
      <attachid>356047</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-29 15:06:51 -0800</bug_when>
    <thetext>Comment on attachment 356047
Patch for landing

Clearing flags on attachment: 356047

Committed r238698: &lt;https://trac.webkit.org/changeset/238698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483218</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-29 15:06:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483220</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-29 15:07:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/46355868&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355962</attachid>
            <date>2018-11-28 19:32:10 -0800</date>
            <delta_ts>2018-11-28 20:03:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192132-20181128193209.patch</filename>
            <type>text/plain</type>
            <size>29938</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM3YjcxNDZkOTlkNjE2
MTFlMjIwOGMzZmY5ZjI1YjAzZTg1ZjYzNy4uNDAxZGM3NGNhMDI5ZWQxMGVlYTEwM2VhNTEzNGUw
YTlmYmU0MjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTExLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mgc3VicmVzb3VyY2Ug
bG9hZHMgc2hvdWxkIG5vdCBiZSBvYnNlcnZhYmxlIGZyb20gcmVzb3VyY2UgdGltaW5nIGlmIHRo
ZSBzdHlsZXNoZWV0IGlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFJlc291cmNlTG9hZGVyT3B0aW9ucyB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGxvYWQgaXMgbWFkZSBmcm9tIGEgcmVzb3VyY2UgdGhhdCBpcyBv
cGFxdWUuCisgICAgICAgIE1ha2UgdXNlIG9mIHRoYXQgb3B0aW9uIHRvIGRpc2FibGUgZXhwb3Np
bmcgc3VjaCBsb2FkcyB0byB0aGUgd2ViIHBhZ2UgdGhyb3VnaCByZXNvdXJjZSB0aW1pbmcuCisg
ICAgICAgIFRoZSBzYW1lIG9wdGlvbiBtaWdodCBsYXRlciBiZSB1c2VkIHRvIGJ5cGFzcyBzZXJ2
aWNlIHdvcmtlcnMuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgdGhpcyBvcHRpb24gZm9yIENTUyBz
dWJyZXNvdXJjZSBsb2Fkcy4KKyAgICAgICAgV2hlbiB0aGUgQ1NTIHN0eWxlc2hlZXQgaXMgb3Bh
cXVlIGZvciB0aGUgcGFnZSwgc2V0IHRoaXMgb3B0aW9uLgorCisgICAgICAgIFRlc3RzIHRvIGJl
IGNoZWNrZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAg
ICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpj
YWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
U2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VT
ZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFs
dWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuaDoKKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpzZXRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hl
ZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZUZvbnRGYWNlU3JjVVJJKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZSk6CisgICAgICAgICogaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6aW5p
dGlhbGl6ZVN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpz
ZXRDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uOjpzaG91bGRB
ZGRSZXNvdXJjZVRpbWluZyk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnNyY1ZhbHVlIGNv
bnN0KToKKwogMjAxOC0xMS0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLmh0bWwgaXMgZmxha3kgb24gaU9TIHNpbXVsYXRv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDJhZDgx
OTkyN2EwYjcyODk3ZGVjZjkwY2E2MjM2ZWM4MjdkY2E3ZDEuLjMzYTUyOWU4MTI2NjA3MzEzNTY5
M2UwZDc0N2Q1ZDEyZTlkZTE2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAKQEAgLTM1LDExICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUNTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdlVmFsdWUoUmVmPENTU1ZhbHVlPiYm
IGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCitD
U1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBp
bWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90LCBMb2Fk
ZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpCiAgICAgOiBDU1NWYWx1
ZShDdXJzb3JJbWFnZUNsYXNzKQogICAgICwgbV9pbWFnZVZhbHVlKFdURk1vdmUoaW1hZ2VWYWx1
ZSkpCiAgICAgLCBtX2hhc0hvdFNwb3QoaGFzSG90U3BvdCkKICAgICAsIG1faG90U3BvdChob3RT
cG90KQorICAgICwgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlKGxvYWRlZEZyb21PcGFxdWVTb3Vy
Y2UpCiB7CiAgICAgaWYgKGlzPENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkpCiAg
ICAgICAgIG1fb3JpZ2luYWxVUkwgPSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFs
dWUuZ2V0KCkpLnVybCgpOwpAQCAtMTA2LDcgKzEwNyw3IEBAIHN0ZDo6cGFpcjxDYWNoZWRJbWFn
ZSosIGZsb2F0PiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpsb2FkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VM
b2FkCiAKICAgICBpZiAoYXV0byogY3Vyc29yRWxlbWVudCA9IHVwZGF0ZUN1cnNvckVsZW1lbnQo
KmxvYWRlci5kb2N1bWVudCgpKSkgewogICAgICAgICBpZiAoY3Vyc29yRWxlbWVudC0+aHJlZigp
ICE9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkudXJsKCkpCi0g
ICAgICAgICAgICBtX2ltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobG9hZGVyLmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKGN1cnNvckVsZW1lbnQtPmhyZWYoKSkpOworICAgICAgICAg
ICAgbV9pbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGxvYWRlci5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChjdXJzb3JFbGVtZW50LT5ocmVmKCkpLCBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2UpOwogICAgIH0KIAogICAgIHJldHVybiB7IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1f
aW1hZ2VWYWx1ZS5nZXQoKSkubG9hZEltYWdlKGxvYWRlciwgb3B0aW9ucyksIDEgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCmluZGV4IGUyMmFhMjAxNDFjMDEwNzc4
ZTYxMGNmNjljMGUyMDcxMzQzM2Y5ZmUuLjdlZGFkNjc3ODZjNDRlMTc5MzY3MGRlODY5NGY4Mjkz
N2U3N2I0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaApAQCAt
MjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMwLDE1ICszMSwxNCBAQCBjbGFz
cyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFbGVtZW50Owotc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIGNsYXNz
IFNWR0N1cnNvckVsZW1lbnQ7CiBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBDU1NDdXJzb3JJ
bWFnZVZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKKyAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCwgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZShXVEZNb3ZlKGltYWdlVmFsdWUpLCBo
YXNIb3RTcG90LCBob3RTcG90KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0N1
cnNvckltYWdlVmFsdWUoV1RGTW92ZShpbWFnZVZhbHVlKSwgaGFzSG90U3BvdCwgaG90U3BvdCwg
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkpOwogICAgIH0KIAogICAgIH5DU1NDdXJzb3JJbWFnZVZh
bHVlKCk7CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnNvckVsZW1lbnRD
aGFuZ2VkKFNWR0N1cnNvckVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBDU1NDdXJzb3JJbWFn
ZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0
IEludFBvaW50JiBob3RTcG90KTsKKyAgICBDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1
ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90
LCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKIAogICAgIFNWR0N1cnNvckVsZW1lbnQqIHVwZGF0
ZUN1cnNvckVsZW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIApAQCAtNzYsNiArNzYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9oYXNIb3RTcG90OwogICAgIEludFBvaW50IG1faG90U3BvdDsKICAg
ICBIYXNoU2V0PFNWR0N1cnNvckVsZW1lbnQqPiBtX2N1cnNvckVsZW1lbnRzOworICAgIExvYWRl
ZEZyb21PcGFxdWVTb3VyY2UgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlIHsgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZTo6Tm8gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1NmYxOGEzMDY1
OTFjYTg4ZmE2OTFlNzUyNzQzMjQ5YjJlLi4wZmJjZGM5Y2U0MDc4M2VlYWFkNjRkNmZhYTA4NTY4
ZDljN2VhNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CkBAIC05OCw2ICs5OCw3IEBAIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hl
ZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGlzU1ZHLCBib29sCiAKICAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CisgICAgb3B0aW9ucy5sb2Fk
ZWRGcm9tT3BhcXVlU291cmNlID0gbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlOwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTChtX3Jlc291cmNlKSksIG9wdGlvbnMpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmgKaW5kZXggNjY1MjYzNzUxZmE4NTcyMzZiMWYxMjFmYTI0
NTk1NzgyY2M4ZGE3NS4uZjFiOTVlNzk1ZTk4ZjlkZGI4MjJmODE1OTM4ZTI2NTdiNjcwYTQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFu
ZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM4LDEz
ICszOSwxMyBAQCBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENTU0ZvbnRGYWNl
U3JjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2UpCisg
ICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZhY2VTcmNWYWx1ZShy
ZXNvdXJjZSwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZh
Y2VTcmNWYWx1ZShyZXNvdXJjZSwgZmFsc2UsIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsKICAg
ICB9CiAgICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGVMb2NhbChjb25z
dCBTdHJpbmcmIHJlc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q1NTRm9udEZhY2VTcmNWYWx1ZShyZXNvdXJjZSwgdHJ1ZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NGb250RmFjZVNyY1ZhbHVlKHJlc291cmNlLCB0cnVlLCBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObykpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgcmVzb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlOyB9CkBAIC03MiwxMCArNzMsMTEgQEAgcHVibGlj
OgogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ZvbnRGYWNlU3JjVmFsdWUmKSBjb25zdDsKIAog
cHJpdmF0ZToKLSAgICBDU1NGb250RmFjZVNyY1ZhbHVlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2Us
IGJvb2wgbG9jYWwpCisgICAgQ1NTRm9udEZhY2VTcmNWYWx1ZShjb25zdCBTdHJpbmcmIHJlc291
cmNlLCBib29sIGxvY2FsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVT
b3VyY2UpCiAgICAgICAgIDogQ1NTVmFsdWUoRm9udEZhY2VTcmNDbGFzcykKICAgICAgICAgLCBt
X3Jlc291cmNlKHJlc291cmNlKQogICAgICAgICAsIG1faXNMb2NhbChsb2NhbCkKKyAgICAgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICAsIG1fc3ZnRm9udEZhY2VFbGVtZW50KDApCiAjZW5k
aWYKQEAgLTg1LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9yZXNvdXJjZTsKICAg
ICBTdHJpbmcgbV9mb3JtYXQ7CiAgICAgYm9vbCBtX2lzTG9jYWw7CisgICAgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpObyB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNo
ZWRGb250OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggYTk3
ZGMyMWM4NTQ4NjMyYTlhOTUzNjc5N2M0Mzg3MWI2NjFiMzE5NC4uNmIwMjY2ZDBjMzY4YmYzMjk4
MGM4ZDA2MjIwNTVlM2E5Y2M3ZTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcApAQCAtMzgsOCArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNTU0lt
YWdlU2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUoKQorQ1NTSW1hZ2VTZXRWYWx1ZTo6Q1NTSW1h
Z2VTZXRWYWx1ZShMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2Up
CiAgICAgOiBDU1NWYWx1ZUxpc3QoSW1hZ2VTZXRDbGFzcywgQ29tbWFTZXBhcmF0b3IpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtOTgsNyArOTksMTAgQEAgc3RkOjpwYWlyPENhY2hlZEltYWdlKiwgZmxvYXQ+IENTU0lt
YWdlU2V0VmFsdWU6OmxvYWRCZXN0Rml0SW1hZ2UoQ2FjaGVkUmVzb3VyY2UKICAgICAgICAgLy8g
QWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxlRmFj
dG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAogICAgICAgICAvLyBhbmQgYW55IENTUyB0
cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgK
ICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3Rvcigp
OwotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSksIG9wdGlvbnMpOworCisgICAg
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBsb2FkT3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAg
IGxvYWRPcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2U7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgbG9hZE9wdGlvbnMp
OwogICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzKCkuY3NzKTsKICAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnMpCiAgICAgICAgICAgICByZXF1ZXN0LnVwZGF0ZUZvckFjY2Vzc0NvbnRyb2wo
KmRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCmluZGV4IGU1ODM2
YjdmYzY0NGQ4M2Y4ZmMyMjk0NmQyZDdhMDAxZDg4OTA4ZTMuLmY1ZjQ3Yzg2MDQyMGJlYWJlZDM4
Y2M5MmJhYTE3MmM1MjU5NDJkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzQsMTMgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZEltYWdl
OwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsKLXN0cnVjdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdlU2V0VmFsdWUgZmluYWwgOiBw
dWJsaWMgQ1NTVmFsdWVMaXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0ltYWdlU2V0
VmFsdWU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBjcmVhdGUo
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZShsb2FkZWRGcm9tT3BhcXVlU291
cmNlKSk7CiAgICAgfQogICAgIH5DU1NJbWFnZVNldFZhbHVlKCk7CiAKQEAgLTY0LDcgKzY0LDcg
QEAgcHJvdGVjdGVkOgogICAgIEltYWdlV2l0aFNjYWxlIGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7CiAKIHByaXZhdGU6Ci0gICAgQ1NTSW1hZ2VTZXRWYWx1ZSgpOworICAgIGV4cGxpY2l0IENT
U0ltYWdlU2V0VmFsdWUoTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAKICAgICB2b2lkIGZpbGxJ
bWFnZVNldCgpOwogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlTY2FsZUZhY3RvcihJ
bWFnZVdpdGhTY2FsZSBmaXJzdCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7IHJldHVybiBmaXJz
dC5zY2FsZUZhY3RvciA8IHNlY29uZC5zY2FsZUZhY3RvcjsgfQpAQCAtNzUsNiArNzUsNyBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBWZWN0
b3I8SW1hZ2VXaXRoU2NhbGU+IG1faW1hZ2VzSW5TZXQ7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
VmFsdWUuY3BwCmluZGV4IDRlYTQxMTRjY2Q4OTgwNTUzOTc1ZTUwYWQ4YjU5M2YwNGQ1YjExZjgu
LmUxNDIwZDFlODM1ZWY3NTdiMjQ0OTAyNDZkYzY2MzVjN2VjNDE3ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNTU0ltYWdlVmFsdWU6OkNTU0ltYWdlVmFsdWUoVVJMJiYgdXJsKQorQ1NTSW1h
Z2VWYWx1ZTo6Q1NTSW1hZ2VWYWx1ZShVUkwmJiB1cmwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2Ug
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICAgICA6IENTU1ZhbHVlKEltYWdlQ2xhc3MpCiAgICAg
LCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX2FjY2Vzc2VkSW1hZ2UoZmFsc2UpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtNjIsNyArNjMsOSBAQCBDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogICAgIGlmICghbV9h
Y2Nlc3NlZEltYWdlKSB7CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBvcHRpb25zKTsKKyAgICAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGxvYWRPcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAg
bG9hZE9wdGlvbnMubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9IG1fbG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGxvYWRlci5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBsb2Fk
T3B0aW9ucyk7CiAgICAgICAgIGlmIChtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmNzcyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCmluZGV4
IDc2Zjk0ZGY1ZTQyZTgzM2VhOTg3ZWM5M2NmOTFkMWMyNmMyZmU4NmQuLjU5YmI3MWM0MWVjNjZl
Y2MzZjNiNGI3MzdmNzQ4MTYzYjg2YTkxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
aApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5o
IgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAt
MzIsMTEgKzMzLDEwIEBAIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRGVwcmVj
YXRlZENTU09NVmFsdWU7CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgUmVuZGVy
RWxlbWVudDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdl
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
Q1NTSW1hZ2VWYWx1ZT4gY3JlYXRlKFVSTCYmIHVybCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NJbWFnZVZhbHVlKFdURk1vdmUodXJsKSkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVZh
bHVlPiBjcmVhdGUoVVJMJiYgdXJsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21P
cGFxdWVTb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VWYWx1ZShXVEZNb3Zl
KHVybCksIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsgfQogICAgIHN0YXRpYyBSZWY8Q1NTSW1h
Z2VWYWx1ZT4gY3JlYXRlKENhY2hlZEltYWdlJiBpbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NJbWFnZVZhbHVlKGltYWdlKSk7IH0KICAgICB+Q1NTSW1hZ2VWYWx1ZSgpOwogCkBAIC01
OSwxMyArNTksMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgeyBtX2luaXRpYXRvck5hbWUgPSBuYW1lOyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShVUkwmJik7CisgICAgQ1NTSW1hZ2VWYWx1ZShVUkwm
JiwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAgICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShD
YWNoZWRJbWFnZSYpOwogCiAgICAgVVJMIG1fdXJsOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBtX2NhY2hlZEltYWdlOwogICAgIGJvb2wgbV9hY2Nlc3NlZEltYWdlOwog
ICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmgKaW5kZXggZjY1NDYwY2E1ZDczNzA3MzQ3OTFiNmI3ODhiZGVkZGEwYjAwMTNmYS4uNWQz
N2ZhOGQyZTg1NDg4YjM4YTUxYjdjZDQ3NThlYzU2YThjMjczYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5oCkBAIC0xMjUsNiArMTI1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRh
Y2hGcm9tRG9jdW1lbnQoKSB7IG1fb3duZXJOb2RlID0gbnVsbHB0cjsgfQogCisgICAgYm9vbCBj
YW5BY2Nlc3NSdWxlcygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENTU1N0eWxlU2hlZXQoUmVm
PFN0eWxlU2hlZXRDb250ZW50cz4mJiwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKTsKICAgICBD
U1NTdHlsZVNoZWV0KFJlZjxTdHlsZVNoZWV0Q29udGVudHM+JiYsIE5vZGUqIG93bmVyTm9kZSwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBib29sIGlzSW5saW5lU3R5bGVzaGVl
dCk7CkBAIC0xMzMsOCArMTM1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQ1NTU3R5bGVTaGVl
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJ0ZXh0L2NzcyJfczsgfQogCi0gICAgYm9vbCBjYW5BY2Nlc3NSdWxl
cygpIGNvbnN0OwotCiAgICAgUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gbV9jb250ZW50czsKICAg
ICBib29sIG1faXNJbmxpbmVTdHlsZXNoZWV0OwogICAgIGJvb2wgbV9pc0Rpc2FibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCBkMDk1NThjMzFjMmVkMTA1NzJh
ZDA0ZDUwYTFkYjUxZTU1NzgwYWYxLi42YTQyZmNkOTk3NmE3MTliNGU1MjdhMjVjZTVhZTVhYmI4
OTYyMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtNzIsOCAr
NzIsMTMgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnNldENTU1N0eWxlU2hlZXQoY29uc3QgU3Ry
aW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGMKICAgICBpZiAoIWJhc2VVUkwuaXNOdWxs
KCkpCiAgICAgICAgIGNvbnRleHQuYmFzZVVSTCA9IGJhc2VVUkw7CiAKKyAgICAvLyBGSVhNRTog
U2V0IHRoZSB2aXNpYmlsaXR5IGJhc2VkIG9uIGl0cyBwYXJlbnQgdmlzaWJpbGl0eSBhbmQgY2Fj
aGVkU3R5bGVTaGVldCBjbGVhbmx5bmVzcy4KKyAgICAvLyBJZiBwYXJlbnQgdmlzaWJpbGl0eSBp
cyBvZmYsIHdlIGtlZXAgaXQgdGhpcyB3YXkuCisKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9jdW1l
bnQoKSA6IG51bGxwdHI7CiAgICAgbV9zdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpj
cmVhdGUodGhpcywgaHJlZiwgY29udGV4dCk7CisgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+
aXNDb250ZW50T3BhcXVlKCkgfHwgIWNhY2hlZFN0eWxlU2hlZXQtPmlzQ09SU1NhbWVPcmlnaW4o
KSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5zZXRBc09wYXF1ZSgpOwogICAgIG1fc3R5bGVTaGVl
dC0+cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNhY2hlZFN0eWxlU2hlZXQsIGRvY3VtZW50ID8gJmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cik7CiAKICAgICBtX2xvYWRpbmcgPSBm
YWxzZTsKQEAgLTExNywxMSArMTIyLDEyIEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0
U3R5bGVTaGVldCgpCiAgICAgLy8gRklYTUU6IFNraXAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
Y2hlY2sgd2hlbiBzdHlsZXNoZWV0IGlzIGluIGEgdXNlciBhZ2VudCBzaGFkb3cgdHJlZS4KICAg
ICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjM+
LgogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGFic1VSTCwgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgc3RkOjpudWxsb3B0LCBT
dHJpbmcobV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpKTsKKyAgICAvLyBGSVhNRTogU2V0
IG9wYXF1ZSBsb2FkaW5nIG9wdGlvbi4KICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkK
ICAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KG1fc3R5bGVTaGVldENsaWVudCk7
CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKSB7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0T3B0aW9ucyhSZXNvdXJjZUxvYWRlck9wdGlvbnMoCisgICAgICAgIFJl
c291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zIHsKICAgICAgICAgICAgIFNlbmRDYWxsYmFja1Bv
bGljeTo6RG9Ob3RTZW5kQ2FsbGJhY2tzLAogICAgICAgICAgICAgQ29udGVudFNuaWZmaW5nUG9s
aWN5OjpTbmlmZkNvbnRlbnQsCiAgICAgICAgICAgICBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZm
ZXJEYXRhLApAQCAtMTMzLDcgKzEzOSwxMiBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVz
dFN0eWxlU2hlZXQoKQogICAgICAgICAgICAgQ2VydGlmaWNhdGVJbmZvUG9saWN5OjpEb05vdElu
Y2x1ZGVDZXJ0aWZpY2F0ZUluZm8sCiAgICAgICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2ssCiAgICAgICAgICAgICBEZWZlcnNMb2FkaW5nUG9s
aWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsCi0gICAgICAgICAgICBDYWNoaW5nUG9saWN5OjpBbGxv
d0NhY2hpbmcpKTsKKyAgICAgICAgICAgIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZworICAg
ICAgICB9OworICAgICAgICBvcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX3BhcmVu
dFN0eWxlU2hlZXQtPmlzQ29udGVudE9wYXF1ZSgpID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6
WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm87CisKKyAgICAgICAgcmVxdWVzdC5zZXRP
cHRpb25zKFdURk1vdmUob3B0aW9ucykpOworCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoV1RG
TW92ZShyZXF1ZXN0KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0Q1NTU3R5bGVTaGVldChXVEZNb3Zl
KHJlcXVlc3QpKS52YWx1ZV9vcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0
Q29udGVudHMuaAppbmRleCAyYzJiZDExN2FlMGE1YjIzZGYyNTAxNGI5ZTViOTMxMDdkOTU4YTQ1
Li4yYzc0YWZhMzY1NWRiZDMxYmQ1YWU1YzQ3N2I1Y2RmMTMxZTI0YWUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCkBAIC0xNDQsNiArMTQ0LDkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCisgICAgdm9pZCBzZXRBc09wYXF1ZSgpIHsgbV9w
YXJzZXJDb250ZXh0LmlzQ29udGVudE9wYXF1ZSA9IHRydWU7IH0KKyAgICBib29sIGlzQ29udGVu
dE9wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VyQ29udGV4dC5pc0NvbnRlbnRPcGFxdWU7
IH0KKwogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5
bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0
IENTU1BhcnNlckNvbnRleHQmKTsKICAgICBTdHlsZVNoZWV0Q29udGVudHMoY29uc3QgU3R5bGVT
aGVldENvbnRlbnRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5oCmluZGV4IGVjZWNlZjY3MTRiMmNiODE3Y2U4YjBkNGJjZTQ4MmQ2NTU1ZjA5MGEuLjEw
ODlkMjJkNDFiMThhZTgxNTAyNmU0MGUwZTAyYmZiYWFjODJkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC03NSw2ICs3NSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgYXV0byYgZW5jb2RpbmdGb3JVUkxQYXJzaW5nID0gZW5jb2RpbmcuZW5jb2Rp
bmdGb3JGb3JtU3VibWlzc2lvbk9yVVJMUGFyc2luZygpOwogICAgICAgICByZXR1cm4gVVJMKGJh
c2VVUkwsIHVybCwgZW5jb2RpbmdGb3JVUkxQYXJzaW5nID09IFVURjhFbmNvZGluZygpID8gbnVs
bHB0ciA6ICZlbmNvZGluZ0ZvclVSTFBhcnNpbmcpOwogICAgIH0KKworICAgIGJvb2wgaXNDb250
ZW50T3BhcXVlIHsgZmFsc2UgfTsKIH07CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA1MmYyOGYyNzBjNjM4MWNm
Yjk2NzliNTVjYmU0NjQ3YWY3NTZjOTcyLi41Y2I4OTQ1YjM4ZmE4MTBiMjc3M2UwMmY4MzY3OGU5
YjY2YjIwOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcApAQCAtMjE3MCw3ICsyMTcwLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZUN1cnNvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2UK
ICAgICAgICAgaWYgKCFsaXN0KQogICAgICAgICAgICAgbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlQ29tbWFTZXBhcmF0ZWQoKTsKIAotICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZTo6Y3JlYXRlKGltYWdlLnJlbGVhc2VOb25OdWxsKCksIGhvdFNwb3RTcGVjaWZpZWQs
IGhvdFNwb3QpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKENTU0N1cnNvckltYWdlVmFsdWU6OmNy
ZWF0ZShpbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCBob3RTcG90U3BlY2lmaWVkLCBob3RTcG90LCBj
b250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExv
YWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKSk7CiAgICAgICAgIGlmICghY29uc3VtZUNvbW1hSW5j
bHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CkBAIC00NDM0LDggKzQ0MzQsOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1l
Rm9udEZhY2VTcmNVUkkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0CiAgICAgU3Ry
aW5nIHVybCA9IGNvbnN1bWVVcmxBc1N0cmluZ1ZpZXcocmFuZ2UpLnRvU3RyaW5nKCk7CiAgICAg
aWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVm
UHRyPENTU0ZvbnRGYWNlU3JjVmFsdWU+IHVyaVZhbHVlID0gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6
Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwodXJsKSk7CisKKyAgICBSZWZQdHI8Q1NTRm9udEZh
Y2VTcmNWYWx1ZT4gdXJpVmFsdWUgPSBDU1NGb250RmFjZVNyY1ZhbHVlOjpjcmVhdGUoY29udGV4
dC5jb21wbGV0ZVVSTCh1cmwpLCBjb250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21P
cGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKIAogICAgIGlm
IChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlRm9ybWF0KQogICAgICAgICBy
ZXR1cm4gdXJpVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggMDdjNGQ3MDBjMjliZTAzZTFjMWIzMzk4
NmU5N2I3MTc0YjViMDg4NC4uZDJmMjIzYzNlNGU4NjU5NTIzNzMwODcyOTA4YTUwMmYwODFjYTgx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcApAQCAtMTM1OSwxMyArMTM1OSwxMyBAQCBzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lSW1hZ2VTZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0
IENTU1BhcgogewogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2VDb3B5ID0gcmFuZ2U7CiAg
ICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlQ29weSk7
Ci0gICAgUmVmUHRyPENTU0ltYWdlU2V0VmFsdWU+IGltYWdlU2V0ID0gQ1NTSW1hZ2VTZXRWYWx1
ZTo6Y3JlYXRlKCk7CisgICAgYXV0byBpbWFnZVNldCA9IENTU0ltYWdlU2V0VmFsdWU6OmNyZWF0
ZShjb250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6
IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKICAgICBkbyB7CiAgICAgICAgIEF0b21pY1N0
cmluZyB1cmxWYWx1ZSA9IGNvbnN1bWVVcmxBc1N0cmluZ1ZpZXcoYXJncykudG9BdG9taWNTdHJp
bmcoKTsKICAgICAgICAgaWYgKHVybFZhbHVlLmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBpbWFnZSA9IENTU0ltYWdlVmFs
dWU6OmNyZWF0ZShjb21wbGV0ZVVSTChjb250ZXh0LCB1cmxWYWx1ZSkpOworICAgICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IGltYWdlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNv
bnRleHQsIHVybFZhbHVlKSwgY29udGV4dC5pc0NvbnRlbnRPcGFxdWUgPyBMb2FkZWRGcm9tT3Bh
cXVlU291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CiAgICAgICAgIGlt
YWdlU2V0LT5hcHBlbmQoaW1hZ2UucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICAgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gYXJncy5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgp
OwpAQCAtMTU4MCw3ICsxNTgwLDggQEAgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lSW1hZ2UoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlckNvbnRleHQgY29udGUKIHsKICAgICBB
dG9taWNTdHJpbmcgdXJpID0gY29uc3VtZVVybEFzU3RyaW5nVmlldyhyYW5nZSkudG9BdG9taWNT
dHJpbmcoKTsKICAgICBpZiAoIXVyaS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIENTU0ltYWdl
VmFsdWU6OmNyZWF0ZShjb21wbGV0ZVVSTChjb250ZXh0LCB1cmkpKTsKKyAgICAgICAgcmV0dXJu
IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShjb21wbGV0ZVVSTChjb250ZXh0LCB1cmkpLCBjb250ZXh0
LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZy
b21PcGFxdWVTb3VyY2U6Ok5vKTsKKwogICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1
bmN0aW9uVG9rZW4pIHsKICAgICAgICAgQ1NTVmFsdWVJRCBpZCA9IHJhbmdlLnBlZWsoKS5mdW5j
dGlvbklkKCk7CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVdlYmtpdEltYWdlU2V0IHx8IGlk
ID09IENTU1ZhbHVlSW1hZ2VTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5j
cHAKaW5kZXggYmJhZjA3MzA4M2M3ODA0ODkyNTRlMGEzOWQ1Mzk2NGM0NWNjYzg2Yy4uMWQ4YTZh
OGMzMjcwMjQyNDQ3YjlhMDQ4M2ExMzE3NjQ2Y2ViYjYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIEhUTUxCb2R5RWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmCiAgICAgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIpIHsKICAgICAgICAgU3RyaW5nIHVy
bCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh2YWx1ZSk7CiAgICAgICAgIGlm
ICghdXJsLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0byBpbWFnZVZhbHVlID0gQ1NTSW1h
Z2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSk7CisgICAgICAgICAg
ICBhdXRvIGltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21w
bGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CiAgICAgICAgICAgICBp
bWFnZVZhbHVlLmdldCgpLnNldEluaXRpYXRvcihsb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICBz
dHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwg
V1RGTW92ZShpbWFnZVZhbHVlKSkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKaW5kZXggMDlmZWM2M2U1NDdhOWUxM2Q3YWIyZmViYzhjZDkzNjZlMWQx
ZmM3Zi4uZTcyOWVjOWIwMjA5YmQ1ZTJlOGMzNWMyZWEwZDE0ZGM2MWY5NmUzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtNDAyLDYgKzQwMiw5IEBAIHZvaWQg
SFRNTExpbmtFbGVtZW50Ojppbml0aWFsaXplU3R5bGVTaGVldChSZWY8U3R5bGVTaGVldENvbnRl
bnRzPiYmIHN0eWxlU2hlZXQsCiAgICAgbV9zaGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShX
VEZNb3ZlKHN0eWxlU2hlZXQpLCAqdGhpcywgb3JpZ2luQ2xlYW4pOwogICAgIG1fc2hlZXQtPnNl
dE1lZGlhUXVlcmllcyhNZWRpYVF1ZXJ5U2V0OjpjcmVhdGUobV9tZWRpYSwgY29udGV4dCkpOwog
ICAgIG1fc2hlZXQtPnNldFRpdGxlKHRpdGxlKCkpOworCisgICAgaWYgKCFtX3NoZWV0LT5jYW5B
Y2Nlc3NSdWxlcygpKQorICAgICAgICBzdHlsZVNoZWV0LT5zZXRBc09wYXF1ZSgpOwogfQogCiB2
b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0Q1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYs
IGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBDYWNoZWRD
U1NTdHlsZVNoZWV0KiBjYWNoZWRTdHlsZVNoZWV0KQpAQCAtNDQzLDYgKzQ0Niw4IEBAIHZvaWQg
SFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29u
c3QgVVJMJiBiYXNlVVJMLCBjCiAgICAgYXV0byBzdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRl
bnRzOjpjcmVhdGUoaHJlZiwgcGFyc2VyQ29udGV4dCk7CiAgICAgaW5pdGlhbGl6ZVN0eWxlU2hl
ZXQoc3R5bGVTaGVldC5jb3B5UmVmKCksICpjYWNoZWRTdHlsZVNoZWV0LCBNZWRpYVF1ZXJ5UGFy
c2VyQ29udGV4dChkb2N1bWVudCgpKSk7CiAKKyAgICAvLyBGSVhNRTogU2V0IHRoZSB2aXNpYmls
aXR5IG9wdGlvbiBiYXNlZCBvbiBtX3NoZWV0IGJlaW5nIGNsZWFuIG9yIG5vdC4KKyAgICAvLyBC
ZXN0IGFwcHJvYWNoIG1pZ2h0IGJlIHRvIHNldCBpdCBvbiB0aGUgc3R5bGUgc2hlZXQgY29udGVu
dCBpdHNlbGYgb3IgaXRzIGNvbnRleHQgcGFyc2VyIG90aGVyd2lzZS4KICAgICBzdHlsZVNoZWV0
LmdldCgpLnBhcnNlQXV0aG9yU3R5bGVTaGVldChjYWNoZWRTdHlsZVNoZWV0LCAmZG9jdW1lbnQo
KS5zZWN1cml0eU9yaWdpbigpKTsKIAogICAgIG1fbG9hZGluZyA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNTUyYTRhOTA2OGQzOTc3NzViNmU2
YWQyMjA1NWI5MzVkMzMzODExNC4uZmY5NmY0ZjI0MzViMDk4ZTA2NjYyZjMzY2MyMDVlMDAwYjM3
OTE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC0zMjAs
NyArMzIwLDcgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBlbHNlIGlmIChuYW1lID09
IGJhY2tncm91bmRBdHRyKSB7CiAgICAgICAgIFN0cmluZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXModmFsdWUpOwogICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tn
cm91bmRJbWFnZSwgQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwo
dXJsKSkpKTsKKyAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1By
b3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5j
b21wbGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObykpKTsKICAgICB9IGVs
c2UgaWYgKG5hbWUgPT0gdmFsaWduQXR0cikgewogICAgICAgICBpZiAoIXZhbHVlLmlzRW1wdHko
KSkKICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShz
dHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwCmluZGV4IDFlMjI4YTU3NmZmMTMwNjNjZTRj
ZTM0YzRmN2RmMThiYTI2N2I1Y2YuLmQ3MTI2YzJhZWM1ZjVkODQ3OTIyMjJkMjA3YzQ3Njg5ZjI0
NDVhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3Bw
CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROCiAgICAgZWxzZSBpZiAo
bmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikgewogICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFk
aW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKTsKICAgICAgICAgaWYgKCF1cmwuaXNFbXB0
eSgpKQotICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kSW1hZ2UsIENTU0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBs
ZXRlVVJMKHVybCkpKSk7CisgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3Vt
ZW50KCkuY29tcGxldGVVUkwodXJsKSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pKSk7CiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHZhbGlnbkF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAidG9wIikpCiAgICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgQ1NTVmFsdWVUb3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyT3B0aW9ucy5oCmluZGV4IGYyYmI2ZDFmOThmMWRhNTY0ZDg2YmJkNWJlMWUzM2RlZTQ2
OWVlNTYuLjkzMzc2ZWExNzdmNDg5MzVlNzkxZDA0MjI4YWU4ZWI4YjVmYTNhZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKQEAgLTExOCw2ICsx
MTgsMTEgQEAgZW51bSBjbGFzcyBQcmVmbGlnaHRQb2xpY3kgOiB1aW50OF90IHsKICAgICBQcmV2
ZW50CiB9OwogCitlbnVtIGNsYXNzIExvYWRlZEZyb21PcGFxdWVTb3VyY2UgOiB1aW50OF90IHsK
KyAgICBZZXMsCisgICAgTm8KK307CisKIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMgOiBw
dWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMoKSB7IH0KIApA
QCAtMTYzLDYgKzE2OCw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMgOiBwdWJsaWMg
RmV0Y2hPcHRpb25zIHsKICAgICBBcHBsaWNhdGlvbkNhY2hlTW9kZSBhcHBsaWNhdGlvbkNhY2hl
TW9kZSB7IEFwcGxpY2F0aW9uQ2FjaGVNb2RlOjpVc2UgfTsKICAgICBDbGllbnRDcmVkZW50aWFs
UG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3kgeyBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpD
YW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyB9OwogICAgIFByZWZsaWdodFBvbGljeSBwcmVm
bGlnaHRQb2xpY3kgeyBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIH07CisgICAgTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlIHsgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTo6Tm8gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNwcAppbmRleCA2ZDI4
OTE5MDY1MTg3MzJiOGRmODJiMmNiM2EzZjM5ZjNkMzQ2MTYzLi5mMzFlMzU2NWUxNDNhYzM2ZTZj
NWRlYWVlNGZkZjZhNTdkYzM4YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlVGltaW5nSW5mb3JtYXRpb24uY3BwCkBAIC01Miw2ICs1Miw5IEBAIGJvb2wgUmVz
b3VyY2VUaW1pbmdJbmZvcm1hdGlvbjo6c2hvdWxkQWRkUmVzb3VyY2VUaW1pbmcoQ2FjaGVkUmVz
b3VyY2UmIHJlc291cmNlCiAgICAgaWYgKHJlc291cmNlLndhc0NhbmNlbGVkKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmIChyZXNvdXJjZS5vcHRpb25zKCkubG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSA9PSBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpZZXMpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IDU3Y2IyZGI1OWE0NzdkZWM0NWM1YmZmZmQz
NjllYmU4NGM1YmI0ZDAuLjRjMjIyNWQ1OTYzYjBhNWNiMzY1OTdlNzNlMTYyZjNiOGE2ZGY0Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC01
OCw3ICs1OCw3IEBAIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6flNWR0ZvbnRGYWNlVXJpRWxlbWVu
dCgpCiAKIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnNy
Y1ZhbHVlKCkgY29uc3QKIHsKLSAgICBhdXRvIHNyYyA9IENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNy
ZWF0ZShnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmhyZWZBdHRyLCBYTGlua05hbWVzOjpocmVmQXR0
cikpOworICAgIGF1dG8gc3JjID0gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3JlYXRlKGdldEF0dHJp
YnV0ZShTVkdOYW1lczo6aHJlZkF0dHIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyKSwgTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZTo6Tm8pOwogICAgIEF0b21pY1N0cmluZyB2YWx1ZShhdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKGZvcm1hdEF0dHIpKTsKICAgICBzcmMuZ2V0KCkuc2V0Rm9ybWF0
KHZhbHVlLmlzRW1wdHkoKSA/ICJzdmciIDogdmFsdWUpOyAvLyBEZWZhdWx0IGZvcm1hdAogICAg
IHJldHVybiBzcmM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355969</attachid>
            <date>2018-11-28 20:03:58 -0800</date>
            <delta_ts>2018-11-28 20:52:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192132-20181128200357.patch</filename>
            <type>text/plain</type>
            <size>29958</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM3YjcxNDZkOTlkNjE2
MTFlMjIwOGMzZmY5ZjI1YjAzZTg1ZjYzNy4uNDAxZGM3NGNhMDI5ZWQxMGVlYTEwM2VhNTEzNGUw
YTlmYmU0MjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTExLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mgc3VicmVzb3VyY2Ug
bG9hZHMgc2hvdWxkIG5vdCBiZSBvYnNlcnZhYmxlIGZyb20gcmVzb3VyY2UgdGltaW5nIGlmIHRo
ZSBzdHlsZXNoZWV0IGlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFJlc291cmNlTG9hZGVyT3B0aW9ucyB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGxvYWQgaXMgbWFkZSBmcm9tIGEgcmVzb3VyY2UgdGhhdCBpcyBv
cGFxdWUuCisgICAgICAgIE1ha2UgdXNlIG9mIHRoYXQgb3B0aW9uIHRvIGRpc2FibGUgZXhwb3Np
bmcgc3VjaCBsb2FkcyB0byB0aGUgd2ViIHBhZ2UgdGhyb3VnaCByZXNvdXJjZSB0aW1pbmcuCisg
ICAgICAgIFRoZSBzYW1lIG9wdGlvbiBtaWdodCBsYXRlciBiZSB1c2VkIHRvIGJ5cGFzcyBzZXJ2
aWNlIHdvcmtlcnMuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgdGhpcyBvcHRpb24gZm9yIENTUyBz
dWJyZXNvdXJjZSBsb2Fkcy4KKyAgICAgICAgV2hlbiB0aGUgQ1NTIHN0eWxlc2hlZXQgaXMgb3Bh
cXVlIGZvciB0aGUgcGFnZSwgc2V0IHRoaXMgb3B0aW9uLgorCisgICAgICAgIFRlc3RzIHRvIGJl
IGNoZWNrZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAg
ICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpj
YWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
U2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VT
ZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFs
dWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuaDoKKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpzZXRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hl
ZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZUZvbnRGYWNlU3JjVVJJKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZSk6CisgICAgICAgICogaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6aW5p
dGlhbGl6ZVN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpz
ZXRDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uOjpzaG91bGRB
ZGRSZXNvdXJjZVRpbWluZyk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnNyY1ZhbHVlIGNv
bnN0KToKKwogMjAxOC0xMS0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLmh0bWwgaXMgZmxha3kgb24gaU9TIHNpbXVsYXRv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDJhZDgx
OTkyN2EwYjcyODk3ZGVjZjkwY2E2MjM2ZWM4MjdkY2E3ZDEuLjMzYTUyOWU4MTI2NjA3MzEzNTY5
M2UwZDc0N2Q1ZDEyZTlkZTE2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAKQEAgLTM1LDExICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUNTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdlVmFsdWUoUmVmPENTU1ZhbHVlPiYm
IGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCitD
U1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBp
bWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90LCBMb2Fk
ZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpCiAgICAgOiBDU1NWYWx1
ZShDdXJzb3JJbWFnZUNsYXNzKQogICAgICwgbV9pbWFnZVZhbHVlKFdURk1vdmUoaW1hZ2VWYWx1
ZSkpCiAgICAgLCBtX2hhc0hvdFNwb3QoaGFzSG90U3BvdCkKICAgICAsIG1faG90U3BvdChob3RT
cG90KQorICAgICwgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlKGxvYWRlZEZyb21PcGFxdWVTb3Vy
Y2UpCiB7CiAgICAgaWYgKGlzPENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkpCiAg
ICAgICAgIG1fb3JpZ2luYWxVUkwgPSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFs
dWUuZ2V0KCkpLnVybCgpOwpAQCAtMTA2LDcgKzEwNyw3IEBAIHN0ZDo6cGFpcjxDYWNoZWRJbWFn
ZSosIGZsb2F0PiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpsb2FkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VM
b2FkCiAKICAgICBpZiAoYXV0byogY3Vyc29yRWxlbWVudCA9IHVwZGF0ZUN1cnNvckVsZW1lbnQo
KmxvYWRlci5kb2N1bWVudCgpKSkgewogICAgICAgICBpZiAoY3Vyc29yRWxlbWVudC0+aHJlZigp
ICE9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkudXJsKCkpCi0g
ICAgICAgICAgICBtX2ltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobG9hZGVyLmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKGN1cnNvckVsZW1lbnQtPmhyZWYoKSkpOworICAgICAgICAg
ICAgbV9pbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGxvYWRlci5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChjdXJzb3JFbGVtZW50LT5ocmVmKCkpLCBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2UpOwogICAgIH0KIAogICAgIHJldHVybiB7IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1f
aW1hZ2VWYWx1ZS5nZXQoKSkubG9hZEltYWdlKGxvYWRlciwgb3B0aW9ucyksIDEgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCmluZGV4IGUyMmFhMjAxNDFjMDEwNzc4
ZTYxMGNmNjljMGUyMDcxMzQzM2Y5ZmUuLjdlZGFkNjc3ODZjNDRlMTc5MzY3MGRlODY5NGY4Mjkz
N2U3N2I0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaApAQCAt
MjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMwLDE1ICszMSwxNCBAQCBjbGFz
cyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFbGVtZW50Owotc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIGNsYXNz
IFNWR0N1cnNvckVsZW1lbnQ7CiBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBDU1NDdXJzb3JJ
bWFnZVZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKKyAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCwgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZShXVEZNb3ZlKGltYWdlVmFsdWUpLCBo
YXNIb3RTcG90LCBob3RTcG90KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0N1
cnNvckltYWdlVmFsdWUoV1RGTW92ZShpbWFnZVZhbHVlKSwgaGFzSG90U3BvdCwgaG90U3BvdCwg
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkpOwogICAgIH0KIAogICAgIH5DU1NDdXJzb3JJbWFnZVZh
bHVlKCk7CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnNvckVsZW1lbnRD
aGFuZ2VkKFNWR0N1cnNvckVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBDU1NDdXJzb3JJbWFn
ZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0
IEludFBvaW50JiBob3RTcG90KTsKKyAgICBDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1
ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90
LCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKIAogICAgIFNWR0N1cnNvckVsZW1lbnQqIHVwZGF0
ZUN1cnNvckVsZW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIApAQCAtNzYsNiArNzYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9oYXNIb3RTcG90OwogICAgIEludFBvaW50IG1faG90U3BvdDsKICAg
ICBIYXNoU2V0PFNWR0N1cnNvckVsZW1lbnQqPiBtX2N1cnNvckVsZW1lbnRzOworICAgIExvYWRl
ZEZyb21PcGFxdWVTb3VyY2UgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlIHsgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZTo6Tm8gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1NmYxOGEzMDY1
OTFjYTg4ZmE2OTFlNzUyNzQzMjQ5YjJlLi4wZmJjZGM5Y2U0MDc4M2VlYWFkNjRkNmZhYTA4NTY4
ZDljN2VhNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CkBAIC05OCw2ICs5OCw3IEBAIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hl
ZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGlzU1ZHLCBib29sCiAKICAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CisgICAgb3B0aW9ucy5sb2Fk
ZWRGcm9tT3BhcXVlU291cmNlID0gbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlOwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTChtX3Jlc291cmNlKSksIG9wdGlvbnMpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmgKaW5kZXggNjY1MjYzNzUxZmE4NTcyMzZiMWYxMjFmYTI0
NTk1NzgyY2M4ZGE3NS4uZjFiOTVlNzk1ZTk4ZjlkZGI4MjJmODE1OTM4ZTI2NTdiNjcwYTQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFu
ZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM4LDEz
ICszOSwxMyBAQCBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENTU0ZvbnRGYWNl
U3JjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2UpCisg
ICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZhY2VTcmNWYWx1ZShy
ZXNvdXJjZSwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZh
Y2VTcmNWYWx1ZShyZXNvdXJjZSwgZmFsc2UsIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsKICAg
ICB9CiAgICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGVMb2NhbChjb25z
dCBTdHJpbmcmIHJlc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q1NTRm9udEZhY2VTcmNWYWx1ZShyZXNvdXJjZSwgdHJ1ZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NGb250RmFjZVNyY1ZhbHVlKHJlc291cmNlLCB0cnVlLCBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObykpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgcmVzb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlOyB9CkBAIC03MiwxMCArNzMsMTEgQEAgcHVibGlj
OgogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ZvbnRGYWNlU3JjVmFsdWUmKSBjb25zdDsKIAog
cHJpdmF0ZToKLSAgICBDU1NGb250RmFjZVNyY1ZhbHVlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2Us
IGJvb2wgbG9jYWwpCisgICAgQ1NTRm9udEZhY2VTcmNWYWx1ZShjb25zdCBTdHJpbmcmIHJlc291
cmNlLCBib29sIGxvY2FsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVT
b3VyY2UpCiAgICAgICAgIDogQ1NTVmFsdWUoRm9udEZhY2VTcmNDbGFzcykKICAgICAgICAgLCBt
X3Jlc291cmNlKHJlc291cmNlKQogICAgICAgICAsIG1faXNMb2NhbChsb2NhbCkKKyAgICAgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICAsIG1fc3ZnRm9udEZhY2VFbGVtZW50KDApCiAjZW5k
aWYKQEAgLTg1LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9yZXNvdXJjZTsKICAg
ICBTdHJpbmcgbV9mb3JtYXQ7CiAgICAgYm9vbCBtX2lzTG9jYWw7CisgICAgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpObyB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNo
ZWRGb250OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggYTk3
ZGMyMWM4NTQ4NjMyYTlhOTUzNjc5N2M0Mzg3MWI2NjFiMzE5NC4uNmIwMjY2ZDBjMzY4YmYzMjk4
MGM4ZDA2MjIwNTVlM2E5Y2M3ZTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcApAQCAtMzgsOCArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNTU0lt
YWdlU2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUoKQorQ1NTSW1hZ2VTZXRWYWx1ZTo6Q1NTSW1h
Z2VTZXRWYWx1ZShMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2Up
CiAgICAgOiBDU1NWYWx1ZUxpc3QoSW1hZ2VTZXRDbGFzcywgQ29tbWFTZXBhcmF0b3IpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtOTgsNyArOTksMTAgQEAgc3RkOjpwYWlyPENhY2hlZEltYWdlKiwgZmxvYXQ+IENTU0lt
YWdlU2V0VmFsdWU6OmxvYWRCZXN0Rml0SW1hZ2UoQ2FjaGVkUmVzb3VyY2UKICAgICAgICAgLy8g
QWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxlRmFj
dG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAogICAgICAgICAvLyBhbmQgYW55IENTUyB0
cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgK
ICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3Rvcigp
OwotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSksIG9wdGlvbnMpOworCisgICAg
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBsb2FkT3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAg
IGxvYWRPcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2U7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgbG9hZE9wdGlvbnMp
OwogICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzKCkuY3NzKTsKICAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnMpCiAgICAgICAgICAgICByZXF1ZXN0LnVwZGF0ZUZvckFjY2Vzc0NvbnRyb2wo
KmRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCmluZGV4IGU1ODM2
YjdmYzY0NGQ4M2Y4ZmMyMjk0NmQyZDdhMDAxZDg4OTA4ZTMuLmY1ZjQ3Yzg2MDQyMGJlYWJlZDM4
Y2M5MmJhYTE3MmM1MjU5NDJkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzQsMTMgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZEltYWdl
OwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsKLXN0cnVjdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdlU2V0VmFsdWUgZmluYWwgOiBw
dWJsaWMgQ1NTVmFsdWVMaXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0ltYWdlU2V0
VmFsdWU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBjcmVhdGUo
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZShsb2FkZWRGcm9tT3BhcXVlU291
cmNlKSk7CiAgICAgfQogICAgIH5DU1NJbWFnZVNldFZhbHVlKCk7CiAKQEAgLTY0LDcgKzY0LDcg
QEAgcHJvdGVjdGVkOgogICAgIEltYWdlV2l0aFNjYWxlIGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7CiAKIHByaXZhdGU6Ci0gICAgQ1NTSW1hZ2VTZXRWYWx1ZSgpOworICAgIGV4cGxpY2l0IENT
U0ltYWdlU2V0VmFsdWUoTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAKICAgICB2b2lkIGZpbGxJ
bWFnZVNldCgpOwogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlTY2FsZUZhY3RvcihJ
bWFnZVdpdGhTY2FsZSBmaXJzdCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7IHJldHVybiBmaXJz
dC5zY2FsZUZhY3RvciA8IHNlY29uZC5zY2FsZUZhY3RvcjsgfQpAQCAtNzUsNiArNzUsNyBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBWZWN0
b3I8SW1hZ2VXaXRoU2NhbGU+IG1faW1hZ2VzSW5TZXQ7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
VmFsdWUuY3BwCmluZGV4IDRlYTQxMTRjY2Q4OTgwNTUzOTc1ZTUwYWQ4YjU5M2YwNGQ1YjExZjgu
LmUxNDIwZDFlODM1ZWY3NTdiMjQ0OTAyNDZkYzY2MzVjN2VjNDE3ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNTU0ltYWdlVmFsdWU6OkNTU0ltYWdlVmFsdWUoVVJMJiYgdXJsKQorQ1NTSW1h
Z2VWYWx1ZTo6Q1NTSW1hZ2VWYWx1ZShVUkwmJiB1cmwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2Ug
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICAgICA6IENTU1ZhbHVlKEltYWdlQ2xhc3MpCiAgICAg
LCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX2FjY2Vzc2VkSW1hZ2UoZmFsc2UpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtNjIsNyArNjMsOSBAQCBDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogICAgIGlmICghbV9h
Y2Nlc3NlZEltYWdlKSB7CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBvcHRpb25zKTsKKyAgICAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGxvYWRPcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAg
bG9hZE9wdGlvbnMubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9IG1fbG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGxvYWRlci5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBsb2Fk
T3B0aW9ucyk7CiAgICAgICAgIGlmIChtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmNzcyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCmluZGV4
IDc2Zjk0ZGY1ZTQyZTgzM2VhOTg3ZWM5M2NmOTFkMWMyNmMyZmU4NmQuLjU5YmI3MWM0MWVjNjZl
Y2MzZjNiNGI3MzdmNzQ4MTYzYjg2YTkxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
aApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5o
IgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAt
MzIsMTEgKzMzLDEwIEBAIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRGVwcmVj
YXRlZENTU09NVmFsdWU7CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgUmVuZGVy
RWxlbWVudDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdl
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
Q1NTSW1hZ2VWYWx1ZT4gY3JlYXRlKFVSTCYmIHVybCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NJbWFnZVZhbHVlKFdURk1vdmUodXJsKSkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVZh
bHVlPiBjcmVhdGUoVVJMJiYgdXJsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21P
cGFxdWVTb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VWYWx1ZShXVEZNb3Zl
KHVybCksIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsgfQogICAgIHN0YXRpYyBSZWY8Q1NTSW1h
Z2VWYWx1ZT4gY3JlYXRlKENhY2hlZEltYWdlJiBpbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NJbWFnZVZhbHVlKGltYWdlKSk7IH0KICAgICB+Q1NTSW1hZ2VWYWx1ZSgpOwogCkBAIC01
OSwxMyArNTksMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgeyBtX2luaXRpYXRvck5hbWUgPSBuYW1lOyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShVUkwmJik7CisgICAgQ1NTSW1hZ2VWYWx1ZShVUkwm
JiwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAgICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShD
YWNoZWRJbWFnZSYpOwogCiAgICAgVVJMIG1fdXJsOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBtX2NhY2hlZEltYWdlOwogICAgIGJvb2wgbV9hY2Nlc3NlZEltYWdlOwog
ICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmgKaW5kZXggZjY1NDYwY2E1ZDczNzA3MzQ3OTFiNmI3ODhiZGVkZGEwYjAwMTNmYS4uNWQz
N2ZhOGQyZTg1NDg4YjM4YTUxYjdjZDQ3NThlYzU2YThjMjczYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5oCkBAIC0xMjUsNiArMTI1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRh
Y2hGcm9tRG9jdW1lbnQoKSB7IG1fb3duZXJOb2RlID0gbnVsbHB0cjsgfQogCisgICAgYm9vbCBj
YW5BY2Nlc3NSdWxlcygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENTU1N0eWxlU2hlZXQoUmVm
PFN0eWxlU2hlZXRDb250ZW50cz4mJiwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKTsKICAgICBD
U1NTdHlsZVNoZWV0KFJlZjxTdHlsZVNoZWV0Q29udGVudHM+JiYsIE5vZGUqIG93bmVyTm9kZSwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBib29sIGlzSW5saW5lU3R5bGVzaGVl
dCk7CkBAIC0xMzMsOCArMTM1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQ1NTU3R5bGVTaGVl
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJ0ZXh0L2NzcyJfczsgfQogCi0gICAgYm9vbCBjYW5BY2Nlc3NSdWxl
cygpIGNvbnN0OwotCiAgICAgUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gbV9jb250ZW50czsKICAg
ICBib29sIG1faXNJbmxpbmVTdHlsZXNoZWV0OwogICAgIGJvb2wgbV9pc0Rpc2FibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCBkMDk1NThjMzFjMmVkMTA1NzJh
ZDA0ZDUwYTFkYjUxZTU1NzgwYWYxLi42YTQyZmNkOTk3NmE3MTliNGU1MjdhMjVjZTVhZTVhYmI4
OTYyMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtNzIsOCAr
NzIsMTMgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnNldENTU1N0eWxlU2hlZXQoY29uc3QgU3Ry
aW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGMKICAgICBpZiAoIWJhc2VVUkwuaXNOdWxs
KCkpCiAgICAgICAgIGNvbnRleHQuYmFzZVVSTCA9IGJhc2VVUkw7CiAKKyAgICAvLyBGSVhNRTog
U2V0IHRoZSB2aXNpYmlsaXR5IGJhc2VkIG9uIGl0cyBwYXJlbnQgdmlzaWJpbGl0eSBhbmQgY2Fj
aGVkU3R5bGVTaGVldCBjbGVhbmx5bmVzcy4KKyAgICAvLyBJZiBwYXJlbnQgdmlzaWJpbGl0eSBp
cyBvZmYsIHdlIGtlZXAgaXQgdGhpcyB3YXkuCisKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9jdW1l
bnQoKSA6IG51bGxwdHI7CiAgICAgbV9zdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpj
cmVhdGUodGhpcywgaHJlZiwgY29udGV4dCk7CisgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+
aXNDb250ZW50T3BhcXVlKCkgfHwgIWNhY2hlZFN0eWxlU2hlZXQtPmlzQ09SU1NhbWVPcmlnaW4o
KSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5zZXRBc09wYXF1ZSgpOwogICAgIG1fc3R5bGVTaGVl
dC0+cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNhY2hlZFN0eWxlU2hlZXQsIGRvY3VtZW50ID8gJmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cik7CiAKICAgICBtX2xvYWRpbmcgPSBm
YWxzZTsKQEAgLTExNywxMSArMTIyLDEyIEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0
U3R5bGVTaGVldCgpCiAgICAgLy8gRklYTUU6IFNraXAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
Y2hlY2sgd2hlbiBzdHlsZXNoZWV0IGlzIGluIGEgdXNlciBhZ2VudCBzaGFkb3cgdHJlZS4KICAg
ICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjM+
LgogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGFic1VSTCwgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgc3RkOjpudWxsb3B0LCBT
dHJpbmcobV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpKTsKKyAgICAvLyBGSVhNRTogU2V0
IG9wYXF1ZSBsb2FkaW5nIG9wdGlvbi4KICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkK
ICAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KG1fc3R5bGVTaGVldENsaWVudCk7
CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKSB7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0T3B0aW9ucyhSZXNvdXJjZUxvYWRlck9wdGlvbnMoCisgICAgICAgIFJl
c291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zIHsKICAgICAgICAgICAgIFNlbmRDYWxsYmFja1Bv
bGljeTo6RG9Ob3RTZW5kQ2FsbGJhY2tzLAogICAgICAgICAgICAgQ29udGVudFNuaWZmaW5nUG9s
aWN5OjpTbmlmZkNvbnRlbnQsCiAgICAgICAgICAgICBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZm
ZXJEYXRhLApAQCAtMTMzLDcgKzEzOSwxMiBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVz
dFN0eWxlU2hlZXQoKQogICAgICAgICAgICAgQ2VydGlmaWNhdGVJbmZvUG9saWN5OjpEb05vdElu
Y2x1ZGVDZXJ0aWZpY2F0ZUluZm8sCiAgICAgICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2ssCiAgICAgICAgICAgICBEZWZlcnNMb2FkaW5nUG9s
aWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsCi0gICAgICAgICAgICBDYWNoaW5nUG9saWN5OjpBbGxv
d0NhY2hpbmcpKTsKKyAgICAgICAgICAgIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZworICAg
ICAgICB9OworICAgICAgICBvcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX3BhcmVu
dFN0eWxlU2hlZXQtPmlzQ29udGVudE9wYXF1ZSgpID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6
WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm87CisKKyAgICAgICAgcmVxdWVzdC5zZXRP
cHRpb25zKFdURk1vdmUob3B0aW9ucykpOworCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoV1RG
TW92ZShyZXF1ZXN0KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0Q1NTU3R5bGVTaGVldChXVEZNb3Zl
KHJlcXVlc3QpKS52YWx1ZV9vcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0
Q29udGVudHMuaAppbmRleCAyYzJiZDExN2FlMGE1YjIzZGYyNTAxNGI5ZTViOTMxMDdkOTU4YTQ1
Li4yYzc0YWZhMzY1NWRiZDMxYmQ1YWU1YzQ3N2I1Y2RmMTMxZTI0YWUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCkBAIC0xNDQsNiArMTQ0LDkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCisgICAgdm9pZCBzZXRBc09wYXF1ZSgpIHsgbV9w
YXJzZXJDb250ZXh0LmlzQ29udGVudE9wYXF1ZSA9IHRydWU7IH0KKyAgICBib29sIGlzQ29udGVu
dE9wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VyQ29udGV4dC5pc0NvbnRlbnRPcGFxdWU7
IH0KKwogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5
bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0
IENTU1BhcnNlckNvbnRleHQmKTsKICAgICBTdHlsZVNoZWV0Q29udGVudHMoY29uc3QgU3R5bGVT
aGVldENvbnRlbnRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5oCmluZGV4IGVjZWNlZjY3MTRiMmNiODE3Y2U4YjBkNGJjZTQ4MmQ2NTU1ZjA5MGEuLjEw
ODlkMjJkNDFiMThhZTgxNTAyNmU0MGUwZTAyYmZiYWFjODJkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC03NSw2ICs3NSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgYXV0byYgZW5jb2RpbmdGb3JVUkxQYXJzaW5nID0gZW5jb2RpbmcuZW5jb2Rp
bmdGb3JGb3JtU3VibWlzc2lvbk9yVVJMUGFyc2luZygpOwogICAgICAgICByZXR1cm4gVVJMKGJh
c2VVUkwsIHVybCwgZW5jb2RpbmdGb3JVUkxQYXJzaW5nID09IFVURjhFbmNvZGluZygpID8gbnVs
bHB0ciA6ICZlbmNvZGluZ0ZvclVSTFBhcnNpbmcpOwogICAgIH0KKworICAgIGJvb2wgaXNDb250
ZW50T3BhcXVlIHsgZmFsc2UgfTsKIH07CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA1MmYyOGYyNzBjNjM4MWNm
Yjk2NzliNTVjYmU0NjQ3YWY3NTZjOTcyLi41Y2I4OTQ1YjM4ZmE4MTBiMjc3M2UwMmY4MzY3OGU5
YjY2YjIwOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcApAQCAtMjE3MCw3ICsyMTcwLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZUN1cnNvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2UK
ICAgICAgICAgaWYgKCFsaXN0KQogICAgICAgICAgICAgbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlQ29tbWFTZXBhcmF0ZWQoKTsKIAotICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZTo6Y3JlYXRlKGltYWdlLnJlbGVhc2VOb25OdWxsKCksIGhvdFNwb3RTcGVjaWZpZWQs
IGhvdFNwb3QpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKENTU0N1cnNvckltYWdlVmFsdWU6OmNy
ZWF0ZShpbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCBob3RTcG90U3BlY2lmaWVkLCBob3RTcG90LCBj
b250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExv
YWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKSk7CiAgICAgICAgIGlmICghY29uc3VtZUNvbW1hSW5j
bHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CkBAIC00NDM0LDggKzQ0MzQsOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1l
Rm9udEZhY2VTcmNVUkkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0CiAgICAgU3Ry
aW5nIHVybCA9IGNvbnN1bWVVcmxBc1N0cmluZ1ZpZXcocmFuZ2UpLnRvU3RyaW5nKCk7CiAgICAg
aWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVm
UHRyPENTU0ZvbnRGYWNlU3JjVmFsdWU+IHVyaVZhbHVlID0gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6
Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwodXJsKSk7CisKKyAgICBSZWZQdHI8Q1NTRm9udEZh
Y2VTcmNWYWx1ZT4gdXJpVmFsdWUgPSBDU1NGb250RmFjZVNyY1ZhbHVlOjpjcmVhdGUoY29udGV4
dC5jb21wbGV0ZVVSTCh1cmwpLCBjb250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21P
cGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKIAogICAgIGlm
IChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlRm9ybWF0KQogICAgICAgICBy
ZXR1cm4gdXJpVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggMDdjNGQ3MDBjMjliZTAzZTFjMWIzMzk4
NmU5N2I3MTc0YjViMDg4NC4uYWU5NDg2NGNlMTNiOTNkMjg2ODE0NzMwYjRkODFiMGYyMzE5M2Zl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcApAQCAtMTM1OSwxMyArMTM1OSwxMyBAQCBzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lSW1hZ2VTZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0
IENTU1BhcgogewogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2VDb3B5ID0gcmFuZ2U7CiAg
ICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlQ29weSk7
Ci0gICAgUmVmUHRyPENTU0ltYWdlU2V0VmFsdWU+IGltYWdlU2V0ID0gQ1NTSW1hZ2VTZXRWYWx1
ZTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPENTU0ltYWdlU2V0VmFsdWU+IGltYWdlU2V0ID0gQ1NT
SW1hZ2VTZXRWYWx1ZTo6Y3JlYXRlKGNvbnRleHQuaXNDb250ZW50T3BhcXVlID8gTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pOwogICAgIGRv
IHsKICAgICAgICAgQXRvbWljU3RyaW5nIHVybFZhbHVlID0gY29uc3VtZVVybEFzU3RyaW5nVmll
dyhhcmdzKS50b0F0b21pY1N0cmluZygpOwogICAgICAgICBpZiAodXJsVmFsdWUuaXNOdWxsKCkp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+
IGltYWdlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNvbnRleHQsIHVybFZh
bHVlKSk7CisgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gaW1hZ2UgPSBDU1NJbWFnZVZhbHVlOjpj
cmVhdGUoY29tcGxldGVVUkwoY29udGV4dCwgdXJsVmFsdWUpLCBjb250ZXh0LmlzQ29udGVudE9w
YXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3Vy
Y2U6Ok5vKTsKICAgICAgICAgaW1hZ2VTZXQtPmFwcGVuZChpbWFnZS5yZWxlYXNlTm9uTnVsbCgp
KTsKIAogICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBhcmdzLmNvbnN1bWVJ
bmNsdWRpbmdXaGl0ZXNwYWNlKCk7CkBAIC0xNTgwLDcgKzE1ODAsOCBAQCBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVJbWFnZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyQ29u
dGV4dCBjb250ZQogewogICAgIEF0b21pY1N0cmluZyB1cmkgPSBjb25zdW1lVXJsQXNTdHJpbmdW
aWV3KHJhbmdlKS50b0F0b21pY1N0cmluZygpOwogICAgIGlmICghdXJpLmlzTnVsbCgpKQotICAg
ICAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNvbnRleHQsIHVy
aSkpOworICAgICAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNv
bnRleHQsIHVyaSksIGNvbnRleHQuaXNDb250ZW50T3BhcXVlID8gTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pOworCiAgICAgaWYgKHJhbmdl
LnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewogICAgICAgICBDU1NWYWx1ZUlEIGlk
ID0gcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKTsKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVl
V2Via2l0SW1hZ2VTZXQgfHwgaWQgPT0gQ1NTVmFsdWVJbWFnZVNldCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmNwcAppbmRleCBiYmFmMDczMDgzYzc4MDQ4OTI1NGUwYTM5ZDUz
OTY0YzQ1Y2NjODZjLi4xZDhhNmE4YzMyNzAyNDI0NDdiOWEwNDgzYTEzMTc2NDZjZWJiNjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgSFRNTEJvZHlFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikg
ewogICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2Vz
KHZhbHVlKTsKICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRv
IGltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVS
TCh1cmwpKTsKKyAgICAgICAgICAgIGF1dG8gaW1hZ2VWYWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNy
ZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
Ok5vKTsKICAgICAgICAgICAgIGltYWdlVmFsdWUuZ2V0KCkuc2V0SW5pdGlhdG9yKGxvY2FsTmFt
ZSgpKTsKICAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3Bl
cnR5QmFja2dyb3VuZEltYWdlLCBXVEZNb3ZlKGltYWdlVmFsdWUpKSk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCAwOWZlYzYzZTU0N2E5ZTEz
ZDdhYjJmZWJjOGNkOTM2NmUxZDFmYzdmLi5lNzI5ZWM5YjAyMDliZDVlMmU4YzM1YzJlYTBkMTRk
YzYxZjk2ZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC00
MDIsNiArNDAyLDkgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmluaXRpYWxpemVTdHlsZVNoZWV0
KFJlZjxTdHlsZVNoZWV0Q29udGVudHM+JiYgc3R5bGVTaGVldCwKICAgICBtX3NoZWV0ID0gQ1NT
U3R5bGVTaGVldDo6Y3JlYXRlKFdURk1vdmUoc3R5bGVTaGVldCksICp0aGlzLCBvcmlnaW5DbGVh
bik7CiAgICAgbV9zaGVldC0+c2V0TWVkaWFRdWVyaWVzKE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZSht
X21lZGlhLCBjb250ZXh0KSk7CiAgICAgbV9zaGVldC0+c2V0VGl0bGUodGl0bGUoKSk7CisKKyAg
ICBpZiAoIW1fc2hlZXQtPmNhbkFjY2Vzc1J1bGVzKCkpCisgICAgICAgIHN0eWxlU2hlZXQtPnNl
dEFzT3BhcXVlKCk7CiB9CiAKIHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHlsZVNoZWV0
KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZFN0eWxlU2hlZXQpCkBAIC00
NDMsNiArNDQ2LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldENTU1N0eWxlU2hlZXQoY29u
c3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGMKICAgICBhdXRvIHN0eWxlU2hl
ZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZShocmVmLCBwYXJzZXJDb250ZXh0KTsKICAg
ICBpbml0aWFsaXplU3R5bGVTaGVldChzdHlsZVNoZWV0LmNvcHlSZWYoKSwgKmNhY2hlZFN0eWxl
U2hlZXQsIE1lZGlhUXVlcnlQYXJzZXJDb250ZXh0KGRvY3VtZW50KCkpKTsKIAorICAgIC8vIEZJ
WE1FOiBTZXQgdGhlIHZpc2liaWxpdHkgb3B0aW9uIGJhc2VkIG9uIG1fc2hlZXQgYmVpbmcgY2xl
YW4gb3Igbm90LgorICAgIC8vIEJlc3QgYXBwcm9hY2ggbWlnaHQgYmUgdG8gc2V0IGl0IG9uIHRo
ZSBzdHlsZSBzaGVldCBjb250ZW50IGl0c2VsZiBvciBpdHMgY29udGV4dCBwYXJzZXIgb3RoZXJ3
aXNlLgogICAgIHN0eWxlU2hlZXQuZ2V0KCkucGFyc2VBdXRob3JTdHlsZVNoZWV0KGNhY2hlZFN0
eWxlU2hlZXQsICZkb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgbV9sb2FkaW5n
ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA1
NTJhNGE5MDY4ZDM5Nzc3NWI2ZTZhZDIyMDU1YjkzNWQzMzM4MTE0Li5mZjk2ZjRmMjQzNWIwOThl
MDY2NjJmMzNjYzIwNWUwMDBiMzc5MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
RWxlbWVudC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJgog
ICAgIGVsc2UgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIpIHsKICAgICAgICAgU3RyaW5nIHVy
bCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh2YWx1ZSk7CiAgICAgICAgIGlm
ICghdXJsLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3Bl
cnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9j
dW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpKSkpOworICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIENTU0ltYWdlVmFsdWU6
OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIExvYWRlZEZyb21PcGFxdWVTb3Vy
Y2U6Ok5vKSkpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSB2YWxpZ25BdHRyKSB7CiAgICAgICAg
IGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIHZhbHVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKaW5kZXgg
MWUyMjhhNTc2ZmYxMzA2M2NlNGNlMzRjNGY3ZGYxOGJhMjY3YjVjZi4uZDcxMjZjMmFlYzVmNWQ4
NDc5MjIyMmQyMDdjNDc2ODlmMjQ0NWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVQYXJ0RWxlbWVudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBIVE1MVGFibGVQYXJ0
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE4KICAgICBlbHNlIGlmIChuYW1lID09IGJhY2tncm91bmRBdHRyKSB7CiAgICAgICAgIFN0
cmluZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXModmFsdWUpOwogICAg
ICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1hZ2VWYWx1ZTo6Y3Jl
YXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSkpKTsKKyAgICAgICAgICAgIHN0eWxlLnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFn
ZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9tT3Bh
cXVlU291cmNlOjpObykpKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gdmFsaWduQXR0cikgewog
ICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJ0b3AiKSkK
ICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVRvcCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKaW5kZXggZjJiYjZkMWY5OGYxZGE1
NjRkODZiYmQ1YmUxZTMzZGVlNDY5ZWU1Ni4uOTMzNzZlYTE3N2Y0ODkzNWU3OTFkMDQyMjhhZThl
YjhiNWZhM2FlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaApAQCAtMTE4LDYgKzExOCwxMSBAQCBlbnVtIGNsYXNzIFByZWZsaWdodFBvbGljeSA6
IHVpbnQ4X3QgewogICAgIFByZXZlbnQKIH07CiAKK2VudW0gY2xhc3MgTG9hZGVkRnJvbU9wYXF1
ZVNvdXJjZSA6IHVpbnQ4X3QgeworICAgIFllcywKKyAgICBObworfTsKKwogc3RydWN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogICAgIFJlc291cmNlTG9h
ZGVyT3B0aW9ucygpIHsgfQogCkBAIC0xNjMsNiArMTY4LDcgQEAgc3RydWN0IFJlc291cmNlTG9h
ZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogICAgIEFwcGxpY2F0aW9uQ2FjaGVN
b2RlIGFwcGxpY2F0aW9uQ2FjaGVNb2RlIHsgQXBwbGljYXRpb25DYWNoZU1vZGU6OlVzZSB9Owog
ICAgIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSB7IENsaWVu
dENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzIH07CiAgICAg
UHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSB7IFByZWZsaWdodFBvbGljeTo6Q29uc2lk
ZXIgfTsKKyAgICBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2Ug
eyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5m
b3JtYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5mb3Jt
YXRpb24uY3BwCmluZGV4IDZkMjg5MTkwNjUxODczMmI4ZGY4MmIyY2IzYTNmMzlmM2QzNDYxNjMu
LmYzMWUzNTY1ZTE0M2FjMzZlNmM1ZGVhZWU0ZmRmNmE1N2RjMzhjMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5jcHAKQEAgLTUy
LDYgKzUyLDkgQEAgYm9vbCBSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uOjpzaG91bGRBZGRSZXNv
dXJjZVRpbWluZyhDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UKICAgICBpZiAocmVzb3VyY2Uud2Fz
Q2FuY2VsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKHJlc291cmNlLm9w
dGlvbnMoKS5sb2FkZWRGcm9tT3BhcXVlU291cmNlID09IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
OlllcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggNTdjYjJk
YjU5YTQ3N2RlYzQ1YzViZmZmZDM2OWViZTg0YzViYjRkMC4uNGMyMjI1ZDU5NjNiMGE1Y2IzNjU5
N2U3M2UxNjJmM2I4YTZkZjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojp+
U1ZHRm9udEZhY2VVcmlFbGVtZW50KCkKIAogUmVmPENTU0ZvbnRGYWNlU3JjVmFsdWU+IFNWR0Zv
bnRGYWNlVXJpRWxlbWVudDo6c3JjVmFsdWUoKSBjb25zdAogewotICAgIGF1dG8gc3JjID0gQ1NT
Rm9udEZhY2VTcmNWYWx1ZTo6Y3JlYXRlKGdldEF0dHJpYnV0ZShTVkdOYW1lczo6aHJlZkF0dHIs
IFhMaW5rTmFtZXM6OmhyZWZBdHRyKSk7CisgICAgYXV0byBzcmMgPSBDU1NGb250RmFjZVNyY1Zh
bHVlOjpjcmVhdGUoZ2V0QXR0cmlidXRlKFNWR05hbWVzOjpocmVmQXR0ciwgWExpbmtOYW1lczo6
aHJlZkF0dHIpLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CiAgICAgQXRvbWljU3RyaW5n
IHZhbHVlKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9ybWF0QXR0cikpOwogICAg
IHNyYy5nZXQoKS5zZXRGb3JtYXQodmFsdWUuaXNFbXB0eSgpID8gInN2ZyIgOiB2YWx1ZSk7IC8v
IERlZmF1bHQgZm9ybWF0CiAgICAgcmV0dXJuIHNyYzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355973</attachid>
            <date>2018-11-28 20:54:21 -0800</date>
            <delta_ts>2018-11-29 09:48:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192132-20181128205420.patch</filename>
            <type>text/plain</type>
            <size>29966</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM3YjcxNDZkOTlkNjE2
MTFlMjIwOGMzZmY5ZjI1YjAzZTg1ZjYzNy4uNDAxZGM3NGNhMDI5ZWQxMGVlYTEwM2VhNTEzNGUw
YTlmYmU0MjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTExLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mgc3VicmVzb3VyY2Ug
bG9hZHMgc2hvdWxkIG5vdCBiZSBvYnNlcnZhYmxlIGZyb20gcmVzb3VyY2UgdGltaW5nIGlmIHRo
ZSBzdHlsZXNoZWV0IGlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFJlc291cmNlTG9hZGVyT3B0aW9ucyB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGxvYWQgaXMgbWFkZSBmcm9tIGEgcmVzb3VyY2UgdGhhdCBpcyBv
cGFxdWUuCisgICAgICAgIE1ha2UgdXNlIG9mIHRoYXQgb3B0aW9uIHRvIGRpc2FibGUgZXhwb3Np
bmcgc3VjaCBsb2FkcyB0byB0aGUgd2ViIHBhZ2UgdGhyb3VnaCByZXNvdXJjZSB0aW1pbmcuCisg
ICAgICAgIFRoZSBzYW1lIG9wdGlvbiBtaWdodCBsYXRlciBiZSB1c2VkIHRvIGJ5cGFzcyBzZXJ2
aWNlIHdvcmtlcnMuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgdGhpcyBvcHRpb24gZm9yIENTUyBz
dWJyZXNvdXJjZSBsb2Fkcy4KKyAgICAgICAgV2hlbiB0aGUgQ1NTIHN0eWxlc2hlZXQgaXMgb3Bh
cXVlIGZvciB0aGUgcGFnZSwgc2V0IHRoaXMgb3B0aW9uLgorCisgICAgICAgIFRlc3RzIHRvIGJl
IGNoZWNrZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAg
ICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpj
YWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
U2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VT
ZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFs
dWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuaDoKKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpzZXRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hl
ZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZUZvbnRGYWNlU3JjVVJJKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZSk6CisgICAgICAgICogaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6aW5p
dGlhbGl6ZVN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpz
ZXRDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uOjpzaG91bGRB
ZGRSZXNvdXJjZVRpbWluZyk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnNyY1ZhbHVlIGNv
bnN0KToKKwogMjAxOC0xMS0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLmh0bWwgaXMgZmxha3kgb24gaU9TIHNpbXVsYXRv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDJhZDgx
OTkyN2EwYjcyODk3ZGVjZjkwY2E2MjM2ZWM4MjdkY2E3ZDEuLjMzYTUyOWU4MTI2NjA3MzEzNTY5
M2UwZDc0N2Q1ZDEyZTlkZTE2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAKQEAgLTM1LDExICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUNTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdlVmFsdWUoUmVmPENTU1ZhbHVlPiYm
IGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCitD
U1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBp
bWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90LCBMb2Fk
ZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpCiAgICAgOiBDU1NWYWx1
ZShDdXJzb3JJbWFnZUNsYXNzKQogICAgICwgbV9pbWFnZVZhbHVlKFdURk1vdmUoaW1hZ2VWYWx1
ZSkpCiAgICAgLCBtX2hhc0hvdFNwb3QoaGFzSG90U3BvdCkKICAgICAsIG1faG90U3BvdChob3RT
cG90KQorICAgICwgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlKGxvYWRlZEZyb21PcGFxdWVTb3Vy
Y2UpCiB7CiAgICAgaWYgKGlzPENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkpCiAg
ICAgICAgIG1fb3JpZ2luYWxVUkwgPSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFs
dWUuZ2V0KCkpLnVybCgpOwpAQCAtMTA2LDcgKzEwNyw3IEBAIHN0ZDo6cGFpcjxDYWNoZWRJbWFn
ZSosIGZsb2F0PiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpsb2FkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VM
b2FkCiAKICAgICBpZiAoYXV0byogY3Vyc29yRWxlbWVudCA9IHVwZGF0ZUN1cnNvckVsZW1lbnQo
KmxvYWRlci5kb2N1bWVudCgpKSkgewogICAgICAgICBpZiAoY3Vyc29yRWxlbWVudC0+aHJlZigp
ICE9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkudXJsKCkpCi0g
ICAgICAgICAgICBtX2ltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobG9hZGVyLmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKGN1cnNvckVsZW1lbnQtPmhyZWYoKSkpOworICAgICAgICAg
ICAgbV9pbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGxvYWRlci5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChjdXJzb3JFbGVtZW50LT5ocmVmKCkpLCBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2UpOwogICAgIH0KIAogICAgIHJldHVybiB7IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1f
aW1hZ2VWYWx1ZS5nZXQoKSkubG9hZEltYWdlKGxvYWRlciwgb3B0aW9ucyksIDEgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCmluZGV4IGUyMmFhMjAxNDFjMDEwNzc4
ZTYxMGNmNjljMGUyMDcxMzQzM2Y5ZmUuLjdlZGFkNjc3ODZjNDRlMTc5MzY3MGRlODY5NGY4Mjkz
N2U3N2I0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaApAQCAt
MjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMwLDE1ICszMSwxNCBAQCBjbGFz
cyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFbGVtZW50Owotc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIGNsYXNz
IFNWR0N1cnNvckVsZW1lbnQ7CiBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBDU1NDdXJzb3JJ
bWFnZVZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKKyAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCwgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZShXVEZNb3ZlKGltYWdlVmFsdWUpLCBo
YXNIb3RTcG90LCBob3RTcG90KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0N1
cnNvckltYWdlVmFsdWUoV1RGTW92ZShpbWFnZVZhbHVlKSwgaGFzSG90U3BvdCwgaG90U3BvdCwg
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkpOwogICAgIH0KIAogICAgIH5DU1NDdXJzb3JJbWFnZVZh
bHVlKCk7CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnNvckVsZW1lbnRD
aGFuZ2VkKFNWR0N1cnNvckVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBDU1NDdXJzb3JJbWFn
ZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0
IEludFBvaW50JiBob3RTcG90KTsKKyAgICBDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1
ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90
LCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKIAogICAgIFNWR0N1cnNvckVsZW1lbnQqIHVwZGF0
ZUN1cnNvckVsZW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIApAQCAtNzYsNiArNzYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9oYXNIb3RTcG90OwogICAgIEludFBvaW50IG1faG90U3BvdDsKICAg
ICBIYXNoU2V0PFNWR0N1cnNvckVsZW1lbnQqPiBtX2N1cnNvckVsZW1lbnRzOworICAgIExvYWRl
ZEZyb21PcGFxdWVTb3VyY2UgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlIHsgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZTo6Tm8gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1NmYxOGEzMDY1
OTFjYTg4ZmE2OTFlNzUyNzQzMjQ5YjJlLi4wZmJjZGM5Y2U0MDc4M2VlYWFkNjRkNmZhYTA4NTY4
ZDljN2VhNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CkBAIC05OCw2ICs5OCw3IEBAIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hl
ZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGlzU1ZHLCBib29sCiAKICAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CisgICAgb3B0aW9ucy5sb2Fk
ZWRGcm9tT3BhcXVlU291cmNlID0gbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlOwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTChtX3Jlc291cmNlKSksIG9wdGlvbnMpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmgKaW5kZXggNjY1MjYzNzUxZmE4NTcyMzZiMWYxMjFmYTI0
NTk1NzgyY2M4ZGE3NS4uZjFiOTVlNzk1ZTk4ZjlkZGI4MjJmODE1OTM4ZTI2NTdiNjcwYTQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFu
ZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM4LDEz
ICszOSwxMyBAQCBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENTU0ZvbnRGYWNl
U3JjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2UpCisg
ICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZhY2VTcmNWYWx1ZShy
ZXNvdXJjZSwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZh
Y2VTcmNWYWx1ZShyZXNvdXJjZSwgZmFsc2UsIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsKICAg
ICB9CiAgICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGVMb2NhbChjb25z
dCBTdHJpbmcmIHJlc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q1NTRm9udEZhY2VTcmNWYWx1ZShyZXNvdXJjZSwgdHJ1ZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NGb250RmFjZVNyY1ZhbHVlKHJlc291cmNlLCB0cnVlLCBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObykpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgcmVzb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlOyB9CkBAIC03MiwxMCArNzMsMTEgQEAgcHVibGlj
OgogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ZvbnRGYWNlU3JjVmFsdWUmKSBjb25zdDsKIAog
cHJpdmF0ZToKLSAgICBDU1NGb250RmFjZVNyY1ZhbHVlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2Us
IGJvb2wgbG9jYWwpCisgICAgQ1NTRm9udEZhY2VTcmNWYWx1ZShjb25zdCBTdHJpbmcmIHJlc291
cmNlLCBib29sIGxvY2FsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVT
b3VyY2UpCiAgICAgICAgIDogQ1NTVmFsdWUoRm9udEZhY2VTcmNDbGFzcykKICAgICAgICAgLCBt
X3Jlc291cmNlKHJlc291cmNlKQogICAgICAgICAsIG1faXNMb2NhbChsb2NhbCkKKyAgICAgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICAsIG1fc3ZnRm9udEZhY2VFbGVtZW50KDApCiAjZW5k
aWYKQEAgLTg1LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9yZXNvdXJjZTsKICAg
ICBTdHJpbmcgbV9mb3JtYXQ7CiAgICAgYm9vbCBtX2lzTG9jYWw7CisgICAgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpObyB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNo
ZWRGb250OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggYTk3
ZGMyMWM4NTQ4NjMyYTlhOTUzNjc5N2M0Mzg3MWI2NjFiMzE5NC4uNmIwMjY2ZDBjMzY4YmYzMjk4
MGM4ZDA2MjIwNTVlM2E5Y2M3ZTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcApAQCAtMzgsOCArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNTU0lt
YWdlU2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUoKQorQ1NTSW1hZ2VTZXRWYWx1ZTo6Q1NTSW1h
Z2VTZXRWYWx1ZShMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2Up
CiAgICAgOiBDU1NWYWx1ZUxpc3QoSW1hZ2VTZXRDbGFzcywgQ29tbWFTZXBhcmF0b3IpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtOTgsNyArOTksMTAgQEAgc3RkOjpwYWlyPENhY2hlZEltYWdlKiwgZmxvYXQ+IENTU0lt
YWdlU2V0VmFsdWU6OmxvYWRCZXN0Rml0SW1hZ2UoQ2FjaGVkUmVzb3VyY2UKICAgICAgICAgLy8g
QWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxlRmFj
dG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAogICAgICAgICAvLyBhbmQgYW55IENTUyB0
cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgK
ICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3Rvcigp
OwotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSksIG9wdGlvbnMpOworCisgICAg
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBsb2FkT3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAg
IGxvYWRPcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2U7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgbG9hZE9wdGlvbnMp
OwogICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzKCkuY3NzKTsKICAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnMpCiAgICAgICAgICAgICByZXF1ZXN0LnVwZGF0ZUZvckFjY2Vzc0NvbnRyb2wo
KmRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCmluZGV4IGU1ODM2
YjdmYzY0NGQ4M2Y4ZmMyMjk0NmQyZDdhMDAxZDg4OTA4ZTMuLmY1ZjQ3Yzg2MDQyMGJlYWJlZDM4
Y2M5MmJhYTE3MmM1MjU5NDJkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzQsMTMgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZEltYWdl
OwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsKLXN0cnVjdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdlU2V0VmFsdWUgZmluYWwgOiBw
dWJsaWMgQ1NTVmFsdWVMaXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0ltYWdlU2V0
VmFsdWU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBjcmVhdGUo
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZShsb2FkZWRGcm9tT3BhcXVlU291
cmNlKSk7CiAgICAgfQogICAgIH5DU1NJbWFnZVNldFZhbHVlKCk7CiAKQEAgLTY0LDcgKzY0LDcg
QEAgcHJvdGVjdGVkOgogICAgIEltYWdlV2l0aFNjYWxlIGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7CiAKIHByaXZhdGU6Ci0gICAgQ1NTSW1hZ2VTZXRWYWx1ZSgpOworICAgIGV4cGxpY2l0IENT
U0ltYWdlU2V0VmFsdWUoTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAKICAgICB2b2lkIGZpbGxJ
bWFnZVNldCgpOwogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlTY2FsZUZhY3RvcihJ
bWFnZVdpdGhTY2FsZSBmaXJzdCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7IHJldHVybiBmaXJz
dC5zY2FsZUZhY3RvciA8IHNlY29uZC5zY2FsZUZhY3RvcjsgfQpAQCAtNzUsNiArNzUsNyBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBWZWN0
b3I8SW1hZ2VXaXRoU2NhbGU+IG1faW1hZ2VzSW5TZXQ7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
VmFsdWUuY3BwCmluZGV4IDRlYTQxMTRjY2Q4OTgwNTUzOTc1ZTUwYWQ4YjU5M2YwNGQ1YjExZjgu
LmUxNDIwZDFlODM1ZWY3NTdiMjQ0OTAyNDZkYzY2MzVjN2VjNDE3ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNTU0ltYWdlVmFsdWU6OkNTU0ltYWdlVmFsdWUoVVJMJiYgdXJsKQorQ1NTSW1h
Z2VWYWx1ZTo6Q1NTSW1hZ2VWYWx1ZShVUkwmJiB1cmwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2Ug
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICAgICA6IENTU1ZhbHVlKEltYWdlQ2xhc3MpCiAgICAg
LCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX2FjY2Vzc2VkSW1hZ2UoZmFsc2UpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtNjIsNyArNjMsOSBAQCBDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogICAgIGlmICghbV9h
Y2Nlc3NlZEltYWdlKSB7CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBvcHRpb25zKTsKKyAgICAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGxvYWRPcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAg
bG9hZE9wdGlvbnMubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9IG1fbG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGxvYWRlci5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBsb2Fk
T3B0aW9ucyk7CiAgICAgICAgIGlmIChtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmNzcyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCmluZGV4
IDc2Zjk0ZGY1ZTQyZTgzM2VhOTg3ZWM5M2NmOTFkMWMyNmMyZmU4NmQuLjU5YmI3MWM0MWVjNjZl
Y2MzZjNiNGI3MzdmNzQ4MTYzYjg2YTkxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
aApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5o
IgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAt
MzIsMTEgKzMzLDEwIEBAIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRGVwcmVj
YXRlZENTU09NVmFsdWU7CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgUmVuZGVy
RWxlbWVudDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdl
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
Q1NTSW1hZ2VWYWx1ZT4gY3JlYXRlKFVSTCYmIHVybCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NJbWFnZVZhbHVlKFdURk1vdmUodXJsKSkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVZh
bHVlPiBjcmVhdGUoVVJMJiYgdXJsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21P
cGFxdWVTb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VWYWx1ZShXVEZNb3Zl
KHVybCksIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsgfQogICAgIHN0YXRpYyBSZWY8Q1NTSW1h
Z2VWYWx1ZT4gY3JlYXRlKENhY2hlZEltYWdlJiBpbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NJbWFnZVZhbHVlKGltYWdlKSk7IH0KICAgICB+Q1NTSW1hZ2VWYWx1ZSgpOwogCkBAIC01
OSwxMyArNTksMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgeyBtX2luaXRpYXRvck5hbWUgPSBuYW1lOyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShVUkwmJik7CisgICAgQ1NTSW1hZ2VWYWx1ZShVUkwm
JiwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAgICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShD
YWNoZWRJbWFnZSYpOwogCiAgICAgVVJMIG1fdXJsOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBtX2NhY2hlZEltYWdlOwogICAgIGJvb2wgbV9hY2Nlc3NlZEltYWdlOwog
ICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmgKaW5kZXggZjY1NDYwY2E1ZDczNzA3MzQ3OTFiNmI3ODhiZGVkZGEwYjAwMTNmYS4uNWQz
N2ZhOGQyZTg1NDg4YjM4YTUxYjdjZDQ3NThlYzU2YThjMjczYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5oCkBAIC0xMjUsNiArMTI1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRh
Y2hGcm9tRG9jdW1lbnQoKSB7IG1fb3duZXJOb2RlID0gbnVsbHB0cjsgfQogCisgICAgYm9vbCBj
YW5BY2Nlc3NSdWxlcygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENTU1N0eWxlU2hlZXQoUmVm
PFN0eWxlU2hlZXRDb250ZW50cz4mJiwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKTsKICAgICBD
U1NTdHlsZVNoZWV0KFJlZjxTdHlsZVNoZWV0Q29udGVudHM+JiYsIE5vZGUqIG93bmVyTm9kZSwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBib29sIGlzSW5saW5lU3R5bGVzaGVl
dCk7CkBAIC0xMzMsOCArMTM1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQ1NTU3R5bGVTaGVl
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJ0ZXh0L2NzcyJfczsgfQogCi0gICAgYm9vbCBjYW5BY2Nlc3NSdWxl
cygpIGNvbnN0OwotCiAgICAgUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gbV9jb250ZW50czsKICAg
ICBib29sIG1faXNJbmxpbmVTdHlsZXNoZWV0OwogICAgIGJvb2wgbV9pc0Rpc2FibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCBkMDk1NThjMzFjMmVkMTA1NzJh
ZDA0ZDUwYTFkYjUxZTU1NzgwYWYxLi42YTQyZmNkOTk3NmE3MTliNGU1MjdhMjVjZTVhZTVhYmI4
OTYyMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtNzIsOCAr
NzIsMTMgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnNldENTU1N0eWxlU2hlZXQoY29uc3QgU3Ry
aW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGMKICAgICBpZiAoIWJhc2VVUkwuaXNOdWxs
KCkpCiAgICAgICAgIGNvbnRleHQuYmFzZVVSTCA9IGJhc2VVUkw7CiAKKyAgICAvLyBGSVhNRTog
U2V0IHRoZSB2aXNpYmlsaXR5IGJhc2VkIG9uIGl0cyBwYXJlbnQgdmlzaWJpbGl0eSBhbmQgY2Fj
aGVkU3R5bGVTaGVldCBjbGVhbmx5bmVzcy4KKyAgICAvLyBJZiBwYXJlbnQgdmlzaWJpbGl0eSBp
cyBvZmYsIHdlIGtlZXAgaXQgdGhpcyB3YXkuCisKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9jdW1l
bnQoKSA6IG51bGxwdHI7CiAgICAgbV9zdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpj
cmVhdGUodGhpcywgaHJlZiwgY29udGV4dCk7CisgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+
aXNDb250ZW50T3BhcXVlKCkgfHwgIWNhY2hlZFN0eWxlU2hlZXQtPmlzQ09SU1NhbWVPcmlnaW4o
KSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5zZXRBc09wYXF1ZSgpOwogICAgIG1fc3R5bGVTaGVl
dC0+cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNhY2hlZFN0eWxlU2hlZXQsIGRvY3VtZW50ID8gJmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cik7CiAKICAgICBtX2xvYWRpbmcgPSBm
YWxzZTsKQEAgLTExNywxMSArMTIyLDEyIEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0
U3R5bGVTaGVldCgpCiAgICAgLy8gRklYTUU6IFNraXAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
Y2hlY2sgd2hlbiBzdHlsZXNoZWV0IGlzIGluIGEgdXNlciBhZ2VudCBzaGFkb3cgdHJlZS4KICAg
ICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjM+
LgogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGFic1VSTCwgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgc3RkOjpudWxsb3B0LCBT
dHJpbmcobV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpKTsKKyAgICAvLyBGSVhNRTogU2V0
IG9wYXF1ZSBsb2FkaW5nIG9wdGlvbi4KICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkK
ICAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KG1fc3R5bGVTaGVldENsaWVudCk7
CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKSB7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0T3B0aW9ucyhSZXNvdXJjZUxvYWRlck9wdGlvbnMoCisgICAgICAgIFJl
c291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zIHsKICAgICAgICAgICAgIFNlbmRDYWxsYmFja1Bv
bGljeTo6RG9Ob3RTZW5kQ2FsbGJhY2tzLAogICAgICAgICAgICAgQ29udGVudFNuaWZmaW5nUG9s
aWN5OjpTbmlmZkNvbnRlbnQsCiAgICAgICAgICAgICBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZm
ZXJEYXRhLApAQCAtMTMzLDcgKzEzOSwxMiBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVz
dFN0eWxlU2hlZXQoKQogICAgICAgICAgICAgQ2VydGlmaWNhdGVJbmZvUG9saWN5OjpEb05vdElu
Y2x1ZGVDZXJ0aWZpY2F0ZUluZm8sCiAgICAgICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2ssCiAgICAgICAgICAgICBEZWZlcnNMb2FkaW5nUG9s
aWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsCi0gICAgICAgICAgICBDYWNoaW5nUG9saWN5OjpBbGxv
d0NhY2hpbmcpKTsKKyAgICAgICAgICAgIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZworICAg
ICAgICB9OworICAgICAgICBvcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX3BhcmVu
dFN0eWxlU2hlZXQtPmlzQ29udGVudE9wYXF1ZSgpID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6
WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm87CisKKyAgICAgICAgcmVxdWVzdC5zZXRP
cHRpb25zKFdURk1vdmUob3B0aW9ucykpOworCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoV1RG
TW92ZShyZXF1ZXN0KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0Q1NTU3R5bGVTaGVldChXVEZNb3Zl
KHJlcXVlc3QpKS52YWx1ZV9vcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0
Q29udGVudHMuaAppbmRleCAyYzJiZDExN2FlMGE1YjIzZGYyNTAxNGI5ZTViOTMxMDdkOTU4YTQ1
Li4yYzc0YWZhMzY1NWRiZDMxYmQ1YWU1YzQ3N2I1Y2RmMTMxZTI0YWUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCkBAIC0xNDQsNiArMTQ0LDkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCisgICAgdm9pZCBzZXRBc09wYXF1ZSgpIHsgbV9w
YXJzZXJDb250ZXh0LmlzQ29udGVudE9wYXF1ZSA9IHRydWU7IH0KKyAgICBib29sIGlzQ29udGVu
dE9wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VyQ29udGV4dC5pc0NvbnRlbnRPcGFxdWU7
IH0KKwogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5
bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0
IENTU1BhcnNlckNvbnRleHQmKTsKICAgICBTdHlsZVNoZWV0Q29udGVudHMoY29uc3QgU3R5bGVT
aGVldENvbnRlbnRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5oCmluZGV4IGVjZWNlZjY3MTRiMmNiODE3Y2U4YjBkNGJjZTQ4MmQ2NTU1ZjA5MGEuLjEw
ODlkMjJkNDFiMThhZTgxNTAyNmU0MGUwZTAyYmZiYWFjODJkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC03NSw2ICs3NSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgYXV0byYgZW5jb2RpbmdGb3JVUkxQYXJzaW5nID0gZW5jb2RpbmcuZW5jb2Rp
bmdGb3JGb3JtU3VibWlzc2lvbk9yVVJMUGFyc2luZygpOwogICAgICAgICByZXR1cm4gVVJMKGJh
c2VVUkwsIHVybCwgZW5jb2RpbmdGb3JVUkxQYXJzaW5nID09IFVURjhFbmNvZGluZygpID8gbnVs
bHB0ciA6ICZlbmNvZGluZ0ZvclVSTFBhcnNpbmcpOwogICAgIH0KKworICAgIGJvb2wgaXNDb250
ZW50T3BhcXVlIHsgZmFsc2UgfTsKIH07CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA1MmYyOGYyNzBjNjM4MWNm
Yjk2NzliNTVjYmU0NjQ3YWY3NTZjOTcyLi41Y2I4OTQ1YjM4ZmE4MTBiMjc3M2UwMmY4MzY3OGU5
YjY2YjIwOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcApAQCAtMjE3MCw3ICsyMTcwLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZUN1cnNvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2UK
ICAgICAgICAgaWYgKCFsaXN0KQogICAgICAgICAgICAgbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlQ29tbWFTZXBhcmF0ZWQoKTsKIAotICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZTo6Y3JlYXRlKGltYWdlLnJlbGVhc2VOb25OdWxsKCksIGhvdFNwb3RTcGVjaWZpZWQs
IGhvdFNwb3QpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKENTU0N1cnNvckltYWdlVmFsdWU6OmNy
ZWF0ZShpbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCBob3RTcG90U3BlY2lmaWVkLCBob3RTcG90LCBj
b250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExv
YWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKSk7CiAgICAgICAgIGlmICghY29uc3VtZUNvbW1hSW5j
bHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CkBAIC00NDM0LDggKzQ0MzQsOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1l
Rm9udEZhY2VTcmNVUkkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0CiAgICAgU3Ry
aW5nIHVybCA9IGNvbnN1bWVVcmxBc1N0cmluZ1ZpZXcocmFuZ2UpLnRvU3RyaW5nKCk7CiAgICAg
aWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVm
UHRyPENTU0ZvbnRGYWNlU3JjVmFsdWU+IHVyaVZhbHVlID0gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6
Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwodXJsKSk7CisKKyAgICBSZWZQdHI8Q1NTRm9udEZh
Y2VTcmNWYWx1ZT4gdXJpVmFsdWUgPSBDU1NGb250RmFjZVNyY1ZhbHVlOjpjcmVhdGUoY29udGV4
dC5jb21wbGV0ZVVSTCh1cmwpLCBjb250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21P
cGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKIAogICAgIGlm
IChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlRm9ybWF0KQogICAgICAgICBy
ZXR1cm4gdXJpVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggMDdjNGQ3MDBjMjliZTAzZTFjMWIzMzk4
NmU5N2I3MTc0YjViMDg4NC4uYWU5NDg2NGNlMTNiOTNkMjg2ODE0NzMwYjRkODFiMGYyMzE5M2Zl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcApAQCAtMTM1OSwxMyArMTM1OSwxMyBAQCBzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lSW1hZ2VTZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0
IENTU1BhcgogewogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2VDb3B5ID0gcmFuZ2U7CiAg
ICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlQ29weSk7
Ci0gICAgUmVmUHRyPENTU0ltYWdlU2V0VmFsdWU+IGltYWdlU2V0ID0gQ1NTSW1hZ2VTZXRWYWx1
ZTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPENTU0ltYWdlU2V0VmFsdWU+IGltYWdlU2V0ID0gQ1NT
SW1hZ2VTZXRWYWx1ZTo6Y3JlYXRlKGNvbnRleHQuaXNDb250ZW50T3BhcXVlID8gTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pOwogICAgIGRv
IHsKICAgICAgICAgQXRvbWljU3RyaW5nIHVybFZhbHVlID0gY29uc3VtZVVybEFzU3RyaW5nVmll
dyhhcmdzKS50b0F0b21pY1N0cmluZygpOwogICAgICAgICBpZiAodXJsVmFsdWUuaXNOdWxsKCkp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+
IGltYWdlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNvbnRleHQsIHVybFZh
bHVlKSk7CisgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gaW1hZ2UgPSBDU1NJbWFnZVZhbHVlOjpj
cmVhdGUoY29tcGxldGVVUkwoY29udGV4dCwgdXJsVmFsdWUpLCBjb250ZXh0LmlzQ29udGVudE9w
YXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3Vy
Y2U6Ok5vKTsKICAgICAgICAgaW1hZ2VTZXQtPmFwcGVuZChpbWFnZS5yZWxlYXNlTm9uTnVsbCgp
KTsKIAogICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBhcmdzLmNvbnN1bWVJ
bmNsdWRpbmdXaGl0ZXNwYWNlKCk7CkBAIC0xNTgwLDcgKzE1ODAsOCBAQCBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVJbWFnZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyQ29u
dGV4dCBjb250ZQogewogICAgIEF0b21pY1N0cmluZyB1cmkgPSBjb25zdW1lVXJsQXNTdHJpbmdW
aWV3KHJhbmdlKS50b0F0b21pY1N0cmluZygpOwogICAgIGlmICghdXJpLmlzTnVsbCgpKQotICAg
ICAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNvbnRleHQsIHVy
aSkpOworICAgICAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNv
bnRleHQsIHVyaSksIGNvbnRleHQuaXNDb250ZW50T3BhcXVlID8gTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pOworCiAgICAgaWYgKHJhbmdl
LnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewogICAgICAgICBDU1NWYWx1ZUlEIGlk
ID0gcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKTsKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVl
V2Via2l0SW1hZ2VTZXQgfHwgaWQgPT0gQ1NTVmFsdWVJbWFnZVNldCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmNwcAppbmRleCBiYmFmMDczMDgzYzc4MDQ4OTI1NGUwYTM5ZDUz
OTY0YzQ1Y2NjODZjLi4xZDhhNmE4YzMyNzAyNDI0NDdiOWEwNDgzYTEzMTc2NDZjZWJiNjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgSFRNTEJvZHlFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikg
ewogICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2Vz
KHZhbHVlKTsKICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRv
IGltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVS
TCh1cmwpKTsKKyAgICAgICAgICAgIGF1dG8gaW1hZ2VWYWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNy
ZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
Ok5vKTsKICAgICAgICAgICAgIGltYWdlVmFsdWUuZ2V0KCkuc2V0SW5pdGlhdG9yKGxvY2FsTmFt
ZSgpKTsKICAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3Bl
cnR5QmFja2dyb3VuZEltYWdlLCBXVEZNb3ZlKGltYWdlVmFsdWUpKSk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCAwOWZlYzYzZTU0N2E5ZTEz
ZDdhYjJmZWJjOGNkOTM2NmUxZDFmYzdmLi42OGU3ODY4OGJiNzg2N2YzMmU0YjE1ZjU0NzAzOGM5
MmYwN2IzODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC00
MDIsNiArNDAyLDkgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmluaXRpYWxpemVTdHlsZVNoZWV0
KFJlZjxTdHlsZVNoZWV0Q29udGVudHM+JiYgc3R5bGVTaGVldCwKICAgICBtX3NoZWV0ID0gQ1NT
U3R5bGVTaGVldDo6Y3JlYXRlKFdURk1vdmUoc3R5bGVTaGVldCksICp0aGlzLCBvcmlnaW5DbGVh
bik7CiAgICAgbV9zaGVldC0+c2V0TWVkaWFRdWVyaWVzKE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZSht
X21lZGlhLCBjb250ZXh0KSk7CiAgICAgbV9zaGVldC0+c2V0VGl0bGUodGl0bGUoKSk7CisKKyAg
ICBpZiAoIW1fc2hlZXQtPmNhbkFjY2Vzc1J1bGVzKCkpCisgICAgICAgIG1fc2hlZXQtPmNvbnRl
bnRzKCkuc2V0QXNPcGFxdWUoKTsKIH0KIAogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldENTU1N0
eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkU3R5bGVTaGVl
dCkKQEAgLTQ0Myw2ICs0NDYsOCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0Q1NTU3R5bGVT
aGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgYwogICAgIGF1dG8g
c3R5bGVTaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKGhyZWYsIHBhcnNlckNvbnRl
eHQpOwogICAgIGluaXRpYWxpemVTdHlsZVNoZWV0KHN0eWxlU2hlZXQuY29weVJlZigpLCAqY2Fj
aGVkU3R5bGVTaGVldCwgTWVkaWFRdWVyeVBhcnNlckNvbnRleHQoZG9jdW1lbnQoKSkpOwogCisg
ICAgLy8gRklYTUU6IFNldCB0aGUgdmlzaWJpbGl0eSBvcHRpb24gYmFzZWQgb24gbV9zaGVldCBi
ZWluZyBjbGVhbiBvciBub3QuCisgICAgLy8gQmVzdCBhcHByb2FjaCBtaWdodCBiZSB0byBzZXQg
aXQgb24gdGhlIHN0eWxlIHNoZWV0IGNvbnRlbnQgaXRzZWxmIG9yIGl0cyBjb250ZXh0IHBhcnNl
ciBvdGhlcndpc2UuCiAgICAgc3R5bGVTaGVldC5nZXQoKS5wYXJzZUF1dGhvclN0eWxlU2hlZXQo
Y2FjaGVkU3R5bGVTaGVldCwgJmRvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKSk7CiAKICAgICBt
X2xvYWRpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
CmluZGV4IDU1MmE0YTkwNjhkMzk3Nzc1YjZlNmFkMjIwNTViOTM1ZDMzMzgxMTQuLmZmOTZmNGYy
NDM1YjA5OGUwNjY2MmYzM2NjMjA1ZTAwMGIzNzkxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVFbGVtZW50LmNwcApAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgSFRNTFRhYmxlRWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmCiAgICAgZWxzZSBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikgewogICAgICAgICBT
dHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKTsKICAg
ICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQotICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHko
Q1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIENTU0ltYWdlVmFsdWU6OmNy
ZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCkpKSk7CisgICAgICAgICAgICBzdHlsZS5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1h
Z2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSwgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZTo6Tm8pKSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHZhbGlnbkF0dHIpIHsK
ICAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGln
biwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNw
cAppbmRleCAxZTIyOGE1NzZmZjEzMDYzY2U0Y2UzNGM0ZjdkZjE4YmEyNjdiNWNmLi5kNzEyNmMy
YWVjNWY1ZDg0NzkyMjIyZDIwN2M0NzY4OWYyNDQ1YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEhUTUxU
YWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTgogICAgIGVsc2UgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIpIHsKICAg
ICAgICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh2YWx1
ZSk7CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHN0eWxlLnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZh
bHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpKSkpOworICAgICAgICAgICAg
c3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2Us
IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIExvYWRl
ZEZyb21PcGFxdWVTb3VyY2U6Ok5vKSkpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSB2YWxpZ25B
dHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwg
InRvcCIpKQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIENTU1ZhbHVlVG9wKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaAppbmRleCBmMmJiNmQx
Zjk4ZjFkYTU2NGQ4NmJiZDViZTFlMzNkZWU0NjllZTU2Li45MzM3NmVhMTc3ZjQ4OTM1ZTc5MWQw
NDIyOGFlOGViOGI1ZmEzYWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyT3B0aW9ucy5oCkBAIC0xMTgsNiArMTE4LDExIEBAIGVudW0gY2xhc3MgUHJlZmxpZ2h0
UG9saWN5IDogdWludDhfdCB7CiAgICAgUHJldmVudAogfTsKIAorZW51bSBjbGFzcyBMb2FkZWRG
cm9tT3BhcXVlU291cmNlIDogdWludDhfdCB7CisgICAgWWVzLAorICAgIE5vCit9OworCiBzdHJ1
Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIDogcHVibGljIEZldGNoT3B0aW9ucyB7CiAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zKCkgeyB9CiAKQEAgLTE2Myw2ICsxNjgsNyBAQCBzdHJ1Y3QgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIDogcHVibGljIEZldGNoT3B0aW9ucyB7CiAgICAgQXBwbGljYXRp
b25DYWNoZU1vZGUgYXBwbGljYXRpb25DYWNoZU1vZGUgeyBBcHBsaWNhdGlvbkNhY2hlTW9kZTo6
VXNlIH07CiAgICAgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5
IHsgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMg
fTsKICAgICBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5IHsgUHJlZmxpZ2h0UG9saWN5
OjpDb25zaWRlciB9OworICAgIExvYWRlZEZyb21PcGFxdWVTb3VyY2UgbG9hZGVkRnJvbU9wYXF1
ZVNvdXJjZSB7IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VU
aW1pbmdJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VUaW1p
bmdJbmZvcm1hdGlvbi5jcHAKaW5kZXggNmQyODkxOTA2NTE4NzMyYjhkZjgyYjJjYjNhM2YzOWYz
ZDM0NjE2My4uZjMxZTM1NjVlMTQzYWMzNmU2YzVkZWFlZTRmZGY2YTU3ZGMzOGMzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5mb3JtYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNw
cApAQCAtNTIsNiArNTIsOSBAQCBib29sIFJlc291cmNlVGltaW5nSW5mb3JtYXRpb246OnNob3Vs
ZEFkZFJlc291cmNlVGltaW5nKENhY2hlZFJlc291cmNlJiByZXNvdXJjZQogICAgIGlmIChyZXNv
dXJjZS53YXNDYW5jZWxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAocmVz
b3VyY2Uub3B0aW9ucygpLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPT0gTG9hZGVkRnJvbU9wYXF1
ZVNvdXJjZTo6WWVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRl
eCA1N2NiMmRiNTlhNDc3ZGVjNDVjNWJmZmZkMzY5ZWJlODRjNWJiNGQwLi40YzIyMjVkNTk2M2Iw
YTVjYjM2NTk3ZTczZTE2MmYzYjhhNmRmNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBTVkdGb250RmFjZVVyaUVs
ZW1lbnQ6On5TVkdGb250RmFjZVVyaUVsZW1lbnQoKQogCiBSZWY8Q1NTRm9udEZhY2VTcmNWYWx1
ZT4gU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpzcmNWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgYXV0byBz
cmMgPSBDU1NGb250RmFjZVNyY1ZhbHVlOjpjcmVhdGUoZ2V0QXR0cmlidXRlKFNWR05hbWVzOjpo
cmVmQXR0ciwgWExpbmtOYW1lczo6aHJlZkF0dHIpKTsKKyAgICBhdXRvIHNyYyA9IENTU0ZvbnRG
YWNlU3JjVmFsdWU6OmNyZWF0ZShnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmhyZWZBdHRyLCBYTGlu
a05hbWVzOjpocmVmQXR0ciksIExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKICAgICBBdG9t
aWNTdHJpbmcgdmFsdWUoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihmb3JtYXRBdHRy
KSk7CiAgICAgc3JjLmdldCgpLnNldEZvcm1hdCh2YWx1ZS5pc0VtcHR5KCkgPyAic3ZnIiA6IHZh
bHVlKTsgLy8gRGVmYXVsdCBmb3JtYXQKICAgICByZXR1cm4gc3JjOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356014</attachid>
            <date>2018-11-29 09:48:53 -0800</date>
            <delta_ts>2018-11-29 13:34:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192132-20181129094852.patch</filename>
            <type>text/plain</type>
            <size>39541</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM3YjcxNDZkOTlkNjE2
MTFlMjIwOGMzZmY5ZjI1YjAzZTg1ZjYzNy4uMDg5NDI1NmY5N2Y2ODE0YWQ5ODk3ZjQ4ZDMyODkw
NmVkNmI3NjkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE4LTExLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mgc3VicmVzb3VyY2Ug
bG9hZHMgc2hvdWxkIG5vdCBiZSBvYnNlcnZhYmxlIGZyb20gcmVzb3VyY2UgdGltaW5nIGlmIHRo
ZSBzdHlsZXNoZWV0IGlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFJlc291cmNlTG9hZGVyT3B0aW9ucyB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGxvYWQgaXMgbWFkZSBmcm9tIGEgcmVzb3VyY2UgdGhhdCBpcyBv
cGFxdWUuCisgICAgICAgIE1ha2UgdXNlIG9mIHRoYXQgb3B0aW9uIHRvIGRpc2FibGUgZXhwb3Np
bmcgc3VjaCBsb2FkcyB0byB0aGUgd2ViIHBhZ2UgdGhyb3VnaCByZXNvdXJjZSB0aW1pbmcuCisg
ICAgICAgIFRoZSBzYW1lIG9wdGlvbiBtaWdodCBsYXRlciBiZSB1c2VkIHRvIGJ5cGFzcyBzZXJ2
aWNlIHdvcmtlcnMuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgdGhpcyBvcHRpb24gZm9yIENTUyBz
dWJyZXNvdXJjZSBsb2Fkcy4KKyAgICAgICAgV2hlbiB0aGUgQ1NTIHN0eWxlc2hlZXQgaXMgb3Bh
cXVlIGZvciB0aGUgcGFnZSwgc2V0IHRoaXMgb3B0aW9uLgorCisgICAgICAgIFRlc3Q6IGh0dHAv
dGVzdHMvc2VjdXJpdHkvY2xlYW4tb3JpZ2luLWV4cG9zZWQtcmVzb3VyY2UtdGltaW5nLmh0bWwK
KyAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcmVzb3VyY2Ut
dGltaW5nLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6bG9hZEltYWdlKToKKyAg
ICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NGb250
RmFjZVNyY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6
OmNhY2hlZEZvbnQpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmg6CisgICAg
ICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VTZXRWYWx1ZTo6Q1NTSW1hZ2VTZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFn
ZVNldFZhbHVlOjpsb2FkQmVzdEZpdEltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ltYWdlVmFsdWU6OkNTU0ltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VWYWx1ZTo6bG9hZEltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5oOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0Lmg6CisgICAgICAgICogY3NzL1N0eWxlUnVsZUlt
cG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVJbXBvcnQ6OnNldENTU1N0eWxl
U2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdW1lRm9udEZhY2VTcmNVUkkpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUltYWdlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUltYWdlKToKKyAgICAgICAgKiBodG1s
L0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpp
bml0aWFsaXplU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6
OnNldENTU1N0eWxlU2hlZXQpOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9h
ZGVyT3B0aW9ucy5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVGltaW5nSW5mb3JtYXRpb246OnNob3Vs
ZEFkZFJlc291cmNlVGltaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6c3JjVmFsdWUg
Y29uc3QpOgorCiAyMDE4LTExLTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi10cmFuc2NlaXZlcnMuaHR0cHMuaHRtbCBpcyBmbGFreSBvbiBpT1Mgc2ltdWxh
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMmFk
ODE5OTI3YTBiNzI4OTdkZWNmOTBjYTYyMzZlYzgyN2RjYTdkMS4uMzNhNTI5ZTgxMjY2MDczMTM1
NjkzZTBkNzQ3ZDVkMTJlOWRlMTYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcApAQCAtMzUsMTEgKzM1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZShSZWY8Q1NTVmFsdWU+
JiYgaW1hZ2VWYWx1ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkK
K0NTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdlVmFsdWUoUmVmPENTU1ZhbHVlPiYm
IGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QsIExv
YWRlZEZyb21PcGFxdWVTb3VyY2UgbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICAgICA6IENTU1Zh
bHVlKEN1cnNvckltYWdlQ2xhc3MpCiAgICAgLCBtX2ltYWdlVmFsdWUoV1RGTW92ZShpbWFnZVZh
bHVlKSkKICAgICAsIG1faGFzSG90U3BvdChoYXNIb3RTcG90KQogICAgICwgbV9ob3RTcG90KGhv
dFNwb3QpCisgICAgLCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSkKIHsKICAgICBpZiAoaXM8Q1NTSW1hZ2VWYWx1ZT4obV9pbWFnZVZhbHVlLmdldCgpKSkK
ICAgICAgICAgbV9vcmlnaW5hbFVSTCA9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1faW1hZ2VW
YWx1ZS5nZXQoKSkudXJsKCk7CkBAIC0xMDYsNyArMTA3LDcgQEAgc3RkOjpwYWlyPENhY2hlZElt
YWdlKiwgZmxvYXQ+IENTU0N1cnNvckltYWdlVmFsdWU6OmxvYWRJbWFnZShDYWNoZWRSZXNvdXJj
ZUxvYWQKIAogICAgIGlmIChhdXRvKiBjdXJzb3JFbGVtZW50ID0gdXBkYXRlQ3Vyc29yRWxlbWVu
dCgqbG9hZGVyLmRvY3VtZW50KCkpKSB7CiAgICAgICAgIGlmIChjdXJzb3JFbGVtZW50LT5ocmVm
KCkgIT0gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4obV9pbWFnZVZhbHVlLmdldCgpKS51cmwoKSkK
LSAgICAgICAgICAgIG1faW1hZ2VWYWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShsb2FkZXIu
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoY3Vyc29yRWxlbWVudC0+aHJlZigpKSk7CisgICAgICAg
ICAgICBtX2ltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobG9hZGVyLmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKGN1cnNvckVsZW1lbnQtPmhyZWYoKSksIG1fbG9hZGVkRnJvbU9wYXF1
ZVNvdXJjZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHsgZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4o
bV9pbWFnZVZhbHVlLmdldCgpKS5sb2FkSW1hZ2UobG9hZGVyLCBvcHRpb25zKSwgMSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmgKaW5kZXggZTIyYWEyMDE0MWMwMTA3
NzhlNjEwY2Y2OWMwZTIwNzEzNDMzZjlmZS4uN2VkYWQ2Nzc4NmM0NGUxNzkzNjcwZGU4Njk0Zjgy
OTM3ZTc3YjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdl
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCkBA
IC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkludFBv
aW50LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzAsMTUgKzMxLDE0IEBAIGNs
YXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIEVsZW1lbnQ7Ci1zdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zOwogY2xh
c3MgU1ZHQ3Vyc29yRWxlbWVudDsKIGNsYXNzIFNWR0VsZW1lbnQ7CiAKIGNsYXNzIENTU0N1cnNv
ckltYWdlVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZT4gY3JlYXRlKFJlZjxDU1NWYWx1ZT4mJiBpbWFnZVZh
bHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQorICAgIHN0YXRp
YyBSZWY8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZT4gY3JlYXRlKFJlZjxDU1NWYWx1ZT4mJiBpbWFnZVZh
bHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90LCBMb2FkZWRGcm9t
T3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDU1NDdXJzb3JJbWFnZVZhbHVlKFdURk1vdmUoaW1hZ2VWYWx1ZSks
IGhhc0hvdFNwb3QsIGhvdFNwb3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZShXVEZNb3ZlKGltYWdlVmFsdWUpLCBoYXNIb3RTcG90LCBob3RTcG90
LCBsb2FkZWRGcm9tT3BhcXVlU291cmNlKSk7CiAgICAgfQogCiAgICAgfkNTU0N1cnNvckltYWdl
VmFsdWUoKTsKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY3Vyc29yRWxlbWVu
dENoYW5nZWQoU1ZHQ3Vyc29yRWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIENTU0N1cnNvcklt
YWdlVmFsdWUoUmVmPENTU1ZhbHVlPiYmIGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29u
c3QgSW50UG9pbnQmIGhvdFNwb3QpOworICAgIENTU0N1cnNvckltYWdlVmFsdWUoUmVmPENTU1Zh
bHVlPiYmIGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNw
b3QsIExvYWRlZEZyb21PcGFxdWVTb3VyY2UpOwogCiAgICAgU1ZHQ3Vyc29yRWxlbWVudCogdXBk
YXRlQ3Vyc29yRWxlbWVudChjb25zdCBEb2N1bWVudCYpOwogCkBAIC03Niw2ICs3Niw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2hhc0hvdFNwb3Q7CiAgICAgSW50UG9pbnQgbV9ob3RTcG90Owog
ICAgIEhhc2hTZXQ8U1ZHQ3Vyc29yRWxlbWVudCo+IG1fY3Vyc29yRWxlbWVudHM7CisgICAgTG9h
ZGVkRnJvbU9wYXF1ZVNvdXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDgxZDhhNzU2ZjE4YTMw
NjU5MWNhODhmYTY5MWU3NTI3NDMyNDliMmUuLjBmYmNkYzljZTQwNzgzZWVhYWQ2NGQ2ZmFhMDg1
NjhkOWM3ZWE2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5j
cHAKQEAgLTk4LDYgKzk4LDcgQEAgQ2FjaGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2Fj
aGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgaXNTVkcsIGJvb2wKIAogICAgIFJlc291
cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRD
YWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGlj
eUltcG9zaXRpb24gPSBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlID8g
Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjazsKKyAgICBvcHRpb25zLmxv
YWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2U7CiAKICAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKG1fcmVzb3VyY2UpKSwgb3B0aW9ucyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0
b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaAppbmRleCA2NjUyNjM3NTFmYTg1NzIzNmIxZjEyMWZh
MjQ1OTU3ODJjYzhkYTc1Li5mMWI5NWU3OTVlOThmOWRkYjgyMmY4MTU5MzhlMjY1N2I2NzBhNDQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmgKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzgs
MTMgKzM5LDEzIEBAIGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudDsKIAogY2xhc3MgQ1NTRm9udEZh
Y2VTcmNWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZXNvdXJjZSkK
KyAgICBzdGF0aWMgUmVmPENTU0ZvbnRGYWNlU3JjVmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHJlc291cmNlLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2Up
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NGb250RmFjZVNyY1ZhbHVl
KHJlc291cmNlLCBmYWxzZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NGb250
RmFjZVNyY1ZhbHVlKHJlc291cmNlLCBmYWxzZSwgbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkpOwog
ICAgIH0KICAgICBzdGF0aWMgUmVmPENTU0ZvbnRGYWNlU3JjVmFsdWU+IGNyZWF0ZUxvY2FsKGNv
bnN0IFN0cmluZyYgcmVzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NGb250RmFjZVNyY1ZhbHVlKHJlc291cmNlLCB0cnVlKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENTU0ZvbnRGYWNlU3JjVmFsdWUocmVzb3VyY2UsIHRydWUsIExvYWRlZEZy
b21PcGFxdWVTb3VyY2U6Ok5vKSk7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiByZXNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2U7IH0KQEAgLTcyLDEwICs3MywxMSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTRm9udEZhY2VTcmNWYWx1ZSYpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIENTU0ZvbnRGYWNlU3JjVmFsdWUoY29uc3QgU3RyaW5nJiByZXNvdXJj
ZSwgYm9vbCBsb2NhbCkKKyAgICBDU1NGb250RmFjZVNyY1ZhbHVlKGNvbnN0IFN0cmluZyYgcmVz
b3VyY2UsIGJvb2wgbG9jYWwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2UgbG9hZGVkRnJvbU9wYXF1
ZVNvdXJjZSkKICAgICAgICAgOiBDU1NWYWx1ZShGb250RmFjZVNyY0NsYXNzKQogICAgICAgICAs
IG1fcmVzb3VyY2UocmVzb3VyY2UpCiAgICAgICAgICwgbV9pc0xvY2FsKGxvY2FsKQorICAgICAg
ICAsIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZShsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogI2lm
IEVOQUJMRShTVkdfRk9OVFMpCiAgICAgICAgICwgbV9zdmdGb250RmFjZUVsZW1lbnQoMCkKICNl
bmRpZgpAQCAtODUsNiArODcsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Jlc291cmNlOwog
ICAgIFN0cmluZyBtX2Zvcm1hdDsKICAgICBib29sIG1faXNMb2NhbDsKKyAgICBMb2FkZWRGcm9t
T3BhcXVlU291cmNlIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSB7IExvYWRlZEZyb21PcGFxdWVT
b3VyY2U6Ok5vIH07CiAKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBtX2Nh
Y2hlZEZvbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCBh
OTdkYzIxYzg1NDg2MzJhOWE5NTM2Nzk3YzQzODcxYjY2MWIzMTk0Li42YjAyNjZkMGMzNjhiZjMy
OTgwYzhkMDYyMjA1NWUzYTljYzdlNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCkBAIC0zOCw4ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ1NT
SW1hZ2VTZXRWYWx1ZTo6Q1NTSW1hZ2VTZXRWYWx1ZSgpCitDU1NJbWFnZVNldFZhbHVlOjpDU1NJ
bWFnZVNldFZhbHVlKExvYWRlZEZyb21PcGFxdWVTb3VyY2UgbG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZSkKICAgICA6IENTU1ZhbHVlTGlzdChJbWFnZVNldENsYXNzLCBDb21tYVNlcGFyYXRvcikKKyAg
ICAsIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZShsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogewog
fQogCkBAIC05OCw3ICs5OSwxMCBAQCBzdGQ6OnBhaXI8Q2FjaGVkSW1hZ2UqLCBmbG9hdD4gQ1NT
SW1hZ2VTZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZShDYWNoZWRSZXNvdXJjZQogICAgICAgICAv
LyBBbGwgZm9ybXMgb2Ygc2NhbGUgc2hvdWxkIGJlIGluY2x1ZGVkOiBQYWdlOjpwYWdlU2NhbGVG
YWN0b3IoKSwgRnJhbWU6OnBhZ2Vab29tRmFjdG9yKCksCiAgICAgICAgIC8vIGFuZCBhbnkgQ1NT
IHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY5
OAogICAgICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7Ci0gICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgb3B0aW9ucyk7CisKKyAg
ICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGxvYWRPcHRpb25zID0gb3B0aW9uczsKKyAgICAg
ICAgbG9hZE9wdGlvbnMubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9IG1fbG9hZGVkRnJvbU9wYXF1
ZVNvdXJjZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpLCBsb2FkT3B0aW9u
cyk7CiAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMoKS5jc3MpOwogICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9u
czo6TW9kZTo6Q29ycykKICAgICAgICAgICAgIHJlcXVlc3QudXBkYXRlRm9yQWNjZXNzQ29udHJv
bCgqZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmgKaW5kZXggZTU4
MzZiN2ZjNjQ0ZDgzZjhmYzIyOTQ2ZDJkN2EwMDFkODg5MDhlMy4uZjVmNDdjODYwNDIwYmVhYmVk
MzhjYzkyYmFhMTcyYzUyNTk0MmQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0
aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zNCwxMyArMzUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FjaGVkSW1h
Z2U7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIERvY3VtZW50Owotc3RydWN0
IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIAogY2xhc3MgQ1NTSW1hZ2VTZXRWYWx1ZSBmaW5hbCA6
IHB1YmxpYyBDU1NWYWx1ZUxpc3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q1NTSW1hZ2VT
ZXRWYWx1ZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPENTU0ltYWdlU2V0VmFsdWU+IGNyZWF0
ZShMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NJbWFnZVNldFZhbHVlKCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NJbWFnZVNldFZhbHVlKGxvYWRlZEZyb21PcGFxdWVT
b3VyY2UpKTsKICAgICB9CiAgICAgfkNTU0ltYWdlU2V0VmFsdWUoKTsKIApAQCAtNjQsNyArNjQs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgSW1hZ2VXaXRoU2NhbGUgYmVzdEltYWdlRm9yU2NhbGVGYWN0
b3IoKTsKIAogcHJpdmF0ZToKLSAgICBDU1NJbWFnZVNldFZhbHVlKCk7CisgICAgZXhwbGljaXQg
Q1NTSW1hZ2VTZXRWYWx1ZShMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKIAogICAgIHZvaWQgZmls
bEltYWdlU2V0KCk7CiAgICAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVCeVNjYWxlRmFjdG9y
KEltYWdlV2l0aFNjYWxlIGZpcnN0LCBJbWFnZVdpdGhTY2FsZSBzZWNvbmQpIHsgcmV0dXJuIGZp
cnN0LnNjYWxlRmFjdG9yIDwgc2Vjb25kLnNjYWxlRmFjdG9yOyB9CkBAIC03NSw2ICs3NSw3IEBA
IHByaXZhdGU6CiAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvciB7IDEgfTsKIAogICAgIFZl
Y3RvcjxJbWFnZVdpdGhTY2FsZT4gbV9pbWFnZXNJblNldDsKKyAgICBMb2FkZWRGcm9tT3BhcXVl
U291cmNlIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSB7IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
Ok5vIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VWYWx1ZS5jcHAKaW5kZXggNGVhNDExNGNjZDg5ODA1NTM5NzVlNTBhZDhiNTkzZjA0ZDViMTFm
OC4uZTE0MjBkMWU4MzVlZjc1N2IyNDQ5MDI0NmRjNjYzNWM3ZWM0MTc4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVZhbHVlLmNwcApAQCAtMzQsMTAgKzM0LDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQ1NTSW1hZ2VWYWx1ZTo6Q1NTSW1hZ2VWYWx1ZShVUkwmJiB1cmwpCitDU1NJ
bWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKFVSTCYmIHVybCwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIDogQ1NTVmFsdWUoSW1hZ2VDbGFzcykKICAg
ICAsIG1fdXJsKFdURk1vdmUodXJsKSkKICAgICAsIG1fYWNjZXNzZWRJbWFnZShmYWxzZSkKKyAg
ICAsIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZShsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogewog
fQogCkBAIC02Miw3ICs2Myw5IEBAIENhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpsb2FkSW1h
Z2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyCiAgICAgaWYgKCFt
X2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAotICAg
ICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVy
LmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsLnN0cmluZygpKSksIG9wdGlvbnMpOworICAg
ICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbG9hZE9wdGlvbnMgPSBvcHRpb25zOworICAgICAg
ICBsb2FkT3B0aW9ucy5sb2FkZWRGcm9tT3BhcXVlU291cmNlID0gbV9sb2FkZWRGcm9tT3BhcXVl
U291cmNlOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QobG9hZGVyLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsLnN0cmluZygpKSksIGxv
YWRPcHRpb25zKTsKICAgICAgICAgaWYgKG1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzKCkuY3NzKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKaW5k
ZXggNzZmOTRkZjVlNDJlODMzZWE5ODdlYzkzY2Y5MWQxYzI2YzJmZTg2ZC4uNTliYjcxYzQxZWM2
NmVjYzNmM2I0YjczN2Y3NDgxNjNiODZhOTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1
ZS5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBA
IC0zMiwxMSArMzMsMTAgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEZXBy
ZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBSZW5k
ZXJFbGVtZW50Owotc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIAogY2xhc3MgQ1NTSW1h
Z2VWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxDU1NJbWFnZVZhbHVlPiBjcmVhdGUoVVJMJiYgdXJsKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IENTU0ltYWdlVmFsdWUoV1RGTW92ZSh1cmwpKSk7IH0KKyAgICBzdGF0aWMgUmVmPENTU0ltYWdl
VmFsdWU+IGNyZWF0ZShVUkwmJiB1cmwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2UgbG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NJbWFnZVZhbHVlKFdURk1v
dmUodXJsKSwgbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkpOyB9CiAgICAgc3RhdGljIFJlZjxDU1NJ
bWFnZVZhbHVlPiBjcmVhdGUoQ2FjaGVkSW1hZ2UmIGltYWdlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IENTU0ltYWdlVmFsdWUoaW1hZ2UpKTsgfQogICAgIH5DU1NJbWFnZVZhbHVlKCk7CiAKQEAg
LTU5LDEzICs1OSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbml0aWF0b3IoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKSB7IG1faW5pdGlhdG9yTmFtZSA9IG5hbWU7IH0KIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBDU1NJbWFnZVZhbHVlKFVSTCYmKTsKKyAgICBDU1NJbWFnZVZhbHVlKFVS
TCYmLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKICAgICBleHBsaWNpdCBDU1NJbWFnZVZhbHVl
KENhY2hlZEltYWdlJik7CiAKICAgICBVUkwgbV91cmw7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkSW1hZ2U+IG1fY2FjaGVkSW1hZ2U7CiAgICAgYm9vbCBtX2FjY2Vzc2VkSW1hZ2U7
CiAgICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsKKyAgICBMb2FkZWRGcm9tT3BhcXVl
U291cmNlIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSB7IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
Ok5vIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuaAppbmRleCBmNjU0NjBjYTVkNzM3MDczNDc5MWI2Yjc4OGJkZWRkYTBiMDAxM2ZhLi41
ZDM3ZmE4ZDJlODU0ODhiMzhhNTFiN2NkNDc1OGVjNTZhOGMyNzNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmgKQEAgLTEyNSw2ICsxMjUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRl
dGFjaEZyb21Eb2N1bWVudCgpIHsgbV9vd25lck5vZGUgPSBudWxscHRyOyB9CiAKKyAgICBib29s
IGNhbkFjY2Vzc1J1bGVzKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ1NTU3R5bGVTaGVldChS
ZWY8U3R5bGVTaGVldENvbnRlbnRzPiYmLCBDU1NJbXBvcnRSdWxlKiBvd25lclJ1bGUpOwogICAg
IENTU1N0eWxlU2hlZXQoUmVmPFN0eWxlU2hlZXRDb250ZW50cz4mJiwgTm9kZSogb3duZXJOb2Rl
LCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIGJvb2wgaXNJbmxpbmVTdHlsZXNo
ZWV0KTsKQEAgLTEzMyw4ICsxMzUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNDU1NTdHlsZVNo
ZWV0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIFN0cmluZyB0eXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gInRleHQvY3NzIl9zOyB9CiAKLSAgICBib29sIGNhbkFjY2Vzc1J1
bGVzKCkgY29uc3Q7Ci0KICAgICBSZWY8U3R5bGVTaGVldENvbnRlbnRzPiBtX2NvbnRlbnRzOwog
ICAgIGJvb2wgbV9pc0lubGluZVN0eWxlc2hlZXQ7CiAgICAgYm9vbCBtX2lzRGlzYWJsZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IGQwOTU1OGMzMWMyZWQxMDU3
MmFkMDRkNTBhMWRiNTFlNTU3ODBhZjEuLjIwMzU0Y2MxNzg1NjU5NzE4ZTU3YTQ5NzVmN2VmYTZk
NDU5NDk3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC03NCw2
ICs3NCw4IEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpzZXRDU1NTdHlsZVNoZWV0KGNvbnN0IFN0
cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlVVJMLCBjCiAKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBtX3BhcmVudFN0eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnNpbmdsZU93bmVy
RG9jdW1lbnQoKSA6IG51bGxwdHI7CiAgICAgbV9zdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRl
bnRzOjpjcmVhdGUodGhpcywgaHJlZiwgY29udGV4dCk7CisgICAgaWYgKG1fcGFyZW50U3R5bGVT
aGVldC0+aXNDb250ZW50T3BhcXVlKCkgfHwgIWNhY2hlZFN0eWxlU2hlZXQtPmlzQ09SU1NhbWVP
cmlnaW4oKSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5zZXRBc09wYXF1ZSgpOwogICAgIG1fc3R5
bGVTaGVldC0+cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNhY2hlZFN0eWxlU2hlZXQsIGRvY3VtZW50
ID8gJmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cik7CiAKICAgICBtX2xvYWRp
bmcgPSBmYWxzZTsKQEAgLTEyMSw3ICsxMjMsNyBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVx
dWVzdFN0eWxlU2hlZXQoKQogICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICBtX2NhY2hl
ZFNoZWV0LT5yZW1vdmVDbGllbnQobV9zdHlsZVNoZWV0Q2xpZW50KTsKICAgICBpZiAobV9wYXJl
bnRTdHlsZVNoZWV0LT5pc1VzZXJTdHlsZVNoZWV0KCkpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRP
cHRpb25zKFJlc291cmNlTG9hZGVyT3B0aW9ucygKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRp
b25zIG9wdGlvbnMgewogICAgICAgICAgICAgU2VuZENhbGxiYWNrUG9saWN5OjpEb05vdFNlbmRD
YWxsYmFja3MsCiAgICAgICAgICAgICBDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVu
dCwKICAgICAgICAgICAgIERhdGFCdWZmZXJpbmdQb2xpY3k6OkJ1ZmZlckRhdGEsCkBAIC0xMzMs
MTAgKzEzNSwxOSBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQoKQog
ICAgICAgICAgICAgQ2VydGlmaWNhdGVJbmZvUG9saWN5OjpEb05vdEluY2x1ZGVDZXJ0aWZpY2F0
ZUluZm8sCiAgICAgICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lw
UG9saWN5Q2hlY2ssCiAgICAgICAgICAgICBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVy
c0xvYWRpbmcsCi0gICAgICAgICAgICBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpKTsKKyAg
ICAgICAgICAgIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZworICAgICAgICB9OworICAgICAg
ICBvcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX3BhcmVudFN0eWxlU2hlZXQtPmlz
Q29udGVudE9wYXF1ZSgpID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZTo6Tm87CisKKyAgICAgICAgcmVxdWVzdC5zZXRPcHRpb25zKFdURk1vdmUo
b3B0aW9ucykpOworCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudC0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoV1RGTW92ZShyZXF1ZXN0KSk7
Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBvcHRpb25zID0gcmVxdWVz
dC5vcHRpb25zKCk7CisgICAgICAgIG9wdGlvbnMubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9IG1f
cGFyZW50U3R5bGVTaGVldC0+aXNDb250ZW50T3BhcXVlKCkgPyBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObzsKKyAgICAgICAgcmVxdWVzdC5z
ZXRPcHRpb25zKFdURk1vdmUob3B0aW9ucykpOwogICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9j
dW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdENTU1N0eWxlU2hlZXQoV1RGTW92
ZShyZXF1ZXN0KSkudmFsdWVfb3IobnVsbHB0cik7CisgICAgfQogICAgIGlmIChtX2NhY2hlZFNo
ZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBpbXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2Fs
bHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5n
IHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRvYyBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmgKaW5kZXggMmMyYmQxMTdhZTBhNWIyM2RmMjUwMTRiOWU1YjkzMTA3ZDk1
OGE0NS4uMmM3NGFmYTM2NTVkYmQzMWJkNWFlNWM0NzdiNWNkZjEzMWUyNGFlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtMTQ0LDYgKzE0NCw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2hyaW5rVG9GaXQoKTsKIAorICAgIHZvaWQgc2V0QXNPcGFxdWUoKSB7
IG1fcGFyc2VyQ29udGV4dC5pc0NvbnRlbnRPcGFxdWUgPSB0cnVlOyB9CisgICAgYm9vbCBpc0Nv
bnRlbnRPcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlckNvbnRleHQuaXNDb250ZW50T3Bh
cXVlOyB9CisKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3R5bGVTaGVldENvbnRlbnRz
KFN0eWxlUnVsZUltcG9ydCogb3duZXJSdWxlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CiAgICAgU3R5bGVTaGVldENvbnRlbnRzKGNvbnN0IFN0
eWxlU2hlZXRDb250ZW50cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckNvbnRleHQuaAppbmRleCBlY2VjZWY2NzE0YjJjYjgxN2NlOGIwZDRiY2U0ODJkNjU1NWYwOTBh
Li4xMDg5ZDIyZDQxYjE4YWU4MTUwMjZlNDBlMGUwMmJmYmFhYzgyZDA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaApAQCAtNzUsNiArNzUsOCBAQCBw
dWJsaWM6CiAgICAgICAgIGF1dG8mIGVuY29kaW5nRm9yVVJMUGFyc2luZyA9IGVuY29kaW5nLmVu
Y29kaW5nRm9yRm9ybVN1Ym1pc3Npb25PclVSTFBhcnNpbmcoKTsKICAgICAgICAgcmV0dXJuIFVS
TChiYXNlVVJMLCB1cmwsIGVuY29kaW5nRm9yVVJMUGFyc2luZyA9PSBVVEY4RW5jb2RpbmcoKSA/
IG51bGxwdHIgOiAmZW5jb2RpbmdGb3JVUkxQYXJzaW5nKTsKICAgICB9CisKKyAgICBib29sIGlz
Q29udGVudE9wYXF1ZSB7IGZhbHNlIH07CiB9OwogCiBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NT
UGFyc2VyQ29udGV4dCYsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggNTJmMjhmMjcwYzYz
ODFjZmI5Njc5YjU1Y2JlNDY0N2FmNzU2Yzk3Mi4uNWNiODk0NWIzOGZhODEwYjI3NzNlMDJmODM2
NzhlOWI2NmIyMDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKQEAgLTIxNzAsNyArMjE3MCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVDdXJzb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU1Bh
cnNlCiAgICAgICAgIGlmICghbGlzdCkKICAgICAgICAgICAgIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6
OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAKLSAgICAgICAgbGlzdC0+YXBwZW5kKENTU0N1cnNv
ckltYWdlVmFsdWU6OmNyZWF0ZShpbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCBob3RTcG90U3BlY2lm
aWVkLCBob3RTcG90KSk7CisgICAgICAgIGxpc3QtPmFwcGVuZChDU1NDdXJzb3JJbWFnZVZhbHVl
OjpjcmVhdGUoaW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgaG90U3BvdFNwZWNpZmllZCwgaG90U3Bv
dCwgY29udGV4dC5pc0NvbnRlbnRPcGFxdWUgPyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpZZXMg
OiBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObykpOwogICAgICAgICBpZiAoIWNvbnN1bWVDb21t
YUluY2x1ZGluZ1doaXRlc3BhY2UocmFuZ2UpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQpAQCAtNDQzNCw4ICs0NDM0LDggQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUZvbnRGYWNlU3JjVVJJKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdAogICAg
IFN0cmluZyB1cmwgPSBjb25zdW1lVXJsQXNTdHJpbmdWaWV3KHJhbmdlKS50b1N0cmluZygpOwog
ICAgIGlmICh1cmwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIAotICAg
IFJlZlB0cjxDU1NGb250RmFjZVNyY1ZhbHVlPiB1cmlWYWx1ZSA9IENTU0ZvbnRGYWNlU3JjVmFs
dWU6OmNyZWF0ZShjb250ZXh0LmNvbXBsZXRlVVJMKHVybCkpOworCisgICAgUmVmUHRyPENTU0Zv
bnRGYWNlU3JjVmFsdWU+IHVyaVZhbHVlID0gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3JlYXRlKGNv
bnRleHQuY29tcGxldGVVUkwodXJsKSwgY29udGV4dC5pc0NvbnRlbnRPcGFxdWUgPyBMb2FkZWRG
cm9tT3BhcXVlU291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CiAKICAg
ICBpZiAocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSAhPSBDU1NWYWx1ZUZvcm1hdCkKICAgICAg
ICAgcmV0dXJuIHVyaVZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IDA3YzRkNzAwYzI5YmUwM2UxYzFi
MzM5ODZlOTdiNzE3NGI1YjA4ODQuLmFlOTQ4NjRjZTEzYjkzZDI4NjgxNDczMGI0ZDgxYjBmMjMx
OTNmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTEzNTksMTMgKzEzNTksMTMgQEAgc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUltYWdlU2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBj
b25zdCBDU1NQYXIKIHsKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlQ29weSA9IHJhbmdl
OwogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZUNv
cHkpOwotICAgIFJlZlB0cjxDU1NJbWFnZVNldFZhbHVlPiBpbWFnZVNldCA9IENTU0ltYWdlU2V0
VmFsdWU6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxDU1NJbWFnZVNldFZhbHVlPiBpbWFnZVNldCA9
IENTU0ltYWdlU2V0VmFsdWU6OmNyZWF0ZShjb250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRl
ZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKICAg
ICBkbyB7CiAgICAgICAgIEF0b21pY1N0cmluZyB1cmxWYWx1ZSA9IGNvbnN1bWVVcmxBc1N0cmlu
Z1ZpZXcoYXJncykudG9BdG9taWNTdHJpbmcoKTsKICAgICAgICAgaWYgKHVybFZhbHVlLmlzTnVs
bCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgUmVmUHRyPENTU1Zh
bHVlPiBpbWFnZSA9IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShjb21wbGV0ZVVSTChjb250ZXh0LCB1
cmxWYWx1ZSkpOworICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGltYWdlID0gQ1NTSW1hZ2VWYWx1
ZTo6Y3JlYXRlKGNvbXBsZXRlVVJMKGNvbnRleHQsIHVybFZhbHVlKSwgY29udGV4dC5pc0NvbnRl
bnRPcGFxdWUgPyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVl
U291cmNlOjpObyk7CiAgICAgICAgIGltYWdlU2V0LT5hcHBlbmQoaW1hZ2UucmVsZWFzZU5vbk51
bGwoKSk7CiAKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gYXJncy5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpOwpAQCAtMTU4MCw3ICsxNTgwLDggQEAgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lSW1hZ2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNl
ckNvbnRleHQgY29udGUKIHsKICAgICBBdG9taWNTdHJpbmcgdXJpID0gY29uc3VtZVVybEFzU3Ry
aW5nVmlldyhyYW5nZSkudG9BdG9taWNTdHJpbmcoKTsKICAgICBpZiAoIXVyaS5pc051bGwoKSkK
LSAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFsdWU6OmNyZWF0ZShjb21wbGV0ZVVSTChjb250ZXh0
LCB1cmkpKTsKKyAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFsdWU6OmNyZWF0ZShjb21wbGV0ZVVS
TChjb250ZXh0LCB1cmkpLCBjb250ZXh0LmlzQ29udGVudE9wYXF1ZSA/IExvYWRlZEZyb21PcGFx
dWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKTsKKwogICAgIGlmIChy
YW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKICAgICAgICAgQ1NTVmFsdWVJ
RCBpZCA9IHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCk7CiAgICAgICAgIGlmIChpZCA9PSBDU1NW
YWx1ZVdlYmtpdEltYWdlU2V0IHx8IGlkID09IENTU1ZhbHVlSW1hZ2VTZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKaW5kZXggYmJhZjA3MzA4M2M3ODA0ODkyNTRlMGEz
OWQ1Mzk2NGM0NWNjYzg2Yy4uMWQ4YTZhOGMzMjcwMjQyNDQ3YjlhMDQ4M2ExMzE3NjQ2Y2ViYjYy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcApAQCAtNzQsNyArNzQs
NyBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0
dHIpIHsKICAgICAgICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNw
YWNlcyh2YWx1ZSk7CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
YXV0byBpbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxl
dGVVUkwodXJsKSk7CisgICAgICAgICAgICBhdXRvIGltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVl
OjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpObyk7CiAgICAgICAgICAgICBpbWFnZVZhbHVlLmdldCgpLnNldEluaXRpYXRvcihsb2Nh
bE5hbWUoKSk7CiAgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgV1RGTW92ZShpbWFnZVZhbHVlKSkpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggMDlmZWM2M2U1NDdh
OWUxM2Q3YWIyZmViYzhjZDkzNjZlMWQxZmM3Zi4uNjhlNzg2ODhiYjc4NjdmMzJlNGIxNWY1NDcw
MzhjOTJmMDdiMzg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApA
QCAtNDAyLDYgKzQwMiw5IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojppbml0aWFsaXplU3R5bGVT
aGVldChSZWY8U3R5bGVTaGVldENvbnRlbnRzPiYmIHN0eWxlU2hlZXQsCiAgICAgbV9zaGVldCA9
IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShXVEZNb3ZlKHN0eWxlU2hlZXQpLCAqdGhpcywgb3JpZ2lu
Q2xlYW4pOwogICAgIG1fc2hlZXQtPnNldE1lZGlhUXVlcmllcyhNZWRpYVF1ZXJ5U2V0OjpjcmVh
dGUobV9tZWRpYSwgY29udGV4dCkpOwogICAgIG1fc2hlZXQtPnNldFRpdGxlKHRpdGxlKCkpOwor
CisgICAgaWYgKCFtX3NoZWV0LT5jYW5BY2Nlc3NSdWxlcygpKQorICAgICAgICBtX3NoZWV0LT5j
b250ZW50cygpLnNldEFzT3BhcXVlKCk7CiB9CiAKIHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXRD
U1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZFN0eWxl
U2hlZXQpCkBAIC00NDMsNiArNDQ2LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldENTU1N0
eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGMKICAgICBh
dXRvIHN0eWxlU2hlZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZShocmVmLCBwYXJzZXJD
b250ZXh0KTsKICAgICBpbml0aWFsaXplU3R5bGVTaGVldChzdHlsZVNoZWV0LmNvcHlSZWYoKSwg
KmNhY2hlZFN0eWxlU2hlZXQsIE1lZGlhUXVlcnlQYXJzZXJDb250ZXh0KGRvY3VtZW50KCkpKTsK
IAorICAgIC8vIEZJWE1FOiBTZXQgdGhlIHZpc2liaWxpdHkgb3B0aW9uIGJhc2VkIG9uIG1fc2hl
ZXQgYmVpbmcgY2xlYW4gb3Igbm90LgorICAgIC8vIEJlc3QgYXBwcm9hY2ggbWlnaHQgYmUgdG8g
c2V0IGl0IG9uIHRoZSBzdHlsZSBzaGVldCBjb250ZW50IGl0c2VsZiBvciBpdHMgY29udGV4dCBw
YXJzZXIgb3RoZXJ3aXNlLgogICAgIHN0eWxlU2hlZXQuZ2V0KCkucGFyc2VBdXRob3JTdHlsZVNo
ZWV0KGNhY2hlZFN0eWxlU2hlZXQsICZkb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOwogCiAg
ICAgbV9sb2FkaW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmNwcAppbmRleCA1NTJhNGE5MDY4ZDM5Nzc3NWI2ZTZhZDIyMDU1YjkzNWQzMzM4MTE0Li5mZjk2
ZjRmMjQzNWIwOThlMDY2NjJmMzNjYzIwNWUwMDBiMzc5MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIEhUTUxUYWJs
ZUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJgogICAgIGVsc2UgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIpIHsKICAgICAg
ICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh2YWx1ZSk7
CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHN0eWxlLnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZhbHVl
OjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpKSkpOworICAgICAgICAgICAgc3R5
bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIENT
U0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIExvYWRlZEZy
b21PcGFxdWVTb3VyY2U6Ok5vKSkpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSB2YWxpZ25BdHRy
KSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2Fs
QWxpZ24sIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
UGFydEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVu
dC5jcHAKaW5kZXggMWUyMjhhNTc2ZmYxMzA2M2NlNGNlMzRjNGY3ZGYxOGJhMjY3YjVjZi4uZDcx
MjZjMmFlYzVmNWQ4NDc5MjIyMmQyMDdjNDc2ODlmMjQ0NWE4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBI
VE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE4KICAgICBlbHNlIGlmIChuYW1lID09IGJhY2tncm91bmRBdHRyKSB7
CiAgICAgICAgIFN0cmluZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMo
dmFsdWUpOwogICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBzdHlsZS5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1h
Z2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSkpKTsKKyAgICAgICAg
ICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZElt
YWdlLCBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCBM
b2FkZWRGcm9tT3BhcXVlU291cmNlOjpObykpKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gdmFs
aWduQXR0cikgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFs
dWUsICJ0b3AiKSkKICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1
dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVRvcCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKaW5kZXggZjJi
YjZkMWY5OGYxZGE1NjRkODZiYmQ1YmUxZTMzZGVlNDY5ZWU1Ni4uOTMzNzZlYTE3N2Y0ODkzNWU3
OTFkMDQyMjhhZThlYjhiNWZhM2FlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlck9wdGlvbnMuaApAQCAtMTE4LDYgKzExOCwxMSBAQCBlbnVtIGNsYXNzIFByZWZs
aWdodFBvbGljeSA6IHVpbnQ4X3QgewogICAgIFByZXZlbnQKIH07CiAKK2VudW0gY2xhc3MgTG9h
ZGVkRnJvbU9wYXF1ZVNvdXJjZSA6IHVpbnQ4X3QgeworICAgIFllcywKKyAgICBObworfTsKKwog
c3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogICAg
IFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQogCkBAIC0xNjMsNiArMTY4LDcgQEAgc3RydWN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogICAgIEFwcGxp
Y2F0aW9uQ2FjaGVNb2RlIGFwcGxpY2F0aW9uQ2FjaGVNb2RlIHsgQXBwbGljYXRpb25DYWNoZU1v
ZGU6OlVzZSB9OwogICAgIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBv
bGljeSB7IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRp
YWxzIH07CiAgICAgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSB7IFByZWZsaWdodFBv
bGljeTo6Q29uc2lkZXIgfTsKKyAgICBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21P
cGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlVGltaW5nSW5mb3JtYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
VGltaW5nSW5mb3JtYXRpb24uY3BwCmluZGV4IDZkMjg5MTkwNjUxODczMmI4ZGY4MmIyY2IzYTNm
MzlmM2QzNDYxNjMuLmYzMWUzNTY1ZTE0M2FjMzZlNmM1ZGVhZWU0ZmRmNmE1N2RjMzhjMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlv
bi5jcHAKQEAgLTUyLDYgKzUyLDkgQEAgYm9vbCBSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uOjpz
aG91bGRBZGRSZXNvdXJjZVRpbWluZyhDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UKICAgICBpZiAo
cmVzb3VyY2Uud2FzQ2FuY2VsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYg
KHJlc291cmNlLm9wdGlvbnMoKS5sb2FkZWRGcm9tT3BhcXVlU291cmNlID09IExvYWRlZEZyb21P
cGFxdWVTb3VyY2U6OlllcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAK
aW5kZXggNTdjYjJkYjU5YTQ3N2RlYzQ1YzViZmZmZDM2OWViZTg0YzViYjRkMC4uNGMyMjI1ZDU5
NjNiMGE1Y2IzNjU5N2U3M2UxNjJmM2I4YTZkZjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgU1ZHRm9udEZhY2VV
cmlFbGVtZW50Ojp+U1ZHRm9udEZhY2VVcmlFbGVtZW50KCkKIAogUmVmPENTU0ZvbnRGYWNlU3Jj
VmFsdWU+IFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6c3JjVmFsdWUoKSBjb25zdAogewotICAgIGF1
dG8gc3JjID0gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3JlYXRlKGdldEF0dHJpYnV0ZShTVkdOYW1l
czo6aHJlZkF0dHIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyKSk7CisgICAgYXV0byBzcmMgPSBDU1NG
b250RmFjZVNyY1ZhbHVlOjpjcmVhdGUoZ2V0QXR0cmlidXRlKFNWR05hbWVzOjpocmVmQXR0ciwg
WExpbmtOYW1lczo6aHJlZkF0dHIpLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CiAgICAg
QXRvbWljU3RyaW5nIHZhbHVlKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9ybWF0
QXR0cikpOwogICAgIHNyYy5nZXQoKS5zZXRGb3JtYXQodmFsdWUuaXNFbXB0eSgpID8gInN2ZyIg
OiB2YWx1ZSk7IC8vIERlZmF1bHQgZm9ybWF0CiAgICAgcmV0dXJuIHNyYzsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MDVl
M2UyNWM3NDEzMzE0YWI4YzFlZDgwY2QzNjc4NjY4Y2YyODhiLi4wM2QyOTJlMmMxYTIwN2UzMGFm
ZDM0OTJkNTcyYWZkYzFiNGFjZWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMjkg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBzdWJyZXNv
dXJjZSBsb2FkcyBzaG91bGQgbm90IGJlIG9ic2VydmFibGUgZnJvbSByZXNvdXJjZSB0aW1pbmcg
aWYgdGhlIHN0eWxlc2hlZXQgaXMgb3BhcXVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xlYW4tb3JpZ2luLWNz
cy1leHBvc2VkLXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xlYW4tb3JpZ2luLWNzcy1leHBvc2VkLXJlc291cmNlLXRp
bWluZ2UtdGltaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3Mtb3JpZ2luLWNzcy1yZXNvdXJjZS10aW1pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtcmVzb3VyY2UtdGlt
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2xvYWRpbmctc3VicmVzb3VyY2VzLmNzczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMvaW1wb3J0ZWQtbG9hZGluZy1zdWJyZXNvdXJjZXMuY3NzOiBBZGRl
ZC4KKwogMjAxOC0xMS0yOCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAg
ICAgICAgIFsgTW9qYXZlIFdLMSBdIExheW91dCBUZXN0IGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWlt
YWdlLWRpZmZlcmVudC1kZXN0LXNpemUuaHRtbCBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1s
b29wLWNvdW50Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jbGVhbi1vcmlnaW4tY3NzLWV4cG9zZWQtcmVzb3VyY2UtdGltaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xlYW4tb3JpZ2lu
LWNzcy1leHBvc2VkLXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBi
ZTYwYzYxZTI3ZjViNDQ4MDNjZGNkNmUyYWM2OGE5YmJhYmY4NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xlYW4tb3JpZ2luLWNzcy1leHBvc2Vk
LXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NT
IHN1YnJlc291cmNlcyBvZiBhIGNsZWFuIHN0eWxlc2hlZXQgc2hvdWxkIHBvcHVsYXRlIHJlc291
cmNlIHRpbWluZyBlbnRyaWVzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NsZWFuLW9yaWdpbi1jc3MtZXhwb3NlZC1yZXNvdXJjZS10aW1pbmcuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xlYW4tb3JpZ2luLWNzcy1leHBvc2Vk
LXJlc291cmNlLXRpbWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NjQ4M2U5MDhiNmNmYWRkMjczZjZi
Y2EyZDAxN2RkMzAxNmVhYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NsZWFuLW9yaWdpbi1jc3MtZXhwb3NlZC1yZXNvdXJjZS10aW1pbmcuaHRt
bApAQCAtMCwwICsxLDQ3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0
bGU+Q1NTIHN1YnJlc291cmNlcyBvZiBhIGNsZWFuIHN0eWxlc2hlZXQgc2hvdWxkIHBvcHVsYXRl
IHJlc291cmNlIHRpbWluZyBlbnRyaWVzPC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0nL3NlY3VyaXR5L3Jlc291cmNlcy9s
b2FkaW5nLXN1YnJlc291cmNlcy5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3Mn
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJteWRpdiIgc3R5bGU9ImZvbnQ6IDEycHggJ2Fo
ZW0nIj5UZXN0PC9kaXY+Cis8c2NyaXB0PgorY29uc3Qgd2FpdE9uTG9hZCA9IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7CisgICAgd2luZG93Lm9ubG9hZCA9IHJlc29sdmU7Cit9KQorCitmdW5j
dGlvbiB3YWl0Rm9yKGRlbGF5KQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTsKK30KKworZG9jdW1lbnQuZm9udHMucmVhZHku
dGhlbihhc3luYyAoKSA9PiB7CisgICAgYXdhaXQgd2FpdE9uTG9hZDsKKyAgICBsZXQgaGFzSW1w
b3J0ID0gZmFsc2U7CisgICAgbGV0IGhhc0ltYWdlID0gZmFsc2U7CisgICAgbGV0IGhhc0ZvbnQg
PSBmYWxzZTsKKyAgICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDIw
KSB7CisgICAgICAgIGNvbnN0IGVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzKCk7Cisg
ICAgICAgIGlmICghaGFzSW1wb3J0KQorICAgICAgICAgICAgaGFzSW1wb3J0ID0gZW50cmllcy5z
b21lKGVudHJ5ID0+IGVudHJ5Lm5hbWUuaW5jbHVkZXMoJ2ltcG9ydGVkLWxvYWRpbmctc3VicmVz
b3VyY2VzLmNzcycpKTsKKyAgICAgICAgaWYgKCFoYXNJbWFnZSkKKyAgICAgICAgICAgIGhhc0lt
YWdlID0gZW50cmllcy5zb21lKGVudHJ5ID0+IGVudHJ5Lm5hbWUuaW5jbHVkZXMoJ2FiZS1hbGxv
dy1zdGFyLnBocCcpKTsKKyAgICAgICAgaWYgKCFoYXNGb250KQorICAgICAgICAgICAgaGFzRm9u
dCA9IGVudHJpZXMuc29tZShlbnRyeSA9PiBlbnRyeS5uYW1lLmluY2x1ZGVzKCdBaGVtLndvZmYn
KSk7CisgICAgICAgIGlmIChoYXNJbXBvcnQgJiYgaGFzSW1hZ2UgJiYgaGFzRm9udCkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBhd2FpdCB3YWl0Rm9yKDUwKTsKKyAgICB9CisgICAgbXlk
aXYuaW5uZXJIVE1MID0gIiI7CisgICAgYXNzZXJ0X3RydWUoaGFzSW1wb3J0LCAiaW1wb3J0Iik7
CisgICAgYXNzZXJ0X3RydWUoaGFzSW1hZ2UsICJpbWFnZSIpOworICAgIGFzc2VydF90cnVlKGhh
c0ZvbnQsICJmb250Iik7CisgICAgZG9uZSgpOworfSkKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4tY3NzLXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtcmVzb3VyY2UtdGltaW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZmU1YTU2ODJjZDg5ZmFiYTczM2JiZDgzMzczMzJiODNhZWQyYTM0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tY3NzLXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgQ1NTIHN1YnJlc291cmNlcyBvZiBhbiBvcGFxdWUgc3R5bGVzaGVldCBzaG91bGQg
bm90IHBvcHVsYXRlIHJlc291cmNlIHRpbWluZyBlbnRyaWVzIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtcmVzb3VyY2UtdGlt
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1j
c3MtcmVzb3VyY2UtdGltaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ5YzVlZTcwZjhhYzkxNWY5ZGVj
ODJkNWI4MjQ5M2QxNzEzMzMzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1yZXNvdXJjZS10aW1pbmcuaHRtbApAQCAt
MCwwICsxLDI3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q1NT
IHN1YnJlc291cmNlcyBvZiBhbiBvcGFxdWUgc3R5bGVzaGVldCBzaG91bGQgbm90IHBvcHVsYXRl
IHJlc291cmNlIHRpbWluZyBlbnRyaWVzPC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0naHR0cDovL2xvY2FsaG9zdDo4MDgw
L3NlY3VyaXR5L3Jlc291cmNlcy9sb2FkaW5nLXN1YnJlc291cmNlcy5jc3MnIHJlbD0nc3R5bGVz
aGVldCcgdHlwZT0ndGV4dC9jc3MnPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJteWRpdiIg
c3R5bGU9ImZvbnQ6IDEycHggJ2FoZW0nIj5UZXN0PC9kaXY+Cis8c2NyaXB0PgorY29uc3Qgd2Fp
dE9uTG9hZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgd2luZG93Lm9ubG9hZCA9
IHJlc29sdmU7Cit9KQorZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihhc3luYyAoKSA9PiB7Cisg
ICAgYXdhaXQgd2FpdE9uTG9hZDsKKyAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzKCkubWFwKG9i
aiA9PiB7CisgICAgICAgIGFzc2VydF9mYWxzZShvYmoubmFtZS5pbmNsdWRlcygnaW1wb3J0ZWQt
bG9hZGluZy1zdWJyZXNvdXJjZXMuY3NzJyksICJpbXBvcnQiKTsKKyAgICAgICAgYXNzZXJ0X2Zh
bHNlKG9iai5uYW1lLmluY2x1ZGVzKCdBaGVtLndvZmYnKSwgImZvbnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2ZhbHNlKG9iai5uYW1lLmluY2x1ZGVzKCdhYmUtYWxsb3ctc3Rhci5waHAnKSwgImltYWdl
Iik7CisgICAgfSk7CisgICAgbXlkaXYuaW5uZXJIVE1MID0gIiI7CisgICAgZG9uZSgpOworfSkK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMuZm9udC5vdGYgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy5mb250Lm90ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzU1MGFkY2ZjNjc4
OTkyYzNiZTcxYzAxYzQ0MjZlNTJiMzkwYzY2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDQ1
Mgp6Y21lSE9UV0ZpLThHZTQ5RXVXOV5MM1NLM3dILUhnOU13dFclIUhnT0MjX2VUU1pUNV95Ml9H
bCp8QlVQJDwyWFkKemwpPnM7bTBYbGojdSNDWXgpKV9eY1YmemJ4YEQka04qUCZLZE5GY1E9NTNU
d01oOVZaKFZxQUZLZ0lmRUloQ0VVCnppfUF+UkBCNiZwfDkrP1VkJXdka3lgRzNmQ2c4e0dhSDlL
RUlOYmZ4d1U3Uz47NjAjY1ZyPVVDJHpkRyZFQWR4PQp6Pno1TiMyWkNxcmVmdCVsP3x0Z1RXMnRC
d2V7bFEpPW5xZ3tORzc4M01DMGxFbHk2V3pvTWVWQ2k5P2ljUXtKMFEKejwqd2RFPHJ8Ymdxa0sw
TnlfJntsQko3ajt4KS1DViMyPiNuYUUwPEdLK1M5RXJFSEc8O3dLYzU9TFRGWjclb0RDCnpzVlRn
KW43YzVTT05KQkMrO1MkN29ycmB0b3tuQDxZc0kwY2xOOUw4Xko1fHItMiVUfkVBO1I2OGAldlRS
Z2BSaQp6PklOTF9sPyFmbztEcndydnxsQnZQPm1ZWXE3TDxGS3FII2FqMjclZEU4NVZHNGd9RE5G
Nj40KF9NaXZmeitPQ3MKelVpNl9LYCFJbH51Xi1RMTVDPEBYZzl6ZVQoQ34ka29ASnd9WTxHLWw5
ZE43dyZPVzkhUFJjQXQ7JD5PfEpZITdqCnpmT2lHKF4pYW1oNnw7Y2YlZGBxcWp4bnRSUlZ6U3NB
SlpDKkpQWHUlbk8xP2lGe1g4KGVnJGFnVl9FfG1YSzgzSgp6KDw7ekIjPFVLIXROXj9FbkFVKlNT
KWszIXY8a0czRnw3an5EP3AlK1hebHBvMS1pVVV0SEFDdHJnaEhhTj90fm0KelhFSTUxOShNJGk1
SzZBJkI4UX0/bEhGJFJ6dSVReXA9TkdQPjNXUFdSWHNzYkJWcGx4NSN+SnRqaGxvKm1ANWtUCno0
K1RDck1rc3t2dHw7cyQrKzRkPG9Pa3B9P09XODdtVT44WkxuZjNxM0pyO1oqfU9je3g9Tys5WUVp
dlBwe1QxeAp6M2FWYmFmNDJSXih+QTlnIT41IVorNVR0bDZsJU5ScVA1cXJ5fSNKfHYpKHJDXlRS
JHI/RE9PMUxsZkJkRThjJFgKemA+QjF1Rk1kST4tI15eeSl5O2w/bGIycm17JXFmJD9mYktSZjBq
Rnd4KylaWCFCQkw0RzdwV1N5TSszUnFEVm0lCnp2KUAxTF9tNzh7Wn5aOzJ7ciMwWFZDP2xfPz1L
STNDe1VaSHkqfjdCSXJqUH1lbSUzI1U7Rm91IWNSYzx7bVRDUwp6aWlkeyV7WjtWPlh9KmUtZSpj
aDI0bntgY2xKT0NZKThYKzVWPnUpK2ZqYHpXUFU4dlZKZmJ0MTc9OUhDcmVwWFoKejdSPChRQ2wr
MUU7bHRSJSskYD9LZz8+N2RpTjxobT1FX19nZUBAT1oqNSZpMDxve3puSnY1Ql9eWFZmWUplV18x
CnpvOzYoYT41KERCJnhjVz9aZWVqYld3YX5fNEo+OGlpJCtnNjdFSyVkWH5gSyh2bz5RbXZwanZ4
SUdSbngoI0cqQAp6RCFwS1l2JisrMlY/NFdAJktsPShiR1pmTVZvdm01JlNqITtCZmgqaTdjPUlz
Q28pUzB1aShscUxkOEIzP0lLai0KemEyU0IyczlSQTZSNHw5WjlpJT0qRC1gdUJUQiZIMnFTY0Rs
Q3xhdiVvdWMpTUhZblB0WHBeR05pbmJgYU9WTChFCnorWjFoQXZfbnllSjJEdHFCVUdZbWpeaGpf
YVNeV3xpOFFYX2I9PCZCeXAzQ1U3ZUJ9UXhYbUR3a01JZlo7Vjx8Qwp6X2M9dExRRD9Mby1BMkRM
IzUkeSZgPGcjNklSbFBWelR3eHJQVipNYzFEZnx9LW1tJGY9RUlzRiklPntUajg+Qk4KempCKEEr
WD97YGptbzwtVEtDZ0xOXkgoKjBQNG4rKmVuYXkmSEdmTzxBOExMfV5MSTNWazJDQmVIdmdJfVFu
ZntACnp2YEFpeTxnIVJeaV9+UDFjM1klWWl7IUNMMGdLZFRrPWlYJWhlZEspcSZrYUtaO0BJb1Fr
NncmdXQ/biZYXiV6bgp6VGNsMmw8Zy1XPjdPQj1FSENtKURpJlNIZ1dLQjVlbVJ+WGtaUUd5NzNu
d29+cCoqOWZ4WU54alQ9eH4lYVgjLWIKekheNlNMYnw7QFAjIVJPR2skQ0hBYSNgTzIjPUZVPFVz
M2prYH49ZV9DZWUjQlUxI2NHZ2AocGptITBHaXVCJj1hCnpBailYR1B4R2NQUWJDbnMkPX5FIUtL
XmQpPXN6N1EmUUJmYGYyN1o5aSNCJjdkQmlkczt9RVFCRGxRfihiYSErTAp6bEspPk1IT2ZPMChr
TEhnfEJXIy07KnlffSZNczJaUVZkJHQqdWtobms8Nkx4I2tqXlU9NExkTyRpfXhkX0F2aikKekNO
PlB0YClAVU5GaGNSMyMhaWVIdlU5VWVQVE9IKVFlIXVjOEU8SXAhSGBpWD5xU3QwT0hsZWdqTE1a
bztSK21jCnpPbCN+JSZ+WiFTTzZMRHc8MD4zPyVJUDYoUmIjK2VYc2Q9O0pXbGQhdkRmKWlqcTha
LVhrM3FnXksqP0dGeU45Pwp6T1l8RU5hNHtOQztVP3o0c0J0cTZ5UkteN0xpe3QwY09tNVpPeWdG
Qis7UiNASiNGWjZNPktCN2ZMcShzOzN7emMKek5hcUw4PEchVkZDdmBzMXhDe082TGY+fHklVHVz
dEh3SFh+elVAS0teQnR8PEw7Ui0zajMpS20pXzU9VjN3P1ZFCnpBK01hZSh6amo9ZCYzJntBPmJ8
OHN2aVUxQUwjc2opVlp6azBDOGNDbzxAJlBSPFlFeEFOemdKWXkxckhzflFodAp6KWJ8c081MWBs
Z0N5aj9OUH5wPH1BY2lYakg0WUxOPTk8eTI2QEArdzZhUC1AOUt6OXgyTzF5N3M2VjlmNXA/QD0K
ejhpejM4ZUBvKkw0RWxlcUBsZ2MqMSQleEk/VWh8UmUteW95QSV3QW5NZFdZK2JFSFlpM0dQYHJF
T1FNY2tpYFRkCnolPV9QSzliXnBmUD9feXM9R3ZYWnRmaykoVDtzaGIhS21zfTlBUyFvR1MxQzw2
VT8yVy1VM3NNPDZoI3AlYCMkQAp6MWFENGFpenVJT3J8amR9bzhke2JeQTx+JktGMSEpZTNqZUIk
TFdgRDtTNFJEKSVLYUFyTTY+e2E/NiUoUz8ySDIKenhqNGMza2xEJWJpRm03Y3MmJlQ4RE4rOTFt
dWhjPF5IXiNvVXNDPGIoTyN5TkNmV2IyVDN2SCRCIXp5KXNXLSNrCnpGUlFWZj1TWV5SbXE1SVBj
YncoWjhDOT47ayloc1o1MUx8bUAlUmtlK0RkMWZQcCZBUFEqMnBVK2V2VEV2bUxYZwp6QyNodn5V
IzdUOSNqaDUpV318R08pRj9OJVR+NFhaWkIyNlFHRHFTJitpOSk1YV50RlkoP2ZTfEJjMmw2aT5C
RGUKellxVXYlZHZSTHpTPVBnYnppLUVuQjVLNDdxPkoxeXc7dVA0XnJhTjAqPTl5KntyNWJqeGFM
eXh5THFPKnUwLStrCnpET3hEWGIhVSFtQyUhJCY1aWhZOFN3WjMtVnIlaXE7I054YWAmJnY9Uj1V
eyhTO3Q+akNkQFhad31wMGdIbTlmQQp6JVA0MkYoOV9NZVpyJj4lLUp7QVdHcmBgKm0xVl5xckVG
bEBkeD9GS2Fpd3tpa1VqN0BiJXNqTCNgd2dtN2dTRD8Kekp7SVRPa2EqZT5KLXBPdVQ8LVolc19a
SERMZTU2aCZlRj0xJTh+dFJDO3NzfiZhI0dzN3tMKlF4SGNaR3lfOCl4CnolN3BtO094ckNwIWg2
dG0kXkB4RCNHUndPR0U8elI2ejU5emdjJkI4anEqeEhsdlR3ZTNqUW04UUVwbERYNyVMagp1d2Ja
KGNhMT9USCt3QXZTdD9zUSRvYTBWNyZIZVdVZFhWZXsxKXNUJE4xdjRQVUFgd2c/KC1rVmpEe2Zx
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbXBvcnRlZC1sb2FkaW5nLXN1YnJlc291cmNlcy5jc3Mg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbXBvcnRlZC1sb2Fk
aW5nLXN1YnJlc291cmNlcy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZmYjY4MTVlZDM2MzI1YTUzOWQ4ZmI0
ZjVlYzRiMzQ0M2NmMzk5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVzb3VyY2VzL2ltcG9ydGVkLWxvYWRpbmctc3VicmVzb3VyY2VzLmNzcwpA
QCAtMCwwICsxLDMgQEAKKyNteWRpdiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIvc2Vj
dXJpdHkvcmVzb3VyY2VzL2FiZS1hbGxvdy1zdGFyLnBocCIpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvbG9hZGluZy1zdWJyZXNvdXJj
ZXMuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvbG9hZGlu
Zy1zdWJyZXNvdXJjZXMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyN2RlYWZjMWZlODYzYTA0NGMwNDFmNmEz
NWZlZTQ0OGZmMGY3YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9sb2FkaW5nLXN1YnJlc291cmNlcy5jc3MKQEAgLTAsMCArMSw1
IEBACitAaW1wb3J0IHVybCgiL3NlY3VyaXR5L3Jlc291cmNlcy9pbXBvcnRlZC1sb2FkaW5nLXN1
YnJlc291cmNlcy5jc3MiKTsKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OmFoZW07Cisg
ICAgc3JjOiB1cmwoIi9yZXNvdXJjZXMvQWhlbS53b2ZmIik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356047</attachid>
            <date>2018-11-29 13:34:15 -0800</date>
            <delta_ts>2018-11-29 15:06:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-192132-20181129133414.patch</filename>
            <type>text/plain</type>
            <size>39923</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM3YjcxNDZkOTlkNjE2
MTFlMjIwOGMzZmY5ZjI1YjAzZTg1ZjYzNy4uYjE3NzkzMGNjYzQ4YWU2ZGJiZmQ2OWNhYmJjMTQ0
OGJiZmU5ZjRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE4LTExLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mgc3VicmVzb3VyY2Ug
bG9hZHMgc2hvdWxkIG5vdCBiZSBvYnNlcnZhYmxlIGZyb20gcmVzb3VyY2UgdGltaW5nIGlmIHRo
ZSBzdHlsZXNoZWV0IGlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBSZXNvdXJjZUxvYWRlck9wdGlvbnMgdG8gZGV0
ZXJtaW5lIHdoZXRoZXIgYSBsb2FkIGlzIG1hZGUgZnJvbSBhIHJlc291cmNlIHRoYXQgaXMgb3Bh
cXVlLgorICAgICAgICBNYWtlIHVzZSBvZiB0aGF0IG9wdGlvbiB0byBkaXNhYmxlIGV4cG9zaW5n
IHN1Y2ggbG9hZHMgdG8gdGhlIHdlYiBwYWdlIHRocm91Z2ggcmVzb3VyY2UgdGltaW5nLgorICAg
ICAgICBUaGUgc2FtZSBvcHRpb24gbWlnaHQgbGF0ZXIgYmUgdXNlZCB0byBieXBhc3Mgc2Vydmlj
ZSB3b3JrZXJzLgorCisgICAgICAgIE1ha2UgdXNlIG9mIHRoaXMgb3B0aW9uIGZvciBDU1Mgc3Vi
cmVzb3VyY2UgbG9hZHMuCisgICAgICAgIFdoZW4gdGhlIENTUyBzdHlsZXNoZWV0IGlzIG9wYXF1
ZSBmb3IgdGhlIHBhZ2UsIHNldCB0aGlzIG9wdGlvbi4KKworICAgICAgICBUZXN0OiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NsZWFuLW9yaWdpbi1leHBvc2VkLXJlc291cmNlLXRpbWluZy5odG1sCisg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXRp
bWluZy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAg
ICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpj
YWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
U2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VT
ZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFs
dWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlVmFsdWU6OmxvYWRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuaDoKKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpzZXRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hl
ZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZUZvbnRGYWNlU3JjVVJJKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFnZSk6CisgICAgICAgICogaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6aW5p
dGlhbGl6ZVN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpz
ZXRDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uOjpzaG91bGRB
ZGRSZXNvdXJjZVRpbWluZyk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnNyY1ZhbHVlIGNv
bnN0KToKKwogMjAxOC0xMS0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLmh0bWwgaXMgZmxha3kgb24gaU9TIHNpbXVsYXRv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDJhZDgx
OTkyN2EwYjcyODk3ZGVjZjkwY2E2MjM2ZWM4MjdkY2E3ZDEuLjMzYTUyOWU4MTI2NjA3MzEzNTY5
M2UwZDc0N2Q1ZDEyZTlkZTE2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAKQEAgLTM1LDExICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUNTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdlVmFsdWUoUmVmPENTU1ZhbHVlPiYm
IGltYWdlVmFsdWUsIGJvb2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCitD
U1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBp
bWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90LCBMb2Fk
ZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpCiAgICAgOiBDU1NWYWx1
ZShDdXJzb3JJbWFnZUNsYXNzKQogICAgICwgbV9pbWFnZVZhbHVlKFdURk1vdmUoaW1hZ2VWYWx1
ZSkpCiAgICAgLCBtX2hhc0hvdFNwb3QoaGFzSG90U3BvdCkKICAgICAsIG1faG90U3BvdChob3RT
cG90KQorICAgICwgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlKGxvYWRlZEZyb21PcGFxdWVTb3Vy
Y2UpCiB7CiAgICAgaWYgKGlzPENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkpCiAg
ICAgICAgIG1fb3JpZ2luYWxVUkwgPSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFs
dWUuZ2V0KCkpLnVybCgpOwpAQCAtMTA2LDcgKzEwNyw3IEBAIHN0ZDo6cGFpcjxDYWNoZWRJbWFn
ZSosIGZsb2F0PiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpsb2FkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VM
b2FkCiAKICAgICBpZiAoYXV0byogY3Vyc29yRWxlbWVudCA9IHVwZGF0ZUN1cnNvckVsZW1lbnQo
KmxvYWRlci5kb2N1bWVudCgpKSkgewogICAgICAgICBpZiAoY3Vyc29yRWxlbWVudC0+aHJlZigp
ICE9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkudXJsKCkpCi0g
ICAgICAgICAgICBtX2ltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobG9hZGVyLmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKGN1cnNvckVsZW1lbnQtPmhyZWYoKSkpOworICAgICAgICAg
ICAgbV9pbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGxvYWRlci5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChjdXJzb3JFbGVtZW50LT5ocmVmKCkpLCBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2UpOwogICAgIH0KIAogICAgIHJldHVybiB7IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1f
aW1hZ2VWYWx1ZS5nZXQoKSkubG9hZEltYWdlKGxvYWRlciwgb3B0aW9ucyksIDEgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCmluZGV4IGUyMmFhMjAxNDFjMDEwNzc4
ZTYxMGNmNjljMGUyMDcxMzQzM2Y5ZmUuLjdlZGFkNjc3ODZjNDRlMTc5MzY3MGRlODY5NGY4Mjkz
N2U3N2I0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaApAQCAt
MjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMwLDE1ICszMSwxNCBAQCBjbGFz
cyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFbGVtZW50Owotc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIGNsYXNz
IFNWR0N1cnNvckVsZW1lbnQ7CiBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBDU1NDdXJzb3JJ
bWFnZVZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKKyAgICBzdGF0aWMg
UmVmPENTU0N1cnNvckltYWdlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTVmFsdWU+JiYgaW1hZ2VWYWx1
ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCwgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZShXVEZNb3ZlKGltYWdlVmFsdWUpLCBo
YXNIb3RTcG90LCBob3RTcG90KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0N1
cnNvckltYWdlVmFsdWUoV1RGTW92ZShpbWFnZVZhbHVlKSwgaGFzSG90U3BvdCwgaG90U3BvdCwg
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkpOwogICAgIH0KIAogICAgIH5DU1NDdXJzb3JJbWFnZVZh
bHVlKCk7CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnNvckVsZW1lbnRD
aGFuZ2VkKFNWR0N1cnNvckVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBDU1NDdXJzb3JJbWFn
ZVZhbHVlKFJlZjxDU1NWYWx1ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0
IEludFBvaW50JiBob3RTcG90KTsKKyAgICBDU1NDdXJzb3JJbWFnZVZhbHVlKFJlZjxDU1NWYWx1
ZT4mJiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90
LCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKIAogICAgIFNWR0N1cnNvckVsZW1lbnQqIHVwZGF0
ZUN1cnNvckVsZW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIApAQCAtNzYsNiArNzYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9oYXNIb3RTcG90OwogICAgIEludFBvaW50IG1faG90U3BvdDsKICAg
ICBIYXNoU2V0PFNWR0N1cnNvckVsZW1lbnQqPiBtX2N1cnNvckVsZW1lbnRzOworICAgIExvYWRl
ZEZyb21PcGFxdWVTb3VyY2UgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlIHsgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZTo6Tm8gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1NmYxOGEzMDY1
OTFjYTg4ZmE2OTFlNzUyNzQzMjQ5YjJlLi4wZmJjZGM5Y2U0MDc4M2VlYWFkNjRkNmZhYTA4NTY4
ZDljN2VhNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CkBAIC05OCw2ICs5OCw3IEBAIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hl
ZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGlzU1ZHLCBib29sCiAKICAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CisgICAgb3B0aW9ucy5sb2Fk
ZWRGcm9tT3BhcXVlU291cmNlID0gbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlOwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTChtX3Jlc291cmNlKSksIG9wdGlvbnMpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmgKaW5kZXggNjY1MjYzNzUxZmE4NTcyMzZiMWYxMjFmYTI0
NTk1NzgyY2M4ZGE3NS4uZjFiOTVlNzk1ZTk4ZjlkZGI4MjJmODE1OTM4ZTI2NTdiNjcwYTQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFu
ZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM4LDEz
ICszOSwxMyBAQCBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENTU0ZvbnRGYWNl
U3JjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2UpCisg
ICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZhY2VTcmNWYWx1ZShy
ZXNvdXJjZSwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEZh
Y2VTcmNWYWx1ZShyZXNvdXJjZSwgZmFsc2UsIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsKICAg
ICB9CiAgICAgc3RhdGljIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBjcmVhdGVMb2NhbChjb25z
dCBTdHJpbmcmIHJlc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q1NTRm9udEZhY2VTcmNWYWx1ZShyZXNvdXJjZSwgdHJ1ZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NGb250RmFjZVNyY1ZhbHVlKHJlc291cmNlLCB0cnVlLCBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObykpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgcmVzb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlOyB9CkBAIC03MiwxMCArNzMsMTEgQEAgcHVibGlj
OgogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ZvbnRGYWNlU3JjVmFsdWUmKSBjb25zdDsKIAog
cHJpdmF0ZToKLSAgICBDU1NGb250RmFjZVNyY1ZhbHVlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2Us
IGJvb2wgbG9jYWwpCisgICAgQ1NTRm9udEZhY2VTcmNWYWx1ZShjb25zdCBTdHJpbmcmIHJlc291
cmNlLCBib29sIGxvY2FsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVT
b3VyY2UpCiAgICAgICAgIDogQ1NTVmFsdWUoRm9udEZhY2VTcmNDbGFzcykKICAgICAgICAgLCBt
X3Jlc291cmNlKHJlc291cmNlKQogICAgICAgICAsIG1faXNMb2NhbChsb2NhbCkKKyAgICAgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICAsIG1fc3ZnRm9udEZhY2VFbGVtZW50KDApCiAjZW5k
aWYKQEAgLTg1LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9yZXNvdXJjZTsKICAg
ICBTdHJpbmcgbV9mb3JtYXQ7CiAgICAgYm9vbCBtX2lzTG9jYWw7CisgICAgTG9hZGVkRnJvbU9w
YXF1ZVNvdXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpObyB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNo
ZWRGb250OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggYTk3
ZGMyMWM4NTQ4NjMyYTlhOTUzNjc5N2M0Mzg3MWI2NjFiMzE5NC4uNmIwMjY2ZDBjMzY4YmYzMjk4
MGM4ZDA2MjIwNTVlM2E5Y2M3ZTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcApAQCAtMzgsOCArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNTU0lt
YWdlU2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUoKQorQ1NTSW1hZ2VTZXRWYWx1ZTo6Q1NTSW1h
Z2VTZXRWYWx1ZShMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2Up
CiAgICAgOiBDU1NWYWx1ZUxpc3QoSW1hZ2VTZXRDbGFzcywgQ29tbWFTZXBhcmF0b3IpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtOTgsNyArOTksMTAgQEAgc3RkOjpwYWlyPENhY2hlZEltYWdlKiwgZmxvYXQ+IENTU0lt
YWdlU2V0VmFsdWU6OmxvYWRCZXN0Rml0SW1hZ2UoQ2FjaGVkUmVzb3VyY2UKICAgICAgICAgLy8g
QWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxlRmFj
dG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAogICAgICAgICAvLyBhbmQgYW55IENTUyB0
cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgK
ICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3Rvcigp
OwotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSksIG9wdGlvbnMpOworCisgICAg
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBsb2FkT3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAg
IGxvYWRPcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX2xvYWRlZEZyb21PcGFxdWVT
b3VyY2U7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgbG9hZE9wdGlvbnMp
OwogICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzKCkuY3NzKTsKICAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnMpCiAgICAgICAgICAgICByZXF1ZXN0LnVwZGF0ZUZvckFjY2Vzc0NvbnRyb2wo
KmRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCmluZGV4IGU1ODM2
YjdmYzY0NGQ4M2Y4ZmMyMjk0NmQyZDdhMDAxZDg4OTA4ZTMuLmY1ZjQ3Yzg2MDQyMGJlYWJlZDM4
Y2M5MmJhYTE3MmM1MjU5NDJkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzQsMTMgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZEltYWdl
OwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsKLXN0cnVjdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdlU2V0VmFsdWUgZmluYWwgOiBw
dWJsaWMgQ1NTVmFsdWVMaXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0ltYWdlU2V0
VmFsdWU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBjcmVhdGUo
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3BhcXVlU291cmNlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VTZXRWYWx1ZShsb2FkZWRGcm9tT3BhcXVlU291
cmNlKSk7CiAgICAgfQogICAgIH5DU1NJbWFnZVNldFZhbHVlKCk7CiAKQEAgLTY0LDcgKzY0LDcg
QEAgcHJvdGVjdGVkOgogICAgIEltYWdlV2l0aFNjYWxlIGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7CiAKIHByaXZhdGU6Ci0gICAgQ1NTSW1hZ2VTZXRWYWx1ZSgpOworICAgIGV4cGxpY2l0IENT
U0ltYWdlU2V0VmFsdWUoTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAKICAgICB2b2lkIGZpbGxJ
bWFnZVNldCgpOwogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlTY2FsZUZhY3RvcihJ
bWFnZVdpdGhTY2FsZSBmaXJzdCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7IHJldHVybiBmaXJz
dC5zY2FsZUZhY3RvciA8IHNlY29uZC5zY2FsZUZhY3RvcjsgfQpAQCAtNzUsNiArNzUsNyBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBWZWN0
b3I8SW1hZ2VXaXRoU2NhbGU+IG1faW1hZ2VzSW5TZXQ7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
VmFsdWUuY3BwCmluZGV4IDRlYTQxMTRjY2Q4OTgwNTUzOTc1ZTUwYWQ4YjU5M2YwNGQ1YjExZjgu
LmUxNDIwZDFlODM1ZWY3NTdiMjQ0OTAyNDZkYzY2MzVjN2VjNDE3ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNTU0ltYWdlVmFsdWU6OkNTU0ltYWdlVmFsdWUoVVJMJiYgdXJsKQorQ1NTSW1h
Z2VWYWx1ZTo6Q1NTSW1hZ2VWYWx1ZShVUkwmJiB1cmwsIExvYWRlZEZyb21PcGFxdWVTb3VyY2Ug
bG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKICAgICA6IENTU1ZhbHVlKEltYWdlQ2xhc3MpCiAgICAg
LCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX2FjY2Vzc2VkSW1hZ2UoZmFsc2UpCisgICAg
LCBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UobG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSkKIHsKIH0K
IApAQCAtNjIsNyArNjMsOSBAQCBDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogICAgIGlmICghbV9h
Y2Nlc3NlZEltYWdlKSB7CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBvcHRpb25zKTsKKyAgICAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGxvYWRPcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAg
bG9hZE9wdGlvbnMubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9IG1fbG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGxvYWRlci5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybC5zdHJpbmcoKSkpLCBsb2Fk
T3B0aW9ucyk7CiAgICAgICAgIGlmIChtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmNzcyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCmluZGV4
IDc2Zjk0ZGY1ZTQyZTgzM2VhOTg3ZWM5M2NmOTFkMWMyNmMyZmU4NmQuLjU5YmI3MWM0MWVjNjZl
Y2MzZjNiNGI3MzdmNzQ4MTYzYjg2YTkxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
aApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5o
IgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAt
MzIsMTEgKzMzLDEwIEBAIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRGVwcmVj
YXRlZENTU09NVmFsdWU7CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgUmVuZGVy
RWxlbWVudDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKIGNsYXNzIENTU0ltYWdl
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
Q1NTSW1hZ2VWYWx1ZT4gY3JlYXRlKFVSTCYmIHVybCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NJbWFnZVZhbHVlKFdURk1vdmUodXJsKSkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NJbWFnZVZh
bHVlPiBjcmVhdGUoVVJMJiYgdXJsLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21P
cGFxdWVTb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1hZ2VWYWx1ZShXVEZNb3Zl
KHVybCksIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UpKTsgfQogICAgIHN0YXRpYyBSZWY8Q1NTSW1h
Z2VWYWx1ZT4gY3JlYXRlKENhY2hlZEltYWdlJiBpbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NJbWFnZVZhbHVlKGltYWdlKSk7IH0KICAgICB+Q1NTSW1hZ2VWYWx1ZSgpOwogCkBAIC01
OSwxMyArNTksMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgeyBtX2luaXRpYXRvck5hbWUgPSBuYW1lOyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShVUkwmJik7CisgICAgQ1NTSW1hZ2VWYWx1ZShVUkwm
JiwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAgICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShD
YWNoZWRJbWFnZSYpOwogCiAgICAgVVJMIG1fdXJsOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBtX2NhY2hlZEltYWdlOwogICAgIGJvb2wgbV9hY2Nlc3NlZEltYWdlOwog
ICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZSBtX2xvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpO
byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmgKaW5kZXggZjY1NDYwY2E1ZDczNzA3MzQ3OTFiNmI3ODhiZGVkZGEwYjAwMTNmYS4uNWQz
N2ZhOGQyZTg1NDg4YjM4YTUxYjdjZDQ3NThlYzU2YThjMjczYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5oCkBAIC0xMjUsNiArMTI1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRh
Y2hGcm9tRG9jdW1lbnQoKSB7IG1fb3duZXJOb2RlID0gbnVsbHB0cjsgfQogCisgICAgYm9vbCBj
YW5BY2Nlc3NSdWxlcygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENTU1N0eWxlU2hlZXQoUmVm
PFN0eWxlU2hlZXRDb250ZW50cz4mJiwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKTsKICAgICBD
U1NTdHlsZVNoZWV0KFJlZjxTdHlsZVNoZWV0Q29udGVudHM+JiYsIE5vZGUqIG93bmVyTm9kZSwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBib29sIGlzSW5saW5lU3R5bGVzaGVl
dCk7CkBAIC0xMzMsOCArMTM1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQ1NTU3R5bGVTaGVl
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJ0ZXh0L2NzcyJfczsgfQogCi0gICAgYm9vbCBjYW5BY2Nlc3NSdWxl
cygpIGNvbnN0OwotCiAgICAgUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gbV9jb250ZW50czsKICAg
ICBib29sIG1faXNJbmxpbmVTdHlsZXNoZWV0OwogICAgIGJvb2wgbV9pc0Rpc2FibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCBkMDk1NThjMzFjMmVkMTA1NzJh
ZDA0ZDUwYTFkYjUxZTU1NzgwYWYxLi4yMDM1NGNjMTc4NTY1OTcxOGU1N2E0OTc1ZjdlZmE2ZDQ1
OTQ5NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtNzQsNiAr
NzQsOCBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6c2V0Q1NTU3R5bGVTaGVldChjb25zdCBTdHJp
bmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgYwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbV9wYXJlbnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5zaW5nbGVPd25lckRv
Y3VtZW50KCkgOiBudWxscHRyOwogICAgIG1fc3R5bGVTaGVldCA9IFN0eWxlU2hlZXRDb250ZW50
czo6Y3JlYXRlKHRoaXMsIGhyZWYsIGNvbnRleHQpOworICAgIGlmIChtX3BhcmVudFN0eWxlU2hl
ZXQtPmlzQ29udGVudE9wYXF1ZSgpIHx8ICFjYWNoZWRTdHlsZVNoZWV0LT5pc0NPUlNTYW1lT3Jp
Z2luKCkpCisgICAgICAgIG1fc3R5bGVTaGVldC0+c2V0QXNPcGFxdWUoKTsKICAgICBtX3N0eWxl
U2hlZXQtPnBhcnNlQXV0aG9yU3R5bGVTaGVldChjYWNoZWRTdHlsZVNoZWV0LCBkb2N1bWVudCA/
ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSA6IG51bGxwdHIpOwogCiAgICAgbV9sb2FkaW5n
ID0gZmFsc2U7CkBAIC0xMjEsNyArMTIzLDcgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVl
c3RTdHlsZVNoZWV0KCkKICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgbV9jYWNoZWRT
aGVldC0+cmVtb3ZlQ2xpZW50KG1fc3R5bGVTaGVldENsaWVudCk7CiAgICAgaWYgKG1fcGFyZW50
U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKSB7Ci0gICAgICAgIHJlcXVlc3Quc2V0T3B0
aW9ucyhSZXNvdXJjZUxvYWRlck9wdGlvbnMoCisgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9u
cyBvcHRpb25zIHsKICAgICAgICAgICAgIFNlbmRDYWxsYmFja1BvbGljeTo6RG9Ob3RTZW5kQ2Fs
bGJhY2tzLAogICAgICAgICAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQs
CiAgICAgICAgICAgICBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZmZXJEYXRhLApAQCAtMTMzLDEw
ICsxMzUsMTkgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAg
ICAgICAgICAgIENlcnRpZmljYXRlSW5mb1BvbGljeTo6RG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJ
bmZvLAogICAgICAgICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBv
bGljeUNoZWNrLAogICAgICAgICAgICAgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNM
b2FkaW5nLAotICAgICAgICAgICAgQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nKSk7CisgICAg
ICAgICAgICBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcKKyAgICAgICAgfTsKKyAgICAgICAg
b3B0aW9ucy5sb2FkZWRGcm9tT3BhcXVlU291cmNlID0gbV9wYXJlbnRTdHlsZVNoZWV0LT5pc0Nv
bnRlbnRPcGFxdWUoKSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21P
cGFxdWVTb3VyY2U6Ok5vOworCisgICAgICAgIHJlcXVlc3Quc2V0T3B0aW9ucyhXVEZNb3ZlKG9w
dGlvbnMpKTsKKwogICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCkucmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFdURk1vdmUocmVxdWVzdCkpOwot
ICAgIH0gZWxzZQorICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gb3B0aW9ucyA9IHJlcXVlc3Qu
b3B0aW9ucygpOworICAgICAgICBvcHRpb25zLmxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSBtX3Bh
cmVudFN0eWxlU2hlZXQtPmlzQ29udGVudE9wYXF1ZSgpID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm87CisgICAgICAgIHJlcXVlc3Quc2V0
T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3Vt
ZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RDU1NTdHlsZVNoZWV0KFdURk1vdmUo
cmVxdWVzdCkpLnZhbHVlX29yKG51bGxwdHIpOworICAgIH0KICAgICBpZiAobV9jYWNoZWRTaGVl
dCkgewogICAgICAgICAvLyBpZiB0aGUgaW1wb3J0IHJ1bGUgaXMgaXNzdWVkIGR5bmFtaWNhbGx5
LCB0aGUgc2hlZXQgbWF5IGJlCiAgICAgICAgIC8vIHJlbW92ZWQgZnJvbSB0aGUgcGVuZGluZyBz
aGVldCBjb3VudCwgc28gbGV0IHRoZSBkb2Mga25vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hl
ZXRDb250ZW50cy5oCmluZGV4IDJjMmJkMTE3YWUwYTViMjNkZjI1MDE0YjllNWI5MzEwN2Q5NThh
NDUuLjJjNzRhZmEzNjU1ZGJkMzFiZDVhZTVjNDc3YjVjZGYxMzFlMjRhZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKQEAgLTE0NCw2ICsxNDQsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNocmlua1RvRml0KCk7CiAKKyAgICB2b2lkIHNldEFzT3BhcXVlKCkgeyBt
X3BhcnNlckNvbnRleHQuaXNDb250ZW50T3BhcXVlID0gdHJ1ZTsgfQorICAgIGJvb2wgaXNDb250
ZW50T3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZXJDb250ZXh0LmlzQ29udGVudE9wYXF1
ZTsgfQorCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0eWxlU2hlZXRDb250ZW50cyhT
dHlsZVJ1bGVJbXBvcnQqIG93bmVyUnVsZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYpOwogICAgIFN0eWxlU2hlZXRDb250ZW50cyhjb25zdCBTdHls
ZVNoZWV0Q29udGVudHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmgKaW5kZXggZWNlY2VmNjcxNGIyY2I4MTdjZThiMGQ0YmNlNDgyZDY1NTVmMDkwYS4u
MTA4OWQyMmQ0MWIxOGFlODE1MDI2ZTQwZTBlMDJiZmJhYWM4MmQwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTc1LDYgKzc1LDggQEAgcHVi
bGljOgogICAgICAgICBhdXRvJiBlbmNvZGluZ0ZvclVSTFBhcnNpbmcgPSBlbmNvZGluZy5lbmNv
ZGluZ0ZvckZvcm1TdWJtaXNzaW9uT3JVUkxQYXJzaW5nKCk7CiAgICAgICAgIHJldHVybiBVUkwo
YmFzZVVSTCwgdXJsLCBlbmNvZGluZ0ZvclVSTFBhcnNpbmcgPT0gVVRGOEVuY29kaW5nKCkgPyBu
dWxscHRyIDogJmVuY29kaW5nRm9yVVJMUGFyc2luZyk7CiAgICAgfQorCisgICAgYm9vbCBpc0Nv
bnRlbnRPcGFxdWUgeyBmYWxzZSB9OwogfTsKIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1Bh
cnNlckNvbnRleHQmLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDUyZjI4ZjI3MGM2Mzgx
Y2ZiOTY3OWI1NWNiZTQ2NDdhZjc1NmM5NzIuLjVjYjg5NDViMzhmYTgxMGIyNzczZTAyZjgzNjc4
ZTliNjZiMjA5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXIuY3BwCkBAIC0yMTcwLDcgKzIxNzAsNyBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVl
PiBjb25zdW1lQ3Vyc29yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJz
ZQogICAgICAgICBpZiAoIWxpc3QpCiAgICAgICAgICAgICBsaXN0ID0gQ1NTVmFsdWVMaXN0Ojpj
cmVhdGVDb21tYVNlcGFyYXRlZCgpOwogCi0gICAgICAgIGxpc3QtPmFwcGVuZChDU1NDdXJzb3JJ
bWFnZVZhbHVlOjpjcmVhdGUoaW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgaG90U3BvdFNwZWNpZmll
ZCwgaG90U3BvdCkpOworICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6
Y3JlYXRlKGltYWdlLnJlbGVhc2VOb25OdWxsKCksIGhvdFNwb3RTcGVjaWZpZWQsIGhvdFNwb3Qs
IGNvbnRleHQuaXNDb250ZW50T3BhcXVlID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6WWVzIDog
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pKTsKICAgICAgICAgaWYgKCFjb25zdW1lQ29tbWFJ
bmNsdWRpbmdXaGl0ZXNwYWNlKHJhbmdlKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KQEAgLTQ0MzQsOCArNDQzNCw4IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1
bWVGb250RmFjZVNyY1VSSShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QKICAgICBT
dHJpbmcgdXJsID0gY29uc3VtZVVybEFzU3RyaW5nVmlldyhyYW5nZSkudG9TdHJpbmcoKTsKICAg
ICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKLSAgICBS
ZWZQdHI8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gdXJpVmFsdWUgPSBDU1NGb250RmFjZVNyY1ZhbHVl
OjpjcmVhdGUoY29udGV4dC5jb21wbGV0ZVVSTCh1cmwpKTsKKworICAgIFJlZlB0cjxDU1NGb250
RmFjZVNyY1ZhbHVlPiB1cmlWYWx1ZSA9IENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNyZWF0ZShjb250
ZXh0LmNvbXBsZXRlVVJMKHVybCksIGNvbnRleHQuaXNDb250ZW50T3BhcXVlID8gTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pOwogCiAgICAg
aWYgKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgIT0gQ1NTVmFsdWVGb3JtYXQpCiAgICAgICAg
IHJldHVybiB1cmlWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAwN2M0ZDcwMGMyOWJlMDNlMWMxYjMz
OTg2ZTk3YjcxNzRiNWIwODg0Li5hZTk0ODY0Y2UxM2I5M2QyODY4MTQ3MzBiNGQ4MWIwZjIzMTkz
ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnMuY3BwCkBAIC0xMzU5LDEzICsxMzU5LDEzIEBAIHN0YXRpYyBSZWZQdHI8
Q1NTVmFsdWU+IGNvbnN1bWVJbWFnZVNldChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29u
c3QgQ1NTUGFyCiB7CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZUNvcHkgPSByYW5nZTsK
ICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2VDb3B5
KTsKLSAgICBSZWZQdHI8Q1NTSW1hZ2VTZXRWYWx1ZT4gaW1hZ2VTZXQgPSBDU1NJbWFnZVNldFZh
bHVlOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8Q1NTSW1hZ2VTZXRWYWx1ZT4gaW1hZ2VTZXQgPSBD
U1NJbWFnZVNldFZhbHVlOjpjcmVhdGUoY29udGV4dC5pc0NvbnRlbnRPcGFxdWUgPyBMb2FkZWRG
cm9tT3BhcXVlU291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CiAgICAg
ZG8gewogICAgICAgICBBdG9taWNTdHJpbmcgdXJsVmFsdWUgPSBjb25zdW1lVXJsQXNTdHJpbmdW
aWV3KGFyZ3MpLnRvQXRvbWljU3RyaW5nKCk7CiAgICAgICAgIGlmICh1cmxWYWx1ZS5pc051bGwo
KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIFJlZlB0cjxDU1NWYWx1
ZT4gaW1hZ2UgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoY29tcGxldGVVUkwoY29udGV4dCwgdXJs
VmFsdWUpKTsKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBpbWFnZSA9IENTU0ltYWdlVmFsdWU6
OmNyZWF0ZShjb21wbGV0ZVVSTChjb250ZXh0LCB1cmxWYWx1ZSksIGNvbnRleHQuaXNDb250ZW50
T3BhcXVlID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNv
dXJjZTo6Tm8pOwogICAgICAgICBpbWFnZVNldC0+YXBwZW5kKGltYWdlLnJlbGVhc2VOb25OdWxs
KCkpOwogCiAgICAgICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IGFyZ3MuY29uc3Vt
ZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKQEAgLTE1ODAsNyArMTU4MCw4IEBAIFJlZlB0cjxDU1NW
YWx1ZT4gY29uc3VtZUltYWdlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJD
b250ZXh0IGNvbnRlCiB7CiAgICAgQXRvbWljU3RyaW5nIHVyaSA9IGNvbnN1bWVVcmxBc1N0cmlu
Z1ZpZXcocmFuZ2UpLnRvQXRvbWljU3RyaW5nKCk7CiAgICAgaWYgKCF1cmkuaXNOdWxsKCkpCi0g
ICAgICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoY29tcGxldGVVUkwoY29udGV4dCwg
dXJpKSk7CisgICAgICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoY29tcGxldGVVUkwo
Y29udGV4dCwgdXJpKSwgY29udGV4dC5pc0NvbnRlbnRPcGFxdWUgPyBMb2FkZWRGcm9tT3BhcXVl
U291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7CisKICAgICBpZiAocmFu
Z2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7CiAgICAgICAgIENTU1ZhbHVlSUQg
aWQgPSByYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpOwogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVXZWJraXRJbWFnZVNldCB8fCBpZCA9PSBDU1NWYWx1ZUltYWdlU2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IGJiYWYwNzMwODNjNzgwNDg5MjU0ZTBhMzlk
NTM5NjRjNDVjY2M4NmMuLjFkOGE2YThjMzI3MDI0MjQ0N2I5YTA0ODNhMTMxNzY0NmNlYmI2MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTc0LDcgKzc0LDcg
QEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIGlmIChuYW1lID09IGJhY2tncm91bmRBdHRy
KSB7CiAgICAgICAgIFN0cmluZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXModmFsdWUpOwogICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGF1
dG8gaW1hZ2VWYWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRl
VVJMKHVybCkpOworICAgICAgICAgICAgYXV0byBpbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6
Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZTo6Tm8pOwogICAgICAgICAgICAgaW1hZ2VWYWx1ZS5nZXQoKS5zZXRJbml0aWF0b3IobG9jYWxO
YW1lKCkpOwogICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kSW1hZ2UsIFdURk1vdmUoaW1hZ2VWYWx1ZSkpKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDA5ZmVjNjNlNTQ3YTll
MTNkN2FiMmZlYmM4Y2Q5MzY2ZTFkMWZjN2YuLjY4ZTc4Njg4YmI3ODY3ZjMyZTRiMTVmNTQ3MDM4
YzkyZjA3YjM4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAg
LTQwMiw2ICs0MDIsOSBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6aW5pdGlhbGl6ZVN0eWxlU2hl
ZXQoUmVmPFN0eWxlU2hlZXRDb250ZW50cz4mJiBzdHlsZVNoZWV0LAogICAgIG1fc2hlZXQgPSBD
U1NTdHlsZVNoZWV0OjpjcmVhdGUoV1RGTW92ZShzdHlsZVNoZWV0KSwgKnRoaXMsIG9yaWdpbkNs
ZWFuKTsKICAgICBtX3NoZWV0LT5zZXRNZWRpYVF1ZXJpZXMoTWVkaWFRdWVyeVNldDo6Y3JlYXRl
KG1fbWVkaWEsIGNvbnRleHQpKTsKICAgICBtX3NoZWV0LT5zZXRUaXRsZSh0aXRsZSgpKTsKKwor
ICAgIGlmICghbV9zaGVldC0+Y2FuQWNjZXNzUnVsZXMoKSkKKyAgICAgICAgbV9zaGVldC0+Y29u
dGVudHMoKS5zZXRBc09wYXF1ZSgpOwogfQogCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0Q1NT
U3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0LCBjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWRTdHlsZVNo
ZWV0KQpAQCAtNDQzLDYgKzQ0Niw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHls
ZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlVVJMLCBjCiAgICAgYXV0
byBzdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpjcmVhdGUoaHJlZiwgcGFyc2VyQ29u
dGV4dCk7CiAgICAgaW5pdGlhbGl6ZVN0eWxlU2hlZXQoc3R5bGVTaGVldC5jb3B5UmVmKCksICpj
YWNoZWRTdHlsZVNoZWV0LCBNZWRpYVF1ZXJ5UGFyc2VyQ29udGV4dChkb2N1bWVudCgpKSk7CiAK
KyAgICAvLyBGSVhNRTogU2V0IHRoZSB2aXNpYmlsaXR5IG9wdGlvbiBiYXNlZCBvbiBtX3NoZWV0
IGJlaW5nIGNsZWFuIG9yIG5vdC4KKyAgICAvLyBCZXN0IGFwcHJvYWNoIG1pZ2h0IGJlIHRvIHNl
dCBpdCBvbiB0aGUgc3R5bGUgc2hlZXQgY29udGVudCBpdHNlbGYgb3IgaXRzIGNvbnRleHQgcGFy
c2VyIG90aGVyd2lzZS4KICAgICBzdHlsZVNoZWV0LmdldCgpLnBhcnNlQXV0aG9yU3R5bGVTaGVl
dChjYWNoZWRTdHlsZVNoZWV0LCAmZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpKTsKIAogICAg
IG1fbG9hZGluZyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5j
cHAKaW5kZXggNTUyYTRhOTA2OGQzOTc3NzViNmU2YWQyMjA1NWI5MzVkMzMzODExNC4uZmY5NmY0
ZjI0MzViMDk4ZTA2NjYyZjMzY2MyMDVlMDAwYjM3OTE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBIVE1MVGFibGVF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYKICAgICBlbHNlIGlmIChuYW1lID09IGJhY2tncm91bmRBdHRyKSB7CiAgICAgICAg
IFN0cmluZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXModmFsdWUpOwog
ICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0
eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1hZ2VWYWx1ZTo6
Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSkpKTsKKyAgICAgICAgICAgIHN0eWxl
LnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJ
bWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObykpKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gdmFsaWduQXR0cikg
ewogICAgICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFs
aWduLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBh
cnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQu
Y3BwCmluZGV4IDFlMjI4YTU3NmZmMTMwNjNjZTRjZTM0YzRmN2RmMThiYTI2N2I1Y2YuLmQ3MTI2
YzJhZWM1ZjVkODQ3OTIyMjJkMjA3YzQ3Njg5ZjI0NDVhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgSFRN
TFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROCiAgICAgZWxzZSBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikgewog
ICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZh
bHVlKTsKICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQotICAgICAgICAgICAgc3R5bGUuc2V0
UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIENTU0ltYWdl
VmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCkpKSk7CisgICAgICAgICAg
ICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFn
ZSwgQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSwgTG9h
ZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pKSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHZhbGln
bkF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVl
LCAidG9wIikpCiAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFsdWVUb3ApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCmluZGV4IGYyYmI2
ZDFmOThmMWRhNTY0ZDg2YmJkNWJlMWUzM2RlZTQ2OWVlNTYuLjkzMzc2ZWExNzdmNDg5MzVlNzkx
ZDA0MjI4YWU4ZWI4YjVmYTNhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlck9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmgKQEAgLTExOCw2ICsxMTgsMTEgQEAgZW51bSBjbGFzcyBQcmVmbGln
aHRQb2xpY3kgOiB1aW50OF90IHsKICAgICBQcmV2ZW50CiB9OwogCitlbnVtIGNsYXNzIExvYWRl
ZEZyb21PcGFxdWVTb3VyY2UgOiB1aW50OF90IHsKKyAgICBZZXMsCisgICAgTm8KK307CisKIHN0
cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMoKSB7IH0KIApAQCAtMTYzLDYgKzE2OCw3IEBAIHN0cnVjdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICBBcHBsaWNh
dGlvbkNhY2hlTW9kZSBhcHBsaWNhdGlvbkNhY2hlTW9kZSB7IEFwcGxpY2F0aW9uQ2FjaGVNb2Rl
OjpVc2UgfTsKICAgICBDbGllbnRDcmVkZW50aWFsUG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xp
Y3kgeyBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFs
cyB9OwogICAgIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3kgeyBQcmVmbGlnaHRQb2xp
Y3k6OkNvbnNpZGVyIH07CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBsb2FkZWRGcm9tT3Bh
cXVlU291cmNlIHsgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8gfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZVRpbWluZ0luZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRp
bWluZ0luZm9ybWF0aW9uLmNwcAppbmRleCA2ZDI4OTE5MDY1MTg3MzJiOGRmODJiMmNiM2EzZjM5
ZjNkMzQ2MTYzLi5mMzFlMzU2NWUxNDNhYzM2ZTZjNWRlYWVlNGZkZjZhNTdkYzM4YzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5mb3JtYXRpb24u
Y3BwCkBAIC01Miw2ICs1Miw5IEBAIGJvb2wgUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbjo6c2hv
dWxkQWRkUmVzb3VyY2VUaW1pbmcoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlCiAgICAgaWYgKHJl
c291cmNlLndhc0NhbmNlbGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChy
ZXNvdXJjZS5vcHRpb25zKCkubG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA9PSBMb2FkZWRGcm9tT3Bh
cXVlU291cmNlOjpZZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmlu
ZGV4IDU3Y2IyZGI1OWE0NzdkZWM0NWM1YmZmZmQzNjllYmU4NGM1YmI0ZDAuLjRjMjIyNWQ1OTYz
YjBhNWNiMzY1OTdlNzNlMTYyZjNiOGE2ZGY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIFNWR0ZvbnRGYWNlVXJp
RWxlbWVudDo6flNWR0ZvbnRGYWNlVXJpRWxlbWVudCgpCiAKIFJlZjxDU1NGb250RmFjZVNyY1Zh
bHVlPiBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnNyY1ZhbHVlKCkgY29uc3QKIHsKLSAgICBhdXRv
IHNyYyA9IENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNyZWF0ZShnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6
OmhyZWZBdHRyLCBYTGlua05hbWVzOjpocmVmQXR0cikpOworICAgIGF1dG8gc3JjID0gQ1NTRm9u
dEZhY2VTcmNWYWx1ZTo6Y3JlYXRlKGdldEF0dHJpYnV0ZShTVkdOYW1lczo6aHJlZkF0dHIsIFhM
aW5rTmFtZXM6OmhyZWZBdHRyKSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pOwogICAgIEF0
b21pY1N0cmluZyB2YWx1ZShhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvcm1hdEF0
dHIpKTsKICAgICBzcmMuZ2V0KCkuc2V0Rm9ybWF0KHZhbHVlLmlzRW1wdHkoKSA/ICJzdmciIDog
dmFsdWUpOyAvLyBEZWZhdWx0IGZvcm1hdAogICAgIHJldHVybiBzcmM7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDA1ZTNl
MjVjNzQxMzMxNGFiOGMxZWQ4MGNkMzY3ODY2OGNmMjg4Yi4uNzMwYmNhYmFlYjhjMzg0NTQyNTE3
ZDUwZDNkZGQxOGYxMTFlZDg4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTExLTI5ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mgc3VicmVzb3Vy
Y2UgbG9hZHMgc2hvdWxkIG5vdCBiZSBvYnNlcnZhYmxlIGZyb20gcmVzb3VyY2UgdGltaW5nIGlm
IHRoZSBzdHlsZXNoZWV0IGlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBO
aXdhLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGVhbi1vcmlnaW4tY3NzLWV4
cG9zZWQtcmVzb3VyY2UtdGltaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jbGVhbi1vcmlnaW4tY3NzLWV4cG9zZWQtcmVzb3VyY2UtdGltaW5n
ZS10aW1pbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tY3NzLXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1yZXNvdXJjZS10aW1pbmcu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvbG9h
ZGluZy1zdWJyZXNvdXJjZXMuY3NzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9pbXBvcnRlZC1sb2FkaW5nLXN1YnJlc291cmNlcy5jc3M6IEFkZGVkLgor
CiAyMDE4LTExLTI4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBNb2phdmUgV0sxIF0gTGF5b3V0IFRlc3QgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2Ut
ZGlmZmVyZW50LWRlc3Qtc2l6ZS5odG1sIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWltYWdlLWxvb3At
Y291bnQuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NsZWFuLW9yaWdpbi1jc3MtZXhwb3NlZC1yZXNvdXJjZS10aW1pbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGVhbi1vcmlnaW4tY3Nz
LWV4cG9zZWQtcmVzb3VyY2UtdGltaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGJlNjBj
NjFlMjdmNWI0NDgwM2NkY2Q2ZTJhYzY4YTliYmFiZjg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGVhbi1vcmlnaW4tY3NzLWV4cG9zZWQtcmVz
b3VyY2UtdGltaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1Mgc3Vi
cmVzb3VyY2VzIG9mIGEgY2xlYW4gc3R5bGVzaGVldCBzaG91bGQgcG9wdWxhdGUgcmVzb3VyY2Ug
dGltaW5nIGVudHJpZXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY2xlYW4tb3JpZ2luLWNzcy1leHBvc2VkLXJlc291cmNlLXRpbWluZy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGVhbi1vcmlnaW4tY3NzLWV4cG9zZWQtcmVz
b3VyY2UtdGltaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhY2IwMGU0NjVmZjczYTEzNDJmODg2Mzdh
ZWJiZmYwMzRlYjgyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY2xlYW4tb3JpZ2luLWNzcy1leHBvc2VkLXJlc291cmNlLXRpbWluZy5odG1sCkBA
IC0wLDAgKzEsNTEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5D
U1Mgc3VicmVzb3VyY2VzIG9mIGEgY2xlYW4gc3R5bGVzaGVldCBzaG91bGQgcG9wdWxhdGUgcmVz
b3VyY2UgdGltaW5nIGVudHJpZXM8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanM+PC9zY3JpcHQ+Cis8bGluayBocmVmPScvc2VjdXJpdHkvcmVzb3VyY2VzL2xvYWRp
bmctc3VicmVzb3VyY2VzLmNzcycgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2Nzcyc+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9Im15ZGl2IiBzdHlsZT0iZm9udDogMTJweCAnYWhlbSci
PlRlc3Q8L2Rpdj4KKzxzY3JpcHQ+Citjb25zdCB3YWl0T25Mb2FkID0gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsKKyAgICB3aW5kb3cub25sb2FkID0gcmVzb2x2ZTsKK30pCisKK2Z1bmN0aW9u
IHdhaXRGb3IoZGVsYXkpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0
VGltZW91dChyZXNvbHZlLCBkZWxheSkpOworfQorCitkb2N1bWVudC5mb250cy5yZWFkeS50aGVu
KGFzeW5jICgpID0+IHsKKyAgICBhd2FpdCB3YWl0T25Mb2FkOworICAgIGxldCBoYXNJbXBvcnQg
PSBmYWxzZTsKKyAgICBsZXQgaGFzSW1hZ2UgPSBmYWxzZTsKKyAgICBsZXQgaGFzQ3Vyc29yID0g
ZmFsc2U7CisgICAgbGV0IGhhc0ZvbnQgPSBmYWxzZTsKKyAgICBsZXQgY291bnRlciA9IDA7Cisg
ICAgd2hpbGUgKCsrY291bnRlciA8IDIwKSB7CisgICAgICAgIGNvbnN0IGVudHJpZXMgPSBwZXJm
b3JtYW5jZS5nZXRFbnRyaWVzKCk7CisgICAgICAgIGlmICghaGFzSW1wb3J0KQorICAgICAgICAg
ICAgaGFzSW1wb3J0ID0gZW50cmllcy5zb21lKGVudHJ5ID0+IGVudHJ5Lm5hbWUuaW5jbHVkZXMo
J2ltcG9ydGVkLWxvYWRpbmctc3VicmVzb3VyY2VzLmNzcycpKTsKKyAgICAgICAgaWYgKCFoYXNJ
bWFnZSkKKyAgICAgICAgICAgIGhhc0ltYWdlID0gZW50cmllcy5zb21lKGVudHJ5ID0+IGVudHJ5
Lm5hbWUuaW5jbHVkZXMoJ2FiZS1hbGxvdy1zdGFyLnBocD9pbWFnZScpKTsKKyAgICAgICAgaWYg
KCFoYXNDdXJzb3IpCisgICAgICAgICAgICBoYXNDdXJzb3IgPSBlbnRyaWVzLnNvbWUoZW50cnkg
PT4gZW50cnkubmFtZS5pbmNsdWRlcygnYWJlLWFsbG93LXN0YXIucGhwP2N1cnNvcicpKTsKKyAg
ICAgICAgaWYgKCFoYXNGb250KQorICAgICAgICAgICAgaGFzRm9udCA9IGVudHJpZXMuc29tZShl
bnRyeSA9PiBlbnRyeS5uYW1lLmluY2x1ZGVzKCdBaGVtLndvZmYnKSk7CisgICAgICAgIGlmICho
YXNJbXBvcnQgJiYgaGFzSW1hZ2UgJiYgaGFzRm9udCAmJiBoYXNDdXJzb3IpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgYXdhaXQgd2FpdEZvcig1MCk7CisgICAgfQorICAgIG15ZGl2Lmlu
bmVySFRNTCA9ICIiOworICAgIGFzc2VydF90cnVlKGhhc0ltcG9ydCwgImltcG9ydCIpOworICAg
IGFzc2VydF90cnVlKGhhc0ltYWdlLCAiaW1hZ2UiKTsKKyAgICBhc3NlcnRfdHJ1ZShoYXNDdXJz
b3IsICJjdXJzb3IiKTsKKyAgICBhc3NlcnRfdHJ1ZShoYXNGb250LCAiZm9udCIpOworICAgIGRv
bmUoKTsKK30pCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1yZXNvdXJjZS10aW1p
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4tY3NzLXJlc291cmNlLXRpbWluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZlNWE1
NjgyY2Q4OWZhYmE3MzNiYmQ4MzM3MzMyYjgzYWVkMmEzNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1yZXNvdXJjZS10
aW1pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBzdWJyZXNvdXJj
ZXMgb2YgYW4gb3BhcXVlIHN0eWxlc2hlZXQgc2hvdWxkIG5vdCBwb3B1bGF0ZSByZXNvdXJjZSB0
aW1pbmcgZW50cmllcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4tY3NzLXJlc291cmNlLXRpbWluZy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLXJlc291cmNlLXRpbWluZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgzNmQxYTBlZjhmNzE5YmJhOGIzYTI4MjBjYTZjZGY5NmVjMGM4NjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi1jc3MtcmVzb3VyY2UtdGltaW5nLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNTUyBzdWJyZXNvdXJjZXMgb2YgYW4gb3Bh
cXVlIHN0eWxlc2hlZXQgc2hvdWxkIG5vdCBwb3B1bGF0ZSByZXNvdXJjZSB0aW1pbmcgZW50cmll
czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4K
KzxsaW5rIGhyZWY9J2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvbG9h
ZGluZy1zdWJyZXNvdXJjZXMuY3NzJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJz4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibXlkaXYiIHN0eWxlPSJmb250OiAxMnB4ICdhaGVt
JyI+VGVzdDwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IHdhaXRPbkxvYWQgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geworICAgIHdpbmRvdy5vbmxvYWQgPSByZXNvbHZlOworfSkKK2RvY3VtZW50
LmZvbnRzLnJlYWR5LnRoZW4oYXN5bmMgKCkgPT4geworICAgIGF3YWl0IHdhaXRPbkxvYWQ7Cisg
ICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllcygpLm1hcChvYmogPT4geworICAgICAgICBhc3NlcnRf
ZmFsc2Uob2JqLm5hbWUuaW5jbHVkZXMoJ2ltcG9ydGVkLWxvYWRpbmctc3VicmVzb3VyY2VzLmNz
cycpLCAiaW1wb3J0Iik7CisgICAgICAgIGFzc2VydF9mYWxzZShvYmoubmFtZS5pbmNsdWRlcygn
QWhlbS53b2ZmJyksICJmb250Iik7CisgICAgICAgIGFzc2VydF9mYWxzZShvYmoubmFtZS5pbmNs
dWRlcygnYWJlLWFsbG93LXN0YXIucGhwP2ltYWdlJyksICJpbWFnZSIpOworICAgICAgICBhc3Nl
cnRfZmFsc2Uob2JqLm5hbWUuaW5jbHVkZXMoJ2FiZS1hbGxvdy1zdGFyLnBocD9jdXJzb3InKSwg
ImN1cnNvciIpOworICAgIH0pOworICAgIG15ZGl2LmlubmVySFRNTCA9ICIiOworICAgIGRvbmUo
KTsKK30pCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzLmZvbnQub3RmIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMuZm9udC5vdGYKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM1NTBh
ZGNmYzY3ODk5MmMzYmU3MWMwMWM0NDI2ZTUyYjM5MGM2NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMTQ0NTIKemNtZUhPVFdGaS04R2U0OUV1VzleTDNTSzN3SC1IZzlNd3RXJSFIZ09DI19lVFNa
VDVfeTJfR2wqfEJVUCQ8MlhZCnpsKT5zO20wWGxqI3UjQ1l4KSlfXmNWJnpieGBEJGtOKlAmS2RO
RmNRPTUzVHdNaDlWWihWcUFGS2dJZkVJaENFVQp6aX1BflJAQjYmcHw5Kz9VZCV3ZGt5YEczZkNn
OHtHYUg5S0VJTmJmeHdVN1M+OzYwI2NWcj1VQyR6ZEcmRUFkeD0Kej56NU4jMlpDcXJlZnQlbD98
dGdUVzJ0Qndle2xRKT1ucWd7Tkc3ODNNQzBsRWx5Nld6b01lVkNpOT9pY1F7SjBRCno8KndkRTxy
fGJncWtLME55XyZ7bEJKN2o7eCktQ1YjMj4jbmFFMDxHSytTOUVyRUhHPDt3S2M1PUxURlo3JW9E
Qwp6c1ZUZyluN2M1U09OSkJDKztTJDdvcnJgdG97bkA8WXNJMGNsTjlMOF5KNXxyLTIlVH5FQTtS
NjhgJXZUUmdgUmkKej5JTkxfbD8hZm87RHJ3cnZ8bEJ2UD5tWVlxN0w8RktxSCNhajI3JWRFODVW
RzRnfURORjY+NChfTWl2ZnorT0NzCnpVaTZfS2AhSWx+dV4tUTE1QzxAWGc5emVUKEN+JGtvQEp3
fVk8Ry1sOWRON3cmT1c5IVBSY0F0OyQ+T3xKWSE3agp6Zk9pRyheKWFtaDZ8O2NmJWRgcXFqeG50
UlJWelNzQUpaQypKUFh1JW5PMT9pRntYOChlZyRhZ1ZfRXxtWEs4M0oKeig8O3pCIzxVSyF0Tl4/
RW5BVSpTUylrMyF2PGtHM0Z8N2p+RD9wJStYXmxwbzEtaVVVdEhBQ3RyZ2hIYU4/dH5tCnpYRUk1
MTkoTSRpNUs2QSZCOFF9P2xIRiRSenUlUXlwPU5HUD4zV1BXUlhzc2JCVnBseDUjfkp0amhsbypt
QDVrVAp6NCtUQ3JNa3N7dnR8O3MkKys0ZDxvT2twfT9PVzg3bVU+OFpMbmYzcTNKcjtaKn1PY3t4
PU8rOVlFaXZQcHtUMXgKejNhVmJhZjQyUl4ofkE5ZyE+NSFaKzVUdGw2bCVOUnFQNXFyeX0jSnx2
KShyQ15UUiRyP0RPTzFMbGZCZEU4YyRYCnpgPkIxdUZNZEk+LSNeXnkpeTtsP2xiMnJteyVxZiQ/
ZmJLUmYwakZ3eCspWlghQkJMNEc3cFdTeU0rM1JxRFZtJQp6dilAMUxfbTc4e1p+Wjsye3IjMFhW
Qz9sXz89S0kzQ3tVWkh5Kn43QklyalB9ZW0lMyNVO0ZvdSFjUmM8e21UQ1MKemlpZHsle1o7Vj5Y
fSplLWUqY2gyNG57YGNsSk9DWSk4WCs1Vj51KStmamB6V1BVOHZWSmZidDE3PTlIQ3JlcFhaCno3
UjwoUUNsKzFFO2x0UiUrJGA/S2c/PjdkaU48aG09RV9fZ2VAQE9aKjUmaTA8b3t6bkp2NUJfXlhW
ZllKZVdfMQp6bzs2KGE+NShEQiZ4Y1c/WmVlamJXd2F+XzRKPjhpaSQrZzY3RUslZFh+YEsodm8+
UW12cGp2eElHUm54KCNHKkAKekQhcEtZdiYrKzJWPzRXQCZLbD0oYkdaZk1Wb3ZtNSZTaiE7QmZo
Kmk3Yz1Jc0NvKVMwdWkobHFMZDhCMz9JS2otCnphMlNCMnM5UkE2UjR8OVo5aSU9KkQtYHVCVEIm
SDJxU2NEbEN8YXYlb3VjKU1IWW5QdFhwXkdOaW5iYGFPVkwoRQp6K1oxaEF2X255ZUoyRHRxQlVH
WW1qXmhqX2FTXld8aThRWF9iPTwmQnlwM0NVN2VCfVF4WG1Ed2tNSWZaO1Y8fEMKel9jPXRMUUQ/
TG8tQTJETCM1JHkmYDxnIzZJUmxQVnpUd3hyUFYqTWMxRGZ8fS1tbSRmPUVJc0YpJT57VGo4PkJO
CnpqQihBK1g/e2BqbW88LVRLQ2dMTl5IKCowUDRuKyplbmF5JkhHZk88QThMTH1eTEkzVmsyQ0Jl
SHZnSX1RbmZ7QAp6dmBBaXk8ZyFSXmlfflAxYzNZJVlpeyFDTDBnS2RUaz1pWCVoZWRLKXEma2FL
WjtASW9RazZ3JnV0P24mWF4lem4KelRjbDJsPGctVz43T0I9RUhDbSlEaSZTSGdXS0I1ZW1Sflhr
WlFHeTczbndvfnAqKjlmeFlOeGpUPXh+JWFYIy1iCnpIXjZTTGJ8O0BQIyFST0drJENIQWEjYE8y
Iz1GVTxVczNqa2B+PWVfQ2VlI0JVMSNjR2dgKHBqbSEwR2l1QiY9YQp6QWopWEdQeEdjUFFiQ25z
JD1+RSFLS15kKT1zejdRJlFCZmBmMjdaOWkjQiY3ZEJpZHM7fUVRQkRsUX4oYmEhK0wKemxLKT5N
SE9mTzAoa0xIZ3xCVyMtOyp5X30mTXMyWlFWZCR0KnVraG5rPDZMeCNral5VPTRMZE8kaX14ZF9B
dmopCnpDTj5QdGApQFVORmhjUjMjIWllSHZVOVVlUFRPSClRZSF1YzhFPElwIUhgaVg+cVN0ME9I
bGVnakxNWm87UittYwp6T2wjfiUmflohU082TER3PDA+Mz8lSVA2KFJiIytlWHNkPTtKV2xkIXZE
ZilpanE4Wi1YazNxZ15LKj9HRnlOOT8Kek9ZfEVOYTR7TkM7VT96NHNCdHE2eVJLXjdMaXt0MGNP
bTVaT3lnRkIrO1IjQEojRlo2TT5LQjdmTHEoczsze3pjCnpOYXFMODxHIVZGQ3ZgczF4Q3tPNkxm
Pnx5JVR1c3RId0hYfnpVQEtLXkJ0fDxMO1ItM2ozKUttKV81PVYzdz9WRQp6QStNYWUoempqPWQm
MyZ7QT5ifDhzdmlVMUFMI3NqKVZaemswQzhjQ288QCZQUjxZRXhBTnpnSll5MXJIc35RaHQKeili
fHNPNTFgbGdDeWo/TlB+cDx9QWNpWGpINFlMTj05PHkyNkBAK3c2YVAtQDlLejl4Mk8xeTdzNlY5
ZjVwP0A9Cno4aXozOGVAbypMNEVsZXFAbGdjKjEkJXhJP1VofFJlLXlveUEld0FuTWRXWStiRUhZ
aTNHUGByRU9RTWNraWBUZAp6JT1fUEs5Yl5wZlA/X3lzPUd2WFp0ZmspKFQ7c2hiIUttc305QVMh
b0dTMUM8NlU/MlctVTNzTTw2aCNwJWAjJEAKejFhRDRhaXp1SU9yfGpkfW84ZHtiXkE8fiZLRjEh
KWUzamVCJExXYEQ7UzRSRCklS2FBck02PnthPzYlKFM/MkgyCnp4ajRjM2tsRCViaUZtN2NzJiZU
OEROKzkxbXVoYzxeSF4jb1VzQzxiKE8jeU5DZldiMlQzdkgkQiF6eSlzVy0jawp6RlJRVmY9U1le
Um1xNUlQY2J3KFo4Qzk+O2spaHNaNTFMfG1AJVJrZStEZDFmUHAmQVBRKjJwVStldlRFdm1MWGcK
ekMjaHZ+VSM3VDkjamg1KVd9fEdPKUY/TiVUfjRYWlpCMjZRR0RxUyYraTkpNWFedEZZKD9mU3xC
YzJsNmk+QkRlCnpZcVV2JWR2Ukx6Uz1QZ2J6aS1FbkI1SzQ3cT5KMXl3O3VQNF5yYU4wKj05eSp7
cjVianhhTHl4eUxxTyp1MC0rawp6RE94RFhiIVUhbUMlISQmNWloWThTd1ozLVZyJWlxOyNOeGFg
JiZ2PVI9VXsoUzt0PmpDZEBYWnd9cDBnSG05ZkEKeiVQNDJGKDlfTWVaciY+JS1Ke0FXR3JgYCpt
MVZecXJFRmxAZHg/RkthaXd7aWtVajdAYiVzakwjYHdnbTdnU0Q/CnpKe0lUT2thKmU+Si1wT3VU
PC1aJXNfWkhETGU1NmgmZUY9MSU4fnRSQztzc34mYSNHczd7TCpReEhjWkd5XzgpeAp6JTdwbTtP
eHJDcCFoNnRtJF5AeEQjR1J3T0dFPHpSNno1OXpnYyZCOGpxKnhIbHZUd2UzalFtOFFFcGxEWDcl
TGoKdXdiWihjYTE/VEgrd0F2U3Q/c1Ekb2EwVjcmSGVXVWRYVmV7MSlzVCROMXY0UFVBYHdnPygt
a1ZqRHtmcQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvaW1wb3J0ZWQtbG9hZGluZy1zdWJyZXNvdXJj
ZXMuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvaW1wb3J0
ZWQtbG9hZGluZy1zdWJyZXNvdXJjZXMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NjczMjgxZGZjMTFkOWMy
YmE0YTUyMjUzN2M2MmFkMzRhOWM1MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbXBvcnRlZC1sb2FkaW5nLXN1YnJlc291cmNl
cy5jc3MKQEAgLTAsMCArMSwzIEBACisjbXlkaXYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVy
bCgiL3NlY3VyaXR5L3Jlc291cmNlcy9hYmUtYWxsb3ctc3Rhci5waHA/aW1hZ2UiKTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2xvYWRp
bmctc3VicmVzb3VyY2VzLmNzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2xvYWRpbmctc3VicmVzb3VyY2VzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDlmYWZlNWNjZmEz
YjI2ZGMzMzExYWEzYjVhZWMwZmQ0OGYzZjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvbG9hZGluZy1zdWJyZXNvdXJjZXMuY3Nz
CkBAIC0wLDAgKzEsOCBAQAorQGltcG9ydCB1cmwoIi9zZWN1cml0eS9yZXNvdXJjZXMvaW1wb3J0
ZWQtbG9hZGluZy1zdWJyZXNvdXJjZXMuY3NzIik7CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZh
bWlseTphaGVtOworICAgIHNyYzogdXJsKCIvcmVzb3VyY2VzL0FoZW0ud29mZiIpOworfQorI215
ZGl2IHsKKyAgY3Vyc29yOiB1cmwoIi9zZWN1cml0eS9yZXNvdXJjZXMvYWJlLWFsbG93LXN0YXIu
cGhwP2N1cnNvciIpLCBhdXRvOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>