<?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>139128</bug_id>
          
          <creation_ts>2014-12-01 07:06:20 -0800</creation_ts>
          <short_desc>Implement parsing of motion path properties</short_desc>
          <delta_ts>2021-11-16 03:21:14 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>MOVED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>139127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>50167214</cc>
    
    <cc>dino</cc>
    
    <cc>kiet.ho</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tobi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1051436</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-12-01 07:06:20 -0800</bug_when>
    <thetext>Implement parsing of motion path properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051437</commentid>
    <comment_count>1</comment_count>
      <attachid>242308</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-12-01 07:09:45 -0800</bug_when>
    <thetext>Created attachment 242308
[WIP] Parsing of the long hand properties

This is a WIP patch. I am currently unsure if I will be able to continue working on the patch. If someone wants to pick it up, feel welcome to do so.

* motion-position will be renamed to motion-distance
* motion-rotate is currently not implemented even though I added parts of it in the patch already.
* no compiler flag added yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051438</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-12-01 07:12:54 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created attachment 242308 [details]
&gt; [WIP] Parsing of the long hand properties
&gt; 
&gt; This is a WIP patch. I am currently unsure if I will be able to continue
&gt; working on the patch. If someone wants to pick it up, feel welcome to do so.
&gt; 
&gt; * motion-position will be renamed to motion-distance
&gt; * motion-rotate is currently not implemented even though I added parts of it
&gt; in the patch already.
&gt; * no compiler flag added yet

I forgot to add the Adobe copyright and to mention that parsing/style computation (including path() function) of motion-path is complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108080</commentid>
    <comment_count>3</comment_count>
    <who name="yisibl">50167214</who>
    <bug_when>2015-07-08 20:22:11 -0700</bug_when>
    <thetext>Chrome has supported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239240</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2016-10-12 05:12:00 -0700</bug_when>
    <thetext>Basic shapes parsing for path() got implemented (for clip-path) already. So it is just about implementing the properties now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239666</commentid>
    <comment_count>5</comment_count>
    <who name="yisibl">50167214</who>
    <bug_when>2016-10-12 20:40:35 -0700</bug_when>
    <thetext>The CSS property names for Motion Path properties have changed.

Recent spec update:
https://drafts.fxtf.org/motion-1/
https://github.com/w3c/fxtf-drafts/pull/14

We have already shipped with the earlier names. For a period of time we can alias them to the new names.

motion-offset -&gt; offset-distance
motion-path -&gt; offset-path
motion-rotation -&gt; offset-rotation
motion -&gt; offset

See also:

https://bugs.chromium.org/p/chromium/issues/detail?id=637543
https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/uqDmsIj6zJY/cS-Vp_XG2oYJ</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610559</commentid>
    <comment_count>6</comment_count>
    <who name="Tobi Reif">tobi</who>
    <bug_when>2020-01-24 00:43:36 -0800</bug_when>
    <thetext>Will offset-path be fully supported? eg as used in https://codepen.io/michellebarker/pen/XWJyydY (that demo doesn&apos;t work in Safari). Then this page https://caniuse.com/#search=offset-path should get updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815423</commentid>
    <comment_count>7</comment_count>
    <who name="Kiet Ho">kiet.ho</who>
    <bug_when>2021-11-16 03:21:14 -0800</bug_when>
    <thetext>Moved to 233109.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242308</attachid>
            <date>2014-12-01 07:09:45 -0800</date>
            <delta_ts>2014-12-01 07:09:45 -0800</delta_ts>
            <desc>[WIP] Parsing of the long hand properties</desc>
            <filename>motion-path-parsing.patch</filename>
            <type>text/plain</type>
            <size>24953</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiNTdkMDBmLi5hOGE5Zjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTM0LDcgKzI1MzQsNyBAQAogCQk4M0MxRDQz
NDE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyMjE3OEQ1QUI0
MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggKi87IH07CiAJCTgzQzFE
NDM1MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyMzE3OEQ1QUI0MDAxNDFF
NjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oICovOyB9OwogCQk4M0MxRDQzNjE3OEQ1QUI1MDAx
NDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjQxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhT
ZWdNb3ZldG9SZWwuaCAqLzsgfTsKLQkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsg
fTsKKwkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyog
U1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0
ZVN0cmVhbUJ1aWxkZXIuY3BwICovOyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyog
U1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmggKi87IH07CiAJCTg0MTlEMkFDMTIwRDkyRkMwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDE5RDJBQTEyMEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJl
YW1Tb3VyY2UuY3BwICovOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2lj
U2hhcGVGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlv
bnMuY3BwCmluZGV4IDk2ZTE0ZGEuLjJmOWFmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFz
aWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVk
ZSAiUGFpci5oIgorI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjU3LDYgKzI1OCwxNSBAQCBQ
YXNzUmVmPEJhc2ljU2hhcGU+IGJhc2ljU2hhcGVGb3JWYWx1ZShjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiBjb252ZXJzaQogICAgICAgICBiYXNpY1NoYXBlID0gcmVjdC5yZWxlYXNl
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIENTU0Jhc2ljU2hhcGU6OkNTU0Jh
c2ljU2hhcGVQYXRoVHlwZTogeworICAgICAgICBjb25zdCBDU1NCYXNpY1NoYXBlUGF0aCYgcGF0
aFZhbHVlID0gZG93bmNhc3Q8Q1NTQmFzaWNTaGFwZVBhdGg+KCpiYXNpY1NoYXBlVmFsdWUpOwor
ICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZVBhdGg+IHBhdGggPSBCYXNpY1NoYXBlUGF0aDo6Y3Jl
YXRlKCk7CisKKyAgICAgICAgcGF0aC0+c2V0UGF0aERhdGEocGF0aFZhbHVlLnBhdGhEYXRhKCkt
PmNvcHkoKSk7CisKKyAgICAgICAgYmFzaWNTaGFwZSA9IHBhdGgucmVsZWFzZSgpOworICAgICAg
ICBicmVhazsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKaW5kZXggYTQ2ODM4Ni4uMDcxYzNmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCkBAIC0zMSw5ICszMSwxMSBAQAogCiAj
aW5jbHVkZSAiQ1NTQmFzaWNTaGFwZXMuaCIKIAorI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2lu
Y2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBv
b2wuaCIKICNpbmNsdWRlICJQYWlyLmgiCisjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdU
RjsKQEAgLTI3Nyw2ICsyNzksNDQgQEAgYm9vbCBDU1NCYXNpY1NoYXBlUG9seWdvbjo6ZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdAogICAgICAgICAmJiBjb21wYXJlQ1NT
VmFsdWVWZWN0b3I8Q1NTUHJpbWl0aXZlVmFsdWU+KG1fdmFsdWVzLCByaHMubV92YWx1ZXMpOwog
fQogCitzdGF0aWMgU3RyaW5nIGJ1aWxkUGF0aFN0cmluZyhjb25zdCBXaW5kUnVsZSYgd2luZFJ1
bGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBib3gpCit7CisgICAgU3RyaW5n
QnVpbGRlciByZXN1bHQ7CisgICAgY2hhciBldmVuT2RkT3BlbmluZ1tdID0gInBhdGgoZXZlbm9k
ZCwgIjsKKyAgICBjaGFyIG5vblplcm9PcGVuaW5nW10gPSAicGF0aCgiOworCisgICAgaWYgKHdp
bmRSdWxlID09IFJVTEVfRVZFTk9ERCkKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoZXZl
bk9kZE9wZW5pbmcpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwobm9u
WmVyb09wZW5pbmcpOworCisgICAgcmVzdWx0LmFwcGVuZChxdW90ZUNTU1N0cmluZyhwYXRoKSk7
CisgICAgcmVzdWx0LmFwcGVuZCgnKScpOworCisgICAgaWYgKGJveC5sZW5ndGgoKSkgeworICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoYm94KTsKKyAg
ICB9CisKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK1N0cmluZyBDU1NCYXNp
Y1NoYXBlUGF0aDo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHBhdGhTdHJpbmc7Cisg
ICAgYnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbShtX2J5dGVTdHJlYW0uZ2V0KCksIHBhdGhTdHJp
bmcsIFVuYWx0ZXJlZFBhcnNpbmcpOworCisgICAgcmV0dXJuIGJ1aWxkUGF0aFN0cmluZyhtX3dp
bmRSdWxlLCBwYXRoU3RyaW5nLCBtX3JlZmVyZW5jZUJveCA/IG1fcmVmZXJlbmNlQm94LT5jc3NU
ZXh0KCkgOiBTdHJpbmcoKSk7Cit9CisKK2Jvb2wgQ1NTQmFzaWNTaGFwZVBhdGg6OmVxdWFscyhj
b25zdCBDU1NCYXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKK3sKKyAgICBpZiAoIWlzPENTU0Jhc2lj
U2hhcGVQYXRoPihzaGFwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBm
YWxzZTsKK30KKwogc3RhdGljIGJvb2wgYnVpbGRJbnNldFJhZGlpKFZlY3RvcjxTdHJpbmc+JiBy
YWRpaSwgY29uc3QgU3RyaW5nJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBTdHJpbmcmIHRvcFJpZ2h0
UmFkaXVzLCBjb25zdCBTdHJpbmcmIGJvdHRvbVJpZ2h0UmFkaXVzLCBjb25zdCBTdHJpbmcmIGJv
dHRvbUxlZnRSYWRpdXMpCiB7CiAgICAgYm9vbCBzaG93Qm90dG9tTGVmdCA9IHRvcFJpZ2h0UmFk
aXVzICE9IGJvdHRvbUxlZnRSYWRpdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCmlu
ZGV4IDBjZWIyZjUuLjJhMjM2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NC
YXNpY1NoYXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCkBA
IC0zMSw2ICszMSw3IEBACiAjZGVmaW5lIENTU0Jhc2ljU2hhcGVzX2gKIAogI2luY2x1ZGUgIkNT
U1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKICNpbmNs
dWRlICJXaW5kUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
VHlwZUNhc3RzLmg+CkBAIC00NSw3ICs0Niw4IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTQmFzaWNT
aGFwZVBvbHlnb25UeXBlLAogICAgICAgICBDU1NCYXNpY1NoYXBlQ2lyY2xlVHlwZSwKICAgICAg
ICAgQ1NTQmFzaWNTaGFwZUVsbGlwc2VUeXBlLAotICAgICAgICBDU1NCYXNpY1NoYXBlSW5zZXRU
eXBlCisgICAgICAgIENTU0Jhc2ljU2hhcGVJbnNldFR5cGUsCisgICAgICAgIENTU0Jhc2ljU2hh
cGVQYXRoVHlwZSwKICAgICB9OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7
CkBAIC0xMjksNiArMTMxLDMxIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBtX2JvdHRvbUxlZnRSYWRpdXM7CiB9OwogCitjbGFzcyBDU1NCYXNpY1NoYXBlUGF0aCBm
aW5hbCA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NCYXNpY1NoYXBlUGF0aD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0Jhc2ljU2hhcGVQYXRoKTsgfQorCisgICAgdm9pZCBzZXRQYXRoRGF0YShzdGQ6OnVuaXF1ZV9w
dHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGJ5dGVTdHJlYW0pIHsgbV9ieXRlU3RyZWFtID0gV1RGOjpt
b3ZlKGJ5dGVTdHJlYW0pOyB9CisgICAgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGhEYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9ieXRlU3RyZWFtLmdldCgpOyB9CisKKyAgICB2b2lkIHNldFdp
bmRSdWxlKFdpbmRSdWxlIHcpIHsgbV93aW5kUnVsZSA9IHc7IH0KKyAgICBXaW5kUnVsZSB3aW5k
UnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZFJ1bGU7IH0KKworICAgIHZpcnR1YWwgU3RyaW5n
IGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0
IENTU0Jhc2ljU2hhcGUmKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBDU1NCYXNp
Y1NoYXBlUGF0aCgpCisgICAgICAgIDogbV93aW5kUnVsZShSVUxFX05PTlpFUk8pCisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Q1NTQmFzaWNTaGFwZVBhdGhUeXBlOyB9CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5
dGVTdHJlYW0+IG1fYnl0ZVN0cmVhbTsKKyAgICBXaW5kUnVsZSBtX3dpbmRSdWxlOworfTsKKwog
Y2xhc3MgQ1NTQmFzaWNTaGFwZUNpcmNsZSBmaW5hbCA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlQ2lyY2xlPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZUNpcmNsZSk7IH0KQEAgLTIy
NCw2ICsyNTEsNyBAQCBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0NTU19CQVNJQ19TSEFQRVMoQ1NTQmFzaWNTaGFwZUluc2V0KQogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19DU1NfQkFTSUNfU0hBUEVTKENTU0Jhc2ljU2hhcGVDaXJjbGUpCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0NTU19CQVNJQ19TSEFQRVMoQ1NTQmFzaWNTaGFwZUVsbGlwc2Up
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19CQVNJQ19TSEFQRVMoQ1NTQmFzaWNTaGFwZVBh
dGgpCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19CQVNJQ19TSEFQRVMoQ1NTQmFzaWNTaGFw
ZVBvbHlnb24pCiAKICNlbmRpZiAvLyBDU1NCYXNpY1NoYXBlc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDFhZDM0MWEu
LmE0N2VmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0xNzAsNiArMTcwLDkgQEAgc3RhdGljIGNvbnN0IENTU1Byb3Bl
cnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlNYXhXaWR0aCwK
ICAgICBDU1NQcm9wZXJ0eU1pbkhlaWdodCwKICAgICBDU1NQcm9wZXJ0eU1pbldpZHRoLAorICAg
IENTU1Byb3BlcnR5TW90aW9uUGF0aCwKKyAgICBDU1NQcm9wZXJ0eU1vdGlvblBvc2l0aW9uLAor
ICAgIENTU1Byb3BlcnR5TW90aW9uUm90YXRpb24sCiAgICAgQ1NTUHJvcGVydHlPcGFjaXR5LAog
ICAgIENTU1Byb3BlcnR5T3JwaGFucywKICAgICBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvciwKQEAg
LTMwMjMsNiArMzAyNiwxMyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0
cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5WToKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVl
Rm9yTGVuZ3RoKHN0eWxlLT5zdmdTdHlsZSgpLnkoKSwgc3R5bGUuZ2V0KCkpOwogCisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlNb3Rpb25QYXRoOgorICAgICAgICAgICAgcmV0dXJuIHNoYXBlUHJv
cGVydHlWYWx1ZShzdHlsZS5nZXQoKSwgc3R5bGUtPm1vdGlvblBhdGgoKSk7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlNb3Rpb25Qb3NpdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHlsZS0+bW90aW9uUG9zaXRpb24oKSk7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlNb3Rpb25Sb3RhdGlvbjoKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAg
ICAgIC8qIFVuaW1wbGVtZW50ZWQgQ1NTIDMgcHJvcGVydGllcyAoaW5jbHVkaW5nIENTUzMgc2hv
cnRoYW5kIHByb3BlcnRpZXMpICovCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlBbmltYXRpb246
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IGMxNDJjNjMuLjVmZjgyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiQ1NTTGluZUJveENvbnRhaW5WYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgi
CisjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgiCiAjaW5jbHVkZSAiQ1NT
UmVmbGVjdFZhbHVlLmgiCkBAIC0yOTQzLDYgKzI5NDQsMTYgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICBl
bHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VGb250VmFyaWFudExpZ2F0dXJlcyhpbXBvcnRh
bnQpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5TW90aW9uUGF0aDoKKyAg
ICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZU1vdGlvblBhdGgoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1vdGlvblBvc2l0aW9uOgorICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlNb3Rpb25Sb3RhdGlvbjoKKyAgICAgICAg
aWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlw
UGF0aDoKICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZUNsaXBQYXRoKCk7CiAgICAgICAgIGJy
ZWFrOwpAQCAtNjA1MCw2ICs2MDYxLDM4IEBAIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NT
UGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVQb2x5Z29uKENTU1BhcnNlclZhbHVlTGlzdCoKICAgICBy
ZXR1cm4gc2hhcGU7CiB9CiAKKworUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQYXJzZXI6
OnBhcnNlQmFzaWNTaGFwZVBhdGgoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKQoreworICAgIEFT
U0VSVChhcmdzKTsKKworICAgIHVuc2lnbmVkIHNpemUgPSBhcmdzLT5zaXplKCk7CisgICAgaWYg
KHNpemUgIT0gMSAmJiBzaXplICE9IDMpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
UmVmUHRyPENTU0Jhc2ljU2hhcGVQYXRoPiBzaGFwZSA9IENTU0Jhc2ljU2hhcGVQYXRoOjpjcmVh
dGUoKTsKKworICAgIENTU1BhcnNlclZhbHVlKiBhcmd1bWVudCA9IGFyZ3MtPmN1cnJlbnQoKTsK
KyAgICBpZiAoYXJndW1lbnQtPmlkID09IENTU1ZhbHVlRXZlbm9kZCB8fCBhcmd1bWVudC0+aWQg
PT0gQ1NTVmFsdWVOb256ZXJvKSB7CisgICAgICAgIHNoYXBlLT5zZXRXaW5kUnVsZShhcmd1bWVu
dC0+aWQgPT0gQ1NTVmFsdWVFdmVub2RkID8gUlVMRV9FVkVOT0REIDogUlVMRV9OT05aRVJPKTsK
KworICAgICAgICBpZiAoIWlzQ29tbWEoYXJncy0+bmV4dCgpKSkKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICBhcmd1bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICB9CisKKyAg
ICBpZiAoYXJndW1lbnQtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICBpZiAoIWJ1aWxkU1ZHUGF0aEJ5dGVT
dHJlYW1Gcm9tU3RyaW5nKGFyZ3VtZW50LT5zdHJpbmcsIGJ5dGVTdHJlYW0uZ2V0KCksIFVuYWx0
ZXJlZFBhcnNpbmcpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBzaGFwZS0+c2V0UGF0
aERhdGEoV1RGOjptb3ZlKGJ5dGVTdHJlYW0pKTsKKworICAgIGFyZ3MtPm5leHQoKTsKKyAgICBy
ZXR1cm4gc2hhcGU7Cit9CisKIHN0YXRpYyBib29sIGlzQm94VmFsdWUoQ1NTVmFsdWVJRCB2YWx1
ZUlkLCBDU1NQcm9wZXJ0eUlEIHByb3BJZCkKIHsKICAgICBzd2l0Y2ggKHZhbHVlSWQpIHsKQEAg
LTYwNjEsNyArNjEwNCw3IEBAIHN0YXRpYyBib29sIGlzQm94VmFsdWUoQ1NTVmFsdWVJRCB2YWx1
ZUlkLCBDU1NQcm9wZXJ0eUlEIHByb3BJZCkKICAgICBjYXNlIENTU1ZhbHVlRmlsbDoKICAgICBj
YXNlIENTU1ZhbHVlU3Ryb2tlOgogICAgIGNhc2UgQ1NTVmFsdWVWaWV3Qm94OgotICAgICAgICBy
ZXR1cm4gcHJvcElkID09IENTU1Byb3BlcnR5V2Via2l0Q2xpcFBhdGg7CisgICAgICAgIHJldHVy
biBwcm9wSWQgPT0gQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aCB8fCBwcm9wSWQgPT0gQ1NTUHJv
cGVydHlNb3Rpb25QYXRoOwogICAgIGRlZmF1bHQ6IGJyZWFrOwogICAgIH0KIApAQCAtNjA4Myw3
ICs2MTI2LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hh
cGVBbmRPckJveChDU1NQcm9wZXJ0eUlEIHByb3BJZCkKICAgICAgICAgdmFsdWVJZCA9IHZhbHVl
LT5pZDsKICAgICAgICAgaWYgKHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlv
biAmJiAhc2hhcGVGb3VuZCkgewogICAgICAgICAgICAgLy8gcGFyc2VCYXNpY1NoYXBlIGFscmVh
ZHkgYXNrcyBmb3IgdGhlIG5leHQgdmFsdWUgbGlzdCBpdGVtLgotICAgICAgICAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBzaGFwZVZhbHVlID0gcGFyc2VCYXNpY1NoYXBlKCk7CisgICAg
ICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNoYXBlVmFsdWUgPSBwYXJzZUJhc2lj
U2hhcGUocHJvcElkKTsKICAgICAgICAgICAgIGlmICghc2hhcGVWYWx1ZSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChzaGFwZVZhbHVl
LnJlbGVhc2VOb25OdWxsKCkpOwpAQCAtNjEzMCw2ICs2MTczLDIzIEBAIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IENTU1BhcnNlcjo6cGFyc2VTaGFwZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcElk
KQogfQogI2VuZGlmCiAKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VNb3Rp
b25QYXRoKCkKK3sKKyAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3Vy
cmVudCgpOworICAgIENTU1ZhbHVlSUQgdmFsdWVJZCA9IHZhbHVlLT5pZDsKKworICAgIGlmICh2
YWx1ZUlkID09IENTU1ZhbHVlTm9uZSkgeworICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOwor
ICAgICAgICByZXR1cm4gcGFyc2VWYWxpZFByaW1pdGl2ZSh2YWx1ZUlkLCB2YWx1ZSk7CisgICAg
fQorICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewor
ICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZSh2YWx1ZS0+c3RyaW5nLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7
CisgICAgfQorCisgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZUFuZE9yQm94KENTU1Byb3BlcnR5
TW90aW9uUGF0aCk7Cit9CisKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VD
bGlwUGF0aCgpCiB7CiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1
cnJlbnQoKTsKQEAgLTYxNDcsNyArNjIwNyw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1Bh
cnNlcjo6cGFyc2VDbGlwUGF0aCgpCiAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZUFuZE9yQm94
KENTU1Byb3BlcnR5V2Via2l0Q2xpcFBhdGgpOwogfQogCi1QYXNzUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZSgpCitQYXNzUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShDU1NQcm9wZXJ0eUlEIHByb3BJ
ZCkKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgp
OwogICAgIEFTU0VSVCh2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pOwpA
QCAtNjE2NSw2ICs2MjI1LDkgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUGFy
c2VyOjpwYXJzZUJhc2ljU2hhcGUoKQogICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZVBv
bHlnb24oYXJncyk7CiAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0
aW9uLT5uYW1lLCAiaW5zZXQoIikpCiAgICAgICAgIHNoYXBlID0gcGFyc2VCYXNpY1NoYXBlSW5z
ZXQoYXJncyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9u
LT5uYW1lLCAicGF0aCgiKQorICAgICAgICAmJiBwcm9wSWQgPT0gQ1NTUHJvcGVydHlNb3Rpb25Q
YXRoKQorICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZVBhdGgoYXJncyk7CiAKICAgICBp
ZiAoIXNoYXBlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApp
bmRleCBhMmE0NTBmLi43MzhhOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xODQsNyAr
MTg0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJz
ZUJhc2ljU2hhcGVBbmRPckJveChDU1NQcm9wZXJ0eUlEIHByb3BJZCk7Ci0gICAgUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VCYXNpY1NoYXBlKCk7CisgICAgUGFzc1JlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VCYXNpY1NoYXBlKENTU1Byb3BlcnR5SUQgcHJvcElkKTsK
ICAgICBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZVNoYXBlUmFkaXVzKENTU1Bh
cnNlclZhbHVlKik7CiAgICAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hh
cGVSZWN0YW5nbGUoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAgICAgUGFzc1JlZlB0cjxDU1NCYXNp
Y1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVDaXJjbGUoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CkBAIC0x
OTIsNiArMTkyLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFy
c2VCYXNpY1NoYXBlRWxsaXBzZShDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKICAgICBQYXNzUmVmUHRy
PENTU0Jhc2ljU2hhcGU+IHBhcnNlRGVwcmVjYXRlZEJhc2ljU2hhcGVFbGxpcHNlKENTU1BhcnNl
clZhbHVlTGlzdCopOwogICAgIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFyc2VCYXNpY1No
YXBlUG9seWdvbihDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKKyAgICBQYXNzUmVmUHRyPENTU0Jhc2lj
U2hhcGU+IHBhcnNlQmFzaWNTaGFwZVBhdGgoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAgICAgUGFz
c1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZShDU1NQ
YXJzZXJWYWx1ZUxpc3QqKTsKICAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFz
aWNTaGFwZUluc2V0KENTU1BhcnNlclZhbHVlTGlzdCopOwogCkBAIC0yNjMsNiArMjY0LDcgQEAg
cHVibGljOgogICAgIGJvb2wgcGFyc2VGaWx0ZXIoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgUmVmUHRy
PENTU1ZhbHVlPiYpOwogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IHBhcnNl
QnVpbHRpbkZpbHRlckFyZ3VtZW50cyhDU1NQYXJzZXJWYWx1ZUxpc3QqLCBXZWJLaXRDU1NGaWx0
ZXJWYWx1ZTo6RmlsdGVyT3BlcmF0aW9uVHlwZSk7CiAKKyAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZU1vdGlvblBhdGgoKTsKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUNsaXBQ
YXRoKCk7CiAKICAgICBzdGF0aWMgYm9vbCBpc0JsZW5kTW9kZShDU1NWYWx1ZUlEKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggNGVlODI1NC4uNzNiYjRkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTE5Myw2ICsxOTMsOSBAQCBt
YXgtaGVpZ2h0IFtOZXdTdHlsZUJ1aWxkZXIsIEluaXRpYWw9aW5pdGlhbE1heFNpemUsIENvbnZl
cnRlcj1MZW5ndGhNYXhTaXppbmddCiBtYXgtd2lkdGggW05ld1N0eWxlQnVpbGRlciwgSW5pdGlh
bD1pbml0aWFsTWF4U2l6ZSwgQ29udmVydGVyPUxlbmd0aE1heFNpemluZ10KIG1pbi1oZWlnaHQg
W05ld1N0eWxlQnVpbGRlciwgSW5pdGlhbD1pbml0aWFsTWluU2l6ZSwgQ29udmVydGVyPUxlbmd0
aFNpemluZ10KIG1pbi13aWR0aCBbTmV3U3R5bGVCdWlsZGVyLCBJbml0aWFsPWluaXRpYWxNaW5T
aXplLCBDb252ZXJ0ZXI9TGVuZ3RoU2l6aW5nXQorbW90aW9uLXBhdGggW05ld1N0eWxlQnVpbGRl
ciwgQ3VzdG9tPVZhbHVlXQorbW90aW9uLXBvc2l0aW9uIFtOZXdTdHlsZUJ1aWxkZXIsIENvbnZl
cnRlcj1MZW5ndGhdCittb3Rpb24tcm90YXRpb24KIG9iamVjdC1maXQgW05ld1N0eWxlQnVpbGRl
ciwgVHlwZU5hbWU9T2JqZWN0Rml0XQogb3BhY2l0eSBbTmV3U3R5bGVCdWlsZGVyLCBUeXBlTmFt
ZT1mbG9hdF0KIC8vIEhvbm9yIC13ZWJraXQtb3BhY2l0eSBhcyBhIHN5bm9ueW0gZm9yIG9wYWNp
dHkuIFRoaXMgd2FzIHRoZSBvbmx5IHN5bnRheCB0aGF0IHdvcmtlZCBpbiBTYWZhcmkgMS4xLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCmluZGV4IDZkOTMwYjYuLjk0ZDZm
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTExNiw2ICsx
MTYsMzQgQEAgaW5saW5lIHZvaWQgYXBwbHlWYWx1ZVpvb20oU3R5bGVSZXNvbHZlciYgc3R5bGVS
ZXNvbHZlciwgQ1NTVmFsdWUmIHZhbHVlKQogICAgIH0KIH0KIAoraW5saW5lIHZvaWQgYXBwbHlW
YWx1ZU1vdGlvblBhdGgoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUmIHZh
bHVlKQoreworICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7CisgICAgICAg
IGlmIChkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpLmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZU5vbmUpCisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldE1vdGlv
blBhdGgobnVsbHB0cik7CisgICAgfSBlbHNlIGlmIChpczxDU1NWYWx1ZUxpc3Q+KHZhbHVlKSkg
eworICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGU7CisgICAgICAgIENTU0JveFR5cGUg
cmVmZXJlbmNlQm94ID0gQm94TWlzc2luZzsKKyAgICAgICAgZm9yIChhdXRvJiBjdXJyZW50VmFs
dWUgOiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KHZhbHVlKSkgeworICAgICAgICAgICAgQ1NTUHJp
bWl0aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+
KGN1cnJlbnRWYWx1ZS5nZXQoKSk7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUuaXNT
aGFwZSgpKQorICAgICAgICAgICAgICAgIHNoYXBlID0gYmFzaWNTaGFwZUZvclZhbHVlKHN0eWxl
UmVzb2x2ZXIuc3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCksIHByaW1pdGl2ZVZh
bHVlLmdldFNoYXBlVmFsdWUoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1
ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb250ZW50Qm94CisgICAgICAgICAgICAgICAgfHwg
cHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQm9yZGVyQm94CisgICAgICAg
ICAgICAgICAgfHwgcHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlUGFkZGlu
Z0JveAorICAgICAgICAgICAgICAgIHx8IHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZU1hcmdpbkJveCkKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VCb3ggPSBDU1NCb3hU
eXBlKHByaW1pdGl2ZVZhbHVlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2hhcGUpCisgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLnN0eWxlKCktPnNldE1vdGlvblBhdGgoU2hhcGVWYWx1ZTo6Y3JlYXRlU2hhcGVW
YWx1ZShzaGFwZS5yZWxlYXNlKCksIHJlZmVyZW5jZUJveCkpOworICAgICAgICBlbHNlIGlmIChy
ZWZlcmVuY2VCb3ggIT0gQm94TWlzc2luZykKKyAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5
bGUoKS0+c2V0TW90aW9uUGF0aChTaGFwZVZhbHVlOjpjcmVhdGVCb3hTaGFwZVZhbHVlKHJlZmVy
ZW5jZUJveCkpOworICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogaW5saW5lIHZv
aWQgYXBwbHlWYWx1ZVdlYmtpdFNoYXBlT3V0c2lkZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29s
dmVyLCBDU1NWYWx1ZSYgdmFsdWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
aW5kZXggOGNjN2EzMS4uZTk2YmM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cApAQCAtMzAxNSw2ICszMDE1LDkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5
KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICBjYXNlIENTU1Byb3BlcnR5
TWF4V2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbkhlaWdodDoKICAgICBjYXNlIENTU1By
b3BlcnR5TWluV2lkdGg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1vdGlvblBhdGg6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU1vdGlvblBvc2l0aW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlNb3Rpb25S
b3RhdGlvbjoKICAgICBjYXNlIENTU1Byb3BlcnR5T2JqZWN0Rml0OgogICAgIGNhc2UgQ1NTUHJv
cGVydHlPcGFjaXR5OgogICAgIGNhc2UgQ1NTUHJvcGVydHlPcnBoYW5zOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmlu
ZGV4IGE5NzdhZGIuLmVkNDU0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTEyMTIsNiArMTIxMiw5IEBA
IENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFw
cGVyTWFwKCkKIAogICAgICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVyPExlbmd0aEJveD4o
Q1NTUHJvcGVydHlDbGlwLCAmUmVuZGVyU3R5bGU6OmNsaXAsICZSZW5kZXJTdHlsZTo6c2V0Q2xp
cCksCiAKKyAgICAgICAgbmV3IExlbmd0aFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENTU1Byb3Bl
cnR5TW90aW9uUG9zaXRpb24sICZSZW5kZXJTdHlsZTo6bW90aW9uUG9zaXRpb24sICZSZW5kZXJT
dHlsZTo6c2V0TW90aW9uUG9zaXRpb24pLAorCisKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBl
ckFjY2VsZXJhdGVkT3BhY2l0eSgpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxl
cmF0ZWRUcmFuc2Zvcm0oKSwKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVk
RmlsdGVyKCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFz
aWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVz
LmNwcAppbmRleCA2Yzk4NTY4Li4wOGRiMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJG
bG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVk
ZSAiUGF0aC5oIgorI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjY0LDQgKzI2NSwyMCBAQCBQYXNz
UmVmPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVJbnNldDo6YmxlbmQoY29uc3QgQmFzaWNTaGFwZSYg
b3RoZXIsIGRvdWJsZSBwcm9ncgogCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlTm9uTnVsbCgp
OwogfQorCit2b2lkIEJhc2ljU2hhcGVQYXRoOjpwYXRoKFBhdGgmIHBhdGgsIGNvbnN0IEZsb2F0
UmVjdCYpCit7CisgICAgQVNTRVJUKHBhdGguaXNFbXB0eSgpKTsKKyAgICBidWlsZFBhdGhGcm9t
Qnl0ZVN0cmVhbShtX2J5dGVTdHJlYW0uZ2V0KCksIHBhdGgpOworfQorCitQYXNzUmVmPEJhc2lj
U2hhcGU+IEJhc2ljU2hhcGVQYXRoOjpibGVuZChjb25zdCBCYXNpY1NoYXBlJiBvdGhlciwgZG91
YmxlKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgb3IgdXNlZCB5ZXQu
CisgICAgQVNTRVJUKHR5cGUoKSA9PSBvdGhlci50eXBlKCkpOworCisgICAgUmVmUHRyPEJhc2lj
U2hhcGVQYXRoPiByZXN1bHQgPSAgQmFzaWNTaGFwZVBhdGg6OmNyZWF0ZSgpOworCisgICAgcmV0
dXJuIHJlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOworfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAppbmRleCA0OTQ4ZGYxLi40NDFlZmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaApAQCAtMzIsNiArMzIs
NyBAQAogCiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAjaW5jbHVkZSAiTGVuZ3RoU2l6ZS5oIgorI2lu
Y2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFu
dHMuaCIKICNpbmNsdWRlICJXaW5kUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC01Myw3ICs1NCw4IEBAIHB1YmxpYzoKICAgICAgICAgQmFzaWNTaGFwZVBvbHlnb25UeXBl
LAogICAgICAgICBCYXNpY1NoYXBlQ2lyY2xlVHlwZSwKICAgICAgICAgQmFzaWNTaGFwZUVsbGlw
c2VUeXBlLAotICAgICAgICBCYXNpY1NoYXBlSW5zZXRUeXBlCisgICAgICAgIEJhc2ljU2hhcGVJ
bnNldFR5cGUsCisgICAgICAgIEJhc2ljU2hhcGVQYXRoVHlwZQogICAgIH07CiAKICAgICBib29s
IGNhbkJsZW5kKGNvbnN0IEJhc2ljU2hhcGUmKSBjb25zdDsKQEAgLTI2Niw2ICsyNjgsMjggQEAg
cHJpdmF0ZToKICAgICBMZW5ndGhTaXplIG1fYm90dG9tTGVmdFJhZGl1czsKIH07CiAKK2NsYXNz
IEJhc2ljU2hhcGVQYXRoIGZpbmFsIDogcHVibGljIEJhc2ljU2hhcGUgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEJhc2ljU2hhcGVQYXRoPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgQmFzaWNTaGFwZVBhdGgpOyB9CisKKyAgICB2b2lkIHNldFdpbmRSdWxlKFdpbmRS
dWxlIHdpbmRSdWxlKSB7IG1fd2luZFJ1bGUgPSB3aW5kUnVsZTsgfQorICAgIHZvaWQgc2V0UGF0
aERhdGEoc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBieXRlU3RyZWFtKSB7IG1f
Ynl0ZVN0cmVhbSA9IFdURjo6bW92ZShieXRlU3RyZWFtKTsgfQorCisgICAgdmlydHVhbCB2b2lk
IHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFz
c1JlZjxCYXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlJiwgZG91YmxlKSBjb25zdCBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgV2luZFJ1bGUgd2luZFJ1bGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3dpbmRSdWxlOyB9CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIEJhc2ljU2hhcGVQYXRoVHlwZTsgfQorcHJpdmF0ZToKKyAgICBC
YXNpY1NoYXBlUGF0aCgpCisgICAgICAgIDogbV93aW5kUnVsZShSVUxFX05PTlpFUk8pCisgICAg
eyB9CisKKyAgICBXaW5kUnVsZSBtX3dpbmRSdWxlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQ
YXRoQnl0ZVN0cmVhbT4gbV9ieXRlU3RyZWFtOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkFTSUNfU0hBUEUoVG9WYWx1ZVR5
cGVOYW1lLCBwcmVkaWNhdGUpIFwKQEAgLTI3Nyw1ICszMDEsNiBAQCBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0JBU0lDX1NIQVBFKEJhc2ljU2hhcGVDaXJjbGUsIEJhc2ljU2hhcGU6OkJhc2ljU2hh
cGVDaXJjbAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CQVNJQ19TSEFQRShCYXNpY1NoYXBlRWxs
aXBzZSwgQmFzaWNTaGFwZTo6QmFzaWNTaGFwZUVsbGlwc2VUeXBlKQogU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19CQVNJQ19TSEFQRShCYXNpY1NoYXBlUG9seWdvbiwgQmFzaWNTaGFwZTo6QmFzaWNT
aGFwZVBvbHlnb25UeXBlKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CQVNJQ19TSEFQRShCYXNp
Y1NoYXBlSW5zZXQsIEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVJbnNldFR5cGUpCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0JBU0lDX1NIQVBFKEJhc2ljU2hhcGVQYXRoLCBCYXNpY1NoYXBlOjpCYXNp
Y1NoYXBlUGF0aFR5cGUpCiAKICNlbmRpZiAvLyBCYXNpY1NoYXBlc19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDk3OGI3ZTQuLjFlNWJlMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0x
MTM0LDYgKzExMzQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNCYWNrZHJvcEZpbHRlcigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgIGNvbnN0IExlbmd0aCYgbW90aW9u
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tb3Rpb25Q
b3NpdGlvbjsgfQorICAgIHZvaWQgc2V0TW90aW9uUG9zaXRpb24oTGVuZ3RoIHBvc2l0aW9uKSB7
IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbW90aW9uUG9zaXRpb24sIHBvc2l0aW9u
KTsgfQorCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICBCbGVuZE1vZGUgYmxlbmRN
b2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QmxlbmRNb2RlPihyYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUpOyB9CiAgICAgdm9pZCBzZXRCbGVuZE1vZGUo
QmxlbmRNb2RlIGJsZW5kTW9kZSkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX2Vm
ZmVjdGl2ZUJsZW5kTW9kZSwgYmxlbmRNb2RlKTsgfQpAQCAtMTY5Myw2ICsxNjk2LDE0IEBAIHB1
YmxpYzoKICAgICBTVkdMZW5ndGgga2VybmluZygpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCku
a2VybmluZygpOyB9CiAgICAgdm9pZCBzZXRLZXJuaW5nKFNWR0xlbmd0aCBrKSB7IGFjY2Vzc1NW
R1N0eWxlKCkuc2V0S2VybmluZyhrKTsgfQogCisgICAgdm9pZCBzZXRNb3Rpb25QYXRoKFBhc3NS
ZWZQdHI8U2hhcGVWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICBpZiAocmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fbW90aW9uUGF0aCA9PSB2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbW90aW9uUGF0aCA9IHZhbHVl
OworICAgIH0KKyAgICBTaGFwZVZhbHVlKiBtb3Rpb25QYXRoKCkgY29uc3QgeyByZXR1cm4gcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fbW90aW9uUGF0aC5nZXQoKTsgfQorCiAjaWYgRU5BQkxFKENT
U19TSEFQRVMpCiAgICAgdm9pZCBzZXRTaGFwZU91dHNpZGUoUGFzc1JlZlB0cjxTaGFwZVZhbHVl
PiB2YWx1ZSkKICAgICB7CkBAIC0xNzAyLDYgKzE3MTMsOSBAQCBwdWJsaWM6CiAgICAgfQogICAg
IFNoYXBlVmFsdWUqIHNoYXBlT3V0c2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3NoYXBlT3V0c2lkZS5nZXQoKTsgfQogCisgICAgc3RhdGljIFNoYXBlVmFsdWUq
IGluaXRpYWxNb3Rpb25QYXRoKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBMZW5ndGggaW5p
dGlhbE1vdGlvblBvc2l0aW9uKCkgeyByZXR1cm4gTGVuZ3RoKDAsIEZpeGVkKTsgfQorCiAgICAg
c3RhdGljIFNoYXBlVmFsdWUqIGluaXRpYWxTaGFwZU91dHNpZGUoKSB7IHJldHVybiAwOyB9CiAK
ICAgICBjb25zdCBMZW5ndGgmIHNoYXBlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fc2hhcGVNYXJnaW47IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRl
eCBjNTI0YTBhLi5jZGQ2NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02MCw2ICs2
MCw4IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEoKQogICAgICwgbV9zY3JvbGxTbmFwUG9pbnRzKFN0eWxlU2Nyb2xsU25hcFBvaW50czo6Y3Jl
YXRlKCkpCiAjZW5kaWYKICAgICAsIG1fbWFzayhGaWxsTGF5ZXIoTWFza0ZpbGxMYXllcikpCisg
ICAgLCBtX21vdGlvblBhdGgoUmVuZGVyU3R5bGU6OmluaXRpYWxNb3Rpb25QYXRoKCkpCisgICAg
LCBtX21vdGlvblBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsU2hhcGVNYXJnaW4oKSkKICAg
ICAsIG1fcGFnZVNpemUoKQogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgICwgbV9zaGFwZU91
dHNpZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxTaGFwZU91dHNpZGUoKSkKQEAgLTE0MCw2ICsxNDIs
OCBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgbV90cmFuc2l0aW9ucyhvLm1fdHJh
bnNpdGlvbnMgPyBzdGQ6Om1ha2VfdW5pcXVlPEFuaW1hdGlvbkxpc3Q+KCpvLm1fdHJhbnNpdGlv
bnMpIDogbnVsbHB0cikKICAgICAsIG1fbWFzayhvLm1fbWFzaykKICAgICAsIG1fbWFza0JveElt
YWdlKG8ubV9tYXNrQm94SW1hZ2UpCisgICAgLCBtX21vdGlvblBhdGgoby5tX21vdGlvblBhdGgp
CisgICAgLCBtX21vdGlvblBvc2l0aW9uKG8ubV9tb3Rpb25Qb3NpdGlvbikKICAgICAsIG1fcGFn
ZVNpemUoby5tX3BhZ2VTaXplKQogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgICwgbV9zaGFw
ZU91dHNpZGUoby5tX3NoYXBlT3V0c2lkZSkKQEAgLTIzOCw2ICsyNDIsOCBAQCBib29sIFN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YSYgbykgYwogICAgICAgICAmJiB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQobykKICAg
ICAgICAgJiYgbV9tYXNrID09IG8ubV9tYXNrCiAgICAgICAgICYmIG1fbWFza0JveEltYWdlID09
IG8ubV9tYXNrQm94SW1hZ2UKKyAgICAgICAgJiYgbV9tb3Rpb25QYXRoID09IG8ubV9tb3Rpb25Q
YXRoCisgICAgICAgICYmIG1fbW90aW9uUG9zaXRpb24gPT0gby5tX21vdGlvblBvc2l0aW9uCiAg
ICAgICAgICYmIG1fcGFnZVNpemUgPT0gby5tX3BhZ2VTaXplCiAjaWYgRU5BQkxFKENTU19TSEFQ
RVMpCiAgICAgICAgICYmIG1fc2hhcGVPdXRzaWRlID09IG8ubV9zaGFwZU91dHNpZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCmluZGV4IGRmMGJlYjYuLjBiZGEyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aApAQCAtMTQ5LDYgKzE0OSw5IEBAIHB1YmxpYzoKICAgICBGaWxsTGF5ZXIgbV9tYXNrOwogICAg
IE5pbmVQaWVjZUltYWdlIG1fbWFza0JveEltYWdlOwogCisgICAgUmVmUHRyPFNoYXBlVmFsdWU+
IG1fbW90aW9uUGF0aDsKKyAgICBMZW5ndGggbV9tb3Rpb25Qb3NpdGlvbjsKKwogICAgIExlbmd0
aFNpemUgbV9wYWdlU2l6ZTsKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>