<?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>44275</bug_id>
          
          <creation_ts>2010-08-19 10:51:02 -0700</creation_ts>
          <short_desc>Hooks IDBKeyPath with IDBObjectStorage::put.</short_desc>
          <delta_ts>2010-08-24 06:26:19 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>0</everconfirmed>
          <reporter name="Marcus Bulach">bulach</reporter>
          <assigned_to name="Andrei Popescu">andreip</assigned_to>
          <cc>andreip</cc>
    
    <cc>bulach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>266822</commentid>
    <comment_count>0</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-19 10:51:02 -0700</bug_when>
    <thetext>Hooks IDBKeyPath with IDBObjectStorage::put.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266824</commentid>
    <comment_count>1</comment_count>
      <attachid>64873</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-19 10:52:53 -0700</bug_when>
    <thetext>Created attachment 64873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266925</commentid>
    <comment_count>2</comment_count>
      <attachid>64873</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-19 13:28:41 -0700</bug_when>
    <thetext>Comment on attachment 64873
Patch

WebCore/bindings/v8/IDBBindingUtilities.h:42
 +  void createIDBKeysFromSerializedValuesAndKeyPath(const Vector&lt;PassRefPtr&lt;SerializedScriptValue&gt;, 0&gt; values,  const String&amp; keyPath, Vector&lt;PassRefPtr&lt;IDBKey&gt;, 0&gt;&amp; keys);
Why a Vector&lt;, 0&gt;?

WebCore/bindings/v8/IDBBindingUtilities.h:42
 +  void createIDBKeysFromSerializedValuesAndKeyPath(const Vector&lt;PassRefPtr&lt;SerializedScriptValue&gt;, 0&gt; values,  const String&amp; keyPath, Vector&lt;PassRefPtr&lt;IDBKey&gt;, 0&gt;&amp; keys);
remove the double space before the second const

WebCore/storage/IDBKeyPathBackendImpl.cpp:35
 +      // FIXME: Implement this method once JSC support WireFormat for SerializedScriptValue.
supports (with an s)

WebCore/storage/IDBObjectStoreBackendImpl.cpp:83
 +          RefPtr&lt;SerializedScriptValue&gt; originalValue = value;
Change value to prpValue and at the beginning of the function do RefPtr&lt;&gt; value = prpValue;  Then you don&apos;t need any of this stuff.

WebCore/ChangeLog:5
 +          Hooks IDBKeyPath with IDBObjectStorage::put.
This is not terribly descriptive.  :-)
You forgot the URL
Please add more detail

WebKit/chromium/public/WebIDBKey.h:42
 +      WebIDBKey() { }
Hmm...can we avoid this?  The idea is that you&apos;d use the proper create constructor depending on what you wanted to do.

WebCore/storage/IDBObjectStoreBackendImpl.h:38
 +  struct IDBKeyPathElement;
Is this still needed?


Looks pretty good...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267231</commentid>
    <comment_count>3</comment_count>
      <attachid>64952</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-20 06:33:21 -0700</bug_when>
    <thetext>Created attachment 64952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267233</commentid>
    <comment_count>4</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-20 06:38:45 -0700</bug_when>
    <thetext>thanks Jeremy! all comments addressed, another look please?

(In reply to comment #2)
&gt; (From update of attachment 64873 [details])
&gt; WebCore/bindings/v8/IDBBindingUtilities.h:42
&gt;  +  void createIDBKeysFromSerializedValuesAndKeyPath(const Vector&lt;PassRefPtr&lt;SerializedScriptValue&gt;, 0&gt; values,  const String&amp; keyPath, Vector&lt;PassRefPtr&lt;IDBKey&gt;, 0&gt;&amp; keys);
&gt; Why a Vector&lt;, 0&gt;?

sorry, this file shouldn&apos;t be here, removed.
(but to answer your question: Forward.h doesn&apos;t declare the default value for inlineCapacity, so we need to provide here, or include the real header).

&gt; 
&gt; WebCore/bindings/v8/IDBBindingUtilities.h:42
&gt;  +  void createIDBKeysFromSerializedValuesAndKeyPath(const Vector&lt;PassRefPtr&lt;SerializedScriptValue&gt;, 0&gt; values,  const String&amp; keyPath, Vector&lt;PassRefPtr&lt;IDBKey&gt;, 0&gt;&amp; keys);
&gt; remove the double space before the second const
file removed (but fixed somewhere else).

&gt; 
&gt; WebCore/storage/IDBKeyPathBackendImpl.cpp:35
&gt;  +      // FIXME: Implement this method once JSC support WireFormat for SerializedScriptValue.
&gt; supports (with an s)
Done.

&gt; 
&gt; WebCore/storage/IDBObjectStoreBackendImpl.cpp:83
&gt;  +          RefPtr&lt;SerializedScriptValue&gt; originalValue = value;
&gt; Change value to prpValue and at the beginning of the function do RefPtr&lt;&gt; value = prpValue;  Then you don&apos;t need any of this stuff.
A-ha, I knew there was a simpler way. thanks!

&gt; 
&gt; WebCore/ChangeLog:5
&gt;  +          Hooks IDBKeyPath with IDBObjectStorage::put.
&gt; This is not terribly descriptive.  :-)
&gt; You forgot the URL
&gt; Please add more detail
I tried to add more details, let me know if it&apos;s any clearer.


&gt; 
&gt; WebKit/chromium/public/WebIDBKey.h:42
&gt;  +      WebIDBKey() { }
&gt; Hmm...can we avoid this?  The idea is that you&apos;d use the proper create constructor depending on what you wanted to do.
WebVector :(
it requires a public trivial constructor even for declaring an empty vector, not sure how to avoid this..


&gt; 
&gt; WebCore/storage/IDBObjectStoreBackendImpl.h:38
&gt;  +  struct IDBKeyPathElement;
&gt; Is this still needed?
removed.

&gt; 
&gt; 
&gt; Looks pretty good...
thanks! another look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267257</commentid>
    <comment_count>5</comment_count>
      <attachid>64952</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-20 08:22:24 -0700</bug_when>
    <thetext>Comment on attachment 64952
Patch

WebKit/chromium/src/ChromiumBridge.cpp:505
 +  void ChromiumBridge::createIDBKeysFromSerializedValuesAndKeyPath(const Vector&lt;PassRefPtr&lt;SerializedScriptValue&gt; &gt;&amp; values, const String&amp; keyPath, Vector&lt;PassRefPtr&lt;IDBKey&gt; &gt;&amp; keys)
RefPtr

WebCore/storage/IDBObjectStoreBackendImpl.cpp:139
 +          Vector&lt;PassRefPtr&lt;SerializedScriptValue&gt; &gt; values;
s/PassRefPtr/RefPtr/


Otherwise LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267266</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-20 09:21:34 -0700</bug_when>
    <thetext>Andrei, can you please take this over and finish it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267267</commentid>
    <comment_count>7</comment_count>
      <attachid>64961</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-20 09:24:00 -0700</bug_when>
    <thetext>Created attachment 64961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268405</commentid>
    <comment_count>8</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-08-24 01:47:35 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Andrei, can you please take this over and finish it?

Looks like the latest patch is good to go, can you please have a look and r+ it if you&apos;re happy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268426</commentid>
    <comment_count>9</comment_count>
      <attachid>64961</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-24 02:09:24 -0700</bug_when>
    <thetext>Comment on attachment 64961
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268515</commentid>
    <comment_count>10</comment_count>
      <attachid>64961</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-24 06:26:14 -0700</bug_when>
    <thetext>Comment on attachment 64961
Patch

Clearing flags on attachment: 64961

Committed r65893: &lt;http://trac.webkit.org/changeset/65893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268516</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-24 06:26:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64873</attachid>
            <date>2010-08-19 10:52:53 -0700</date>
            <delta_ts>2010-08-20 06:33:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44275-20100819185250.patch</filename>
            <type>text/plain</type>
            <size>18067</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDVhYTQ3NDIwY2JiZWQyNjcwM2Q4Mjc2MWE2MzNjNmVmMmU5Y2MyYi4uMTc5YjkzM2Y4YzdjY2Nj
OTVkNzBkZjk4ZTc1YmY0ZTJiZDBkZGJiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOC0xOSAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9va3MgSURCS2V5UGF0aCB3aXRoIElEQk9iamVj
dFN0b3JhZ2U6OnB1dC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRp
bGl0aWVzLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaDoK
KyAgICAgICAgKiBzdG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHA6IEFkZGVkLgorICAg
ICAgICAoSURCS2V5UGF0aEJhY2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRW
YWx1ZXNBbmRLZXlQYXRoKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1w
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3Ip
OgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOgorICAgICAg
ICAqIHN0b3JhZ2UvY2hyb21pdW0vSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0ZUlEQktleXNGcm9t
U2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgpOgorCiAyMDEwLTA4LTE3ICBHYXZpbiBCYXJyYWNs
b3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZmYxZWMyNzNlYWRhNDVjNjJkOGQx
NjI1ZWM5ZGQzYjNkMzhhMjJkZC4uYjgzMmY4NDZkM2ZjNTA4ZjVkZjFlNTQ3N2I1YjlhNGNiOTdk
OGY3ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC04NzcsNiArODc3LDkgQEAKICAgICAg
ICAgIyBEb24ndCBidWlsZCBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS4gIFdlIGhhdmUgb3Vy
IG93biBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgJy4uL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2UuY3BwJywKIAorICAgICAgICAjIERvbid0IGJ1aWxkIElEQktleVBhdGhCYWNr
ZW5kSW1wbC4gIFdlIGhhdmUgb3VyIG93biBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgJy4uL3N0
b3JhZ2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcCcsCisKICAgICAgICAgIyBVc2UgaGlzdG9y
eS9CYWNrRm9yd2FyZExpc3RDaHJvbWl1bS5jcHAgaW5zdGVhZC4KICAgICAgICAgJy4uL2hpc3Rv
cnkvQmFja0ZvcndhcmRMaXN0SW1wbC5jcHAnLAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGMyMjNiZDQzYjk3ZTUzMzNiM2Zj
OTYzNTE2ZTUyNWQwOTQ4ZWU0YzIuLjNhM2FhMTg2OTcxMDQxZmRhYWZmODU5MzkzYzdmNjQ3YTFl
ZGI5Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zNTI4LDYgKzM1MjgsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvQ2hh
bmdlVmVyc2lvbldyYXBwZXIuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9jaHJvbWl1bS9EYXRh
YmFzZU9ic2VydmVyLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vSURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2UuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL2Nocm9taXVtL0lE
QktleVBhdGhCYWNrZW5kSW1wbC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0v
RGF0YWJhc2VUcmFja2VyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL2Nocm9t
aXVtL1F1b3RhVHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vUXVv
dGFUcmFja2VyLmgnLApAQCAtMzU4NSw2ICszNTg2LDggQEAKICAgICAgICAgICAgICdzdG9yYWdl
L0lEQkVycm9yRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5LmNwcCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5LmgnLAorICAgICAgICAgICAgJ3N0b3Jh
Z2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJL
ZXlQYXRoQmFja2VuZEltcGwuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZElt
cGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxp
dGllcy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXgg
MWE3OTRiMDhlMWJjZTBlYjQ5ZDNmZmJjNjg0MzE1OTI3ZjI2Y2U5Ni4uZTY1Nzk4MjNmYzgxNzg5
NWZlMWI5NzIwMmYyODBhNGJkMWVmZWIyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5k
aW5nVXRpbGl0aWVzLmgKQEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0IElEQktleVBhdGhFbGVtZW50
OwogCiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKHY4OjpIYW5kbGU8
djg6OlZhbHVlPik7CiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNlcmlhbGl6
ZWRWYWx1ZUFuZEtleVBhdGgoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVl
LCAgY29uc3QgVmVjdG9yPElEQktleVBhdGhFbGVtZW50LCAwPiYga2V5UGF0aCk7Cit2b2lkIGNy
ZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgVmVjdG9yPFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgMD4gdmFsdWVzLCAgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBWZWN0b3I8UGFzc1JlZlB0cjxJREJLZXk+LCAwPiYga2V5cyk7CiAKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCmluZGV4IGZjMTM0NWUz
YTgxYzQyZmQ2MGNhNGRkOTQ4NDE0MWY3ZjgyODAyYmQuLjZiNjdlNzFiMjBjODBhNGExNDU4OTEw
ZDBlN2FjYTdhOGQyZWE4YTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1CcmlkZ2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
QnJpZGdlLmgKQEAgLTcyLDggKzcyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBHcmFwaGljc0NvbnRleHQ7CiAgICAgY2xhc3MgSW1hZ2U7CiAgICAgY2xhc3MgSURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U7CisgICAgY2xhc3MgSURCS2V5OwogICAgIGNsYXNzIEludFJlY3Q7
CiAgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAgICAg
Y2xhc3MgV2lkZ2V0OwogCiAgICAgc3RydWN0IENvb2tpZTsKQEAgLTE2Nyw2ICsxNjksOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gSW5kZXhlZERCIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGlkYkZhY3RvcnkoKTsK
KyAgICAgICAgLy8gRXh0cmFjdHMga2V5UGF0aCBmcm9tIHZhbHVlcyBhbmQgcmV0dXJucyB0aGUg
Y29ycmVzcG9uZGluZyBrZXlzLgorICAgICAgICBzdGF0aWMgdm9pZCBjcmVhdGVJREJLZXlzRnJv
bVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFZlY3RvcjxQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzLCAgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBWZWN0
b3I8UGFzc1JlZlB0cjxJREJLZXk+ID4mIGtleXMpOwogCiAgICAgICAgIC8vIEphdmFTY3JpcHQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgICAgICAgIHN0YXRpYyB2b2lkIG5vdGlmeUpTT3V0T2ZNZW1vcnkoRnJhbWUqKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWEyM2QzZGU0
YzYzNWE5NDdkZWQ1OTg5Mjk2ZTE0M2ExNWU0NGQxNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCS2V5UGF0aEJhY2tlbmRJbXBs
LmgiCisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNlcnJvciAiQ2hyb21pdW0gc2hvdWxkIG5v
dCBjb21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUgaXRzIG93biB2ZXJzaW9uIG9m
IHRoaXMgZmFjdG9yeSB0aGF0IG5hdmlnYXRlcyB0aGUgbXVsdGktcHJvY2VzcyBib3VuZHJ5LiIK
KyNlbmRpZgorCit2b2lkIElEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zyb21T
ZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiwgMD4gdmFsdWVzLCAgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBWZWN0
b3I8UGFzc1JlZlB0cjxJREJLZXk+LCAwPiYga2V5cykKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMgbWV0aG9kIG9uY2UgSlNDIHN1cHBvcnQgV2lyZUZvcm1hdCBmb3IgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLgorfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ1YmU4NzRkNmY4NmZmZmRjZTEwMjJjZWFlMWIwODk5Y2Y0YmM5YmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCS2V5UGF0aEJhY2tlbmRJbXBsX2gKKyNk
ZWZpbmUgSURCS2V5UGF0aEJhY2tlbmRJbXBsX2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBJREJLZXk7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNzIElE
QktleVBhdGhCYWNrZW5kSW1wbCB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgY3JlYXRlSURC
S2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCAwPiYgdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgsIFZlY3RvcjxQYXNzUmVmUHRyPElEQktleT4sIDA+JiBrZXlzKTsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCS2V5UGF0aEJh
Y2tlbmRJbXBsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcAppbmRleCA5NzMyYmMxZWJkYWZiNTAwZTgyN2RhYmI2MjhhNTZiZmM1ZTExMDk5Li4yMTUw
MjY4NDgyNTFlZDViNmVlNjhjYTNiMDI1ZmYwZDA2ZjdhZWM2IDEwMDc1NQotLS0gYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5j
bHVkZSAiSURCQ3Vyc29yQmFja2VuZEltcGwuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEltcGwuaCIKKyNpbmNsdWRlICJJREJL
ZXlQYXRoLmgiCisjaW5jbHVkZSAiSURCS2V5UGF0aEJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAi
SURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJLZXlUcmVlLmgiCiAKQEAgLTc1LDEyICs3Nywy
MCBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dChQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhcwogCiAgICAgaWYgKCFtX2tleVBhdGguaXNOdWxs
KCkpIHsKICAgICAgICAgaWYgKGtleSkgewotICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9y
KElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9F
UlIsICJBIGtleSB3YXMgc3VwcGxpZWQgZm9yIGFuIG9iamVjdFN0b3JlIHRoYXQgaGFzIGEga2V5
UGF0aC4iKSk7IAorICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJy
b3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlIsICJBIGtleSB3YXMg
c3VwcGxpZWQgZm9yIGFuIG9iamVjdFN0b3JlIHRoYXQgaGFzIGEga2V5UGF0aC4iKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURC
RGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiRklYTUU6IGtleVBhdGggbm90IHlldCBz
dXBwb3J0ZWQuIikpOwotICAgICAgICByZXR1cm47CisgICAgICAgIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IG9yaWdpbmFsVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgVmVjdG9yPFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+IHZhbHVlczsKKyAgICAgICAgdmFsdWVzLmFw
cGVuZChvcmlnaW5hbFZhbHVlKTsKKyAgICAgICAgVmVjdG9yPFBhc3NSZWZQdHI8SURCS2V5PiA+
IGlkYktleXM7CisgICAgICAgIElEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zy
b21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCh2YWx1ZXMsIG1fa2V5UGF0aCwgaWRiS2V5cyk7
CisgICAgICAgIGlmIChpZGJLZXlzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgY2FsbGJhY2tz
LT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VU5LTk9XTl9FUlIsICJBbiBpbnZhbGlkIGtleVBhdGggd2FzIHN1cHBsaWVkIGZvciBhbiBvYmpl
Y3RTdG9yZS4iKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAga2V5
ID0gaWRiS2V5c1swXTsKKyAgICAgICAgdmFsdWUgPSBvcmlnaW5hbFZhbHVlOwogICAgIH0KIAog
ICAgIGlmICgha2V5KSB7CkBAIC0xNDAsNyArMTUwLDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsOjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNp
Z24KICAgICAgICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGN1cnNvciA9IElE
QkN1cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUodGhpcywgcmFuZ2UsIHN0YXRpY19jYXN0PElEQkN1
cnNvcjo6RGlyZWN0aW9uPihkaXJlY3Rpb24pLCBrZXksIHZhbHVlKTsKICAgICAgICAgY2FsbGJh
Y2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CiAgICAgfSBlbHNlCi0gICAgICBjYWxs
YmFja3MtPm9uU3VjY2VzcygpOworICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcygpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaAppbmRleCA0YjkwOWFmNzQwOWMzNDcwMjUyZmI5NTU5ZjFlOTkwY2VmODUy
ZmM5Li40M2ExYzkyMDBiMGYwNmI5MGE3NWE0YmE0Yjg3ZmY3NTM2MTM3MjJjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTM1LDYgKzM1LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFZhbHVlVHlwZT4gY2xh
c3MgSURCS2V5VHJlZTsKK3N0cnVjdCBJREJLZXlQYXRoRWxlbWVudDsKIAogY2xhc3MgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2UgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL2Nocm9taXVtL0lEQktl
eVBhdGhCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvY2hyb21pdW0vSURCS2V5UGF0
aEJhY2tlbmRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjYzNGRiM2Y2MzViZjBhOWNiNjk4YmI0ZTgz
NDliZWE1MTE0MzA0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL2Nocm9taXVt
L0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJLZXlQYXRoQmFja2VuZEltcGwuaCIKKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIElEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3Jl
YXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCAwPiYgdmFsdWVzLCAgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBWZWN0b3I8UGFzc1JlZlB0cjxJREJLZXk+LCAwPiYga2V5cykKK3sKKyAgICBD
aHJvbWl1bUJyaWRnZTo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0
aCh2YWx1ZXMsIGtleVBhdGgsIGtleXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGFlZTU4ZWI3NDAzNzgxOWY3ODgyYzg4OTI5MGQ3Y2E1
NTM1Yzc2ZS4uMjRkMjM2MWFhZjJhNjAwYzM0YjEwZGVlMjU4NTU1MTEyMWE0ODBjNyAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDgtMTkgIE1hcmN1cyBCdWxhY2ggIDxidWxh
Y2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEhvb2tzIElEQktleVBhdGggd2l0aCBJREJPYmplY3RTdG9yYWdlOjpwdXQuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViSURCS2V5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktl
eTo6V2ViSURCS2V5KToKKyAgICAgICAgKiBwdWJsaWMvV2ViS2l0Q2xpZW50Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYktpdENsaWVudDo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVz
QW5kS2V5UGF0aCk6CisgICAgICAgICogc3JjL0Nocm9taXVtQnJpZGdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1
ZXNBbmRLZXlQYXRoKToKKwogMjAxMC0wOC0xNyAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGpl
c3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5oIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaAppbmRleCAzMmNhYTEwMWY1Njk2YTU4
ZTQwZjVkZGZjYjZmZmUxYWFlNWE2N2ZhLi4zNTk2ODZjMzg4MjI2YTAxYmE1YTMyMzFlZjdlMzZm
MGEyNTRlZDBmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5o
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKQEAgLTM5LDYgKzM5LDcg
QEAgY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCiBjbGFzcyBXZWJJREJLZXkgewog
cHVibGljOgorICAgIFdlYklEQktleSgpIHsgfQogICAgIH5XZWJJREJLZXkoKSB7IHJlc2V0KCk7
IH0KICAgCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViSURCS2V5IGNyZWF0ZU51bGwoKTsKQEAg
LTgwLDcgKzgxLDYgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2ViSURCS2V5
KCkgeyB9CiAKICAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OklEQktleT4gbV9wcml2YXRlOwog
fTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xpZW50LmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCmluZGV4IDQxMDQxNzUwNzUxMzcy
Y2YyZjllYWYwOTRjZGFiYThlMDUyYmZhYWQuLmQxYmEzMWRiY2I2NDI0ZjcxMTFjOWE5ZjlmNGY4
NzQyM2NkYTE1YjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xp
ZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJMb2Nh
bGl6ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJWZWN0
b3IuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKIAogI2luY2x1ZGUgPHRpbWUuaD4KQEAgLTU0LDEw
ICs1NSwxMiBAQCBjbGFzcyBXZWJGaWxlVXRpbGl0aWVzOwogY2xhc3MgV2ViR0xFUzJDb250ZXh0
OwogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJJREJGYWN0b3J5OworY2xh
c3MgV2ViSURCS2V5OwogY2xhc3MgV2ViTWVzc2FnZVBvcnRDaGFubmVsOwogY2xhc3MgV2ViTWlt
ZVJlZ2lzdHJ5OwogY2xhc3MgV2ViUGx1Z2luTGlzdEJ1aWxkZXI7CiBjbGFzcyBXZWJTYW5kYm94
U3VwcG9ydDsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFdlYlNoYXJl
ZFdvcmtlclJlcG9zaXRvcnk7CiBjbGFzcyBXZWJTb2NrZXRTdHJlYW1IYW5kbGU7CiBjbGFzcyBX
ZWJTdG9yYWdlTmFtZXNwYWNlOwpAQCAtMTM4LDYgKzE0MSw3IEBAIHB1YmxpYzoKICAgICAvLyBJ
bmRleGVkIERhdGFiYXNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogICAgIHZpcnR1YWwgV2ViSURCRmFjdG9yeSogaWRiRmFjdG9yeSgpIHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVk
VmFsdWVzQW5kS2V5UGF0aChjb25zdCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYgdmFsdWVzLCAgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBXZWJWZWN0b3I8V2ViSURCS2V5
PiYga2V5cykgeyB9CiAKIAogICAgIC8vIEtleWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9taXVtQnJpZGdlLmNwcAppbmRleCA1YjE4ZTgyOWIzMjZjZjVlYTBkYzI3ZDc0MTMxZWVlMjZk
ZDE5NTVhLi5mMThkZDI4Zjg3N2JlMTIyNmU5YjAzN2E0MTM2NjYwODkzN2IzZjBjIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgIldlYkZpbGVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUg
IldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViS2l0Q2xpZW50
LmgiCkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiV2ViUGx1Z2luQ29udGFpbmVySW1wbC5o
IgogI2luY2x1ZGUgIldlYlBsdWdpbkxpc3RCdWlsZGVySW1wbC5oIgogI2luY2x1ZGUgIldlYlNh
bmRib3hTdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAj
aW5jbHVkZSAiV2ViU2NyZWVuSW5mby5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1
ZGUgIldlYlVSTC5oIgpAQCAtNTAwLDYgKzUwMiwxOCBAQCBQYXNzUmVmUHRyPElEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlPiBDaHJvbWl1bUJyaWRnZTo6aWRiRmFjdG9yeSgpCiAgICAgcmV0dXJu
IElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmNyZWF0ZSgpOwogfQogCit2b2lkIENocm9taXVtQnJp
ZGdlOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFZl
Y3RvcjxQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzLCAgY29uc3Qg
U3RyaW5nJiBrZXlQYXRoLCBWZWN0b3I8UGFzc1JlZlB0cjxJREJLZXk+ID4mIGtleXMpCit7Cisg
ICAgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gd2ViVmFsdWVzID0gdmFsdWVz
OworICAgIFdlYlZlY3RvcjxXZWJJREJLZXk+IHdlYktleXM7CisgICAgd2ViS2l0Q2xpZW50KCkt
PmNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgod2ViVmFsdWVzLCBX
ZWJTdHJpbmcoa2V5UGF0aCksIHdlYktleXMpOworCisgICAgc2l6ZV90IHdlYktleXNTaXplID0g
d2ViS2V5cy5zaXplKCk7CisgICAga2V5cy5yZXNlcnZlQ2FwYWNpdHkod2ViS2V5c1NpemUpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2ViS2V5c1NpemU7ICsraSkKKyAgICAgICAga2V5
cy5hcHBlbmQod2ViS2V5c1tpXSk7Cit9CisKIC8vIEtleWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogU3Ry
aW5nIENocm9taXVtQnJpZGdlOjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64952</attachid>
            <date>2010-08-20 06:33:21 -0700</date>
            <delta_ts>2010-08-20 09:23:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44275-20100820143319.patch</filename>
            <type>text/plain</type>
            <size>17021</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzFkOGJkYzFhNDY4MTI1ZDNmOTI1NTY0M2E1MTMzMTY3OTg4N2E5NS4uODAzMzRhMTFjMmRmZWVl
Mzg0ZjQ0OTM5OTIyYzBhNTJiZWFkNzE3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOC0yMCAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9va3MgSURCS2V5UGF0aCB3aXRoIElEQk9iamVj
dFN0b3JhZ2U6OnB1dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ0Mjc1CisKKyAgICAgICAgQWRkcyBhIG1lY2hhbmlzbSB0byBleHRyYWN0IGFuIElE
QktleSBmcm9tIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB1c2luZyBJREJLZXlQYXRoCisgICAgICAg
IGR1cmluZyBJREJPYmplY3RTdG9yYWdlOjpwdXQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoSURCS2V5UGF0aEJhY2tlbmRJbXBsOjpj
cmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0KToKKyAgICAgICAgKiBzdG9yYWdlL2Nocm9taXVtL0lE
QktleVBhdGhCYWNrZW5kSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5
UGF0aEJhY2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQ
YXRoKToKKwogMjAxMC0wOC0yMCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZmVkOWMwZDdiNzdjZWZkMzNlMTgwOTYwMzZlZDkz
ZmYzOTlmM2RhMS4uNzE5MTA3YjQ3YWZkMDE3OTI1OGM1NjlkODczMDlkNGNmNWVkYmE4NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC04ODUsNiArODg1LDkgQEAKICAgICAgICAgIyBEb24n
dCBidWlsZCBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS4gIFdlIGhhdmUgb3VyIG93biBpbXBs
ZW1lbnRhdGlvbi4KICAgICAgICAgJy4uL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuY3BwJywKIAorICAgICAgICAjIERvbid0IGJ1aWxkIElEQktleVBhdGhCYWNrZW5kSW1wbC4g
IFdlIGhhdmUgb3VyIG93biBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgJy4uL3N0b3JhZ2UvSURC
S2V5UGF0aEJhY2tlbmRJbXBsLmNwcCcsCisKICAgICAgICAgIyBVc2UgaGlzdG9yeS9CYWNrRm9y
d2FyZExpc3RDaHJvbWl1bS5jcHAgaW5zdGVhZC4KICAgICAgICAgJy4uL2hpc3RvcnkvQmFja0Zv
cndhcmRMaXN0SW1wbC5jcHAnLAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDcxNzVmYjBmZGRmZGNiZGQ1NzI5ZTdjNDkwMjFh
ZjU0ZDBjMTRlNzcuLjU0ZmJmN2IzZWJlN2JkY2Y1Njc5ZGQ3ZTczZTQ1N2RmZTEwYThkZGIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zNTMxLDYgKzM1MzEsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9jaHJvbWl1bS9EYXRhYmFzZU9ic2Vy
dmVyLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL2Nocm9taXVtL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vRGF0YWJhc2VU
cmFja2VyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL2Nocm9taXVtL1F1b3Rh
VHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vUXVvdGFUcmFja2Vy
LmgnLApAQCAtMzU5MCw2ICszNTkxLDggQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9y
RXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5LmNwcCcsCiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJGYWN0b3J5LmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCS2V5
UGF0aEJhY2tlbmRJbXBsLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJLZXlQYXRoQmFj
a2VuZEltcGwuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAppbmRleCBmYzEzNDVl
M2E4MWM0MmZkNjBjYTRkZDk0ODQxNDFmN2Y4MjgwMmJkLi4xMDI3M2VlMDcyNDQ5YzcwYzA5Y2Jl
MDYyYTJlMzZkZmNiZmY0ZGNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0Nocm9taXVtQnJpZGdlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1
bUJyaWRnZS5oCkBAIC03Miw4ICs3MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogICAgIGNsYXNzIEltYWdlOwogICAgIGNsYXNzIElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlOworICAgIGNsYXNzIElEQktleTsKICAgICBjbGFzcyBJbnRSZWN0
OwogICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogICAg
IGNsYXNzIFdpZGdldDsKIAogICAgIHN0cnVjdCBDb29raWU7CkBAIC0xNjcsNiArMTY5LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIEluZGV4ZWREQiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBpZGJGYWN0b3J5KCk7
CisgICAgICAgIC8vIEV4dHJhY3RzIGtleVBhdGggZnJvbSB2YWx1ZXMgYW5kIHJldHVybnMgdGhl
IGNvcnJlc3BvbmRpbmcga2V5cy4KKyAgICAgICAgc3RhdGljIHZvaWQgY3JlYXRlSURCS2V5c0Zy
b21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcywgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBWZWN0
b3I8UGFzc1JlZlB0cjxJREJLZXk+ID4mIGtleXMpOwogCiAgICAgICAgIC8vIEphdmFTY3JpcHQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgICAgICAgIHN0YXRpYyB2b2lkIG5vdGlmeUpTT3V0T2ZNZW1vcnkoRnJhbWUqKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhiYzJkMzk5
ZGM1NGM2ODcwN2NjYjE1MTEwOTYzZmZiMzcxOTMyNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCS2V5UGF0aEJhY2tlbmRJbXBs
LmgiCisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNlcnJvciAiQ2hyb21pdW0gc2hvdWxkIG5v
dCBjb21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUgaXRzIG93biB2ZXJzaW9uIG9m
IHRoaXMgZmFjdG9yeSB0aGF0IG5hdmlnYXRlcyB0aGUgbXVsdGktcHJvY2VzcyBib3VuZHJ5LiIK
KyNlbmRpZgorCit2b2lkIElEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zyb21T
ZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiwgMD4gdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIFZlY3Rv
cjxQYXNzUmVmUHRyPElEQktleT4sIDA+JiBrZXlzKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhpcyBtZXRob2Qgb25jZSBKU0Mgc3VwcG9ydHMgV2lyZUZvcm1hdCBmb3IgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLgorfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ1YmU4NzRkNmY4NmZmZmRjZTEwMjJjZWFlMWIwODk5Y2Y0YmM5YmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCS2V5UGF0aEJhY2tlbmRJbXBsX2gKKyNk
ZWZpbmUgSURCS2V5UGF0aEJhY2tlbmRJbXBsX2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBJREJLZXk7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNzIElE
QktleVBhdGhCYWNrZW5kSW1wbCB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgY3JlYXRlSURC
S2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCAwPiYgdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgsIFZlY3RvcjxQYXNzUmVmUHRyPElEQktleT4sIDA+JiBrZXlzKTsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCS2V5UGF0aEJh
Y2tlbmRJbXBsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcAppbmRleCBlNWUwYjBkMTI2MDdkZjFiNWM0MWMxYWJmMWVhYmU5NDFmZDBhODU4Li45YmM1
ODZhNGNjODFmMmIwMThmNGRjYjYxY2VhNDEwYmE5ZTQzNGNmIDEwMDc1NQotLS0gYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW1wbC5oIgorI2luY2x1ZGUgIklE
QktleVBhdGguaCIKKyNpbmNsdWRlICJJREJLZXlQYXRoQmFja2VuZEltcGwuaCIKICNpbmNsdWRl
ICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
U1FMaXRlU3RhdGVtZW50LmgiCkBAIC0xMjQsMTggKzEyNiwyNSBAQCB2b2lkIElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw6OmdldChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElE
QkNhbGxiYQogICAgIEFTU0VSVChxdWVyeS5zdGVwKCkgIT0gU1FMUmVzdWx0Um93KTsKIH0KIAot
dm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBib29sIGFkZE9u
bHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2b2lkIElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw6OnB1dChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJw
VmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIGJvb2wgYWRkT25seSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IHBycEtl
eTsKIAogICAgIGlmICghbV9rZXlQYXRoLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChrZXkpIHsK
LSAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUo
SURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiQSBrZXkgd2FzIHN1cHBsaWVkIGZv
ciBhbiBvYmplY3RTdG9yZSB0aGF0IGhhcyBhIGtleVBhdGguIikpOyAKKyAgICAgICAgICAgIGNh
bGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OlVOS05PV05fRVJSLCAiQSBrZXkgd2FzIHN1cHBsaWVkIGZvciBhbiBvYmplY3RTdG9y
ZSB0aGF0IGhhcyBhIGtleVBhdGguIikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjYWxsYmFja3MtPm9uRXJy
b3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dO
X0VSUiwgIkZJWE1FOiBrZXlQYXRoIG5vdCB5ZXQgc3VwcG9ydGVkLiIpKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICBWZWN0b3I8UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4g
dmFsdWVzOworICAgICAgICB2YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgVmVjdG9yPFBh
c3NSZWZQdHI8SURCS2V5PiA+IGlkYktleXM7CisgICAgICAgIElEQktleVBhdGhCYWNrZW5kSW1w
bDo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCh2YWx1ZXMsIG1f
a2V5UGF0aCwgaWRiS2V5cyk7CisgICAgICAgIGlmIChpZGJLZXlzLmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlIsICJBbiBpbnZhbGlkIGtleVBhdGggd2FzIHN1
cHBsaWVkIGZvciBhbiBvYmplY3RTdG9yZS4iKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAga2V5ID0gaWRiS2V5c1swXTsKICAgICB9CiAKICAgICBpZiAoIWtleSkg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL2Nocm9taXVtL0lEQktleVBhdGhCYWNrZW5k
SW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvY2hyb21pdW0vSURCS2V5UGF0aEJhY2tlbmRJbXBs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MjYzNGRiM2Y2MzViZjBhOWNiNjk4YmI0ZTgzNDliZWE1MTE0MzA0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL2Nocm9taXVtL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJJREJLZXlQYXRoQmFja2VuZEltcGwuaCIKKworI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIElEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zy
b21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+LCAwPiYgdmFsdWVzLCAgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBW
ZWN0b3I8UGFzc1JlZlB0cjxJREJLZXk+LCAwPiYga2V5cykKK3sKKyAgICBDaHJvbWl1bUJyaWRn
ZTo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCh2YWx1ZXMsIGtl
eVBhdGgsIGtleXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZjQ4NmQ0OTZiOTE5ZWMyOGVhNGI4MDA4NjI5ZTAzZDk1MDcyYWY5Ny4uYTA5
MDMyZDI4MmVkNjU4MGFiNGM2YTU2M2M3ZDA0NWVmNTY5OTM5MyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTAtMDgtMjAgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhv
b2tzIElEQktleVBhdGggd2l0aCBJREJPYmplY3RTdG9yYWdlOjpwdXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDI3NQorCisgICAgICAgIEFkZHMg
YSBtZWNoYW5pc20gdG8gZXh0cmFjdCBhbiBJREJLZXkgZnJvbSBTZXJpYWxpemVkU2NyaXB0VmFs
dWUgdXNpbmcgSURCS2V5UGF0aAorICAgICAgICBkdXJpbmcgSURCT2JqZWN0U3RvcmFnZTo6cHV0
LgorCisgICAgICAgICogcHVibGljL1dlYklEQktleS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJLZXk6OldlYklEQktleSk6CisgICAgICAgICogcHVibGljL1dlYktpdENsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRDbGllbnQ6OmNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZh
bHVlc0FuZEtleVBhdGgpOgorICAgICAgICAqIHNyYy9DaHJvbWl1bUJyaWRnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVk
VmFsdWVzQW5kS2V5UGF0aCk6CisKIDIwMTAtMDgtMTkgIFZpbmNlbnQgU2NoZWliICA8c2NoZWli
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmggYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQktleS5oCmluZGV4IDMyY2FhMTAxZjU2OTZhNThlNDBmNWRkZmNiNmZm
ZTFhYWU1YTY3ZmEuLjM1OTY4NmMzODgyMjZhMDFiYTVhMzIzMWVmN2UzNmYwYTI1NGVkMGYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKIGNsYXNzIFdlYklEQktleSB7CiBwdWJsaWM6CisgICAg
V2ViSURCS2V5KCkgeyB9CiAgICAgfldlYklEQktleSgpIHsgcmVzZXQoKTsgfQogICAKICAgICBX
RUJLSVRfQVBJIHN0YXRpYyBXZWJJREJLZXkgY3JlYXRlTnVsbCgpOwpAQCAtODAsNyArODEsNiBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBXZWJJREJLZXkoKSB7IH0KIAogICAg
IFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6SURCS2V5PiBtX3ByaXZhdGU7CiB9OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViS2l0Q2xpZW50LmgKaW5kZXggMTdhMzljNTNkNjIzYjU1NGIzODZkNzY4MjQ0
MDBhZGY4OTk1M2NiMS4uOWMwYjRjMmE1NzlmNGIyNzNiNmMwMTVlZmY5NzYyZTFlZjFiMjRjNyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiV2ViRGF0YS5oIgogI2luY2x1ZGUgIldlYkxvY2FsaXplZFN0cmluZy5oIgogI2lu
Y2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldl
YlVSTC5oIgogCiAjaW5jbHVkZSA8dGltZS5oPgpAQCAtNTUsMTAgKzU2LDEyIEBAIGNsYXNzIFdl
YkZpbGVVdGlsaXRpZXM7CiBjbGFzcyBXZWJHTEVTMkNvbnRleHQ7CiBjbGFzcyBXZWJHcmFwaGlj
c0NvbnRleHQzRDsKIGNsYXNzIFdlYklEQkZhY3Rvcnk7CitjbGFzcyBXZWJJREJLZXk7CiBjbGFz
cyBXZWJNZXNzYWdlUG9ydENoYW5uZWw7CiBjbGFzcyBXZWJNaW1lUmVnaXN0cnk7CiBjbGFzcyBX
ZWJQbHVnaW5MaXN0QnVpbGRlcjsKIGNsYXNzIFdlYlNhbmRib3hTdXBwb3J0OworY2xhc3MgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV2ViU2hhcmVkV29ya2VyUmVwb3NpdG9yeTsK
IGNsYXNzIFdlYlNvY2tldFN0cmVhbUhhbmRsZTsKIGNsYXNzIFdlYlN0b3JhZ2VOYW1lc3BhY2U7
CkBAIC0xMzksNiArMTQyLDcgQEAgcHVibGljOgogICAgIC8vIEluZGV4ZWQgRGF0YWJhc2UgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAg
dmlydHVhbCBXZWJJREJGYWN0b3J5KiBpZGJGYWN0b3J5KCkgeyByZXR1cm4gMDsgfQorICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNv
bnN0IFdlYlZlY3RvcjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMsICBjb25zdCBX
ZWJTdHJpbmcmIGtleVBhdGgsIFdlYlZlY3RvcjxXZWJJREJLZXk+JiBrZXlzKSB7IH0KIAogCiAg
ICAgLy8gS2V5Z2VuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwCmlu
ZGV4IDViMThlODI5YjMyNmNmNWVhMGRjMjdkNzQxMzFlZWUyNmRkMTk1NWEuLjhiMTQwYTNhMjY1
YmYwYzU4ODYzYjNkNjk4MDE1YTFjN2Y0M2M1NjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21p
dW1CcmlkZ2UuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViRmlsZVV0aWxpdGll
cy5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBs
LmgiCisjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNs
dWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRDbGllbnQuaCIKQEAgLTUxLDYgKzUyLDcg
QEAKICNpbmNsdWRlICJXZWJQbHVnaW5Db250YWluZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViUGx1
Z2luTGlzdEJ1aWxkZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViU2FuZGJveFN1cHBvcnQuaCIKKyNp
bmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJTY3JlZW5J
bmZvLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVVJMLmgiCkBAIC01
MDAsNiArNTAyLDE4IEBAIFBhc3NSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IENo
cm9taXVtQnJpZGdlOjppZGJGYWN0b3J5KCkKICAgICByZXR1cm4gSURCRmFjdG9yeUJhY2tlbmRQ
cm94eTo6Y3JlYXRlKCk7CiB9CiAKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNyZWF0ZUlEQktleXNG
cm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgVmVjdG9yPFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiA+JiB2YWx1ZXMsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgVmVj
dG9yPFBhc3NSZWZQdHI8SURCS2V5PiA+JiBrZXlzKQoreworICAgIFdlYlZlY3RvcjxXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHdlYlZhbHVlcyA9IHZhbHVlczsKKyAgICBXZWJWZWN0b3I8V2Vi
SURCS2V5PiB3ZWJLZXlzOworICAgIHdlYktpdENsaWVudCgpLT5jcmVhdGVJREJLZXlzRnJvbVNl
cmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKHdlYlZhbHVlcywgV2ViU3RyaW5nKGtleVBhdGgpLCB3
ZWJLZXlzKTsKKworICAgIHNpemVfdCB3ZWJLZXlzU2l6ZSA9IHdlYktleXMuc2l6ZSgpOworICAg
IGtleXMucmVzZXJ2ZUNhcGFjaXR5KHdlYktleXNTaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHdlYktleXNTaXplOyArK2kpCisgICAgICAgIGtleXMuYXBwZW5kKHdlYktleXNbaV0p
OworfQorCiAvLyBLZXlnZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFN0cmluZyBDaHJvbWl1bUJyaWRnZTo6
c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64961</attachid>
            <date>2010-08-20 09:24:00 -0700</date>
            <delta_ts>2010-08-24 06:26:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44275-20100820172358.patch</filename>
            <type>text/plain</type>
            <size>17080</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzFkOGJkYzFhNDY4MTI1ZDNmOTI1NTY0M2E1MTMzMTY3OTg4N2E5NS4uODAzMzRhMTFjMmRmZWVl
Mzg0ZjQ0OTM5OTIyYzBhNTJiZWFkNzE3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOC0yMCAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9va3MgSURCS2V5UGF0aCB3aXRoIElEQk9iamVj
dFN0b3JhZ2U6OnB1dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ0Mjc1CisKKyAgICAgICAgQWRkcyBhIG1lY2hhbmlzbSB0byBleHRyYWN0IGFuIElE
QktleSBmcm9tIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB1c2luZyBJREJLZXlQYXRoCisgICAgICAg
IGR1cmluZyBJREJPYmplY3RTdG9yYWdlOjpwdXQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoSURCS2V5UGF0aEJhY2tlbmRJbXBsOjpj
cmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQktleVBhdGhCYWNrZW5kSW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0KToKKyAgICAgICAgKiBzdG9yYWdlL2Nocm9taXVtL0lE
QktleVBhdGhCYWNrZW5kSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5
UGF0aEJhY2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQ
YXRoKToKKwogMjAxMC0wOC0yMCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggZmVkOWMwZDdiNzdjZWZkMzNlMTgwOTYwMzZlZDkz
ZmYzOTlmM2RhMS4uNzE5MTA3YjQ3YWZkMDE3OTI1OGM1NjlkODczMDlkNGNmNWVkYmE4NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC04ODUsNiArODg1LDkgQEAKICAgICAgICAgIyBEb24n
dCBidWlsZCBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS4gIFdlIGhhdmUgb3VyIG93biBpbXBs
ZW1lbnRhdGlvbi4KICAgICAgICAgJy4uL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuY3BwJywKIAorICAgICAgICAjIERvbid0IGJ1aWxkIElEQktleVBhdGhCYWNrZW5kSW1wbC4g
IFdlIGhhdmUgb3VyIG93biBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgJy4uL3N0b3JhZ2UvSURC
S2V5UGF0aEJhY2tlbmRJbXBsLmNwcCcsCisKICAgICAgICAgIyBVc2UgaGlzdG9yeS9CYWNrRm9y
d2FyZExpc3RDaHJvbWl1bS5jcHAgaW5zdGVhZC4KICAgICAgICAgJy4uL2hpc3RvcnkvQmFja0Zv
cndhcmRMaXN0SW1wbC5jcHAnLAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDcxNzVmYjBmZGRmZGNiZGQ1NzI5ZTdjNDkwMjFh
ZjU0ZDBjMTRlNzcuLjU0ZmJmN2IzZWJlN2JkY2Y1Njc5ZGQ3ZTczZTQ1N2RmZTEwYThkZGIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zNTMxLDYgKzM1MzEsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9jaHJvbWl1bS9EYXRhYmFzZU9ic2Vy
dmVyLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL2Nocm9taXVtL0lEQktleVBhdGhC
YWNrZW5kSW1wbC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vRGF0YWJhc2VU
cmFja2VyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL2Nocm9taXVtL1F1b3Rh
VHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvY2hyb21pdW0vUXVvdGFUcmFja2Vy
LmgnLApAQCAtMzU5MCw2ICszNTkxLDggQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9y
RXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5LmNwcCcsCiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJGYWN0b3J5LmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCS2V5
UGF0aEJhY2tlbmRJbXBsLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJLZXlQYXRoQmFj
a2VuZEltcGwuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAppbmRleCBmYzEzNDVl
M2E4MWM0MmZkNjBjYTRkZDk0ODQxNDFmN2Y4MjgwMmJkLi4zNWFjZTg5YzYyNzcwNDQwYTgyNWQy
ZTBhMGM4OWIxZGE3OGFlZjg0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0Nocm9taXVtQnJpZGdlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1
bUJyaWRnZS5oCkBAIC03Miw4ICs3MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogICAgIGNsYXNzIEltYWdlOwogICAgIGNsYXNzIElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlOworICAgIGNsYXNzIElEQktleTsKICAgICBjbGFzcyBJbnRSZWN0
OwogICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogICAg
IGNsYXNzIFdpZGdldDsKIAogICAgIHN0cnVjdCBDb29raWU7CkBAIC0xNjcsNiArMTY5LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIEluZGV4ZWREQiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBpZGJGYWN0b3J5KCk7
CisgICAgICAgIC8vIEV4dHJhY3RzIGtleVBhdGggZnJvbSB2YWx1ZXMgYW5kIHJldHVybnMgdGhl
IGNvcnJlc3BvbmRpbmcga2V5cy4KKyAgICAgICAgc3RhdGljIHZvaWQgY3JlYXRlSURCS2V5c0Zy
b21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiA+JiBrZXlzKTsKIAogICAgICAgICAvLyBKYXZhU2NyaXB0IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAg
ICBzdGF0aWMgdm9pZCBub3RpZnlKU091dE9mTWVtb3J5KEZyYW1lKik7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFn
ZS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYzliZTU4NjQwYWVhZWM2
NWQxNTE4NTRmNjk1MmIzMDlmYTI4ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQktleVBhdGhCYWNrZW5kSW1wbC5oIgorCisj
aWYgUExBVEZPUk0oQ0hST01JVU0pCisjZXJyb3IgIkNocm9taXVtIHNob3VsZCBub3QgY29tcGls
ZSB0aGlzIGZpbGUgYW5kIGluc3RlYWQgZGVmaW5lIGl0cyBvd24gdmVyc2lvbiBvZiB0aGlzIGZh
Y3RvcnkgdGhhdCBuYXZpZ2F0ZXMgdGhlIG11bHRpLXByb2Nlc3MgYm91bmRyeS4iCisjZW5kaWYK
Kwordm9pZCBJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXpl
ZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiwgMD4gdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIFZlY3RvcjxSZWZQdHI8SURC
S2V5PiwgMD4mIGtleXMpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIG1ldGhvZCBv
bmNlIEpTQyBzdXBwb3J0cyBXaXJlRm9ybWF0IGZvciBTZXJpYWxpemVkU2NyaXB0VmFsdWUuCit9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmggYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJhZjVl
MzdhYjk1ODNhM2Y5ZTA1NzEzZDY5NTUxNDg4YzhhNzFhNQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvc3RvcmFnZS9JREJLZXlQYXRoQmFja2VuZEltcGwuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBJREJLZXlQYXRoQmFja2VuZEltcGxfaAorI2RlZmluZSBJREJLZXlQYXRo
QmFja2VuZEltcGxfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQktleTsK
K2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKKworY2xhc3MgSURCS2V5UGF0aEJhY2tlbmRJ
bXBsIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6
ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiwgMD4mIHZhbHVlcywgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBWZWN0b3I8UmVmUHRyPElE
QktleT4sIDA+JiBrZXlzKTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQorCisjZW5kaWYgLy8gSURCS2V5UGF0aEJhY2tlbmRJbXBsX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCBlNWUwYjBkMTI2MDdk
ZjFiNWM0MWMxYWJmMWVhYmU5NDFmZDBhODU4Li41NDlkMGZhYWJhYzJlM2M0NGU0MWZhZjZkNTJj
N2JjMzU2NDcyMmRkIDEwMDc1NQotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURC
SW5kZXhCYWNrZW5kSW1wbC5oIgorI2luY2x1ZGUgIklEQktleVBhdGguaCIKKyNpbmNsdWRlICJJ
REJLZXlQYXRoQmFja2VuZEltcGwuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1
ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCkBAIC0x
MjQsMTggKzEyNiwyNSBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmdldChQYXNz
UmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYQogICAgIEFTU0VSVChxdWVy
eS5zdGVwKCkgIT0gU1FMUmVzdWx0Um93KTsKIH0KIAotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsOjpwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNz
UmVmUHRyPElEQktleT4gcHJwS2V5LCBib29sIGFkZE9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MpCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dChQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5
PiBwcnBLZXksIGJvb2wgYWRkT25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNr
cykKIHsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVl
OwogICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IHBycEtleTsKIAogICAgIGlmICghbV9rZXlQYXRo
LmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChrZXkpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrcy0+
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVO
S05PV05fRVJSLCAiQSBrZXkgd2FzIHN1cHBsaWVkIGZvciBhbiBvYmplY3RTdG9yZSB0aGF0IGhh
cyBhIGtleVBhdGguIikpOyAKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRh
YmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiQSBr
ZXkgd2FzIHN1cHBsaWVkIGZvciBhbiBvYmplY3RTdG9yZSB0aGF0IGhhcyBhIGtleVBhdGguIikp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3Jl
YXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VSUiwgIkZJWE1FOiBrZXlQYXRoIG5v
dCB5ZXQgc3VwcG9ydGVkLiIpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBWZWN0b3I8UmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiB2YWx1ZXM7CisgICAgICAgIHZhbHVlcy5hcHBl
bmQodmFsdWUpOworICAgICAgICBWZWN0b3I8UmVmUHRyPElEQktleT4gPiBpZGJLZXlzOworICAg
ICAgICBJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZh
bHVlc0FuZEtleVBhdGgodmFsdWVzLCBtX2tleVBhdGgsIGlkYktleXMpOworICAgICAgICBpZiAo
aWRiS2V5cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJE
YXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAi
QW4gaW52YWxpZCBrZXlQYXRoIHdhcyBzdXBwbGllZCBmb3IgYW4gb2JqZWN0U3RvcmUuIikpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGtleSA9IGlkYktleXNbMF07
CiAgICAgfQogCiAgICAgaWYgKCFrZXkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9j
aHJvbWl1bS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL2Nocm9t
aXVtL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYxMDg3NTIwYzk3YWY2
Yjk4ZDkzNmMxMzIyZTgxNWMwY2QxMWMxMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9jaHJvbWl1bS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCS2V5UGF0aEJhY2tlbmRJ
bXBsLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkNocm9t
aXVtQnJpZGdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBJREJLZXlQYXRoQmFj
a2VuZEltcGw6OmNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29u
c3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCAwPiYgdmFsdWVzLCAgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBWZWN0b3I8UmVmUHRyPElEQktleT4sIDA+JiBrZXlzKQorewor
ICAgIENocm9taXVtQnJpZGdlOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRL
ZXlQYXRoKHZhbHVlcywga2V5UGF0aCwga2V5cyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNDg2ZDQ5NmI5MTllYzI4ZWE0YjgwMDg2Mjll
MDNkOTUwNzJhZjk3Li5hMDkwMzJkMjgyZWQ2NTgwYWI0YzZhNTYzYzdkMDQ1ZWY1Njk5MzkzIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOC0yMCAgTWFyY3VzIEJ1bGFjaCAg
PGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSG9va3MgSURCS2V5UGF0aCB3aXRoIElEQk9iamVjdFN0b3JhZ2U6OnB1
dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0Mjc1
CisKKyAgICAgICAgQWRkcyBhIG1lY2hhbmlzbSB0byBleHRyYWN0IGFuIElEQktleSBmcm9tIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSB1c2luZyBJREJLZXlQYXRoCisgICAgICAgIGR1cmluZyBJREJP
YmplY3RTdG9yYWdlOjpwdXQuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCS2V5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQktleTo6V2ViSURCS2V5KToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
S2l0Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYktpdENsaWVudDo6Y3JlYXRlSURCS2V5
c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCk6CisgICAgICAgICogc3JjL0Nocm9taXVt
QnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpjcmVhdGVJREJL
ZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKToKKwogMjAxMC0wOC0xOSAgVmluY2Vu
dCBTY2hlaWIgIDxzY2hlaWJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXku
aCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKaW5kZXggMzJjYWExMDFmNTY5
NmE1OGU0MGY1ZGRmY2I2ZmZlMWFhZTVhNjdmYS4uNmFlZjMzMjlkYjM5NzIxOTc5ZWQzZDg5NTgy
NmRjZjgyODVhMjE0ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJL
ZXkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5oCkBAIC0zOSw2ICsz
OSw4IEBAIGNsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAogY2xhc3MgV2ViSURCS2V5
IHsKIHB1YmxpYzoKKyAgICAvLyBQbGVhc2UgdXNlIG9uZSBvZiB0aGUgZmFjdG9yeSBtZXRob2Rz
LiBUaGlzIGlzIHB1YmxpYyBvbmx5IHRvIGFsbG93IFdlYlZlY3Rvci4KKyAgICBXZWJJREJLZXko
KSB7IH0KICAgICB+V2ViSURCS2V5KCkgeyByZXNldCgpOyB9CiAgIAogICAgIFdFQktJVF9BUEkg
c3RhdGljIFdlYklEQktleSBjcmVhdGVOdWxsKCk7CkBAIC04MCw3ICs4Miw2IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFdlYklEQktleSgpIHsgfQogCiAgICAgV2ViUHJpdmF0
ZVB0cjxXZWJDb3JlOjpJREJLZXk+IG1fcHJpdmF0ZTsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJLaXRDbGllbnQuaAppbmRleCAxN2EzOWM1M2Q2MjNiNTU0YjM4NmQ3NjgyNDQwMGFkZjg5OTUz
Y2IxLi45YzBiNGMyYTU3OWY0YjI3M2I2YzAxNWVmZjk3NjJlMWVmMWIyNGM3IDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViS2l0Q2xpZW50LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJX
ZWJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViTG9jYWxpemVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2Vi
U3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViVVJMLmgiCiAK
ICNpbmNsdWRlIDx0aW1lLmg+CkBAIC01NSwxMCArNTYsMTIgQEAgY2xhc3MgV2ViRmlsZVV0aWxp
dGllczsKIGNsYXNzIFdlYkdMRVMyQ29udGV4dDsKIGNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNE
OwogY2xhc3MgV2ViSURCRmFjdG9yeTsKK2NsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYk1lc3Nh
Z2VQb3J0Q2hhbm5lbDsKIGNsYXNzIFdlYk1pbWVSZWdpc3RyeTsKIGNsYXNzIFdlYlBsdWdpbkxp
c3RCdWlsZGVyOwogY2xhc3MgV2ViU2FuZGJveFN1cHBvcnQ7CitjbGFzcyBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OwogY2xhc3MgV2Vi
U29ja2V0U3RyZWFtSGFuZGxlOwogY2xhc3MgV2ViU3RvcmFnZU5hbWVzcGFjZTsKQEAgLTEzOSw2
ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW5kZXhlZCBEYXRhYmFzZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICB2aXJ0dWFsIFdl
YklEQkZhY3RvcnkqIGlkYkZhY3RvcnkoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lk
IGNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgV2ViVmVj
dG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcywgIGNvbnN0IFdlYlN0cmluZyYg
a2V5UGF0aCwgV2ViVmVjdG9yPFdlYklEQktleT4mIGtleXMpIHsgfQogCiAKICAgICAvLyBLZXln
ZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2Uu
Y3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKaW5kZXggNWIxOGU4
MjliMzI2Y2Y1ZWEwZGMyN2Q3NDEzMWVlZTI2ZGQxOTU1YS4uMzNmNDA1ZDlkMzZhZTMyOWUwNzRh
MDQzNWUwZjI5MDAyMDU0ZjNjNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWl1bUJyaWRnZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5j
cHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJGaWxlVXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNs
dWRlICJXZWJJREJLZXkuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktp
dC5oIgogI2luY2x1ZGUgIldlYktpdENsaWVudC5oIgpAQCAtNTEsNiArNTIsNyBAQAogI2luY2x1
ZGUgIldlYlBsdWdpbkNvbnRhaW5lckltcGwuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5MaXN0QnVp
bGRlckltcGwuaCIKICNpbmNsdWRlICJXZWJTYW5kYm94U3VwcG9ydC5oIgorI2luY2x1ZGUgIldl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYlNjcmVlbkluZm8uaCIKICNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKQEAgLTUwMCw2ICs1MDIs
MTggQEAgUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gQ2hyb21pdW1Ccmlk
Z2U6OmlkYkZhY3RvcnkoKQogICAgIHJldHVybiBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpjcmVh
dGUoKTsKIH0KIAordm9pZCBDaHJvbWl1bUJyaWRnZTo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxp
emVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gPiYgdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIFZlY3RvcjxSZWZQdHI8SURC
S2V5PiA+JiBrZXlzKQoreworICAgIFdlYlZlY3RvcjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHdlYlZhbHVlcyA9IHZhbHVlczsKKyAgICBXZWJWZWN0b3I8V2ViSURCS2V5PiB3ZWJLZXlzOwor
ICAgIHdlYktpdENsaWVudCgpLT5jcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRL
ZXlQYXRoKHdlYlZhbHVlcywgV2ViU3RyaW5nKGtleVBhdGgpLCB3ZWJLZXlzKTsKKworICAgIHNp
emVfdCB3ZWJLZXlzU2l6ZSA9IHdlYktleXMuc2l6ZSgpOworICAgIGtleXMucmVzZXJ2ZUNhcGFj
aXR5KHdlYktleXNTaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYktleXNTaXpl
OyArK2kpCisgICAgICAgIGtleXMuYXBwZW5kKFBhc3NSZWZQdHI8SURCS2V5Pih3ZWJLZXlzW2ld
KSk7Cit9CisKIC8vIEtleWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogU3RyaW5nIENocm9taXVtQnJpZGdl
OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>