<?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>54193</bug_id>
          
          <creation_ts>2011-02-10 05:21:05 -0800</creation_ts>
          <short_desc>Implement IDBObjectStore::clear</short_desc>
          <delta_ts>2011-02-12 03:56:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>andreip</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>hans</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348975</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-02-10 05:21:05 -0800</bug_when>
    <thetext>Implement IDBObjectStore::clear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348976</commentid>
    <comment_count>1</comment_count>
      <attachid>81955</attachid>
    <who name="">jochen</who>
    <bug_when>2011-02-10 05:21:51 -0800</bug_when>
    <thetext>Created attachment 81955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349225</commentid>
    <comment_count>2</comment_count>
      <attachid>81955</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-10 11:34:58 -0800</bug_when>
    <thetext>Comment on attachment 81955
Patch

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

&gt; LayoutTests/storage/indexeddb/objectstore-basics.html:281
&gt; +    shouldBe(&quot;store.indexNames.length&quot;, &quot;0&quot;);

clear should only clear the _data_ in the object store and indexes....not the indexes themselves

the proper test is to open a cursor with no key range (it&apos;ll read everything) and verify it immediately returns null (which tells you it&apos;s at the end)

And then, for good measure, open a keyCursor on some index and verify the same thing.

&gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:386
&gt; +    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;

Are you sure this stuff is needed?  (I think some parts of this file went pretty overboard with this...we only need to do prp and then copy it into RefPtr when a param is a PassRefPtr and we pass it to another method that takes a PassRefPtr.

&gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:393
&gt; +    m_indexes.clear();

Whoa...you don&apos;t want to do this

&gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:411
&gt; +    callbacks-&gt;onSuccess(SerializedScriptValue::nullValue());

The spec says this should be undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349227</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-10 11:36:28 -0800</bug_when>
    <thetext>Hans, can you please review Jochen&apos;s stuff if I&apos;m asleep (to shorten the cycles)?

Jochen, let me know if you want any more IndexedDB patches.  :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349768</commentid>
    <comment_count>4</comment_count>
      <attachid>82133</attachid>
    <who name="">jochen</who>
    <bug_when>2011-02-11 07:35:44 -0800</bug_when>
    <thetext>Created attachment 82133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349770</commentid>
    <comment_count>5</comment_count>
      <attachid>82134</attachid>
    <who name="">jochen</who>
    <bug_when>2011-02-11 07:39:08 -0800</bug_when>
    <thetext>Created attachment 82134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349771</commentid>
    <comment_count>6</comment_count>
      <attachid>82135</attachid>
    <who name="">jochen</who>
    <bug_when>2011-02-11 07:40:51 -0800</bug_when>
    <thetext>Created attachment 82135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349772</commentid>
    <comment_count>7</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-02-11 07:42:23 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 81955 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81955&amp;action=review
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/objectstore-basics.html:281
&gt; &gt; +    shouldBe(&quot;store.indexNames.length&quot;, &quot;0&quot;);
&gt; 
&gt; clear should only clear the _data_ in the object store and indexes....not the indexes themselves
&gt; 
&gt; the proper test is to open a cursor with no key range (it&apos;ll read everything) and verify it immediately returns null (which tells you it&apos;s at the end)
&gt; 
&gt; And then, for good measure, open a keyCursor on some index and verify the same thing.
&gt; 
&gt; &gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:386
&gt; &gt; +    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
&gt; 
&gt; Are you sure this stuff is needed?  (I think some parts of this file went pretty overboard with this...we only need to do prp and then copy it into RefPtr when a param is a PassRefPtr and we pass it to another method that takes a PassRefPtr.

Well, the method takes a prp and invokes a method that takes a prp, so I think it&apos;s required.

&gt; 
&gt; &gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:393
&gt; &gt; +    m_indexes.clear();
&gt; 
&gt; Whoa...you don&apos;t want to do this
&gt; 
&gt; &gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:411
&gt; &gt; +    callbacks-&gt;onSuccess(SerializedScriptValue::nullValue());
&gt; 
&gt; The spec says this should be undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349797</commentid>
    <comment_count>8</comment_count>
      <attachid>82135</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-11 09:06:42 -0800</bug_when>
    <thetext>Comment on attachment 82135
Patch

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

close

&gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:390
&gt; +        return;

not needed...so you can get rid of the {}&apos;s too

&gt; Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp:405
&gt; +    doClear(objectStore-&gt;sqliteDatabase(), &quot;DELETE FROM ObjectStoreData&quot;);

Sorry for missing this earlier, but you need to only delete the data for your object store.  Please make sure your layout test double checks this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350103</commentid>
    <comment_count>9</comment_count>
      <attachid>82198</attachid>
    <who name="">jochen</who>
    <bug_when>2011-02-11 15:36:56 -0800</bug_when>
    <thetext>Created attachment 82198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350116</commentid>
    <comment_count>10</comment_count>
      <attachid>82198</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-11 15:45:24 -0800</bug_when>
    <thetext>Comment on attachment 82198
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350256</commentid>
    <comment_count>11</comment_count>
      <attachid>82198</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-12 03:56:21 -0800</bug_when>
    <thetext>Comment on attachment 82198
Patch

Clearing flags on attachment: 82198

Committed r78416: &lt;http://trac.webkit.org/changeset/78416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350257</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-12 03:56:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81955</attachid>
            <date>2011-02-10 05:21:51 -0800</date>
            <delta_ts>2011-02-11 07:35:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54193-20110210142148.patch</filename>
            <type>text/plain</type>
            <size>18490</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgyMDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzIzMmIzYWUwNTY4YmFmMDkwYWMw
NjZlZDA4ODExODk5MjE5MmI3Li45YzExZjFlN2E2Yzc2MjcyYzYwNzZkYTc5ODA5NjBmNzIxODEx
Zjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTEt
MDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHNraXAgZmFpbGluZyBmYXN0L3RleHQvY2FwaXRhbGl6ZS1ib3VuZGFyaWVz
Lmh0bWwgb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IGNmYmRiYmZiMDY4MDAwY2Iy
Y2NhZDNiMWE2MWU0NTg1MTJlNDU3ZDguLmYxZjQ2MWY4YWViYTAzN2ExMWViYTdhY2FjOGM1Mjg0
YmM3NzYxZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMjM3LDYgKzIzNyw0MCBA
QCBQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LnJlc3Vs
dCBpcyBudWxsCitzdG9yZS5jbGVhcigpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScg
aW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworY2xl
YXJTdWNjZXNzKCk6CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScg
aW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBl
dmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworUEFTUyBldmVudC5yZXN1bHQgaXMg
bnVsbAorUEFTUyBzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCBpcyAwCitzdG9yZS5nZXQodGVzdERh
dGUpCitnZXRTdWNjZXNzQ2xlYXJlZEtleSgpOgorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1Mg
J3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1Mg
ZXZlbnQucmVzdWx0IGlzIHVuZGVmaW5lZC4KIHN0b3JlID0gZXZlbnQuc291cmNlCiBQYXNzaW5n
IGFuIGludmFsaWQga2V5IGludG8gc3RvcmUuZ2V0KCkuCiBQQVNTIENhdWdodCBleGNlcHRpb246
IEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAppbmRl
eCA0NmI3NzFlMDNlYzJhYmZjN2ZkNzhiOTBlMjhjYzAzM2Q0NGY4NTg4Li5hZDEwYmY2ODkxZmZl
NTlkMTM0ZGE0MTNmZTllNzA1MTBjNDBhYmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbApAQCAtMjY2LDYgKzI2Niwy
OSBAQCBmdW5jdGlvbiByZW1vdmVTdWNjZXNzKCkKICAgICBkZWJ1ZygicmVtb3ZlU3VjY2Vzcygp
OiIpOwogICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CiAgICAgc2hvdWxkQmVOdWxsKCJl
dmVudC5yZXN1bHQiKTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmNsZWFyKCki
KTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY2xl
YXJTdWNjZXNzOworICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Cit9CisKK2Z1bmN0aW9uIGNsZWFyU3VjY2VzcygpCit7CisgICAgZGVidWcoImNsZWFyU3VjY2Vz
cygpOiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgc2hvdWxkQmVOdWxs
KCJldmVudC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgic3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgi
LCAiMCIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmdldCh0ZXN0RGF0ZSkiKTsK
KyAgICByZXN1bHQuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGdldFN1Y2Nlc3NDbGVhcmVk
S2V5LCBmYWxzZSk7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKK30KKworZnVuY3Rpb24gZ2V0U3VjY2Vzc0NsZWFyZWRLZXkoKQoreworICAgIGRlYnVnKCJn
ZXRTdWNjZXNzQ2xlYXJlZEtleSgpOiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7
CisgICAgc2hvdWxkQmVVbmRlZmluZWQoImV2ZW50LnJlc3VsdCIpOwogICAgIHZhciBzdG9yZSA9
IGV2YWxBbmRMb2coInN0b3JlID0gZXZlbnQuc291cmNlIik7CiAKICAgICB0cnkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDE3YzhjMjc5YjFlYTc5OTUxOTc0YzUyOGQ3NmE1OWI3YTEwM2I3NzUuLjU0OWZjZDI3
NDc0NmZjYTMxMzYxNmJmZTcxYjcwMGQyMmFlNjZjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxMS0wMi0xMCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgSURCT2JqZWN0U3RvcmU6OmNsZWFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NDE5MworCisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y2xlYXIpOgorICAgICAg
ICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXIp
OgorICAgICAgICAoV2ViQ29yZTo6ZG9DbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsOjpjbGVhckludGVybmFsKToKKyAgICAgICAgKiBzdG9yYWdlL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZS5oOgorCiAyMDExLTAyLTEwICB0YWthbm8gdGFrdW1pICA8dGFr
YW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAxYmE4NzMzMzkwY2Ix
YzRkMTI2MGZmOGY3ODZhZmVjODA2NzM5MWUxLi41M2FlMjc5NjdhYjRmYWUxMDYzMTBlNWQyZjUy
YjE0MzUwODFmZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNw
cApAQCAtMTAzLDYgKzEwMywxNSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0
b3JlOjpkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogICAgIHJldHVy
biByZXF1ZXN0OwogfQogCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpj
bGVhcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CisgICAg
bV9vYmplY3RTdG9yZS0+Y2xlYXIocmVxdWVzdCwgbV90cmFuc2FjdGlvbi0+YmFja2VuZCgpLCBl
Yyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcmVxdWVzdDsK
K30KKwogUGFzc1JlZlB0cjxJREJJbmRleD4gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4KGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBjb25zdCBPcHRpb25zT2Jq
ZWN0JiBvcHRpb25zLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBib29sIHVuaXF1ZSA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5o
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCmluZGV4IDQzMmNmMTkw
Yzg2MDBmZWQwZjI3N2NmNTlhZGNhMzk5MDMxYThlN2QuLmYwYzVlYmY2ZjAwZTM3NWM0NDM3OWNj
NmMwNjQzMjc2OTZhYmUwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
T2JqZWN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
LmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
YWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gcHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNsZWFyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBF
eGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBjcmVhdGVJbmRleChj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgY29uc3QgT3B0aW9uc09i
amVjdCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChj
b25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZS5pZGwKaW5kZXggNzI5MTc3YjM1NmJkMjc5ZjU1NTA0YzQwMmUxYTA5
YjBhMGM4MWVhNS4uYzk1ZmI5ZDZmMGZlZGQxNTVlMDgxNmEzODBjM2NmZDc5MGEzMTMzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKQEAgLTM4LDYgKzM4LDgg
QEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2Vw
dGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1l
bnRhdGlvbkZ1bmN0aW9uPWRlbGV0ZUZ1bmN0aW9uXSBJREJSZXF1ZXN0IGRlbGV0ZShpbiBJREJL
ZXkga2V5KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CisgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNsZWFyKCkK
KyAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5IGtl
eSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGlu
IFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNTdjY2QzNmY4ZDFkZjRkODA5MTAxNDJmNzg5MmZj
MGNjODM2YzZiOS4uNzk2ZmFjMDZiNjFjMWY5MTQxNWEwNDI3M2NjMWIxOWVlNjIzZWMyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwCkBAIC0zNzUsNiArMzc1LDQyIEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bDo6ZGVsZXRlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQCiAgICAg
Y2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSk7
CiB9CiAKK3ZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXIoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKHRyYW5zYWN0aW9u
LT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlJFQURfT05MWSkgeworICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpSRUFEX09OTFlfRVJSOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0g
dGhpczsKKyAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MgPSBwcnBDYWxsYmFja3M7
CisKKyAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRlQ2FsbGJhY2tUYXNr
KCZJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjbGVhckludGVybmFsLCBvYmplY3RTdG9yZSwg
Y2FsbGJhY2tzKSkpIHsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0FM
TE9XRURfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbmRleGVzLmNsZWFy
KCk7Cit9CisKK3N0YXRpYyB2b2lkIGRvQ2xlYXIoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBj
aGFyKiBzcWwpCit7CisgICAgU1FMaXRlU3RhdGVtZW50IGRlbGV0ZVF1ZXJ5KGRiLCBzcWwpOwor
ICAgIGJvb2wgb2sgPSBkZWxldGVRdWVyeS5wcmVwYXJlKCkgPT0gU1FMUmVzdWx0T2s7CisgICAg
QVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgor
ICAgIG9rID0gZGVsZXRlUXVlcnkuc3RlcCgpID09IFNRTFJlc3VsdERvbmU7CisgICAgQVNTRVJU
X1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgorfQorCit2
b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNsZWFySW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0
U3RvcmUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgZG9DbGVh
cihvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIE9iamVjdFN0b3Jl
RGF0YSIpOworICAgIGRvQ2xlYXIob2JqZWN0U3RvcmUtPnNxbGl0ZURhdGFiYXNlKCksICJERUxF
VEUgRlJPTSBJbmRleERhdGEiKTsKKyAgICBkb0NsZWFyKG9iamVjdFN0b3JlLT5zcWxpdGVEYXRh
YmFzZSgpLCAiREVMRVRFIEZST00gSW5kZXhlcyIpOworCisgICAgY2FsbGJhY2tzLT5vblN1Y2Nl
c3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSk7Cit9CisKIFBhc3NSZWZQdHI8
SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjcmVh
dGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX2luZGV4ZXMuY29udGFpbnMobmFtZSkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgK
aW5kZXggNjY4NTk3MzA2MGI1ZmVkYjJjODBmNzgyN2FiMzI4MjU3ZGQ3Y2U5YS4uYjU0ZjlmZGEw
OWI5ZDYwMTI3ZTBhM2Q2ODJiZTM0NjlhYjc0Zjg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTY5LDYgKzY5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXQoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcihQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2U+IGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQ
YXRoLCBib29sIHVuaXF1ZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2U+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtODksNiAr
OTAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGdldEludGVybmFsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNz
UmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogICAgIHN0YXRp
YyB2b2lkIHB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAgIHN0YXRp
YyB2b2lkIGRlbGV0ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pOworICAgIHN0YXRpYyB2b2lkIGNsZWFySW50ZXJuYWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bD4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlSW5k
ZXhJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICBzdGF0aWMgdm9pZCBk
ZWxldGVJbmRleEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAgIHN0YXRp
YyB2b2lkIG9wZW5DdXJzb3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
cmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
LmgKaW5kZXggZmEyODQxNmE2NjAyYzg4M2M3OWEzYTVmNDgyOWI2YjY5YWYzZGU4OS4uMTc3NzAx
YzRiZGFhZGE4MzVmMzAzODJiNTg4NGVjYjU5MzJmZTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCkBAIC02
MCw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9uKFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGNs
ZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlv
bkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IFN0cmluZyYg
bmFtZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMTRkYzY4ZDk1ZDQzMDQxYjRmMTQxMzRi
YWUyOTZhMzk5MzY0ZjExZS4uNmRiMWQ5ZDhkODg5OTQwMWM3MDdiOTVlYWJjYTI2NGMyZmY0NWM2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMS0wMi0x
MCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgSURCT2JqZWN0U3Rv
cmU6OmNsZWFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDE5MworCisgICAgICAgICogc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVQcm94eTo6Y2xlYXIpOgorICAgICAgICAqIHNyYy9J
REJPYmplY3RTdG9yZVByb3h5Lmg6CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlSW1wbDo6Y2xlYXIpOgor
ICAgICAgICAqIHNyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaDoKKworMjAxMS0wMi0xMCAgSm9j
aGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBi
eSBKZXJlbXkgT3Jsb3cuCiAKICAgICAgICAgW2Nocm9taXVtXSBhZGQgV2ViSURCT2JqZWN0U3Rv
cmU6OmNsZWFyIG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCT2JqZWN0U3RvcmVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJP
YmplY3RTdG9yZVByb3h5LmNwcAppbmRleCBjNTdmYmE2YmU0OTcxMmNjMDFiZmRhMzkzMTU3ZTZl
NzJmNTZkMWUwLi5kNjg3MWUwMDhkYmQxY2Q4ZDQzODkyYTE5YjM3YjMwZDc1YjMxYTRhIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNw
cApAQCAtOTYsNiArOTYsMTQgQEAgdm9pZCBJREJPYmplY3RTdG9yZVByb3h5OjpkZWxldGVGdW5j
dGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkMKICAgICBtX3dlYklE
Qk9iamVjdFN0b3JlLT5kZWxldGVGdW5jdGlvbihrZXksIG5ldyBXZWJJREJDYWxsYmFja3NJbXBs
KGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBl
Yyk7CiB9CiAKK3ZvaWQgSURCT2JqZWN0U3RvcmVQcm94eTo6Y2xlYXIoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFu
c2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBv
aW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMs
IGluIHRoZSByZW5kZXJlciwKKyAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRl
cmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgorICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJv
eHkqPih0cmFuc2FjdGlvbik7CisgICAgbV93ZWJJREJPYmplY3RTdG9yZS0+Y2xlYXIobmV3IFdl
YklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklE
QlRyYW5zYWN0aW9uKCksIGVjKTsKK30KKwogUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2U+IElEQk9iamVjdFN0b3JlUHJveHk6OmNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8g
VGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8g
YSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaAppbmRleCA0OThiYzU3OTkxM2VkMTky
OTBkOTdhYWRlZmE2MTgyMDAxMGVlOWFjLi5hNmUzNzQ4MzA5MjdjMjM5NGE0OTU0OGFkNWI2ZGMw
YmY5ZTdjMzQ1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmpl
Y3RTdG9yZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0
U3RvcmVQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2
b2lkIHB1dChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURC
S2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmly
dHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlPiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwu
Y3BwCmluZGV4IDQ5OGViNzZiOTU2NzRlZDE3Y2Q2NTEwNDhmYzg1YmY5ZmViMDEwOWIuLjlmZTYx
NjY4NDhlZWViNDE5ZjAwNzczZWI4YzQ0YTFjZWQyNjVjNzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcApAQCAtODEsNiAr
ODEsMTEgQEAgdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmRlbGV0ZUZ1bmN0aW9uKGNvbnN0
IFdlYklEQktleSYga2V5LCBXZWJJREJDYWxsYmFja3MKICAgICBtX29iamVjdFN0b3JlLT5kZWxl
dGVGdW5jdGlvbihrZXksIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSwgdHJh
bnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKIH0KIAor
dm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmNsZWFyKFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIG1fb2JqZWN0U3RvcmUtPmNsZWFyKElEQkNhbGxiYWNrc1Byb3h5Ojpj
cmVhdGUoY2FsbGJhY2tzKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKCksIGVjKTsKK30KKwogV2ViSURCSW5kZXgqIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6
Y3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGtleVBh
dGgsIGJvb2wgdW5pcXVlLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdl
YkV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2U+IGluZGV4ID0gbV9vYmplY3RTdG9yZS0+Y3JlYXRlSW5kZXgobmFtZSwga2V5UGF0aCwgdW5p
cXVlLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3Rv
cmVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUlt
cGwuaAppbmRleCA3MzE2ZjlhNmFhYzEwY2I3MmRkYzUwYjA2NjQyMDQzNzM5MGQ1Y2Y1Li4zZTJk
ZmFiYjU5NTAyMGM1MDc5N2FmYjlmMGFlNjViNDI2ZjU5ZjA0IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaApAQCAtNTAsNiArNTAs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXQoY29uc3QgV2ViSURCS2V5JiBrZXksIFdlYklEQkNh
bGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgcHV0KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IFdlYklE
QktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9u
JiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlRnVuY3Rpb24oY29uc3QgV2Vi
SURCS2V5JiBrZXksIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwg
V2ViRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgY2xlYXIoV2ViSURCQ2FsbGJhY2tzKiwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAKICAgICBXZWJJREJJ
bmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcm
IGtleVBhdGgsIGJvb2wgdW5pcXVlLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBXZWJJREJJbmRleCogaW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBXZWJFeGNlcHRpb25Db2RlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82133</attachid>
            <date>2011-02-11 07:35:44 -0800</date>
            <delta_ts>2011-02-11 07:39:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54193-20110211163540.patch</filename>
            <type>text/plain</type>
            <size>19718</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgyMDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzIzMmIzYWUwNTY4YmFmMDkwYWMw
NjZlZDA4ODExODk5MjE5MmI3Li45YzExZjFlN2E2Yzc2MjcyYzYwNzZkYTc5ODA5NjBmNzIxODEx
Zjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTEt
MDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHNraXAgZmFpbGluZyBmYXN0L3RleHQvY2FwaXRhbGl6ZS1ib3VuZGFyaWVz
Lmh0bWwgb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IGNmYmRiYmZiMDY4MDAwY2Iy
Y2NhZDNiMWE2MWU0NTg1MTJlNDU3ZDguLmZmMDFlMDQwNzNkMDUwMWYyNjU1NGM5ZTdhMjQ1ZTRl
MTAxNDg2YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMjM3LDE1ICsyMzcsNjMg
QEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQu
dGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5yZXN1
bHQgaXMgbnVsbAorc3RvcmUuY2xlYXIoKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMg
dHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUn
IGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK2Ns
ZWFyU3VjY2VzcygpOgorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQucmVzdWx0IGlz
IHVuZGVmaW5lZC4KK3N0b3JlLm9wZW5DdXJzb3IoKQorb3BlbkN1cnNvclN1Y2Nlc3MoKToKK1N1
Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
J2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBu
dWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQorCitQQVNTIGV2ZW50LnJlc3VsdCBpcyBudWxsCitpbmRleCA9IHN0
b3JlLmluZGV4KCdpbmRleE5hbWUnKQoraW5kZXgub3BlbktleUN1cnNvcigpCitvcGVuS2V5Q3Vy
c29yU3VjY2VzcygpOgorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQucmVzdWx0IGlz
IG51bGwKIHN0b3JlID0gZXZlbnQuc291cmNlCiBQYXNzaW5nIGFuIGludmFsaWQga2V5IGludG8g
c3RvcmUuZ2V0KCkuCiBQQVNTIENhdWdodCBleGNlcHRpb246IEVycm9yOiBUWVBFX01JU01BVENI
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNwogUGFzc2luZyBhbiBpbnZhbGlkIGtleSBpbnRvIHN0b3Jl
LmRlbGV0ZSgpLgotUEFTUyBDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjogVFlQRV9NSVNNQVRDSF9F
UlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgQ2F1Z2h0IGV4Y2VwdGlvbjogVHlwZUVycm9yOiBP
YmplY3QgIzxJREJJbmRleD4gaGFzIG5vIG1ldGhvZCAnZGVsZXRlJwogUGFzc2luZyBhbiBpbnZh
bGlkIGtleSBpbnRvIHN0b3JlLmFkZCgpLgotUEFTUyBDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjog
VFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgQ2F1Z2h0IGV4Y2VwdGlv
bjogVHlwZUVycm9yOiBPYmplY3QgIzxJREJJbmRleD4gaGFzIG5vIG1ldGhvZCAnYWRkJwogUGFz
c2luZyBhbiBpbnZhbGlkIGtleSBpbnRvIHN0b3JlLnB1dCgpLgotUEFTUyBDYXVnaHQgZXhjZXB0
aW9uOiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgQ2F1
Z2h0IGV4Y2VwdGlvbjogVHlwZUVycm9yOiBPYmplY3QgIzxJREJJbmRleD4gaGFzIG5vIG1ldGhv
ZCAncHV0JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1i
YXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJh
c2ljcy5odG1sCmluZGV4IDQ2Yjc3MWUwM2VjMmFiZmM3ZmQ3OGI5MGUyOGNjMDMzZDQ0Zjg1ODgu
LmQzMjgwMmU5Nzg1ZGNkYjA1ZWNmYjk0MTZlNDIyMTI0MGQ4ZmMwZmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBA
IC0yNjYsNiArMjY2LDQyIEBAIGZ1bmN0aW9uIHJlbW92ZVN1Y2Nlc3MoKQogICAgIGRlYnVnKCJy
ZW1vdmVTdWNjZXNzKCk6Iik7CiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKICAgICBz
aG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOworCisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygi
c3RvcmUuY2xlYXIoKSIpOworICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAgIHJlc3VsdC5v
bnN1Y2Nlc3MgPSBjbGVhclN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY2xlYXJTdWNjZXNzKCkKK3sKKyAgICBkZWJ1
ZygiY2xlYXJTdWNjZXNzKCk6Iik7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAg
ICBzaG91bGRCZVVuZGVmaW5lZCgiZXZlbnQucmVzdWx0Iik7CisKKyAgICByZXN1bHQgPSBldmFs
QW5kTG9nKCJzdG9yZS5vcGVuQ3Vyc29yKCkiKTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gb3Bl
bkN1cnNvclN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gb3BlbkN1cnNvclN1Y2Nlc3MoKQoreworICAgIGRlYnVnKCJv
cGVuQ3Vyc29yU3VjY2VzcygpOiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7Cisg
ICAgc2hvdWxkQmVOdWxsKCJldmVudC5yZXN1bHQiKTsKKworICAgIGluZGV4ID0gZXZhbEFuZExv
ZygiaW5kZXggPSBzdG9yZS5pbmRleCgnaW5kZXhOYW1lJykiKTsKKyAgICByZXN1bHQgPSBldmFs
QW5kTG9nKCJpbmRleC5vcGVuS2V5Q3Vyc29yKCkiKTsKKyAgICByZXN1bHQub25zdWNjZXNzID0g
b3BlbktleUN1cnNvclN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlbktleUN1cnNvclN1Y2Nlc3MoKQoreworICAg
IGRlYnVnKCJvcGVuS2V5Q3Vyc29yU3VjY2VzcygpOiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVu
dChldmVudCk7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5yZXN1bHQiKTsKKwogICAgIHZhciBz
dG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZXZlbnQuc291cmNlIik7CiAKICAgICB0cnkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDE3YzhjMjc5YjFlYTc5OTUxOTc0YzUyOGQ3NmE1OWI3YTEwM2I3NzUuLjU0
OWZjZDI3NDc0NmZjYTMxMzYxNmJmZTcxYjcwMGQyMmFlNjZjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMS0wMi0xMCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgSURCT2JqZWN0U3RvcmU6OmNsZWFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE5MworCisgICAgICAgICogc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y2xlYXIpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lE
Qk9iamVjdFN0b3JlLmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6
Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6ZG9DbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjbGVhckludGVybmFsKToKKyAgICAgICAgKiBzdG9y
YWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9i
amVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oOgorCiAyMDExLTAyLTEwICB0YWthbm8gdGFrdW1p
ICA8dGFrYW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAxYmE4NzMz
MzkwY2IxYzRkMTI2MGZmOGY3ODZhZmVjODA2NzM5MWUxLi41M2FlMjc5NjdhYjRmYWUxMDYzMTBl
NWQyZjUyYjE0MzUwODFmZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlLmNwcApAQCAtMTAzLDYgKzEwMywxNSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9i
amVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogICAg
IHJldHVybiByZXF1ZXN0OwogfQogCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0
b3JlOjpjbGVhcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7
CisgICAgbV9vYmplY3RTdG9yZS0+Y2xlYXIocmVxdWVzdCwgbV90cmFuc2FjdGlvbi0+YmFja2Vu
ZCgpLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcmVx
dWVzdDsKK30KKwogUGFzc1JlZlB0cjxJREJJbmRleD4gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUlu
ZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBjb25zdCBPcHRp
b25zT2JqZWN0JiBvcHRpb25zLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBib29sIHVuaXF1
ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCmluZGV4IDQz
MmNmMTkwYzg2MDBmZWQwZjI3N2NmNTlhZGNhMzk5MDMxYThlN2QuLmYwYzVlYmY2ZjAwZTM3NWM0
NDM3OWNjNmMwNjQzMjc2OTZhYmUwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gYWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNsZWFyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBjcmVhdGVJ
bmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgY29uc3QgT3B0
aW9uc09iamVjdCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBp
bmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKaW5kZXggNzI5MTc3YjM1NmJkMjc5ZjU1NTA0YzQw
MmUxYTA5YjBhMGM4MWVhNS4uYzk1ZmI5ZDZmMGZlZGQxNTVlMDgxNmEzODBjM2NmZDc5MGEzMTMz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKQEAgLTM4LDYg
KzM4LDggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFz
ZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJ
bXBsZW1lbnRhdGlvbkZ1bmN0aW9uPWRlbGV0ZUZ1bmN0aW9uXSBJREJSZXF1ZXN0IGRlbGV0ZShp
biBJREJLZXkga2V5KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7
CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNs
ZWFyKCkKKyAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURC
S2V5IGtleSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vy
c29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNTdjY2QzNmY4ZDFkZjRkODA5MTAxNDJm
Nzg5MmZjMGNjODM2YzZiOS4uZWQxNWU4MmNiZjM4NGYxMzFmMWQ0NDVlOWY0YzUyYTI4YWE2MzAy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGwuY3BwCkBAIC0zNzUsNiArMzc1LDM5IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6ZGVsZXRlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFs
dWUoKSk7CiB9CiAKK3ZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXIoUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKHRyYW5z
YWN0aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlJFQURfT05MWSkgeworICAgICAgICBl
YyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpSRUFEX09OTFlfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0
b3JlID0gdGhpczsKKyAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MgPSBwcnBDYWxs
YmFja3M7CisKKyAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRlQ2FsbGJh
Y2tUYXNrKCZJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjbGVhckludGVybmFsLCBvYmplY3RT
dG9yZSwgY2FsbGJhY2tzKSkpIHsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
Tk9UX0FMTE9XRURfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCitzdGF0aWMgdm9p
ZCBkb0NsZWFyKFNRTGl0ZURhdGFiYXNlJiBkYiwgY29uc3QgY2hhciogc3FsKQoreworICAgIFNR
TGl0ZVN0YXRlbWVudCBkZWxldGVRdWVyeShkYiwgc3FsKTsKKyAgICBib29sIG9rID0gZGVsZXRl
UXVlcnkucHJlcGFyZSgpID09IFNRTFJlc3VsdE9rOworICAgIEFTU0VSVF9VTlVTRUQob2ssIG9r
KTsgLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZy4KKyAgICBvayA9IGRlbGV0ZVF1ZXJ5
LnN0ZXAoKSA9PSBTUUxSZXN1bHREb25lOworICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8g
RklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZy4KK30KKwordm9pZCBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsOjpjbGVhckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIGRvQ2xlYXIob2JqZWN0U3RvcmUtPnNxbGl0
ZURhdGFiYXNlKCksICJERUxFVEUgRlJPTSBPYmplY3RTdG9yZURhdGEiKTsKKyAgICBkb0NsZWFy
KG9iamVjdFN0b3JlLT5zcWxpdGVEYXRhYmFzZSgpLCAiREVMRVRFIEZST00gSW5kZXhEYXRhIik7
CisKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVm
aW5lZFZhbHVlKCkpOworfQorCiBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4g
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
bV9pbmRleGVzLmNvbnRhaW5zKG5hbWUpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCmluZGV4IDY2ODU5NzMwNjBiNWZlZGIyYzgw
Zjc4MjdhYjMyODI1N2RkN2NlOWEuLmI1NGY5ZmRhMDliOWQ2MDEyN2UwYTNkNjgyYmUzNDY5YWI3
NGY4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5oCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0KFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRy
PElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJbmRleChjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleChjb25zdCBTdHJpbmcmIG5h
bWUsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTg5LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBnZXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+KTsKICAgICBzdGF0aWMgdm9pZCBwdXRJbnRlcm5hbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIFB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICBzdGF0aWMgdm9pZCBkZWxldGVJbnRlcm5hbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
PiwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKyAg
ICBzdGF0aWMgdm9pZCBjbGVhckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4pOwogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUluZGV4SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQ
dHI8SURCSW5kZXhCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgZGVsZXRlSW5kZXhJbnRlcm5hbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwg
UGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICBzdGF0aWMgdm9pZCBvcGVuQ3Vyc29ySW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IGZhMjg0MTZhNjYwMmM4ODNj
NzlhM2E1ZjQ4MjliNmI2OWFmM2RlODkuLjE3NzcwMWM0YmRhYWRhODM1ZjMwMzgyYjU4ODRlY2I1
OTMyZmUwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHB1dChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NS
ZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29k
ZSYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBjbGVhcihQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CisKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9
IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5k
ZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDE0ZGM2OGQ5NWQ0MzA0MWI0ZjE0MTM0YmFlMjk2YTM5OTM2NGYxMWUuLjZkYjFkOWQ4
ZDg4OTk0MDFjNzA3Yjk1ZWFiY2EyNjRjMmZmNDVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAqIHNyYy9J
REJPYmplY3RTdG9yZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
UHJveHk6OmNsZWFyKToKKyAgICAgICAgKiBzcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oOgorICAg
ICAgICAqIHNyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJPYmplY3RTdG9yZUltcGw6OmNsZWFyKToKKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0
U3RvcmVJbXBsLmg6CisKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgogCiAgICAgICAg
IFtjaHJvbWl1bV0gYWRkIFdlYklEQk9iamVjdFN0b3JlOjpjbGVhciBtZXRob2QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKaW5kZXgg
YzU3ZmJhNmJlNDk3MTJjYzAxYmZkYTM5MzE1N2U2ZTcyZjU2ZDFlMC4uZDY4NzFlMDA4ZGJkMWNk
OGQ0Mzg5MmExOWIzN2IzMGQ3NWIzMWE0YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKQEAgLTk2LDYgKzk2LDE0IEBAIHZvaWQg
SURCT2JqZWN0U3RvcmVQcm94eTo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSwgUGFzc1JlZlB0cjxJREJDCiAgICAgbV93ZWJJREJPYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rp
b24oa2V5LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Q
cm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwogfQogCit2b2lkIElEQk9iamVjdFN0
b3JlUHJveHk6OmNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUg
YSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCisgICAgLy8g
YWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4K
KyAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRp
Y19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOworICAgIG1f
d2ViSURCT2JqZWN0U3RvcmUtPmNsZWFyKG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNr
cyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Cit9CisK
IFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZVByb3h5
OjpjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwg
Ym9vbCB1bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlz
IGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUg
cmVuZGVyZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmpl
Y3RTdG9yZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9y
ZVByb3h5LmgKaW5kZXggNDk4YmM1Nzk5MTNlZDE5MjkwZDk3YWFkZWZhNjE4MjAwMTBlZTlhYy4u
YTZlMzc0ODMwOTI3YzIzOTRhNDk1NDhhZDViNmRjMGJmOWU3YzM0NSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaApAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktl
eT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcihQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAppbmRleCA0OThlYjc2Yjk1Njc0ZWQx
N2NkNjUxMDQ4ZmM4NWJmOWZlYjAxMDliLi45ZmU2MTY2ODQ4ZWVlYjQxOWYwMDc3M2ViOGM0NGEx
Y2VkMjY1YzcxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJP
YmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5jcHAKQEAgLTgxLDYgKzgxLDExIEBAIHZvaWQgV2ViSURCT2JqZWN0
U3RvcmVJbXBsOjpkZWxldGVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmIGtleSwgV2ViSURCQ2Fs
bGJhY2tzCiAgICAgbV9vYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rpb24oa2V5LCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSgpLCBlYyk7CiB9CiAKK3ZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBs
OjpjbGVhcihXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBtX29iamVjdFN0
b3JlLT5jbGVhcihJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0
aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Cit9CisKIFdlYklE
QkluZGV4KiBXZWJJREJPYmplY3RTdG9yZUltcGw6OmNyZWF0ZUluZGV4KGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0U3RvcmUt
PmNyZWF0ZUluZGV4KG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKaW5kZXggNzMxNmY5YTZhYWMxMGNi
NzJkZGM1MGIwNjY0MjA0MzczOTBkNWNmNS4uM2UyZGZhYmI1OTUwMjBjNTA3OTdhZmI5ZjBhZTY1
YjQyNmY1OWYwNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
KGNvbnN0IFdlYklEQktleSYga2V5LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHB1dChjb25zdCBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxs
YmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYga2V5LCBXZWJJREJDYWxsYmFj
a3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIGNsZWFyKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2Vi
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgV2ViSURCSW5kZXgqIGNyZWF0ZUluZGV4KGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgV2ViSURCSW5k
ZXgqIGluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViRXhjZXB0aW9uQ29kZSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82134</attachid>
            <date>2011-02-11 07:39:08 -0800</date>
            <delta_ts>2011-02-11 07:40:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54193-20110211163906.patch</filename>
            <type>text/plain</type>
            <size>19776</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgyMDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzIzMmIzYWUwNTY4YmFmMDkwYWMw
NjZlZDA4ODExODk5MjE5MmI3Li45YzExZjFlN2E2Yzc2MjcyYzYwNzZkYTc5ODA5NjBmNzIxODEx
Zjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTEt
MDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHNraXAgZmFpbGluZyBmYXN0L3RleHQvY2FwaXRhbGl6ZS1ib3VuZGFyaWVz
Lmh0bWwgb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IGNmYmRiYmZiMDY4MDAwY2Iy
Y2NhZDNiMWE2MWU0NTg1MTJlNDU3ZDguLmZmMDFlMDQwNzNkMDUwMWYyNjU1NGM5ZTdhMjQ1ZTRl
MTAxNDg2YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMjM3LDE1ICsyMzcsNjMg
QEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQu
dGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5yZXN1
bHQgaXMgbnVsbAorc3RvcmUuY2xlYXIoKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMg
dHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUn
IGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK2Ns
ZWFyU3VjY2VzcygpOgorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQucmVzdWx0IGlz
IHVuZGVmaW5lZC4KK3N0b3JlLm9wZW5DdXJzb3IoKQorb3BlbkN1cnNvclN1Y2Nlc3MoKToKK1N1
Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
J2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBu
dWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQorCitQQVNTIGV2ZW50LnJlc3VsdCBpcyBudWxsCitpbmRleCA9IHN0
b3JlLmluZGV4KCdpbmRleE5hbWUnKQoraW5kZXgub3BlbktleUN1cnNvcigpCitvcGVuS2V5Q3Vy
c29yU3VjY2VzcygpOgorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQucmVzdWx0IGlz
IG51bGwKIHN0b3JlID0gZXZlbnQuc291cmNlCiBQYXNzaW5nIGFuIGludmFsaWQga2V5IGludG8g
c3RvcmUuZ2V0KCkuCiBQQVNTIENhdWdodCBleGNlcHRpb246IEVycm9yOiBUWVBFX01JU01BVENI
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNwogUGFzc2luZyBhbiBpbnZhbGlkIGtleSBpbnRvIHN0b3Jl
LmRlbGV0ZSgpLgotUEFTUyBDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjogVFlQRV9NSVNNQVRDSF9F
UlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgQ2F1Z2h0IGV4Y2VwdGlvbjogVHlwZUVycm9yOiBP
YmplY3QgIzxJREJJbmRleD4gaGFzIG5vIG1ldGhvZCAnZGVsZXRlJwogUGFzc2luZyBhbiBpbnZh
bGlkIGtleSBpbnRvIHN0b3JlLmFkZCgpLgotUEFTUyBDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjog
VFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgQ2F1Z2h0IGV4Y2VwdGlv
bjogVHlwZUVycm9yOiBPYmplY3QgIzxJREJJbmRleD4gaGFzIG5vIG1ldGhvZCAnYWRkJwogUGFz
c2luZyBhbiBpbnZhbGlkIGtleSBpbnRvIHN0b3JlLnB1dCgpLgotUEFTUyBDYXVnaHQgZXhjZXB0
aW9uOiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgQ2F1
Z2h0IGV4Y2VwdGlvbjogVHlwZUVycm9yOiBPYmplY3QgIzxJREJJbmRleD4gaGFzIG5vIG1ldGhv
ZCAncHV0JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1i
YXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJh
c2ljcy5odG1sCmluZGV4IDQ2Yjc3MWUwM2VjMmFiZmM3ZmQ3OGI5MGUyOGNjMDMzZDQ0Zjg1ODgu
LjQyNjA1MmI4ZTU3MGQzYTBjNTYyMjMyMGNjNWRkMDQ1ODkxODMyNTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBA
IC0yNjYsNyArMjY2LDQxIEBAIGZ1bmN0aW9uIHJlbW92ZVN1Y2Nlc3MoKQogICAgIGRlYnVnKCJy
ZW1vdmVTdWNjZXNzKCk6Iik7CiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKICAgICBz
aG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOwotICAgIHZhciBzdG9yZSA9IGV2YWxBbmRMb2co
InN0b3JlID0gZXZlbnQuc291cmNlIik7CisKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9y
ZS5jbGVhcigpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3Vj
Y2VzcyA9IGNsZWFyU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjbGVhclN1Y2Nlc3MoKQoreworICAgIGRlYnVnKCJj
bGVhclN1Y2Nlc3MoKToiKTsKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJldmVudC5yZXN1bHQiKTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coInN0b3JlLm9wZW5DdXJzb3IoKSIpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBvcGVuQ3Vy
c29yU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworfQorCitmdW5jdGlvbiBvcGVuQ3Vyc29yU3VjY2VzcygpCit7CisgICAgZGVidWcoIm9wZW5D
dXJzb3JTdWNjZXNzKCk6Iik7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICBz
aG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOworCisgICAgaW5kZXggPSBldmFsQW5kTG9nKCJp
bmRleCA9IHN0b3JlLmluZGV4KCdpbmRleE5hbWUnKSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coImluZGV4Lm9wZW5LZXlDdXJzb3IoKSIpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBvcGVu
S2V5Q3Vyc29yU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuS2V5Q3Vyc29yU3VjY2VzcygpCit7CisgICAgZGVi
dWcoIm9wZW5LZXlDdXJzb3JTdWNjZXNzKCk6Iik7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2
ZW50KTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOwogCiAgICAgdHJ5IHsKICAg
ICAgICAgZGVidWcoIlBhc3NpbmcgYW4gaW52YWxpZCBrZXkgaW50byBzdG9yZS5nZXQoKS4iKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxN2M4YzI3OWIxZWE3OTk1MTk3NGM1MjhkNzZhNTliN2ExMDNiNzc1Li41
NDlmY2QyNzQ3NDZmY2EzMTM2MTZiZmU3MWI3MDBkMjJhZTY2Y2MxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAqIHN0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OmNsZWFyKToK
KyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmRvQ2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbCk6CisgICAgICAgICogc3Rv
cmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaDoKKwogMjAxMS0wMi0xMCAgdGFrYW5vIHRha3Vt
aSAgPHRha2Fub0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggMWJhODcz
MzM5MGNiMWM0ZDEyNjBmZjhmNzg2YWZlYzgwNjczOTFlMS4uNTNhZTI3OTY3YWI0ZmFlMTA2MzEw
ZTVkMmY1MmIxNDM1MDgxZmQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5jcHAKQEAgLTEwMyw2ICsxMDMsMTUgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJP
YmplY3RTdG9yZTo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY28KICAg
ICByZXR1cm4gcmVxdWVzdDsKIH0KIAorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6Y2xlYXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkp
OworICAgIG1fb2JqZWN0U3RvcmUtPmNsZWFyKHJlcXVlc3QsIG1fdHJhbnNhY3Rpb24tPmJhY2tl
bmQoKSwgZWMpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHJl
cXVlc3Q7Cit9CisKIFBhc3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0b3JlOjpjcmVhdGVJ
bmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgY29uc3QgT3B0
aW9uc09iamVjdCYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgYm9vbCB1bmlx
dWUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAppbmRleCA0
MzJjZjE5MGM4NjAwZmVkMGYyNzdjZjU5YWRjYTM5OTAzMWE4ZTdkLi5mMGM1ZWJmNmYwMGUzNzVj
NDQzNzljYzZjMDY0MzI3Njk2YWJlMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZS5oCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IGFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGRlbGV0ZUZ1bmN0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjbGVhcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4gY3JlYXRl
SW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGNvbnN0IE9w
dGlvbnNPYmplY3QmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4g
aW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsCmluZGV4IDcyOTE3N2IzNTZiZDI3OWY1NTUwNGM0
MDJlMWEwOWIwYTBjODFlYTUuLmM5NWZiOWQ2ZjBmZWRkMTU1ZTA4MTZhMzgwYzNjZmQ3OTBhMzEz
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsCkBAIC0zOCw2
ICszOCw4IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
SW1wbGVtZW50YXRpb25GdW5jdGlvbj1kZWxldGVGdW5jdGlvbl0gSURCUmVxdWVzdCBkZWxldGUo
aW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24p
OworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBj
bGVhcigpCisgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIElE
QktleSBrZXkpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAg
ICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1
cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlIHJhbmdlLCBpbiBbT3B0aW9uYWxdIHVuc2ln
bmVkIHNob3J0IGRpcmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCmluZGV4IDU3Y2NkMzZmOGQxZGY0ZDgwOTEwMTQy
Zjc4OTJmYzBjYzgzNmM2YjkuLmVkMTVlODJjYmYzODRmMTMxZjFkNDQ1ZTlmNGM1MmEyOGFhNjMw
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsLmNwcApAQCAtMzc1LDYgKzM3NSwzOSBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw6OmRlbGV0ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UAogICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVsbFZh
bHVlKCkpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNsZWFyKFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICh0cmFu
c2FjdGlvbi0+bW9kZSgpID09IElEQlRyYW5zYWN0aW9uOjpSRUFEX09OTFkpIHsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6UkVBRF9PTkxZX0VSUjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RT
dG9yZSA9IHRoaXM7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzID0gcHJwQ2Fs
bGJhY2tzOworCisgICAgaWYgKCF0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKGNyZWF0ZUNhbGxi
YWNrVGFzaygmSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbCwgb2JqZWN0
U3RvcmUsIGNhbGxiYWNrcykpKSB7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
Ok5PVF9BTExPV0VEX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworc3RhdGljIHZv
aWQgZG9DbGVhcihTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IGNoYXIqIHNxbCkKK3sKKyAgICBT
UUxpdGVTdGF0ZW1lbnQgZGVsZXRlUXVlcnkoZGIsIHNxbCk7CisgICAgYm9vbCBvayA9IGRlbGV0
ZVF1ZXJ5LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBv
ayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisgICAgb2sgPSBkZWxldGVRdWVy
eS5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8v
IEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCit9CisKK3ZvaWQgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBkb0NsZWFyKG9iamVjdFN0b3JlLT5zcWxp
dGVEYXRhYmFzZSgpLCAiREVMRVRFIEZST00gT2JqZWN0U3RvcmVEYXRhIik7CisgICAgZG9DbGVh
cihvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIEluZGV4RGF0YSIp
OworCisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRl
ZmluZWRWYWx1ZSgpKTsKK30KKwogUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+
IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYg
KG1faW5kZXhlcy5jb250YWlucyhuYW1lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaAppbmRleCA2Njg1OTczMDYwYjVmZWRiMmM4
MGY3ODI3YWIzMjgyNTdkZDdjZTlhLi5iNTRmOWZkYTA5YjlkNjAxMjdlMGEzZDY4MmJlMzQ2OWFi
NzRmODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGdldChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSW5kZXgoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3QgU3RyaW5nJiBu
YW1lLCBFeGNlcHRpb25Db2RlJik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZ2V0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgc3RhdGljIHZvaWQgcHV0SW50ZXJuYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4s
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
dXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgZGVsZXRlSW50ZXJuYWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7Cisg
ICAgc3RhdGljIHZvaWQgY2xlYXJJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+KTsKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVJbmRleEludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVm
UHRyPElEQkluZGV4QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZT4pOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZUluZGV4SW50ZXJuYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4s
IFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgb3BlbkN1cnNvckludGVybmFs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBmYTI4NDE2YTY2MDJjODgz
Yzc5YTNhNWY0ODI5YjZiNjlhZjNkZTg5Li4xNzc3MDFjNGJkYWFkYTgzNWYzMDM4MmI1ODg0ZWNi
NTkzMmZlMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNz
UmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNv
ZGUmKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAw
OworCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wg
dW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikg
PSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGlu
ZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAxNGRjNjhkOTVkNDMwNDFiNGYxNDEzNGJhZTI5NmEzOTkzNjRmMTFlLi42ZGIxZDlk
OGQ4ODk5NDAxYzcwN2I5NWVhYmNhMjY0YzJmZjQ1YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDExLTAyLTEwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2No
ZW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudCBJREJPYmplY3RTdG9yZTo6Y2xlYXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTkzCisKKyAgICAgICAgKiBzcmMv
SURCT2JqZWN0U3RvcmVQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9y
ZVByb3h5OjpjbGVhcik6CisgICAgICAgICogc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaDoKKyAg
ICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjbGVhcik6CisgICAgICAgICogc3JjL1dlYklEQk9iamVj
dFN0b3JlSW1wbC5oOgorCisyMDExLTAyLTEwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hy
b21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KIAogICAgICAg
ICBbY2hyb21pdW1dIGFkZCBXZWJJREJPYmplY3RTdG9yZTo6Y2xlYXIgbWV0aG9kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCmluZGV4
IGM1N2ZiYTZiZTQ5NzEyY2MwMWJmZGEzOTMxNTdlNmU3MmY1NmQxZTAuLmQ2ODcxZTAwOGRiZDFj
ZDhkNDM4OTJhMTliMzdiMzBkNzViMzFhNGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCkBAIC05Niw2ICs5NiwxNCBAQCB2b2lk
IElEQk9iamVjdFN0b3JlUHJveHk6OmRlbGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXksIFBhc3NSZWZQdHI8SURCQwogICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPmRlbGV0ZUZ1bmN0
aW9uKGtleSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9u
UHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKIH0KIAordm9pZCBJREJPYmplY3RT
dG9yZVByb3h5OjpjbGVhcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJl
IGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAorICAgIC8v
IGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMu
CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0
aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKKyAgICBt
X3dlYklEQk9iamVjdFN0b3JlLT5jbGVhcihuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFj
a3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOworfQor
CiBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVQcm94
eTo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgs
IGJvb2wgdW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9u
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBp
cyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhl
IHJlbmRlcmVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2Jq
ZWN0U3RvcmVQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3Rv
cmVQcm94eS5oCmluZGV4IDQ5OGJjNTc5OTEzZWQxOTI5MGQ5N2FhZGVmYTYxODIwMDEwZWU5YWMu
LmE2ZTM3NDgzMDkyN2MyMzk0YTQ5NTQ4YWQ1YjZkYzBiZjllN2MzNDUgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKQEAgLTQ5LDYgKzQ5
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXQoUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSos
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJL
ZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRp
b25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wg
dW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4KGNvbnN0IFN0
cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKaW5kZXggNDk4ZWI3NmI5NTY3NGVk
MTdjZDY1MTA0OGZjODViZjlmZWIwMTA5Yi4uOWZlNjE2Njg0OGVlZWI0MTlmMDA3NzNlYjhjNDRh
MWNlZDI2NWM3MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC04MSw2ICs4MSwxMSBAQCB2b2lkIFdlYklEQk9iamVj
dFN0b3JlSW1wbDo6ZGVsZXRlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5JiBrZXksIFdlYklEQkNh
bGxiYWNrcwogICAgIG1fb2JqZWN0U3RvcmUtPmRlbGV0ZUZ1bmN0aW9uKGtleSwgSURCQ2FsbGJh
Y2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwogfQogCit2b2lkIFdlYklEQk9iamVjdFN0b3JlSW1w
bDo6Y2xlYXIoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgbV9vYmplY3RT
dG9yZS0+Y2xlYXIoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCB0cmFuc2Fj
dGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOworfQorCiBXZWJJ
REJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjcmVhdGVJbmRleChjb25zdCBXZWJTdHJp
bmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGNvbnN0IFdl
YklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXggPSBtX29iamVjdFN0b3Jl
LT5jcmVhdGVJbmRleChuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIHRyYW5zYWN0aW9uLmdldElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCmluZGV4IDczMTZmOWE2YWFjMTBj
YjcyZGRjNTBiMDY2NDIwNDM3MzkwZDVjZjUuLjNlMmRmYWJiNTk1MDIwYzUwNzk3YWZiOWYwYWU2
NWI0MjZmNTlmMDQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdl
dChjb25zdCBXZWJJREJLZXkmIGtleSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBwdXQoY29uc3QgV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9kZSwgV2ViSURCQ2Fs
bGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBkZWxldGVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmIGtleSwgV2ViSURCQ2FsbGJh
Y2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBjbGVhcihXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdl
YkV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIFdlYklEQklu
ZGV4KiBpbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYkV4Y2VwdGlvbkNvZGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82135</attachid>
            <date>2011-02-11 07:40:51 -0800</date>
            <delta_ts>2011-02-11 15:36:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54193-20110211164048.patch</filename>
            <type>text/plain</type>
            <size>19215</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgyMDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzIzMmIzYWUwNTY4YmFmMDkwYWMw
NjZlZDA4ODExODk5MjE5MmI3Li45YzExZjFlN2E2Yzc2MjcyYzYwNzZkYTc5ODA5NjBmNzIxODEx
Zjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTEt
MDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHNraXAgZmFpbGluZyBmYXN0L3RleHQvY2FwaXRhbGl6ZS1ib3VuZGFyaWVz
Lmh0bWwgb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IGNmYmRiYmZiMDY4MDAwY2Iy
Y2NhZDNiMWE2MWU0NTg1MTJlNDU3ZDguLmI4ZDUyNjkxODY5YzBhY2IwMTQ0MTU4MWI5MmJjMTY3
NmVlZGE3NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMjM3LDcgKzIzNyw1NCBA
QCBQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LnJlc3Vs
dCBpcyBudWxsCi1zdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuY2xlYXIoKQorUEFTUyAnb25z
dWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQg
ZmlyZSBzaG9ydGx5Li4uCisKK2NsZWFyU3VjY2VzcygpOgorU3VjY2VzcyBldmVudCBmaXJlZDoK
K1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAn
b25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisK
K1BBU1MgZXZlbnQucmVzdWx0IGlzIHVuZGVmaW5lZC4KK3N0b3JlLm9wZW5DdXJzb3IoKQorb3Bl
bkN1cnNvclN1Y2Nlc3MoKToKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNz
YWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitQQVNTIGV2ZW50LnJlc3Vs
dCBpcyBudWxsCitpbmRleCA9IHN0b3JlLmluZGV4KCdpbmRleE5hbWUnKQoraW5kZXgub3Blbktl
eUN1cnNvcigpCitvcGVuS2V5Q3Vyc29yU3VjY2VzcygpOgorU3VjY2VzcyBldmVudCBmaXJlZDoK
K1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAn
b25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisK
K1BBU1MgZXZlbnQucmVzdWx0IGlzIG51bGwKIFBhc3NpbmcgYW4gaW52YWxpZCBrZXkgaW50byBz
dG9yZS5nZXQoKS4KIFBBU1MgQ2F1Z2h0IGV4Y2VwdGlvbjogRXJyb3I6IFRZUEVfTUlTTUFUQ0hf
RVJSOiBET00gRXhjZXB0aW9uIDE3CiBQYXNzaW5nIGFuIGludmFsaWQga2V5IGludG8gc3RvcmUu
ZGVsZXRlKCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy5odG1sCmluZGV4IDQ2Yjc3MWUwM2VjMmFiZmM3ZmQ3OGI5MGUyOGNjMDMz
ZDQ0Zjg1ODguLjQyNjA1MmI4ZTU3MGQzYTBjNTYyMjMyMGNjNWRkMDQ1ODkxODMyNTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2lj
cy5odG1sCkBAIC0yNjYsNyArMjY2LDQxIEBAIGZ1bmN0aW9uIHJlbW92ZVN1Y2Nlc3MoKQogICAg
IGRlYnVnKCJyZW1vdmVTdWNjZXNzKCk6Iik7CiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50
KTsKICAgICBzaG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOwotICAgIHZhciBzdG9yZSA9IGV2
YWxBbmRMb2coInN0b3JlID0gZXZlbnQuc291cmNlIik7CisKKyAgICByZXN1bHQgPSBldmFsQW5k
TG9nKCJzdG9yZS5jbGVhcigpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVz
dWx0Lm9uc3VjY2VzcyA9IGNsZWFyU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjbGVhclN1Y2Nlc3MoKQoreworICAg
IGRlYnVnKCJjbGVhclN1Y2Nlc3MoKToiKTsKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQp
OworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJldmVudC5yZXN1bHQiKTsKKworICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coInN0b3JlLm9wZW5DdXJzb3IoKSIpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3Mg
PSBvcGVuQ3Vyc29yU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuQ3Vyc29yU3VjY2VzcygpCit7CisgICAgZGVi
dWcoIm9wZW5DdXJzb3JTdWNjZXNzKCk6Iik7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50
KTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOworCisgICAgaW5kZXggPSBldmFs
QW5kTG9nKCJpbmRleCA9IHN0b3JlLmluZGV4KCdpbmRleE5hbWUnKSIpOworICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coImluZGV4Lm9wZW5LZXlDdXJzb3IoKSIpOworICAgIHJlc3VsdC5vbnN1Y2Nl
c3MgPSBvcGVuS2V5Q3Vyc29yU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuS2V5Q3Vyc29yU3VjY2VzcygpCit7
CisgICAgZGVidWcoIm9wZW5LZXlDdXJzb3JTdWNjZXNzKCk6Iik7CisgICAgdmVyaWZ5U3VjY2Vz
c0V2ZW50KGV2ZW50KTsKKyAgICBzaG91bGRCZU51bGwoImV2ZW50LnJlc3VsdCIpOwogCiAgICAg
dHJ5IHsKICAgICAgICAgZGVidWcoIlBhc3NpbmcgYW4gaW52YWxpZCBrZXkgaW50byBzdG9yZS5n
ZXQoKS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxN2M4YzI3OWIxZWE3OTk1MTk3NGM1MjhkNzZhNTliN2Ex
MDNiNzc1Li41NDlmY2QyNzQ3NDZmY2EzMTM2MTZiZmU3MWI3MDBkMjJhZTY2Y2MxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMTAgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAqIHN0b3Jh
Z2UvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6
OmNsZWFyKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICog
c3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmRvQ2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbCk6CisgICAg
ICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgICogc3Rv
cmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaDoKKwogMjAxMS0wMi0xMCAgdGFr
YW5vIHRha3VtaSAgPHRha2Fub0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFu
IEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAKaW5k
ZXggMWJhODczMzM5MGNiMWM0ZDEyNjBmZjhmNzg2YWZlYzgwNjczOTFlMS4uNTNhZTI3OTY3YWI0
ZmFlMTA2MzEwZTVkMmY1MmIxNDM1MDgxZmQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5jcHAKQEAgLTEwMyw2ICsxMDMsMTUgQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY28KICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJPYmplY3RTdG9yZTo6Y2xlYXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJS
ZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rp
b24uZ2V0KCkpOworICAgIG1fb2JqZWN0U3RvcmUtPmNsZWFyKHJlcXVlc3QsIG1fdHJhbnNhY3Rp
b24tPmJhY2tlbmQoKSwgZWMpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIHJlcXVlc3Q7Cit9CisKIFBhc3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0b3Jl
OjpjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwg
Y29uc3QgT3B0aW9uc09iamVjdCYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
Ym9vbCB1bmlxdWUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUu
aAppbmRleCA0MzJjZjE5MGM4NjAwZmVkMGYyNzdjZjU5YWRjYTM5OTAzMWE4ZTdkLi5mMGM1ZWJm
NmYwMGUzNzVjNDQzNzljYzZjMDY0MzI3Njk2YWJlMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZS5oCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IGFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4s
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGRlbGV0ZUZ1bmN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNl
cHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjbGVhcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0cjxJREJJbmRl
eD4gY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgs
IGNvbnN0IE9wdGlvbnNPYmplY3QmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJ
REJJbmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRsCmluZGV4IDcyOTE3N2IzNTZiZDI3
OWY1NTUwNGM0MDJlMWEwOWIwYTBjODFlYTUuLmM5NWZiOWQ2ZjBmZWRkMTU1ZTA4MTZhMzgwYzNj
ZmQ3OTBhMzEzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaWRs
CkBAIC0zOCw2ICszOCw4IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgICAgIHJhaXNlcyAo
SURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50YXRpb25GdW5jdGlvbj1kZWxldGVGdW5jdGlvbl0gSURCUmVxdWVz
dCBkZWxldGUoaW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VF
eGNlcHRpb24pOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURC
UmVxdWVzdCBjbGVhcigpCisgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9u
KTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qg
Z2V0KGluIElEQktleSBrZXkpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0
aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlIHJhbmdlLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCmluZGV4IDU3Y2NkMzZmOGQxZGY0
ZDgwOTEwMTQyZjc4OTJmYzBjYzgzNmM2YjkuLmVkMTVlODJjYmYzODRmMTMxZjFkNDQ1ZTlmNGM1
MmEyOGFhNjMwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtMzc1LDYgKzM3NSwzOSBAQCB2b2lkIElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OmRlbGV0ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUAogICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6bnVsbFZhbHVlKCkpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNs
ZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IElEQlRyYW5zYWN0aW9uOjpSRUFEX09OTFkpIHsK
KyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6UkVBRF9PTkxZX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
PiBvYmplY3RTdG9yZSA9IHRoaXM7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
ID0gcHJwQ2FsbGJhY2tzOworCisgICAgaWYgKCF0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKGNy
ZWF0ZUNhbGxiYWNrVGFzaygmSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5h
bCwgb2JqZWN0U3RvcmUsIGNhbGxiYWNrcykpKSB7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246Ok5PVF9BTExPV0VEX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwor
c3RhdGljIHZvaWQgZG9DbGVhcihTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IGNoYXIqIHNxbCkK
K3sKKyAgICBTUUxpdGVTdGF0ZW1lbnQgZGVsZXRlUXVlcnkoZGIsIHNxbCk7CisgICAgYm9vbCBv
ayA9IGRlbGV0ZVF1ZXJ5LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKKyAgICBBU1NFUlRfVU5V
U0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisgICAgb2sgPSBk
ZWxldGVRdWVyeS5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKKyAgICBBU1NFUlRfVU5VU0VEKG9r
LCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCit9CisKK3ZvaWQgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBkb0NsZWFyKG9iamVjdFN0
b3JlLT5zcWxpdGVEYXRhYmFzZSgpLCAiREVMRVRFIEZST00gT2JqZWN0U3RvcmVEYXRhIik7Cisg
ICAgZG9DbGVhcihvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIElu
ZGV4RGF0YSIpOworCisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjp1bmRlZmluZWRWYWx1ZSgpKTsKK30KKwogUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJ
bnRlcmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKG1faW5kZXhlcy5jb250YWlucyhuYW1lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaAppbmRleCA2Njg1OTczMDYw
YjVmZWRiMmM4MGY3ODI3YWIzMjgyNTdkZDdjZTlhLi5iNTRmOWZkYTA5YjlkNjAxMjdlMGEzZDY4
MmJlMzQ2OWFiNzRmODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSW5k
ZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVl
LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgZ2V0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgc3RhdGljIHZvaWQgcHV0SW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbD4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgZGVsZXRlSW50
ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPik7CisgICAgc3RhdGljIHZvaWQgY2xlYXJJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+KTsKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVJbmRleEludGVybmFsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+
LCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZUluZGV4SW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgb3BlbkN1cnNv
ckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQg
c2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBmYTI4NDE2
YTY2MDJjODgzYzc5YTNhNWY0ODI5YjZiNjlhZjNkZTg5Li4xNzc3MDFjNGJkYWFkYTgzNWYzMDM4
MmI1ODg0ZWNiNTkzMmZlMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+LCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4
Y2VwdGlvbkNvZGUmKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25D
b2RlJikgPSAwOworCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgsIGJvb2wgdW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRp
b25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2U+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCAxNGRjNjhkOTVkNDMwNDFiNGYxNDEzNGJhZTI5NmEzOTkzNjRmMTFl
Li42ZGIxZDlkOGQ4ODk5NDAxYzcwN2I5NWVhYmNhMjY0YzJmZjQ1YzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDExLTAyLTEwICBKb2NoZW4gRWlzaW5n
ZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBJREJPYmplY3RTdG9yZTo6Y2xlYXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTkzCisKKyAgICAg
ICAgKiBzcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZVByb3h5OjpjbGVhcik6CisgICAgICAgICogc3JjL0lEQk9iamVjdFN0b3JlUHJv
eHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjbGVhcik6CisgICAgICAgICogc3JjL1dl
YklEQk9iamVjdFN0b3JlSW1wbC5oOgorCisyMDExLTAyLTEwICBKb2NoZW4gRWlzaW5nZXIgIDxq
b2NoZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4K
IAogICAgICAgICBbY2hyb21pdW1dIGFkZCBXZWJJREJPYmplY3RTdG9yZTo6Y2xlYXIgbWV0aG9k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHku
Y3BwCmluZGV4IGM1N2ZiYTZiZTQ5NzEyY2MwMWJmZGEzOTMxNTdlNmU3MmY1NmQxZTAuLmQ2ODcx
ZTAwOGRiZDFjZDhkNDM4OTJhMTliMzdiMzBkNzViMzFhNGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCkBAIC05Niw2ICs5Niwx
NCBAQCB2b2lkIElEQk9iamVjdFN0b3JlUHJveHk6OmRlbGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8
SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQwogICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPmRl
bGV0ZUZ1bmN0aW9uKGtleSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRy
YW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKIH0KIAordm9pZCBJ
REJPYmplY3RTdG9yZVByb3h5OjpjbGVhcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50
ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVy
LAorICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5
IG9iamVjdHMuCisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJv
eHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9u
KTsKKyAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5jbGVhcihuZXcgV2ViSURCQ2FsbGJhY2tzSW1w
bChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwg
ZWMpOworfQorCiBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0
U3RvcmVQcm94eTo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgsIGJvb2wgdW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRy
YW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBUaGUgdHJhbnNhY3Rpb24g
cG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBh
cywgaW4gdGhlIHJlbmRlcmVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCT2JqZWN0U3RvcmVQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
T2JqZWN0U3RvcmVQcm94eS5oCmluZGV4IDQ5OGJjNTc5OTEzZWQxOTI5MGQ5N2FhZGVmYTYxODIw
MDEwZWU5YWMuLmE2ZTM3NDgzMDkyN2MyMzk0YTQ5NTQ4YWQ1YjZkYzBiZjllN2MzNDUgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXQoUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSos
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1Jl
ZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgsIGJvb2wgdW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4
KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKaW5kZXggNDk4ZWI3
NmI5NTY3NGVkMTdjZDY1MTA0OGZjODViZjlmZWIwMTA5Yi4uOWZlNjE2Njg0OGVlZWI0MTlmMDA3
NzNlYjhjNDRhMWNlZDI2NWM3MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC04MSw2ICs4MSwxMSBAQCB2b2lkIFdl
YklEQk9iamVjdFN0b3JlSW1wbDo6ZGVsZXRlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5JiBrZXks
IFdlYklEQkNhbGxiYWNrcwogICAgIG1fb2JqZWN0U3RvcmUtPmRlbGV0ZUZ1bmN0aW9uKGtleSwg
SURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCB0cmFuc2FjdGlvbi5nZXRJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwogfQogCit2b2lkIFdlYklEQk9iamVj
dFN0b3JlSW1wbDo6Y2xlYXIoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklE
QlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
bV9vYmplY3RTdG9yZS0+Y2xlYXIoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3Mp
LCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwor
fQorCiBXZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjcmVhdGVJbmRleChjb25z
dCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUs
IGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXggPSBtX29i
amVjdFN0b3JlLT5jcmVhdGVJbmRleChuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIHRyYW5zYWN0aW9u
LmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCmluZGV4IDczMTZm
OWE2YWFjMTBjYjcyZGRjNTBiMDY2NDIwNDM3MzkwZDVjZjUuLjNlMmRmYWJiNTk1MDIwYzUwNzk3
YWZiOWYwYWU2NWI0MjZmNTlmMDQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGdldChjb25zdCBXZWJJREJLZXkmIGtleSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3Qg
V2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBwdXQoY29u
c3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9kZSwg
V2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBkZWxldGVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmIGtleSwgV2Vi
SURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBjbGVhcihXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFdlYklEQkluZGV4KiBjcmVhdGVJbmRl
eChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAg
IFdlYklEQkluZGV4KiBpbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYkV4Y2VwdGlvbkNv
ZGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82198</attachid>
            <date>2011-02-11 15:36:56 -0800</date>
            <delta_ts>2011-02-12 03:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54193-20110212003653.patch</filename>
            <type>text/plain</type>
            <size>25304</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgzODEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZGJiYmQyNTdmYmZkNjA2MDUzZTY0
ZDYxN2M1YjA4NGVlMDNmZTVkLi5iMGE1MjFmMjY4YTA5MzEzMjcwNmNjNzQ4M2NhM2M3Njk0ODRh
ZTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTEgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IElEQk9iamVjdFN0b3JlOjpjbGVhcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTMKKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMDItMTEgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWQ5OWZjYmZiNDYxMzJmZGEzZjQ5YjAzMWYyYzRjMTAwZjhkMTU3Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWNsZWFyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1MSBAQAorVGVzdCBJbmRleGVkREIn
cyB3ZWJraXRJREJPYmplY3RTdG9yZS5jbGVhcigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKword2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKQorUEFTUyAnb25zdWNjZXNzJyBp
biByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1Mg
J3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9y
dGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBl
dmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50
LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1
ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGlu
IHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nl
c3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2Nv
ZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxs
IGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVu
dC50YXJnZXQuRE9ORQorCit0cmFucyA9IGV2ZW50LnJlc3VsdAorUEFTUyB0cmFucyAhPT0gbnVs
bCBpcyB0cnVlCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorc3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKK3N0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5h
bWUnLCAnJykKK1BBU1Mgc3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygnaW5kZXhOYW1lJykgaXMg
dHJ1ZQorc3RvcmUuYWRkKCd2YWx1ZScsICdrZXknKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1
bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5
U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4u
CisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJj
ZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitvdGhlclN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ290aGVyU3RvcmVOYW1lJywgbnVsbCkKK290aGVyU3RvcmUuYWRkKCd2YWx1ZScsICdrZXkn
KQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4g
cmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBl
dmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3Vj
Y2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9y
ZS5jbGVhcigpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdvbmVy
cm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRy
dWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworU3VjY2VzcyBldmVudCBmaXJl
ZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2Un
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFT
UyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05F
CisKK1BBU1MgZXZlbnQucmVzdWx0IGlzIHVuZGVmaW5lZC4KK3N0b3JlLm9wZW5DdXJzb3IoKQor
U3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZh
bHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9
IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlz
IGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQucmVzdWx0IGlzIG51bGwKK2luZGV4ID0g
c3RvcmUuaW5kZXgoJ2luZGV4TmFtZScpCitpbmRleC5vcGVuS2V5Q3Vyc29yKCkKK29wZW5LZXlD
dXJzb3JTdWNjZXNzKCk6CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBl
dmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2Fn
ZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFy
Z2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworUEFTUyBldmVudC5yZXN1bHQg
aXMgbnVsbAorZGIudHJhbnNhY3Rpb24oe21vZGU6IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEV9KQorb3RoZXJTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdvdGhlclN0b3Jl
TmFtZScpCitvdGhlclN0b3JlLmdldCgna2V5JykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgor
CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0
ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
aXMgZXZlbnQudGFyZ2V0LkRPTkUKKworUEFTUyBldmVudC5yZXN1bHQgaXMgInZhbHVlIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdmNDAzNGZkZWI3MGRiNjRmMmZlYWYzNDAzMjY0NzBmNGE0ZTU3YjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1j
bGVhci5odG1sCkBAIC0wLDAgKzEsMTMwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJl
ZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVz
dCBJbmRleGVkREIncyB3ZWJraXRJREJPYmplY3RTdG9yZS5jbGVhcigpLiIpOworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
IndlYmtpdEluZGV4ZWREQi5vcGVuKCduYW1lJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gc3RhcnRTZXRWZXJzaW9uOworICAgIHJlc3VsdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0U2V0
VmVyc2lvbigpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQucmVzdWx0Iik7CisKKyAgICByZXN1bHQgPSBldmFsQW5kTG9n
KCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3Vs
dCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOworICAgIHJlc3VsdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZUV4
aXN0aW5nKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworICAgIHdpbmRvdy50
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQucmVzdWx0Iik7CisgICAgc2hvdWxkQmVU
cnVlKCJ0cmFucyAhPT0gbnVsbCIpOworCisgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiLCBj
cmVhdGVPYmplY3RTdG9yZUFuZEFkZFZhbHVlKTsKK30KKworZnVuY3Rpb24gY3JlYXRlT2JqZWN0
U3RvcmVBbmRBZGRWYWx1ZSgpCit7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworCisgICAgd2luZG93Lmlu
ZGV4ID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICcnKSIpOwor
ICAgIHNob3VsZEJlVHJ1ZSgic3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygnaW5kZXhOYW1lJyki
KTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCgndmFsdWUnLCAna2V5Jyki
KTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY3Jl
YXRlU2Vjb25kT2JqZWN0U3RvcmVBbmRBZGRWYWx1ZTsKKyAgICByZXN1bHQub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjcmVhdGVTZWNvbmRPYmplY3RT
dG9yZUFuZEFkZFZhbHVlKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworCisg
ICAgb3RoZXJTdG9yZSA9IGV2YWxBbmRMb2coIm90aGVyU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnb3RoZXJTdG9yZU5hbWUnLCBudWxsKSIpOworCisgICAgcmVzdWx0ID0gZXZhbEFuZExv
Zygib3RoZXJTdG9yZS5hZGQoJ3ZhbHVlJywgJ2tleScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJl
c3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGNsZWFyT2JqZWN0U3RvcmU7CisgICAgcmVz
dWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY2xl
YXJPYmplY3RTdG9yZSgpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKworICAg
IHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmNsZWFyKCkiKTsKKyAgICB2ZXJpZnlSZXN1bHQo
cmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY2xlYXJTdWNjZXNzOworICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGNsZWFy
U3VjY2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICBzaG91bGRC
ZVVuZGVmaW5lZCgiZXZlbnQucmVzdWx0Iik7CisKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJz
dG9yZS5vcGVuQ3Vyc29yKCkiKTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gb3BlbkN1cnNvclN1
Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gb3BlbkN1cnNvclN1Y2Nlc3MoKQoreworICAgIHZlcmlmeVN1Y2Nlc3NFdmVu
dChldmVudCk7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5yZXN1bHQiKTsKKworICAgIGluZGV4
ID0gZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5pbmRleCgnaW5kZXhOYW1lJykiKTsKKyAgICBy
ZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleC5vcGVuS2V5Q3Vyc29yKCkiKTsKKyAgICByZXN1bHQu
b25zdWNjZXNzID0gb3BlbktleUN1cnNvclN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlbktleUN1cnNvclN1Y2Nl
c3MoKQoreworICAgIGRlYnVnKCJvcGVuS2V5Q3Vyc29yU3VjY2VzcygpOiIpOworICAgIHZlcmlm
eVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgc2hvdWxkQmVOdWxsKCJldmVudC5yZXN1bHQiKTsK
KworICAgIHRyYW5zYWN0aW9uID0gZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24oe21vZGU6IHdl
YmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEV9KSIpOworICAgIHRyYW5zYWN0aW9uLm9uYWJv
cnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB2YXIgb3RoZXJTdG9yZSA9IGV2YWxB
bmRMb2coIm90aGVyU3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnb3RoZXJTdG9yZU5h
bWUnKSIpOworCisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygib3RoZXJTdG9yZS5nZXQoJ2tleScp
Iik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGdl
dFN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gZ2V0U3VjY2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2
ZW50KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnJlc3VsdCIsICJ2YWx1ZSIp
OworCisgICAgZG9uZSgpOworfQorCit0ZXN0KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyYjk1
NWQ2YWNjZTMzYjljMzUyOGRiYzA3YTVmNmY1MmZlZDZkMC4uNWUwMzI5MzM2MTVhMDJmYWUwNzM3
MmZkY2NkNGZjNzZmYmU4ZDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTAy
LTExICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBJREJPYmplY3RT
dG9yZTo6Y2xlYXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0MTkzCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUt
Y2xlYXIuaHRtbAorCisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y2xlYXIpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmlkbDoK
KyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6ZG9EZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbCk6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2UuaDoKKwogMjAxMS0wMi0xMSAgTWlrZSBSZWVkICA8cmVlZEBnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAxYmE4NzMzMzkwY2IxYzRkMTI2MGZmOGY3ODZh
ZmVjODA2NzM5MWUxLi41M2FlMjc5NjdhYjRmYWUxMDYzMTBlNWQyZjUyYjE0MzUwODFmZDQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTAzLDYgKzEw
MywxNSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5j
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogICAgIHJldHVybiByZXF1ZXN0OwogfQog
CitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpjbGVhcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBSZWZQdHI8
SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6
OmNyZWF0ZSh0aGlzKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CisgICAgbV9vYmplY3RTdG9yZS0+
Y2xlYXIocmVxdWVzdCwgbV90cmFuc2FjdGlvbi0+YmFja2VuZCgpLCBlYyk7CisgICAgaWYgKGVj
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKwogUGFzc1JlZlB0
cjxJREJJbmRleD4gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBjb25zdCBPcHRpb25zT2JqZWN0JiBvcHRpb25zLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBib29sIHVuaXF1ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCmluZGV4IDQzMmNmMTkwYzg2MDBmZWQwZjI3N2Nm
NTlhZGNhMzk5MDMxYThlN2QuLmYwYzVlYmY2ZjAwZTM3NWM0NDM3OWNjNmMwNjQzMjc2OTZhYmUw
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKQEAgLTY5LDYgKzY5
LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQ
dHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IGNsZWFyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJik7
CiAKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgY29uc3QgT3B0aW9uc09iamVjdCYsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJpbmcmIG5h
bWUsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmUuaWRsIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9y
ZS5pZGwKaW5kZXggNzI5MTc3YjM1NmJkMjc5ZjU1NTA0YzQwMmUxYTA5YjBhMGM4MWVhNS4uYzk1
ZmI5ZDZmMGZlZGQxNTVlMDgxNmEzODBjM2NmZDc5MGEzMTMzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGwKQEAgLTM4LDYgKzM4LDggQEAgbW9kdWxlIHN0b3Jh
Z2UgewogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRhdGlvbkZ1bmN0aW9u
PWRlbGV0ZUZ1bmN0aW9uXSBJREJSZXF1ZXN0IGRlbGV0ZShpbiBJREJLZXkga2V5KQogICAgICAg
ICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CisgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNsZWFyKCkKKyAgICAgICAgICAgIHJh
aXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5IGtleSkKICAgICAgICAgICAg
IHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIFtPcHRpb25hbF0gSURC
S2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5jcHAKaW5kZXggNTdjY2QzNmY4ZDFkZjRkODA5MTAxNDJmNzg5MmZjMGNjODM2YzZiOS4uOTIx
YmJhYjg3OGM2MWNjYTA5OTBjYmY4Yjg3OGI0ODQ4ODMzMDgzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC0zNzUs
NiArMzc1LDM4IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQCiAgICAgY2FsbGJhY2tzLT5vblN1
Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSk7CiB9CiAKK3ZvaWQgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXIoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBy
cENhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSURC
VHJhbnNhY3Rpb246OlJFQURfT05MWSkgeworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpSRUFEX09OTFlfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRy
PElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0gdGhpczsKKyAgICBSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CisKKyAgICBpZiAoIXRy
YW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsOjpjbGVhckludGVybmFsLCBvYmplY3RTdG9yZSwgY2FsbGJhY2tzKSkpCisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9BTExPV0VEX0VSUjsKK30KKwor
c3RhdGljIHZvaWQgZG9EZWxldGUoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBjaGFyKiBzcWws
IGludDY0X3QgaWQpCit7CisgICAgU1FMaXRlU3RhdGVtZW50IGRlbGV0ZVF1ZXJ5KGRiLCBzcWwp
OworICAgIGJvb2wgb2sgPSBkZWxldGVRdWVyeS5wcmVwYXJlKCkgPT0gU1FMUmVzdWx0T2s7Cisg
ICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5n
LgorICAgIGRlbGV0ZVF1ZXJ5LmJpbmRJbnQ2NCgxLCBpZCk7CisgICAgb2sgPSBkZWxldGVRdWVy
eS5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8v
IEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCit9CisKK3ZvaWQgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBkb0RlbGV0ZShvYmplY3RTdG9yZS0+c3Fs
aXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIEluZGV4RGF0YSBXSEVSRSBvYmplY3RTdG9yZURh
dGFJZCBJTiAoU0VMRUNUIGlkIEZST00gT2JqZWN0U3RvcmVEYXRhIFdIRVJFIG9iamVjdFN0b3Jl
SWQgPSA/KSIsIG9iamVjdFN0b3JlLT5pZCgpKTsKKyAgICBkb0RlbGV0ZShvYmplY3RTdG9yZS0+
c3FsaXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIE9iamVjdFN0b3JlRGF0YSBXSEVSRSBvYmpl
Y3RTdG9yZUlkID0gPyIsIG9iamVjdFN0b3JlLT5pZCgpKTsKKworICAgIGNhbGxiYWNrcy0+b25T
dWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7Cit9CisKIFBh
c3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsOjpjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rp
b24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX2luZGV4ZXMuY29udGFpbnMobmFt
ZSkpIHsKQEAgLTQzMSwxNiArNDYzLDYgQEAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmluZGV4KGNvbnN0IFN0cmkKICAgICBy
ZXR1cm4gaW5kZXgucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgdm9pZCBkb0RlbGV0ZShTUUxpdGVE
YXRhYmFzZSYgZGIsIGNvbnN0IGNoYXIqIHNxbCwgaW50NjRfdCBpZCkKLXsKLSAgICBTUUxpdGVT
dGF0ZW1lbnQgZGVsZXRlUXVlcnkoZGIsIHNxbCk7Ci0gICAgYm9vbCBvayA9IGRlbGV0ZVF1ZXJ5
LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8v
IEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCi0gICAgZGVsZXRlUXVlcnkuYmluZEludDY0
KDEsIGlkKTsKLSAgICBvayA9IGRlbGV0ZVF1ZXJ5LnN0ZXAoKSA9PSBTUUxSZXN1bHREb25lOwot
ICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGlu
Zy4KLX0KLQogdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpkZWxldGVJbmRleChjb25z
dCBTdHJpbmcmIG5hbWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rp
b24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpICE9
IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaAppbmRleCA2Njg1OTczMDYwYjVm
ZWRiMmM4MGY3ODI3YWIzMjgyNTdkZDdjZTlhLi5iNTRmOWZkYTA5YjlkNjAxMjdlMGEzZDY4MmJl
MzQ2OWFiNzRmODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFz
c1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSW5kZXgo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgZ2V0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXks
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgc3RhdGljIHZvaWQgcHV0SW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbD4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgZGVsZXRlSW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
Pik7CisgICAgc3RhdGljIHZvaWQgY2xlYXJJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KTsKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVJbmRleEludGVybmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQ
YXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4pOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZUluZGV4SW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbD4sIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZvaWQgb3BlbkN1cnNvcklu
dGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBmYTI4NDE2YTY2
MDJjODgzYzc5YTNhNWY0ODI5YjZiNjlhZjNkZTg5Li4xNzc3MDFjNGJkYWFkYTgzNWYzMDM4MmI1
ODg0ZWNiNTkzMmZlMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
LCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2Rl
JikgPSAwOworCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFj
ZT4gY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgs
IGJvb2wgdW5pcXVlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25D
b2RlJikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2U+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA2MDNlZWFiOWVjYzY4MWIzZjkwN2NhY2MxY2YxY2ZlNjFiZTZiNTY0Li5j
YjkzYjA5ZDY5YWFkNzhlZWFkOTA5Y2IzODhkZDliMWZkZWYyNWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAyLTExICBKb2NoZW4gRWlzaW5nZXIg
IDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBJREJPYmplY3RTdG9yZTo6Y2xlYXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTkzCisKKyAgICAgICAg
KiBzcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZVByb3h5OjpjbGVhcik6CisgICAgICAgICogc3JjL0lEQk9iamVjdFN0b3JlUHJveHku
aDoKKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjbGVhcik6CisgICAgICAgICogc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5oOgorCiAyMDExLTAyLTExICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKaW5kZXgg
YzU3ZmJhNmJlNDk3MTJjYzAxYmZkYTM5MzE1N2U2ZTcyZjU2ZDFlMC4uZDY4NzFlMDA4ZGJkMWNk
OGQ0Mzg5MmExOWIzN2IzMGQ3NWIzMWE0YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKQEAgLTk2LDYgKzk2LDE0IEBAIHZvaWQg
SURCT2JqZWN0U3RvcmVQcm94eTo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSwgUGFzc1JlZlB0cjxJREJDCiAgICAgbV93ZWJJREJPYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rp
b24oa2V5LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Q
cm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwogfQogCit2b2lkIElEQk9iamVjdFN0
b3JlUHJveHk6OmNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUg
YSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCisgICAgLy8g
YWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4K
KyAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRp
Y19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOworICAgIG1f
d2ViSURCT2JqZWN0U3RvcmUtPmNsZWFyKG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNr
cyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Cit9CisK
IFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZVByb3h5
OjpjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwg
Ym9vbCB1bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlz
IGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUg
cmVuZGVyZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmpl
Y3RTdG9yZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9y
ZVByb3h5LmgKaW5kZXggNDk4YmM1Nzk5MTNlZDE5MjkwZDk3YWFkZWZhNjE4MjAwMTBlZTlhYy4u
YTZlMzc0ODMwOTI3YzIzOTRhNDk1NDhhZDViNmRjMGJmOWU3YzM0NSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaApAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktl
eT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcihQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAppbmRleCA0OThlYjc2Yjk1Njc0ZWQx
N2NkNjUxMDQ4ZmM4NWJmOWZlYjAxMDliLi45ZmU2MTY2ODQ4ZWVlYjQxOWYwMDc3M2ViOGM0NGEx
Y2VkMjY1YzcxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJP
YmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5jcHAKQEAgLTgxLDYgKzgxLDExIEBAIHZvaWQgV2ViSURCT2JqZWN0
U3RvcmVJbXBsOjpkZWxldGVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmIGtleSwgV2ViSURCQ2Fs
bGJhY2tzCiAgICAgbV9vYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rpb24oa2V5LCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSgpLCBlYyk7CiB9CiAKK3ZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBs
OjpjbGVhcihXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBtX29iamVjdFN0
b3JlLT5jbGVhcihJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0
aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Cit9CisKIFdlYklE
QkluZGV4KiBXZWJJREJPYmplY3RTdG9yZUltcGw6OmNyZWF0ZUluZGV4KGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0U3RvcmUt
PmNyZWF0ZUluZGV4KG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKaW5kZXggNzMxNmY5YTZhYWMxMGNi
NzJkZGM1MGIwNjY0MjA0MzczOTBkNWNmNS4uM2UyZGZhYmI1OTUwMjBjNTA3OTdhZmI5ZjBhZTY1
YjQyNmY1OWYwNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
KGNvbnN0IFdlYklEQktleSYga2V5LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHB1dChjb25zdCBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxs
YmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYga2V5LCBXZWJJREJDYWxsYmFj
a3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIGNsZWFyKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2Vi
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgV2ViSURCSW5kZXgqIGNyZWF0ZUluZGV4KGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgV2ViSURCSW5k
ZXgqIGluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViRXhjZXB0aW9uQ29kZSYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>