<?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>186501</bug_id>
          
          <creation_ts>2018-06-11 04:39:34 -0700</creation_ts>
          <short_desc>[Web Animations] Make WPT test at interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html pass reliably</short_desc>
          <delta_ts>2018-07-11 09:40:33 -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>Animations</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=186509</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1431816</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-06-11 04:39:34 -0700</bug_when>
    <thetext>The WPT test at imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html is failing reliably, flaky or timing out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431817</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-11 04:39:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/41000224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441001</commentid>
    <comment_count>2</comment_count>
      <attachid>344728</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-07-10 16:02:52 -0700</bug_when>
    <thetext>Created attachment 344728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441003</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-10 16:05:42 -0700</bug_when>
    <thetext>Attachment 344728 did not pass style-queue:


ERROR: Source/WebCore/animation/KeyframeEffectReadOnly.cpp:178:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441073</commentid>
    <comment_count>4</comment_count>
      <attachid>344728</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-07-10 19:13:30 -0700</bug_when>
    <thetext>Comment on attachment 344728
Patch

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

&gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:293
&gt; +        // When calling processKeyframeLikeObject() with the &quot;allow lists&quot; flag set to false, the only alternatives
&gt; +        // we should expect are double and nullptr.

The only offset alternatives.

&gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:300
&gt; +        // When calling processKeyframeLikeObject() with the &quot;allow lists&quot; flag set to false, the only alternative
&gt; +        // we should expect is String.

The only easing alternative

&gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:305
&gt; +        // When calling processKeyframeLikeObject() with the &quot;allow lists&quot; flag set to false, the only alternatives
&gt; +        // we should expect are CompositeOperation and nullptr.

The only composite alternatives

&gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:325
&gt; +    RETURN_IF_EXCEPTION(scope, Exception { TypeError });

Why do you need this? Wouldn&apos;t the exception have been thrown in the inner scope (the forEach)? I don&apos;t think anything else could throw in this scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441160</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-07-11 08:54:09 -0700</bug_when>
    <thetext>Committed r233729: &lt;https://trac.webkit.org/changeset/233729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441165</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-07-11 09:34:44 -0700</bug_when>
    <thetext>Committed r233730: &lt;https://trac.webkit.org/changeset/233730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441167</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-07-11 09:40:33 -0700</bug_when>
    <thetext>Committed r233731: &lt;https://trac.webkit.org/changeset/233731&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344728</attachid>
            <date>2018-07-10 16:02:52 -0700</date>
            <delta_ts>2018-07-10 19:13:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186501-20180710160252.patch</filename>
            <type>text/plain</type>
            <size>21156</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZiZmJhNDkzZDg4MGE4
MGI4NGFjMWNmM2E3MzFhNzA3ODE0ZGI1ZC4uYjcyNGIyNmJlMmM3Y2M2NGJmNzQxMjhmNDkwYWJl
YzE2NGUyNTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE4LTA3LTEwICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBNYWtlIFdQVCB0ZXN0IGF0IGludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3QvcHJvY2Vzc2luZy1h
LWtleWZyYW1lcy1hcmd1bWVudC0wMDEuaHRtbCBwYXNzIHJlbGlhYmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY1MDEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQxMDAwMjI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZXJlIHdlcmUgdHdvIHJlbWFpbmluZyBhc3NlcnRpb25zIHRoYXQgd2Ug
d2VyZSBmYWlsaW5nIGluIHRoaXMgV1BUIHRlc3QgZmlsZSwgYm90aCByZWxhdGVkIHRvIHByb2Nl
c3NpbmcgaXRlcmFibGUga2V5ZnJhbWVzLgorICAgICAgICBUaGUgZmlyc3Qgb25lIHdhcyBmYWls
aW5nIGJlY2F1c2UgZGlkbid0IGNvcnJlY3RseSBwcm9wYWdhdGUgdGhlIFR5cGVFcnJvciBleGNl
cHRpb24gaW4gdGhlIGZvckVhY2hJbkl0ZXJhYmxlKCkgY2FsbGJhY2suIFRoZQorICAgICAgICBz
ZWNvbmQgb25lIHdhcyBmYWlsaW5nIGJlY2F1c2Ugd2UgZGlkbid0IHVzZSB0aGUgInByb2Nlc3Mg
YSBrZXlmcmFtZS1saWtlIG9iamVjdCIgcHJvY2VkdXJlIHdoZW4gcHJvY2Vzc2luZyBpdGVyYWJs
ZSBrZXlmcmFtZXMKKyAgICAgICAgYW5kLCBhcyBzdWNoLCB3ZSBkaWRuJ3QgY29ycmVjdGx5IHNv
cnQgcHJvcGVydHkgYWxwaGFiZXRpY2FsbHkgYmVmb3JlIHJlYWRpbmcgdGhlaXIgdmFsdWVzLgor
CisgICAgICAgIFRvIGZpeCB0aGlzIHNlY29uZCBpc3N1ZSwgd2UgbWFrZSBwcm9jZXNzSXRlcmFi
bGVLZXlmcmFtZXMoKSB1c2UgcHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdCgpLiBUbyBkbyBzbywg
d2UgdXBkYXRlIHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3QoKQorICAgICAgICB0byBhY2NlcHQg
YSBuZXcgYm9vbGVhbiBmbGFnIHRvIG1hdGNoIHRoZSAiYWxsb3cgbGlzdHMiIGZsYWcgZnJvbSB0
aGUgc3BlY2lmaWNhdGlvbi4gV2UgYWxzbyBlbnN1cmUgd2Ugc29ydCB0aGUgcHJvcGVydGllcyAq
YmVmb3JlKgorICAgICAgICByZWFkaW5nIGZyb20gdGhlbSB3aGljaCB3ZSBkaWRuJ3QgdXNlIHRv
IGRvIHByZXZpb3VzbHkuCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFk
T25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NJdGVyYWJsZUtleWZyYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpwcm9jZXNzUHJvcGVydHlJbmRleGVkS2V5ZnJhbWVzKToKKyAgICAgICAgKiBhbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5oOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdFJlYWRPbmx5LmlkbDoKKwogMjAxOC0wNy0xMCAgQWxlamFuZHJvIEcuIENhc3Ry
byAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFRoZSBMaWJXZWJSVENQ
cm92aWRlciBvYmplY3QgaW4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQyBpcyBu
b3QgbmVlZGVkIGFueW1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdFJlYWRPbmx5LmNwcAppbmRleCAzNjEyZjc3NDU1YTVjMTQwZDI3MTE4ZGUxNjY5
YjJhOTZhY2IyYmRmLi4zMTExODNhZDA2ZDE0YjY0YTUxNTIyYzkyODNhOWU4MmYxMmU5OGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25s
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9u
bHkuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiVGltaW5nRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJXaWxsQ2hh
bmdlRGF0YS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9VVUlELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE1NCw2MiArMTU1LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIGNvbXB1dGVNaXNzaW5nS2V5ZnJhbWVPZmZzZXRzKFZlY3Rv
cjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjoKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhj
ZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJhbWVzKEV4ZWNTdGF0ZSYgc3RhdGUs
IFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXNJbnB1dCwgSlNWYWx1ZSBtZXRob2QsIFZlY3Rv
cjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpQYXJzZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZyYW1l
cykKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIC8vIDEuIExldCBpdGVyIGJlIEdldEl0ZXJhdG9yKG9i
amVjdCwgbWV0aG9kKS4KLSAgICBmb3JFYWNoSW5JdGVyYWJsZShzdGF0ZSwga2V5ZnJhbWVzSW5w
dXQuZ2V0KCksIG1ldGhvZCwgWyZwYXJzZWRLZXlmcmFtZXNdKFZNJiB2bSwgRXhlY1N0YXRlJiBz
dGF0ZSwgSlNWYWx1ZSBuZXh0VmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAgICAg
aWYgKCFuZXh0VmFsdWUgfHwgIW5leHRWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotCi0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgICAgICBKU09iamVjdCoga2V5ZnJhbWUgPSBuZXh0
VmFsdWUudG9PYmplY3QoJnN0YXRlKTsKLSAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgb3duUHJv
cGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xN
b2RlOjpFeGNsdWRlKTsKLSAgICAgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoa2V5
ZnJhbWUsICZzdGF0ZSwgb3duUHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKCkpOwotICAg
ICAgICBzaXplX3QgbnVtYmVyT2ZQcm9wZXJ0aWVzID0gb3duUHJvcGVydHlOYW1lcy5zaXplKCk7
Ci0KLSAgICAgICAgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6UGFyc2VkS2V5ZnJhbWUga2V5ZnJh
bWVPdXRwdXQ7Ci0KLSAgICAgICAgU3RyaW5nIGVhc2luZygibGluZWFyIik7Ci0gICAgICAgIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiBvZmZzZXQ7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9z
aXRlT3BlcmF0aW9uPiBjb21wb3NpdGU7Ci0KLSAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGog
PCBudW1iZXJPZlByb3BlcnRpZXM7ICsraikgewotICAgICAgICAgICAgYXV0byBvd25Qcm9wZXJ0
eU5hbWUgPSBvd25Qcm9wZXJ0eU5hbWVzW2pdOwotICAgICAgICAgICAgaWYgKG93blByb3BlcnR5
TmFtZSA9PSAiZWFzaW5nIikKLSAgICAgICAgICAgICAgICBlYXNpbmcgPSBjb252ZXJ0PElETERP
TVN0cmluZz4oc3RhdGUsIGtleWZyYW1lLT5nZXQoJnN0YXRlLCBvd25Qcm9wZXJ0eU5hbWUpKTsK
LSAgICAgICAgICAgIGVsc2UgaWYgKG93blByb3BlcnR5TmFtZSA9PSAib2Zmc2V0IikKLSAgICAg
ICAgICAgICAgICBvZmZzZXQgPSBjb252ZXJ0PElETE51bGxhYmxlPElETERvdWJsZT4+KHN0YXRl
LCBrZXlmcmFtZS0+Z2V0KCZzdGF0ZSwgb3duUHJvcGVydHlOYW1lKSk7Ci0gICAgICAgICAgICBl
bHNlIGlmIChvd25Qcm9wZXJ0eU5hbWUgPT0gImNvbXBvc2l0ZSIpCi0gICAgICAgICAgICAgICAg
Y29tcG9zaXRlID0gY29udmVydDxJRExOdWxsYWJsZTxJRExFbnVtZXJhdGlvbjxDb21wb3NpdGVP
cGVyYXRpb24+Pj4oc3RhdGUsIGtleWZyYW1lLT5nZXQoJnN0YXRlLCBvd25Qcm9wZXJ0eU5hbWUp
KTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGF1dG8gY3NzUHJvcGVydHlJ
ZCA9IElETEF0dHJpYnV0ZU5hbWVUb0FuaW1hdGlvblByb3BlcnR5TmFtZShvd25Qcm9wZXJ0eU5h
bWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGlmIChDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6
aXNQcm9wZXJ0eUFuaW1hdGFibGUoY3NzUHJvcGVydHlJZCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgYXV0byBzdHJpbmdWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPihzdGF0ZSwga2V5ZnJh
bWUtPmdldCgmc3RhdGUsIG93blByb3BlcnR5TmFtZSkpOwotICAgICAgICAgICAgICAgICAgICBp
ZiAoa2V5ZnJhbWVPdXRwdXQuc3R5bGUtPnNldFByb3BlcnR5KGNzc1Byb3BlcnR5SWQsIHN0cmlu
Z1ZhbHVlKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lT3V0cHV0LnVucGFyc2Vk
U3R5bGUuc2V0KGNzc1Byb3BlcnR5SWQsIHN0cmluZ1ZhbHVlKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBF
eGNlcHRpb24geyBUeXBlRXJyb3IgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBrZXlmcmFtZU91
dHB1dC5lYXNpbmcgPSBlYXNpbmc7Ci0gICAgICAgIGtleWZyYW1lT3V0cHV0Lm9mZnNldCA9IG9m
ZnNldDsKLSAgICAgICAga2V5ZnJhbWVPdXRwdXQuY29tcG9zaXRlID0gY29tcG9zaXRlOwotCi0g
ICAgICAgIHBhcnNlZEtleWZyYW1lcy5hcHBlbmQoV1RGTW92ZShrZXlmcmFtZU91dHB1dCkpOwot
Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgRXhjZXB0aW9uIHsgVHlwZUVycm9yIH0pOwotCi0gICAgcmV0dXJuIHsgfTsKLX0KLQot
c3RhdGljIGlubGluZSBFeGNlcHRpb25PcjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpLZXlmcmFt
ZUxpa2VPYmplY3Q+IHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3QoRXhlY1N0YXRlJiBzdGF0ZSwg
U3Ryb25nPEpTT2JqZWN0PiYmIGtleWZyYW1lc0lucHV0KQorc3RhdGljIGlubGluZSBFeGNlcHRp
b25PcjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpLZXlmcmFtZUxpa2VPYmplY3Q+IHByb2Nlc3NL
ZXlmcmFtZUxpa2VPYmplY3QoRXhlY1N0YXRlJiBzdGF0ZSwgU3Ryb25nPEpTT2JqZWN0PiYmIGtl
eWZyYW1lc0lucHV0LCBib29sIGFsbG93TGlzdHMpCiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL3dlYi1hbmltYXRpb25zLTEvI3Byb2Nlc3MtYS1rZXlmcmFtZS1saWtlLW9iamVj
dAogCkBAIC0yMTgsMTQgKzE2NCwzOCBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPEtleWZy
YW1lRWZmZWN0UmVhZE9ubHk6OktleWZyYW1lTGlrZU9iamVjdD4gcHJvY2Vzc0tleQogCiAgICAg
Ly8gMS4gUnVuIHRoZSBwcm9jZWR1cmUgdG8gY29udmVydCBhbiBFQ01BU2NyaXB0IHZhbHVlIHRv
IGEgZGljdGlvbmFyeSB0eXBlIFtXRUJJRExdIHdpdGgga2V5ZnJhbWUgaW5wdXQgYXMgdGhlIEVD
TUFTY3JpcHQgdmFsdWUgYXMgZm9sbG93czoKICAgICAvLyAKKyAgICAvLyAgICBJZiBhbGxvdyBs
aXN0cyBpcyB0cnVlLCB1c2UgdGhlIGZvbGxvd2luZyBkaWN0aW9uYXJ5IHR5cGU6CisgICAgLy8K
ICAgICAvLyAgICBkaWN0aW9uYXJ5IEJhc2VQcm9wZXJ0eUluZGV4ZWRLZXlmcmFtZSB7Ci0gICAg
Ly8gICAgICAgIChkb3VibGU/IG9yIHNlcXVlbmNlPGRvdWJsZT8+KSAgICAgICAgICAgICAgICAg
ICAgICAgb2Zmc2V0ID0gW107Ci0gICAgLy8gICAgICAgIChET01TdHJpbmcgb3Igc2VxdWVuY2U8
RE9NU3RyaW5nPikgICAgICAgICAgICAgICAgICAgZWFzaW5nID0gW107CisgICAgLy8gICAgICAg
IChkb3VibGU/IG9yIHNlcXVlbmNlPGRvdWJsZT8+KSAgICAgICAgICAgICAgICAgICAgICAgICBv
ZmZzZXQgPSBbXTsKKyAgICAvLyAgICAgICAgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJp
bmc+KSAgICAgICAgICAgICAgICAgICAgIGVhc2luZyA9IFtdOwogICAgIC8vICAgICAgICAoQ29t
cG9zaXRlT3BlcmF0aW9uPyBvciBzZXF1ZW5jZTxDb21wb3NpdGVPcGVyYXRpb24/PikgY29tcG9z
aXRlID0gW107CiAgICAgLy8gICAgfTsKICAgICAvLworICAgIC8vICAgIE90aGVyd2lzZSwgdXNl
IHRoZSBmb2xsb3dpbmcgZGljdGlvbmFyeSB0eXBlOgorICAgIC8vCisgICAgLy8gICAgZGljdGlv
bmFyeSBCYXNlS2V5ZnJhbWUgeworICAgIC8vICAgICAgICBkb3VibGU/ICAgICAgICAgICAgIG9m
ZnNldCA9IG51bGw7CisgICAgLy8gICAgICAgIERPTVN0cmluZyAgICAgICAgICAgZWFzaW5nID0g
ImxpbmVhciI7CisgICAgLy8gICAgICAgIENvbXBvc2l0ZU9wZXJhdGlvbj8gY29tcG9zaXRlID0g
bnVsbDsKKyAgICAvLyAgICB9OworICAgIC8vCiAgICAgLy8gICAgU3RvcmUgdGhlIHJlc3VsdCBv
ZiB0aGlzIHByb2NlZHVyZSBhcyBrZXlmcmFtZSBvdXRwdXQuCi0gICAgYXV0byBiYXNlUHJvcGVy
dGllcyA9IGNvbnZlcnQ8SURMRGljdGlvbmFyeTxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpCYXNl
UHJvcGVydHlJbmRleGVkS2V5ZnJhbWU+PihzdGF0ZSwga2V5ZnJhbWVzSW5wdXQuZ2V0KCkpOwor
ICAgIEtleWZyYW1lRWZmZWN0OjpCYXNlUHJvcGVydHlJbmRleGVkS2V5ZnJhbWUgYmFzZVByb3Bl
cnRpZXM7CisgICAgaWYgKGFsbG93TGlzdHMpCisgICAgICAgIGJhc2VQcm9wZXJ0aWVzID0gY29u
dmVydDxJRExEaWN0aW9uYXJ5PEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OkJhc2VQcm9wZXJ0eUlu
ZGV4ZWRLZXlmcmFtZT4+KHN0YXRlLCBrZXlmcmFtZXNJbnB1dC5nZXQoKSk7CisgICAgZWxzZSB7
CisgICAgICAgIGF1dG8gYmFzZUtleWZyYW1lID0gY29udmVydDxJRExEaWN0aW9uYXJ5PEtleWZy
YW1lRWZmZWN0UmVhZE9ubHk6OkJhc2VLZXlmcmFtZT4+KHN0YXRlLCBrZXlmcmFtZXNJbnB1dC5n
ZXQoKSk7CisgICAgICAgIGlmIChiYXNlS2V5ZnJhbWUub2Zmc2V0KQorICAgICAgICAgICAgYmFz
ZVByb3BlcnRpZXMub2Zmc2V0ID0gYmFzZUtleWZyYW1lLm9mZnNldC52YWx1ZSgpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBiYXNlUHJvcGVydGllcy5vZmZzZXQgPSBudWxscHRyOworICAg
ICAgICBiYXNlUHJvcGVydGllcy5lYXNpbmcgPSBiYXNlS2V5ZnJhbWUuZWFzaW5nOworICAgICAg
ICBpZiAoYmFzZUtleWZyYW1lLmNvbXBvc2l0ZSkKKyAgICAgICAgICAgIGJhc2VQcm9wZXJ0aWVz
LmNvbXBvc2l0ZSA9IGJhc2VLZXlmcmFtZS5jb21wb3NpdGUudmFsdWUoKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgYmFzZVByb3BlcnRpZXMuY29tcG9zaXRlID0gbnVsbHB0cjsKKyAgICB9
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgVHlwZUVycm9yIH0p
OwogCiAgICAgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6S2V5ZnJhbWVMaWtlT2JqZWN0IGtleWZy
YW1lT3VwdXQ7CkBAIC0yNDQsNTQgKzIxNCwxMjMgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25P
cjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpLZXlmcmFtZUxpa2VPYmplY3Q+IHByb2Nlc3NLZXkK
IAogICAgIC8vIDQuIE1ha2UgdXAgYSBuZXcgbGlzdCBhbmltYXRpb24gcHJvcGVydGllcyB0aGF0
IGNvbnNpc3RzIG9mIGFsbCBvZiB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBpbiBib3RoIGlucHV0
IHByb3BlcnRpZXMgYW5kIGFuaW1hdGFibGUKICAgICAvLyAgICBwcm9wZXJ0aWVzLCBvciB3aGlj
aCBhcmUgaW4gaW5wdXQgcHJvcGVydGllcyBhbmQgY29uZm9ybSB0byB0aGUgPGN1c3RvbS1wcm9w
ZXJ0eS1uYW1lPiBwcm9kdWN0aW9uLgorICAgIFZlY3RvcjxKU0M6OklkZW50aWZpZXI+IGFuaW1h
dGlvblByb3BlcnRpZXM7CisgICAgc2l6ZV90IG51bWJlck9mUHJvcGVydGllcyA9IGlucHV0UHJv
cGVydGllcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZlByb3Bl
cnRpZXM7ICsraSkgeworICAgICAgICBpZiAoQ1NTUHJvcGVydHlBbmltYXRpb246OmlzUHJvcGVy
dHlBbmltYXRhYmxlKElETEF0dHJpYnV0ZU5hbWVUb0FuaW1hdGlvblByb3BlcnR5TmFtZShpbnB1
dFByb3BlcnRpZXNbaV0uc3RyaW5nKCkpKSkKKyAgICAgICAgICAgIGFuaW1hdGlvblByb3BlcnRp
ZXMuYXBwZW5kKGlucHV0UHJvcGVydGllc1tpXSk7CisgICAgfQogCiAgICAgLy8gNS4gU29ydCBh
bmltYXRpb24gcHJvcGVydGllcyBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgdGhlIFVuaWNvZGUgY29k
ZXBvaW50cyB0aGF0IGRlZmluZSBlYWNoIHByb3BlcnR5IG5hbWUuCi0gICAgLy8gICAgV2Ugb25s
eSBhY3R1YWxseSBwZXJmb3JtIHRoaXMgYWZ0ZXIgc3RlcCA2LgorICAgIHN0ZDo6c29ydChhbmlt
YXRpb25Qcm9wZXJ0aWVzLmJlZ2luKCksIGFuaW1hdGlvblByb3BlcnRpZXMuZW5kKCksIFtdKGF1
dG8mIGxocywgYXV0byYgcmhzKSB7CisgICAgICAgIHJldHVybiBsaHMuc3RyaW5nKCkudXRmOCgp
IDwgcmhzLnN0cmluZygpLnV0ZjgoKTsKKyAgICB9KTsKIAogICAgIC8vIDYuIEZvciBlYWNoIHBy
b3BlcnR5IG5hbWUgaW4gYW5pbWF0aW9uIHByb3BlcnRpZXMsCi0gICAgc2l6ZV90IG51bWJlck9m
UHJvcGVydGllcyA9IGlucHV0UHJvcGVydGllcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1iZXJPZlByb3BlcnRpZXM7ICsraSkgewotICAgICAgICBhdXRvIGNzc1Byb3Bl
cnR5SUQgPSBJRExBdHRyaWJ1dGVOYW1lVG9BbmltYXRpb25Qcm9wZXJ0eU5hbWUoaW5wdXRQcm9w
ZXJ0aWVzW2ldLnN0cmluZygpKTsKLSAgICAgICAgaWYgKCFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6
aXNQcm9wZXJ0eUFuaW1hdGFibGUoY3NzUHJvcGVydHlJRCkpCi0gICAgICAgICAgICBjb250aW51
ZTsKLQorICAgIHNpemVfdCBudW1iZXJPZkFuaW1hdGlvblByb3BlcnRpZXMgPSBhbmltYXRpb25Q
cm9wZXJ0aWVzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mQW5p
bWF0aW9uUHJvcGVydGllczsgKytpKSB7CiAgICAgICAgIC8vIDEuIExldCByYXcgdmFsdWUgYmUg
dGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBbW0dldF1dIGludGVybmFsIG1ldGhvZCBvbiBrZXlm
cmFtZSBpbnB1dCwgd2l0aCBwcm9wZXJ0eSBuYW1lIGFzIHRoZSBwcm9wZXJ0eQogICAgICAgICAv
LyAgICBrZXkgYW5kIGtleWZyYW1lIGlucHV0IGFzIHRoZSByZWNlaXZlci4KLSAgICAgICAgYXV0
byByYXdWYWx1ZSA9IGtleWZyYW1lc0lucHV0LT5nZXQoJnN0YXRlLCBpbnB1dFByb3BlcnRpZXNb
aV0pOworICAgICAgICBhdXRvIHJhd1ZhbHVlID0ga2V5ZnJhbWVzSW5wdXQtPmdldCgmc3RhdGUs
IGFuaW1hdGlvblByb3BlcnRpZXNbaV0pOwogCiAgICAgICAgIC8vIDIuIENoZWNrIHRoZSBjb21w
bGV0aW9uIHJlY29yZCBvZiByYXcgdmFsdWUuCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9KTsKIAogICAgICAgICAvLyAzLiBDb252ZXJ0
IHJhdyB2YWx1ZSB0byBhIERPTVN0cmluZyBvciBzZXF1ZW5jZSBvZiBET01TdHJpbmdzIHByb3Bl
cnR5IHZhbHVlcyBhcyBmb2xsb3dzOgogICAgICAgICBWZWN0b3I8U3RyaW5nPiBwcm9wZXJ0eVZh
bHVlczsKLSAgICAgICAgLy8gTGV0IHByb3BlcnR5IHZhbHVlcyBiZSB0aGUgcmVzdWx0IG9mIGNv
bnZlcnRpbmcgcmF3IHZhbHVlIHRvIElETCB0eXBlIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9N
U3RyaW5nPikKLSAgICAgICAgLy8gdXNpbmcgdGhlIHByb2NlZHVyZXMgZGVmaW5lZCBmb3IgY29u
dmVydGluZyBhbiBFQ01BU2NyaXB0IHZhbHVlIHRvIGFuIElETCB2YWx1ZSBbV0VCSURMXS4KLSAg
ICAgICAgLy8gSWYgcHJvcGVydHkgdmFsdWVzIGlzIGEgc2luZ2xlIERPTVN0cmluZywgcmVwbGFj
ZSBwcm9wZXJ0eSB2YWx1ZXMgd2l0aCBhIHNlcXVlbmNlIG9mIERPTVN0cmluZ3Mgd2l0aCB0aGUg
b3JpZ2luYWwgdmFsdWUgb2YgcHJvcGVydHkKLSAgICAgICAgLy8gVmFsdWVzIGFzIHRoZSBvbmx5
IGVsZW1lbnQuCi0gICAgICAgIGlmIChyYXdWYWx1ZS5pc1N0cmluZygpKQotICAgICAgICAgICAg
cHJvcGVydHlWYWx1ZXMgPSB7IHJhd1ZhbHVlLnRvV1RGU3RyaW5nKCZzdGF0ZSkgfTsKLSAgICAg
ICAgZWxzZSBpZiAocmF3VmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgICAgIHByb3BlcnR5VmFs
dWVzID0gY29udmVydDxJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+PihzdGF0ZSwgcmF3VmFsdWUp
OworICAgICAgICBpZiAoYWxsb3dMaXN0cykgeworICAgICAgICAgICAgLy8gSWYgYWxsb3cgbGlz
dHMgaXMgdHJ1ZSwKKyAgICAgICAgICAgIC8vIExldCBwcm9wZXJ0eSB2YWx1ZXMgYmUgdGhlIHJl
c3VsdCBvZiBjb252ZXJ0aW5nIHJhdyB2YWx1ZSB0byBJREwgdHlwZSAoRE9NU3RyaW5nIG9yIHNl
cXVlbmNlPERPTVN0cmluZz4pCisgICAgICAgICAgICAvLyB1c2luZyB0aGUgcHJvY2VkdXJlcyBk
ZWZpbmVkIGZvciBjb252ZXJ0aW5nIGFuIEVDTUFTY3JpcHQgdmFsdWUgdG8gYW4gSURMIHZhbHVl
IFtXRUJJRExdLgorICAgICAgICAgICAgLy8gSWYgcHJvcGVydHkgdmFsdWVzIGlzIGEgc2luZ2xl
IERPTVN0cmluZywgcmVwbGFjZSBwcm9wZXJ0eSB2YWx1ZXMgd2l0aCBhIHNlcXVlbmNlIG9mIERP
TVN0cmluZ3Mgd2l0aCB0aGUgb3JpZ2luYWwgdmFsdWUgb2YgcHJvcGVydHkKKyAgICAgICAgICAg
IC8vIFZhbHVlcyBhcyB0aGUgb25seSBlbGVtZW50LgorICAgICAgICAgICAgaWYgKHJhd1ZhbHVl
LmlzU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1ZXMgPSB7IHJhd1ZhbHVl
LnRvV1RGU3RyaW5nKCZzdGF0ZSkgfTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHJhd1ZhbHVlLmlz
T2JqZWN0KCkpCisgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1ZXMgPSBjb252ZXJ0PElETFNl
cXVlbmNlPElETERPTVN0cmluZz4+KHN0YXRlLCByYXdWYWx1ZSk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAvLyBPdGhlcndpc2UsCisgICAgICAgICAgICAvLyBMZXQgcHJvcGVydHkg
dmFsdWVzIGJlIHRoZSByZXN1bHQgb2YgY29udmVydGluZyByYXcgdmFsdWUgdG8gYSBET01TdHJp
bmcgdXNpbmcgdGhlIHByb2NlZHVyZSBmb3IgY29udmVydGluZyBhbiBFQ01BU2NyaXB0IHZhbHVl
IHRvIGEgRE9NU3RyaW5nLgorICAgICAgICAgICAgcHJvcGVydHlWYWx1ZXMgPSB7IGNvbnZlcnQ8
SURMRE9NU3RyaW5nPihzdGF0ZSwgcmF3VmFsdWUpIH07CisgICAgICAgIH0KICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgVHlwZUVycm9yIH0pOwogCiAgICAg
ICAgIC8vIDQuIENhbGN1bGF0ZSB0aGUgbm9ybWFsaXplZCBwcm9wZXJ0eSBuYW1lIGFzIHRoZSBy
ZXN1bHQgb2YgYXBwbHlpbmcgdGhlIElETCBhdHRyaWJ1dGUgbmFtZSB0byBhbmltYXRpb24gcHJv
cGVydHkgbmFtZSBhbGdvcml0aG0gdG8gcHJvcGVydHkgbmFtZS4KKyAgICAgICAgYXV0byBjc3NQ
cm9wZXJ0eUlEID0gSURMQXR0cmlidXRlTmFtZVRvQW5pbWF0aW9uUHJvcGVydHlOYW1lKGFuaW1h
dGlvblByb3BlcnRpZXNbaV0uc3RyaW5nKCkpOworCiAgICAgICAgIC8vIDUuIEFkZCBhIHByb3Bl
cnR5IHRvIHRvIGtleWZyYW1lIG91dHB1dCB3aXRoIG5vcm1hbGl6ZWQgcHJvcGVydHkgbmFtZSBh
cyB0aGUgcHJvcGVydHkgbmFtZSwgYW5kIHByb3BlcnR5IHZhbHVlcyBhcyB0aGUgcHJvcGVydHkg
dmFsdWUuCiAgICAgICAgIGtleWZyYW1lT3VwdXQucHJvcGVydGllc0FuZFZhbHVlcy5hcHBlbmQo
eyBjc3NQcm9wZXJ0eUlELCBwcm9wZXJ0eVZhbHVlcyB9KTsKICAgICB9CiAKLSAgICAvLyBOb3cg
d2UgY2FuIHBlcmZvcm0gc3RlcCA1LgotICAgIHN0ZDo6c29ydChrZXlmcmFtZU91cHV0LnByb3Bl
cnRpZXNBbmRWYWx1ZXMuYmVnaW4oKSwga2V5ZnJhbWVPdXB1dC5wcm9wZXJ0aWVzQW5kVmFsdWVz
LmVuZCgpLCBbXShhdXRvJiBsaHMsIGF1dG8mIHJocykgewotICAgICAgICByZXR1cm4gZ2V0UHJv
cGVydHlOYW1lU3RyaW5nKGxocy5wcm9wZXJ0eSkudXRmOCgpIDwgZ2V0UHJvcGVydHlOYW1lU3Ry
aW5nKHJocy5wcm9wZXJ0eSkudXRmOCgpOwotICAgIH0pOwotCiAgICAgLy8gNy4gUmV0dXJuIGtl
eWZyYW1lIG91dHB1dC4KICAgICByZXR1cm4geyBXVEZNb3ZlKGtleWZyYW1lT3VwdXQpIH07CiB9
CiAKK3N0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJh
bWVzKEV4ZWNTdGF0ZSYgc3RhdGUsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXNJbnB1dCwg
SlNWYWx1ZSBtZXRob2QsIFZlY3RvcjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpQYXJzZWRLZXlm
cmFtZT4mIHBhcnNlZEtleWZyYW1lcykKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOworICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIC8vIDEuIExldCBp
dGVyIGJlIEdldEl0ZXJhdG9yKG9iamVjdCwgbWV0aG9kKS4KKyAgICBmb3JFYWNoSW5JdGVyYWJs
ZShzdGF0ZSwga2V5ZnJhbWVzSW5wdXQuZ2V0KCksIG1ldGhvZCwgWyZwYXJzZWRLZXlmcmFtZXNd
KFZNJiB2bSwgRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSBuZXh0VmFsdWUpIC0+IEV4Y2VwdGlv
bk9yPHZvaWQ+IHsKKyAgICAgICAgLy8gU3RlcHMgMiB0aHJvdWdoIDYgYXJlIGFscmVhZHkgaW1w
bGVtZW50ZWQgYnkgZm9yRWFjaEluSXRlcmFibGUoKS4KKyAgICAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICBpZiAoIW5leHRWYWx1ZSB8fCAhbmV4dFZh
bHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2Nv
cGUsIEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0ZVR5cGVFcnJvcigmc3RhdGUpKSk7
CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisKKyAgICAgICAgLy8gNy4gQXBw
ZW5kIHRvIHByb2Nlc3NlZCBrZXlmcmFtZXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBwcm9j
ZWR1cmUgdG8gcHJvY2VzcyBhIGtleWZyYW1lLWxpa2Ugb2JqZWN0IHBhc3NpbmcgbmV4dEl0ZW0K
KyAgICAgICAgLy8gYXMgdGhlIGtleWZyYW1lIGlucHV0IGFuZCB3aXRoIHRoZSBhbGxvdyBsaXN0
cyBmbGFnIHNldCB0byBmYWxzZS4KKyAgICAgICAgYXV0byBwcm9jZXNzS2V5ZnJhbWVMaWtlT2Jq
ZWN0UmVzdWx0ID0gcHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdChzdGF0ZSwgU3Ryb25nPEpTT2Jq
ZWN0Pih2bSwgbmV4dFZhbHVlLnRvT2JqZWN0KCZzdGF0ZSkpLCBmYWxzZSk7CisgICAgICAgIGlm
IChwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3RSZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOworICAgICAgICBhdXRvIGtleWZyYW1lTGlrZU9iamVjdCA9IHByb2Nlc3NLZXlmcmFt
ZUxpa2VPYmplY3RSZXN1bHQucmV0dXJuVmFsdWUoKTsKKworICAgICAgICBLZXlmcmFtZUVmZmVj
dFJlYWRPbmx5OjpQYXJzZWRLZXlmcmFtZSBrZXlmcmFtZU91dHB1dDsKKworICAgICAgICAvLyBX
aGVuIGNhbGxpbmcgcHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdCgpIHdpdGggdGhlICJhbGxvdyBs
aXN0cyIgZmxhZyBzZXQgdG8gZmFsc2UsIHRoZSBvbmx5IGFsdGVybmF0aXZlcworICAgICAgICAv
LyB3ZSBzaG91bGQgZXhwZWN0IGFyZSBkb3VibGUgYW5kIG51bGxwdHIuCisgICAgICAgIGlmIChX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPGRvdWJsZT4oa2V5ZnJhbWVMaWtlT2JqZWN0LmJhc2VQcm9w
ZXJ0aWVzLm9mZnNldCkpCisgICAgICAgICAgICBrZXlmcmFtZU91dHB1dC5vZmZzZXQgPSBXVEY6
OmdldDxkb3VibGU+KGtleWZyYW1lTGlrZU9iamVjdC5iYXNlUHJvcGVydGllcy5vZmZzZXQpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxz
dGQ6Om51bGxwdHJfdD4oa2V5ZnJhbWVMaWtlT2JqZWN0LmJhc2VQcm9wZXJ0aWVzLm9mZnNldCkp
OworCisgICAgICAgIC8vIFdoZW4gY2FsbGluZyBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0KCkg
d2l0aCB0aGUgImFsbG93IGxpc3RzIiBmbGFnIHNldCB0byBmYWxzZSwgdGhlIG9ubHkgYWx0ZXJu
YXRpdmUKKyAgICAgICAgLy8gd2Ugc2hvdWxkIGV4cGVjdCBpcyBTdHJpbmcuCisgICAgICAgIEFT
U0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFN0cmluZz4oa2V5ZnJhbWVMaWtlT2JqZWN0LmJh
c2VQcm9wZXJ0aWVzLmVhc2luZykpOworICAgICAgICBrZXlmcmFtZU91dHB1dC5lYXNpbmcgPSBX
VEY6OmdldDxTdHJpbmc+KGtleWZyYW1lTGlrZU9iamVjdC5iYXNlUHJvcGVydGllcy5lYXNpbmcp
OworCisgICAgICAgIC8vIFdoZW4gY2FsbGluZyBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0KCkg
d2l0aCB0aGUgImFsbG93IGxpc3RzIiBmbGFnIHNldCB0byBmYWxzZSwgdGhlIG9ubHkgYWx0ZXJu
YXRpdmVzCisgICAgICAgIC8vIHdlIHNob3VsZCBleHBlY3QgYXJlIENvbXBvc2l0ZU9wZXJhdGlv
biBhbmQgbnVsbHB0ci4KKyAgICAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29tcG9z
aXRlT3BlcmF0aW9uPihrZXlmcmFtZUxpa2VPYmplY3QuYmFzZVByb3BlcnRpZXMuY29tcG9zaXRl
KSkKKyAgICAgICAgICAgIGtleWZyYW1lT3V0cHV0LmNvbXBvc2l0ZSA9IFdURjo6Z2V0PENvbXBv
c2l0ZU9wZXJhdGlvbj4oa2V5ZnJhbWVMaWtlT2JqZWN0LmJhc2VQcm9wZXJ0aWVzLmNvbXBvc2l0
ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPHN0ZDo6bnVsbHB0cl90PihrZXlmcmFtZUxpa2VPYmplY3QuYmFzZVByb3BlcnRpZXMuY29t
cG9zaXRlKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eUFuZFZhbHVlIDoga2V5ZnJh
bWVMaWtlT2JqZWN0LnByb3BlcnRpZXNBbmRWYWx1ZXMpIHsKKyAgICAgICAgICAgIGF1dG8gY3Nz
UHJvcGVydHlJZCA9IHByb3BlcnR5QW5kVmFsdWUucHJvcGVydHk7CisgICAgICAgICAgICAvLyBX
aGVuIGNhbGxpbmcgcHJvY2Vzc0tleWZyYW1lTGlrZU9iamVjdCgpIHdpdGggdGhlICJhbGxvdyBs
aXN0cyIgZmxhZyBzZXQgdG8gZmFsc2UsCisgICAgICAgICAgICAvLyB0aGVyZSBzaG91bGQgb25s
eSBldmVyIGJlIGEgc2luZ2xlIHZhbHVlIGZvciBhIGdpdmVuIHByb3BlcnR5LgorICAgICAgICAg
ICAgQVNTRVJUKHByb3BlcnR5QW5kVmFsdWUudmFsdWVzLnNpemUoKSA9PSAxKTsKKyAgICAgICAg
ICAgIGF1dG8gc3RyaW5nVmFsdWUgPSBwcm9wZXJ0eUFuZFZhbHVlLnZhbHVlc1swXTsKKyAgICAg
ICAgICAgIGlmIChrZXlmcmFtZU91dHB1dC5zdHlsZS0+c2V0UHJvcGVydHkoY3NzUHJvcGVydHlJ
ZCwgc3RyaW5nVmFsdWUpKQorICAgICAgICAgICAgICAgIGtleWZyYW1lT3V0cHV0LnVucGFyc2Vk
U3R5bGUuc2V0KGNzc1Byb3BlcnR5SWQsIHN0cmluZ1ZhbHVlKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHBhcnNlZEtleWZyYW1lcy5hcHBlbmQoV1RGTW92ZShrZXlmcmFtZU91dHB1dCkpOworCisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgRXhjZXB0aW9uIHsgVHlwZUVycm9yIH0pOworCisgICAgcmV0dXJuIHsgfTsKK30KKwogc3Rh
dGljIGlubGluZSBFeGNlcHRpb25Pcjx2b2lkPiBwcm9jZXNzUHJvcGVydHlJbmRleGVkS2V5ZnJh
bWVzKEV4ZWNTdGF0ZSYgc3RhdGUsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXNJbnB1dCwg
VmVjdG9yPEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OlBhcnNlZEtleWZyYW1lPiYgcGFyc2VkS2V5
ZnJhbWVzLCBWZWN0b3I8U3RyaW5nPiYgdW51c2VkRWFzaW5ncykKIHsKICAgICAvLyAxLiBMZXQg
cHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZSBiZSB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIHBy
b2NlZHVyZSB0byBwcm9jZXNzIGEga2V5ZnJhbWUtbGlrZSBvYmplY3QgcGFzc2luZyBvYmplY3Qg
YXMgdGhlIGtleWZyYW1lIGlucHV0LgotICAgIGF1dG8gcHJvY2Vzc0tleWZyYW1lTGlrZU9iamVj
dFJlc3VsdCA9IHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3Qoc3RhdGUsIFdURk1vdmUoa2V5ZnJh
bWVzSW5wdXQpKTsKKyAgICBhdXRvIHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3RSZXN1bHQgPSBw
cm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0KHN0YXRlLCBXVEZNb3ZlKGtleWZyYW1lc0lucHV0KSwg
dHJ1ZSk7CiAgICAgaWYgKHByb2Nlc3NLZXlmcmFtZUxpa2VPYmplY3RSZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBwcm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKTsKICAgICBhdXRvIHByb3BlcnR5SW5kZXhlZEtleWZyYW1lID0gcHJv
Y2Vzc0tleWZyYW1lTGlrZU9iamVjdFJlc3VsdC5yZXR1cm5WYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmgKaW5kZXggMTdjMzk2
NGJmMWNjMmNmZGNkNTM1NTljZGFmYjQ3ZDBjODRmNWEzMi4uMzIxYTdiYjQyMzFkZjNmN2E0ZmYy
NzMyMDE5NWIwYmU1MTM4NjEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
S2V5ZnJhbWVFZmZlY3RSZWFkT25seS5oCkBAIC01NSw2ICs1NSwxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPENvbXBvc2l0
ZU9wZXJhdGlvbj4+LCBDb21wb3NpdGVPcGVyYXRpb24+IGNvbXBvc2l0ZSA9IFZlY3RvcjxzdGQ6
Om9wdGlvbmFsPENvbXBvc2l0ZU9wZXJhdGlvbj4+KCk7CiAgICAgfTsKIAorICAgIHN0cnVjdCBC
YXNlS2V5ZnJhbWUgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gb2Zmc2V0OworICAg
ICAgICBTdHJpbmcgZWFzaW5nIHsgImxpbmVhciIgfTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxD
b21wb3NpdGVPcGVyYXRpb24+IGNvbXBvc2l0ZTsKKyAgICB9OworCiAgICAgc3RydWN0IFByb3Bl
cnR5QW5kVmFsdWVzIHsKICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eTsKICAgICAgICAg
VmVjdG9yPFN0cmluZz4gdmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaWRsIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaWRsCmluZGV4IGQ4ZWI2ODk5ZWE4MGU4NDY1NTgwYzA3
ZjlhNDI4ZjRjN2VmOTQ2ZmUuLjkyMjI4N2EwY2EyNGZkMWM3ODViMThhZDc5NWI0Nzg4MmY2ODVj
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFJl
YWRPbmx5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RS
ZWFkT25seS5pZGwKQEAgLTQ0LDYgKzQ0LDEyIEBAIGRpY3Rpb25hcnkgQmFzZVByb3BlcnR5SW5k
ZXhlZEtleWZyYW1lIHsKICAgICAoc2VxdWVuY2U8Q29tcG9zaXRlT3BlcmF0aW9uPz4gb3IgQ29t
cG9zaXRlT3BlcmF0aW9uPykgY29tcG9zaXRlID0gW107CiB9OwogCitkaWN0aW9uYXJ5IEJhc2VL
ZXlmcmFtZSB7CisgICAgZG91YmxlPyBvZmZzZXQgPSBudWxsOworICAgIERPTVN0cmluZyBlYXNp
bmcgPSAibGluZWFyIjsKKyAgICBDb21wb3NpdGVPcGVyYXRpb24/IGNvbXBvc2l0ZSA9IG51bGw7
Cit9OworCiBbCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKIF0gZGljdGlvbmFyeSBCYXNlQ29t
cHV0ZWRLZXlmcmFtZSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0ZGRlOTVm
ODNmNjFiZmRlYWVlMzMxODdmNDc4M2Q1MzliYTQ2MDRjLi4wNmY3MGQ3MDc2ODliNWQyNGM4MWEy
MDNiMTRjYjQ0NDlkOGZmOGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNy0xMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gTWFrZSBXUFQgdGVzdCBhdCBpbnRlcmZhY2Vz
L0tleWZyYW1lRWZmZWN0L3Byb2Nlc3NpbmctYS1rZXlmcmFtZXMtYXJndW1lbnQtMDAxLmh0bWwg
cGFzcyByZWxpYWJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg2NTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTAwMDIyND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIDIgbmV3IFdQVCBw
cm9ncmVzc2lvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlv
bnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9wcm9jZXNzaW5nLWEta2V5ZnJhbWVzLWFyZ3Vt
ZW50LTAwMS1leHBlY3RlZC50eHQ6CisKIDIwMTgtMDctMDkgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIE1ha2UgV1BUIHRlc3Qg
YXQgYW5pbWF0aW9uLW1vZGVsL2tleWZyYW1lLWVmZmVjdHMvZWZmZWN0LXZhbHVlLW92ZXJsYXBw
aW5nLWtleWZyYW1lcy5odG1sIHBhc3MgcmVsaWFibHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNl
cy9LZXlmcmFtZUVmZmVjdC9wcm9jZXNzaW5nLWEta2V5ZnJhbWVzLWFyZ3VtZW50LTAwMS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
Yi1hbmltYXRpb25zL2ludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3QvcHJvY2Vzc2luZy1hLWtleWZy
YW1lcy1hcmd1bWVudC0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IGY1YmZkYjE5MmRkYzMzZmFhNmQ5
N2FiZDkzNmJkYzM2YmVkNzY4OTkuLmU1YzUxZDQ1MmNjZWRjZjk5ODA5ZmQzMjE1NDcyYmI3ZWMw
ZDYxZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9wcm9jZXNzaW5n
LWEta2V5ZnJhbWVzLWFyZ3VtZW50LTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2Vz
L0tleWZyYW1lRWZmZWN0L3Byb2Nlc3NpbmctYS1rZXlmcmFtZXMtYXJndW1lbnQtMDAxLWV4cGVj
dGVkLnR4dApAQCAtNDIsMTggKzQyLDExIEBAIFBBU1MgS2V5ZnJhbWVzIGFyZSByZWFkIGZyb20g
YSBjdXN0b20gaXRlcmF0b3IKIFBBU1MgJ2Vhc2luZycgYW5kICdvZmZzZXQnIGFyZSBpZ25vcmVk
IG9uIGl0ZXJhYmxlIG9iamVjdHMgCiBQQVNTIEtleWZyYW1lcyBhcmUgcmVhZCBmcm9tIGEgY3Vz
dG9tIGl0ZXJhdG9yIHdpdGggbXVsdGlwbGUgcHJvcGVydGllcyBzcGVjaWZpZWQgCiBQQVNTIEtl
eWZyYW1lcyBhcmUgcmVhZCBmcm9tIGEgY3VzdG9tIGl0ZXJhdG9yIHdpdGggd2hlcmUgYW4gb2Zm
c2V0IGlzIHNwZWNpZmllZCAKLUZBSUwgUmVhZGluZyBmcm9tIGEgY3VzdG9tIGl0ZXJhdG9yIHRo
YXQgcmV0dXJucyBhIG5vbi1vYmplY3Qga2V5ZnJhbWUgc2hvdWxkIHRocm93IGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgbmV3IEtleWZyYW1lRWZmZWN0KG51bGwsIGNyZWF0
ZUl0ZXJhYmxlKFsKLSAgICAgIHsgZG9uZTogZmFsc2UsIHZhbHVlOiB7IGxlZnQ6ICcxMDBweCcg
fSB9LAotICAgICAgeyBkb25lOiBmYWxzZSwgdmFsdWU6IDEyMzQgfSwKLSAgICAgIHsgZG9uZTog
ZmFsc2UsIHZhbHVlOiB7IGxlZnQ6ICcyMDBweCcgfSB9LAotICAgICAgeyBkb25lOiB0cnVlIH0s
Ci0gICAgXSkpOwotICB9IiBkaWQgbm90IHRocm93CitQQVNTIFJlYWRpbmcgZnJvbSBhIGN1c3Rv
bSBpdGVyYXRvciB0aGF0IHJldHVybnMgYSBub24tb2JqZWN0IGtleWZyYW1lIHNob3VsZCB0aHJv
dyAKIFBBU1MgQSBsaXN0IG9mIHZhbHVlcyByZXR1cm5lZCBmcm9tIGEgY3VzdG9tIGl0ZXJhdG9y
IHNob3VsZCBiZSBpZ25vcmVkIAogUEFTUyBPbmx5IGVudW1lcmFibGUgcHJvcGVydGllcyBvbiBr
ZXlmcmFtZXMgYXJlIHJlYWQgCiBQQVNTIE9ubHkgcHJvcGVydGllcyBkZWZpbmVkIGRpcmVjdGx5
IG9uIGtleWZyYW1lcyBhcmUgcmVhZCAKIFBBU1MgT25seSBlbnVtZXJhYmxlIHByb3BlcnRpZXMg
b24gcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgYXJlIHJlYWQgCiBQQVNTIE9ubHkgcHJvcGVy
dGllcyBkZWZpbmVkIGRpcmVjdGx5IG9uIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIGFyZSBy
ZWFkIAotRkFJTCBQcm9wZXJ0aWVzIGFyZSByZWFkIGluIGFzY2VuZGluZyBvcmRlciBieSBVbmlj
b2RlIGNvZGVwb2ludCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSBhY2Nlc3Mgb3JkZXIg
cHJvcGVydHkgMCwgZXhwZWN0ZWQgImNvbXBvc2l0ZSIgYnV0IGdvdCAibWFyZ2luTGVmdCIKK1BB
U1MgUHJvcGVydGllcyBhcmUgcmVhZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgVW5pY29kZSBjb2Rl
cG9pbnQgCiAK
</data>
<flag name="review"
          id="362750"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>