<?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>227575</bug_id>
          
          <creation_ts>2021-07-01 02:14:09 -0700</creation_ts>
          <short_desc>[Cairo] Simplify GraphicsContextCairo creation</short_desc>
          <delta_ts>2021-07-06 14:30:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>fujii</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774041</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-07-01 02:14:09 -0700</bug_when>
    <thetext>Remove the constructors taking a PlatformContextCairo and add two that receive a RefPtr&lt;cairo_t&gt;&amp;&amp; and cairo_surface_t*. In both cases the PlatformContextCairo is created, so it&apos;s now always owned and callers don&apos;t need to create it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774042</commentid>
    <comment_count>1</comment_count>
      <attachid>432670</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-07-01 02:16:42 -0700</bug_when>
    <thetext>Created attachment 432670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774046</commentid>
    <comment_count>2</comment_count>
      <attachid>432672</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-07-01 02:41:44 -0700</bug_when>
    <thetext>Created attachment 432672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774050</commentid>
    <comment_count>3</comment_count>
      <attachid>432673</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-07-01 02:50:48 -0700</bug_when>
    <thetext>Created attachment 432673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774063</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-07-01 03:35:16 -0700</bug_when>
    <thetext>Committed r279460 (239316@main): &lt;https://commits.webkit.org/239316@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774064</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-01 03:36:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80015368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774890</commentid>
    <comment_count>6</comment_count>
      <attachid>432673</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-05 22:55:12 -0700</bug_when>
    <thetext>Comment on attachment 432673
Patch

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

Very nice refactoring. We no longer need PlatformContextCairo. We can merge PlatformContextCairo into GraphicsContextCairo.

&gt; Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp:76
&gt; +    : GraphicsContextCairo(platformContext-&gt;cr())

Umm, this is not same with the original code. But, I think no problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775089</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-06 14:30:54 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #6)
&gt; Very nice refactoring. We no longer need PlatformContextCairo. We can merge
&gt; PlatformContextCairo into GraphicsContextCairo.

Filed: Bug 227721 – [Cairo] Merge PlatformContextCairo into GraphicsContextCairo</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432670</attachid>
            <date>2021-07-01 02:16:42 -0700</date>
            <delta_ts>2021-07-01 03:06:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-gc-cairo.diff</filename>
            <type>text/plain</type>
            <size>18807</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NzliYjZmOGQxNDcuLmE4ZmU0NTVlYjM0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQxIEBACisyMDIxLTA3LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIFNpbXBsaWZ5IEdyYXBoaWNzQ29udGV4dENh
aXJvIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgdGhlIGNvbnN0cnVjdG9ycyB0YWtpbmcgYSBQbGF0Zm9ybUNvbnRleHRDYWly
byBhbmQgYWRkIHR3byB0aGF0IHJlY2VpdmUgYSBSZWZQdHI8Y2Fpcm9fdD4mJiBhbmQKKyAgICAg
ICAgY2Fpcm9fc3VyZmFjZV90Ki4gSW4gYm90aCBjYXNlcyB0aGUgUGxhdGZvcm1Db250ZXh0Q2Fp
cm8gaXMgY3JlYXRlZCwgc28gaXQncyBub3cgYWx3YXlzIG93bmVkIGFuZCBjYWxsZXJzIGRvbid0
CisgICAgICAgIG5lZWQgdG8gY3JlYXRlIGl0LgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhh
dmlvciwgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd0xpbmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6SW1hZ2VC
dWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OlBsYXRmb3JtQ29udGV4dENhaXJv
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWly
by5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OmNyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0Q3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5n
Q29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OlBhaW50aW5nQ29udGV4dENhaXJv
OjpGb3JQYWludGluZzo6Rm9yUGFpbnRpbmcpOgorICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdD
b250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjp+Rm9yUGFpbnRpbmcpOgorICAgICAgICAoTmljb3Np
YTo6UGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpyZXBsYXkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENh
aXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENh
aXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFw
aGljc0NvbnRleHRDYWlybyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdl
Q2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBP
ZlNpemUpOgorCiAyMDIxLTA2LTMwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFBDTTogQ2hhbmdlIGltcG9ydCBmcm9tIENyeXB0b0tpdENCcmlkZ2luZyB0
byBDcnlwdG9LaXRQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggN2M0
NTNlMmViOTYxLi5kOGM5NGNiMDc2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAK
QEAgLTU3LDIzICs1NywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29u
dGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0KQotICAgIDogbV9wbGF0Zm9ybUNvbnRleHQocGxhdGZvcm1Db250ZXh0KQor
R3JhcGhpY3NDb250ZXh0Q2Fpcm86OkdyYXBoaWNzQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190
PiYmIGNyKQorICAgIDogbV9wbGF0Zm9ybUNvbnRleHQoV1RGTW92ZShjcikpCiAgICAgLCBtX3By
aXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU+KG1fcGxhdGZv
cm1Db250ZXh0LmNyKCkpKQogewogICAgIG1fcGxhdGZvcm1Db250ZXh0LnNldEdyYXBoaWNzQ29u
dGV4dFByaXZhdGUobV9wcml2YXRlLmdldCgpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0Q2Fpcm86
OkdyYXBoaWNzQ29udGV4dENhaXJvKGNhaXJvX3QqIGNhaXJvQ29udGV4dCkKLSAgICA6IG1fb3du
ZWRQbGF0Zm9ybUNvbnRleHQobWFrZVVuaXF1ZTxQbGF0Zm9ybUNvbnRleHRDYWlybz4oY2Fpcm9D
b250ZXh0KSkKLSAgICAsIG1fcGxhdGZvcm1Db250ZXh0KCptX293bmVkUGxhdGZvcm1Db250ZXh0
KQotICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlPihtX3BsYXRmb3JtQ29udGV4dC5jcigpKSkKLXsKLSAgICBtX3BsYXRmb3JtQ29udGV4dC5z
ZXRHcmFwaGljc0NvbnRleHRQcml2YXRlKG1fcHJpdmF0ZS5nZXQoKSk7Ci19Ci0KLUdyYXBoaWNz
Q29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRDYWlybyog
cGxhdGZvcm1Db250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8oKnBsYXRmb3JtQ29u
dGV4dCkKK0dyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhjYWlyb19z
dXJmYWNlX3QqIHN1cmZhY2UpCisgICAgOiBHcmFwaGljc0NvbnRleHRDYWlybyhhZG9wdFJlZihj
YWlyb19jcmVhdGUoc3VyZmFjZSkpKQogewogfQogCkBAIC0xMzMsNyArMTI1LDYgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBj
b25zdCBGbG9hdFBvaW50JgogICAgIGlmIChzdHJva2VTdHlsZSgpID09IE5vU3Ryb2tlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1
dG8mIHN0YXRlID0gdGhpcy0+c3RhdGUoKTsKICAgICBDYWlybzo6ZHJhd0xpbmUoKnBsYXRmb3Jt
Q29udGV4dCgpLCBwb2ludDEsIHBvaW50Miwgc3RhdGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9r
ZUNvbG9yLCBzdGF0ZS5zdHJva2VUaGlja25lc3MsIHN0YXRlLnNob3VsZEFudGlhbGlhcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaAppbmRleCBlODhhNDhlM2ZmYjQuLjEyZDY4MmJiMmQ1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5oCkBAIC0yOSwxOCArMjksMTcgQEAKICNpZiBV
U0UoQ0FJUk8pCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRDYWlyby5oIgogCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKK3R5
cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKLQogY2xhc3MgV0VCQ09S
RV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0Q2Fpcm8gZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0IHsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRD
YWlybyYpOwotICAgIEdyYXBoaWNzQ29udGV4dENhaXJvKFBsYXRmb3JtQ29udGV4dENhaXJvKik7
Ci0gICAgR3JhcGhpY3NDb250ZXh0Q2Fpcm8oY2Fpcm9fdCopOworICAgIGV4cGxpY2l0IEdyYXBo
aWNzQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190PiYmKTsKKyAgICBleHBsaWNpdCBHcmFwaGlj
c0NvbnRleHRDYWlybyhjYWlyb19zdXJmYWNlX3QqKTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICBHcmFwaGljc0NvbnRleHRDYWlybyhIREMsIGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJ
WE1FOiBUbyBiZSByZW1vdmVkLgpAQCAtMTE0LDggKzExMyw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUNvbnRleHRDYWlybz4gbV9v
d25lZFBsYXRmb3JtQ29udGV4dDsKLSAgICBQbGF0Zm9ybUNvbnRleHRDYWlybyYgbV9wbGF0Zm9y
bUNvbnRleHQ7CisgICAgbXV0YWJsZSBQbGF0Zm9ybUNvbnRleHRDYWlybyBtX3BsYXRmb3JtQ29u
dGV4dDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGU+IG1fcHJpdmF0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VC
YWNrZW5kLmNwcAppbmRleCBhZDcxNmI4YzYzYjIuLmFkOWUxYzllZWUxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1
cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0zNCw3ICszNCw2IEBA
CiAjaW5jbHVkZSAiQ2Fpcm9PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDYWlyby5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyVXRpbGl0aWVzQ2Fpcm8uaCIKICNpbmNsdWRlICJQaXhl
bEJ1ZmZlci5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CkBAIC00NiwxNyArNDUsMTQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZl
ckNhaXJvU3VyZmFjZUJhY2tlbmQoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4mJiBzdXJmYWNlKQogICAgIDogSW1hZ2VCdWZmZXJDYWlyb0JhY2tl
bmQocGFyYW1ldGVycykKICAgICAsIG1fc3VyZmFjZShXVEZNb3ZlKHN1cmZhY2UpKQorICAgICwg
bV9jb250ZXh0KG1fc3VyZmFjZS5nZXQoKSkKIHsKICAgICBBU1NFUlQoY2Fpcm9fc3VyZmFjZV9z
dGF0dXMobV9zdXJmYWNlLmdldCgpKSA9PSBDQUlST19TVEFUVVNfU1VDQ0VTUyk7Ci0KLSAgICBS
ZWZQdHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUobV9zdXJmYWNlLmdldCgp
KSk7Ci0gICAgbV9wbGF0Zm9ybUNvbnRleHQuc2V0Q3IoY3IuZ2V0KCkpOwotICAgIG1fY29udGV4
dCA9IG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0Q2Fpcm8+KG1fcGxhdGZvcm1Db250ZXh0KTsK
IH0KIAogR3JhcGhpY3NDb250ZXh0JiBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNv
bnRleHQoKSBjb25zdAogewotICAgIHJldHVybiAqbV9jb250ZXh0OworICAgIHJldHVybiBtX2Nv
bnRleHQ7CiB9CiAKIEludFNpemUgSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpiYWNr
ZW5kU2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2Vu
ZC5oCmluZGV4IDA2NDIyOTcwMzY3Ni4uYjZiNTZkODY2YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaApAQCAtMzEsOCArMzEsOCBAQAogCiAjaWYgVVNF
KENBSVJPKQogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaCIKICNpbmNsdWRlICJJ
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJv
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTMsOSArNTMsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBjYWlyb1N1cmZhY2VDb2VyY2VUb0ltYWdlKCkgY29u
c3Q7CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsKIAotICAgIG11
dGFibGUgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwotICAgIFBsYXRmb3JtQ29u
dGV4dENhaXJvIG1fcGxhdGZvcm1Db250ZXh0IHsgbnVsbHB0ciB9OwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBtX3N1cmZhY2U7CisgICAgbXV0YWJsZSBHcmFwaGljc0NvbnRleHRDYWlybyBtX2NvbnRl
eHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwCmlu
ZGV4IGZkYzdlN2Q2NWZkYy4uNzMxNzAwZmRjYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcApA
QCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQ2Fpcm9PcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRDYWlyby5oIgog
I2luY2x1ZGUgPGNhaXJvLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmNwcAppbmRleCA3MTBkOTAxYTA4MDEuLmM2Njg3ZDA5N2FlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0
Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bs
YXRmb3JtQ29udGV4dENhaXJvLmNwcApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgfSBt
X21hc2s7CiB9OwogCi1QbGF0Zm9ybUNvbnRleHRDYWlybzo6UGxhdGZvcm1Db250ZXh0Q2Fpcm8o
Y2Fpcm9fdCogY3IpCi0gICAgOiBtX2NyKGNyKQorUGxhdGZvcm1Db250ZXh0Q2Fpcm86OlBsYXRm
b3JtQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190PiYmIGNyKQorICAgIDogbV9jcihXVEZNb3Zl
KGNyKSkKIHsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKFN0YXRlKCkpOwogICAgIG1fc3RhdGUg
PSAmbV9zdGF0ZVN0YWNrLmxhc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oCmluZGV4IDk5
YzgyZTJlNmU5OS4uYWU1ZTE4OWFkMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKQEAg
LTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgUGxhdGZvcm1D
b250ZXh0Q2Fpcm9faAotI2RlZmluZSBQbGF0Zm9ybUNvbnRleHRDYWlyb19oCisjcHJhZ21hIG9u
Y2UKIAogI2lmIFVTRShDQUlSTykKIApAQCAtNDIsOCArNDEsNyBAQCBzdHJ1Y3QgU3Ryb2tlU291
cmNlOwogc3RydWN0IFNoYWRvd1N0YXRlOwogfQogCi0vLyBNdWNoIGxpa2UgUGxhdGZvcm1Db250
ZXh0U2tpYSBpbiB0aGUgU2tpYSBwb3J0LCB0aGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIHRo
YXQKLS8vIHdvdWxkIG5vcm1hbGx5IGJlIHByaXZhdGUgdG8gR3JhcGhpY3NDb250ZXh0LCBleGNl
cHQgdGhhdCB3ZSB3YW50IHRvIGFsbG93IGFjY2VzcworLy8gVGhpcyBjbGFzcyBob2xkcyBpbmZv
cm1hdGlvbiB0aGF0IHdvdWxkIG5vcm1hbGx5IGJlIHByaXZhdGUgdG8gR3JhcGhpY3NDb250ZXh0
LCBleGNlcHQgdGhhdCB3ZSB3YW50IHRvIGFsbG93IGFjY2VzcwogLy8gdG8gaXQgaW4gRm9udCBh
bmQgSW1hZ2UgY29kZS4gVGhpcyBhbGxvd3MgdXMgdG8gc2VwYXJhdGUgdGhlIGNvbmNlcm5zIG9m
IENhaXJvLXNwZWNpZmljCiAvLyBjb2RlIGZyb20gdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50IEdy
YXBoaWNzQ29udGV4dC4KIApAQCAtNTEsMTEgKzQ5LDEwIEBAIGNsYXNzIFBsYXRmb3JtQ29udGV4
dENhaXJvIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShQbGF0Zm9ybUNvbnRleHRDYWlybyk7CiBwdWJsaWM6Ci0gICAgUGxhdGZvcm1Db250
ZXh0Q2Fpcm8oY2Fpcm9fdCopOworICAgIGV4cGxpY2l0IFBsYXRmb3JtQ29udGV4dENhaXJvKFJl
ZlB0cjxjYWlyb190PiYmKTsKICAgICB+UGxhdGZvcm1Db250ZXh0Q2Fpcm8oKTsKIAotICAgIGNh
aXJvX3QqIGNyKCkgeyByZXR1cm4gbV9jci5nZXQoKTsgfQotICAgIHZvaWQgc2V0Q3IoY2Fpcm9f
dCogY3IpIHsgbV9jciA9IGNyOyB9CisgICAgY2Fpcm9fdCogY3IoKSBjb25zdCB7IHJldHVybiBt
X2NyLmdldCgpOyB9CiAKICAgICBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUqIGdyYXBo
aWNzQ29udGV4dFByaXZhdGUoKSB7IHJldHVybiBtX2dyYXBoaWNzQ29udGV4dFByaXZhdGU7IH0K
ICAgICB2b2lkIHNldEdyYXBoaWNzQ29udGV4dFByaXZhdGUoR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlKiBncmFwaGljc0NvbnRleHRQcml2YXRlKSB7IG1fZ3JhcGhpY3NDb250ZXh0UHJp
dmF0ZSA9IGdyYXBoaWNzQ29udGV4dFByaXZhdGU7IH0KQEAgLTg2LDUgKzgzLDMgQEAgcHJpdmF0
ZToKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShDQUlSTykKLQotI2Vu
ZGlmIC8vIFBsYXRmb3JtQ29udGV4dENhaXJvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8v
Tmljb3NpYVBhaW50aW5nQ29udGV4dENhaXJvLmNwcAppbmRleCA0OWFiY2FhNDUyNTMuLjhkNDI1
NzY5OWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29u
dGV4dENhaXJvLmNwcApAQCAtNDgsMTEgKzQ4LDExIEBAIFBhaW50aW5nQ29udGV4dENhaXJvOjpG
b3JQYWludGluZzo6Rm9yUGFpbnRpbmcoQnVmZmVyJiBidWZmZXIpCiAgICAgLy8gQmFsYW5jZWQg
YnkgdGhlIGRlcmVmIGluIHRoZSBzX2J1ZmZlcktleSB1c2VyIGRhdGEgZGVzdHJveSBjYWxsYmFj
ay4KICAgICBidWZmZXIucmVmKCk7CiAKLSAgICBtX2NhaXJvLnN1cmZhY2UgPSBhZG9wdFJlZihj
YWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIuZGF0YSgpLAorICAgIG1f
c3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1
ZmZlci5kYXRhKCksCiAgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsIGJ1ZmZlci5zaXplKCku
d2lkdGgoKSwgYnVmZmVyLnNpemUoKS5oZWlnaHQoKSwgYnVmZmVyLnN0cmlkZSgpKSk7CiAKICAg
ICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNfYnVmZmVyS2V5OwotICAgIGNhaXJvX3N1
cmZhY2Vfc2V0X3VzZXJfZGF0YShtX2NhaXJvLnN1cmZhY2UuZ2V0KCksICZzX2J1ZmZlcktleSwK
KyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEobV9zdXJmYWNlLmdldCgpLCAmc19idWZm
ZXJLZXksCiAgICAgICAgIG5ldyBzdGQ6OnBhaXI8QnVmZmVyKiwgRm9yUGFpbnRpbmcqPiB7ICZi
dWZmZXIsIHRoaXMgfSwKICAgICAgICAgW10odm9pZCogZGF0YSkKICAgICAgICAgewpAQCAtNjks
MTkgKzY5LDE1IEBAIFBhaW50aW5nQ29udGV4dENhaXJvOjpGb3JQYWludGluZzo6Rm9yUGFpbnRp
bmcoQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICBkZWxldGUgdXNlckRhdGE7CiAgICAgICAg
IH0pOwogCi0gICAgbV9jYWlyby5jb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKG1fY2Fp
cm8uc3VyZmFjZS5nZXQoKSkpOwotICAgIG1fcGxhdGZvcm1Db250ZXh0ID0gbWFrZVVuaXF1ZTxX
ZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybz4obV9jYWlyby5jb250ZXh0LmdldCgpKTsKLSAg
ICBtX2dyYXBoaWNzQ29udGV4dCA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
Q2Fpcm8+KCptX3BsYXRmb3JtQ29udGV4dCk7CisgICAgbV9ncmFwaGljc0NvbnRleHQgPSBtYWtl
VW5pcXVlPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENhaXJvPihtX3N1cmZhY2UuZ2V0KCkpOwog
fQogCiBQYWludGluZ0NvbnRleHRDYWlybzo6Rm9yUGFpbnRpbmc6On5Gb3JQYWludGluZygpCiB7
Ci0gICAgY2Fpcm9fc3VyZmFjZV9mbHVzaChtX2NhaXJvLnN1cmZhY2UuZ2V0KCkpOworICAgIGNh
aXJvX3N1cmZhY2VfZmx1c2gobV9zdXJmYWNlLmdldCgpKTsKIAogICAgIG1fZ3JhcGhpY3NDb250
ZXh0ID0gbnVsbHB0cjsKLSAgICBtX3BsYXRmb3JtQ29udGV4dCA9IG51bGxwdHI7Ci0gICAgbV9j
YWlyby5jb250ZXh0ID0gbnVsbHB0cjsKLSAgICBtX2NhaXJvLnN1cmZhY2UgPSBudWxscHRyOwor
ICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiAKICAgICAvLyBXaXRoIGFsbCB0aGUgQ2Fpcm8gcmVm
ZXJlbmNlcyBwdXJnZWQsIHRoZSBjYWlyb19zdXJmYWNlX3Qgb2JqZWN0IHNob3VsZCBiZSBkZXN0
cm95ZWQKICAgICAvLyBhcyB3ZWxsLiBUaGlzIGlzIGNoZWNrZWQgYnkgYXNzZXJ0aW5nIHRoYXQg
bV9kZWxldGlvbkNvbXBsZXRlIGlzIHRydWUsIHdoaWNoIHNob3VsZApAQCAtOTcsNyArOTMsNyBA
QCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIFBhaW50aW5nQ29udGV4dENhaXJvOjpGb3JQYWlu
dGluZzo6Z3JhcGhpY3NDb250ZXh0KCkKIAogdm9pZCBQYWludGluZ0NvbnRleHRDYWlybzo6Rm9y
UGFpbnRpbmc6OnJlcGxheShjb25zdCBQYWludGluZ09wZXJhdGlvbnMmIHBhaW50aW5nT3BlcmF0
aW9ucykKIHsKLSAgICBQYWludGluZ09wZXJhdGlvblJlcGxheUNhaXJvIG9wZXJhdGlvblJlcGxh
eSB7ICptX3BsYXRmb3JtQ29udGV4dCB9OworICAgIFBhaW50aW5nT3BlcmF0aW9uUmVwbGF5Q2Fp
cm8gb3BlcmF0aW9uUmVwbGF5IHsgKm1fZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQo
KSB9OwogICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogcGFpbnRpbmdPcGVyYXRpb25zKQogICAg
ICAgICBvcGVyYXRpb24tPmV4ZWN1dGUob3BlcmF0aW9uUmVwbGF5KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBh
aW50aW5nQ29udGV4dENhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL2NhaXJvL05pY29zaWFQYWludGluZ0NvbnRleHRDYWlyby5oCmluZGV4IDE4ZWU0ODI2
YTI5Ni4uYzgwYjY2NGMwZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFQYWludGluZ0NvbnRleHRDYWlyby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBh
aW50aW5nQ29udGV4dENhaXJvLmgKQEAgLTM5LDcgKzM5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX2Nh
aXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBHcmFwaGljc0NvbnRleHQ7Ci1jbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKIH0KIAogbmFt
ZXNwYWNlIE5pY29zaWEgewpAQCAtNTUsMTEgKzU0LDcgQEAgcHVibGljOgogICAgICAgICBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCgpIG92ZXJyaWRlOwogICAgICAg
ICB2b2lkIHJlcGxheShjb25zdCBQYWludGluZ09wZXJhdGlvbnMmKSBvdmVycmlkZTsKIAotICAg
ICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFj
ZTsKLSAgICAgICAgICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0OwotICAgICAgICB9IG1fY2Fp
cm87Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWly
bz4gbV9wbGF0Zm9ybUNvbnRleHQ7CisgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1f
c3VyZmFjZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dD4gbV9ncmFwaGljc0NvbnRleHQ7CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dENhaXJvV2luLmNwcAppbmRleCBlNTVhOTUzNDRjOTAuLjY5MjViOTFhYTAwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENh
aXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBSZWZQdHI8
Y2Fpcm9fdD4gY3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhIREMgaGRjLCBib29sIGhhc0FscGhh
KQogfQogCiBHcmFwaGljc0NvbnRleHRDYWlybzo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8oSERDIGRj
LCBib29sIGhhc0FscGhhKQotICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8oY3JlYXRlQ2Fpcm9D
b250ZXh0V2l0aEhEQyhkYywgaGFzQWxwaGEpLmdldCgpKQorICAgIDogR3JhcGhpY3NDb250ZXh0
Q2Fpcm8oY3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhkYywgaGFzQWxwaGEpKQogewogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VDYWlyb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VDYWlyb1dpbi5jcHAKaW5kZXggYzllYjAwYzQ4MjQxLi40ZWFmZmQ3YTY0OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNhaXJvV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dp
bi5jcHAKQEAgLTcwLDEyICs3MCw5IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNp
emUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAKICAgICB1bnNpZ25lZCBjaGFy
KiBibXBkYXRhID0gKHVuc2lnbmVkIGNoYXIqKWJtcEluZm8uYm1CaXRzICsgYm1wSW5mby5ibVdp
ZHRoQnl0ZXMqKGJtcEluZm8uYm1IZWlnaHQtMSk7CiAKLSAgICBjYWlyb19zdXJmYWNlX3QqIGlt
YWdlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYm1wZGF0YSwgQ0FJUk9f
Rk9STUFUX0FSR0IzMiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0LCAtYm1wSW5m
by5ibVdpZHRoQnl0ZXMpOworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGltYWdlID0gYWRv
cHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYm1wZGF0YSwgQ0FJUk9f
Rk9STUFUX0FSR0IzMiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0LCAtYm1wSW5m
by5ibVdpZHRoQnl0ZXMpKTsKIAotICAgIGNhaXJvX3QqIHRhcmdldFJlZiA9IGNhaXJvX2NyZWF0
ZShpbWFnZSk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KGltYWdlKTsKLQotICAgIEdyYXBo
aWNzQ29udGV4dENhaXJvIGdjKHRhcmdldFJlZik7CisgICAgR3JhcGhpY3NDb250ZXh0Q2Fpcm8g
Z2MoaW1hZ2UuZ2V0KCkpOwogCiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdl
OjpzaXplKCk7CiAgICAgaWYgKHNpemUpCkBAIC04Myw5ICs4MCw2IEBAIGJvb2wgQml0bWFwSW1h
Z2U6OmdldEhCSVRNQVBPZlNpemUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAg
ICAgZWxzZQogICAgICAgICBkcmF3KGdjLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5i
bVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGltYWdlU2l6
ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5
IH0pOwogCi0gICAgLy8gRG8gY2xlYW51cAotICAgIGNhaXJvX2Rlc3Ryb3kodGFyZ2V0UmVmKTsK
LQogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhmMWQ2YWJkYzkyZS4uOTY5MWE1
OTVkZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTAxICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIFNpbXBs
aWZ5IEdyYXBoaWNzQ29udGV4dENhaXJvIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIG5ldyBHcmFwaGljc0NvbnRleHRDYWly
byBjb25zdHJ1Y3RvcnMuCisKKyAgICAgICAgKiBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFw
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSk6
CisKIDIwMjEtMDctMDEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gKFJlLSllbmFibGUgR3JvdXBBY3Rpdml0aWVzIGFmdGVyIHVwc3RyZWFtaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWly
by5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5j
cHAKaW5kZXggMTdiMjA0MmQ1ZjMyLi5lYzUxYmMyMTYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKQEAgLTU5LDggKzU5
LDcgQEAgc3RhdGljIGlubGluZSBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJmYWNl
RnJvbURhdGEodm9pZCogZGF0YSwgY29uc3QgV2UKIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0Nv
bnRleHQ+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCkKIHsKICAgICBS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBpbWFnZSA9IGNyZWF0ZUNhaXJvU3VyZmFjZSgpOwotICAg
IFJlZlB0cjxjYWlyb190PiBiaXRtYXBDb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKGlt
YWdlLmdldCgpKSk7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0Q2Fpcm8+
KGJpdG1hcENvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEdyYXBoaWNzQ29u
dGV4dENhaXJvPihpbWFnZS5nZXQoKSk7CiB9CiAKIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWlu
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBkc3RQb2ludCwgY29u
c3QgSW50UmVjdCYgc3JjUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2Nh
aXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCA0Zjc4YjVlYjVjZGIuLjBiMmZjMDAxOWZm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3Jl
Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9y
ZUNhaXJvLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvSW1wbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENhaXJvLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNvbnRleHRDYWlyby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRy
Q2Fpcm8uaD4KICNpbmNsdWRlIDxjYWlyby5oPgogCkBAIC04Myw4ICs4Miw3IEBAIHZvaWQgQmFj
a2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZShTaGFyZWFibGVCaXRtYXAqIGJpdG1hcCwgY29u
c3QgVXBkYXRlSW5mbyYKIAogICAgIC8vIFBhaW50IGFsbCB1cGRhdGUgcmVjdHMuCiAgICAgSW50
UG9pbnQgdXBkYXRlUmVjdExvY2F0aW9uID0gdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRzLmxv
Y2F0aW9uKCk7Ci0gICAgUmVmUHRyPGNhaXJvX3Q+IGNhaXJvQ29udGV4dCA9IGFkb3B0UmVmKGNh
aXJvX2NyZWF0ZShtX2JhY2tlbmQtPnN1cmZhY2UoKSkpOwotICAgIEdyYXBoaWNzQ29udGV4dENh
aXJvIGdyYXBoaWNzQ29udGV4dChjYWlyb0NvbnRleHQuZ2V0KCkpOworICAgIEdyYXBoaWNzQ29u
dGV4dENhaXJvIGdyYXBoaWNzQ29udGV4dChtX2JhY2tlbmQtPnN1cmZhY2UoKSk7CiAKICAgICAv
LyBXaGVuIG1fd2ViUGFnZVByb3h5LmRyYXdzQmFja2dyb3VuZCgpIGlzIGZhbHNlLCBiaXRtYXAg
Y29udGFpbnMgdHJhbnNwYXJlbnQgcGFydHMgYXMgYSBiYWNrZ3JvdW5kIG9mIHRoZSB3ZWJwYWdl
LgogICAgIC8vIEZvciBzdWNoIGNhc2UsIGJpdG1hcCBtdXN0IGJlIGRyYXduIHVzaW5nIENvbXBv
c2l0ZU9wZXJhdG9yOjpDb3B5IHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3Rpbmcgc3VyZmFjZS4K
</data>
<flag name="commit-queue"
          id="454708"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432672</attachid>
            <date>2021-07-01 02:41:44 -0700</date>
            <delta_ts>2021-07-01 03:34:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-gc-cairo.diff</filename>
            <type>text/plain</type>
            <size>19143</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NzliYjZmOGQxNDcuLmE4ZmU0NTVlYjM0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQxIEBACisyMDIxLTA3LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIFNpbXBsaWZ5IEdyYXBoaWNzQ29udGV4dENh
aXJvIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgdGhlIGNvbnN0cnVjdG9ycyB0YWtpbmcgYSBQbGF0Zm9ybUNvbnRleHRDYWly
byBhbmQgYWRkIHR3byB0aGF0IHJlY2VpdmUgYSBSZWZQdHI8Y2Fpcm9fdD4mJiBhbmQKKyAgICAg
ICAgY2Fpcm9fc3VyZmFjZV90Ki4gSW4gYm90aCBjYXNlcyB0aGUgUGxhdGZvcm1Db250ZXh0Q2Fp
cm8gaXMgY3JlYXRlZCwgc28gaXQncyBub3cgYWx3YXlzIG93bmVkIGFuZCBjYWxsZXJzIGRvbid0
CisgICAgICAgIG5lZWQgdG8gY3JlYXRlIGl0LgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhh
dmlvciwgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd0xpbmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6SW1hZ2VC
dWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OlBsYXRmb3JtQ29udGV4dENhaXJv
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWly
by5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OmNyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0Q3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5n
Q29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OlBhaW50aW5nQ29udGV4dENhaXJv
OjpGb3JQYWludGluZzo6Rm9yUGFpbnRpbmcpOgorICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdD
b250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjp+Rm9yUGFpbnRpbmcpOgorICAgICAgICAoTmljb3Np
YTo6UGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpyZXBsYXkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENh
aXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENh
aXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFw
aGljc0NvbnRleHRDYWlybyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdl
Q2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBP
ZlNpemUpOgorCiAyMDIxLTA2LTMwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFBDTTogQ2hhbmdlIGltcG9ydCBmcm9tIENyeXB0b0tpdENCcmlkZ2luZyB0
byBDcnlwdG9LaXRQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggN2M0
NTNlMmViOTYxLi5kOGM5NGNiMDc2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAK
QEAgLTU3LDIzICs1NywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29u
dGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0KQotICAgIDogbV9wbGF0Zm9ybUNvbnRleHQocGxhdGZvcm1Db250ZXh0KQor
R3JhcGhpY3NDb250ZXh0Q2Fpcm86OkdyYXBoaWNzQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190
PiYmIGNyKQorICAgIDogbV9wbGF0Zm9ybUNvbnRleHQoV1RGTW92ZShjcikpCiAgICAgLCBtX3By
aXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU+KG1fcGxhdGZv
cm1Db250ZXh0LmNyKCkpKQogewogICAgIG1fcGxhdGZvcm1Db250ZXh0LnNldEdyYXBoaWNzQ29u
dGV4dFByaXZhdGUobV9wcml2YXRlLmdldCgpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0Q2Fpcm86
OkdyYXBoaWNzQ29udGV4dENhaXJvKGNhaXJvX3QqIGNhaXJvQ29udGV4dCkKLSAgICA6IG1fb3du
ZWRQbGF0Zm9ybUNvbnRleHQobWFrZVVuaXF1ZTxQbGF0Zm9ybUNvbnRleHRDYWlybz4oY2Fpcm9D
b250ZXh0KSkKLSAgICAsIG1fcGxhdGZvcm1Db250ZXh0KCptX293bmVkUGxhdGZvcm1Db250ZXh0
KQotICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlPihtX3BsYXRmb3JtQ29udGV4dC5jcigpKSkKLXsKLSAgICBtX3BsYXRmb3JtQ29udGV4dC5z
ZXRHcmFwaGljc0NvbnRleHRQcml2YXRlKG1fcHJpdmF0ZS5nZXQoKSk7Ci19Ci0KLUdyYXBoaWNz
Q29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRDYWlybyog
cGxhdGZvcm1Db250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8oKnBsYXRmb3JtQ29u
dGV4dCkKK0dyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhjYWlyb19z
dXJmYWNlX3QqIHN1cmZhY2UpCisgICAgOiBHcmFwaGljc0NvbnRleHRDYWlybyhhZG9wdFJlZihj
YWlyb19jcmVhdGUoc3VyZmFjZSkpKQogewogfQogCkBAIC0xMzMsNyArMTI1LDYgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBj
b25zdCBGbG9hdFBvaW50JgogICAgIGlmIChzdHJva2VTdHlsZSgpID09IE5vU3Ryb2tlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1
dG8mIHN0YXRlID0gdGhpcy0+c3RhdGUoKTsKICAgICBDYWlybzo6ZHJhd0xpbmUoKnBsYXRmb3Jt
Q29udGV4dCgpLCBwb2ludDEsIHBvaW50Miwgc3RhdGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9r
ZUNvbG9yLCBzdGF0ZS5zdHJva2VUaGlja25lc3MsIHN0YXRlLnNob3VsZEFudGlhbGlhcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaAppbmRleCBlODhhNDhlM2ZmYjQuLmJhY2FhMzdjNjE2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5oCkBAIC0yOSwyMSArMjksMjEgQEAKICNpZiBV
U0UoQ0FJUk8pCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRDYWlyby5oIgogCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKK3R5
cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKLQogY2xhc3MgV0VCQ09S
RV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0Q2Fpcm8gZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0IHsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRD
YWlybyYpOwotICAgIEdyYXBoaWNzQ29udGV4dENhaXJvKFBsYXRmb3JtQ29udGV4dENhaXJvKik7
Ci0gICAgR3JhcGhpY3NDb250ZXh0Q2Fpcm8oY2Fpcm9fdCopOworICAgIGV4cGxpY2l0IEdyYXBo
aWNzQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190PiYmKTsKKyAgICBleHBsaWNpdCBHcmFwaGlj
c0NvbnRleHRDYWlybyhjYWlyb19zdXJmYWNlX3QqKTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICBHcmFwaGljc0NvbnRleHRDYWlybyhIREMsIGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJ
WE1FOiBUbyBiZSByZW1vdmVkLgorICAgIGV4cGxpY2l0IEdyYXBoaWNzQ29udGV4dENhaXJvKFBs
YXRmb3JtQ29udGV4dENhaXJvKik7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29u
dGV4dENhaXJvKCk7CkBAIC0xMTQsOCArMTE0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZh
dGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQ29udGV4dENhaXJvPiBtX293bmVkUGxh
dGZvcm1Db250ZXh0OwotICAgIFBsYXRmb3JtQ29udGV4dENhaXJvJiBtX3BsYXRmb3JtQ29udGV4
dDsKKyAgICBtdXRhYmxlIFBsYXRmb3JtQ29udGV4dENhaXJvIG1fcGxhdGZvcm1Db250ZXh0Owog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZT4gbV9w
cml2YXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQu
Y3BwCmluZGV4IGFkNzE2YjhjNjNiMi4uYWQ5ZTFjOWVlZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNs
dWRlICJDYWlyb09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENhaXJvLmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDYWlyby5oIgogI2luY2x1ZGUgIlBpeGVsQnVmZmVy
LmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KQEAgLTQ2LDE3ICs0NSwxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiYmIHN1cmZhY2UpCiAgICAgOiBJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZChwYXJh
bWV0ZXJzKQogICAgICwgbV9zdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpCisgICAgLCBtX2NvbnRl
eHQobV9zdXJmYWNlLmdldCgpKQogewogICAgIEFTU0VSVChjYWlyb19zdXJmYWNlX3N0YXR1cyht
X3N1cmZhY2UuZ2V0KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTKTsKLQotICAgIFJlZlB0cjxj
YWlyb190PiBjciA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShtX3N1cmZhY2UuZ2V0KCkpKTsKLSAg
ICBtX3BsYXRmb3JtQ29udGV4dC5zZXRDcihjci5nZXQoKSk7Ci0gICAgbV9jb250ZXh0ID0gbWFr
ZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRDYWlybz4obV9wbGF0Zm9ybUNvbnRleHQpOwogfQogCiBH
cmFwaGljc0NvbnRleHQmIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICptX2NvbnRleHQ7CisgICAgcmV0dXJuIG1fY29udGV4dDsK
IH0KIAogSW50U2l6ZSBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRTaXpl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKaW5k
ZXggMDY0MjI5NzAzNjc2Li5iNmI1NmQ4NjZiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZC5oCkBAIC0zMSw4ICszMSw4IEBACiAKICNpZiBVU0UoQ0FJUk8p
CiAKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDYWlyby5oIgogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw5ICs1Myw4IEBAIHByb3RlY3RlZDoKICAgICBS
ZWZQdHI8TmF0aXZlSW1hZ2U+IGNhaXJvU3VyZmFjZUNvZXJjZVRvSW1hZ2UoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgbXV0YWJsZSBS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7Ci0gICAgUGxhdGZvcm1Db250ZXh0Q2Fp
cm8gbV9wbGF0Zm9ybUNvbnRleHQgeyBudWxscHRyIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzQ29udGV4dD4gbV9jb250ZXh0OworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1f
c3VyZmFjZTsKKyAgICBtdXRhYmxlIEdyYXBoaWNzQ29udGV4dENhaXJvIG1fY29udGV4dDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKaW5kZXggZmRj
N2U3ZDY1ZmRjLi43MzE3MDBmZGNiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwCkBAIC0zMCw3
ICszMCw2IEBACiAKICNpbmNsdWRlICJDYWlyb09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJDYWly
b1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJvLmgiCiAjaW5jbHVk
ZSA8Y2Fpcm8uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fp
cm8uY3BwCmluZGV4IDcxMGQ5MDFhMDgwMS4uYzY2ODdkMDk3YWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1D
b250ZXh0Q2Fpcm8uY3BwCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB9IG1fbWFzazsK
IH07CiAKLVBsYXRmb3JtQ29udGV4dENhaXJvOjpQbGF0Zm9ybUNvbnRleHRDYWlybyhjYWlyb190
KiBjcikKLSAgICA6IG1fY3IoY3IpCitQbGF0Zm9ybUNvbnRleHRDYWlybzo6UGxhdGZvcm1Db250
ZXh0Q2Fpcm8oUmVmUHRyPGNhaXJvX3Q+JiYgY3IpCisgICAgOiBtX2NyKFdURk1vdmUoY3IpKQog
ewogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoU3RhdGUoKSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0
YXRlU3RhY2subGFzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKaW5kZXggOTljODJlMmU2
ZTk5Li5hZTVlMTg5YWQzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaApAQCAtMjMsOCAr
MjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBQbGF0Zm9ybUNvbnRleHRD
YWlyb19oCi0jZGVmaW5lIFBsYXRmb3JtQ29udGV4dENhaXJvX2gKKyNwcmFnbWEgb25jZQogCiAj
aWYgVVNFKENBSVJPKQogCkBAIC00Miw4ICs0MSw3IEBAIHN0cnVjdCBTdHJva2VTb3VyY2U7CiBz
dHJ1Y3QgU2hhZG93U3RhdGU7CiB9CiAKLS8vIE11Y2ggbGlrZSBQbGF0Zm9ybUNvbnRleHRTa2lh
IGluIHRoZSBTa2lhIHBvcnQsIHRoaXMgY2xhc3MgaG9sZHMgaW5mb3JtYXRpb24gdGhhdAotLy8g
d291bGQgbm9ybWFsbHkgYmUgcHJpdmF0ZSB0byBHcmFwaGljc0NvbnRleHQsIGV4Y2VwdCB0aGF0
IHdlIHdhbnQgdG8gYWxsb3cgYWNjZXNzCisvLyBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9u
IHRoYXQgd291bGQgbm9ybWFsbHkgYmUgcHJpdmF0ZSB0byBHcmFwaGljc0NvbnRleHQsIGV4Y2Vw
dCB0aGF0IHdlIHdhbnQgdG8gYWxsb3cgYWNjZXNzCiAvLyB0byBpdCBpbiBGb250IGFuZCBJbWFn
ZSBjb2RlLiBUaGlzIGFsbG93cyB1cyB0byBzZXBhcmF0ZSB0aGUgY29uY2VybnMgb2YgQ2Fpcm8t
c3BlY2lmaWMKIC8vIGNvZGUgZnJvbSB0aGUgcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3ND
b250ZXh0LgogCkBAIC01MSwxMSArNDksMTAgQEAgY2xhc3MgUGxhdGZvcm1Db250ZXh0Q2Fpcm8g
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFBsYXRmb3JtQ29udGV4dENhaXJvKTsKIHB1YmxpYzoKLSAgICBQbGF0Zm9ybUNvbnRleHRDYWly
byhjYWlyb190Kik7CisgICAgZXhwbGljaXQgUGxhdGZvcm1Db250ZXh0Q2Fpcm8oUmVmUHRyPGNh
aXJvX3Q+JiYpOwogICAgIH5QbGF0Zm9ybUNvbnRleHRDYWlybygpOwogCi0gICAgY2Fpcm9fdCog
Y3IoKSB7IHJldHVybiBtX2NyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRDcihjYWlyb190KiBjcikg
eyBtX2NyID0gY3I7IH0KKyAgICBjYWlyb190KiBjcigpIGNvbnN0IHsgcmV0dXJuIG1fY3IuZ2V0
KCk7IH0KIAogICAgIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSogZ3JhcGhpY3NDb250
ZXh0UHJpdmF0ZSgpIHsgcmV0dXJuIG1fZ3JhcGhpY3NDb250ZXh0UHJpdmF0ZTsgfQogICAgIHZv
aWQgc2V0R3JhcGhpY3NDb250ZXh0UHJpdmF0ZShHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGUqIGdyYXBoaWNzQ29udGV4dFByaXZhdGUpIHsgbV9ncmFwaGljc0NvbnRleHRQcml2YXRlID0g
Z3JhcGhpY3NDb250ZXh0UHJpdmF0ZTsgfQpAQCAtODYsNSArODMsMyBAQCBwcml2YXRlOgogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENBSVJPKQotCi0jZW5kaWYgLy8g
UGxhdGZvcm1Db250ZXh0Q2Fpcm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lh
UGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDQ5YWJjYWE0NTI1My4uOGQ0MjU3Njk5ZmM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2Nh
aXJvL05pY29zaWFQYWludGluZ0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdDb250ZXh0Q2Fp
cm8uY3BwCkBAIC00OCwxMSArNDgsMTEgQEAgUGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50
aW5nOjpGb3JQYWludGluZyhCdWZmZXImIGJ1ZmZlcikKICAgICAvLyBCYWxhbmNlZCBieSB0aGUg
ZGVyZWYgaW4gdGhlIHNfYnVmZmVyS2V5IHVzZXIgZGF0YSBkZXN0cm95IGNhbGxiYWNrLgogICAg
IGJ1ZmZlci5yZWYoKTsKIAotICAgIG1fY2Fpcm8uc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2lt
YWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlci5kYXRhKCksCisgICAgbV9zdXJmYWNl
ID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLmRh
dGEoKSwKICAgICAgICAgQ0FJUk9fRk9STUFUX0FSR0IzMiwgYnVmZmVyLnNpemUoKS53aWR0aCgp
LCBidWZmZXIuc2l6ZSgpLmhlaWdodCgpLCBidWZmZXIuc3RyaWRlKCkpKTsKIAogICAgIHN0YXRp
YyBjYWlyb191c2VyX2RhdGFfa2V5X3Qgc19idWZmZXJLZXk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9z
ZXRfdXNlcl9kYXRhKG1fY2Fpcm8uc3VyZmFjZS5nZXQoKSwgJnNfYnVmZmVyS2V5LAorICAgIGNh
aXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShtX3N1cmZhY2UuZ2V0KCksICZzX2J1ZmZlcktleSwK
ICAgICAgICAgbmV3IHN0ZDo6cGFpcjxCdWZmZXIqLCBGb3JQYWludGluZyo+IHsgJmJ1ZmZlciwg
dGhpcyB9LAogICAgICAgICBbXSh2b2lkKiBkYXRhKQogICAgICAgICB7CkBAIC02OSwxOSArNjks
MTUgQEAgUGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpGb3JQYWludGluZyhCdWZm
ZXImIGJ1ZmZlcikKICAgICAgICAgICAgIGRlbGV0ZSB1c2VyRGF0YTsKICAgICAgICAgfSk7CiAK
LSAgICBtX2NhaXJvLmNvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUobV9jYWlyby5zdXJm
YWNlLmdldCgpKSk7Ci0gICAgbV9wbGF0Zm9ybUNvbnRleHQgPSBtYWtlVW5pcXVlPFdlYkNvcmU6
OlBsYXRmb3JtQ29udGV4dENhaXJvPihtX2NhaXJvLmNvbnRleHQuZ2V0KCkpOwotICAgIG1fZ3Jh
cGhpY3NDb250ZXh0ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDYWlybz4o
Km1fcGxhdGZvcm1Db250ZXh0KTsKKyAgICBtX2dyYXBoaWNzQ29udGV4dCA9IG1ha2VVbmlxdWU8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8+KG1fc3VyZmFjZS5nZXQoKSk7CiB9CiAKIFBh
aW50aW5nQ29udGV4dENhaXJvOjpGb3JQYWludGluZzo6fkZvclBhaW50aW5nKCkKIHsKLSAgICBj
YWlyb19zdXJmYWNlX2ZsdXNoKG1fY2Fpcm8uc3VyZmFjZS5nZXQoKSk7CisgICAgY2Fpcm9fc3Vy
ZmFjZV9mbHVzaChtX3N1cmZhY2UuZ2V0KCkpOwogCiAgICAgbV9ncmFwaGljc0NvbnRleHQgPSBu
dWxscHRyOwotICAgIG1fcGxhdGZvcm1Db250ZXh0ID0gbnVsbHB0cjsKLSAgICBtX2NhaXJvLmNv
bnRleHQgPSBudWxscHRyOwotICAgIG1fY2Fpcm8uc3VyZmFjZSA9IG51bGxwdHI7CisgICAgbV9z
dXJmYWNlID0gbnVsbHB0cjsKIAogICAgIC8vIFdpdGggYWxsIHRoZSBDYWlybyByZWZlcmVuY2Vz
IHB1cmdlZCwgdGhlIGNhaXJvX3N1cmZhY2VfdCBvYmplY3Qgc2hvdWxkIGJlIGRlc3Ryb3llZAog
ICAgIC8vIGFzIHdlbGwuIFRoaXMgaXMgY2hlY2tlZCBieSBhc3NlcnRpbmcgdGhhdCBtX2RlbGV0
aW9uQ29tcGxldGUgaXMgdHJ1ZSwgd2hpY2ggc2hvdWxkCkBAIC05Nyw3ICs5Myw3IEBAIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYgUGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpn
cmFwaGljc0NvbnRleHQoKQogCiB2b2lkIFBhaW50aW5nQ29udGV4dENhaXJvOjpGb3JQYWludGlu
Zzo6cmVwbGF5KGNvbnN0IFBhaW50aW5nT3BlcmF0aW9ucyYgcGFpbnRpbmdPcGVyYXRpb25zKQog
ewotICAgIFBhaW50aW5nT3BlcmF0aW9uUmVwbGF5Q2Fpcm8gb3BlcmF0aW9uUmVwbGF5IHsgKm1f
cGxhdGZvcm1Db250ZXh0IH07CisgICAgUGFpbnRpbmdPcGVyYXRpb25SZXBsYXlDYWlybyBvcGVy
YXRpb25SZXBsYXkgeyAqbV9ncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpIH07CiAg
ICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiBwYWludGluZ09wZXJhdGlvbnMpCiAgICAgICAgIG9w
ZXJhdGlvbi0+ZXhlY3V0ZShvcGVyYXRpb25SZXBsYXkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdD
b250ZXh0Q2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
Y2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENhaXJvLmgKaW5kZXggMThlZTQ4MjZhMjk2Li5j
ODBiNjY0YzBmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENhaXJvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdD
b250ZXh0Q2Fpcm8uaApAQCAtMzksNyArMzksNiBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3Vy
ZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDsKLWNsYXNzIFBsYXRmb3JtQ29udGV4dENhaXJvOwogfQogCiBuYW1lc3BhY2Ug
Tmljb3NpYSB7CkBAIC01NSwxMSArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0KCkgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQg
cmVwbGF5KGNvbnN0IFBhaW50aW5nT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgICAgIHN0
cnVjdCB7Ci0gICAgICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlOwotICAg
ICAgICAgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQ7Ci0gICAgICAgIH0gbV9jYWlybzsKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvPiBtX3Bs
YXRmb3JtQ29udGV4dDsKKyAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNl
OwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBtX2dy
YXBoaWNzQ29udGV4dDsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9X
aW4uY3BwCmluZGV4IGU1NWE5NTM0NGM5MC4uNzRhODE1NGE3MzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0Nv
bnRleHRDYWlyb1dpbi5jcHAKQEAgLTY4LDkgKzY4LDEyIEBAIHN0YXRpYyBSZWZQdHI8Y2Fpcm9f
dD4gY3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhIREMgaGRjLCBib29sIGhhc0FscGhhKQogfQog
CiBHcmFwaGljc0NvbnRleHRDYWlybzo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8oSERDIGRjLCBib29s
IGhhc0FscGhhKQotICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8oY3JlYXRlQ2Fpcm9Db250ZXh0
V2l0aEhEQyhkYywgaGFzQWxwaGEpLmdldCgpKQorICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8o
Y3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhkYywgaGFzQWxwaGEpKQogewogfQorCitHcmFwaGlj
c0NvbnRleHRDYWlybzo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8oUGxhdGZvcm1Db250ZXh0Q2Fpcm8q
IHBsYXRmb3JtQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dENhaXJvKHBsYXRmb3JtQ29u
dGV4dC0+Y3IoKSkKICNlbmRpZgogCiBzdGF0aWMgdm9pZCBzZXRSR0JBQml0bWFwQWxwaGEodW5z
aWduZWQgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGNoYXIgbGV2ZWwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWly
b1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWly
b1dpbi5jcHAKaW5kZXggYzllYjAwYzQ4MjQxLi40ZWFmZmQ3YTY0OTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNhaXJvV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAK
QEAgLTcwLDEyICs3MCw5IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUoSEJJ
VE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAKICAgICB1bnNpZ25lZCBjaGFyKiBibXBk
YXRhID0gKHVuc2lnbmVkIGNoYXIqKWJtcEluZm8uYm1CaXRzICsgYm1wSW5mby5ibVdpZHRoQnl0
ZXMqKGJtcEluZm8uYm1IZWlnaHQtMSk7CiAKLSAgICBjYWlyb19zdXJmYWNlX3QqIGltYWdlID0g
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYm1wZGF0YSwgQ0FJUk9fRk9STUFU
X0FSR0IzMiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0LCAtYm1wSW5mby5ibVdp
ZHRoQnl0ZXMpOworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGltYWdlID0gYWRvcHRSZWYo
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYm1wZGF0YSwgQ0FJUk9fRk9STUFU
X0FSR0IzMiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0LCAtYm1wSW5mby5ibVdp
ZHRoQnl0ZXMpKTsKIAotICAgIGNhaXJvX3QqIHRhcmdldFJlZiA9IGNhaXJvX2NyZWF0ZShpbWFn
ZSk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KGltYWdlKTsKLQotICAgIEdyYXBoaWNzQ29u
dGV4dENhaXJvIGdjKHRhcmdldFJlZik7CisgICAgR3JhcGhpY3NDb250ZXh0Q2Fpcm8gZ2MoaW1h
Z2UuZ2V0KCkpOwogCiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXpl
KCk7CiAgICAgaWYgKHNpemUpCkBAIC04Myw5ICs4MCw2IEBAIGJvb2wgQml0bWFwSW1hZ2U6Omdl
dEhCSVRNQVBPZlNpemUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAgZWxz
ZQogICAgICAgICBkcmF3KGdjLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRo
LCBibXBJbmZvLmJtSGVpZ2h0KSwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGltYWdlU2l6ZS53aWR0
aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5IH0pOwog
Ci0gICAgLy8gRG8gY2xlYW51cAotICAgIGNhaXJvX2Rlc3Ryb3kodGFyZ2V0UmVmKTsKLQogICAg
IHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhmMWQ2YWJkYzkyZS4uOTY5MWE1OTVkZGNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTAxICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIFNpbXBsaWZ5IEdy
YXBoaWNzQ29udGV4dENhaXJvIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIG5ldyBHcmFwaGljc0NvbnRleHRDYWlybyBjb25z
dHJ1Y3RvcnMuCisKKyAgICAgICAgKiBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSk6CisKIDIw
MjEtMDctMDEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01h
Y10gKFJlLSllbmFibGUgR3JvdXBBY3Rpdml0aWVzIGFmdGVyIHVwc3RyZWFtaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKaW5k
ZXggMTdiMjA0MmQ1ZjMyLi5lYzUxYmMyMTYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKQEAgLTU5LDggKzU5LDcgQEAg
c3RhdGljIGlubGluZSBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJmYWNlRnJvbURh
dGEodm9pZCogZGF0YSwgY29uc3QgV2UKIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCkKIHsKICAgICBSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBpbWFnZSA9IGNyZWF0ZUNhaXJvU3VyZmFjZSgpOwotICAgIFJlZlB0
cjxjYWlyb190PiBiaXRtYXBDb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKGltYWdlLmdl
dCgpKSk7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0Q2Fpcm8+KGJpdG1h
cENvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEdyYXBoaWNzQ29udGV4dENh
aXJvPihpbWFnZS5nZXQoKSk7CiB9CiAKIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBkc3RQb2ludCwgY29uc3QgSW50
UmVjdCYgc3JjUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJv
L0JhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJvL0Jh
Y2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCA0Zjc4YjVlYjVjZGIuLjBiMmZjMDAxOWZmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJv
LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQmFja2luZ1N0b3JlQmFj
a2VuZENhaXJvSW1wbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENhaXJvLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUNvbnRleHRDYWlyby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8u
aD4KICNpbmNsdWRlIDxjYWlyby5oPgogCkBAIC04Myw4ICs4Miw3IEBAIHZvaWQgQmFja2luZ1N0
b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZShTaGFyZWFibGVCaXRtYXAqIGJpdG1hcCwgY29uc3QgVXBk
YXRlSW5mbyYKIAogICAgIC8vIFBhaW50IGFsbCB1cGRhdGUgcmVjdHMuCiAgICAgSW50UG9pbnQg
dXBkYXRlUmVjdExvY2F0aW9uID0gdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRzLmxvY2F0aW9u
KCk7Ci0gICAgUmVmUHRyPGNhaXJvX3Q+IGNhaXJvQ29udGV4dCA9IGFkb3B0UmVmKGNhaXJvX2Ny
ZWF0ZShtX2JhY2tlbmQtPnN1cmZhY2UoKSkpOwotICAgIEdyYXBoaWNzQ29udGV4dENhaXJvIGdy
YXBoaWNzQ29udGV4dChjYWlyb0NvbnRleHQuZ2V0KCkpOworICAgIEdyYXBoaWNzQ29udGV4dENh
aXJvIGdyYXBoaWNzQ29udGV4dChtX2JhY2tlbmQtPnN1cmZhY2UoKSk7CiAKICAgICAvLyBXaGVu
IG1fd2ViUGFnZVByb3h5LmRyYXdzQmFja2dyb3VuZCgpIGlzIGZhbHNlLCBiaXRtYXAgY29udGFp
bnMgdHJhbnNwYXJlbnQgcGFydHMgYXMgYSBiYWNrZ3JvdW5kIG9mIHRoZSB3ZWJwYWdlLgogICAg
IC8vIEZvciBzdWNoIGNhc2UsIGJpdG1hcCBtdXN0IGJlIGRyYXduIHVzaW5nIENvbXBvc2l0ZU9w
ZXJhdG9yOjpDb3B5IHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3Rpbmcgc3VyZmFjZS4K
</data>
<flag name="commit-queue"
          id="454710"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432673</attachid>
            <date>2021-07-01 02:50:48 -0700</date>
            <delta_ts>2021-07-01 02:59:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-gc-cairo.diff</filename>
            <type>text/plain</type>
            <size>19057</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NzliYjZmOGQxNDcuLmE4ZmU0NTVlYjM0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQxIEBACisyMDIxLTA3LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIFNpbXBsaWZ5IEdyYXBoaWNzQ29udGV4dENh
aXJvIGNyZWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgdGhlIGNvbnN0cnVjdG9ycyB0YWtpbmcgYSBQbGF0Zm9ybUNvbnRleHRDYWly
byBhbmQgYWRkIHR3byB0aGF0IHJlY2VpdmUgYSBSZWZQdHI8Y2Fpcm9fdD4mJiBhbmQKKyAgICAg
ICAgY2Fpcm9fc3VyZmFjZV90Ki4gSW4gYm90aCBjYXNlcyB0aGUgUGxhdGZvcm1Db250ZXh0Q2Fp
cm8gaXMgY3JlYXRlZCwgc28gaXQncyBub3cgYWx3YXlzIG93bmVkIGFuZCBjYWxsZXJzIGRvbid0
CisgICAgICAgIG5lZWQgdG8gY3JlYXRlIGl0LgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhh
dmlvciwgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd0xpbmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6SW1hZ2VC
dWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OlBsYXRmb3JtQ29udGV4dENhaXJv
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWly
by5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OmNyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0Q3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5n
Q29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OlBhaW50aW5nQ29udGV4dENhaXJv
OjpGb3JQYWludGluZzo6Rm9yUGFpbnRpbmcpOgorICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdD
b250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjp+Rm9yUGFpbnRpbmcpOgorICAgICAgICAoTmljb3Np
YTo6UGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpyZXBsYXkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENh
aXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENh
aXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFw
aGljc0NvbnRleHRDYWlybyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdl
Q2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBP
ZlNpemUpOgorCiAyMDIxLTA2LTMwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFBDTTogQ2hhbmdlIGltcG9ydCBmcm9tIENyeXB0b0tpdENCcmlkZ2luZyB0
byBDcnlwdG9LaXRQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggN2M0
NTNlMmViOTYxLi5kOGM5NGNiMDc2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAK
QEAgLTU3LDIzICs1NywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29u
dGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0KQotICAgIDogbV9wbGF0Zm9ybUNvbnRleHQocGxhdGZvcm1Db250ZXh0KQor
R3JhcGhpY3NDb250ZXh0Q2Fpcm86OkdyYXBoaWNzQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190
PiYmIGNyKQorICAgIDogbV9wbGF0Zm9ybUNvbnRleHQoV1RGTW92ZShjcikpCiAgICAgLCBtX3By
aXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU+KG1fcGxhdGZv
cm1Db250ZXh0LmNyKCkpKQogewogICAgIG1fcGxhdGZvcm1Db250ZXh0LnNldEdyYXBoaWNzQ29u
dGV4dFByaXZhdGUobV9wcml2YXRlLmdldCgpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0Q2Fpcm86
OkdyYXBoaWNzQ29udGV4dENhaXJvKGNhaXJvX3QqIGNhaXJvQ29udGV4dCkKLSAgICA6IG1fb3du
ZWRQbGF0Zm9ybUNvbnRleHQobWFrZVVuaXF1ZTxQbGF0Zm9ybUNvbnRleHRDYWlybz4oY2Fpcm9D
b250ZXh0KSkKLSAgICAsIG1fcGxhdGZvcm1Db250ZXh0KCptX293bmVkUGxhdGZvcm1Db250ZXh0
KQotICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlPihtX3BsYXRmb3JtQ29udGV4dC5jcigpKSkKLXsKLSAgICBtX3BsYXRmb3JtQ29udGV4dC5z
ZXRHcmFwaGljc0NvbnRleHRQcml2YXRlKG1fcHJpdmF0ZS5nZXQoKSk7Ci19Ci0KLUdyYXBoaWNz
Q29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRDYWlybyog
cGxhdGZvcm1Db250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8oKnBsYXRmb3JtQ29u
dGV4dCkKK0dyYXBoaWNzQ29udGV4dENhaXJvOjpHcmFwaGljc0NvbnRleHRDYWlybyhjYWlyb19z
dXJmYWNlX3QqIHN1cmZhY2UpCisgICAgOiBHcmFwaGljc0NvbnRleHRDYWlybyhhZG9wdFJlZihj
YWlyb19jcmVhdGUoc3VyZmFjZSkpKQogewogfQogCkBAIC0xMzMsNyArMTI1LDYgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBj
b25zdCBGbG9hdFBvaW50JgogICAgIGlmIChzdHJva2VTdHlsZSgpID09IE5vU3Ryb2tlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1
dG8mIHN0YXRlID0gdGhpcy0+c3RhdGUoKTsKICAgICBDYWlybzo6ZHJhd0xpbmUoKnBsYXRmb3Jt
Q29udGV4dCgpLCBwb2ludDEsIHBvaW50Miwgc3RhdGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9r
ZUNvbG9yLCBzdGF0ZS5zdHJva2VUaGlja25lc3MsIHN0YXRlLnNob3VsZEFudGlhbGlhcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaAppbmRleCBlODhhNDhlM2ZmYjQuLmJhY2FhMzdjNjE2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5oCkBAIC0yOSwyMSArMjksMjEgQEAKICNpZiBV
U0UoQ0FJUk8pCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRDYWlyby5oIgogCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKK3R5
cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKLQogY2xhc3MgV0VCQ09S
RV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0Q2Fpcm8gZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0IHsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0NvbnRleHRDYWlybyhQbGF0Zm9ybUNvbnRleHRD
YWlybyYpOwotICAgIEdyYXBoaWNzQ29udGV4dENhaXJvKFBsYXRmb3JtQ29udGV4dENhaXJvKik7
Ci0gICAgR3JhcGhpY3NDb250ZXh0Q2Fpcm8oY2Fpcm9fdCopOworICAgIGV4cGxpY2l0IEdyYXBo
aWNzQ29udGV4dENhaXJvKFJlZlB0cjxjYWlyb190PiYmKTsKKyAgICBleHBsaWNpdCBHcmFwaGlj
c0NvbnRleHRDYWlybyhjYWlyb19zdXJmYWNlX3QqKTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICBHcmFwaGljc0NvbnRleHRDYWlybyhIREMsIGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJ
WE1FOiBUbyBiZSByZW1vdmVkLgorICAgIGV4cGxpY2l0IEdyYXBoaWNzQ29udGV4dENhaXJvKFBs
YXRmb3JtQ29udGV4dENhaXJvKik7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29u
dGV4dENhaXJvKCk7CkBAIC0xMTQsOCArMTE0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZh
dGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQ29udGV4dENhaXJvPiBtX293bmVkUGxh
dGZvcm1Db250ZXh0OwotICAgIFBsYXRmb3JtQ29udGV4dENhaXJvJiBtX3BsYXRmb3JtQ29udGV4
dDsKKyAgICBtdXRhYmxlIFBsYXRmb3JtQ29udGV4dENhaXJvIG1fcGxhdGZvcm1Db250ZXh0Owog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZT4gbV9w
cml2YXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQu
Y3BwCmluZGV4IGFkNzE2YjhjNjNiMi4uYWQ5ZTFjOWVlZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNs
dWRlICJDYWlyb09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENhaXJvLmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDYWlyby5oIgogI2luY2x1ZGUgIlBpeGVsQnVmZmVy
LmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KQEAgLTQ2LDE3ICs0NSwxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiYmIHN1cmZhY2UpCiAgICAgOiBJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZChwYXJh
bWV0ZXJzKQogICAgICwgbV9zdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpCisgICAgLCBtX2NvbnRl
eHQobV9zdXJmYWNlLmdldCgpKQogewogICAgIEFTU0VSVChjYWlyb19zdXJmYWNlX3N0YXR1cyht
X3N1cmZhY2UuZ2V0KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTKTsKLQotICAgIFJlZlB0cjxj
YWlyb190PiBjciA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShtX3N1cmZhY2UuZ2V0KCkpKTsKLSAg
ICBtX3BsYXRmb3JtQ29udGV4dC5zZXRDcihjci5nZXQoKSk7Ci0gICAgbV9jb250ZXh0ID0gbWFr
ZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRDYWlybz4obV9wbGF0Zm9ybUNvbnRleHQpOwogfQogCiBH
cmFwaGljc0NvbnRleHQmIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICptX2NvbnRleHQ7CisgICAgcmV0dXJuIG1fY29udGV4dDsK
IH0KIAogSW50U2l6ZSBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRTaXpl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKaW5k
ZXggMDY0MjI5NzAzNjc2Li5iNmI1NmQ4NjZiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZC5oCkBAIC0zMSw4ICszMSw4IEBACiAKICNpZiBVU0UoQ0FJUk8p
CiAKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDYWlyby5oIgogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw5ICs1Myw4IEBAIHByb3RlY3RlZDoKICAgICBS
ZWZQdHI8TmF0aXZlSW1hZ2U+IGNhaXJvU3VyZmFjZUNvZXJjZVRvSW1hZ2UoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgbXV0YWJsZSBS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7Ci0gICAgUGxhdGZvcm1Db250ZXh0Q2Fp
cm8gbV9wbGF0Zm9ybUNvbnRleHQgeyBudWxscHRyIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzQ29udGV4dD4gbV9jb250ZXh0OworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1f
c3VyZmFjZTsKKyAgICBtdXRhYmxlIEdyYXBoaWNzQ29udGV4dENhaXJvIG1fY29udGV4dDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKaW5kZXggZmRj
N2U3ZDY1ZmRjLi43MzE3MDBmZGNiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwCkBAIC0zMCw3
ICszMCw2IEBACiAKICNpbmNsdWRlICJDYWlyb09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJDYWly
b1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJvLmgiCiAjaW5jbHVk
ZSA8Y2Fpcm8uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fp
cm8uY3BwCmluZGV4IDcxMGQ5MDFhMDgwMS4uYzY2ODdkMDk3YWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1D
b250ZXh0Q2Fpcm8uY3BwCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB9IG1fbWFzazsK
IH07CiAKLVBsYXRmb3JtQ29udGV4dENhaXJvOjpQbGF0Zm9ybUNvbnRleHRDYWlybyhjYWlyb190
KiBjcikKLSAgICA6IG1fY3IoY3IpCitQbGF0Zm9ybUNvbnRleHRDYWlybzo6UGxhdGZvcm1Db250
ZXh0Q2Fpcm8oUmVmUHRyPGNhaXJvX3Q+JiYgY3IpCisgICAgOiBtX2NyKFdURk1vdmUoY3IpKQog
ewogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoU3RhdGUoKSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0
YXRlU3RhY2subGFzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKaW5kZXggOTljODJlMmU2
ZTk5Li5hZTVlMTg5YWQzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaApAQCAtMjMsOCAr
MjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBQbGF0Zm9ybUNvbnRleHRD
YWlyb19oCi0jZGVmaW5lIFBsYXRmb3JtQ29udGV4dENhaXJvX2gKKyNwcmFnbWEgb25jZQogCiAj
aWYgVVNFKENBSVJPKQogCkBAIC00Miw4ICs0MSw3IEBAIHN0cnVjdCBTdHJva2VTb3VyY2U7CiBz
dHJ1Y3QgU2hhZG93U3RhdGU7CiB9CiAKLS8vIE11Y2ggbGlrZSBQbGF0Zm9ybUNvbnRleHRTa2lh
IGluIHRoZSBTa2lhIHBvcnQsIHRoaXMgY2xhc3MgaG9sZHMgaW5mb3JtYXRpb24gdGhhdAotLy8g
d291bGQgbm9ybWFsbHkgYmUgcHJpdmF0ZSB0byBHcmFwaGljc0NvbnRleHQsIGV4Y2VwdCB0aGF0
IHdlIHdhbnQgdG8gYWxsb3cgYWNjZXNzCisvLyBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9u
IHRoYXQgd291bGQgbm9ybWFsbHkgYmUgcHJpdmF0ZSB0byBHcmFwaGljc0NvbnRleHQsIGV4Y2Vw
dCB0aGF0IHdlIHdhbnQgdG8gYWxsb3cgYWNjZXNzCiAvLyB0byBpdCBpbiBGb250IGFuZCBJbWFn
ZSBjb2RlLiBUaGlzIGFsbG93cyB1cyB0byBzZXBhcmF0ZSB0aGUgY29uY2VybnMgb2YgQ2Fpcm8t
c3BlY2lmaWMKIC8vIGNvZGUgZnJvbSB0aGUgcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3ND
b250ZXh0LgogCkBAIC01MSwxMSArNDksMTAgQEAgY2xhc3MgUGxhdGZvcm1Db250ZXh0Q2Fpcm8g
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFBsYXRmb3JtQ29udGV4dENhaXJvKTsKIHB1YmxpYzoKLSAgICBQbGF0Zm9ybUNvbnRleHRDYWly
byhjYWlyb190Kik7CisgICAgZXhwbGljaXQgUGxhdGZvcm1Db250ZXh0Q2Fpcm8oUmVmUHRyPGNh
aXJvX3Q+JiYpOwogICAgIH5QbGF0Zm9ybUNvbnRleHRDYWlybygpOwogCi0gICAgY2Fpcm9fdCog
Y3IoKSB7IHJldHVybiBtX2NyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRDcihjYWlyb190KiBjcikg
eyBtX2NyID0gY3I7IH0KKyAgICBjYWlyb190KiBjcigpIGNvbnN0IHsgcmV0dXJuIG1fY3IuZ2V0
KCk7IH0KIAogICAgIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSogZ3JhcGhpY3NDb250
ZXh0UHJpdmF0ZSgpIHsgcmV0dXJuIG1fZ3JhcGhpY3NDb250ZXh0UHJpdmF0ZTsgfQogICAgIHZv
aWQgc2V0R3JhcGhpY3NDb250ZXh0UHJpdmF0ZShHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGUqIGdyYXBoaWNzQ29udGV4dFByaXZhdGUpIHsgbV9ncmFwaGljc0NvbnRleHRQcml2YXRlID0g
Z3JhcGhpY3NDb250ZXh0UHJpdmF0ZTsgfQpAQCAtODYsNSArODMsMyBAQCBwcml2YXRlOgogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENBSVJPKQotCi0jZW5kaWYgLy8g
UGxhdGZvcm1Db250ZXh0Q2Fpcm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lh
UGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDQ5YWJjYWE0NTI1My4uOGQ0MjU3Njk5ZmM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2Nh
aXJvL05pY29zaWFQYWludGluZ0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdDb250ZXh0Q2Fp
cm8uY3BwCkBAIC00OCwxMSArNDgsMTEgQEAgUGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50
aW5nOjpGb3JQYWludGluZyhCdWZmZXImIGJ1ZmZlcikKICAgICAvLyBCYWxhbmNlZCBieSB0aGUg
ZGVyZWYgaW4gdGhlIHNfYnVmZmVyS2V5IHVzZXIgZGF0YSBkZXN0cm95IGNhbGxiYWNrLgogICAg
IGJ1ZmZlci5yZWYoKTsKIAotICAgIG1fY2Fpcm8uc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2lt
YWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlci5kYXRhKCksCisgICAgbV9zdXJmYWNl
ID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLmRh
dGEoKSwKICAgICAgICAgQ0FJUk9fRk9STUFUX0FSR0IzMiwgYnVmZmVyLnNpemUoKS53aWR0aCgp
LCBidWZmZXIuc2l6ZSgpLmhlaWdodCgpLCBidWZmZXIuc3RyaWRlKCkpKTsKIAogICAgIHN0YXRp
YyBjYWlyb191c2VyX2RhdGFfa2V5X3Qgc19idWZmZXJLZXk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9z
ZXRfdXNlcl9kYXRhKG1fY2Fpcm8uc3VyZmFjZS5nZXQoKSwgJnNfYnVmZmVyS2V5LAorICAgIGNh
aXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShtX3N1cmZhY2UuZ2V0KCksICZzX2J1ZmZlcktleSwK
ICAgICAgICAgbmV3IHN0ZDo6cGFpcjxCdWZmZXIqLCBGb3JQYWludGluZyo+IHsgJmJ1ZmZlciwg
dGhpcyB9LAogICAgICAgICBbXSh2b2lkKiBkYXRhKQogICAgICAgICB7CkBAIC02OSwxOSArNjks
MTUgQEAgUGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpGb3JQYWludGluZyhCdWZm
ZXImIGJ1ZmZlcikKICAgICAgICAgICAgIGRlbGV0ZSB1c2VyRGF0YTsKICAgICAgICAgfSk7CiAK
LSAgICBtX2NhaXJvLmNvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUobV9jYWlyby5zdXJm
YWNlLmdldCgpKSk7Ci0gICAgbV9wbGF0Zm9ybUNvbnRleHQgPSBtYWtlVW5pcXVlPFdlYkNvcmU6
OlBsYXRmb3JtQ29udGV4dENhaXJvPihtX2NhaXJvLmNvbnRleHQuZ2V0KCkpOwotICAgIG1fZ3Jh
cGhpY3NDb250ZXh0ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDYWlybz4o
Km1fcGxhdGZvcm1Db250ZXh0KTsKKyAgICBtX2dyYXBoaWNzQ29udGV4dCA9IG1ha2VVbmlxdWU8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8+KG1fc3VyZmFjZS5nZXQoKSk7CiB9CiAKIFBh
aW50aW5nQ29udGV4dENhaXJvOjpGb3JQYWludGluZzo6fkZvclBhaW50aW5nKCkKIHsKLSAgICBj
YWlyb19zdXJmYWNlX2ZsdXNoKG1fY2Fpcm8uc3VyZmFjZS5nZXQoKSk7CisgICAgY2Fpcm9fc3Vy
ZmFjZV9mbHVzaChtX3N1cmZhY2UuZ2V0KCkpOwogCiAgICAgbV9ncmFwaGljc0NvbnRleHQgPSBu
dWxscHRyOwotICAgIG1fcGxhdGZvcm1Db250ZXh0ID0gbnVsbHB0cjsKLSAgICBtX2NhaXJvLmNv
bnRleHQgPSBudWxscHRyOwotICAgIG1fY2Fpcm8uc3VyZmFjZSA9IG51bGxwdHI7CisgICAgbV9z
dXJmYWNlID0gbnVsbHB0cjsKIAogICAgIC8vIFdpdGggYWxsIHRoZSBDYWlybyByZWZlcmVuY2Vz
IHB1cmdlZCwgdGhlIGNhaXJvX3N1cmZhY2VfdCBvYmplY3Qgc2hvdWxkIGJlIGRlc3Ryb3llZAog
ICAgIC8vIGFzIHdlbGwuIFRoaXMgaXMgY2hlY2tlZCBieSBhc3NlcnRpbmcgdGhhdCBtX2RlbGV0
aW9uQ29tcGxldGUgaXMgdHJ1ZSwgd2hpY2ggc2hvdWxkCkBAIC05Nyw3ICs5Myw3IEBAIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYgUGFpbnRpbmdDb250ZXh0Q2Fpcm86OkZvclBhaW50aW5nOjpn
cmFwaGljc0NvbnRleHQoKQogCiB2b2lkIFBhaW50aW5nQ29udGV4dENhaXJvOjpGb3JQYWludGlu
Zzo6cmVwbGF5KGNvbnN0IFBhaW50aW5nT3BlcmF0aW9ucyYgcGFpbnRpbmdPcGVyYXRpb25zKQog
ewotICAgIFBhaW50aW5nT3BlcmF0aW9uUmVwbGF5Q2Fpcm8gb3BlcmF0aW9uUmVwbGF5IHsgKm1f
cGxhdGZvcm1Db250ZXh0IH07CisgICAgUGFpbnRpbmdPcGVyYXRpb25SZXBsYXlDYWlybyBvcGVy
YXRpb25SZXBsYXkgeyAqbV9ncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpIH07CiAg
ICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiBwYWludGluZ09wZXJhdGlvbnMpCiAgICAgICAgIG9w
ZXJhdGlvbi0+ZXhlY3V0ZShvcGVyYXRpb25SZXBsYXkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdD
b250ZXh0Q2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
Y2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENhaXJvLmgKaW5kZXggMThlZTQ4MjZhMjk2Li5j
ODBiNjY0YzBmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvY2Fpcm8vTmljb3NpYVBhaW50aW5nQ29udGV4dENhaXJvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhUGFpbnRpbmdD
b250ZXh0Q2Fpcm8uaApAQCAtMzksNyArMzksNiBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3Vy
ZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDsKLWNsYXNzIFBsYXRmb3JtQ29udGV4dENhaXJvOwogfQogCiBuYW1lc3BhY2Ug
Tmljb3NpYSB7CkBAIC01NSwxMSArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0KCkgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQg
cmVwbGF5KGNvbnN0IFBhaW50aW5nT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgICAgIHN0
cnVjdCB7Ci0gICAgICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlOwotICAg
ICAgICAgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQ7Ci0gICAgICAgIH0gbV9jYWlybzsKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvPiBtX3Bs
YXRmb3JtQ29udGV4dDsKKyAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNl
OwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBtX2dy
YXBoaWNzQ29udGV4dDsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9X
aW4uY3BwCmluZGV4IGU1NWE5NTM0NGM5MC4uMmNiZjZkMTkwYTkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0Nv
bnRleHRDYWlyb1dpbi5jcHAKQEAgLTY4LDcgKzY4LDEyIEBAIHN0YXRpYyBSZWZQdHI8Y2Fpcm9f
dD4gY3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhIREMgaGRjLCBib29sIGhhc0FscGhhKQogfQog
CiBHcmFwaGljc0NvbnRleHRDYWlybzo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8oSERDIGRjLCBib29s
IGhhc0FscGhhKQotICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8oY3JlYXRlQ2Fpcm9Db250ZXh0
V2l0aEhEQyhkYywgaGFzQWxwaGEpLmdldCgpKQorICAgIDogR3JhcGhpY3NDb250ZXh0Q2Fpcm8o
Y3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhkYywgaGFzQWxwaGEpKQoreworfQorCitHcmFwaGlj
c0NvbnRleHRDYWlybzo6R3JhcGhpY3NDb250ZXh0Q2Fpcm8oUGxhdGZvcm1Db250ZXh0Q2Fpcm8q
IHBsYXRmb3JtQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dENhaXJvKHBsYXRmb3JtQ29u
dGV4dC0+Y3IoKSkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwCmluZGV4IGM5ZWIwMGM0ODI0MS4u
NGVhZmZkN2E2NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwCkBAIC03MCwxMiArNzAsOSBAQCBib29sIEJpdG1h
cEltYWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBzaXpl
KQogCiAgICAgdW5zaWduZWQgY2hhciogYm1wZGF0YSA9ICh1bnNpZ25lZCBjaGFyKilibXBJbmZv
LmJtQml0cyArIGJtcEluZm8uYm1XaWR0aEJ5dGVzKihibXBJbmZvLmJtSGVpZ2h0LTEpOwogCi0g
ICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zv
cl9kYXRhKGJtcGRhdGEsIENBSVJPX0ZPUk1BVF9BUkdCMzIsIGJtcEluZm8uYm1XaWR0aCwgYm1w
SW5mby5ibUhlaWdodCwgLWJtcEluZm8uYm1XaWR0aEJ5dGVzKTsKKyAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBpbWFnZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zv
cl9kYXRhKGJtcGRhdGEsIENBSVJPX0ZPUk1BVF9BUkdCMzIsIGJtcEluZm8uYm1XaWR0aCwgYm1w
SW5mby5ibUhlaWdodCwgLWJtcEluZm8uYm1XaWR0aEJ5dGVzKSk7CiAKLSAgICBjYWlyb190KiB0
YXJnZXRSZWYgPSBjYWlyb19jcmVhdGUoaW1hZ2UpOwotICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJv
eShpbWFnZSk7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRDYWlybyBnYyh0YXJnZXRSZWYpOworICAg
IEdyYXBoaWNzQ29udGV4dENhaXJvIGdjKGltYWdlLmdldCgpKTsKIAogICAgIEZsb2F0U2l6ZSBp
bWFnZVNpemUgPSBCaXRtYXBJbWFnZTo6c2l6ZSgpOwogICAgIGlmIChzaXplKQpAQCAtODMsOSAr
ODAsNiBAQCBib29sIEJpdG1hcEltYWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBj
b25zdCBJbnRTaXplKiBzaXplKQogICAgIGVsc2UKICAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0
KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBD
b21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKIAotICAgIC8vIERvIGNsZWFudXAKLSAgICBjYWly
b19kZXN0cm95KHRhcmdldFJlZik7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4ZjFkNmFiZGM5MmUuLjk2OTFhNTk1ZGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0wNy0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0NhaXJvXSBTaW1wbGlmeSBHcmFwaGljc0NvbnRleHRDYWlybyBjcmVhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBu
ZXcgR3JhcGhpY3NDb250ZXh0Q2Fpcm8gY29uc3RydWN0b3JzLgorCisgICAgICAgICogU2hhcmVk
L2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVh
YmxlQml0bWFwOjpjcmVhdGVHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9j
YWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9y
ZTo6aW5jb3Jwb3JhdGVVcGRhdGUpOgorCiAyMDIxLTA3LTAxICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIChSZS0pZW5hYmxlIEdyb3VwQWN0aXZpdGll
cyBhZnRlciB1cHN0cmVhbWluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2Fp
cm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8v
U2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCmluZGV4IDE3YjIwNDJkNWYzMi4uZWM1MWJjMjE2MDBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFw
Q2Fpcm8uY3BwCkBAIC01OSw4ICs1OSw3IEBAIHN0YXRpYyBpbmxpbmUgUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZyb21EYXRhKHZvaWQqIGRhdGEsIGNvbnN0IFdlCiBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dCgpCiB7CiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2UgPSBjcmVh
dGVDYWlyb1N1cmZhY2UoKTsKLSAgICBSZWZQdHI8Y2Fpcm9fdD4gYml0bWFwQ29udGV4dCA9IGFk
b3B0UmVmKGNhaXJvX2NyZWF0ZShpbWFnZS5nZXQoKSkpOwotICAgIHJldHVybiBtYWtlVW5pcXVl
PEdyYXBoaWNzQ29udGV4dENhaXJvPihiaXRtYXBDb250ZXh0LmdldCgpKTsKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRDYWlybz4oaW1hZ2UuZ2V0KCkpOwogfQogCiB2b2lk
IFNoYXJlYWJsZUJpdG1hcDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRQb2ludCYgZHN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKaW5kZXggNGY3
OGI1ZWI1Y2RiLi4wYjJmYzAwMTlmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb0ltcGwuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRl
eHRDYWlyby5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KIApAQCAt
ODMsOCArODIsNyBAQCB2b2lkIEJhY2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRhdGUoU2hhcmVh
YmxlQml0bWFwKiBiaXRtYXAsIGNvbnN0IFVwZGF0ZUluZm8mCiAKICAgICAvLyBQYWludCBhbGwg
dXBkYXRlIHJlY3RzLgogICAgIEludFBvaW50IHVwZGF0ZVJlY3RMb2NhdGlvbiA9IHVwZGF0ZUlu
Zm8udXBkYXRlUmVjdEJvdW5kcy5sb2NhdGlvbigpOwotICAgIFJlZlB0cjxjYWlyb190PiBjYWly
b0NvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUobV9iYWNrZW5kLT5zdXJmYWNlKCkpKTsK
LSAgICBHcmFwaGljc0NvbnRleHRDYWlybyBncmFwaGljc0NvbnRleHQoY2Fpcm9Db250ZXh0Lmdl
dCgpKTsKKyAgICBHcmFwaGljc0NvbnRleHRDYWlybyBncmFwaGljc0NvbnRleHQobV9iYWNrZW5k
LT5zdXJmYWNlKCkpOwogCiAgICAgLy8gV2hlbiBtX3dlYlBhZ2VQcm94eS5kcmF3c0JhY2tncm91
bmQoKSBpcyBmYWxzZSwgYml0bWFwIGNvbnRhaW5zIHRyYW5zcGFyZW50IHBhcnRzIGFzIGEgYmFj
a2dyb3VuZCBvZiB0aGUgd2VicGFnZS4KICAgICAvLyBGb3Igc3VjaCBjYXNlLCBiaXRtYXAgbXVz
dCBiZSBkcmF3biB1c2luZyBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSB0byBvdmVyd3JpdGUgdGhl
IGV4aXN0aW5nIHN1cmZhY2UuCg==
</data>
<flag name="review"
          id="454705"
          type_id="1"
          status="+"
          setter="zdobersek"
    />
          </attachment>
      

    </bug>

</bugzilla>