<?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>104284</bug_id>
          
          <creation_ts>2012-12-06 11:54:19 -0800</creation_ts>
          <short_desc>EME v0.1: Report defaultURL in KeyMessage.</short_desc>
          <delta_ts>2012-12-14 09:22:34 -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>Media</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Dorwin">ddorwin</reporter>
          <assigned_to name="David Dorwin">ddorwin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jberlin</cc>
    
    <cc>jer.noble</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>785113</commentid>
    <comment_count>0</comment_count>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-06 11:54:19 -0800</bug_when>
    <thetext>EME v0.1: Report defaultURL in KeyMessage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785118</commentid>
    <comment_count>1</comment_count>
      <attachid>178051</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-06 12:00:05 -0800</bug_when>
    <thetext>Created attachment 178051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785123</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 12:03:34 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785688</commentid>
    <comment_count>3</comment_count>
      <attachid>178051</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-12-07 00:02:31 -0800</bug_when>
    <thetext>Comment on attachment 178051
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1883
&gt; +    initializer.defaultURL = defaultURL; 

do you need to possibly resolve defaultURL against the document&apos;s URL?  can defaultURL be a relative URL?  if so, consider using document&apos;s completeURL method, which conveniently returns KURL.

&gt; Source/WebKit/chromium/public/WebMediaPlayerClient.h:78
&gt; +    virtual void keyMessage(const WebString&amp;, const WebString&amp;, const unsigned char*, unsigned, const WebString&amp;) = 0;

nit: these parameters really should have names.  parameters should have names if their names wouldn&apos;t be redundant with their typename.  otherwise, it is very unclear what these parameters refer to.

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:254
&gt; +void WebMediaPlayerClientImpl::keyMessage(const WebString&amp; keySystem, const WebString&amp; sessionId, const unsigned char* message, unsigned messageLength, const WebString&amp; defaultURL)

URLs are usually passed as WebURL in the API and KURL internally within WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785986</commentid>
    <comment_count>4</comment_count>
      <attachid>178051</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-07 10:56:17 -0800</bug_when>
    <thetext>Comment on attachment 178051
Patch

Thanks. I think we need to decide whether the spec should say that the URL should be validated, which I believe will determine the type.

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:1883
&gt;&gt; +    initializer.defaultURL = defaultURL; 
&gt; 
&gt; do you need to possibly resolve defaultURL against the document&apos;s URL?  can defaultURL be a relative URL?  if so, consider using document&apos;s completeURL method, which conveniently returns KURL.

This is a URL from the media data (container) [1] or the license. So, it must be absolute and is unrelated to the document. This is just a pass-through from the media to the app. In the spec, it is just a DOMString [2]. I assume that using WebURL/KURL would mean we would only pass valid URLs to the app.
The spec doesn&apos;t say anything about validating it (or even that it must be a valid URL). Maybe it should. What are your thoughts from a spec point of view? I&apos;ll post this question, but I&apos;m interested in your thoughts.

[1] http://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#dom-defaulturl
[2] http://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#dom-mediakeymessageevent

&gt;&gt; Source/WebKit/chromium/public/WebMediaPlayerClient.h:78
&gt;&gt; +    virtual void keyMessage(const WebString&amp;, const WebString&amp;, const unsigned char*, unsigned, const WebString&amp;) = 0;
&gt; 
&gt; nit: these parameters really should have names.  parameters should have names if their names wouldn&apos;t be redundant with their typename.  otherwise, it is very unclear what these parameters refer to.

Will fix.

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:254
&gt;&gt; +void WebMediaPlayerClientImpl::keyMessage(const WebString&amp; keySystem, const WebString&amp; sessionId, const unsigned char* message, unsigned messageLength, const WebString&amp; defaultURL)
&gt; 
&gt; URLs are usually passed as WebURL in the API and KURL internally within WebCore.

See discussion above. Will change here if we decide to use KURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786137</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-12-07 14:11:38 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 178051 [details])
&gt; Thanks. I think we need to decide whether the spec should say that the URL should be validated, which I believe will determine the type.
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178051&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:1883
&gt; &gt;&gt; +    initializer.defaultURL = defaultURL; 
&gt; &gt; 
&gt; &gt; do you need to possibly resolve defaultURL against the document&apos;s URL?  can defaultURL be a relative URL?  if so, consider using document&apos;s completeURL method, which conveniently returns KURL.
&gt; 
&gt; This is a URL from the media data (container) [1] or the license. So, it must be absolute and is unrelated to the document. This is just a pass-through from the media to the app. In the spec, it is just a DOMString [2]. I assume that using WebURL/KURL would mean we would only pass valid URLs to the app.
&gt; The spec doesn&apos;t say anything about validating it (or even that it must be a valid URL). Maybe it should. What are your thoughts from a spec point of view? I&apos;ll post this question, but I&apos;m interested in your thoughts.

My thoughts are simple:  It should only be called an URL if it is an URL.  If it is an URL, then it is subject to URL canonicalization, etc.  It should be represented using KURL / WebURL / GURL, etc.

If it is just an opaque string, then it needs a different name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786248</commentid>
    <comment_count>6</comment_count>
      <attachid>178296</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-07 15:51:20 -0800</bug_when>
    <thetext>Created attachment 178296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786251</commentid>
    <comment_count>7</comment_count>
      <attachid>178051</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-07 15:53:20 -0800</bug_when>
    <thetext>Comment on attachment 178051
Patch

I confirmed that this works and only valid URLs get passed from Chromium, which uses GURL to convert the string.

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

&gt;&gt;&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:1883
&gt;&gt;&gt;&gt; +    initializer.defaultURL = defaultURL; 
&gt;&gt;&gt; 
&gt;&gt;&gt; do you need to possibly resolve defaultURL against the document&apos;s URL?  can defaultURL be a relative URL?  if so, consider using document&apos;s completeURL method, which conveniently returns KURL.
&gt;&gt; 
&gt;&gt; This is a URL from the media data (container) [1] or the license. So, it must be absolute and is unrelated to the document. This is just a pass-through from the media to the app. In the spec, it is just a DOMString [2]. I assume that using WebURL/KURL would mean we would only pass valid URLs to the app.
&gt;&gt; The spec doesn&apos;t say anything about validating it (or even that it must be a valid URL). Maybe it should. What are your thoughts from a spec point of view? I&apos;ll post this question, but I&apos;m interested in your thoughts.
&gt;&gt; 
&gt;&gt; [1] http://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#dom-defaulturl
&gt;&gt; [2] http://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#dom-mediakeymessageevent
&gt; 
&gt; My thoughts are simple:  It should only be called an URL if it is an URL.  If it is an URL, then it is subject to URL canonicalization, etc.  It should be represented using KURL / WebURL / GURL, etc.
&gt; 
&gt; If it is just an opaque string, then it needs a different name.

Done.

&gt;&gt;&gt; Source/WebKit/chromium/public/WebMediaPlayerClient.h:78
&gt;&gt;&gt; +    virtual void keyMessage(const WebString&amp;, const WebString&amp;, const unsigned char*, unsigned, const WebString&amp;) = 0;
&gt;&gt; 
&gt;&gt; nit: these parameters really should have names.  parameters should have names if their names wouldn&apos;t be redundant with their typename.  otherwise, it is very unclear what these parameters refer to.
&gt; 
&gt; Will fix.

Done.

&gt;&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:254
&gt;&gt;&gt; +void WebMediaPlayerClientImpl::keyMessage(const WebString&amp; keySystem, const WebString&amp; sessionId, const unsigned char* message, unsigned messageLength, const WebString&amp; defaultURL)
&gt;&gt; 
&gt;&gt; URLs are usually passed as WebURL in the API and KURL internally within WebCore.
&gt; 
&gt; See discussion above. Will change here if we decide to use KURL.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791414</commentid>
    <comment_count>8</comment_count>
      <attachid>178296</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 00:26:03 -0800</bug_when>
    <thetext>Comment on attachment 178296
Patch

Clearing flags on attachment: 178296

Committed r137724: &lt;http://trac.webkit.org/changeset/137724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791415</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 00:26:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791656</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 09:18:33 -0800</bug_when>
    <thetext>This patch caused numerous build errors in one of our internal mac build bots.  In the future, please avoid adding unused parameter names to empty functions without an accompanying UNUSED_PARAM() macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791657</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 09:21:01 -0800</bug_when>
    <thetext>For reference, here are the build errors which were seen after r137724:

OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:189:66: error: unused parameter &apos;keySystem&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:189:91: error: unused parameter &apos;sessionId&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:190:66: error: unused parameter &apos;keySystem&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:190:91: error: unused parameter &apos;sessionId&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:190:136: error: unused parameter &apos;systemCode&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:191:68: error: unused parameter &apos;keySystem&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:191:93: error: unused parameter &apos;sessionId&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:191:125: error: unused parameter &apos;message&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:191:143: error: unused parameter &apos;messageLength&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:191:170: error: unused parameter &apos;defaultURL&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:192:67: error: unused parameter &apos;keySystem&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:192:92: error: unused parameter &apos;sessionId&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:192:124: error: unused parameter &apos;initData&apos; [-Werror,-Wunused-parameter]
OpenSource/Source/WebCore/platform/graphics/MediaPlayer.h:192:143: error: unused parameter &apos;initDataLength&apos; [-Werror,-Wunused-parameter]

We&apos;ll fix these in an upcoming changeset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791661</commentid>
    <comment_count>12</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-12-14 09:22:34 -0800</bug_when>
    <thetext>Fixed the unused parameters issue and not modifying MediaPlayerPrivateAVFoundationObjC.mm&apos;s use of keyMessage in http://trac.webkit.org/changeset/137750</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178051</attachid>
            <date>2012-12-06 12:00:05 -0800</date>
            <delta_ts>2012-12-07 15:53:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104284-20121206115730.patch</filename>
            <type>text/plain</type>
            <size>11371</size>
            <attacher name="David Dorwin">ddorwin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVmYmRlNWM0ZWZkMjNi
OGFiMmJjMzRkZTE1ODk3NTU3OTExZGM1Mi4uN2E3NTRhZjllNDFlZjE1YmMwZTQwMzExOTk0NTY4
NDQ4ZDdhYTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEyLTA2ICBEYXZp
ZCBEb3J3aW4gIDxkZG9yd2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBFTUUgdjAuMTogUmVw
b3J0IGRlZmF1bHRVUkwgaW4gS2V5TWVzc2FnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBpcGVzIGRlZmF1bHRVUkwgZG93biBmcm9tIHRoZSBtZWRp
YSBlbmdpbmUgdG8gSFRNTE1lZGlhRWxlbWVudC4KKyAgICAgICAgVGhpcyBhcHBlYXJzIHRvIGhh
dmUgYmVlbiBhbiBvdmVyc2lnaHQgaW4gdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgIE5vIHRlc3QgYmVjYXVzZSBDbGVhciBLZXkgZG9lcyBub3QgcHJvdmlkZSBhIGRlZmF1
bHRVUkwgKGluIHYwLjEpLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyS2V5TWVzc2Fn
ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChIVE1MTWVk
aWFFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6a2V5TWVzc2FnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyQ2xpZW50OjptZWRpYVBsYXllcktleU1lc3NhZ2UpOgorICAgICAgICAoTWVkaWFQbGF5
ZXIpOgorCiAyMDEyLTEyLTA2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbnRlcm5hbHMuZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QgaXMgbm9u
c2Vuc2Ugbm93LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwM2Y5OGY2OTBhNzNmM2Ux
MzgyOWFlMDU2MTA3OWYxOWVlNTc5MTc2Li5hYmZiYTRiNzVkZGYwZDhhZWU4MGE0ZDlhOWRkYWI3
MmYxZDgyNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDEyLTEyLTA2ICBEYXZpZCBEb3J3aW4gIDxkZG9yd2luQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBFTUUgdjAuMTogUmVwb3J0IGRlZmF1bHRVUkwgaW4gS2V5TWVzc2FnZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBpcGVzIGRlZmF1bHRVUkwgZG93
biBmcm9tIHRoZSBtZWRpYSBlbmdpbmUgdG8gSFRNTE1lZGlhRWxlbWVudC4KKyAgICAgICAgVGhp
cyBhcHBlYXJzIHRvIGhhdmUgYmVlbiBhbiBvdmVyc2lnaHQgaW4gdGhlIG9yaWdpbmFsIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIE5vIHRlc3QgYmVjYXVzZSBDbGVhciBLZXkgZG9lcyBub3Qg
cHJvdmlkZSBhIGRlZmF1bHRVUkwgKGluIHYwLjEpLgorCisgICAgICAgICogcHVibGljL1dlYk1l
ZGlhUGxheWVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50
OjprZXlNZXNzYWdlKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjprZXlNZXNzYWdl
KToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChX
ZWJNZWRpYVBsYXllckNsaWVudEltcGwpOgorCiAyMDEyLTEyLTA2ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTM2Nzg0IGFuZCByMTM2ODAyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYzBkMTI5ZWJhNDFiN2NiODVkNGYyZDAxZTM0YjY5ZTBlMjc0Yjg5OC4u
YmZkY2UyMGNmNWY5Mjc2YTdlMGRhN2ZjYzVhM2ExOWEzZTZkYjIwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xODc0LDEyICsxODc0LDEzIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJLZXlFcnJvcihNZWRpYVBsYXllciosIGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtCiAgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChl
dmVudC5yZWxlYXNlKCkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
S2V5TWVzc2FnZShNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBT
dHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogbWVzc2FnZSwgdW5zaWduZWQg
bWVzc2FnZUxlbmd0aCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJLZXlNZXNz
YWdlKE1lZGlhUGxheWVyKiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYg
c2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNzYWdl
TGVuZ3RoLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRVUkwpCiB7CiAgICAgTWVkaWFLZXlFdmVudElu
aXQgaW5pdGlhbGl6ZXI7CiAgICAgaW5pdGlhbGl6ZXIua2V5U3lzdGVtID0ga2V5U3lzdGVtOwog
ICAgIGluaXRpYWxpemVyLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKICAgICBpbml0aWFsaXplci5t
ZXNzYWdlID0gVWludDhBcnJheTo6Y3JlYXRlKG1lc3NhZ2UsIG1lc3NhZ2VMZW5ndGgpOworICAg
IGluaXRpYWxpemVyLmRlZmF1bHRVUkwgPSBkZWZhdWx0VVJMOyAKICAgICBpbml0aWFsaXplci5i
dWJibGVzID0gZmFsc2U7CiAgICAgaW5pdGlhbGl6ZXIuY2FuY2VsYWJsZSA9IGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDAwNDAzZjk1M2QwZTU5ZWFj
Njc4ZDYxMWZjN2RhYWM4YjU4OTUxZTEuLjZkMDg1ZTY2YzYzODgwODM0OTBlMDQ4OGRhNDMyY2Q1
YTY3OTNhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00Mjcs
NyArNDI3LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZp
cnR1YWwgdm9pZCBtZWRpYVBsYXllcktleUFkZGVkKE1lZGlhUGxheWVyKiwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgbWVkaWFQbGF5ZXJLZXlFcnJvcihNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTWVkaWFQbGF5ZXJDbGllbnQ6Ok1l
ZGlhS2V5RXJyb3JDb2RlLCB1bnNpZ25lZCBzaG9ydCBzeXN0ZW1Db2RlKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJLZXlNZXNzYWdlKE1lZGlhUGxheWVyKiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJLZXlNZXNzYWdlKE1lZGlhUGxheWVyKiwgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBj
aGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoLCBjb25zdCBTdHJpbmcmIGRlZmF1
bHRVUkwpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllcktleU5lZWRlZChN
ZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Np
b25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVu
Z3RoKSBPVkVSUklERTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZDY0MzIyM2IwYzA0NDNjMzVmM2E4MGRiMGNj
OWYwNzNhNzNjYTYwNC4uZTMwZDU5MGQzNGNkOGFiMmRkYTU3MTJiNTBmZTJkOWViZjA0ZTE2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cApAQCAtMTA1NywxMCArMTA1NywxMCBAQCB2b2lkIE1lZGlhUGxheWVyOjprZXlFcnJvcihjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIE1lZAogICAgICAg
ICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllcktleUVycm9yKHRoaXMsIGtleVN5c3Rl
bSwgc2Vzc2lvbklkLCBlcnJvckNvZGUsIHN5c3RlbUNvZGUpOwogfQogCi12b2lkIE1lZGlhUGxh
eWVyOjprZXlNZXNzYWdlKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNl
c3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogbWVzc2FnZSwgdW5zaWduZWQgbWVzc2FnZUxl
bmd0aCkKK3ZvaWQgTWVkaWFQbGF5ZXI6OmtleU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdl
LCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRVUkwpCiB7CiAg
ICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQt
Pm1lZGlhUGxheWVyS2V5TWVzc2FnZSh0aGlzLCBrZXlTeXN0ZW0sIHNlc3Npb25JZCwgbWVzc2Fn
ZSwgbWVzc2FnZUxlbmd0aCk7CisgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxh
eWVyS2V5TWVzc2FnZSh0aGlzLCBrZXlTeXN0ZW0sIHNlc3Npb25JZCwgbWVzc2FnZSwgbWVzc2Fn
ZUxlbmd0aCwgZGVmYXVsdFVSTCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6OmtleU5lZWRlZChj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDNkZDAwZjU2
MTQ3Yzg4M2E2NzJiMzM0MWZmZDQ3YmVmNTBiODNiZjQuLjQ5ZDc4MWY5NDhjNDVhNGMwMDY0NTk0
NzYwNGFiNzE5NjQyNDBmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaApAQCAtMTg5LDcgKzE4OSw3IEBAIHB1YmxpYzoKICAgICBlbnVtIE1l
ZGlhS2V5RXJyb3JDb2RlIHsgVW5rbm93bkVycm9yID0gMSwgQ2xpZW50RXJyb3IsIFNlcnZpY2VF
cnJvciwgT3V0cHV0RXJyb3IsIEhhcmR3YXJlQ2hhbmdlRXJyb3IsIERvbWFpbkVycm9yIH07CiAg
ICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyS2V5QWRkZWQoTWVkaWFQbGF5ZXIqLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJL
ZXlFcnJvcihNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lZGlh
S2V5RXJyb3JDb2RlLCB1bnNpZ25lZCBzaG9ydCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyS2V5TWVzc2FnZShNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyS2V5TWVzc2FnZShNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikg
eyB9CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyS2V5TmVlZGVkKE1lZGlhUGxheWVyKiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2ln
bmVkKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKQEAgLTQxOCw3ICs0MTgsNyBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCk7CiAgICAgdm9pZCBr
ZXlFcnJvcihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQs
IE1lZGlhUGxheWVyQ2xpZW50OjpNZWRpYUtleUVycm9yQ29kZSwgdW5zaWduZWQgc2hvcnQgc3lz
dGVtQ29kZSk7Ci0gICAgdm9pZCBrZXlNZXNzYWdlKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogbWVzc2FnZSwgdW5z
aWduZWQgbWVzc2FnZUxlbmd0aCk7CisgICAgdm9pZCBrZXlNZXNzYWdlKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciog
bWVzc2FnZSwgdW5zaWduZWQgbWVzc2FnZUxlbmd0aCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VVJM
KTsKICAgICBib29sIGtleU5lZWRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3Ry
aW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBp
bml0RGF0YUxlbmd0aCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKaW5kZXggMWQ5YzY0ZGM4MDYyNzVkMzli
ZGU1OTcyODdhOGNjMDJkZjlkMmNmNS4uYjg4MWNmZGQzYTFmYWU4ZTQ4YmNkY2RmOWFmMjZiMjli
YWI4MDNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVk
aWFQbGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJN
ZWRpYVBsYXllckNsaWVudC5oCkBAIC03NSw3ICs3NSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlVSTCBzb3VyY2VVUkwoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGtleUFkZGVkKGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQga2V5RXJyb3IoY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViU3RyaW5nJiwg
TWVkaWFLZXlFcnJvckNvZGUsIHVuc2lnbmVkIHNob3J0IHN5c3RlbUNvZGUpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQga2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJTdHJpbmcm
LCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
a2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJTdHJpbmcmLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiwgdW5zaWduZWQsIGNvbnN0IFdlYlN0cmluZyYpID0gMDsKKyAgICAvLyBGSVhN
RShkZG9yd2luKTogUmVtb3ZlIGFmdGVyIHJvbGxpbmcgV2ViS2l0IGluIENocm9taXVtIGFuZCBD
aHJvbWl1bSBpcyB1cGRhdGVkIHRvIHVzZSB0aGUgbmV3IHNpZ25hdHVyZS4KKyAgICB2aXJ0dWFs
IHZvaWQga2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViU3Ry
aW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1l
c3NhZ2VMZW5ndGgpCisgICAgeworICAgICAgICBrZXlNZXNzYWdlKGtleVN5c3RlbSwgc2Vzc2lv
bklkLCBtZXNzYWdlLCBtZXNzYWdlTGVuZ3RoLCBXZWJTdHJpbmcoKSk7CisgICAgfQogICAgIHZp
cnR1YWwgdm9pZCBrZXlOZWVkZWQoY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViU3RyaW5nJiwg
Y29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKSA9
IDA7CiAgICAgLy8gVGhlIHJldHVybmVkIHBvaW50ZXIgaXMgdmFsaWQgdW50aWwgY2xvc2VIZWxw
ZXJQbHVnaW4oKSBpcyBjYWxsZWQuCiAgICAgLy8gUmV0dXJucyAwIGlmIHRoZSBwbHVnaW4gY291
bGQgbm90IGJlIGluc3RhbnRpYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGU3NWM3Mzk0N2U2YTAx
MzE4NTZkMWU0MjdhNDU1ZDY1YTI2NDM4YjUuLmUxYTQ0ODUwMmZjMWEzODIyMTY5ODNmYjg3Y2Nj
NTgxMzFiOTdjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtMjUxLDE2ICsyNTEsMTcgQEAgdm9pZCBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmtleUVycm9yKGNvbnN0IFdlYlN0cmluZyYga2V5U3lz
dGVtLCBjb25zdCBXZWJTdHIKICNlbmRpZgogfQogCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6a2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViU3Ry
aW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1l
c3NhZ2VMZW5ndGgpCit2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6a2V5TWVzc2FnZShj
b25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViU3RyaW5nJiBzZXNzaW9uSWQsIGNv
bnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1lc3NhZ2VMZW5ndGgsIGNvbnN0
IFdlYlN0cmluZyYgZGVmYXVsdFVSTCkKIHsKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQog
ICAgIEFTU0VSVChtX21lZGlhUGxheWVyKTsKLSAgICBtX21lZGlhUGxheWVyLT5rZXlNZXNzYWdl
KGtleVN5c3RlbSwgc2Vzc2lvbklkLCBtZXNzYWdlLCBtZXNzYWdlTGVuZ3RoKTsKKyAgICBtX21l
ZGlhUGxheWVyLT5rZXlNZXNzYWdlKGtleVN5c3RlbSwgc2Vzc2lvbklkLCBtZXNzYWdlLCBtZXNz
YWdlTGVuZ3RoLCBkZWZhdWx0VVJMKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGtleVN5c3Rl
bSk7CiAgICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JZCk7CiAgICAgVU5VU0VEX1BBUkFNKG1lc3Nh
Z2UpOwogICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlTGVuZ3RoKTsKKyAgICBVTlVTRURfUEFSQU0o
ZGVmYXVsdFVSTCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA3M2ViNzhmYTg2YmQ5MmQ5
NDM3YmZkNmQ1M2IxNTNjNTYxZDRiZTkxLi4yOWQyZjJlNjM3ZTZjODAxNGMyMzE1MjJiY2E0NGM0
ZjUzZTU4M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJN
ZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBXZWJLaXQ6OldlYlVSTCBzb3VyY2VVUkwoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
a2V5QWRkZWQoY29uc3QgV2ViU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFdlYlN0cmluZyYgc2Vz
c2lvbklkKTsKICAgICB2aXJ0dWFsIHZvaWQga2V5RXJyb3IoY29uc3QgV2ViU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IFdlYlN0cmluZyYgc2Vzc2lvbklkLCBNZWRpYUtleUVycm9yQ29kZSwgdW5z
aWduZWQgc2hvcnQgc3lzdGVtQ29kZSk7Ci0gICAgdmlydHVhbCB2b2lkIGtleU1lc3NhZ2UoY29u
c3QgV2ViU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFdlYlN0cmluZyYgc2Vzc2lvbklkLCBjb25z
dCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoKTsKKyAgICB2
aXJ0dWFsIHZvaWQga2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3Qg
V2ViU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2ln
bmVkIG1lc3NhZ2VMZW5ndGgsIGNvbnN0IFdlYlN0cmluZyYgZGVmYXVsdFVSTCk7CiAgICAgdmly
dHVhbCB2b2lkIGtleU5lZWRlZChjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2Vi
U3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25l
ZCBpbml0RGF0YUxlbmd0aCk7CiAgICAgdmlydHVhbCBXZWJQbHVnaW4qIGNyZWF0ZUhlbHBlclBs
dWdpbihjb25zdCBXZWJTdHJpbmcmIHBsdWdpblR5cGUsIFdlYkZyYW1lKik7CiAgICAgdmlydHVh
bCB2b2lkIGNsb3NlSGVscGVyUGx1Z2luKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178296</attachid>
            <date>2012-12-07 15:51:20 -0800</date>
            <delta_ts>2012-12-14 00:26:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104284-20121207154844.patch</filename>
            <type>text/plain</type>
            <size>13104</size>
            <attacher name="David Dorwin">ddorwin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVmYmRlNWM0ZWZkMjNi
OGFiMmJjMzRkZTE1ODk3NTU3OTExZGM1Mi4uNmJiZDc0OTkxYjU1M2NjMzJkNzM4ODRmNzQzOTMz
ZTU2NzAwYjA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEyLTA3ICBEYXZp
ZCBEb3J3aW4gIDxkZG9yd2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBFTUUgdjAuMTogUmVw
b3J0IGRlZmF1bHRVUkwgaW4gS2V5TWVzc2FnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBhc3NlcyBkZWZhdWx0VVJMIGRvd24gZnJvbSB0aGUgbWVk
aWEgZW5naW5lIHRvIEhUTUxNZWRpYUVsZW1lbnQuCisgICAgICAgIE9ubHkgVmFsaWQgVVJMcyB3
aWxsIGJlIHBhc3NlZC4KKworICAgICAgICBObyB0ZXN0IGJlY2F1c2UgQ2xlYXIgS2V5IGRvZXMg
bm90IHByb3ZpZGUgYSBkZWZhdWx0VVJMIChpbiB2MC4xKS4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllcktleU1lc3NhZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAoSFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmtleU1l
c3NhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJLZXlBZGRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJLZXlFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJLZXlNZXNz
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllcktl
eU5lZWRlZCk6CisgICAgICAgIChNZWRpYVBsYXllcik6CisKIDIwMTItMTItMDYgIFNoaW55YSBL
YXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEludGVybmFscy5nZXRF
bGVtZW50QnlJZEluU2hhZG93Um9vdCBpcyBub25zZW5zZSBub3cuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDAzZjk4ZjY5MGE3M2YzZTEzODI5YWUwNTYxMDc5ZjE5ZWU1NzkxNzYuLjQx
NWQ1Y2M4ZDNmYzFjMTc2YWZjMTQ5NmRhMGRiY2RmYzQwYjI2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTItMDcgIERhdmlkIERvcndpbiAgPGRk
b3J3aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVNRSB2MC4xOiBSZXBvcnQgZGVmYXVsdFVS
TCBpbiBLZXlNZXNzYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0Mjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUGFzc2VzIGRlZmF1bHRVUkwgZG93biBmcm9tIHRoZSBtZWRpYSBlbmdpbmUgdG8g
SFRNTE1lZGlhRWxlbWVudC4KKyAgICAgICAgT25seSBWYWxpZCBVUkxzIHdpbGwgYmUgcGFzc2Vk
LgorCisgICAgICAgIE5vIHRlc3QgYmVjYXVzZSBDbGVhciBLZXkgZG9lcyBub3QgcHJvdmlkZSBh
IGRlZmF1bHRVUkwgKGluIHYwLjEpLgorCisgICAgICAgICogcHVibGljL1dlYk1lZGlhUGxheWVy
Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6a2V5TWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudDo6
a2V5TWVzc2FnZSk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oOgor
ICAgICAgICAoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKwogMjAxMi0xMi0wNiAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEzNjc4NCBhbmQgcjEzNjgwMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGMwZDEyOWViYTQxYjdjYjg1ZDRmMmQwMWUzNGI2OWUw
ZTI3NGI4OTguLjNmNzFiYWU2YmRmYzAwYzhlNjU2ZmFiZTdiOTdlZWZhZGY0ZDU5YzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTg3NCwxMiArMTg3NCwx
MyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyS2V5RXJyb3IoTWVkaWFQbGF5
ZXIqLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbQogICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1
ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllcktleU1lc3NhZ2UoTWVkaWFQbGF5ZXIqLCBjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2Us
IHVuc2lnbmVkIG1lc3NhZ2VMZW5ndGgpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyS2V5TWVzc2FnZShNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25z
dCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogbWVzc2FnZSwgdW5zaWdu
ZWQgbWVzc2FnZUxlbmd0aCwgY29uc3QgS1VSTCYgZGVmYXVsdFVSTCkKIHsKICAgICBNZWRpYUtl
eUV2ZW50SW5pdCBpbml0aWFsaXplcjsKICAgICBpbml0aWFsaXplci5rZXlTeXN0ZW0gPSBrZXlT
eXN0ZW07CiAgICAgaW5pdGlhbGl6ZXIuc2Vzc2lvbklkID0gc2Vzc2lvbklkOwogICAgIGluaXRp
YWxpemVyLm1lc3NhZ2UgPSBVaW50OEFycmF5OjpjcmVhdGUobWVzc2FnZSwgbWVzc2FnZUxlbmd0
aCk7CisgICAgaW5pdGlhbGl6ZXIuZGVmYXVsdFVSTCA9IGRlZmF1bHRVUkw7IAogICAgIGluaXRp
YWxpemVyLmJ1YmJsZXMgPSBmYWxzZTsKICAgICBpbml0aWFsaXplci5jYW5jZWxhYmxlID0gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggMDA0MDNmOTUz
ZDBlNTllYWM2NzhkNjExZmM3ZGFhYzhiNTg5NTFlMS4uZmFmZTlhOTc5Y2UzYzM0YTQ0ZDA2NmQ2
M2IzNmNiYjdiNGJlYmNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
QEAgLTQyNyw3ICs0MjcsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyS2V5QWRkZWQoTWVkaWFQbGF5ZXIqLCBjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcktleUVycm9yKE1lZGlhUGxheWVyKiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBNZWRpYVBsYXllckNs
aWVudDo6TWVkaWFLZXlFcnJvckNvZGUsIHVuc2lnbmVkIHNob3J0IHN5c3RlbUNvZGUpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcktleU1lc3NhZ2UoTWVkaWFQbGF5ZXIq
LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0
IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1lc3NhZ2VMZW5ndGgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcktleU1lc3NhZ2UoTWVkaWFQbGF5ZXIqLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1lc3NhZ2VMZW5ndGgsIGNvbnN0IEtVUkwm
IGRlZmF1bHRVUkwpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllcktleU5l
ZWRlZChNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcm
IHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXRE
YXRhTGVuZ3RoKSBPVkVSUklERTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZDY0MzIyM2IwYzA0NDNjMzVmM2E4
MGRiMGNjOWYwNzNhNzNjYTYwNC4uNThhZjI3ZWY5ZmQ4ODRjNmNiNzgxZWViMGNjNWJlYzg0MmIx
MzdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcApAQCAtMTA1NywxMCArMTA1NywxMCBAQCB2b2lkIE1lZGlhUGxheWVyOjprZXlFcnJv
cihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIE1lZAog
ICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllcktleUVycm9yKHRoaXMsIGtl
eVN5c3RlbSwgc2Vzc2lvbklkLCBlcnJvckNvZGUsIHN5c3RlbUNvZGUpOwogfQogCi12b2lkIE1l
ZGlhUGxheWVyOjprZXlNZXNzYWdlKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJp
bmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogbWVzc2FnZSwgdW5zaWduZWQgbWVz
c2FnZUxlbmd0aCkKK3ZvaWQgTWVkaWFQbGF5ZXI6OmtleU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBt
ZXNzYWdlLCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoLCBjb25zdCBLVVJMJiBkZWZhdWx0VVJMKQog
ewogICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBtX21lZGlhUGxheWVyQ2xp
ZW50LT5tZWRpYVBsYXllcktleU1lc3NhZ2UodGhpcywga2V5U3lzdGVtLCBzZXNzaW9uSWQsIG1l
c3NhZ2UsIG1lc3NhZ2VMZW5ndGgpOworICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRp
YVBsYXllcktleU1lc3NhZ2UodGhpcywga2V5U3lzdGVtLCBzZXNzaW9uSWQsIG1lc3NhZ2UsIG1l
c3NhZ2VMZW5ndGgsIGRlZmF1bHRVUkwpOwogfQogCiBib29sIE1lZGlhUGxheWVyOjprZXlOZWVk
ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBjb25z
dCB1bnNpZ25lZCBjaGFyKiBpbml0RGF0YSwgdW5zaWduZWQgaW5pdERhdGFMZW5ndGgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCAzZGQw
MGY1NjE0N2M4ODNhNjcyYjMzNDFmZmQ0N2JlZjUwYjgzYmY0Li44MjBmZjRiNDgxYTk5MTllZDRi
NWM4ZTFlN2VjYTA4ZjY5ZmE1ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTE4NywxMCArMTg3LDEwIEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgZW51bSBNZWRpYUtleUVycm9yQ29kZSB7IFVu
a25vd25FcnJvciA9IDEsIENsaWVudEVycm9yLCBTZXJ2aWNlRXJyb3IsIE91dHB1dEVycm9yLCBI
YXJkd2FyZUNoYW5nZUVycm9yLCBEb21haW5FcnJvciB9OwotICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllcktleUFkZGVkKE1lZGlhUGxheWVyKiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyS2V5RXJyb3IoTWVkaWFQbGF5ZXIq
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZWRpYUtleUVycm9yQ29kZSwgdW5zaWdu
ZWQgc2hvcnQpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcktleU1lc3NhZ2UoTWVk
aWFQbGF5ZXIqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCB1bnNpZ25lZCBj
aGFyKiwgdW5zaWduZWQpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllcktleU5lZWRl
ZChNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IHVuc2ln
bmVkIGNoYXIqLCB1bnNpZ25lZCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFQbGF5ZXJLZXlBZGRlZChNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkgeyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyS2V5RXJyb3IoTWVkaWFQbGF5ZXIqLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3Qg
U3RyaW5nJiBzZXNzaW9uSWQsIE1lZGlhS2V5RXJyb3JDb2RlLCB1bnNpZ25lZCBzaG9ydCBzeXN0
ZW1Db2RlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJLZXlNZXNzYWdlKE1lZGlh
UGxheWVyKiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklk
LCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoLCBj
b25zdCBLVVJMJiBkZWZhdWx0VVJMKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJL
ZXlOZWVkZWQoTWVkaWFQbGF5ZXIqLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3Ry
aW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBp
bml0RGF0YUxlbmd0aCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBT
dHJpbmcgbWVkaWFQbGF5ZXJSZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CkBA
IC00MTgsNyArNDE4LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAg
ICAgdm9pZCBrZXlBZGRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBz
ZXNzaW9uSWQpOwogICAgIHZvaWQga2V5RXJyb3IoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IFN0cmluZyYgc2Vzc2lvbklkLCBNZWRpYVBsYXllckNsaWVudDo6TWVkaWFLZXlFcnJvckNv
ZGUsIHVuc2lnbmVkIHNob3J0IHN5c3RlbUNvZGUpOwotICAgIHZvaWQga2V5TWVzc2FnZShjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2ln
bmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1lc3NhZ2VMZW5ndGgpOworICAgIHZvaWQga2V5
TWVzc2FnZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQs
IGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1lc3NhZ2VMZW5ndGgsIGNv
bnN0IEtVUkwmIGRlZmF1bHRVUkwpOwogICAgIGJvb2wga2V5TmVlZGVkKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciog
aW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaAppbmRl
eCAxZDljNjRkYzgwNjI3NWQzOWJkZTU5NzI4N2E4Y2MwMmRmOWQyY2Y1Li40YWJiMGQ0MDEwNGIw
ZTEyYTIxZTlmN2VhMWFlN2E4YWRjMTZiNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKQEAgLTczLDEwICs3MywxMiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VPcGVuZWQoKSA9IDA7CiAgICAgdmly
dHVhbCBXZWJLaXQ6OldlYlVSTCBzb3VyY2VVUkwoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGtleUFkZGVkKGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYlN0cmluZyYpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQga2V5RXJyb3IoY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViU3RyaW5n
JiwgTWVkaWFLZXlFcnJvckNvZGUsIHVuc2lnbmVkIHNob3J0IHN5c3RlbUNvZGUpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQga2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJTdHJp
bmcmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQga2V5TmVlZGVkKGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBrZXlBZGRlZChjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3Qg
V2ViU3RyaW5nJiBzZXNzaW9uSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQga2V5RXJyb3IoY29u
c3QgV2ViU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFdlYlN0cmluZyYgc2Vzc2lvbklkLCBNZWRp
YUtleUVycm9yQ29kZSwgdW5zaWduZWQgc2hvcnQgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBrZXlNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBXZWJT
dHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogbWVzc2FnZSwgdW5zaWduZWQg
bWVzc2FnZUxlbmd0aCwgY29uc3QgV2ViVVJMJiBkZWZhdWx0VVJMKSA9IDA7CisgICAgLy8gRklY
TUUoZGRvcndpbik6IFJlbW92ZSBhZnRlciByb2xsaW5nIFdlYktpdCBpbiBDaHJvbWl1bSBhbmQg
Q2hyb21pdW0gaXMgdXBkYXRlZCB0byB1c2UgdGhlIG5ldyBzaWduYXR1cmUuCisgICAgdmlydHVh
bCB2b2lkIGtleU1lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFdlYlN0
cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBt
ZXNzYWdlTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQga2V5TmVlZGVkKGNvbnN0IFdlYlN0cmlu
ZyYga2V5U3lzdGVtLCBjb25zdCBXZWJTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQg
Y2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKSA9IDA7CiAgICAgLy8gVGhl
IHJldHVybmVkIHBvaW50ZXIgaXMgdmFsaWQgdW50aWwgY2xvc2VIZWxwZXJQbHVnaW4oKSBpcyBj
YWxsZWQuCiAgICAgLy8gUmV0dXJucyAwIGlmIHRoZSBwbHVnaW4gY291bGQgbm90IGJlIGluc3Rh
bnRpYXRlZC4KICAgICB2aXJ0dWFsIFdlYlBsdWdpbiogY3JlYXRlSGVscGVyUGx1Z2luKGNvbnN0
IFdlYlN0cmluZyYgcGx1Z2luVHlwZSwgV2ViRnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRl
eCBlNzVjNzM5NDdlNmEwMTMxODU2ZDFlNDI3YTQ1NWQ2NWEyNjQzOGI1Li5iMGUzM2RjN2YyOWRm
MGE5M2VmYjZhYjkwM2RkZDY5MWM3YTE1YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTI1MSwxOSAr
MjUxLDI2IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjprZXlFcnJvcihjb25zdCBX
ZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViU3RyCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OmtleU1lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJiBrZXlTeXN0
ZW0sIGNvbnN0IFdlYlN0cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNz
YWdlLCB1bnNpZ25lZCBtZXNzYWdlTGVuZ3RoKQordm9pZCBXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OmtleU1lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFdlYlN0cmlu
ZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNz
YWdlTGVuZ3RoLCBjb25zdCBXZWJVUkwmIGRlZmF1bHRVUkwpCiB7CiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7Ci0gICAgbV9tZWRpYVBsYXll
ci0+a2V5TWVzc2FnZShrZXlTeXN0ZW0sIHNlc3Npb25JZCwgbWVzc2FnZSwgbWVzc2FnZUxlbmd0
aCk7CisgICAgbV9tZWRpYVBsYXllci0+a2V5TWVzc2FnZShrZXlTeXN0ZW0sIHNlc3Npb25JZCwg
bWVzc2FnZSwgbWVzc2FnZUxlbmd0aCwgZGVmYXVsdFVSTCk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShrZXlTeXN0ZW0pOwogICAgIFVOVVNFRF9QQVJBTShzZXNzaW9uSWQpOwogICAgIFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsKICAgICBVTlVTRURfUEFSQU0obWVzc2FnZUxlbmd0aCk7CisgICAg
VU5VU0VEX1BBUkFNKGRlZmF1bHRVUkwpOwogI2VuZGlmCiB9CiAKKy8vIEZJWE1FKGRkb3J3aW4p
OiBSZW1vdmUgYWZ0ZXIgcm9sbGluZyBXZWJLaXQgaW4gQ2hyb21pdW0gYW5kIENocm9taXVtIGlz
IHVwZGF0ZWQgdG8gdXNlIHRoZSBuZXcgc2lnbmF0dXJlLgordm9pZCBXZWJNZWRpYVBsYXllckNs
aWVudDo6a2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViU3Ry
aW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIG1l
c3NhZ2VMZW5ndGgpCit7CisgICAga2V5TWVzc2FnZShrZXlTeXN0ZW0sIHNlc3Npb25JZCwgbWVz
c2FnZSwgbWVzc2FnZUxlbmd0aCwgV2ViVVJMKCkpOworfQorCiB2b2lkIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6a2V5TmVlZGVkKGNvbnN0IFdlYlN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBX
ZWJTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2ln
bmVkIGluaXREYXRhTGVuZ3RoKQogewogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bC5oCmluZGV4IDczZWI3OGZhODZiZDkyZDk0MzdiZmQ2ZDUzYjE1M2M1NjFkNGJlOTEuLjNmNzBj
NzM1Y2NiNjY4ZGJmNWZmYjU3Mzg1ZDcwYjRjZmI0YWU3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC04OCw3
ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViVVJMIHNvdXJjZVVSTCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBrZXlBZGRlZChjb25zdCBXZWJTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgV2ViU3RyaW5nJiBzZXNzaW9uSWQpOwogICAgIHZpcnR1YWwgdm9pZCBrZXlF
cnJvcihjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgV2ViU3RyaW5nJiBzZXNzaW9u
SWQsIE1lZGlhS2V5RXJyb3JDb2RlLCB1bnNpZ25lZCBzaG9ydCBzeXN0ZW1Db2RlKTsKLSAgICB2
aXJ0dWFsIHZvaWQga2V5TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIGtleVN5c3RlbSwgY29uc3Qg
V2ViU3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2ln
bmVkIG1lc3NhZ2VMZW5ndGgpOworICAgIHZpcnR1YWwgdm9pZCBrZXlNZXNzYWdlKGNvbnN0IFdl
YlN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBXZWJTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5z
aWduZWQgY2hhciogbWVzc2FnZSwgdW5zaWduZWQgbWVzc2FnZUxlbmd0aCwgY29uc3QgV2ViVVJM
JiBkZWZhdWx0VVJMKTsKICAgICB2aXJ0dWFsIHZvaWQga2V5TmVlZGVkKGNvbnN0IFdlYlN0cmlu
ZyYga2V5U3lzdGVtLCBjb25zdCBXZWJTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQg
Y2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKTsKICAgICB2aXJ0dWFsIFdl
YlBsdWdpbiogY3JlYXRlSGVscGVyUGx1Z2luKGNvbnN0IFdlYlN0cmluZyYgcGx1Z2luVHlwZSwg
V2ViRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VIZWxwZXJQbHVnaW4oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>