<?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>34664</bug_id>
          
          <creation_ts>2010-02-05 14:50:07 -0800</creation_ts>
          <short_desc>[Chromium] Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient</short_desc>
          <delta_ts>2010-02-05 18:45:11 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Hawkins">jhawkins</reporter>
          <assigned_to name="James Hawkins">jhawkins</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188318</commentid>
    <comment_count>0</comment_count>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 14:50:07 -0800</bug_when>
    <thetext>Patch will follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188321</commentid>
    <comment_count>1</comment_count>
      <attachid>48263</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 14:52:13 -0800</bug_when>
    <thetext>Created attachment 48263
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188322</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 14:56:14 -0800</bug_when>
    <thetext>Attachment 48263 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/240009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188326</commentid>
    <comment_count>3</comment_count>
      <attachid>48264</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 14:59:03 -0800</bug_when>
    <thetext>Created attachment 48264
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try2]

Forgot an occurrence of autocompletePopupDidHide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188328</commentid>
    <comment_count>4</comment_count>
      <attachid>48265</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 15:02:32 -0800</bug_when>
    <thetext>Created attachment 48265
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try3]

Forgot to update the Changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188330</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 15:03:31 -0800</bug_when>
    <thetext>Attachment 48264 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/238371</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188331</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 15:06:23 -0800</bug_when>
    <thetext>Attachment 48265 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/240022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188333</commentid>
    <comment_count>7</comment_count>
      <attachid>48266</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 15:10:27 -0800</bug_when>
    <thetext>Created attachment 48266
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try4]

Add back suggestionsPopupDidHide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188336</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 15:14:20 -0800</bug_when>
    <thetext>Attachment 48266 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/240032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188338</commentid>
    <comment_count>9</comment_count>
      <attachid>48267</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 15:23:05 -0800</bug_when>
    <thetext>Created attachment 48267
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try5]

More build fixes...yikes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188339</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 15:26:33 -0800</bug_when>
    <thetext>Attachment 48267 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/238397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188341</commentid>
    <comment_count>11</comment_count>
      <attachid>48268</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 15:34:12 -0800</bug_when>
    <thetext>Created attachment 48268
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try6]

Last one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188355</commentid>
    <comment_count>12</comment_count>
      <attachid>48268</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-05 16:05:55 -0800</bug_when>
    <thetext>Comment on attachment 48268
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try6]

&gt; Index: WebKit/chromium/public/WebView.h

&gt; -    // Hides the autofill popup if any are showing.
&gt; -    virtual void hideAutofillPopup() = 0;
&gt; +    // Hides the suggestions popup if any are showing.
&gt; +    virtual void hideSuggestionsPopup() = 0;

Please preserve the old API, and add a comment marking it DEPRECATED.

You can just make your code call both functions for now.  Then, once
Chromium is updated to use the new function, you can come back and
delete the deprecated one.

Otherwise, LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188357</commentid>
    <comment_count>13</comment_count>
      <attachid>48274</attachid>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-02-05 16:12:10 -0800</bug_when>
    <thetext>Created attachment 48274
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try7]

Adds back a deprecated hideAutofillPopup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188382</commentid>
    <comment_count>14</comment_count>
      <attachid>48274</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-05 18:45:00 -0800</bug_when>
    <thetext>Comment on attachment 48274
Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try7]

Clearing flags on attachment: 48274

Committed r54458: &lt;http://trac.webkit.org/changeset/54458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188383</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-05 18:45:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48263</attachid>
            <date>2010-02-05 14:52:13 -0800</date>
            <delta_ts>2010-02-05 14:58:27 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient</desc>
            <filename>rename.diff</filename>
            <type>text/plain</type>
            <size>14762</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGF1dG9jb21wbGV0ZSogdG8gc3VnZ2Vz
dGlvbnMqIHRvIHByZXBhcmUgZm9yIHRoZSByZWZhY3RvcmluZyBvZgorICAgICAgICBBdXRvY29t
cGxldGVQb3B1cE1lbnVDbGllbnQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0NjY0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAg
ICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJLaXQ6OkVk
aXRvckNsaWVudEltcGw6OmRvQXV0b2ZpbGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Oik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpX
ZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptb3VzZURvd24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0Rm9jdXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmhpZGVBdXRvZmlsbFBvcHVwKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmhpZGVTdWdnZXN0aW9uc1BvcHVwKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnJlZnJlc2hBdXRvZmlsbFBvcHVwKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuaDoKKwogMjAxMC0wMi0wNSAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDggKzIzMSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHN1Z2dlc3Rpb25zLAogICAgICAgICBp
bnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCkgPSAwOwogCi0gICAgLy8gSGlkZXMgdGhlIGF1dG9m
aWxsIHBvcHVwIGlmIGFueSBhcmUgc2hvd2luZy4KLSAgICB2aXJ0dWFsIHZvaWQgaGlkZUF1dG9m
aWxsUG9wdXAoKSA9IDA7CisgICAgLy8gSGlkZXMgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlmIGFu
eSBhcmUgc2hvd2luZy4KKyAgICB2aXJ0dWFsIHZvaWQgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKSA9
IDA7CiAKIAogICAgIC8vIENvbnRleHQgbWVudSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9F
ZGl0b3JDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0Vk
aXRvckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY1NCw3ICs2NTQs
NyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkCiAgICAgbV9hdXRv
ZmlsbFRpbWVyLnN0b3AoKTsKIAogICAgIC8vIEhpZGUgYW55IHNob3dpbmcgcG9wdXAuCi0gICAg
bV93ZWJWaWV3LT5oaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICBtX3dlYlZpZXctPmhpZGVT
dWdnZXN0aW9uc1BvcHVwKCk7CiAKICAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCiAgICAg
ICAgIHJldHVybjsgLy8gVGhlIHBhZ2UgaXMgZ2V0dGluZyBjbG9zZWQsIGRvbid0IGZpbGwgdGhl
IHBhc3N3b3JkLgpAQCAtNzQ4LDcgKzc0OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZG9B
dXRvZmlsbChUaW1lcjwKICAgICAgICAgICAgICAgICAgICAgICAgJiYgaW5wdXRFbGVtZW50LT5z
ZWxlY3Rpb25FbmQoKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlLmxlbmd0aCgpKTsKIAogICAg
IGlmICgoIWFyZ3MtPmF1dG9maWxsT25FbXB0eVZhbHVlICYmIHZhbHVlLmlzRW1wdHkoKSkgfHwg
IWlzQ2FyZXRBdEVuZCkgewotICAgICAgICBtX3dlYlZpZXctPmhpZGVBdXRvQ29tcGxldGVQb3B1
cCgpOworICAgICAgICBtX3dlYlZpZXctPmhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShy
ZXZpc2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0xNDgsMTYgKzE0OCwxNiBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKERyYWdPcGVyYXRpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKERyYWdPcGVyYXRp
b25EZWxldGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShEcmFnT3BlcmF0aW9uRXZl
cnkpOwogCi0vLyBOb3RlIHRoYXQgZm9jdXNPblNob3cgaXMgZmFsc2Ugc28gdGhhdCB0aGUgYXV0
b2NvbXBsZXRlIHBvcHVwIGlzIHNob3duIG5vdAorLy8gTm90ZSB0aGF0IGZvY3VzT25TaG93IGlz
IGZhbHNlIHNvIHRoYXQgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIHNob3duIG5vdAogLy8gYWN0
aXZhdGVkLiAgV2UgbmVlZCB0aGUgcGFnZSB0byBzdGlsbCBoYXZlIGZvY3VzIHNvIHRoZSB1c2Vy
IGNhbiBrZWVwIHR5cGluZwogLy8gd2hpbGUgdGhlIHBvcHVwIGlzIHNob3dpbmcuCi1zdGF0aWMg
Y29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvY29tcGxldGVQb3B1cFNldHRpbmdzID0g
eworc3RhdGljIGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3Mgc3VnZ2VzdGlvbnNQb3B1cFNl
dHRpbmdzID0gewogICAgIGZhbHNlLCAgLy8gZm9jdXNPblNob3cKICAgICBmYWxzZSwgIC8vIHNl
dFRleHRPbkluZGV4Q2hhbmdlCiAgICAgZmFsc2UsICAvLyBhY2NlcHRPbkFiYW5kb24KICAgICB0
cnVlLCAgIC8vIGxvb3BTZWxlY3Rpb25OYXZpZ2F0aW9uCiAgICAgdHJ1ZSwgICAvLyByZXN0cmlj
dFdpZHRoT2ZMaXN0Qm94LiBTYW1lIGFzIG90aGVyIGJyb3dzZXIgKEZ4LCBJRSwgYW5kIHNhZmFy
aSkKLSAgICAvLyBGb3IgYXV0b2NvbXBsZXRlLCB3ZSB1c2UgdGhlIGRpcmVjdGlvbiBvZiB0aGUg
aW5wdXQgZmllbGQgYXMgdGhlIGRpcmVjdGlvbgorICAgIC8vIEZvciBzdWdnZXN0aW9ucywgd2Ug
dXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KICAg
ICAvLyBvZiB0aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVwIHRoZSBk
aXNwbGF5IG9mIGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRoZSBpdGVt
cyBpbiB0aGUgaW5wdXQgZmllbGQuCiAgICAgUG9wdXBDb250YWluZXJTZXR0aW5nczo6RE9NRWxl
bWVudERpcmVjdGlvbiwKQEAgLTIzOSw3ICsyMzksNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0lt
cGwoV2ViVmlld0NsaWVudCogCiAgICAgLCBtX2Ryb3BFZmZlY3QoRHJvcEVmZmVjdERlZmF1bHQp
CiAgICAgLCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwg
bV9kcmFnT3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQotICAgICwgbV9hdXRvY29tcGxl
dGVQb3B1cFNob3dpbmcoZmFsc2UpCisgICAgLCBtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKGZh
bHNlKQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV90YWJzVG9MaW5rcyhm
YWxzZSkKIHsKQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptb3VzZURvd24o
Y29uc3QgV2ViTW91CiAgICAgbV9sYXN0TW91c2VEb3duUG9pbnQgPSBXZWJQb2ludChldmVudC54
LCBldmVudC55KTsKIAogICAgIC8vIElmIGEgdGV4dCBmaWVsZCB0aGF0IGhhcyBmb2N1cyBpcyBj
bGlja2VkIGFnYWluLCB3ZSBzaG91bGQgZGlzcGxheSB0aGUKLSAgICAvLyBhdXRvY29tcGxldGUg
cG9wdXAuCisgICAgLy8gc3VnZ2VzdGlvbnMgcG9wdXAuCiAgICAgUmVmUHRyPE5vZGU+IGNsaWNr
ZWROb2RlOwogICAgIGlmIChldmVudC5idXR0b24gPT0gV2ViTW91c2VFdmVudDo6QnV0dG9uTGVm
dCkgewogICAgICAgICBSZWZQdHI8Tm9kZT4gZm9jdXNlZE5vZGUgPSBmb2N1c2VkV2ViQ29yZU5v
ZGUoKTsKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptb3VzZURvd24oY29u
c3QgV2ViTW91CiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobWFpbkZyYW1lSW1w
bCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpKTsKIAogICAgIGlmIChjbGlja2VkTm9kZS5nZXQoKSAm
JiBjbGlja2VkTm9kZSA9PSBmb2N1c2VkV2ViQ29yZU5vZGUoKSkgewotICAgICAgICAvLyBGb2N1
cyBoYXMgbm90IGNoYW5nZWQsIHNob3cgdGhlIGF1dG9jb21wbGV0ZSBwb3B1cC4KKyAgICAgICAg
Ly8gRm9jdXMgaGFzIG5vdCBjaGFuZ2VkLCBzaG93IHRoZSBzdWdnZXN0aW9ucyBwb3B1cC4KICAg
ICAgICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50SW1wbCo+KG1fcGFnZS0+ZWRpdG9yQ2xpZW50
KCkpLT4KICAgICAgICAgICAgIHNob3dGb3JtQXV0b2ZpbGxGb3JOb2RlKGNsaWNrZWROb2RlLmdl
dCgpKTsKICAgICB9CkBAIC01MTQsNyArNTE0LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6a2V5RXZl
bnQoY29uc3QgV2ViS2V5YgogCiBib29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVL
ZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAoIW1fYXV0
b2NvbXBsZXRlUG9wdXBTaG93aW5nCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5n
CiAgICAgICAgIC8vIEhvbWUgYW5kIEVuZCBzaG91bGQgYmUgbGVmdCB0byB0aGUgdGV4dCBmaWVs
ZCB0byBwcm9jZXNzLgogICAgICAgICB8fCBldmVudC53aW5kb3dzS2V5Q29kZSA9PSBWS0VZX0hP
TUUKICAgICAgICAgfHwgZXZlbnQud2luZG93c0tleUNvZGUgPT0gVktFWV9FTkQpCkBAIC01MjIs
NyArNTIyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogCiAg
ICAgLy8gUHJlc3NpbmcgZGVsZXRlIHRyaWdnZXJzIHRoZSByZW1vdmFsIG9mIHRoZSBzZWxlY3Rl
ZCBzdWdnZXN0aW9uIGZyb20gdGhlIERCLgogICAgIGlmIChldmVudC53aW5kb3dzS2V5Q29kZSA9
PSBWS0VZX0RFTEVURQotICAgICAgICAmJiBtX2F1dG9jb21wbGV0ZVBvcHVwLT5zZWxlY3RlZElu
ZGV4KCkgIT0gLTEpIHsKKyAgICAgICAgJiYgbV9zdWdnZXN0aW9uc1BvcHVwLT5zZWxlY3RlZElu
ZGV4KCkgIT0gLTEpIHsKICAgICAgICAgTm9kZSogbm9kZSA9IGZvY3VzZWRXZWJDb3JlTm9kZSgp
OwogICAgICAgICBpZiAoIW5vZGUgfHwgKG5vZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RUxFTUVO
VF9OT0RFKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MzQsNyAr
NTM0LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgaW50IHNlbGVjdGVkSW5k
ZXggPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5zZWxlY3RlZEluZGV4KCk7CisgICAgICAgIGludCBz
ZWxlY3RlZEluZGV4ID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5zZWxlY3RlZEluZGV4KCk7CiAgICAg
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihlbGVtZW50KTsKICAgICAgICAgV2ViU3RyaW5nIG5hbWUgPSBpbnB1dEVsZW1l
bnQtPm5hbWUoKTsKICAgICAgICAgV2ViU3RyaW5nIHZhbHVlID0gbV9hdXRvY29tcGxldGVQb3B1
cENsaWVudC0+aXRlbVRleHQoc2VsZWN0ZWRJbmRleCk7CkBAIC01NDYsMTAgKzU0NiwxMCBAQCBi
b29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICBpZiAoIW1fYXV0b2NvbXBsZXRlUG9wdXAtPmlzSW50ZXJlc3Rl
ZEluRXZlbnRGb3JLZXkoZXZlbnQud2luZG93c0tleUNvZGUpKQorICAgIGlmICghbV9zdWdnZXN0
aW9uc1BvcHVwLT5pc0ludGVyZXN0ZWRJbkV2ZW50Rm9yS2V5KGV2ZW50LndpbmRvd3NLZXlDb2Rl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fYXV0b2NvbXBsZXRlUG9wdXAt
PmhhbmRsZUtleUV2ZW50KFBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIoZXZlbnQpKSkgewor
ICAgIGlmIChtX3N1Z2dlc3Rpb25zUG9wdXAtPmhhbmRsZUtleUV2ZW50KFBsYXRmb3JtS2V5Ym9h
cmRFdmVudEJ1aWxkZXIoZXZlbnQpKSkgewogICAgICAgICAvLyBXZSBuZWVkIHRvIGlnbm9yZSB0
aGUgbmV4dCBDaGFyIGV2ZW50IGFmdGVyIHRoaXMgb3RoZXJ3aXNlIHByZXNzaW5nCiAgICAgICAg
IC8vIGVudGVyIHdoZW4gc2VsZWN0aW5nIGFuIGl0ZW0gaW4gdGhlIG1lbnUgd2lsbCBnbyB0byB0
aGUgcGFnZS4KICAgICAgICAgaWYgKFdlYklucHV0RXZlbnQ6OlJhd0tleURvd24gPT0gZXZlbnQu
dHlwZSkKQEAgLTk3Niw3ICs5NzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGb2N1cyhib29s
IGVuYWJsZSkKICAgICAgICAgfQogICAgICAgICBtX2ltZUFjY2VwdEV2ZW50cyA9IHRydWU7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAgIGhp
ZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAKICAgICAgICAgLy8gQ2xlYXIgZm9jdXMgb24gdGhlIGN1
cnJlbnRseSBmb2N1c2VkIGZyYW1lIGlmIGFueS4KICAgICAgICAgaWYgKCFtX3BhZ2UuZ2V0KCkp
CkBAIC0xNTU5LDcgKzE1NTksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3Vn
Z2VzdGlvCiAgICAgaW50IGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UuZ2V0KCkgfHwgc3VnZ2VzdGlvbnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGhpZGVBdXRvQ29t
cGxldGVQb3B1cCgpOworICAgICAgICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0xNTY4LDcgKzE1NjgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjph
cHBseUF1dG9maWxsU3VnZ2VzdGlvCiAgICAgaWYgKFJlZlB0cjxGcmFtZT4gZm9jdXNlZCA9IG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRGcmFtZSgpKSB7CiAgICAgICAgIFJlZlB0
cjxEb2N1bWVudD4gZG9jdW1lbnQgPSBmb2N1c2VkLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAo
IWRvY3VtZW50LmdldCgpKSB7Ci0gICAgICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsK
KyAgICAgICAgICAgIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBw
bHlBdXRvZmlsbFN1Z2dlc3RpbwogICAgICAgICAvLyBmb2N1c2VkIG5vZGUsIHRoZW4gd2UgaGF2
ZSBub3RoaW5nIHRvIGRvLiAgRklYTUU6IGFsc28gY2hlY2sgdGhlCiAgICAgICAgIC8vIGNhcnJl
dCBpcyBhdCB0aGUgZW5kIGFuZCB0aGF0IHRoZSB0ZXh0IGhhcyBub3QgY2hhbmdlZC4KICAgICAg
ICAgaWYgKCFmb2N1c2VkTm9kZS5nZXQoKSB8fCBmb2N1c2VkTm9kZSAhPSBQYXNzUmVmUHRyPE5v
ZGU+KG5vZGUpKSB7Ci0gICAgICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAg
ICAgICAgIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtMTU4OSwzMyArMTU4OSwzMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1
dG9maWxsU3VnZ2VzdGlvCiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbSA9CiAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZm9jdXNlZE5vZGUuZ2V0
KCkpOwogCi0gICAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIHRoZSBhdXRvY29tcGxldGUgaXMgc2hv
d24gd2UnbGwgY3JlYXRlIHRoZSBjbGllbnQgYW5kIHRoZQotICAgICAgICAvLyBwb3B1cC4KKyAg
ICAgICAgLy8gVGhlIGZpcnN0IHRpbWUgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIHNob3duIHdl
J2xsIGNyZWF0ZSB0aGUgY2xpZW50CisgICAgICAgIC8vIGFuZCB0aGUgcG9wdXAuCiAgICAgICAg
IGlmICghbV9hdXRvY29tcGxldGVQb3B1cENsaWVudC5nZXQoKSkKICAgICAgICAgICAgIG1fYXV0
b2NvbXBsZXRlUG9wdXBDbGllbnQuc2V0KG5ldyBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQo
dGhpcykpOwogICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5pbml0aWFsaXplKGlu
cHV0RWxlbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWdnZXN0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KTsKLSAgICAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBv
cHVwLmdldCgpKSB7Ci0gICAgICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwID0KKyAgICAgICAg
aWYgKCFtX3N1Z2dlc3Rpb25zUG9wdXAuZ2V0KCkpIHsKKyAgICAgICAgICAgIG1fc3VnZ2VzdGlv
bnNQb3B1cCA9CiAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6OmNyZWF0ZShtX2F1dG9j
b21wbGV0ZVBvcHVwQ2xpZW50LmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0b2NvbXBsZXRlUG9wdXBTZXR0aW5ncyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9uc1BvcHVwU2V0dGluZ3MpOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nKSB7CisgICAgICAgIGlm
IChtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKSB7CiAgICAgICAgICAgICBtX2F1dG9jb21wbGV0
ZVBvcHVwQ2xpZW50LT5zZXRTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7Ci0gICAgICAgICAgICBy
ZWZyZXNoQXV0b2ZpbGxQb3B1cCgpOworICAgICAgICAgICAgcmVmcmVzaFN1Z2dlc3Rpb25zUG9w
dXAoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAt
PnNob3coZm9jdXNlZE5vZGUtPmdldFJlY3QoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKLSAg
ICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nID0gdHJ1ZTsKKyAgICAgICAgICAg
IG1fc3VnZ2VzdGlvbnNQb3B1cC0+c2hvdyhmb2N1c2VkTm9kZS0+Z2V0UmVjdCgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50
KCktPnZpZXcoKSwgMCk7CisgICAgICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nID0g
dHJ1ZTsKICAgICAgICAgfQogICAgIH0KIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6aGlkZUF1dG9m
aWxsUG9wdXAoKQogewotICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgIGhpZGVTdWdn
ZXN0aW9uc1BvcHVwKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1DdXN0b21Db250
ZXh0TWVudUFjdGlvbih1bnNpZ25lZCBhY3Rpb24pCkBAIC0xNzc4LDE5ICsxNzc4LDE0IEBAIHZv
aWQgV2ViVmlld0ltcGw6Om9ic2VydmVOZXdOYXZpZ2F0aW9uKCkKICNlbmRpZgogfQogCi12b2lk
IFdlYlZpZXdJbXBsOjpoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKQordm9pZCBXZWJWaWV3SW1wbDo6
aGlkZVN1Z2dlc3Rpb25zUG9wdXAoKQogewotICAgIGlmIChtX2F1dG9jb21wbGV0ZVBvcHVwU2hv
d2luZykgewotICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwLT5oaWRlUG9wdXAoKTsKLSAgICAg
ICAgYXV0b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCk7CisgICAgaWYgKG1fc3VnZ2VzdGlvbnNQb3B1
cFNob3dpbmcpIHsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5oaWRlUG9wdXAoKTsKKyAg
ICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IGZhbHNlOwogICAgIH0KIH0KIAotdm9p
ZCBXZWJWaWV3SW1wbDo6YXV0b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCkKLXsKLSAgICBtX2F1dG9j
b21wbGV0ZVBvcHVwU2hvd2luZyA9IGZhbHNlOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJ
Z25vcmVJbnB1dEV2ZW50cyhib29sIG5ld1ZhbHVlKQogewogICAgIEFTU0VSVChtX2lnbm9yZUlu
cHV0RXZlbnRzICE9IG5ld1ZhbHVlKTsKQEAgLTE4MDgsMjEgKzE4MDMsMjEgQEAgTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbCogV2ViVmlld0ltcGw6OgogCiB2b2lkIFdlYlZpZXdJbXBsOjpyZWZy
ZXNoQXV0b2ZpbGxQb3B1cCgpCiB7Ci0gICAgQVNTRVJUKG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93
aW5nKTsKKyAgICBBU1NFUlQobV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyk7CiAKICAgICAvLyBI
aWRlIHRoZSBwb3B1cCBpZiBpdCBoYXMgYmVjb21lIGVtcHR5LgogICAgIGlmICghbV9hdXRvY29t
cGxldGVQb3B1cENsaWVudC0+bGlzdFNpemUoKSkgewotICAgICAgICBoaWRlQXV0b0NvbXBsZXRl
UG9wdXAoKTsKKyAgICAgICAgaGlkZVN1Z2dlc3Rpb25zQ29tcGxldGVQb3B1cCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgSW50UmVjdCBvbGRCb3VuZHMgPSBtX2F1dG9jb21wbGV0
ZVBvcHVwLT5ib3VuZHNSZWN0KCk7Ci0gICAgbV9hdXRvY29tcGxldGVQb3B1cC0+cmVmcmVzaCgp
OwotICAgIEludFJlY3QgbmV3Qm91bmRzID0gbV9hdXRvY29tcGxldGVQb3B1cC0+Ym91bmRzUmVj
dCgpOworICAgIEludFJlY3Qgb2xkQm91bmRzID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5ib3VuZHNS
ZWN0KCk7CisgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5yZWZyZXNoKCk7CisgICAgSW50UmVjdCBu
ZXdCb3VuZHMgPSBtX3N1Z2dlc3Rpb25zUG9wdXAtPmJvdW5kc1JlY3QoKTsKICAgICAvLyBMZXQn
cyByZXNpemUgdGhlIGJhY2tpbmcgd2luZG93IGlmIG5lY2Vzc2FyeS4KICAgICBpZiAob2xkQm91
bmRzICE9IG5ld0JvdW5kcykgewogICAgICAgICBXZWJQb3B1cE1lbnVJbXBsKiBwb3B1cE1lbnUg
PQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51SW1wbCo+KG1fYXV0b2NvbXBs
ZXRlUG9wdXAtPmNsaWVudCgpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlBvcHVwTWVu
dUltcGwqPihtX3N1Z2dlc3Rpb25zUG9wdXAtPmNsaWVudCgpKTsKICAgICAgICAgcG9wdXBNZW51
LT5jbGllbnQoKS0+c2V0V2luZG93UmVjdChuZXdCb3VuZHMpOwogICAgIH0KIH0KSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVi
bGljOgogICAgICAgICBjb25zdCBXZWJOb2RlJiwKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdl
YlN0cmluZz4mIHN1Z2dlc3Rpb25zLAogICAgICAgICBpbnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRl
eCk7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVBdXRvZmlsbFBvcHVwKCk7CisgICAgdmlydHVhbCB2
b2lkIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJh
ckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKTsKQEAgLTI2MSwxMCArMjYxLDYgQEAg
cHVibGljOgogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCiAgICAgICAgIFdl
YkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9uTWFzayk7CiAKLSAgICAvLyBI
aWRlcyB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwIGlmIGl0IGlzIHNob3dpbmcuCi0gICAgdm9pZCBo
aWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKLSAgICB2b2lkIGF1dG9Db21wbGV0ZVBvcHVwRGlkSGlk
ZSgpOwotCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgLy8gUmV0dXJucyB0aGUgcHJv
dmlkZXIgb2YgZGVza3RvcCBub3RpZmljYXRpb25zLgogICAgIE5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwqIG5vdGlmaWNhdGlvblByZXNlbnRlckltcGwoKTsKQEAgLTM5MywxMiArMzg5LDEyIEBA
IHByaXZhdGU6CiAgICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcgKHRo
ZSBkcm9wIHRhcmdldCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0aW9u
IG1fZHJhZ09wZXJhdGlvbjsKIAotICAgIC8vIFRoZSBhdXRvY29tcGxldGUgcG9wdXAuICBLZXB0
IGFyb3VuZCBhbmQgcmV1c2VkIGV2ZXJ5LXRpbWUgbmV3IHN1Z2dlc3Rpb25zCisgICAgLy8gVGhl
IHN1Z2dlc3Rpb25zIHBvcHVwLiAgS2VwdCBhcm91bmQgYW5kIHJldXNlZCBldmVyeS10aW1lIG5l
dyBzdWdnZXN0aW9ucwogICAgIC8vIHNob3VsZCBiZSBzaG93bi4KLSAgICBSZWZQdHI8V2ViQ29y
ZTo6UG9wdXBDb250YWluZXI+IG1fYXV0b2NvbXBsZXRlUG9wdXA7CisgICAgUmVmUHRyPFdlYkNv
cmU6OlBvcHVwQ29udGFpbmVyPiBtX3N1Z2dlc3Rpb25zUG9wdXA7CiAKLSAgICAvLyBXaGV0aGVy
IHRoZSBhdXRvY29tcGxldGUgcG9wdXAgaXMgY3VycmVudGx5IHNob3dpbmcuCi0gICAgYm9vbCBt
X2F1dG9jb21wbGV0ZVBvcHVwU2hvd2luZzsKKyAgICAvLyBXaGV0aGVyIHRoZSBzdWdnZXN0aW9u
cyBwb3B1cCBpcyBjdXJyZW50bHkgc2hvd2luZy4KKyAgICBib29sIG1fc3VnZ2VzdGlvbnNQb3B1
cFNob3dpbmc7CiAKICAgICAvLyBUaGUgYXV0b2NvbXBsZXRlIGNsaWVudC4KICAgICBPd25QdHI8
QXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50PiBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48264</attachid>
            <date>2010-02-05 14:59:03 -0800</date>
            <delta_ts>2010-02-05 15:02:32 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try2]</desc>
            <filename>rename2.diff</filename>
            <type>text/plain</type>
            <size>15323</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBSZW5hbWUgYXV0b2NvbXBsZXRl
KiB0byBzdWdnZXN0aW9ucyogdG8gcHJlcGFyZSBmb3IgdGhlCisgICAgICAgIHJlZmFjdG9yaW5n
IG9mIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKKyAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6ZG9BdXRvZmlsbCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1v
dXNlRG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5k
bGVLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRGb2N1cyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGlkZUF1dG9maWxsUG9wdXApOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGlkZVN1Z2dlc3Rpb25zUG9wdXApOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVmcmVzaEF1dG9maWxsUG9wdXApOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5oOgorCiAyMDEwLTAyLTA1ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCShyZXZpc2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEsOCArMjMxLDggQEAg
cHVibGljOgogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgc3VnZ2VzdGlvbnMs
CiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KSA9IDA7CiAKLSAgICAvLyBIaWRl
cyB0aGUgYXV0b2ZpbGwgcG9wdXAgaWYgYW55IGFyZSBzaG93aW5nLgotICAgIHZpcnR1YWwgdm9p
ZCBoaWRlQXV0b2ZpbGxQb3B1cCgpID0gMDsKKyAgICAvLyBIaWRlcyB0aGUgc3VnZ2VzdGlvbnMg
cG9wdXAgaWYgYW55IGFyZSBzaG93aW5nLgorICAgIHZpcnR1YWwgdm9pZCBoaWRlU3VnZ2VzdGlv
bnNQb3B1cCgpID0gMDsKIAogCiAgICAgLy8gQ29udGV4dCBtZW51IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQuY3BwCShyZXZp
c2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2NvbXBsZXRlUG9wdXBNZW51
Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIGludCBBdXRvY29t
cGxldGVQb3B1cE1lbnVDbGllbnQ6OmNsaWVudFAKIAogdm9pZCBBdXRvY29tcGxldGVQb3B1cE1l
bnVDbGllbnQ6OnBvcHVwRGlkSGlkZSgpCiB7Ci0gICAgbV93ZWJWaWV3LT5hdXRvQ29tcGxldGVQ
b3B1cERpZEhpZGUoKTsKKyAgICBtX3dlYlZpZXctPnN1Z2dlc3Rpb25zUG9wdXBEaWRIaWRlKCk7
CiB9CiAKIHZvaWQgQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50OjpzZXRUZXh0RnJvbUl0ZW0o
dW5zaWduZWQgbGlzdEluZGV4KQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCShyZXZpc2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY1NCw3ICs2NTQsNyBAQCB2b2lk
IEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkCiAgICAgbV9hdXRvZmlsbFRpbWVy
LnN0b3AoKTsKIAogICAgIC8vIEhpZGUgYW55IHNob3dpbmcgcG9wdXAuCi0gICAgbV93ZWJWaWV3
LT5oaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICBtX3dlYlZpZXctPmhpZGVTdWdnZXN0aW9u
c1BvcHVwKCk7CiAKICAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCiAgICAgICAgIHJldHVy
bjsgLy8gVGhlIHBhZ2UgaXMgZ2V0dGluZyBjbG9zZWQsIGRvbid0IGZpbGwgdGhlIHBhc3N3b3Jk
LgpAQCAtNzQ4LDcgKzc0OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZG9BdXRvZmlsbChU
aW1lcjwKICAgICAgICAgICAgICAgICAgICAgICAgJiYgaW5wdXRFbGVtZW50LT5zZWxlY3Rpb25F
bmQoKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlLmxlbmd0aCgpKTsKIAogICAgIGlmICgoIWFy
Z3MtPmF1dG9maWxsT25FbXB0eVZhbHVlICYmIHZhbHVlLmlzRW1wdHkoKSkgfHwgIWlzQ2FyZXRB
dEVuZCkgewotICAgICAgICBtX3dlYlZpZXctPmhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAg
ICAgICBtX3dlYlZpZXctPmhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA1
NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC0xNDgsMTYgKzE0OCwxNiBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKERyYWdP
cGVyYXRpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKERyYWdPcGVyYXRpb25EZWxldGUp
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShEcmFnT3BlcmF0aW9uRXZlcnkpOwogCi0v
LyBOb3RlIHRoYXQgZm9jdXNPblNob3cgaXMgZmFsc2Ugc28gdGhhdCB0aGUgYXV0b2NvbXBsZXRl
IHBvcHVwIGlzIHNob3duIG5vdAorLy8gTm90ZSB0aGF0IGZvY3VzT25TaG93IGlzIGZhbHNlIHNv
IHRoYXQgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIHNob3duIG5vdAogLy8gYWN0aXZhdGVkLiAg
V2UgbmVlZCB0aGUgcGFnZSB0byBzdGlsbCBoYXZlIGZvY3VzIHNvIHRoZSB1c2VyIGNhbiBrZWVw
IHR5cGluZwogLy8gd2hpbGUgdGhlIHBvcHVwIGlzIHNob3dpbmcuCi1zdGF0aWMgY29uc3QgUG9w
dXBDb250YWluZXJTZXR0aW5ncyBhdXRvY29tcGxldGVQb3B1cFNldHRpbmdzID0geworc3RhdGlj
IGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3Mgc3VnZ2VzdGlvbnNQb3B1cFNldHRpbmdzID0g
ewogICAgIGZhbHNlLCAgLy8gZm9jdXNPblNob3cKICAgICBmYWxzZSwgIC8vIHNldFRleHRPbklu
ZGV4Q2hhbmdlCiAgICAgZmFsc2UsICAvLyBhY2NlcHRPbkFiYW5kb24KICAgICB0cnVlLCAgIC8v
IGxvb3BTZWxlY3Rpb25OYXZpZ2F0aW9uCiAgICAgdHJ1ZSwgICAvLyByZXN0cmljdFdpZHRoT2ZM
aXN0Qm94LiBTYW1lIGFzIG90aGVyIGJyb3dzZXIgKEZ4LCBJRSwgYW5kIHNhZmFyaSkKLSAgICAv
LyBGb3IgYXV0b2NvbXBsZXRlLCB3ZSB1c2UgdGhlIGRpcmVjdGlvbiBvZiB0aGUgaW5wdXQgZmll
bGQgYXMgdGhlIGRpcmVjdGlvbgorICAgIC8vIEZvciBzdWdnZXN0aW9ucywgd2UgdXNlIHRoZSBk
aXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KICAgICAvLyBvZiB0
aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVwIHRoZSBkaXNwbGF5IG9m
IGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRoZSBpdGVtcyBpbiB0aGUg
aW5wdXQgZmllbGQuCiAgICAgUG9wdXBDb250YWluZXJTZXR0aW5nczo6RE9NRWxlbWVudERpcmVj
dGlvbiwKQEAgLTIzOSw3ICsyMzksNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmll
d0NsaWVudCogCiAgICAgLCBtX2Ryb3BFZmZlY3QoRHJvcEVmZmVjdERlZmF1bHQpCiAgICAgLCBt
X29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFnT3Bl
cmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQotICAgICwgbV9hdXRvY29tcGxldGVQb3B1cFNo
b3dpbmcoZmFsc2UpCisgICAgLCBtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKGZhbHNlKQogICAg
ICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV90YWJzVG9MaW5rcyhmYWxzZSkKIHsK
QEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptb3VzZURvd24oY29uc3QgV2Vi
TW91CiAgICAgbV9sYXN0TW91c2VEb3duUG9pbnQgPSBXZWJQb2ludChldmVudC54LCBldmVudC55
KTsKIAogICAgIC8vIElmIGEgdGV4dCBmaWVsZCB0aGF0IGhhcyBmb2N1cyBpcyBjbGlja2VkIGFn
YWluLCB3ZSBzaG91bGQgZGlzcGxheSB0aGUKLSAgICAvLyBhdXRvY29tcGxldGUgcG9wdXAuCisg
ICAgLy8gc3VnZ2VzdGlvbnMgcG9wdXAuCiAgICAgUmVmUHRyPE5vZGU+IGNsaWNrZWROb2RlOwog
ICAgIGlmIChldmVudC5idXR0b24gPT0gV2ViTW91c2VFdmVudDo6QnV0dG9uTGVmdCkgewogICAg
ICAgICBSZWZQdHI8Tm9kZT4gZm9jdXNlZE5vZGUgPSBmb2N1c2VkV2ViQ29yZU5vZGUoKTsKQEAg
LTM0OCw3ICszNDgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptb3VzZURvd24oY29uc3QgV2ViTW91
CiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobWFpbkZyYW1lSW1wbCgpLT5mcmFt
ZVZpZXcoKSwgZXZlbnQpKTsKIAogICAgIGlmIChjbGlja2VkTm9kZS5nZXQoKSAmJiBjbGlja2Vk
Tm9kZSA9PSBmb2N1c2VkV2ViQ29yZU5vZGUoKSkgewotICAgICAgICAvLyBGb2N1cyBoYXMgbm90
IGNoYW5nZWQsIHNob3cgdGhlIGF1dG9jb21wbGV0ZSBwb3B1cC4KKyAgICAgICAgLy8gRm9jdXMg
aGFzIG5vdCBjaGFuZ2VkLCBzaG93IHRoZSBzdWdnZXN0aW9ucyBwb3B1cC4KICAgICAgICAgc3Rh
dGljX2Nhc3Q8RWRpdG9yQ2xpZW50SW1wbCo+KG1fcGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT4KICAg
ICAgICAgICAgIHNob3dGb3JtQXV0b2ZpbGxGb3JOb2RlKGNsaWNrZWROb2RlLmdldCgpKTsKICAg
ICB9CkBAIC01MTQsNyArNTE0LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6a2V5RXZlbnQoY29uc3Qg
V2ViS2V5YgogCiBib29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFdmVudChj
b25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAoIW1fYXV0b2NvbXBsZXRl
UG9wdXBTaG93aW5nCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nCiAgICAgICAg
IC8vIEhvbWUgYW5kIEVuZCBzaG91bGQgYmUgbGVmdCB0byB0aGUgdGV4dCBmaWVsZCB0byBwcm9j
ZXNzLgogICAgICAgICB8fCBldmVudC53aW5kb3dzS2V5Q29kZSA9PSBWS0VZX0hPTUUKICAgICAg
ICAgfHwgZXZlbnQud2luZG93c0tleUNvZGUgPT0gVktFWV9FTkQpCkBAIC01MjIsNyArNTIyLDcg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogCiAgICAgLy8gUHJl
c3NpbmcgZGVsZXRlIHRyaWdnZXJzIHRoZSByZW1vdmFsIG9mIHRoZSBzZWxlY3RlZCBzdWdnZXN0
aW9uIGZyb20gdGhlIERCLgogICAgIGlmIChldmVudC53aW5kb3dzS2V5Q29kZSA9PSBWS0VZX0RF
TEVURQotICAgICAgICAmJiBtX2F1dG9jb21wbGV0ZVBvcHVwLT5zZWxlY3RlZEluZGV4KCkgIT0g
LTEpIHsKKyAgICAgICAgJiYgbV9zdWdnZXN0aW9uc1BvcHVwLT5zZWxlY3RlZEluZGV4KCkgIT0g
LTEpIHsKICAgICAgICAgTm9kZSogbm9kZSA9IGZvY3VzZWRXZWJDb3JlTm9kZSgpOwogICAgICAg
ICBpZiAoIW5vZGUgfHwgKG5vZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFKSkg
ewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MzQsNyArNTM0LDcgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgaW50IHNlbGVjdGVkSW5kZXggPSBtX2F1
dG9jb21wbGV0ZVBvcHVwLT5zZWxlY3RlZEluZGV4KCk7CisgICAgICAgIGludCBzZWxlY3RlZElu
ZGV4ID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5zZWxlY3RlZEluZGV4KCk7CiAgICAgICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihlbGVtZW50KTsKICAgICAgICAgV2ViU3RyaW5nIG5hbWUgPSBpbnB1dEVsZW1lbnQtPm5hbWUo
KTsKICAgICAgICAgV2ViU3RyaW5nIHZhbHVlID0gbV9hdXRvY29tcGxldGVQb3B1cENsaWVudC0+
aXRlbVRleHQoc2VsZWN0ZWRJbmRleCk7CkBAIC01NDYsMTAgKzU0NiwxMCBAQCBib29sIFdlYlZp
ZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKLSAgICBpZiAoIW1fYXV0b2NvbXBsZXRlUG9wdXAtPmlzSW50ZXJlc3RlZEluRXZlbnRG
b3JLZXkoZXZlbnQud2luZG93c0tleUNvZGUpKQorICAgIGlmICghbV9zdWdnZXN0aW9uc1BvcHVw
LT5pc0ludGVyZXN0ZWRJbkV2ZW50Rm9yS2V5KGV2ZW50LndpbmRvd3NLZXlDb2RlKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fYXV0b2NvbXBsZXRlUG9wdXAtPmhhbmRsZUtl
eUV2ZW50KFBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIoZXZlbnQpKSkgeworICAgIGlmICht
X3N1Z2dlc3Rpb25zUG9wdXAtPmhhbmRsZUtleUV2ZW50KFBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1
aWxkZXIoZXZlbnQpKSkgewogICAgICAgICAvLyBXZSBuZWVkIHRvIGlnbm9yZSB0aGUgbmV4dCBD
aGFyIGV2ZW50IGFmdGVyIHRoaXMgb3RoZXJ3aXNlIHByZXNzaW5nCiAgICAgICAgIC8vIGVudGVy
IHdoZW4gc2VsZWN0aW5nIGFuIGl0ZW0gaW4gdGhlIG1lbnUgd2lsbCBnbyB0byB0aGUgcGFnZS4K
ICAgICAgICAgaWYgKFdlYklucHV0RXZlbnQ6OlJhd0tleURvd24gPT0gZXZlbnQudHlwZSkKQEAg
LTk3Niw3ICs5NzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGb2N1cyhib29sIGVuYWJsZSkK
ICAgICAgICAgfQogICAgICAgICBtX2ltZUFjY2VwdEV2ZW50cyA9IHRydWU7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAgIGhpZGVTdWdnZXN0
aW9uc1BvcHVwKCk7CiAKICAgICAgICAgLy8gQ2xlYXIgZm9jdXMgb24gdGhlIGN1cnJlbnRseSBm
b2N1c2VkIGZyYW1lIGlmIGFueS4KICAgICAgICAgaWYgKCFtX3BhZ2UuZ2V0KCkpCkBAIC0xNTU5
LDcgKzE1NTksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvCiAg
ICAgaW50IGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpCiB7CiAgICAgaWYgKCFtX3BhZ2UuZ2V0KCkg
fHwgc3VnZ2VzdGlvbnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1
cCgpOworICAgICAgICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0xNTY4LDcgKzE1NjgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9m
aWxsU3VnZ2VzdGlvCiAgICAgaWYgKFJlZlB0cjxGcmFtZT4gZm9jdXNlZCA9IG1fcGFnZS0+Zm9j
dXNDb250cm9sbGVyKCktPmZvY3VzZWRGcmFtZSgpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVu
dD4gZG9jdW1lbnQgPSBmb2N1c2VkLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoIWRvY3VtZW50
LmdldCgpKSB7Ci0gICAgICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAgICAg
ICAgIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIApAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmls
bFN1Z2dlc3RpbwogICAgICAgICAvLyBmb2N1c2VkIG5vZGUsIHRoZW4gd2UgaGF2ZSBub3RoaW5n
IHRvIGRvLiAgRklYTUU6IGFsc28gY2hlY2sgdGhlCiAgICAgICAgIC8vIGNhcnJldCBpcyBhdCB0
aGUgZW5kIGFuZCB0aGF0IHRoZSB0ZXh0IGhhcyBub3QgY2hhbmdlZC4KICAgICAgICAgaWYgKCFm
b2N1c2VkTm9kZS5nZXQoKSB8fCBmb2N1c2VkTm9kZSAhPSBQYXNzUmVmUHRyPE5vZGU+KG5vZGUp
KSB7Ci0gICAgICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAgICAgICAgIGhp
ZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApA
QCAtMTU4OSwzMyArMTU4OSwzMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3Vn
Z2VzdGlvCiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbSA9CiAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZm9jdXNlZE5vZGUuZ2V0KCkpOwogCi0g
ICAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIHRoZSBhdXRvY29tcGxldGUgaXMgc2hvd24gd2UnbGwg
Y3JlYXRlIHRoZSBjbGllbnQgYW5kIHRoZQotICAgICAgICAvLyBwb3B1cC4KKyAgICAgICAgLy8g
VGhlIGZpcnN0IHRpbWUgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIHNob3duIHdlJ2xsIGNyZWF0
ZSB0aGUgY2xpZW50CisgICAgICAgIC8vIGFuZCB0aGUgcG9wdXAuCiAgICAgICAgIGlmICghbV9h
dXRvY29tcGxldGVQb3B1cENsaWVudC5nZXQoKSkKICAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRl
UG9wdXBDbGllbnQuc2V0KG5ldyBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQodGhpcykpOwog
ICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5pbml0aWFsaXplKGlucHV0RWxlbSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9u
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
U3VnZ2VzdGlvbkluZGV4KTsKLSAgICAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwLmdldCgp
KSB7Ci0gICAgICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwID0KKyAgICAgICAgaWYgKCFtX3N1
Z2dlc3Rpb25zUG9wdXAuZ2V0KCkpIHsKKyAgICAgICAgICAgIG1fc3VnZ2VzdGlvbnNQb3B1cCA9
CiAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6OmNyZWF0ZShtX2F1dG9jb21wbGV0ZVBv
cHVwQ2xpZW50LmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXV0b2NvbXBsZXRlUG9wdXBTZXR0aW5ncyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdWdnZXN0aW9uc1BvcHVwU2V0dGluZ3MpOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nKSB7CisgICAgICAgIGlmIChtX3N1Z2dl
c3Rpb25zUG9wdXBTaG93aW5nKSB7CiAgICAgICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xp
ZW50LT5zZXRTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7Ci0gICAgICAgICAgICByZWZyZXNoQXV0
b2ZpbGxQb3B1cCgpOworICAgICAgICAgICAgcmVmcmVzaFN1Z2dlc3Rpb25zUG9wdXAoKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAtPnNob3coZm9j
dXNlZE5vZGUtPmdldFJlY3QoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKLSAgICAgICAgICAg
IG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fc3VnZ2Vz
dGlvbnNQb3B1cC0+c2hvdyhmb2N1c2VkTm9kZS0+Z2V0UmVjdCgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXco
KSwgMCk7CisgICAgICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nID0gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6aGlkZUF1dG9maWxsUG9wdXAo
KQogewotICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgIGhpZGVTdWdnZXN0aW9uc1Bv
cHVwKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1DdXN0b21Db250ZXh0TWVudUFj
dGlvbih1bnNpZ25lZCBhY3Rpb24pCkBAIC0xNzc4LDE5ICsxNzc4LDE0IEBAIHZvaWQgV2ViVmll
d0ltcGw6Om9ic2VydmVOZXdOYXZpZ2F0aW9uKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXdJ
bXBsOjpoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKQordm9pZCBXZWJWaWV3SW1wbDo6aGlkZVN1Z2dl
c3Rpb25zUG9wdXAoKQogewotICAgIGlmIChtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2luZykgewot
ICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwLT5oaWRlUG9wdXAoKTsKLSAgICAgICAgYXV0b0Nv
bXBsZXRlUG9wdXBEaWRIaWRlKCk7CisgICAgaWYgKG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcp
IHsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5oaWRlUG9wdXAoKTsKKyAgICAgICAgbV9z
dWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IGZhbHNlOwogICAgIH0KIH0KIAotdm9pZCBXZWJWaWV3
SW1wbDo6YXV0b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCkKLXsKLSAgICBtX2F1dG9jb21wbGV0ZVBv
cHVwU2hvd2luZyA9IGZhbHNlOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVJbnB1
dEV2ZW50cyhib29sIG5ld1ZhbHVlKQogewogICAgIEFTU0VSVChtX2lnbm9yZUlucHV0RXZlbnRz
ICE9IG5ld1ZhbHVlKTsKQEAgLTE4MDgsMjEgKzE4MDMsMjEgQEAgTm90aWZpY2F0aW9uUHJlc2Vu
dGVySW1wbCogV2ViVmlld0ltcGw6OgogCiB2b2lkIFdlYlZpZXdJbXBsOjpyZWZyZXNoQXV0b2Zp
bGxQb3B1cCgpCiB7Ci0gICAgQVNTRVJUKG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nKTsKKyAg
ICBBU1NFUlQobV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyk7CiAKICAgICAvLyBIaWRlIHRoZSBw
b3B1cCBpZiBpdCBoYXMgYmVjb21lIGVtcHR5LgogICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1
cENsaWVudC0+bGlzdFNpemUoKSkgewotICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsK
KyAgICAgICAgaGlkZVN1Z2dlc3Rpb25zQ29tcGxldGVQb3B1cCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgSW50UmVjdCBvbGRCb3VuZHMgPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5i
b3VuZHNSZWN0KCk7Ci0gICAgbV9hdXRvY29tcGxldGVQb3B1cC0+cmVmcmVzaCgpOwotICAgIElu
dFJlY3QgbmV3Qm91bmRzID0gbV9hdXRvY29tcGxldGVQb3B1cC0+Ym91bmRzUmVjdCgpOworICAg
IEludFJlY3Qgb2xkQm91bmRzID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5ib3VuZHNSZWN0KCk7Cisg
ICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5yZWZyZXNoKCk7CisgICAgSW50UmVjdCBuZXdCb3VuZHMg
PSBtX3N1Z2dlc3Rpb25zUG9wdXAtPmJvdW5kc1JlY3QoKTsKICAgICAvLyBMZXQncyByZXNpemUg
dGhlIGJhY2tpbmcgd2luZG93IGlmIG5lY2Vzc2FyeS4KICAgICBpZiAob2xkQm91bmRzICE9IG5l
d0JvdW5kcykgewogICAgICAgICBXZWJQb3B1cE1lbnVJbXBsKiBwb3B1cE1lbnUgPQotICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51SW1wbCo+KG1fYXV0b2NvbXBsZXRlUG9wdXAt
PmNsaWVudCgpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudUltcGwqPiht
X3N1Z2dlc3Rpb25zUG9wdXAtPmNsaWVudCgpKTsKICAgICAgICAgcG9wdXBNZW51LT5jbGllbnQo
KS0+c2V0V2luZG93UmVjdChuZXdCb3VuZHMpOwogICAgIH0KIH0KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAg
ICAgICBjb25zdCBXZWJOb2RlJiwKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4m
IHN1Z2dlc3Rpb25zLAogICAgICAgICBpbnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCk7Ci0gICAg
dmlydHVhbCB2b2lkIGhpZGVBdXRvZmlsbFBvcHVwKCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGVT
dWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1
bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKTsKQEAgLTI2MSwxMCArMjYxLDYgQEAgcHVibGljOgog
ICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCiAgICAgICAgIFdlYkRyYWdPcGVy
YXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9uTWFzayk7CiAKLSAgICAvLyBIaWRlcyB0aGUg
YXV0b2NvbXBsZXRlIHBvcHVwIGlmIGl0IGlzIHNob3dpbmcuCi0gICAgdm9pZCBoaWRlQXV0b0Nv
bXBsZXRlUG9wdXAoKTsKLSAgICB2b2lkIGF1dG9Db21wbGV0ZVBvcHVwRGlkSGlkZSgpOwotCiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgLy8gUmV0dXJucyB0aGUgcHJvdmlkZXIgb2Yg
ZGVza3RvcCBub3RpZmljYXRpb25zLgogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGwqIG5v
dGlmaWNhdGlvblByZXNlbnRlckltcGwoKTsKQEAgLTM5MywxMiArMzg5LDEyIEBAIHByaXZhdGU6
CiAgICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcgKHRoZSBkcm9wIHRh
cmdldCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0aW9uIG1fZHJhZ09w
ZXJhdGlvbjsKIAotICAgIC8vIFRoZSBhdXRvY29tcGxldGUgcG9wdXAuICBLZXB0IGFyb3VuZCBh
bmQgcmV1c2VkIGV2ZXJ5LXRpbWUgbmV3IHN1Z2dlc3Rpb25zCisgICAgLy8gVGhlIHN1Z2dlc3Rp
b25zIHBvcHVwLiAgS2VwdCBhcm91bmQgYW5kIHJldXNlZCBldmVyeS10aW1lIG5ldyBzdWdnZXN0
aW9ucwogICAgIC8vIHNob3VsZCBiZSBzaG93bi4KLSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBD
b250YWluZXI+IG1fYXV0b2NvbXBsZXRlUG9wdXA7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVw
Q29udGFpbmVyPiBtX3N1Z2dlc3Rpb25zUG9wdXA7CiAKLSAgICAvLyBXaGV0aGVyIHRoZSBhdXRv
Y29tcGxldGUgcG9wdXAgaXMgY3VycmVudGx5IHNob3dpbmcuCi0gICAgYm9vbCBtX2F1dG9jb21w
bGV0ZVBvcHVwU2hvd2luZzsKKyAgICAvLyBXaGV0aGVyIHRoZSBzdWdnZXN0aW9ucyBwb3B1cCBp
cyBjdXJyZW50bHkgc2hvd2luZy4KKyAgICBib29sIG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmc7
CiAKICAgICAvLyBUaGUgYXV0b2NvbXBsZXRlIGNsaWVudC4KICAgICBPd25QdHI8QXV0b2NvbXBs
ZXRlUG9wdXBNZW51Q2xpZW50PiBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48265</attachid>
            <date>2010-02-05 15:02:32 -0800</date>
            <delta_ts>2010-02-05 15:10:27 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try3]</desc>
            <filename>rename3.diff</filename>
            <type>text/plain</type>
            <size>15433</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDcpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBSZW5hbWUgYXV0b2NvbXBsZXRl
KiB0byBzdWdnZXN0aW9ucyogdG8gcHJlcGFyZSBmb3IgdGhlCisgICAgICAgIHJlZmFjdG9yaW5n
IG9mIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRl
KToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtl
eUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZvY3VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlQXV0b2ZpbGxQb3B1cCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpyZWZyZXNoQXV0b2ZpbGxQb3B1cCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisKIDIwMTAtMDItMDUgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw4ICsyMzEsOCBAQCBwdWJs
aWM6CiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBzdWdnZXN0aW9ucywKICAg
ICAgICAgaW50IGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpID0gMDsKIAotICAgIC8vIEhpZGVzIHRo
ZSBhdXRvZmlsbCBwb3B1cCBpZiBhbnkgYXJlIHNob3dpbmcuCi0gICAgdmlydHVhbCB2b2lkIGhp
ZGVBdXRvZmlsbFBvcHVwKCkgPSAwOworICAgIC8vIEhpZGVzIHRoZSBzdWdnZXN0aW9ucyBwb3B1
cCBpZiBhbnkgYXJlIHNob3dpbmcuCisgICAgdmlydHVhbCB2b2lkIGhpZGVTdWdnZXN0aW9uc1Bv
cHVwKCkgPSAwOwogCiAKICAgICAvLyBDb250ZXh0IG1lbnUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHAJKHJldmlzaW9u
IDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvY29tcGxldGVQb3B1cE1lbnVDbGll
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgaW50IEF1dG9jb21wbGV0
ZVBvcHVwTWVudUNsaWVudDo6Y2xpZW50UAogCiB2b2lkIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNs
aWVudDo6cG9wdXBEaWRIaWRlKCkKIHsKLSAgICBtX3dlYlZpZXctPmF1dG9Db21wbGV0ZVBvcHVw
RGlkSGlkZSgpOworICAgIG1fd2ViVmlldy0+c3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKTsKIH0K
IAogdm9pZCBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ6OnNldFRleHRGcm9tSXRlbSh1bnNp
Z25lZCBsaXN0SW5kZXgpCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5jcHAJKHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjU0LDcgKzY1NCw3IEBAIHZvaWQgRWRp
dG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWQKICAgICBtX2F1dG9maWxsVGltZXIuc3Rv
cCgpOwogCiAgICAgLy8gSGlkZSBhbnkgc2hvd2luZyBwb3B1cC4KLSAgICBtX3dlYlZpZXctPmhp
ZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgIG1fd2ViVmlldy0+aGlkZVN1Z2dlc3Rpb25zUG9w
dXAoKTsKIAogICAgIGlmICghbV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOyAv
LyBUaGUgcGFnZSBpcyBnZXR0aW5nIGNsb3NlZCwgZG9uJ3QgZmlsbCB0aGUgcGFzc3dvcmQuCkBA
IC03NDgsNyArNzQ4LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKFRpbWVy
PAogICAgICAgICAgICAgICAgICAgICAgICAmJiBpbnB1dEVsZW1lbnQtPnNlbGVjdGlvbkVuZCgp
ID09IHN0YXRpY19jYXN0PGludD4odmFsdWUubGVuZ3RoKCkpOwogCiAgICAgaWYgKCghYXJncy0+
YXV0b2ZpbGxPbkVtcHR5VmFsdWUgJiYgdmFsdWUuaXNFbXB0eSgpKSB8fCAhaXNDYXJldEF0RW5k
KSB7Ci0gICAgICAgIG1fd2ViVmlldy0+aGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAg
IG1fd2ViVmlldy0+aGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU0NDQ0
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTE0OCwxNiArMTQ4LDE2IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRHJhZ09wZXJh
dGkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRHJhZ09wZXJhdGlvbkRlbGV0ZSk7CiBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKERyYWdPcGVyYXRpb25FdmVyeSk7CiAKLS8vIE5v
dGUgdGhhdCBmb2N1c09uU2hvdyBpcyBmYWxzZSBzbyB0aGF0IHRoZSBhdXRvY29tcGxldGUgcG9w
dXAgaXMgc2hvd24gbm90CisvLyBOb3RlIHRoYXQgZm9jdXNPblNob3cgaXMgZmFsc2Ugc28gdGhh
dCB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAgaXMgc2hvd24gbm90CiAvLyBhY3RpdmF0ZWQuICBXZSBu
ZWVkIHRoZSBwYWdlIHRvIHN0aWxsIGhhdmUgZm9jdXMgc28gdGhlIHVzZXIgY2FuIGtlZXAgdHlw
aW5nCiAvLyB3aGlsZSB0aGUgcG9wdXAgaXMgc2hvd2luZy4KLXN0YXRpYyBjb25zdCBQb3B1cENv
bnRhaW5lclNldHRpbmdzIGF1dG9jb21wbGV0ZVBvcHVwU2V0dGluZ3MgPSB7CitzdGF0aWMgY29u
c3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBzdWdnZXN0aW9uc1BvcHVwU2V0dGluZ3MgPSB7CiAg
ICAgZmFsc2UsICAvLyBmb2N1c09uU2hvdwogICAgIGZhbHNlLCAgLy8gc2V0VGV4dE9uSW5kZXhD
aGFuZ2UKICAgICBmYWxzZSwgIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUsICAgLy8gbG9v
cFNlbGVjdGlvbk5hdmlnYXRpb24KICAgICB0cnVlLCAgIC8vIHJlc3RyaWN0V2lkdGhPZkxpc3RC
b3guIFNhbWUgYXMgb3RoZXIgYnJvd3NlciAoRngsIElFLCBhbmQgc2FmYXJpKQotICAgIC8vIEZv
ciBhdXRvY29tcGxldGUsIHdlIHVzZSB0aGUgZGlyZWN0aW9uIG9mIHRoZSBpbnB1dCBmaWVsZCBh
cyB0aGUgZGlyZWN0aW9uCisgICAgLy8gRm9yIHN1Z2dlc3Rpb25zLCB3ZSB1c2UgdGhlIGRpcmVj
dGlvbiBvZiB0aGUgaW5wdXQgZmllbGQgYXMgdGhlIGRpcmVjdGlvbgogICAgIC8vIG9mIHRoZSBw
b3B1cCBpdGVtcy4gVGhlIG1haW4gcmVhc29uIGlzIHRvIGtlZXAgdGhlIGRpc3BsYXkgb2YgaXRl
bXMgaW4KICAgICAvLyBkcm9wLWRvd24gdGhlIHNhbWUgYXMgdGhlIGl0ZW1zIGluIHRoZSBpbnB1
dCBmaWVsZC4KICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzOjpET01FbGVtZW50RGlyZWN0aW9u
LApAQCAtMjM5LDcgKzIzOSw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xp
ZW50KiAKICAgICAsIG1fZHJvcEVmZmVjdChEcm9wRWZmZWN0RGVmYXVsdCkKICAgICAsIG1fb3Bl
cmF0aW9uc0FsbG93ZWQoV2ViRHJhZ09wZXJhdGlvbk5vbmUpCiAgICAgLCBtX2RyYWdPcGVyYXRp
b24oV2ViRHJhZ09wZXJhdGlvbk5vbmUpCi0gICAgLCBtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2lu
ZyhmYWxzZSkKKyAgICAsIG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcoZmFsc2UpCiAgICAgLCBt
X2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX3RhYnNUb0xpbmtzKGZhbHNlKQogewpAQCAt
MzI2LDcgKzMyNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihjb25zdCBXZWJNb3UK
ICAgICBtX2xhc3RNb3VzZURvd25Qb2ludCA9IFdlYlBvaW50KGV2ZW50LngsIGV2ZW50LnkpOwog
CiAgICAgLy8gSWYgYSB0ZXh0IGZpZWxkIHRoYXQgaGFzIGZvY3VzIGlzIGNsaWNrZWQgYWdhaW4s
IHdlIHNob3VsZCBkaXNwbGF5IHRoZQotICAgIC8vIGF1dG9jb21wbGV0ZSBwb3B1cC4KKyAgICAv
LyBzdWdnZXN0aW9ucyBwb3B1cC4KICAgICBSZWZQdHI8Tm9kZT4gY2xpY2tlZE5vZGU7CiAgICAg
aWYgKGV2ZW50LmJ1dHRvbiA9PSBXZWJNb3VzZUV2ZW50OjpCdXR0b25MZWZ0KSB7CiAgICAgICAg
IFJlZlB0cjxOb2RlPiBmb2N1c2VkTm9kZSA9IGZvY3VzZWRXZWJDb3JlTm9kZSgpOwpAQCAtMzQ4
LDcgKzM0OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihjb25zdCBXZWJNb3UKICAg
ICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihtYWluRnJhbWVJbXBsKCktPmZyYW1lVmll
dygpLCBldmVudCkpOwogCiAgICAgaWYgKGNsaWNrZWROb2RlLmdldCgpICYmIGNsaWNrZWROb2Rl
ID09IGZvY3VzZWRXZWJDb3JlTm9kZSgpKSB7Ci0gICAgICAgIC8vIEZvY3VzIGhhcyBub3QgY2hh
bmdlZCwgc2hvdyB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwLgorICAgICAgICAvLyBGb2N1cyBoYXMg
bm90IGNoYW5nZWQsIHNob3cgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwLgogICAgICAgICBzdGF0aWNf
Y2FzdDxFZGl0b3JDbGllbnRJbXBsKj4obV9wYWdlLT5lZGl0b3JDbGllbnQoKSktPgogICAgICAg
ICAgICAgc2hvd0Zvcm1BdXRvZmlsbEZvck5vZGUoY2xpY2tlZE5vZGUuZ2V0KCkpOwogICAgIH0K
QEAgLTUxNCw3ICs1MTQsNyBAQCBib29sIFdlYlZpZXdJbXBsOjprZXlFdmVudChjb25zdCBXZWJL
ZXliCiAKIGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUV2ZW50KGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQogewotICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1
cFNob3dpbmcKKyAgICBpZiAoIW1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcKICAgICAgICAgLy8g
SG9tZSBhbmQgRW5kIHNob3VsZCBiZSBsZWZ0IHRvIHRoZSB0ZXh0IGZpZWxkIHRvIHByb2Nlc3Mu
CiAgICAgICAgIHx8IGV2ZW50LndpbmRvd3NLZXlDb2RlID09IFZLRVlfSE9NRQogICAgICAgICB8
fCBldmVudC53aW5kb3dzS2V5Q29kZSA9PSBWS0VZX0VORCkKQEAgLTUyMiw3ICs1MjIsNyBAQCBi
b29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFCiAKICAgICAvLyBQcmVzc2lu
ZyBkZWxldGUgdHJpZ2dlcnMgdGhlIHJlbW92YWwgb2YgdGhlIHNlbGVjdGVkIHN1Z2dlc3Rpb24g
ZnJvbSB0aGUgREIuCiAgICAgaWYgKGV2ZW50LndpbmRvd3NLZXlDb2RlID09IFZLRVlfREVMRVRF
Ci0gICAgICAgICYmIG1fYXV0b2NvbXBsZXRlUG9wdXAtPnNlbGVjdGVkSW5kZXgoKSAhPSAtMSkg
eworICAgICAgICAmJiBtX3N1Z2dlc3Rpb25zUG9wdXAtPnNlbGVjdGVkSW5kZXgoKSAhPSAtMSkg
ewogICAgICAgICBOb2RlKiBub2RlID0gZm9jdXNlZFdlYkNvcmVOb2RlKCk7CiAgICAgICAgIGlm
ICghbm9kZSB8fCAobm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUpKSB7CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTUzNCw3ICs1MzQsNyBAQCBib29s
IFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpbnQgc2VsZWN0ZWRJbmRleCA9IG1fYXV0b2Nv
bXBsZXRlUG9wdXAtPnNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgaW50IHNlbGVjdGVkSW5kZXgg
PSBtX3N1Z2dlc3Rpb25zUG9wdXAtPnNlbGVjdGVkSW5kZXgoKTsKICAgICAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVs
ZW1lbnQpOwogICAgICAgICBXZWJTdHJpbmcgbmFtZSA9IGlucHV0RWxlbWVudC0+bmFtZSgpOwog
ICAgICAgICBXZWJTdHJpbmcgdmFsdWUgPSBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5pdGVt
VGV4dChzZWxlY3RlZEluZGV4KTsKQEAgLTU0NiwxMCArNTQ2LDEwIEBAIGJvb2wgV2ViVmlld0lt
cGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAotICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1cC0+aXNJbnRlcmVzdGVkSW5FdmVudEZvcktl
eShldmVudC53aW5kb3dzS2V5Q29kZSkpCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25zUG9wdXAtPmlz
SW50ZXJlc3RlZEluRXZlbnRGb3JLZXkoZXZlbnQud2luZG93c0tleUNvZGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9hdXRvY29tcGxldGVQb3B1cC0+aGFuZGxlS2V5RXZl
bnQoUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihldmVudCkpKSB7CisgICAgaWYgKG1fc3Vn
Z2VzdGlvbnNQb3B1cC0+aGFuZGxlS2V5RXZlbnQoUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRl
cihldmVudCkpKSB7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRoZSBuZXh0IENoYXIg
ZXZlbnQgYWZ0ZXIgdGhpcyBvdGhlcndpc2UgcHJlc3NpbmcKICAgICAgICAgLy8gZW50ZXIgd2hl
biBzZWxlY3RpbmcgYW4gaXRlbSBpbiB0aGUgbWVudSB3aWxsIGdvIHRvIHRoZSBwYWdlLgogICAg
ICAgICBpZiAoV2ViSW5wdXRFdmVudDo6UmF3S2V5RG93biA9PSBldmVudC50eXBlKQpAQCAtOTc2
LDcgKzk3Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEZvY3VzKGJvb2wgZW5hYmxlKQogICAg
ICAgICB9CiAgICAgICAgIG1faW1lQWNjZXB0RXZlbnRzID0gdHJ1ZTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAgICAgaGlkZVN1Z2dlc3Rpb25z
UG9wdXAoKTsKIAogICAgICAgICAvLyBDbGVhciBmb2N1cyBvbiB0aGUgY3VycmVudGx5IGZvY3Vz
ZWQgZnJhbWUgaWYgYW55LgogICAgICAgICBpZiAoIW1fcGFnZS5nZXQoKSkKQEAgLTE1NTksNyAr
MTU1OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICBp
bnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCkKIHsKICAgICBpZiAoIW1fcGFnZS5nZXQoKSB8fCBz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7
CisgICAgICAgIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTE1NjgsNyArMTU2OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxT
dWdnZXN0aW8KICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmb2N1c2VkID0gbV9wYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZEZyYW1lKCkpIHsKICAgICAgICAgUmVmUHRyPERvY3VtZW50PiBk
b2N1bWVudCA9IGZvY3VzZWQtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmICghZG9jdW1lbnQuZ2V0
KCkpIHsKLSAgICAgICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICAgICAg
aGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC0xNTc3LDcgKzE1NzcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3Vn
Z2VzdGlvCiAgICAgICAgIC8vIGZvY3VzZWQgbm9kZSwgdGhlbiB3ZSBoYXZlIG5vdGhpbmcgdG8g
ZG8uICBGSVhNRTogYWxzbyBjaGVjayB0aGUKICAgICAgICAgLy8gY2FycmV0IGlzIGF0IHRoZSBl
bmQgYW5kIHRoYXQgdGhlIHRleHQgaGFzIG5vdCBjaGFuZ2VkLgogICAgICAgICBpZiAoIWZvY3Vz
ZWROb2RlLmdldCgpIHx8IGZvY3VzZWROb2RlICE9IFBhc3NSZWZQdHI8Tm9kZT4obm9kZSkpIHsK
LSAgICAgICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICAgICAgaGlkZVN1
Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0x
NTg5LDMzICsxNTg5LDMzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0
aW8KICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtID0KICAgICAgICAgICAgIHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1c2VkTm9kZS5nZXQoKSk7CiAKLSAgICAg
ICAgLy8gVGhlIGZpcnN0IHRpbWUgdGhlIGF1dG9jb21wbGV0ZSBpcyBzaG93biB3ZSdsbCBjcmVh
dGUgdGhlIGNsaWVudCBhbmQgdGhlCi0gICAgICAgIC8vIHBvcHVwLgorICAgICAgICAvLyBUaGUg
Zmlyc3QgdGltZSB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAgaXMgc2hvd24gd2UnbGwgY3JlYXRlIHRo
ZSBjbGllbnQKKyAgICAgICAgLy8gYW5kIHRoZSBwb3B1cC4KICAgICAgICAgaWYgKCFtX2F1dG9j
b21wbGV0ZVBvcHVwQ2xpZW50LmdldCgpKQogICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1
cENsaWVudC5zZXQobmV3IEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudCh0aGlzKSk7CiAgICAg
ICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQtPmluaXRpYWxpemUoaW5wdXRFbGVtLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRTdWdn
ZXN0aW9uSW5kZXgpOwotICAgICAgICBpZiAoIW1fYXV0b2NvbXBsZXRlUG9wdXAuZ2V0KCkpIHsK
LSAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAgPQorICAgICAgICBpZiAoIW1fc3VnZ2Vz
dGlvbnNQb3B1cC5nZXQoKSkgeworICAgICAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwID0KICAg
ICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKG1fYXV0b2NvbXBsZXRlUG9wdXBD
bGllbnQuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
Y29tcGxldGVQb3B1cFNldHRpbmdzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1Z2dlc3Rpb25zUG9wdXBTZXR0aW5ncyk7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpIHsKKyAgICAgICAgaWYgKG1fc3VnZ2VzdGlv
bnNQb3B1cFNob3dpbmcpIHsKICAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQt
PnNldFN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTsKLSAgICAgICAgICAgIHJlZnJlc2hBdXRvZmls
bFBvcHVwKCk7CisgICAgICAgICAgICByZWZyZXNoU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cC0+c2hvdyhmb2N1c2Vk
Tm9kZS0+Z2V0UmVjdCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOwotICAgICAgICAgICAgbV9h
dXRvY29tcGxldGVQb3B1cFNob3dpbmcgPSB0cnVlOworICAgICAgICAgICAgbV9zdWdnZXN0aW9u
c1BvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAw
KTsKKyAgICAgICAgICAgIG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgICAg
ICB9CiAgICAgfQogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpoaWRlQXV0b2ZpbGxQb3B1cCgpCiB7
Ci0gICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgaGlkZVN1Z2dlc3Rpb25zUG9wdXAo
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybUN1c3RvbUNvbnRleHRNZW51QWN0aW9u
KHVuc2lnbmVkIGFjdGlvbikKQEAgLTE3NzgsMTkgKzE3NzgsMTQgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6b2JzZXJ2ZU5ld05hdmlnYXRpb24oKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6
OmhpZGVBdXRvQ29tcGxldGVQb3B1cCgpCit2b2lkIFdlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlv
bnNQb3B1cCgpCiB7Ci0gICAgaWYgKG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nKSB7Ci0gICAg
ICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAtPmhpZGVQb3B1cCgpOwotICAgICAgICBhdXRvQ29tcGxl
dGVQb3B1cERpZEhpZGUoKTsKKyAgICBpZiAobV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZykgewor
ICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXAtPmhpZGVQb3B1cCgpOworICAgICAgICBtX3N1Z2dl
c3Rpb25zUG9wdXBTaG93aW5nID0gZmFsc2U7CiAgICAgfQogfQogCi12b2lkIFdlYlZpZXdJbXBs
OjphdXRvQ29tcGxldGVQb3B1cERpZEhpZGUoKQotewotICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBT
aG93aW5nID0gZmFsc2U7Ci19Ci0KIHZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZUlucHV0RXZl
bnRzKGJvb2wgbmV3VmFsdWUpCiB7CiAgICAgQVNTRVJUKG1faWdub3JlSW5wdXRFdmVudHMgIT0g
bmV3VmFsdWUpOwpAQCAtMTgwOCwyMSArMTgwMywyMSBAQCBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsKiBXZWJWaWV3SW1wbDo6CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hBdXRvZmlsbFBv
cHVwKCkKIHsKLSAgICBBU1NFUlQobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpOworICAgIEFT
U0VSVChtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKTsKIAogICAgIC8vIEhpZGUgdGhlIHBvcHVw
IGlmIGl0IGhhcyBiZWNvbWUgZW1wdHkuCiAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwQ2xp
ZW50LT5saXN0U2l6ZSgpKSB7Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAg
ICAgICBoaWRlU3VnZ2VzdGlvbnNDb21wbGV0ZVBvcHVwKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBJbnRSZWN0IG9sZEJvdW5kcyA9IG1fYXV0b2NvbXBsZXRlUG9wdXAtPmJvdW5k
c1JlY3QoKTsKLSAgICBtX2F1dG9jb21wbGV0ZVBvcHVwLT5yZWZyZXNoKCk7Ci0gICAgSW50UmVj
dCBuZXdCb3VuZHMgPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5ib3VuZHNSZWN0KCk7CisgICAgSW50
UmVjdCBvbGRCb3VuZHMgPSBtX3N1Z2dlc3Rpb25zUG9wdXAtPmJvdW5kc1JlY3QoKTsKKyAgICBt
X3N1Z2dlc3Rpb25zUG9wdXAtPnJlZnJlc2goKTsKKyAgICBJbnRSZWN0IG5ld0JvdW5kcyA9IG1f
c3VnZ2VzdGlvbnNQb3B1cC0+Ym91bmRzUmVjdCgpOwogICAgIC8vIExldCdzIHJlc2l6ZSB0aGUg
YmFja2luZyB3aW5kb3cgaWYgbmVjZXNzYXJ5LgogICAgIGlmIChvbGRCb3VuZHMgIT0gbmV3Qm91
bmRzKSB7CiAgICAgICAgIFdlYlBvcHVwTWVudUltcGwqIHBvcHVwTWVudSA9Ci0gICAgICAgICAg
ICBzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVJbXBsKj4obV9hdXRvY29tcGxldGVQb3B1cC0+Y2xp
ZW50KCkpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51SW1wbCo+KG1fc3Vn
Z2VzdGlvbnNQb3B1cC0+Y2xpZW50KCkpOwogICAgICAgICBwb3B1cE1lbnUtPmNsaWVudCgpLT5z
ZXRXaW5kb3dSZWN0KG5ld0JvdW5kcyk7CiAgICAgfQogfQpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IFdlYk5vZGUmLAogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgc3Vn
Z2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KTsKLSAgICB2aXJ0
dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZVN1Z2dl
c3Rpb25zUG9wdXAoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2ln
bmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBhY3RpdmVDb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHRyYWNrQ29sb3IpOwpAQCAtMjYxLDEwICsyNjEsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKICAgICAgICAgV2ViRHJhZ09wZXJhdGlv
bnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNrKTsKIAotICAgIC8vIEhpZGVzIHRoZSBhdXRv
Y29tcGxldGUgcG9wdXAgaWYgaXQgaXMgc2hvd2luZy4KLSAgICB2b2lkIGhpZGVBdXRvQ29tcGxl
dGVQb3B1cCgpOwotICAgIHZvaWQgYXV0b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCk7Ci0KICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAvLyBSZXR1cm5zIHRoZSBwcm92aWRlciBvZiBkZXNr
dG9wIG5vdGlmaWNhdGlvbnMuCiAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCogbm90aWZp
Y2F0aW9uUHJlc2VudGVySW1wbCgpOwpAQCAtMzkzLDEyICszODksMTIgQEAgcHJpdmF0ZToKICAg
ICAvLyBjdXJyZW50IGRyb3AgdGFyZ2V0IGluIHRoaXMgV2ViVmlldyAodGhlIGRyb3AgdGFyZ2V0
IGNhbiBhY2NlcHQgdGhlIGRyb3ApLgogICAgIFdlYkRyYWdPcGVyYXRpb24gbV9kcmFnT3BlcmF0
aW9uOwogCi0gICAgLy8gVGhlIGF1dG9jb21wbGV0ZSBwb3B1cC4gIEtlcHQgYXJvdW5kIGFuZCBy
ZXVzZWQgZXZlcnktdGltZSBuZXcgc3VnZ2VzdGlvbnMKKyAgICAvLyBUaGUgc3VnZ2VzdGlvbnMg
cG9wdXAuICBLZXB0IGFyb3VuZCBhbmQgcmV1c2VkIGV2ZXJ5LXRpbWUgbmV3IHN1Z2dlc3Rpb25z
CiAgICAgLy8gc2hvdWxkIGJlIHNob3duLgotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cENvbnRh
aW5lcj4gbV9hdXRvY29tcGxldGVQb3B1cDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBDb250
YWluZXI+IG1fc3VnZ2VzdGlvbnNQb3B1cDsKIAotICAgIC8vIFdoZXRoZXIgdGhlIGF1dG9jb21w
bGV0ZSBwb3B1cCBpcyBjdXJyZW50bHkgc2hvd2luZy4KLSAgICBib29sIG1fYXV0b2NvbXBsZXRl
UG9wdXBTaG93aW5nOworICAgIC8vIFdoZXRoZXIgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIGN1
cnJlbnRseSBzaG93aW5nLgorICAgIGJvb2wgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZzsKIAog
ICAgIC8vIFRoZSBhdXRvY29tcGxldGUgY2xpZW50LgogICAgIE93blB0cjxBdXRvY29tcGxldGVQ
b3B1cE1lbnVDbGllbnQ+IG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48266</attachid>
            <date>2010-02-05 15:10:27 -0800</date>
            <delta_ts>2010-02-05 15:23:05 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try4]</desc>
            <filename>rename4.diff</filename>
            <type>text/plain</type>
            <size>15523</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDcpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBSZW5hbWUgYXV0b2NvbXBsZXRl
KiB0byBzdWdnZXN0aW9ucyogdG8gcHJlcGFyZQorICAgICAgICBmb3IgdGhlIHJlZmFjdG9yaW5n
IG9mIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRl
KToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtl
eUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZvY3VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlQXV0b2ZpbGxQb3B1cCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpyZWZyZXNoQXV0b2ZpbGxQb3B1cCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdWdnZXN0aW9uc1Bv
cHVwRGlkSGlkZSk6CisKIDIwMTAtMDItMDUgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw4ICsyMzEsOCBAQCBwdWJs
aWM6CiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBzdWdnZXN0aW9ucywKICAg
ICAgICAgaW50IGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpID0gMDsKIAotICAgIC8vIEhpZGVzIHRo
ZSBhdXRvZmlsbCBwb3B1cCBpZiBhbnkgYXJlIHNob3dpbmcuCi0gICAgdmlydHVhbCB2b2lkIGhp
ZGVBdXRvZmlsbFBvcHVwKCkgPSAwOworICAgIC8vIEhpZGVzIHRoZSBzdWdnZXN0aW9ucyBwb3B1
cCBpZiBhbnkgYXJlIHNob3dpbmcuCisgICAgdmlydHVhbCB2b2lkIGhpZGVTdWdnZXN0aW9uc1Bv
cHVwKCkgPSAwOwogCiAKICAgICAvLyBDb250ZXh0IG1lbnUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHAJKHJldmlzaW9u
IDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvY29tcGxldGVQb3B1cE1lbnVDbGll
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgaW50IEF1dG9jb21wbGV0
ZVBvcHVwTWVudUNsaWVudDo6Y2xpZW50UAogCiB2b2lkIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNs
aWVudDo6cG9wdXBEaWRIaWRlKCkKIHsKLSAgICBtX3dlYlZpZXctPmF1dG9Db21wbGV0ZVBvcHVw
RGlkSGlkZSgpOworICAgIG1fd2ViVmlldy0+c3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKTsKIH0K
IAogdm9pZCBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ6OnNldFRleHRGcm9tSXRlbSh1bnNp
Z25lZCBsaXN0SW5kZXgpCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5jcHAJKHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjU0LDcgKzY1NCw3IEBAIHZvaWQgRWRp
dG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWQKICAgICBtX2F1dG9maWxsVGltZXIuc3Rv
cCgpOwogCiAgICAgLy8gSGlkZSBhbnkgc2hvd2luZyBwb3B1cC4KLSAgICBtX3dlYlZpZXctPmhp
ZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgIG1fd2ViVmlldy0+aGlkZVN1Z2dlc3Rpb25zUG9w
dXAoKTsKIAogICAgIGlmICghbV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOyAv
LyBUaGUgcGFnZSBpcyBnZXR0aW5nIGNsb3NlZCwgZG9uJ3QgZmlsbCB0aGUgcGFzc3dvcmQuCkBA
IC03NDgsNyArNzQ4LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKFRpbWVy
PAogICAgICAgICAgICAgICAgICAgICAgICAmJiBpbnB1dEVsZW1lbnQtPnNlbGVjdGlvbkVuZCgp
ID09IHN0YXRpY19jYXN0PGludD4odmFsdWUubGVuZ3RoKCkpOwogCiAgICAgaWYgKCghYXJncy0+
YXV0b2ZpbGxPbkVtcHR5VmFsdWUgJiYgdmFsdWUuaXNFbXB0eSgpKSB8fCAhaXNDYXJldEF0RW5k
KSB7Ci0gICAgICAgIG1fd2ViVmlldy0+aGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAg
IG1fd2ViVmlldy0+aGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU0NDQ0
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTE0OCwxNiArMTQ4LDE2IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRHJhZ09wZXJh
dGkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRHJhZ09wZXJhdGlvbkRlbGV0ZSk7CiBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKERyYWdPcGVyYXRpb25FdmVyeSk7CiAKLS8vIE5v
dGUgdGhhdCBmb2N1c09uU2hvdyBpcyBmYWxzZSBzbyB0aGF0IHRoZSBhdXRvY29tcGxldGUgcG9w
dXAgaXMgc2hvd24gbm90CisvLyBOb3RlIHRoYXQgZm9jdXNPblNob3cgaXMgZmFsc2Ugc28gdGhh
dCB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAgaXMgc2hvd24gbm90CiAvLyBhY3RpdmF0ZWQuICBXZSBu
ZWVkIHRoZSBwYWdlIHRvIHN0aWxsIGhhdmUgZm9jdXMgc28gdGhlIHVzZXIgY2FuIGtlZXAgdHlw
aW5nCiAvLyB3aGlsZSB0aGUgcG9wdXAgaXMgc2hvd2luZy4KLXN0YXRpYyBjb25zdCBQb3B1cENv
bnRhaW5lclNldHRpbmdzIGF1dG9jb21wbGV0ZVBvcHVwU2V0dGluZ3MgPSB7CitzdGF0aWMgY29u
c3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBzdWdnZXN0aW9uc1BvcHVwU2V0dGluZ3MgPSB7CiAg
ICAgZmFsc2UsICAvLyBmb2N1c09uU2hvdwogICAgIGZhbHNlLCAgLy8gc2V0VGV4dE9uSW5kZXhD
aGFuZ2UKICAgICBmYWxzZSwgIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUsICAgLy8gbG9v
cFNlbGVjdGlvbk5hdmlnYXRpb24KICAgICB0cnVlLCAgIC8vIHJlc3RyaWN0V2lkdGhPZkxpc3RC
b3guIFNhbWUgYXMgb3RoZXIgYnJvd3NlciAoRngsIElFLCBhbmQgc2FmYXJpKQotICAgIC8vIEZv
ciBhdXRvY29tcGxldGUsIHdlIHVzZSB0aGUgZGlyZWN0aW9uIG9mIHRoZSBpbnB1dCBmaWVsZCBh
cyB0aGUgZGlyZWN0aW9uCisgICAgLy8gRm9yIHN1Z2dlc3Rpb25zLCB3ZSB1c2UgdGhlIGRpcmVj
dGlvbiBvZiB0aGUgaW5wdXQgZmllbGQgYXMgdGhlIGRpcmVjdGlvbgogICAgIC8vIG9mIHRoZSBw
b3B1cCBpdGVtcy4gVGhlIG1haW4gcmVhc29uIGlzIHRvIGtlZXAgdGhlIGRpc3BsYXkgb2YgaXRl
bXMgaW4KICAgICAvLyBkcm9wLWRvd24gdGhlIHNhbWUgYXMgdGhlIGl0ZW1zIGluIHRoZSBpbnB1
dCBmaWVsZC4KICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzOjpET01FbGVtZW50RGlyZWN0aW9u
LApAQCAtMjM5LDcgKzIzOSw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xp
ZW50KiAKICAgICAsIG1fZHJvcEVmZmVjdChEcm9wRWZmZWN0RGVmYXVsdCkKICAgICAsIG1fb3Bl
cmF0aW9uc0FsbG93ZWQoV2ViRHJhZ09wZXJhdGlvbk5vbmUpCiAgICAgLCBtX2RyYWdPcGVyYXRp
b24oV2ViRHJhZ09wZXJhdGlvbk5vbmUpCi0gICAgLCBtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2lu
ZyhmYWxzZSkKKyAgICAsIG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcoZmFsc2UpCiAgICAgLCBt
X2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX3RhYnNUb0xpbmtzKGZhbHNlKQogewpAQCAt
MzI2LDcgKzMyNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihjb25zdCBXZWJNb3UK
ICAgICBtX2xhc3RNb3VzZURvd25Qb2ludCA9IFdlYlBvaW50KGV2ZW50LngsIGV2ZW50LnkpOwog
CiAgICAgLy8gSWYgYSB0ZXh0IGZpZWxkIHRoYXQgaGFzIGZvY3VzIGlzIGNsaWNrZWQgYWdhaW4s
IHdlIHNob3VsZCBkaXNwbGF5IHRoZQotICAgIC8vIGF1dG9jb21wbGV0ZSBwb3B1cC4KKyAgICAv
LyBzdWdnZXN0aW9ucyBwb3B1cC4KICAgICBSZWZQdHI8Tm9kZT4gY2xpY2tlZE5vZGU7CiAgICAg
aWYgKGV2ZW50LmJ1dHRvbiA9PSBXZWJNb3VzZUV2ZW50OjpCdXR0b25MZWZ0KSB7CiAgICAgICAg
IFJlZlB0cjxOb2RlPiBmb2N1c2VkTm9kZSA9IGZvY3VzZWRXZWJDb3JlTm9kZSgpOwpAQCAtMzQ4
LDcgKzM0OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihjb25zdCBXZWJNb3UKICAg
ICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihtYWluRnJhbWVJbXBsKCktPmZyYW1lVmll
dygpLCBldmVudCkpOwogCiAgICAgaWYgKGNsaWNrZWROb2RlLmdldCgpICYmIGNsaWNrZWROb2Rl
ID09IGZvY3VzZWRXZWJDb3JlTm9kZSgpKSB7Ci0gICAgICAgIC8vIEZvY3VzIGhhcyBub3QgY2hh
bmdlZCwgc2hvdyB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwLgorICAgICAgICAvLyBGb2N1cyBoYXMg
bm90IGNoYW5nZWQsIHNob3cgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwLgogICAgICAgICBzdGF0aWNf
Y2FzdDxFZGl0b3JDbGllbnRJbXBsKj4obV9wYWdlLT5lZGl0b3JDbGllbnQoKSktPgogICAgICAg
ICAgICAgc2hvd0Zvcm1BdXRvZmlsbEZvck5vZGUoY2xpY2tlZE5vZGUuZ2V0KCkpOwogICAgIH0K
QEAgLTUxNCw3ICs1MTQsNyBAQCBib29sIFdlYlZpZXdJbXBsOjprZXlFdmVudChjb25zdCBXZWJL
ZXliCiAKIGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUV2ZW50KGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQogewotICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1
cFNob3dpbmcKKyAgICBpZiAoIW1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcKICAgICAgICAgLy8g
SG9tZSBhbmQgRW5kIHNob3VsZCBiZSBsZWZ0IHRvIHRoZSB0ZXh0IGZpZWxkIHRvIHByb2Nlc3Mu
CiAgICAgICAgIHx8IGV2ZW50LndpbmRvd3NLZXlDb2RlID09IFZLRVlfSE9NRQogICAgICAgICB8
fCBldmVudC53aW5kb3dzS2V5Q29kZSA9PSBWS0VZX0VORCkKQEAgLTUyMiw3ICs1MjIsNyBAQCBi
b29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFCiAKICAgICAvLyBQcmVzc2lu
ZyBkZWxldGUgdHJpZ2dlcnMgdGhlIHJlbW92YWwgb2YgdGhlIHNlbGVjdGVkIHN1Z2dlc3Rpb24g
ZnJvbSB0aGUgREIuCiAgICAgaWYgKGV2ZW50LndpbmRvd3NLZXlDb2RlID09IFZLRVlfREVMRVRF
Ci0gICAgICAgICYmIG1fYXV0b2NvbXBsZXRlUG9wdXAtPnNlbGVjdGVkSW5kZXgoKSAhPSAtMSkg
eworICAgICAgICAmJiBtX3N1Z2dlc3Rpb25zUG9wdXAtPnNlbGVjdGVkSW5kZXgoKSAhPSAtMSkg
ewogICAgICAgICBOb2RlKiBub2RlID0gZm9jdXNlZFdlYkNvcmVOb2RlKCk7CiAgICAgICAgIGlm
ICghbm9kZSB8fCAobm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUpKSB7CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTUzNCw3ICs1MzQsNyBAQCBib29s
IFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpbnQgc2VsZWN0ZWRJbmRleCA9IG1fYXV0b2Nv
bXBsZXRlUG9wdXAtPnNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgaW50IHNlbGVjdGVkSW5kZXgg
PSBtX3N1Z2dlc3Rpb25zUG9wdXAtPnNlbGVjdGVkSW5kZXgoKTsKICAgICAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVs
ZW1lbnQpOwogICAgICAgICBXZWJTdHJpbmcgbmFtZSA9IGlucHV0RWxlbWVudC0+bmFtZSgpOwog
ICAgICAgICBXZWJTdHJpbmcgdmFsdWUgPSBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5pdGVt
VGV4dChzZWxlY3RlZEluZGV4KTsKQEAgLTU0NiwxMCArNTQ2LDEwIEBAIGJvb2wgV2ViVmlld0lt
cGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAotICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1cC0+aXNJbnRlcmVzdGVkSW5FdmVudEZvcktl
eShldmVudC53aW5kb3dzS2V5Q29kZSkpCisgICAgaWYgKCFtX3N1Z2dlc3Rpb25zUG9wdXAtPmlz
SW50ZXJlc3RlZEluRXZlbnRGb3JLZXkoZXZlbnQud2luZG93c0tleUNvZGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9hdXRvY29tcGxldGVQb3B1cC0+aGFuZGxlS2V5RXZl
bnQoUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihldmVudCkpKSB7CisgICAgaWYgKG1fc3Vn
Z2VzdGlvbnNQb3B1cC0+aGFuZGxlS2V5RXZlbnQoUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRl
cihldmVudCkpKSB7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRoZSBuZXh0IENoYXIg
ZXZlbnQgYWZ0ZXIgdGhpcyBvdGhlcndpc2UgcHJlc3NpbmcKICAgICAgICAgLy8gZW50ZXIgd2hl
biBzZWxlY3RpbmcgYW4gaXRlbSBpbiB0aGUgbWVudSB3aWxsIGdvIHRvIHRoZSBwYWdlLgogICAg
ICAgICBpZiAoV2ViSW5wdXRFdmVudDo6UmF3S2V5RG93biA9PSBldmVudC50eXBlKQpAQCAtOTc2
LDcgKzk3Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEZvY3VzKGJvb2wgZW5hYmxlKQogICAg
ICAgICB9CiAgICAgICAgIG1faW1lQWNjZXB0RXZlbnRzID0gdHJ1ZTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAgICAgaGlkZVN1Z2dlc3Rpb25z
UG9wdXAoKTsKIAogICAgICAgICAvLyBDbGVhciBmb2N1cyBvbiB0aGUgY3VycmVudGx5IGZvY3Vz
ZWQgZnJhbWUgaWYgYW55LgogICAgICAgICBpZiAoIW1fcGFnZS5nZXQoKSkKQEAgLTE1NTksNyAr
MTU1OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICBp
bnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCkKIHsKICAgICBpZiAoIW1fcGFnZS5nZXQoKSB8fCBz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7
CisgICAgICAgIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTE1NjgsNyArMTU2OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxT
dWdnZXN0aW8KICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmb2N1c2VkID0gbV9wYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZEZyYW1lKCkpIHsKICAgICAgICAgUmVmUHRyPERvY3VtZW50PiBk
b2N1bWVudCA9IGZvY3VzZWQtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmICghZG9jdW1lbnQuZ2V0
KCkpIHsKLSAgICAgICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICAgICAg
aGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC0xNTc3LDcgKzE1NzcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3Vn
Z2VzdGlvCiAgICAgICAgIC8vIGZvY3VzZWQgbm9kZSwgdGhlbiB3ZSBoYXZlIG5vdGhpbmcgdG8g
ZG8uICBGSVhNRTogYWxzbyBjaGVjayB0aGUKICAgICAgICAgLy8gY2FycmV0IGlzIGF0IHRoZSBl
bmQgYW5kIHRoYXQgdGhlIHRleHQgaGFzIG5vdCBjaGFuZ2VkLgogICAgICAgICBpZiAoIWZvY3Vz
ZWROb2RlLmdldCgpIHx8IGZvY3VzZWROb2RlICE9IFBhc3NSZWZQdHI8Tm9kZT4obm9kZSkpIHsK
LSAgICAgICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICAgICAgaGlkZVN1
Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0x
NTg5LDMzICsxNTg5LDMzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0
aW8KICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtID0KICAgICAgICAgICAgIHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1c2VkTm9kZS5nZXQoKSk7CiAKLSAgICAg
ICAgLy8gVGhlIGZpcnN0IHRpbWUgdGhlIGF1dG9jb21wbGV0ZSBpcyBzaG93biB3ZSdsbCBjcmVh
dGUgdGhlIGNsaWVudCBhbmQgdGhlCi0gICAgICAgIC8vIHBvcHVwLgorICAgICAgICAvLyBUaGUg
Zmlyc3QgdGltZSB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAgaXMgc2hvd24gd2UnbGwgY3JlYXRlIHRo
ZSBjbGllbnQKKyAgICAgICAgLy8gYW5kIHRoZSBwb3B1cC4KICAgICAgICAgaWYgKCFtX2F1dG9j
b21wbGV0ZVBvcHVwQ2xpZW50LmdldCgpKQogICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1
cENsaWVudC5zZXQobmV3IEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudCh0aGlzKSk7CiAgICAg
ICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQtPmluaXRpYWxpemUoaW5wdXRFbGVtLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRTdWdn
ZXN0aW9uSW5kZXgpOwotICAgICAgICBpZiAoIW1fYXV0b2NvbXBsZXRlUG9wdXAuZ2V0KCkpIHsK
LSAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAgPQorICAgICAgICBpZiAoIW1fc3VnZ2Vz
dGlvbnNQb3B1cC5nZXQoKSkgeworICAgICAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwID0KICAg
ICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKG1fYXV0b2NvbXBsZXRlUG9wdXBD
bGllbnQuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
Y29tcGxldGVQb3B1cFNldHRpbmdzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1Z2dlc3Rpb25zUG9wdXBTZXR0aW5ncyk7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpIHsKKyAgICAgICAgaWYgKG1fc3VnZ2VzdGlv
bnNQb3B1cFNob3dpbmcpIHsKICAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQt
PnNldFN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTsKLSAgICAgICAgICAgIHJlZnJlc2hBdXRvZmls
bFBvcHVwKCk7CisgICAgICAgICAgICByZWZyZXNoU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cC0+c2hvdyhmb2N1c2Vk
Tm9kZS0+Z2V0UmVjdCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOwotICAgICAgICAgICAgbV9h
dXRvY29tcGxldGVQb3B1cFNob3dpbmcgPSB0cnVlOworICAgICAgICAgICAgbV9zdWdnZXN0aW9u
c1BvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAw
KTsKKyAgICAgICAgICAgIG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgICAg
ICB9CiAgICAgfQogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpoaWRlQXV0b2ZpbGxQb3B1cCgpCiB7
Ci0gICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgaGlkZVN1Z2dlc3Rpb25zUG9wdXAo
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybUN1c3RvbUNvbnRleHRNZW51QWN0aW9u
KHVuc2lnbmVkIGFjdGlvbikKQEAgLTE3NzgsMTkgKzE3NzgsMTQgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6b2JzZXJ2ZU5ld05hdmlnYXRpb24oKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6
OmhpZGVBdXRvQ29tcGxldGVQb3B1cCgpCit2b2lkIFdlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlv
bnNQb3B1cCgpCiB7Ci0gICAgaWYgKG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nKSB7Ci0gICAg
ICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAtPmhpZGVQb3B1cCgpOwotICAgICAgICBhdXRvQ29tcGxl
dGVQb3B1cERpZEhpZGUoKTsKKyAgICBpZiAobV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZykgewor
ICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXAtPmhpZGVQb3B1cCgpOworICAgICAgICBtX3N1Z2dl
c3Rpb25zUG9wdXBTaG93aW5nID0gZmFsc2U7CiAgICAgfQogfQogCi12b2lkIFdlYlZpZXdJbXBs
OjphdXRvQ29tcGxldGVQb3B1cERpZEhpZGUoKQotewotICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBT
aG93aW5nID0gZmFsc2U7Ci19Ci0KIHZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZUlucHV0RXZl
bnRzKGJvb2wgbmV3VmFsdWUpCiB7CiAgICAgQVNTRVJUKG1faWdub3JlSW5wdXRFdmVudHMgIT0g
bmV3VmFsdWUpOwpAQCAtMTgwOCwyMSArMTgwMywyMSBAQCBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsKiBXZWJWaWV3SW1wbDo6CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hBdXRvZmlsbFBv
cHVwKCkKIHsKLSAgICBBU1NFUlQobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpOworICAgIEFT
U0VSVChtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKTsKIAogICAgIC8vIEhpZGUgdGhlIHBvcHVw
IGlmIGl0IGhhcyBiZWNvbWUgZW1wdHkuCiAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwQ2xp
ZW50LT5saXN0U2l6ZSgpKSB7Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAg
ICAgICBoaWRlU3VnZ2VzdGlvbnNDb21wbGV0ZVBvcHVwKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBJbnRSZWN0IG9sZEJvdW5kcyA9IG1fYXV0b2NvbXBsZXRlUG9wdXAtPmJvdW5k
c1JlY3QoKTsKLSAgICBtX2F1dG9jb21wbGV0ZVBvcHVwLT5yZWZyZXNoKCk7Ci0gICAgSW50UmVj
dCBuZXdCb3VuZHMgPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5ib3VuZHNSZWN0KCk7CisgICAgSW50
UmVjdCBvbGRCb3VuZHMgPSBtX3N1Z2dlc3Rpb25zUG9wdXAtPmJvdW5kc1JlY3QoKTsKKyAgICBt
X3N1Z2dlc3Rpb25zUG9wdXAtPnJlZnJlc2goKTsKKyAgICBJbnRSZWN0IG5ld0JvdW5kcyA9IG1f
c3VnZ2VzdGlvbnNQb3B1cC0+Ym91bmRzUmVjdCgpOwogICAgIC8vIExldCdzIHJlc2l6ZSB0aGUg
YmFja2luZyB3aW5kb3cgaWYgbmVjZXNzYXJ5LgogICAgIGlmIChvbGRCb3VuZHMgIT0gbmV3Qm91
bmRzKSB7CiAgICAgICAgIFdlYlBvcHVwTWVudUltcGwqIHBvcHVwTWVudSA9Ci0gICAgICAgICAg
ICBzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVJbXBsKj4obV9hdXRvY29tcGxldGVQb3B1cC0+Y2xp
ZW50KCkpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51SW1wbCo+KG1fc3Vn
Z2VzdGlvbnNQb3B1cC0+Y2xpZW50KCkpOwogICAgICAgICBwb3B1cE1lbnUtPmNsaWVudCgpLT5z
ZXRXaW5kb3dSZWN0KG5ld0JvdW5kcyk7CiAgICAgfQogfQpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IFdlYk5vZGUmLAogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgc3Vn
Z2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KTsKLSAgICB2aXJ0
dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZVN1Z2dl
c3Rpb25zUG9wdXAoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2ln
bmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBhY3RpdmVDb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHRyYWNrQ29sb3IpOwpAQCAtMjYxLDkgKzI2MSwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKICAgICAgICAgV2ViRHJhZ09wZXJhdGlv
bnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNrKTsKIAotICAgIC8vIEhpZGVzIHRoZSBhdXRv
Y29tcGxldGUgcG9wdXAgaWYgaXQgaXMgc2hvd2luZy4KLSAgICB2b2lkIGhpZGVBdXRvQ29tcGxl
dGVQb3B1cCgpOwotICAgIHZvaWQgYXV0b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCk7CisgICAgdm9p
ZCBzdWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgpCisgICAgeworICAgICAgICBtX3N1Z2dlc3Rpb25z
UG9wdXBTaG93aW5nID0gZmFsc2U7CisgICAgfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAgICAgLy8gUmV0dXJucyB0aGUgcHJvdmlkZXIgb2YgZGVza3RvcCBub3RpZmljYXRpb25zLgpA
QCAtMzkzLDEyICszOTQsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBjdXJyZW50IGRyb3AgdGFyZ2V0
IGluIHRoaXMgV2ViVmlldyAodGhlIGRyb3AgdGFyZ2V0IGNhbiBhY2NlcHQgdGhlIGRyb3ApLgog
ICAgIFdlYkRyYWdPcGVyYXRpb24gbV9kcmFnT3BlcmF0aW9uOwogCi0gICAgLy8gVGhlIGF1dG9j
b21wbGV0ZSBwb3B1cC4gIEtlcHQgYXJvdW5kIGFuZCByZXVzZWQgZXZlcnktdGltZSBuZXcgc3Vn
Z2VzdGlvbnMKKyAgICAvLyBUaGUgc3VnZ2VzdGlvbnMgcG9wdXAuICBLZXB0IGFyb3VuZCBhbmQg
cmV1c2VkIGV2ZXJ5LXRpbWUgbmV3IHN1Z2dlc3Rpb25zCiAgICAgLy8gc2hvdWxkIGJlIHNob3du
LgotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cENvbnRhaW5lcj4gbV9hdXRvY29tcGxldGVQb3B1
cDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBDb250YWluZXI+IG1fc3VnZ2VzdGlvbnNQb3B1
cDsKIAotICAgIC8vIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBwb3B1cCBpcyBjdXJyZW50bHkg
c2hvd2luZy4KLSAgICBib29sIG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nOworICAgIC8vIFdo
ZXRoZXIgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93aW5nLgorICAgIGJv
b2wgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZzsKIAogICAgIC8vIFRoZSBhdXRvY29tcGxldGUg
Y2xpZW50LgogICAgIE93blB0cjxBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ+IG1fYXV0b2Nv
bXBsZXRlUG9wdXBDbGllbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48267</attachid>
            <date>2010-02-05 15:23:05 -0800</date>
            <delta_ts>2010-02-05 15:40:32 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try5]</desc>
            <filename>rename5.diff</filename>
            <type>text/plain</type>
            <size>16147</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBSZW5hbWUgYXV0b2NvbXBsZXRl
KiB0byBzdWdnZXN0aW9ucyogdG8gcHJlcGFyZSBmb3IgdGhlCisgICAgICAgIHJlZmFjdG9yaW5n
IG9mIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRl
KToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtl
eUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZvY3VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWZyZXNoQXV0b2ZpbGxQb3B1cCk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdWdnZXN0
aW9uc1BvcHVwRGlkSGlkZSk6CisKIDIwMTAtMDItMDUgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2lu
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDggKzIzMSw4IEBA
IHB1YmxpYzoKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHN1Z2dlc3Rpb25z
LAogICAgICAgICBpbnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCkgPSAwOwogCi0gICAgLy8gSGlk
ZXMgdGhlIGF1dG9maWxsIHBvcHVwIGlmIGFueSBhcmUgc2hvd2luZy4KLSAgICB2aXJ0dWFsIHZv
aWQgaGlkZUF1dG9maWxsUG9wdXAoKSA9IDA7CisgICAgLy8gSGlkZXMgdGhlIHN1Z2dlc3Rpb25z
IHBvcHVwIGlmIGFueSBhcmUgc2hvd2luZy4KKyAgICB2aXJ0dWFsIHZvaWQgaGlkZVN1Z2dlc3Rp
b25zUG9wdXAoKSA9IDA7CiAKIAogICAgIC8vIENvbnRleHQgbWVudSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9BdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50LmNwcAkocmV2
aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVu
dUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBpbnQgQXV0b2Nv
bXBsZXRlUG9wdXBNZW51Q2xpZW50OjpjbGllbnRQCiAKIHZvaWQgQXV0b2NvbXBsZXRlUG9wdXBN
ZW51Q2xpZW50Ojpwb3B1cERpZEhpZGUoKQogewotICAgIG1fd2ViVmlldy0+YXV0b0NvbXBsZXRl
UG9wdXBEaWRIaWRlKCk7CisgICAgbV93ZWJWaWV3LT5zdWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgp
OwogfQogCiB2b2lkIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6c2V0VGV4dEZyb21JdGVt
KHVuc2lnbmVkIGxpc3RJbmRleCkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xp
ZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NTQsNyArNjU0LDcgQEAgdm9p
ZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZAogICAgIG1fYXV0b2ZpbGxUaW1l
ci5zdG9wKCk7CiAKICAgICAvLyBIaWRlIGFueSBzaG93aW5nIHBvcHVwLgotICAgIG1fd2ViVmll
dy0+aGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgbV93ZWJWaWV3LT5oaWRlU3VnZ2VzdGlv
bnNQb3B1cCgpOwogCiAgICAgaWYgKCFtX3dlYlZpZXctPmNsaWVudCgpKQogICAgICAgICByZXR1
cm47IC8vIFRoZSBwYWdlIGlzIGdldHRpbmcgY2xvc2VkLCBkb24ndCBmaWxsIHRoZSBwYXNzd29y
ZC4KQEAgLTc0OCw3ICs3NDgsNyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmRvQXV0b2ZpbGwo
VGltZXI8CiAgICAgICAgICAgICAgICAgICAgICAgICYmIGlucHV0RWxlbWVudC0+c2VsZWN0aW9u
RW5kKCkgPT0gc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZS5sZW5ndGgoKSk7CiAKICAgICBpZiAoKCFh
cmdzLT5hdXRvZmlsbE9uRW1wdHlWYWx1ZSAmJiB2YWx1ZS5pc0VtcHR5KCkpIHx8ICFpc0NhcmV0
QXRFbmQpIHsKLSAgICAgICAgbV93ZWJWaWV3LT5oaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAg
ICAgICAgbV93ZWJWaWV3LT5oaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24g
NTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtMTQ4LDE2ICsxNDgsMTYgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShEcmFn
T3BlcmF0aQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShEcmFnT3BlcmF0aW9uRGVsZXRl
KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRHJhZ09wZXJhdGlvbkV2ZXJ5KTsKIAot
Ly8gTm90ZSB0aGF0IGZvY3VzT25TaG93IGlzIGZhbHNlIHNvIHRoYXQgdGhlIGF1dG9jb21wbGV0
ZSBwb3B1cCBpcyBzaG93biBub3QKKy8vIE5vdGUgdGhhdCBmb2N1c09uU2hvdyBpcyBmYWxzZSBz
byB0aGF0IHRoZSBzdWdnZXN0aW9ucyBwb3B1cCBpcyBzaG93biBub3QKIC8vIGFjdGl2YXRlZC4g
IFdlIG5lZWQgdGhlIHBhZ2UgdG8gc3RpbGwgaGF2ZSBmb2N1cyBzbyB0aGUgdXNlciBjYW4ga2Vl
cCB0eXBpbmcKIC8vIHdoaWxlIHRoZSBwb3B1cCBpcyBzaG93aW5nLgotc3RhdGljIGNvbnN0IFBv
cHVwQ29udGFpbmVyU2V0dGluZ3MgYXV0b2NvbXBsZXRlUG9wdXBTZXR0aW5ncyA9IHsKK3N0YXRp
YyBjb25zdCBQb3B1cENvbnRhaW5lclNldHRpbmdzIHN1Z2dlc3Rpb25zUG9wdXBTZXR0aW5ncyA9
IHsKICAgICBmYWxzZSwgIC8vIGZvY3VzT25TaG93CiAgICAgZmFsc2UsICAvLyBzZXRUZXh0T25J
bmRleENoYW5nZQogICAgIGZhbHNlLCAgLy8gYWNjZXB0T25BYmFuZG9uCiAgICAgdHJ1ZSwgICAv
LyBsb29wU2VsZWN0aW9uTmF2aWdhdGlvbgogICAgIHRydWUsICAgLy8gcmVzdHJpY3RXaWR0aE9m
TGlzdEJveC4gU2FtZSBhcyBvdGhlciBicm93c2VyIChGeCwgSUUsIGFuZCBzYWZhcmkpCi0gICAg
Ly8gRm9yIGF1dG9jb21wbGV0ZSwgd2UgdXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGlucHV0IGZp
ZWxkIGFzIHRoZSBkaXJlY3Rpb24KKyAgICAvLyBGb3Igc3VnZ2VzdGlvbnMsIHdlIHVzZSB0aGUg
ZGlyZWN0aW9uIG9mIHRoZSBpbnB1dCBmaWVsZCBhcyB0aGUgZGlyZWN0aW9uCiAgICAgLy8gb2Yg
dGhlIHBvcHVwIGl0ZW1zLiBUaGUgbWFpbiByZWFzb24gaXMgdG8ga2VlcCB0aGUgZGlzcGxheSBv
ZiBpdGVtcyBpbgogICAgIC8vIGRyb3AtZG93biB0aGUgc2FtZSBhcyB0aGUgaXRlbXMgaW4gdGhl
IGlucHV0IGZpZWxkLgogICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3M6OkRPTUVsZW1lbnREaXJl
Y3Rpb24sCkBAIC0yMzksNyArMjM5LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZp
ZXdDbGllbnQqIAogICAgICwgbV9kcm9wRWZmZWN0KERyb3BFZmZlY3REZWZhdWx0KQogICAgICwg
bV9vcGVyYXRpb25zQWxsb3dlZChXZWJEcmFnT3BlcmF0aW9uTm9uZSkKICAgICAsIG1fZHJhZ09w
ZXJhdGlvbihXZWJEcmFnT3BlcmF0aW9uTm9uZSkKLSAgICAsIG1fYXV0b2NvbXBsZXRlUG9wdXBT
aG93aW5nKGZhbHNlKQorICAgICwgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyhmYWxzZSkKICAg
ICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAgICAsIG1fdGFic1RvTGlua3MoZmFsc2UpCiB7
CkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bW91c2VEb3duKGNvbnN0IFdl
Yk1vdQogICAgIG1fbGFzdE1vdXNlRG93blBvaW50ID0gV2ViUG9pbnQoZXZlbnQueCwgZXZlbnQu
eSk7CiAKICAgICAvLyBJZiBhIHRleHQgZmllbGQgdGhhdCBoYXMgZm9jdXMgaXMgY2xpY2tlZCBh
Z2Fpbiwgd2Ugc2hvdWxkIGRpc3BsYXkgdGhlCi0gICAgLy8gYXV0b2NvbXBsZXRlIHBvcHVwLgor
ICAgIC8vIHN1Z2dlc3Rpb25zIHBvcHVwLgogICAgIFJlZlB0cjxOb2RlPiBjbGlja2VkTm9kZTsK
ICAgICBpZiAoZXZlbnQuYnV0dG9uID09IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbkxlZnQpIHsKICAg
ICAgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWROb2RlID0gZm9jdXNlZFdlYkNvcmVOb2RlKCk7CkBA
IC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bW91c2VEb3duKGNvbnN0IFdlYk1v
dQogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKG1haW5GcmFtZUltcGwoKS0+ZnJh
bWVWaWV3KCksIGV2ZW50KSk7CiAKICAgICBpZiAoY2xpY2tlZE5vZGUuZ2V0KCkgJiYgY2xpY2tl
ZE5vZGUgPT0gZm9jdXNlZFdlYkNvcmVOb2RlKCkpIHsKLSAgICAgICAgLy8gRm9jdXMgaGFzIG5v
dCBjaGFuZ2VkLCBzaG93IHRoZSBhdXRvY29tcGxldGUgcG9wdXAuCisgICAgICAgIC8vIEZvY3Vz
IGhhcyBub3QgY2hhbmdlZCwgc2hvdyB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAuCiAgICAgICAgIHN0
YXRpY19jYXN0PEVkaXRvckNsaWVudEltcGwqPihtX3BhZ2UtPmVkaXRvckNsaWVudCgpKS0+CiAg
ICAgICAgICAgICBzaG93Rm9ybUF1dG9maWxsRm9yTm9kZShjbGlja2VkTm9kZS5nZXQoKSk7CiAg
ICAgfQpAQCAtNTE0LDcgKzUxNCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmtleUV2ZW50KGNvbnN0
IFdlYktleWIKIAogYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RXZlbnQo
Y29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFtX2F1dG9jb21wbGV0
ZVBvcHVwU2hvd2luZworICAgIGlmICghbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZwogICAgICAg
ICAvLyBIb21lIGFuZCBFbmQgc2hvdWxkIGJlIGxlZnQgdG8gdGhlIHRleHQgZmllbGQgdG8gcHJv
Y2Vzcy4KICAgICAgICAgfHwgZXZlbnQud2luZG93c0tleUNvZGUgPT0gVktFWV9IT01FCiAgICAg
ICAgIHx8IGV2ZW50LndpbmRvd3NLZXlDb2RlID09IFZLRVlfRU5EKQpAQCAtNTIyLDcgKzUyMiw3
IEBAIGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUUKIAogICAgIC8vIFBy
ZXNzaW5nIGRlbGV0ZSB0cmlnZ2VycyB0aGUgcmVtb3ZhbCBvZiB0aGUgc2VsZWN0ZWQgc3VnZ2Vz
dGlvbiBmcm9tIHRoZSBEQi4KICAgICBpZiAoZXZlbnQud2luZG93c0tleUNvZGUgPT0gVktFWV9E
RUxFVEUKLSAgICAgICAgJiYgbV9hdXRvY29tcGxldGVQb3B1cC0+c2VsZWN0ZWRJbmRleCgpICE9
IC0xKSB7CisgICAgICAgICYmIG1fc3VnZ2VzdGlvbnNQb3B1cC0+c2VsZWN0ZWRJbmRleCgpICE9
IC0xKSB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBmb2N1c2VkV2ViQ29yZU5vZGUoKTsKICAgICAg
ICAgaWYgKCFub2RlIHx8IChub2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRfTk9ERSkp
IHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTM0LDcgKzUzNCw3IEBA
IGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUUKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIGludCBzZWxlY3RlZEluZGV4ID0gbV9h
dXRvY29tcGxldGVQb3B1cC0+c2VsZWN0ZWRJbmRleCgpOworICAgICAgICBpbnQgc2VsZWN0ZWRJ
bmRleCA9IG1fc3VnZ2VzdGlvbnNQb3B1cC0+c2VsZWN0ZWRJbmRleCgpOwogICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oZWxlbWVudCk7CiAgICAgICAgIFdlYlN0cmluZyBuYW1lID0gaW5wdXRFbGVtZW50LT5uYW1l
KCk7CiAgICAgICAgIFdlYlN0cmluZyB2YWx1ZSA9IG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQt
Pml0ZW1UZXh0KHNlbGVjdGVkSW5kZXgpOwpAQCAtNTQ2LDEwICs1NDYsMTAgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCi0gICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwLT5pc0ludGVyZXN0ZWRJbkV2ZW50
Rm9yS2V5KGV2ZW50LndpbmRvd3NLZXlDb2RlKSkKKyAgICBpZiAoIW1fc3VnZ2VzdGlvbnNQb3B1
cC0+aXNJbnRlcmVzdGVkSW5FdmVudEZvcktleShldmVudC53aW5kb3dzS2V5Q29kZSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX2F1dG9jb21wbGV0ZVBvcHVwLT5oYW5kbGVL
ZXlFdmVudChQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGV2ZW50KSkpIHsKKyAgICBpZiAo
bV9zdWdnZXN0aW9uc1BvcHVwLT5oYW5kbGVLZXlFdmVudChQbGF0Zm9ybUtleWJvYXJkRXZlbnRC
dWlsZGVyKGV2ZW50KSkpIHsKICAgICAgICAgLy8gV2UgbmVlZCB0byBpZ25vcmUgdGhlIG5leHQg
Q2hhciBldmVudCBhZnRlciB0aGlzIG90aGVyd2lzZSBwcmVzc2luZwogICAgICAgICAvLyBlbnRl
ciB3aGVuIHNlbGVjdGluZyBhbiBpdGVtIGluIHRoZSBtZW51IHdpbGwgZ28gdG8gdGhlIHBhZ2Uu
CiAgICAgICAgIGlmIChXZWJJbnB1dEV2ZW50OjpSYXdLZXlEb3duID09IGV2ZW50LnR5cGUpCkBA
IC05NzYsNyArOTc2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rm9jdXMoYm9vbCBlbmFibGUp
CiAgICAgICAgIH0KICAgICAgICAgbV9pbWVBY2NlcHRFdmVudHMgPSB0cnVlOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICBoaWRlU3VnZ2Vz
dGlvbnNQb3B1cCgpOwogCiAgICAgICAgIC8vIENsZWFyIGZvY3VzIG9uIHRoZSBjdXJyZW50bHkg
Zm9jdXNlZCBmcmFtZSBpZiBhbnkuCiAgICAgICAgIGlmICghbV9wYWdlLmdldCgpKQpAQCAtMTU1
OSw3ICsxNTU5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpbwog
ICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KQogewogICAgIGlmICghbV9wYWdlLmdldCgp
IHx8IHN1Z2dlc3Rpb25zLmlzRW1wdHkoKSkgewotICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9w
dXAoKTsKKyAgICAgICAgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTU2OCw3ICsxNTY4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRv
ZmlsbFN1Z2dlc3RpbwogICAgIGlmIChSZWZQdHI8RnJhbWU+IGZvY3VzZWQgPSBtX3BhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5mb2N1c2VkRnJhbWUoKSkgewogICAgICAgICBSZWZQdHI8RG9jdW1l
bnQ+IGRvY3VtZW50ID0gZm9jdXNlZC0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2N1bWVu
dC5nZXQoKSkgewotICAgICAgICAgICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAg
ICAgICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKQEAgLTE1NzcsNyArMTU3Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2Zp
bGxTdWdnZXN0aW8KICAgICAgICAgLy8gZm9jdXNlZCBub2RlLCB0aGVuIHdlIGhhdmUgbm90aGlu
ZyB0byBkby4gIEZJWE1FOiBhbHNvIGNoZWNrIHRoZQogICAgICAgICAvLyBjYXJyZXQgaXMgYXQg
dGhlIGVuZCBhbmQgdGhhdCB0aGUgdGV4dCBoYXMgbm90IGNoYW5nZWQuCiAgICAgICAgIGlmICgh
Zm9jdXNlZE5vZGUuZ2V0KCkgfHwgZm9jdXNlZE5vZGUgIT0gUGFzc1JlZlB0cjxOb2RlPihub2Rl
KSkgewotICAgICAgICAgICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAgICAgICBo
aWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTE1ODksMzMgKzE1ODksMzYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1
Z2dlc3RpbwogICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW0gPQogICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGZvY3VzZWROb2RlLmdldCgpKTsKIAot
ICAgICAgICAvLyBUaGUgZmlyc3QgdGltZSB0aGUgYXV0b2NvbXBsZXRlIGlzIHNob3duIHdlJ2xs
IGNyZWF0ZSB0aGUgY2xpZW50IGFuZCB0aGUKLSAgICAgICAgLy8gcG9wdXAuCisgICAgICAgIC8v
IFRoZSBmaXJzdCB0aW1lIHRoZSBzdWdnZXN0aW9ucyBwb3B1cCBpcyBzaG93biB3ZSdsbCBjcmVh
dGUgdGhlIGNsaWVudAorICAgICAgICAvLyBhbmQgdGhlIHBvcHVwLgogICAgICAgICBpZiAoIW1f
YXV0b2NvbXBsZXRlUG9wdXBDbGllbnQuZ2V0KCkpCiAgICAgICAgICAgICBtX2F1dG9jb21wbGV0
ZVBvcHVwQ2xpZW50LnNldChuZXcgQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50KHRoaXMpKTsK
ICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cENsaWVudC0+aW5pdGlhbGl6ZShpbnB1dEVsZW0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlv
bnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dFN1Z2dlc3Rpb25JbmRleCk7Ci0gICAgICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1cC5nZXQo
KSkgewotICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cCA9CisgICAgICAgIGlmICghbV9z
dWdnZXN0aW9uc1BvcHVwLmdldCgpKSB7CisgICAgICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXAg
PQogICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyOjpjcmVhdGUobV9hdXRvY29tcGxldGVQ
b3B1cENsaWVudC5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG9jb21wbGV0ZVBvcHVwU2V0dGluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VnZ2VzdGlvbnNQb3B1cFNldHRpbmdzKTsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2luZykgeworICAgICAgICBpZiAobV9zdWdn
ZXN0aW9uc1BvcHVwU2hvd2luZykgewogICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cENs
aWVudC0+c2V0U3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpOwotICAgICAgICAgICAgcmVmcmVzaEF1
dG9maWxsUG9wdXAoKTsKKyAgICAgICAgICAgIHJlZnJlc2hTdWdnZXN0aW9uc1BvcHVwKCk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwLT5zaG93KGZv
Y3VzZWROb2RlLT5nZXRSZWN0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7Ci0gICAgICAgICAg
ICBtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2luZyA9IHRydWU7CisgICAgICAgICAgICBtX3N1Z2dl
c3Rpb25zUG9wdXAtPnNob3coZm9jdXNlZE5vZGUtPmdldFJlY3QoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3
KCksIDApOworICAgICAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IHRydWU7CiAg
ICAgICAgIH0KICAgICB9CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmhpZGVBdXRvZmlsbFBvcHVw
KCkKK3ZvaWQgV2ViVmlld0ltcGw6OmhpZGVTdWdnZXN0aW9uc1BvcHVwKCkKIHsKLSAgICBoaWRl
QXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICBpZiAobV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZykg
eworICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXAtPmhpZGVQb3B1cCgpOworICAgICAgICBtX3N1
Z2dlc3Rpb25zUG9wdXBTaG93aW5nID0gZmFsc2U7CisgICAgfQogfQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjpwZXJmb3JtQ3VzdG9tQ29udGV4dE1lbnVBY3Rpb24odW5zaWduZWQgYWN0aW9uKQpAQCAt
MTc3OCwxOSArMTc4MSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6Om9ic2VydmVOZXdOYXZpZ2F0aW9u
KCkKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpoaWRlQXV0b0NvbXBsZXRlUG9wdXAo
KQotewotICAgIGlmIChtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2luZykgewotICAgICAgICBtX2F1
dG9jb21wbGV0ZVBvcHVwLT5oaWRlUG9wdXAoKTsKLSAgICAgICAgYXV0b0NvbXBsZXRlUG9wdXBE
aWRIaWRlKCk7Ci0gICAgfQotfQotCi12b2lkIFdlYlZpZXdJbXBsOjphdXRvQ29tcGxldGVQb3B1
cERpZEhpZGUoKQotewotICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nID0gZmFsc2U7Ci19
Ci0KIHZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZUlucHV0RXZlbnRzKGJvb2wgbmV3VmFsdWUp
CiB7CiAgICAgQVNTRVJUKG1faWdub3JlSW5wdXRFdmVudHMgIT0gbmV3VmFsdWUpOwpAQCAtMTgw
OCwyMSArMTc5OCwyMSBAQCBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsKiBXZWJWaWV3SW1wbDo6
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hBdXRvZmlsbFBvcHVwKCkKIHsKLSAgICBBU1NF
UlQobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpOworICAgIEFTU0VSVChtX3N1Z2dlc3Rpb25z
UG9wdXBTaG93aW5nKTsKIAogICAgIC8vIEhpZGUgdGhlIHBvcHVwIGlmIGl0IGhhcyBiZWNvbWUg
ZW1wdHkuCiAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5saXN0U2l6ZSgpKSB7
Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICBoaWRlU3VnZ2VzdGlv
bnNQb3B1cCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgSW50UmVjdCBvbGRCb3Vu
ZHMgPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5ib3VuZHNSZWN0KCk7Ci0gICAgbV9hdXRvY29tcGxl
dGVQb3B1cC0+cmVmcmVzaCgpOwotICAgIEludFJlY3QgbmV3Qm91bmRzID0gbV9hdXRvY29tcGxl
dGVQb3B1cC0+Ym91bmRzUmVjdCgpOworICAgIEludFJlY3Qgb2xkQm91bmRzID0gbV9zdWdnZXN0
aW9uc1BvcHVwLT5ib3VuZHNSZWN0KCk7CisgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5yZWZyZXNo
KCk7CisgICAgSW50UmVjdCBuZXdCb3VuZHMgPSBtX3N1Z2dlc3Rpb25zUG9wdXAtPmJvdW5kc1Jl
Y3QoKTsKICAgICAvLyBMZXQncyByZXNpemUgdGhlIGJhY2tpbmcgd2luZG93IGlmIG5lY2Vzc2Fy
eS4KICAgICBpZiAob2xkQm91bmRzICE9IG5ld0JvdW5kcykgewogICAgICAgICBXZWJQb3B1cE1l
bnVJbXBsKiBwb3B1cE1lbnUgPQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51
SW1wbCo+KG1fYXV0b2NvbXBsZXRlUG9wdXAtPmNsaWVudCgpKTsKKyAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFdlYlBvcHVwTWVudUltcGwqPihtX3N1Z2dlc3Rpb25zUG9wdXAtPmNsaWVudCgpKTsK
ICAgICAgICAgcG9wdXBNZW51LT5jbGllbnQoKS0+c2V0V2luZG93UmVjdChuZXdCb3VuZHMpOwog
ICAgIH0KIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU0NDQ0
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0x
NTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJOb2RlJiwKICAgICAgICAg
Y29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHN1Z2dlc3Rpb25zLAogICAgICAgICBpbnQgZGVm
YXVsdFN1Z2dlc3Rpb25JbmRleCk7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVBdXRvZmlsbFBvcHVw
KCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKTsKQEAg
LTI2MSw5ICsyNjEsMTAgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJh
Z0RhdGEsCiAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9u
TWFzayk7CiAKLSAgICAvLyBIaWRlcyB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwIGlmIGl0IGlzIHNo
b3dpbmcuCi0gICAgdm9pZCBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKLSAgICB2b2lkIGF1dG9D
b21wbGV0ZVBvcHVwRGlkSGlkZSgpOworICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUo
KQorICAgIHsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IGZhbHNlOworICAg
IH0KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIC8vIFJldHVybnMgdGhlIHByb3Zp
ZGVyIG9mIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KQEAgLTI5NSwxMCArMjk2LDEwIEBAIHByaXZh
dGU6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBhdXRvY29tcGxlIGhhcyBjb25zdW1lZCB0
aGUgZXZlbnQuCiAgICAgYm9vbCBhdXRvY29tcGxldGVIYW5kbGVLZXlFdmVudChjb25zdCBXZWJL
ZXlib2FyZEV2ZW50Jik7CiAKLSAgICAvLyBSZXBhaW50cyB0aGUgYXV0b2ZpbGwgcG9wdXAuICBT
aG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIHN1Z2dlc3Rpb25zIGhhdmUKLSAgICAvLyBjaGFuZ2Vk
LiAgTm90ZSB0aGF0IHRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGF1dG9maWxs
IHBvcHVwIGlzCi0gICAgLy8gc2hvd2luZy4KLSAgICB2b2lkIHJlZnJlc2hBdXRvZmlsbFBvcHVw
KCk7CisgICAgLy8gUmVwYWludHMgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwLiAgU2hvdWxkIGJlIGNh
bGxlZCB3aGVuIHRoZSBzdWdnZXN0aW9ucworICAgIC8vIGhhdmUgY2hhbmdlZC4gIE5vdGUgdGhh
dCB0aGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBzdWdnZXN0aW9ucworICAgIC8v
IHBvcHVwIGlzIHNob3dpbmcuCisgICAgdm9pZCByZWZyZXNoU3VnZ2VzdGlvbnNQb3B1cCgpOwog
CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB2aWV3IHdhcyBzY3JvbGxlZC4KICAgICBib29s
IHNjcm9sbFZpZXdXaXRoS2V5Ym9hcmQoaW50IGtleUNvZGUsIGludCBtb2RpZmllcnMpOwpAQCAt
MzkzLDEyICszOTQsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBjdXJyZW50IGRyb3AgdGFyZ2V0IGlu
IHRoaXMgV2ViVmlldyAodGhlIGRyb3AgdGFyZ2V0IGNhbiBhY2NlcHQgdGhlIGRyb3ApLgogICAg
IFdlYkRyYWdPcGVyYXRpb24gbV9kcmFnT3BlcmF0aW9uOwogCi0gICAgLy8gVGhlIGF1dG9jb21w
bGV0ZSBwb3B1cC4gIEtlcHQgYXJvdW5kIGFuZCByZXVzZWQgZXZlcnktdGltZSBuZXcgc3VnZ2Vz
dGlvbnMKKyAgICAvLyBUaGUgc3VnZ2VzdGlvbnMgcG9wdXAuICBLZXB0IGFyb3VuZCBhbmQgcmV1
c2VkIGV2ZXJ5LXRpbWUgbmV3IHN1Z2dlc3Rpb25zCiAgICAgLy8gc2hvdWxkIGJlIHNob3duLgot
ICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cENvbnRhaW5lcj4gbV9hdXRvY29tcGxldGVQb3B1cDsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBDb250YWluZXI+IG1fc3VnZ2VzdGlvbnNQb3B1cDsK
IAotICAgIC8vIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBwb3B1cCBpcyBjdXJyZW50bHkgc2hv
d2luZy4KLSAgICBib29sIG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nOworICAgIC8vIFdoZXRo
ZXIgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93aW5nLgorICAgIGJvb2wg
bV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZzsKIAogICAgIC8vIFRoZSBhdXRvY29tcGxldGUgY2xp
ZW50LgogICAgIE93blB0cjxBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ+IG1fYXV0b2NvbXBs
ZXRlUG9wdXBDbGllbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48268</attachid>
            <date>2010-02-05 15:34:12 -0800</date>
            <delta_ts>2010-02-05 16:12:10 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try6]</desc>
            <filename>rename6.diff</filename>
            <type>text/plain</type>
            <size>16444</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBSZW5hbWUgYXV0b2NvbXBsZXRl
KiB0byBzdWdnZXN0aW9ucyogdG8gcHJlcGFyZSBmb3IgdGhlCisgICAgICAgIHJlZmFjdG9yaW5n
IG9mIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRl
KToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtl
eUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZvY3VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWZyZXNoU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdWdn
ZXN0aW9uc1BvcHVwRGlkSGlkZSk6CisKIDIwMTAtMDItMDUgIEphbWVzIEhhd2tpbnMgIDxqaGF3
a2luc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDggKzIzMSw4
IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHN1Z2dlc3Rp
b25zLAogICAgICAgICBpbnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCkgPSAwOwogCi0gICAgLy8g
SGlkZXMgdGhlIGF1dG9maWxsIHBvcHVwIGlmIGFueSBhcmUgc2hvd2luZy4KLSAgICB2aXJ0dWFs
IHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKSA9IDA7CisgICAgLy8gSGlkZXMgdGhlIHN1Z2dlc3Rp
b25zIHBvcHVwIGlmIGFueSBhcmUgc2hvd2luZy4KKyAgICB2aXJ0dWFsIHZvaWQgaGlkZVN1Z2dl
c3Rpb25zUG9wdXAoKSA9IDA7CiAKIAogICAgIC8vIENvbnRleHQgbWVudSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50LmNwcAko
cmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9jb21wbGV0ZVBvcHVw
TWVudUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBpbnQgQXV0
b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50OjpjbGllbnRQCiAKIHZvaWQgQXV0b2NvbXBsZXRlUG9w
dXBNZW51Q2xpZW50Ojpwb3B1cERpZEhpZGUoKQogewotICAgIG1fd2ViVmlldy0+YXV0b0NvbXBs
ZXRlUG9wdXBEaWRIaWRlKCk7CisgICAgbV93ZWJWaWV3LT5zdWdnZXN0aW9uc1BvcHVwRGlkSGlk
ZSgpOwogfQogCiB2b2lkIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6c2V0VGV4dEZyb21J
dGVtKHVuc2lnbmVkIGxpc3RJbmRleCkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmNwcAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0Vk
aXRvckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NTQsNyArNjU0LDcgQEAg
dm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZAogICAgIG1fYXV0b2ZpbGxU
aW1lci5zdG9wKCk7CiAKICAgICAvLyBIaWRlIGFueSBzaG93aW5nIHBvcHVwLgotICAgIG1fd2Vi
Vmlldy0+aGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgbV93ZWJWaWV3LT5oaWRlU3VnZ2Vz
dGlvbnNQb3B1cCgpOwogCiAgICAgaWYgKCFtX3dlYlZpZXctPmNsaWVudCgpKQogICAgICAgICBy
ZXR1cm47IC8vIFRoZSBwYWdlIGlzIGdldHRpbmcgY2xvc2VkLCBkb24ndCBmaWxsIHRoZSBwYXNz
d29yZC4KQEAgLTc0OCw3ICs3NDgsNyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmRvQXV0b2Zp
bGwoVGltZXI8CiAgICAgICAgICAgICAgICAgICAgICAgICYmIGlucHV0RWxlbWVudC0+c2VsZWN0
aW9uRW5kKCkgPT0gc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZS5sZW5ndGgoKSk7CiAKICAgICBpZiAo
KCFhcmdzLT5hdXRvZmlsbE9uRW1wdHlWYWx1ZSAmJiB2YWx1ZS5pc0VtcHR5KCkpIHx8ICFpc0Nh
cmV0QXRFbmQpIHsKLSAgICAgICAgbV93ZWJWaWV3LT5oaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsK
KyAgICAgICAgbV93ZWJWaWV3LT5oaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNp
b24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMTQ4LDE2ICsxNDgsMTYgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShE
cmFnT3BlcmF0aQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShEcmFnT3BlcmF0aW9uRGVs
ZXRlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRHJhZ09wZXJhdGlvbkV2ZXJ5KTsK
IAotLy8gTm90ZSB0aGF0IGZvY3VzT25TaG93IGlzIGZhbHNlIHNvIHRoYXQgdGhlIGF1dG9jb21w
bGV0ZSBwb3B1cCBpcyBzaG93biBub3QKKy8vIE5vdGUgdGhhdCBmb2N1c09uU2hvdyBpcyBmYWxz
ZSBzbyB0aGF0IHRoZSBzdWdnZXN0aW9ucyBwb3B1cCBpcyBzaG93biBub3QKIC8vIGFjdGl2YXRl
ZC4gIFdlIG5lZWQgdGhlIHBhZ2UgdG8gc3RpbGwgaGF2ZSBmb2N1cyBzbyB0aGUgdXNlciBjYW4g
a2VlcCB0eXBpbmcKIC8vIHdoaWxlIHRoZSBwb3B1cCBpcyBzaG93aW5nLgotc3RhdGljIGNvbnN0
IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgYXV0b2NvbXBsZXRlUG9wdXBTZXR0aW5ncyA9IHsKK3N0
YXRpYyBjb25zdCBQb3B1cENvbnRhaW5lclNldHRpbmdzIHN1Z2dlc3Rpb25zUG9wdXBTZXR0aW5n
cyA9IHsKICAgICBmYWxzZSwgIC8vIGZvY3VzT25TaG93CiAgICAgZmFsc2UsICAvLyBzZXRUZXh0
T25JbmRleENoYW5nZQogICAgIGZhbHNlLCAgLy8gYWNjZXB0T25BYmFuZG9uCiAgICAgdHJ1ZSwg
ICAvLyBsb29wU2VsZWN0aW9uTmF2aWdhdGlvbgogICAgIHRydWUsICAgLy8gcmVzdHJpY3RXaWR0
aE9mTGlzdEJveC4gU2FtZSBhcyBvdGhlciBicm93c2VyIChGeCwgSUUsIGFuZCBzYWZhcmkpCi0g
ICAgLy8gRm9yIGF1dG9jb21wbGV0ZSwgd2UgdXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGlucHV0
IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KKyAgICAvLyBGb3Igc3VnZ2VzdGlvbnMsIHdlIHVzZSB0
aGUgZGlyZWN0aW9uIG9mIHRoZSBpbnB1dCBmaWVsZCBhcyB0aGUgZGlyZWN0aW9uCiAgICAgLy8g
b2YgdGhlIHBvcHVwIGl0ZW1zLiBUaGUgbWFpbiByZWFzb24gaXMgdG8ga2VlcCB0aGUgZGlzcGxh
eSBvZiBpdGVtcyBpbgogICAgIC8vIGRyb3AtZG93biB0aGUgc2FtZSBhcyB0aGUgaXRlbXMgaW4g
dGhlIGlucHV0IGZpZWxkLgogICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3M6OkRPTUVsZW1lbnRE
aXJlY3Rpb24sCkBAIC0yMzksNyArMjM5LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdl
YlZpZXdDbGllbnQqIAogICAgICwgbV9kcm9wRWZmZWN0KERyb3BFZmZlY3REZWZhdWx0KQogICAg
ICwgbV9vcGVyYXRpb25zQWxsb3dlZChXZWJEcmFnT3BlcmF0aW9uTm9uZSkKICAgICAsIG1fZHJh
Z09wZXJhdGlvbihXZWJEcmFnT3BlcmF0aW9uTm9uZSkKLSAgICAsIG1fYXV0b2NvbXBsZXRlUG9w
dXBTaG93aW5nKGZhbHNlKQorICAgICwgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyhmYWxzZSkK
ICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAgICAsIG1fdGFic1RvTGlua3MoZmFsc2Up
CiB7CkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bW91c2VEb3duKGNvbnN0
IFdlYk1vdQogICAgIG1fbGFzdE1vdXNlRG93blBvaW50ID0gV2ViUG9pbnQoZXZlbnQueCwgZXZl
bnQueSk7CiAKICAgICAvLyBJZiBhIHRleHQgZmllbGQgdGhhdCBoYXMgZm9jdXMgaXMgY2xpY2tl
ZCBhZ2Fpbiwgd2Ugc2hvdWxkIGRpc3BsYXkgdGhlCi0gICAgLy8gYXV0b2NvbXBsZXRlIHBvcHVw
LgorICAgIC8vIHN1Z2dlc3Rpb25zIHBvcHVwLgogICAgIFJlZlB0cjxOb2RlPiBjbGlja2VkTm9k
ZTsKICAgICBpZiAoZXZlbnQuYnV0dG9uID09IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbkxlZnQpIHsK
ICAgICAgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWROb2RlID0gZm9jdXNlZFdlYkNvcmVOb2RlKCk7
CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bW91c2VEb3duKGNvbnN0IFdl
Yk1vdQogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKG1haW5GcmFtZUltcGwoKS0+
ZnJhbWVWaWV3KCksIGV2ZW50KSk7CiAKICAgICBpZiAoY2xpY2tlZE5vZGUuZ2V0KCkgJiYgY2xp
Y2tlZE5vZGUgPT0gZm9jdXNlZFdlYkNvcmVOb2RlKCkpIHsKLSAgICAgICAgLy8gRm9jdXMgaGFz
IG5vdCBjaGFuZ2VkLCBzaG93IHRoZSBhdXRvY29tcGxldGUgcG9wdXAuCisgICAgICAgIC8vIEZv
Y3VzIGhhcyBub3QgY2hhbmdlZCwgc2hvdyB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAuCiAgICAgICAg
IHN0YXRpY19jYXN0PEVkaXRvckNsaWVudEltcGwqPihtX3BhZ2UtPmVkaXRvckNsaWVudCgpKS0+
CiAgICAgICAgICAgICBzaG93Rm9ybUF1dG9maWxsRm9yTm9kZShjbGlja2VkTm9kZS5nZXQoKSk7
CiAgICAgfQpAQCAtNTE0LDcgKzUxNCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmtleUV2ZW50KGNv
bnN0IFdlYktleWIKIAogYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RXZl
bnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFtX2F1dG9jb21w
bGV0ZVBvcHVwU2hvd2luZworICAgIGlmICghbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZwogICAg
ICAgICAvLyBIb21lIGFuZCBFbmQgc2hvdWxkIGJlIGxlZnQgdG8gdGhlIHRleHQgZmllbGQgdG8g
cHJvY2Vzcy4KICAgICAgICAgfHwgZXZlbnQud2luZG93c0tleUNvZGUgPT0gVktFWV9IT01FCiAg
ICAgICAgIHx8IGV2ZW50LndpbmRvd3NLZXlDb2RlID09IFZLRVlfRU5EKQpAQCAtNTIyLDcgKzUy
Miw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUUKIAogICAgIC8v
IFByZXNzaW5nIGRlbGV0ZSB0cmlnZ2VycyB0aGUgcmVtb3ZhbCBvZiB0aGUgc2VsZWN0ZWQgc3Vn
Z2VzdGlvbiBmcm9tIHRoZSBEQi4KICAgICBpZiAoZXZlbnQud2luZG93c0tleUNvZGUgPT0gVktF
WV9ERUxFVEUKLSAgICAgICAgJiYgbV9hdXRvY29tcGxldGVQb3B1cC0+c2VsZWN0ZWRJbmRleCgp
ICE9IC0xKSB7CisgICAgICAgICYmIG1fc3VnZ2VzdGlvbnNQb3B1cC0+c2VsZWN0ZWRJbmRleCgp
ICE9IC0xKSB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBmb2N1c2VkV2ViQ29yZU5vZGUoKTsKICAg
ICAgICAgaWYgKCFub2RlIHx8IChub2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRfTk9E
RSkpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTM0LDcgKzUzNCw3
IEBAIGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtleUUKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIGludCBzZWxlY3RlZEluZGV4ID0g
bV9hdXRvY29tcGxldGVQb3B1cC0+c2VsZWN0ZWRJbmRleCgpOworICAgICAgICBpbnQgc2VsZWN0
ZWRJbmRleCA9IG1fc3VnZ2VzdGlvbnNQb3B1cC0+c2VsZWN0ZWRJbmRleCgpOwogICAgICAgICBI
VE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oZWxlbWVudCk7CiAgICAgICAgIFdlYlN0cmluZyBuYW1lID0gaW5wdXRFbGVtZW50LT5u
YW1lKCk7CiAgICAgICAgIFdlYlN0cmluZyB2YWx1ZSA9IG1fYXV0b2NvbXBsZXRlUG9wdXBDbGll
bnQtPml0ZW1UZXh0KHNlbGVjdGVkSW5kZXgpOwpAQCAtNTQyLDE0ICs1NDIsMTQgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogICAgICAgICAvLyBVcGRhdGUgdGhl
IGVudHJpZXMgaW4gdGhlIGN1cnJlbnRseSBzaG93aW5nIHBvcHVwIHRvIHJlZmxlY3QgdGhlCiAg
ICAgICAgIC8vIGRlbGV0aW9uLgogICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5y
ZW1vdmVJdGVtQXRJbmRleChzZWxlY3RlZEluZGV4KTsKLSAgICAgICAgcmVmcmVzaEF1dG9maWxs
UG9wdXAoKTsKKyAgICAgICAgcmVmcmVzaFN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1cC0+aXNJbnRl
cmVzdGVkSW5FdmVudEZvcktleShldmVudC53aW5kb3dzS2V5Q29kZSkpCisgICAgaWYgKCFtX3N1
Z2dlc3Rpb25zUG9wdXAtPmlzSW50ZXJlc3RlZEluRXZlbnRGb3JLZXkoZXZlbnQud2luZG93c0tl
eUNvZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9hdXRvY29tcGxldGVQ
b3B1cC0+aGFuZGxlS2V5RXZlbnQoUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihldmVudCkp
KSB7CisgICAgaWYgKG1fc3VnZ2VzdGlvbnNQb3B1cC0+aGFuZGxlS2V5RXZlbnQoUGxhdGZvcm1L
ZXlib2FyZEV2ZW50QnVpbGRlcihldmVudCkpKSB7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaWdu
b3JlIHRoZSBuZXh0IENoYXIgZXZlbnQgYWZ0ZXIgdGhpcyBvdGhlcndpc2UgcHJlc3NpbmcKICAg
ICAgICAgLy8gZW50ZXIgd2hlbiBzZWxlY3RpbmcgYW4gaXRlbSBpbiB0aGUgbWVudSB3aWxsIGdv
IHRvIHRoZSBwYWdlLgogICAgICAgICBpZiAoV2ViSW5wdXRFdmVudDo6UmF3S2V5RG93biA9PSBl
dmVudC50eXBlKQpAQCAtOTc2LDcgKzk3Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEZvY3Vz
KGJvb2wgZW5hYmxlKQogICAgICAgICB9CiAgICAgICAgIG1faW1lQWNjZXB0RXZlbnRzID0gdHJ1
ZTsKICAgICB9IGVsc2UgewotICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAg
ICAgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKIAogICAgICAgICAvLyBDbGVhciBmb2N1cyBvbiB0
aGUgY3VycmVudGx5IGZvY3VzZWQgZnJhbWUgaWYgYW55LgogICAgICAgICBpZiAoIW1fcGFnZS5n
ZXQoKSkKQEAgLTE1NTksNyArMTU1OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2Zp
bGxTdWdnZXN0aW8KICAgICBpbnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCkKIHsKICAgICBpZiAo
IW1fcGFnZS5nZXQoKSB8fCBzdWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgaGlkZUF1
dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAgIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE1NjgsNyArMTU2OCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmb2N1c2Vk
ID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZEZyYW1lKCkpIHsKICAgICAgICAg
UmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IGZvY3VzZWQtPmRvY3VtZW50KCk7CiAgICAgICAg
IGlmICghZG9jdW1lbnQuZ2V0KCkpIHsKLSAgICAgICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1
cCgpOworICAgICAgICAgICAgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC0xNTc3LDcgKzE1NzcsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
OjphcHBseUF1dG9maWxsU3VnZ2VzdGlvCiAgICAgICAgIC8vIGZvY3VzZWQgbm9kZSwgdGhlbiB3
ZSBoYXZlIG5vdGhpbmcgdG8gZG8uICBGSVhNRTogYWxzbyBjaGVjayB0aGUKICAgICAgICAgLy8g
Y2FycmV0IGlzIGF0IHRoZSBlbmQgYW5kIHRoYXQgdGhlIHRleHQgaGFzIG5vdCBjaGFuZ2VkLgog
ICAgICAgICBpZiAoIWZvY3VzZWROb2RlLmdldCgpIHx8IGZvY3VzZWROb2RlICE9IFBhc3NSZWZQ
dHI8Tm9kZT4obm9kZSkpIHsKLSAgICAgICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOwor
ICAgICAgICAgICAgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCkBAIC0xNTg5LDMzICsxNTg5LDM2IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFw
cGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVt
ID0KICAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1c2VkTm9k
ZS5nZXQoKSk7CiAKLSAgICAgICAgLy8gVGhlIGZpcnN0IHRpbWUgdGhlIGF1dG9jb21wbGV0ZSBp
cyBzaG93biB3ZSdsbCBjcmVhdGUgdGhlIGNsaWVudCBhbmQgdGhlCi0gICAgICAgIC8vIHBvcHVw
LgorICAgICAgICAvLyBUaGUgZmlyc3QgdGltZSB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAgaXMgc2hv
d24gd2UnbGwgY3JlYXRlIHRoZSBjbGllbnQKKyAgICAgICAgLy8gYW5kIHRoZSBwb3B1cC4KICAg
ICAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LmdldCgpKQogICAgICAgICAgICAg
bV9hdXRvY29tcGxldGVQb3B1cENsaWVudC5zZXQobmV3IEF1dG9jb21wbGV0ZVBvcHVwTWVudUNs
aWVudCh0aGlzKSk7CiAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQtPmluaXRpYWxp
emUoaW5wdXRFbGVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN1Z2dlc3Rpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpOwotICAgICAgICBpZiAoIW1fYXV0b2NvbXBs
ZXRlUG9wdXAuZ2V0KCkpIHsKLSAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlUG9wdXAgPQorICAg
ICAgICBpZiAoIW1fc3VnZ2VzdGlvbnNQb3B1cC5nZXQoKSkgeworICAgICAgICAgICAgbV9zdWdn
ZXN0aW9uc1BvcHVwID0KICAgICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKG1f
YXV0b2NvbXBsZXRlUG9wdXBDbGllbnQuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvY29tcGxldGVQb3B1cFNldHRpbmdzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zUG9wdXBTZXR0aW5ncyk7CiAgICAg
ICAgIH0KIAotICAgICAgICBpZiAobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpIHsKKyAgICAg
ICAgaWYgKG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dpbmcpIHsKICAgICAgICAgICAgIG1fYXV0b2Nv
bXBsZXRlUG9wdXBDbGllbnQtPnNldFN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTsKLSAgICAgICAg
ICAgIHJlZnJlc2hBdXRvZmlsbFBvcHVwKCk7CisgICAgICAgICAgICByZWZyZXNoU3VnZ2VzdGlv
bnNQb3B1cCgpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQ
b3B1cC0+c2hvdyhmb2N1c2VkTm9kZS0+Z2V0UmVjdCgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDAp
OwotICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcgPSB0cnVlOworICAgICAg
ICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZE5vZGUtPm93bmVyRG9j
dW1lbnQoKS0+dmlldygpLCAwKTsKKyAgICAgICAgICAgIG1fc3VnZ2VzdGlvbnNQb3B1cFNob3dp
bmcgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpoaWRl
QXV0b2ZpbGxQb3B1cCgpCit2b2lkIFdlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCgp
CiB7Ci0gICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgaWYgKG1fc3VnZ2VzdGlvbnNQ
b3B1cFNob3dpbmcpIHsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5oaWRlUG9wdXAoKTsK
KyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IGZhbHNlOworICAgIH0KIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybUN1c3RvbUNvbnRleHRNZW51QWN0aW9uKHVuc2lnbmVk
IGFjdGlvbikKQEAgLTE3NzgsMTkgKzE3ODEsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpvYnNlcnZl
TmV3TmF2aWdhdGlvbigpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6aGlkZUF1dG9D
b21wbGV0ZVBvcHVwKCkKLXsKLSAgICBpZiAobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpIHsK
LSAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cC0+aGlkZVBvcHVwKCk7Ci0gICAgICAgIGF1dG9D
b21wbGV0ZVBvcHVwRGlkSGlkZSgpOwotICAgIH0KLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6YXV0
b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCkKLXsKLSAgICBtX2F1dG9jb21wbGV0ZVBvcHVwU2hvd2lu
ZyA9IGZhbHNlOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVJbnB1dEV2ZW50cyhi
b29sIG5ld1ZhbHVlKQogewogICAgIEFTU0VSVChtX2lnbm9yZUlucHV0RXZlbnRzICE9IG5ld1Zh
bHVlKTsKQEAgLTE4MDYsMjMgKzE3OTYsMjMgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCog
V2ViVmlld0ltcGw6OgogfQogI2VuZGlmCiAKLXZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hBdXRv
ZmlsbFBvcHVwKCkKK3ZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hTdWdnZXN0aW9uc1BvcHVwKCkK
IHsKLSAgICBBU1NFUlQobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpOworICAgIEFTU0VSVCht
X3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKTsKIAogICAgIC8vIEhpZGUgdGhlIHBvcHVwIGlmIGl0
IGhhcyBiZWNvbWUgZW1wdHkuCiAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LT5s
aXN0U2l6ZSgpKSB7Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICBo
aWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgSW50
UmVjdCBvbGRCb3VuZHMgPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5ib3VuZHNSZWN0KCk7Ci0gICAg
bV9hdXRvY29tcGxldGVQb3B1cC0+cmVmcmVzaCgpOwotICAgIEludFJlY3QgbmV3Qm91bmRzID0g
bV9hdXRvY29tcGxldGVQb3B1cC0+Ym91bmRzUmVjdCgpOworICAgIEludFJlY3Qgb2xkQm91bmRz
ID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5ib3VuZHNSZWN0KCk7CisgICAgbV9zdWdnZXN0aW9uc1Bv
cHVwLT5yZWZyZXNoKCk7CisgICAgSW50UmVjdCBuZXdCb3VuZHMgPSBtX3N1Z2dlc3Rpb25zUG9w
dXAtPmJvdW5kc1JlY3QoKTsKICAgICAvLyBMZXQncyByZXNpemUgdGhlIGJhY2tpbmcgd2luZG93
IGlmIG5lY2Vzc2FyeS4KICAgICBpZiAob2xkQm91bmRzICE9IG5ld0JvdW5kcykgewogICAgICAg
ICBXZWJQb3B1cE1lbnVJbXBsKiBwb3B1cE1lbnUgPQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
V2ViUG9wdXBNZW51SW1wbCo+KG1fYXV0b2NvbXBsZXRlUG9wdXAtPmNsaWVudCgpKTsKKyAgICAg
ICAgICAgIHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudUltcGwqPihtX3N1Z2dlc3Rpb25zUG9wdXAt
PmNsaWVudCgpKTsKICAgICAgICAgcG9wdXBNZW51LT5jbGllbnQoKS0+c2V0V2luZG93UmVjdChu
ZXdCb3VuZHMpOwogICAgIH0KIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJl
dmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJOb2Rl
JiwKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHN1Z2dlc3Rpb25zLAogICAg
ICAgICBpbnQgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCk7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVB
dXRvZmlsbFBvcHVwKCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNv
bG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZl
Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFj
a0NvbG9yKTsKQEAgLTI2MSw5ICsyNjEsMTAgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJE
cmFnRGF0YSYgZHJhZ0RhdGEsCiAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291
cmNlT3BlcmF0aW9uTWFzayk7CiAKLSAgICAvLyBIaWRlcyB0aGUgYXV0b2NvbXBsZXRlIHBvcHVw
IGlmIGl0IGlzIHNob3dpbmcuCi0gICAgdm9pZCBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKLSAg
ICB2b2lkIGF1dG9Db21wbGV0ZVBvcHVwRGlkSGlkZSgpOworICAgIHZvaWQgc3VnZ2VzdGlvbnNQ
b3B1cERpZEhpZGUoKQorICAgIHsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9
IGZhbHNlOworICAgIH0KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIC8vIFJldHVy
bnMgdGhlIHByb3ZpZGVyIG9mIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KQEAgLTI5NSwxMCArMjk2
LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBhdXRvY29tcGxlIGhh
cyBjb25zdW1lZCB0aGUgZXZlbnQuCiAgICAgYm9vbCBhdXRvY29tcGxldGVIYW5kbGVLZXlFdmVu
dChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CiAKLSAgICAvLyBSZXBhaW50cyB0aGUgYXV0b2Zp
bGwgcG9wdXAuICBTaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIHN1Z2dlc3Rpb25zIGhhdmUKLSAg
ICAvLyBjaGFuZ2VkLiAgTm90ZSB0aGF0IHRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4g
dGhlIGF1dG9maWxsIHBvcHVwIGlzCi0gICAgLy8gc2hvd2luZy4KLSAgICB2b2lkIHJlZnJlc2hB
dXRvZmlsbFBvcHVwKCk7CisgICAgLy8gUmVwYWludHMgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwLiAg
U2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBzdWdnZXN0aW9ucworICAgIC8vIGhhdmUgY2hhbmdl
ZC4gIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBzdWdnZXN0
aW9ucworICAgIC8vIHBvcHVwIGlzIHNob3dpbmcuCisgICAgdm9pZCByZWZyZXNoU3VnZ2VzdGlv
bnNQb3B1cCgpOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB2aWV3IHdhcyBzY3JvbGxl
ZC4KICAgICBib29sIHNjcm9sbFZpZXdXaXRoS2V5Ym9hcmQoaW50IGtleUNvZGUsIGludCBtb2Rp
ZmllcnMpOwpAQCAtMzkzLDEyICszOTQsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBjdXJyZW50IGRy
b3AgdGFyZ2V0IGluIHRoaXMgV2ViVmlldyAodGhlIGRyb3AgdGFyZ2V0IGNhbiBhY2NlcHQgdGhl
IGRyb3ApLgogICAgIFdlYkRyYWdPcGVyYXRpb24gbV9kcmFnT3BlcmF0aW9uOwogCi0gICAgLy8g
VGhlIGF1dG9jb21wbGV0ZSBwb3B1cC4gIEtlcHQgYXJvdW5kIGFuZCByZXVzZWQgZXZlcnktdGlt
ZSBuZXcgc3VnZ2VzdGlvbnMKKyAgICAvLyBUaGUgc3VnZ2VzdGlvbnMgcG9wdXAuICBLZXB0IGFy
b3VuZCBhbmQgcmV1c2VkIGV2ZXJ5LXRpbWUgbmV3IHN1Z2dlc3Rpb25zCiAgICAgLy8gc2hvdWxk
IGJlIHNob3duLgotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cENvbnRhaW5lcj4gbV9hdXRvY29t
cGxldGVQb3B1cDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBDb250YWluZXI+IG1fc3VnZ2Vz
dGlvbnNQb3B1cDsKIAotICAgIC8vIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBwb3B1cCBpcyBj
dXJyZW50bHkgc2hvd2luZy4KLSAgICBib29sIG1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nOwor
ICAgIC8vIFdoZXRoZXIgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93aW5n
LgorICAgIGJvb2wgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZzsKIAogICAgIC8vIFRoZSBhdXRv
Y29tcGxldGUgY2xpZW50LgogICAgIE93blB0cjxBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ+
IG1fYXV0b2NvbXBsZXRlUG9wdXBDbGllbnQ7Cg==
</data>
<flag name="review"
          id="30914"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48274</attachid>
            <date>2010-02-05 16:12:10 -0800</date>
            <delta_ts>2010-02-05 18:45:00 -0800</delta_ts>
            <desc>Rename autocomplete* to suggestions* to prepare for the refactoring of AutocompletePopupMenuClient [try7]</desc>
            <filename>rename7.diff</filename>
            <type>text/plain</type>
            <size>16593</size>
            <attacher name="James Hawkins">jhawkins</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ0NDkpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDItMDUgIEphbWVz
IEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBSZW5hbWUgYXV0b2NvbXBsZXRl
KiB0byBzdWdnZXN0aW9ucyogdG8gcHJlcGFyZSBmb3IgdGhlCisgICAgICAgIHJlZmFjdG9yaW5n
IG9mIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRl
KToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmF1dG9jb21wbGV0ZUhhbmRsZUtl
eUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZvY3VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlQXV0b2ZpbGxQb3B1cCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpyZWZyZXNoU3VnZ2VzdGlvbnNQb3B1cCk6CisgICAgICAgICogc3Jj
L1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdWdnZXN0aW9u
c1BvcHVwRGlkSGlkZSk6CisKIDIwMTAtMDItMDUgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTQ0NDQpCisrKyBXZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDkgKzIzMSwxMiBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBzdWdnZXN0aW9ucywK
ICAgICAgICAgaW50IGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpID0gMDsKIAotICAgIC8vIEhpZGVz
IHRoZSBhdXRvZmlsbCBwb3B1cCBpZiBhbnkgYXJlIHNob3dpbmcuCisgICAgLy8gREVQUkVDQVRF
RDogV2ViVmlldzo6aGlkZVN1Z2dlc3Rpb25zUG9wdXAgaXMgdGhlIG5ldyB3YXkgdG8gYWNjZXNz
IHRoaXMuCiAgICAgdmlydHVhbCB2b2lkIGhpZGVBdXRvZmlsbFBvcHVwKCkgPSAwOwogCisgICAg
Ly8gSGlkZXMgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlmIGFueSBhcmUgc2hvd2luZy4KKyAgICB2
aXJ0dWFsIHZvaWQgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKSA9IDA7CisKIAogICAgIC8vIENvbnRl
eHQgbWVudSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9jb21wbGV0ZVBvcHVwTWVu
dUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvY29tcGxl
dGVQb3B1cE1lbnVDbGllbnQuY3BwCShyZXZpc2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTIwLDcgKzEyMCw3IEBAIGludCBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ6OmNsaWVudFAK
IAogdm9pZCBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ6OnBvcHVwRGlkSGlkZSgpCiB7Ci0g
ICAgbV93ZWJWaWV3LT5hdXRvQ29tcGxldGVQb3B1cERpZEhpZGUoKTsKKyAgICBtX3dlYlZpZXct
PnN1Z2dlc3Rpb25zUG9wdXBEaWRIaWRlKCk7CiB9CiAKIHZvaWQgQXV0b2NvbXBsZXRlUG9wdXBN
ZW51Q2xpZW50OjpzZXRUZXh0RnJvbUl0ZW0odW5zaWduZWQgbGlzdEluZGV4KQpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA1NDQ0NCkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTY1NCw3ICs2NTQsNyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERp
ZEVuZEVkCiAgICAgbV9hdXRvZmlsbFRpbWVyLnN0b3AoKTsKIAogICAgIC8vIEhpZGUgYW55IHNo
b3dpbmcgcG9wdXAuCi0gICAgbV93ZWJWaWV3LT5oaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAg
ICBtX3dlYlZpZXctPmhpZGVTdWdnZXN0aW9uc1BvcHVwKCk7CiAKICAgICBpZiAoIW1fd2ViVmll
dy0+Y2xpZW50KCkpCiAgICAgICAgIHJldHVybjsgLy8gVGhlIHBhZ2UgaXMgZ2V0dGluZyBjbG9z
ZWQsIGRvbid0IGZpbGwgdGhlIHBhc3N3b3JkLgpAQCAtNzQ4LDcgKzc0OCw3IEBAIHZvaWQgRWRp
dG9yQ2xpZW50SW1wbDo6ZG9BdXRvZmlsbChUaW1lcjwKICAgICAgICAgICAgICAgICAgICAgICAg
JiYgaW5wdXRFbGVtZW50LT5zZWxlY3Rpb25FbmQoKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVl
Lmxlbmd0aCgpKTsKIAogICAgIGlmICgoIWFyZ3MtPmF1dG9maWxsT25FbXB0eVZhbHVlICYmIHZh
bHVlLmlzRW1wdHkoKSkgfHwgIWlzQ2FyZXRBdEVuZCkgewotICAgICAgICBtX3dlYlZpZXctPmhp
ZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAgICBtX3dlYlZpZXctPmhpZGVTdWdnZXN0aW9u
c1BvcHVwKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA1NDQ0NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xNDgsMTYgKzE0OCwxNiBAQCBDT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKERyYWdPcGVyYXRpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKERyYWdPcGVyYXRpb25EZWxldGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShEcmFnT3BlcmF0aW9uRXZlcnkpOwogCi0vLyBOb3RlIHRoYXQgZm9jdXNPblNob3cgaXMgZmFs
c2Ugc28gdGhhdCB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwIGlzIHNob3duIG5vdAorLy8gTm90ZSB0
aGF0IGZvY3VzT25TaG93IGlzIGZhbHNlIHNvIHRoYXQgdGhlIHN1Z2dlc3Rpb25zIHBvcHVwIGlz
IHNob3duIG5vdAogLy8gYWN0aXZhdGVkLiAgV2UgbmVlZCB0aGUgcGFnZSB0byBzdGlsbCBoYXZl
IGZvY3VzIHNvIHRoZSB1c2VyIGNhbiBrZWVwIHR5cGluZwogLy8gd2hpbGUgdGhlIHBvcHVwIGlz
IHNob3dpbmcuCi1zdGF0aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvY29tcGxl
dGVQb3B1cFNldHRpbmdzID0geworc3RhdGljIGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3Mg
c3VnZ2VzdGlvbnNQb3B1cFNldHRpbmdzID0gewogICAgIGZhbHNlLCAgLy8gZm9jdXNPblNob3cK
ICAgICBmYWxzZSwgIC8vIHNldFRleHRPbkluZGV4Q2hhbmdlCiAgICAgZmFsc2UsICAvLyBhY2Nl
cHRPbkFiYW5kb24KICAgICB0cnVlLCAgIC8vIGxvb3BTZWxlY3Rpb25OYXZpZ2F0aW9uCiAgICAg
dHJ1ZSwgICAvLyByZXN0cmljdFdpZHRoT2ZMaXN0Qm94LiBTYW1lIGFzIG90aGVyIGJyb3dzZXIg
KEZ4LCBJRSwgYW5kIHNhZmFyaSkKLSAgICAvLyBGb3IgYXV0b2NvbXBsZXRlLCB3ZSB1c2UgdGhl
IGRpcmVjdGlvbiBvZiB0aGUgaW5wdXQgZmllbGQgYXMgdGhlIGRpcmVjdGlvbgorICAgIC8vIEZv
ciBzdWdnZXN0aW9ucywgd2UgdXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFz
IHRoZSBkaXJlY3Rpb24KICAgICAvLyBvZiB0aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNv
biBpcyB0byBrZWVwIHRoZSBkaXNwbGF5IG9mIGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRo
ZSBzYW1lIGFzIHRoZSBpdGVtcyBpbiB0aGUgaW5wdXQgZmllbGQuCiAgICAgUG9wdXBDb250YWlu
ZXJTZXR0aW5nczo6RE9NRWxlbWVudERpcmVjdGlvbiwKQEAgLTIzOSw3ICsyMzksNyBAQCBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogCiAgICAgLCBtX2Ryb3BFZmZlY3Qo
RHJvcEVmZmVjdERlZmF1bHQpCiAgICAgLCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVy
YXRpb25Ob25lKQogICAgICwgbV9kcmFnT3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQot
ICAgICwgbV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcoZmFsc2UpCisgICAgLCBtX3N1Z2dlc3Rp
b25zUG9wdXBTaG93aW5nKGZhbHNlKQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAg
ICwgbV90YWJzVG9MaW5rcyhmYWxzZSkKIHsKQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjptb3VzZURvd24oY29uc3QgV2ViTW91CiAgICAgbV9sYXN0TW91c2VEb3duUG9pbnQg
PSBXZWJQb2ludChldmVudC54LCBldmVudC55KTsKIAogICAgIC8vIElmIGEgdGV4dCBmaWVsZCB0
aGF0IGhhcyBmb2N1cyBpcyBjbGlja2VkIGFnYWluLCB3ZSBzaG91bGQgZGlzcGxheSB0aGUKLSAg
ICAvLyBhdXRvY29tcGxldGUgcG9wdXAuCisgICAgLy8gc3VnZ2VzdGlvbnMgcG9wdXAuCiAgICAg
UmVmUHRyPE5vZGU+IGNsaWNrZWROb2RlOwogICAgIGlmIChldmVudC5idXR0b24gPT0gV2ViTW91
c2VFdmVudDo6QnV0dG9uTGVmdCkgewogICAgICAgICBSZWZQdHI8Tm9kZT4gZm9jdXNlZE5vZGUg
PSBmb2N1c2VkV2ViQ29yZU5vZGUoKTsKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjptb3VzZURvd24oY29uc3QgV2ViTW91CiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1
aWxkZXIobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpKTsKIAogICAgIGlmIChj
bGlja2VkTm9kZS5nZXQoKSAmJiBjbGlja2VkTm9kZSA9PSBmb2N1c2VkV2ViQ29yZU5vZGUoKSkg
ewotICAgICAgICAvLyBGb2N1cyBoYXMgbm90IGNoYW5nZWQsIHNob3cgdGhlIGF1dG9jb21wbGV0
ZSBwb3B1cC4KKyAgICAgICAgLy8gRm9jdXMgaGFzIG5vdCBjaGFuZ2VkLCBzaG93IHRoZSBzdWdn
ZXN0aW9ucyBwb3B1cC4KICAgICAgICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50SW1wbCo+KG1f
cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT4KICAgICAgICAgICAgIHNob3dGb3JtQXV0b2ZpbGxGb3JO
b2RlKGNsaWNrZWROb2RlLmdldCgpKTsKICAgICB9CkBAIC01MTQsNyArNTE0LDcgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6a2V5RXZlbnQoY29uc3QgV2ViS2V5YgogCiBib29sIFdlYlZpZXdJbXBsOjph
dXRvY29tcGxldGVIYW5kbGVLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkK
IHsKLSAgICBpZiAoIW1fYXV0b2NvbXBsZXRlUG9wdXBTaG93aW5nCisgICAgaWYgKCFtX3N1Z2dl
c3Rpb25zUG9wdXBTaG93aW5nCiAgICAgICAgIC8vIEhvbWUgYW5kIEVuZCBzaG91bGQgYmUgbGVm
dCB0byB0aGUgdGV4dCBmaWVsZCB0byBwcm9jZXNzLgogICAgICAgICB8fCBldmVudC53aW5kb3dz
S2V5Q29kZSA9PSBWS0VZX0hPTUUKICAgICAgICAgfHwgZXZlbnQud2luZG93c0tleUNvZGUgPT0g
VktFWV9FTkQpCkBAIC01MjIsNyArNTIyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBs
ZXRlSGFuZGxlS2V5RQogCiAgICAgLy8gUHJlc3NpbmcgZGVsZXRlIHRyaWdnZXJzIHRoZSByZW1v
dmFsIG9mIHRoZSBzZWxlY3RlZCBzdWdnZXN0aW9uIGZyb20gdGhlIERCLgogICAgIGlmIChldmVu
dC53aW5kb3dzS2V5Q29kZSA9PSBWS0VZX0RFTEVURQotICAgICAgICAmJiBtX2F1dG9jb21wbGV0
ZVBvcHVwLT5zZWxlY3RlZEluZGV4KCkgIT0gLTEpIHsKKyAgICAgICAgJiYgbV9zdWdnZXN0aW9u
c1BvcHVwLT5zZWxlY3RlZEluZGV4KCkgIT0gLTEpIHsKICAgICAgICAgTm9kZSogbm9kZSA9IGZv
Y3VzZWRXZWJDb3JlTm9kZSgpOwogICAgICAgICBpZiAoIW5vZGUgfHwgKG5vZGUtPm5vZGVUeXBl
KCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC01MzQsNyArNTM0LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6YXV0b2NvbXBsZXRl
SGFuZGxlS2V5RQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAg
ICAgaW50IHNlbGVjdGVkSW5kZXggPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5zZWxlY3RlZEluZGV4
KCk7CisgICAgICAgIGludCBzZWxlY3RlZEluZGV4ID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5zZWxl
Y3RlZEluZGV4KCk7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKICAgICAgICAgV2ViU3RyaW5n
IG5hbWUgPSBpbnB1dEVsZW1lbnQtPm5hbWUoKTsKICAgICAgICAgV2ViU3RyaW5nIHZhbHVlID0g
bV9hdXRvY29tcGxldGVQb3B1cENsaWVudC0+aXRlbVRleHQoc2VsZWN0ZWRJbmRleCk7CkBAIC01
NDIsMTQgKzU0MiwxNCBAQCBib29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlF
CiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgZW50cmllcyBpbiB0aGUgY3VycmVudGx5IHNob3dpbmcg
cG9wdXAgdG8gcmVmbGVjdCB0aGUKICAgICAgICAgLy8gZGVsZXRpb24uCiAgICAgICAgIG1fYXV0
b2NvbXBsZXRlUG9wdXBDbGllbnQtPnJlbW92ZUl0ZW1BdEluZGV4KHNlbGVjdGVkSW5kZXgpOwot
ICAgICAgICByZWZyZXNoQXV0b2ZpbGxQb3B1cCgpOworICAgICAgICByZWZyZXNoU3VnZ2VzdGlv
bnNQb3B1cCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFtX2F1
dG9jb21wbGV0ZVBvcHVwLT5pc0ludGVyZXN0ZWRJbkV2ZW50Rm9yS2V5KGV2ZW50LndpbmRvd3NL
ZXlDb2RlKSkKKyAgICBpZiAoIW1fc3VnZ2VzdGlvbnNQb3B1cC0+aXNJbnRlcmVzdGVkSW5FdmVu
dEZvcktleShldmVudC53aW5kb3dzS2V5Q29kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmIChtX2F1dG9jb21wbGV0ZVBvcHVwLT5oYW5kbGVLZXlFdmVudChQbGF0Zm9ybUtleWJv
YXJkRXZlbnRCdWlsZGVyKGV2ZW50KSkpIHsKKyAgICBpZiAobV9zdWdnZXN0aW9uc1BvcHVwLT5o
YW5kbGVLZXlFdmVudChQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGV2ZW50KSkpIHsKICAg
ICAgICAgLy8gV2UgbmVlZCB0byBpZ25vcmUgdGhlIG5leHQgQ2hhciBldmVudCBhZnRlciB0aGlz
IG90aGVyd2lzZSBwcmVzc2luZwogICAgICAgICAvLyBlbnRlciB3aGVuIHNlbGVjdGluZyBhbiBp
dGVtIGluIHRoZSBtZW51IHdpbGwgZ28gdG8gdGhlIHBhZ2UuCiAgICAgICAgIGlmIChXZWJJbnB1
dEV2ZW50OjpSYXdLZXlEb3duID09IGV2ZW50LnR5cGUpCkBAIC05NzYsNyArOTc2LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0Rm9jdXMoYm9vbCBlbmFibGUpCiAgICAgICAgIH0KICAgICAgICAg
bV9pbWVBY2NlcHRFdmVudHMgPSB0cnVlOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGhpZGVBdXRv
Q29tcGxldGVQb3B1cCgpOworICAgICAgICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogCiAgICAg
ICAgIC8vIENsZWFyIGZvY3VzIG9uIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBmcmFtZSBpZiBhbnku
CiAgICAgICAgIGlmICghbV9wYWdlLmdldCgpKQpAQCAtMTU1OSw3ICsxNTU5LDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3RpbwogICAgIGludCBkZWZhdWx0U3VnZ2Vz
dGlvbkluZGV4KQogewogICAgIGlmICghbV9wYWdlLmdldCgpIHx8IHN1Z2dlc3Rpb25zLmlzRW1w
dHkoKSkgewotICAgICAgICBoaWRlQXV0b0NvbXBsZXRlUG9wdXAoKTsKKyAgICAgICAgaGlkZVN1
Z2dlc3Rpb25zUG9wdXAoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTU2OCw3ICsx
NTY4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3RpbwogICAgIGlm
IChSZWZQdHI8RnJhbWU+IGZvY3VzZWQgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1
c2VkRnJhbWUoKSkgewogICAgICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gZm9jdXNl
ZC0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2N1bWVudC5nZXQoKSkgewotICAgICAgICAg
ICAgaGlkZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAgICAgICBoaWRlU3VnZ2VzdGlvbnNQ
b3B1cCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE1NzcsNyArMTU3
Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICAgICAg
Ly8gZm9jdXNlZCBub2RlLCB0aGVuIHdlIGhhdmUgbm90aGluZyB0byBkby4gIEZJWE1FOiBhbHNv
IGNoZWNrIHRoZQogICAgICAgICAvLyBjYXJyZXQgaXMgYXQgdGhlIGVuZCBhbmQgdGhhdCB0aGUg
dGV4dCBoYXMgbm90IGNoYW5nZWQuCiAgICAgICAgIGlmICghZm9jdXNlZE5vZGUuZ2V0KCkgfHwg
Zm9jdXNlZE5vZGUgIT0gUGFzc1JlZlB0cjxOb2RlPihub2RlKSkgewotICAgICAgICAgICAgaGlk
ZUF1dG9Db21wbGV0ZVBvcHVwKCk7CisgICAgICAgICAgICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE1ODksMzMgKzE1ODksNDEg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3RpbwogICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW0gPQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KGZvY3VzZWROb2RlLmdldCgpKTsKIAotICAgICAgICAvLyBUaGUgZmlyc3Qg
dGltZSB0aGUgYXV0b2NvbXBsZXRlIGlzIHNob3duIHdlJ2xsIGNyZWF0ZSB0aGUgY2xpZW50IGFu
ZCB0aGUKLSAgICAgICAgLy8gcG9wdXAuCisgICAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIHRoZSBz
dWdnZXN0aW9ucyBwb3B1cCBpcyBzaG93biB3ZSdsbCBjcmVhdGUgdGhlIGNsaWVudAorICAgICAg
ICAvLyBhbmQgdGhlIHBvcHVwLgogICAgICAgICBpZiAoIW1fYXV0b2NvbXBsZXRlUG9wdXBDbGll
bnQuZ2V0KCkpCiAgICAgICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50LnNldChuZXcg
QXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50KHRoaXMpKTsKICAgICAgICAgbV9hdXRvY29tcGxl
dGVQb3B1cENsaWVudC0+aW5pdGlhbGl6ZShpbnB1dEVsZW0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFN1Z2dlc3Rpb25JbmRleCk7Ci0g
ICAgICAgIGlmICghbV9hdXRvY29tcGxldGVQb3B1cC5nZXQoKSkgewotICAgICAgICAgICAgbV9h
dXRvY29tcGxldGVQb3B1cCA9CisgICAgICAgIGlmICghbV9zdWdnZXN0aW9uc1BvcHVwLmdldCgp
KSB7CisgICAgICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXAgPQogICAgICAgICAgICAgICAgIFBv
cHVwQ29udGFpbmVyOjpjcmVhdGUobV9hdXRvY29tcGxldGVQb3B1cENsaWVudC5nZXQoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZVBvcHVwU2V0
dGluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlv
bnNQb3B1cFNldHRpbmdzKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2F1dG9jb21wbGV0
ZVBvcHVwU2hvd2luZykgeworICAgICAgICBpZiAobV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZykg
ewogICAgICAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cENsaWVudC0+c2V0U3VnZ2VzdGlvbnMo
c3VnZ2VzdGlvbnMpOwotICAgICAgICAgICAgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKKyAgICAg
ICAgICAgIHJlZnJlc2hTdWdnZXN0aW9uc1BvcHVwKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWROb2RlLT5vd25l
ckRvY3VtZW50KCktPnZpZXcoKSwgMCk7Ci0gICAgICAgICAgICBtX2F1dG9jb21wbGV0ZVBvcHVw
U2hvd2luZyA9IHRydWU7CisgICAgICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXAtPnNob3coZm9j
dXNlZE5vZGUtPmdldFJlY3QoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOworICAgICAgICAgICAg
bV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OmhpZGVBdXRvZmlsbFBvcHVwKCkKIHsKLSAgICBoaWRlQXV0b0Nv
bXBsZXRlUG9wdXAoKTsKKyAgICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpCit7CisgICAgaWYgKG1fc3VnZ2VzdGlv
bnNQb3B1cFNob3dpbmcpIHsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwLT5oaWRlUG9wdXAo
KTsKKyAgICAgICAgbV9zdWdnZXN0aW9uc1BvcHVwU2hvd2luZyA9IGZhbHNlOworICAgIH0KIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybUN1c3RvbUNvbnRleHRNZW51QWN0aW9uKHVuc2ln
bmVkIGFjdGlvbikKQEAgLTE3NzgsMTkgKzE3ODYsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpvYnNl
cnZlTmV3TmF2aWdhdGlvbigpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6aGlkZUF1
dG9Db21wbGV0ZVBvcHVwKCkKLXsKLSAgICBpZiAobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcp
IHsKLSAgICAgICAgbV9hdXRvY29tcGxldGVQb3B1cC0+aGlkZVBvcHVwKCk7Ci0gICAgICAgIGF1
dG9Db21wbGV0ZVBvcHVwRGlkSGlkZSgpOwotICAgIH0KLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6
YXV0b0NvbXBsZXRlUG9wdXBEaWRIaWRlKCkKLXsKLSAgICBtX2F1dG9jb21wbGV0ZVBvcHVwU2hv
d2luZyA9IGZhbHNlOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVJbnB1dEV2ZW50
cyhib29sIG5ld1ZhbHVlKQogewogICAgIEFTU0VSVChtX2lnbm9yZUlucHV0RXZlbnRzICE9IG5l
d1ZhbHVlKTsKQEAgLTE4MDYsMjMgKzE4MDEsMjMgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bCogV2ViVmlld0ltcGw6OgogfQogI2VuZGlmCiAKLXZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hB
dXRvZmlsbFBvcHVwKCkKK3ZvaWQgV2ViVmlld0ltcGw6OnJlZnJlc2hTdWdnZXN0aW9uc1BvcHVw
KCkKIHsKLSAgICBBU1NFUlQobV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmcpOworICAgIEFTU0VS
VChtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nKTsKIAogICAgIC8vIEhpZGUgdGhlIHBvcHVwIGlm
IGl0IGhhcyBiZWNvbWUgZW1wdHkuCiAgICAgaWYgKCFtX2F1dG9jb21wbGV0ZVBvcHVwQ2xpZW50
LT5saXN0U2l6ZSgpKSB7Ci0gICAgICAgIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOworICAgICAg
ICBoaWRlU3VnZ2VzdGlvbnNQb3B1cCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
SW50UmVjdCBvbGRCb3VuZHMgPSBtX2F1dG9jb21wbGV0ZVBvcHVwLT5ib3VuZHNSZWN0KCk7Ci0g
ICAgbV9hdXRvY29tcGxldGVQb3B1cC0+cmVmcmVzaCgpOwotICAgIEludFJlY3QgbmV3Qm91bmRz
ID0gbV9hdXRvY29tcGxldGVQb3B1cC0+Ym91bmRzUmVjdCgpOworICAgIEludFJlY3Qgb2xkQm91
bmRzID0gbV9zdWdnZXN0aW9uc1BvcHVwLT5ib3VuZHNSZWN0KCk7CisgICAgbV9zdWdnZXN0aW9u
c1BvcHVwLT5yZWZyZXNoKCk7CisgICAgSW50UmVjdCBuZXdCb3VuZHMgPSBtX3N1Z2dlc3Rpb25z
UG9wdXAtPmJvdW5kc1JlY3QoKTsKICAgICAvLyBMZXQncyByZXNpemUgdGhlIGJhY2tpbmcgd2lu
ZG93IGlmIG5lY2Vzc2FyeS4KICAgICBpZiAob2xkQm91bmRzICE9IG5ld0JvdW5kcykgewogICAg
ICAgICBXZWJQb3B1cE1lbnVJbXBsKiBwb3B1cE1lbnUgPQotICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8V2ViUG9wdXBNZW51SW1wbCo+KG1fYXV0b2NvbXBsZXRlUG9wdXAtPmNsaWVudCgpKTsKKyAg
ICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudUltcGwqPihtX3N1Z2dlc3Rpb25zUG9w
dXAtPmNsaWVudCgpKTsKICAgICAgICAgcG9wdXBNZW51LT5jbGllbnQoKS0+c2V0V2luZG93UmVj
dChuZXdCb3VuZHMpOwogICAgIH0KIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJ
KHJldmlzaW9uIDU0NDQ0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0xNTQsNiArMTU0LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJW
ZWN0b3I8V2ViU3RyaW5nPiYgc3VnZ2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2Vz
dGlvbkluZGV4KTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgaGlkZVN1Z2dlc3Rpb25zUG9wdXAoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xvciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrQ29sb3IpOwpAQCAtMjYxLDkgKzI2
MiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKICAg
ICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNrKTsKIAot
ICAgIC8vIEhpZGVzIHRoZSBhdXRvY29tcGxldGUgcG9wdXAgaWYgaXQgaXMgc2hvd2luZy4KLSAg
ICB2b2lkIGhpZGVBdXRvQ29tcGxldGVQb3B1cCgpOwotICAgIHZvaWQgYXV0b0NvbXBsZXRlUG9w
dXBEaWRIaWRlKCk7CisgICAgdm9pZCBzdWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgpCisgICAgewor
ICAgICAgICBtX3N1Z2dlc3Rpb25zUG9wdXBTaG93aW5nID0gZmFsc2U7CisgICAgfQogCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgLy8gUmV0dXJucyB0aGUgcHJvdmlkZXIgb2YgZGVz
a3RvcCBub3RpZmljYXRpb25zLgpAQCAtMjk1LDEwICsyOTcsMTAgQEAgcHJpdmF0ZToKICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIGF1dG9jb21wbGUgaGFzIGNvbnN1bWVkIHRoZSBldmVudC4K
ICAgICBib29sIGF1dG9jb21wbGV0ZUhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZl
bnQmKTsKIAotICAgIC8vIFJlcGFpbnRzIHRoZSBhdXRvZmlsbCBwb3B1cC4gIFNob3VsZCBiZSBj
YWxsZWQgd2hlbiB0aGUgc3VnZ2VzdGlvbnMgaGF2ZQotICAgIC8vIGNoYW5nZWQuICBOb3RlIHRo
YXQgdGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgYXV0b2ZpbGwgcG9wdXAgaXMK
LSAgICAvLyBzaG93aW5nLgotICAgIHZvaWQgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKKyAgICAv
LyBSZXBhaW50cyB0aGUgc3VnZ2VzdGlvbnMgcG9wdXAuICBTaG91bGQgYmUgY2FsbGVkIHdoZW4g
dGhlIHN1Z2dlc3Rpb25zCisgICAgLy8gaGF2ZSBjaGFuZ2VkLiAgTm90ZSB0aGF0IHRoaXMgc2hv
dWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHN1Z2dlc3Rpb25zCisgICAgLy8gcG9wdXAgaXMg
c2hvd2luZy4KKyAgICB2b2lkIHJlZnJlc2hTdWdnZXN0aW9uc1BvcHVwKCk7CiAKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIHZpZXcgd2FzIHNjcm9sbGVkLgogICAgIGJvb2wgc2Nyb2xsVmll
d1dpdGhLZXlib2FyZChpbnQga2V5Q29kZSwgaW50IG1vZGlmaWVycyk7CkBAIC0zOTMsMTIgKzM5
NSwxMiBAQCBwcml2YXRlOgogICAgIC8vIGN1cnJlbnQgZHJvcCB0YXJnZXQgaW4gdGhpcyBXZWJW
aWV3ICh0aGUgZHJvcCB0YXJnZXQgY2FuIGFjY2VwdCB0aGUgZHJvcCkuCiAgICAgV2ViRHJhZ09w
ZXJhdGlvbiBtX2RyYWdPcGVyYXRpb247CiAKLSAgICAvLyBUaGUgYXV0b2NvbXBsZXRlIHBvcHVw
LiAgS2VwdCBhcm91bmQgYW5kIHJldXNlZCBldmVyeS10aW1lIG5ldyBzdWdnZXN0aW9ucworICAg
IC8vIFRoZSBzdWdnZXN0aW9ucyBwb3B1cC4gIEtlcHQgYXJvdW5kIGFuZCByZXVzZWQgZXZlcnkt
dGltZSBuZXcgc3VnZ2VzdGlvbnMKICAgICAvLyBzaG91bGQgYmUgc2hvd24uCi0gICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyPiBtX2F1dG9jb21wbGV0ZVBvcHVwOworICAgIFJlZlB0
cjxXZWJDb3JlOjpQb3B1cENvbnRhaW5lcj4gbV9zdWdnZXN0aW9uc1BvcHVwOwogCi0gICAgLy8g
V2hldGhlciB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93aW5nLgotICAg
IGJvb2wgbV9hdXRvY29tcGxldGVQb3B1cFNob3dpbmc7CisgICAgLy8gV2hldGhlciB0aGUgc3Vn
Z2VzdGlvbnMgcG9wdXAgaXMgY3VycmVudGx5IHNob3dpbmcuCisgICAgYm9vbCBtX3N1Z2dlc3Rp
b25zUG9wdXBTaG93aW5nOwogCiAgICAgLy8gVGhlIGF1dG9jb21wbGV0ZSBjbGllbnQuCiAgICAg
T3duUHRyPEF1dG9jb21wbGV0ZVBvcHVwTWVudUNsaWVudD4gbV9hdXRvY29tcGxldGVQb3B1cENs
aWVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>