<?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>86676</bug_id>
          
          <creation_ts>2012-05-16 14:36:39 -0700</creation_ts>
          <short_desc>IndexedDB: Remove IDBIndex.storeName</short_desc>
          <delta_ts>2012-05-17 16:19:53 -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>WebCore Misc.</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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625874</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 14:36:39 -0700</bug_when>
    <thetext>Possibly a remnant of an older version of the spec. Although it is not exposed in the IDL there is completely superfluous plumbing for IDBIndex.storeName - front-end accessor methods, WebKit API (and Chromium IPC plumbing), and back-end storage. Given that back-end indexes have handles to their parent stores, this is unnecessary clutter/code.

Nuke it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625933</commentid>
    <comment_count>1</comment_count>
      <attachid>142354</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 15:33:20 -0700</bug_when>
    <thetext>Created attachment 142354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625948</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 15:45:34 -0700</bug_when>
    <thetext>dgrogan@ - can you take a look?

After this lands, https://chromiumcodereview.appspot.com/10383221 can land to remove the Chromium IPC plumbing for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625952</commentid>
    <comment_count>3</comment_count>
      <attachid>142354</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-05-16 15:50:13 -0700</bug_when>
    <thetext>Comment on attachment 142354
Patch

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

LGTM

&gt; Source/WebCore/Modules/indexeddb/IDBIndexBackendImpl.cpp:-100
&gt; -    RefPtr&lt;IDBObjectStoreBackendInterface&gt; objectStore = transaction-&gt;objectStore(index-&gt;m_storeName, ec);

This didn&apos;t rely on any logic in IDBTransactionBackendImpl::objectStore for anything useful did it?  Seems unlikely but also seems weird that this was ever used instead of just making m_objectStoreBackend non-const like you do in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625958</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 15:57:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Source/WebCore/Modules/indexeddb/IDBIndexBackendImpl.cpp:-100
&gt; &gt; -    RefPtr&lt;IDBObjectStoreBackendInterface&gt; objectStore = transaction-&gt;objectStore(index-&gt;m_storeName, ec);
&gt; 
&gt; This didn&apos;t rely on any logic in IDBTransactionBackendImpl::objectStore for anything useful did it?  Seems unlikely but also seems weird that this was ever used instead of just making m_objectStoreBackend non-const like you do in this patch.

Not that I can see. IDBTransactionBackendImpl::objectStore just has early exits that set ec (which would have asserted), and refs the IDBObjectStoreBackendImpl which the IDBCursorBackendImpl constructor will do anyway. 

The storeName property was originally exposed to script - see http://www.w3.org/TR/2010/WD-IndexedDB-20100105/#index-concept - but the actual object store was not, so it may have been the most convenient approach available  at the time.

tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625959</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 15:58:40 -0700</bug_when>
    <thetext>Hrm, bots don&apos;t like the patch, I may have to rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625968</commentid>
    <comment_count>6</comment_count>
      <attachid>142361</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 16:04:53 -0700</bug_when>
    <thetext>Created attachment 142361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625969</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 16:05:47 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Hrm, bots don&apos;t like the patch, I may have to rebase.

Yeah, collided with r117334 - rebased. tony@ r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625971</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 16:08:15 -0700</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>625983</commentid>
    <comment_count>9</comment_count>
      <attachid>142361</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-16 16:25:10 -0700</bug_when>
    <thetext>Comment on attachment 142361
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        No new tests - no functional changes.

Can you include some of the &quot;why&quot; in the ChangeLog?  Basically what you wrote in comment #0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625989</commentid>
    <comment_count>10</comment_count>
      <attachid>142366</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 16:29:15 -0700</bug_when>
    <thetext>Created attachment 142366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627062</commentid>
    <comment_count>11</comment_count>
      <attachid>142366</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-17 15:39:56 -0700</bug_when>
    <thetext>Comment on attachment 142366
Patch

I approve!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627102</commentid>
    <comment_count>12</comment_count>
      <attachid>142366</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 16:19:47 -0700</bug_when>
    <thetext>Comment on attachment 142366
Patch

Clearing flags on attachment: 142366

Committed r117512: &lt;http://trac.webkit.org/changeset/117512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627103</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 16:19:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142354</attachid>
            <date>2012-05-16 15:33:20 -0700</date>
            <delta_ts>2012-05-16 16:04:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86676-20120516153319.patch</filename>
            <type>text/plain</type>
            <size>14301</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExODA2YTJiNTU1MDcy
YWEzZmM2NjA3NzI4YmVmM2EzZWI3M2ZiNi4uMzA4MDY1ZTliZmUwNGFjZTE4NDQzN2ZjZDhkNjcx
MjBiZjM4NGMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTE2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgSURCSW5kZXguc3RvcmVOYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbCk6IFJl
bW92ZSBzdG9yZU5hbWUgcGFyYW1ldGVyLCBhbmQgCisgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9u
IG9uIG9iamVjdCBzdG9yZSBwYXJhbS4gVGhlIGZvcm1lciB3YXMgdXNlZCB0byBnZXQgYSBub24t
Y29uc3QgcG9pbnRlcgorICAgICAgICB2aWEgaW5kaXJlY3Rpb24gaW4gb3BlbkN1cnNvckludGVy
bmFsLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvcklu
dGVybmFsKTogVXNlIHN0b3JlIHBvaW50ZXIgZGlyZWN0bHksIGRvbid0CisgICAgICAgIGxvb2sg
aXQgdXAgYnkgbmFtZSBpbiB0aGUgdHJhbnNhY3Rpb24uCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhC
YWNrZW5kSW1wbDo6Y3JlYXRlKTogUmVtb3ZlIHN0b3JlTmFtZSBwYXJhbWV0ZXJzLgorICAgICAg
ICAoSURCSW5kZXhCYWNrZW5kSW1wbCk6IFJlbW92ZSBzdG9yZU5hbWUoKSBtZXRob2QuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAg
ICAgIChJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UpOiBSZW1vdmUgc3RvcmVOYW1lIHBhcmFtZXRl
ci4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0
ZUluZGV4KTogUmVtb3ZlIHN0b3JlTmFtZSBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpsb2FkSW5kZXhlcyk6IFJlbW92ZSBzdG9yZU5hbWUg
cGFyYW1ldGVyLgorCiAyMDEyLTA1LTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE3MDUwLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlNTMxOTQyMjE0YmExMDEwZmMwMGVmNDU4M2Vj
YzcxNTA1NDcxZWU5Li40NWI1MjYzOGMwNWIxZTQ4YzJiNmIzMTdiNTc0OGM1NDBhNWFhODRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE2ICBK
b3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBS
ZW1vdmUgSURCSW5kZXguc3RvcmVOYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcHVibGljL1dlYklEQkluZGV4Lmg6CisgICAgICAgIChXZWJJREJJ
bmRleCk6IENhbid0IHJlbW92ZSBmcm9tIGhlcmUgdW50aWwgQ2hyb21pdW0gaXMgdXBkYXRlZAor
ICAgICAgICAqIHNyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHA6IFJlbW92ZWQgc3RvcmVOYW1l
KCkKKyAgICAgICAgKiBzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaDogUmVtb3ZlZCBzdG9yZU5h
bWUoKQorICAgICAgICAoSURCSW5kZXhCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJ
REJJbmRleEltcGwuY3BwOiBSZW1vdmVkIHN0b3JlTmFtZSgpCisgICAgICAgICogc3JjL1dlYklE
QkluZGV4SW1wbC5oOiBSZW1vdmVkIHN0b3JlTmFtZSgpCisgICAgICAgIChXZWJJREJJbmRleElt
cGwpOgorCiAyMDEyLTA1LTE1ICBUaWVuLVJlbiBDaGVuICA8dHJjaGVuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIENDVGltZXI6OmlzQWN0aXZlKCkgaXMgaW5jb3JyZWN0IGlu
c2lkZSB0aWNrIGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwCmluZGV4IDYzZDQ4NDE0Nzg0MGY2ODk1
M2JhMzQ1MDdkMGVmY2E3OTFlOGZkNjcuLjJmZWRiOGQwNjQzMTk0OGMwNjM4ZWJmNjlmMTZjOTcz
Mzc4NDNmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwCkBAIC00MSwyNiArNDEsMjQgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1JREJJbmRleEJhY2tlbmRJbXBsOjpJREJJbmRleEJhY2tlbmRJbXBs
KElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0
IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG9iamVjdFN0b3JlQmFja2VuZCwgaW50NjRfdCBp
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHN0b3JlTmFtZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5KQorSURCSW5kZXhCYWNr
ZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9y
ZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RT
dG9yZUJhY2tlbmQsIGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5KQogICAgIDogbV9iYWNraW5n
U3RvcmUoYmFja2luZ1N0b3JlKQogICAgICwgbV9kYXRhYmFzZUlkKGRhdGFiYXNlSWQpCiAgICAg
LCBtX29iamVjdFN0b3JlQmFja2VuZChvYmplY3RTdG9yZUJhY2tlbmQpCiAgICAgLCBtX2lkKGlk
KQogICAgICwgbV9uYW1lKG5hbWUpCi0gICAgLCBtX3N0b3JlTmFtZShzdG9yZU5hbWUpCiAgICAg
LCBtX2tleVBhdGgoa2V5UGF0aCkKICAgICAsIG1fdW5pcXVlKHVuaXF1ZSkKICAgICAsIG1fbXVs
dGlFbnRyeShtdWx0aUVudHJ5KQogewogfQogCi1JREJJbmRleEJhY2tlbmRJbXBsOjpJREJJbmRl
eEJhY2tlbmRJbXBsKElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG9iamVjdFN0b3JlQmFja2Vu
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHN0b3JlTmFtZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5KQorSURCSW5kZXhCYWNr
ZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9y
ZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RT
dG9yZUJhY2tlbmQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBi
b29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5KQogICAgIDogbV9iYWNraW5nU3RvcmUoYmFja2lu
Z1N0b3JlKQogICAgICwgbV9kYXRhYmFzZUlkKGRhdGFiYXNlSWQpCiAgICAgLCBtX29iamVjdFN0
b3JlQmFja2VuZChvYmplY3RTdG9yZUJhY2tlbmQpCiAgICAgLCBtX2lkKEludmFsaWRJZCkKICAg
ICAsIG1fbmFtZShuYW1lKQotICAgICwgbV9zdG9yZU5hbWUoc3RvcmVOYW1lKQogICAgICwgbV9r
ZXlQYXRoKGtleVBhdGgpCiAgICAgLCBtX3VuaXF1ZSh1bmlxdWUpCiAgICAgLCBtX211bHRpRW50
cnkobXVsdGlFbnRyeSkKQEAgLTk2LDExICs5NCw3IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6b3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBvYmplY3RTdG9yZSA9IHRy
YW5zYWN0aW9uLT5vYmplY3RTdG9yZShpbmRleC0+bV9zdG9yZU5hbWUsIGVjKTsKLSAgICBBU1NF
UlQob2JqZWN0U3RvcmUgJiYgIWVjKTsKLQotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9y
ZUN1cnNvci5nZXQoKSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlvbi5nZXQoKSwg
b2JqZWN0U3RvcmUuZ2V0KCkpOworICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNv
ci5nZXQoKSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlvbi5nZXQoKSwgaW5kZXgt
Pm1fb2JqZWN0U3RvcmVCYWNrZW5kKTsKICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3Iu
cmVsZWFzZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5oCmluZGV4IGU2NDg1YjY2NGMzYTRlMzAzNzQ0YTMx
YmE2NDU5YzI1YTUzZWNlOWEuLjY1YzgzOGVlMmI4OWZjMmExMzM5ZTM0M2E5MTlhNDhlYTUzMDhj
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmgKQEAgLTQwLDEzICs0MCwxMyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogCiBjbGFzcyBJREJJbmRleEJhY2tlbmRJbXBsIDogcHVibGljIElEQkluZGV4
QmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCSW5k
ZXhCYWNrZW5kSW1wbD4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG9iamVjdFN0
b3JlQmFja2VuZCwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHN0b3JlTmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0
aUVudHJ5KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGNyZWF0
ZShJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZUJhY2tlbmQsIGludDY0X3QgaWQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9v
bCBtdWx0aUVudHJ5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJbmRl
eEJhY2tlbmRJbXBsKGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVCYWNrZW5k
LCBpZCwgbmFtZSwgc3RvcmVOYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnkpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJbmRleEJhY2tlbmRJbXBsKGJhY2tpbmdTdG9y
ZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVCYWNrZW5kLCBpZCwgbmFtZSwga2V5UGF0aCwgdW5p
cXVlLCBtdWx0aUVudHJ5KSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4
QmFja2VuZEltcGw+IGNyZWF0ZShJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRf
dCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9y
ZUJhY2tlbmQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNv
bnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBjcmVhdGUoSURCQmFja2luZ1N0
b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5kLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kSW1wbChiYWNraW5nU3RvcmUs
IGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlQmFja2VuZCwgbmFtZSwgc3RvcmVOYW1lLCBrZXlQYXRo
LCB1bmlxdWUsIG11bHRpRW50cnkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJ
bmRleEJhY2tlbmRJbXBsKGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVCYWNr
ZW5kLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnkpKTsKICAgICB9CiAgICAgdmly
dHVhbCB+SURCSW5kZXhCYWNrZW5kSW1wbCgpOwogCkBAIC02Miw3ICs2Miw2IEBAIHB1YmxpYzoK
IAogICAgIC8vIEltcGxlbWVudHMgSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLgogICAgIHZpcnR1
YWwgU3RyaW5nIG5hbWUoKSB7IHJldHVybiBtX25hbWU7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBz
dG9yZU5hbWUoKSB7IHJldHVybiBtX3N0b3JlTmFtZTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGtl
eVBhdGgoKSB7IHJldHVybiBtX2tleVBhdGg7IH0KICAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkg
eyByZXR1cm4gbV91bmlxdWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgbXVsdGlFbnRyeSgpIHsgcmV0
dXJuIG1fbXVsdGlFbnRyeTsgfQpAQCAtNzYsOCArNzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldEtleShQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogCiBw
cml2YXRlOgotICAgIElEQkluZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiwgaW50NjRfdCBp
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHN0b3JlTmFtZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5KTsKLSAgICBJREJJbmRl
eEJhY2tlbmRJbXBsKElEQkJhY2tpbmdTdG9yZSosIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3Qg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wg
bXVsdGlFbnRyeSk7CisgICAgSURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5nU3RvcmUqLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqLCBpbnQ2NF90IGlk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUs
IGJvb2wgbXVsdGlFbnRyeSk7CisgICAgSURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5nU3Rv
cmUqLCBpbnQ2NF90IGRhdGFiYXNlSWQsIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wg
bXVsdGlFbnRyeSk7CiAKICAgICBzdGF0aWMgdm9pZCBvcGVuQ3Vyc29ySW50ZXJuYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4sIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIElEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICBzdGF0aWMgdm9p
ZCBjb3VudEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQklu
ZGV4QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwpA
QCAtOTEsMTAgKzkwLDkgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBt
X2JhY2tpbmdTdG9yZTsKIAogICAgIGludDY0X3QgbV9kYXRhYmFzZUlkOwotICAgIGNvbnN0IElE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG1fb2JqZWN0U3RvcmVCYWNrZW5kOworICAgIElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwqIG1fb2JqZWN0U3RvcmVCYWNrZW5kOwogICAgIGludDY0X3Qg
bV9pZDsKICAgICBTdHJpbmcgbV9uYW1lOwotICAgIFN0cmluZyBtX3N0b3JlTmFtZTsKICAgICBT
dHJpbmcgbV9rZXlQYXRoOwogICAgIGJvb2wgbV91bmlxdWU7CiAgICAgYm9vbCBtX211bHRpRW50
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eEJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDgxMjcwYWU0YTk4YTlkNmIwYjU2OGFjMGQ5
MDY2ZDhhNDY0NmFiNzMuLjE1YWMzODY0NmFlNTFiZjVhNGM4MTgzMWJiODBlMmU1MDVkZWQ1NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFj
a2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4QmFja2VuZEludGVyZmFjZS5oCkBAIC00Niw3ICs0Niw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAogICAgIHZpcnR1YWwgU3Ry
aW5nIG5hbWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RvcmVOYW1lKCkgPSAwOwogICAg
IHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHVuaXF1ZSgp
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgbXVsdGlFbnRyeSgpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5jcHAKaW5kZXggN2UyYjU1MjcxZjc4Njc5NzIzZWJhZmFlODE1MWI0Y2IyYmI1NWFk
Mi4uNzY3ZGY3M2VhNGVkMjQyMzczMDJiNjI1NTJiY2U0YjQwMmI3ZDU4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5jcHAKQEAgLTUxOCw3ICs1MTgsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4
QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3JlYXRlSW5kZXgo
Y29ucwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBSZWZQdHI8SURCSW5kZXhCYWNr
ZW5kSW1wbD4gaW5kZXggPSBJREJJbmRleEJhY2tlbmRJbXBsOjpjcmVhdGUobV9iYWNraW5nU3Rv
cmUuZ2V0KCksIG1fZGF0YWJhc2VJZCwgdGhpcywgbmFtZSwgbV9uYW1lLCBrZXlQYXRoLCB1bmlx
dWUsIG11bHRpRW50cnkpOworICAgIFJlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBpbmRleCA9
IElEQkluZGV4QmFja2VuZEltcGw6OmNyZWF0ZShtX2JhY2tpbmdTdG9yZS5nZXQoKSwgbV9kYXRh
YmFzZUlkLCB0aGlzLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnkpOwogICAgIEFT
U0VSVChpbmRleC0+bmFtZSgpID09IG5hbWUpOwogCiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0gdGhpczsKQEAgLTY2NSw3ICs2NjUsNyBAQCB2b2lk
IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmxvYWRJbmRleGVzKCkKICAgICBBU1NFUlQobXVs
dGlFbnRyeUZsYWdzLnNpemUoKSA9PSBpZHMuc2l6ZSgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgaWRzLnNpemUoKTsgaSsrKQotICAgICAgICBtX2luZGV4ZXMuc2V0KG5hbWVzW2ld
LCBJREJJbmRleEJhY2tlbmRJbXBsOjpjcmVhdGUobV9iYWNraW5nU3RvcmUuZ2V0KCksIG1fZGF0
YWJhc2VJZCwgdGhpcywgaWRzW2ldLCBuYW1lc1tpXSwgbV9uYW1lLCBrZXlQYXRoc1tpXSwgdW5p
cXVlRmxhZ3NbaV0sIG11bHRpRW50cnlGbGFnc1tpXSkpOworICAgICAgICBtX2luZGV4ZXMuc2V0
KG5hbWVzW2ldLCBJREJJbmRleEJhY2tlbmRJbXBsOjpjcmVhdGUobV9iYWNraW5nU3RvcmUuZ2V0
KCksIG1fZGF0YWJhc2VJZCwgdGhpcywgaWRzW2ldLCBuYW1lc1tpXSwga2V5UGF0aHNbaV0sIHVu
aXF1ZUZsYWdzW2ldLCBtdWx0aUVudHJ5RmxhZ3NbaV0pKTsKIH0KIAogdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpyZW1vdmVJbmRleEZyb21NYXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUsIFBh
c3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaAppbmRleCAzN2FmMDJjMGM4YjMxMzlkZDM2YWViYzA3
YjVkMzgxNzU2M2EwYjc2Li44YzNkZjE5M2U0NmY5MTgwYmZjMWNlN2M5MDVmNGEzMmVhMTU3NmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKICAgICB9CisgICAgLy8gRklYTUU6IFJlbW92
ZSBtZXRob2Qgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgogICAgIHZpcnR1YWwgV2ViU3RyaW5n
IHN0b3JlTmFtZSgpIGNvbnN0CiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJh
Y2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tl
bmRQcm94eS5jcHAKaW5kZXggMDAxNGYyOTU5NmFlYjNhMWFjMzNhYjdjYmU2Y2M1MzgwOTIyMmJh
Ni4uZmM3NDZhYTZiMTIzYzRlZmFkYzgyNjdlNmEwNWNjMjBlNmExM2FjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcApAQCAt
NjAsMTEgKzYwLDYgQEAgU3RyaW5nIElEQkluZGV4QmFja2VuZFByb3h5OjpuYW1lKCkKICAgICBy
ZXR1cm4gbV93ZWJJREJJbmRleC0+bmFtZSgpOwogfQogCi1TdHJpbmcgSURCSW5kZXhCYWNrZW5k
UHJveHk6OnN0b3JlTmFtZSgpCi17Ci0gICAgcmV0dXJuIG1fd2ViSURCSW5kZXgtPnN0b3JlTmFt
ZSgpOwotfQotCiBTdHJpbmcgSURCSW5kZXhCYWNrZW5kUHJveHk6OmtleVBhdGgoKQogewogICAg
IHJldHVybiBtX3dlYklEQkluZGV4LT5rZXlQYXRoKCkuc3RyaW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaAppbmRleCA0MmUwZWFi
YmVlMTdhMTY3MDg3OGY3MDA1YjMwOWU1YmQxMjA4Y2QwLi5kNWNjOGJiZmVkOWQyNTJmMWFlNjBl
M2VjMDhmOWE3OTcxMzA3YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJJbmRleEJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkluZGV4QmFja2VuZFByb3h5LmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfklEQkluZGV4QmFja2VuZFByb3h5KCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBuYW1l
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RvcmVOYW1lKCk7CiAgICAgdmlydHVhbCBTdHJpbmcg
a2V5UGF0aCgpOwogICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUoKTsKICAgICB2aXJ0dWFsIGJvb2wg
bXVsdGlFbnRyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCSW5kZXhJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4
SW1wbC5jcHAKaW5kZXggMTcwOTM5NTY3NDA5NjAyZDg4ZjQ3YTY1ZjUwM2E5Y2ViODI3ZGFiNS4u
NzUyYTg2MjYzNzU5ZWE1MmY4ODk5M2JlN2NlYTQxMWU4YTA2MjY0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCkBAIC01MywxMSArNTMsNiBA
QCBXZWJTdHJpbmcgV2ViSURCSW5kZXhJbXBsOjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9i
YWNrZW5kLT5uYW1lKCk7CiB9CiAKLVdlYlN0cmluZyBXZWJJREJJbmRleEltcGw6OnN0b3JlTmFt
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFja2VuZC0+c3RvcmVOYW1lKCk7Ci19Ci0KIFdl
YklEQktleVBhdGggV2ViSURCSW5kZXhJbXBsOjprZXlQYXRoKCkgY29uc3QKIHsKICAgICByZXR1
cm4gV2ViSURCS2V5UGF0aChtX2JhY2tlbmQtPmtleVBhdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCmluZGV4IGQ4YjExMjlkMGYzZjU1ZDMzM2Zm
ZDYxOWMwOTljNDhhYmU5NWYzZmMuLjkwZDgzNjY2OTk5MDQwMGU4NjI4MGY1YTRkMzEyMWY5MGVh
YTdlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5o
CkBAIC00NCw3ICs0NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJJbmRleEltcGwo
KTsKIAogICAgIHZpcnR1YWwgV2ViU3RyaW5nIG5hbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdl
YlN0cmluZyBzdG9yZU5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYklEQktleVBhdGgga2V5
UGF0aCgpIGNvbnN0OwogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qgb25jZSBjYWxs
ZXJzIGFyZSB1cGRhdGVkLgogICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142361</attachid>
            <date>2012-05-16 16:04:53 -0700</date>
            <delta_ts>2012-05-16 16:29:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86676-20120516160452.patch</filename>
            <type>text/plain</type>
            <size>14392</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlkOWVhNjQwN2YwMzhh
OGMzNzhmZjk4OGJmN2Y4ZGVmNTc4N2Q4MS4uMGNkMTZjOGNjZDU0MGZjZTA1NzE3NDQ3NjhmMzM3
YmRlY2UwMzlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTE2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgSURCSW5kZXguc3RvcmVOYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbCk6IFJl
bW92ZSBzdG9yZU5hbWUgcGFyYW1ldGVyLCBhbmQKKyAgICAgICAgY29uc3QgZGVjbGFyYXRpb24g
b24gb2JqZWN0IHN0b3JlIHBhcmFtLiBUaGUgZm9ybWVyIHdhcyB1c2VkIHRvIGdldCBhIG5vbi1j
b25zdCBwb2ludGVyCisgICAgICAgIHZpYSBpbmRpcmVjdGlvbiBpbiBvcGVuQ3Vyc29ySW50ZXJu
YWwuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50
ZXJuYWwpOiBVc2Ugc3RvcmUgcG9pbnRlciBkaXJlY3RseSwgZG9uJ3QKKyAgICAgICAgbG9vayBp
dCB1cCBieSBuYW1lIGluIHRoZSB0cmFuc2FjdGlvbi4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJh
Y2tlbmRJbXBsOjpjcmVhdGUpOiBSZW1vdmUgc3RvcmVOYW1lIHBhcmFtZXRlcnMuCisgICAgICAg
IChJREJJbmRleEJhY2tlbmRJbXBsKTogUmVtb3ZlIHN0b3JlTmFtZSgpIG1ldGhvZC4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKElEQkluZGV4QmFja2VuZEludGVyZmFjZSk6IFJlbW92ZSBzdG9yZU5hbWUgcGFyYW1ldGVy
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3JlYXRl
SW5kZXgpOiBSZW1vdmUgc3RvcmVOYW1lIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OklE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmxvYWRJbmRleGVzKTogUmVtb3ZlIHN0b3JlTmFtZSBw
YXJhbWV0ZXIuCisKIDIwMTItMDUtMTYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwu
Y29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIEltYWdlRGVjb2RlckNHLmNwcCBmcm9t
IHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGM4
YzE3YWVmNmUwNTc3ZGFiNmE0YjE2YjBjYjc0NWNkZjJhY2IzNjkuLmNhOGJjNGE4NmQxN2JlYWYx
OWYzMGNmMmQxYzlmNmJhM2Y3NmQ3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMjEgQEAKIDIwMTItMDUtMTYgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9y
Zz4KIAorICAgICAgICBJbmRleGVkREI6IFJlbW92ZSBJREJJbmRleC5zdG9yZU5hbWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2Njc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURC
SW5kZXguaDoKKyAgICAgICAgKFdlYklEQkluZGV4KTogQ2FuJ3QgcmVtb3ZlIGZyb20gaGVyZSB1
bnRpbCBDaHJvbWl1bSBpcyB1cGRhdGVkCisgICAgICAgICogc3JjL0lEQkluZGV4QmFja2VuZFBy
b3h5LmNwcDogUmVtb3ZlZCBzdG9yZU5hbWUoKQorICAgICAgICAqIHNyYy9JREJJbmRleEJhY2tl
bmRQcm94eS5oOiBSZW1vdmVkIHN0b3JlTmFtZSgpCisgICAgICAgIChJREJJbmRleEJhY2tlbmRQ
cm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkluZGV4SW1wbC5jcHA6IFJlbW92ZWQgc3RvcmVO
YW1lKCkKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmg6IFJlbW92ZWQgc3RvcmVOYW1l
KCkKKyAgICAgICAgKFdlYklEQkluZGV4SW1wbCk6CisKKzIwMTItMDUtMTYgIEpvc2h1YSBCZWxs
ICA8anNiZWxsQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbQ2hyb21pdW1dIEluZGV4ZWREQjog
V2ViS2l0IEFQSSBmb3IgSURCT2JqZWN0U3RvcmUuYXV0b0luY3JlbWVudCBwcm9wZXJ0eQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2NjEKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5k
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbXBsLmNwcAppbmRleCBmYzcyMGRhMjc3NjA1OGY2MjA3ZjQzNzQyZDNmZTgwZTJlNjRiOWMz
Li41ZjU0ZTZhZDIwZjc2OGM3MmI1ZTc3ZTZlY2QzYzkxYjE5MzQ1YWYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBs
LmNwcApAQCAtNDEsMjYgKzQxLDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSURCSW5k
ZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5nU3RvcmUqIGJhY2tp
bmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsKiBvYmplY3RTdG9yZUJhY2tlbmQsIGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlx
dWUsIGJvb2wgbXVsdGlFbnRyeSkKK0lEQkluZGV4QmFja2VuZEltcGw6OklEQkluZGV4QmFja2Vu
ZEltcGwoSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5kLCBpbnQ2NF90IGlk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUs
IGJvb2wgbXVsdGlFbnRyeSkKICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAg
ICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQogICAgICwgbV9vYmplY3RTdG9yZUJhY2tlbmQo
b2JqZWN0U3RvcmVCYWNrZW5kKQogICAgICwgbV9pZChpZCkKICAgICAsIG1fbmFtZShuYW1lKQot
ICAgICwgbV9zdG9yZU5hbWUoc3RvcmVOYW1lKQogICAgICwgbV9rZXlQYXRoKGtleVBhdGgpCiAg
ICAgLCBtX3VuaXF1ZSh1bmlxdWUpCiAgICAgLCBtX211bHRpRW50cnkobXVsdGlFbnRyeSkKIHsK
IH0KIAotSURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5n
U3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZUJhY2tlbmQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlx
dWUsIGJvb2wgbXVsdGlFbnRyeSkKK0lEQkluZGV4QmFja2VuZEltcGw6OklEQkluZGV4QmFja2Vu
ZEltcGwoSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5kLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlF
bnRyeSkKICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAsIG1fZGF0YWJh
c2VJZChkYXRhYmFzZUlkKQogICAgICwgbV9vYmplY3RTdG9yZUJhY2tlbmQob2JqZWN0U3RvcmVC
YWNrZW5kKQogICAgICwgbV9pZChJbnZhbGlkSWQpCiAgICAgLCBtX25hbWUobmFtZSkKLSAgICAs
IG1fc3RvcmVOYW1lKHN0b3JlTmFtZSkKICAgICAsIG1fa2V5UGF0aChrZXlQYXRoKQogICAgICwg
bV91bmlxdWUodW5pcXVlKQogICAgICwgbV9tdWx0aUVudHJ5KG11bHRpRW50cnkpCkBAIC05Niwx
MSArOTQsNyBAQCB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cgogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi0+b2JqZWN0U3RvcmUo
aW5kZXgtPm1fc3RvcmVOYW1lLCBlYyk7Ci0gICAgQVNTRVJUKG9iamVjdFN0b3JlICYmICFlYyk7
Ci0KLSAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vyc29yID0gSURCQ3Vy
c29yQmFja2VuZEltcGw6OmNyZWF0ZShiYWNraW5nU3RvcmVDdXJzb3IuZ2V0KCksIGRpcmVjdGlv
biwgY3Vyc29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCksIG9iamVjdFN0b3JlLmdldCgpKTsKKyAg
ICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vyc29yID0gSURCQ3Vyc29yQmFj
a2VuZEltcGw6OmNyZWF0ZShiYWNraW5nU3RvcmVDdXJzb3IuZ2V0KCksIGRpcmVjdGlvbiwgY3Vy
c29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZCk7
CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuaAppbmRleCAzMGI3YjY2OGExNjgwMjU2YjdkZGFjMDllMTFhY2M3MzYxNjliOTAwLi45NWUw
ZjFlMDEwZTdiNGQ5ZTM0ZDdjY2JkYmIxNDc4MGY1N2IwMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5oCkBAIC00
MCwxMyArNDAsMTMgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgSURC
SW5kZXhCYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGNyZWF0ZShJ
REJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZUJhY2tlbmQsIGludDY0X3QgaWQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmlu
ZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBjcmVhdGUoSURCQmFja2luZ1N0b3JlKiBiYWNr
aW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCog
b2JqZWN0U3RvcmVCYWNrZW5kLCBpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kSW1wbChiYWNraW5nU3Rv
cmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlQmFja2VuZCwgaWQsIG5hbWUsIHN0b3JlTmFtZSwg
a2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSURCSW5kZXhCYWNrZW5kSW1wbChiYWNraW5nU3RvcmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0
b3JlQmFja2VuZCwgaWQsIG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSkpOwogICAg
IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBjcmVhdGUoSURC
QmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5kLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgc3RvcmVOYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJv
b2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCSW5k
ZXhCYWNrZW5kSW1wbD4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG9iamVjdFN0b3JlQmFj
a2VuZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5p
cXVlLCBib29sIG11bHRpRW50cnkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IElEQkluZGV4QmFja2VuZEltcGwoYmFja2luZ1N0b3JlLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9y
ZUJhY2tlbmQsIG5hbWUsIHN0b3JlTmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kSW1wbChiYWNraW5n
U3RvcmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlQmFja2VuZCwgbmFtZSwga2V5UGF0aCwgdW5p
cXVlLCBtdWx0aUVudHJ5KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfklEQkluZGV4QmFja2VuZElt
cGwoKTsKIApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBJbXBsZW1lbnRzIElE
QkluZGV4QmFja2VuZEludGVyZmFjZS4KICAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgeyByZXR1
cm4gbV9uYW1lOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RvcmVOYW1lKCkgeyByZXR1cm4gbV9z
dG9yZU5hbWU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCkgeyByZXR1cm4gbV9rZXlQ
YXRoOyB9CiAgICAgdmlydHVhbCBib29sIHVuaXF1ZSgpIHsgcmV0dXJuIG1fdW5pcXVlOyB9CiAg
ICAgdmlydHVhbCBib29sIG11bHRpRW50cnkoKSB7IHJldHVybiBtX211bHRpRW50cnk7IH0KQEAg
LTc2LDggKzc1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRLZXkoUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKLSAgICBJREJJbmRleEJh
Y2tlbmRJbXBsKElEQkJhY2tpbmdTdG9yZSosIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbCosIGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlx
dWUsIGJvb2wgbXVsdGlFbnRyeSk7Ci0gICAgSURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5n
U3RvcmUqLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgc3RvcmVOYW1lLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkpOworICAgIElEQklu
ZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsKiwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkpOworICAg
IElEQkluZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkpOwogCiAgICAgc3Rh
dGljIHZvaWQgb3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JU
eXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgY291bnRJbnRlcm5hbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKQEAgLTk0LDEwICs5Myw5IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKICAgICBp
bnQ2NF90IG1fZGF0YWJhc2VJZDsKLSAgICBjb25zdCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
KiBtX29iamVjdFN0b3JlQmFja2VuZDsKKyAgICBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBt
X29iamVjdFN0b3JlQmFja2VuZDsKICAgICBpbnQ2NF90IG1faWQ7CiAgICAgU3RyaW5nIG1fbmFt
ZTsKLSAgICBTdHJpbmcgbV9zdG9yZU5hbWU7CiAgICAgU3RyaW5nIG1fa2V5UGF0aDsKICAgICBi
b29sIG1fdW5pcXVlOwogICAgIGJvb2wgbV9tdWx0aUVudHJ5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2Uu
aAppbmRleCA4MTI3MGFlNGE5OGE5ZDZiMGI1NjhhYzBkOTA2NmQ4YTQ2NDZhYjczLi4xNWFjMzg2
NDZhZTUxYmY1YTRjODE4MzFiYjgwZTJlNTA1ZGVkNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2Uu
aApAQCAtNDYsNyArNDYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlKCkgeyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHN0b3JlTmFtZSgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBrZXlQYXRo
KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUoKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IG11bHRpRW50cnkoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCmluZGV4IDdjZDhk
M2NkNjQ2MzRmNjc3OWI5OWJmNTA0OTU0M2Q4ZTFiMzlhYzIuLjc5NGQ2NTAyMWIxNTVjNjMwYjg5
NGJhZDI5M2Y5ZTQ5NDI4Mzg4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC01
MTgsNyArNTE4LDcgQEAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGNvbnMKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCi0gICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gSURCSW5k
ZXhCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZSgpLmdldCgpLCBkYXRhYmFzZUlkKCks
IHRoaXMsIG5hbWUsIG1fbmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KTsKKyAgICBS
ZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXggPSBJREJJbmRleEJhY2tlbmRJbXBsOjpj
cmVhdGUoYmFja2luZ1N0b3JlKCkuZ2V0KCksIGRhdGFiYXNlSWQoKSwgdGhpcywgbmFtZSwga2V5
UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KTsKICAgICBBU1NFUlQoaW5kZXgtPm5hbWUoKSA9PSBu
YW1lKTsKIAogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9y
ZSA9IHRoaXM7CkBAIC02NjUsNyArNjY1LDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsOjpsb2FkSW5kZXhlcygpCiAgICAgQVNTRVJUKG11bHRpRW50cnlGbGFncy5zaXplKCkgPT0g
aWRzLnNpemUoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlkcy5zaXplKCk7IGkr
KykKLSAgICAgICAgbV9pbmRleGVzLnNldChuYW1lc1tpXSwgSURCSW5kZXhCYWNrZW5kSW1wbDo6
Y3JlYXRlKGJhY2tpbmdTdG9yZSgpLmdldCgpLCBkYXRhYmFzZUlkKCksIHRoaXMsIGlkc1tpXSwg
bmFtZXNbaV0sIG1fbmFtZSwga2V5UGF0aHNbaV0sIHVuaXF1ZUZsYWdzW2ldLCBtdWx0aUVudHJ5
RmxhZ3NbaV0pKTsKKyAgICAgICAgbV9pbmRleGVzLnNldChuYW1lc1tpXSwgSURCSW5kZXhCYWNr
ZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZSgpLmdldCgpLCBkYXRhYmFzZUlkKCksIHRoaXMs
IGlkc1tpXSwgbmFtZXNbaV0sIGtleVBhdGhzW2ldLCB1bmlxdWVGbGFnc1tpXSwgbXVsdGlFbnRy
eUZsYWdzW2ldKSk7CiB9CiAKIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cmVtb3Zl
SW5kZXhGcm9tTWFwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2Vu
ZEltcGw+IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCSW5kZXguaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4
LmgKaW5kZXggMzdhZjAyYzBjOGIzMTM5ZGQzNmFlYmMwN2I1ZDM4MTc1NjNhMGI3Ni4uOGMzZGYx
OTNlNDZmOTE4MGJmYzFjZTdjOTA1ZjRhMzJlYTE1NzZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gV2ViU3Ry
aW5nKCk7CiAgICAgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgbWV0aG9kIG9uY2UgY2FsbGVycyBh
cmUgdXBkYXRlZC4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzdG9yZU5hbWUoKSBjb25zdAogICAg
IHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCmluZGV4IDAwMTRm
Mjk1OTZhZWIzYTFhYzMzYWI3Y2JlNmNjNTM4MDkyMjJiYTYuLmZjNzQ2YWE2YjEyM2M0ZWZhZGM4
MjY3ZTZhMDVjYzIwZTZhMTNhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKQEAgLTYwLDExICs2MCw2IEBAIFN0cmluZyBJ
REJJbmRleEJhY2tlbmRQcm94eTo6bmFtZSgpCiAgICAgcmV0dXJuIG1fd2ViSURCSW5kZXgtPm5h
bWUoKTsKIH0KIAotU3RyaW5nIElEQkluZGV4QmFja2VuZFByb3h5OjpzdG9yZU5hbWUoKQotewot
ICAgIHJldHVybiBtX3dlYklEQkluZGV4LT5zdG9yZU5hbWUoKTsKLX0KLQogU3RyaW5nIElEQklu
ZGV4QmFja2VuZFByb3h5OjprZXlQYXRoKCkKIHsKICAgICByZXR1cm4gbV93ZWJJREJJbmRleC0+
a2V5UGF0aCgpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkluZGV4QmFja2VuZFByb3h5LmgKaW5kZXggNDJlMGVhYmJlZTE3YTE2NzA4NzhmNzAwNWIzMDll
NWJkMTIwOGNkMC4uZDVjYzhiYmZlZDlkMjUyZjFhZTYwZTNlYzA4ZjlhNzk3MTMwN2M0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5o
CkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJJbmRleEJhY2tlbmRQ
cm94eSgpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5n
IHN0b3JlTmFtZSgpOwogICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKTsKICAgICB2aXJ0dWFs
IGJvb2wgdW5pcXVlKCk7CiAgICAgdmlydHVhbCBib29sIG11bHRpRW50cnkoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCmluZGV4IDE3MDkzOTU2
NzQwOTYwMmQ4OGY0N2E2NWY1MDNhOWNlYjgyN2RhYjUuLjc1MmE4NjI2Mzc1OWVhNTJmODg5OTNi
ZTdjZWE0MTFlOGEwNjI2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkluZGV4SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCSW5kZXhJbXBsLmNwcApAQCAtNTMsMTEgKzUzLDYgQEAgV2ViU3RyaW5nIFdlYklEQkluZGV4
SW1wbDo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2VuZC0+bmFtZSgpOwogfQogCi1X
ZWJTdHJpbmcgV2ViSURCSW5kZXhJbXBsOjpzdG9yZU5hbWUoKSBjb25zdAotewotICAgIHJldHVy
biBtX2JhY2tlbmQtPnN0b3JlTmFtZSgpOwotfQotCiBXZWJJREJLZXlQYXRoIFdlYklEQkluZGV4
SW1wbDo6a2V5UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYklEQktleVBhdGgobV9iYWNr
ZW5kLT5rZXlQYXRoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCSW5kZXhJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRl
eEltcGwuaAppbmRleCBkOGIxMTI5ZDBmM2Y1NWQzMzNmZmQ2MTljMDk5YzQ4YWJlOTVmM2ZjLi45
MGQ4MzY2Njk5OTA0MDBlODYyODBmNWE0ZDMxMjFmOTBlYWE3ZTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApAQCAtNDQsNyArNDQsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+V2ViSURCSW5kZXhJbXBsKCk7CiAKICAgICB2aXJ0dWFsIFdlYlN0
cmluZyBuYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgc3RvcmVOYW1lKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdDsKICAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRlZC4KICAgICAv
LyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142366</attachid>
            <date>2012-05-16 16:29:15 -0700</date>
            <delta_ts>2012-05-17 16:19:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86676-20120516162914.patch</filename>
            <type>text/plain</type>
            <size>14575</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlkOWVhNjQwN2YwMzhh
OGMzNzhmZjk4OGJmN2Y4ZGVmNTc4N2Q4MS4uMTkxNmY2N2E2NGNlMDI2MWE0YTcxMTY2YzNkNDNh
YzIxNjNmNjA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA1LTE2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgSURCSW5kZXguc3RvcmVOYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9sZGVyIHZlcnNpb25zIG9mIHRoZSBJREIgc3BlYyBleHBvc2VkIElEQklu
ZGV4LnN0b3JlTmFtZS4gV2hpbGUgaXQncyBiZWVuIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUg
SURMLCB0aGUgYWRkaXRpb25hbCBzdG9yYWdlL3BsdW1iaW5nIGFyZSB1bm5lY2Vzc2FyeSBjbHV0
dGVyLiBOdWtlIGl0IQorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGZ1bmN0aW9uYWwgY2hh
bmdlcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNr
ZW5kSW1wbCk6IFJlbW92ZSBzdG9yZU5hbWUgcGFyYW1ldGVyLCBhbmQKKyAgICAgICAgY29uc3Qg
ZGVjbGFyYXRpb24gb24gb2JqZWN0IHN0b3JlIHBhcmFtLiBUaGUgZm9ybWVyIHdhcyB1c2VkIHRv
IGdldCBhIG5vbi1jb25zdCBwb2ludGVyCisgICAgICAgIHZpYSBpbmRpcmVjdGlvbiBpbiBvcGVu
Q3Vyc29ySW50ZXJuYWwuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpv
cGVuQ3Vyc29ySW50ZXJuYWwpOiBVc2Ugc3RvcmUgcG9pbnRlciBkaXJlY3RseSwgZG9uJ3QKKyAg
ICAgICAgbG9vayBpdCB1cCBieSBuYW1lIGluIHRoZSB0cmFuc2FjdGlvbi4KKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJJbmRleEJhY2tlbmRJbXBsOjpjcmVhdGUpOiBSZW1vdmUgc3RvcmVOYW1lIHBhcmFtZXRl
cnMuCisgICAgICAgIChJREJJbmRleEJhY2tlbmRJbXBsKTogUmVtb3ZlIHN0b3JlTmFtZSgpIG1l
dGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKElEQkluZGV4QmFja2VuZEludGVyZmFjZSk6IFJlbW92ZSBzdG9yZU5h
bWUgcGFyYW1ldGVyLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbDo6Y3JlYXRlSW5kZXgpOiBSZW1vdmUgc3RvcmVOYW1lIHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmxvYWRJbmRleGVzKTogUmVtb3Zl
IHN0b3JlTmFtZSBwYXJhbWV0ZXIuCisKIDIwMTItMDUtMTYgIE5vZWwgR29yZG9uICA8bm9lbC5n
b3Jkb25AZ21haWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIEltYWdlRGVjb2Rl
ckNHLmNwcCBmcm9tIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGM4YzE3YWVmNmUwNTc3ZGFiNmE0YjE2YjBjYjc0NWNkZjJhY2IzNjkuLmNhOGJj
NGE4NmQxN2JlYWYxOWYzMGNmMmQxYzlmNmJhM2Y3NmQ3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTItMDUtMTYgIEpvc2h1YSBCZWxsICA8anNiZWxs
QGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IFJlbW92ZSBJREJJbmRleC5zdG9y
ZU5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2
Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCSW5kZXguaDoKKyAgICAgICAgKFdlYklEQkluZGV4KTogQ2FuJ3QgcmVtb3Zl
IGZyb20gaGVyZSB1bnRpbCBDaHJvbWl1bSBpcyB1cGRhdGVkCisgICAgICAgICogc3JjL0lEQklu
ZGV4QmFja2VuZFByb3h5LmNwcDogUmVtb3ZlZCBzdG9yZU5hbWUoKQorICAgICAgICAqIHNyYy9J
REJJbmRleEJhY2tlbmRQcm94eS5oOiBSZW1vdmVkIHN0b3JlTmFtZSgpCisgICAgICAgIChJREJJ
bmRleEJhY2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkluZGV4SW1wbC5jcHA6IFJl
bW92ZWQgc3RvcmVOYW1lKCkKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmg6IFJlbW92
ZWQgc3RvcmVOYW1lKCkKKyAgICAgICAgKFdlYklEQkluZGV4SW1wbCk6CisKKzIwMTItMDUtMTYg
IEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbQ2hyb21pdW1d
IEluZGV4ZWREQjogV2ViS2l0IEFQSSBmb3IgSURCT2JqZWN0U3RvcmUuYXV0b0luY3JlbWVudCBw
cm9wZXJ0eQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODY2NjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXhCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleEJhY2tlbmRJbXBsLmNwcAppbmRleCBmYzcyMGRhMjc3NjA1OGY2MjA3ZjQzNzQyZDNm
ZTgwZTJlNjRiOWMzLi41ZjU0ZTZhZDIwZjc2OGM3MmI1ZTc3ZTZlY2QzYzkxYjE5MzQ1YWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eEJhY2tlbmRJbXBsLmNwcApAQCAtNDEsMjYgKzQxLDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1wbChJREJCYWNraW5n
U3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZUJhY2tlbmQsIGludDY0X3QgaWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKK0lEQkluZGV4QmFja2VuZEltcGw6OklE
QkluZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3Qg
ZGF0YWJhc2VJZCwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5k
LCBpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwg
Ym9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tp
bmdTdG9yZSkKICAgICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQogICAgICwgbV9vYmplY3RT
dG9yZUJhY2tlbmQob2JqZWN0U3RvcmVCYWNrZW5kKQogICAgICwgbV9pZChpZCkKICAgICAsIG1f
bmFtZShuYW1lKQotICAgICwgbV9zdG9yZU5hbWUoc3RvcmVOYW1lKQogICAgICwgbV9rZXlQYXRo
KGtleVBhdGgpCiAgICAgLCBtX3VuaXF1ZSh1bmlxdWUpCiAgICAgLCBtX211bHRpRW50cnkobXVs
dGlFbnRyeSkKIHsKIH0KIAotSURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNrZW5kSW1w
bChJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25z
dCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZUJhY2tlbmQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKK0lEQkluZGV4QmFja2VuZEltcGw6OklE
QkluZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3Qg
ZGF0YWJhc2VJZCwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5k
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUs
IGJvb2wgbXVsdGlFbnRyeSkKICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAg
ICAsIG1fZGF0YWJhc2VJZChkYXRhYmFzZUlkKQogICAgICwgbV9vYmplY3RTdG9yZUJhY2tlbmQo
b2JqZWN0U3RvcmVCYWNrZW5kKQogICAgICwgbV9pZChJbnZhbGlkSWQpCiAgICAgLCBtX25hbWUo
bmFtZSkKLSAgICAsIG1fc3RvcmVOYW1lKHN0b3JlTmFtZSkKICAgICAsIG1fa2V5UGF0aChrZXlQ
YXRoKQogICAgICwgbV91bmlxdWUodW5pcXVlKQogICAgICwgbV9tdWx0aUVudHJ5KG11bHRpRW50
cnkpCkBAIC05NiwxMSArOTQsNyBAQCB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJz
b3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi0+
b2JqZWN0U3RvcmUoaW5kZXgtPm1fc3RvcmVOYW1lLCBlYyk7Ci0gICAgQVNTRVJUKG9iamVjdFN0
b3JlICYmICFlYyk7Ci0KLSAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vy
c29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZShiYWNraW5nU3RvcmVDdXJzb3IuZ2V0
KCksIGRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCksIG9iamVjdFN0b3Jl
LmdldCgpKTsKKyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vyc29yID0g
SURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZShiYWNraW5nU3RvcmVDdXJzb3IuZ2V0KCksIGRp
cmVjdGlvbiwgY3Vyc29yVHlwZSwgdHJhbnNhY3Rpb24uZ2V0KCksIGluZGV4LT5tX29iamVjdFN0
b3JlQmFja2VuZCk7CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4QmFja2VuZEltcGwuaAppbmRleCAzMGI3YjY2OGExNjgwMjU2YjdkZGFjMDllMTFhY2M3MzYx
NjliOTAwLi45NWUwZjFlMDEwZTdiNGQ5ZTM0ZDdjY2JkYmIxNDc4MGY1N2IwMDI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5k
SW1wbC5oCkBAIC00MCwxMyArNDAsMTMgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IAogY2xhc3MgSURCSW5kZXhCYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZElt
cGw+IGNyZWF0ZShJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZUJhY2tlbmQs
IGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBjcmVhdGUoSURCQmFja2lu
Z1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5kLCBpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRy
eSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kSW1w
bChiYWNraW5nU3RvcmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlQmFja2VuZCwgaWQsIG5hbWUs
IHN0b3JlTmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kSW1wbChiYWNraW5nU3RvcmUsIGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlQmFja2VuZCwgaWQsIG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgbXVsdGlF
bnRyeSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBs
PiBjcmVhdGUoSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJ
ZCwgY29uc3QgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmVCYWNrZW5kLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgc3RvcmVOYW1lLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZSogYmFja2lu
Z1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG9i
amVjdFN0b3JlQmFja2VuZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IElEQkluZGV4QmFja2VuZEltcGwoYmFja2luZ1N0b3JlLCBkYXRhYmFzZUlk
LCBvYmplY3RTdG9yZUJhY2tlbmQsIG5hbWUsIHN0b3JlTmFtZSwga2V5UGF0aCwgdW5pcXVlLCBt
dWx0aUVudHJ5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5k
SW1wbChiYWNraW5nU3RvcmUsIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlQmFja2VuZCwgbmFtZSwg
a2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfklEQklu
ZGV4QmFja2VuZEltcGwoKTsKIApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBJ
bXBsZW1lbnRzIElEQkluZGV4QmFja2VuZEludGVyZmFjZS4KICAgICB2aXJ0dWFsIFN0cmluZyBu
YW1lKCkgeyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RvcmVOYW1lKCkg
eyByZXR1cm4gbV9zdG9yZU5hbWU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCkgeyBy
ZXR1cm4gbV9rZXlQYXRoOyB9CiAgICAgdmlydHVhbCBib29sIHVuaXF1ZSgpIHsgcmV0dXJuIG1f
dW5pcXVlOyB9CiAgICAgdmlydHVhbCBib29sIG11bHRpRW50cnkoKSB7IHJldHVybiBtX211bHRp
RW50cnk7IH0KQEAgLTc2LDggKzc1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRL
ZXkoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKLSAg
ICBJREJJbmRleEJhY2tlbmRJbXBsKElEQkJhY2tpbmdTdG9yZSosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgY29uc3QgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCosIGludDY0X3QgaWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSk7Ci0gICAgSURCSW5kZXhCYWNrZW5kSW1w
bChJREJCYWNraW5nU3RvcmUqLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgc3RvcmVO
YW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkp
OworICAgIElEQkluZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiwgaW50NjRfdCBpZCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRp
RW50cnkpOworICAgIElEQkluZGV4QmFja2VuZEltcGwoSURCQmFja2luZ1N0b3JlKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnkp
OwogCiAgICAgc3RhdGljIHZvaWQgb3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlOjpDdXJzb3JUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgY291bnRJbnRl
cm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJ
bXBsPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKQEAgLTk0LDEwICs5
Myw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3Rv
cmU7CiAKICAgICBpbnQ2NF90IG1fZGF0YWJhc2VJZDsKLSAgICBjb25zdCBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsKiBtX29iamVjdFN0b3JlQmFja2VuZDsKKyAgICBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsKiBtX29iamVjdFN0b3JlQmFja2VuZDsKICAgICBpbnQ2NF90IG1faWQ7CiAgICAg
U3RyaW5nIG1fbmFtZTsKLSAgICBTdHJpbmcgbV9zdG9yZU5hbWU7CiAgICAgU3RyaW5nIG1fa2V5
UGF0aDsKICAgICBib29sIG1fdW5pcXVlOwogICAgIGJvb2wgbV9tdWx0aUVudHJ5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbnRlcmZhY2UuaAppbmRleCA4MTI3MGFlNGE5OGE5ZDZiMGI1NjhhYzBkOTA2NmQ4YTQ2NDZh
YjczLi4xNWFjMzg2NDZhZTUxYmY1YTRjODE4MzFiYjgwZTJlNTA1ZGVkNTRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbnRlcmZhY2UuaApAQCAtNDYsNyArNDYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHN0b3JlTmFtZSgpID0gMDsKICAgICB2aXJ0dWFsIFN0
cmluZyBrZXlQYXRoKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUoKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIG11bHRpRW50cnkoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3Bw
CmluZGV4IDdjZDhkM2NkNjQ2MzRmNjc3OWI5OWJmNTA0OTU0M2Q4ZTFiMzlhYzIuLjc5NGQ2NTAy
MWIxNTVjNjMwYjg5NGJhZDI5M2Y5ZTQ5NDI4Mzg4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwCkBAIC01MTgsNyArNTE4LDcgQEAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGNvbnMKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGlu
ZGV4ID0gSURCSW5kZXhCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZSgpLmdldCgpLCBk
YXRhYmFzZUlkKCksIHRoaXMsIG5hbWUsIG1fbmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVu
dHJ5KTsKKyAgICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXggPSBJREJJbmRleEJh
Y2tlbmRJbXBsOjpjcmVhdGUoYmFja2luZ1N0b3JlKCkuZ2V0KCksIGRhdGFiYXNlSWQoKSwgdGhp
cywgbmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KTsKICAgICBBU1NFUlQoaW5kZXgt
Pm5hbWUoKSA9PSBuYW1lKTsKIAogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
PiBvYmplY3RTdG9yZSA9IHRoaXM7CkBAIC02NjUsNyArNjY1LDcgQEAgdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpsb2FkSW5kZXhlcygpCiAgICAgQVNTRVJUKG11bHRpRW50cnlGbGFn
cy5zaXplKCkgPT0gaWRzLnNpemUoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlk
cy5zaXplKCk7IGkrKykKLSAgICAgICAgbV9pbmRleGVzLnNldChuYW1lc1tpXSwgSURCSW5kZXhC
YWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZSgpLmdldCgpLCBkYXRhYmFzZUlkKCksIHRo
aXMsIGlkc1tpXSwgbmFtZXNbaV0sIG1fbmFtZSwga2V5UGF0aHNbaV0sIHVuaXF1ZUZsYWdzW2ld
LCBtdWx0aUVudHJ5RmxhZ3NbaV0pKTsKKyAgICAgICAgbV9pbmRleGVzLnNldChuYW1lc1tpXSwg
SURCSW5kZXhCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZSgpLmdldCgpLCBkYXRhYmFz
ZUlkKCksIHRoaXMsIGlkc1tpXSwgbmFtZXNbaV0sIGtleVBhdGhzW2ldLCB1bmlxdWVGbGFnc1tp
XSwgbXVsdGlFbnRyeUZsYWdzW2ldKSk7CiB9CiAKIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbDo6cmVtb3ZlSW5kZXhGcm9tTWFwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElE
QkluZGV4QmFja2VuZEltcGw+IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkluZGV4LmgKaW5kZXggMzdhZjAyYzBjOGIzMTM5ZGQzNmFlYmMwN2I1ZDM4MTc1NjNh
MGI3Ni4uOGMzZGYxOTNlNDZmOTE4MGJmYzFjZTdjOTA1ZjRhMzJlYTE1NzZjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCkBAIC00Nyw2ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm4gV2ViU3RyaW5nKCk7CiAgICAgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgbWV0aG9kIG9u
Y2UgY2FsbGVycyBhcmUgdXBkYXRlZC4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzdG9yZU5hbWUo
KSBjb25zdAogICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3Bw
CmluZGV4IDAwMTRmMjk1OTZhZWIzYTFhYzMzYWI3Y2JlNmNjNTM4MDkyMjJiYTYuLmZjNzQ2YWE2
YjEyM2M0ZWZhZGM4MjY3ZTZhMDVjYzIwZTZhMTNhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKQEAgLTYwLDExICs2MCw2
IEBAIFN0cmluZyBJREJJbmRleEJhY2tlbmRQcm94eTo6bmFtZSgpCiAgICAgcmV0dXJuIG1fd2Vi
SURCSW5kZXgtPm5hbWUoKTsKIH0KIAotU3RyaW5nIElEQkluZGV4QmFja2VuZFByb3h5OjpzdG9y
ZU5hbWUoKQotewotICAgIHJldHVybiBtX3dlYklEQkluZGV4LT5zdG9yZU5hbWUoKTsKLX0KLQog
U3RyaW5nIElEQkluZGV4QmFja2VuZFByb3h5OjprZXlQYXRoKCkKIHsKICAgICByZXR1cm4gbV93
ZWJJREJJbmRleC0+a2V5UGF0aCgpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmgKaW5kZXggNDJlMGVhYmJlZTE3YTE2NzA4
NzhmNzAwNWIzMDllNWJkMTIwOGNkMC4uZDVjYzhiYmZlZDlkMjUyZjFhZTYwZTNlYzA4ZjlhNzk3
MTMwN2M0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhC
YWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJh
Y2tlbmRQcm94eS5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJJ
bmRleEJhY2tlbmRQcm94eSgpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIHN0b3JlTmFtZSgpOwogICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCk7CiAgICAgdmlydHVhbCBib29sIG11bHRpRW50cnko
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCmlu
ZGV4IDE3MDkzOTU2NzQwOTYwMmQ4OGY0N2E2NWY1MDNhOWNlYjgyN2RhYjUuLjc1MmE4NjI2Mzc1
OWVhNTJmODg5OTNiZTdjZWE0MTFlOGEwNjI2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcApAQCAtNTMsMTEgKzUzLDYgQEAgV2ViU3RyaW5n
IFdlYklEQkluZGV4SW1wbDo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2VuZC0+bmFt
ZSgpOwogfQogCi1XZWJTdHJpbmcgV2ViSURCSW5kZXhJbXBsOjpzdG9yZU5hbWUoKSBjb25zdAot
ewotICAgIHJldHVybiBtX2JhY2tlbmQtPnN0b3JlTmFtZSgpOwotfQotCiBXZWJJREJLZXlQYXRo
IFdlYklEQkluZGV4SW1wbDo6a2V5UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYklEQktl
eVBhdGgobV9iYWNrZW5kLT5rZXlQYXRoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJJbmRleEltcGwuaAppbmRleCBkOGIxMTI5ZDBmM2Y1NWQzMzNmZmQ2MTljMDk5YzQ4
YWJlOTVmM2ZjLi45MGQ4MzY2Njk5OTA0MDBlODYyODBmNWE0ZDMxMjFmOTBlYWE3ZTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApAQCAtNDQsNyAr
NDQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCSW5kZXhJbXBsKCk7CiAKICAgICB2
aXJ0dWFsIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgc3Rv
cmVOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25z
dDsKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgY2FsbGVycyBhcmUgdXBk
YXRlZC4KICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>