<?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>189616</bug_id>
          
          <creation_ts>2018-09-14 01:34:30 -0700</creation_ts>
          <short_desc>[EME] Add support the waitingforkey event</short_desc>
          <delta_ts>2018-09-19 09:42:42 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          <blocked>185590</blocked>
    
    <blocked>189720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1459700</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-14 01:34:30 -0700</bug_when>
    <thetext>[EME] Add support the waitingforkey event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459701</commentid>
    <comment_count>1</comment_count>
      <attachid>349751</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-14 01:36:48 -0700</bug_when>
    <thetext>Created attachment 349751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459709</commentid>
    <comment_count>2</comment_count>
      <attachid>349751</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-09-14 02:13:37 -0700</bug_when>
    <thetext>Comment on attachment 349751
Patch

Surely there are some layout tests than can be unskipped/unflagged after this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459711</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-14 03:12:50 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #2)
&gt; Comment on attachment 349751 [details]
&gt; Patch
&gt; 
&gt; Surely there are some layout tests than can be unskipped/unflagged after
&gt; this?

When I land the patch for the bug depending on this one, yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459713</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-09-14 03:30:42 -0700</bug_when>
    <thetext>I&apos;m talking about platform-agnostic tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459714</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-14 03:37:02 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; I&apos;m talking about platform-agnostic tests.

Me too, but this patch only implements the crossplatform part that requires the platform one to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459724</commentid>
    <comment_count>6</comment_count>
      <attachid>349751</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-09-14 05:31:04 -0700</bug_when>
    <thetext>Comment on attachment 349751
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2845
&gt; +    // The platform already suspends and resumes playback
&gt; +    // automagically.

Can you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459726</commentid>
    <comment_count>7</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-14 06:37:35 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #6)
&gt; Comment on attachment 349751 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349751&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:2845
&gt; &gt; +    // The platform already suspends and resumes playback
&gt; &gt; +    // automagically.
&gt; 
&gt; Can you elaborate?

In GStreamer the decryptors block until they can continue decrypting and once they can, they go on without needing intervention, playback is &quot;naturally suspended&quot;. I don&apos;t know about other platforms but I guess we can talk about it when the time comes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459733</commentid>
    <comment_count>8</comment_count>
      <attachid>349760</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-14 07:59:33 -0700</bug_when>
    <thetext>Created attachment 349760
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459743</commentid>
    <comment_count>9</comment_count>
      <attachid>349760</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 08:37:21 -0700</bug_when>
    <thetext>Comment on attachment 349760
Patch for landing

Clearing flags on attachment: 349760

Committed r236006: &lt;https://trac.webkit.org/changeset/236006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459744</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 08:37:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459745</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-14 08:38:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/44457738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460778</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-18 15:29:15 -0700</bug_when>
    <thetext>This patch broke a number of our internal EME tests, and the Modern EME feature. Unless the client calls waitingForKey(), it will never receive an attemptToDecrypt().

There is an existing client callback, initializationDataEncountered(), that could have been used for the same purpose as waitingForKey(), or this patch could have added waitingForKey() everywhere initializationDataEncountered() was already called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460858</commentid>
    <comment_count>13</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-18 23:41:31 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #12)
&gt; This patch broke a number of our internal EME tests, and the Modern EME
&gt; feature. Unless the client calls waitingForKey(), it will never receive an
&gt; attemptToDecrypt().
&gt; 
&gt; There is an existing client callback, initializationDataEncountered(), that
&gt; could have been used for the same purpose as waitingForKey(), or this patch
&gt; could have added waitingForKey() everywhere initializationDataEncountered()
&gt; was already called.

Hi Jer,

Oh! Sorry to read that this patch broke your internal tests. About the spec and the wait for key algorithms, it is clear for me that they are different things and can be triggered in different situations:
* initializationDataEncountered() happens when you&apos;re playing (or about to) something and you get the initialization data from the stream that you have to report to JS but unless you cannot play anymore because you are already getting encrypted data, they are separate things.
* waitingForKey(), according to the spec means that you cannot play anymore because you are blocked and it doesn&apos;t necessarily correspond with the moment you get the initialization data

For me, the case of initialization data encountered is clear, when you see the data, you report it. The case of the wait for key algorithm has the following cases:

[1] https://www.w3.org/TR/encrypted-media/#htmlmediaelement-extensions

When one of the following occurs while the decryption blocked waiting for key value is true, the user agent shall run the Wait for Key algorithm.
* The user agent cannot advance the current playback position in the direction of playback.
* The user agent cannot provide data for the current playback position.

[2] https://www.w3.org/TR/encrypted-media/#media-may-contain-encrypted-blocks

The Media Data May Contain Encrypted Blocks algorithm pauses playback if the user agent requires specification of a MediaKeys object before playing the media data. Requests to run this algorithm include a target HTMLMediaElement object.

...

2. If the media element&apos;s mediaKeys attribute is null and the implementation requires specification of a MediaKeys object before decoding potentially-encrypted media data, run the following steps:

[3] https://www.w3.org/TR/encrypted-media/#attempt-to-decrypt

NOTE
Once the user agent has rendered the blocks preceding the block that cannot be decrypted (as much as it can, such as, all complete video frames), it will run the Wait for Key algorithm.

[4] https://www.w3.org/TR/encrypted-media/#wait-for-key

The algorithm itself.

[5] https://www.w3.org/TR/encrypted-media/#resume-playback

Attempt to Resume Playback If Necessary



From [2] I get that you could even run the wait for key algorithm even before finding initialization data if you require it, which we (GStreamer) don&apos;t.

From [1] and [3] I get that you might get initialization data but this algorithm should be run when you can&apos;t render anything else because you&apos;re blocked waiting for decryption. For example, in our tests with YouTube and other streams we have seen that playback begins unencrypted, you get the initialization data and fire it to JS which can trigger all the process until being able to decrypt without being blocked because you are ready to decrypt in advance. Actually, the wait to decrypt is a symptom that you&apos;re too late because you have to suspend playback, right?

It&apos;s true that [5] bails out in step 2 and I thought that it could create issue so I paid attention to Mac the bots when landing but I saw no breakage so I was quiet in the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460995</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-19 09:42:42 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #13)
&gt; (In reply to Jer Noble from comment #12)
&gt; &gt; This patch broke a number of our internal EME tests, and the Modern EME
&gt; &gt; feature. Unless the client calls waitingForKey(), it will never receive an
&gt; &gt; attemptToDecrypt().
&gt; &gt; 
&gt; &gt; There is an existing client callback, initializationDataEncountered(), that
&gt; &gt; could have been used for the same purpose as waitingForKey(), or this patch
&gt; &gt; could have added waitingForKey() everywhere initializationDataEncountered()
&gt; &gt; was already called.
&gt; 
&gt; Hi Jer,
&gt; 
&gt; Oh! Sorry to read that this patch broke your internal tests. 

Yeah, it&apos;s really unfortunate that we can&apos;t run any /actual/ EME tests as part of the n normal LayoutTest process; there&apos;s an external server requirement.  I&apos;ve got a background task of trying to figure out a way to get EME tests running in an automated and public way.

&gt; About the spec
&gt; and the wait for key algorithms, it is clear for me that they are different
&gt; things and can be triggered in different situations... [snip]

Thanks for clarifying. We&apos;ll try to update our own platform implementation match the spec as closely as possible. That said, I was really referring to restoring the status-quo-ante for ports which have not yet implemented waitingForKey().  Bug #189720 should fix that for the macOS and iOS ports.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349751</attachid>
            <date>2018-09-14 01:36:48 -0700</date>
            <delta_ts>2018-09-14 07:59:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189616-20180914103647.patch</filename>
            <type>text/plain</type>
            <size>7454</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzMjBjNGJjYmQxODc0
N2QxNDVlYzE3MjQyMTYzYzI3YjExYTJiMy4uNzg5MzMxZWFiY2EyOTM4ODk4ZjM0OTE4OTUzN2Nl
YmIxOTNjZGU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTA5LTE0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQWRkIHN1cHBvcnQgdGhlIHdhaXRpbmdmb3JrZXkgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTYxNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyb3NzcGxhdGZvcm0gc3VwcG9ydCB0byBm
aXJlIHRoZSB3YWl0aW5nZm9ya2V5IGV2ZW50IGZyb20gdGhlCisgICAgICAgIHBsYXllciB0byB0
aGUgZWxlbWVudC4gVGhlIGVsZW1lbnQgaW1wbGVtZW50cyB0aGUgVzNDIHNwZWNpZmllZAorICAg
ICAgICBhbGdvcml0aG0uCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9y
S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF0dGVtcHRUb1Jlc3Vt
ZVBsYXliYWNrSWZOZWNlc3NhcnkpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJD
bGllbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSk6CisKIDIwMTgtMDktMTMgIFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVh
bWVyXVtFTUVdIGRlY3J5cHQta2V5LW5lZWRlZCBtZXNzYWdlIHJlbmFtZWQgdG8gZHJtLWNkbS1p
bnN0YW5jZS1uZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IDI3ZDRhYWJhNDIwNGNkZjNlMTZjMzRhNTdmYmVkZmE0NGQ3ZmQ4ZWYuLjBhMTY1MGJhYTQz
NGJhZmFlNWI4NjljMTg3Mzg5ZWQzYWVhMDNiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtMjc4Nyw2ICsyNzg3LDY0IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJJbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJp
bmcmIGluCiAgICAgbV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KE1lZGlhRW5jcnlwdGVk
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5jcnlwdGVkRXZlbnQsIGluaXRpYWxpemVyLCBF
dmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllcldhaXRpbmdGb3JLZXkoKQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9l
bmNyeXB0ZWQtbWVkaWEvI3dhaXQtZm9yLWtleQorICAgIC8vIFczQyBSZWNvbW1lbmRhdGlvbiAx
OCBTZXB0ZW1iZXIgMjAxNworCisgICAgLy8gVGhlIFdhaXQgZm9yIEtleSBhbGdvcml0aG0gcXVl
dWVzIGEgd2FpdGluZ2ZvcmtleSBldmVudCBhbmQKKyAgICAvLyB1cGRhdGVzIHJlYWR5U3RhdGUu
IEl0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZQorICAgIC8vIEhUTUxNZWRpYUVsZW1l
bnQgb2JqZWN0IGlzIHBvdGVudGlhbGx5IHBsYXlpbmcgYW5kIGl0cworICAgIC8vIHJlYWR5U3Rh
dGUgaXMgZXF1YWwgdG8gSEFWRV9GVVRVUkVfREFUQSBvciBncmVhdGVyLiBSZXF1ZXN0cyB0bwor
ICAgIC8vIHJ1biB0aGlzIGFsZ29yaXRobSBpbmNsdWRlIGEgdGFyZ2V0IEhUTUxNZWRpYUVsZW1l
bnQgb2JqZWN0LgorCisgICAgLy8gVGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgcnVuOgorCisgICAg
Ly8gMS4gTGV0IHRoZSBtZWRpYSBlbGVtZW50IGJlIHRoZSBzcGVjaWZpZWQgSFRNTE1lZGlhRWxl
bWVudAorICAgIC8vIG9iamVjdC4KKyAgICAvLyAyLiBJZiB0aGUgbWVkaWEgZWxlbWVudCdzIHBs
YXliYWNrIGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5CisgICAgLy8gdmFsdWUgaXMgdHJ1ZSwgYWJv
cnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0ZvcktleSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gMy4gU2V0IHRoZSBtZWRpYSBlbGVtZW50J3MgcGxh
eWJhY2sgYmxvY2tlZCB3YWl0aW5nIGZvciBrZXkKKyAgICAvLyB2YWx1ZSB0byB0cnVlLgorICAg
IG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0ZvcktleSA9IHRydWU7CisKKyAgICAvLyBOT1RFCisg
ICAgLy8gQXMgYSByZXN1bHQgb2YgdGhlIGFib3ZlIHN0ZXAsIHRoZSBtZWRpYSBlbGVtZW50IHdp
bGwgYmVjb21lIGEKKyAgICAvLyBibG9ja2VkIG1lZGlhIGVsZW1lbnQgaWYgaXQgd2Fzbid0IGFs
cmVhZHkuIEluIHRoYXQgY2FzZSwgdGhlCisgICAgLy8gbWVkaWEgZWxlbWVudCB3aWxsIHN0b3Ag
cGxheWJhY2suCisKKyAgICAvLyA0LiBGb2xsb3cgdGhlIHN0ZXBzIGZvciB0aGUgZmlyc3QgbWF0
Y2hpbmcgY29uZGl0aW9uIGZyb20gdGhlCisgICAgLy8gZm9sbG93aW5nIGxpc3Q6CisKKyAgICAv
LyBJZiBkYXRhIGZvciB0aGUgaW1tZWRpYXRlIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gaXMK
KyAgICAvLyBhdmFpbGFibGUKKyAgICAvLyBTZXQgdGhlIHJlYWR5U3RhdGUgb2YgbWVkaWEgZWxl
bWVudCB0byBIQVZFX0NVUlJFTlRfREFUQS4KKyAgICAvLyBPdGhlcndpc2UKKyAgICAvLyBTZXQg
dGhlIHJlYWR5U3RhdGUgb2YgbWVkaWEgZWxlbWVudCB0byBIQVZFX01FVEFEQVRBLgorICAgIFJl
YWR5U3RhdGUgbmV4dFJlYWR5U3RhdGUgPSBidWZmZXJlZCgpLT5jb250YWluKGN1cnJlbnRUaW1l
KCkpID8gSEFWRV9DVVJSRU5UX0RBVEEgOiBIQVZFX01FVEFEQVRBOworICAgIGlmIChuZXh0UmVh
ZHlTdGF0ZSA8IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgc2V0UmVhZHlTdGF0ZShzdGF0aWNfY2Fz
dDxNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZT4obmV4dFJlYWR5U3RhdGUpKTsKKworICAgIC8vIE5P
VEUKKyAgICAvLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIHZpZGVvIGZyYW1lIGFuZCBhdWRpbyBk
YXRhIGZvciB0aGUKKyAgICAvLyBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9uIGhhdmUgYmVlbiBk
ZWNvZGVkIGJlY2F1c2UgdGhleSB3ZXJlCisgICAgLy8gdW5lbmNyeXB0ZWQgYW5kL29yIHN1Y2Nl
c3NmdWxseSBkZWNyeXB0ZWQsIHNldCByZWFkeVN0YXRlIHRvCisgICAgLy8gSEFWRV9DVVJSRU5U
X0RBVEEuIE90aGVyd2lzZSwgaW5jbHVkaW5nIGlmIHRoaXMgd2FzIHByZXZpb3VzbHkKKyAgICAv
LyB0aGUgY2FzZSBidXQgdGhlIGRhdGEgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSwgc2V0IHJlYWR5
U3RhdGUgdG8KKyAgICAvLyBIQVZFX01FVEFEQVRBLgorCisgICAgLy8gNS4gUXVldWUgYSB0YXNr
IHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgd2FpdGluZ2ZvcmtleSBhdCB0aGUKKyAgICAv
LyBtZWRpYSBlbGVtZW50LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndhaXRpbmdm
b3JrZXlFdmVudCk7CisKKyAgICAvLyA2LiBTdXNwZW5kIHBsYXliYWNrLgorICAgIC8vIFRoZSBw
bGF0Zm9ybSBhbHJlYWR5IHN1c3BlbmRzIGFuZCByZXN1bWVzIHBsYXliYWNrCisgICAgLy8gYXV0
b21hZ2ljYWxseS4KK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9EZWNyeXB0
KCkKIHsKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhLyNhdHRl
bXB0LXRvLWRlY3J5cHQKQEAgLTI4MjcsMTYgKzI4ODUsMjAgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjphdHRlbXB0VG9SZXN1bWVQbGF5YmFja0lmTmVjZXNzYXJ5KCkKIAogICAgIC8vIDEuIExl
dCB0aGUgbWVkaWEgZWxlbWVudCBiZSB0aGUgc3BlY2lmaWVkIEhUTUxNZWRpYUVsZW1lbnQgb2Jq
ZWN0LgogICAgIC8vIDIuIElmIHRoZSBtZWRpYSBlbGVtZW50J3MgcGxheWJhY2sgYmxvY2tlZCB3
YWl0aW5nIGZvciBrZXkgaXMgZmFsc2UsIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIC8vIEZJWE1F
OiBeCisgICAgaWYgKCFtX3BsYXliYWNrQmxvY2tlZFdhaXRpbmdGb3JLZXkpCisgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIDMuIFJ1biB0aGUgQXR0ZW1wdCB0byBEZWNyeXB0IGFsZ29yaXRobSBv
biB0aGUgbWVkaWEgZWxlbWVudC4KICAgICBhdHRlbXB0VG9EZWNyeXB0KCk7CiAKICAgICAvLyA0
LiBJZiB0aGUgdXNlciBhZ2VudCBjYW4gYWR2YW5jZSB0aGUgY3VycmVudCBwbGF5YmFjayBwb3Np
dGlvbiBpbiB0aGUgZGlyZWN0aW9uIG9mIHBsYXliYWNrOgogICAgIC8vICAgNC4xLiBTZXQgdGhl
IG1lZGlhIGVsZW1lbnQncyBkZWNyeXB0aW9uIGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVl
IHRvIGZhbHNlLgorICAgIC8vIEZJWE1FOiBeCiAgICAgLy8gICA0LjIuIFNldCB0aGUgbWVkaWEg
ZWxlbWVudCdzIHBsYXliYWNrIGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNl
LgorICAgIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0ZvcktleSA9IGZhbHNlOworCiAgICAgLy8g
ICA0LjMuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgdmFsdWUgdG8gSEFWRV9D
VVJSRU5UX0RBVEEsIEhBVkVfRlVUVVJFX0RBVEEgb3IgSEFWRV9FTk9VR0hfREFUQSBhcyBhcHBy
b3ByaWF0ZS4KLSAgICAvLyBGSVhNRTogXgorICAgIHNldFJlYWR5U3RhdGUobV9wbGF5ZXItPnJl
YWR5U3RhdGUoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2RtQ2xpZW50QXR0ZW1w
dFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2FyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCmluZGV4IDU3MmMxODk1MzdlOWI0YzM3YTNhOGE1ZTgyYjg2NzJmMjE4NmFhOGEu
LjljOGQ1NDFiODBmOTMyYzMwODcwMzVkNDNkZjU1OGVhNzAzY2QyMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC02NzMsNiArNjczLDcgQEAgcHJpdmF0ZToKIAog
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBtZWRpYVBsYXllckluaXRpYWxp
emF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0IFN0cmluZyYsIFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllcldhaXRpbmdGb3JLZXkoKSBmaW5hbDsKIAog
ICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdCgpOwogICAgIHZvaWQgYXR0ZW1wdFRvUmVzdW1lUGxh
eWJhY2tJZk5lY2Vzc2FyeSgpOwpAQCAtMTE0OCw2ICsxMTQ5LDcgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlZlB0cjxNZWRpYUtleXM+IG1fbWVkaWFLZXlz
OwogICAgIGJvb2wgbV9hdHRhY2hpbmdNZWRpYUtleXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9w
bGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAgICBHZW5lcmljVGFza1F1
ZXVlPFRpbWVyPiBtX2VuY3J5cHRlZE1lZGlhUXVldWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDUwNmFlZTNk
YzY0ZjZlNzU4ZDY1NzY5OThjNzAxMjYwMTQ1NTcxM2QuLmMyZTgwZDYyZmE1YWI0NTFjNzE2MDQ4
MTFhMzdkYTdhYjliMDJjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEyNjYsNiArMTI2NiwxMCBAQCB2b2lkIE1lZGlhUGxh
eWVyOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmIGluaXREYXRh
VHlwZSwgUmVmUAogICAgIGNsaWVudCgpLm1lZGlhUGxheWVySW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoaW5pdERhdGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSk7CiB9CiAKK3ZvaWQgTWVk
aWFQbGF5ZXI6OndhaXRpbmdGb3JLZXkoKQoreworICAgIGNsaWVudCgpLm1lZGlhUGxheWVyV2Fp
dGluZ0ZvcktleSgpOworfQogI2VuZGlmCiAKIFN0cmluZyBNZWRpYVBsYXllcjo6cmVmZXJyZXIo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKaW5kZXggOTdjNjhlMmIyOWZjZDVjZWJlN2RiMGU3MjI1M2Q4ZjVmZDQyZWExOS4uNzYwZjBl
NDM4NDg3MTlmMWQzZDQ5ZWQxMzUxNDhjM2Y4OGY2OGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xNjksNiArMTY5LDcgQEAgcHVi
bGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJJbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmLCBSZWZQ
dHI8QXJyYXlCdWZmZXI+JiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcldhaXRp
bmdGb3JLZXkoKSB7IH0KICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCkBAIC00ODcsNiArNDg4LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKICAgICB2b2lkIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0
IFN0cmluZyYsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7CisgICAgdm9pZCB3YWl0aW5nRm9yS2V5
KCk7CiAjZW5kaWYKIAogICAgIFN0cmluZyByZWZlcnJlcigpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349760</attachid>
            <date>2018-09-14 07:59:33 -0700</date>
            <delta_ts>2018-09-14 08:37:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189616-20180914165932.patch</filename>
            <type>text/plain</type>
            <size>7436</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzMjBjNGJjYmQxODc0
N2QxNDVlYzE3MjQyMTYzYzI3YjExYTJiMy4uNmMzNDk2ZDAxMGIxMTAyNmIxZDRlNzkxYzQwMGUy
ZjQwNDYwNDA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTA5LTE0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQWRkIHN1cHBvcnQgdGhlIHdhaXRpbmdmb3JrZXkgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTYxNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFBoaWxpcHBlIE5vcm1hbmQuCisKKyAgICAgICAgQ3Jvc3NwbGF0Zm9ybSBzdXBwb3J0IHRv
IGZpcmUgdGhlIHdhaXRpbmdmb3JrZXkgZXZlbnQgZnJvbSB0aGUKKyAgICAgICAgcGxheWVyIHRv
IHRoZSBlbGVtZW50LiBUaGUgZWxlbWVudCBpbXBsZW1lbnRzIHRoZSBXM0Mgc3BlY2lmaWVkCisg
ICAgICAgIGFsZ29yaXRobS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllcldhaXRpbmdG
b3JLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXR0ZW1wdFRvUmVz
dW1lUGxheWJhY2tJZk5lY2Vzc2FyeSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OndhaXRpbmdGb3JLZXkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
ckNsaWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5KToKKwogMjAxOC0wOS0xMyAgWGFiaWVy
IFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3Ry
ZWFtZXJdW0VNRV0gZGVjcnlwdC1rZXktbmVlZGVkIG1lc3NhZ2UgcmVuYW1lZCB0byBkcm0tY2Rt
LWluc3RhbmNlLW5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
aW5kZXggMjdkNGFhYmE0MjA0Y2RmM2UxNmMzNGE1N2ZiZWRmYTQ0ZDdmZDhlZi4uODM5MmRhYmY3
YTVhMWNmMGQ5YjMwZTIwMjUyYzg4ZTYzNzFlNTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNzg3LDYgKzI3ODcsNjMgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllckluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0IFN0
cmluZyYgaW4KICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoTWVkaWFFbmNyeXB0
ZWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmNyeXB0ZWRFdmVudCwgaW5pdGlhbGl6ZXIs
IEV2ZW50OjpJc1RydXN0ZWQ6OlllcykpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyV2FpdGluZ0ZvcktleSgpCit7CisgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RS
L2VuY3J5cHRlZC1tZWRpYS8jd2FpdC1mb3Ita2V5CisgICAgLy8gVzNDIFJlY29tbWVuZGF0aW9u
IDE4IFNlcHRlbWJlciAyMDE3CisKKyAgICAvLyBUaGUgV2FpdCBmb3IgS2V5IGFsZ29yaXRobSBx
dWV1ZXMgYSB3YWl0aW5nZm9ya2V5IGV2ZW50IGFuZAorICAgIC8vIHVwZGF0ZXMgcmVhZHlTdGF0
ZS4gSXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlCisgICAgLy8gSFRNTE1lZGlhRWxl
bWVudCBvYmplY3QgaXMgcG90ZW50aWFsbHkgcGxheWluZyBhbmQgaXRzCisgICAgLy8gcmVhZHlT
dGF0ZSBpcyBlcXVhbCB0byBIQVZFX0ZVVFVSRV9EQVRBIG9yIGdyZWF0ZXIuIFJlcXVlc3RzIHRv
CisgICAgLy8gcnVuIHRoaXMgYWxnb3JpdGhtIGluY2x1ZGUgYSB0YXJnZXQgSFRNTE1lZGlhRWxl
bWVudCBvYmplY3QuCisKKyAgICAvLyBUaGUgZm9sbG93aW5nIHN0ZXBzIGFyZSBydW46CisKKyAg
ICAvLyAxLiBMZXQgdGhlIG1lZGlhIGVsZW1lbnQgYmUgdGhlIHNwZWNpZmllZCBIVE1MTWVkaWFF
bGVtZW50CisgICAgLy8gb2JqZWN0LgorICAgIC8vIDIuIElmIHRoZSBtZWRpYSBlbGVtZW50J3Mg
cGxheWJhY2sgYmxvY2tlZCB3YWl0aW5nIGZvciBrZXkKKyAgICAvLyB2YWx1ZSBpcyB0cnVlLCBh
Ym9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAobV9wbGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyAzLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBw
bGF5YmFjayBibG9ja2VkIHdhaXRpbmcgZm9yIGtleQorICAgIC8vIHZhbHVlIHRvIHRydWUuCisg
ICAgbV9wbGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5ID0gdHJ1ZTsKKworICAgIC8vIE5PVEUK
KyAgICAvLyBBcyBhIHJlc3VsdCBvZiB0aGUgYWJvdmUgc3RlcCwgdGhlIG1lZGlhIGVsZW1lbnQg
d2lsbCBiZWNvbWUgYQorICAgIC8vIGJsb2NrZWQgbWVkaWEgZWxlbWVudCBpZiBpdCB3YXNuJ3Qg
YWxyZWFkeS4gSW4gdGhhdCBjYXNlLCB0aGUKKyAgICAvLyBtZWRpYSBlbGVtZW50IHdpbGwgc3Rv
cCBwbGF5YmFjay4KKworICAgIC8vIDQuIEZvbGxvdyB0aGUgc3RlcHMgZm9yIHRoZSBmaXJzdCBt
YXRjaGluZyBjb25kaXRpb24gZnJvbSB0aGUKKyAgICAvLyBmb2xsb3dpbmcgbGlzdDoKKworICAg
IC8vIElmIGRhdGEgZm9yIHRoZSBpbW1lZGlhdGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBp
cworICAgIC8vIGF2YWlsYWJsZQorICAgIC8vIFNldCB0aGUgcmVhZHlTdGF0ZSBvZiBtZWRpYSBl
bGVtZW50IHRvIEhBVkVfQ1VSUkVOVF9EQVRBLgorICAgIC8vIE90aGVyd2lzZQorICAgIC8vIFNl
dCB0aGUgcmVhZHlTdGF0ZSBvZiBtZWRpYSBlbGVtZW50IHRvIEhBVkVfTUVUQURBVEEuCisgICAg
UmVhZHlTdGF0ZSBuZXh0UmVhZHlTdGF0ZSA9IGJ1ZmZlcmVkKCktPmNvbnRhaW4oY3VycmVudFRp
bWUoKSkgPyBIQVZFX0NVUlJFTlRfREFUQSA6IEhBVkVfTUVUQURBVEE7CisgICAgaWYgKG5leHRS
ZWFkeVN0YXRlIDwgbV9yZWFkeVN0YXRlKQorICAgICAgICBzZXRSZWFkeVN0YXRlKHN0YXRpY19j
YXN0PE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlPihuZXh0UmVhZHlTdGF0ZSkpOworCisgICAgLy8g
Tk9URQorICAgIC8vIEluIG90aGVyIHdvcmRzLCBpZiB0aGUgdmlkZW8gZnJhbWUgYW5kIGF1ZGlv
IGRhdGEgZm9yIHRoZQorICAgIC8vIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gaGF2ZSBiZWVu
IGRlY29kZWQgYmVjYXVzZSB0aGV5IHdlcmUKKyAgICAvLyB1bmVuY3J5cHRlZCBhbmQvb3Igc3Vj
Y2Vzc2Z1bGx5IGRlY3J5cHRlZCwgc2V0IHJlYWR5U3RhdGUgdG8KKyAgICAvLyBIQVZFX0NVUlJF
TlRfREFUQS4gT3RoZXJ3aXNlLCBpbmNsdWRpbmcgaWYgdGhpcyB3YXMgcHJldmlvdXNseQorICAg
IC8vIHRoZSBjYXNlIGJ1dCB0aGUgZGF0YSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLCBzZXQgcmVh
ZHlTdGF0ZSB0bworICAgIC8vIEhBVkVfTUVUQURBVEEuCisKKyAgICAvLyA1LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB3YWl0aW5nZm9ya2V5IGF0IHRoZQorICAg
IC8vIG1lZGlhIGVsZW1lbnQuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2FpdGlu
Z2ZvcmtleUV2ZW50KTsKKworICAgIC8vIDYuIFN1c3BlbmQgcGxheWJhY2suCisgICAgLy8gR1N0
cmVhbWVyIGhhbmRsZXMgdGhpcyB3aXRob3V0IHN1c3BlbmRpbmcgZXhwbGljaXRseS4KK30KKwog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9EZWNyeXB0KCkKIHsKICAgICAvLyBodHRw
czovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhLyNhdHRlbXB0LXRvLWRlY3J5cHQKQEAg
LTI4MjcsMTYgKzI4ODQsMjAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9SZXN1
bWVQbGF5YmFja0lmTmVjZXNzYXJ5KCkKIAogICAgIC8vIDEuIExldCB0aGUgbWVkaWEgZWxlbWVu
dCBiZSB0aGUgc3BlY2lmaWVkIEhUTUxNZWRpYUVsZW1lbnQgb2JqZWN0LgogICAgIC8vIDIuIElm
IHRoZSBtZWRpYSBlbGVtZW50J3MgcGxheWJhY2sgYmxvY2tlZCB3YWl0aW5nIGZvciBrZXkgaXMg
ZmFsc2UsIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIC8vIEZJWE1FOiBeCisgICAgaWYgKCFtX3Bs
YXliYWNrQmxvY2tlZFdhaXRpbmdGb3JLZXkpCisgICAgICAgIHJldHVybjsKIAogICAgIC8vIDMu
IFJ1biB0aGUgQXR0ZW1wdCB0byBEZWNyeXB0IGFsZ29yaXRobSBvbiB0aGUgbWVkaWEgZWxlbWVu
dC4KICAgICBhdHRlbXB0VG9EZWNyeXB0KCk7CiAKICAgICAvLyA0LiBJZiB0aGUgdXNlciBhZ2Vu
dCBjYW4gYWR2YW5jZSB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpbiB0aGUgZGlyZWN0
aW9uIG9mIHBsYXliYWNrOgogICAgIC8vICAgNC4xLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBk
ZWNyeXB0aW9uIGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNlLgorICAgIC8v
IEZJWE1FOiBeCiAgICAgLy8gICA0LjIuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHBsYXliYWNr
IGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNlLgorICAgIG1fcGxheWJhY2tC
bG9ja2VkV2FpdGluZ0ZvcktleSA9IGZhbHNlOworCiAgICAgLy8gICA0LjMuIFNldCB0aGUgbWVk
aWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgdmFsdWUgdG8gSEFWRV9DVVJSRU5UX0RBVEEsIEhBVkVf
RlVUVVJFX0RBVEEgb3IgSEFWRV9FTk9VR0hfREFUQSBhcyBhcHByb3ByaWF0ZS4KLSAgICAvLyBG
SVhNRTogXgorICAgIHNldFJlYWR5U3RhdGUobV9wbGF5ZXItPnJlYWR5U3RhdGUoKSk7CiB9CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2RtQ2xpZW50QXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJ
Zk5lY2Vzc2FyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDU3
MmMxODk1MzdlOWI0YzM3YTNhOGE1ZTgyYjg2NzJmMjE4NmFhOGEuLjljOGQ1NDFiODBmOTMyYzMw
ODcwMzVkNDNkZjU1OGVhNzAzY2QyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC02NzMsNiArNjczLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCiAgICAgdm9pZCBtZWRpYVBsYXllckluaXRpYWxpemF0aW9uRGF0YUVuY291bnRl
cmVkKGNvbnN0IFN0cmluZyYsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJikgZmluYWw7CisgICAgdm9p
ZCBtZWRpYVBsYXllcldhaXRpbmdGb3JLZXkoKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0ZW1wdFRv
RGVjcnlwdCgpOwogICAgIHZvaWQgYXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2FyeSgp
OwpAQCAtMTE0OCw2ICsxMTQ5LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQogICAgIFJlZlB0cjxNZWRpYUtleXM+IG1fbWVkaWFLZXlzOwogICAgIGJvb2wgbV9hdHRh
Y2hpbmdNZWRpYUtleXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9wbGF5YmFja0Jsb2NrZWRXYWl0
aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX2VuY3J5
cHRlZE1lZGlhUXVldWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDUwNmFlZTNkYzY0ZjZlNzU4ZDY1NzY5OThj
NzAxMjYwMTQ1NTcxM2QuLmMyZTgwZDYyZmE1YWI0NTFjNzE2MDQ4MTFhMzdkYTdhYjliMDJjMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTEyNjYsNiArMTI2NiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyOjppbml0aWFsaXphdGlv
bkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmIGluaXREYXRhVHlwZSwgUmVmUAogICAgIGNs
aWVudCgpLm1lZGlhUGxheWVySW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoaW5pdERhdGFU
eXBlLCBXVEZNb3ZlKGluaXREYXRhKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OndhaXRpbmdG
b3JLZXkoKQoreworICAgIGNsaWVudCgpLm1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSgpOworfQog
I2VuZGlmCiAKIFN0cmluZyBNZWRpYVBsYXllcjo6cmVmZXJyZXIoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggOTdjNjhlMmIy
OWZjZDVjZWJlN2RiMGU3MjI1M2Q4ZjVmZDQyZWExOS4uNzYwZjBlNDM4NDg3MTlmMWQzZDQ5ZWQx
MzUxNDhjM2Y4OGY2OGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCkBAIC0xNjksNiArMTY5LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJJbml0aWFsaXph
dGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcldhaXRpbmdGb3JLZXkoKSB7IH0KICNl
bmRpZgogICAgIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC00ODcs
NiArNDg4LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2
b2lkIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0IFN0cmluZyYsIFJlZlB0cjxB
cnJheUJ1ZmZlcj4mJik7CisgICAgdm9pZCB3YWl0aW5nRm9yS2V5KCk7CiAjZW5kaWYKIAogICAg
IFN0cmluZyByZWZlcnJlcigpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>